about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--NEWS6
-rw-r--r--math/auto-libm-test-in10
-rw-r--r--math/auto-libm-test-out357
-rw-r--r--soft-fp/op-common.h1
5 files changed, 381 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 32b766728e..8fa864c2a6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2015-02-06  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #17932]
+	* soft-fp/op-common.h (_FP_FMA): Set exponent of result in case
+	where multiplication results in zero and third argument is finite
+	and nonzero.
+	* math/auto-libm-test-in: Add more tests of fma.
+	* math/auto-libm-test-out: Regenerated.
+
 	* soft-fp/op-common.h (_FP_CMP_CHECK_DENORM): New macro.
 	(_FP_CMP_CHECK_FLUSH_ZERO): Likewise.
 	(_FP_CMP): Use_FP_CMP_CHECK_DENORM and _FP_CMP_CHECK_FLUSH_ZERO.
diff --git a/NEWS b/NEWS
index 617cdbb605..1f839bce2a 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,12 @@ See the end for copying conditions.
 Please send GNU C library bug reports via <http://sourceware.org/bugzilla/>
 using `glibc' in the "product" field.
 
+Version 2.22
+
+* The following bugs are resolved with this release:
+
+  17932.
+
 Version 2.21
 
 * The following bugs are resolved with this release:
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 8db3eb6041..ad43113fd1 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1024,6 +1024,16 @@ fma 1.0 -1.0 1.0
 fma -1.0 1.0 1.0
 fma -1.0 -1.0 -1.0
 
+fma 0 0 1
+fma 0 0 2
+fma 0 0 max
+fma 0 1 1
+fma 1 0 1
+fma 0 1 2
+fma 1 0 2
+fma 0 1 max
+fma 1 0 max
+
 # Bug 6801: errno setting may be missing.
 fma min min 0 missing-errno
 fma min min -0 missing-errno
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 4187d610b2..daa1468c03 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -94542,6 +94542,363 @@ fma -1.0 -1.0 -1.0
 = fma tonearest ldbl-128ibm -0x1p+0L -0x1p+0L -0x1p+0L : 0x0p+0L :
 = fma towardzero ldbl-128ibm -0x1p+0L -0x1p+0L -0x1p+0L : 0x0p+0L :
 = fma upward ldbl-128ibm -0x1p+0L -0x1p+0L -0x1p+0L : 0x0p+0L :
+fma 0 0 1
+= fma downward flt-32 0x0p+0f 0x0p+0f 0x1p+0f : 0x1p+0f :
+= fma tonearest flt-32 0x0p+0f 0x0p+0f 0x1p+0f : 0x1p+0f :
+= fma towardzero flt-32 0x0p+0f 0x0p+0f 0x1p+0f : 0x1p+0f :
+= fma upward flt-32 0x0p+0f 0x0p+0f 0x1p+0f : 0x1p+0f :
+= fma downward dbl-64 0x0p+0 0x0p+0 0x1p+0 : 0x1p+0 :
+= fma tonearest dbl-64 0x0p+0 0x0p+0 0x1p+0 : 0x1p+0 :
+= fma towardzero dbl-64 0x0p+0 0x0p+0 0x1p+0 : 0x1p+0 :
+= fma upward dbl-64 0x0p+0 0x0p+0 0x1p+0 : 0x1p+0 :
+= fma downward ldbl-96-intel 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-96-intel 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-96-intel 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-96-intel 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma downward ldbl-96-m68k 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-96-m68k 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-96-m68k 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-96-m68k 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma downward ldbl-128 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-128 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-128 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-128 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma downward ldbl-128ibm 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-128ibm 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-128ibm 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-128ibm 0x0p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+fma 0 0 2
+= fma downward flt-32 0x0p+0f 0x0p+0f 0x2p+0f : 0x2p+0f :
+= fma tonearest flt-32 0x0p+0f 0x0p+0f 0x2p+0f : 0x2p+0f :
+= fma towardzero flt-32 0x0p+0f 0x0p+0f 0x2p+0f : 0x2p+0f :
+= fma upward flt-32 0x0p+0f 0x0p+0f 0x2p+0f : 0x2p+0f :
+= fma downward dbl-64 0x0p+0 0x0p+0 0x2p+0 : 0x2p+0 :
+= fma tonearest dbl-64 0x0p+0 0x0p+0 0x2p+0 : 0x2p+0 :
+= fma towardzero dbl-64 0x0p+0 0x0p+0 0x2p+0 : 0x2p+0 :
+= fma upward dbl-64 0x0p+0 0x0p+0 0x2p+0 : 0x2p+0 :
+= fma downward ldbl-96-intel 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-96-intel 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-96-intel 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-96-intel 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma downward ldbl-96-m68k 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-96-m68k 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-96-m68k 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-96-m68k 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma downward ldbl-128 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-128 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-128 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-128 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma downward ldbl-128ibm 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-128ibm 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-128ibm 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-128ibm 0x0p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+fma 0 0 max
+= fma downward flt-32 0x0p+0f 0x0p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma tonearest flt-32 0x0p+0f 0x0p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma towardzero flt-32 0x0p+0f 0x0p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma upward flt-32 0x0p+0f 0x0p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma downward dbl-64 0x0p+0 0x0p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma tonearest dbl-64 0x0p+0 0x0p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma towardzero dbl-64 0x0p+0 0x0p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma upward dbl-64 0x0p+0 0x0p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma downward ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward dbl-64 0x0p+0 0x0p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma tonearest dbl-64 0x0p+0 0x0p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma towardzero dbl-64 0x0p+0 0x0p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma upward dbl-64 0x0p+0 0x0p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma downward ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-128 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-128 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-128 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-128 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma tonearest ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma towardzero ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma upward ldbl-96-intel 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma downward ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma tonearest ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma towardzero ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma upward ldbl-96-m68k 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma downward ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma tonearest ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma towardzero ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma upward ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma downward ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma tonearest ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma towardzero ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma upward ldbl-128 0x0p+0L 0x0p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma downward ldbl-128 0x0p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma tonearest ldbl-128 0x0p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma towardzero ldbl-128 0x0p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma upward ldbl-128 0x0p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma downward ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma tonearest ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma towardzero ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma upward ldbl-128ibm 0x0p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+fma 0 1 1
+= fma downward flt-32 0x0p+0f 0x1p+0f 0x1p+0f : 0x1p+0f :
+= fma tonearest flt-32 0x0p+0f 0x1p+0f 0x1p+0f : 0x1p+0f :
+= fma towardzero flt-32 0x0p+0f 0x1p+0f 0x1p+0f : 0x1p+0f :
+= fma upward flt-32 0x0p+0f 0x1p+0f 0x1p+0f : 0x1p+0f :
+= fma downward dbl-64 0x0p+0 0x1p+0 0x1p+0 : 0x1p+0 :
+= fma tonearest dbl-64 0x0p+0 0x1p+0 0x1p+0 : 0x1p+0 :
+= fma towardzero dbl-64 0x0p+0 0x1p+0 0x1p+0 : 0x1p+0 :
+= fma upward dbl-64 0x0p+0 0x1p+0 0x1p+0 : 0x1p+0 :
+= fma downward ldbl-96-intel 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-96-intel 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-96-intel 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-96-intel 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma downward ldbl-96-m68k 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-96-m68k 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-96-m68k 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-96-m68k 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma downward ldbl-128 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-128 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-128 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-128 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma downward ldbl-128ibm 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-128ibm 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-128ibm 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-128ibm 0x0p+0L 0x1p+0L 0x1p+0L : 0x1p+0L :
+fma 1 0 1
+= fma downward flt-32 0x1p+0f 0x0p+0f 0x1p+0f : 0x1p+0f :
+= fma tonearest flt-32 0x1p+0f 0x0p+0f 0x1p+0f : 0x1p+0f :
+= fma towardzero flt-32 0x1p+0f 0x0p+0f 0x1p+0f : 0x1p+0f :
+= fma upward flt-32 0x1p+0f 0x0p+0f 0x1p+0f : 0x1p+0f :
+= fma downward dbl-64 0x1p+0 0x0p+0 0x1p+0 : 0x1p+0 :
+= fma tonearest dbl-64 0x1p+0 0x0p+0 0x1p+0 : 0x1p+0 :
+= fma towardzero dbl-64 0x1p+0 0x0p+0 0x1p+0 : 0x1p+0 :
+= fma upward dbl-64 0x1p+0 0x0p+0 0x1p+0 : 0x1p+0 :
+= fma downward ldbl-96-intel 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-96-intel 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-96-intel 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-96-intel 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma downward ldbl-96-m68k 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-96-m68k 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-96-m68k 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-96-m68k 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma downward ldbl-128 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-128 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-128 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-128 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma downward ldbl-128ibm 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma tonearest ldbl-128ibm 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma towardzero ldbl-128ibm 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+= fma upward ldbl-128ibm 0x1p+0L 0x0p+0L 0x1p+0L : 0x1p+0L :
+fma 0 1 2
+= fma downward flt-32 0x0p+0f 0x1p+0f 0x2p+0f : 0x2p+0f :
+= fma tonearest flt-32 0x0p+0f 0x1p+0f 0x2p+0f : 0x2p+0f :
+= fma towardzero flt-32 0x0p+0f 0x1p+0f 0x2p+0f : 0x2p+0f :
+= fma upward flt-32 0x0p+0f 0x1p+0f 0x2p+0f : 0x2p+0f :
+= fma downward dbl-64 0x0p+0 0x1p+0 0x2p+0 : 0x2p+0 :
+= fma tonearest dbl-64 0x0p+0 0x1p+0 0x2p+0 : 0x2p+0 :
+= fma towardzero dbl-64 0x0p+0 0x1p+0 0x2p+0 : 0x2p+0 :
+= fma upward dbl-64 0x0p+0 0x1p+0 0x2p+0 : 0x2p+0 :
+= fma downward ldbl-96-intel 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-96-intel 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-96-intel 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-96-intel 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma downward ldbl-96-m68k 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-96-m68k 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-96-m68k 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-96-m68k 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma downward ldbl-128 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-128 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-128 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-128 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma downward ldbl-128ibm 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-128ibm 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-128ibm 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-128ibm 0x0p+0L 0x1p+0L 0x2p+0L : 0x2p+0L :
+fma 1 0 2
+= fma downward flt-32 0x1p+0f 0x0p+0f 0x2p+0f : 0x2p+0f :
+= fma tonearest flt-32 0x1p+0f 0x0p+0f 0x2p+0f : 0x2p+0f :
+= fma towardzero flt-32 0x1p+0f 0x0p+0f 0x2p+0f : 0x2p+0f :
+= fma upward flt-32 0x1p+0f 0x0p+0f 0x2p+0f : 0x2p+0f :
+= fma downward dbl-64 0x1p+0 0x0p+0 0x2p+0 : 0x2p+0 :
+= fma tonearest dbl-64 0x1p+0 0x0p+0 0x2p+0 : 0x2p+0 :
+= fma towardzero dbl-64 0x1p+0 0x0p+0 0x2p+0 : 0x2p+0 :
+= fma upward dbl-64 0x1p+0 0x0p+0 0x2p+0 : 0x2p+0 :
+= fma downward ldbl-96-intel 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-96-intel 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-96-intel 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-96-intel 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma downward ldbl-96-m68k 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-96-m68k 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-96-m68k 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-96-m68k 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma downward ldbl-128 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-128 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-128 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-128 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma downward ldbl-128ibm 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma tonearest ldbl-128ibm 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma towardzero ldbl-128ibm 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+= fma upward ldbl-128ibm 0x1p+0L 0x0p+0L 0x2p+0L : 0x2p+0L :
+fma 0 1 max
+= fma downward flt-32 0x0p+0f 0x1p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma tonearest flt-32 0x0p+0f 0x1p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma towardzero flt-32 0x0p+0f 0x1p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma upward flt-32 0x0p+0f 0x1p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma downward dbl-64 0x0p+0 0x1p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma tonearest dbl-64 0x0p+0 0x1p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma towardzero dbl-64 0x0p+0 0x1p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma upward dbl-64 0x0p+0 0x1p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma downward ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward dbl-64 0x0p+0 0x1p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma tonearest dbl-64 0x0p+0 0x1p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma towardzero dbl-64 0x0p+0 0x1p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma upward dbl-64 0x0p+0 0x1p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma downward ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-128 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-128 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-128 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-128 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma tonearest ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma towardzero ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma upward ldbl-96-intel 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma downward ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma tonearest ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma towardzero ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma upward ldbl-96-m68k 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma downward ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma tonearest ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma towardzero ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma upward ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma downward ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma tonearest ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma towardzero ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma upward ldbl-128 0x0p+0L 0x1p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma downward ldbl-128 0x0p+0L 0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma tonearest ldbl-128 0x0p+0L 0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma towardzero ldbl-128 0x0p+0L 0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma upward ldbl-128 0x0p+0L 0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma downward ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma tonearest ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma towardzero ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma upward ldbl-128ibm 0x0p+0L 0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+fma 1 0 max
+= fma downward flt-32 0x1p+0f 0x0p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma tonearest flt-32 0x1p+0f 0x0p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma towardzero flt-32 0x1p+0f 0x0p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma upward flt-32 0x1p+0f 0x0p+0f 0xf.fffffp+124f : 0xf.fffffp+124f :
+= fma downward dbl-64 0x1p+0 0x0p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma tonearest dbl-64 0x1p+0 0x0p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma towardzero dbl-64 0x1p+0 0x0p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma upward dbl-64 0x1p+0 0x0p+0 0xf.fffffp+124 : 0xf.fffffp+124 :
+= fma downward ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma tonearest ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma towardzero ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma upward ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.fffffp+124L : 0xf.fffffp+124L :
+= fma downward dbl-64 0x1p+0 0x0p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma tonearest dbl-64 0x1p+0 0x0p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma towardzero dbl-64 0x1p+0 0x0p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma upward dbl-64 0x1p+0 0x0p+0 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+1020 :
+= fma downward ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-128 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-128 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-128 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-128 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma tonearest ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma towardzero ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma upward ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.ffffffffffff8p+1020L : 0xf.ffffffffffff8p+1020L :
+= fma downward ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma tonearest ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma towardzero ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma upward ldbl-96-intel 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma downward ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma tonearest ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma towardzero ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma upward ldbl-96-m68k 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma downward ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma tonearest ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma towardzero ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma upward ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp+16380L :
+= fma downward ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma tonearest ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma towardzero ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma upward ldbl-128 0x1p+0L 0x0p+0L 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p+16380L :
+= fma downward ldbl-128 0x1p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma tonearest ldbl-128 0x1p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma towardzero ldbl-128 0x1p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma upward ldbl-128 0x1p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma downward ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma tonearest ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma towardzero ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
+= fma upward ldbl-128ibm 0x1p+0L 0x0p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L :
 fma min min 0 missing-errno
 = fma downward flt-32 0x4p-128f 0x4p-128f 0x0p+0f : 0x0p+0f : inexact underflow errno-erange errno-erange-ok
 = fma tonearest flt-32 0x4p-128f 0x4p-128f 0x0p+0f : 0x0p+0f : inexact underflow errno-erange errno-erange-ok
diff --git a/soft-fp/op-common.h b/soft-fp/op-common.h
index 389ba3fcfa..342532a4cc 100644
--- a/soft-fp/op-common.h
+++ b/soft-fp/op-common.h
@@ -1116,6 +1116,7 @@
 	  R##_s = Z##_s;						\
 	  _FP_FRAC_COPY_##wc (R, Z);					\
 	  R##_c = Z##_c;						\
+	  R##_e = Z##_e;						\
 	  break;							\
 									\
 	case _FP_CLS_COMBINE (FP_CLS_INF, FP_CLS_INF):			\