aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog52
-rw-r--r--NEWS4
-rw-r--r--math/auto-libm-test-in36
-rw-r--r--math/auto-libm-test-out2434
-rw-r--r--math/libm-test.inc90
-rw-r--r--sysdeps/i386/fpu/e_atan2.S35
-rw-r--r--sysdeps/i386/fpu/e_atan2f.S35
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps24
-rw-r--r--sysdeps/i386/fpu/s_atan.S33
-rw-r--r--sysdeps/i386/fpu/s_atanf.S33
-rw-r--r--sysdeps/ieee754/dbl-64/e_atan2.c14
-rw-r--r--sysdeps/ieee754/dbl-64/s_atan.c11
-rw-r--r--sysdeps/ieee754/flt-32/s_atanf.c6
-rw-r--r--sysdeps/ieee754/ldbl-128/s_atanl.c7
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_atanl.c6
-rw-r--r--sysdeps/x86/fpu/bits/mathinline.h12
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_atan2.c1
17 files changed, 1840 insertions, 993 deletions
diff --git a/ChangeLog b/ChangeLog
index 0df762d3e8..8b6dd07140 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,55 @@
+2015-02-18 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15319]
+ * sysdeps/i386/fpu/e_atan2.S (dbl_min): New object.
+ (MO): New macro.
+ (__ieee754_atan2): For results with small absolute value, force
+ underflow exception and remove excess range and precision from
+ return value.
+ * sysdeps/i386/fpu/e_atan2f.S (flt_min): New object.
+ (MO): New macro.
+ (__ieee754_atan2f): For results with small absolute value, force
+ underflow exception and remove excess range and precision from
+ return value.
+ * sysdeps/i386/fpu/s_atan.S (dbl_min): New object.
+ (MO): New macro.
+ (__atan): For results with small absolute value, force underflow
+ exception and remove excess range and precision from return value.
+ * sysdeps/i386/fpu/s_atanf.S (flt_min): New object.
+ (MO): New macro.
+ (__atanf): For results with small absolute value, force underflow
+ exception and remove excess range and precision from return value.
+ * sysdeps/ieee754/dbl-64/e_atan2.c: Include <float.h> and
+ <math.h>.
+ (__ieee754_atan2): Force underflow exception for results with
+ small absolute value.
+ * sysdeps/ieee754/dbl-64/s_atan.c: Include <float.h> and
+ <math_private.h>.
+ (atan): Force underflow exception for results with small absolute
+ value.
+ * sysdeps/ieee754/flt-32/s_atanf.c: Include <float.h>.
+ (__atanf): Force underflow exception for results with small
+ absolute value.
+ * sysdeps/ieee754/ldbl-128/s_atanl.c: Include <float.h> and
+ <math.h>.
+ (__atanl): Force underflow exception for results with small
+ absolute value.
+ * sysdeps/ieee754/ldbl-128ibm/s_atanl.c: Include <float.h>.
+ (__atanl): Force underflow exception for results with small
+ absolute value.
+ * sysdeps/x86/fpu/bits/mathinline.h
+ [!__SSE2_MATH__ && !__x86_64__ && __LIBC_INTERNAL_MATH_INLINES]
+ (__ieee754_atan2): Only define inline for long double.
+ * sysdeps/x86_64/fpu/multiarch/e_atan2.c
+ [HAVE_FMA4_SUPPORT || HAVE_AVX_SUPPORT]: Include <math.h>.
+ * math/auto-libm-test-in: Do not mark underflow exceptions as
+ possibly missing for bug 15319. Add more tests of atan2.
+ * math/auto-libm-test-out: Regenerated.
+ * math/libm-test.inc (casin_test_data): Do not mark underflow
+ exceptions as possibly missing for bug 15319.
+ (casinh_test_data): Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+
2015-02-18 Steve Ellcey <sellcey@imgtec.com>
* sysdeps/unix/sysv/linux/mips/bits/endian.h: Remove.
diff --git a/NEWS b/NEWS
index 0fe66f8d90..0501d51132 100644
--- a/NEWS
+++ b/NEWS
@@ -9,8 +9,8 @@ Version 2.22
* The following bugs are resolved with this release:
- 4719, 15467, 15790, 16560, 17569, 17792, 17912, 17932, 17944, 17949,
- 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996.
+ 4719, 15319, 15467, 15790, 16560, 17569, 17792, 17912, 17932, 17944,
+ 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996.
Version 2.21
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 6bcfd54e55..62e1439c02 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -93,14 +93,13 @@ atan 0x1p-5
atan 2.5
atan 10
atan 1e6
-# Bug 15319: underflow exception may be missing.
-atan 0x1p-100 missing-underflow
-atan 0x1p-600 missing-underflow
-atan 0x1p-10000 missing-underflow
-atan min missing-underflow
-atan -min missing-underflow
-atan min_subnorm missing-underflow
-atan -min_subnorm missing-underflow
+atan 0x1p-100
+atan 0x1p-600
+atan 0x1p-10000
+atan min
+atan -min
+atan min_subnorm
+atan -min_subnorm
# atan2 (0,x) == 0 for x > 0.
atan2 0 1
@@ -156,13 +155,20 @@ atan2 min -max
atan2 -min -max
atan2 min_subnorm -max
atan2 -min_subnorm -max
-# Bug 15319: underflow exception may be missing.
-atan2 1 max missing-underflow
-atan2 -1 max missing-underflow
-atan2 min max missing-underflow
-atan2 -min max missing-underflow
-atan2 min_subnorm max missing-underflow
-atan2 -min_subnorm max missing-underflow
+atan2 1 max
+atan2 -1 max
+atan2 min max
+atan2 -min max
+atan2 min_subnorm max
+atan2 -min_subnorm max
+atan2 min 1
+atan2 -min 1
+atan2 min_subnorm 1
+atan2 -min_subnorm 1
+atan2 min -1
+atan2 -min -1
+atan2 min_subnorm -1
+atan2 -min_subnorm -1
atanh 0
atanh -0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 7b569cf12a..9d00c3be12 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -3353,7 +3353,7 @@ atan 1e6
= atan tonearest ldbl-128ibm 0xf.424p+16L : 0x1.921fa47d4b30ce822275563fcb8p+0L : inexact-ok
= atan towardzero ldbl-128ibm 0xf.424p+16L : 0x1.921fa47d4b30ce822275563fcb8p+0L : inexact-ok
= atan upward ldbl-128ibm 0xf.424p+16L : 0x1.921fa47d4b30ce822275563fccp+0L : inexact-ok
-atan 0x1p-100 missing-underflow
+atan 0x1p-100
= atan downward flt-32 0x1p-100f : 0xf.fffffp-104f : inexact-ok
= atan tonearest flt-32 0x1p-100f : 0x1p-100f : inexact-ok
= atan towardzero flt-32 0x1p-100f : 0xf.fffffp-104f : inexact-ok
@@ -3378,11 +3378,11 @@ atan 0x1p-100 missing-underflow
= atan tonearest ldbl-128ibm 0x1p-100L : 0x1p-100L : inexact-ok
= atan towardzero ldbl-128ibm 0x1p-100L : 0xf.fffffffffffffffffffffffffcp-104L : inexact-ok
= atan upward ldbl-128ibm 0x1p-100L : 0x1p-100L : inexact-ok
-atan 0x1p-600 missing-underflow
-= atan downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
+atan 0x1p-600
+= atan downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
+= atan tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= atan towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
+= atan upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
= atan downward dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
= atan tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
= atan towardzero dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
@@ -3447,11 +3447,11 @@ atan 0x1p-600 missing-underflow
= atan tonearest ldbl-128ibm 0x1p-600L : 0x1p-600L : inexact-ok
= atan towardzero ldbl-128ibm 0x1p-600L : 0xf.fffffffffffffffffffffffffcp-604L : inexact-ok
= atan upward ldbl-128ibm 0x1p-600L : 0x1p-600L : inexact-ok
-atan 0x1p-10000 missing-underflow
-= atan downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
+atan 0x1p-10000
+= atan downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
+= atan tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= atan towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
+= atan upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
= atan downward dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
= atan tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
= atan towardzero dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
@@ -3496,10 +3496,10 @@ atan 0x1p-10000 missing-underflow
= atan tonearest ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
= atan towardzero ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
= atan upward ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
-= atan downward dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
+= atan downward dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok
+= atan tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= atan towardzero dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok
+= atan upward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
= atan downward ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
= atan tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok
= atan towardzero ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
@@ -3512,10 +3512,10 @@ atan 0x1p-10000 missing-underflow
= atan tonearest ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
= atan towardzero ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
= atan upward ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
-= atan downward ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
+= atan downward ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow errno-erange-ok
+= atan tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= atan towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow errno-erange-ok
+= atan upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
= atan downward ldbl-96-intel 0x1p-10000L : 0xf.fffffffffffffffp-10004L : inexact-ok
= atan tonearest ldbl-96-intel 0x1p-10000L : 0x1p-10000L : inexact-ok
= atan towardzero ldbl-96-intel 0x1p-10000L : 0xf.fffffffffffffffp-10004L : inexact-ok
@@ -3528,7 +3528,7 @@ atan 0x1p-10000 missing-underflow
= atan tonearest ldbl-128 0x1p-10000L : 0x1p-10000L : inexact-ok
= atan towardzero ldbl-128 0x1p-10000L : 0xf.fffffffffffffffffffffffffff8p-10004L : inexact-ok
= atan upward ldbl-128 0x1p-10000L : 0x1p-10000L : inexact-ok
-atan min missing-underflow
+atan min
= atan downward flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
= atan tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
= atan towardzero flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
@@ -3569,10 +3569,10 @@ atan min missing-underflow
= atan tonearest ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok
= atan towardzero ldbl-128 0x4p-1024L : 0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
= atan upward ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok
-= atan downward ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
+= atan downward ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= atan tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= atan towardzero ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= atan upward ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok
= atan downward ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
= atan tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= atan towardzero ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
@@ -3585,18 +3585,18 @@ atan min missing-underflow
= atan tonearest ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= atan towardzero ldbl-128 0x4p-16384L : 0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= atan upward ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
-= atan downward ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= atan downward ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= atan tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= atan towardzero ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= atan upward ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
= atan downward ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= atan tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
= atan towardzero ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= atan upward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
-= atan downward ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= atan downward ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= atan tonearest ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= atan towardzero ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= atan upward ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
= atan downward dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 : inexact-ok
= atan tonearest dbl-64 0x8p-972 : 0x8p-972 : inexact-ok
= atan towardzero dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 : inexact-ok
@@ -3617,7 +3617,7 @@ atan min missing-underflow
= atan tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
= atan towardzero ldbl-128ibm 0x8p-972L : 0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
= atan upward ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
-atan -min missing-underflow
+atan -min
= atan downward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
= atan tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
= atan towardzero flt-32 -0x4p-128f : -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
@@ -3658,10 +3658,10 @@ atan -min missing-underflow
= atan tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
= atan towardzero ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
= atan upward ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
-= atan downward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow underflow-ok errno-erange-ok
+= atan downward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= atan tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= atan towardzero ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= atan upward ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
= atan downward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= atan tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= atan towardzero ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
@@ -3674,18 +3674,18 @@ atan -min missing-underflow
= atan tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= atan towardzero ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= atan upward ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
-= atan downward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= atan downward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= atan tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= atan towardzero ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= atan upward ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
= atan downward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
= atan tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
= atan towardzero ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= atan upward ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
-= atan downward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= atan downward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= atan tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= atan towardzero ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= atan upward ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
= atan downward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
= atan tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
= atan towardzero dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 : inexact-ok
@@ -3706,11 +3706,11 @@ atan -min missing-underflow
= atan tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
= atan towardzero ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
= atan upward ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
-atan min_subnorm missing-underflow
-= atan downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
+atan min_subnorm
+= atan downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
+= atan tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= atan towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
+= atan upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
= atan downward dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
= atan tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
= atan towardzero dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
@@ -3731,10 +3731,10 @@ atan min_subnorm missing-underflow
= atan tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
= atan towardzero ldbl-128ibm 0x8p-152L : 0x7.fffffffffffffffffffffffffep-152L : inexact-ok
= atan upward ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
-= atan downward dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
+= atan downward dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok
+= atan tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= atan towardzero dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok
+= atan upward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
= atan downward ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
= atan tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok
= atan towardzero ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
@@ -3747,39 +3747,39 @@ atan min_subnorm missing-underflow
= atan tonearest ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
= atan towardzero ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
= atan upward ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
-= atan downward ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan downward ldbl-96-intel 0x8p-16448L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-96-intel 0x8p-16448L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan downward ldbl-96-m68k 0x8p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-96-m68k 0x8p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan downward ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan downward ldbl-96-m68k 0x4p-16448L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-96-m68k 0x4p-16448L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan downward ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan downward ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan tonearest ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan towardzero ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan upward ldbl-128 0x4p-1