[Bug c/85957] i686: Integers appear to be different, but compare as equal
bugdal at aerifal dot cx
gcc-bugzilla@gcc.gnu.org
Sun Feb 9 16:03:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85957
--- Comment #19 from Rich Felker <bugdal at aerifal dot cx> ---
Test case provided by Szabolcs Nagy showing that GCC does seem to spill right
if it can't assume there's no excess precision to begin with:
double h();
double ff(double x, double y)
{
return x+y+h();
}
In theory this doesn't force a spill, but GCC seems to choose to do one, I
guess to avoid having to preserve two incoming values (although they're already
in stack slots that would be naturally preserved).
Here GCC 9.2 with -fexcess-precision=standard -O3 it emits fstpt/fldt.
More information about the Gcc-bugs
mailing list