aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
Diffstat (limited to 'math')
-rw-r--r--math/auto-libm-test-in30
-rw-r--r--math/auto-libm-test-out-narrow-div3372
-rw-r--r--math/auto-libm-test-out-narrow-mul6156
-rw-r--r--math/math-narrow.h45
4 files changed, 9586 insertions, 17 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 2045a0f8d1..119e2ecb2a 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -4870,6 +4870,21 @@ div 0x1.0000000000008001000000000001p0 0x1.0000000000008p0
# Similar, for double rounding to 64-bit of a division of 53-bit values.
div 0x1ffe1p0 0xfffp0
+# Cases where there is underflow before rounding (for some format) but
+# might not be after rounding, depending on the rounding mode.
+div 0x1p-126 0x1.0000001p0
+div 0x1p-126 -0x1.0000001p0
+div -0x1p-126 0x1.0000001p0
+div -0x1p-126 -0x1.0000001p0
+div 0x1p-1022 0x1.00000000000001p0
+div 0x1p-1022 -0x1.00000000000001p0
+div -0x1p-1022 0x1.00000000000001p0
+div -0x1p-1022 -0x1.00000000000001p0
+div 0x1p-16382 0x1.00000000000000001p0
+div 0x1p-16382 -0x1.00000000000000001p0
+div -0x1p-16382 0x1.00000000000000001p0
+div -0x1p-16382 -0x1.00000000000000001p0
+
erf 0
erf -0
erf 0.125
@@ -6645,6 +6660,21 @@ mul 0x50000000000000005p-64 0xcccccccccccccccccccccccccccdp-114
# This product equals 2^64 + 2^11 + 1.
mul 97689974585 188829449
+# Cases where there is underflow before rounding (for some format) but
+# might not be after rounding, depending on the rounding mode.
+mul 0x0.ffffff8p-126 0x1.0000001p0
+mul 0x0.ffffff8p-126 -0x1.0000001p0
+mul -0x0.ffffff8p-126 0x1.0000001p0
+mul -0x0.ffffff8p-126 -0x1.0000001p0
+mul 0x0.fffffffffffffcp-1022 0x1.00000000000001p0
+mul 0x0.fffffffffffffcp-1022 -0x1.00000000000001p0
+mul -0x0.fffffffffffffcp-1022 0x1.00000000000001p0
+mul -0x0.fffffffffffffcp-1022 -0x1.00000000000001p0
+mul 0x0.ffffffffffffffff8p-16382 0x1.00000000000000001p0
+mul 0x0.ffffffffffffffff8p-16382 -0x1.00000000000000001p0
+mul -0x0.ffffffffffffffff8p-16382 0x1.00000000000000001p0
+mul -0x0.ffffffffffffffff8p-16382 -0x1.00000000000000001p0
+
pow 0 0
pow 0 -0
pow -0 0
diff --git a/math/auto-libm-test-out-narrow-div b/math/auto-libm-test-out-narrow-div
index a0ad670a22..9d29f707c6 100644
--- a/math/auto-libm-test-out-narrow-div
+++ b/math/auto-libm-test-out-narrow-div
@@ -21389,3 +21389,3375 @@ div 0x1ffe1p0 0xfffp0
= div tonearest ibm128:arg_fmt(16,12,0,17) 0x1.ffe1p+16 0xf.ffp+8 : 0x2.0001001001001001001001001p+4 : inexact
= div towardzero ibm128:arg_fmt(16,12,0,17) 0x1.ffe1p+16 0xf.ffp+8 : 0x2.0001001001001001001001001p+4 : inexact
= div upward ibm128:arg_fmt(16,12,0,17) 0x1.ffe1p+16 0xf.ffp+8 : 0x2.00010010010010010010010011p+4 : inexact
+div 0x1p-126 0x1.0000001p0
+= div downward binary32:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div tonearest binary32:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div towardzero binary32:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div upward binary32:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x4p-128 : inexact underflow errno-erange-ok
+= div downward binary64:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000fep-128 : inexact
+= div tonearest binary64:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div towardzero binary64:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000fep-128 : inexact
+= div upward binary64:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div downward intel96:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000ffffcp-128 : inexact
+= div tonearest intel96:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div towardzero intel96:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000ffffcp-128 : inexact
+= div upward intel96:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div downward m68k96:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000ffffcp-128 : inexact
+= div tonearest m68k96:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div towardzero m68k96:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000ffffcp-128 : inexact
+= div upward m68k96:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div downward binary128:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000fffffe000003ffffep-128 : inexact
+= div tonearest binary128:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000fffffe000004p-128 : inexact
+= div towardzero binary128:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000fffffe000003ffffep-128 : inexact
+= div upward binary128:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000fffffe000004p-128 : inexact
+= div downward ibm128:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000fffffe000003fffp-128 : inexact
+= div tonearest ibm128:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000fffffe000004p-128 : inexact
+= div towardzero ibm128:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000fffffe000003fffp-128 : inexact
+= div upward ibm128:arg_fmt(0,1,-126,24) 0x4p-128 0x1.000002p+0 : 0x3.fffff800000fffffe000004p-128 : inexact
+= div downward binary32:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div tonearest binary32:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div towardzero binary32:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div upward binary32:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div downward binary64:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div tonearest binary64:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div towardzero binary64:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div upward binary64:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div downward intel96:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div tonearest intel96:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div towardzero intel96:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div upward intel96:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div downward m68k96:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div tonearest m68k96:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div towardzero m68k96:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div upward m68k96:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div downward binary128:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div tonearest binary128:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div towardzero binary128:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div upward binary128:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div downward ibm128:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div tonearest ibm128:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div towardzero ibm128:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div upward ibm128:arg_fmt(0,1,-126,1) 0x4p-128 0x1p+0 : 0x4p-128 :
+= div downward binary32:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div tonearest binary32:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x4p-128 : inexact underflow:before-rounding errno-erange-ok:before-rounding
+= div towardzero binary32:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div upward binary32:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x4p-128 : inexact underflow:before-rounding errno-erange-ok:before-rounding
+= div downward binary64:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffcp-128 : inexact
+= div tonearest binary64:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffcp-128 : inexact
+= div towardzero binary64:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffcp-128 : inexact
+= div upward binary64:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc000002p-128 : inexact
+= div downward intel96:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003fcp-128 : inexact
+= div tonearest intel96:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000004p-128 : inexact
+= div towardzero intel96:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003fcp-128 : inexact
+= div upward intel96:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000004p-128 : inexact
+= div downward m68k96:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003fcp-128 : inexact
+= div tonearest m68k96:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000004p-128 : inexact
+= div towardzero m68k96:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003fcp-128 : inexact
+= div upward m68k96:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000004p-128 : inexact
+= div downward binary128:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003ffffffc0000002p-128 : inexact
+= div tonearest binary128:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003ffffffc0000004p-128 : inexact
+= div towardzero binary128:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003ffffffc0000002p-128 : inexact
+= div upward binary128:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003ffffffc0000004p-128 : inexact
+= div downward ibm128:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003ffffffcp-128 : inexact
+= div tonearest ibm128:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003ffffffcp-128 : inexact
+= div towardzero ibm128:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003ffffffcp-128 : inexact
+= div upward ibm128:arg_fmt(0,1,-126,29) 0x4p-128 0x1.0000001p+0 : 0x3.ffffffc0000003ffffffc00001p-128 : inexact
+div 0x1p-126 -0x1.0000001p0
+= div downward binary32:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div tonearest binary32:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div towardzero binary32:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div upward binary32:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div downward binary64:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div tonearest binary64:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div towardzero binary64:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div upward binary64:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div downward intel96:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div tonearest intel96:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div towardzero intel96:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div upward intel96:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div downward m68k96:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div tonearest m68k96:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div towardzero m68k96:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div upward m68k96:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div downward binary128:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div tonearest binary128:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div towardzero binary128:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div upward binary128:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div downward ibm128:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div tonearest ibm128:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div towardzero ibm128:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div upward ibm128:arg_fmt(0,1,-126,1) 0x4p-128 -0x1p+0 : -0x4p-128 :
+= div downward binary32:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x4p-128 : inexact underflow errno-erange-ok
+= div tonearest binary32:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div towardzero binary32:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div upward binary32:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div downward binary64:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div tonearest binary64:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div towardzero binary64:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000fep-128 : inexact
+= div upward binary64:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000fep-128 : inexact
+= div downward intel96:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div tonearest intel96:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div towardzero intel96:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000ffffcp-128 : inexact
+= div upward intel96:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000ffffcp-128 : inexact
+= div downward m68k96:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div tonearest m68k96:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div towardzero m68k96:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000ffffcp-128 : inexact
+= div upward m68k96:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000ffffcp-128 : inexact
+= div downward binary128:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000fffffe000004p-128 : inexact
+= div tonearest binary128:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000fffffe000004p-128 : inexact
+= div towardzero binary128:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000fffffe000003ffffep-128 : inexact
+= div upward binary128:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000fffffe000003ffffep-128 : inexact
+= div downward ibm128:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000fffffe000004p-128 : inexact
+= div tonearest ibm128:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000fffffe000004p-128 : inexact
+= div towardzero ibm128:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000fffffe000003fffp-128 : inexact
+= div upward ibm128:arg_fmt(0,1,-126,24) 0x4p-128 -0x1.000002p+0 : -0x3.fffff800000fffffe000003fffp-128 : inexact
+= div downward binary32:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x4p-128 : inexact underflow:before-rounding errno-erange-ok:before-rounding
+= div tonearest binary32:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x4p-128 : inexact underflow:before-rounding errno-erange-ok:before-rounding
+= div towardzero binary32:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div upward binary32:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div downward binary64:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc000002p-128 : inexact
+= div tonearest binary64:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffcp-128 : inexact
+= div towardzero binary64:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffcp-128 : inexact
+= div upward binary64:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffcp-128 : inexact
+= div downward intel96:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000004p-128 : inexact
+= div tonearest intel96:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000004p-128 : inexact
+= div towardzero intel96:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003fcp-128 : inexact
+= div upward intel96:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003fcp-128 : inexact
+= div downward m68k96:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000004p-128 : inexact
+= div tonearest m68k96:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000004p-128 : inexact
+= div towardzero m68k96:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003fcp-128 : inexact
+= div upward m68k96:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003fcp-128 : inexact
+= div downward binary128:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003ffffffc0000004p-128 : inexact
+= div tonearest binary128:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003ffffffc0000004p-128 : inexact
+= div towardzero binary128:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003ffffffc0000002p-128 : inexact
+= div upward binary128:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003ffffffc0000002p-128 : inexact
+= div downward ibm128:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003ffffffc00001p-128 : inexact
+= div tonearest ibm128:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003ffffffcp-128 : inexact
+= div towardzero ibm128:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003ffffffcp-128 : inexact
+= div upward ibm128:arg_fmt(0,1,-126,29) 0x4p-128 -0x1.0000001p+0 : -0x3.ffffffc0000003ffffffcp-128 : inexact
+div -0x1p-126 0x1.0000001p0
+= div downward binary32:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x4p-128 : inexact underflow errno-erange-ok
+= div tonearest binary32:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div towardzero binary32:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div upward binary32:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div downward binary64:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div tonearest binary64:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div towardzero binary64:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000fep-128 : inexact
+= div upward binary64:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000fep-128 : inexact
+= div downward intel96:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div tonearest intel96:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div towardzero intel96:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000ffffcp-128 : inexact
+= div upward intel96:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000ffffcp-128 : inexact
+= div downward m68k96:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div tonearest m68k96:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800001p-128 : inexact
+= div towardzero m68k96:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000ffffcp-128 : inexact
+= div upward m68k96:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000ffffcp-128 : inexact
+= div downward binary128:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000fffffe000004p-128 : inexact
+= div tonearest binary128:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000fffffe000004p-128 : inexact
+= div towardzero binary128:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000fffffe000003ffffep-128 : inexact
+= div upward binary128:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000fffffe000003ffffep-128 : inexact
+= div downward ibm128:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000fffffe000004p-128 : inexact
+= div tonearest ibm128:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000fffffe000004p-128 : inexact
+= div towardzero ibm128:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000fffffe000003fffp-128 : inexact
+= div upward ibm128:arg_fmt(0,1,-126,24) -0x4p-128 0x1.000002p+0 : -0x3.fffff800000fffffe000003fffp-128 : inexact
+= div downward binary32:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div tonearest binary32:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div towardzero binary32:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div upward binary32:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div downward binary64:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div tonearest binary64:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div towardzero binary64:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div upward binary64:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div downward intel96:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div tonearest intel96:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div towardzero intel96:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div upward intel96:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div downward m68k96:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div tonearest m68k96:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div towardzero m68k96:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div upward m68k96:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div downward binary128:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div tonearest binary128:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div towardzero binary128:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div upward binary128:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div downward ibm128:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div tonearest ibm128:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div towardzero ibm128:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div upward ibm128:arg_fmt(0,1,-126,1) -0x4p-128 0x1p+0 : -0x4p-128 :
+= div downward binary32:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x4p-128 : inexact underflow:before-rounding errno-erange-ok:before-rounding
+= div tonearest binary32:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x4p-128 : inexact underflow:before-rounding errno-erange-ok:before-rounding
+= div towardzero binary32:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div upward binary32:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div downward binary64:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc000002p-128 : inexact
+= div tonearest binary64:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffcp-128 : inexact
+= div towardzero binary64:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffcp-128 : inexact
+= div upward binary64:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffcp-128 : inexact
+= div downward intel96:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000004p-128 : inexact
+= div tonearest intel96:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000004p-128 : inexact
+= div towardzero intel96:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003fcp-128 : inexact
+= div upward intel96:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003fcp-128 : inexact
+= div downward m68k96:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000004p-128 : inexact
+= div tonearest m68k96:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000004p-128 : inexact
+= div towardzero m68k96:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003fcp-128 : inexact
+= div upward m68k96:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003fcp-128 : inexact
+= div downward binary128:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003ffffffc0000004p-128 : inexact
+= div tonearest binary128:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003ffffffc0000004p-128 : inexact
+= div towardzero binary128:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003ffffffc0000002p-128 : inexact
+= div upward binary128:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003ffffffc0000002p-128 : inexact
+= div downward ibm128:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003ffffffc00001p-128 : inexact
+= div tonearest ibm128:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003ffffffcp-128 : inexact
+= div towardzero ibm128:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003ffffffcp-128 : inexact
+= div upward ibm128:arg_fmt(0,1,-126,29) -0x4p-128 0x1.0000001p+0 : -0x3.ffffffc0000003ffffffcp-128 : inexact
+div -0x1p-126 -0x1.0000001p0
+= div downward binary32:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div tonearest binary32:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div towardzero binary32:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div upward binary32:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div downward binary64:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div tonearest binary64:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div towardzero binary64:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div upward binary64:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div downward intel96:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div tonearest intel96:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div towardzero intel96:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div upward intel96:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div downward m68k96:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div tonearest m68k96:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div towardzero m68k96:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div upward m68k96:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div downward binary128:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div tonearest binary128:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div towardzero binary128:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div upward binary128:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div downward ibm128:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div tonearest ibm128:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div towardzero ibm128:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div upward ibm128:arg_fmt(0,1,-126,1) -0x4p-128 -0x1p+0 : 0x4p-128 :
+= div downward binary32:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div tonearest binary32:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div towardzero binary32:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div upward binary32:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x4p-128 : inexact underflow errno-erange-ok
+= div downward binary64:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000fep-128 : inexact
+= div tonearest binary64:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div towardzero binary64:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000fep-128 : inexact
+= div upward binary64:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div downward intel96:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000ffffcp-128 : inexact
+= div tonearest intel96:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div towardzero intel96:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000ffffcp-128 : inexact
+= div upward intel96:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div downward m68k96:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000ffffcp-128 : inexact
+= div tonearest m68k96:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div towardzero m68k96:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000ffffcp-128 : inexact
+= div upward m68k96:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800001p-128 : inexact
+= div downward binary128:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000fffffe000003ffffep-128 : inexact
+= div tonearest binary128:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000fffffe000004p-128 : inexact
+= div towardzero binary128:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000fffffe000003ffffep-128 : inexact
+= div upward binary128:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000fffffe000004p-128 : inexact
+= div downward ibm128:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000fffffe000003fffp-128 : inexact
+= div tonearest ibm128:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000fffffe000004p-128 : inexact
+= div towardzero ibm128:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000fffffe000003fffp-128 : inexact
+= div upward ibm128:arg_fmt(0,1,-126,24) -0x4p-128 -0x1.000002p+0 : 0x3.fffff800000fffffe000004p-128 : inexact
+= div downward binary32:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div tonearest binary32:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x4p-128 : inexact underflow:before-rounding errno-erange-ok:before-rounding
+= div towardzero binary32:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.fffff8p-128 : inexact underflow errno-erange-ok
+= div upward binary32:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x4p-128 : inexact underflow:before-rounding errno-erange-ok:before-rounding
+= div downward binary64:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffcp-128 : inexact
+= div tonearest binary64:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffcp-128 : inexact
+= div towardzero binary64:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffcp-128 : inexact
+= div upward binary64:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc000002p-128 : inexact
+= div downward intel96:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003fcp-128 : inexact
+= div tonearest intel96:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000004p-128 : inexact
+= div towardzero intel96:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003fcp-128 : inexact
+= div upward intel96:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000004p-128 : inexact
+= div downward m68k96:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003fcp-128 : inexact
+= div tonearest m68k96:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000004p-128 : inexact
+= div towardzero m68k96:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003fcp-128 : inexact
+= div upward m68k96:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000004p-128 : inexact
+= div downward binary128:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003ffffffc0000002p-128 : inexact
+= div tonearest binary128:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003ffffffc0000004p-128 : inexact
+= div towardzero binary128:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003ffffffc0000002p-128 : inexact
+= div upward binary128:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003ffffffc0000004p-128 : inexact
+= div downward ibm128:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003ffffffcp-128 : inexact
+= div tonearest ibm128:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003ffffffcp-128 : inexact
+= div towardzero ibm128:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003ffffffcp-128 : inexact
+= div upward ibm128:arg_fmt(0,1,-126,29) -0x4p-128 -0x1.0000001p+0 : 0x3.ffffffc0000003ffffffc00001p-128 : inexact
+div 0x1p-1022 0x1.00000000000001p0<