aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog29
-rw-r--r--NEWS28
-rw-r--r--math/auto-libm-test-in8
-rw-r--r--math/auto-libm-test-out632
-rw-r--r--sysdeps/ieee754/dbl-64/s_sin.c10
-rw-r--r--sysdeps/ieee754/flt-32/k_sinf.c11
-rw-r--r--sysdeps/ieee754/ldbl-128/k_sincosl.c20
-rw-r--r--sysdeps/ieee754/ldbl-128/k_sinl.c10
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/k_sincosl.c20
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/k_sinl.c10
-rw-r--r--sysdeps/ieee754/ldbl-96/k_sinl.c10
-rw-r--r--sysdeps/powerpc/fpu/k_sinf.c6
12 files changed, 762 insertions, 32 deletions
diff --git a/ChangeLog b/ChangeLog
index 2f07bc1..53766d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,34 @@
2015-06-23 Joseph Myers <joseph@codesourcery.com>
+ [BZ #16526]
+ [BZ #16538]
+ * sysdeps/ieee754/dbl-64/s_sin.c: Include <float.h>.
+ (__sin): Force underflow exception for arguments with small
+ absolute value.
+ * sysdeps/ieee754/flt-32/k_sinf.c: Include <float.h>.
+ (__kernel_sinf): Force underflow exception for arguments with
+ small absolute value.
+ * sysdeps/ieee754/ldbl-128/k_sincosl.c: Include <float.h>.
+ (__kernel_sincosl): Force underflow exception for arguments with
+ small absolute value.
+ * sysdeps/ieee754/ldbl-128/k_sinl.c: Include <float.h>.
+ (__kernel_sinl): Force underflow exception for arguments with
+ small absolute value.
+ * sysdeps/ieee754/ldbl-128ibm/k_sincosl.c: Include <float.h>.
+ (__kernel_sincosl): Force underflow exception for arguments with
+ small absolute value.
+ * sysdeps/ieee754/ldbl-128ibm/k_sinl.c: Include <float.h>.
+ (__kernel_sinl): Force underflow exception for arguments with
+ small absolute value.
+ * sysdeps/ieee754/ldbl-96/k_sinl.c: Include <float.h>.
+ (__kernel_sinl): Force underflow exception for arguments with
+ small absolute value.
+ * sysdeps/powerpc/fpu/k_sinf.c: Include <float.h>.
+ (__kernel_sinf): Force underflow exception for arguments with
+ small absolute value.
+ * math/auto-libm-test-in: Add more tests of sin and sincos.
+ * math/auto-libm-test-out: Regenerated.
+
[BZ #18245]
[BZ #18583]
* sysdeps/ieee754/k_standardl.c: Include <fenv.h>.
diff --git a/NEWS b/NEWS
index da4ed7e1fc..aacd894 100644
--- a/NEWS
+++ b/NEWS
@@ -11,20 +11,20 @@ Version 2.22
438, 4719, 6792, 13028, 13064, 14094, 14841, 14906, 14958, 15319, 15467,
15790, 15969, 16159, 16339, 16350, 16351, 16352, 16353, 16361, 16512,
- 16560, 16704, 16783, 16850, 17053, 17090, 17195, 17269, 17293, 17322,
- 17403, 17523, 17542, 17569, 17581, 17588, 17596, 17620, 17621, 17628,
- 17631, 17692, 17711, 17715, 17776, 17779, 17792, 17836, 17912, 17916,
- 17930, 17932, 17944, 17949, 17964, 17965, 17967, 17969, 17977, 17978,
- 17987, 17991, 17996, 17998, 17999, 18007, 18019, 18020, 18029, 18030,
- 18032, 18034, 18036, 18038, 18039, 18042, 18043, 18046, 18047, 18049,
- 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18116, 18125, 18128,
- 18138, 18185, 18196, 18197, 18206, 18210, 18211, 18217, 18219, 18220,
- 18221, 18234, 18244, 18245, 18247, 18287, 18319, 18324, 18333, 18346,
- 18371, 18397, 18409, 18410, 18412, 18418, 18422, 18434, 18444, 18468,
- 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498, 18507, 18512,
- 18513, 18519, 18520, 18522, 18527, 18528, 18529, 18530, 18532, 18533,
- 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546, 18547, 18553,
- 18558, 18569, 18583.
+ 16526, 16538, 16560, 16704, 16783, 16850, 17053, 17090, 17195, 17269,
+ 17293, 17322, 17403, 17523, 17542, 17569, 17581, 17588, 17596, 17620,
+ 17621, 17628, 17631, 17692, 17711, 17715, 17776, 17779, 17792, 17836,
+ 17912, 17916, 17930, 17932, 17944, 17949, 17964, 17965, 17967, 17969,
+ 17977, 17978, 17987, 17991, 17996, 17998, 17999, 18007, 18019, 18020,
+ 18029, 18030, 18032, 18034, 18036, 18038, 18039, 18042, 18043, 18046,
+ 18047, 18049, 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18116,
+ 18125, 18128, 18138, 18185, 18196, 18197, 18206, 18210, 18211, 18217,
+ 18219, 18220, 18221, 18234, 18244, 18245, 18247, 18287, 18319, 18324,
+ 18333, 18346, 18371, 18397, 18409, 18410, 18412, 18418, 18422, 18434,
+ 18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498,
+ 18507, 18512, 18513, 18519, 18520, 18522, 18527, 18528, 18529, 18530,
+ 18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546,
+ 18547, 18553, 18558, 18569, 18583.
* Cache information can be queried via sysconf() function on s390 e.g. with
_SC_LEVEL1_ICACHE_SIZE as argument.
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index d1502ad..6545583 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -2317,6 +2317,10 @@ sin 0x1.2001469775ce6p32
sin -0x3.3de320f6be87ep+1020
sin 0xe.9f1e5bc3bb88p+112
sin 0x4.7857dp+68
+sin min
+sin -min
+sin min_subnorm
+sin -min_subnorm
sincos 0
sincos -0
@@ -2339,6 +2343,10 @@ sincos 0x1p+28
sincos -0x3.3de320f6be87ep+1020
sincos 0xe.9f1e5bc3bb88p+112
sincos 0x4.7857dp+68
+sincos min
+sincos -min
+sincos min_subnorm
+sincos -min_subnorm
sinh 0
sinh -0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 89a4ffc..f3672db 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -181969,6 +181969,322 @@ sin 0x4.7857dp+68
= sin tonearest ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040638p-4L : inexact-ok
= sin towardzero ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040637f8p-4L : inexact-ok
= sin upward ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040637f8p-4L : inexact-ok
+sin min
+= sin downward flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= sin upward flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= sin downward dbl-64 0x4p-128 : 0x3.ffffffffffffep-128 : inexact-ok
+= sin tonearest dbl-64 0x4p-128 : 0x4p-128 : inexact-ok
+= sin towardzero dbl-64 0x4p-128 : 0x3.ffffffffffffep-128 : inexact-ok
+= sin upward dbl-64 0x4p-128 : 0x4p-128 : inexact-ok
+= sin downward ldbl-96-intel 0x4p-128L : 0x3.fffffffffffffffcp-128L : inexact-ok
+= sin tonearest ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok
+= sin towardzero ldbl-96-intel 0x4p-128L : 0x3.fffffffffffffffcp-128L : inexact-ok
+= sin upward ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok
+= sin downward ldbl-96-m68k 0x4p-128L : 0x3.fffffffffffffffcp-128L : inexact-ok
+= sin tonearest ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok
+= sin towardzero ldbl-96-m68k 0x4p-128L : 0x3.fffffffffffffffcp-128L : inexact-ok
+= sin upward ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok
+= sin downward ldbl-128 0x4p-128L : 0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= sin tonearest ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok
+= sin towardzero ldbl-128 0x4p-128L : 0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= sin upward ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok
+= sin downward ldbl-128ibm 0x4p-128L : 0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= sin tonearest ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok
+= sin towardzero ldbl-128ibm 0x4p-128L : 0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= sin upward ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok
+= sin downward dbl-64 0x4p-1024 : 0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero dbl-64 0x4p-1024 : 0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= sin upward dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= sin downward ldbl-96-intel 0x4p-1024L : 0x3.fffffffffffffffcp-1024L : inexact-ok
+= sin tonearest ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok
+= sin towardzero ldbl-96-intel 0x4p-1024L : 0x3.fffffffffffffffcp-1024L : inexact-ok
+= sin upward ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok
+= sin downward ldbl-96-m68k 0x4p-1024L : 0x3.fffffffffffffffcp-1024L : inexact-ok
+= sin tonearest ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok
+= sin towardzero ldbl-96-m68k 0x4p-1024L : 0x3.fffffffffffffffcp-1024L : inexact-ok
+= sin upward ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok
+= sin downward ldbl-128 0x4p-1024L : 0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= sin tonearest ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok
+= sin towardzero ldbl-128 0x4p-1024L : 0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= sin upward ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok
+= sin downward ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin upward ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin downward ldbl-96-m68k 0x4p-16384L : 0x3.fffffffffffffffcp-16384L : inexact-ok
+= sin tonearest ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok
+= sin towardzero ldbl-96-m68k 0x4p-16384L : 0x3.fffffffffffffffcp-16384L : inexact-ok
+= sin upward ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok
+= sin downward ldbl-128 0x4p-16384L : 0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero ldbl-128 0x4p-16384L : 0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin upward ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin downward ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin upward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin downward ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= sin downward dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 : inexact-ok
+= sin tonearest dbl-64 0x8p-972 : 0x8p-972 : inexact-ok
+= sin towardzero dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 : inexact-ok
+= sin upward dbl-64 0x8p-972 : 0x8p-972 : inexact-ok
+= sin downward ldbl-96-intel 0x8p-972L : 0x7.fffffffffffffff8p-972L : inexact-ok
+= sin tonearest ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok
+= sin towardzero ldbl-96-intel 0x8p-972L : 0x7.fffffffffffffff8p-972L : inexact-ok
+= sin upward ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok
+= sin downward ldbl-96-m68k 0x8p-972L : 0x7.fffffffffffffff8p-972L : inexact-ok
+= sin tonearest ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok
+= sin towardzero ldbl-96-m68k 0x8p-972L : 0x7.fffffffffffffff8p-972L : inexact-ok
+= sin upward ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok
+= sin downward ldbl-128 0x8p-972L : 0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= sin tonearest ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok
+= sin towardzero ldbl-128 0x8p-972L : 0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= sin upward ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok
+= sin downward ldbl-128ibm 0x8p-972L : 0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero ldbl-128ibm 0x8p-972L : 0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+= sin upward ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+sin -min
+= sin downward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero flt-32 -0x4p-128f : -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= sin upward flt-32 -0x4p-128f : -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= sin downward dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
+= sin tonearest dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok
+= sin towardzero dbl-64 -0x4p-128 : -0x3.ffffffffffffep-128 : inexact-ok
+= sin upward dbl-64 -0x4p-128 : -0x3.ffffffffffffep-128 : inexact-ok
+= sin downward ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok
+= sin tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok
+= sin towardzero ldbl-96-intel -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok
+= sin upward ldbl-96-intel -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok
+= sin downward ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok
+= sin tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok
+= sin towardzero ldbl-96-m68k -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok
+= sin upward ldbl-96-m68k -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok
+= sin downward ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok
+= sin tonearest ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok
+= sin towardzero ldbl-128 -0x4p-128L : -0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= sin upward ldbl-128 -0x4p-128L : -0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= sin downward ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
+= sin tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok
+= sin towardzero ldbl-128ibm -0x4p-128L : -0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= sin upward ldbl-128ibm -0x4p-128L : -0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= sin downward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero dbl-64 -0x4p-1024 : -0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= sin upward dbl-64 -0x4p-1024 : -0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= sin downward ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
+= sin tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok
+= sin towardzero ldbl-96-intel -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok
+= sin upward ldbl-96-intel -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok
+= sin downward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok
+= sin tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok
+= sin towardzero ldbl-96-m68k -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok
+= sin upward ldbl-96-m68k -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok
+= sin downward ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
+= sin tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
+= sin towardzero ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= sin upward ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= sin downward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin upward ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin downward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
+= sin tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok
+= sin towardzero ldbl-96-m68k -0x4p-16384L : -0x3.fffffffffffffffcp-16384L : inexact-ok
+= sin upward ldbl-96-m68k -0x4p-16384L : -0x3.fffffffffffffffcp-16384L : inexact-ok
+= sin downward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin upward ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin downward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin upward ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= sin downward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= sin downward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
+= sin tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
+= sin towardzero dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 : inexact-ok
+= sin upward dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 : inexact-ok
+= sin downward ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok
+= sin tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok
+= sin towardzero ldbl-96-intel -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok
+= sin upward ldbl-96-intel -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok
+= sin downward ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok
+= sin tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok
+= sin towardzero ldbl-96-m68k -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok
+= sin upward ldbl-96-m68k -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok
+= sin downward ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
+= sin tonearest ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok
+= sin towardzero ldbl-128 -0x8p-972L : -0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= sin upward ldbl-128 -0x8p-972L : -0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= sin downward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= sin tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= sin towardzero ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+= sin upward ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+sin min_subnorm
+= sin downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
+= sin tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= sin towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
+= sin upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= sin downward dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
+= sin tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
+= sin towardzero dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
+= sin upward dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
+= sin downward ldbl-96-intel 0x8p-152L : 0x7.fffffffffffffff8p-152L : inexact-ok
+= sin tonearest ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok
+= sin towardzero ldbl-96-intel 0x8p-152L : 0x7.fffffffffffffff8p-152L : inexact-ok
+= sin upward ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok
+= sin downward ldbl-96-m68k 0x8p-152L : 0x7.fffffffffffffff8p-152L : inexact-ok
+= sin tonearest ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok
+= sin towardzero ldbl-96-m68k 0x8p-152L : 0x7.fffffffffffffff8p-152L : inexact-ok
+= sin upward ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok
+= sin downward ldbl-128 0x8p-152L : 0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= sin tonearest ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok
+= sin towardzero ldbl-128 0x8p-152L : 0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= sin upward ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok
+= sin downward ldbl-128ibm 0x8p-152L : 0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= sin tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
+= sin towardzero ldbl-128ibm 0x8p-152L : 0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= sin upward ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
+= sin downward dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok
+= sin tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= sin towardzero dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok
+= sin upward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
+= sin tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sin towardzero ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
+= sin upward ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sin downward ldbl-96-m68k 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
+= sin tonearest ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sin towardzero ldbl-96-m68k 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
+= sin upward ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sin downward ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= sin tonearest ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sin towardzero ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= sin upward ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sin downward ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-intel 0x8p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-96-intel 0x8p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-m68k 0x8p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-96-m68k 0x8p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-m68k 0x4p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-96-m68k 0x4p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow errno-erange-ok
+sin -min_subnorm
+= sin downward flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok
+= sin tonearest flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok
+= sin towardzero flt-32 -0x8p-152f : -0x0p+0f : inexact-ok underflow errno-erange-ok
+= sin upward flt-32 -0x8p-152f : -0x0p+0f : inexact-ok underflow errno-erange-ok
+= sin downward dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok
+= sin tonearest dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok
+= sin towardzero dbl-64 -0x8p-152 : -0x7.ffffffffffffcp-152 : inexact-ok
+= sin upward dbl-64 -0x8p-152 : -0x7.ffffffffffffcp-152 : inexact-ok
+= sin downward ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok
+= sin tonearest ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok
+= sin towardzero ldbl-96-intel -0x8p-152L : -0x7.fffffffffffffff8p-152L : inexact-ok
+= sin upward ldbl-96-intel -0x8p-152L : -0x7.fffffffffffffff8p-152L : inexact-ok
+= sin downward ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok
+= sin tonearest ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok
+= sin towardzero ldbl-96-m68k -0x8p-152L : -0x7.fffffffffffffff8p-152L : inexact-ok
+= sin upward ldbl-96-m68k -0x8p-152L : -0x7.fffffffffffffff8p-152L : inexact-ok
+= sin downward ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok
+= sin tonearest ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok
+= sin towardzero ldbl-128 -0x8p-152L : -0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= sin upward ldbl-128 -0x8p-152L : -0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= sin downward ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok
+= sin tonearest ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok
+= sin towardzero ldbl-128ibm -0x8p-152L : -0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= sin upward ldbl-128ibm -0x8p-152L : -0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= sin downward dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= sin tonearest dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= sin towardzero dbl-64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow errno-erange-ok
+= sin upward dbl-64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sin tonearest ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sin towardzero ldbl-96-intel -0x4p-1076L : -0x3.fffffffffffffffcp-1076L : inexact-ok
+= sin upward ldbl-96-intel -0x4p-1076L : -0x3.fffffffffffffffcp-1076L : inexact-ok
+= sin downward ldbl-96-m68k -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sin tonearest ldbl-96-m68k -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sin towardzero ldbl-96-m68k -0x4p-1076L : -0x3.fffffffffffffffcp-1076L : inexact-ok
+= sin upward ldbl-96-m68k -0x4p-1076L : -0x3.fffffffffffffffcp-1076L : inexact-ok
+= sin downward ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sin tonearest ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sin towardzero ldbl-128 -0x4p-1076L : -0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= sin upward ldbl-128 -0x4p-1076L : -0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= sin downward ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128ibm -0x4p-1076L : -0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128ibm -0x4p-1076L : -0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-96-intel -0x8p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-96-intel -0x8p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-96-m68k -0x8p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-96-m68k -0x8p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-96-m68k -0x4p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-96-m68k -0x4p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= sin downward ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow errno-erange-ok
+= sin tonearest ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow errno-erange-ok
+= sin towardzero ldbl-128 -0x4p-16496L : -0x0p+0L : inexact-ok underflow errno-erange-ok
+= sin upward ldbl-128 -0x4p-16496L : -0x0p+0L : inexact-ok underflow errno-erange-ok
sincos 0
= sincos downward flt-32 0x0p+0f : 0x0p+0f 0x1p+0f : inexact-ok
= sincos tonearest flt-32 0x0p+0f : 0x0p+0f 0x1p+0f : inexact-ok
@@ -183142,6 +183458,322 @@ sincos 0x4.7857dp+68
= sincos tonearest ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040638p-4L -0xf.dfe902135fc1c18492e869a3f8p-4L : inexact-ok
= sincos towardzero ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040637f8p-4L -0xf.dfe902135fc1c18492e869a3f8p-4L : inexact-ok
= sincos upward ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040637f8p-4L -0xf.dfe902135fc1c18492e869a3f8p-4L : inexact-ok
+sincos min
+= sincos downward flt-32 0x4p-128f : 0x3.fffff8p-128f 0xf.fffffp-4f : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest flt-32 0x4p-128f : 0x4p-128f 0x1p+0f : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero flt-32 0x4p-128f : 0x3.fffff8p-128f 0xf.fffffp-4f : inexact-ok underflow-ok errno-erange-ok
+= sincos upward flt-32 0x4p-128f : 0x4p-128f 0x1p+0f : inexact-ok underflow-ok errno-erange-ok
+= sincos downward dbl-64 0x4p-128 : 0x3.ffffffffffffep-128 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos tonearest dbl-64 0x4p-128 : 0x4p-128 0x1p+0 : inexact-ok
+= sincos towardzero dbl-64 0x4p-128 : 0x3.ffffffffffffep-128 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos upward dbl-64 0x4p-128 : 0x4p-128 0x1p+0 : inexact-ok
+= sincos downward ldbl-96-intel 0x4p-128L : 0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-intel 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-intel 0x4p-128L : 0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-intel 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok
+= sincos downward ldbl-96-m68k 0x4p-128L : 0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k 0x4p-128L : 0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 0x4p-128L : 0x3.fffffffffffffffffffffffffffep-128L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos tonearest ldbl-128 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128 0x4p-128L : 0x3.fffffffffffffffffffffffffffep-128L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos upward ldbl-128 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128ibm 0x4p-128L : 0x3.ffffffffffffffffffffffffffp-128L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= sincos tonearest ldbl-128ibm 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128ibm 0x4p-128L : 0x3.ffffffffffffffffffffffffffp-128L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= sincos upward ldbl-128ibm 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok
+= sincos downward dbl-64 0x4p-1024 : 0x3.ffffffffffffcp-1024 0xf.ffffffffffff8p-4 : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest dbl-64 0x4p-1024 : 0x4p-1024 0x1p+0 : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero dbl-64 0x4p-1024 : 0x3.ffffffffffffcp-1024 0xf.ffffffffffff8p-4 : inexact-ok underflow-ok errno-erange-ok
+= sincos upward dbl-64 0x4p-1024 : 0x4p-1024 0x1p+0 : inexact-ok underflow-ok errno-erange-ok
+= sincos downward ldbl-96-intel 0x4p-1024L : 0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-intel 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-intel 0x4p-1024L : 0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-intel 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok
+= sincos downward ldbl-96-m68k 0x4p-1024L : 0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k 0x4p-1024L : 0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 0x4p-1024L : 0x3.fffffffffffffffffffffffffffep-1024L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos tonearest ldbl-128 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128 0x4p-1024L : 0x3.fffffffffffffffffffffffffffep-1024L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos upward ldbl-128 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128ibm 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos upward ldbl-96-intel 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos downward ldbl-96-m68k 0x4p-16384L : 0x3.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k 0x4p-16384L : 0x3.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 0x4p-16384L : 0x3.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest ldbl-128 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero ldbl-128 0x4p-16384L : 0x3.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos upward ldbl-128 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos downward ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-96-intel 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos upward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos downward ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos tonearest dbl-64 0x8p-972 : 0x8p-972 0x1p+0 : inexact-ok
+= sincos towardzero dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos upward dbl-64 0x8p-972 : 0x8p-972 0x1p+0 : inexact-ok
+= sincos downward ldbl-96-intel 0x8p-972L : 0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-intel 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-intel 0x8p-972L : 0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-intel 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok
+= sincos downward ldbl-96-m68k 0x8p-972L : 0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k 0x8p-972L : 0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 0x8p-972L : 0x7.fffffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos tonearest ldbl-128 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128 0x8p-972L : 0x7.fffffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos upward ldbl-128 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128ibm 0x8p-972L : 0x7.fffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero ldbl-128ibm 0x8p-972L : 0x7.fffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos upward ldbl-128ibm 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+sincos -min
+= sincos downward flt-32 -0x4p-128f : -0x4p-128f 0xf.fffffp-4f : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest flt-32 -0x4p-128f : -0x4p-128f 0x1p+0f : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero flt-32 -0x4p-128f : -0x3.fffff8p-128f 0xf.fffffp-4f : inexact-ok underflow-ok errno-erange-ok
+= sincos upward flt-32 -0x4p-128f : -0x3.fffff8p-128f 0x1p+0f : inexact-ok underflow-ok errno-erange-ok
+= sincos downward dbl-64 -0x4p-128 : -0x4p-128 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos tonearest dbl-64 -0x4p-128 : -0x4p-128 0x1p+0 : inexact-ok
+= sincos towardzero dbl-64 -0x4p-128 : -0x3.ffffffffffffep-128 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos upward dbl-64 -0x4p-128 : -0x3.ffffffffffffep-128 0x1p+0 : inexact-ok
+= sincos downward ldbl-96-intel -0x4p-128L : -0x4p-128L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-intel -0x4p-128L : -0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-intel -0x4p-128L : -0x3.fffffffffffffffcp-128L 0x1p+0L : inexact-ok
+= sincos downward ldbl-96-m68k -0x4p-128L : -0x4p-128L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k -0x4p-128L : -0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k -0x4p-128L : -0x3.fffffffffffffffcp-128L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 -0x4p-128L : -0x4p-128L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos tonearest ldbl-128 -0x4p-128L : -0x4p-128L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128 -0x4p-128L : -0x3.fffffffffffffffffffffffffffep-128L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos upward ldbl-128 -0x4p-128L : -0x3.fffffffffffffffffffffffffffep-128L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128ibm -0x4p-128L : -0x4p-128L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= sincos tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128ibm -0x4p-128L : -0x3.ffffffffffffffffffffffffffp-128L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= sincos upward ldbl-128ibm -0x4p-128L : -0x3.ffffffffffffffffffffffffffp-128L 0x1p+0L : inexact-ok
+= sincos downward dbl-64 -0x4p-1024 : -0x4p-1024 0xf.ffffffffffff8p-4 : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest dbl-64 -0x4p-1024 : -0x4p-1024 0x1p+0 : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero dbl-64 -0x4p-1024 : -0x3.ffffffffffffcp-1024 0xf.ffffffffffff8p-4 : inexact-ok underflow-ok errno-erange-ok
+= sincos upward dbl-64 -0x4p-1024 : -0x3.ffffffffffffcp-1024 0x1p+0 : inexact-ok underflow-ok errno-erange-ok
+= sincos downward ldbl-96-intel -0x4p-1024L : -0x4p-1024L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-intel -0x4p-1024L : -0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-intel -0x4p-1024L : -0x3.fffffffffffffffcp-1024L 0x1p+0L : inexact-ok
+= sincos downward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k -0x4p-1024L : -0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k -0x4p-1024L : -0x3.fffffffffffffffcp-1024L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 -0x4p-1024L : -0x4p-1024L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos upward ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128ibm -0x4p-1024L : -0x4p-1024L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-intel -0x4p-16384L : -0x4p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos upward ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos downward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k -0x4p-16384L : -0x3.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k -0x4p-16384L : -0x3.fffffffffffffffcp-16384L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 -0x4p-16384L : -0x4p-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos upward ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos downward ldbl-96-intel -0x2p-16384L : -0x2p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos upward ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos downward ldbl-128 -0x2p-16384L : -0x2p-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward dbl-64 -0x8p-972 : -0x8p-972 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos tonearest dbl-64 -0x8p-972 : -0x8p-972 0x1p+0 : inexact-ok
+= sincos towardzero dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos upward dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 0x1p+0 : inexact-ok
+= sincos downward ldbl-96-intel -0x8p-972L : -0x8p-972L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-intel -0x8p-972L : -0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-intel -0x8p-972L : -0x7.fffffffffffffff8p-972L 0x1p+0L : inexact-ok
+= sincos downward ldbl-96-m68k -0x8p-972L : -0x8p-972L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k -0x8p-972L : -0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k -0x8p-972L : -0x7.fffffffffffffff8p-972L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 -0x8p-972L : -0x8p-972L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos tonearest ldbl-128 -0x8p-972L : -0x8p-972L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128 -0x8p-972L : -0x7.fffffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos upward ldbl-128 -0x8p-972L : -0x7.fffffffffffffffffffffffffffcp-972L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128ibm -0x8p-972L : -0x8p-972L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+= sincos towardzero ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow-ok errno-erange-ok
+= sincos upward ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok
+sincos min_subnorm
+= sincos downward flt-32 0x8p-152f : 0x0p+0f 0xf.fffffp-4f : inexact-ok underflow errno-erange-ok
+= sincos tonearest flt-32 0x8p-152f : 0x8p-152f 0x1p+0f : inexact-ok underflow errno-erange-ok
+= sincos towardzero flt-32 0x8p-152f : 0x0p+0f 0xf.fffffp-4f : inexact-ok underflow errno-erange-ok
+= sincos upward flt-32 0x8p-152f : 0x8p-152f 0x1p+0f : inexact-ok underflow errno-erange-ok
+= sincos downward dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos tonearest dbl-64 0x8p-152 : 0x8p-152 0x1p+0 : inexact-ok
+= sincos towardzero dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos upward dbl-64 0x8p-152 : 0x8p-152 0x1p+0 : inexact-ok
+= sincos downward ldbl-96-intel 0x8p-152L : 0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-intel 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-intel 0x8p-152L : 0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-intel 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok
+= sincos downward ldbl-96-m68k 0x8p-152L : 0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k 0x8p-152L : 0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 0x8p-152L : 0x7.fffffffffffffffffffffffffffcp-152L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos tonearest ldbl-128 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128 0x8p-152L : 0x7.fffffffffffffffffffffffffffcp-152L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos upward ldbl-128 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128ibm 0x8p-152L : 0x7.fffffffffffffffffffffffffep-152L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= sincos tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128ibm 0x8p-152L : 0x7.fffffffffffffffffffffffffep-152L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= sincos upward ldbl-128ibm 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok
+= sincos downward dbl-64 0x4p-1076 : 0x0p+0 0xf.ffffffffffff8p-4 : inexact-ok underflow errno-erange-ok
+= sincos tonearest dbl-64 0x4p-1076 : 0x4p-1076 0x1p+0 : inexact-ok underflow errno-erange-ok
+= sincos towardzero dbl-64 0x4p-1076 : 0x0p+0 0xf.ffffffffffff8p-4 : inexact-ok underflow errno-erange-ok
+= sincos upward dbl-64 0x4p-1076 : 0x4p-1076 0x1p+0 : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-intel 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok
+= sincos downward ldbl-96-m68k 0x4p-1076L : 0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k 0x4p-1076L : 0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos tonearest ldbl-128 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos upward ldbl-128 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128ibm 0x4p-1076L : 0x0p+0L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-intel 0x8p-16448L : 0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-96-intel 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-96-intel 0x8p-16448L : 0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-96-intel 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-m68k 0x8p-16448L : 0x4p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-96-m68k 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-96-m68k 0x8p-16448L : 0x4p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-96-m68k 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-m68k 0x4p-16448L : 0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-96-m68k 0x4p-16448L : 0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-96-m68k 0x4p-16448L : 0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-96-m68k 0x4p-16448L : 0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128 0x4p-16448L : 0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128 0x4p-16448L : 0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-128 0x4p-16496L : 0x0p+0L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128 0x4p-16496L : 0x4p-16496L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128 0x4p-16496L : 0x0p+0L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128 0x4p-16496L : 0x4p-16496L 0x1p+0L : inexact-ok underflow errno-erange-ok
+sincos -min_subnorm
+= sincos downward flt-32 -0x8p-152f : -0x8p-152f 0xf.fffffp-4f : inexact-ok underflow errno-erange-ok
+= sincos tonearest flt-32 -0x8p-152f : -0x8p-152f 0x1p+0f : inexact-ok underflow errno-erange-ok
+= sincos towardzero flt-32 -0x8p-152f : -0x0p+0f 0xf.fffffp-4f : inexact-ok underflow errno-erange-ok
+= sincos upward flt-32 -0x8p-152f : -0x0p+0f 0x1p+0f : inexact-ok underflow errno-erange-ok
+= sincos downward dbl-64 -0x8p-152 : -0x8p-152 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos tonearest dbl-64 -0x8p-152 : -0x8p-152 0x1p+0 : inexact-ok
+= sincos towardzero dbl-64 -0x8p-152 : -0x7.ffffffffffffcp-152 0xf.ffffffffffff8p-4 : inexact-ok
+= sincos upward dbl-64 -0x8p-152 : -0x7.ffffffffffffcp-152 0x1p+0 : inexact-ok
+= sincos downward ldbl-96-intel -0x8p-152L : -0x8p-152L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-intel -0x8p-152L : -0x8p-152L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-intel -0x8p-152L : -0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-intel -0x8p-152L : -0x7.fffffffffffffff8p-152L 0x1p+0L : inexact-ok
+= sincos downward ldbl-96-m68k -0x8p-152L : -0x8p-152L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k -0x8p-152L : -0x8p-152L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k -0x8p-152L : -0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k -0x8p-152L : -0x7.fffffffffffffff8p-152L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 -0x8p-152L : -0x8p-152L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos tonearest ldbl-128 -0x8p-152L : -0x8p-152L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128 -0x8p-152L : -0x7.fffffffffffffffffffffffffffcp-152L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos upward ldbl-128 -0x8p-152L : -0x7.fffffffffffffffffffffffffffcp-152L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128ibm -0x8p-152L : -0x8p-152L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= sincos tonearest ldbl-128ibm -0x8p-152L : -0x8p-152L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128ibm -0x8p-152L : -0x7.fffffffffffffffffffffffffep-152L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= sincos upward ldbl-128ibm -0x8p-152L : -0x7.fffffffffffffffffffffffffep-152L 0x1p+0L : inexact-ok
+= sincos downward dbl-64 -0x4p-1076 : -0x4p-1076 0xf.ffffffffffff8p-4 : inexact-ok underflow errno-erange-ok
+= sincos tonearest dbl-64 -0x4p-1076 : -0x4p-1076 0x1p+0 : inexact-ok underflow errno-erange-ok
+= sincos towardzero dbl-64 -0x4p-1076 : -0x0p+0 0xf.ffffffffffff8p-4 : inexact-ok underflow errno-erange-ok
+= sincos upward dbl-64 -0x4p-1076 : -0x0p+0 0x1p+0 : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-intel -0x4p-1076L : -0x4p-1076L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-intel -0x4p-1076L : -0x4p-1076L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-intel -0x4p-1076L : -0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-intel -0x4p-1076L : -0x3.fffffffffffffffcp-1076L 0x1p+0L : inexact-ok
+= sincos downward ldbl-96-m68k -0x4p-1076L : -0x4p-1076L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos tonearest ldbl-96-m68k -0x4p-1076L : -0x4p-1076L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-96-m68k -0x4p-1076L : -0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok
+= sincos upward ldbl-96-m68k -0x4p-1076L : -0x3.fffffffffffffffcp-1076L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128 -0x4p-1076L : -0x4p-1076L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos tonearest ldbl-128 -0x4p-1076L : -0x4p-1076L 0x1p+0L : inexact-ok
+= sincos towardzero ldbl-128 -0x4p-1076L : -0x3.fffffffffffffffffffffffffffep-1076L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= sincos upward ldbl-128 -0x4p-1076L : -0x3.fffffffffffffffffffffffffffep-1076L 0x1p+0L : inexact-ok
+= sincos downward ldbl-128ibm -0x4p-1076L : -0x4p-1076L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128ibm -0x4p-1076L : -0x4p-1076L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128ibm -0x4p-1076L : -0x0p+0L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128ibm -0x4p-1076L : -0x0p+0L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-intel -0x8p-16448L : -0x8p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-96-intel -0x8p-16448L : -0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-96-intel -0x8p-16448L : -0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-96-intel -0x8p-16448L : -0x0p+0L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-m68k -0x8p-16448L : -0x8p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-96-m68k -0x8p-16448L : -0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-96-m68k -0x8p-16448L : -0x4p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-96-m68k -0x8p-16448L : -0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-128 -0x8p-16448L : -0x8p-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128 -0x8p-16448L : -0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-96-m68k -0x4p-16448L : -0x4p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-96-m68k -0x4p-16448L : -0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-96-m68k -0x4p-16448L : -0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-96-m68k -0x4p-16448L : -0x0p+0L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-128 -0x4p-16448L : -0x4p-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128 -0x4p-16448L : -0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos downward ldbl-128 -0x4p-16496L : -0x4p-16496L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos tonearest ldbl-128 -0x4p-16496L : -0x4p-16496L 0x1p+0L : inexact-ok underflow errno-erange-ok
+= sincos towardzero ldbl-128 -0x4p-16496L : -0x0p+0L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok
+= sincos upward ldbl-128 -0x4p-16496L : -0x0p+0L 0x1p+0L : inexact-ok underflow errno-erange-ok
sinh 0
= sinh downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok
= sinh tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok
diff --git a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c
index ea89ad5..eff120e 100644
--- a/sysdeps/ieee754/dbl-64/s_sin.c
+++ b/sysdeps/ieee754/dbl-64/s_sin.c
@@ -48,6 +48,7 @@
#include <errno.h>
+#include <float.h>
#include "endian.h"
#include "mydefs.h"
#include "usncs.h"
@@ -295,7 +296,14 @@ __sin (double x)
m = u.i[HIGH_HALF];
k = 0x7fffffff & m; /* no sign */
if (k < 0x3e500000) /* if x->0 =>sin(x)=x */
- retval = x;
+ {
+ if (fabs (x) < DBL_MIN)
+ {
+ double force_underflow = x * x;
+ math_force_eval (force_underflow);
+ }
+ retval = x;
+ }
/*---------------------------- 2^-26 < |x|< 0.25 ----------------------*/
else if (k < 0x3fd00000)
{
diff --git a/sysdeps/ieee754/flt-32/k_sinf.c b/sysdeps/ieee754/flt-32/k_sinf.c
index 0bafd83..0c98a2a 100644
--- a/sysdeps/ieee754/flt-32/k_sinf.c
+++ b/sysdeps/ieee754/flt-32/k_sinf.c
@@ -17,6 +17,7 @@
static char rcsid[] = "$NetBSD: k_sinf.c,v 1.4 1995/05/10 20:46:33 jtc Exp $";
#endif
+#include <float.h>
#include <math.h>
#include <math_private.h>
@@ -36,7 +37,15 @@ float __kernel_sinf(float x, float y, int iy)
GET_FLOAT_WORD(ix,x);
ix &= 0x7fffffff; /* high word of x */
if(ix<0x32000000) /* |x| < 2**-27 */
- {if((int)x==0) return x;} /* generate inexact */
+ {
+ if (fabsf (x) < FLT_MIN)
+ {
+ float force_underflow = x * x;
+ math_force_eval (force_underflow);
+ }
+ if ((int) x == 0)
+ return x; /* generate inexact */
+ }
z = x*x;
v = z*x;
r = S2+z*(S3+z*(S4+z*(S5+z*S6)));
diff --git a/sysdeps/ieee754/ldbl-128/k_sincosl.c b/sysdeps/ieee754/ldbl-128/k_sincosl.c
index 2f66dee..7b5c4b0 100644
--- a/sysdeps/ieee754/ldbl-128/k_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128/k_sincosl.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <float.h>
#include <math.h>
#include <math_private.h>
@@ -109,12 +110,19 @@ __kernel_sincosl(long double x, long double y, long double *sinx, long double *c
/* Argument is small enough to approximate it by a Chebyshev
polynomial of degree 16(17). */
if (tix < 0x3fc60000) /* |x| < 2^-57 */
- if (!((int)x)) /* generate inexact */
- {
- *sinx = x;
- *cosx = ONE;
- return;
- }
+ {
+ if (fabsl (x) < LDBL_MIN)
+ {
+ long double force_underflow = x * x;
+ math_force_eval (force_underflow);
+ }
+ if (!((int)x)) /* generate inexact */
+ {
+ *sinx = x;
+ *cosx = ONE;
+ return;
+ }
+ }
z = x * x;
*sinx = x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+
z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8)))))))));
diff --git a/sysdeps/ieee754/ldbl-128/k_sinl.c b/sysdeps/ieee754/ldbl-128/k_sinl.c
index b15521b..04d539f 100644
--- a/sysdeps/ieee754/ldbl-128/k_sinl.c
+++ b/sysdeps/ieee754/ldbl-128/k_sinl.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <float.h>
#include <math.h>
#include <math_private.h>
@@ -90,7 +91,14 @@ __kernel_sinl(long double x, long double y, int iy)
/* Argument is small enough to approximate it by a Chebyshev
polynomial of degree 17. */
if (tix < 0x3fc60000) /* |x| < 2^-57 */
- if (!((int)x)) return x; /* generate inexact */
+ {
+ if (fabsl (x) < LDBL_MIN)
+ {
+ long double force_underflow = x * x;
+ math_force_eval (force_underflow);
+ }
+ if (!((int)x)) return x; /* generate inexact */
+ }
z = x * x;
return x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+
z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8)))))))));
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c b/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
index f831e3f..0a76e1c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <float.h>
#include <math.h>
#include <math_private.h>
@@ -112,12 +113,19 @@ __kernel_sincosl(long double x, long double y, long double *sinx, long double *c
/* Argument is small enough to approximate it by a Chebyshev
polynomial of degree 16(17). */
if (tix < 0x3c600000) /* |x| < 2^-57 */
- if (!((int)x)) /* generate inexact */
- {
- *sinx = x;
- *cosx = ONE;
- return;
- }
+ {
+ if (fabsl (x) < LDBL_MIN)
+ {
+ long double force_underflow = x * x;
+ math_force_eval (force_underflow);
+ }
+ if (!((int)x)) /* generate inexact */
+ {
+ *sinx = x;
+ *cosx = ONE;
+ return;
+ }
+ }
z = x * x;
*sinx = x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+
z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8)))))))));
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_sinl.c b/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
index d6602fe..2050cd2 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <float.h>
#include <math.h>
#include <math_private.h>
@@ -93,7 +94,14 @@ __kernel_sinl(long double x, long double y, int iy)
/* Argument is small enough to approximate it by a Chebyshev
polynomial of degree 17. */
if (tix < 0x3c600000) /* |x| < 2^-57 */
- if (!((int)x)) return x; /* generate inexact */
+ {
+ if (fabsl (x) < LDBL_MIN)
+ {
+ long double force_underflow = x * x;
+ math_force_eval (force_underflow);
+ }
+ if (!((int)x)) return x; /* generate inexact */
+ }
z = x * x;
return x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+
z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8)))))))));
diff --git a/sysdeps/ieee754/ldbl-96/k_sinl.c b/sysdeps/ieee754/ldbl-96/k_sinl.c
index 179262a..b7b5ae3 100644
--- a/sysdeps/ieee754/ldbl-96/k_sinl.c
+++ b/sysdeps/ieee754/ldbl-96/k_sinl.c
@@ -20,6 +20,7 @@
/* The polynomials have not been optimized for extended-precision and
may contain more terms than needed. */
+#include <float.h>
#include <math.h>
#include <math_private.h>
@@ -94,7 +95,14 @@ __kernel_sinl(long double x, long double y, int iy)
/* Argument is small enough to approximate it by a Chebyshev
polynomial of degree 17. */
if (absx < 0x1p-33L)
- if (!((int)x)) return x; /* generate inexact */
+ {
+ if (fabsl (x) < LDBL_MIN)
+ {
+ long double force_underflow = x * x;
+ math_force_eval (force_underflow);
+ }
+ if (!((int)x)) return x; /* generate inexact */
+ }
z = x * x;
return x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+
z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8)))))))));
diff --git a/sysdeps/powerpc/fpu/k_sinf.c b/sysdeps/powerpc/fpu/k_sinf.c
index 64df0c9..e2850df 100644
--- a/sysdeps/powerpc/fpu/k_sinf.c
+++ b/sysdeps/powerpc/fpu/k_sinf.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; see the file COPYING.LIB. If
not, see <http://www.gnu.org/licenses/>. */
+#include <float.h>
#include <math.h>
#include <fenv.h>
#include <math_private.h>
@@ -40,7 +41,10 @@ __kernel_sinf (float x, float y, int iy)
ix = __builtin_fabsf (x);
if (ix < twom27)
{ /* |x| < 2**-27 */
- __feraiseexcept (FE_INEXACT);
+ if (ix < FLT_MIN && ix != 0.0f)
+ __feraiseexcept (FE_UNDERFLOW|FE_INEXACT);
+ else
+ __feraiseexcept (FE_INEXACT);
return x;
}
z = x * x;