about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--NEWS2
-rw-r--r--math/auto-libm-test-in18
-rw-r--r--math/auto-libm-test-out256
-rw-r--r--sysdeps/ieee754/dbl-64/s_fma.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fmal.c2
7 files changed, 288 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 9a74f25ce7..f510bea1bd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2015-08-14  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #18824]
+	* sysdeps/ieee754/dbl-64/s_fma.c (__fma): Increase threshold for
+	scaling x * y up instead of down.
+	* sysdeps/ieee754/ldbl-128/s_fmal.c (__fmal): Likewise.
+	* sysdeps/ieee754/ldbl-96/s_fmal.c (__fmal): Likewise.
+	* math/auto-libm-test-in: Add more tests of fma.
+	* math/auto-libm-test-out: Regenerated.
+
 2015-08-14  Paul Pluzhnikov  <ppluzhnikov@google.com>
 
 	* sysdeps/x86_64/fpu/libm-test-ulps: Regenerated.
diff --git a/NEWS b/NEWS
index 5ca3de8353..088969c3b8 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ Version 2.23
 * The following bugs are resolved with this release:
 
   16517, 16519, 16520, 16734, 17905, 18086, 18265, 18480, 18525, 18618,
-  18647, 18661, 18674, 18778, 18781, 18787, 18789, 18790, 18820.
+  18647, 18661, 18674, 18778, 18781, 18787, 18789, 18790, 18820, 18824.
 
 
 Version 2.22
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index d3a4834faa..44803714c9 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1794,6 +1794,24 @@ fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-6
 fma 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-66 -0x1p16319
 fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-66 -0x1p16319
 
+# Bug 6801: errno setting may be missing.
+fma 0x1.fffffep-126 0x1.fffffep25 0x1.fffffep127 missing-errno
+fma 0x1.fffffep-126 -0x1.fffffep25 0x1.fffffep127
+fma 0x1.fffffep-126 0x1.fffffep25 -0x1.fffffep127
+fma 0x1.fffffep-126 -0x1.fffffep25 -0x1.fffffep127 missing-errno
+fma 0x1.fffffffffffffp-1022 0x1.fffffffffffffp54 0x1.fffffffffffffp1023 missing-errno
+fma 0x1.fffffffffffffp-1022 -0x1.fffffffffffffp54 0x1.fffffffffffffp1023
+fma 0x1.fffffffffffffp-1022 0x1.fffffffffffffp54 -0x1.fffffffffffffp1023
+fma 0x1.fffffffffffffp-1022 -0x1.fffffffffffffp54 -0x1.fffffffffffffp1023 missing-errno
+fma 0x1.fffffffffffffffep-16382 0x1.fffffffffffffffep65 0x1.fffffffffffffffep16383 missing-errno
+fma 0x1.fffffffffffffffep-16382 -0x1.fffffffffffffffep65 0x1.fffffffffffffffep16383
+fma 0x1.fffffffffffffffep-16382 0x1.fffffffffffffffep65 -0x1.fffffffffffffffep16383
+fma 0x1.fffffffffffffffep-16382 -0x1.fffffffffffffffep65 -0x1.fffffffffffffffep16383 missing-errno
+fma 0x1.ffffffffffffffffffffffffffffp-16382 0x1.ffffffffffffffffffffffffffffp114 0x1.ffffffffffffffffffffffffffffp16383 missing-errno
+fma 0x1.ffffffffffffffffffffffffffffp-16382 -0x1.ffffffffffffffffffffffffffffp114 0x1.ffffffffffffffffffffffffffffp16383
+fma 0x1.ffffffffffffffffffffffffffffp-16382 0x1.ffffffffffffffffffffffffffffp114 -0x1.ffffffffffffffffffffffffffffp16383
+fma 0x1.ffffffffffffffffffffffffffffp-16382 -0x1.ffffffffffffffffffffffffffffp114 -0x1.ffffffffffffffffffffffffffffp16383 missing-errno
+
 hypot 0 0
 hypot 0 -0
 hypot -0 0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 1900e78cf3..d8ede584c8 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -132191,6 +132191,262 @@ fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-6
 = fma tonearest ldbl-128 0x4.0000000000000000000000000004p-16384L -0x4.0000000000000000000000000004p-68L -0x8p+16316L : -0x8p+16316L : inexact
 = fma towardzero ldbl-128 0x4.0000000000000000000000000004p-16384L -0x4.0000000000000000000000000004p-68L -0x8p+16316L : -0x8p+16316L : inexact
 = fma upward ldbl-128 0x4.0000000000000000000000000004p-16384L -0x4.0000000000000000000000000004p-68L -0x8p+16316L : -0x8p+16316L : inexact
+fma 0x1.fffffep-126 0x1.fffffep25 0x1.fffffep127 missing-errno
+= fma downward flt-32 0x7.fffff8p-128f 0x3.fffffcp+24f 0xf.fffffp+124f : 0xf.fffffp+124f : inexact
+= fma tonearest flt-32 0x7.fffff8p-128f 0x3.fffffcp+24f 0xf.fffffp+124f : 0xf.fffffp+124f : inexact
+= fma towardzero flt-32 0x7.fffff8p-128f 0x3.fffffcp+24f 0xf.fffffp+124f : 0xf.fffffp+124f : inexact
+= fma upward flt-32 0x7.fffff8p-128f 0x3.fffffcp+24f 0xf.fffffp+124f : plus_infty : inexact overflow errno-erange errno-erange-ok
+= fma downward dbl-64 0x7.fffff8p-128 0x3.fffffcp+24 0xf.fffffp+124 : 0xf.fffffp+124 : inexact
+= fma tonearest dbl-64 0x7.fffff8p-128 0x3.fffffcp+24 0xf.fffffp+124 : 0xf.fffffp+124 : inexact
+= fma towardzero dbl-64 0x7.fffff8p-128 0x3.fffffcp+24 0xf.fffffp+124 : 0xf.fffffp+124 : inexact
+= fma upward dbl-64 0x7.fffff8p-128 0x3.fffffcp+24 0xf.fffffp+124 : 0xf.fffff00000008p+124 : inexact
+= fma downward ldbl-96-intel 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma tonearest ldbl-96-intel 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma towardzero ldbl-96-intel 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma upward ldbl-96-intel 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffff0000000001p+124L : inexact
+= fma downward ldbl-96-m68k 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma tonearest ldbl-96-m68k 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma towardzero ldbl-96-m68k 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma upward ldbl-96-m68k 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffff0000000001p+124L : inexact
+= fma downward ldbl-128 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma tonearest ldbl-128 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma towardzero ldbl-128 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma upward ldbl-128 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffff00000000000000000000008p+124L : inexact
+= fma downward ldbl-128ibm 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma tonearest ldbl-128ibm 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma towardzero ldbl-128ibm 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma upward ldbl-128ibm 0x7.fffff8p-128L 0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffff000000000000000000004p+124L : inexact
+fma 0x1.fffffep-126 -0x1.fffffep25 0x1.fffffep127
+= fma downward flt-32 0x7.fffff8p-128f -0x3.fffffcp+24f 0xf.fffffp+124f : 0xf.ffffep+124f : inexact
+= fma tonearest flt-32 0x7.fffff8p-128f -0x3.fffffcp+24f 0xf.fffffp+124f : 0xf.fffffp+124f : inexact
+= fma towardzero flt-32 0x7.fffff8p-128f -0x3.fffffcp+24f 0xf.fffffp+124f : 0xf.ffffep+124f : inexact
+= fma upward flt-32 0x7.fffff8p-128f -0x3.fffffcp+24f 0xf.fffffp+124f : 0xf.fffffp+124f : inexact
+= fma downward dbl-64 0x7.fffff8p-128 -0x3.fffffcp+24 0xf.fffffp+124 : 0xf.ffffefffffff8p+124 : inexact
+= fma tonearest dbl-64 0x7.fffff8p-128 -0x3.fffffcp+24 0xf.fffffp+124 : 0xf.fffffp+124 : inexact
+= fma towardzero dbl-64 0x7.fffff8p-128 -0x3.fffffcp+24 0xf.fffffp+124 : 0xf.ffffefffffff8p+124 : inexact
+= fma upward dbl-64 0x7.fffff8p-128 -0x3.fffffcp+24 0xf.fffffp+124 : 0xf.fffffp+124 : inexact
+= fma downward ldbl-96-intel 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.ffffeffffffffffp+124L : inexact
+= fma tonearest ldbl-96-intel 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma towardzero ldbl-96-intel 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.ffffeffffffffffp+124L : inexact
+= fma upward ldbl-96-intel 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma downward ldbl-96-m68k 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.ffffeffffffffffp+124L : inexact
+= fma tonearest ldbl-96-m68k 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma towardzero ldbl-96-m68k 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.ffffeffffffffffp+124L : inexact
+= fma upward ldbl-96-m68k 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma downward ldbl-128 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.ffffeffffffffffffffffffffff8p+124L : inexact
+= fma tonearest ldbl-128 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma towardzero ldbl-128 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.ffffeffffffffffffffffffffff8p+124L : inexact
+= fma upward ldbl-128 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma downward ldbl-128ibm 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.ffffeffffffffffffffffffffcp+124L : inexact
+= fma tonearest ldbl-128ibm 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+= fma towardzero ldbl-128ibm 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.ffffeffffffffffffffffffffcp+124L : inexact
+= fma upward ldbl-128ibm 0x7.fffff8p-128L -0x3.fffffcp+24L 0xf.fffffp+124L : 0xf.fffffp+124L : inexact
+fma 0x1.fffffep-126 0x1.fffffep25 -0x1.fffffep127
+= fma downward flt-32 0x7.fffff8p-128f 0x3.fffffcp+24f -0xf.fffffp+124f : -0xf.fffffp+124f : inexact
+= fma tonearest flt-32 0x7.fffff8p-128f 0x3.fffffcp+24f -0xf.fffffp+124f : -0xf.fffffp+124f : inexact
+= fma towardzero flt-32 0x7.fffff8p-128f 0x3.fffffcp+24f -0xf.fffffp+124f : -0xf.ffffep+124f : inexact
+= fma upward flt-32 0x7.fffff8p-128f 0x3.fffffcp+24f -0xf.fffffp+124f : -0xf.ffffep+124f : inexact
+= fma downward dbl-64 0x7.fffff8p-128 0x3.fffffcp+24 -0xf.fffffp+124 : -0xf.fffffp+124 : inexact
+= fma tonearest dbl-64 0x7.fffff8p-128 0x3.fffffcp+24 -0xf.fffffp+124 : -0xf.fffffp+124 : inexact
+= fma towardzero dbl-64 0x7.fffff8p-128 0x3.fffffcp+24 -0xf.fffffp+124 : -0xf.ffffefffffff8p+124 : inexact
+= fma upward dbl-64 0x7.fffff8p-128 0x3.fffffcp+24 -0xf.fffffp+124 : -0xf.ffffefffffff8p+124 : inexact
+= fma downward ldbl-96-intel 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma tonearest ldbl-96-intel 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma towardzero ldbl-96-intel 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.ffffeffffffffffp+124L : inexact
+= fma upward ldbl-96-intel 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.ffffeffffffffffp+124L : inexact
+= fma downward ldbl-96-m68k 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma tonearest ldbl-96-m68k 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma towardzero ldbl-96-m68k 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.ffffeffffffffffp+124L : inexact
+= fma upward ldbl-96-m68k 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.ffffeffffffffffp+124L : inexact
+= fma downward ldbl-128 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma tonearest ldbl-128 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma towardzero ldbl-128 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.ffffeffffffffffffffffffffff8p+124L : inexact
+= fma upward ldbl-128 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.ffffeffffffffffffffffffffff8p+124L : inexact
+= fma downward ldbl-128ibm 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma tonearest ldbl-128ibm 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma towardzero ldbl-128ibm 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.ffffeffffffffffffffffffffcp+124L : inexact
+= fma upward ldbl-128ibm 0x7.fffff8p-128L 0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.ffffeffffffffffffffffffffcp+124L : inexact
+fma 0x1.fffffep-126 -0x1.fffffep25 -0x1.fffffep127 missing-errno
+= fma downward flt-32 0x7.fffff8p-128f -0x3.fffffcp+24f -0xf.fffffp+124f : minus_infty : inexact overflow errno-erange errno-erange-ok
+= fma tonearest flt-32 0x7.fffff8p-128f -0x3.fffffcp+24f -0xf.fffffp+124f : -0xf.fffffp+124f : inexact
+= fma towardzero flt-32 0x7.fffff8p-128f -0x3.fffffcp+24f -0xf.fffffp+124f : -0xf.fffffp+124f : inexact
+= fma upward flt-32 0x7.fffff8p-128f -0x3.fffffcp+24f -0xf.fffffp+124f : -0xf.fffffp+124f : inexact
+= fma downward dbl-64 0x7.fffff8p-128 -0x3.fffffcp+24 -0xf.fffffp+124 : -0xf.fffff00000008p+124 : inexact
+= fma tonearest dbl-64 0x7.fffff8p-128 -0x3.fffffcp+24 -0xf.fffffp+124 : -0xf.fffffp+124 : inexact
+= fma towardzero dbl-64 0x7.fffff8p-128 -0x3.fffffcp+24 -0xf.fffffp+124 : -0xf.fffffp+124 : inexact
+= fma upward dbl-64 0x7.fffff8p-128 -0x3.fffffcp+24 -0xf.fffffp+124 : -0xf.fffffp+124 : inexact
+= fma downward ldbl-96-intel 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffff0000000001p+124L : inexact
+= fma tonearest ldbl-96-intel 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma towardzero ldbl-96-intel 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma upward ldbl-96-intel 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma downward ldbl-96-m68k 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffff0000000001p+124L : inexact
+= fma tonearest ldbl-96-m68k 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma towardzero ldbl-96-m68k 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma upward ldbl-96-m68k 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma downward ldbl-128 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffff00000000000000000000008p+124L : inexact
+= fma tonearest ldbl-128 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma towardzero ldbl-128 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma upward ldbl-128 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma downward ldbl-128ibm 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffff000000000000000000004p+124L : inexact
+= fma tonearest ldbl-128ibm 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma towardzero ldbl-128ibm 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+= fma upward ldbl-128ibm 0x7.fffff8p-128L -0x3.fffffcp+24L -0xf.fffffp+124L : -0xf.fffffp+124L : inexact
+fma 0x1.fffffffffffffp-1022 0x1.fffffffffffffp54 0x1.fffffffffffffp1023 missing-errno
+= fma downward dbl-64 0x7.ffffffffffffcp-1024 0x7.ffffffffffffcp+52 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 : inexact
+= fma tonearest dbl-64 0x7.ffffffffffffcp-1024 0x7.ffffffffffffcp+52 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 : inexact
+= fma towardzero dbl-64 0x7.ffffffffffffcp-1024 0x7.ffffffffffffcp+52 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 : inexact
+= fma upward dbl-64 0x7.ffffffffffffcp-1024 0x7.ffffffffffffcp+52 0xf.ffffffffffff8p+1020 : plus_infty : inexact overflow errno-erange errno-erange-ok
+= fma downward ldbl-96-intel 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma tonearest ldbl-96-intel 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-96-intel 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma upward ldbl-96-intel 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff801p+1020L : inexact
+= fma downward ldbl-96-m68k 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma tonearest ldbl-96-m68k 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-96-m68k 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma upward ldbl-96-m68k 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff801p+1020L : inexact
+= fma downward ldbl-128 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma tonearest ldbl-128 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-128 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma upward ldbl-128 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8000000000000008p+1020L : inexact
+= fma downward ldbl-128ibm 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma tonearest ldbl-128ibm 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-128ibm 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma upward ldbl-128ibm 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff80000000000004p+1020L : inexact
+fma 0x1.fffffffffffffp-1022 -0x1.fffffffffffffp54 0x1.fffffffffffffp1023
+= fma downward dbl-64 0x7.ffffffffffffcp-1024 -0x7.ffffffffffffcp+52 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffp+1020 : inexact
+= fma tonearest dbl-64 0x7.ffffffffffffcp-1024 -0x7.ffffffffffffcp+52 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 : inexact
+= fma towardzero dbl-64 0x7.ffffffffffffcp-1024 -0x7.ffffffffffffcp+52 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffp+1020 : inexact
+= fma upward dbl-64 0x7.ffffffffffffcp-1024 -0x7.ffffffffffffcp+52 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 : inexact
+= fma downward ldbl-96-intel 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff7ffp+1020L : inexact
+= fma tonearest ldbl-96-intel 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-96-intel 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff7ffp+1020L : inexact
+= fma upward ldbl-96-intel 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma downward ldbl-96-m68k 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff7ffp+1020L : inexact
+= fma tonearest ldbl-96-m68k 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-96-m68k 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff7ffp+1020L : inexact
+= fma upward ldbl-96-m68k 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma downward ldbl-128 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff7ffffffffffffff8p+1020L : inexact
+= fma tonearest ldbl-128 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-128 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff7ffffffffffffff8p+1020L : inexact
+= fma upward ldbl-128 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma downward ldbl-128ibm 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff7ffffffffffffcp+1020L : inexact
+= fma tonearest ldbl-128ibm 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-128ibm 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff7ffffffffffffcp+1020L : inexact
+= fma upward ldbl-128ibm 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L : inexact
+fma 0x1.fffffffffffffp-1022 0x1.fffffffffffffp54 -0x1.fffffffffffffp1023
+= fma downward dbl-64 0x7.ffffffffffffcp-1024 0x7.ffffffffffffcp+52 -0xf.ffffffffffff8p+1020 : -0xf.ffffffffffff8p+1020 : inexact
+= fma tonearest dbl-64 0x7.ffffffffffffcp-1024 0x7.ffffffffffffcp+52 -0xf.ffffffffffff8p+1020 : -0xf.ffffffffffff8p+1020 : inexact
+= fma towardzero dbl-64 0x7.ffffffffffffcp-1024 0x7.ffffffffffffcp+52 -0xf.ffffffffffff8p+1020 : -0xf.ffffffffffffp+1020 : inexact
+= fma upward dbl-64 0x7.ffffffffffffcp-1024 0x7.ffffffffffffcp+52 -0xf.ffffffffffff8p+1020 : -0xf.ffffffffffffp+1020 : inexact
+= fma downward ldbl-96-intel 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma tonearest ldbl-96-intel 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-96-intel 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff7ffp+1020L : inexact
+= fma upward ldbl-96-intel 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff7ffp+1020L : inexact
+= fma downward ldbl-96-m68k 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma tonearest ldbl-96-m68k 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-96-m68k 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff7ffp+1020L : inexact
+= fma upward ldbl-96-m68k 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff7ffp+1020L : inexact
+= fma downward ldbl-128 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma tonearest ldbl-128 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-128 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff7ffffffffffffff8p+1020L : inexact
+= fma upward ldbl-128 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff7ffffffffffffff8p+1020L : inexact
+= fma downward ldbl-128ibm 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma tonearest ldbl-128ibm 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-128ibm 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff7ffffffffffffcp+1020L : inexact
+= fma upward ldbl-128ibm 0x7.ffffffffffffcp-1024L 0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff7ffffffffffffcp+1020L : inexact
+fma 0x1.fffffffffffffp-1022 -0x1.fffffffffffffp54 -0x1.fffffffffffffp1023 missing-errno
+= fma downward dbl-64 0x7.ffffffffffffcp-1024 -0x7.ffffffffffffcp+52 -0xf.ffffffffffff8p+1020 : minus_infty : inexact overflow errno-erange errno-erange-ok
+= fma tonearest dbl-64 0x7.ffffffffffffcp-1024 -0x7.ffffffffffffcp+52 -0xf.ffffffffffff8p+1020 : -0xf.ffffffffffff8p+1020 : inexact
+= fma towardzero dbl-64 0x7.ffffffffffffcp-1024 -0x7.ffffffffffffcp+52 -0xf.ffffffffffff8p+1020 : -0xf.ffffffffffff8p+1020 : inexact
+= fma upward dbl-64 0x7.ffffffffffffcp-1024 -0x7.ffffffffffffcp+52 -0xf.ffffffffffff8p+1020 : -0xf.ffffffffffff8p+1020 : inexact
+= fma downward ldbl-96-intel 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff801p+1020L : inexact
+= fma tonearest ldbl-96-intel 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-96-intel 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma upward ldbl-96-intel 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma downward ldbl-96-m68k 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff801p+1020L : inexact
+= fma tonearest ldbl-96-m68k 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-96-m68k 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma upward ldbl-96-m68k 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma downward ldbl-128 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8000000000000008p+1020L : inexact
+= fma tonearest ldbl-128 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-128 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma upward ldbl-128 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma downward ldbl-128ibm 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff80000000000004p+1020L : inexact
+= fma tonearest ldbl-128ibm 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma towardzero ldbl-128ibm 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+= fma upward ldbl-128ibm 0x7.ffffffffffffcp-1024L -0x7.ffffffffffffcp+52L -0xf.ffffffffffff8p+1020L : -0xf.ffffffffffff8p+1020L : inexact
+fma 0x1.fffffffffffffffep-16382 0x1.fffffffffffffffep65 0x1.fffffffffffffffep16383 missing-errno
+= fma downward ldbl-96-intel 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma tonearest ldbl-96-intel 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-96-intel 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma upward ldbl-96-intel 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : plus_infty : inexact overflow errno-erange errno-erange-ok
+= fma downward ldbl-96-m68k 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma tonearest ldbl-96-m68k 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-96-m68k 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma upward ldbl-96-m68k 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : plus_infty : inexact overflow errno-erange errno-erange-ok
+= fma downward ldbl-128 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma tonearest ldbl-128 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-128 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma upward ldbl-128 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffff0000000000008p+16380L : inexact
+fma 0x1.fffffffffffffffep-16382 -0x1.fffffffffffffffep65 0x1.fffffffffffffffep16383
+= fma downward ldbl-96-intel 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.ffffffffffffffep+16380L : inexact
+= fma tonearest ldbl-96-intel 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-96-intel 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.ffffffffffffffep+16380L : inexact
+= fma upward ldbl-96-intel 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma downward ldbl-96-m68k 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.ffffffffffffffep+16380L : inexact
+= fma tonearest ldbl-96-m68k 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-96-m68k 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.ffffffffffffffep+16380L : inexact
+= fma upward ldbl-96-m68k 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma downward ldbl-128 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.ffffffffffffffeffffffffffff8p+16380L : inexact
+= fma tonearest ldbl-128 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-128 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.ffffffffffffffeffffffffffff8p+16380L : inexact
+= fma upward ldbl-128 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L : inexact
+fma 0x1.fffffffffffffffep-16382 0x1.fffffffffffffffep65 -0x1.fffffffffffffffep16383
+= fma downward ldbl-96-intel 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma tonearest ldbl-96-intel 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-96-intel 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.ffffffffffffffep+16380L : inexact
+= fma upward ldbl-96-intel 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.ffffffffffffffep+16380L : inexact
+= fma downward ldbl-96-m68k 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma tonearest ldbl-96-m68k 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-96-m68k 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.ffffffffffffffep+16380L : inexact
+= fma upward ldbl-96-m68k 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.ffffffffffffffep+16380L : inexact
+= fma downward ldbl-128 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma tonearest ldbl-128 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-128 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.ffffffffffffffeffffffffffff8p+16380L : inexact
+= fma upward ldbl-128 0x7.fffffffffffffff8p-16384L 0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.ffffffffffffffeffffffffffff8p+16380L : inexact
+fma 0x1.fffffffffffffffep-16382 -0x1.fffffffffffffffep65 -0x1.fffffffffffffffep16383 missing-errno
+= fma downward ldbl-96-intel 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : minus_infty : inexact overflow errno-erange errno-erange-ok
+= fma tonearest ldbl-96-intel 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-96-intel 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma upward ldbl-96-intel 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma downward ldbl-96-m68k 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : minus_infty : inexact overflow errno-erange errno-erange-ok
+= fma tonearest ldbl-96-m68k 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-96-m68k 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma upward ldbl-96-m68k 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma downward ldbl-128 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffff0000000000008p+16380L : inexact
+= fma tonearest ldbl-128 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma towardzero ldbl-128 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+= fma upward ldbl-128 0x7.fffffffffffffff8p-16384L -0x3.fffffffffffffffcp+64L -0xf.fffffffffffffffp+16380L : -0xf.fffffffffffffffp+16380L : inexact
+fma 0x1.ffffffffffffffffffffffffffffp-16382 0x1.ffffffffffffffffffffffffffffp114 0x1.ffffffffffffffffffffffffffffp16383 missing-errno
+= fma downward ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L 0x7.fffffffffffffffffffffffffffcp+112L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L : inexact
+= fma tonearest ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L 0x7.fffffffffffffffffffffffffffcp+112L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L : inexact
+= fma towardzero ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L 0x7.fffffffffffffffffffffffffffcp+112L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L : inexact
+= fma upward ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L 0x7.fffffffffffffffffffffffffffcp+112L 0xf.fffffffffffffffffffffffffff8p+16380L : plus_infty : inexact overflow errno-erange errno-erange-ok
+fma 0x1.ffffffffffffffffffffffffffffp-16382 -0x1.ffffffffffffffffffffffffffffp114 0x1.ffffffffffffffffffffffffffffp16383
+= fma downward ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L -0x7.fffffffffffffffffffffffffffcp+112L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffffp+16380L : inexact
+= fma tonearest ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L -0x7.fffffffffffffffffffffffffffcp+112L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L : inexact
+= fma towardzero ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L -0x7.fffffffffffffffffffffffffffcp+112L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffffp+16380L : inexact
+= fma upward ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L -0x7.fffffffffffffffffffffffffffcp+112L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L : inexact
+fma 0x1.ffffffffffffffffffffffffffffp-16382 0x1.ffffffffffffffffffffffffffffp114 -0x1.ffffffffffffffffffffffffffffp16383
+= fma downward ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L 0x7.fffffffffffffffffffffffffffcp+112L -0xf.fffffffffffffffffffffffffff8p+16380L : -0xf.fffffffffffffffffffffffffff8p+16380L : inexact
+= fma tonearest ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L 0x7.fffffffffffffffffffffffffffcp+112L -0xf.fffffffffffffffffffffffffff8p+16380L : -0xf.fffffffffffffffffffffffffff8p+16380L : inexact
+= fma towardzero ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L 0x7.fffffffffffffffffffffffffffcp+112L -0xf.fffffffffffffffffffffffffff8p+16380L : -0xf.fffffffffffffffffffffffffffp+16380L : inexact
+= fma upward ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L 0x7.fffffffffffffffffffffffffffcp+112L -0xf.fffffffffffffffffffffffffff8p+16380L : -0xf.fffffffffffffffffffffffffffp+16380L : inexact
+fma 0x1.ffffffffffffffffffffffffffffp-16382 -0x1.ffffffffffffffffffffffffffffp114 -0x1.ffffffffffffffffffffffffffffp16383 missing-errno
+= fma downward ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L -0x7.fffffffffffffffffffffffffffcp+112L -0xf.fffffffffffffffffffffffffff8p+16380L : minus_infty : inexact overflow errno-erange errno-erange-ok
+= fma tonearest ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L -0x7.fffffffffffffffffffffffffffcp+112L -0xf.fffffffffffffffffffffffffff8p+16380L : -0xf.fffffffffffffffffffffffffff8p+16380L : inexact
+= fma towardzero ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L -0x7.fffffffffffffffffffffffffffcp+112L -0xf.fffffffffffffffffffffffffff8p+16380L : -0xf.fffffffffffffffffffffffffff8p+16380L : inexact
+= fma upward ldbl-128 0x7.fffffffffffffffffffffffffffcp-16384L -0x7.fffffffffffffffffffffffffffcp+112L -0xf.fffffffffffffffffffffffffff8p+16380L : -0xf.fffffffffffffffffffffffffff8p+16380L : inexact
 hypot 0 0
 = hypot downward flt-32 0x0p+0f 0x0p+0f : 0x0p+0f : inexact-ok
 = hypot tonearest flt-32 0x0p+0f 0x0p+0f : 0x0p+0f : inexact-ok
diff --git a/sysdeps/ieee754/dbl-64/s_fma.c b/sysdeps/ieee754/dbl-64/s_fma.c
index 716b41273d..278b690f9b 100644
--- a/sysdeps/ieee754/dbl-64/s_fma.c
+++ b/sysdeps/ieee754/dbl-64/s_fma.c
@@ -117,7 +117,7 @@ __fma (double x, double y, double z)
 	     very small, adjust them up to avoid spurious underflows,
 	     rather than down.  */
 	  if (u.ieee.exponent + v.ieee.exponent
-	      <= IEEE754_DOUBLE_BIAS + DBL_MANT_DIG)
+	      <= IEEE754_DOUBLE_BIAS + 2 * DBL_MANT_DIG)
 	    {
 	      if (u.ieee.exponent > v.ieee.exponent)
 		u.ieee.exponent += 2 * DBL_MANT_DIG + 2;
diff --git a/sysdeps/ieee754/ldbl-128/s_fmal.c b/sysdeps/ieee754/ldbl-128/s_fmal.c
index b13178ffe7..5abc9105e5 100644
--- a/sysdeps/ieee754/ldbl-128/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-128/s_fmal.c
@@ -121,7 +121,7 @@ __fmal (long double x, long double y, long double z)
 	     very small, adjust them up to avoid spurious underflows,
 	     rather than down.  */
 	  if (u.ieee.exponent + v.ieee.exponent
-	      <= IEEE854_LONG_DOUBLE_BIAS + LDBL_MANT_DIG)
+	      <= IEEE854_LONG_DOUBLE_BIAS + 2 * LDBL_MANT_DIG)
 	    {
 	      if (u.ieee.exponent > v.ieee.exponent)
 		u.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
diff --git a/sysdeps/ieee754/ldbl-96/s_fmal.c b/sysdeps/ieee754/ldbl-96/s_fmal.c
index eec5a02e0b..1232c9ebad 100644
--- a/sysdeps/ieee754/ldbl-96/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-96/s_fmal.c
@@ -119,7 +119,7 @@ __fmal (long double x, long double y, long double z)
 	     very small, adjust them up to avoid spurious underflows,
 	     rather than down.  */
 	  if (u.ieee.exponent + v.ieee.exponent
-	      <= IEEE854_LONG_DOUBLE_BIAS + LDBL_MANT_DIG)
+	      <= IEEE854_LONG_DOUBLE_BIAS + 2 * LDBL_MANT_DIG)
 	    {
 	      if (u.ieee.exponent > v.ieee.exponent)
 		u.ieee.exponent += 2 * LDBL_MANT_DIG + 2;