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-03-14 00:57:15 +01:00 committed by Rich Felker
parent 5370070fde
commit 9683bd6241

View file

@ -53,7 +53,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;
}