aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-08-17 23:02:54 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-08-17 23:02:54 +0000
commit3fb4cfaf1f1e8d58312720c70d224e2050d469fc (patch)
tree8293c35bf217fba00a445ecb077a546aa8992413
parent1e15a853ed43e9f71cbec6d36e016d31b0d238a1 (diff)
downloadglibc-3fb4cfaf1f1e8d58312720c70d224e2050d469fc.tar.xz
glibc-3fb4cfaf1f1e8d58312720c70d224e2050d469fc.zip
Fix csqrt spurious underflows (bug 18823).
The csqrt functions scale up small arguments to avoid underflows when calling hypot functions. However, even when hypot does not underflow, a subsequent calculation of 0.5 * hypot can underflow. This patch duly increases the threshold and scale factor to avoid such underflows as well. Tested for x86_64, x86 and mips64. [BZ #18823] * math/s_csqrt.c (__csqrt): Increase threshold and scale factor for scaling up small arguments. * math/s_csqrtf.c (__csqrtf): Likewise. * math/s_csqrtl.c (__csqrtl): Likewise. * math/auto-libm-test-in: Add more tests of csqrt. * math/auto-libm-test-out: Regenerated.
-rw-r--r--ChangeLog10
-rw-r--r--NEWS2
-rw-r--r--math/auto-libm-test-in9
-rw-r--r--math/auto-libm-test-out1832
-rw-r--r--math/s_csqrt.c6
-rw-r--r--math/s_csqrtf.c6
-rw-r--r--math/s_csqrtl.c6
7 files changed, 1861 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 94b5091412..7e4d40087f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2015-08-17 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #18823]
+ * math/s_csqrt.c (__csqrt): Increase threshold and scale factor
+ for scaling up small arguments.
+ * math/s_csqrtf.c (__csqrtf): Likewise.
+ * math/s_csqrtl.c (__csqrtl): Likewise.
+ * math/auto-libm-test-in: Add more tests of csqrt.
+ * math/auto-libm-test-out: Regenerated.
+
2015-08-17 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/powerpc/Versions (libm): Add empty
diff --git a/NEWS b/NEWS
index 64230e2819..bad2c22d34 100644
--- a/NEWS
+++ b/NEWS
@@ -11,7 +11,7 @@ Version 2.23
16517, 16519, 16520, 16734, 17905, 18084, 18086, 18265, 18480, 18525,
18618, 18647, 18661, 18681, 18674, 18778, 18781, 18787, 18789, 18790,
- 18795, 18820, 18824.
+ 18795, 18820, 18823, 18824.
* 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 44803714c9..015041aeb0 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1162,6 +1162,15 @@ csqrt -0x0.ffp1024 0x1.1p-509
csqrt 0x0.ffp16384 0x1.1p-8189
csqrt -0x0.ffp16384 0x1.1p-8189
+csqrt 0x1p-149 0x1.000002p-126
+csqrt 0x1p-149 0x1.000004p-126
+csqrt 0x1p-1074 0x1.0000000000001p-1022
+csqrt 0x1p-1074 0x1.0000000000002p-1022
+csqrt 0x1p-16445 0x1.0000000000000002p-16382
+csqrt 0x1p-16445 0x1.0000000000000004p-16382
+csqrt 0x1p-16494 0x1.0000000000000000000000000001p-16382
+csqrt 0x1p-16494 0x1.0000000000000000000000000002p-16382
+
ctan 0 0
ctan 0 -0
ctan -0 0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index d8ede584c8..f091ccb512 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -104092,6 +104092,1838 @@ csqrt -0x0.ffp16384 0x1.1p-8189
= csqrt tonearest ldbl-128 -0xf.ffffffffffffbffffffffffffcp+1020L 0x8.8p-8192L : 0x4.40000000000008800000000000ap-8704L 0xf.ffffffffffffdffffffffffffdep+508L : inexact-ok
= csqrt towardzero ldbl-128 -0xf.ffffffffffffbffffffffffffcp+1020L 0x8.8p-8192L : 0x4.40000000000008800000000000ap-8704L 0xf.ffffffffffffdffffffffffffdd8p+508L : inexact-ok
= csqrt upward ldbl-128 -0xf.ffffffffffffbffffffffffffcp+1020L 0x8.8p-8192L : 0x4.40000000000008800000000000a4p-8704L 0xf.ffffffffffffdffffffffffffdep+508L : inexact-ok
+csqrt 0x1p-149 0x1.000002p-126
+= csqrt downward flt-32 0x8p-152f 0x4.000008p-128f : 0x1.6a09e8p-64f 0x1.6a09e6p-64f : inexact-ok
+= csqrt tonearest flt-32 0x8p-152f 0x4.000008p-128f : 0x1.6a09eap-64f 0x1.6a09e6p-64f : inexact-ok
+= csqrt towardzero flt-32 0x8p-152f 0x4.000008p-128f : 0x1.6a09e8p-64f 0x1.6a09e6p-64f : inexact-ok
+= csqrt upward flt-32 0x8p-152f 0x4.000008p-128f : 0x1.6a09eap-64f 0x1.6a09e8p-64f : inexact-ok
+= csqrt downward dbl-64 0x8p-152 0x4.000008p-128 : 0x1.6a09e93c07882p-64 0x1.6a09e667f3be3p-64 : inexact-ok
+= csqrt tonearest dbl-64 0x8p-152 0x4.000008p-128 : 0x1.6a09e93c07883p-64 0x1.6a09e667f3be3p-64 : inexact-ok
+= csqrt towardzero dbl-64 0x8p-152 0x4.000008p-128 : 0x1.6a09e93c07882p-64 0x1.6a09e667f3be3p-64 : inexact-ok
+= csqrt upward dbl-64 0x8p-152 0x4.000008p-128 : 0x1.6a09e93c07883p-64 0x1.6a09e667f3be4p-64 : inexact-ok
+= csqrt downward ldbl-96-intel 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok
+= csqrt upward ldbl-96-intel 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee8p-64L 0x1.6a09e667f3be3314p-64L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee8p-64L 0x1.6a09e667f3be3314p-64L : inexact-ok
+= csqrt downward ldbl-128 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a0ccp-64L 0x1.6a09e667f3be3312968ef35a6ccfp-64L : inexact-ok
+= csqrt tonearest ldbl-128 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a0ccp-64L 0x1.6a09e667f3be3312968ef35a6ccfp-64L : inexact-ok
+= csqrt towardzero ldbl-128 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a0ccp-64L 0x1.6a09e667f3be3312968ef35a6ccfp-64L : inexact-ok
+= csqrt upward ldbl-128 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a0cdp-64L 0x1.6a09e667f3be3312968ef35a6cdp-64L : inexact-ok
+= csqrt downward ldbl-128ibm 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a08p-64L 0x1.6a09e667f3be3312968ef35a6c8p-64L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a1p-64L 0x1.6a09e667f3be3312968ef35a6dp-64L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a08p-64L 0x1.6a09e667f3be3312968ef35a6c8p-64L : inexact-ok
+= csqrt upward ldbl-128ibm 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a1p-64L 0x1.6a09e667f3be3312968ef35a6dp-64L : inexact-ok
+csqrt 0x1p-149 0x1.000004p-126
+= csqrt downward flt-32 0x8p-152f 0x4.00001p-128f : 0x1.6a09eap-64f 0x1.6a09e6p-64f : inexact-ok
+= csqrt tonearest flt-32 0x8p-152f 0x4.00001p-128f : 0x1.6a09eap-64f 0x1.6a09e8p-64f : inexact-ok
+= csqrt towardzero flt-32 0x8p-152f 0x4.00001p-128f : 0x1.6a09eap-64f 0x1.6a09e6p-64f : inexact-ok
+= csqrt upward flt-32 0x8p-152f 0x4.00001p-128f : 0x1.6a09ecp-64f 0x1.6a09e8p-64f : inexact-ok
+= csqrt downward dbl-64 0x8p-152 0x4.00001p-128 : 0x1.6a09eaa6116bp-64 0x1.6a09e7d1fda3ep-64 : inexact-ok
+= csqrt tonearest dbl-64 0x8p-152 0x4.00001p-128 : 0x1.6a09eaa6116b1p-64 0x1.6a09e7d1fda3ep-64 : inexact-ok
+= csqrt towardzero dbl-64 0x8p-152 0x4.00001p-128 : 0x1.6a09eaa6116bp-64 0x1.6a09e7d1fda3ep-64 : inexact-ok
+= csqrt upward dbl-64 0x8p-152 0x4.00001p-128 : 0x1.6a09eaa6116b1p-64 0x1.6a09e7d1fda3fp-64 : inexact-ok
+= csqrt downward ldbl-96-intel 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dcp-64L 0x1.6a09e7d1fda3e6p-64L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc2p-64L 0x1.6a09e7d1fda3e602p-64L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dcp-64L 0x1.6a09e7d1fda3e6p-64L : inexact-ok
+= csqrt upward ldbl-96-intel 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc2p-64L 0x1.6a09e7d1fda3e602p-64L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dcp-64L 0x1.6a09e7d1fda3e6p-64L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc2p-64L 0x1.6a09e7d1fda3e602p-64L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dcp-64L 0x1.6a09e7d1fda3e6p-64L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc2p-64L 0x1.6a09e7d1fda3e602p-64L : inexact-ok
+= csqrt downward ldbl-128 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b938p-64L 0x1.6a09e7d1fda3e6015c9ae986dce3p-64L : inexact-ok
+= csqrt tonearest ldbl-128 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b938p-64L 0x1.6a09e7d1fda3e6015c9ae986dce4p-64L : inexact-ok
+= csqrt towardzero ldbl-128 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b938p-64L 0x1.6a09e7d1fda3e6015c9ae986dce3p-64L : inexact-ok
+= csqrt upward ldbl-128 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b939p-64L 0x1.6a09e7d1fda3e6015c9ae986dce4p-64L : inexact-ok
+= csqrt downward ldbl-128ibm 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b9p-64L 0x1.6a09e7d1fda3e6015c9ae986dc8p-64L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b9p-64L 0x1.6a09e7d1fda3e6015c9ae986ddp-64L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b9p-64L 0x1.6a09e7d1fda3e6015c9ae986dc8p-64L : inexact-ok
+= csqrt upward ldbl-128ibm 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b98p-64L 0x1.6a09e7d1fda3e6015c9ae986ddp-64L : inexact-ok
+csqrt 0x1p-1074 0x1.0000000000001p-1022
+= csqrt downward flt-32 0x8p-152f 0x8p-152f : 0x3.1b884p-76f 0x1.49852ep-76f : inexact-ok
+= csqrt tonearest flt-32 0x8p-152f 0x8p-152f : 0x3.1b8844p-76f 0x1.49853p-76f : inexact-ok
+= csqrt towardzero flt-32 0x8p-152f 0x8p-152f : 0x3.1b884p-76f 0x1.49852ep-76f : inexact-ok
+= csqrt upward flt-32 0x8p-152f 0x8p-152f : 0x3.1b8844p-76f 0x1.49853p-76f : inexact-ok
+= csqrt downward dbl-64 0x8p-152 0x8p-152 : 0x3.1b884327ab804p-76 0x1.49852f983efddp-76 : inexact-ok
+= csqrt tonearest dbl-64 0x8p-152 0x8p-152 : 0x3.1b884327ab806p-76 0x1.49852f983efddp-76 : inexact-ok
+= csqrt towardzero dbl-64 0x8p-152 0x8p-152 : 0x3.1b884327ab804p-76 0x1.49852f983efddp-76 : inexact-ok
+= csqrt upward dbl-64 0x8p-152 0x8p-152 : 0x3.1b884327ab806p-76 0x1.49852f983efdep-76 : inexact-ok
+= csqrt downward ldbl-96-intel 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057ep-76L 0x1.49852f983efdd57ap-76L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e4p-76L 0x1.49852f983efdd57cp-76L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057ep-76L 0x1.49852f983efdd57ap-76L : inexact-ok
+= csqrt upward ldbl-96-intel 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e4p-76L 0x1.49852f983efdd57cp-76L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057ep-76L 0x1.49852f983efdd57ap-76L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e4p-76L 0x1.49852f983efdd57cp-76L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057ep-76L 0x1.49852f983efdd57ap-76L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e4p-76L 0x1.49852f983efdd57cp-76L : inexact-ok
+= csqrt downward ldbl-128 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f396694p-76L 0x1.49852f983efdd57b4bab8f320d16p-76L : inexact-ok
+= csqrt tonearest ldbl-128 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f396694p-76L 0x1.49852f983efdd57b4bab8f320d17p-76L : inexact-ok
+= csqrt towardzero ldbl-128 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f396694p-76L 0x1.49852f983efdd57b4bab8f320d16p-76L : inexact-ok
+= csqrt upward ldbl-128 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f396696p-76L 0x1.49852f983efdd57b4bab8f320d17p-76L : inexact-ok
+= csqrt downward ldbl-128ibm 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f3966p-76L 0x1.49852f983efdd57b4bab8f320dp-76L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f3967p-76L 0x1.49852f983efdd57b4bab8f320dp-76L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f3966p-76L 0x1.49852f983efdd57b4bab8f320dp-76L : inexact-ok
+= csqrt upward ldbl-128ibm 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f3967p-76L 0x1.49852f983efdd57b4bab8f320d8p-76L : inexact-ok
+= csqrt downward flt-32 0x8p-152f 0x0p+0f : 0x2.d413ccp-76f 0x0p+0f : inexact-ok
+= csqrt tonearest flt-32 0x8p-152f 0x0p+0f : 0x2.d413ccp-76f 0x0p+0f : inexact-ok
+= csqrt towardzero flt-32 0x8p-152f 0x0p+0f : 0x2.d413ccp-76f 0x0p+0f : inexact-ok
+= csqrt upward flt-32 0x8p-152f 0x0p+0f : 0x2.d413dp-76f 0x0p+0f : inexact-ok
+= csqrt downward dbl-64 0x8p-152 0x0p+0 : 0x2.d413cccfe7798p-76 0x0p+0 : inexact-ok
+= csqrt tonearest dbl-64 0x8p-152 0x0p+0 : 0x2.d413cccfe779ap-76 0x0p+0 : inexact-ok
+= csqrt towardzero dbl-64 0x8p-152 0x0p+0 : 0x2.d413cccfe7798p-76 0x0p+0 : inexact-ok
+= csqrt upward dbl-64 0x8p-152 0x0p+0 : 0x2.d413cccfe779ap-76 0x0p+0 : inexact-ok
+= csqrt downward ldbl-96-intel 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-96-intel 0x8p-152L 0x0p+0L : 0x2.d413cccfe7799214p-76L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x2.d413cccfe7799214p-76L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-128 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd52ap-76L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-128 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd52ap-76L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-128 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd52ap-76L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-128 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd52cp-76L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-128ibm 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd5p-76L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd5p-76L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd5p-76L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-128ibm 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd6p-76L 0x0p+0L : inexact-ok
+= csqrt downward dbl-64 0x8p-152 0x4.0000000000004p-1024 : 0x2.d413cccfe7798p-76 0xb.504f333f9de68p-952 : inexact-ok
+= csqrt tonearest dbl-64 0x8p-152 0x4.0000000000004p-1024 : 0x2.d413cccfe779ap-76 0xb.504f333f9de7p-952 : inexact-ok
+= csqrt towardzero dbl-64 0x8p-152 0x4.0000000000004p-1024 : 0x2.d413cccfe7798p-76 0xb.504f333f9de68p-952 : inexact-ok
+= csqrt upward dbl-64 0x8p-152 0x4.0000000000004p-1024 : 0x2.d413cccfe779ap-76 0xb.504f333f9de7p-952 : inexact-ok
+= csqrt downward ldbl-96-intel 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd4p-952L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd5p-952L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd4p-952L : inexact-ok
+= csqrt upward ldbl-96-intel 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe7799214p-76L 0xb.504f333f9de6fd5p-952L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd4p-952L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd5p-952L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd4p-952L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe7799214p-76L 0xb.504f333f9de6fd5p-952L : inexact-ok
+= csqrt downward ldbl-128 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd52ap-76L 0xb.504f333f9de6fd4a8b0c9515b93p-952L : inexact-ok
+= csqrt tonearest ldbl-128 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd52ap-76L 0xb.504f333f9de6fd4a8b0c9515b93p-952L : inexact-ok
+= csqrt towardzero ldbl-128 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd52ap-76L 0xb.504f333f9de6fd4a8b0c9515b93p-952L : inexact-ok
+= csqrt upward ldbl-128 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd52cp-76L 0xb.504f333f9de6fd4a8b0c9515b938p-952L : inexact-ok
+= csqrt downward ldbl-128ibm 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd5p-76L 0xb.504f333f9de6fd4a8b0c9515b8p-952L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd5p-76L 0xb.504f333f9de6fd4a8b0c9515b8p-952L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd5p-76L 0xb.504f333f9de6fd4a8b0c9515b8p-952L : inexact-ok
+= csqrt upward ldbl-128ibm 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd6p-76L 0xb.504f333f9de6fd4a8b0c9515bcp-952L : inexact-ok
+= csqrt downward flt-32 0x0p+0f 0x8p-152f : 0x2p-76f 0x2p-76f : inexact-ok
+= csqrt tonearest flt-32 0x0p+0f 0x8p-152f : 0x2p-76f 0x2p-76f : inexact-ok
+= csqrt towardzero flt-32 0x0p+0f 0x8p-152f : 0x2p-76f 0x2p-76f : inexact-ok
+= csqrt upward flt-32 0x0p+0f 0x8p-152f : 0x2p-76f 0x2p-76f : inexact-ok
+= csqrt downward dbl-64 0x0p+0 0x8p-152 : 0x2p-76 0x2p-76 : inexact-ok
+= csqrt tonearest dbl-64 0x0p+0 0x8p-152 : 0x2p-76 0x2p-76 : inexact-ok
+= csqrt towardzero dbl-64 0x0p+0 0x8p-152 : 0x2p-76 0x2p-76 : inexact-ok
+= csqrt upward dbl-64 0x0p+0 0x8p-152 : 0x2p-76 0x2p-76 : inexact-ok
+= csqrt downward ldbl-96-intel 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt upward ldbl-96-intel 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt downward ldbl-128 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt tonearest ldbl-128 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt towardzero ldbl-128 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt upward ldbl-128 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt downward ldbl-128ibm 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt upward ldbl-128ibm 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt downward flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok
+= csqrt tonearest flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok
+= csqrt towardzero flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok
+= csqrt upward flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok
+= csqrt downward dbl-64 0x0p+0 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok
+= csqrt tonearest dbl-64 0x0p+0 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok
+= csqrt towardzero dbl-64 0x0p+0 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok
+= csqrt upward dbl-64 0x0p+0 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok
+= csqrt downward ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok
+= csqrt downward dbl-64 0x0p+0 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcdp-512 0x1.6a09e667f3bcdp-512 : inexact-ok
+= csqrt tonearest dbl-64 0x0p+0 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcdp-512 0x1.6a09e667f3bcdp-512 : inexact-ok
+= csqrt towardzero dbl-64 0x0p+0 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcdp-512 0x1.6a09e667f3bcdp-512 : inexact-ok
+= csqrt upward dbl-64 0x0p+0 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcep-512 0x1.6a09e667f3bcep-512 : inexact-ok
+= csqrt downward ldbl-96-intel 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd458p-512L 0x1.6a09e667f3bcd458p-512L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd45ap-512L 0x1.6a09e667f3bcd45ap-512L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd458p-512L 0x1.6a09e667f3bcd458p-512L : inexact-ok
+= csqrt upward ldbl-96-intel 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd45ap-512L 0x1.6a09e667f3bcd45ap-512L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd458p-512L 0x1.6a09e667f3bcd458p-512L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd45ap-512L 0x1.6a09e667f3bcd45ap-512L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd458p-512L 0x1.6a09e667f3bcd458p-512L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd45ap-512L 0x1.6a09e667f3bcd45ap-512L : inexact-ok
+= csqrt downward ldbl-128 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d0bp-512L 0x1.6a09e667f3bcd459022e5304d0bp-512L : inexact-ok
+= csqrt tonearest ldbl-128 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d0b1p-512L 0x1.6a09e667f3bcd459022e5304d0b1p-512L : inexact-ok
+= csqrt towardzero ldbl-128 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d0bp-512L 0x1.6a09e667f3bcd459022e5304d0bp-512L : inexact-ok
+= csqrt upward ldbl-128 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d0b1p-512L 0x1.6a09e667f3bcd459022e5304d0b1p-512L : inexact-ok
+= csqrt downward ldbl-128ibm 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d08p-512L 0x1.6a09e667f3bcd459022e5304d08p-512L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d08p-512L 0x1.6a09e667f3bcd459022e5304d08p-512L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d08p-512L 0x1.6a09e667f3bcd459022e5304d08p-512L : inexact-ok
+= csqrt upward ldbl-128ibm 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d1p-512L 0x1.6a09e667f3bcd459022e5304d1p-512L : inexact-ok
+= csqrt downward dbl-64 0x4p-1076 0x8p-152 : 0x2p-76 0x1.fffffffffffffp-76 : inexact-ok
+= csqrt tonearest dbl-64 0x4p-1076 0x8p-152 : 0x2p-76 0x2p-76 : inexact-ok
+= csqrt towardzero dbl-64 0x4p-1076 0x8p-152 : 0x2p-76 0x1.fffffffffffffp-76 : inexact-ok
+= csqrt upward dbl-64 0x4p-1076 0x8p-152 : 0x2.0000000000002p-76 0x2p-76 : inexact-ok
+= csqrt downward ldbl-96-intel 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.fffffffffffffffep-76L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x4p-1076L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.fffffffffffffffep-76L : inexact-ok
+= csqrt upward ldbl-96-intel 0x4p-1076L 0x8p-152L : 0x2.0000000000000004p-76L 0x2p-76L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.fffffffffffffffep-76L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x4p-1076L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.fffffffffffffffep-76L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x4p-1076L 0x8p-152L : 0x2.0000000000000004p-76L 0x2p-76L : inexact-ok
+= csqrt downward ldbl-128 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.ffffffffffffffffffffffffffffp-76L : inexact-ok
+= csqrt tonearest ldbl-128 0x4p-1076L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt towardzero ldbl-128 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.ffffffffffffffffffffffffffffp-76L : inexact-ok
+= csqrt upward ldbl-128 0x4p-1076L 0x8p-152L : 0x2.0000000000000000000000000002p-76L 0x2p-76L : inexact-ok
+= csqrt downward ldbl-128ibm 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.ffffffffffffffffffffffffff8p-76L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x4p-1076L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.ffffffffffffffffffffffffff8p-76L : inexact-ok
+= csqrt upward ldbl-128ibm 0x4p-1076L 0x8p-152L : 0x2.00000000000000000000000001p-76L 0x2p-76L : inexact-ok
+= csqrt downward dbl-64 0x4p-1076 0x0p+0 : 0x8p-540 0x0p+0 : inexact-ok
+= csqrt tonearest dbl-64 0x4p-1076 0x0p+0 : 0x8p-540 0x0p+0 : inexact-ok
+= csqrt towardzero dbl-64 0x4p-1076 0x0p+0 : 0x8p-540 0x0p+0 : inexact-ok
+= csqrt upward dbl-64 0x4p-1076 0x0p+0 : 0x8p-540 0x0p+0 : inexact-ok
+= csqrt downward ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-128 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-128 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-128 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-128 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok
+= csqrt downward dbl-64 0x4p-1076 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcdp-512 0x1.6a09e667f3bccp-512 : inexact-ok
+= csqrt tonearest dbl-64 0x4p-1076 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcep-512 0x1.6a09e667f3bcdp-512 : inexact-ok
+= csqrt towardzero dbl-64 0x4p-1076 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcdp-512 0x1.6a09e667f3bccp-512 : inexact-ok
+= csqrt upward dbl-64 0x4p-1076 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcep-512 0x1.6a09e667f3bcdp-512 : inexact-ok
+= csqrt downward ldbl-96-intel 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa8p-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfaap-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa8p-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok
+= csqrt upward ldbl-96-intel 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfaap-512L 0x1.6a09e667f3bcc90ap-512L : inexact-ok
+= csqrt downward ldbl-96-m68k 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa8p-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfaap-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa8p-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok
+= csqrt upward ldbl-96-m68k 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfaap-512L 0x1.6a09e667f3bcc90ap-512L : inexact-ok
+= csqrt downward ldbl-128 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b6cbp-512L 0x1.6a09e667f3bcc908b2fb1366eaefp-512L : inexact-ok
+= csqrt tonearest ldbl-128 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b6ccp-512L 0x1.6a09e667f3bcc908b2fb1366eafp-512L : inexact-ok
+= csqrt towardzero ldbl-128 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b6cbp-512L 0x1.6a09e667f3bcc908b2fb1366eaefp-512L : inexact-ok
+= csqrt upward ldbl-128 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b6ccp-512L 0x1.6a09e667f3bcc908b2fb1366eafp-512L : inexact-ok
+= csqrt downward ldbl-128ibm 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b68p-512L 0x1.6a09e667f3bcc908b2fb1366ea8p-512L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b7p-512L 0x1.6a09e667f3bcc908b2fb1366ebp-512L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b68p-512L 0x1.6a09e667f3bcc908b2fb1366ea8p-512L : inexact-ok
+= csqrt upward ldbl-128ibm 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b7p-512L 0x1.6a09e667f3bcc908b2fb1366ebp-512L : inexact-ok
+csqrt 0x1p-1074 0x1.0000000000002p-1022
+= csqrt downward flt-32 0x8p-152f 0x8p-152f : 0x3.1b884p