aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
Diffstat (limited to 'math')
-rw-r--r--math/auto-libm-test-in8
-rw-r--r--math/auto-libm-test-out558
-rw-r--r--math/gen-auto-libm-tests.c23
-rw-r--r--math/libm-test.inc4
4 files changed, 298 insertions, 295 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 5975631..7c80192 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -61,9 +61,8 @@ asin -0x0.ffffffffffffp0
asin 0x0.ffffffffffffffffp0
asin -0x0.ffffffffffffffffp0
# Bug 16351: underflow exception may be missing.
-# Bug 16599: spurious underflow may occur.
asin min missing-underflow
-asin -min missing-underflow spurious-underflow:dbl-64:x86
+asin -min missing-underflow
asin min_subnorm missing-underflow
asin -min_subnorm missing-underflow
@@ -175,9 +174,8 @@ atanh 0x1p-5
atanh 0x1p-10
atanh 0x1.2345p-20
# Bug 16352: underflow exception may be missing.
-# Bug 16357: spurious underflow may occur.
-atanh min missing-underflow spurious-underflow:ldbl-96-intel:x86
-atanh -min missing-underflow spurious-underflow:ldbl-96-intel:x86
+atanh min missing-underflow
+atanh -min missing-underflow
atanh min_subnorm missing-underflow
atanh -min_subnorm missing-underflow
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index cb8ac21..1dadc38 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -2021,10 +2021,10 @@ asin -0x0.ffffffffffffffffp0
= asin towardzero ldbl-128ibm -0xf.fffffffffffffffp-4L : -0x1.921fb542d8c79e0195cffc0e308p+0L : inexact-ok
= asin upward ldbl-128ibm -0xf.fffffffffffffffp-4L : -0x1.921fb542d8c79e0195cffc0e308p+0L : inexact-ok
asin min missing-underflow
-= asin downward flt-32 0x4p-128f : 0x4p-128f : inexact-ok
-= asin tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok
-= asin towardzero flt-32 0x4p-128f : 0x4p-128f : inexact-ok
-= asin upward flt-32 0x4p-128f : 0x4.000008p-128f : inexact-ok
+= asin downward flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= asin upward flt-32 0x4p-128f : 0x4.000008p-128f : inexact-ok underflow-ok errno-erange-ok
= asin downward dbl-64 0x4p-128 : 0x4p-128 : inexact-ok
= asin tonearest dbl-64 0x4p-128 : 0x4p-128 : inexact-ok
= asin towardzero dbl-64 0x4p-128 : 0x4p-128 : inexact-ok
@@ -2045,10 +2045,10 @@ asin min missing-underflow
= asin tonearest ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok
= asin towardzero ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok
= asin upward ldbl-128ibm 0x4p-128L : 0x4.00000000000000000000000002p-128L : inexact-ok
-= asin downward dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok
-= asin tonearest dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok
-= asin towardzero dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok
-= asin upward dbl-64 0x4p-1024 : 0x4.0000000000004p-1024 : inexact-ok
+= asin downward dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= asin upward dbl-64 0x4p-1024 : 0x4.0000000000004p-1024 : inexact-ok underflow-ok errno-erange-ok
= asin downward ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok
= asin tonearest ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok
= asin towardzero ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok
@@ -2065,26 +2065,26 @@ asin min missing-underflow
= asin tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asin towardzero ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asin upward ldbl-128ibm 0x4p-1024L : 0x4.0000000000004p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin downward ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok
-= asin tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok
-= asin towardzero ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok
-= asin upward ldbl-96-intel 0x4p-16384L : 0x4.0000000000000008p-16384L : inexact-ok
+= asin downward ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin upward ldbl-96-intel 0x4p-16384L : 0x4.0000000000000008p-16384L : inexact-ok underflow-ok errno-erange-ok
= asin downward ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok
= asin tonearest ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok
= asin towardzero ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok
= asin upward ldbl-96-m68k 0x4p-16384L : 0x4.0000000000000008p-16384L : inexact-ok
-= asin downward ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok
-= asin tonearest ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok
-= asin towardzero ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok
-= asin upward ldbl-128 0x4p-16384L : 0x4.0000000000000000000000000004p-16384L : inexact-ok
+= asin downward ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin upward ldbl-128 0x4p-16384L : 0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
= asin downward ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin towardzero ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin upward ldbl-96-intel 0x2p-16384L : 0x2.0000000000000008p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin downward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok
-= asin tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok
-= asin towardzero ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok
-= asin upward ldbl-96-m68k 0x2p-16384L : 0x2.0000000000000004p-16384L : inexact-ok
+= asin downward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin upward ldbl-96-m68k 0x2p-16384L : 0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
= asin downward ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin towardzero ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
@@ -2105,99 +2105,99 @@ asin min missing-underflow
= asin tonearest ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok
= asin towardzero ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok
= asin upward ldbl-128 0x8p-972L : 0x8.0000000000000000000000000008p-972L : inexact-ok
-= asin downward ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok
-= asin tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok
-= asin towardzero ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok
-= asin upward ldbl-128ibm 0x8p-972L : 0x8.00000000000000000000000004p-972L : inexact-ok
-asin -min missing-underflow spurious-underflow:dbl-64:x86
-= asin downward flt-32 -0x4p-128f : -0x4.000008p-128f : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok:dbl-64:x86
-= asin upward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok:dbl-64:x86
-= asin downward dbl-64 -0x4p-128 : -0x4.0000000000004p-128 : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok underflow-ok:dbl-64:x86
-= asin upward dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-96-intel -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-96-m68k -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-128 -0x4p-128L : -0x4.0000000000000000000000000004p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-128ibm -0x4p-128L : -0x4.00000000000000000000000002p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward dbl-64 -0x4p-1024 : -0x4.0000000000004p-1024 : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok:dbl-64:x86
-= asin upward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-96-intel -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-96-m68k -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-128 -0x4p-1024L : -0x4.0000000000000000000000000004p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= asin upward ldbl-128ibm 0x8p-972L : 0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok errno-erange-ok
+asin -min missing-underflow
+= asin downward flt-32 -0x4p-128f : -0x4.000008p-128f : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= asin upward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= asin downward dbl-64 -0x4p-128 : -0x4.0000000000004p-128 : inexact-ok
+= asin tonearest dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
+= asin towardzero dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
+= asin upward dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
+= asin downward ldbl-96-intel -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok
+= asin tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok
+= asin towardzero ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok
+= asin upward ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok
+= asin downward ldbl-96-m68k -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok
+= asin tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok
+= asin towardzero ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok
+= asin upward ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok
+= asin downward ldbl-128 -0x4p-128L : -0x4.0000000000000000000000000004p-128L : inexact-ok
+= asin tonearest ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok
+= asin towardzero ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok
+= asin upward ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok
+= asin downward ldbl-128ibm -0x4p-128L : -0x4.00000000000000000000000002p-128L : inexact-ok
+= asin tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
+= asin towardzero ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
+= asin upward ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
+= asin downward dbl-64 -0x4p-1024 : -0x4.0000000000004p-1024 : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= asin upward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= asin downward ldbl-96-intel -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok
+= asin tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
+= asin towardzero ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
+= asin upward ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
+= asin downward ldbl-96-m68k -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok
+= asin tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok
+= asin towardzero ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok
+= asin upward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok
+= asin downward ldbl-128 -0x4p-1024L : -0x4.0000000000000000000000000004p-1024L : inexact-ok
+= asin tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
+= asin towardzero ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
+= asin upward ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
= asin downward ldbl-128ibm -0x4p-1024L : -0x4.0000000000004p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asin towardzero ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asin upward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin downward ldbl-96-intel -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-96-m68k -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-128 -0x4p-16384L : -0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-96-intel -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin upward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin downward ldbl-96-m68k -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok
+= asin tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
+= asin towardzero ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
+= asin upward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
+= asin downward ldbl-128 -0x4p-16384L : -0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin upward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= asin downward ldbl-96-intel -0x2p-16384L : -0x2.0000000000000008p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin towardzero ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin upward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin downward ldbl-96-m68k -0x2p-16384L : -0x2.0000000000000004p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-96-m68k -0x2p-16384L : -0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= asin upward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
= asin downward ldbl-128 -0x2p-16384L : -0x2.0000000000000000000000000004p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin towardzero ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin upward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin downward dbl-64 -0x8p-972 : -0x8.0000000000008p-972 : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok underflow-ok:dbl-64:x86
-= asin upward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-96-intel -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-96-m68k -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-128 -0x8p-972L : -0x8.0000000000000000000000000008p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin downward ldbl-128ibm -0x8p-972L : -0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin towardzero ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
-= asin upward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward dbl-64 -0x8p-972 : -0x8.0000000000008p-972 : inexact-ok
+= asin tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
+= asin towardzero dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
+= asin upward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
+= asin downward ldbl-96-intel -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok
+= asin tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok
+= asin towardzero ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok
+= asin upward ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok
+= asin downward ldbl-96-m68k -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok
+= asin tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok
+= asin towardzero ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok
+= asin upward ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok
+= asin downward ldbl-128 -0x8p-972L : -0x8.0000000000000000000000000008p-972L : inexact-ok
+= asin tonearest ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
+= asin towardzero ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
+= asin upward ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
+= asin downward ldbl-128ibm -0x8p-972L : -0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok errno-erange-ok
+= asin tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= asin upward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
asin min_subnorm missing-underflow
= asin downward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
@@ -13708,184 +13708,184 @@ atanh 0x1.2345p-20
= atanh tonearest ldbl-128ibm 0x1.2345p-20L : 0x1.23450000007daf665297209f1ap-20L : inexact-ok
= atanh towardzero ldbl-128ibm 0x1.2345p-20L : 0x1.23450000007daf665297209f198p-20L : inexact-ok
= atanh upward ldbl-128ibm 0x1.2345p-20L : 0x1.23450000007daf665297209f1ap-20L : inexact-ok
-atanh min missing-underflow spurious-underflow:ldbl-96-intel:x86
-= atanh downward flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward flt-32 0x4p-128f : 0x4.000008p-128f : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward dbl-64 0x4p-128 : 0x4p-128 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest dbl-64 0x4p-128 : 0x4p-128 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero dbl-64 0x4p-128 : 0x4p-128 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward dbl-64 0x4p-128 : 0x4.0000000000004p-128 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-intel 0x4p-128L : 0x4.0000000000000008p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-m68k 0x4p-128L : 0x4.0000000000000008p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128 0x4p-128L : 0x4.0000000000000000000000000004p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128ibm 0x4p-128L : 0x4.00000000000000000000000002p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward dbl-64 0x4p-1024 : 0x4.0000000000004p-1024 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-intel 0x4p-1024L : 0x4.0000000000000008p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-m68k 0x4p-1024L : 0x4.0000000000000008p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128 0x4p-1024L : 0x4.0000000000000000000000000004p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
+atanh min missing-underflow
+= atanh downward flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= atanh upward flt-32 0x4p-128f : 0x4.000008p-128f : inexact-ok underflow-ok errno-erange-ok
+= atanh downward dbl-64 0x4p-128 : 0x4p-128 : inexact-ok
+= atanh tonearest dbl-64 0x4p-128 : 0x4p-128 : inexact-ok
+= atanh towardzero dbl-64 0x4p-128 : 0x4p-128 : inexact-ok
+= atanh upward dbl-64 0x4p-128 : 0x4.0000000000004p-128 : inexact-ok
+= atanh downward ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh tonearest ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh towardzero ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh upward ldbl-96-intel 0x4p-128L : 0x4.0000000000000008p-128L : inexact-ok
+= atanh downward ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh tonearest ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh towardzero ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh upward ldbl-96-m68k 0x4p-128L : 0x4.0000000000000008p-128L : inexact-ok
+= atanh downward ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh tonearest ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh towardzero ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh upward ldbl-128 0x4p-128L : 0x4.0000000000000000000000000004p-128L : inexact-ok
+= atanh downward ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh tonearest ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh towardzero ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok
+= atanh upward ldbl-128ibm 0x4p-128L : 0x4.00000000000000000000000002p-128L : inexact-ok
+= atanh downward dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= atanh upward dbl-64 0x4p-1024 : 0x4.0000000000004p-1024 : inexact-ok underflow-ok errno-erange-ok
+= atanh downward ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok
+= atanh tonearest ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok
+= atanh towardzero ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok
+= atanh upward ldbl-96-intel 0x4p-1024L : 0x4.0000000000000008p-1024L : inexact-ok
+= atanh downward ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok
+= atanh tonearest ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok
+= atanh towardzero ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok
+= atanh upward ldbl-96-m68k 0x4p-1024L : 0x4.0000000000000008p-1024L : inexact-ok
+= atanh downward ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok
+= atanh tonearest ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok
+= atanh towardzero ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok
+= atanh upward ldbl-128 0x4p-1024L : 0x4.0000000000000000000000000004p-1024L : inexact-ok
= atanh downward ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh towardzero ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh upward ldbl-128ibm 0x4p-1024L : 0x4.0000000000004p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= atanh downward ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-intel 0x4p-16384L : 0x4.0000000000000008p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-m68k 0x4p-16384L : 0x4.0000000000000008p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128 0x4p-16384L : 0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
+= atanh downward ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh upward ldbl-96-intel 0x4p-16384L : 0x4.0000000000000008p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh downward ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok
+= atanh tonearest ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok
+= atanh towardzero ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok
+= atanh upward ldbl-96-m68k 0x4p-16384L : 0x4.0000000000000008p-16384L : inexact-ok
+= atanh downward ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh upward ldbl-128 0x4p-16384L : 0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
= atanh downward ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh towardzero ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh upward ldbl-96-intel 0x2p-16384L : 0x2.0000000000000008p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atanh downward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-m68k 0x2p-16384L : 0x2.0000000000000004p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
+= atanh downward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh upward ldbl-96-m68k 0x2p-16384L : 0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
= atanh downward ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh tonearest ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh towardzero ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh upward ldbl-128 0x2p-16384L : 0x2.0000000000000000000000000004p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atanh downward dbl-64 0x8p-972 : 0x8p-972 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest dbl-64 0x8p-972 : 0x8p-972 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero dbl-64 0x8p-972 : 0x8p-972 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward dbl-64 0x8p-972 : 0x8.0000000000008p-972 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-intel 0x8p-972L : 0x8.000000000000001p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-m68k 0x8p-972L : 0x8.000000000000001p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128 0x8p-972L : 0x8.0000000000000000000000000008p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128ibm 0x8p-972L : 0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-atanh -min missing-underflow spurious-underflow:ldbl-96-intel:x86
-= atanh downward flt-32 -0x4p-128f : -0x4.000008p-128f : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward dbl-64 -0x4p-128 : -0x4.0000000000004p-128 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-intel -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-m68k -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128 -0x4p-128L : -0x4.0000000000000000000000000004p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128ibm -0x4p-128L : -0x4.00000000000000000000000002p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward dbl-64 -0x4p-1024 : -0x4.0000000000004p-1024 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-intel -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-m68k -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128 -0x4p-1024L : -0x4.0000000000000000000000000004p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:ldbl-96-intel:x86
+= atanh downward dbl-64 0x8p-972 : 0x8p-972 : inexact-ok
+= atanh tonearest dbl-64 0x8p-972 : 0x8p-972 : inexact-ok
+= atanh towardzero dbl-64 0x8p-972 : 0x8p-972 : inexact-ok
+= atanh upward dbl-64 0x8p-972 : 0x8.0000000000008p-972 : inexact-ok
+= atanh downward ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok
+= atanh tonearest ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok
+= atanh towardzero ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok
+= atanh upward ldbl-96-intel 0x8p-972L : 0x8.000000000000001p-972L : inexact-ok
+= atanh downward ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok
+= atanh tonearest ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok
+= atanh towardzero ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok
+= atanh upward ldbl-96-m68k 0x8p-972L : 0x8.000000000000001p-972L : inexact-ok
+= atanh downward ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok
+= atanh tonearest ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok
+= atanh towardzero ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok
+= atanh upward ldbl-128 0x8p-972L : 0x8.0000000000000000000000000008p-972L : inexact-ok
+= atanh downward ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= atanh upward ldbl-128ibm 0x8p-972L : 0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok errno-erange-ok
+atanh -min missing-underflow
+= atanh downward flt-32 -0x4p-128f : -0x4.000008p-128f : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= atanh upward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= atanh downward dbl-64 -0x4p-128 : -0x4.0000000000004p-128 : inexact-ok
+= atanh tonearest dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
+= atanh towardzero dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
+= atanh upward dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
+= atanh downward ldbl-96-intel -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok
+= atanh tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh towardzero ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh upward ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh downward ldbl-96-m68k -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok
+= atanh tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh towardzero ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh upward ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh downward ldbl-128 -0x4p-128L : -0x4.0000000000000000000000000004p-128L : inexact-ok
+= atanh tonearest ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh towardzero ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh upward ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh downward ldbl-128ibm -0x4p-128L : -0x4.00000000000000000000000002p-128L : inexact-ok
+= atanh tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh towardzero ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh upward ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
+= atanh downward dbl-64 -0x4p-1024 : -0x4.0000000000004p-1024 : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= atanh upward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= atanh downward ldbl-96-intel -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok
+= atanh tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
+= atanh towardzero ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
+= atanh upward ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
+= atanh downward ldbl-96-m68k -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok
+= atanh tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok
+= atanh towardzero ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok
+= atanh upward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok
+= atanh downward ldbl-128 -0x4p-1024L : -0x4.0000000000000000000000000004p-1024L : inexact-ok
+= atanh tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
+= atanh towardzero ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
+= atanh upward ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
= atanh downward ldbl-128ibm -0x4p-1024L : -0x4.0000000000004p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh towardzero ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh upward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= atanh downward ldbl-96-intel -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-m68k -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128 -0x4p-16384L : -0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
+= atanh downward ldbl-96-intel -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh upward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh downward ldbl-96-m68k -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok
+= atanh tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
+= atanh towardzero ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
+= atanh upward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
+= atanh downward ldbl-128 -0x4p-16384L : -0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh upward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= atanh downward ldbl-96-intel -0x2p-16384L : -0x2.0000000000000008p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh towardzero ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh upward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atanh downward ldbl-96-m68k -0x2p-16384L : -0x2.0000000000000004p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok:ldbl-96-intel:x86
+= atanh downward ldbl-96-m68k -0x2p-16384L : -0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= atanh upward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
= atanh downward ldbl-128 -0x2p-16384L : -0x2.0000000000000000000000000004p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh towardzero ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= atanh upward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atanh downward dbl-64 -0x8p-972 : -0x8.0000000000008p-972 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-intel -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-96-m68k -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128 -0x8p-972L : -0x8.0000000000000000000000000008p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh downward ldbl-128ibm -0x8p-972L : -0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh towardzero ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
-= atanh upward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:ldbl-96-intel:x86
+= atanh downward dbl-64 -0x8p-972 : -0x8.0000000000008p-972 : inexact-ok
+= atanh tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
+= atanh towardzero dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
+= atanh upward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
+= atanh downward ldbl-96-intel -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok
+= atanh tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok
+= atanh towardzero ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok
+= atanh upward ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok
+= atanh downward ldbl-96-m68k -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok
+= atanh tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok
+= atanh towardzero ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok
+= atanh upward ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok
+= atanh downward ldbl-128 -0x8p-972L : -0x8.0000000000000000000000000008p-972L : inexact-ok
+= atanh tonearest ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
+= atanh towardzero ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
+= atanh upward ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
+= atanh downward ldbl-128ibm -0x8p-972L : -0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok errno-erange-ok
+= atanh tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= atanh towardzero ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= atanh upward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
atanh min_subnorm missing-underflow
= atanh downward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
= atanh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
@@ -125265,10 +125265,10 @@ log1p min_subnorm missing-underflow
= log1p towardzero ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= log1p upward ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
log1p -min missing-underflow
-= log1p downward flt-32 -0x4p-128f : -0x4.000008p-128f : inexact-ok
-= log1p tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok
-= log1p towardzero flt-32 -0x4p-128f : -0x4p-128f : inexact-ok
-= log1p upward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok
+= log1p downward flt-32 -0x4p-128f : -0x4.000008p-128f : inexact-ok underflow-ok errno-erange-ok
+= log1p tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= log1p towardzero flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= log1p upward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
= log1p downward dbl-64 -0x4p-128 : -0x4.0000000000004p-128 : inexact-ok
= log1p tonearest dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
= log1p towardzero dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
@@ -125289,10 +125289,10 @@ log1p -min missing-underflow
= log1p tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
= log1p towardzero ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
= log1p upward ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
-= log1p downward dbl-64 -0x4p-1024 : -0x4.0000000000004p-1024 : inexact-ok
-= log1p tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok
-= log1p towardzero dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok
-= log1p upward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok
+= log1p downward dbl-64 -0x4p-1024 : -0x4.0000000000004p-1024 : inexact-ok underflow-ok errno-erange-ok
+= log1p tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= log1p towardzero dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= log1p upward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
= log1p downward ldbl-96-intel -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok
= log1p tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
= log1p towardzero ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
@@ -125309,26 +125309,26 @@ log1p -min missing-underflow
= log1p tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= log1p towardzero ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= log1p upward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= log1p downward ldbl-96-intel -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok
-= log1p tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok
-= log1p towardzero ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok
-= log1p upward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok
+= log1p downward ldbl-96-intel -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok underflow-ok errno-erange-ok
+= log1p tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= log1p towardzero ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= log1p upward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= log1p downward ldbl-96-m68k -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok
= log1p tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
= log1p towardzero ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
= log1p upward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
-= log1p downward ldbl-128 -0x4p-16384L : -0x4.0000000000000000000000000004p-16384L : inexact-ok
-= log1p tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok
-= log1p towardzero ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok
-= log1p upward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok
+= log1p downward ldbl-128 -0x4p-16384L : -0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
+= log1p tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= log1p towardzero ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= log1p upward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= log1p downward ldbl-96-intel -0x2p-16384L : -0x2.0000000000000008p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= log1p tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= log1p towardzero ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= log1p upward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= log1p downward ldbl-96-m68k -0x2p-16384L : -0x2.0000000000000004p-16384L : inexact-ok
-= log1p tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok
-= log1p towardzero ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok
-= log1p upward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok
+= log1p downward ldbl-96-m68k -0x2p-16384L : -0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
+= log1p tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= log1p towardzero ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= log1p upward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
= log1p downward ldbl-128 -0x2p-16384L : -0x2.0000000000000000000000000004p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= log1p tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= log1p towardzero ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
@@ -125349,10 +125349,10 @@ log1p -min missing-underflow
= log1p tonearest ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
= log1p towardzero ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
= log1p upward ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
-= log1p downward ldbl-128ibm -0x8p-972L : -0x8.00000000000000000000000004p-972L : inexact-ok
-= log1p tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok
-= log1p towardzero ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok
-= log1p upward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok
+= log1p downward ldbl-128ibm -0x8p-972L : -0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok errno-erange-ok
+= log1p tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= log1p towardzero ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= log1p upward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
log1p -min_subnorm missing-underflow
= log1p downward flt-32 -0x8p-152f : -0x1p-148f : inexact-ok underflow underflow-ok errno-erange-ok
= log1p tonearest flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
diff --git a/math/gen-auto-libm-tests.c b/math/gen-auto-libm-tests.c
index 61097e4..132cca2 100644
--- a/math/gen-auto-libm-tests.c
+++ b/math/gen-auto-libm-tests.c
@@ -171,6 +171,8 @@ typedef struct
int min_exp;
/* The largest normal value. */
mpfr_t max;
+ /* The value 0.5ulp above the least positive normal value. */
+ mpfr_t min_plus_half;
/* The least positive normal value, 2^(MIN_EXP-1). */
mpfr_t min;
/* The greatest positive subnormal value. */
@@ -183,13 +185,13 @@ typedef struct
enumeration. */
static fp_format_desc fp_formats[fp_num_formats] =
{
- { "flt-32", "f", NULL, 24, 128, -125, {}, {}, {}, {} },
- { "dbl-64", "", NULL, 53, 1024, -1021, {}, {}, {}, {} },
- { "ldbl-96-intel", "L", NULL, 64, 16384, -16381, {}, {}, {}, {} },
- { "ldbl-96-m68k", "L", NULL, 64, 16384, -16382, {}, {}, {}, {} },
- { "ldbl-128", "L", NULL, 113, 16384, -16381, {}, {}, {}, {} },
+ { "flt-32", "f", NULL, 24, 128, -125, {}, {}, {}, {}, {} },
+ { "dbl-64", "", NULL, 53, 1024, -1021, {}, {}, {}, {}, {} },
+ { "ldbl-96-intel", "L", NULL, 64, 16384, -16381, {}, {}, {}, {}, {} },
+ { "ldbl-96-m68k", "L", NULL, 64, 16384, -16382, {}, {}, {}, {}, {} },
+ { "ldbl-128", "L", NULL, 113, 16384, -16381, {}, {}, {}, {}, {} },
{ "ldbl-128ibm", "L", "0x1.fffffffffffff7ffffffffffff8p+1023",
- 106, 1024, -968, {}, {}, {}, {} },
+ 106, 1024, -968, {}, {}, {}, {}, {} },
};
/* The supported rounding modes. */
@@ -702,6 +704,10 @@ init_fp_formats ()
assert_exact (mpfr_set_ui_2exp (fp_formats[f].min, 1,
fp_formats[f].min_exp - 1,
MPFR_RNDN));
+ mpfr_init2 (fp_formats[f].min_plus_half, fp_formats[f].mant_dig + 1);
+ assert_exact (mpfr_set (fp_formats[f].min_plus_half,
+ fp_formats[f].min, MPFR_RNDN));
+ mpfr_nextabove (fp_formats[f].min_plus_half);
mpfr_init2 (fp_formats[f].subnorm_max, fp_formats[f].mant_dig);
assert_exact (mpfr_set (fp_formats[f].subnorm_max, fp_formats[f].min,
MPFR_RNDN));
@@ -1841,8 +1847,9 @@ output_for_one_input_case (FILE *fp, const char *filename, test_function *tf,
<= 0));
may_underflow
|= (!mpfr_zero_p (generic_outputs[i].value.f)
- && mpfr_cmpabs (generic_outputs[i].value.f,
- fp_formats[f].min) <= 0);
+ && (mpfr_cmpabs (generic_outputs[i].value.f,
+ fp_formats[f].min_plus_half)
+ <= 0));
}
/* If the result is an exact zero, the sign may
depend on the rounding mode, so recompute it
diff --git a/math/libm-test.inc b/math/libm-test.inc
index a8ebecd..9c4c2bf 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -7823,9 +7823,7 @@ static const struct test_f_f_data log1p_test_data[] =
static void
log1p_test (void)
{
- START (log1p, 0);
- RUN_TEST_LOOP_f_f (log1p, log1p_test_data, );
- END;
+ ALL_RM_TEST (log1p, 0, log1p_test_data, RUN_TEST_LOOP_f_f, END);
}