about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-08-10 15:25:10 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-08-10 15:25:10 +0000
commitd0649b2d8efca33363e399f1ba07d77e85901cfc (patch)
tree7b9e371adc311e50e9dd8083f9b602c44310df0b
parentd2ff039fa1636e42fad4a4074f9889ad47abc426 (diff)
downloadglibc-d0649b2d8efca33363e399f1ba07d77e85901cfc.tar.gz
glibc-d0649b2d8efca33363e399f1ba07d77e85901cfc.tar.xz
glibc-d0649b2d8efca33363e399f1ba07d77e85901cfc.zip
Fix ldbl-128ibm sinhl inaccuracy near 0 (bug 18789).
ldbl-128ibm sinhl uses a too-big threshold to decide when to return
the argument, resulting in large errors.  This patch fixes it to use a
more appropriate threshold.

Tested for x86_64, x86 and powerpc.

	[BZ #18789]
	* sysdeps/ieee754/ldbl-128ibm/e_sinhl.c (__ieee754_sinhl): Use
	smaller threshold for returning the argument.
	* math/auto-libm-test-in: Add more tests of sinh.
	* math/auto-libm-test-out: Regenerated.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
-rw-r--r--ChangeLog9
-rw-r--r--NEWS2
-rw-r--r--math/auto-libm-test-in22
-rw-r--r--math/auto-libm-test-out750
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_sinhl.c2
6 files changed, 785 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d4c9d79f55..993022bed3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2015-08-10  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #18789]
+	* sysdeps/ieee754/ldbl-128ibm/e_sinhl.c (__ieee754_sinhl): Use
+	smaller threshold for returning the argument.
+	* math/auto-libm-test-in: Add more tests of sinh.
+	* math/auto-libm-test-out: Regenerated.
+	* sysdeps/i386/fpu/libm-test-ulps: Update.
+
 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18674]
diff --git a/NEWS b/NEWS
index 7bd785a372..2ee38614ca 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ Version 2.23
 * The following bugs are resolved with this release:
 
   16517, 16519, 17905, 18265, 18480, 18525, 18618, 18647, 18661, 18674,
-  18787.
+  18787, 18789.
 
 Version 2.22
 
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index bb6d30e6f5..c33334c8cc 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -2508,6 +2508,28 @@ sinh 0
 sinh -0
 sinh 0.75
 sinh 0x8p-32
+sinh 0x1p-5
+sinh -0x1p-5
+sinh 0x1p-10
+sinh -0x1p-10
+sinh 0x1p-20
+sinh -0x1p-20
+sinh 0x1p-30
+sinh -0x1p-30
+sinh 0x1p-40
+sinh -0x1p-40
+sinh 0x1p-50
+sinh -0x1p-50
+sinh 0x1p-60
+sinh -0x1p-60
+sinh 0x1p-70
+sinh -0x1p-70
+sinh 0x1p-100
+sinh -0x1p-100
+sinh 0x1p-1000
+sinh -0x1p-1000
+sinh 0x1p-10000
+sinh -0x1p-10000
 sinh 22
 sinh 23
 sinh 24
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index a31039419d..3471a15ec9 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -194270,6 +194270,756 @@ sinh 0x8p-32
 = sinh tonearest ldbl-128ibm 0x8p-32L : 0x8.00000000000000555555555554p-32L : inexact-ok
 = sinh towardzero ldbl-128ibm 0x8p-32L : 0x8.00000000000000555555555554p-32L : inexact-ok
 = sinh upward ldbl-128ibm 0x8p-32L : 0x8.00000000000000555555555558p-32L : inexact-ok
+sinh 0x1p-5
+= sinh downward flt-32 0x8p-8f : 0x8.00555p-8f : inexact-ok
+= sinh tonearest flt-32 0x8p-8f : 0x8.00555p-8f : inexact-ok
+= sinh towardzero flt-32 0x8p-8f : 0x8.00555p-8f : inexact-ok
+= sinh upward flt-32 0x8p-8f : 0x8.00556p-8f : inexact-ok
+= sinh downward dbl-64 0x8p-8 : 0x8.0055566668068p-8 : inexact-ok
+= sinh tonearest dbl-64 0x8p-8 : 0x8.0055566668068p-8 : inexact-ok
+= sinh towardzero dbl-64 0x8p-8 : 0x8.0055566668068p-8 : inexact-ok
+= sinh upward dbl-64 0x8p-8 : 0x8.005556666807p-8 : inexact-ok
+= sinh downward ldbl-96-intel 0x8p-8L : 0x8.00555666680681dp-8L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x8p-8L : 0x8.00555666680681ep-8L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x8p-8L : 0x8.00555666680681dp-8L : inexact-ok
+= sinh upward ldbl-96-intel 0x8p-8L : 0x8.00555666680681ep-8L : inexact-ok
+= sinh downward ldbl-96-m68k 0x8p-8L : 0x8.00555666680681dp-8L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x8p-8L : 0x8.00555666680681ep-8L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x8p-8L : 0x8.00555666680681dp-8L : inexact-ok
+= sinh upward ldbl-96-m68k 0x8p-8L : 0x8.00555666680681ep-8L : inexact-ok
+= sinh downward ldbl-128 0x8p-8L : 0x8.00555666680681d9e591eff67c78p-8L : inexact-ok
+= sinh tonearest ldbl-128 0x8p-8L : 0x8.00555666680681d9e591eff67c8p-8L : inexact-ok
+= sinh towardzero ldbl-128 0x8p-8L : 0x8.00555666680681d9e591eff67c78p-8L : inexact-ok
+= sinh upward ldbl-128 0x8p-8L : 0x8.00555666680681d9e591eff67c8p-8L : inexact-ok
+= sinh downward ldbl-128ibm 0x8p-8L : 0x8.00555666680681d9e591eff67cp-8L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x8p-8L : 0x8.00555666680681d9e591eff67cp-8L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x8p-8L : 0x8.00555666680681d9e591eff67cp-8L : inexact-ok
+= sinh upward ldbl-128ibm 0x8p-8L : 0x8.00555666680681d9e591eff68p-8L : inexact-ok
+sinh -0x1p-5
+= sinh downward flt-32 -0x8p-8f : -0x8.00556p-8f : inexact-ok
+= sinh tonearest flt-32 -0x8p-8f : -0x8.00555p-8f : inexact-ok
+= sinh towardzero flt-32 -0x8p-8f : -0x8.00555p-8f : inexact-ok
+= sinh upward flt-32 -0x8p-8f : -0x8.00555p-8f : inexact-ok
+= sinh downward dbl-64 -0x8p-8 : -0x8.005556666807p-8 : inexact-ok
+= sinh tonearest dbl-64 -0x8p-8 : -0x8.0055566668068p-8 : inexact-ok
+= sinh towardzero dbl-64 -0x8p-8 : -0x8.0055566668068p-8 : inexact-ok
+= sinh upward dbl-64 -0x8p-8 : -0x8.0055566668068p-8 : inexact-ok
+= sinh downward ldbl-96-intel -0x8p-8L : -0x8.00555666680681ep-8L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x8p-8L : -0x8.00555666680681ep-8L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x8p-8L : -0x8.00555666680681dp-8L : inexact-ok
+= sinh upward ldbl-96-intel -0x8p-8L : -0x8.00555666680681dp-8L : inexact-ok
+= sinh downward ldbl-96-m68k -0x8p-8L : -0x8.00555666680681ep-8L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x8p-8L : -0x8.00555666680681ep-8L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x8p-8L : -0x8.00555666680681dp-8L : inexact-ok
+= sinh upward ldbl-96-m68k -0x8p-8L : -0x8.00555666680681dp-8L : inexact-ok
+= sinh downward ldbl-128 -0x8p-8L : -0x8.00555666680681d9e591eff67c8p-8L : inexact-ok
+= sinh tonearest ldbl-128 -0x8p-8L : -0x8.00555666680681d9e591eff67c8p-8L : inexact-ok
+= sinh towardzero ldbl-128 -0x8p-8L : -0x8.00555666680681d9e591eff67c78p-8L : inexact-ok
+= sinh upward ldbl-128 -0x8p-8L : -0x8.00555666680681d9e591eff67c78p-8L : inexact-ok
+= sinh downward ldbl-128ibm -0x8p-8L : -0x8.00555666680681d9e591eff68p-8L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x8p-8L : -0x8.00555666680681d9e591eff67cp-8L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x8p-8L : -0x8.00555666680681d9e591eff67cp-8L : inexact-ok
+= sinh upward ldbl-128ibm -0x8p-8L : -0x8.00555666680681d9e591eff67cp-8L : inexact-ok
+sinh 0x1p-10
+= sinh downward flt-32 0x4p-12f : 0x4.000008p-12f : inexact-ok
+= sinh tonearest flt-32 0x4p-12f : 0x4.000008p-12f : inexact-ok
+= sinh towardzero flt-32 0x4p-12f : 0x4.000008p-12f : inexact-ok
+= sinh upward flt-32 0x4p-12f : 0x4.00001p-12f : inexact-ok
+= sinh downward dbl-64 0x4p-12 : 0x4.00000aaaaab3p-12 : inexact-ok
+= sinh tonearest dbl-64 0x4p-12 : 0x4.00000aaaaab34p-12 : inexact-ok
+= sinh towardzero dbl-64 0x4p-12 : 0x4.00000aaaaab3p-12 : inexact-ok
+= sinh upward dbl-64 0x4p-12 : 0x4.00000aaaaab34p-12 : inexact-ok
+= sinh downward ldbl-96-intel 0x4p-12L : 0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x4p-12L : 0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x4p-12L : 0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh upward ldbl-96-intel 0x4p-12L : 0x4.00000aaaaab33338p-12L : inexact-ok
+= sinh downward ldbl-96-m68k 0x4p-12L : 0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x4p-12L : 0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x4p-12L : 0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh upward ldbl-96-m68k 0x4p-12L : 0x4.00000aaaaab33338p-12L : inexact-ok
+= sinh downward ldbl-128 0x4p-12L : 0x4.00000aaaaab33333367367372c54p-12L : inexact-ok
+= sinh tonearest ldbl-128 0x4p-12L : 0x4.00000aaaaab33333367367372c58p-12L : inexact-ok
+= sinh towardzero ldbl-128 0x4p-12L : 0x4.00000aaaaab33333367367372c54p-12L : inexact-ok
+= sinh upward ldbl-128 0x4p-12L : 0x4.00000aaaaab33333367367372c58p-12L : inexact-ok
+= sinh downward ldbl-128ibm 0x4p-12L : 0x4.00000aaaaab33333367367372cp-12L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x4p-12L : 0x4.00000aaaaab33333367367372cp-12L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x4p-12L : 0x4.00000aaaaab33333367367372cp-12L : inexact-ok
+= sinh upward ldbl-128ibm 0x4p-12L : 0x4.00000aaaaab33333367367372ep-12L : inexact-ok
+sinh -0x1p-10
+= sinh downward flt-32 -0x4p-12f : -0x4.00001p-12f : inexact-ok
+= sinh tonearest flt-32 -0x4p-12f : -0x4.000008p-12f : inexact-ok
+= sinh towardzero flt-32 -0x4p-12f : -0x4.000008p-12f : inexact-ok
+= sinh upward flt-32 -0x4p-12f : -0x4.000008p-12f : inexact-ok
+= sinh downward dbl-64 -0x4p-12 : -0x4.00000aaaaab34p-12 : inexact-ok
+= sinh tonearest dbl-64 -0x4p-12 : -0x4.00000aaaaab34p-12 : inexact-ok
+= sinh towardzero dbl-64 -0x4p-12 : -0x4.00000aaaaab3p-12 : inexact-ok
+= sinh upward dbl-64 -0x4p-12 : -0x4.00000aaaaab3p-12 : inexact-ok
+= sinh downward ldbl-96-intel -0x4p-12L : -0x4.00000aaaaab33338p-12L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x4p-12L : -0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x4p-12L : -0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh upward ldbl-96-intel -0x4p-12L : -0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh downward ldbl-96-m68k -0x4p-12L : -0x4.00000aaaaab33338p-12L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x4p-12L : -0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x4p-12L : -0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh upward ldbl-96-m68k -0x4p-12L : -0x4.00000aaaaab3333p-12L : inexact-ok
+= sinh downward ldbl-128 -0x4p-12L : -0x4.00000aaaaab33333367367372c58p-12L : inexact-ok
+= sinh tonearest ldbl-128 -0x4p-12L : -0x4.00000aaaaab33333367367372c58p-12L : inexact-ok
+= sinh towardzero ldbl-128 -0x4p-12L : -0x4.00000aaaaab33333367367372c54p-12L : inexact-ok
+= sinh upward ldbl-128 -0x4p-12L : -0x4.00000aaaaab33333367367372c54p-12L : inexact-ok
+= sinh downward ldbl-128ibm -0x4p-12L : -0x4.00000aaaaab33333367367372ep-12L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x4p-12L : -0x4.00000aaaaab33333367367372cp-12L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x4p-12L : -0x4.00000aaaaab33333367367372cp-12L : inexact-ok
+= sinh upward ldbl-128ibm -0x4p-12L : -0x4.00000aaaaab33333367367372cp-12L : inexact-ok
+sinh 0x1p-20
+= sinh downward flt-32 0x1p-20f : 0x1p-20f : inexact-ok
+= sinh tonearest flt-32 0x1p-20f : 0x1p-20f : inexact-ok
+= sinh towardzero flt-32 0x1p-20f : 0x1p-20f : inexact-ok
+= sinh upward flt-32 0x1p-20f : 0x1.000002p-20f : inexact-ok
+= sinh downward dbl-64 0x1p-20 : 0x1.00000000002aap-20 : inexact-ok
+= sinh tonearest dbl-64 0x1p-20 : 0x1.00000000002abp-20 : inexact-ok
+= sinh towardzero dbl-64 0x1p-20 : 0x1.00000000002aap-20 : inexact-ok
+= sinh upward dbl-64 0x1p-20 : 0x1.00000000002abp-20 : inexact-ok
+= sinh downward ldbl-96-intel 0x1p-20L : 0x1.00000000002aaaaap-20L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x1p-20L : 0x1.00000000002aaaaap-20L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x1p-20L : 0x1.00000000002aaaaap-20L : inexact-ok
+= sinh upward ldbl-96-intel 0x1p-20L : 0x1.00000000002aaaacp-20L : inexact-ok
+= sinh downward ldbl-96-m68k 0x1p-20L : 0x1.00000000002aaaaap-20L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x1p-20L : 0x1.00000000002aaaaap-20L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x1p-20L : 0x1.00000000002aaaaap-20L : inexact-ok
+= sinh upward ldbl-96-m68k 0x1p-20L : 0x1.00000000002aaaacp-20L : inexact-ok
+= sinh downward ldbl-128 0x1p-20L : 0x1.00000000002aaaaaaaaaacccccccp-20L : inexact-ok
+= sinh tonearest ldbl-128 0x1p-20L : 0x1.00000000002aaaaaaaaaaccccccdp-20L : inexact-ok
+= sinh towardzero ldbl-128 0x1p-20L : 0x1.00000000002aaaaaaaaaacccccccp-20L : inexact-ok
+= sinh upward ldbl-128 0x1p-20L : 0x1.00000000002aaaaaaaaaaccccccdp-20L : inexact-ok
+= sinh downward ldbl-128ibm 0x1p-20L : 0x1.00000000002aaaaaaaaaaccccc8p-20L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x1p-20L : 0x1.00000000002aaaaaaaaaaccccdp-20L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x1p-20L : 0x1.00000000002aaaaaaaaaaccccc8p-20L : inexact-ok
+= sinh upward ldbl-128ibm 0x1p-20L : 0x1.00000000002aaaaaaaaaaccccdp-20L : inexact-ok
+sinh -0x1p-20
+= sinh downward flt-32 -0x1p-20f : -0x1.000002p-20f : inexact-ok
+= sinh tonearest flt-32 -0x1p-20f : -0x1p-20f : inexact-ok
+= sinh towardzero flt-32 -0x1p-20f : -0x1p-20f : inexact-ok
+= sinh upward flt-32 -0x1p-20f : -0x1p-20f : inexact-ok
+= sinh downward dbl-64 -0x1p-20 : -0x1.00000000002abp-20 : inexact-ok
+= sinh tonearest dbl-64 -0x1p-20 : -0x1.00000000002abp-20 : inexact-ok
+= sinh towardzero dbl-64 -0x1p-20 : -0x1.00000000002aap-20 : inexact-ok
+= sinh upward dbl-64 -0x1p-20 : -0x1.00000000002aap-20 : inexact-ok
+= sinh downward ldbl-96-intel -0x1p-20L : -0x1.00000000002aaaacp-20L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x1p-20L : -0x1.00000000002aaaaap-20L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x1p-20L : -0x1.00000000002aaaaap-20L : inexact-ok
+= sinh upward ldbl-96-intel -0x1p-20L : -0x1.00000000002aaaaap-20L : inexact-ok
+= sinh downward ldbl-96-m68k -0x1p-20L : -0x1.00000000002aaaacp-20L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x1p-20L : -0x1.00000000002aaaaap-20L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x1p-20L : -0x1.00000000002aaaaap-20L : inexact-ok
+= sinh upward ldbl-96-m68k -0x1p-20L : -0x1.00000000002aaaaap-20L : inexact-ok
+= sinh downward ldbl-128 -0x1p-20L : -0x1.00000000002aaaaaaaaaaccccccdp-20L : inexact-ok
+= sinh tonearest ldbl-128 -0x1p-20L : -0x1.00000000002aaaaaaaaaaccccccdp-20L : inexact-ok
+= sinh towardzero ldbl-128 -0x1p-20L : -0x1.00000000002aaaaaaaaaacccccccp-20L : inexact-ok
+= sinh upward ldbl-128 -0x1p-20L : -0x1.00000000002aaaaaaaaaacccccccp-20L : inexact-ok
+= sinh downward ldbl-128ibm -0x1p-20L : -0x1.00000000002aaaaaaaaaaccccdp-20L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x1p-20L : -0x1.00000000002aaaaaaaaaaccccdp-20L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x1p-20L : -0x1.00000000002aaaaaaaaaaccccc8p-20L : inexact-ok
+= sinh upward ldbl-128ibm -0x1p-20L : -0x1.00000000002aaaaaaaaaaccccc8p-20L : inexact-ok
+sinh 0x1p-30
+= sinh downward flt-32 0x4p-32f : 0x4p-32f : inexact-ok
+= sinh tonearest flt-32 0x4p-32f : 0x4p-32f : inexact-ok
+= sinh towardzero flt-32 0x4p-32f : 0x4p-32f : inexact-ok
+= sinh upward flt-32 0x4p-32f : 0x4.000008p-32f : inexact-ok
+= sinh downward dbl-64 0x4p-32 : 0x4p-32 : inexact-ok
+= sinh tonearest dbl-64 0x4p-32 : 0x4p-32 : inexact-ok
+= sinh towardzero dbl-64 0x4p-32 : 0x4p-32 : inexact-ok
+= sinh upward dbl-64 0x4p-32 : 0x4.0000000000004p-32 : inexact-ok
+= sinh downward ldbl-96-intel 0x4p-32L : 0x4.0000000000000008p-32L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x4p-32L : 0x4.0000000000000008p-32L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x4p-32L : 0x4.0000000000000008p-32L : inexact-ok
+= sinh upward ldbl-96-intel 0x4p-32L : 0x4.000000000000001p-32L : inexact-ok
+= sinh downward ldbl-96-m68k 0x4p-32L : 0x4.0000000000000008p-32L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x4p-32L : 0x4.0000000000000008p-32L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x4p-32L : 0x4.0000000000000008p-32L : inexact-ok
+= sinh upward ldbl-96-m68k 0x4p-32L : 0x4.000000000000001p-32L : inexact-ok
+= sinh downward ldbl-128 0x4p-32L : 0x4.000000000000000aaaaaaaaaaaa8p-32L : inexact-ok
+= sinh tonearest ldbl-128 0x4p-32L : 0x4.000000000000000aaaaaaaaaaaacp-32L : inexact-ok
+= sinh towardzero ldbl-128 0x4p-32L : 0x4.000000000000000aaaaaaaaaaaa8p-32L : inexact-ok
+= sinh upward ldbl-128 0x4p-32L : 0x4.000000000000000aaaaaaaaaaaacp-32L : inexact-ok
+= sinh downward ldbl-128ibm 0x4p-32L : 0x4.000000000000000aaaaaaaaaaap-32L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x4p-32L : 0x4.000000000000000aaaaaaaaaaap-32L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x4p-32L : 0x4.000000000000000aaaaaaaaaaap-32L : inexact-ok
+= sinh upward ldbl-128ibm 0x4p-32L : 0x4.000000000000000aaaaaaaaaacp-32L : inexact-ok
+sinh -0x1p-30
+= sinh downward flt-32 -0x4p-32f : -0x4.000008p-32f : inexact-ok
+= sinh tonearest flt-32 -0x4p-32f : -0x4p-32f : inexact-ok
+= sinh towardzero flt-32 -0x4p-32f : -0x4p-32f : inexact-ok
+= sinh upward flt-32 -0x4p-32f : -0x4p-32f : inexact-ok
+= sinh downward dbl-64 -0x4p-32 : -0x4.0000000000004p-32 : inexact-ok
+= sinh tonearest dbl-64 -0x4p-32 : -0x4p-32 : inexact-ok
+= sinh towardzero dbl-64 -0x4p-32 : -0x4p-32 : inexact-ok
+= sinh upward dbl-64 -0x4p-32 : -0x4p-32 : inexact-ok
+= sinh downward ldbl-96-intel -0x4p-32L : -0x4.000000000000001p-32L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x4p-32L : -0x4.0000000000000008p-32L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x4p-32L : -0x4.0000000000000008p-32L : inexact-ok
+= sinh upward ldbl-96-intel -0x4p-32L : -0x4.0000000000000008p-32L : inexact-ok
+= sinh downward ldbl-96-m68k -0x4p-32L : -0x4.000000000000001p-32L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x4p-32L : -0x4.0000000000000008p-32L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x4p-32L : -0x4.0000000000000008p-32L : inexact-ok
+= sinh upward ldbl-96-m68k -0x4p-32L : -0x4.0000000000000008p-32L : inexact-ok
+= sinh downward ldbl-128 -0x4p-32L : -0x4.000000000000000aaaaaaaaaaaacp-32L : inexact-ok
+= sinh tonearest ldbl-128 -0x4p-32L : -0x4.000000000000000aaaaaaaaaaaacp-32L : inexact-ok
+= sinh towardzero ldbl-128 -0x4p-32L : -0x4.000000000000000aaaaaaaaaaaa8p-32L : inexact-ok
+= sinh upward ldbl-128 -0x4p-32L : -0x4.000000000000000aaaaaaaaaaaa8p-32L : inexact-ok
+= sinh downward ldbl-128ibm -0x4p-32L : -0x4.000000000000000aaaaaaaaaacp-32L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x4p-32L : -0x4.000000000000000aaaaaaaaaaap-32L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x4p-32L : -0x4.000000000000000aaaaaaaaaaap-32L : inexact-ok
+= sinh upward ldbl-128ibm -0x4p-32L : -0x4.000000000000000aaaaaaaaaaap-32L : inexact-ok
+sinh 0x1p-40
+= sinh downward flt-32 0x1p-40f : 0x1p-40f : inexact-ok
+= sinh tonearest flt-32 0x1p-40f : 0x1p-40f : inexact-ok
+= sinh towardzero flt-32 0x1p-40f : 0x1p-40f : inexact-ok
+= sinh upward flt-32 0x1p-40f : 0x1.000002p-40f : inexact-ok
+= sinh downward dbl-64 0x1p-40 : 0x1p-40 : inexact-ok
+= sinh tonearest dbl-64 0x1p-40 : 0x1p-40 : inexact-ok
+= sinh towardzero dbl-64 0x1p-40 : 0x1p-40 : inexact-ok
+= sinh upward dbl-64 0x1p-40 : 0x1.0000000000001p-40 : inexact-ok
+= sinh downward ldbl-96-intel 0x1p-40L : 0x1p-40L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x1p-40L : 0x1p-40L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x1p-40L : 0x1p-40L : inexact-ok
+= sinh upward ldbl-96-intel 0x1p-40L : 0x1.0000000000000002p-40L : inexact-ok
+= sinh downward ldbl-96-m68k 0x1p-40L : 0x1p-40L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x1p-40L : 0x1p-40L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x1p-40L : 0x1p-40L : inexact-ok
+= sinh upward ldbl-96-m68k 0x1p-40L : 0x1.0000000000000002p-40L : inexact-ok
+= sinh downward ldbl-128 0x1p-40L : 0x1.000000000000000000002aaaaaaap-40L : inexact-ok
+= sinh tonearest ldbl-128 0x1p-40L : 0x1.000000000000000000002aaaaaabp-40L : inexact-ok
+= sinh towardzero ldbl-128 0x1p-40L : 0x1.000000000000000000002aaaaaaap-40L : inexact-ok
+= sinh upward ldbl-128 0x1p-40L : 0x1.000000000000000000002aaaaaabp-40L : inexact-ok
+= sinh downward ldbl-128ibm 0x1p-40L : 0x1.000000000000000000002aaaaa8p-40L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x1p-40L : 0x1.000000000000000000002aaaaa8p-40L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x1p-40L : 0x1.000000000000000000002aaaaa8p-40L : inexact-ok
+= sinh upward ldbl-128ibm 0x1p-40L : 0x1.000000000000000000002aaaabp-40L : inexact-ok
+sinh -0x1p-40
+= sinh downward flt-32 -0x1p-40f : -0x1.000002p-40f : inexact-ok
+= sinh tonearest flt-32 -0x1p-40f : -0x1p-40f : inexact-ok
+= sinh towardzero flt-32 -0x1p-40f : -0x1p-40f : inexact-ok
+= sinh upward flt-32 -0x1p-40f : -0x1p-40f : inexact-ok
+= sinh downward dbl-64 -0x1p-40 : -0x1.0000000000001p-40 : inexact-ok
+= sinh tonearest dbl-64 -0x1p-40 : -0x1p-40 : inexact-ok
+= sinh towardzero dbl-64 -0x1p-40 : -0x1p-40 : inexact-ok
+= sinh upward dbl-64 -0x1p-40 : -0x1p-40 : inexact-ok
+= sinh downward ldbl-96-intel -0x1p-40L : -0x1.0000000000000002p-40L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x1p-40L : -0x1p-40L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x1p-40L : -0x1p-40L : inexact-ok
+= sinh upward ldbl-96-intel -0x1p-40L : -0x1p-40L : inexact-ok
+= sinh downward ldbl-96-m68k -0x1p-40L : -0x1.0000000000000002p-40L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x1p-40L : -0x1p-40L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x1p-40L : -0x1p-40L : inexact-ok
+= sinh upward ldbl-96-m68k -0x1p-40L : -0x1p-40L : inexact-ok
+= sinh downward ldbl-128 -0x1p-40L : -0x1.000000000000000000002aaaaaabp-40L : inexact-ok
+= sinh tonearest ldbl-128 -0x1p-40L : -0x1.000000000000000000002aaaaaabp-40L : inexact-ok
+= sinh towardzero ldbl-128 -0x1p-40L : -0x1.000000000000000000002aaaaaaap-40L : inexact-ok
+= sinh upward ldbl-128 -0x1p-40L : -0x1.000000000000000000002aaaaaaap-40L : inexact-ok
+= sinh downward ldbl-128ibm -0x1p-40L : -0x1.000000000000000000002aaaabp-40L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x1p-40L : -0x1.000000000000000000002aaaaa8p-40L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x1p-40L : -0x1.000000000000000000002aaaaa8p-40L : inexact-ok
+= sinh upward ldbl-128ibm -0x1p-40L : -0x1.000000000000000000002aaaaa8p-40L : inexact-ok
+sinh 0x1p-50
+= sinh downward flt-32 0x4p-52f : 0x4p-52f : inexact-ok
+= sinh tonearest flt-32 0x4p-52f : 0x4p-52f : inexact-ok
+= sinh towardzero flt-32 0x4p-52f : 0x4p-52f : inexact-ok
+= sinh upward flt-32 0x4p-52f : 0x4.000008p-52f : inexact-ok
+= sinh downward dbl-64 0x4p-52 : 0x4p-52 : inexact-ok
+= sinh tonearest dbl-64 0x4p-52 : 0x4p-52 : inexact-ok
+= sinh towardzero dbl-64 0x4p-52 : 0x4p-52 : inexact-ok
+= sinh upward dbl-64 0x4p-52 : 0x4.0000000000004p-52 : inexact-ok
+= sinh downward ldbl-96-intel 0x4p-52L : 0x4p-52L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x4p-52L : 0x4p-52L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x4p-52L : 0x4p-52L : inexact-ok
+= sinh upward ldbl-96-intel 0x4p-52L : 0x4.0000000000000008p-52L : inexact-ok
+= sinh downward ldbl-96-m68k 0x4p-52L : 0x4p-52L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x4p-52L : 0x4p-52L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x4p-52L : 0x4p-52L : inexact-ok
+= sinh upward ldbl-96-m68k 0x4p-52L : 0x4.0000000000000008p-52L : inexact-ok
+= sinh downward ldbl-128 0x4p-52L : 0x4.0000000000000000000000000aa8p-52L : inexact-ok
+= sinh tonearest ldbl-128 0x4p-52L : 0x4.0000000000000000000000000aacp-52L : inexact-ok
+= sinh towardzero ldbl-128 0x4p-52L : 0x4.0000000000000000000000000aa8p-52L : inexact-ok
+= sinh upward ldbl-128 0x4p-52L : 0x4.0000000000000000000000000aacp-52L : inexact-ok
+= sinh downward ldbl-128ibm 0x4p-52L : 0x4.0000000000000000000000000ap-52L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x4p-52L : 0x4.0000000000000000000000000ap-52L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x4p-52L : 0x4.0000000000000000000000000ap-52L : inexact-ok
+= sinh upward ldbl-128ibm 0x4p-52L : 0x4.0000000000000000000000000cp-52L : inexact-ok
+sinh -0x1p-50
+= sinh downward flt-32 -0x4p-52f : -0x4.000008p-52f : inexact-ok
+= sinh tonearest flt-32 -0x4p-52f : -0x4p-52f : inexact-ok
+= sinh towardzero flt-32 -0x4p-52f : -0x4p-52f : inexact-ok
+= sinh upward flt-32 -0x4p-52f : -0x4p-52f : inexact-ok
+= sinh downward dbl-64 -0x4p-52 : -0x4.0000000000004p-52 : inexact-ok
+= sinh tonearest dbl-64 -0x4p-52 : -0x4p-52 : inexact-ok
+= sinh towardzero dbl-64 -0x4p-52 : -0x4p-52 : inexact-ok
+= sinh upward dbl-64 -0x4p-52 : -0x4p-52 : inexact-ok
+= sinh downward ldbl-96-intel -0x4p-52L : -0x4.0000000000000008p-52L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x4p-52L : -0x4p-52L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x4p-52L : -0x4p-52L : inexact-ok
+= sinh upward ldbl-96-intel -0x4p-52L : -0x4p-52L : inexact-ok
+= sinh downward ldbl-96-m68k -0x4p-52L : -0x4.0000000000000008p-52L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x4p-52L : -0x4p-52L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x4p-52L : -0x4p-52L : inexact-ok
+= sinh upward ldbl-96-m68k -0x4p-52L : -0x4p-52L : inexact-ok
+= sinh downward ldbl-128 -0x4p-52L : -0x4.0000000000000000000000000aacp-52L : inexact-ok
+= sinh tonearest ldbl-128 -0x4p-52L : -0x4.0000000000000000000000000aacp-52L : inexact-ok
+= sinh towardzero ldbl-128 -0x4p-52L : -0x4.0000000000000000000000000aa8p-52L : inexact-ok
+= sinh upward ldbl-128 -0x4p-52L : -0x4.0000000000000000000000000aa8p-52L : inexact-ok
+= sinh downward ldbl-128ibm -0x4p-52L : -0x4.0000000000000000000000000cp-52L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x4p-52L : -0x4.0000000000000000000000000ap-52L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x4p-52L : -0x4.0000000000000000000000000ap-52L : inexact-ok
+= sinh upward ldbl-128ibm -0x4p-52L : -0x4.0000000000000000000000000ap-52L : inexact-ok
+sinh 0x1p-60
+= sinh downward flt-32 0x1p-60f : 0x1p-60f : inexact-ok
+= sinh tonearest flt-32 0x1p-60f : 0x1p-60f : inexact-ok
+= sinh towardzero flt-32 0x1p-60f : 0x1p-60f : inexact-ok
+= sinh upward flt-32 0x1p-60f : 0x1.000002p-60f : inexact-ok
+= sinh downward dbl-64 0x1p-60 : 0x1p-60 : inexact-ok
+= sinh tonearest dbl-64 0x1p-60 : 0x1p-60 : inexact-ok
+= sinh towardzero dbl-64 0x1p-60 : 0x1p-60 : inexact-ok
+= sinh upward dbl-64 0x1p-60 : 0x1.0000000000001p-60 : inexact-ok
+= sinh downward ldbl-96-intel 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh upward ldbl-96-intel 0x1p-60L : 0x1.0000000000000002p-60L : inexact-ok
+= sinh downward ldbl-96-m68k 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh upward ldbl-96-m68k 0x1p-60L : 0x1.0000000000000002p-60L : inexact-ok
+= sinh downward ldbl-128 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh tonearest ldbl-128 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh towardzero ldbl-128 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh upward ldbl-128 0x1p-60L : 0x1.0000000000000000000000000001p-60L : inexact-ok
+= sinh downward ldbl-128ibm 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x1p-60L : 0x1p-60L : inexact-ok
+= sinh upward ldbl-128ibm 0x1p-60L : 0x1.000000000000000000000000008p-60L : inexact-ok
+sinh -0x1p-60
+= sinh downward flt-32 -0x1p-60f : -0x1.000002p-60f : inexact-ok
+= sinh tonearest flt-32 -0x1p-60f : -0x1p-60f : inexact-ok
+= sinh towardzero flt-32 -0x1p-60f : -0x1p-60f : inexact-ok
+= sinh upward flt-32 -0x1p-60f : -0x1p-60f : inexact-ok
+= sinh downward dbl-64 -0x1p-60 : -0x1.0000000000001p-60 : inexact-ok
+= sinh tonearest dbl-64 -0x1p-60 : -0x1p-60 : inexact-ok
+= sinh towardzero dbl-64 -0x1p-60 : -0x1p-60 : inexact-ok
+= sinh upward dbl-64 -0x1p-60 : -0x1p-60 : inexact-ok
+= sinh downward ldbl-96-intel -0x1p-60L : -0x1.0000000000000002p-60L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh upward ldbl-96-intel -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh downward ldbl-96-m68k -0x1p-60L : -0x1.0000000000000002p-60L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh upward ldbl-96-m68k -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh downward ldbl-128 -0x1p-60L : -0x1.0000000000000000000000000001p-60L : inexact-ok
+= sinh tonearest ldbl-128 -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh towardzero ldbl-128 -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh upward ldbl-128 -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh downward ldbl-128ibm -0x1p-60L : -0x1.000000000000000000000000008p-60L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x1p-60L : -0x1p-60L : inexact-ok
+= sinh upward ldbl-128ibm -0x1p-60L : -0x1p-60L : inexact-ok
+sinh 0x1p-70
+= sinh downward flt-32 0x4p-72f : 0x4p-72f : inexact-ok
+= sinh tonearest flt-32 0x4p-72f : 0x4p-72f : inexact-ok
+= sinh towardzero flt-32 0x4p-72f : 0x4p-72f : inexact-ok
+= sinh upward flt-32 0x4p-72f : 0x4.000008p-72f : inexact-ok
+= sinh downward dbl-64 0x4p-72 : 0x4p-72 : inexact-ok
+= sinh tonearest dbl-64 0x4p-72 : 0x4p-72 : inexact-ok
+= sinh towardzero dbl-64 0x4p-72 : 0x4p-72 : inexact-ok
+= sinh upward dbl-64 0x4p-72 : 0x4.0000000000004p-72 : inexact-ok
+= sinh downward ldbl-96-intel 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh upward ldbl-96-intel 0x4p-72L : 0x4.0000000000000008p-72L : inexact-ok
+= sinh downward ldbl-96-m68k 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh upward ldbl-96-m68k 0x4p-72L : 0x4.0000000000000008p-72L : inexact-ok
+= sinh downward ldbl-128 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh tonearest ldbl-128 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh towardzero ldbl-128 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh upward ldbl-128 0x4p-72L : 0x4.0000000000000000000000000004p-72L : inexact-ok
+= sinh downward ldbl-128ibm 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x4p-72L : 0x4p-72L : inexact-ok
+= sinh upward ldbl-128ibm 0x4p-72L : 0x4.00000000000000000000000002p-72L : inexact-ok
+sinh -0x1p-70
+= sinh downward flt-32 -0x4p-72f : -0x4.000008p-72f : inexact-ok
+= sinh tonearest flt-32 -0x4p-72f : -0x4p-72f : inexact-ok
+= sinh towardzero flt-32 -0x4p-72f : -0x4p-72f : inexact-ok
+= sinh upward flt-32 -0x4p-72f : -0x4p-72f : inexact-ok
+= sinh downward dbl-64 -0x4p-72 : -0x4.0000000000004p-72 : inexact-ok
+= sinh tonearest dbl-64 -0x4p-72 : -0x4p-72 : inexact-ok
+= sinh towardzero dbl-64 -0x4p-72 : -0x4p-72 : inexact-ok
+= sinh upward dbl-64 -0x4p-72 : -0x4p-72 : inexact-ok
+= sinh downward ldbl-96-intel -0x4p-72L : -0x4.0000000000000008p-72L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh upward ldbl-96-intel -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh downward ldbl-96-m68k -0x4p-72L : -0x4.0000000000000008p-72L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh upward ldbl-96-m68k -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh downward ldbl-128 -0x4p-72L : -0x4.0000000000000000000000000004p-72L : inexact-ok
+= sinh tonearest ldbl-128 -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh towardzero ldbl-128 -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh upward ldbl-128 -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh downward ldbl-128ibm -0x4p-72L : -0x4.00000000000000000000000002p-72L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x4p-72L : -0x4p-72L : inexact-ok
+= sinh upward ldbl-128ibm -0x4p-72L : -0x4p-72L : inexact-ok
+sinh 0x1p-100
+= sinh downward flt-32 0x1p-100f : 0x1p-100f : inexact-ok
+= sinh tonearest flt-32 0x1p-100f : 0x1p-100f : inexact-ok
+= sinh towardzero flt-32 0x1p-100f : 0x1p-100f : inexact-ok
+= sinh upward flt-32 0x1p-100f : 0x1.000002p-100f : inexact-ok
+= sinh downward dbl-64 0x1p-100 : 0x1p-100 : inexact-ok
+= sinh tonearest dbl-64 0x1p-100 : 0x1p-100 : inexact-ok
+= sinh towardzero dbl-64 0x1p-100 : 0x1p-100 : inexact-ok
+= sinh upward dbl-64 0x1p-100 : 0x1.0000000000001p-100 : inexact-ok
+= sinh downward ldbl-96-intel 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh upward ldbl-96-intel 0x1p-100L : 0x1.0000000000000002p-100L : inexact-ok
+= sinh downward ldbl-96-m68k 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh upward ldbl-96-m68k 0x1p-100L : 0x1.0000000000000002p-100L : inexact-ok
+= sinh downward ldbl-128 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh tonearest ldbl-128 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh towardzero ldbl-128 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh upward ldbl-128 0x1p-100L : 0x1.0000000000000000000000000001p-100L : inexact-ok
+= sinh downward ldbl-128ibm 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x1p-100L : 0x1p-100L : inexact-ok
+= sinh upward ldbl-128ibm 0x1p-100L : 0x1.000000000000000000000000008p-100L : inexact-ok
+sinh -0x1p-100
+= sinh downward flt-32 -0x1p-100f : -0x1.000002p-100f : inexact-ok
+= sinh tonearest flt-32 -0x1p-100f : -0x1p-100f : inexact-ok
+= sinh towardzero flt-32 -0x1p-100f : -0x1p-100f : inexact-ok
+= sinh upward flt-32 -0x1p-100f : -0x1p-100f : inexact-ok
+= sinh downward dbl-64 -0x1p-100 : -0x1.0000000000001p-100 : inexact-ok
+= sinh tonearest dbl-64 -0x1p-100 : -0x1p-100 : inexact-ok
+= sinh towardzero dbl-64 -0x1p-100 : -0x1p-100 : inexact-ok
+= sinh upward dbl-64 -0x1p-100 : -0x1p-100 : inexact-ok
+= sinh downward ldbl-96-intel -0x1p-100L : -0x1.0000000000000002p-100L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh upward ldbl-96-intel -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh downward ldbl-96-m68k -0x1p-100L : -0x1.0000000000000002p-100L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh upward ldbl-96-m68k -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh downward ldbl-128 -0x1p-100L : -0x1.0000000000000000000000000001p-100L : inexact-ok
+= sinh tonearest ldbl-128 -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh towardzero ldbl-128 -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh upward ldbl-128 -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh downward ldbl-128ibm -0x1p-100L : -0x1.000000000000000000000000008p-100L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x1p-100L : -0x1p-100L : inexact-ok
+= sinh upward ldbl-128ibm -0x1p-100L : -0x1p-100L : inexact-ok
+sinh 0x1p-1000
+= sinh downward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh towardzero flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh upward flt-32 0x8p-152f : 0x1p-148f : inexact-ok underflow errno-erange-ok
+= sinh downward dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
+= sinh tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
+= sinh towardzero dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
+= sinh upward dbl-64 0x8p-152 : 0x8.0000000000008p-152 : inexact-ok
+= sinh downward ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh upward ldbl-96-intel 0x8p-152L : 0x8.000000000000001p-152L : inexact-ok
+= sinh downward ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh upward ldbl-96-m68k 0x8p-152L : 0x8.000000000000001p-152L : inexact-ok
+= sinh downward ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh tonearest ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh towardzero ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh upward ldbl-128 0x8p-152L : 0x8.0000000000000000000000000008p-152L : inexact-ok
+= sinh downward ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh upward ldbl-128ibm 0x8p-152L : 0x8.00000000000000000000000004p-152L : inexact-ok
+= sinh downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok
+= sinh tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok
+= sinh towardzero flt-32 0x0p+0f : 0x0p+0f : inexact-ok
+= sinh upward flt-32 0x0p+0f : 0x0p+0f : inexact-ok
+= sinh downward dbl-64 0x0p+0 : 0x0p+0 : inexact-ok
+= sinh tonearest dbl-64 0x0p+0 : 0x0p+0 : inexact-ok
+= sinh towardzero dbl-64 0x0p+0 : 0x0p+0 : inexact-ok
+= sinh upward dbl-64 0x0p+0 : 0x0p+0 : inexact-ok
+= sinh downward ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh upward ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh downward ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh upward ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh downward ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh tonearest ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh towardzero ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh upward ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh downward ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh upward ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh downward dbl-64 0x1p-1000 : 0x1p-1000 : inexact-ok
+= sinh tonearest dbl-64 0x1p-1000 : 0x1p-1000 : inexact-ok
+= sinh towardzero dbl-64 0x1p-1000 : 0x1p-1000 : inexact-ok
+= sinh upward dbl-64 0x1p-1000 : 0x1.0000000000001p-1000 : inexact-ok
+= sinh downward ldbl-96-intel 0x1p-1000L : 0x1p-1000L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x1p-1000L : 0x1p-1000L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x1p-1000L : 0x1p-1000L : inexact-ok
+= sinh upward ldbl-96-intel 0x1p-1000L : 0x1.0000000000000002p-1000L : inexact-ok
+= sinh downward ldbl-96-m68k 0x1p-1000L : 0x1p-1000L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x1p-1000L : 0x1p-1000L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x1p-1000L : 0x1p-1000L : inexact-ok
+= sinh upward ldbl-96-m68k 0x1p-1000L : 0x1.0000000000000002p-1000L : inexact-ok
+= sinh downward ldbl-128 0x1p-1000L : 0x1p-1000L : inexact-ok
+= sinh tonearest ldbl-128 0x1p-1000L : 0x1p-1000L : inexact-ok
+= sinh towardzero ldbl-128 0x1p-1000L : 0x1p-1000L : inexact-ok
+= sinh upward ldbl-128 0x1p-1000L : 0x1.0000000000000000000000000001p-1000L : inexact-ok
+= sinh downward ldbl-128ibm 0x1p-1000L : 0x1p-1000L : inexact-ok underflow errno-erange-ok
+= sinh tonearest ldbl-128ibm 0x1p-1000L : 0x1p-1000L : inexact-ok underflow errno-erange-ok
+= sinh towardzero ldbl-128ibm 0x1p-1000L : 0x1p-1000L : inexact-ok underflow errno-erange-ok
+= sinh upward ldbl-128ibm 0x1p-1000L : 0x1.0000000000000000004p-1000L : inexact-ok underflow errno-erange-ok
+sinh -0x1p-1000
+= sinh downward flt-32 -0x0p+0f : -0x0p+0f : inexact-ok
+= sinh tonearest flt-32 -0x0p+0f : -0x0p+0f : inexact-ok
+= sinh towardzero flt-32 -0x0p+0f : -0x0p+0f : inexact-ok
+= sinh upward flt-32 -0x0p+0f : -0x0p+0f : inexact-ok
+= sinh downward dbl-64 -0x0p+0 : -0x0p+0 : inexact-ok
+= sinh tonearest dbl-64 -0x0p+0 : -0x0p+0 : inexact-ok
+= sinh towardzero dbl-64 -0x0p+0 : -0x0p+0 : inexact-ok
+= sinh upward dbl-64 -0x0p+0 : -0x0p+0 : inexact-ok
+= sinh downward ldbl-96-intel -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh upward ldbl-96-intel -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh downward ldbl-96-m68k -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh upward ldbl-96-m68k -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh downward ldbl-128 -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh tonearest ldbl-128 -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh towardzero ldbl-128 -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh upward ldbl-128 -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh downward ldbl-128ibm -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh upward ldbl-128ibm -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh downward flt-32 -0x8p-152f : -0x1p-148f : inexact-ok underflow errno-erange-ok
+= sinh tonearest flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh towardzero flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh upward flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh downward dbl-64 -0x8p-152 : -0x8.0000000000008p-152 : inexact-ok
+= sinh tonearest dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok
+= sinh towardzero dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok
+= sinh upward dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok
+= sinh downward ldbl-96-intel -0x8p-152L : -0x8.000000000000001p-152L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh upward ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh downward ldbl-96-m68k -0x8p-152L : -0x8.000000000000001p-152L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh upward ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh downward ldbl-128 -0x8p-152L : -0x8.0000000000000000000000000008p-152L : inexact-ok
+= sinh tonearest ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh towardzero ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh upward ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh downward ldbl-128ibm -0x8p-152L : -0x8.00000000000000000000000004p-152L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh upward ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh downward dbl-64 -0x1p-1000 : -0x1.0000000000001p-1000 : inexact-ok
+= sinh tonearest dbl-64 -0x1p-1000 : -0x1p-1000 : inexact-ok
+= sinh towardzero dbl-64 -0x1p-1000 : -0x1p-1000 : inexact-ok
+= sinh upward dbl-64 -0x1p-1000 : -0x1p-1000 : inexact-ok
+= sinh downward ldbl-96-intel -0x1p-1000L : -0x1.0000000000000002p-1000L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x1p-1000L : -0x1p-1000L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x1p-1000L : -0x1p-1000L : inexact-ok
+= sinh upward ldbl-96-intel -0x1p-1000L : -0x1p-1000L : inexact-ok
+= sinh downward ldbl-96-m68k -0x1p-1000L : -0x1.0000000000000002p-1000L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x1p-1000L : -0x1p-1000L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x1p-1000L : -0x1p-1000L : inexact-ok
+= sinh upward ldbl-96-m68k -0x1p-1000L : -0x1p-1000L : inexact-ok
+= sinh downward ldbl-128 -0x1p-1000L : -0x1.0000000000000000000000000001p-1000L : inexact-ok
+= sinh tonearest ldbl-128 -0x1p-1000L : -0x1p-1000L : inexact-ok
+= sinh towardzero ldbl-128 -0x1p-1000L : -0x1p-1000L : inexact-ok
+= sinh upward ldbl-128 -0x1p-1000L : -0x1p-1000L : inexact-ok
+= sinh downward ldbl-128ibm -0x1p-1000L : -0x1.0000000000000000004p-1000L : inexact-ok underflow errno-erange-ok
+= sinh tonearest ldbl-128ibm -0x1p-1000L : -0x1p-1000L : inexact-ok underflow errno-erange-ok
+= sinh towardzero ldbl-128ibm -0x1p-1000L : -0x1p-1000L : inexact-ok underflow errno-erange-ok
+= sinh upward ldbl-128ibm -0x1p-1000L : -0x1p-1000L : inexact-ok underflow errno-erange-ok
+sinh 0x1p-10000
+= sinh downward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh towardzero flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh upward flt-32 0x8p-152f : 0x1p-148f : inexact-ok underflow errno-erange-ok
+= sinh downward dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
+= sinh tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
+= sinh towardzero dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
+= sinh upward dbl-64 0x8p-152 : 0x8.0000000000008p-152 : inexact-ok
+= sinh downward ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh upward ldbl-96-intel 0x8p-152L : 0x8.000000000000001p-152L : inexact-ok
+= sinh downward ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh upward ldbl-96-m68k 0x8p-152L : 0x8.000000000000001p-152L : inexact-ok
+= sinh downward ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh tonearest ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh towardzero ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh upward ldbl-128 0x8p-152L : 0x8.0000000000000000000000000008p-152L : inexact-ok
+= sinh downward ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
+= sinh upward ldbl-128ibm 0x8p-152L : 0x8.00000000000000000000000004p-152L : inexact-ok
+= sinh downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok
+= sinh tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok
+= sinh towardzero flt-32 0x0p+0f : 0x0p+0f : inexact-ok
+= sinh upward flt-32 0x0p+0f : 0x0p+0f : inexact-ok
+= sinh downward dbl-64 0x0p+0 : 0x0p+0 : inexact-ok
+= sinh tonearest dbl-64 0x0p+0 : 0x0p+0 : inexact-ok
+= sinh towardzero dbl-64 0x0p+0 : 0x0p+0 : inexact-ok
+= sinh upward dbl-64 0x0p+0 : 0x0p+0 : inexact-ok
+= sinh downward ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh upward ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh downward ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh upward ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh downward ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh tonearest ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh towardzero ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh upward ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh downward ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh tonearest ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh towardzero ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh upward ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
+= sinh downward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= sinh tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= sinh towardzero dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= sinh upward dbl-64 0x4p-1076 : 0x8p-1076 : inexact-ok underflow errno-erange-ok
+= sinh downward ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sinh upward ldbl-96-intel 0x4p-1076L : 0x4.0000000000000008p-1076L : inexact-ok
+= sinh downward ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sinh upward ldbl-96-m68k 0x4p-1076L : 0x4.0000000000000008p-1076L : inexact-ok
+= sinh downward ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sinh tonearest ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sinh towardzero ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
+= sinh upward ldbl-128 0x4p-1076L : 0x4.0000000000000000000000000004p-1076L : inexact-ok
+= sinh downward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= sinh tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= sinh towardzero ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= sinh upward ldbl-128ibm 0x4p-1076L : 0x8p-1076L : inexact-ok underflow errno-erange-ok
+= sinh downward ldbl-96-intel 0x1p-10000L : 0x1p-10000L : inexact-ok
+= sinh tonearest ldbl-96-intel 0x1p-10000L : 0x1p-10000L : inexact-ok
+= sinh towardzero ldbl-96-intel 0x1p-10000L : 0x1p-10000L : inexact-ok
+= sinh upward ldbl-96-intel 0x1p-10000L : 0x1.0000000000000002p-10000L : inexact-ok
+= sinh downward ldbl-96-m68k 0x1p-10000L : 0x1p-10000L : inexact-ok
+= sinh tonearest ldbl-96-m68k 0x1p-10000L : 0x1p-10000L : inexact-ok
+= sinh towardzero ldbl-96-m68k 0x1p-10000L : 0x1p-10000L : inexact-ok
+= sinh upward ldbl-96-m68k 0x1p-10000L : 0x1.0000000000000002p-10000L : inexact-ok
+= sinh downward ldbl-128 0x1p-10000L : 0x1p-10000L : inexact-ok
+= sinh tonearest ldbl-128 0x1p-10000L : 0x1p-10000L : inexact-ok
+= sinh towardzero ldbl-128 0x1p-10000L : 0x1p-10000L : inexact-ok
+= sinh upward ldbl-128 0x1p-10000L : 0x1.0000000000000000000000000001p-10000L : inexact-ok
+sinh -0x1p-10000
+= sinh downward flt-32 -0x0p+0f : -0x0p+0f : inexact-ok
+= sinh tonearest flt-32 -0x0p+0f : -0x0p+0f : inexact-ok
+= sinh towardzero flt-32 -0x0p+0f : -0x0p+0f : inexact-ok
+= sinh upward flt-32 -0x0p+0f : -0x0p+0f : inexact-ok
+= sinh downward dbl-64 -0x0p+0 : -0x0p+0 : inexact-ok
+= sinh tonearest dbl-64 -0x0p+0 : -0x0p+0 : inexact-ok
+= sinh towardzero dbl-64 -0x0p+0 : -0x0p+0 : inexact-ok
+= sinh upward dbl-64 -0x0p+0 : -0x0p+0 : inexact-ok
+= sinh downward ldbl-96-intel -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh upward ldbl-96-intel -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh downward ldbl-96-m68k -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh upward ldbl-96-m68k -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh downward ldbl-128 -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh tonearest ldbl-128 -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh towardzero ldbl-128 -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh upward ldbl-128 -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh downward ldbl-128ibm -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh upward ldbl-128ibm -0x0p+0L : -0x0p+0L : inexact-ok
+= sinh downward flt-32 -0x8p-152f : -0x1p-148f : inexact-ok underflow errno-erange-ok
+= sinh tonearest flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh towardzero flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh upward flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok
+= sinh downward dbl-64 -0x8p-152 : -0x8.0000000000008p-152 : inexact-ok
+= sinh tonearest dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok
+= sinh towardzero dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok
+= sinh upward dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok
+= sinh downward ldbl-96-intel -0x8p-152L : -0x8.000000000000001p-152L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh upward ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh downward ldbl-96-m68k -0x8p-152L : -0x8.000000000000001p-152L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh upward ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh downward ldbl-128 -0x8p-152L : -0x8.0000000000000000000000000008p-152L : inexact-ok
+= sinh tonearest ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh towardzero ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh upward ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh downward ldbl-128ibm -0x8p-152L : -0x8.00000000000000000000000004p-152L : inexact-ok
+= sinh tonearest ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh towardzero ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh upward ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok
+= sinh downward dbl-64 -0x4p-1076 : -0x8p-1076 : inexact-ok underflow errno-erange-ok
+= sinh tonearest dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= sinh towardzero dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= sinh upward dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= sinh downward ldbl-96-intel -0x4p-1076L : -0x4.0000000000000008p-1076L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sinh upward ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sinh downward ldbl-96-m68k -0x4p-1076L : -0x4.0000000000000008p-1076L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sinh upward ldbl-96-m68k -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sinh downward ldbl-128 -0x4p-1076L : -0x4.0000000000000000000000000004p-1076L : inexact-ok
+= sinh tonearest ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sinh towardzero ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sinh upward ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok
+= sinh downward ldbl-128ibm -0x4p-1076L : -0x8p-1076L : inexact-ok underflow errno-erange-ok
+= sinh tonearest ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= sinh towardzero ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= sinh upward ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= sinh downward ldbl-96-intel -0x1p-10000L : -0x1.0000000000000002p-10000L : inexact-ok
+= sinh tonearest ldbl-96-intel -0x1p-10000L : -0x1p-10000L : inexact-ok
+= sinh towardzero ldbl-96-intel -0x1p-10000L : -0x1p-10000L : inexact-ok
+= sinh upward ldbl-96-intel -0x1p-10000L : -0x1p-10000L : inexact-ok
+= sinh downward ldbl-96-m68k -0x1p-10000L : -0x1.0000000000000002p-10000L : inexact-ok
+= sinh tonearest ldbl-96-m68k -0x1p-10000L : -0x1p-10000L : inexact-ok
+= sinh towardzero ldbl-96-m68k -0x1p-10000L : -0x1p-10000L : inexact-ok
+= sinh upward ldbl-96-m68k -0x1p-10000L : -0x1p-10000L : inexact-ok
+= sinh downward ldbl-128 -0x1p-10000L : -0x1.0000000000000000000000000001p-10000L : inexact-ok
+= sinh tonearest ldbl-128 -0x1p-10000L : -0x1p-10000L : inexact-ok
+= sinh towardzero ldbl-128 -0x1p-10000L : -0x1p-10000L : inexact-ok
+= sinh upward ldbl-128 -0x1p-10000L : -0x1p-10000L : inexact-ok
 sinh 22
 = sinh downward flt-32 0x1.6p+4f : 0x6.ad6b68p+28f : inexact-ok
 = sinh tonearest flt-32 0x1.6p+4f : 0x6.ad6b7p+28f : inexact-ok
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index a11dd38f9f..eddb3dc990 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -1872,6 +1872,8 @@ ildouble: 4
 ldouble: 5
 
 Function: "sinh_towardzero":
+idouble: 1
+ifloat: 1
 ildouble: 3
 ldouble: 4
 
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c b/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
index 08e5d86b41..00115df944 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
@@ -53,7 +53,7 @@ __ieee754_sinhl(long double x)
 	if (jx<0) h = -h;
     /* |x| in [0,40], return sign(x)*0.5*(E+E/(E+1))) */
 	if (ix < 0x4044000000000000LL) {	/* |x|<40 */
-	    if (ix<0x3e20000000000000LL) {	/* |x|<2**-29 */
+	    if (ix<0x3c90000000000000LL) {	/* |x|<2**-54 */
 		if (fabsl (x) < LDBL_MIN)
 		  {
 		    long double force_underflow = x * x;