------- Comment #5 from bonzini at gnu dot org 2005-11-25 19:12 -------
Another failure from glibc's tests is more severe: __DBL_MAX__ * __DBL_MAX__ -
__DBL_MAX * __DBL_MAX__ is turned into an INF rather than a NAN (as would
happen on most targets) or zero (as would happen on x87 because it computes
everything in long double).
This can be seen with a program like
extern void abort (void)
{
double nan = __DBL_MAX__ * __DBL_MAX__ - __DBL_MAX * __DBL_MAX__;
if (nan == nan && nan != 0.0) abort ();
}
This seems more serious, to the point that fused multiply-add instructions
should be disabled unless !HONOR_NANS || !MODE_HAS_INFINITIES for the given
mode.
CCing Eric since he recently had problems with ia64 fma
(http://gcc.gnu.org/ml/gcc/2005-10/msg01036.html).
--
bonzini at gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |amodra at bigpond dot net
| |dot au, bonzini at gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24819