aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-02-18 14:45:41 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-02-18 14:45:41 +0000
commita4fb786185fce5048a13c7879f67dfbe59ff70be (patch)
tree32d90a80cb679c5d96320ec56b92928312e1246e /math
parentef114eafbff80525d079d7d6fadd69a58eb8dcc3 (diff)
downloadglibc-a4fb786185fce5048a13c7879f67dfbe59ff70be.tar.xz
glibc-a4fb786185fce5048a13c7879f67dfbe59ff70be.zip
Fix gen-auto-libm-tests sticky bit setting for negative results.
gen-auto-libm-tests has a bug in the logic for setting a sticky bit based on the ternary value from MPFR: it is correct for positive results, but for negative results mpz_setbit acts as if a two's complement representation is used, whereas the low bit needs setting based on the sign-magnitude representation GMP actually uses. (This showed up in converting fma tests to use auto-libm-test-in / gen-auto-libm-tests.) This patch fixes the problem by negating the mpz_t value to set its low bit. There are lots of changes to auto-libm-test-out (mainly 1ulp fixes to ldbl-128 expected results), but only a few ulps updates are needed on x86 / x86_64. In one case, a corrected expectation showed up a spurious underflow exception where the correct result is slightly outside the underflowing range. Tested x86_64 and x86 and ulps updated accordingly. * math/gen-auto-libm-tests.c (adjust_real): Ensure integers are non-negative before setting low bit. * math/auto-libm-test-in: Mark one asin test possibly having spurious underflow. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Diffstat (limited to 'math')
-rw-r--r--math/auto-libm-test-in3
-rw-r--r--math/auto-libm-test-out8672
-rw-r--r--math/gen-auto-libm-tests.c9
3 files changed, 4346 insertions, 4338 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index c620361613..17158ea685 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -61,8 +61,9 @@ asin -0x0.ffffffffffffp0
asin 0x0.ffffffffffffffffp0
asin -0x0.ffffffffffffffffp0
# Bug 16351: underflow exception may be missing.
+# Bug 16599: spurious underflow may occur.
asin min missing-underflow
-asin -min missing-underflow
+asin -min missing-underflow spurious-underflow:dbl-64:x86
asin min_subnorm missing-underflow
asin -min_subnorm missing-underflow
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 93818e8d49..337148d0c2 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -1491,10 +1491,10 @@ asin -1.0
= asin tonearest ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok
= asin towardzero ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d18468p+0L : inexact-ok
= asin upward ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d18468p+0L : inexact-ok
-= asin downward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
+= asin downward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b9p+0L : inexact-ok
= asin tonearest ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
-= asin towardzero ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok
-= asin upward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok
+= asin towardzero ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
+= asin upward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
= asin downward ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc51702p+0L : inexact-ok
= asin tonearest ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok
= asin towardzero ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok
@@ -1566,10 +1566,10 @@ asin -0x0.ffffffp0
= asin tonearest ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
= asin towardzero ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
= asin upward ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
-= asin downward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
+= asin downward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adep+0L : inexact-ok
= asin tonearest ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
-= asin towardzero ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adcp+0L : inexact-ok
-= asin upward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adcp+0L : inexact-ok
+= asin towardzero ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
+= asin upward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
= asin downward ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81bp+0L : inexact-ok
= asin tonearest ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81bp+0L : inexact-ok
= asin towardzero ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81a8p+0L : inexact-ok
@@ -1660,10 +1660,10 @@ asin -0x0.ffffffff8p0
= asin tonearest ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
= asin towardzero ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
= asin upward ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
-= asin downward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
+= asin downward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adep+0L : inexact-ok
= asin tonearest ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
-= asin towardzero ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adcp+0L : inexact-ok
-= asin upward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adcp+0L : inexact-ok
+= asin towardzero ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
+= asin upward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
= asin downward ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81bp+0L : inexact-ok
= asin tonearest ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81bp+0L : inexact-ok
= asin towardzero ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81a8p+0L : inexact-ok
@@ -1684,10 +1684,10 @@ asin -0x0.ffffffff8p0
= asin tonearest ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok
= asin towardzero ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d18468p+0L : inexact-ok
= asin upward ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d18468p+0L : inexact-ok
-= asin downward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
+= asin downward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b9p+0L : inexact-ok
= asin tonearest ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
-= asin towardzero ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok
-= asin upward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok
+= asin towardzero ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
+= asin upward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
= asin downward ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc51702p+0L : inexact-ok
= asin tonearest ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok
= asin towardzero ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok
@@ -1798,10 +1798,10 @@ asin -0x0.ffffffffffffp0
= asin tonearest ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
= asin towardzero ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
= asin upward ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
-= asin downward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
+= asin downward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adep+0L : inexact-ok
= asin tonearest ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
-= asin towardzero ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adcp+0L : inexact-ok
-= asin upward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adcp+0L : inexact-ok
+= asin towardzero ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
+= asin upward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
= asin downward ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81bp+0L : inexact-ok
= asin tonearest ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81bp+0L : inexact-ok
= asin towardzero ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81a8p+0L : inexact-ok
@@ -1822,10 +1822,10 @@ asin -0x0.ffffffffffffp0
= asin tonearest ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok
= asin towardzero ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d18468p+0L : inexact-ok
= asin upward ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d18468p+0L : inexact-ok
-= asin downward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
+= asin downward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b9p+0L : inexact-ok
= asin tonearest ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
-= asin towardzero ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok
-= asin upward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok
+= asin towardzero ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
+= asin upward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
= asin downward ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc51702p+0L : inexact-ok
= asin tonearest ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok
= asin towardzero ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok
@@ -1952,10 +1952,10 @@ asin -0x0.ffffffffffffffffp0
= asin tonearest ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
= asin towardzero ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
= asin upward ldbl-96-m68k -0xf.fffffp-4L : -0x1.920914a5da6f90bep+0L : inexact-ok
-= asin downward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
+= asin downward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adep+0L : inexact-ok
= asin tonearest ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
-= asin towardzero ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adcp+0L : inexact-ok
-= asin upward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81adcp+0L : inexact-ok
+= asin towardzero ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
+= asin upward ldbl-128 -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81addp+0L : inexact-ok
= asin downward ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81bp+0L : inexact-ok
= asin tonearest ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81bp+0L : inexact-ok
= asin towardzero ldbl-128ibm -0xf.fffffp-4L : -0x1.920914a5da6f90beac755cf81a8p+0L : inexact-ok
@@ -1976,10 +1976,10 @@ asin -0x0.ffffffffffffffffp0
= asin tonearest ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok
= asin towardzero ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d18468p+0L : inexact-ok
= asin upward ldbl-96-m68k -0x1p+0L : -0x1.921fb54442d18468p+0L : inexact-ok
-= asin downward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
+= asin downward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b9p+0L : inexact-ok
= asin tonearest ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
-= asin towardzero ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok
-= asin upward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok
+= asin towardzero ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
+= asin upward ldbl-128 -0x1p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok
= asin downward ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc51702p+0L : inexact-ok
= asin tonearest ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok
= asin towardzero ldbl-128ibm -0x1p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok
@@ -1997,7 +1997,7 @@ asin -0x0.ffffffffffffffffp0
= asin towardzero ldbl-96-m68k -0xf.ffffffffffff8p-4L : -0x1.921fb50442d18468p+0L : inexact-ok
= asin upward ldbl-96-m68k -0xf.ffffffffffff8p-4L : -0x1.921fb50442d18468p+0L : inexact-ok
= asin downward ldbl-128 -0xf.ffffffffffff8p-4L : -0x1.921fb50442d18469898c9a6c570ep+0L : inexact-ok
-= asin tonearest ldbl-128 -0xf.ffffffffffff8p-4L : -0x1.921fb50442d18469898c9a6c570dp+0L : inexact-ok
+= asin tonearest ldbl-128 -0xf.ffffffffffff8p-4L : -0x1.921fb50442d18469898c9a6c570ep+0L : inexact-ok
= asin towardzero ldbl-128 -0xf.ffffffffffff8p-4L : -0x1.921fb50442d18469898c9a6c570dp+0L : inexact-ok
= asin upward ldbl-128 -0xf.ffffffffffff8p-4L : -0x1.921fb50442d18469898c9a6c570dp+0L : inexact-ok
= asin downward ldbl-128ibm -0xf.ffffffffffff8p-4L : -0x1.921fb50442d18469898c9a6c578p+0L : inexact-ok
@@ -2013,7 +2013,7 @@ asin -0x0.ffffffffffffffffp0
= asin towardzero ldbl-96-m68k -0xf.fffffffffffffffp-4L : -0x1.921fb542d8c79ep+0L : inexact-ok
= asin upward ldbl-96-m68k -0xf.fffffffffffffffp-4L : -0x1.921fb542d8c79ep+0L : inexact-ok
= asin downward ldbl-128 -0xf.fffffffffffffffp-4L : -0x1.921fb542d8c79e0195cffc0e3092p+0L : inexact-ok
-= asin tonearest ldbl-128 -0xf.fffffffffffffffp-4L : -0x1.921fb542d8c79e0195cffc0e3091p+0L : inexact-ok
+= asin tonearest ldbl-128 -0xf.fffffffffffffffp-4L : -0x1.921fb542d8c79e0195cffc0e3092p+0L : inexact-ok
= asin towardzero ldbl-128 -0xf.fffffffffffffffp-4L : -0x1.921fb542d8c79e0195cffc0e3091p+0L : inexact-ok
= asin upward ldbl-128 -0xf.fffffffffffffffp-4L : -0x1.921fb542d8c79e0195cffc0e3091p+0L : inexact-ok
= asin downward ldbl-128ibm -0xf.fffffffffffffffp-4L : -0x1.921fb542d8c79e0195cffc0e31p+0L : inexact-ok
@@ -2109,95 +2109,95 @@ asin min missing-underflow
= asin tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok
= asin towardzero ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok
= asin upward ldbl-128ibm 0x8p-972L : 0x8.00000000000000000000000004p-972L : inexact-ok
-asin -min missing-underflow
-= asin downward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
-= asin tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
-= asin towardzero flt-32 -0x4p-128f : -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
-= asin upward flt-32 -0x4p-128f : -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
-= asin downward dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
-= asin tonearest dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
-= asin towardzero dbl-64 -0x4p-128 : -0x3.ffffffffffffep-128 : inexact-ok
-= asin upward dbl-64 -0x4p-128 : -0x3.ffffffffffffep-128 : inexact-ok
-= asin downward ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok
-= asin tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok
-= asin towardzero ldbl-96-intel -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok
-= asin upward ldbl-96-intel -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok
-= asin downward ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok
-= asin tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok
-= asin towardzero ldbl-96-m68k -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok
-= asin upward ldbl-96-m68k -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok
-= asin downward ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok
-= asin tonearest ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok
-= asin towardzero ldbl-128 -0x4p-128L : -0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
-= asin upward ldbl-128 -0x4p-128L : -0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
-= asin downward ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
-= asin tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
-= asin towardzero ldbl-128ibm -0x4p-128L : -0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
-= asin upward ldbl-128ibm -0x4p-128L : -0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
-= asin downward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
-= asin tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
-= asin towardzero dbl-64 -0x4p-1024 : -0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
-= asin upward dbl-64 -0x4p-1024 : -0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
-= asin downward ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
-= asin tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
-= asin towardzero ldbl-96-intel -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok
-= asin upward ldbl-96-intel -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok
-= asin downward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok
-= asin tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok
-= asin towardzero ldbl-96-m68k -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok
-= asin upward ldbl-96-m68k -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok
-= asin downward ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
-= asin tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
-= asin towardzero ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
-= asin upward ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
-= asin downward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
+asin -min missing-underflow spurious-underflow:dbl-64:x86
+= asin downward flt-32 -0x4p-128f : -0x4.000008p-128f : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok:dbl-64:x86
+= asin upward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok:dbl-64:x86
+= asin downward dbl-64 -0x4p-128 : -0x4.0000000000004p-128 : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok underflow-ok:dbl-64:x86
+= asin upward dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-96-intel -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-96-m68k -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-128 -0x4p-128L : -0x4.0000000000000000000000000004p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-128ibm -0x4p-128L : -0x4.00000000000000000000000002p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward dbl-64 -0x4p-1024 : -0x4.0000000000004p-1024 : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok:dbl-64:x86
+= asin upward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-96-intel -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-96-m68k -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-128 -0x4p-1024L : -0x4.0000000000000000000000000004p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-128ibm -0x4p-1024L : -0x4.0000000000004p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin towardzero ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin upward ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin downward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin towardzero ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin upward ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin downward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
-= asin tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
-= asin towardzero ldbl-96-m68k -0x4p-16384L : -0x3.fffffffffffffffcp-16384L : inexact-ok
-= asin upward ldbl-96-m68k -0x4p-16384L : -0x3.fffffffffffffffcp-16384L : inexact-ok
-= asin downward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin towardzero ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin upward ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin downward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= asin towardzero ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
+= asin upward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
+= asin downward ldbl-96-intel -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-96-m68k -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-128 -0x4p-16384L : -0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-96-intel -0x2p-16384L : -0x2.0000000000000008p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin towardzero ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin upward ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin downward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin towardzero ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin upward ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
-= asin downward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= asin towardzero ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= asin upward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= asin downward ldbl-96-m68k -0x2p-16384L : -0x2.0000000000000004p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-128 -0x2p-16384L : -0x2.0000000000000000000000000004p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin towardzero ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin upward ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= asin downward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
-= asin tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
-= asin towardzero dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 : inexact-ok
-= asin upward dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 : inexact-ok
-= asin downward ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok
-= asin tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok
-= asin towardzero ldbl-96-intel -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok
-= asin upward ldbl-96-intel -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok
-= asin downward ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok
-= asin tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok
-= asin towardzero ldbl-96-m68k -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok
-= asin upward ldbl-96-m68k -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok
-= asin downward ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
-= asin tonearest ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
-= asin towardzero ldbl-128 -0x8p-972L : -0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
-= asin upward ldbl-128 -0x8p-972L : -0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
-= asin downward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
-= asin tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
-= asin towardzero ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
-= asin upward ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+= asin towardzero ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= asin upward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= asin downward dbl-64 -0x8p-972 : -0x8.0000000000008p-972 : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok underflow-ok:dbl-64:x86
+= asin upward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-96-intel -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-96-m68k -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-128 -0x8p-972L : -0x8.0000000000000000000000000008p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin downward ldbl-128ibm -0x8p-972L : -0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin towardzero ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
+= asin upward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok:dbl-64:x86
asin min_subnorm missing-underflow
= asin downward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
@@ -2268,74 +2268,74 @@ asin min_subnorm missing-underflow
= asin towardzero ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
= asin upward ldbl-128 0x4p-16496L : 0x8p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
asin -min_subnorm missing-underflow
-= asin downward flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
+= asin downward flt-32 -0x8p-152f : -0x1p-148f : inexact-ok underflow underflow-ok errno-erange-ok
= asin tonearest flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok