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