https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103406
--- Comment #12 from CVS Commits ---
The master branch has been updated by Roger Sayle :
https://gcc.gnu.org/g:6ea5fb3cc7f3cc9b731d72183c66c23543876f5a
commit r12-5529-g6ea5fb3cc7f3cc9b731d72183c66c23543876f5a
Author: Roger Sayle
Date: Thu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103406
--- Comment #11 from joseph at codesourcery dot com ---
The sign of a NaN result is never specified in C except for fabs,
copysign, negation, unary + (and assignment to the same format in the case
where that's copy rather than convertFormat).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103406
Richard Biener changed:
What|Removed |Added
CC||jsm28 at gcc dot gnu.org
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103406
--- Comment #9 from Richard Biener ---
simplify_binary_operation_1 has
/* ((-a) + b) -> (b - a) and similarly for (a + (-b)). These
transformations are safe even for IEEE. */
if (GET_CODE (op0) == NEG)
return
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103406
--- Comment #8 from Richard Biener ---
And the -nan vs. nan is because we fold x + -y to x - y:
/* We can't reassociate at all for saturating types. */
(if (!TYPE_SATURATING (type))
/* Contract negates. */
/* A + (-B) -> A - B */
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103406
Roger Sayle changed:
What|Removed |Added
CC||roger at nextmovesoftware dot
com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103406
Richard Biener changed:
What|Removed |Added
Summary|gcc -O0 behaves differently |[12 Regression] gcc -O0