about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--NEWS8
-rw-r--r--math/auto-libm-test-in26
-rw-r--r--math/auto-libm-test-out1032
-rw-r--r--math/s_ctan.c10
-rw-r--r--math/s_ctanf.c10
-rw-r--r--math/s_ctanh.c10
-rw-r--r--math/s_ctanhf.c10
-rw-r--r--math/s_ctanhl.c10
-rw-r--r--math/s_ctanl.c10
10 files changed, 923 insertions, 214 deletions
diff --git a/ChangeLog b/ChangeLog
index f807e7cf17..56782dd4a7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2015-09-15  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #18595]
+	* math/s_ctan.c (__ctan): Force underflow exception for results
+	whose real or imaginary part has small absolute value.
+	* math/s_ctanf.c (__ctanf): Likewise.
+	* math/s_ctanh.c (__ctanh): Likewise.
+	* math/s_ctanhf.c (__ctanhf): Likewise.
+	* math/s_ctanhl.c (__ctanhl): Likewise.
+	* math/s_ctanl.c (__ctanl): Likewise.
+	* math/auto-libm-test-in: Do not allow missing underflow for ctan
+	and ctanh.  Add more tests of ctan and ctanh.
+
 	[BZ #15918]
 	* sysdeps/ieee754/flt-32/e_hypotf.c (__ieee754_hypotf): Simplify
 	handling of cases where one argument is an infinity.
diff --git a/NEWS b/NEWS
index a09ba38f73..797d717fb4 100644
--- a/NEWS
+++ b/NEWS
@@ -11,10 +11,10 @@ Version 2.23
 
   2542, 2543, 2558, 2898, 14341, 14912, 15786, 15918, 16141, 16517, 16519,
   16520, 16521, 16734, 16973, 16985, 17787, 17905, 18084, 18086, 18240,
-  18265, 18370, 18421, 18480, 18525, 18610, 18618, 18647, 18661, 18674,
-  18675, 18681, 18757, 18778, 18781, 18787, 18789, 18790, 18795, 18796,
-  18820, 18823, 18824, 18863, 18870, 18873, 18875, 18887, 18921, 18952,
-  18961, 18966.
+  18265, 18370, 18421, 18480, 18525, 18595, 18610, 18618, 18647, 18661,
+  18674, 18675, 18681, 18757, 18778, 18781, 18787, 18789, 18790, 18795,
+  18796, 18820, 18823, 18824, 18863, 18870, 18873, 18875, 18887, 18921,
+  18952, 18961, 18966.
 
 * The obsolete header <regexp.h> has been removed.  Programs that require
   this header must be updated to use <regex.h> instead.
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 4a8017c49a..8e236c3250 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1245,11 +1245,14 @@ ctan 0x1.921fb6p+0 0x1p-149
 ctan 0x1.921fb54442d18p+0 0x1p-1074
 ctan 0x1.921fb54442d1846ap+0 0x1p-16445
 
-# Bug 18595: underflow exception may be missing
-ctan min 0 missing-underflow
-ctan -min 0 missing-underflow
-ctan min_subnorm 0 missing-underflow
-ctan -min_subnorm 0 missing-underflow
+ctan min 0
+ctan -min 0
+ctan min_subnorm 0
+ctan -min_subnorm 0
+ctan 0 min
+ctan 0 -min
+ctan 0 min_subnorm
+ctan 0 -min_subnorm
 
 ctanh 0 0
 ctanh 0 -0
@@ -1285,11 +1288,14 @@ ctanh 0x1p-149 0x1.921fb6p+0
 ctanh 0x1p-1074 0x1.921fb54442d18p+0
 ctanh 0x1p-16445 0x1.921fb54442d1846ap+0
 
-# Bug 18595: underflow exception may be missing
-ctanh 0 min missing-underflow
-ctanh 0 -min missing-underflow
-ctanh 0 min_subnorm missing-underflow
-ctanh 0 -min_subnorm missing-underflow
+ctanh 0 min
+ctanh 0 -min
+ctanh 0 min_subnorm
+ctanh 0 -min_subnorm
+ctanh min 0
+ctanh -min 0
+ctanh min_subnorm 0
+ctanh -min_subnorm 0
 
 erf 0
 erf -0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index a93b7c432f..94efbb9f9c 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -109184,7 +109184,7 @@ ctan 0x1.921fb54442d1846ap+0 0x1p-16445
 = ctan tonearest ldbl-128 0x1.921fb54442d1846ap+0L 0x8p-16448L : -0x2.29478136aaf68d7b3b807fb349bap+64L 0x2.55e3001b8e1413fcf7193625f37ap-16316L : inexact-ok
 = ctan towardzero ldbl-128 0x1.921fb54442d1846ap+0L 0x8p-16448L : -0x2.29478136aaf68d7b3b807fb349bap+64L 0x2.55e3001b8e1413fcf7193625f378p-16316L : inexact-ok
 = ctan upward ldbl-128 0x1.921fb54442d1846ap+0L 0x8p-16448L : -0x2.29478136aaf68d7b3b807fb349bap+64L 0x2.55e3001b8e1413fcf7193625f37ap-16316L : inexact-ok
-ctan min 0 missing-underflow
+ctan min 0
 = ctan downward flt-32 0x4p-128f 0x0p+0f : 0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest flt-32 0x4p-128f 0x0p+0f : 0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero flt-32 0x4p-128f 0x0p+0f : 0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
@@ -109225,10 +109225,10 @@ ctan min 0 missing-underflow
 = ctan tonearest ldbl-128 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128 0x4p-1024L 0x0p+0L : 0x4.0000000000000000000000000004p-1024L 0x0p+0L : inexact-ok
-= ctan downward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4.0000000000004p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4.0000000000004p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
@@ -109241,18 +109241,18 @@ ctan min 0 missing-underflow
 = ctan tonearest ldbl-128 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-128 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-128 0x4p-16384L 0x0p+0L : 0x4.0000000000000000000000000004p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-= ctan downward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2.0000000000000008p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2.0000000000000008p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2.0000000000000004p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-= ctan downward ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 0x2p-16384L 0x0p+0L : 0x2.0000000000000000000000000004p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x2p-16384L 0x0p+0L : 0x2.0000000000000000000000000004p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward dbl-64 0x8p-972 0x0p+0 : 0x8p-972 0x0p+0 : inexact-ok
 = ctan tonearest dbl-64 0x8p-972 0x0p+0 : 0x8p-972 0x0p+0 : inexact-ok
 = ctan towardzero dbl-64 0x8p-972 0x0p+0 : 0x8p-972 0x0p+0 : inexact-ok
@@ -109273,7 +109273,7 @@ ctan min 0 missing-underflow
 = ctan tonearest ldbl-128ibm 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-128ibm 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-128ibm 0x8p-972L 0x0p+0L : 0x8.00000000000000000000000004p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-ctan -min 0 missing-underflow
+ctan -min 0
 = ctan downward flt-32 -0x4p-128f 0x0p+0f : -0x4.000008p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest flt-32 -0x4p-128f 0x0p+0f : -0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero flt-32 -0x4p-128f 0x0p+0f : -0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
@@ -109314,10 +109314,10 @@ ctan -min 0 missing-underflow
 = ctan tonearest ldbl-128 -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128 -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128 -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
-= ctan downward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4.0000000000004p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4.0000000000004p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x4.0000000000000008p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
@@ -109330,18 +109330,18 @@ ctan -min 0 missing-underflow
 = ctan tonearest ldbl-128 -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-128 -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-128 -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-= ctan downward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2.0000000000000008p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2.0000000000000008p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2.0000000000000004p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-= ctan downward ldbl-128 -0x2p-16384L 0x0p+0L : -0x2.0000000000000000000000000004p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128 -0x2p-16384L 0x0p+0L : -0x2.0000000000000000000000000004p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward dbl-64 -0x8p-972 0x0p+0 : -0x8.0000000000008p-972 0x0p+0 : inexact-ok
 = ctan tonearest dbl-64 -0x8p-972 0x0p+0 : -0x8p-972 0x0p+0 : inexact-ok
 = ctan towardzero dbl-64 -0x8p-972 0x0p+0 : -0x8p-972 0x0p+0 : inexact-ok
@@ -109362,11 +109362,11 @@ ctan -min 0 missing-underflow
 = ctan tonearest ldbl-128ibm -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-128ibm -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-128ibm -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-ctan min_subnorm 0 missing-underflow
-= ctan downward flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward flt-32 0x8p-152f 0x0p+0f : 0x1p-148f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
+ctan min_subnorm 0
+= ctan downward flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan tonearest flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan towardzero flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan upward flt-32 0x8p-152f 0x0p+0f : 0x1p-148f 0x0p+0f : inexact-ok underflow errno-erange-ok
 = ctan downward dbl-64 0x8p-152 0x0p+0 : 0x8p-152 0x0p+0 : inexact-ok
 = ctan tonearest dbl-64 0x8p-152 0x0p+0 : 0x8p-152 0x0p+0 : inexact-ok
 = ctan towardzero dbl-64 0x8p-152 0x0p+0 : 0x8p-152 0x0p+0 : inexact-ok
@@ -109387,10 +109387,10 @@ ctan min_subnorm 0 missing-underflow
 = ctan tonearest ldbl-128ibm 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128ibm 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128ibm 0x8p-152L 0x0p+0L : 0x8.00000000000000000000000004p-152L 0x0p+0L : inexact-ok
-= ctan downward dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward dbl-64 0x4p-1076 0x0p+0 : 0x8p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan tonearest dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan towardzero dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan upward dbl-64 0x4p-1076 0x0p+0 : 0x8p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
 = ctan tonearest ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
@@ -109403,39 +109403,39 @@ ctan min_subnorm 0 missing-underflow
 = ctan tonearest ldbl-128 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128 0x4p-1076L 0x0p+0L : 0x4.0000000000000000000000000004p-1076L 0x0p+0L : inexact-ok
-= ctan downward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x1p-16444L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0xcp-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 0x8p-16448L 0x0p+0L : 0x8.000000000004p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 0x4p-16448L 0x0p+0L : 0x4.000000000004p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 0x4p-16496L 0x0p+0L : 0x8p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-ctan -min_subnorm 0 missing-underflow
-= ctan downward flt-32 -0x8p-152f 0x0p+0f : -0x1p-148f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x1p-16444L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0xcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x8p-16448L 0x0p+0L : 0x8.000000000004p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x4p-16448L 0x0p+0L : 0x4.000000000004p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x4p-16496L 0x0p+0L : 0x8p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+ctan -min_subnorm 0
+= ctan downward flt-32 -0x8p-152f 0x0p+0f : -0x1p-148f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan tonearest flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan towardzero flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan upward flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
 = ctan downward dbl-64 -0x8p-152 0x0p+0 : -0x8.0000000000008p-152 0x0p+0 : inexact-ok
 = ctan tonearest dbl-64 -0x8p-152 0x0p+0 : -0x8p-152 0x0p+0 : inexact-ok
 = ctan towardzero dbl-64 -0x8p-152 0x0p+0 : -0x8p-152 0x0p+0 : inexact-ok
@@ -109456,10 +109456,10 @@ ctan -min_subnorm 0 missing-underflow
 = ctan tonearest ldbl-128ibm -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128ibm -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128ibm -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
-= ctan downward dbl-64 -0x4p-1076 0x0p+0 : -0x8p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward dbl-64 -0x4p-1076 0x0p+0 : -0x8p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan tonearest dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan towardzero dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan upward dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x4.0000000000000008p-1076L 0x0p+0L : inexact-ok
 = ctan tonearest ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
@@ -109472,34 +109472,350 @@ ctan -min_subnorm 0 missing-underflow
 = ctan tonearest ldbl-128 -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128 -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128 -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
-= ctan downward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x8p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x1p-16444L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0xcp-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 -0x8p-16448L 0x0p+0L : -0x8.000000000004p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 -0x4p-16448L 0x0p+0L : -0x4.000000000004p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 -0x4p-16496L 0x0p+0L : -0x8p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x8p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x1p-16444L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0xcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 -0x8p-16448L 0x0p+0L : -0x8.000000000004p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 -0x4p-16448L 0x0p+0L : -0x4.000000000004p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 -0x4p-16496L 0x0p+0L : -0x8p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+ctan 0 min
+= ctan downward flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan upward flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan downward dbl-64 0x0p+0 0x4p-128 : 0x0p+0 0x3.ffffffffffffep-128 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 0x4p-128 : 0x0p+0 0x4p-128 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 0x4p-128 : 0x0p+0 0x3.ffffffffffffep-128 : inexact-ok
+= ctan upward dbl-64 0x0p+0 0x4p-128 : 0x0p+0 0x4p-128 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= ctan upward ldbl-128ibm 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan downward dbl-64 0x0p+0 0x4p-1024 : 0x0p+0 0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest dbl-64 0x0p+0 0x4p-1024 : 0x0p+0 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero dbl-64 0x0p+0 0x4p-1024 : 0x0p+0 0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan upward dbl-64 0x0p+0 0x4p-1024 : 0x0p+0 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffffcp-16384L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffffcp-16384L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan downward dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x7.ffffffffffffcp-972 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x8p-972 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x7.ffffffffffffcp-972 : inexact-ok
+= ctan upward dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x8p-972 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+ctan 0 -min
+= ctan downward flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan upward flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan downward dbl-64 0x0p+0 -0x4p-128 : 0x0p+0 -0x4p-128 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 -0x4p-128 : 0x0p+0 -0x4p-128 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 -0x4p-128 : 0x0p+0 -0x3.ffffffffffffep-128 : inexact-ok
+= ctan upward dbl-64 0x0p+0 -0x4p-128 : 0x0p+0 -0x3.ffffffffffffep-128 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= ctan upward ldbl-128ibm 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= ctan downward dbl-64 0x0p+0 -0x4p-1024 : 0x0p+0 -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest dbl-64 0x0p+0 -0x4p-1024 : 0x0p+0 -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero dbl-64 0x0p+0 -0x4p-1024 : 0x0p+0 -0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan upward dbl-64 0x0p+0 -0x4p-1024 : 0x0p+0 -0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffffcp-16384L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffffcp-16384L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= ctan downward dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x8p-972 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x8p-972 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x7.ffffffffffffcp-972 : inexact-ok
+= ctan upward dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x7.ffffffffffffcp-972 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+ctan 0 min_subnorm
+= ctan downward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan tonearest flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctan towardzero flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan upward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctan downward dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x7.ffffffffffffcp-152 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x8p-152 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x7.ffffffffffffcp-152 : inexact-ok
+= ctan upward dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x8p-152 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= ctan upward ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan downward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan tonearest dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctan towardzero dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan upward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow errno-erange-ok
+ctan 0 -min_subnorm
+= ctan downward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctan tonearest flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctan towardzero flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan upward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan downward dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x8p-152 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x8p-152 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x7.ffffffffffffcp-152 : inexact-ok
+= ctan upward dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x7.ffffffffffffcp-152 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= ctan upward ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= ctan downward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctan tonearest dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctan towardzero dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan upward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
 ctanh 0 0
 = ctanh downward flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok
 = ctanh tonearest flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok
@@ -110792,7 +111108,7 @@ ctanh 0x1p-16445 0x1.921fb54442d1846ap+0
 = ctanh tonearest ldbl-128 0x8p-16448L 0x1.921fb54442d1846ap+0L : 0x2.55e3001b8e1413fcf7193625f37ap-16316L -0x2.29478136aaf68d7b3b807fb349bap+64L : inexact-ok
 = ctanh towardzero ldbl-128 0x8p-16448L 0x1.921fb54442d1846ap+0L : 0x2.55e3001b8e1413fcf7193625f378p-16316L -0x2.29478136aaf68d7b3b807fb349bap+64L : inexact-ok
 = ctanh upward ldbl-128 0x8p-16448L 0x1.921fb54442d1846ap+0L : 0x2.55e3001b8e1413fcf7193625f37ap-16316L -0x2.29478136aaf68d7b3b807fb349bap+64L : inexact-ok
-ctanh 0 min missing-underflow
+ctanh 0 min
 = ctanh downward flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
@@ -110833,10 +111149,10 @@ ctanh 0 min missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
 = ctanh towardzero ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
 = ctanh upward ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4.0000000000000000000000000004p-1024L : inexact-ok
-= ctanh downward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4.0000000000004p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4.0000000000004p-1024L : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
@@ -110849,18 +111165,18 @@ ctanh 0 min missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2.0000000000000008p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2.0000000000000008p-16384L : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2.0000000000000000000000000004p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2.0000000000000000000000000004p-16384L : inexact-ok underflow errno-erange-ok
 = ctanh downward dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x8p-972 : inexact-ok
 = ctanh tonearest dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x8p-972 : inexact-ok
 = ctanh towardzero dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x8p-972 : inexact-ok
@@ -110881,7 +111197,7 @@ ctanh 0 min missing-underflow
 = ctanh tonearest ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok errno-erange-ok
-ctanh 0 -min missing-underflow
+ctanh 0 -min
 = ctanh downward flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x4.000008p-128f : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
@@ -110922,10 +111238,10 @@ ctanh 0 -min missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
 = ctanh towardzero ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
 = ctanh upward ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
-= ctanh downward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4.0000000000004p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4.0000000000004p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4.0000000000000008p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
@@ -110938,18 +111254,18 @@ ctanh 0 -min missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2.0000000000000008p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2.0000000000000008p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2.0000000000000000000000000004p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2.0000000000000000000000000004p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
 = ctanh downward dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x8.0000000000008p-972 : inexact-ok
 = ctanh tonearest dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x8p-972 : inexact-ok
 = ctanh towardzero dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x8p-972 : inexact-ok
@@ -110970,11 +111286,11 @@ ctanh 0 -min missing-underflow
 = ctanh tonearest ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
-ctanh 0 min_subnorm missing-underflow
-= ctanh downward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x1p-148f : inexact-ok underflow underflow-ok errno-erange-ok
+ctanh 0 min_subnorm
+= ctanh downward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctanh tonearest flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctanh towardzero flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctanh upward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x1p-148f : inexact-ok underflow errno-erange-ok
 = ctanh downward dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x8p-152 : inexact-ok
 = ctanh tonearest dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x8p-152 : inexact-ok
 = ctanh towardzero dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x8p-152 : inexact-ok
@@ -110995,10 +111311,10 @@ ctanh 0 min_subnorm missing-underflow
 = ctanh tonearest ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
 = ctanh towardzero ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
 = ctanh upward ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x8.00000000000000000000000004p-152L : inexact-ok
-= ctanh downward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x8p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh tonearest dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh towardzero dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh upward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x8p-1076 : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
 = ctanh tonearest ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
 = ctanh towardzero ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
@@ -111011,39 +111327,39 @@ ctanh 0 min_subnorm missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
 = ctanh towardzero ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
 = ctanh upward ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4.0000000000000000000000000004p-1076L : inexact-ok
-= ctanh downward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x8p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x1p-16444L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0xcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8.000000000004p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4.000000000004p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x8p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-ctanh 0 -min_subnorm missing-underflow
-= ctanh downward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x1p-148f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x8p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x1p-16444L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0xcp-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8.000000000004p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4.000000000004p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x8p-16496L : inexact-ok underflow errno-erange-ok
+ctanh 0 -min_subnorm
+= ctanh downward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x1p-148f : inexact-ok underflow errno-erange-ok
+= ctanh tonearest flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctanh towardzero flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctanh upward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow errno-erange-ok
 = ctanh downward dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x8.0000000000008p-152 : inexact-ok
 = ctanh tonearest dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x8p-152 : inexact-ok
 = ctanh towardzero dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x8p-152 : inexact-ok
@@ -111064,10 +111380,10 @@ ctanh 0 -min_subnorm missing-underflow
 = ctanh tonearest ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
 = ctanh towardzero ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
 = ctanh upward ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
-= ctanh downward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x8p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x8p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh tonearest dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh towardzero dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh upward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4.0000000000000008p-1076L : inexact-ok
 = ctanh tonearest ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
 = ctanh towardzero ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
@@ -111080,34 +111396,350 @@ ctanh 0 -min_subnorm missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
 = ctanh towardzero ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
 = ctanh upward ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
-= ctanh downward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x8p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x1p-16444L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0xcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8.000000000004p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4.000000000004p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x8p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x8p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x1p-16444L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0xcp-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8.000000000004p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4.000000000004p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x8p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow errno-erange-ok
+ctanh min 0
+= ctanh downward flt-32 0x4p-128f 0x0p+0f : 0x3.fffff8p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest flt-32 0x4p-128f 0x0p+0f : 0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero flt-32 0x4p-128f 0x0p+0f : 0x3.fffff8p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward flt-32 0x4p-128f 0x0p+0f : 0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward dbl-64 0x4p-128 0x0p+0 : 0x3.ffffffffffffep-128 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 0x4p-128 0x0p+0 : 0x4p-128 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 0x4p-128 0x0p+0 : 0x3.ffffffffffffep-128 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 0x4p-128 0x0p+0 : 0x4p-128 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm 0x4p-128L 0x0p+0L : 0x3.ffffffffffffffffffffffffffp-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128ibm 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128ibm 0x4p-128L 0x0p+0L : 0x3.ffffffffffffffffffffffffffp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128ibm 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh downward dbl-64 0x4p-1024 0x0p+0 : 0x3.ffffffffffffcp-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest dbl-64 0x4p-1024 0x0p+0 : 0x4p-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero dbl-64 0x4p-1024 0x0p+0 : 0x3.ffffffffffffcp-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward dbl-64 0x4p-1024 0x0p+0 : 0x4p-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x3.ffffffffffffcp-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x3.ffffffffffffcp-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-128 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-128 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-128 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-128 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward dbl-64 0x8p-972 0x0p+0 : 0x7.ffffffffffffcp-972 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 0x8p-972 0x0p+0 : 0x8p-972 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 0x8p-972 0x0p+0 : 0x7.ffffffffffffcp-972 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 0x8p-972 0x0p+0 : 0x8p-972 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel 0x8p-972L 0x0p+0L : 0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel 0x8p-972L 0x0p+0L : 0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k 0x8p-972L 0x0p+0L : 0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x8p-972L 0x0p+0L : 0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x8p-972L 0x0p+0L : 0x7.fffffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 0x8p-972L 0x0p+0L : 0x7.fffffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm 0x8p-972L 0x0p+0L : 0x7.fffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x8p-972L 0x0p+0L : 0x7.fffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-128ibm 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+ctanh -min 0
+= ctanh downward flt-32 -0x4p-128f 0x0p+0f : -0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest flt-32 -0x4p-128f 0x0p+0f : -0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero flt-32 -0x4p-128f 0x0p+0f : -0x3.fffff8p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward flt-32 -0x4p-128f 0x0p+0f : -0x3.fffff8p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward dbl-64 -0x4p-128 0x0p+0 : -0x4p-128 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 -0x4p-128 0x0p+0 : -0x4p-128 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 -0x4p-128 0x0p+0 : -0x3.ffffffffffffep-128 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 -0x4p-128 0x0p+0 : -0x3.ffffffffffffep-128 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128ibm -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128ibm -0x4p-128L 0x0p+0L : -0x3.ffffffffffffffffffffffffffp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128ibm -0x4p-128L 0x0p+0L : -0x3.ffffffffffffffffffffffffffp-128L 0x0p+0L : inexact-ok
+= ctanh downward dbl-64 -0x4p-1024 0x0p+0 : -0x4p-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest dbl-64 -0x4p-1024 0x0p+0 : -0x4p-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero dbl-64 -0x4p-1024 0x0p+0 : -0x3.ffffffffffffcp-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward dbl-64 -0x4p-1024 0x0p+0 : -0x3.ffffffffffffcp-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x3.ffffffffffffcp-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x3.ffffffffffffcp-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-m68k -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-128 -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-128 -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-128 -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward dbl-64 -0x8p-972 0x0p+0 : -0x8p-972 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 -0x8p-972 0x0p+0 : -0x8p-972 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 -0x8p-972 0x0p+0 : -0x7.ffffffffffffcp-972 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 -0x8p-972 0x0p+0 : -0x7.ffffffffffffcp-972 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel -0x8p-972L 0x0p+0L : -0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel -0x8p-972L 0x0p+0L : -0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x8p-972L 0x0p+0L : -0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x8p-972L 0x0p+0L : -0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 -0x8p-972L 0x0p+0L : -0x7.fffffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 -0x8p-972L 0x0p+0L : -0x7.fffffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-128ibm -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-128ibm -0x8p-972L 0x0p+0L : -0x7.fffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-128ibm -0x8p-972L 0x0p+0L : -0x7.fffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+ctanh min_subnorm 0
+= ctanh downward flt-32 0x8p-152f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh tonearest flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh towardzero flt-32 0x8p-152f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh upward flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh downward dbl-64 0x8p-152 0x0p+0 : 0x7.ffffffffffffcp-152 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 0x8p-152 0x0p+0 : 0x8p-152 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 0x8p-152 0x0p+0 : 0x7.ffffffffffffcp-152 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 0x8p-152 0x0p+0 : 0x8p-152 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel 0x8p-152L 0x0p+0L : 0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel 0x8p-152L 0x0p+0L : 0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x8p-152L 0x0p+0L : 0x7.fffffffffffffffffffffffffffcp-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 0x8p-152L 0x0p+0L : 0x7.fffffffffffffffffffffffffffcp-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm 0x8p-152L 0x0p+0L : 0x7.fffffffffffffffffffffffffep-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128ibm 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128ibm 0x8p-152L 0x0p+0L : 0x7.fffffffffffffffffffffffffep-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128ibm 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh downward dbl-64 0x4p-1076 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh tonearest dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh towardzero dbl-64 0x4p-1076 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh upward dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x8p-16448L 0x0p+0L : 0x7.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x8p-16448L 0x0p+0L : 0x7.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x4p-16448L 0x0p+0L : 0x3.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x4p-16448L 0x0p+0L : 0x3.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x4p-16496L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x4p-16496L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+ctanh -min_subnorm 0
+= ctanh downward flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh tonearest flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh towardzero flt-32 -0x8p-152f 0x0p+0f : -0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh upward flt-32 -0x8p-152f 0x0p+0f : -0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh downward dbl-64 -0x8p-152 0x0p+0 : -0x8p-152 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 -0x8p-152 0x0p+0 : -0x8p-152 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 -0x8p-152 0x0p+0 : -0x7.ffffffffffffcp-152 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 -0x8p-152 0x0p+0 : -0x7.ffffffffffffcp-152 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel -0x8p-152L 0x0p+0L : -0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel -0x8p-152L 0x0p+0L : -0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x8p-152L 0x0p+0L : -0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x8p-152L 0x0p+0L : -0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 -0x8p-152L 0x0p+0L : -0x7.fffffffffffffffffffffffffffcp-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 -0x8p-152L 0x0p+0L : -0x7.fffffffffffffffffffffffffffcp-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128ibm -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128ibm -0x8p-152L 0x0p+0L : -0x7.fffffffffffffffffffffffffep-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128ibm -0x8p-152L 0x0p+0L : -0x7.fffffffffffffffffffffffffep-152L 0x0p+0L : inexact-ok
+= ctanh downward dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh tonearest dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh towardzero dbl-64 -0x4p-1076 0x0p+0 : -0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh upward dbl-64 -0x4p-1076 0x0p+0 : -0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 -0x8p-16448L 0x0p+0L : -0x7.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 -0x8p-16448L 0x0p+0L : -0x7.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 -0x4p-16448L 0x0p+0L : -0x3.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 -0x4p-16448L 0x0p+0L : -0x3.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 -0x4p-16496L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 -0x4p-16496L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
 erf 0
 = erf downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok
 = erf tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok
diff --git a/math/s_ctan.c b/math/s_ctan.c
index eaf31fa647..bcf5cfcec0 100644
--- a/math/s_ctan.c
+++ b/math/s_ctan.c
@@ -110,6 +110,16 @@ __ctan (__complex__ double x)
 	  __real__ res = sinrx * cosrx / den;
 	  __imag__ res = sinhix * coshix / den;
 	}
+      if (fabs (__real__ res) < DBL_MIN)
+	{
+	  double force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabs (__imag__ res) < DBL_MIN)
+	{
+	  double force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;
diff --git a/math/s_ctanf.c b/math/s_ctanf.c
index e0a6b8f07c..683ab6e544 100644
--- a/math/s_ctanf.c
+++ b/math/s_ctanf.c
@@ -110,6 +110,16 @@ __ctanf (__complex__ float x)
 	  __real__ res = sinrx * cosrx / den;
 	  __imag__ res = sinhix * coshix / den;
 	}
+      if (fabsf (__real__ res) < FLT_MIN)
+	{
+	  float force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabsf (__imag__ res) < FLT_MIN)
+	{
+	  float force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;
diff --git a/math/s_ctanh.c b/math/s_ctanh.c
index 1347d07834..76a0501a73 100644
--- a/math/s_ctanh.c
+++ b/math/s_ctanh.c
@@ -110,6 +110,16 @@ __ctanh (__complex__ double x)
 	  __real__ res = sinhrx * coshrx / den;
 	  __imag__ res = sinix * cosix / den;
 	}
+      if (fabs (__real__ res) < DBL_MIN)
+	{
+	  double force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabs (__imag__ res) < DBL_MIN)
+	{
+	  double force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;
diff --git a/math/s_ctanhf.c b/math/s_ctanhf.c
index 14e1371ef5..9d15c3ef0c 100644
--- a/math/s_ctanhf.c
+++ b/math/s_ctanhf.c
@@ -110,6 +110,16 @@ __ctanhf (__complex__ float x)
 	  __real__ res = sinhrx * coshrx / den;
 	  __imag__ res = sinix * cosix / den;
 	}
+      if (fabsf (__real__ res) < FLT_MIN)
+	{
+	  float force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabsf (__imag__ res) < FLT_MIN)
+	{
+	  float force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;
diff --git a/math/s_ctanhl.c b/math/s_ctanhl.c
index 6b9dfc5bb2..9c15bb3a4a 100644
--- a/math/s_ctanhl.c
+++ b/math/s_ctanhl.c
@@ -117,6 +117,16 @@ __ctanhl (__complex__ long double x)
 	  __real__ res = sinhrx * coshrx / den;
 	  __imag__ res = sinix * cosix / den;
 	}
+      if (fabsl (__real__ res) < LDBL_MIN)
+	{
+	  long double force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabsl (__imag__ res) < LDBL_MIN)
+	{
+	  long double force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;
diff --git a/math/s_ctanl.c b/math/s_ctanl.c
index 0fd0039053..48ab81b64b 100644
--- a/math/s_ctanl.c
+++ b/math/s_ctanl.c
@@ -117,6 +117,16 @@ __ctanl (__complex__ long double x)
 	  __real__ res = sinrx * cosrx / den;
 	  __imag__ res = sinhix * coshix / den;
 	}
+      if (fabsl (__real__ res) < LDBL_MIN)
+	{
+	  long double force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabsl (__imag__ res) < LDBL_MIN)
+	{
+	  long double force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;