aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-06-23 16:01:54 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-06-23 16:01:54 +0000
commit718d34a309493f8697ff9a8fefcbacbba12a2ccd (patch)
tree314b1f34149f46e8d8ed2a0cd3eb107fedf9fef1 /math
parentb59549574efeeecf124de05c9183c120eaaa56f0 (diff)
downloadglibc-718d34a309493f8697ff9a8fefcbacbba12a2ccd.tar.xz
glibc-718d34a309493f8697ff9a8fefcbacbba12a2ccd.zip
Fix csqrt spurious underflows (bug 18371).
The csqrt implementations in glibc can cause spurious underflows in some cases as a side-effect of the scaling for large arguments (when underflow is correct for the square root of the argument that was scaled down to avoid overflow, but not for the original argument). This patch arranges to avoid the underflowing intermediate computation (eliminating a multiplication in 0.5 in the problem cases where a subsequent scaling by 2 would follow). Tested for x86_64 and x86 and ulps updated accordingly (only needed for x86). [BZ #18371] * math/s_csqrt.c (__csqrt): Avoid multiplication by 0.5 where intermediate but not final result might underflow. * 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. * sysdeps/i386/fpu/libm-test-ulps: Update.
Diffstat (limited to 'math')
-rw-r--r--math/auto-libm-test-in7
-rw-r--r--math/auto-libm-test-out766
-rw-r--r--math/s_csqrt.c20
-rw-r--r--math/s_csqrtf.c20
-rw-r--r--math/s_csqrtl.c20
5 files changed, 827 insertions, 6 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index cf7fc359b0..d1502ad107 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1033,6 +1033,13 @@ csqrt 0x1p-16494 0x1p+16383
csqrt 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-16382
csqrt -0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-16382
+csqrt 0x0.ffp128 0x1.1p-61
+csqrt -0x0.ffp128 0x1.1p-61
+csqrt 0x0.ffp1024 0x1.1p-509
+csqrt -0x0.ffp1024 0x1.1p-509
+csqrt 0x0.ffp16384 0x1.1p-8189
+csqrt -0x0.ffp16384 0x1.1p-8189
+
ctan 0 0
ctan 0 -0
ctan -0 0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 556b833822..89a4ffc6b2 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -98487,6 +98487,772 @@ csqrt -0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001
= csqrt tonearest ldbl-128 -0x4.0000000000000000000000000004p-16384L -0x4.0000000000000000000000000004p-16384L : 0xe.90189c7b6414133be637803acbf8p-8196L -0x2.3286b95ff53f16af0a0f0735b9d8p-8192L : inexact-ok
= csqrt towardzero ldbl-128 -0x4.0000000000000000000000000004p-16384L -0x4.0000000000000000000000000004p-16384L : 0xe.90189c7b6414133be637803acbfp-8196L -0x2.3286b95ff53f16af0a0f0735b9d6p-8192L : inexact-ok
= csqrt upward ldbl-128 -0x4.0000000000000000000000000004p-16384L -0x4.0000000000000000000000000004p-16384L : 0xe.90189c7b6414133be637803acbf8p-8196L -0x2.3286b95ff53f16af0a0f0735b9d6p-8192L : inexact-ok
+csqrt 0x0.ffp128 0x1.1p-61
+= csqrt downward flt-32 0xf.fp+124f 0x8.8p-64f : 0xf.f7fdfp+60f 0x4.422198p-128f : inexact-ok
+= csqrt tonearest flt-32 0xf.fp+124f 0x8.8p-64f : 0xf.f7fep+60f 0x4.422198p-128f : inexact-ok
+= csqrt towardzero flt-32 0xf.fp+124f 0x8.8p-64f : 0xf.f7fdfp+60f 0x4.422198p-128f : inexact-ok
+= csqrt upward flt-32 0xf.fp+124f 0x8.8p-64f : 0xf.f7fep+60f 0x4.4221ap-128f : inexact-ok
+= csqrt downward dbl-64 0xf.fp+124 0x8.8p-64 : 0xf.f7fdfeff5f8f8p+60 0x4.422199552a8c8p-128 : inexact-ok
+= csqrt tonearest dbl-64 0xf.fp+124 0x8.8p-64 : 0xf.f7fdfeff5f8f8p+60 0x4.422199552a8ccp-128 : inexact-ok
+= csqrt towardzero dbl-64 0xf.fp+124 0x8.8p-64 : 0xf.f7fdfeff5f8f8p+60 0x4.422199552a8c8p-128 : inexact-ok
+= csqrt upward dbl-64 0xf.fp+124 0x8.8p-64 : 0xf.f7fdfeff5f9p+60 0x4.422199552a8ccp-128 : inexact-ok
+= csqrt downward ldbl-96-intel 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbp+60L 0x4.422199552a8cb65p-128L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabcp+60L 0x4.422199552a8cb658p-128L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbp+60L 0x4.422199552a8cb65p-128L : inexact-ok
+= csqrt upward ldbl-96-intel 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabcp+60L 0x4.422199552a8cb658p-128L : inexact-ok
+= csqrt downward ldbl-96-m68k 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbp+60L 0x4.422199552a8cb65p-128L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabcp+60L 0x4.422199552a8cb658p-128L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbp+60L 0x4.422199552a8cb65p-128L : inexact-ok
+= csqrt upward ldbl-96-m68k 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabcp+60L 0x4.422199552a8cb658p-128L : inexact-ok
+= csqrt downward ldbl-128 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbdca3329e3153p+60L 0x4.422199552a8cb654be740b2b7d1cp-128L : inexact-ok
+= csqrt tonearest ldbl-128 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbdca3329e3153p+60L 0x4.422199552a8cb654be740b2b7d2p-128L : inexact-ok
+= csqrt towardzero ldbl-128 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbdca3329e3153p+60L 0x4.422199552a8cb654be740b2b7d1cp-128L : inexact-ok
+= csqrt upward ldbl-128 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbdca3329e31538p+60L 0x4.422199552a8cb654be740b2b7d2p-128L : inexact-ok
+= csqrt downward ldbl-128ibm 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbdca3329e314p+60L 0x4.422199552a8cb654be740b2b7cp-128L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbdca3329e314p+60L 0x4.422199552a8cb654be740b2b7ep-128L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbdca3329e314p+60L 0x4.422199552a8cb654be740b2b7cp-128L : inexact-ok
+= csqrt upward ldbl-128ibm 0xf.fp+124L 0x8.8p-64L : 0xf.f7fdfeff5f8fabbdca3329e318p+60L 0x4.422199552a8cb654be740b2b7ep-128L : inexact-ok
+csqrt -0x0.ffp128 0x1.1p-61
+= csqrt downward flt-32 -0xf.fp+124f 0x8.8p-64f : 0x4.422198p-128f 0xf.f7fdfp+60f : inexact-ok
+= csqrt tonearest flt-32 -0xf.fp+124f 0x8.8p-64f : 0x4.422198p-128f 0xf.f7fep+60f : inexact-ok
+= csqrt towardzero flt-32 -0xf.fp+124f 0x8.8p-64f : 0x4.422198p-128f 0xf.f7fdfp+60f : inexact-ok
+= csqrt upward flt-32 -0xf.fp+124f 0x8.8p-64f : 0x4.4221ap-128f 0xf.f7fep+60f : inexact-ok
+= csqrt downward dbl-64 -0xf.fp+124 0x8.8p-64 : 0x4.422199552a8c8p-128 0xf.f7fdfeff5f8f8p+60 : inexact-ok
+= csqrt tonearest dbl-64 -0xf.fp+124 0x8.8p-64 : 0x4.422199552a8ccp-128 0xf.f7fdfeff5f8f8p+60 : inexact-ok
+= csqrt towardzero dbl-64 -0xf.fp+124 0x8.8p-64 : 0x4.422199552a8c8p-128 0xf.f7fdfeff5f8f8p+60 : inexact-ok
+= csqrt upward dbl-64 -0xf.fp+124 0x8.8p-64 : 0x4.422199552a8ccp-128 0xf.f7fdfeff5f9p+60 : inexact-ok
+= csqrt downward ldbl-96-intel -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb65p-128L 0xf.f7fdfeff5f8fabbp+60L : inexact-ok
+= csqrt tonearest ldbl-96-intel -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb658p-128L 0xf.f7fdfeff5f8fabcp+60L : inexact-ok
+= csqrt towardzero ldbl-96-intel -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb65p-128L 0xf.f7fdfeff5f8fabbp+60L : inexact-ok
+= csqrt upward ldbl-96-intel -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb658p-128L 0xf.f7fdfeff5f8fabcp+60L : inexact-ok
+= csqrt downward ldbl-96-m68k -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb65p-128L 0xf.f7fdfeff5f8fabbp+60L : inexact-ok
+= csqrt tonearest ldbl-96-m68k -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb658p-128L 0xf.f7fdfeff5f8fabcp+60L : inexact-ok
+= csqrt towardzero ldbl-96-m68k -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb65p-128L 0xf.f7fdfeff5f8fabbp+60L : inexact-ok
+= csqrt upward ldbl-96-m68k -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb658p-128L 0xf.f7fdfeff5f8fabcp+60L : inexact-ok
+= csqrt downward ldbl-128 -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb654be740b2b7d1cp-128L 0xf.f7fdfeff5f8fabbdca3329e3153p+60L : inexact-ok
+= csqrt tonearest ldbl-128 -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb654be740b2b7d2p-128L 0xf.f7fdfeff5f8fabbdca3329e3153p+60L : inexact-ok
+= csqrt towardzero ldbl-128 -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb654be740b2b7d1cp-128L 0xf.f7fdfeff5f8fabbdca3329e3153p+60L : inexact-ok
+= csqrt upward ldbl-128 -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb654be740b2b7d2p-128L 0xf.f7fdfeff5f8fabbdca3329e31538p+60L : inexact-ok
+= csqrt downward ldbl-128ibm -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb654be740b2b7cp-128L 0xf.f7fdfeff5f8fabbdca3329e314p+60L : inexact-ok
+= csqrt tonearest ldbl-128ibm -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb654be740b2b7ep-128L 0xf.f7fdfeff5f8fabbdca3329e314p+60L : inexact-ok
+= csqrt towardzero ldbl-128ibm -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb654be740b2b7cp-128L 0xf.f7fdfeff5f8fabbdca3329e314p+60L : inexact-ok
+= csqrt upward ldbl-128ibm -0xf.fp+124L 0x8.8p-64L : 0x4.422199552a8cb654be740b2b7ep-128L 0xf.f7fdfeff5f8fabbdca3329e318p+60L : inexact-ok
+csqrt 0x0.ffp1024 0x1.1p-509
+= csqrt downward flt-32 0xf.fffffp+124f 0x8p-152f : 0xf.fffffp+60f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= csqrt tonearest flt-32 0xf.fffffp+124f 0x8p-152f : 0xf.fffffp+60f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= csqrt towardzero flt-32 0xf.fffffp+124f 0x8p-152f : 0xf.fffffp+60f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= csqrt upward flt-32 0xf.fffffp+124f 0x8p-152f : 0x1p+64f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= csqrt downward dbl-64 0xf.fffffp+124 0x8p-152 : 0xf.fffff7fffffd8p+60 0x4.0000020000018p-216 : inexact-ok
+= csqrt tonearest dbl-64 0xf.fffffp+124 0x8p-152 : 0xf.fffff7fffffep+60 0x4.0000020000018p-216 : inexact-ok
+= csqrt towardzero dbl-64 0xf.fffffp+124 0x8p-152 : 0xf.fffff7fffffd8p+60 0x4.0000020000018p-216 : inexact-ok
+= csqrt upward dbl-64 0xf.fffffp+124 0x8p-152 : 0xf.fffff7fffffep+60 0x4.000002000001cp-216 : inexact-ok
+= csqrt downward ldbl-96-intel 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffp+60L 0x4.0000020000018p-216L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffep+60L 0x4.0000020000018p-216L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffp+60L 0x4.0000020000018p-216L : inexact-ok
+= csqrt upward ldbl-96-intel 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffep+60L 0x4.0000020000018008p-216L : inexact-ok
+= csqrt downward ldbl-96-m68k 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffp+60L 0x4.0000020000018p-216L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffep+60L 0x4.0000020000018p-216L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffp+60L 0x4.0000020000018p-216L : inexact-ok
+= csqrt upward ldbl-96-m68k 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffep+60L 0x4.0000020000018008p-216L : inexact-ok
+= csqrt downward ldbl-128 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffffeffffff5ff8p+60L 0x4.00000200000180000140000118p-216L : inexact-ok
+= csqrt tonearest ldbl-128 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x4.00000200000180000140000118p-216L : inexact-ok
+= csqrt towardzero ldbl-128 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffffeffffff5ff8p+60L 0x4.00000200000180000140000118p-216L : inexact-ok
+= csqrt upward ldbl-128 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x4.0000020000018000014000011804p-216L : inexact-ok
+= csqrt downward ldbl-128ibm 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffffeffffff5cp+60L 0x4.00000200000180000140000118p-216L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x4.00000200000180000140000118p-216L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffffeffffff5cp+60L 0x4.00000200000180000140000118p-216L : inexact-ok
+= csqrt upward ldbl-128ibm 0xf.fffffp+124L 0x8p-152L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x4.0000020000018000014000011ap-216L : inexact-ok
+= csqrt downward flt-32 0xf.fffffp+124f 0x0p+0f : 0xf.fffffp+60f 0x0p+0f : inexact-ok
+= csqrt tonearest flt-32 0xf.fffffp+124f 0x0p+0f : 0xf.fffffp+60f 0x0p+0f : inexact-ok
+= csqrt towardzero flt-32 0xf.fffffp+124f 0x0p+0f : 0xf.fffffp+60f 0x0p+0f : inexact-ok
+= csqrt upward flt-32 0xf.fffffp+124f 0x0p+0f : 0x1p+64f 0x0p+0f : inexact-ok
+= csqrt downward dbl-64 0xf.fffffp+124 0x0p+0 : 0xf.fffff7fffffd8p+60 0x0p+0 : inexact-ok
+= csqrt tonearest dbl-64 0xf.fffffp+124 0x0p+0 : 0xf.fffff7fffffep+60 0x0p+0 : inexact-ok
+= csqrt towardzero dbl-64 0xf.fffffp+124 0x0p+0 : 0xf.fffff7fffffd8p+60 0x0p+0 : inexact-ok
+= csqrt upward dbl-64 0xf.fffffp+124 0x0p+0 : 0xf.fffff7fffffep+60 0x0p+0 : inexact-ok
+= csqrt downward ldbl-96-intel 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffp+60L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffep+60L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffp+60L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-96-intel 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffep+60L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-96-m68k 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffp+60L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffep+60L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffp+60L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-96-m68k 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffep+60L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-128 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffffeffffff5ff8p+60L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-128 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-128 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffffeffffff5ff8p+60L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-128 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-128ibm 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffffeffffff5cp+60L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffffeffffff5cp+60L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-128ibm 0xf.fffffp+124L 0x0p+0L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x0p+0L : inexact-ok
+= csqrt downward dbl-64 0xf.fffffp+124 0x8.8p-512 : 0xf.fffff7fffffd8p+60 0x4.4000022000018p-576 : inexact-ok
+= csqrt tonearest dbl-64 0xf.fffffp+124 0x8.8p-512 : 0xf.fffff7fffffep+60 0x4.4000022000018p-576 : inexact-ok
+= csqrt towardzero dbl-64 0xf.fffffp+124 0x8.8p-512 : 0xf.fffff7fffffd8p+60 0x4.4000022000018p-576 : inexact-ok
+= csqrt upward dbl-64 0xf.fffffp+124 0x8.8p-512 : 0xf.fffff7fffffep+60 0x4.400002200001cp-576 : inexact-ok
+= csqrt downward ldbl-96-intel 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffp+60L 0x4.40000220000198p-576L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffep+60L 0x4.40000220000198p-576L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffp+60L 0x4.40000220000198p-576L : inexact-ok
+= csqrt upward ldbl-96-intel 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffep+60L 0x4.4000022000019808p-576L : inexact-ok
+= csqrt downward ldbl-96-m68k 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffp+60L 0x4.40000220000198p-576L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffep+60L 0x4.40000220000198p-576L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffp+60L 0x4.40000220000198p-576L : inexact-ok
+= csqrt upward ldbl-96-m68k 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffep+60L 0x4.4000022000019808p-576L : inexact-ok
+= csqrt downward ldbl-128 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffffeffffff5ff8p+60L 0x4.400002200001980001540001298p-576L : inexact-ok
+= csqrt tonearest ldbl-128 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x4.400002200001980001540001298p-576L : inexact-ok
+= csqrt towardzero ldbl-128 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffffeffffff5ff8p+60L 0x4.400002200001980001540001298p-576L : inexact-ok
+= csqrt upward ldbl-128 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x4.4000022000019800015400012984p-576L : inexact-ok
+= csqrt downward ldbl-128ibm 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffffeffffff5cp+60L 0x4.40000220000198000154000128p-576L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x4.4000022000019800015400012ap-576L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffffeffffff5cp+60L 0x4.40000220000198000154000128p-576L : inexact-ok
+= csqrt upward ldbl-128ibm 0xf.fffffp+124L 0x8.8p-512L : 0xf.fffff7fffffdfffffeffffff6p+60L 0x4.4000022000019800015400012ap-576L : inexact-ok
+= csqrt downward dbl-64 0xf.fp+1020 0x8p-152 : 0xf.f7fdfeff5f8f8p+508 0x4.0201814118fccp-664 : inexact-ok
+= csqrt tonearest dbl-64 0xf.fp+1020 0x8p-152 : 0xf.f7fdfeff5f8f8p+508 0x4.0201814118fdp-664 : inexact-ok
+= csqrt towardzero dbl-64 0xf.fp+1020 0x8p-152 : 0xf.f7fdfeff5f8f8p+508 0x4.0201814118fccp-664 : inexact-ok
+= csqrt upward dbl-64 0xf.fp+1020 0x8p-152 : 0xf.f7fdfeff5f9p+508 0x4.0201814118fdp-664 : inexact-ok
+= csqrt downward ldbl-96-intel 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbp+508L 0x4.0201814118fce7dp-664L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabcp+508L 0x4.0201814118fce7d8p-664L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbp+508L 0x4.0201814118fce7dp-664L : inexact-ok
+= csqrt upward ldbl-96-intel 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabcp+508L 0x4.0201814118fce7d8p-664L : inexact-ok
+= csqrt downward ldbl-96-m68k 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbp+508L 0x4.0201814118fce7dp-664L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabcp+508L 0x4.0201814118fce7d8p-664L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbp+508L 0x4.0201814118fce7dp-664L : inexact-ok
+= csqrt upward ldbl-96-m68k 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabcp+508L 0x4.0201814118fce7d8p-664L : inexact-ok
+= csqrt downward ldbl-128 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbdca3329e3153p+508L 0x4.0201814118fce7d749d6a119df28p-664L : inexact-ok
+= csqrt tonearest ldbl-128 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbdca3329e3153p+508L 0x4.0201814118fce7d749d6a119df2cp-664L : inexact-ok
+= csqrt towardzero ldbl-128 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbdca3329e3153p+508L 0x4.0201814118fce7d749d6a119df28p-664L : inexact-ok
+= csqrt upward ldbl-128 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbdca3329e31538p+508L 0x4.0201814118fce7d749d6a119df2cp-664L : inexact-ok
+= csqrt downward ldbl-128ibm 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbdca3329e314p+508L 0x4.0201814118fce7d749d6a119dep-664L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbdca3329e314p+508L 0x4.0201814118fce7d749d6a119ep-664L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbdca3329e314p+508L 0x4.0201814118fce7d749d6a119dep-664L : inexact-ok
+= csqrt upward ldbl-128ibm 0xf.fp+1020L 0x8p-152L : 0xf.f7fdfeff5f8fabbdca3329e318p+508L 0x4.0201814118fce7d749d6a119ep-664L : inexact-ok
+= csqrt downward dbl-64 0xf.fp+1020 0x0p+0 : 0xf.f7fdfeff5f8f8p+508 0x0p+0 : inexact-ok
+= csqrt tonearest dbl-64 0xf.fp+1020 0x0p+0 : 0xf.f7fdfeff5f8f8p+508 0x0p+0 : inexact-ok
+= csqrt towardzero dbl-64 0xf.fp+1020 0x0p+0 : 0xf.f7fdfeff5f8f8p+508 0x0p+0 : inexact-ok
+= csqrt upward dbl-64 0xf.fp+1020 0x0p+0 : 0xf.f7fdfeff5f9p+508 0x0p+0 : inexact-ok
+= csqrt downward ldbl-96-intel 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbp+508L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabcp+508L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbp+508L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-96-intel 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabcp+508L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-96-m68k 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbp+508L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabcp+508L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbp+508L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-96-m68k 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabcp+508L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-128 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbdca3329e3153p+508L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-128 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbdca3329e3153p+508L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-128 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbdca3329e3153p+508L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-128 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbdca3329e31538p+508L 0x0p+0L : inexact-ok
+= csqrt downward ldbl-128ibm 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbdca3329e314p+508L 0x0p+0L : inexact-ok
+= csqrt tonearest ldbl-128ibm 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbdca3329e314p+508L 0x0p+0L : inexact-ok
+= csqrt towardzero ldbl-128ibm 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbdca3329e314p+508L 0x0p+0L : inexact-ok
+= csqrt upward ldbl-128ibm 0xf.fp+1020L 0x0p+0L : 0xf.f7fdfeff5f8fabbdca3329e318p+508L 0x0p+0L : inexact-ok
+= csqrt downward dbl-64 0xf.fp+1020 0x8.8p-512 : 0xf.f7fdfeff5f8f8p+508 0x4.422199552a8c8p-1024 : inexact-ok
+= csqrt tonearest dbl-64 0xf.fp+1020 0x8.8p-512 : 0xf.f7fdfeff5f8f8p+508 0x4.422199552a8ccp-1024 : inexact-ok
+= csqrt towardzero dbl-64 0xf.fp+1020 0x8.8p-512 : 0xf.f7fdfeff5f8f8p+508 0x4.422199552a8c8p-1024 : inexact-ok
+= csqrt upward dbl-64 0xf.fp+1020 0x8.8p-512 : 0xf.f7fdfeff5f9p+508 0x4.422199552a8ccp-1024 : inexact-ok
+= csqrt downward ldbl-96-intel 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbp+508L 0x4.422199552a8cb65p-1024L : inexact-ok
+= csqrt tonearest ldbl-96-intel 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabcp+508L 0x4.422199552a8cb658p-1024L : inexact-ok
+= csqrt towardzero ldbl-96-intel 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbp+508L 0x4.422199552a8cb65p-1024L : inexact-ok
+= csqrt upward ldbl-96-intel 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabcp+508L 0x4.422199552a8cb658p-1024L : inexact-ok
+= csqrt downward ldbl-96-m68k 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbp+508L 0x4.422199552a8cb65p-1024L : inexact-ok
+= csqrt tonearest ldbl-96-m68k 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabcp+508L 0x4.422199552a8cb658p-1024L : inexact-ok
+= csqrt towardzero ldbl-96-m68k 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbp+508L 0x4.422199552a8cb65p-1024L : inexact-ok
+= csqrt upward ldbl-96-m68k 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabcp+508L 0x4.422199552a8cb658p-1024L : inexact-ok
+= csqrt downward ldbl-128 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbdca3329e3153p+508L 0x4.422199552a8cb654be740b2b7d1cp-1024L : inexact-ok
+= csqrt tonearest ldbl-128 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbdca3329e3153p+508L 0x4.422199552a8cb654be740b2b7d2p-1024L : inexact-ok
+= csqrt towardzero ldbl-128 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbdca3329e3153p+508L 0x4.422199552a8cb654be740b2b7d1cp-1024L : inexact-ok
+= csqrt upward ldbl-128 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbdca3329e31538p+508L 0x4.422199552a8cb654be740b2b7d2p-1024L : inexact-ok
+= csqrt downward ldbl-128ibm 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbdca3329e314p+508L 0x4.422199552a8c8p-1024L : inexact-ok underflow errno-erange-ok
+= csqrt tonearest ldbl-128ibm 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbdca3329e314p+508L 0x4.422199552a8ccp-1024L : inexact-ok underflow errno-erange-ok
+= csqrt towardzero ldbl-128ibm 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbdca3329e314p+508L 0x4.422199552a8c8p-1024L : inexact-ok underflow errno-erange-ok
+= csqrt upward ldbl-128ibm 0xf.fp+1020L 0x8.8p-512L : 0xf.f7fdfeff5f8fabbdca3329e318p+508L 0x4.422199552a8ccp-1024L : inexact-ok underflow errno-erange-ok
+csqrt -0x0.ffp1024 0x1.1p-509
+= csqrt downward flt-32 -0xf.fffffp+124f 0x8p-152f : 0x0p+0f 0xf.fffffp+60f : inexact-ok underflow errno-erange-ok
+= csqrt tonearest flt-32 -0xf.fffffp+124f 0x8p-152f : 0x0p+0f 0xf.fffffp+60f : inexact-ok underflow errno-erange-ok
+= csqrt towardzero flt-32 -0xf.fffffp+124f 0x8p-152f : 0x0p+0f 0xf.fffffp+60f : inexact-ok underflow errno-erange-ok
+= csqrt upward flt-32 -0xf.fffffp+124f 0x8p-152f : 0x8p-152f 0x1p+64f : inexact-ok underflow errno-erange-ok
+= csqrt downward dbl-64 -0xf.fffffp+124 0x8p-152 : 0x4.0000020000018p-216 0xf.fffff7fffffd8p+60 : inexact-ok
+= csqrt tonearest dbl-64 -0xf.fffffp+124 0x8p-152 : 0x4.0000020000018p-216 0xf.fffff7fffffep+60 : inexact-ok
+= csqrt towardzero dbl-64 -0xf.fffffp+124 0x8p-152 : 0x4.0000020000018p-216 0xf.fffff7fffffd8p+60 : inexact-ok
+= csqrt upward dbl-64 -0xf.fffffp+124 0x8p-152 : 0x4.000002000001cp-216 0xf.fffff7fffffep+60 : inexact-ok
+= csqrt downward ldbl-96-intel -0xf.fffffp+124L 0x8p-152L : 0x4.0000020000018p-216L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt tonearest ldbl-96-intel -0xf.fffffp+124L 0x8p-152L : 0x4.0000020000018p-216L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt towardzero ldbl-96-intel -0xf.fffffp+124L 0x8p-152L : 0x4.0000020000018p-216L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt upward ldbl-96-intel -0xf.fffffp+124L 0x8p-152L : 0x4.0000020000018008p-216L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt downward ldbl-96-m68k -0xf.fffffp+124L 0x8p-152L : 0x4.0000020000018p-216L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt tonearest ldbl-96-m68k -0xf.fffffp+124L 0x8p-152L : 0x4.0000020000018p-216L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt towardzero ldbl-96-m68k -0xf.fffffp+124L 0x8p-152L : 0x4.0000020000018p-216L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt upward ldbl-96-m68k -0xf.fffffp+124L 0x8p-152L : 0x4.0000020000018008p-216L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt downward ldbl-128 -0xf.fffffp+124L 0x8p-152L : 0x4.00000200000180000140000118p-216L 0xf.fffff7fffffdfffffeffffff5ff8p+60L : inexact-ok
+= csqrt tonearest ldbl-128 -0xf.fffffp+124L 0x8p-152L : 0x4.00000200000180000140000118p-216L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt towardzero ldbl-128 -0xf.fffffp+124L 0x8p-152L : 0x4.00000200000180000140000118p-216L 0xf.fffff7fffffdfffffeffffff5ff8p+60L : inexact-ok
+= csqrt upward ldbl-128 -0xf.fffffp+124L 0x8p-152L : 0x4.0000020000018000014000011804p-216L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt downward ldbl-128ibm -0xf.fffffp+124L 0x8p-152L : 0x4.00000200000180000140000118p-216L 0xf.fffff7fffffdfffffeffffff5cp+60L : inexact-ok
+= csqrt tonearest ldbl-128ibm -0xf.fffffp+124L 0x8p-152L : 0x4.00000200000180000140000118p-216L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt towardzero ldbl-128ibm -0xf.fffffp+124L 0x8p-152L : 0x4.00000200000180000140000118p-216L 0xf.fffff7fffffdfffffeffffff5cp+60L : inexact-ok
+= csqrt upward ldbl-128ibm -0xf.fffffp+124L 0x8p-152L : 0x4.0000020000018000014000011ap-216L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt downward flt-32 -0xf.fffffp+124f 0x0p+0f : 0x0p+0f 0xf.fffffp+60f : inexact-ok
+= csqrt tonearest flt-32 -0xf.fffffp+124f 0x0p+0f : 0x0p+0f 0xf.fffffp+60f : inexact-ok
+= csqrt towardzero flt-32 -0xf.fffffp+124f 0x0p+0f : 0x0p+0f 0xf.fffffp+60f : inexact-ok
+= csqrt upward flt-32 -0xf.fffffp+124f 0x0p+0f : 0x0p+0f 0x1p+64f : inexact-ok
+= csqrt downward dbl-64 -0xf.fffffp+124 0x0p+0 : 0x0p+0 0xf.fffff7fffffd8p+60 : inexact-ok
+= csqrt tonearest dbl-64 -0xf.fffffp+124 0x0p+0 : 0x0p+0 0xf.fffff7fffffep+60 : inexact-ok
+= csqrt towardzero dbl-64 -0xf.fffffp+124 0x0p+0 : 0x0p+0 0xf.fffff7fffffd8p+60 : inexact-ok
+= csqrt upward dbl-64 -0xf.fffffp+124 0x0p+0 : 0x0p+0 0xf.fffff7fffffep+60 : inexact-ok
+= csqrt downward ldbl-96-intel -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt tonearest ldbl-96-intel -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt towardzero ldbl-96-intel -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt upward ldbl-96-intel -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt downward ldbl-96-m68k -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt tonearest ldbl-96-m68k -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt towardzero ldbl-96-m68k -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt upward ldbl-96-m68k -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt downward ldbl-128 -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffffeffffff5ff8p+60L : inexact-ok
+= csqrt tonearest ldbl-128 -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt towardzero ldbl-128 -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffffeffffff5ff8p+60L : inexact-ok
+= csqrt upward ldbl-128 -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt downward ldbl-128ibm -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffffeffffff5cp+60L : inexact-ok
+= csqrt tonearest ldbl-128ibm -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt towardzero ldbl-128ibm -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffffeffffff5cp+60L : inexact-ok
+= csqrt upward ldbl-128ibm -0xf.fffffp+124L 0x0p+0L : 0x0p+0L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt downward dbl-64 -0xf.fffffp+124 0x8.8p-512 : 0x4.4000022000018p-576 0xf.fffff7fffffd8p+60 : inexact-ok
+= csqrt tonearest dbl-64 -0xf.fffffp+124 0x8.8p-512 : 0x4.4000022000018p-576 0xf.fffff7fffffep+60 : inexact-ok
+= csqrt towardzero dbl-64 -0xf.fffffp+124 0x8.8p-512 : 0x4.4000022000018p-576 0xf.fffff7fffffd8p+60 : inexact-ok
+= csqrt upward dbl-64 -0xf.fffffp+124 0x8.8p-512 : 0x4.400002200001cp-576 0xf.fffff7fffffep+60 : inexact-ok
+= csqrt downward ldbl-96-intel -0xf.fffffp+124L 0x8.8p-512L : 0x4.40000220000198p-576L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt tonearest ldbl-96-intel -0xf.fffffp+124L 0x8.8p-512L : 0x4.40000220000198p-576L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt towardzero ldbl-96-intel -0xf.fffffp+124L 0x8.8p-512L : 0x4.40000220000198p-576L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt upward ldbl-96-intel -0xf.fffffp+124L 0x8.8p-512L : 0x4.4000022000019808p-576L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt downward ldbl-96-m68k -0xf.fffffp+124L 0x8.8p-512L : 0x4.40000220000198p-576L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt tonearest ldbl-96-m68k -0xf.fffffp+124L 0x8.8p-512L : 0x4.40000220000198p-576L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt towardzero ldbl-96-m68k -0xf.fffffp+124L 0x8.8p-512L : 0x4.40000220000198p-576L 0xf.fffff7fffffdfffp+60L : inexact-ok
+= csqrt upward ldbl-96-m68k -0xf.fffffp+124L 0x8.8p-512L : 0x4.4000022000019808p-576L 0xf.fffff7fffffep+60L : inexact-ok
+= csqrt downward ldbl-128 -0xf.fffffp+124L 0x8.8p-512L : 0x4.400002200001980001540001298p-576L 0xf.fffff7fffffdfffffeffffff5ff8p+60L : inexact-ok
+= csqrt tonearest ldbl-128 -0xf.fffffp+124L 0x8.8p-512L : 0x4.400002200001980001540001298p-576L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt towardzero ldbl-128 -0xf.fffffp+124L 0x8.8p-512L : 0x4.400002200001980001540001298p-576L 0xf.fffff7fffffdfffffeffffff5ff8p+60L : inexact-ok
+= csqrt upward ldbl-128 -0xf.fffffp+124L 0x8.8p-512L : 0x4.4000022000019800015400012984p-576L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt downward ldbl-128ibm -0xf.fffffp+124L 0x8.8p-512L : 0x4.40000220000198000154000128p-576L 0xf.fffff7fffffdfffffeffffff5cp+60L : inexact-ok
+= csqrt tonearest ldbl-128ibm -0xf.fffffp+124L 0x8.8p-512L : 0x4.4000022000019800015400012ap-576L 0xf.fffff7fffffdfffffeffffff6p+60L : inexact-ok
+= csqrt tow