On Wed, 19 Aug 2015, Andreas Schwab wrote:

> FX <fxcoud...@gmail.com> writes:
> 
> > @@ -80,6 +80,24 @@ foo_1 (float f, double d, long double ld
> >    if (__builtin_finitel (ld) != res_isfin)
> >      __builtin_abort ();
> >  
> > +  /* Sign bit of zeros and nans is not preserved in unsafe math mode.  */
> > +#ifdef UNSAFE
> > +  if (!res_isnan && d != 0)
> > +#endif
> 
> Why only in usafe mode?  Isn't the sign bit of NaN always unreliable?

NaN sign bits are meaningful for a limited set of operations.  (As I noted 
in <https://gcc.gnu.org/ml/gcc-patches/2010-11/msg01474.html>, there would 
be a use for a -fno-signed-nans option in certain cases, but we don't 
currently have such an option.)

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to