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

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


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

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Bernd Schmidt from comment #9)
> 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.

Or -fexcess-precision=standard.


More information about the Gcc-bugs mailing list