This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug math/19235] [powerpc64] lround, lroundf, llround, llroundf spurious "inexact" exceptions


https://sourceware.org/bugzilla/show_bug.cgi?id=19235

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  32b71ad358a949cbfe16d527f9a1015b95bb9baf (commit)
      from  1a44f1433ee4afad10eb4cb1a08d8a86b286cd40 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=32b71ad358a949cbfe16d527f9a1015b95bb9baf

commit 32b71ad358a949cbfe16d527f9a1015b95bb9baf
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Nov 12 16:24:00 2015 +0000

    Fix powerpc64 lround, lroundf, llround, llroundf spurious "inexact"
exceptions (bug 19235).

    Similar to bug 19134 for powerpc32, the powerpc64 implementations of
    lround, lroundf, llround, llroundf can raise spurious "inexact"
    exceptions for integer arguments from adding 0.5 then converting to
    integer (this does not apply to the power5+ version for double, which
    uses the frin instruction which is defined never to raise "inexact"; I
    don't know why power5+ doesn't use that version for float as well).

    This patch fixes the bug in a similar way to the powerpc32 bug, by
    testing for integers (adding and subtracting 2^52 and comparing with
    the value before that addition and subtraction) and not adding 0.5 in
    that case.

    The powerpc maintainers may wish to look at making power5+ / power6x /
    power8 use frin for float lround / llround as well as for double,
    unless there's some reason I've missed that this isn't beneficial.

    Tested for powerpc64.

        [BZ #19235]
        * sysdeps/powerpc/powerpc64/fpu/s_llround.S (__llround): Do not
        add 0.5 to integer arguments.
        * sysdeps/powerpc/powerpc64/fpu/s_llroundf.S (__llroundf):
        Likewise.
        (.LC2): New object.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                  |    9 +++++++++
 sysdeps/powerpc/powerpc64/fpu/s_llround.S  |    5 +++++
 sysdeps/powerpc/powerpc64/fpu/s_llroundf.S |    8 ++++++++
 3 files changed, 22 insertions(+), 0 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]