|
@@ -50,7 +50,7 @@ float fmaf(float x, float y, float z)
|
|
/* Common case: The double precision result is fine. */
|
|
/* Common case: The double precision result is fine. */
|
|
if ((u.i & 0x1fffffff) != 0x10000000 || /* not a halfway case */
|
|
if ((u.i & 0x1fffffff) != 0x10000000 || /* not a halfway case */
|
|
e == 0x7ff || /* NaN */
|
|
e == 0x7ff || /* NaN */
|
|
- result - xy == z || /* exact */
|
|
|
|
|
|
+ (result - xy == z && result - z == xy) || /* exact */
|
|
fegetround() != FE_TONEAREST) /* not round-to-nearest */
|
|
fegetround() != FE_TONEAREST) /* not round-to-nearest */
|
|
{
|
|
{
|
|
/*
|
|
/*
|