diff options
Diffstat (limited to 'math')
| -rw-r--r-- | math/auto-libm-test-in | 30 | ||||
| -rw-r--r-- | math/auto-libm-test-out-narrow-div | 3372 | ||||
| -rw-r--r-- | math/auto-libm-test-out-narrow-mul | 6156 | ||||
| -rw-r--r-- | math/math-narrow.h | 45 |
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< |
