[Bug target/58416] Incorrect x87-based union copying code
joseph at codesourcery dot com
gcc-bugzilla@gcc.gnu.org
Mon Sep 16 15:49:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58416
--- Comment #4 from joseph at codesourcery dot com <joseph at codesourcery dot com> ---
On Mon, 16 Sep 2013, rguenth at gcc dot gnu.org wrote:
> It looks wrong for DFmode move instructions to not preserve a IEEE defined
> flag. I suppose it would be also wrong to not preserve the exact bit pattern
> (think of canonicalizing NaNs).
I think of the move problem for signaling NaNs as being bug 56831 - except
that as expressed there it's only a bug for -fsignaling-nans, whereas the
present bug is clearly a bug with or without -fsignaling-nans (the program
makes no explicit use of signaling NaNs at all).
In the absence of -fexcess-precision=standard, I suppose the move patterns
do need to represent how to move DFmove values into x87 registers from
memory (despite the lack of proper bit-pattern-preserving loads on the
processor), but any move instruction that extends SFmode or DFmode
implicitly to XFmode should be avoided except where actually needed for
floating-point arithmetic to be carried out or because the ABI requires
the value in an x87 register.
More information about the Gcc-bugs
mailing list