math: fix fma(x,y,0) when x*y rounds to -0

if x!=0, y!=0, z==0 then

  fma(x,y,z) == x*y

in all rounding modes, while adding z can ruin the sign of 0 if x*y
rounds to -0.
This commit is contained in:
Szabolcs Nagy 2024-04-23 09:21:08 -07:00 committed by Justine Tunney
parent 01267ea0f5
commit ea3cc4ea0b
No known key found for this signature in database
GPG key ID: BE714B4575D6E328

View file

@ -145,7 +145,7 @@ double fma(double x, double y, double z)
return x*y + z;
if (nz.e >= ZEROINFNAN) {
if (nz.e > ZEROINFNAN) /* z==0 */
return x*y + z;
return x*y;
return z;
}