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/20947] fmax, fmin sNaN handling


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

--- Comment #2 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  9ce4ac64b234c976ae56061afd5774896c5513c9 (commit)
      from  f02bb0004c5b1944333fd8e74ac1efda3074084b (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=9ce4ac64b234c976ae56061afd5774896c5513c9

commit 9ce4ac64b234c976ae56061afd5774896c5513c9
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Dec 15 00:43:16 2016 +0000

    Fix powerpc fmax, fmin sNaN handling (bug 20947).

    Various fmax and fmin function implementations mishandle sNaN
    arguments:

    (a) When both arguments are NaNs, the return value should be a qNaN,
    but sometimes it is an sNaN if at least one argument is an sNaN.

    (b) Under TS 18661-1 semantics, if either argument is an sNaN then the
    result should be a qNaN (whereas if one argument is a qNaN and the
    other is not a NaN, the result should be the non-NaN argument).
    Various implementations treat sNaNs like qNaNs here.

    This patch fixes the powerpc versions of these functions (shared by
    float and double, 32-bit and 64-bit).  The structure of those versions
    is that all ordered cases are already handled before anything dealing
    with the case where the arguments are unordered; thus, this patch
    causes no change to the code executed in the common case (neither
    argument a NaN).

    Tested for powerpc (32-bit and 64-bit), together with tests to be
    added along with the x86_64 / x86 fixes.

        [BZ #20947]
        * sysdeps/powerpc/fpu/s_fmax.S (__fmax): Add the arguments when
        either is a signaling NaN.
        * sysdeps/powerpc/fpu/s_fmin.S (__fmin): Likewise.

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

Summary of changes:
 ChangeLog                    |    7 +++++++
 sysdeps/powerpc/fpu/s_fmax.S |   37 ++++++++++++++++++++++++++++++++++++-
 sysdeps/powerpc/fpu/s_fmin.S |   37 ++++++++++++++++++++++++++++++++++++-
 3 files changed, 79 insertions(+), 2 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]