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

--- Comment #2 from anders at wahrzeichnen dot de <anders at wahrzeichnen dot 
de> ---
No, -ffloat-store does not help. And this has little if anything to do with
323, imho.

The asm generated for f3 is instructive: There, GCC wants to load a double
constant 0x3fb999999999999a into the 387 FPU, which is
0.10000000000000000555... The single-precision constant t passed as argument to
f0...f3 is 0x3dcccccd, which is 0.10000000149... So, it's no wonder that f3
returns 1; after all 0.10000000149 > 0.10000000000000000555.

The questions are: Why does the code generated for f2 try to load a double
constant even if it is explicitly suffixed 'f'? Why should casting to (float)
help? Why does std=c11 or c18 change the game?

Reply via email to