[Bug rtl-optimization/69570] [6 Regression] if-conversion bug on i?86

bernds at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Feb 2 15:09:00 GMT 2016


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

Bernd Schmidt <bernds at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |INVALID

--- Comment #9 from Bernd Schmidt <bernds at gcc dot gnu.org> ---
Ah, of course.

 804856f:       df ec                   fucomip %st(4),%st

pc             0x804856f        0x804856f <bar(unsigned int*, double*)+175>
st0            0.5019607843137254902230771913540508     (raw
0x3ffe8080808080808081)
st1            1        (raw 0x3fff8000000000000000)
st2            0.2509803921568627451115385956770254     (raw
0x3ffd8080808080808081)
st3            0        (raw 0x00000000000000000000)
st4            0.5019607843137254832299731788225472     (raw
0x3ffe8080808080808000)

An equality comparison of floating point numbers, on x87. One of those was just
loaded from a stack slot, the other was kept in a register the whole time.

This code needs -ffloat-store, or -mpc64, when compiled for 32-bit x86.


More information about the Gcc-bugs mailing list