Re: [match.pd PATCH] PR tree-optimization/126467: 0.0-x -> -x vs. signed zeros.

Alexander Monakov <[email protected]>
Newsgroups gmane.comp.gcc.patches
Message-ID <[email protected]>
On Fri, 7 Aug 2026, Richard Biener wrote:

> On Fri, Aug 7, 2026 at 9:31 AM Alexander Monakov <[email protected]> wrote:
> >
> >
> > On Wed, 5 Aug 2026, Roger Sayle wrote:
> >
> > > Likewise when x is NaN, 0.0 - x
> > > may change the payload, but -x is guaranteed not to.
> >
> > Not saying you should drop the condition in your patch, but do we care
> > about NaN payload propagation anywhere else? The HONOR_NANS et al. only
> > seem to cover presence/absence of NaNs, not observability of payloads.
> 
> I think we don't.  -x will still turn sNaN into qNaN?

It may not, negation can only change the sign bit. It's a good point,
0-x would quieten the input sNaN and raise FE_INVALID for a sNaN but not qNaN,
negation wouldn't.

As for payload propagation, IEEE754 recommends that computational operations
propagate one of the input NaNs. Therefore 0-x should just propagate payload
of x when it's a qNaN, just like -x. But, conversely, propagating the input
NaN can result in 0-x having the same sign as x, not the opposite (this is
what actually happens on amd64, subsd preserves the sign of a NaN).

Alexander
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.