https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95169

            Bug ID: 95169
           Summary: i386 comparison between nan and 0.0 triggers Invalid
                    operation exception
           Product: gcc
           Version: 10.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: samuel.thiba...@ens-lyon.org
  Target Milestone: ---

Created attachment 48549
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48549&action=edit
testcase

Hello,

On building the attached testcase with 

gcc-10 -m32 test.c -o test -march=i386 -mtune=generic -lm

its execution prints "0 1", i.e. an Invalid operation exception is raised by
the mere comparison of y (that contains NaN) against 0.0.

This was tested with Debian's gcc-10 10.1.0-1.
This does not happen with previous versions of gcc. This happens with half of
the  values of -mtune (I'll attach the details) ; this also happens with
-march=i486, i586, pentium ; this does not happen with -march=i686 or
pentiumpro etc. (whatever the value of -mtune).

Samuel

Reply via email to