]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math: Use sinh from CORE-MATH
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 12 Mar 2026 14:21:07 +0000 (11:21 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 16 Mar 2026 16:51:57 +0000 (13:51 -0300)
The current implementation precision shows the following accuracy, on
three ranges ([-DBL_MAX,-10], [-10,10], [10,DBL_MAX]) with 10e9 uniform
randomly generated numbers for each range (first column is the
accuracy in ULP, with '0' being correctly rounded, second is the
number of samples with the corresponding precision):

* Range [-DBL_MAX, -10]
 * FE_TONEAREST
     0:      10000000000 100.00%
 * FE_UPWARD
     0:      10000000000 100.00%
 * FE_DOWNWARD
     0:      10000000000 100.00%
 * FE_TOWARDZERO
     0:      10000000000 100.00%

* Range [-10, -10]
 * FE_TONEAREST
     0:       3169388892  73.79%
     1:       1125270674  26.20%
     2:           307729   0.01%
 * FE_UPWARD
     0:       1450068660  33.76%
     1:       2146926394  49.99%
     2:        697404986  16.24%
     3:           567255   0.01%
 * FE_DOWNWARD
     0:       1449727976  33.75%
     1:       2146957381  49.99%
     2:        697719649  16.25%
     3:           562289   0.01%
 * FE_TOWARDZERO
     0:       2519351889  58.66%
     1:       1773434502  41.29%
     2:          2180904   0.05%

* Range [10, DBL_MAX]
 * FE_TONEAREST
     0:      10000000000 100.00%
 * FE_UPWARD
     0:      10000000000 100.00%
 * FE_DOWNWARD
     0:      10000000000 100.00%
 * FE_TOWARDZERO
     0:      10000000000 100.00%

The CORE-MATH implementation is correctly rounded for any rounding mode.
The code was adapted to glibc style and to use the definition of
math_config.h (to handle errno, overflow, and underflow).

Performance-wise, it shows:

latency                      master        patched        improvement
x86_64                     101.0710       129.4710            -28.10%
x86_64v2                   101.1810       127.6370            -26.15%
x86_64v3                    96.0685        48.5911             49.42%
aarch64                     41.4229        22.3971             45.93%
armhf-vpfv4                 42.8620        25.6011             40.27%
powerpc64le                 29.2630        13.1450             55.08%

reciprocal-throughput        master        patched        improvement
x86_64                      42.6895       105.7150           -147.64%
x86_64v2                    42.7255       104.7480           -145.17%
x86_64v3                    39.6949        25.9087             34.73%
aarch64                     26.0104        19.2236             26.09%
armhf-vpfv4                 29.4362        23.6350             19.71%
powerpc64le                 12.9170        8.34582             35.39%

* x86_64:        gcc version 15.2.1 20260112, Ryzen 9 5900X, --disable-multi-arch
* aarch64:       gcc version 15.2.1 20251105, Neoverse-N1
* armv7a-vpfv4:  gcc version 15.2.1 20251105, Neoverse-N1
* powerpc64le:   gcc version 15.2.1 20260128, POWER10

Checked on x86_64-linux-gnu, aarch64-linux-gnu, and
powerpc64le-linux-gnu.

Reviewed-by: DJ Delorie <dj@redhat.com>
NEWS
SHARED-FILES
math/auto-libm-test-in
math/auto-libm-test-out-sinh
sysdeps/i386/Makefile
sysdeps/ieee754/dbl-64/e_sinh.c
sysdeps/ieee754/dbl-64/libm-test-ulps

diff --git a/NEWS b/NEWS
index 981ea95015341115072f2e7c0421c01b60976ba1..11d0a6888b8b072793fe9667b9eea47a28ec2c33 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ Version 2.44
 Major new features:
 
 * Additional optimized and correctly rounded mathematical functions have
-  been imported from the CORE-MATH project, in particular cosh.
+  been imported from the CORE-MATH project, in particular cosh, and sinh.
 
 * The SVID handling for cosh was moved to compat symbols, allowing
   improvements in performance.
index df8bb18c81634ef7b3c60b92115f4df1abea8cb7..3959964dd606b4812b2a3850566f34dbd0ad5f88 100644 (file)
@@ -254,6 +254,8 @@ core-math:
   sysdeps/ieee754/dbl-64/e_gamma_r.c
   # src/binary64/lgamma/lgamma.c, revision 0413bb7e
   sysdeps/ieee754/dbl-64/e_lgamma_r.c
+  # src/binary64/sinh/sinh.c, revision 8127b7ac
+  sysdeps/ieee754/dbl-64/e_sinh.c
   # src/binary64/asinh/asinh.c, revision cd653cf7
   sysdeps/ieee754/dbl-64/s_asinh.c
   # src/binary64/erf/erf.c, revision 384ed01d
index 61e05d570d9722c2674c456675571a31a1bd2dd0..bf77634d3c21d69c295559ae9ef7f8eb0288c730 100644 (file)
@@ -9574,6 +9574,45 @@ sinh -0x6.9bbb6df7c5d08p-4
 sinh 0x1.250bfep-11
 # the next value generates larger error bounds on x86_64 (ldbl-96)
 sinh 0x2.c5d376167f4052f4p+12
+sinh -0x1.4a3f2b7dff682p+2
+sinh -0x1.41267a2ed2593p+2
+sinh 0x1.41c456749a084p+2
+sinh 0x1.41feabdae88c6p+2
+sinh -0x1.41634f0c2ae4dp+2
+sinh -0x1.4104fac728038p+2
+sinh -0x1.419af27adcfe8p+2
+sinh -0x1.41265ff261702p+2
+sinh 0x1.424c64d09a2d4p+2
+sinh 0x1.409364da45b54p+2
+sinh -0x1.409359e03b8fap+2
+sinh 0x1.4000685a224bcp+2
+sinh -0x1.49d5d039e0535p+2
+sinh -0x1.41e005cc32758p+2
+sinh -0x1.497208f2ae258p+2
+sinh -0x1.4037cd9cb7a82p+2
+sinh -0x1.41b923f7769e3p+2
+sinh -0x1.425754461bdfdp+2
+sinh -0x1.425761708c475p+2
+sinh 0x1.40e3ea0aeab5ap+2
+sinh 0x1.4144bd89e0eb8p+2
+sinh 0x1.403d4a3c61f18p+2
+sinh 0x1.41d7bcbdf9fccp+2
+sinh 0x1.42575956957ap+2
+sinh -0x1.09e94dfa477cp-2
+sinh -0x1.40a6d6ee4ba13p+2
+sinh -0x1.42575380f620bp+2
+sinh -0x1.41342809b65ffp+2
+sinh 0x1.420149be82e16p+2
+sinh -0x1.417c56d39aac4p+2
+sinh 0x1.41bc1dc9e7ebp+2
+sinh 0x1.410a9f2b0fd78p+2
+sinh 0x1.41d7ae912e7e2p+2
+sinh 0x1.403d745ee03bp+2
+sinh 0x1.42360842659f6p+2
+sinh 0x1.424c2ba022b28p+2
+sinh 0x1.78b7f7218cbbap-8
+sinh 0x1.71a7baa9570bdp-26
+sinh 0x1.0042fffffffffp-3
 sinh max
 sinh -max
 sinh min
index 3924e19d86a9cf0a342afcb4ebf6bfd7106024a9..a9422375eb73a3a86793b980e1f05e2ba8dbaa58 100644 (file)
@@ -2245,6 +2245,2697 @@ sinh 0x2.c5d376167f4052f4p+12
 = sinh tonearest ibm128 0x2.c5d376167f4052f4p+12 : plus_infty : inexact-ok overflow errno-erange
 = sinh towardzero ibm128 0x2.c5d376167f4052f4p+12 : 0xf.ffffffffffffbffffffffffffcp+1020 : xfail:ibm128-libgcc inexact-ok overflow errno-erange-ok
 = sinh upward ibm128 0x2.c5d376167f4052f4p+12 : plus_infty : xfail:ibm128-libgcc inexact-ok overflow errno-erange
+sinh -0x1.4a3f2b7dff682p+2
+= sinh downward binary32 -0x5.28fca8p+0 : -0x5.716a98p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.28fca8p+0 : -0x5.716a98p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.28fca8p+0 : -0x5.716a9p+4 : inexact-ok
+= sinh upward binary32 -0x5.28fca8p+0 : -0x5.716a9p+4 : inexact-ok
+= sinh downward binary64 -0x5.28fca8p+0 : -0x5.716a95457987p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.28fca8p+0 : -0x5.716a95457987p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.28fca8p+0 : -0x5.716a95457986cp+4 : inexact-ok
+= sinh upward binary64 -0x5.28fca8p+0 : -0x5.716a95457986cp+4 : inexact-ok
+= sinh downward intel96 -0x5.28fca8p+0 : -0x5.716a95457986f73p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.28fca8p+0 : -0x5.716a95457986f728p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.28fca8p+0 : -0x5.716a95457986f728p+4 : inexact-ok
+= sinh upward intel96 -0x5.28fca8p+0 : -0x5.716a95457986f728p+4 : inexact-ok
+= sinh downward m68k96 -0x5.28fca8p+0 : -0x5.716a95457986f73p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.28fca8p+0 : -0x5.716a95457986f728p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.28fca8p+0 : -0x5.716a95457986f728p+4 : inexact-ok
+= sinh upward m68k96 -0x5.28fca8p+0 : -0x5.716a95457986f728p+4 : inexact-ok
+= sinh downward binary128 -0x5.28fca8p+0 : -0x5.716a95457986f72a9adf8d269e8p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.28fca8p+0 : -0x5.716a95457986f72a9adf8d269e7cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.28fca8p+0 : -0x5.716a95457986f72a9adf8d269e7cp+4 : inexact-ok
+= sinh upward binary128 -0x5.28fca8p+0 : -0x5.716a95457986f72a9adf8d269e7cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.28fca8p+0 : -0x5.716a95457986f72a9adf8d26ap+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.28fca8p+0 : -0x5.716a95457986f72a9adf8d269ep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.28fca8p+0 : -0x5.716a95457986f72a9adf8d269ep+4 : inexact-ok
+= sinh upward ibm128 -0x5.28fca8p+0 : -0x5.716a95457986f72a9adf8d269ep+4 : inexact-ok
+= sinh downward binary32 -0x5.28fcbp+0 : -0x5.716ac8p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.28fcbp+0 : -0x5.716acp+4 : inexact-ok
+= sinh towardzero binary32 -0x5.28fcbp+0 : -0x5.716acp+4 : inexact-ok
+= sinh upward binary32 -0x5.28fcbp+0 : -0x5.716acp+4 : inexact-ok
+= sinh downward binary64 -0x5.28fcbp+0 : -0x5.716ac0d18aff4p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.28fcbp+0 : -0x5.716ac0d18affp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.28fcbp+0 : -0x5.716ac0d18affp+4 : inexact-ok
+= sinh upward binary64 -0x5.28fcbp+0 : -0x5.716ac0d18affp+4 : inexact-ok
+= sinh downward intel96 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d1p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d1p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d08p+4 : inexact-ok
+= sinh upward intel96 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d08p+4 : inexact-ok
+= sinh downward m68k96 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d1p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d1p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d08p+4 : inexact-ok
+= sinh upward m68k96 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d08p+4 : inexact-ok
+= sinh downward binary128 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d0f96a9af8f74bcp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d0f96a9af8f74bcp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d0f96a9af8f74b8p+4 : inexact-ok
+= sinh upward binary128 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d0f96a9af8f74b8p+4 : inexact-ok
+= sinh downward ibm128 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d0f96a9af8f76p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d0f96a9af8f74p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d0f96a9af8f74p+4 : inexact-ok
+= sinh upward ibm128 -0x5.28fcbp+0 : -0x5.716ac0d18aff1d0f96a9af8f74p+4 : inexact-ok
+= sinh downward binary64 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed838p+4 : inexact-ok
+= sinh upward binary64 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed838p+4 : inexact-ok
+= sinh downward intel96 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83cp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83cp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83cp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83cp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bfffdbd0f6db812cp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bfffdbd0f6db8128p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bfffdbd0f6db8128p+4 : inexact-ok
+= sinh upward binary128 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bfffdbd0f6db8128p+4 : inexact-ok
+= sinh downward ibm128 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bfffdbd0f6db82p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bfffdbd0f6db82p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bfffdbd0f6db8p+4 : inexact-ok
+= sinh upward ibm128 -0x5.28fcadf7fda08p+0 : -0x5.716ab5c2ed83bfffdbd0f6db8p+4 : inexact-ok
+sinh -0x1.41267a2ed2593p+2
+= sinh downward binary32 -0x5.0499e8p+0 : -0x4.b8c908p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.0499e8p+0 : -0x4.b8c9p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.0499e8p+0 : -0x4.b8c9p+4 : inexact-ok
+= sinh upward binary32 -0x5.0499e8p+0 : -0x4.b8c9p+4 : inexact-ok
+= sinh downward binary64 -0x5.0499e8p+0 : -0x4.b8c902d308c4p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.0499e8p+0 : -0x4.b8c902d308c3cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.0499e8p+0 : -0x4.b8c902d308c3cp+4 : inexact-ok
+= sinh upward binary64 -0x5.0499e8p+0 : -0x4.b8c902d308c3cp+4 : inexact-ok
+= sinh downward intel96 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8b8p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8bp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8bp+4 : inexact-ok
+= sinh upward intel96 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8bp+4 : inexact-ok
+= sinh downward m68k96 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8b8p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8bp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8bp+4 : inexact-ok
+= sinh upward m68k96 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8bp+4 : inexact-ok
+= sinh downward binary128 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8b13dfd9d1ae178p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8b13dfd9d1ae178p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8b13dfd9d1ae174p+4 : inexact-ok
+= sinh upward binary128 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8b13dfd9d1ae174p+4 : inexact-ok
+= sinh downward ibm128 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8b13dfd9d1ae2p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8b13dfd9d1ae2p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8b13dfd9d1aep+4 : inexact-ok
+= sinh upward ibm128 -0x5.0499e8p+0 : -0x4.b8c902d308c3d8b13dfd9d1aep+4 : inexact-ok
+= sinh downward binary32 -0x5.0499fp+0 : -0x4.b8c93p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.0499fp+0 : -0x4.b8c928p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.0499fp+0 : -0x4.b8c928p+4 : inexact-ok
+= sinh upward binary32 -0x5.0499fp+0 : -0x4.b8c928p+4 : inexact-ok
+= sinh downward binary64 -0x5.0499fp+0 : -0x4.b8c9289a2a4ccp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.0499fp+0 : -0x4.b8c9289a2a4ccp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.0499fp+0 : -0x4.b8c9289a2a4c8p+4 : inexact-ok
+= sinh upward binary64 -0x5.0499fp+0 : -0x4.b8c9289a2a4c8p+4 : inexact-ok
+= sinh downward intel96 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb788p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb788p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb78p+4 : inexact-ok
+= sinh upward intel96 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb78p+4 : inexact-ok
+= sinh downward m68k96 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb788p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb788p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb78p+4 : inexact-ok
+= sinh upward m68k96 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb78p+4 : inexact-ok
+= sinh downward binary128 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb7867fe88672f624p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb7867fe88672f624p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb7867fe88672f62p+4 : inexact-ok
+= sinh upward binary128 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb7867fe88672f62p+4 : inexact-ok
+= sinh downward ibm128 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb7867fe88672f8p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb7867fe88672f6p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb7867fe88672f6p+4 : inexact-ok
+= sinh upward ibm128 -0x5.0499fp+0 : -0x4.b8c9289a2a4cb7867fe88672f6p+4 : inexact-ok
+= sinh downward binary64 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fcp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fcp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbcp+4 : inexact-ok
+= sinh upward binary64 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbcp+4 : inexact-ok
+= sinh downward intel96 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fcp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fcp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbfff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbfff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fcp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fcp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbfff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbfff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbffff82814b22b0fcp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbffff82814b22b0f8p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbffff82814b22b0f8p+4 : inexact-ok
+= sinh upward binary128 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbffff82814b22b0f8p+4 : inexact-ok
+= sinh downward ibm128 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbffff82814b22b2p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbffff82814b22bp+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbffff82814b22bp+4 : inexact-ok
+= sinh upward ibm128 -0x5.0499e8bb4964cp+0 : -0x4.b8c9064771fbffff82814b22bp+4 : inexact-ok
+sinh 0x1.41c456749a084p+2
+= sinh downward binary32 0x5.07116p+0 : 0x4.c47d58p+4 : inexact-ok
+= sinh tonearest binary32 0x5.07116p+0 : 0x4.c47d6p+4 : inexact-ok
+= sinh towardzero binary32 0x5.07116p+0 : 0x4.c47d58p+4 : inexact-ok
+= sinh upward binary32 0x5.07116p+0 : 0x4.c47d6p+4 : inexact-ok
+= sinh downward binary64 0x5.07116p+0 : 0x4.c47d5d068d78p+4 : inexact-ok
+= sinh tonearest binary64 0x5.07116p+0 : 0x4.c47d5d068d78p+4 : inexact-ok
+= sinh towardzero binary64 0x5.07116p+0 : 0x4.c47d5d068d78p+4 : inexact-ok
+= sinh upward binary64 0x5.07116p+0 : 0x4.c47d5d068d784p+4 : inexact-ok
+= sinh downward intel96 0x5.07116p+0 : 0x4.c47d5d068d780bcp+4 : inexact-ok
+= sinh tonearest intel96 0x5.07116p+0 : 0x4.c47d5d068d780bcp+4 : inexact-ok
+= sinh towardzero intel96 0x5.07116p+0 : 0x4.c47d5d068d780bcp+4 : inexact-ok
+= sinh upward intel96 0x5.07116p+0 : 0x4.c47d5d068d780bc8p+4 : inexact-ok
+= sinh downward m68k96 0x5.07116p+0 : 0x4.c47d5d068d780bcp+4 : inexact-ok
+= sinh tonearest m68k96 0x5.07116p+0 : 0x4.c47d5d068d780bcp+4 : inexact-ok
+= sinh towardzero m68k96 0x5.07116p+0 : 0x4.c47d5d068d780bcp+4 : inexact-ok
+= sinh upward m68k96 0x5.07116p+0 : 0x4.c47d5d068d780bc8p+4 : inexact-ok
+= sinh downward binary128 0x5.07116p+0 : 0x4.c47d5d068d780bc2ea437d35af34p+4 : inexact-ok
+= sinh tonearest binary128 0x5.07116p+0 : 0x4.c47d5d068d780bc2ea437d35af34p+4 : inexact-ok
+= sinh towardzero binary128 0x5.07116p+0 : 0x4.c47d5d068d780bc2ea437d35af34p+4 : inexact-ok
+= sinh upward binary128 0x5.07116p+0 : 0x4.c47d5d068d780bc2ea437d35af38p+4 : inexact-ok
+= sinh downward ibm128 0x5.07116p+0 : 0x4.c47d5d068d780bc2ea437d35aep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.07116p+0 : 0x4.c47d5d068d780bc2ea437d35bp+4 : inexact-ok
+= sinh towardzero ibm128 0x5.07116p+0 : 0x4.c47d5d068d780bc2ea437d35aep+4 : inexact-ok
+= sinh upward ibm128 0x5.07116p+0 : 0x4.c47d5d068d780bc2ea437d35bp+4 : inexact-ok
+= sinh downward binary32 0x5.071158p+0 : 0x4.c47d3p+4 : inexact-ok
+= sinh tonearest binary32 0x5.071158p+0 : 0x4.c47d38p+4 : inexact-ok
+= sinh towardzero binary32 0x5.071158p+0 : 0x4.c47d3p+4 : inexact-ok
+= sinh upward binary32 0x5.071158p+0 : 0x4.c47d38p+4 : inexact-ok
+= sinh downward binary64 0x5.071158p+0 : 0x4.c47d36e1cc618p+4 : inexact-ok
+= sinh tonearest binary64 0x5.071158p+0 : 0x4.c47d36e1cc618p+4 : inexact-ok
+= sinh towardzero binary64 0x5.071158p+0 : 0x4.c47d36e1cc618p+4 : inexact-ok
+= sinh upward binary64 0x5.071158p+0 : 0x4.c47d36e1cc61cp+4 : inexact-ok
+= sinh downward intel96 0x5.071158p+0 : 0x4.c47d36e1cc6191d8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.071158p+0 : 0x4.c47d36e1cc6191d8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.071158p+0 : 0x4.c47d36e1cc6191d8p+4 : inexact-ok
+= sinh upward intel96 0x5.071158p+0 : 0x4.c47d36e1cc6191ep+4 : inexact-ok
+= sinh downward m68k96 0x5.071158p+0 : 0x4.c47d36e1cc6191d8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.071158p+0 : 0x4.c47d36e1cc6191d8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.071158p+0 : 0x4.c47d36e1cc6191d8p+4 : inexact-ok
+= sinh upward m68k96 0x5.071158p+0 : 0x4.c47d36e1cc6191ep+4 : inexact-ok
+= sinh downward binary128 0x5.071158p+0 : 0x4.c47d36e1cc6191da38ca3ab99d7cp+4 : inexact-ok
+= sinh tonearest binary128 0x5.071158p+0 : 0x4.c47d36e1cc6191da38ca3ab99d8p+4 : inexact-ok
+= sinh towardzero binary128 0x5.071158p+0 : 0x4.c47d36e1cc6191da38ca3ab99d7cp+4 : inexact-ok
+= sinh upward binary128 0x5.071158p+0 : 0x4.c47d36e1cc6191da38ca3ab99d8p+4 : inexact-ok
+= sinh downward ibm128 0x5.071158p+0 : 0x4.c47d36e1cc6191da38ca3ab99cp+4 : inexact-ok
+= sinh tonearest ibm128 0x5.071158p+0 : 0x4.c47d36e1cc6191da38ca3ab99ep+4 : inexact-ok
+= sinh towardzero ibm128 0x5.071158p+0 : 0x4.c47d36e1cc6191da38ca3ab99cp+4 : inexact-ok
+= sinh upward ibm128 0x5.071158p+0 : 0x4.c47d36e1cc6191da38ca3ab99ep+4 : inexact-ok
+= sinh downward binary64 0x5.071159d26821p+0 : 0x4.c47d3f9199b1p+4 : inexact-ok
+= sinh tonearest binary64 0x5.071159d26821p+0 : 0x4.c47d3f9199b14p+4 : inexact-ok
+= sinh towardzero binary64 0x5.071159d26821p+0 : 0x4.c47d3f9199b1p+4 : inexact-ok
+= sinh upward binary64 0x5.071159d26821p+0 : 0x4.c47d3f9199b14p+4 : inexact-ok
+= sinh downward intel96 0x5.071159d26821p+0 : 0x4.c47d3f9199b13ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.071159d26821p+0 : 0x4.c47d3f9199b14p+4 : inexact-ok
+= sinh towardzero intel96 0x5.071159d26821p+0 : 0x4.c47d3f9199b13ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.071159d26821p+0 : 0x4.c47d3f9199b14p+4 : inexact-ok
+= sinh downward m68k96 0x5.071159d26821p+0 : 0x4.c47d3f9199b13ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.071159d26821p+0 : 0x4.c47d3f9199b14p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.071159d26821p+0 : 0x4.c47d3f9199b13ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.071159d26821p+0 : 0x4.c47d3f9199b14p+4 : inexact-ok
+= sinh downward binary128 0x5.071159d26821p+0 : 0x4.c47d3f9199b13fffd52dadbced7cp+4 : inexact-ok
+= sinh tonearest binary128 0x5.071159d26821p+0 : 0x4.c47d3f9199b13fffd52dadbced7cp+4 : inexact-ok
+= sinh towardzero binary128 0x5.071159d26821p+0 : 0x4.c47d3f9199b13fffd52dadbced7cp+4 : inexact-ok
+= sinh upward binary128 0x5.071159d26821p+0 : 0x4.c47d3f9199b13fffd52dadbced8p+4 : inexact-ok
+= sinh downward ibm128 0x5.071159d26821p+0 : 0x4.c47d3f9199b13fffd52dadbcecp+4 : inexact-ok
+= sinh tonearest ibm128 0x5.071159d26821p+0 : 0x4.c47d3f9199b13fffd52dadbceep+4 : inexact-ok
+= sinh towardzero ibm128 0x5.071159d26821p+0 : 0x4.c47d3f9199b13fffd52dadbcecp+4 : inexact-ok
+= sinh upward ibm128 0x5.071159d26821p+0 : 0x4.c47d3f9199b13fffd52dadbceep+4 : inexact-ok
+sinh 0x1.41feabdae88c6p+2
+= sinh downward binary32 0x5.07fabp+0 : 0x4.c8d7cp+4 : inexact-ok
+= sinh tonearest binary32 0x5.07fabp+0 : 0x4.c8d7c8p+4 : inexact-ok
+= sinh towardzero binary32 0x5.07fabp+0 : 0x4.c8d7cp+4 : inexact-ok
+= sinh upward binary32 0x5.07fabp+0 : 0x4.c8d7c8p+4 : inexact-ok
+= sinh downward binary64 0x5.07fabp+0 : 0x4.c8d7c47917fa8p+4 : inexact-ok
+= sinh tonearest binary64 0x5.07fabp+0 : 0x4.c8d7c47917facp+4 : inexact-ok
+= sinh towardzero binary64 0x5.07fabp+0 : 0x4.c8d7c47917fa8p+4 : inexact-ok
+= sinh upward binary64 0x5.07fabp+0 : 0x4.c8d7c47917facp+4 : inexact-ok
+= sinh downward intel96 0x5.07fabp+0 : 0x4.c8d7c47917fab9dp+4 : inexact-ok
+= sinh tonearest intel96 0x5.07fabp+0 : 0x4.c8d7c47917fab9dp+4 : inexact-ok
+= sinh towardzero intel96 0x5.07fabp+0 : 0x4.c8d7c47917fab9dp+4 : inexact-ok
+= sinh upward intel96 0x5.07fabp+0 : 0x4.c8d7c47917fab9d8p+4 : inexact-ok
+= sinh downward m68k96 0x5.07fabp+0 : 0x4.c8d7c47917fab9dp+4 : inexact-ok
+= sinh tonearest m68k96 0x5.07fabp+0 : 0x4.c8d7c47917fab9dp+4 : inexact-ok
+= sinh towardzero m68k96 0x5.07fabp+0 : 0x4.c8d7c47917fab9dp+4 : inexact-ok
+= sinh upward m68k96 0x5.07fabp+0 : 0x4.c8d7c47917fab9d8p+4 : inexact-ok
+= sinh downward binary128 0x5.07fabp+0 : 0x4.c8d7c47917fab9d0a5eb6891a3fcp+4 : inexact-ok
+= sinh tonearest binary128 0x5.07fabp+0 : 0x4.c8d7c47917fab9d0a5eb6891a4p+4 : inexact-ok
+= sinh towardzero binary128 0x5.07fabp+0 : 0x4.c8d7c47917fab9d0a5eb6891a3fcp+4 : inexact-ok
+= sinh upward binary128 0x5.07fabp+0 : 0x4.c8d7c47917fab9d0a5eb6891a4p+4 : inexact-ok
+= sinh downward ibm128 0x5.07fabp+0 : 0x4.c8d7c47917fab9d0a5eb6891a2p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.07fabp+0 : 0x4.c8d7c47917fab9d0a5eb6891a4p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.07fabp+0 : 0x4.c8d7c47917fab9d0a5eb6891a2p+4 : inexact-ok
+= sinh upward ibm128 0x5.07fabp+0 : 0x4.c8d7c47917fab9d0a5eb6891a4p+4 : inexact-ok
+= sinh downward binary32 0x5.07faa8p+0 : 0x4.c8d798p+4 : inexact-ok
+= sinh tonearest binary32 0x5.07faa8p+0 : 0x4.c8d7ap+4 : inexact-ok
+= sinh towardzero binary32 0x5.07faa8p+0 : 0x4.c8d798p+4 : inexact-ok
+= sinh upward binary32 0x5.07faa8p+0 : 0x4.c8d7ap+4 : inexact-ok
+= sinh downward binary64 0x5.07faa8p+0 : 0x4.c8d79e31846c8p+4 : inexact-ok
+= sinh tonearest binary64 0x5.07faa8p+0 : 0x4.c8d79e31846c8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.07faa8p+0 : 0x4.c8d79e31846c8p+4 : inexact-ok
+= sinh upward binary64 0x5.07faa8p+0 : 0x4.c8d79e31846ccp+4 : inexact-ok
+= sinh downward intel96 0x5.07faa8p+0 : 0x4.c8d79e31846c9bd8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.07faa8p+0 : 0x4.c8d79e31846c9bep+4 : inexact-ok
+= sinh towardzero intel96 0x5.07faa8p+0 : 0x4.c8d79e31846c9bd8p+4 : inexact-ok
+= sinh upward intel96 0x5.07faa8p+0 : 0x4.c8d79e31846c9bep+4 : inexact-ok
+= sinh downward m68k96 0x5.07faa8p+0 : 0x4.c8d79e31846c9bd8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.07faa8p+0 : 0x4.c8d79e31846c9bep+4 : inexact-ok
+= sinh towardzero m68k96 0x5.07faa8p+0 : 0x4.c8d79e31846c9bd8p+4 : inexact-ok
+= sinh upward m68k96 0x5.07faa8p+0 : 0x4.c8d79e31846c9bep+4 : inexact-ok
+= sinh downward binary128 0x5.07faa8p+0 : 0x4.c8d79e31846c9bdf6afd71aa90b4p+4 : inexact-ok
+= sinh tonearest binary128 0x5.07faa8p+0 : 0x4.c8d79e31846c9bdf6afd71aa90b4p+4 : inexact-ok
+= sinh towardzero binary128 0x5.07faa8p+0 : 0x4.c8d79e31846c9bdf6afd71aa90b4p+4 : inexact-ok
+= sinh upward binary128 0x5.07faa8p+0 : 0x4.c8d79e31846c9bdf6afd71aa90b8p+4 : inexact-ok
+= sinh downward ibm128 0x5.07faa8p+0 : 0x4.c8d79e31846c9bdf6afd71aa9p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.07faa8p+0 : 0x4.c8d79e31846c9bdf6afd71aa9p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.07faa8p+0 : 0x4.c8d79e31846c9bdf6afd71aa9p+4 : inexact-ok
+= sinh upward ibm128 0x5.07faa8p+0 : 0x4.c8d79e31846c9bdf6afd71aa92p+4 : inexact-ok
+= sinh downward binary64 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea4p+4 : inexact-ok
+= sinh tonearest binary64 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea4p+4 : inexact-ok
+= sinh upward binary64 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea8p+4 : inexact-ok
+= sinh downward intel96 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea8p+4 : inexact-ok
+= sinh downward m68k96 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea8p+4 : inexact-ok
+= sinh downward binary128 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7fffceddc33c2e54p+4 : inexact-ok
+= sinh tonearest binary128 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7fffceddc33c2e54p+4 : inexact-ok
+= sinh towardzero binary128 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7fffceddc33c2e54p+4 : inexact-ok
+= sinh upward binary128 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7fffceddc33c2e58p+4 : inexact-ok
+= sinh downward ibm128 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7fffceddc33c2ep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7fffceddc33c2ep+4 : inexact-ok
+= sinh towardzero ibm128 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7fffceddc33c2ep+4 : inexact-ok
+= sinh upward ibm128 0x5.07faaf6ba2318p+0 : 0x4.c8d7c1b32aea7fffceddc33c3p+4 : inexact-ok
+sinh -0x1.41634f0c2ae4dp+2
+= sinh downward binary32 -0x5.058d38p+0 : -0x4.bd482p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.058d38p+0 : -0x4.bd482p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.058d38p+0 : -0x4.bd4818p+4 : inexact-ok
+= sinh upward binary32 -0x5.058d38p+0 : -0x4.bd4818p+4 : inexact-ok
+= sinh downward binary64 -0x5.058d38p+0 : -0x4.bd481fc83d2f8p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.058d38p+0 : -0x4.bd481fc83d2f4p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.058d38p+0 : -0x4.bd481fc83d2f4p+4 : inexact-ok
+= sinh upward binary64 -0x5.058d38p+0 : -0x4.bd481fc83d2f4p+4 : inexact-ok
+= sinh downward intel96 -0x5.058d38p+0 : -0x4.bd481fc83d2f5dap+4 : inexact-ok
+= sinh tonearest intel96 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d98p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d98p+4 : inexact-ok
+= sinh upward intel96 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d98p+4 : inexact-ok
+= sinh downward m68k96 -0x5.058d38p+0 : -0x4.bd481fc83d2f5dap+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d98p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d98p+4 : inexact-ok
+= sinh upward m68k96 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d98p+4 : inexact-ok
+= sinh downward binary128 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d9a69e70a51a2c8p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d9a69e70a51a2c8p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d9a69e70a51a2c4p+4 : inexact-ok
+= sinh upward binary128 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d9a69e70a51a2c4p+4 : inexact-ok
+= sinh downward ibm128 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d9a69e70a51a4p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d9a69e70a51a2p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d9a69e70a51a2p+4 : inexact-ok
+= sinh upward ibm128 -0x5.058d38p+0 : -0x4.bd481fc83d2f5d9a69e70a51a2p+4 : inexact-ok
+= sinh downward binary32 -0x5.058d4p+0 : -0x4.bd4848p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.058d4p+0 : -0x4.bd4848p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.058d4p+0 : -0x4.bd484p+4 : inexact-ok
+= sinh upward binary32 -0x5.058d4p+0 : -0x4.bd484p+4 : inexact-ok
+= sinh downward binary64 -0x5.058d4p+0 : -0x4.bd4845b356d2cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.058d4p+0 : -0x4.bd4845b356d2cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.058d4p+0 : -0x4.bd4845b356d28p+4 : inexact-ok
+= sinh upward binary64 -0x5.058d4p+0 : -0x4.bd4845b356d28p+4 : inexact-ok
+= sinh downward intel96 -0x5.058d4p+0 : -0x4.bd4845b356d2bcp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf8p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf8p+4 : inexact-ok
+= sinh upward intel96 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.058d4p+0 : -0x4.bd4845b356d2bcp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf8p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf8p+4 : inexact-ok
+= sinh downward binary128 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf97295ad3f426p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf97295ad3f425cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf97295ad3f425cp+4 : inexact-ok
+= sinh upward binary128 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf97295ad3f425cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf97295ad3f44p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf97295ad3f42p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf97295ad3f42p+4 : inexact-ok
+= sinh upward ibm128 -0x5.058d4p+0 : -0x4.bd4845b356d2bbf97295ad3f42p+4 : inexact-ok
+= sinh downward binary64 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b04p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b04p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479bp+4 : inexact-ok
+= sinh upward binary64 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479bp+4 : inexact-ok
+= sinh downward intel96 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b04p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b04p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03ff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03ff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b04p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b04p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03ff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03ff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03fffc566fa3510f8p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03fffc566fa3510f4p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03fffc566fa3510f4p+4 : inexact-ok
+= sinh upward binary128 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03fffc566fa3510f4p+4 : inexact-ok
+= sinh downward ibm128 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03fffc566fa3512p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03fffc566fa351p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03fffc566fa351p+4 : inexact-ok
+= sinh upward ibm128 -0x5.058d3c30ab934p+0 : -0x4.bd4833a479b03fffc566fa351p+4 : inexact-ok
+sinh -0x1.4104fac728038p+2
+= sinh downward binary32 -0x5.0413e8p+0 : -0x4.b650e8p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.0413e8p+0 : -0x4.b650ep+4 : inexact-ok
+= sinh towardzero binary32 -0x5.0413e8p+0 : -0x4.b650ep+4 : inexact-ok
+= sinh upward binary32 -0x5.0413e8p+0 : -0x4.b650ep+4 : inexact-ok
+= sinh downward binary64 -0x5.0413e8p+0 : -0x4.b650e0e6cf20cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.0413e8p+0 : -0x4.b650e0e6cf208p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.0413e8p+0 : -0x4.b650e0e6cf208p+4 : inexact-ok
+= sinh upward binary64 -0x5.0413e8p+0 : -0x4.b650e0e6cf208p+4 : inexact-ok
+= sinh downward intel96 -0x5.0413e8p+0 : -0x4.b650e0e6cf208738p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.0413e8p+0 : -0x4.b650e0e6cf208738p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.0413e8p+0 : -0x4.b650e0e6cf20873p+4 : inexact-ok
+= sinh upward intel96 -0x5.0413e8p+0 : -0x4.b650e0e6cf20873p+4 : inexact-ok
+= sinh downward m68k96 -0x5.0413e8p+0 : -0x4.b650e0e6cf208738p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.0413e8p+0 : -0x4.b650e0e6cf208738p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.0413e8p+0 : -0x4.b650e0e6cf20873p+4 : inexact-ok
+= sinh upward m68k96 -0x5.0413e8p+0 : -0x4.b650e0e6cf20873p+4 : inexact-ok
+= sinh downward binary128 -0x5.0413e8p+0 : -0x4.b650e0e6cf2087357fa568e4bb84p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.0413e8p+0 : -0x4.b650e0e6cf2087357fa568e4bb8p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.0413e8p+0 : -0x4.b650e0e6cf2087357fa568e4bb8p+4 : inexact-ok
+= sinh upward binary128 -0x5.0413e8p+0 : -0x4.b650e0e6cf2087357fa568e4bb8p+4 : inexact-ok
+= sinh downward ibm128 -0x5.0413e8p+0 : -0x4.b650e0e6cf2087357fa568e4bcp+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.0413e8p+0 : -0x4.b650e0e6cf2087357fa568e4bcp+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.0413e8p+0 : -0x4.b650e0e6cf2087357fa568e4bap+4 : inexact-ok
+= sinh upward ibm128 -0x5.0413e8p+0 : -0x4.b650e0e6cf2087357fa568e4bap+4 : inexact-ok
+= sinh downward binary32 -0x5.0413fp+0 : -0x4.b65108p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.0413fp+0 : -0x4.b65108p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.0413fp+0 : -0x4.b651p+4 : inexact-ok
+= sinh upward binary32 -0x5.0413fp+0 : -0x4.b651p+4 : inexact-ok
+= sinh downward binary64 -0x5.0413fp+0 : -0x4.b651069a300b8p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.0413fp+0 : -0x4.b651069a300b4p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.0413fp+0 : -0x4.b651069a300b4p+4 : inexact-ok
+= sinh upward binary64 -0x5.0413fp+0 : -0x4.b651069a300b4p+4 : inexact-ok
+= sinh downward intel96 -0x5.0413fp+0 : -0x4.b651069a300b55bp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.0413fp+0 : -0x4.b651069a300b55bp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.0413fp+0 : -0x4.b651069a300b55a8p+4 : inexact-ok
+= sinh upward intel96 -0x5.0413fp+0 : -0x4.b651069a300b55a8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.0413fp+0 : -0x4.b651069a300b55bp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.0413fp+0 : -0x4.b651069a300b55bp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.0413fp+0 : -0x4.b651069a300b55a8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.0413fp+0 : -0x4.b651069a300b55a8p+4 : inexact-ok
+= sinh downward binary128 -0x5.0413fp+0 : -0x4.b651069a300b55ad96151713b1f8p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.0413fp+0 : -0x4.b651069a300b55ad96151713b1f4p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.0413fp+0 : -0x4.b651069a300b55ad96151713b1f4p+4 : inexact-ok
+= sinh upward binary128 -0x5.0413fp+0 : -0x4.b651069a300b55ad96151713b1f4p+4 : inexact-ok
+= sinh downward ibm128 -0x5.0413fp+0 : -0x4.b651069a300b55ad96151713b2p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.0413fp+0 : -0x4.b651069a300b55ad96151713b2p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.0413fp+0 : -0x4.b651069a300b55ad96151713bp+4 : inexact-ok
+= sinh upward ibm128 -0x5.0413fp+0 : -0x4.b651069a300b55ad96151713bp+4 : inexact-ok
+= sinh downward binary64 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d8p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d8p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d4p+4 : inexact-ok
+= sinh upward binary64 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d4p+4 : inexact-ok
+= sinh downward intel96 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d8p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d8p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7ff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7ff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d8p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d8p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7ff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7ff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7fff5561f9163168p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7fff5561f9163168p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7fff5561f9163164p+4 : inexact-ok
+= sinh upward binary128 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7fff5561f9163164p+4 : inexact-ok
+= sinh downward ibm128 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7fff5561f91632p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7fff5561f91632p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7fff5561f9163p+4 : inexact-ok
+= sinh upward ibm128 -0x5.0413eb1ca00ep+0 : -0x4.b650ef90f96d7fff5561f9163p+4 : inexact-ok
+sinh -0x1.419af27adcfe8p+2
+= sinh downward binary32 -0x5.066bc8p+0 : -0x4.c168d8p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.066bc8p+0 : -0x4.c168dp+4 : inexact-ok
+= sinh towardzero binary32 -0x5.066bc8p+0 : -0x4.c168dp+4 : inexact-ok
+= sinh upward binary32 -0x5.066bc8p+0 : -0x4.c168dp+4 : inexact-ok
+= sinh downward binary64 -0x5.066bc8p+0 : -0x4.c168d150720a4p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.066bc8p+0 : -0x4.c168d150720ap+4 : inexact-ok
+= sinh towardzero binary64 -0x5.066bc8p+0 : -0x4.c168d150720ap+4 : inexact-ok
+= sinh upward binary64 -0x5.066bc8p+0 : -0x4.c168d150720ap+4 : inexact-ok
+= sinh downward intel96 -0x5.066bc8p+0 : -0x4.c168d150720a1aa8p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.066bc8p+0 : -0x4.c168d150720a1aap+4 : inexact-ok
+= sinh towardzero intel96 -0x5.066bc8p+0 : -0x4.c168d150720a1aap+4 : inexact-ok
+= sinh upward intel96 -0x5.066bc8p+0 : -0x4.c168d150720a1aap+4 : inexact-ok
+= sinh downward m68k96 -0x5.066bc8p+0 : -0x4.c168d150720a1aa8p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.066bc8p+0 : -0x4.c168d150720a1aap+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.066bc8p+0 : -0x4.c168d150720a1aap+4 : inexact-ok
+= sinh upward m68k96 -0x5.066bc8p+0 : -0x4.c168d150720a1aap+4 : inexact-ok
+= sinh downward binary128 -0x5.066bc8p+0 : -0x4.c168d150720a1aa00261623de764p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.066bc8p+0 : -0x4.c168d150720a1aa00261623de76p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.066bc8p+0 : -0x4.c168d150720a1aa00261623de76p+4 : inexact-ok
+= sinh upward binary128 -0x5.066bc8p+0 : -0x4.c168d150720a1aa00261623de76p+4 : inexact-ok
+= sinh downward ibm128 -0x5.066bc8p+0 : -0x4.c168d150720a1aa00261623de8p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.066bc8p+0 : -0x4.c168d150720a1aa00261623de8p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.066bc8p+0 : -0x4.c168d150720a1aa00261623de6p+4 : inexact-ok
+= sinh upward ibm128 -0x5.066bc8p+0 : -0x4.c168d150720a1aa00261623de6p+4 : inexact-ok
+= sinh downward binary32 -0x5.066bdp+0 : -0x4.c168f8p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.066bdp+0 : -0x4.c168f8p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.066bdp+0 : -0x4.c168fp+4 : inexact-ok
+= sinh upward binary32 -0x5.066bdp+0 : -0x4.c168fp+4 : inexact-ok
+= sinh downward binary64 -0x5.066bdp+0 : -0x4.c168f75c907ecp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.066bdp+0 : -0x4.c168f75c907ecp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.066bdp+0 : -0x4.c168f75c907e8p+4 : inexact-ok
+= sinh upward binary64 -0x5.066bdp+0 : -0x4.c168f75c907e8p+4 : inexact-ok
+= sinh downward intel96 -0x5.066bdp+0 : -0x4.c168f75c907ebb2p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.066bdp+0 : -0x4.c168f75c907ebb18p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.066bdp+0 : -0x4.c168f75c907ebb18p+4 : inexact-ok
+= sinh upward intel96 -0x5.066bdp+0 : -0x4.c168f75c907ebb18p+4 : inexact-ok
+= sinh downward m68k96 -0x5.066bdp+0 : -0x4.c168f75c907ebb2p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.066bdp+0 : -0x4.c168f75c907ebb18p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.066bdp+0 : -0x4.c168f75c907ebb18p+4 : inexact-ok
+= sinh upward m68k96 -0x5.066bdp+0 : -0x4.c168f75c907ebb18p+4 : inexact-ok
+= sinh downward binary128 -0x5.066bdp+0 : -0x4.c168f75c907ebb19079406206708p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.066bdp+0 : -0x4.c168f75c907ebb19079406206704p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.066bdp+0 : -0x4.c168f75c907ebb19079406206704p+4 : inexact-ok
+= sinh upward binary128 -0x5.066bdp+0 : -0x4.c168f75c907ebb19079406206704p+4 : inexact-ok
+= sinh downward ibm128 -0x5.066bdp+0 : -0x4.c168f75c907ebb190794062068p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.066bdp+0 : -0x4.c168f75c907ebb190794062068p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.066bdp+0 : -0x4.c168f75c907ebb190794062066p+4 : inexact-ok
+= sinh upward ibm128 -0x5.066bdp+0 : -0x4.c168f75c907ebb190794062066p+4 : inexact-ok
+= sinh downward binary64 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ecp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ecp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14e8p+4 : inexact-ok
+= sinh upward binary64 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14e8p+4 : inexact-ok
+= sinh downward intel96 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ecp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ecp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ecp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ecp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebffffbc7200ce1dp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebffffbc7200ce1dp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebffffbc7200ce1ccp+4 : inexact-ok
+= sinh upward binary128 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebffffbc7200ce1ccp+4 : inexact-ok
+= sinh downward ibm128 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebffffbc7200ce2p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebffffbc7200ce2p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebffffbc7200cep+4 : inexact-ok
+= sinh upward ibm128 -0x5.066bc9eb73fap+0 : -0x4.c168da71c14ebffffbc7200cep+4 : inexact-ok
+sinh -0x1.41265ff261702p+2
+= sinh downward binary32 -0x5.049978p+0 : -0x4.b8c6f8p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.049978p+0 : -0x4.b8c6fp+4 : inexact-ok
+= sinh towardzero binary32 -0x5.049978p+0 : -0x4.b8c6fp+4 : inexact-ok
+= sinh upward binary32 -0x5.049978p+0 : -0x4.b8c6fp+4 : inexact-ok
+= sinh downward binary64 -0x5.049978p+0 : -0x4.b8c6f1efaf3a4p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.049978p+0 : -0x4.b8c6f1efaf3a4p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.049978p+0 : -0x4.b8c6f1efaf3ap+4 : inexact-ok
+= sinh upward binary64 -0x5.049978p+0 : -0x4.b8c6f1efaf3ap+4 : inexact-ok
+= sinh downward intel96 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34dp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c8p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c8p+4 : inexact-ok
+= sinh upward intel96 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34dp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c8p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c8p+4 : inexact-ok
+= sinh downward binary128 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c88dc00e74f698p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c88dc00e74f698p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c88dc00e74f694p+4 : inexact-ok
+= sinh upward binary128 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c88dc00e74f694p+4 : inexact-ok
+= sinh downward ibm128 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c88dc00e74f8p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c88dc00e74f6p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c88dc00e74f6p+4 : inexact-ok
+= sinh upward ibm128 -0x5.049978p+0 : -0x4.b8c6f1efaf3a34c88dc00e74f6p+4 : inexact-ok
+= sinh downward binary32 -0x5.04998p+0 : -0x4.b8c718p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.04998p+0 : -0x4.b8c718p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.04998p+0 : -0x4.b8c71p+4 : inexact-ok
+= sinh upward binary32 -0x5.04998p+0 : -0x4.b8c71p+4 : inexact-ok
+= sinh downward binary64 -0x5.04998p+0 : -0x4.b8c717b6c03c8p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.04998p+0 : -0x4.b8c717b6c03c4p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.04998p+0 : -0x4.b8c717b6c03c4p+4 : inexact-ok
+= sinh upward binary64 -0x5.04998p+0 : -0x4.b8c717b6c03c4p+4 : inexact-ok
+= sinh downward intel96 -0x5.04998p+0 : -0x4.b8c717b6c03c577p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.04998p+0 : -0x4.b8c717b6c03c577p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.04998p+0 : -0x4.b8c717b6c03c5768p+4 : inexact-ok
+= sinh upward intel96 -0x5.04998p+0 : -0x4.b8c717b6c03c5768p+4 : inexact-ok
+= sinh downward m68k96 -0x5.04998p+0 : -0x4.b8c717b6c03c577p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.04998p+0 : -0x4.b8c717b6c03c577p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.04998p+0 : -0x4.b8c717b6c03c5768p+4 : inexact-ok
+= sinh upward m68k96 -0x5.04998p+0 : -0x4.b8c717b6c03c5768p+4 : inexact-ok
+= sinh downward binary128 -0x5.04998p+0 : -0x4.b8c717b6c03c576f5ec095387d8p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.04998p+0 : -0x4.b8c717b6c03c576f5ec095387d7cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.04998p+0 : -0x4.b8c717b6c03c576f5ec095387d7cp+4 : inexact-ok
+= sinh upward binary128 -0x5.04998p+0 : -0x4.b8c717b6c03c576f5ec095387d7cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.04998p+0 : -0x4.b8c717b6c03c576f5ec095387ep+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.04998p+0 : -0x4.b8c717b6c03c576f5ec095387ep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.04998p+0 : -0x4.b8c717b6c03c576f5ec095387cp+4 : inexact-ok
+= sinh upward ibm128 -0x5.04998p+0 : -0x4.b8c717b6c03c576f5ec095387cp+4 : inexact-ok
+= sinh downward binary64 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3ep+4 : inexact-ok
+= sinh tonearest binary64 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3ep+4 : inexact-ok
+= sinh towardzero binary64 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dcp+4 : inexact-ok
+= sinh upward binary64 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dcp+4 : inexact-ok
+= sinh downward intel96 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3ep+4 : inexact-ok
+= sinh tonearest intel96 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3ep+4 : inexact-ok
+= sinh towardzero intel96 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dfff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dfff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3ep+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3ep+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dfff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dfff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dffffb54e280bdee8p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dffffb54e280bdee8p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dffffb54e280bdee4p+4 : inexact-ok
+= sinh upward binary128 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dffffb54e280bdee4p+4 : inexact-ok
+= sinh downward ibm128 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dffffb54e280bep+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dffffb54e280bdep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dffffb54e280bdep+4 : inexact-ok
+= sinh upward ibm128 -0x5.04997fc985c08p+0 : -0x4.b8c716b57f3dffffb54e280bdep+4 : inexact-ok
+sinh 0x1.424c64d09a2d4p+2
+= sinh downward binary32 0x5.093198p+0 : 0x4.ceaaf8p+4 : inexact-ok
+= sinh tonearest binary32 0x5.093198p+0 : 0x4.ceaaf8p+4 : inexact-ok
+= sinh towardzero binary32 0x5.093198p+0 : 0x4.ceaaf8p+4 : inexact-ok
+= sinh upward binary32 0x5.093198p+0 : 0x4.ceabp+4 : inexact-ok
+= sinh downward binary64 0x5.093198p+0 : 0x4.ceaaf8fb5681cp+4 : inexact-ok
+= sinh tonearest binary64 0x5.093198p+0 : 0x4.ceaaf8fb5681cp+4 : inexact-ok
+= sinh towardzero binary64 0x5.093198p+0 : 0x4.ceaaf8fb5681cp+4 : inexact-ok
+= sinh upward binary64 0x5.093198p+0 : 0x4.ceaaf8fb5682p+4 : inexact-ok
+= sinh downward intel96 0x5.093198p+0 : 0x4.ceaaf8fb5681d0ap+4 : inexact-ok
+= sinh tonearest intel96 0x5.093198p+0 : 0x4.ceaaf8fb5681d0ap+4 : inexact-ok
+= sinh towardzero intel96 0x5.093198p+0 : 0x4.ceaaf8fb5681d0ap+4 : inexact-ok
+= sinh upward intel96 0x5.093198p+0 : 0x4.ceaaf8fb5681d0a8p+4 : inexact-ok
+= sinh downward m68k96 0x5.093198p+0 : 0x4.ceaaf8fb5681d0ap+4 : inexact-ok
+= sinh tonearest m68k96 0x5.093198p+0 : 0x4.ceaaf8fb5681d0ap+4 : inexact-ok
+= sinh towardzero m68k96 0x5.093198p+0 : 0x4.ceaaf8fb5681d0ap+4 : inexact-ok
+= sinh upward m68k96 0x5.093198p+0 : 0x4.ceaaf8fb5681d0a8p+4 : inexact-ok
+= sinh downward binary128 0x5.093198p+0 : 0x4.ceaaf8fb5681d0a0b6fd31e40d08p+4 : inexact-ok
+= sinh tonearest binary128 0x5.093198p+0 : 0x4.ceaaf8fb5681d0a0b6fd31e40d0cp+4 : inexact-ok
+= sinh towardzero binary128 0x5.093198p+0 : 0x4.ceaaf8fb5681d0a0b6fd31e40d08p+4 : inexact-ok
+= sinh upward binary128 0x5.093198p+0 : 0x4.ceaaf8fb5681d0a0b6fd31e40d0cp+4 : inexact-ok
+= sinh downward ibm128 0x5.093198p+0 : 0x4.ceaaf8fb5681d0a0b6fd31e40cp+4 : inexact-ok
+= sinh tonearest ibm128 0x5.093198p+0 : 0x4.ceaaf8fb5681d0a0b6fd31e40ep+4 : inexact-ok
+= sinh towardzero ibm128 0x5.093198p+0 : 0x4.ceaaf8fb5681d0a0b6fd31e40cp+4 : inexact-ok
+= sinh upward ibm128 0x5.093198p+0 : 0x4.ceaaf8fb5681d0a0b6fd31e40ep+4 : inexact-ok
+= sinh downward binary32 0x5.09319p+0 : 0x4.ceaadp+4 : inexact-ok
+= sinh tonearest binary32 0x5.09319p+0 : 0x4.ceaadp+4 : inexact-ok
+= sinh towardzero binary32 0x5.09319p+0 : 0x4.ceaadp+4 : inexact-ok
+= sinh upward binary32 0x5.09319p+0 : 0x4.ceaad8p+4 : inexact-ok
+= sinh downward binary64 0x5.09319p+0 : 0x4.ceaad2852a538p+4 : inexact-ok
+= sinh tonearest binary64 0x5.09319p+0 : 0x4.ceaad2852a53cp+4 : inexact-ok
+= sinh towardzero binary64 0x5.09319p+0 : 0x4.ceaad2852a538p+4 : inexact-ok
+= sinh upward binary64 0x5.09319p+0 : 0x4.ceaad2852a53cp+4 : inexact-ok
+= sinh downward intel96 0x5.09319p+0 : 0x4.ceaad2852a53a7a8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.09319p+0 : 0x4.ceaad2852a53a7a8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.09319p+0 : 0x4.ceaad2852a53a7a8p+4 : inexact-ok
+= sinh upward intel96 0x5.09319p+0 : 0x4.ceaad2852a53a7bp+4 : inexact-ok
+= sinh downward m68k96 0x5.09319p+0 : 0x4.ceaad2852a53a7a8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.09319p+0 : 0x4.ceaad2852a53a7a8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.09319p+0 : 0x4.ceaad2852a53a7a8p+4 : inexact-ok
+= sinh upward m68k96 0x5.09319p+0 : 0x4.ceaad2852a53a7bp+4 : inexact-ok
+= sinh downward binary128 0x5.09319p+0 : 0x4.ceaad2852a53a7aa0c03d62b3078p+4 : inexact-ok
+= sinh tonearest binary128 0x5.09319p+0 : 0x4.ceaad2852a53a7aa0c03d62b3078p+4 : inexact-ok
+= sinh towardzero binary128 0x5.09319p+0 : 0x4.ceaad2852a53a7aa0c03d62b3078p+4 : inexact-ok
+= sinh upward binary128 0x5.09319p+0 : 0x4.ceaad2852a53a7aa0c03d62b307cp+4 : inexact-ok
+= sinh downward ibm128 0x5.09319p+0 : 0x4.ceaad2852a53a7aa0c03d62b3p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.09319p+0 : 0x4.ceaad2852a53a7aa0c03d62b3p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.09319p+0 : 0x4.ceaad2852a53a7aa0c03d62b3p+4 : inexact-ok
+= sinh upward ibm128 0x5.09319p+0 : 0x4.ceaad2852a53a7aa0c03d62b32p+4 : inexact-ok
+= sinh downward binary64 0x5.0931934268b5p+0 : 0x4.ceaae230c1128p+4 : inexact-ok
+= sinh tonearest binary64 0x5.0931934268b5p+0 : 0x4.ceaae230c112cp+4 : inexact-ok
+= sinh towardzero binary64 0x5.0931934268b5p+0 : 0x4.ceaae230c1128p+4 : inexact-ok
+= sinh upward binary64 0x5.0931934268b5p+0 : 0x4.ceaae230c112cp+4 : inexact-ok
+= sinh downward intel96 0x5.0931934268b5p+0 : 0x4.ceaae230c112bff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.0931934268b5p+0 : 0x4.ceaae230c112cp+4 : inexact-ok
+= sinh towardzero intel96 0x5.0931934268b5p+0 : 0x4.ceaae230c112bff8p+4 : inexact-ok
+= sinh upward intel96 0x5.0931934268b5p+0 : 0x4.ceaae230c112cp+4 : inexact-ok
+= sinh downward m68k96 0x5.0931934268b5p+0 : 0x4.ceaae230c112bff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.0931934268b5p+0 : 0x4.ceaae230c112cp+4 : inexact-ok
+= sinh towardzero m68k96 0x5.0931934268b5p+0 : 0x4.ceaae230c112bff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.0931934268b5p+0 : 0x4.ceaae230c112cp+4 : inexact-ok
+= sinh downward binary128 0x5.0931934268b5p+0 : 0x4.ceaae230c112bfff81cc71085f8cp+4 : inexact-ok
+= sinh tonearest binary128 0x5.0931934268b5p+0 : 0x4.ceaae230c112bfff81cc71085f8cp+4 : inexact-ok
+= sinh towardzero binary128 0x5.0931934268b5p+0 : 0x4.ceaae230c112bfff81cc71085f8cp+4 : inexact-ok
+= sinh upward binary128 0x5.0931934268b5p+0 : 0x4.ceaae230c112bfff81cc71085f9p+4 : inexact-ok
+= sinh downward ibm128 0x5.0931934268b5p+0 : 0x4.ceaae230c112bfff81cc71085ep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.0931934268b5p+0 : 0x4.ceaae230c112bfff81cc71086p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.0931934268b5p+0 : 0x4.ceaae230c112bfff81cc71085ep+4 : inexact-ok
+= sinh upward ibm128 0x5.0931934268b5p+0 : 0x4.ceaae230c112bfff81cc71086p+4 : inexact-ok
+sinh 0x1.409364da45b54p+2
+= sinh downward binary32 0x5.024d98p+0 : 0x4.adfb48p+4 : inexact-ok
+= sinh tonearest binary32 0x5.024d98p+0 : 0x4.adfb48p+4 : inexact-ok
+= sinh towardzero binary32 0x5.024d98p+0 : 0x4.adfb48p+4 : inexact-ok
+= sinh upward binary32 0x5.024d98p+0 : 0x4.adfb5p+4 : inexact-ok
+= sinh downward binary64 0x5.024d98p+0 : 0x4.adfb4b804f1f4p+4 : inexact-ok
+= sinh tonearest binary64 0x5.024d98p+0 : 0x4.adfb4b804f1f8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.024d98p+0 : 0x4.adfb4b804f1f4p+4 : inexact-ok
+= sinh upward binary64 0x5.024d98p+0 : 0x4.adfb4b804f1f8p+4 : inexact-ok
+= sinh downward intel96 0x5.024d98p+0 : 0x4.adfb4b804f1f6b48p+4 : inexact-ok
+= sinh tonearest intel96 0x5.024d98p+0 : 0x4.adfb4b804f1f6b5p+4 : inexact-ok
+= sinh towardzero intel96 0x5.024d98p+0 : 0x4.adfb4b804f1f6b48p+4 : inexact-ok
+= sinh upward intel96 0x5.024d98p+0 : 0x4.adfb4b804f1f6b5p+4 : inexact-ok
+= sinh downward m68k96 0x5.024d98p+0 : 0x4.adfb4b804f1f6b48p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.024d98p+0 : 0x4.adfb4b804f1f6b5p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.024d98p+0 : 0x4.adfb4b804f1f6b48p+4 : inexact-ok
+= sinh upward m68k96 0x5.024d98p+0 : 0x4.adfb4b804f1f6b5p+4 : inexact-ok
+= sinh downward binary128 0x5.024d98p+0 : 0x4.adfb4b804f1f6b4f3e13a7988e04p+4 : inexact-ok
+= sinh tonearest binary128 0x5.024d98p+0 : 0x4.adfb4b804f1f6b4f3e13a7988e04p+4 : inexact-ok
+= sinh towardzero binary128 0x5.024d98p+0 : 0x4.adfb4b804f1f6b4f3e13a7988e04p+4 : inexact-ok
+= sinh upward binary128 0x5.024d98p+0 : 0x4.adfb4b804f1f6b4f3e13a7988e08p+4 : inexact-ok
+= sinh downward ibm128 0x5.024d98p+0 : 0x4.adfb4b804f1f6b4f3e13a7988ep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.024d98p+0 : 0x4.adfb4b804f1f6b4f3e13a7988ep+4 : inexact-ok
+= sinh towardzero ibm128 0x5.024d98p+0 : 0x4.adfb4b804f1f6b4f3e13a7988ep+4 : inexact-ok
+= sinh upward ibm128 0x5.024d98p+0 : 0x4.adfb4b804f1f6b4f3e13a7989p+4 : inexact-ok
+= sinh downward binary32 0x5.024d9p+0 : 0x4.adfb2p+4 : inexact-ok
+= sinh tonearest binary32 0x5.024d9p+0 : 0x4.adfb28p+4 : inexact-ok
+= sinh towardzero binary32 0x5.024d9p+0 : 0x4.adfb2p+4 : inexact-ok
+= sinh upward binary32 0x5.024d9p+0 : 0x4.adfb28p+4 : inexact-ok
+= sinh downward binary64 0x5.024d9p+0 : 0x4.adfb260f9a894p+4 : inexact-ok
+= sinh tonearest binary64 0x5.024d9p+0 : 0x4.adfb260f9a898p+4 : inexact-ok
+= sinh towardzero binary64 0x5.024d9p+0 : 0x4.adfb260f9a894p+4 : inexact-ok
+= sinh upward binary64 0x5.024d9p+0 : 0x4.adfb260f9a898p+4 : inexact-ok
+= sinh downward intel96 0x5.024d9p+0 : 0x4.adfb260f9a89614p+4 : inexact-ok
+= sinh tonearest intel96 0x5.024d9p+0 : 0x4.adfb260f9a896148p+4 : inexact-ok
+= sinh towardzero intel96 0x5.024d9p+0 : 0x4.adfb260f9a89614p+4 : inexact-ok
+= sinh upward intel96 0x5.024d9p+0 : 0x4.adfb260f9a896148p+4 : inexact-ok
+= sinh downward m68k96 0x5.024d9p+0 : 0x4.adfb260f9a89614p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.024d9p+0 : 0x4.adfb260f9a896148p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.024d9p+0 : 0x4.adfb260f9a89614p+4 : inexact-ok
+= sinh upward m68k96 0x5.024d9p+0 : 0x4.adfb260f9a896148p+4 : inexact-ok
+= sinh downward binary128 0x5.024d9p+0 : 0x4.adfb260f9a896145db9eebf3e8acp+4 : inexact-ok
+= sinh tonearest binary128 0x5.024d9p+0 : 0x4.adfb260f9a896145db9eebf3e8acp+4 : inexact-ok
+= sinh towardzero binary128 0x5.024d9p+0 : 0x4.adfb260f9a896145db9eebf3e8acp+4 : inexact-ok
+= sinh upward binary128 0x5.024d9p+0 : 0x4.adfb260f9a896145db9eebf3e8bp+4 : inexact-ok
+= sinh downward ibm128 0x5.024d9p+0 : 0x4.adfb260f9a896145db9eebf3e8p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.024d9p+0 : 0x4.adfb260f9a896145db9eebf3e8p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.024d9p+0 : 0x4.adfb260f9a896145db9eebf3e8p+4 : inexact-ok
+= sinh upward ibm128 0x5.024d9p+0 : 0x4.adfb260f9a896145db9eebf3eap+4 : inexact-ok
+= sinh downward binary64 0x5.024d936916d5p+0 : 0x4.adfb3605b039cp+4 : inexact-ok
+= sinh tonearest binary64 0x5.024d936916d5p+0 : 0x4.adfb3605b03ap+4 : inexact-ok
+= sinh towardzero binary64 0x5.024d936916d5p+0 : 0x4.adfb3605b039cp+4 : inexact-ok
+= sinh upward binary64 0x5.024d936916d5p+0 : 0x4.adfb3605b03ap+4 : inexact-ok
+= sinh downward intel96 0x5.024d936916d5p+0 : 0x4.adfb3605b039fff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.024d936916d5p+0 : 0x4.adfb3605b03ap+4 : inexact-ok
+= sinh towardzero intel96 0x5.024d936916d5p+0 : 0x4.adfb3605b039fff8p+4 : inexact-ok
+= sinh upward intel96 0x5.024d936916d5p+0 : 0x4.adfb3605b03ap+4 : inexact-ok
+= sinh downward m68k96 0x5.024d936916d5p+0 : 0x4.adfb3605b039fff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.024d936916d5p+0 : 0x4.adfb3605b03ap+4 : inexact-ok
+= sinh towardzero m68k96 0x5.024d936916d5p+0 : 0x4.adfb3605b039fff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.024d936916d5p+0 : 0x4.adfb3605b03ap+4 : inexact-ok
+= sinh downward binary128 0x5.024d936916d5p+0 : 0x4.adfb3605b039ffff046c3de07328p+4 : inexact-ok
+= sinh tonearest binary128 0x5.024d936916d5p+0 : 0x4.adfb3605b039ffff046c3de07328p+4 : inexact-ok
+= sinh towardzero binary128 0x5.024d936916d5p+0 : 0x4.adfb3605b039ffff046c3de07328p+4 : inexact-ok
+= sinh upward binary128 0x5.024d936916d5p+0 : 0x4.adfb3605b039ffff046c3de0732cp+4 : inexact-ok
+= sinh downward ibm128 0x5.024d936916d5p+0 : 0x4.adfb3605b039ffff046c3de072p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.024d936916d5p+0 : 0x4.adfb3605b039ffff046c3de074p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.024d936916d5p+0 : 0x4.adfb3605b039ffff046c3de072p+4 : inexact-ok
+= sinh upward ibm128 0x5.024d936916d5p+0 : 0x4.adfb3605b039ffff046c3de074p+4 : inexact-ok
+sinh -0x1.409359e03b8fap+2
+= sinh downward binary32 -0x5.024d6p+0 : -0x4.adfa48p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.024d6p+0 : -0x4.adfa48p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.024d6p+0 : -0x4.adfa4p+4 : inexact-ok
+= sinh upward binary32 -0x5.024d6p+0 : -0x4.adfa4p+4 : inexact-ok
+= sinh downward binary64 -0x5.024d6p+0 : -0x4.adfa456b7796cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.024d6p+0 : -0x4.adfa456b77968p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.024d6p+0 : -0x4.adfa456b77968p+4 : inexact-ok
+= sinh upward binary64 -0x5.024d6p+0 : -0x4.adfa456b77968p+4 : inexact-ok
+= sinh downward intel96 -0x5.024d6p+0 : -0x4.adfa456b77968a5p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.024d6p+0 : -0x4.adfa456b77968a5p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.024d6p+0 : -0x4.adfa456b77968a48p+4 : inexact-ok
+= sinh upward intel96 -0x5.024d6p+0 : -0x4.adfa456b77968a48p+4 : inexact-ok
+= sinh downward m68k96 -0x5.024d6p+0 : -0x4.adfa456b77968a5p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.024d6p+0 : -0x4.adfa456b77968a5p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.024d6p+0 : -0x4.adfa456b77968a48p+4 : inexact-ok
+= sinh upward m68k96 -0x5.024d6p+0 : -0x4.adfa456b77968a48p+4 : inexact-ok
+= sinh downward binary128 -0x5.024d6p+0 : -0x4.adfa456b77968a4dc4b6b2b09a18p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.024d6p+0 : -0x4.adfa456b77968a4dc4b6b2b09a18p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.024d6p+0 : -0x4.adfa456b77968a4dc4b6b2b09a14p+4 : inexact-ok
+= sinh upward binary128 -0x5.024d6p+0 : -0x4.adfa456b77968a4dc4b6b2b09a14p+4 : inexact-ok
+= sinh downward ibm128 -0x5.024d6p+0 : -0x4.adfa456b77968a4dc4b6b2b09cp+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.024d6p+0 : -0x4.adfa456b77968a4dc4b6b2b09ap+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.024d6p+0 : -0x4.adfa456b77968a4dc4b6b2b09ap+4 : inexact-ok
+= sinh upward ibm128 -0x5.024d6p+0 : -0x4.adfa456b77968a4dc4b6b2b09ap+4 : inexact-ok
+= sinh downward binary32 -0x5.024d68p+0 : -0x4.adfa7p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.024d68p+0 : -0x4.adfa68p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.024d68p+0 : -0x4.adfa68p+4 : inexact-ok
+= sinh upward binary32 -0x5.024d68p+0 : -0x4.adfa68p+4 : inexact-ok
+= sinh downward binary64 -0x5.024d68p+0 : -0x4.adfa6adc2527cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.024d68p+0 : -0x4.adfa6adc25278p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.024d68p+0 : -0x4.adfa6adc25278p+4 : inexact-ok
+= sinh upward binary64 -0x5.024d68p+0 : -0x4.adfa6adc25278p+4 : inexact-ok
+= sinh downward intel96 -0x5.024d68p+0 : -0x4.adfa6adc25279c3p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.024d68p+0 : -0x4.adfa6adc25279c28p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.024d68p+0 : -0x4.adfa6adc25279c28p+4 : inexact-ok
+= sinh upward intel96 -0x5.024d68p+0 : -0x4.adfa6adc25279c28p+4 : inexact-ok
+= sinh downward m68k96 -0x5.024d68p+0 : -0x4.adfa6adc25279c3p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.024d68p+0 : -0x4.adfa6adc25279c28p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.024d68p+0 : -0x4.adfa6adc25279c28p+4 : inexact-ok
+= sinh upward m68k96 -0x5.024d68p+0 : -0x4.adfa6adc25279c28p+4 : inexact-ok
+= sinh downward binary128 -0x5.024d68p+0 : -0x4.adfa6adc25279c2a765e70e41238p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.024d68p+0 : -0x4.adfa6adc25279c2a765e70e41238p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.024d68p+0 : -0x4.adfa6adc25279c2a765e70e41234p+4 : inexact-ok
+= sinh upward binary128 -0x5.024d68p+0 : -0x4.adfa6adc25279c2a765e70e41234p+4 : inexact-ok
+= sinh downward ibm128 -0x5.024d68p+0 : -0x4.adfa6adc25279c2a765e70e414p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.024d68p+0 : -0x4.adfa6adc25279c2a765e70e412p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.024d68p+0 : -0x4.adfa6adc25279c2a765e70e412p+4 : inexact-ok
+= sinh upward ibm128 -0x5.024d68p+0 : -0x4.adfa6adc25279c2a765e70e412p+4 : inexact-ok
+= sinh downward binary64 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975428p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975428p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975424p+4 : inexact-ok
+= sinh upward binary64 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975424p+4 : inexact-ok
+= sinh downward intel96 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975428p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975428p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427ff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427ff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975428p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975428p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427ff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427ff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427fff2e9e79af8e2cp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427fff2e9e79af8e28p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427fff2e9e79af8e28p+4 : inexact-ok
+= sinh upward binary128 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427fff2e9e79af8e28p+4 : inexact-ok
+= sinh downward ibm128 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427fff2e9e79af9p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427fff2e9e79af8ep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427fff2e9e79af8ep+4 : inexact-ok
+= sinh upward ibm128 -0x5.024d6780ee3e8p+0 : -0x4.adfa688975427fff2e9e79af8ep+4 : inexact-ok
+sinh 0x1.4000685a224bcp+2
+= sinh downward binary32 0x5.0001a8p+0 : 0x4.a34808p+4 : inexact-ok
+= sinh tonearest binary32 0x5.0001a8p+0 : 0x4.a34808p+4 : inexact-ok
+= sinh towardzero binary32 0x5.0001a8p+0 : 0x4.a34808p+4 : inexact-ok
+= sinh upward binary32 0x5.0001a8p+0 : 0x4.a3481p+4 : inexact-ok
+= sinh downward binary64 0x5.0001a8p+0 : 0x4.a3480852c3bb8p+4 : inexact-ok
+= sinh tonearest binary64 0x5.0001a8p+0 : 0x4.a3480852c3bb8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.0001a8p+0 : 0x4.a3480852c3bb8p+4 : inexact-ok
+= sinh upward binary64 0x5.0001a8p+0 : 0x4.a3480852c3bbcp+4 : inexact-ok
+= sinh downward intel96 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3p+4 : inexact-ok
+= sinh tonearest intel96 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3p+4 : inexact-ok
+= sinh towardzero intel96 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3p+4 : inexact-ok
+= sinh upward intel96 0x5.0001a8p+0 : 0x4.a3480852c3bb9f38p+4 : inexact-ok
+= sinh downward m68k96 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3p+4 : inexact-ok
+= sinh upward m68k96 0x5.0001a8p+0 : 0x4.a3480852c3bb9f38p+4 : inexact-ok
+= sinh downward binary128 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3276b1ddc5ce34p+4 : inexact-ok
+= sinh tonearest binary128 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3276b1ddc5ce34p+4 : inexact-ok
+= sinh towardzero binary128 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3276b1ddc5ce34p+4 : inexact-ok
+= sinh upward binary128 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3276b1ddc5ce38p+4 : inexact-ok
+= sinh downward ibm128 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3276b1ddc5cep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3276b1ddc5cep+4 : inexact-ok
+= sinh towardzero ibm128 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3276b1ddc5cep+4 : inexact-ok
+= sinh upward ibm128 0x5.0001a8p+0 : 0x4.a3480852c3bb9f3276b1ddc5dp+4 : inexact-ok
+= sinh downward binary32 0x5.0001ap+0 : 0x4.a347ep+4 : inexact-ok
+= sinh tonearest binary32 0x5.0001ap+0 : 0x4.a347ep+4 : inexact-ok
+= sinh towardzero binary32 0x5.0001ap+0 : 0x4.a347ep+4 : inexact-ok
+= sinh upward binary32 0x5.0001ap+0 : 0x4.a347e8p+4 : inexact-ok
+= sinh downward binary64 0x5.0001ap+0 : 0x4.a347e337a744cp+4 : inexact-ok
+= sinh tonearest binary64 0x5.0001ap+0 : 0x4.a347e337a745p+4 : inexact-ok
+= sinh towardzero binary64 0x5.0001ap+0 : 0x4.a347e337a744cp+4 : inexact-ok
+= sinh upward binary64 0x5.0001ap+0 : 0x4.a347e337a745p+4 : inexact-ok
+= sinh downward intel96 0x5.0001ap+0 : 0x4.a347e337a744e0cp+4 : inexact-ok
+= sinh tonearest intel96 0x5.0001ap+0 : 0x4.a347e337a744e0cp+4 : inexact-ok
+= sinh towardzero intel96 0x5.0001ap+0 : 0x4.a347e337a744e0cp+4 : inexact-ok
+= sinh upward intel96 0x5.0001ap+0 : 0x4.a347e337a744e0c8p+4 : inexact-ok
+= sinh downward m68k96 0x5.0001ap+0 : 0x4.a347e337a744e0cp+4 : inexact-ok
+= sinh tonearest m68k96 0x5.0001ap+0 : 0x4.a347e337a744e0cp+4 : inexact-ok
+= sinh towardzero m68k96 0x5.0001ap+0 : 0x4.a347e337a744e0cp+4 : inexact-ok
+= sinh upward m68k96 0x5.0001ap+0 : 0x4.a347e337a744e0c8p+4 : inexact-ok
+= sinh downward binary128 0x5.0001ap+0 : 0x4.a347e337a744e0c10d2dfd22abfcp+4 : inexact-ok
+= sinh tonearest binary128 0x5.0001ap+0 : 0x4.a347e337a744e0c10d2dfd22abfcp+4 : inexact-ok
+= sinh towardzero binary128 0x5.0001ap+0 : 0x4.a347e337a744e0c10d2dfd22abfcp+4 : inexact-ok
+= sinh upward binary128 0x5.0001ap+0 : 0x4.a347e337a744e0c10d2dfd22acp+4 : inexact-ok
+= sinh downward ibm128 0x5.0001ap+0 : 0x4.a347e337a744e0c10d2dfd22aap+4 : inexact-ok
+= sinh tonearest ibm128 0x5.0001ap+0 : 0x4.a347e337a744e0c10d2dfd22acp+4 : inexact-ok
+= sinh towardzero ibm128 0x5.0001ap+0 : 0x4.a347e337a744e0c10d2dfd22aap+4 : inexact-ok
+= sinh upward ibm128 0x5.0001ap+0 : 0x4.a347e337a744e0c10d2dfd22acp+4 : inexact-ok
+= sinh downward binary64 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a4p+4 : inexact-ok
+= sinh tonearest binary64 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a4p+4 : inexact-ok
+= sinh upward binary64 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a8p+4 : inexact-ok
+= sinh downward intel96 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a8p+4 : inexact-ok
+= sinh downward m68k96 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a8p+4 : inexact-ok
+= sinh downward binary128 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ffff6e293b2826p+4 : inexact-ok
+= sinh tonearest binary128 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ffff6e293b28264p+4 : inexact-ok
+= sinh towardzero binary128 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ffff6e293b2826p+4 : inexact-ok
+= sinh upward binary128 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ffff6e293b28264p+4 : inexact-ok
+= sinh downward ibm128 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ffff6e293b282p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ffff6e293b282p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ffff6e293b282p+4 : inexact-ok
+= sinh upward ibm128 0x5.0001a168892fp+0 : 0x4.a347e9bfe77a7ffff6e293b284p+4 : inexact-ok
+sinh -0x1.49d5d039e0535p+2
+= sinh downward binary32 -0x5.27574p+0 : -0x5.687c18p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.27574p+0 : -0x5.687c1p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.27574p+0 : -0x5.687c1p+4 : inexact-ok
+= sinh upward binary32 -0x5.27574p+0 : -0x5.687c1p+4 : inexact-ok
+= sinh downward binary64 -0x5.27574p+0 : -0x5.687c100a7512p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.27574p+0 : -0x5.687c100a7512p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.27574p+0 : -0x5.687c100a7511cp+4 : inexact-ok
+= sinh upward binary64 -0x5.27574p+0 : -0x5.687c100a7511cp+4 : inexact-ok
+= sinh downward intel96 -0x5.27574p+0 : -0x5.687c100a7511efd8p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.27574p+0 : -0x5.687c100a7511efd8p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.27574p+0 : -0x5.687c100a7511efdp+4 : inexact-ok
+= sinh upward intel96 -0x5.27574p+0 : -0x5.687c100a7511efdp+4 : inexact-ok
+= sinh downward m68k96 -0x5.27574p+0 : -0x5.687c100a7511efd8p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.27574p+0 : -0x5.687c100a7511efd8p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.27574p+0 : -0x5.687c100a7511efdp+4 : inexact-ok
+= sinh upward m68k96 -0x5.27574p+0 : -0x5.687c100a7511efdp+4 : inexact-ok
+= sinh downward binary128 -0x5.27574p+0 : -0x5.687c100a7511efd562c4f07f9fecp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.27574p+0 : -0x5.687c100a7511efd562c4f07f9fecp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.27574p+0 : -0x5.687c100a7511efd562c4f07f9fe8p+4 : inexact-ok
+= sinh upward binary128 -0x5.27574p+0 : -0x5.687c100a7511efd562c4f07f9fe8p+4 : inexact-ok
+= sinh downward ibm128 -0x5.27574p+0 : -0x5.687c100a7511efd562c4f07fap+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.27574p+0 : -0x5.687c100a7511efd562c4f07fap+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.27574p+0 : -0x5.687c100a7511efd562c4f07f9ep+4 : inexact-ok
+= sinh upward ibm128 -0x5.27574p+0 : -0x5.687c100a7511efd562c4f07f9ep+4 : inexact-ok
+= sinh downward binary32 -0x5.275748p+0 : -0x5.687c4p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.275748p+0 : -0x5.687c38p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.275748p+0 : -0x5.687c38p+4 : inexact-ok
+= sinh upward binary32 -0x5.275748p+0 : -0x5.687c38p+4 : inexact-ok
+= sinh downward binary64 -0x5.275748p+0 : -0x5.687c3b4f1396p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.275748p+0 : -0x5.687c3b4f1395cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.275748p+0 : -0x5.687c3b4f1395cp+4 : inexact-ok
+= sinh upward binary64 -0x5.275748p+0 : -0x5.687c3b4f1395cp+4 : inexact-ok
+= sinh downward intel96 -0x5.275748p+0 : -0x5.687c3b4f1395cbfp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.275748p+0 : -0x5.687c3b4f1395cbfp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.275748p+0 : -0x5.687c3b4f1395cbe8p+4 : inexact-ok
+= sinh upward intel96 -0x5.275748p+0 : -0x5.687c3b4f1395cbe8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.275748p+0 : -0x5.687c3b4f1395cbfp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.275748p+0 : -0x5.687c3b4f1395cbfp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.275748p+0 : -0x5.687c3b4f1395cbe8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.275748p+0 : -0x5.687c3b4f1395cbe8p+4 : inexact-ok
+= sinh downward binary128 -0x5.275748p+0 : -0x5.687c3b4f1395cbec374800dcbda4p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.275748p+0 : -0x5.687c3b4f1395cbec374800dcbdap+4 : inexact-ok
+= sinh towardzero binary128 -0x5.275748p+0 : -0x5.687c3b4f1395cbec374800dcbdap+4 : inexact-ok
+= sinh upward binary128 -0x5.275748p+0 : -0x5.687c3b4f1395cbec374800dcbdap+4 : inexact-ok
+= sinh downward ibm128 -0x5.275748p+0 : -0x5.687c3b4f1395cbec374800dcbep+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.275748p+0 : -0x5.687c3b4f1395cbec374800dcbep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.275748p+0 : -0x5.687c3b4f1395cbec374800dcbcp+4 : inexact-ok
+= sinh upward ibm128 -0x5.275748p+0 : -0x5.687c3b4f1395cbec374800dcbcp+4 : inexact-ok
+= sinh downward binary64 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db6p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db6p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5cp+4 : inexact-ok
+= sinh upward binary64 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5cp+4 : inexact-ok
+= sinh downward intel96 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db6p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db6p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5fff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5fff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db6p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db6p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5fff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5fff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5ffffe258e3b3e0c4p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5ffffe258e3b3e0cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5ffffe258e3b3e0cp+4 : inexact-ok
+= sinh upward binary128 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5ffffe258e3b3e0cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5ffffe258e3b3e2p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5ffffe258e3b3ep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5ffffe258e3b3ep+4 : inexact-ok
+= sinh upward ibm128 -0x5.275740e7814d4p+0 : -0x5.687c14ee8db5ffffe258e3b3ep+4 : inexact-ok
+sinh -0x1.41e005cc32758p+2
+= sinh downward binary32 -0x5.07801p+0 : -0x4.c68d9p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.07801p+0 : -0x4.c68d9p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.07801p+0 : -0x4.c68d88p+4 : inexact-ok
+= sinh upward binary32 -0x5.07801p+0 : -0x4.c68d88p+4 : inexact-ok
+= sinh downward binary64 -0x5.07801p+0 : -0x4.c68d8fbc1344p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.07801p+0 : -0x4.c68d8fbc1344p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.07801p+0 : -0x4.c68d8fbc1343cp+4 : inexact-ok
+= sinh upward binary64 -0x5.07801p+0 : -0x4.c68d8fbc1343cp+4 : inexact-ok
+= sinh downward intel96 -0x5.07801p+0 : -0x4.c68d8fbc1343e9ep+4 : inexact-ok
+= sinh tonearest intel96 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d8p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d8p+4 : inexact-ok
+= sinh upward intel96 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.07801p+0 : -0x4.c68d8fbc1343e9ep+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d8p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d8p+4 : inexact-ok
+= sinh downward binary128 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d92b5672924a88p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d92b5672924a84p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d92b5672924a84p+4 : inexact-ok
+= sinh upward binary128 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d92b5672924a84p+4 : inexact-ok
+= sinh downward ibm128 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d92b5672924cp+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d92b5672924ap+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d92b5672924ap+4 : inexact-ok
+= sinh upward ibm128 -0x5.07801p+0 : -0x4.c68d8fbc1343e9d92b5672924ap+4 : inexact-ok
+= sinh downward binary32 -0x5.078018p+0 : -0x4.c68db8p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.078018p+0 : -0x4.c68db8p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.078018p+0 : -0x4.c68dbp+4 : inexact-ok
+= sinh upward binary32 -0x5.078018p+0 : -0x4.c68dbp+4 : inexact-ok
+= sinh downward binary64 -0x5.078018p+0 : -0x4.c68db5f156c4cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.078018p+0 : -0x4.c68db5f156c4cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.078018p+0 : -0x4.c68db5f156c48p+4 : inexact-ok
+= sinh upward binary64 -0x5.078018p+0 : -0x4.c68db5f156c48p+4 : inexact-ok
+= sinh downward intel96 -0x5.078018p+0 : -0x4.c68db5f156c4a848p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.078018p+0 : -0x4.c68db5f156c4a848p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.078018p+0 : -0x4.c68db5f156c4a84p+4 : inexact-ok
+= sinh upward intel96 -0x5.078018p+0 : -0x4.c68db5f156c4a84p+4 : inexact-ok
+= sinh downward m68k96 -0x5.078018p+0 : -0x4.c68db5f156c4a848p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.078018p+0 : -0x4.c68db5f156c4a848p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.078018p+0 : -0x4.c68db5f156c4a84p+4 : inexact-ok
+= sinh upward m68k96 -0x5.078018p+0 : -0x4.c68db5f156c4a84p+4 : inexact-ok
+= sinh downward binary128 -0x5.078018p+0 : -0x4.c68db5f156c4a846134abe378b3p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.078018p+0 : -0x4.c68db5f156c4a846134abe378b3p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.078018p+0 : -0x4.c68db5f156c4a846134abe378b2cp+4 : inexact-ok
+= sinh upward binary128 -0x5.078018p+0 : -0x4.c68db5f156c4a846134abe378b2cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.078018p+0 : -0x4.c68db5f156c4a846134abe378cp+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.078018p+0 : -0x4.c68db5f156c4a846134abe378cp+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.078018p+0 : -0x4.c68db5f156c4a846134abe378ap+4 : inexact-ok
+= sinh upward ibm128 -0x5.078018p+0 : -0x4.c68db5f156c4a846134abe378ap+4 : inexact-ok
+= sinh downward binary64 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d4p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d4p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3cp+4 : inexact-ok
+= sinh upward binary64 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3cp+4 : inexact-ok
+= sinh downward intel96 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d4p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d4p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d4p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d4p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fffea8703df06718p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fffea8703df06714p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fffea8703df06714p+4 : inexact-ok
+= sinh upward binary128 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fffea8703df06714p+4 : inexact-ok
+= sinh downward ibm128 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fffea8703df068p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fffea8703df068p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fffea8703df066p+4 : inexact-ok
+= sinh upward ibm128 -0x5.07801730c9d6p+0 : -0x4.c68db213b1d3fffea8703df066p+4 : inexact-ok
+sinh -0x1.497208f2ae258p+2
+= sinh downward binary32 -0x5.25c82p+0 : -0x5.6013f8p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.25c82p+0 : -0x5.6013fp+4 : inexact-ok
+= sinh towardzero binary32 -0x5.25c82p+0 : -0x5.6013fp+4 : inexact-ok
+= sinh upward binary32 -0x5.25c82p+0 : -0x5.6013fp+4 : inexact-ok
+= sinh downward binary64 -0x5.25c82p+0 : -0x5.6013f3f73c4fcp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.25c82p+0 : -0x5.6013f3f73c4fcp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.25c82p+0 : -0x5.6013f3f73c4f8p+4 : inexact-ok
+= sinh upward binary64 -0x5.25c82p+0 : -0x5.6013f3f73c4f8p+4 : inexact-ok
+= sinh downward intel96 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d8p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d8p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3dp+4 : inexact-ok
+= sinh upward intel96 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3dp+4 : inexact-ok
+= sinh downward m68k96 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d8p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d8p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3dp+4 : inexact-ok
+= sinh upward m68k96 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3dp+4 : inexact-ok
+= sinh downward binary128 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d4b584ceafbb4p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d4b584ceafbb3cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d4b584ceafbb3cp+4 : inexact-ok
+= sinh upward binary128 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d4b584ceafbb3cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d4b584ceafbcp+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d4b584ceafbcp+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d4b584ceafbap+4 : inexact-ok
+= sinh upward ibm128 -0x5.25c82p+0 : -0x5.6013f3f73c4fb3d4b584ceafbap+4 : inexact-ok
+= sinh downward binary32 -0x5.25c828p+0 : -0x5.60142p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.25c828p+0 : -0x5.60142p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.25c828p+0 : -0x5.601418p+4 : inexact-ok
+= sinh upward binary32 -0x5.25c828p+0 : -0x5.601418p+4 : inexact-ok
+= sinh downward binary64 -0x5.25c828p+0 : -0x5.60141ef89b1a4p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.25c828p+0 : -0x5.60141ef89b1ap+4 : inexact-ok
+= sinh towardzero binary64 -0x5.25c828p+0 : -0x5.60141ef89b1ap+4 : inexact-ok
+= sinh upward binary64 -0x5.25c828p+0 : -0x5.60141ef89b1ap+4 : inexact-ok
+= sinh downward intel96 -0x5.25c828p+0 : -0x5.60141ef89b1a013p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.25c828p+0 : -0x5.60141ef89b1a0128p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.25c828p+0 : -0x5.60141ef89b1a0128p+4 : inexact-ok
+= sinh upward intel96 -0x5.25c828p+0 : -0x5.60141ef89b1a0128p+4 : inexact-ok
+= sinh downward m68k96 -0x5.25c828p+0 : -0x5.60141ef89b1a013p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.25c828p+0 : -0x5.60141ef89b1a0128p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.25c828p+0 : -0x5.60141ef89b1a0128p+4 : inexact-ok
+= sinh upward m68k96 -0x5.25c828p+0 : -0x5.60141ef89b1a0128p+4 : inexact-ok
+= sinh downward binary128 -0x5.25c828p+0 : -0x5.60141ef89b1a012877edaa5a72acp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.25c828p+0 : -0x5.60141ef89b1a012877edaa5a72a8p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.25c828p+0 : -0x5.60141ef89b1a012877edaa5a72a8p+4 : inexact-ok
+= sinh upward binary128 -0x5.25c828p+0 : -0x5.60141ef89b1a012877edaa5a72a8p+4 : inexact-ok
+= sinh downward ibm128 -0x5.25c828p+0 : -0x5.60141ef89b1a012877edaa5a74p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.25c828p+0 : -0x5.60141ef89b1a012877edaa5a72p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.25c828p+0 : -0x5.60141ef89b1a012877edaa5a72p+4 : inexact-ok
+= sinh upward ibm128 -0x5.25c828p+0 : -0x5.60141ef89b1a012877edaa5a72p+4 : inexact-ok
+= sinh downward binary64 -0x5.25c823cab896p+0 : -0x5.60140859829p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.25c823cab896p+0 : -0x5.60140859829p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.25c823cab896p+0 : -0x5.60140859828fcp+4 : inexact-ok
+= sinh upward binary64 -0x5.25c823cab896p+0 : -0x5.60140859828fcp+4 : inexact-ok
+= sinh downward intel96 -0x5.25c823cab896p+0 : -0x5.60140859829p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.25c823cab896p+0 : -0x5.60140859829p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.25c823cab896p+0 : -0x5.60140859828ffff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.25c823cab896p+0 : -0x5.60140859828ffff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.25c823cab896p+0 : -0x5.60140859829p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.25c823cab896p+0 : -0x5.60140859829p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.25c823cab896p+0 : -0x5.60140859828ffff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.25c823cab896p+0 : -0x5.60140859828ffff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.25c823cab896p+0 : -0x5.60140859828fffffe8f98a82d19p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.25c823cab896p+0 : -0x5.60140859828fffffe8f98a82d19p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.25c823cab896p+0 : -0x5.60140859828fffffe8f98a82d18cp+4 : inexact-ok
+= sinh upward binary128 -0x5.25c823cab896p+0 : -0x5.60140859828fffffe8f98a82d18cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.25c823cab896p+0 : -0x5.60140859828fffffe8f98a82d2p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.25c823cab896p+0 : -0x5.60140859828fffffe8f98a82d2p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.25c823cab896p+0 : -0x5.60140859828fffffe8f98a82dp+4 : inexact-ok
+= sinh upward ibm128 -0x5.25c823cab896p+0 : -0x5.60140859828fffffe8f98a82dp+4 : inexact-ok
+sinh -0x1.4037cd9cb7a82p+2
+= sinh downward binary32 -0x5.00df3p+0 : -0x4.a74d5p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.00df3p+0 : -0x4.a74d48p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.00df3p+0 : -0x4.a74d48p+4 : inexact-ok
+= sinh upward binary32 -0x5.00df3p+0 : -0x4.a74d48p+4 : inexact-ok
+= sinh downward binary64 -0x5.00df3p+0 : -0x4.a74d492d5dbap+4 : inexact-ok
+= sinh tonearest binary64 -0x5.00df3p+0 : -0x4.a74d492d5db9cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.00df3p+0 : -0x4.a74d492d5db9cp+4 : inexact-ok
+= sinh upward binary64 -0x5.00df3p+0 : -0x4.a74d492d5db9cp+4 : inexact-ok
+= sinh downward intel96 -0x5.00df3p+0 : -0x4.a74d492d5db9d6p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.00df3p+0 : -0x4.a74d492d5db9d6p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.00df3p+0 : -0x4.a74d492d5db9d5f8p+4 : inexact-ok
+= sinh upward intel96 -0x5.00df3p+0 : -0x4.a74d492d5db9d5f8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.00df3p+0 : -0x4.a74d492d5db9d6p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.00df3p+0 : -0x4.a74d492d5db9d6p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.00df3p+0 : -0x4.a74d492d5db9d5f8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.00df3p+0 : -0x4.a74d492d5db9d5f8p+4 : inexact-ok
+= sinh downward binary128 -0x5.00df3p+0 : -0x4.a74d492d5db9d5fd5050d947332cp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.00df3p+0 : -0x4.a74d492d5db9d5fd5050d9473328p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.00df3p+0 : -0x4.a74d492d5db9d5fd5050d9473328p+4 : inexact-ok
+= sinh upward binary128 -0x5.00df3p+0 : -0x4.a74d492d5db9d5fd5050d9473328p+4 : inexact-ok
+= sinh downward ibm128 -0x5.00df3p+0 : -0x4.a74d492d5db9d5fd5050d94734p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.00df3p+0 : -0x4.a74d492d5db9d5fd5050d94734p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.00df3p+0 : -0x4.a74d492d5db9d5fd5050d94732p+4 : inexact-ok
+= sinh upward ibm128 -0x5.00df3p+0 : -0x4.a74d492d5db9d5fd5050d94732p+4 : inexact-ok
+= sinh downward binary32 -0x5.00df38p+0 : -0x4.a74d7p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.00df38p+0 : -0x4.a74d7p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.00df38p+0 : -0x4.a74d68p+4 : inexact-ok
+= sinh upward binary32 -0x5.00df38p+0 : -0x4.a74d68p+4 : inexact-ok
+= sinh downward binary64 -0x5.00df38p+0 : -0x4.a74d6e68a4a24p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.00df38p+0 : -0x4.a74d6e68a4a2p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.00df38p+0 : -0x4.a74d6e68a4a2p+4 : inexact-ok
+= sinh upward binary64 -0x5.00df38p+0 : -0x4.a74d6e68a4a2p+4 : inexact-ok
+= sinh downward intel96 -0x5.00df38p+0 : -0x4.a74d6e68a4a2001p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.00df38p+0 : -0x4.a74d6e68a4a20008p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.00df38p+0 : -0x4.a74d6e68a4a20008p+4 : inexact-ok
+= sinh upward intel96 -0x5.00df38p+0 : -0x4.a74d6e68a4a20008p+4 : inexact-ok
+= sinh downward m68k96 -0x5.00df38p+0 : -0x4.a74d6e68a4a2001p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.00df38p+0 : -0x4.a74d6e68a4a20008p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.00df38p+0 : -0x4.a74d6e68a4a20008p+4 : inexact-ok
+= sinh upward m68k96 -0x5.00df38p+0 : -0x4.a74d6e68a4a20008p+4 : inexact-ok
+= sinh downward binary128 -0x5.00df38p+0 : -0x4.a74d6e68a4a2000b82faf4786bc4p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.00df38p+0 : -0x4.a74d6e68a4a2000b82faf4786bcp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.00df38p+0 : -0x4.a74d6e68a4a2000b82faf4786bcp+4 : inexact-ok
+= sinh upward binary128 -0x5.00df38p+0 : -0x4.a74d6e68a4a2000b82faf4786bcp+4 : inexact-ok
+= sinh downward ibm128 -0x5.00df38p+0 : -0x4.a74d6e68a4a2000b82faf4786cp+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.00df38p+0 : -0x4.a74d6e68a4a2000b82faf4786cp+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.00df38p+0 : -0x4.a74d6e68a4a2000b82faf4786ap+4 : inexact-ok
+= sinh upward ibm128 -0x5.00df38p+0 : -0x4.a74d6e68a4a2000b82faf4786ap+4 : inexact-ok
+= sinh downward binary64 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9bp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9bp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9acp+4 : inexact-ok
+= sinh upward binary64 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9acp+4 : inexact-ok
+= sinh downward intel96 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9bp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9bp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9bp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9bp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afffec173c0f35d1p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afffec173c0f35d0cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afffec173c0f35d0cp+4 : inexact-ok
+= sinh upward binary128 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afffec173c0f35d0cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afffec173c0f35ep+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afffec173c0f35ep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afffec173c0f35cp+4 : inexact-ok
+= sinh upward ibm128 -0x5.00df3672dea08p+0 : -0x4.a74d67306b9afffec173c0f35cp+4 : inexact-ok
+sinh -0x1.41b923f7769e3p+2
+= sinh downward binary32 -0x5.06e488p+0 : -0x4.c3a7ap+4 : inexact-ok
+= sinh tonearest binary32 -0x5.06e488p+0 : -0x4.c3a7ap+4 : inexact-ok
+= sinh towardzero binary32 -0x5.06e488p+0 : -0x4.c3a798p+4 : inexact-ok
+= sinh upward binary32 -0x5.06e488p+0 : -0x4.c3a798p+4 : inexact-ok
+= sinh downward binary64 -0x5.06e488p+0 : -0x4.c3a79fb570934p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.06e488p+0 : -0x4.c3a79fb57093p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.06e488p+0 : -0x4.c3a79fb57093p+4 : inexact-ok
+= sinh upward binary64 -0x5.06e488p+0 : -0x4.c3a79fb57093p+4 : inexact-ok
+= sinh downward intel96 -0x5.06e488p+0 : -0x4.c3a79fb570931ep+4 : inexact-ok
+= sinh tonearest intel96 -0x5.06e488p+0 : -0x4.c3a79fb570931ep+4 : inexact-ok
+= sinh towardzero intel96 -0x5.06e488p+0 : -0x4.c3a79fb570931df8p+4 : inexact-ok
+= sinh upward intel96 -0x5.06e488p+0 : -0x4.c3a79fb570931df8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.06e488p+0 : -0x4.c3a79fb570931ep+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.06e488p+0 : -0x4.c3a79fb570931ep+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.06e488p+0 : -0x4.c3a79fb570931df8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.06e488p+0 : -0x4.c3a79fb570931df8p+4 : inexact-ok
+= sinh downward binary128 -0x5.06e488p+0 : -0x4.c3a79fb570931dff8136b0fa1fd4p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.06e488p+0 : -0x4.c3a79fb570931dff8136b0fa1fdp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.06e488p+0 : -0x4.c3a79fb570931dff8136b0fa1fdp+4 : inexact-ok
+= sinh upward binary128 -0x5.06e488p+0 : -0x4.c3a79fb570931dff8136b0fa1fdp+4 : inexact-ok
+= sinh downward ibm128 -0x5.06e488p+0 : -0x4.c3a79fb570931dff8136b0fa2p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.06e488p+0 : -0x4.c3a79fb570931dff8136b0fa2p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.06e488p+0 : -0x4.c3a79fb570931dff8136b0fa1ep+4 : inexact-ok
+= sinh upward ibm128 -0x5.06e488p+0 : -0x4.c3a79fb570931dff8136b0fa1ep+4 : inexact-ok
+= sinh downward binary32 -0x5.06e49p+0 : -0x4.c3a7c8p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.06e49p+0 : -0x4.c3a7c8p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.06e49p+0 : -0x4.c3a7cp+4 : inexact-ok
+= sinh upward binary32 -0x5.06e49p+0 : -0x4.c3a7cp+4 : inexact-ok
+= sinh downward binary64 -0x5.06e49p+0 : -0x4.c3a7c5d38515cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.06e49p+0 : -0x4.c3a7c5d38515cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.06e49p+0 : -0x4.c3a7c5d385158p+4 : inexact-ok
+= sinh upward binary64 -0x5.06e49p+0 : -0x4.c3a7c5d385158p+4 : inexact-ok
+= sinh downward intel96 -0x5.06e49p+0 : -0x4.c3a7c5d38515b658p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.06e49p+0 : -0x4.c3a7c5d38515b65p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.06e49p+0 : -0x4.c3a7c5d38515b65p+4 : inexact-ok
+= sinh upward intel96 -0x5.06e49p+0 : -0x4.c3a7c5d38515b65p+4 : inexact-ok
+= sinh downward m68k96 -0x5.06e49p+0 : -0x4.c3a7c5d38515b658p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.06e49p+0 : -0x4.c3a7c5d38515b65p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.06e49p+0 : -0x4.c3a7c5d38515b65p+4 : inexact-ok
+= sinh upward m68k96 -0x5.06e49p+0 : -0x4.c3a7c5d38515b65p+4 : inexact-ok
+= sinh downward binary128 -0x5.06e49p+0 : -0x4.c3a7c5d38515b650cc295cf0fe5cp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.06e49p+0 : -0x4.c3a7c5d38515b650cc295cf0fe5cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.06e49p+0 : -0x4.c3a7c5d38515b650cc295cf0fe58p+4 : inexact-ok
+= sinh upward binary128 -0x5.06e49p+0 : -0x4.c3a7c5d38515b650cc295cf0fe58p+4 : inexact-ok
+= sinh downward ibm128 -0x5.06e49p+0 : -0x4.c3a7c5d38515b650cc295cf1p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.06e49p+0 : -0x4.c3a7c5d38515b650cc295cf0fep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.06e49p+0 : -0x4.c3a7c5d38515b650cc295cf0fep+4 : inexact-ok
+= sinh upward ibm128 -0x5.06e49p+0 : -0x4.c3a7c5d38515b650cc295cf0fep+4 : inexact-ok
+= sinh downward binary64 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c8p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c8p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c4p+4 : inexact-ok
+= sinh upward binary64 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c4p+4 : inexact-ok
+= sinh downward intel96 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c8p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c8p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c8p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c8p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ffff67cfd8c8834p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ffff67cfd8c8834p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ffff67cfd8c883p+4 : inexact-ok
+= sinh upward binary128 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ffff67cfd8c883p+4 : inexact-ok
+= sinh downward ibm128 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ffff67cfd8c8ap+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ffff67cfd8c88p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ffff67cfd8c88p+4 : inexact-ok
+= sinh upward ibm128 -0x5.06e48fddda78cp+0 : -0x4.c3a7c530d26c7ffff67cfd8c88p+4 : inexact-ok
+sinh -0x1.425754461bdfdp+2
+= sinh downward binary32 -0x5.095d5p+0 : -0x4.cf7d4p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.095d5p+0 : -0x4.cf7d38p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.095d5p+0 : -0x4.cf7d38p+4 : inexact-ok
+= sinh upward binary32 -0x5.095d5p+0 : -0x4.cf7d38p+4 : inexact-ok
+= sinh downward binary64 -0x5.095d5p+0 : -0x4.cf7d3abd3eae4p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.095d5p+0 : -0x4.cf7d3abd3eaep+4 : inexact-ok
+= sinh towardzero binary64 -0x5.095d5p+0 : -0x4.cf7d3abd3eaep+4 : inexact-ok
+= sinh upward binary64 -0x5.095d5p+0 : -0x4.cf7d3abd3eaep+4 : inexact-ok
+= sinh downward intel96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bep+4 : inexact-ok
+= sinh tonearest intel96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh upward intel96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bep+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh downward binary128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74d18p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74d18p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74d14p+4 : inexact-ok
+= sinh upward binary128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74d14p+4 : inexact-ok
+= sinh downward ibm128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74ep+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74ep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74cp+4 : inexact-ok
+= sinh upward ibm128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74cp+4 : inexact-ok
+= sinh downward binary32 -0x5.095d58p+0 : -0x4.cf7d68p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.095d58p+0 : -0x4.cf7d6p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.095d58p+0 : -0x4.cf7d6p+4 : inexact-ok
+= sinh upward binary32 -0x5.095d58p+0 : -0x4.cf7d6p+4 : inexact-ok
+= sinh downward binary64 -0x5.095d58p+0 : -0x4.cf7d6139fdf9cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.095d58p+0 : -0x4.cf7d6139fdf9cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.095d58p+0 : -0x4.cf7d6139fdf98p+4 : inexact-ok
+= sinh upward binary64 -0x5.095d58p+0 : -0x4.cf7d6139fdf98p+4 : inexact-ok
+= sinh downward intel96 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac18p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac18p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1p+4 : inexact-ok
+= sinh upward intel96 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1p+4 : inexact-ok
+= sinh downward m68k96 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac18p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac18p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1p+4 : inexact-ok
+= sinh upward m68k96 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1p+4 : inexact-ok
+= sinh downward binary128 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1554c3be10aac8p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1554c3be10aac8p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1554c3be10aac4p+4 : inexact-ok
+= sinh upward binary128 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1554c3be10aac4p+4 : inexact-ok
+= sinh downward ibm128 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1554c3be10acp+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1554c3be10aap+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1554c3be10aap+4 : inexact-ok
+= sinh upward ibm128 -0x5.095d58p+0 : -0x4.cf7d6139fdf9ac1554c3be10aap+4 : inexact-ok
+= sinh downward binary64 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a4p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a4p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652ap+4 : inexact-ok
+= sinh upward binary64 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652ap+4 : inexact-ok
+= sinh downward intel96 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a4p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a4p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3ff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3ff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a4p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a4p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3ff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3ff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3fff821ee34a8578p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3fff821ee34a8578p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3fff821ee34a8574p+4 : inexact-ok
+= sinh upward binary128 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3fff821ee34a8574p+4 : inexact-ok
+= sinh downward ibm128 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3fff821ee34a86p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3fff821ee34a86p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3fff821ee34a84p+4 : inexact-ok
+= sinh upward ibm128 -0x5.095d51186f7f4p+0 : -0x4.cf7d4002652a3fff821ee34a84p+4 : inexact-ok
+sinh -0x1.425761708c475p+2
+= sinh downward binary32 -0x5.095d8p+0 : -0x4.cf7e28p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.095d8p+0 : -0x4.cf7e2p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.095d8p+0 : -0x4.cf7e2p+4 : inexact-ok
+= sinh upward binary32 -0x5.095d8p+0 : -0x4.cf7e2p+4 : inexact-ok
+= sinh downward binary64 -0x5.095d8p+0 : -0x4.cf7e21a9cc7ep+4 : inexact-ok
+= sinh tonearest binary64 -0x5.095d8p+0 : -0x4.cf7e21a9cc7ep+4 : inexact-ok
+= sinh towardzero binary64 -0x5.095d8p+0 : -0x4.cf7e21a9cc7dcp+4 : inexact-ok
+= sinh upward binary64 -0x5.095d8p+0 : -0x4.cf7e21a9cc7dcp+4 : inexact-ok
+= sinh downward intel96 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de43p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de428p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de428p+4 : inexact-ok
+= sinh upward intel96 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de428p+4 : inexact-ok
+= sinh downward m68k96 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de43p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de428p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de428p+4 : inexact-ok
+= sinh upward m68k96 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de428p+4 : inexact-ok
+= sinh downward binary128 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de42b5e6b2c5e3f0cp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de42b5e6b2c5e3f08p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de42b5e6b2c5e3f08p+4 : inexact-ok
+= sinh upward binary128 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de42b5e6b2c5e3f08p+4 : inexact-ok
+= sinh downward ibm128 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de42b5e6b2c5e4p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de42b5e6b2c5e4p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de42b5e6b2c5e3ep+4 : inexact-ok
+= sinh upward ibm128 -0x5.095d8p+0 : -0x4.cf7e21a9cc7de42b5e6b2c5e3ep+4 : inexact-ok
+= sinh downward binary32 -0x5.095d88p+0 : -0x4.cf7e5p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.095d88p+0 : -0x4.cf7e48p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.095d88p+0 : -0x4.cf7e48p+4 : inexact-ok
+= sinh upward binary32 -0x5.095d88p+0 : -0x4.cf7e48p+4 : inexact-ok
+= sinh downward binary64 -0x5.095d88p+0 : -0x4.cf7e48269301p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.095d88p+0 : -0x4.cf7e48269300cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.095d88p+0 : -0x4.cf7e48269300cp+4 : inexact-ok
+= sinh upward binary64 -0x5.095d88p+0 : -0x4.cf7e48269300cp+4 : inexact-ok
+= sinh downward intel96 -0x5.095d88p+0 : -0x4.cf7e48269300c11p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.095d88p+0 : -0x4.cf7e48269300c108p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.095d88p+0 : -0x4.cf7e48269300c108p+4 : inexact-ok
+= sinh upward intel96 -0x5.095d88p+0 : -0x4.cf7e48269300c108p+4 : inexact-ok
+= sinh downward m68k96 -0x5.095d88p+0 : -0x4.cf7e48269300c11p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.095d88p+0 : -0x4.cf7e48269300c108p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.095d88p+0 : -0x4.cf7e48269300c108p+4 : inexact-ok
+= sinh upward m68k96 -0x5.095d88p+0 : -0x4.cf7e48269300c108p+4 : inexact-ok
+= sinh downward binary128 -0x5.095d88p+0 : -0x4.cf7e48269300c108efbb4c012268p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.095d88p+0 : -0x4.cf7e48269300c108efbb4c012264p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.095d88p+0 : -0x4.cf7e48269300c108efbb4c012264p+4 : inexact-ok
+= sinh upward binary128 -0x5.095d88p+0 : -0x4.cf7e48269300c108efbb4c012264p+4 : inexact-ok
+= sinh downward ibm128 -0x5.095d88p+0 : -0x4.cf7e48269300c108efbb4c0124p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.095d88p+0 : -0x4.cf7e48269300c108efbb4c0122p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.095d88p+0 : -0x4.cf7e48269300c108efbb4c0122p+4 : inexact-ok
+= sinh upward ibm128 -0x5.095d88p+0 : -0x4.cf7e48269300c108efbb4c0122p+4 : inexact-ok
+= sinh downward binary64 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06878p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06878p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06874p+4 : inexact-ok
+= sinh upward binary64 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06874p+4 : inexact-ok
+= sinh downward intel96 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06878p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06878p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06878p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06878p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ffff3bf1be18064p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ffff3bf1be1806p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ffff3bf1be1806p+4 : inexact-ok
+= sinh upward binary128 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ffff3bf1be1806p+4 : inexact-ok
+= sinh downward ibm128 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ffff3bf1be182p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ffff3bf1be18p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ffff3bf1be18p+4 : inexact-ok
+= sinh upward ibm128 -0x5.095d85c2311d4p+0 : -0x4.cf7e3d5e06877ffff3bf1be18p+4 : inexact-ok
+sinh 0x1.40e3ea0aeab5ap+2
+= sinh downward binary32 0x5.038fbp+0 : 0x4.b3e268p+4 : inexact-ok
+= sinh tonearest binary32 0x5.038fbp+0 : 0x4.b3e268p+4 : inexact-ok
+= sinh towardzero binary32 0x5.038fbp+0 : 0x4.b3e268p+4 : inexact-ok
+= sinh upward binary32 0x5.038fbp+0 : 0x4.b3e27p+4 : inexact-ok
+= sinh downward binary64 0x5.038fbp+0 : 0x4.b3e26a12b01b4p+4 : inexact-ok
+= sinh tonearest binary64 0x5.038fbp+0 : 0x4.b3e26a12b01b8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.038fbp+0 : 0x4.b3e26a12b01b4p+4 : inexact-ok
+= sinh upward binary64 0x5.038fbp+0 : 0x4.b3e26a12b01b8p+4 : inexact-ok
+= sinh downward intel96 0x5.038fbp+0 : 0x4.b3e26a12b01b715p+4 : inexact-ok
+= sinh tonearest intel96 0x5.038fbp+0 : 0x4.b3e26a12b01b715p+4 : inexact-ok
+= sinh towardzero intel96 0x5.038fbp+0 : 0x4.b3e26a12b01b715p+4 : inexact-ok
+= sinh upward intel96 0x5.038fbp+0 : 0x4.b3e26a12b01b7158p+4 : inexact-ok
+= sinh downward m68k96 0x5.038fbp+0 : 0x4.b3e26a12b01b715p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.038fbp+0 : 0x4.b3e26a12b01b715p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.038fbp+0 : 0x4.b3e26a12b01b715p+4 : inexact-ok
+= sinh upward m68k96 0x5.038fbp+0 : 0x4.b3e26a12b01b7158p+4 : inexact-ok
+= sinh downward binary128 0x5.038fbp+0 : 0x4.b3e26a12b01b7151c8eb5674eecp+4 : inexact-ok
+= sinh tonearest binary128 0x5.038fbp+0 : 0x4.b3e26a12b01b7151c8eb5674eecp+4 : inexact-ok
+= sinh towardzero binary128 0x5.038fbp+0 : 0x4.b3e26a12b01b7151c8eb5674eecp+4 : inexact-ok
+= sinh upward binary128 0x5.038fbp+0 : 0x4.b3e26a12b01b7151c8eb5674eec4p+4 : inexact-ok
+= sinh downward ibm128 0x5.038fbp+0 : 0x4.b3e26a12b01b7151c8eb5674eep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.038fbp+0 : 0x4.b3e26a12b01b7151c8eb5674eep+4 : inexact-ok
+= sinh towardzero ibm128 0x5.038fbp+0 : 0x4.b3e26a12b01b7151c8eb5674eep+4 : inexact-ok
+= sinh upward ibm128 0x5.038fbp+0 : 0x4.b3e26a12b01b7151c8eb5674fp+4 : inexact-ok
+= sinh downward binary32 0x5.038fa8p+0 : 0x4.b3e24p+4 : inexact-ok
+= sinh tonearest binary32 0x5.038fa8p+0 : 0x4.b3e248p+4 : inexact-ok
+= sinh towardzero binary32 0x5.038fa8p+0 : 0x4.b3e24p+4 : inexact-ok
+= sinh upward binary32 0x5.038fa8p+0 : 0x4.b3e248p+4 : inexact-ok
+= sinh downward binary64 0x5.038fa8p+0 : 0x4.b3e24472c3a4p+4 : inexact-ok
+= sinh tonearest binary64 0x5.038fa8p+0 : 0x4.b3e24472c3a44p+4 : inexact-ok
+= sinh towardzero binary64 0x5.038fa8p+0 : 0x4.b3e24472c3a4p+4 : inexact-ok
+= sinh upward binary64 0x5.038fa8p+0 : 0x4.b3e24472c3a44p+4 : inexact-ok
+= sinh downward intel96 0x5.038fa8p+0 : 0x4.b3e24472c3a4321p+4 : inexact-ok
+= sinh tonearest intel96 0x5.038fa8p+0 : 0x4.b3e24472c3a43218p+4 : inexact-ok
+= sinh towardzero intel96 0x5.038fa8p+0 : 0x4.b3e24472c3a4321p+4 : inexact-ok
+= sinh upward intel96 0x5.038fa8p+0 : 0x4.b3e24472c3a43218p+4 : inexact-ok
+= sinh downward m68k96 0x5.038fa8p+0 : 0x4.b3e24472c3a4321p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.038fa8p+0 : 0x4.b3e24472c3a43218p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.038fa8p+0 : 0x4.b3e24472c3a4321p+4 : inexact-ok
+= sinh upward m68k96 0x5.038fa8p+0 : 0x4.b3e24472c3a43218p+4 : inexact-ok
+= sinh downward binary128 0x5.038fa8p+0 : 0x4.b3e24472c3a43217c271b5d4c1a4p+4 : inexact-ok
+= sinh tonearest binary128 0x5.038fa8p+0 : 0x4.b3e24472c3a43217c271b5d4c1a4p+4 : inexact-ok
+= sinh towardzero binary128 0x5.038fa8p+0 : 0x4.b3e24472c3a43217c271b5d4c1a4p+4 : inexact-ok
+= sinh upward binary128 0x5.038fa8p+0 : 0x4.b3e24472c3a43217c271b5d4c1a8p+4 : inexact-ok
+= sinh downward ibm128 0x5.038fa8p+0 : 0x4.b3e24472c3a43217c271b5d4cp+4 : inexact-ok
+= sinh tonearest ibm128 0x5.038fa8p+0 : 0x4.b3e24472c3a43217c271b5d4c2p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.038fa8p+0 : 0x4.b3e24472c3a43217c271b5d4cp+4 : inexact-ok
+= sinh upward ibm128 0x5.038fa8p+0 : 0x4.b3e24472c3a43217c271b5d4c2p+4 : inexact-ok
+= sinh downward binary64 0x5.038fa82baad68p+0 : 0x4.b3e2454022afp+4 : inexact-ok
+= sinh tonearest binary64 0x5.038fa82baad68p+0 : 0x4.b3e2454022af4p+4 : inexact-ok
+= sinh towardzero binary64 0x5.038fa82baad68p+0 : 0x4.b3e2454022afp+4 : inexact-ok
+= sinh upward binary64 0x5.038fa82baad68p+0 : 0x4.b3e2454022af4p+4 : inexact-ok
+= sinh downward intel96 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.038fa82baad68p+0 : 0x4.b3e2454022af4p+4 : inexact-ok
+= sinh towardzero intel96 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.038fa82baad68p+0 : 0x4.b3e2454022af4p+4 : inexact-ok
+= sinh downward m68k96 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.038fa82baad68p+0 : 0x4.b3e2454022af4p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.038fa82baad68p+0 : 0x4.b3e2454022af4p+4 : inexact-ok
+= sinh downward binary128 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3fffd1674aad4fccp+4 : inexact-ok
+= sinh tonearest binary128 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3fffd1674aad4fdp+4 : inexact-ok
+= sinh towardzero binary128 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3fffd1674aad4fccp+4 : inexact-ok
+= sinh upward binary128 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3fffd1674aad4fdp+4 : inexact-ok
+= sinh downward ibm128 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3fffd1674aad4ep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3fffd1674aad5p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3fffd1674aad4ep+4 : inexact-ok
+= sinh upward ibm128 0x5.038fa82baad68p+0 : 0x4.b3e2454022af3fffd1674aad5p+4 : inexact-ok
+sinh 0x1.4144bd89e0eb8p+2
+= sinh downward binary32 0x5.0512f8p+0 : 0x4.bb0538p+4 : inexact-ok
+= sinh tonearest binary32 0x5.0512f8p+0 : 0x4.bb0538p+4 : inexact-ok
+= sinh towardzero binary32 0x5.0512f8p+0 : 0x4.bb0538p+4 : inexact-ok
+= sinh upward binary32 0x5.0512f8p+0 : 0x4.bb054p+4 : inexact-ok
+= sinh downward binary64 0x5.0512f8p+0 : 0x4.bb053972acb4cp+4 : inexact-ok
+= sinh tonearest binary64 0x5.0512f8p+0 : 0x4.bb053972acb4cp+4 : inexact-ok
+= sinh towardzero binary64 0x5.0512f8p+0 : 0x4.bb053972acb4cp+4 : inexact-ok
+= sinh upward binary64 0x5.0512f8p+0 : 0x4.bb053972acb5p+4 : inexact-ok
+= sinh downward intel96 0x5.0512f8p+0 : 0x4.bb053972acb4d69p+4 : inexact-ok
+= sinh tonearest intel96 0x5.0512f8p+0 : 0x4.bb053972acb4d69p+4 : inexact-ok
+= sinh towardzero intel96 0x5.0512f8p+0 : 0x4.bb053972acb4d69p+4 : inexact-ok
+= sinh upward intel96 0x5.0512f8p+0 : 0x4.bb053972acb4d698p+4 : inexact-ok
+= sinh downward m68k96 0x5.0512f8p+0 : 0x4.bb053972acb4d69p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.0512f8p+0 : 0x4.bb053972acb4d69p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.0512f8p+0 : 0x4.bb053972acb4d69p+4 : inexact-ok
+= sinh upward m68k96 0x5.0512f8p+0 : 0x4.bb053972acb4d698p+4 : inexact-ok
+= sinh downward binary128 0x5.0512f8p+0 : 0x4.bb053972acb4d6913a1711b82814p+4 : inexact-ok
+= sinh tonearest binary128 0x5.0512f8p+0 : 0x4.bb053972acb4d6913a1711b82814p+4 : inexact-ok
+= sinh towardzero binary128 0x5.0512f8p+0 : 0x4.bb053972acb4d6913a1711b82814p+4 : inexact-ok
+= sinh upward binary128 0x5.0512f8p+0 : 0x4.bb053972acb4d6913a1711b82818p+4 : inexact-ok
+= sinh downward ibm128 0x5.0512f8p+0 : 0x4.bb053972acb4d6913a1711b828p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.0512f8p+0 : 0x4.bb053972acb4d6913a1711b828p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.0512f8p+0 : 0x4.bb053972acb4d6913a1711b828p+4 : inexact-ok
+= sinh upward ibm128 0x5.0512f8p+0 : 0x4.bb053972acb4d6913a1711b82ap+4 : inexact-ok
+= sinh downward binary32 0x5.0512fp+0 : 0x4.bb051p+4 : inexact-ok
+= sinh tonearest binary32 0x5.0512fp+0 : 0x4.bb051p+4 : inexact-ok
+= sinh towardzero binary32 0x5.0512fp+0 : 0x4.bb051p+4 : inexact-ok
+= sinh upward binary32 0x5.0512fp+0 : 0x4.bb0518p+4 : inexact-ok
+= sinh downward binary64 0x5.0512fp+0 : 0x4.bb051399ab0bcp+4 : inexact-ok
+= sinh tonearest binary64 0x5.0512fp+0 : 0x4.bb051399ab0cp+4 : inexact-ok
+= sinh towardzero binary64 0x5.0512fp+0 : 0x4.bb051399ab0bcp+4 : inexact-ok
+= sinh upward binary64 0x5.0512fp+0 : 0x4.bb051399ab0cp+4 : inexact-ok
+= sinh downward intel96 0x5.0512fp+0 : 0x4.bb051399ab0be948p+4 : inexact-ok
+= sinh tonearest intel96 0x5.0512fp+0 : 0x4.bb051399ab0be95p+4 : inexact-ok
+= sinh towardzero intel96 0x5.0512fp+0 : 0x4.bb051399ab0be948p+4 : inexact-ok
+= sinh upward intel96 0x5.0512fp+0 : 0x4.bb051399ab0be95p+4 : inexact-ok
+= sinh downward m68k96 0x5.0512fp+0 : 0x4.bb051399ab0be948p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.0512fp+0 : 0x4.bb051399ab0be95p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.0512fp+0 : 0x4.bb051399ab0be948p+4 : inexact-ok
+= sinh upward m68k96 0x5.0512fp+0 : 0x4.bb051399ab0be95p+4 : inexact-ok
+= sinh downward binary128 0x5.0512fp+0 : 0x4.bb051399ab0be94e65cd4be652cp+4 : inexact-ok
+= sinh tonearest binary128 0x5.0512fp+0 : 0x4.bb051399ab0be94e65cd4be652c4p+4 : inexact-ok
+= sinh towardzero binary128 0x5.0512fp+0 : 0x4.bb051399ab0be94e65cd4be652cp+4 : inexact-ok
+= sinh upward binary128 0x5.0512fp+0 : 0x4.bb051399ab0be94e65cd4be652c4p+4 : inexact-ok
+= sinh downward ibm128 0x5.0512fp+0 : 0x4.bb051399ab0be94e65cd4be652p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.0512fp+0 : 0x4.bb051399ab0be94e65cd4be652p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.0512fp+0 : 0x4.bb051399ab0be94e65cd4be652p+4 : inexact-ok
+= sinh upward ibm128 0x5.0512fp+0 : 0x4.bb051399ab0be94e65cd4be654p+4 : inexact-ok
+= sinh downward binary64 0x5.0512f62783aep+0 : 0x4.bb0530b75d104p+4 : inexact-ok
+= sinh tonearest binary64 0x5.0512f62783aep+0 : 0x4.bb0530b75d108p+4 : inexact-ok
+= sinh towardzero binary64 0x5.0512f62783aep+0 : 0x4.bb0530b75d104p+4 : inexact-ok
+= sinh upward binary64 0x5.0512f62783aep+0 : 0x4.bb0530b75d108p+4 : inexact-ok
+= sinh downward intel96 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.0512f62783aep+0 : 0x4.bb0530b75d108p+4 : inexact-ok
+= sinh towardzero intel96 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.0512f62783aep+0 : 0x4.bb0530b75d108p+4 : inexact-ok
+= sinh downward m68k96 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.0512f62783aep+0 : 0x4.bb0530b75d108p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.0512f62783aep+0 : 0x4.bb0530b75d108p+4 : inexact-ok
+= sinh downward binary128 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ffef9b0057b1f78p+4 : inexact-ok
+= sinh tonearest binary128 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ffef9b0057b1f7cp+4 : inexact-ok
+= sinh towardzero binary128 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ffef9b0057b1f78p+4 : inexact-ok
+= sinh upward binary128 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ffef9b0057b1f7cp+4 : inexact-ok
+= sinh downward ibm128 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ffef9b0057b1ep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ffef9b0057b2p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ffef9b0057b1ep+4 : inexact-ok
+= sinh upward ibm128 0x5.0512f62783aep+0 : 0x4.bb0530b75d107ffef9b0057b2p+4 : inexact-ok
+sinh 0x1.403d4a3c61f18p+2
+= sinh downward binary32 0x5.00f53p+0 : 0x4.a7b3bp+4 : inexact-ok
+= sinh tonearest binary32 0x5.00f53p+0 : 0x4.a7b3bp+4 : inexact-ok
+= sinh towardzero binary32 0x5.00f53p+0 : 0x4.a7b3bp+4 : inexact-ok
+= sinh upward binary32 0x5.00f53p+0 : 0x4.a7b3b8p+4 : inexact-ok
+= sinh downward binary64 0x5.00f53p+0 : 0x4.a7b3b09509fdcp+4 : inexact-ok
+= sinh tonearest binary64 0x5.00f53p+0 : 0x4.a7b3b09509fep+4 : inexact-ok
+= sinh towardzero binary64 0x5.00f53p+0 : 0x4.a7b3b09509fdcp+4 : inexact-ok
+= sinh upward binary64 0x5.00f53p+0 : 0x4.a7b3b09509fep+4 : inexact-ok
+= sinh downward intel96 0x5.00f53p+0 : 0x4.a7b3b09509fdf86p+4 : inexact-ok
+= sinh tonearest intel96 0x5.00f53p+0 : 0x4.a7b3b09509fdf86p+4 : inexact-ok
+= sinh towardzero intel96 0x5.00f53p+0 : 0x4.a7b3b09509fdf86p+4 : inexact-ok
+= sinh upward intel96 0x5.00f53p+0 : 0x4.a7b3b09509fdf868p+4 : inexact-ok
+= sinh downward m68k96 0x5.00f53p+0 : 0x4.a7b3b09509fdf86p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.00f53p+0 : 0x4.a7b3b09509fdf86p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.00f53p+0 : 0x4.a7b3b09509fdf86p+4 : inexact-ok
+= sinh upward m68k96 0x5.00f53p+0 : 0x4.a7b3b09509fdf868p+4 : inexact-ok
+= sinh downward binary128 0x5.00f53p+0 : 0x4.a7b3b09509fdf86088495680df08p+4 : inexact-ok
+= sinh tonearest binary128 0x5.00f53p+0 : 0x4.a7b3b09509fdf86088495680df08p+4 : inexact-ok
+= sinh towardzero binary128 0x5.00f53p+0 : 0x4.a7b3b09509fdf86088495680df08p+4 : inexact-ok
+= sinh upward binary128 0x5.00f53p+0 : 0x4.a7b3b09509fdf86088495680df0cp+4 : inexact-ok
+= sinh downward ibm128 0x5.00f53p+0 : 0x4.a7b3b09509fdf86088495680dep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.00f53p+0 : 0x4.a7b3b09509fdf86088495680ep+4 : inexact-ok
+= sinh towardzero ibm128 0x5.00f53p+0 : 0x4.a7b3b09509fdf86088495680dep+4 : inexact-ok
+= sinh upward ibm128 0x5.00f53p+0 : 0x4.a7b3b09509fdf86088495680ep+4 : inexact-ok
+= sinh downward binary32 0x5.00f528p+0 : 0x4.a7b388p+4 : inexact-ok
+= sinh tonearest binary32 0x5.00f528p+0 : 0x4.a7b388p+4 : inexact-ok
+= sinh towardzero binary32 0x5.00f528p+0 : 0x4.a7b388p+4 : inexact-ok
+= sinh upward binary32 0x5.00f528p+0 : 0x4.a7b39p+4 : inexact-ok
+= sinh downward binary64 0x5.00f528p+0 : 0x4.a7b38b5691174p+4 : inexact-ok
+= sinh tonearest binary64 0x5.00f528p+0 : 0x4.a7b38b5691174p+4 : inexact-ok
+= sinh towardzero binary64 0x5.00f528p+0 : 0x4.a7b38b5691174p+4 : inexact-ok
+= sinh upward binary64 0x5.00f528p+0 : 0x4.a7b38b5691178p+4 : inexact-ok
+= sinh downward intel96 0x5.00f528p+0 : 0x4.a7b38b569117591p+4 : inexact-ok
+= sinh tonearest intel96 0x5.00f528p+0 : 0x4.a7b38b5691175918p+4 : inexact-ok
+= sinh towardzero intel96 0x5.00f528p+0 : 0x4.a7b38b569117591p+4 : inexact-ok
+= sinh upward intel96 0x5.00f528p+0 : 0x4.a7b38b5691175918p+4 : inexact-ok
+= sinh downward m68k96 0x5.00f528p+0 : 0x4.a7b38b569117591p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.00f528p+0 : 0x4.a7b38b5691175918p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.00f528p+0 : 0x4.a7b38b569117591p+4 : inexact-ok
+= sinh upward m68k96 0x5.00f528p+0 : 0x4.a7b38b5691175918p+4 : inexact-ok
+= sinh downward binary128 0x5.00f528p+0 : 0x4.a7b38b5691175917c97dab9dcf34p+4 : inexact-ok
+= sinh tonearest binary128 0x5.00f528p+0 : 0x4.a7b38b5691175917c97dab9dcf34p+4 : inexact-ok
+= sinh towardzero binary128 0x5.00f528p+0 : 0x4.a7b38b5691175917c97dab9dcf34p+4 : inexact-ok
+= sinh upward binary128 0x5.00f528p+0 : 0x4.a7b38b5691175917c97dab9dcf38p+4 : inexact-ok
+= sinh downward ibm128 0x5.00f528p+0 : 0x4.a7b38b5691175917c97dab9dcep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.00f528p+0 : 0x4.a7b38b5691175917c97dab9ddp+4 : inexact-ok
+= sinh towardzero ibm128 0x5.00f528p+0 : 0x4.a7b38b5691175917c97dab9dcep+4 : inexact-ok
+= sinh upward ibm128 0x5.00f528p+0 : 0x4.a7b38b5691175917c97dab9ddp+4 : inexact-ok
+= sinh downward binary64 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319cp+4 : inexact-ok
+= sinh tonearest binary64 0x5.00f528f187c6p+0 : 0x4.a7b38fbb031ap+4 : inexact-ok
+= sinh towardzero binary64 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319cp+4 : inexact-ok
+= sinh upward binary64 0x5.00f528f187c6p+0 : 0x4.a7b38fbb031ap+4 : inexact-ok
+= sinh downward intel96 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319fff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.00f528f187c6p+0 : 0x4.a7b38fbb031ap+4 : inexact-ok
+= sinh towardzero intel96 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319fff8p+4 : inexact-ok
+= sinh upward intel96 0x5.00f528f187c6p+0 : 0x4.a7b38fbb031ap+4 : inexact-ok
+= sinh downward m68k96 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319fff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.00f528f187c6p+0 : 0x4.a7b38fbb031ap+4 : inexact-ok
+= sinh towardzero m68k96 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319fff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.00f528f187c6p+0 : 0x4.a7b38fbb031ap+4 : inexact-ok
+= sinh downward binary128 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319ffff73a9fcc76a38p+4 : inexact-ok
+= sinh tonearest binary128 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319ffff73a9fcc76a3cp+4 : inexact-ok
+= sinh towardzero binary128 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319ffff73a9fcc76a38p+4 : inexact-ok
+= sinh upward binary128 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319ffff73a9fcc76a3cp+4 : inexact-ok
+= sinh downward ibm128 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319ffff73a9fcc76ap+4 : inexact-ok
+= sinh tonearest ibm128 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319ffff73a9fcc76ap+4 : inexact-ok
+= sinh towardzero ibm128 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319ffff73a9fcc76ap+4 : inexact-ok
+= sinh upward ibm128 0x5.00f528f187c6p+0 : 0x4.a7b38fbb0319ffff73a9fcc76cp+4 : inexact-ok
+sinh 0x1.41d7bcbdf9fccp+2
+= sinh downward binary32 0x5.075ef8p+0 : 0x4.c5ef88p+4 : inexact-ok
+= sinh tonearest binary32 0x5.075ef8p+0 : 0x4.c5ef88p+4 : inexact-ok
+= sinh towardzero binary32 0x5.075ef8p+0 : 0x4.c5ef88p+4 : inexact-ok
+= sinh upward binary32 0x5.075ef8p+0 : 0x4.c5ef9p+4 : inexact-ok
+= sinh downward binary64 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea4p+4 : inexact-ok
+= sinh tonearest binary64 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea4p+4 : inexact-ok
+= sinh upward binary64 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea8p+4 : inexact-ok
+= sinh downward intel96 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea7458p+4 : inexact-ok
+= sinh tonearest intel96 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea746p+4 : inexact-ok
+= sinh towardzero intel96 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea7458p+4 : inexact-ok
+= sinh upward intel96 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea746p+4 : inexact-ok
+= sinh downward m68k96 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea7458p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea746p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea7458p+4 : inexact-ok
+= sinh upward m68k96 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea746p+4 : inexact-ok
+= sinh downward binary128 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea745c127e54d8052p+4 : inexact-ok
+= sinh tonearest binary128 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea745c127e54d80524p+4 : inexact-ok
+= sinh towardzero binary128 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea745c127e54d8052p+4 : inexact-ok
+= sinh upward binary128 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea745c127e54d80524p+4 : inexact-ok
+= sinh downward ibm128 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea745c127e54d804p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea745c127e54d806p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea745c127e54d804p+4 : inexact-ok
+= sinh upward ibm128 0x5.075ef8p+0 : 0x4.c5ef8b9ef8ea745c127e54d806p+4 : inexact-ok
+= sinh downward binary32 0x5.075efp+0 : 0x4.c5ef6p+4 : inexact-ok
+= sinh tonearest binary32 0x5.075efp+0 : 0x4.c5ef68p+4 : inexact-ok
+= sinh towardzero binary32 0x5.075efp+0 : 0x4.c5ef6p+4 : inexact-ok
+= sinh upward binary32 0x5.075efp+0 : 0x4.c5ef68p+4 : inexact-ok
+= sinh downward binary64 0x5.075efp+0 : 0x4.c5ef656ea6a04p+4 : inexact-ok
+= sinh tonearest binary64 0x5.075efp+0 : 0x4.c5ef656ea6a08p+4 : inexact-ok
+= sinh towardzero binary64 0x5.075efp+0 : 0x4.c5ef656ea6a04p+4 : inexact-ok
+= sinh upward binary64 0x5.075efp+0 : 0x4.c5ef656ea6a08p+4 : inexact-ok
+= sinh downward intel96 0x5.075efp+0 : 0x4.c5ef656ea6a074dp+4 : inexact-ok
+= sinh tonearest intel96 0x5.075efp+0 : 0x4.c5ef656ea6a074d8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.075efp+0 : 0x4.c5ef656ea6a074dp+4 : inexact-ok
+= sinh upward intel96 0x5.075efp+0 : 0x4.c5ef656ea6a074d8p+4 : inexact-ok
+= sinh downward m68k96 0x5.075efp+0 : 0x4.c5ef656ea6a074dp+4 : inexact-ok
+= sinh tonearest m68k96 0x5.075efp+0 : 0x4.c5ef656ea6a074d8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.075efp+0 : 0x4.c5ef656ea6a074dp+4 : inexact-ok
+= sinh upward m68k96 0x5.075efp+0 : 0x4.c5ef656ea6a074d8p+4 : inexact-ok
+= sinh downward binary128 0x5.075efp+0 : 0x4.c5ef656ea6a074d52806ac261b24p+4 : inexact-ok
+= sinh tonearest binary128 0x5.075efp+0 : 0x4.c5ef656ea6a074d52806ac261b24p+4 : inexact-ok
+= sinh towardzero binary128 0x5.075efp+0 : 0x4.c5ef656ea6a074d52806ac261b24p+4 : inexact-ok
+= sinh upward binary128 0x5.075efp+0 : 0x4.c5ef656ea6a074d52806ac261b28p+4 : inexact-ok
+= sinh downward ibm128 0x5.075efp+0 : 0x4.c5ef656ea6a074d52806ac261ap+4 : inexact-ok
+= sinh tonearest ibm128 0x5.075efp+0 : 0x4.c5ef656ea6a074d52806ac261cp+4 : inexact-ok
+= sinh towardzero ibm128 0x5.075efp+0 : 0x4.c5ef656ea6a074d52806ac261ap+4 : inexact-ok
+= sinh upward ibm128 0x5.075efp+0 : 0x4.c5ef656ea6a074d52806ac261cp+4 : inexact-ok
+= sinh downward binary64 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a2237p+4 : inexact-ok
+= sinh tonearest binary64 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22374p+4 : inexact-ok
+= sinh towardzero binary64 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a2237p+4 : inexact-ok
+= sinh upward binary64 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22374p+4 : inexact-ok
+= sinh downward intel96 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22374p+4 : inexact-ok
+= sinh towardzero intel96 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22374p+4 : inexact-ok
+= sinh downward m68k96 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22374p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22374p+4 : inexact-ok
+= sinh downward binary128 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373fff288077394ddcp+4 : inexact-ok
+= sinh tonearest binary128 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373fff288077394dep+4 : inexact-ok
+= sinh towardzero binary128 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373fff288077394ddcp+4 : inexact-ok
+= sinh upward binary128 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373fff288077394dep+4 : inexact-ok
+= sinh downward ibm128 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373fff288077394cp+4 : inexact-ok
+= sinh tonearest ibm128 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373fff288077394ep+4 : inexact-ok
+= sinh towardzero ibm128 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373fff288077394cp+4 : inexact-ok
+= sinh upward ibm128 0x5.075ef2f7e7f3p+0 : 0x4.c5ef739a22373fff288077394ep+4 : inexact-ok
+sinh 0x1.42575956957ap+2
+= sinh downward binary32 0x5.095d68p+0 : 0x4.cf7da8p+4 : inexact-ok
+= sinh tonearest binary32 0x5.095d68p+0 : 0x4.cf7dbp+4 : inexact-ok
+= sinh towardzero binary32 0x5.095d68p+0 : 0x4.cf7da8p+4 : inexact-ok
+= sinh upward binary32 0x5.095d68p+0 : 0x4.cf7dbp+4 : inexact-ok
+= sinh downward binary64 0x5.095d68p+0 : 0x4.cf7dae33802c8p+4 : inexact-ok
+= sinh tonearest binary64 0x5.095d68p+0 : 0x4.cf7dae33802c8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.095d68p+0 : 0x4.cf7dae33802c8p+4 : inexact-ok
+= sinh upward binary64 0x5.095d68p+0 : 0x4.cf7dae33802ccp+4 : inexact-ok
+= sinh downward intel96 0x5.095d68p+0 : 0x4.cf7dae33802c8a98p+4 : inexact-ok
+= sinh tonearest intel96 0x5.095d68p+0 : 0x4.cf7dae33802c8aap+4 : inexact-ok
+= sinh towardzero intel96 0x5.095d68p+0 : 0x4.cf7dae33802c8a98p+4 : inexact-ok
+= sinh upward intel96 0x5.095d68p+0 : 0x4.cf7dae33802c8aap+4 : inexact-ok
+= sinh downward m68k96 0x5.095d68p+0 : 0x4.cf7dae33802c8a98p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.095d68p+0 : 0x4.cf7dae33802c8aap+4 : inexact-ok
+= sinh towardzero m68k96 0x5.095d68p+0 : 0x4.cf7dae33802c8a98p+4 : inexact-ok
+= sinh upward m68k96 0x5.095d68p+0 : 0x4.cf7dae33802c8aap+4 : inexact-ok
+= sinh downward binary128 0x5.095d68p+0 : 0x4.cf7dae33802c8a9eac68aec250ccp+4 : inexact-ok
+= sinh tonearest binary128 0x5.095d68p+0 : 0x4.cf7dae33802c8a9eac68aec250dp+4 : inexact-ok
+= sinh towardzero binary128 0x5.095d68p+0 : 0x4.cf7dae33802c8a9eac68aec250ccp+4 : inexact-ok
+= sinh upward binary128 0x5.095d68p+0 : 0x4.cf7dae33802c8a9eac68aec250dp+4 : inexact-ok
+= sinh downward ibm128 0x5.095d68p+0 : 0x4.cf7dae33802c8a9eac68aec25p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.095d68p+0 : 0x4.cf7dae33802c8a9eac68aec25p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.095d68p+0 : 0x4.cf7dae33802c8a9eac68aec25p+4 : inexact-ok
+= sinh upward ibm128 0x5.095d68p+0 : 0x4.cf7dae33802c8a9eac68aec252p+4 : inexact-ok
+= sinh downward binary32 0x5.095d6p+0 : 0x4.cf7d8p+4 : inexact-ok
+= sinh tonearest binary32 0x5.095d6p+0 : 0x4.cf7d88p+4 : inexact-ok
+= sinh towardzero binary32 0x5.095d6p+0 : 0x4.cf7d8p+4 : inexact-ok
+= sinh upward binary32 0x5.095d6p+0 : 0x4.cf7d88p+4 : inexact-ok
+= sinh downward binary64 0x5.095d6p+0 : 0x4.cf7d87b6be79p+4 : inexact-ok
+= sinh tonearest binary64 0x5.095d6p+0 : 0x4.cf7d87b6be794p+4 : inexact-ok
+= sinh towardzero binary64 0x5.095d6p+0 : 0x4.cf7d87b6be79p+4 : inexact-ok
+= sinh upward binary64 0x5.095d6p+0 : 0x4.cf7d87b6be794p+4 : inexact-ok
+= sinh downward intel96 0x5.095d6p+0 : 0x4.cf7d87b6be792ba8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.095d6p+0 : 0x4.cf7d87b6be792ba8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.095d6p+0 : 0x4.cf7d87b6be792ba8p+4 : inexact-ok
+= sinh upward intel96 0x5.095d6p+0 : 0x4.cf7d87b6be792bbp+4 : inexact-ok
+= sinh downward m68k96 0x5.095d6p+0 : 0x4.cf7d87b6be792ba8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.095d6p+0 : 0x4.cf7d87b6be792ba8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.095d6p+0 : 0x4.cf7d87b6be792ba8p+4 : inexact-ok
+= sinh upward m68k96 0x5.095d6p+0 : 0x4.cf7d87b6be792bbp+4 : inexact-ok
+= sinh downward binary128 0x5.095d6p+0 : 0x4.cf7d87b6be792ba909be640f0a4cp+4 : inexact-ok
+= sinh tonearest binary128 0x5.095d6p+0 : 0x4.cf7d87b6be792ba909be640f0a5p+4 : inexact-ok
+= sinh towardzero binary128 0x5.095d6p+0 : 0x4.cf7d87b6be792ba909be640f0a4cp+4 : inexact-ok
+= sinh upward binary128 0x5.095d6p+0 : 0x4.cf7d87b6be792ba909be640f0a5p+4 : inexact-ok
+= sinh downward ibm128 0x5.095d6p+0 : 0x4.cf7d87b6be792ba909be640f0ap+4 : inexact-ok
+= sinh tonearest ibm128 0x5.095d6p+0 : 0x4.cf7d87b6be792ba909be640f0ap+4 : inexact-ok
+= sinh towardzero ibm128 0x5.095d6p+0 : 0x4.cf7d87b6be792ba909be640f0ap+4 : inexact-ok
+= sinh upward ibm128 0x5.095d6p+0 : 0x4.cf7d87b6be792ba909be640f0cp+4 : inexact-ok
+= sinh downward binary64 0x5.095d655a55e8p+0 : 0x4.cf7da1775033cp+4 : inexact-ok
+= sinh tonearest binary64 0x5.095d655a55e8p+0 : 0x4.cf7da1775034p+4 : inexact-ok
+= sinh towardzero binary64 0x5.095d655a55e8p+0 : 0x4.cf7da1775033cp+4 : inexact-ok
+= sinh upward binary64 0x5.095d655a55e8p+0 : 0x4.cf7da1775034p+4 : inexact-ok
+= sinh downward intel96 0x5.095d655a55e8p+0 : 0x4.cf7da1775033fff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.095d655a55e8p+0 : 0x4.cf7da1775034p+4 : inexact-ok
+= sinh towardzero intel96 0x5.095d655a55e8p+0 : 0x4.cf7da1775033fff8p+4 : inexact-ok
+= sinh upward intel96 0x5.095d655a55e8p+0 : 0x4.cf7da1775034p+4 : inexact-ok
+= sinh downward m68k96 0x5.095d655a55e8p+0 : 0x4.cf7da1775033fff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.095d655a55e8p+0 : 0x4.cf7da1775034p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.095d655a55e8p+0 : 0x4.cf7da1775033fff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.095d655a55e8p+0 : 0x4.cf7da1775034p+4 : inexact-ok
+= sinh downward binary128 0x5.095d655a55e8p+0 : 0x4.cf7da1775033ffff6c6482eba66cp+4 : inexact-ok
+= sinh tonearest binary128 0x5.095d655a55e8p+0 : 0x4.cf7da1775033ffff6c6482eba66cp+4 : inexact-ok
+= sinh towardzero binary128 0x5.095d655a55e8p+0 : 0x4.cf7da1775033ffff6c6482eba66cp+4 : inexact-ok
+= sinh upward binary128 0x5.095d655a55e8p+0 : 0x4.cf7da1775033ffff6c6482eba67p+4 : inexact-ok
+= sinh downward ibm128 0x5.095d655a55e8p+0 : 0x4.cf7da1775033ffff6c6482eba6p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.095d655a55e8p+0 : 0x4.cf7da1775033ffff6c6482eba6p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.095d655a55e8p+0 : 0x4.cf7da1775033ffff6c6482eba6p+4 : inexact-ok
+= sinh upward ibm128 0x5.095d655a55e8p+0 : 0x4.cf7da1775033ffff6c6482eba8p+4 : inexact-ok
+sinh -0x1.09e94dfa477cp-2
+= sinh downward binary32 -0x4.27a53p-4 : -0x4.33a3dp-4 : inexact-ok
+= sinh tonearest binary32 -0x4.27a53p-4 : -0x4.33a3c8p-4 : inexact-ok
+= sinh towardzero binary32 -0x4.27a53p-4 : -0x4.33a3c8p-4 : inexact-ok
+= sinh upward binary32 -0x4.27a53p-4 : -0x4.33a3c8p-4 : inexact-ok
+= sinh downward binary64 -0x4.27a53p-4 : -0x4.33a3c9ed407f8p-4 : inexact-ok
+= sinh tonearest binary64 -0x4.27a53p-4 : -0x4.33a3c9ed407f8p-4 : inexact-ok
+= sinh towardzero binary64 -0x4.27a53p-4 : -0x4.33a3c9ed407f4p-4 : inexact-ok
+= sinh upward binary64 -0x4.27a53p-4 : -0x4.33a3c9ed407f4p-4 : inexact-ok
+= sinh downward intel96 -0x4.27a53p-4 : -0x4.33a3c9ed407f61p-4 : inexact-ok
+= sinh tonearest intel96 -0x4.27a53p-4 : -0x4.33a3c9ed407f60f8p-4 : inexact-ok
+= sinh towardzero intel96 -0x4.27a53p-4 : -0x4.33a3c9ed407f60f8p-4 : inexact-ok
+= sinh upward intel96 -0x4.27a53p-4 : -0x4.33a3c9ed407f60f8p-4 : inexact-ok
+= sinh downward m68k96 -0x4.27a53p-4 : -0x4.33a3c9ed407f61p-4 : inexact-ok
+= sinh tonearest m68k96 -0x4.27a53p-4 : -0x4.33a3c9ed407f60f8p-4 : inexact-ok
+= sinh towardzero m68k96 -0x4.27a53p-4 : -0x4.33a3c9ed407f60f8p-4 : inexact-ok
+= sinh upward m68k96 -0x4.27a53p-4 : -0x4.33a3c9ed407f60f8p-4 : inexact-ok
+= sinh downward binary128 -0x4.27a53p-4 : -0x4.33a3c9ed407f60fa02fe3162dffcp-4 : inexact-ok
+= sinh tonearest binary128 -0x4.27a53p-4 : -0x4.33a3c9ed407f60fa02fe3162dffcp-4 : inexact-ok
+= sinh towardzero binary128 -0x4.27a53p-4 : -0x4.33a3c9ed407f60fa02fe3162dff8p-4 : inexact-ok
+= sinh upward binary128 -0x4.27a53p-4 : -0x4.33a3c9ed407f60fa02fe3162dff8p-4 : inexact-ok
+= sinh downward ibm128 -0x4.27a53p-4 : -0x4.33a3c9ed407f60fa02fe3162ep-4 : inexact-ok
+= sinh tonearest ibm128 -0x4.27a53p-4 : -0x4.33a3c9ed407f60fa02fe3162ep-4 : inexact-ok
+= sinh towardzero ibm128 -0x4.27a53p-4 : -0x4.33a3c9ed407f60fa02fe3162dep-4 : inexact-ok
+= sinh upward ibm128 -0x4.27a53p-4 : -0x4.33a3c9ed407f60fa02fe3162dep-4 : inexact-ok
+= sinh downward binary32 -0x4.27a538p-4 : -0x4.33a3d8p-4 : inexact-ok
+= sinh tonearest binary32 -0x4.27a538p-4 : -0x4.33a3dp-4 : inexact-ok
+= sinh towardzero binary32 -0x4.27a538p-4 : -0x4.33a3dp-4 : inexact-ok
+= sinh upward binary32 -0x4.27a538p-4 : -0x4.33a3dp-4 : inexact-ok
+= sinh downward binary64 -0x4.27a538p-4 : -0x4.33a3d232b1444p-4 : inexact-ok
+= sinh tonearest binary64 -0x4.27a538p-4 : -0x4.33a3d232b144p-4 : inexact-ok
+= sinh towardzero binary64 -0x4.27a538p-4 : -0x4.33a3d232b144p-4 : inexact-ok
+= sinh upward binary64 -0x4.27a538p-4 : -0x4.33a3d232b144p-4 : inexact-ok
+= sinh downward intel96 -0x4.27a538p-4 : -0x4.33a3d232b1441b18p-4 : inexact-ok
+= sinh tonearest intel96 -0x4.27a538p-4 : -0x4.33a3d232b1441b1p-4 : inexact-ok
+= sinh towardzero intel96 -0x4.27a538p-4 : -0x4.33a3d232b1441b1p-4 : inexact-ok
+= sinh upward intel96 -0x4.27a538p-4 : -0x4.33a3d232b1441b1p-4 : inexact-ok
+= sinh downward m68k96 -0x4.27a538p-4 : -0x4.33a3d232b1441b18p-4 : inexact-ok
+= sinh tonearest m68k96 -0x4.27a538p-4 : -0x4.33a3d232b1441b1p-4 : inexact-ok
+= sinh towardzero m68k96 -0x4.27a538p-4 : -0x4.33a3d232b1441b1p-4 : inexact-ok
+= sinh upward m68k96 -0x4.27a538p-4 : -0x4.33a3d232b1441b1p-4 : inexact-ok
+= sinh downward binary128 -0x4.27a538p-4 : -0x4.33a3d232b1441b121cbb84e9d674p-4 : inexact-ok
+= sinh tonearest binary128 -0x4.27a538p-4 : -0x4.33a3d232b1441b121cbb84e9d67p-4 : inexact-ok
+= sinh towardzero binary128 -0x4.27a538p-4 : -0x4.33a3d232b1441b121cbb84e9d67p-4 : inexact-ok
+= sinh upward binary128 -0x4.27a538p-4 : -0x4.33a3d232b1441b121cbb84e9d67p-4 : inexact-ok
+= sinh downward ibm128 -0x4.27a538p-4 : -0x4.33a3d232b1441b121cbb84e9d8p-4 : inexact-ok
+= sinh tonearest ibm128 -0x4.27a538p-4 : -0x4.33a3d232b1441b121cbb84e9d6p-4 : inexact-ok
+= sinh towardzero ibm128 -0x4.27a538p-4 : -0x4.33a3d232b1441b121cbb84e9d6p-4 : inexact-ok
+= sinh upward ibm128 -0x4.27a538p-4 : -0x4.33a3d232b1441b121cbb84e9d6p-4 : inexact-ok
+= sinh downward binary64 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893cp-4 : inexact-ok
+= sinh tonearest binary64 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893cp-4 : inexact-ok
+= sinh towardzero binary64 -0x4.27a537e91dfp-4 : -0x4.33a3d21b08938p-4 : inexact-ok
+= sinh upward binary64 -0x4.27a537e91dfp-4 : -0x4.33a3d21b08938p-4 : inexact-ok
+= sinh downward intel96 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893cp-4 : inexact-ok
+= sinh tonearest intel96 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893cp-4 : inexact-ok
+= sinh towardzero intel96 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bff8p-4 : inexact-ok
+= sinh upward intel96 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bff8p-4 : inexact-ok
+= sinh downward m68k96 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893cp-4 : inexact-ok
+= sinh tonearest m68k96 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893cp-4 : inexact-ok
+= sinh towardzero m68k96 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bff8p-4 : inexact-ok
+= sinh upward m68k96 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bff8p-4 : inexact-ok
+= sinh downward binary128 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bffefc3600dfe07p-4 : inexact-ok
+= sinh tonearest binary128 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bffefc3600dfe06cp-4 : inexact-ok
+= sinh towardzero binary128 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bffefc3600dfe06cp-4 : inexact-ok
+= sinh upward binary128 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bffefc3600dfe06cp-4 : inexact-ok
+= sinh downward ibm128 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bffefc3600dfe2p-4 : inexact-ok
+= sinh tonearest ibm128 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bffefc3600dfep-4 : inexact-ok
+= sinh towardzero ibm128 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bffefc3600dfep-4 : inexact-ok
+= sinh upward ibm128 -0x4.27a537e91dfp-4 : -0x4.33a3d21b0893bffefc3600dfep-4 : inexact-ok
+sinh -0x1.40a6d6ee4ba13p+2
+= sinh downward binary32 -0x5.029b58p+0 : -0x4.af6768p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.029b58p+0 : -0x4.af676p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.029b58p+0 : -0x4.af676p+4 : inexact-ok
+= sinh upward binary32 -0x5.029b58p+0 : -0x4.af676p+4 : inexact-ok
+= sinh downward binary64 -0x5.029b58p+0 : -0x4.af676226f20a4p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.029b58p+0 : -0x4.af676226f20ap+4 : inexact-ok
+= sinh towardzero binary64 -0x5.029b58p+0 : -0x4.af676226f20ap+4 : inexact-ok
+= sinh upward binary64 -0x5.029b58p+0 : -0x4.af676226f20ap+4 : inexact-ok
+= sinh downward intel96 -0x5.029b58p+0 : -0x4.af676226f20a1c18p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.029b58p+0 : -0x4.af676226f20a1c18p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.029b58p+0 : -0x4.af676226f20a1c1p+4 : inexact-ok
+= sinh upward intel96 -0x5.029b58p+0 : -0x4.af676226f20a1c1p+4 : inexact-ok
+= sinh downward m68k96 -0x5.029b58p+0 : -0x4.af676226f20a1c18p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.029b58p+0 : -0x4.af676226f20a1c18p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.029b58p+0 : -0x4.af676226f20a1c1p+4 : inexact-ok
+= sinh upward m68k96 -0x5.029b58p+0 : -0x4.af676226f20a1c1p+4 : inexact-ok
+= sinh downward binary128 -0x5.029b58p+0 : -0x4.af676226f20a1c177e558c286bb4p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.029b58p+0 : -0x4.af676226f20a1c177e558c286bb4p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.029b58p+0 : -0x4.af676226f20a1c177e558c286bbp+4 : inexact-ok
+= sinh upward binary128 -0x5.029b58p+0 : -0x4.af676226f20a1c177e558c286bbp+4 : inexact-ok
+= sinh downward ibm128 -0x5.029b58p+0 : -0x4.af676226f20a1c177e558c286cp+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.029b58p+0 : -0x4.af676226f20a1c177e558c286cp+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.029b58p+0 : -0x4.af676226f20a1c177e558c286ap+4 : inexact-ok
+= sinh upward ibm128 -0x5.029b58p+0 : -0x4.af676226f20a1c177e558c286ap+4 : inexact-ok
+= sinh downward binary32 -0x5.029b6p+0 : -0x4.af6788p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.029b6p+0 : -0x4.af6788p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.029b6p+0 : -0x4.af678p+4 : inexact-ok
+= sinh upward binary32 -0x5.029b6p+0 : -0x4.af678p+4 : inexact-ok
+= sinh downward binary64 -0x5.029b6p+0 : -0x4.af6787a3083ecp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.029b6p+0 : -0x4.af6787a3083e8p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.029b6p+0 : -0x4.af6787a3083e8p+4 : inexact-ok
+= sinh upward binary64 -0x5.029b6p+0 : -0x4.af6787a3083e8p+4 : inexact-ok
+= sinh downward intel96 -0x5.029b6p+0 : -0x4.af6787a3083e9d1p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.029b6p+0 : -0x4.af6787a3083e9d08p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.029b6p+0 : -0x4.af6787a3083e9d08p+4 : inexact-ok
+= sinh upward intel96 -0x5.029b6p+0 : -0x4.af6787a3083e9d08p+4 : inexact-ok
+= sinh downward m68k96 -0x5.029b6p+0 : -0x4.af6787a3083e9d1p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.029b6p+0 : -0x4.af6787a3083e9d08p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.029b6p+0 : -0x4.af6787a3083e9d08p+4 : inexact-ok
+= sinh upward m68k96 -0x5.029b6p+0 : -0x4.af6787a3083e9d08p+4 : inexact-ok
+= sinh downward binary128 -0x5.029b6p+0 : -0x4.af6787a3083e9d09ad50adb4551cp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.029b6p+0 : -0x4.af6787a3083e9d09ad50adb4551cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.029b6p+0 : -0x4.af6787a3083e9d09ad50adb45518p+4 : inexact-ok
+= sinh upward binary128 -0x5.029b6p+0 : -0x4.af6787a3083e9d09ad50adb45518p+4 : inexact-ok
+= sinh downward ibm128 -0x5.029b6p+0 : -0x4.af6787a3083e9d09ad50adb456p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.029b6p+0 : -0x4.af6787a3083e9d09ad50adb456p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.029b6p+0 : -0x4.af6787a3083e9d09ad50adb454p+4 : inexact-ok
+= sinh upward ibm128 -0x5.029b6p+0 : -0x4.af6787a3083e9d09ad50adb454p+4 : inexact-ok
+= sinh downward binary64 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b18p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b18p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b14p+4 : inexact-ok
+= sinh upward binary64 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b14p+4 : inexact-ok
+= sinh downward intel96 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b18p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b18p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17ff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17ff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b18p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b18p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17ff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17ff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17fff850a0bdbc274p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17fff850a0bdbc274p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17fff850a0bdbc27p+4 : inexact-ok
+= sinh upward binary128 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17fff850a0bdbc27p+4 : inexact-ok
+= sinh downward ibm128 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17fff850a0bdbc4p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17fff850a0bdbc2p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17fff850a0bdbc2p+4 : inexact-ok
+= sinh upward ibm128 -0x5.029b5bb92e84cp+0 : -0x4.af67739929b17fff850a0bdbc2p+4 : inexact-ok
+sinh -0x1.42575380f620bp+2
+= sinh downward binary32 -0x5.095d48p+0 : -0x4.cf7d18p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.095d48p+0 : -0x4.cf7d18p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.095d48p+0 : -0x4.cf7d1p+4 : inexact-ok
+= sinh upward binary32 -0x5.095d48p+0 : -0x4.cf7d1p+4 : inexact-ok
+= sinh downward binary64 -0x5.095d48p+0 : -0x4.cf7d144080968p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.095d48p+0 : -0x4.cf7d144080964p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.095d48p+0 : -0x4.cf7d144080964p+4 : inexact-ok
+= sinh upward binary64 -0x5.095d48p+0 : -0x4.cf7d144080964p+4 : inexact-ok
+= sinh downward intel96 -0x5.095d48p+0 : -0x4.cf7d144080964afp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.095d48p+0 : -0x4.cf7d144080964afp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.095d48p+0 : -0x4.cf7d144080964ae8p+4 : inexact-ok
+= sinh upward intel96 -0x5.095d48p+0 : -0x4.cf7d144080964ae8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.095d48p+0 : -0x4.cf7d144080964afp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.095d48p+0 : -0x4.cf7d144080964afp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.095d48p+0 : -0x4.cf7d144080964ae8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.095d48p+0 : -0x4.cf7d144080964ae8p+4 : inexact-ok
+= sinh downward binary128 -0x5.095d48p+0 : -0x4.cf7d144080964aed371d2daae23p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.095d48p+0 : -0x4.cf7d144080964aed371d2daae23p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.095d48p+0 : -0x4.cf7d144080964aed371d2daae22cp+4 : inexact-ok
+= sinh upward binary128 -0x5.095d48p+0 : -0x4.cf7d144080964aed371d2daae22cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.095d48p+0 : -0x4.cf7d144080964aed371d2daae4p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.095d48p+0 : -0x4.cf7d144080964aed371d2daae2p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.095d48p+0 : -0x4.cf7d144080964aed371d2daae2p+4 : inexact-ok
+= sinh upward ibm128 -0x5.095d48p+0 : -0x4.cf7d144080964aed371d2daae2p+4 : inexact-ok
+= sinh downward binary32 -0x5.095d5p+0 : -0x4.cf7d4p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.095d5p+0 : -0x4.cf7d38p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.095d5p+0 : -0x4.cf7d38p+4 : inexact-ok
+= sinh upward binary32 -0x5.095d5p+0 : -0x4.cf7d38p+4 : inexact-ok
+= sinh downward binary64 -0x5.095d5p+0 : -0x4.cf7d3abd3eae4p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.095d5p+0 : -0x4.cf7d3abd3eaep+4 : inexact-ok
+= sinh towardzero binary64 -0x5.095d5p+0 : -0x4.cf7d3abd3eaep+4 : inexact-ok
+= sinh upward binary64 -0x5.095d5p+0 : -0x4.cf7d3abd3eaep+4 : inexact-ok
+= sinh downward intel96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bep+4 : inexact-ok
+= sinh tonearest intel96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh upward intel96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bep+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd8p+4 : inexact-ok
+= sinh downward binary128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74d18p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74d18p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74d14p+4 : inexact-ok
+= sinh upward binary128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74d14p+4 : inexact-ok
+= sinh downward ibm128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74ep+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74ep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74cp+4 : inexact-ok
+= sinh upward ibm128 -0x5.095d5p+0 : -0x4.cf7d3abd3eae0bd9ee489ce74cp+4 : inexact-ok
+= sinh downward binary64 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fcp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fcp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6f8p+4 : inexact-ok
+= sinh upward binary64 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6f8p+4 : inexact-ok
+= sinh downward intel96 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fcp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fcp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fcp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fcp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbfffd4f6d553d718p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbfffd4f6d553d718p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbfffd4f6d553d714p+4 : inexact-ok
+= sinh upward binary128 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbfffd4f6d553d714p+4 : inexact-ok
+= sinh downward ibm128 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbfffd4f6d553d8p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbfffd4f6d553d8p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbfffd4f6d553d6p+4 : inexact-ok
+= sinh upward ibm128 -0x5.095d4e03d882cp+0 : -0x4.cf7d31308f6fbfffd4f6d553d6p+4 : inexact-ok
+sinh -0x1.41342809b65ffp+2
+= sinh downward binary32 -0x5.04d0ap+0 : -0x4.b9cb88p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.04d0ap+0 : -0x4.b9cb8p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.04d0ap+0 : -0x4.b9cb8p+4 : inexact-ok
+= sinh upward binary32 -0x5.04d0ap+0 : -0x4.b9cb8p+4 : inexact-ok
+= sinh downward binary64 -0x5.04d0ap+0 : -0x4.b9cb83743b45cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.04d0ap+0 : -0x4.b9cb83743b45cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.04d0ap+0 : -0x4.b9cb83743b458p+4 : inexact-ok
+= sinh upward binary64 -0x5.04d0ap+0 : -0x4.b9cb83743b458p+4 : inexact-ok
+= sinh downward intel96 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd4p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd4p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd38p+4 : inexact-ok
+= sinh upward intel96 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd38p+4 : inexact-ok
+= sinh downward m68k96 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd4p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd4p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd38p+4 : inexact-ok
+= sinh upward m68k96 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd38p+4 : inexact-ok
+= sinh downward binary128 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd3cab0f1692f22p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd3cab0f1692f21cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd3cab0f1692f21cp+4 : inexact-ok
+= sinh upward binary128 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd3cab0f1692f21cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd3cab0f1692f4p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd3cab0f1692f2p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd3cab0f1692f2p+4 : inexact-ok
+= sinh upward ibm128 -0x5.04d0ap+0 : -0x4.b9cb83743b45bd3cab0f1692f2p+4 : inexact-ok
+= sinh downward binary32 -0x5.04d0a8p+0 : -0x4.b9cbbp+4 : inexact-ok
+= sinh tonearest binary32 -0x5.04d0a8p+0 : -0x4.b9cba8p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.04d0a8p+0 : -0x4.b9cba8p+4 : inexact-ok
+= sinh upward binary32 -0x5.04d0a8p+0 : -0x4.b9cba8p+4 : inexact-ok
+= sinh downward binary64 -0x5.04d0a8p+0 : -0x4.b9cba94370a58p+4 : inexact-ok
+= sinh tonearest binary64 -0x5.04d0a8p+0 : -0x4.b9cba94370a58p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.04d0a8p+0 : -0x4.b9cba94370a54p+4 : inexact-ok
+= sinh upward binary64 -0x5.04d0a8p+0 : -0x4.b9cba94370a54p+4 : inexact-ok
+= sinh downward intel96 -0x5.04d0a8p+0 : -0x4.b9cba94370a570d8p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.04d0a8p+0 : -0x4.b9cba94370a570dp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.04d0a8p+0 : -0x4.b9cba94370a570dp+4 : inexact-ok
+= sinh upward intel96 -0x5.04d0a8p+0 : -0x4.b9cba94370a570dp+4 : inexact-ok
+= sinh downward m68k96 -0x5.04d0a8p+0 : -0x4.b9cba94370a570d8p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.04d0a8p+0 : -0x4.b9cba94370a570dp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.04d0a8p+0 : -0x4.b9cba94370a570dp+4 : inexact-ok
+= sinh upward m68k96 -0x5.04d0a8p+0 : -0x4.b9cba94370a570dp+4 : inexact-ok
+= sinh downward binary128 -0x5.04d0a8p+0 : -0x4.b9cba94370a570d0c19c41824dacp+4 : inexact-ok
+= sinh tonearest binary128 -0x5.04d0a8p+0 : -0x4.b9cba94370a570d0c19c41824da8p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.04d0a8p+0 : -0x4.b9cba94370a570d0c19c41824da8p+4 : inexact-ok
+= sinh upward binary128 -0x5.04d0a8p+0 : -0x4.b9cba94370a570d0c19c41824da8p+4 : inexact-ok
+= sinh downward ibm128 -0x5.04d0a8p+0 : -0x4.b9cba94370a570d0c19c41824ep+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.04d0a8p+0 : -0x4.b9cba94370a570d0c19c41824ep+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.04d0a8p+0 : -0x4.b9cba94370a570d0c19c41824cp+4 : inexact-ok
+= sinh upward ibm128 -0x5.04d0a8p+0 : -0x4.b9cba94370a570d0c19c41824cp+4 : inexact-ok
+= sinh downward binary64 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd7708p+4 : inexact-ok
+= sinh upward binary64 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd7708p+4 : inexact-ok
+= sinh downward intel96 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770cp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770cp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770cp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770cp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bfffe606520f1b1p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bfffe606520f1b0cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bfffe606520f1b0cp+4 : inexact-ok
+= sinh upward binary128 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bfffe606520f1b0cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bfffe606520f1cp+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bfffe606520f1cp+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bfffe606520f1ap+4 : inexact-ok
+= sinh upward ibm128 -0x5.04d0a026d97fcp+0 : -0x4.b9cb842bd770bfffe606520f1ap+4 : inexact-ok
+sinh 0x1.420149be82e16p+2
+= sinh downward binary32 0x5.080528p+0 : 0x4.c909d8p+4 : inexact-ok
+= sinh tonearest binary32 0x5.080528p+0 : 0x4.c909ep+4 : inexact-ok
+= sinh towardzero binary32 0x5.080528p+0 : 0x4.c909d8p+4 : inexact-ok
+= sinh upward binary32 0x5.080528p+0 : 0x4.c909ep+4 : inexact-ok
+= sinh downward binary64 0x5.080528p+0 : 0x4.c909dd2a29098p+4 : inexact-ok
+= sinh tonearest binary64 0x5.080528p+0 : 0x4.c909dd2a2909cp+4 : inexact-ok
+= sinh towardzero binary64 0x5.080528p+0 : 0x4.c909dd2a29098p+4 : inexact-ok
+= sinh upward binary64 0x5.080528p+0 : 0x4.c909dd2a2909cp+4 : inexact-ok
+= sinh downward intel96 0x5.080528p+0 : 0x4.c909dd2a2909b278p+4 : inexact-ok
+= sinh tonearest intel96 0x5.080528p+0 : 0x4.c909dd2a2909b278p+4 : inexact-ok
+= sinh towardzero intel96 0x5.080528p+0 : 0x4.c909dd2a2909b278p+4 : inexact-ok
+= sinh upward intel96 0x5.080528p+0 : 0x4.c909dd2a2909b28p+4 : inexact-ok
+= sinh downward m68k96 0x5.080528p+0 : 0x4.c909dd2a2909b278p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.080528p+0 : 0x4.c909dd2a2909b278p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.080528p+0 : 0x4.c909dd2a2909b278p+4 : inexact-ok
+= sinh upward m68k96 0x5.080528p+0 : 0x4.c909dd2a2909b28p+4 : inexact-ok
+= sinh downward binary128 0x5.080528p+0 : 0x4.c909dd2a2909b27bd10e71dad7d4p+4 : inexact-ok
+= sinh tonearest binary128 0x5.080528p+0 : 0x4.c909dd2a2909b27bd10e71dad7d8p+4 : inexact-ok
+= sinh towardzero binary128 0x5.080528p+0 : 0x4.c909dd2a2909b27bd10e71dad7d4p+4 : inexact-ok
+= sinh upward binary128 0x5.080528p+0 : 0x4.c909dd2a2909b27bd10e71dad7d8p+4 : inexact-ok
+= sinh downward ibm128 0x5.080528p+0 : 0x4.c909dd2a2909b27bd10e71dad6p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.080528p+0 : 0x4.c909dd2a2909b27bd10e71dad8p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.080528p+0 : 0x4.c909dd2a2909b27bd10e71dad6p+4 : inexact-ok
+= sinh upward ibm128 0x5.080528p+0 : 0x4.c909dd2a2909b27bd10e71dad8p+4 : inexact-ok
+= sinh downward binary32 0x5.08052p+0 : 0x4.c909bp+4 : inexact-ok
+= sinh tonearest binary32 0x5.08052p+0 : 0x4.c909b8p+4 : inexact-ok
+= sinh towardzero binary32 0x5.08052p+0 : 0x4.c909bp+4 : inexact-ok
+= sinh upward binary32 0x5.08052p+0 : 0x4.c909b8p+4 : inexact-ok
+= sinh downward binary64 0x5.08052p+0 : 0x4.c909b6e104becp+4 : inexact-ok
+= sinh tonearest binary64 0x5.08052p+0 : 0x4.c909b6e104becp+4 : inexact-ok
+= sinh towardzero binary64 0x5.08052p+0 : 0x4.c909b6e104becp+4 : inexact-ok
+= sinh upward binary64 0x5.08052p+0 : 0x4.c909b6e104bfp+4 : inexact-ok
+= sinh downward intel96 0x5.08052p+0 : 0x4.c909b6e104bed288p+4 : inexact-ok
+= sinh tonearest intel96 0x5.08052p+0 : 0x4.c909b6e104bed288p+4 : inexact-ok
+= sinh towardzero intel96 0x5.08052p+0 : 0x4.c909b6e104bed288p+4 : inexact-ok
+= sinh upward intel96 0x5.08052p+0 : 0x4.c909b6e104bed29p+4 : inexact-ok
+= sinh downward m68k96 0x5.08052p+0 : 0x4.c909b6e104bed288p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.08052p+0 : 0x4.c909b6e104bed288p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.08052p+0 : 0x4.c909b6e104bed288p+4 : inexact-ok
+= sinh upward m68k96 0x5.08052p+0 : 0x4.c909b6e104bed29p+4 : inexact-ok
+= sinh downward binary128 0x5.08052p+0 : 0x4.c909b6e104bed28b63d3c72b0928p+4 : inexact-ok
+= sinh tonearest binary128 0x5.08052p+0 : 0x4.c909b6e104bed28b63d3c72b092cp+4 : inexact-ok
+= sinh towardzero binary128 0x5.08052p+0 : 0x4.c909b6e104bed28b63d3c72b0928p+4 : inexact-ok
+= sinh upward binary128 0x5.08052p+0 : 0x4.c909b6e104bed28b63d3c72b092cp+4 : inexact-ok
+= sinh downward ibm128 0x5.08052p+0 : 0x4.c909b6e104bed28b63d3c72b08p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.08052p+0 : 0x4.c909b6e104bed28b63d3c72b0ap+4 : inexact-ok
+= sinh towardzero ibm128 0x5.08052p+0 : 0x4.c909b6e104bed28b63d3c72b08p+4 : inexact-ok
+= sinh upward ibm128 0x5.08052p+0 : 0x4.c909b6e104bed28b63d3c72b0ap+4 : inexact-ok
+= sinh downward binary64 0x5.080526fa0b858p+0 : 0x4.c909d84484b74p+4 : inexact-ok
+= sinh tonearest binary64 0x5.080526fa0b858p+0 : 0x4.c909d84484b78p+4 : inexact-ok
+= sinh towardzero binary64 0x5.080526fa0b858p+0 : 0x4.c909d84484b74p+4 : inexact-ok
+= sinh upward binary64 0x5.080526fa0b858p+0 : 0x4.c909d84484b78p+4 : inexact-ok
+= sinh downward intel96 0x5.080526fa0b858p+0 : 0x4.c909d84484b77ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.080526fa0b858p+0 : 0x4.c909d84484b78p+4 : inexact-ok
+= sinh towardzero intel96 0x5.080526fa0b858p+0 : 0x4.c909d84484b77ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.080526fa0b858p+0 : 0x4.c909d84484b78p+4 : inexact-ok
+= sinh downward m68k96 0x5.080526fa0b858p+0 : 0x4.c909d84484b77ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.080526fa0b858p+0 : 0x4.c909d84484b78p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.080526fa0b858p+0 : 0x4.c909d84484b77ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.080526fa0b858p+0 : 0x4.c909d84484b78p+4 : inexact-ok
+= sinh downward binary128 0x5.080526fa0b858p+0 : 0x4.c909d84484b77fffa024ab9a615p+4 : inexact-ok
+= sinh tonearest binary128 0x5.080526fa0b858p+0 : 0x4.c909d84484b77fffa024ab9a6154p+4 : inexact-ok
+= sinh towardzero binary128 0x5.080526fa0b858p+0 : 0x4.c909d84484b77fffa024ab9a615p+4 : inexact-ok
+= sinh upward binary128 0x5.080526fa0b858p+0 : 0x4.c909d84484b77fffa024ab9a6154p+4 : inexact-ok
+= sinh downward ibm128 0x5.080526fa0b858p+0 : 0x4.c909d84484b77fffa024ab9a6p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.080526fa0b858p+0 : 0x4.c909d84484b77fffa024ab9a62p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.080526fa0b858p+0 : 0x4.c909d84484b77fffa024ab9a6p+4 : inexact-ok
+= sinh upward ibm128 0x5.080526fa0b858p+0 : 0x4.c909d84484b77fffa024ab9a62p+4 : inexact-ok
+sinh -0x1.417c56d39aac4p+2
+= sinh downward binary32 -0x5.05f158p+0 : -0x4.bf231p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.05f158p+0 : -0x4.bf231p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.05f158p+0 : -0x4.bf2308p+4 : inexact-ok
+= sinh upward binary32 -0x5.05f158p+0 : -0x4.bf2308p+4 : inexact-ok
+= sinh downward binary64 -0x5.05f158p+0 : -0x4.bf230f05fe78cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.05f158p+0 : -0x4.bf230f05fe788p+4 : inexact-ok
+= sinh towardzero binary64 -0x5.05f158p+0 : -0x4.bf230f05fe788p+4 : inexact-ok
+= sinh upward binary64 -0x5.05f158p+0 : -0x4.bf230f05fe788p+4 : inexact-ok
+= sinh downward intel96 -0x5.05f158p+0 : -0x4.bf230f05fe7892b8p+4 : inexact-ok
+= sinh tonearest intel96 -0x5.05f158p+0 : -0x4.bf230f05fe7892b8p+4 : inexact-ok
+= sinh towardzero intel96 -0x5.05f158p+0 : -0x4.bf230f05fe7892bp+4 : inexact-ok
+= sinh upward intel96 -0x5.05f158p+0 : -0x4.bf230f05fe7892bp+4 : inexact-ok
+= sinh downward m68k96 -0x5.05f158p+0 : -0x4.bf230f05fe7892b8p+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.05f158p+0 : -0x4.bf230f05fe7892b8p+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.05f158p+0 : -0x4.bf230f05fe7892bp+4 : inexact-ok
+= sinh upward m68k96 -0x5.05f158p+0 : -0x4.bf230f05fe7892bp+4 : inexact-ok
+= sinh downward binary128 -0x5.05f158p+0 : -0x4.bf230f05fe7892b69eb3f98e2648p+4 : inexact-ok
+= sinh tonearest binary128 -0x5.05f158p+0 : -0x4.bf230f05fe7892b69eb3f98e2648p+4 : inexact-ok
+= sinh towardzero binary128 -0x5.05f158p+0 : -0x4.bf230f05fe7892b69eb3f98e2644p+4 : inexact-ok
+= sinh upward binary128 -0x5.05f158p+0 : -0x4.bf230f05fe7892b69eb3f98e2644p+4 : inexact-ok
+= sinh downward ibm128 -0x5.05f158p+0 : -0x4.bf230f05fe7892b69eb3f98e28p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.05f158p+0 : -0x4.bf230f05fe7892b69eb3f98e26p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.05f158p+0 : -0x4.bf230f05fe7892b69eb3f98e26p+4 : inexact-ok
+= sinh upward ibm128 -0x5.05f158p+0 : -0x4.bf230f05fe7892b69eb3f98e26p+4 : inexact-ok
+= sinh downward binary32 -0x5.05f16p+0 : -0x4.bf2338p+4 : inexact-ok
+= sinh tonearest binary32 -0x5.05f16p+0 : -0x4.bf2338p+4 : inexact-ok
+= sinh towardzero binary32 -0x5.05f16p+0 : -0x4.bf233p+4 : inexact-ok
+= sinh upward binary32 -0x5.05f16p+0 : -0x4.bf233p+4 : inexact-ok
+= sinh downward binary64 -0x5.05f16p+0 : -0x4.bf2334ffef41cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.05f16p+0 : -0x4.bf2334ffef41cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.05f16p+0 : -0x4.bf2334ffef418p+4 : inexact-ok
+= sinh upward binary64 -0x5.05f16p+0 : -0x4.bf2334ffef418p+4 : inexact-ok
+= sinh downward intel96 -0x5.05f16p+0 : -0x4.bf2334ffef41aacp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.05f16p+0 : -0x4.bf2334ffef41aacp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.05f16p+0 : -0x4.bf2334ffef41aab8p+4 : inexact-ok
+= sinh upward intel96 -0x5.05f16p+0 : -0x4.bf2334ffef41aab8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.05f16p+0 : -0x4.bf2334ffef41aacp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.05f16p+0 : -0x4.bf2334ffef41aacp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.05f16p+0 : -0x4.bf2334ffef41aab8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.05f16p+0 : -0x4.bf2334ffef41aab8p+4 : inexact-ok
+= sinh downward binary128 -0x5.05f16p+0 : -0x4.bf2334ffef41aabf40f54c6e39ep+4 : inexact-ok
+= sinh tonearest binary128 -0x5.05f16p+0 : -0x4.bf2334ffef41aabf40f54c6e39ep+4 : inexact-ok
+= sinh towardzero binary128 -0x5.05f16p+0 : -0x4.bf2334ffef41aabf40f54c6e39dcp+4 : inexact-ok
+= sinh upward binary128 -0x5.05f16p+0 : -0x4.bf2334ffef41aabf40f54c6e39dcp+4 : inexact-ok
+= sinh downward ibm128 -0x5.05f16p+0 : -0x4.bf2334ffef41aabf40f54c6e3ap+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.05f16p+0 : -0x4.bf2334ffef41aabf40f54c6e3ap+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.05f16p+0 : -0x4.bf2334ffef41aabf40f54c6e38p+4 : inexact-ok
+= sinh upward ibm128 -0x5.05f16p+0 : -0x4.bf2334ffef41aabf40f54c6e38p+4 : inexact-ok
+= sinh downward binary64 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802cp+4 : inexact-ok
+= sinh tonearest binary64 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802cp+4 : inexact-ok
+= sinh towardzero binary64 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f8028p+4 : inexact-ok
+= sinh upward binary64 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f8028p+4 : inexact-ok
+= sinh downward intel96 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802cp+4 : inexact-ok
+= sinh tonearest intel96 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802cp+4 : inexact-ok
+= sinh towardzero intel96 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bff8p+4 : inexact-ok
+= sinh upward intel96 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bff8p+4 : inexact-ok
+= sinh downward m68k96 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802cp+4 : inexact-ok
+= sinh tonearest m68k96 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802cp+4 : inexact-ok
+= sinh towardzero m68k96 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bff8p+4 : inexact-ok
+= sinh upward m68k96 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bff8p+4 : inexact-ok
+= sinh downward binary128 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bfff6ddedbfe72ap+4 : inexact-ok
+= sinh tonearest binary128 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bfff6ddedbfe729cp+4 : inexact-ok
+= sinh towardzero binary128 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bfff6ddedbfe729cp+4 : inexact-ok
+= sinh upward binary128 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bfff6ddedbfe729cp+4 : inexact-ok
+= sinh downward ibm128 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bfff6ddedbfe74p+4 : inexact-ok
+= sinh tonearest ibm128 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bfff6ddedbfe72p+4 : inexact-ok
+= sinh towardzero ibm128 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bfff6ddedbfe72p+4 : inexact-ok
+= sinh upward ibm128 -0x5.05f15b4e6ab1p+0 : -0x4.bf231eb7f802bfff6ddedbfe72p+4 : inexact-ok
+sinh 0x1.41bc1dc9e7ebp+2
+= sinh downward binary32 0x5.06f078p+0 : 0x4.c3e08p+4 : inexact-ok
+= sinh tonearest binary32 0x5.06f078p+0 : 0x4.c3e08p+4 : inexact-ok
+= sinh towardzero binary32 0x5.06f078p+0 : 0x4.c3e08p+4 : inexact-ok
+= sinh upward binary32 0x5.06f078p+0 : 0x4.c3e088p+4 : inexact-ok
+= sinh downward binary64 0x5.06f078p+0 : 0x4.c3e081eaa403cp+4 : inexact-ok
+= sinh tonearest binary64 0x5.06f078p+0 : 0x4.c3e081eaa403cp+4 : inexact-ok
+= sinh towardzero binary64 0x5.06f078p+0 : 0x4.c3e081eaa403cp+4 : inexact-ok
+= sinh upward binary64 0x5.06f078p+0 : 0x4.c3e081eaa404p+4 : inexact-ok
+= sinh downward intel96 0x5.06f078p+0 : 0x4.c3e081eaa403de18p+4 : inexact-ok
+= sinh tonearest intel96 0x5.06f078p+0 : 0x4.c3e081eaa403de2p+4 : inexact-ok
+= sinh towardzero intel96 0x5.06f078p+0 : 0x4.c3e081eaa403de18p+4 : inexact-ok
+= sinh upward intel96 0x5.06f078p+0 : 0x4.c3e081eaa403de2p+4 : inexact-ok
+= sinh downward m68k96 0x5.06f078p+0 : 0x4.c3e081eaa403de18p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.06f078p+0 : 0x4.c3e081eaa403de2p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.06f078p+0 : 0x4.c3e081eaa403de18p+4 : inexact-ok
+= sinh upward m68k96 0x5.06f078p+0 : 0x4.c3e081eaa403de2p+4 : inexact-ok
+= sinh downward binary128 0x5.06f078p+0 : 0x4.c3e081eaa403de1ef32152fccad8p+4 : inexact-ok
+= sinh tonearest binary128 0x5.06f078p+0 : 0x4.c3e081eaa403de1ef32152fccadcp+4 : inexact-ok
+= sinh towardzero binary128 0x5.06f078p+0 : 0x4.c3e081eaa403de1ef32152fccad8p+4 : inexact-ok
+= sinh upward binary128 0x5.06f078p+0 : 0x4.c3e081eaa403de1ef32152fccadcp+4 : inexact-ok
+= sinh downward ibm128 0x5.06f078p+0 : 0x4.c3e081eaa403de1ef32152fccap+4 : inexact-ok
+= sinh tonearest ibm128 0x5.06f078p+0 : 0x4.c3e081eaa403de1ef32152fccap+4 : inexact-ok
+= sinh towardzero ibm128 0x5.06f078p+0 : 0x4.c3e081eaa403de1ef32152fccap+4 : inexact-ok
+= sinh upward ibm128 0x5.06f078p+0 : 0x4.c3e081eaa403de1ef32152fcccp+4 : inexact-ok
+= sinh downward binary32 0x5.06f07p+0 : 0x4.c3e058p+4 : inexact-ok
+= sinh tonearest binary32 0x5.06f07p+0 : 0x4.c3e058p+4 : inexact-ok
+= sinh towardzero binary32 0x5.06f07p+0 : 0x4.c3e058p+4 : inexact-ok
+= sinh upward binary32 0x5.06f07p+0 : 0x4.c3e06p+4 : inexact-ok
+= sinh downward binary64 0x5.06f07p+0 : 0x4.c3e05bcac9aa8p+4 : inexact-ok
+= sinh tonearest binary64 0x5.06f07p+0 : 0x4.c3e05bcac9aa8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.06f07p+0 : 0x4.c3e05bcac9aa8p+4 : inexact-ok
+= sinh upward binary64 0x5.06f07p+0 : 0x4.c3e05bcac9aacp+4 : inexact-ok
+= sinh downward intel96 0x5.06f07p+0 : 0x4.c3e05bcac9aa92ap+4 : inexact-ok
+= sinh tonearest intel96 0x5.06f07p+0 : 0x4.c3e05bcac9aa92ap+4 : inexact-ok
+= sinh towardzero intel96 0x5.06f07p+0 : 0x4.c3e05bcac9aa92ap+4 : inexact-ok
+= sinh upward intel96 0x5.06f07p+0 : 0x4.c3e05bcac9aa92a8p+4 : inexact-ok
+= sinh downward m68k96 0x5.06f07p+0 : 0x4.c3e05bcac9aa92ap+4 : inexact-ok
+= sinh tonearest m68k96 0x5.06f07p+0 : 0x4.c3e05bcac9aa92ap+4 : inexact-ok
+= sinh towardzero m68k96 0x5.06f07p+0 : 0x4.c3e05bcac9aa92ap+4 : inexact-ok
+= sinh upward m68k96 0x5.06f07p+0 : 0x4.c3e05bcac9aa92a8p+4 : inexact-ok
+= sinh downward binary128 0x5.06f07p+0 : 0x4.c3e05bcac9aa92a15be7c9edc494p+4 : inexact-ok
+= sinh tonearest binary128 0x5.06f07p+0 : 0x4.c3e05bcac9aa92a15be7c9edc494p+4 : inexact-ok
+= sinh towardzero binary128 0x5.06f07p+0 : 0x4.c3e05bcac9aa92a15be7c9edc494p+4 : inexact-ok
+= sinh upward binary128 0x5.06f07p+0 : 0x4.c3e05bcac9aa92a15be7c9edc498p+4 : inexact-ok
+= sinh downward ibm128 0x5.06f07p+0 : 0x4.c3e05bcac9aa92a15be7c9edc4p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.06f07p+0 : 0x4.c3e05bcac9aa92a15be7c9edc4p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.06f07p+0 : 0x4.c3e05bcac9aa92a15be7c9edc4p+4 : inexact-ok
+= sinh upward ibm128 0x5.06f07p+0 : 0x4.c3e05bcac9aa92a15be7c9edc6p+4 : inexact-ok
+= sinh downward binary64 0x5.06f077279facp+0 : 0x4.c3e07de37cdf4p+4 : inexact-ok
+= sinh tonearest binary64 0x5.06f077279facp+0 : 0x4.c3e07de37cdf8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.06f077279facp+0 : 0x4.c3e07de37cdf4p+4 : inexact-ok
+= sinh upward binary64 0x5.06f077279facp+0 : 0x4.c3e07de37cdf8p+4 : inexact-ok
+= sinh downward intel96 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.06f077279facp+0 : 0x4.c3e07de37cdf8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.06f077279facp+0 : 0x4.c3e07de37cdf8p+4 : inexact-ok
+= sinh downward m68k96 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.06f077279facp+0 : 0x4.c3e07de37cdf8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.06f077279facp+0 : 0x4.c3e07de37cdf8p+4 : inexact-ok
+= sinh downward binary128 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7fffcf3bedf83ac4p+4 : inexact-ok
+= sinh tonearest binary128 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7fffcf3bedf83ac8p+4 : inexact-ok
+= sinh towardzero binary128 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7fffcf3bedf83ac4p+4 : inexact-ok
+= sinh upward binary128 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7fffcf3bedf83ac8p+4 : inexact-ok
+= sinh downward ibm128 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7fffcf3bedf83ap+4 : inexact-ok
+= sinh tonearest ibm128 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7fffcf3bedf83ap+4 : inexact-ok
+= sinh towardzero ibm128 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7fffcf3bedf83ap+4 : inexact-ok
+= sinh upward ibm128 0x5.06f077279facp+0 : 0x4.c3e07de37cdf7fffcf3bedf83cp+4 : inexact-ok
+sinh 0x1.410a9f2b0fd78p+2
+= sinh downward binary32 0x5.042a8p+0 : 0x4.b6bb58p+4 : inexact-ok
+= sinh tonearest binary32 0x5.042a8p+0 : 0x4.b6bb6p+4 : inexact-ok
+= sinh towardzero binary32 0x5.042a8p+0 : 0x4.b6bb58p+4 : inexact-ok
+= sinh upward binary32 0x5.042a8p+0 : 0x4.b6bb6p+4 : inexact-ok
+= sinh downward binary64 0x5.042a8p+0 : 0x4.b6bb5f32ba648p+4 : inexact-ok
+= sinh tonearest binary64 0x5.042a8p+0 : 0x4.b6bb5f32ba648p+4 : inexact-ok
+= sinh towardzero binary64 0x5.042a8p+0 : 0x4.b6bb5f32ba648p+4 : inexact-ok
+= sinh upward binary64 0x5.042a8p+0 : 0x4.b6bb5f32ba64cp+4 : inexact-ok
+= sinh downward intel96 0x5.042a8p+0 : 0x4.b6bb5f32ba64894p+4 : inexact-ok
+= sinh tonearest intel96 0x5.042a8p+0 : 0x4.b6bb5f32ba64894p+4 : inexact-ok
+= sinh towardzero intel96 0x5.042a8p+0 : 0x4.b6bb5f32ba64894p+4 : inexact-ok
+= sinh upward intel96 0x5.042a8p+0 : 0x4.b6bb5f32ba648948p+4 : inexact-ok
+= sinh downward m68k96 0x5.042a8p+0 : 0x4.b6bb5f32ba64894p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.042a8p+0 : 0x4.b6bb5f32ba64894p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.042a8p+0 : 0x4.b6bb5f32ba64894p+4 : inexact-ok
+= sinh upward m68k96 0x5.042a8p+0 : 0x4.b6bb5f32ba648948p+4 : inexact-ok
+= sinh downward binary128 0x5.042a8p+0 : 0x4.b6bb5f32ba64894169462bf45188p+4 : inexact-ok
+= sinh tonearest binary128 0x5.042a8p+0 : 0x4.b6bb5f32ba64894169462bf45188p+4 : inexact-ok
+= sinh towardzero binary128 0x5.042a8p+0 : 0x4.b6bb5f32ba64894169462bf45188p+4 : inexact-ok
+= sinh upward binary128 0x5.042a8p+0 : 0x4.b6bb5f32ba64894169462bf4518cp+4 : inexact-ok
+= sinh downward ibm128 0x5.042a8p+0 : 0x4.b6bb5f32ba64894169462bf45p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.042a8p+0 : 0x4.b6bb5f32ba64894169462bf452p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.042a8p+0 : 0x4.b6bb5f32ba64894169462bf45p+4 : inexact-ok
+= sinh upward ibm128 0x5.042a8p+0 : 0x4.b6bb5f32ba64894169462bf452p+4 : inexact-ok
+= sinh downward binary32 0x5.042a78p+0 : 0x4.b6bb38p+4 : inexact-ok
+= sinh tonearest binary32 0x5.042a78p+0 : 0x4.b6bb38p+4 : inexact-ok
+= sinh towardzero binary32 0x5.042a78p+0 : 0x4.b6bb38p+4 : inexact-ok
+= sinh upward binary32 0x5.042a78p+0 : 0x4.b6bb4p+4 : inexact-ok
+= sinh downward binary64 0x5.042a78p+0 : 0x4.b6bb397c06c8p+4 : inexact-ok
+= sinh tonearest binary64 0x5.042a78p+0 : 0x4.b6bb397c06c84p+4 : inexact-ok
+= sinh towardzero binary64 0x5.042a78p+0 : 0x4.b6bb397c06c8p+4 : inexact-ok
+= sinh upward binary64 0x5.042a78p+0 : 0x4.b6bb397c06c84p+4 : inexact-ok
+= sinh downward intel96 0x5.042a78p+0 : 0x4.b6bb397c06c829b8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.042a78p+0 : 0x4.b6bb397c06c829cp+4 : inexact-ok
+= sinh towardzero intel96 0x5.042a78p+0 : 0x4.b6bb397c06c829b8p+4 : inexact-ok
+= sinh upward intel96 0x5.042a78p+0 : 0x4.b6bb397c06c829cp+4 : inexact-ok
+= sinh downward m68k96 0x5.042a78p+0 : 0x4.b6bb397c06c829b8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.042a78p+0 : 0x4.b6bb397c06c829cp+4 : inexact-ok
+= sinh towardzero m68k96 0x5.042a78p+0 : 0x4.b6bb397c06c829b8p+4 : inexact-ok
+= sinh upward m68k96 0x5.042a78p+0 : 0x4.b6bb397c06c829cp+4 : inexact-ok
+= sinh downward binary128 0x5.042a78p+0 : 0x4.b6bb397c06c829bde06c2ef7ea34p+4 : inexact-ok
+= sinh tonearest binary128 0x5.042a78p+0 : 0x4.b6bb397c06c829bde06c2ef7ea38p+4 : inexact-ok
+= sinh towardzero binary128 0x5.042a78p+0 : 0x4.b6bb397c06c829bde06c2ef7ea34p+4 : inexact-ok
+= sinh upward binary128 0x5.042a78p+0 : 0x4.b6bb397c06c829bde06c2ef7ea38p+4 : inexact-ok
+= sinh downward ibm128 0x5.042a78p+0 : 0x4.b6bb397c06c829bde06c2ef7eap+4 : inexact-ok
+= sinh tonearest ibm128 0x5.042a78p+0 : 0x4.b6bb397c06c829bde06c2ef7eap+4 : inexact-ok
+= sinh towardzero ibm128 0x5.042a78p+0 : 0x4.b6bb397c06c829bde06c2ef7eap+4 : inexact-ok
+= sinh upward ibm128 0x5.042a78p+0 : 0x4.b6bb397c06c829bde06c2ef7ecp+4 : inexact-ok
+= sinh downward binary64 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f836341p+4 : inexact-ok
+= sinh tonearest binary64 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363414p+4 : inexact-ok
+= sinh towardzero binary64 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f836341p+4 : inexact-ok
+= sinh upward binary64 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363414p+4 : inexact-ok
+= sinh downward intel96 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363414p+4 : inexact-ok
+= sinh towardzero intel96 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363414p+4 : inexact-ok
+= sinh downward m68k96 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363414p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363414p+4 : inexact-ok
+= sinh downward binary128 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413fffef221c29ef4p+4 : inexact-ok
+= sinh tonearest binary128 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413fffef221c29ef44p+4 : inexact-ok
+= sinh towardzero binary128 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413fffef221c29ef4p+4 : inexact-ok
+= sinh upward binary128 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413fffef221c29ef44p+4 : inexact-ok
+= sinh downward ibm128 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413fffef221c29eep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413fffef221c29fp+4 : inexact-ok
+= sinh towardzero ibm128 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413fffef221c29eep+4 : inexact-ok
+= sinh upward ibm128 0x5.042a7cac3f5ep+0 : 0x4.b6bb4f8363413fffef221c29fp+4 : inexact-ok
+sinh 0x1.41d7ae912e7e2p+2
+= sinh downward binary32 0x5.075ecp+0 : 0x4.c5ee8p+4 : inexact-ok
+= sinh tonearest binary32 0x5.075ecp+0 : 0x4.c5ee8p+4 : inexact-ok
+= sinh towardzero binary32 0x5.075ecp+0 : 0x4.c5ee8p+4 : inexact-ok
+= sinh upward binary32 0x5.075ecp+0 : 0x4.c5ee88p+4 : inexact-ok
+= sinh downward binary64 0x5.075ecp+0 : 0x4.c5ee804cd1f38p+4 : inexact-ok
+= sinh tonearest binary64 0x5.075ecp+0 : 0x4.c5ee804cd1f38p+4 : inexact-ok
+= sinh towardzero binary64 0x5.075ecp+0 : 0x4.c5ee804cd1f38p+4 : inexact-ok
+= sinh upward binary64 0x5.075ecp+0 : 0x4.c5ee804cd1f3cp+4 : inexact-ok
+= sinh downward intel96 0x5.075ecp+0 : 0x4.c5ee804cd1f39f3p+4 : inexact-ok
+= sinh tonearest intel96 0x5.075ecp+0 : 0x4.c5ee804cd1f39f3p+4 : inexact-ok
+= sinh towardzero intel96 0x5.075ecp+0 : 0x4.c5ee804cd1f39f3p+4 : inexact-ok
+= sinh upward intel96 0x5.075ecp+0 : 0x4.c5ee804cd1f39f38p+4 : inexact-ok
+= sinh downward m68k96 0x5.075ecp+0 : 0x4.c5ee804cd1f39f3p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.075ecp+0 : 0x4.c5ee804cd1f39f3p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.075ecp+0 : 0x4.c5ee804cd1f39f3p+4 : inexact-ok
+= sinh upward m68k96 0x5.075ecp+0 : 0x4.c5ee804cd1f39f38p+4 : inexact-ok
+= sinh downward binary128 0x5.075ecp+0 : 0x4.c5ee804cd1f39f320768e2811ffp+4 : inexact-ok
+= sinh tonearest binary128 0x5.075ecp+0 : 0x4.c5ee804cd1f39f320768e2811ffp+4 : inexact-ok
+= sinh towardzero binary128 0x5.075ecp+0 : 0x4.c5ee804cd1f39f320768e2811ffp+4 : inexact-ok
+= sinh upward binary128 0x5.075ecp+0 : 0x4.c5ee804cd1f39f320768e2811ff4p+4 : inexact-ok
+= sinh downward ibm128 0x5.075ecp+0 : 0x4.c5ee804cd1f39f320768e2811ep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.075ecp+0 : 0x4.c5ee804cd1f39f320768e2812p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.075ecp+0 : 0x4.c5ee804cd1f39f320768e2811ep+4 : inexact-ok
+= sinh upward ibm128 0x5.075ecp+0 : 0x4.c5ee804cd1f39f320768e2812p+4 : inexact-ok
+= sinh downward binary32 0x5.075eb8p+0 : 0x4.c5ee58p+4 : inexact-ok
+= sinh tonearest binary32 0x5.075eb8p+0 : 0x4.c5ee58p+4 : inexact-ok
+= sinh towardzero binary32 0x5.075eb8p+0 : 0x4.c5ee58p+4 : inexact-ok
+= sinh upward binary32 0x5.075eb8p+0 : 0x4.c5ee6p+4 : inexact-ok
+= sinh downward binary64 0x5.075eb8p+0 : 0x4.c5ee5a1c8804p+4 : inexact-ok
+= sinh tonearest binary64 0x5.075eb8p+0 : 0x4.c5ee5a1c8804p+4 : inexact-ok
+= sinh towardzero binary64 0x5.075eb8p+0 : 0x4.c5ee5a1c8804p+4 : inexact-ok
+= sinh upward binary64 0x5.075eb8p+0 : 0x4.c5ee5a1c88044p+4 : inexact-ok
+= sinh downward intel96 0x5.075eb8p+0 : 0x4.c5ee5a1c880401dp+4 : inexact-ok
+= sinh tonearest intel96 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.075eb8p+0 : 0x4.c5ee5a1c880401dp+4 : inexact-ok
+= sinh upward intel96 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d8p+4 : inexact-ok
+= sinh downward m68k96 0x5.075eb8p+0 : 0x4.c5ee5a1c880401dp+4 : inexact-ok
+= sinh tonearest m68k96 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.075eb8p+0 : 0x4.c5ee5a1c880401dp+4 : inexact-ok
+= sinh upward m68k96 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d8p+4 : inexact-ok
+= sinh downward binary128 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d420f5af7018c8p+4 : inexact-ok
+= sinh tonearest binary128 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d420f5af7018c8p+4 : inexact-ok
+= sinh towardzero binary128 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d420f5af7018c8p+4 : inexact-ok
+= sinh upward binary128 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d420f5af7018ccp+4 : inexact-ok
+= sinh downward ibm128 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d420f5af7018p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d420f5af7018p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d420f5af7018p+4 : inexact-ok
+= sinh upward ibm128 0x5.075eb8p+0 : 0x4.c5ee5a1c880401d420f5af701ap+4 : inexact-ok
+= sinh downward binary64 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac94p+4 : inexact-ok
+= sinh tonearest binary64 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac944p+4 : inexact-ok
+= sinh towardzero binary64 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac94p+4 : inexact-ok
+= sinh upward binary64 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac944p+4 : inexact-ok
+= sinh downward intel96 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac944p+4 : inexact-ok
+= sinh towardzero intel96 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac944p+4 : inexact-ok
+= sinh downward m68k96 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac944p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac944p+4 : inexact-ok
+= sinh downward binary128 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943fff11e87cb63bfp+4 : inexact-ok
+= sinh tonearest binary128 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943fff11e87cb63bfp+4 : inexact-ok
+= sinh towardzero binary128 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943fff11e87cb63bfp+4 : inexact-ok
+= sinh upward binary128 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943fff11e87cb63bf4p+4 : inexact-ok
+= sinh downward ibm128 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943fff11e87cb63ap+4 : inexact-ok
+= sinh tonearest ibm128 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943fff11e87cb63cp+4 : inexact-ok
+= sinh towardzero ibm128 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943fff11e87cb63ap+4 : inexact-ok
+= sinh upward ibm128 0x5.075eba44b9f88p+0 : 0x4.c5ee64f0ac943fff11e87cb63cp+4 : inexact-ok
+sinh 0x1.403d745ee03bp+2
+= sinh downward binary32 0x5.00f5d8p+0 : 0x4.a7b6b8p+4 : inexact-ok
+= sinh tonearest binary32 0x5.00f5d8p+0 : 0x4.a7b6cp+4 : inexact-ok
+= sinh towardzero binary32 0x5.00f5d8p+0 : 0x4.a7b6b8p+4 : inexact-ok
+= sinh upward binary32 0x5.00f5d8p+0 : 0x4.a7b6cp+4 : inexact-ok
+= sinh downward binary64 0x5.00f5d8p+0 : 0x4.a7b6beb601bep+4 : inexact-ok
+= sinh tonearest binary64 0x5.00f5d8p+0 : 0x4.a7b6beb601bep+4 : inexact-ok
+= sinh towardzero binary64 0x5.00f5d8p+0 : 0x4.a7b6beb601bep+4 : inexact-ok
+= sinh upward binary64 0x5.00f5d8p+0 : 0x4.a7b6beb601be4p+4 : inexact-ok
+= sinh downward intel96 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a7p+4 : inexact-ok
+= sinh tonearest intel96 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a7p+4 : inexact-ok
+= sinh towardzero intel96 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a7p+4 : inexact-ok
+= sinh upward intel96 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a78p+4 : inexact-ok
+= sinh downward m68k96 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a7p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a7p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a7p+4 : inexact-ok
+= sinh upward m68k96 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a78p+4 : inexact-ok
+= sinh downward binary128 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a70cbe822f3ba24p+4 : inexact-ok
+= sinh tonearest binary128 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a70cbe822f3ba24p+4 : inexact-ok
+= sinh towardzero binary128 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a70cbe822f3ba24p+4 : inexact-ok
+= sinh upward binary128 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a70cbe822f3ba28p+4 : inexact-ok
+= sinh downward ibm128 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a70cbe822f3bap+4 : inexact-ok
+= sinh tonearest ibm128 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a70cbe822f3bap+4 : inexact-ok
+= sinh towardzero ibm128 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a70cbe822f3bap+4 : inexact-ok
+= sinh upward ibm128 0x5.00f5d8p+0 : 0x4.a7b6beb601be0a70cbe822f3bcp+4 : inexact-ok
+= sinh downward binary32 0x5.00f5dp+0 : 0x4.a7b698p+4 : inexact-ok
+= sinh tonearest binary32 0x5.00f5dp+0 : 0x4.a7b698p+4 : inexact-ok
+= sinh towardzero binary32 0x5.00f5dp+0 : 0x4.a7b698p+4 : inexact-ok
+= sinh upward binary32 0x5.00f5dp+0 : 0x4.a7b6ap+4 : inexact-ok
+= sinh downward binary64 0x5.00f5dp+0 : 0x4.a7b699777066cp+4 : inexact-ok
+= sinh tonearest binary64 0x5.00f5dp+0 : 0x4.a7b699777067p+4 : inexact-ok
+= sinh towardzero binary64 0x5.00f5dp+0 : 0x4.a7b699777066cp+4 : inexact-ok
+= sinh upward binary64 0x5.00f5dp+0 : 0x4.a7b699777067p+4 : inexact-ok
+= sinh downward intel96 0x5.00f5dp+0 : 0x4.a7b699777066f42p+4 : inexact-ok
+= sinh tonearest intel96 0x5.00f5dp+0 : 0x4.a7b699777066f428p+4 : inexact-ok
+= sinh towardzero intel96 0x5.00f5dp+0 : 0x4.a7b699777066f42p+4 : inexact-ok
+= sinh upward intel96 0x5.00f5dp+0 : 0x4.a7b699777066f428p+4 : inexact-ok
+= sinh downward m68k96 0x5.00f5dp+0 : 0x4.a7b699777066f42p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.00f5dp+0 : 0x4.a7b699777066f428p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.00f5dp+0 : 0x4.a7b699777066f42p+4 : inexact-ok
+= sinh upward m68k96 0x5.00f5dp+0 : 0x4.a7b699777066f428p+4 : inexact-ok
+= sinh downward binary128 0x5.00f5dp+0 : 0x4.a7b699777066f425ad1c2724cccp+4 : inexact-ok
+= sinh tonearest binary128 0x5.00f5dp+0 : 0x4.a7b699777066f425ad1c2724ccc4p+4 : inexact-ok
+= sinh towardzero binary128 0x5.00f5dp+0 : 0x4.a7b699777066f425ad1c2724cccp+4 : inexact-ok
+= sinh upward binary128 0x5.00f5dp+0 : 0x4.a7b699777066f425ad1c2724ccc4p+4 : inexact-ok
+= sinh downward ibm128 0x5.00f5dp+0 : 0x4.a7b699777066f425ad1c2724ccp+4 : inexact-ok
+= sinh tonearest ibm128 0x5.00f5dp+0 : 0x4.a7b699777066f425ad1c2724ccp+4 : inexact-ok
+= sinh towardzero ibm128 0x5.00f5dp+0 : 0x4.a7b699777066f425ad1c2724ccp+4 : inexact-ok
+= sinh upward ibm128 0x5.00f5dp+0 : 0x4.a7b699777066f425ad1c2724cep+4 : inexact-ok
+= sinh downward binary64 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca98p+4 : inexact-ok
+= sinh tonearest binary64 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9cp+4 : inexact-ok
+= sinh towardzero binary64 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca98p+4 : inexact-ok
+= sinh upward binary64 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9cp+4 : inexact-ok
+= sinh downward intel96 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9cp+4 : inexact-ok
+= sinh towardzero intel96 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bff8p+4 : inexact-ok
+= sinh upward intel96 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9cp+4 : inexact-ok
+= sinh downward m68k96 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9cp+4 : inexact-ok
+= sinh towardzero m68k96 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9cp+4 : inexact-ok
+= sinh downward binary128 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bfff68f875b260ap+4 : inexact-ok
+= sinh tonearest binary128 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bfff68f875b260ap+4 : inexact-ok
+= sinh towardzero binary128 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bfff68f875b260ap+4 : inexact-ok
+= sinh upward binary128 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bfff68f875b260a4p+4 : inexact-ok
+= sinh downward ibm128 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bfff68f875b26p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bfff68f875b26p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bfff68f875b26p+4 : inexact-ok
+= sinh upward ibm128 0x5.00f5d17b80ecp+0 : 0x4.a7b6a05e3ca9bfff68f875b262p+4 : inexact-ok
+sinh 0x1.42360842659f6p+2
+= sinh downward binary32 0x5.08d828p+0 : 0x4.ccfd4p+4 : inexact-ok
+= sinh tonearest binary32 0x5.08d828p+0 : 0x4.ccfd48p+4 : inexact-ok
+= sinh towardzero binary32 0x5.08d828p+0 : 0x4.ccfd4p+4 : inexact-ok
+= sinh upward binary32 0x5.08d828p+0 : 0x4.ccfd48p+4 : inexact-ok
+= sinh downward binary64 0x5.08d828p+0 : 0x4.ccfd46e4e51dcp+4 : inexact-ok
+= sinh tonearest binary64 0x5.08d828p+0 : 0x4.ccfd46e4e51ep+4 : inexact-ok
+= sinh towardzero binary64 0x5.08d828p+0 : 0x4.ccfd46e4e51dcp+4 : inexact-ok
+= sinh upward binary64 0x5.08d828p+0 : 0x4.ccfd46e4e51ep+4 : inexact-ok
+= sinh downward intel96 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e8p+4 : inexact-ok
+= sinh upward intel96 0x5.08d828p+0 : 0x4.ccfd46e4e51de8fp+4 : inexact-ok
+= sinh downward m68k96 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e8p+4 : inexact-ok
+= sinh upward m68k96 0x5.08d828p+0 : 0x4.ccfd46e4e51de8fp+4 : inexact-ok
+= sinh downward binary128 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e85958e77232a8p+4 : inexact-ok
+= sinh tonearest binary128 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e85958e77232acp+4 : inexact-ok
+= sinh towardzero binary128 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e85958e77232a8p+4 : inexact-ok
+= sinh upward binary128 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e85958e77232acp+4 : inexact-ok
+= sinh downward ibm128 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e85958e77232p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e85958e77232p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e85958e77232p+4 : inexact-ok
+= sinh upward ibm128 0x5.08d828p+0 : 0x4.ccfd46e4e51de8e85958e77234p+4 : inexact-ok
+= sinh downward binary32 0x5.08d82p+0 : 0x4.ccfd2p+4 : inexact-ok
+= sinh tonearest binary32 0x5.08d82p+0 : 0x4.ccfd2p+4 : inexact-ok
+= sinh towardzero binary32 0x5.08d82p+0 : 0x4.ccfd2p+4 : inexact-ok
+= sinh upward binary32 0x5.08d82p+0 : 0x4.ccfd28p+4 : inexact-ok
+= sinh downward binary64 0x5.08d82p+0 : 0x4.ccfd207c2635cp+4 : inexact-ok
+= sinh tonearest binary64 0x5.08d82p+0 : 0x4.ccfd207c2635cp+4 : inexact-ok
+= sinh towardzero binary64 0x5.08d82p+0 : 0x4.ccfd207c2635cp+4 : inexact-ok
+= sinh upward binary64 0x5.08d82p+0 : 0x4.ccfd207c2636p+4 : inexact-ok
+= sinh downward intel96 0x5.08d82p+0 : 0x4.ccfd207c2635c688p+4 : inexact-ok
+= sinh tonearest intel96 0x5.08d82p+0 : 0x4.ccfd207c2635c688p+4 : inexact-ok
+= sinh towardzero intel96 0x5.08d82p+0 : 0x4.ccfd207c2635c688p+4 : inexact-ok
+= sinh upward intel96 0x5.08d82p+0 : 0x4.ccfd207c2635c69p+4 : inexact-ok
+= sinh downward m68k96 0x5.08d82p+0 : 0x4.ccfd207c2635c688p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.08d82p+0 : 0x4.ccfd207c2635c688p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.08d82p+0 : 0x4.ccfd207c2635c688p+4 : inexact-ok
+= sinh upward m68k96 0x5.08d82p+0 : 0x4.ccfd207c2635c69p+4 : inexact-ok
+= sinh downward binary128 0x5.08d82p+0 : 0x4.ccfd207c2635c688d6b3449ea7dcp+4 : inexact-ok
+= sinh tonearest binary128 0x5.08d82p+0 : 0x4.ccfd207c2635c688d6b3449ea7dcp+4 : inexact-ok
+= sinh towardzero binary128 0x5.08d82p+0 : 0x4.ccfd207c2635c688d6b3449ea7dcp+4 : inexact-ok
+= sinh upward binary128 0x5.08d82p+0 : 0x4.ccfd207c2635c688d6b3449ea7ep+4 : inexact-ok
+= sinh downward ibm128 0x5.08d82p+0 : 0x4.ccfd207c2635c688d6b3449ea6p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.08d82p+0 : 0x4.ccfd207c2635c688d6b3449ea8p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.08d82p+0 : 0x4.ccfd207c2635c688d6b3449ea6p+4 : inexact-ok
+= sinh upward ibm128 0x5.08d82p+0 : 0x4.ccfd207c2635c688d6b3449ea8p+4 : inexact-ok
+= sinh downward binary64 0x5.08d82109967d8p+0 : 0x4.ccfd2577465e8p+4 : inexact-ok
+= sinh tonearest binary64 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ecp+4 : inexact-ok
+= sinh towardzero binary64 0x5.08d82109967d8p+0 : 0x4.ccfd2577465e8p+4 : inexact-ok
+= sinh upward binary64 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ecp+4 : inexact-ok
+= sinh downward intel96 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ecp+4 : inexact-ok
+= sinh towardzero intel96 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebff8p+4 : inexact-ok
+= sinh upward intel96 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ecp+4 : inexact-ok
+= sinh downward m68k96 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ecp+4 : inexact-ok
+= sinh towardzero m68k96 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ecp+4 : inexact-ok
+= sinh downward binary128 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebfff3c5e37a177f4p+4 : inexact-ok
+= sinh tonearest binary128 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebfff3c5e37a177f4p+4 : inexact-ok
+= sinh towardzero binary128 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebfff3c5e37a177f4p+4 : inexact-ok
+= sinh upward binary128 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebfff3c5e37a177f8p+4 : inexact-ok
+= sinh downward ibm128 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebfff3c5e37a176p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebfff3c5e37a178p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebfff3c5e37a176p+4 : inexact-ok
+= sinh upward ibm128 0x5.08d82109967d8p+0 : 0x4.ccfd2577465ebfff3c5e37a178p+4 : inexact-ok
+sinh 0x1.424c2ba022b28p+2
+= sinh downward binary32 0x5.0930bp+0 : 0x4.cea698p+4 : inexact-ok
+= sinh tonearest binary32 0x5.0930bp+0 : 0x4.cea6ap+4 : inexact-ok
+= sinh towardzero binary32 0x5.0930bp+0 : 0x4.cea698p+4 : inexact-ok
+= sinh upward binary32 0x5.0930bp+0 : 0x4.cea6ap+4 : inexact-ok
+= sinh downward binary64 0x5.0930bp+0 : 0x4.cea69d9a3d374p+4 : inexact-ok
+= sinh tonearest binary64 0x5.0930bp+0 : 0x4.cea69d9a3d374p+4 : inexact-ok
+= sinh towardzero binary64 0x5.0930bp+0 : 0x4.cea69d9a3d374p+4 : inexact-ok
+= sinh upward binary64 0x5.0930bp+0 : 0x4.cea69d9a3d378p+4 : inexact-ok
+= sinh downward intel96 0x5.0930bp+0 : 0x4.cea69d9a3d375de8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.0930bp+0 : 0x4.cea69d9a3d375de8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.0930bp+0 : 0x4.cea69d9a3d375de8p+4 : inexact-ok
+= sinh upward intel96 0x5.0930bp+0 : 0x4.cea69d9a3d375dfp+4 : inexact-ok
+= sinh downward m68k96 0x5.0930bp+0 : 0x4.cea69d9a3d375de8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.0930bp+0 : 0x4.cea69d9a3d375de8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.0930bp+0 : 0x4.cea69d9a3d375de8p+4 : inexact-ok
+= sinh upward m68k96 0x5.0930bp+0 : 0x4.cea69d9a3d375dfp+4 : inexact-ok
+= sinh downward binary128 0x5.0930bp+0 : 0x4.cea69d9a3d375de896936527a838p+4 : inexact-ok
+= sinh tonearest binary128 0x5.0930bp+0 : 0x4.cea69d9a3d375de896936527a83cp+4 : inexact-ok
+= sinh towardzero binary128 0x5.0930bp+0 : 0x4.cea69d9a3d375de896936527a838p+4 : inexact-ok
+= sinh upward binary128 0x5.0930bp+0 : 0x4.cea69d9a3d375de896936527a83cp+4 : inexact-ok
+= sinh downward ibm128 0x5.0930bp+0 : 0x4.cea69d9a3d375de896936527a8p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.0930bp+0 : 0x4.cea69d9a3d375de896936527a8p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.0930bp+0 : 0x4.cea69d9a3d375de896936527a8p+4 : inexact-ok
+= sinh upward ibm128 0x5.0930bp+0 : 0x4.cea69d9a3d375de896936527aap+4 : inexact-ok
+= sinh downward binary32 0x5.0930a8p+0 : 0x4.cea67p+4 : inexact-ok
+= sinh tonearest binary32 0x5.0930a8p+0 : 0x4.cea678p+4 : inexact-ok
+= sinh towardzero binary32 0x5.0930a8p+0 : 0x4.cea67p+4 : inexact-ok
+= sinh upward binary32 0x5.0930a8p+0 : 0x4.cea678p+4 : inexact-ok
+= sinh downward binary64 0x5.0930a8p+0 : 0x4.cea6772433e34p+4 : inexact-ok
+= sinh tonearest binary64 0x5.0930a8p+0 : 0x4.cea6772433e38p+4 : inexact-ok
+= sinh towardzero binary64 0x5.0930a8p+0 : 0x4.cea6772433e34p+4 : inexact-ok
+= sinh upward binary64 0x5.0930a8p+0 : 0x4.cea6772433e38p+4 : inexact-ok
+= sinh downward intel96 0x5.0930a8p+0 : 0x4.cea6772433e37c28p+4 : inexact-ok
+= sinh tonearest intel96 0x5.0930a8p+0 : 0x4.cea6772433e37c28p+4 : inexact-ok
+= sinh towardzero intel96 0x5.0930a8p+0 : 0x4.cea6772433e37c28p+4 : inexact-ok
+= sinh upward intel96 0x5.0930a8p+0 : 0x4.cea6772433e37c3p+4 : inexact-ok
+= sinh downward m68k96 0x5.0930a8p+0 : 0x4.cea6772433e37c28p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.0930a8p+0 : 0x4.cea6772433e37c28p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.0930a8p+0 : 0x4.cea6772433e37c28p+4 : inexact-ok
+= sinh upward m68k96 0x5.0930a8p+0 : 0x4.cea6772433e37c3p+4 : inexact-ok
+= sinh downward binary128 0x5.0930a8p+0 : 0x4.cea6772433e37c285b4d2d62e1a8p+4 : inexact-ok
+= sinh tonearest binary128 0x5.0930a8p+0 : 0x4.cea6772433e37c285b4d2d62e1acp+4 : inexact-ok
+= sinh towardzero binary128 0x5.0930a8p+0 : 0x4.cea6772433e37c285b4d2d62e1a8p+4 : inexact-ok
+= sinh upward binary128 0x5.0930a8p+0 : 0x4.cea6772433e37c285b4d2d62e1acp+4 : inexact-ok
+= sinh downward ibm128 0x5.0930a8p+0 : 0x4.cea6772433e37c285b4d2d62ep+4 : inexact-ok
+= sinh tonearest ibm128 0x5.0930a8p+0 : 0x4.cea6772433e37c285b4d2d62e2p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.0930a8p+0 : 0x4.cea6772433e37c285b4d2d62ep+4 : inexact-ok
+= sinh upward ibm128 0x5.0930a8p+0 : 0x4.cea6772433e37c285b4d2d62e2p+4 : inexact-ok
+= sinh downward binary64 0x5.0930ae808acap+0 : 0x4.cea69666b69f4p+4 : inexact-ok
+= sinh tonearest binary64 0x5.0930ae808acap+0 : 0x4.cea69666b69f8p+4 : inexact-ok
+= sinh towardzero binary64 0x5.0930ae808acap+0 : 0x4.cea69666b69f4p+4 : inexact-ok
+= sinh upward binary64 0x5.0930ae808acap+0 : 0x4.cea69666b69f8p+4 : inexact-ok
+= sinh downward intel96 0x5.0930ae808acap+0 : 0x4.cea69666b69f7ff8p+4 : inexact-ok
+= sinh tonearest intel96 0x5.0930ae808acap+0 : 0x4.cea69666b69f8p+4 : inexact-ok
+= sinh towardzero intel96 0x5.0930ae808acap+0 : 0x4.cea69666b69f7ff8p+4 : inexact-ok
+= sinh upward intel96 0x5.0930ae808acap+0 : 0x4.cea69666b69f8p+4 : inexact-ok
+= sinh downward m68k96 0x5.0930ae808acap+0 : 0x4.cea69666b69f7ff8p+4 : inexact-ok
+= sinh tonearest m68k96 0x5.0930ae808acap+0 : 0x4.cea69666b69f8p+4 : inexact-ok
+= sinh towardzero m68k96 0x5.0930ae808acap+0 : 0x4.cea69666b69f7ff8p+4 : inexact-ok
+= sinh upward m68k96 0x5.0930ae808acap+0 : 0x4.cea69666b69f8p+4 : inexact-ok
+= sinh downward binary128 0x5.0930ae808acap+0 : 0x4.cea69666b69f7fffc089e3fac2ccp+4 : inexact-ok
+= sinh tonearest binary128 0x5.0930ae808acap+0 : 0x4.cea69666b69f7fffc089e3fac2dp+4 : inexact-ok
+= sinh towardzero binary128 0x5.0930ae808acap+0 : 0x4.cea69666b69f7fffc089e3fac2ccp+4 : inexact-ok
+= sinh upward binary128 0x5.0930ae808acap+0 : 0x4.cea69666b69f7fffc089e3fac2dp+4 : inexact-ok
+= sinh downward ibm128 0x5.0930ae808acap+0 : 0x4.cea69666b69f7fffc089e3fac2p+4 : inexact-ok
+= sinh tonearest ibm128 0x5.0930ae808acap+0 : 0x4.cea69666b69f7fffc089e3fac2p+4 : inexact-ok
+= sinh towardzero ibm128 0x5.0930ae808acap+0 : 0x4.cea69666b69f7fffc089e3fac2p+4 : inexact-ok
+= sinh upward ibm128 0x5.0930ae808acap+0 : 0x4.cea69666b69f7fffc089e3fac4p+4 : inexact-ok
+sinh 0x1.78b7f7218cbbap-8
+= sinh downward binary32 0x1.78b7f8p-8 : 0x1.78b87ep-8 : inexact-ok
+= sinh tonearest binary32 0x1.78b7f8p-8 : 0x1.78b88p-8 : inexact-ok
+= sinh towardzero binary32 0x1.78b7f8p-8 : 0x1.78b87ep-8 : inexact-ok
+= sinh upward binary32 0x1.78b7f8p-8 : 0x1.78b88p-8 : inexact-ok
+= sinh downward binary64 0x1.78b7f8p-8 : 0x1.78b87ff688e8bp-8 : inexact-ok
+= sinh tonearest binary64 0x1.78b7f8p-8 : 0x1.78b87ff688e8bp-8 : inexact-ok
+= sinh towardzero binary64 0x1.78b7f8p-8 : 0x1.78b87ff688e8bp-8 : inexact-ok
+= sinh upward binary64 0x1.78b7f8p-8 : 0x1.78b87ff688e8cp-8 : inexact-ok
+= sinh downward intel96 0x1.78b7f8p-8 : 0x1.78b87ff688e8b258p-8 : inexact-ok
+= sinh tonearest intel96 0x1.78b7f8p-8 : 0x1.78b87ff688e8b258p-8 : inexact-ok
+= sinh towardzero intel96 0x1.78b7f8p-8 : 0x1.78b87ff688e8b258p-8 : inexact-ok
+= sinh upward intel96 0x1.78b7f8p-8 : 0x1.78b87ff688e8b25ap-8 : inexact-ok
+= sinh downward m68k96 0x1.78b7f8p-8 : 0x1.78b87ff688e8b258p-8 : inexact-ok
+= sinh tonearest m68k96 0x1.78b7f8p-8 : 0x1.78b87ff688e8b258p-8 : inexact-ok
+= sinh towardzero m68k96 0x1.78b7f8p-8 : 0x1.78b87ff688e8b258p-8 : inexact-ok
+= sinh upward m68k96 0x1.78b7f8p-8 : 0x1.78b87ff688e8b25ap-8 : inexact-ok
+= sinh downward binary128 0x1.78b7f8p-8 : 0x1.78b87ff688e8b2587af9bca8f038p-8 : inexact-ok
+= sinh tonearest binary128 0x1.78b7f8p-8 : 0x1.78b87ff688e8b2587af9bca8f039p-8 : inexact-ok
+= sinh towardzero binary128 0x1.78b7f8p-8 : 0x1.78b87ff688e8b2587af9bca8f038p-8 : inexact-ok
+= sinh upward binary128 0x1.78b7f8p-8 : 0x1.78b87ff688e8b2587af9bca8f039p-8 : inexact-ok
+= sinh downward ibm128 0x1.78b7f8p-8 : 0x1.78b87ff688e8b2587af9bca8fp-8 : inexact-ok
+= sinh tonearest ibm128 0x1.78b7f8p-8 : 0x1.78b87ff688e8b2587af9bca8fp-8 : inexact-ok
+= sinh towardzero ibm128 0x1.78b7f8p-8 : 0x1.78b87ff688e8b2587af9bca8fp-8 : inexact-ok
+= sinh upward ibm128 0x1.78b7f8p-8 : 0x1.78b87ff688e8b2587af9bca8f08p-8 : inexact-ok
+= sinh downward binary32 0x1.78b7f6p-8 : 0x1.78b87cp-8 : inexact-ok
+= sinh tonearest binary32 0x1.78b7f6p-8 : 0x1.78b87ep-8 : inexact-ok
+= sinh towardzero binary32 0x1.78b7f6p-8 : 0x1.78b87cp-8 : inexact-ok
+= sinh upward binary32 0x1.78b7f6p-8 : 0x1.78b87ep-8 : inexact-ok
+= sinh downward binary64 0x1.78b7f6p-8 : 0x1.78b87df686be5p-8 : inexact-ok
+= sinh tonearest binary64 0x1.78b7f6p-8 : 0x1.78b87df686be5p-8 : inexact-ok
+= sinh towardzero binary64 0x1.78b7f6p-8 : 0x1.78b87df686be5p-8 : inexact-ok
+= sinh upward binary64 0x1.78b7f6p-8 : 0x1.78b87df686be6p-8 : inexact-ok
+= sinh downward intel96 0x1.78b7f6p-8 : 0x1.78b87df686be550ap-8 : inexact-ok
+= sinh tonearest intel96 0x1.78b7f6p-8 : 0x1.78b87df686be550ap-8 : inexact-ok
+= sinh towardzero intel96 0x1.78b7f6p-8 : 0x1.78b87df686be550ap-8 : inexact-ok
+= sinh upward intel96 0x1.78b7f6p-8 : 0x1.78b87df686be550cp-8 : inexact-ok
+= sinh downward m68k96 0x1.78b7f6p-8 : 0x1.78b87df686be550ap-8 : inexact-ok
+= sinh tonearest m68k96 0x1.78b7f6p-8 : 0x1.78b87df686be550ap-8 : inexact-ok
+= sinh towardzero m68k96 0x1.78b7f6p-8 : 0x1.78b87df686be550ap-8 : inexact-ok
+= sinh upward m68k96 0x1.78b7f6p-8 : 0x1.78b87df686be550cp-8 : inexact-ok
+= sinh downward binary128 0x1.78b7f6p-8 : 0x1.78b87df686be550aae07134fcc65p-8 : inexact-ok
+= sinh tonearest binary128 0x1.78b7f6p-8 : 0x1.78b87df686be550aae07134fcc66p-8 : inexact-ok
+= sinh towardzero binary128 0x1.78b7f6p-8 : 0x1.78b87df686be550aae07134fcc65p-8 : inexact-ok
+= sinh upward binary128 0x1.78b7f6p-8 : 0x1.78b87df686be550aae07134fcc66p-8 : inexact-ok
+= sinh downward ibm128 0x1.78b7f6p-8 : 0x1.78b87df686be550aae07134fccp-8 : inexact-ok
+= sinh tonearest ibm128 0x1.78b7f6p-8 : 0x1.78b87df686be550aae07134fcc8p-8 : inexact-ok
+= sinh towardzero ibm128 0x1.78b7f6p-8 : 0x1.78b87df686be550aae07134fccp-8 : inexact-ok
+= sinh upward ibm128 0x1.78b7f6p-8 : 0x1.78b87df686be550aae07134fcc8p-8 : inexact-ok
+= sinh downward binary64 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37p-8 : inexact-ok
+= sinh tonearest binary64 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37p-8 : inexact-ok
+= sinh towardzero binary64 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37p-8 : inexact-ok
+= sinh upward binary64 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b38p-8 : inexact-ok
+= sinh downward intel96 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37714p-8 : inexact-ok
+= sinh tonearest intel96 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37716p-8 : inexact-ok
+= sinh towardzero intel96 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37714p-8 : inexact-ok
+= sinh upward intel96 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37716p-8 : inexact-ok
+= sinh downward m68k96 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37714p-8 : inexact-ok
+= sinh tonearest m68k96 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37716p-8 : inexact-ok
+= sinh towardzero m68k96 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37714p-8 : inexact-ok
+= sinh upward m68k96 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b37716p-8 : inexact-ok
+= sinh downward binary128 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b3771508ad18fa8f7ep-8 : inexact-ok
+= sinh tonearest binary128 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b3771508ad18fa8f7ep-8 : inexact-ok
+= sinh towardzero binary128 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b3771508ad18fa8f7ep-8 : inexact-ok
+= sinh upward binary128 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b3771508ad18fa8f7fp-8 : inexact-ok
+= sinh downward ibm128 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b3771508ad18fa8fp-8 : inexact-ok
+= sinh tonearest ibm128 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b3771508ad18fa8f8p-8 : inexact-ok
+= sinh towardzero ibm128 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b3771508ad18fa8fp-8 : inexact-ok
+= sinh upward ibm128 0x1.78b7f7218cbbap-8 : 0x1.78b87f1814b3771508ad18fa8f8p-8 : inexact-ok
+sinh 0x1.71a7baa9570bdp-26
+= sinh downward binary32 0x5.c69efp-28 : 0x5.c69efp-28 : inexact-ok
+= sinh tonearest binary32 0x5.c69efp-28 : 0x5.c69efp-28 : inexact-ok
+= sinh towardzero binary32 0x5.c69efp-28 : 0x5.c69efp-28 : inexact-ok
+= sinh upward binary32 0x5.c69efp-28 : 0x5.c69ef8p-28 : inexact-ok
+= sinh downward binary64 0x5.c69efp-28 : 0x5.c69efp-28 : inexact-ok
+= sinh tonearest binary64 0x5.c69efp-28 : 0x5.c69ef00000004p-28 : inexact-ok
+= sinh towardzero binary64 0x5.c69efp-28 : 0x5.c69efp-28 : inexact-ok
+= sinh upward binary64 0x5.c69efp-28 : 0x5.c69ef00000004p-28 : inexact-ok
+= sinh downward intel96 0x5.c69efp-28 : 0x5.c69ef00000002018p-28 : inexact-ok
+= sinh tonearest intel96 0x5.c69efp-28 : 0x5.c69ef0000000202p-28 : inexact-ok
+= sinh towardzero intel96 0x5.c69efp-28 : 0x5.c69ef00000002018p-28 : inexact-ok
+= sinh upward intel96 0x5.c69efp-28 : 0x5.c69ef0000000202p-28 : inexact-ok
+= sinh downward m68k96 0x5.c69efp-28 : 0x5.c69ef00000002018p-28 : inexact-ok
+= sinh tonearest m68k96 0x5.c69efp-28 : 0x5.c69ef0000000202p-28 : inexact-ok
+= sinh towardzero m68k96 0x5.c69efp-28 : 0x5.c69ef00000002018p-28 : inexact-ok
+= sinh upward m68k96 0x5.c69efp-28 : 0x5.c69ef0000000202p-28 : inexact-ok
+= sinh downward binary128 0x5.c69efp-28 : 0x5.c69ef0000000201d46fc3e317d5p-28 : inexact-ok
+= sinh tonearest binary128 0x5.c69efp-28 : 0x5.c69ef0000000201d46fc3e317d54p-28 : inexact-ok
+= sinh towardzero binary128 0x5.c69efp-28 : 0x5.c69ef0000000201d46fc3e317d5p-28 : inexact-ok
+= sinh upward binary128 0x5.c69efp-28 : 0x5.c69ef0000000201d46fc3e317d54p-28 : inexact-ok
+= sinh downward ibm128 0x5.c69efp-28 : 0x5.c69ef0000000201d46fc3e317cp-28 : inexact-ok
+= sinh tonearest ibm128 0x5.c69efp-28 : 0x5.c69ef0000000201d46fc3e317ep-28 : inexact-ok
+= sinh towardzero ibm128 0x5.c69efp-28 : 0x5.c69ef0000000201d46fc3e317cp-28 : inexact-ok
+= sinh upward ibm128 0x5.c69efp-28 : 0x5.c69ef0000000201d46fc3e317ep-28 : inexact-ok
+= sinh downward binary32 0x5.c69ee8p-28 : 0x5.c69ee8p-28 : inexact-ok
+= sinh tonearest binary32 0x5.c69ee8p-28 : 0x5.c69ee8p-28 : inexact-ok
+= sinh towardzero binary32 0x5.c69ee8p-28 : 0x5.c69ee8p-28 : inexact-ok
+= sinh upward binary32 0x5.c69ee8p-28 : 0x5.c69efp-28 : inexact-ok
+= sinh downward binary64 0x5.c69ee8p-28 : 0x5.c69ee8p-28 : inexact-ok
+= sinh tonearest binary64 0x5.c69ee8p-28 : 0x5.c69ee80000004p-28 : inexact-ok
+= sinh towardzero binary64 0x5.c69ee8p-28 : 0x5.c69ee8p-28 : inexact-ok
+= sinh upward binary64 0x5.c69ee8p-28 : 0x5.c69ee80000004p-28 : inexact-ok
+= sinh downward intel96 0x5.c69ee8p-28 : 0x5.c69ee80000002018p-28 : inexact-ok
+= sinh tonearest intel96 0x5.c69ee8p-28 : 0x5.c69ee8000000202p-28 : inexact-ok
+= sinh towardzero intel96 0x5.c69ee8p-28 : 0x5.c69ee80000002018p-28 : inexact-ok
+= sinh upward intel96 0x5.c69ee8p-28 : 0x5.c69ee8000000202p-28 : inexact-ok
+= sinh downward m68k96 0x5.c69ee8p-28 : 0x5.c69ee80000002018p-28 : inexact-ok
+= sinh tonearest m68k96 0x5.c69ee8p-28 : 0x5.c69ee8000000202p-28 : inexact-ok
+= sinh towardzero m68k96 0x5.c69ee8p-28 : 0x5.c69ee80000002018p-28 : inexact-ok
+= sinh upward m68k96 0x5.c69ee8p-28 : 0x5.c69ee8000000202p-28 : inexact-ok
+= sinh downward binary128 0x5.c69ee8p-28 : 0x5.c69ee8000000201d4676ccf3be7p-28 : inexact-ok
+= sinh tonearest binary128 0x5.c69ee8p-28 : 0x5.c69ee8000000201d4676ccf3be7p-28 : inexact-ok
+= sinh towardzero binary128 0x5.c69ee8p-28 : 0x5.c69ee8000000201d4676ccf3be7p-28 : inexact-ok
+= sinh upward binary128 0x5.c69ee8p-28 : 0x5.c69ee8000000201d4676ccf3be74p-28 : inexact-ok
+= sinh downward ibm128 0x5.c69ee8p-28 : 0x5.c69ee8000000201d4676ccf3bep-28 : inexact-ok
+= sinh tonearest ibm128 0x5.c69ee8p-28 : 0x5.c69ee8000000201d4676ccf3bep-28 : inexact-ok
+= sinh towardzero ibm128 0x5.c69ee8p-28 : 0x5.c69ee8000000201d4676ccf3bep-28 : inexact-ok
+= sinh upward ibm128 0x5.c69ee8p-28 : 0x5.c69ee8000000201d4676ccf3cp-28 : inexact-ok
+= sinh downward binary64 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f4p-28 : inexact-ok
+= sinh tonearest binary64 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f8p-28 : inexact-ok
+= sinh towardzero binary64 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f4p-28 : inexact-ok
+= sinh upward binary64 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f8p-28 : inexact-ok
+= sinh downward intel96 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f6018p-28 : inexact-ok
+= sinh tonearest intel96 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f602p-28 : inexact-ok
+= sinh towardzero intel96 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f6018p-28 : inexact-ok
+= sinh upward intel96 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f602p-28 : inexact-ok
+= sinh downward m68k96 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f6018p-28 : inexact-ok
+= sinh tonearest m68k96 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f602p-28 : inexact-ok
+= sinh towardzero m68k96 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f6018p-28 : inexact-ok
+= sinh upward m68k96 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f602p-28 : inexact-ok
+= sinh downward binary128 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f601d46a2ef84492cp-28 : inexact-ok
+= sinh tonearest binary128 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f601d46a2ef84492cp-28 : inexact-ok
+= sinh towardzero binary128 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f601d46a2ef84492cp-28 : inexact-ok
+= sinh upward binary128 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f601d46a2ef84493p-28 : inexact-ok
+= sinh downward ibm128 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f601d46a2ef8448p-28 : inexact-ok
+= sinh tonearest ibm128 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f601d46a2ef844ap-28 : inexact-ok
+= sinh towardzero ibm128 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f601d46a2ef8448p-28 : inexact-ok
+= sinh upward ibm128 0x5.c69eeaa55c2f4p-28 : 0x5.c69eeaa55c2f601d46a2ef844ap-28 : inexact-ok
+sinh 0x1.0042fffffffffp-3
+= sinh downward binary32 0x2.0086p-4 : 0x2.01dca4p-4 : inexact-ok
+= sinh tonearest binary32 0x2.0086p-4 : 0x2.01dca8p-4 : inexact-ok
+= sinh towardzero binary32 0x2.0086p-4 : 0x2.01dca4p-4 : inexact-ok
+= sinh upward binary32 0x2.0086p-4 : 0x2.01dca8p-4 : inexact-ok
+= sinh downward binary64 0x2.0086p-4 : 0x2.01dca63fd4944p-4 : inexact-ok
+= sinh tonearest binary64 0x2.0086p-4 : 0x2.01dca63fd4944p-4 : inexact-ok
+= sinh towardzero binary64 0x2.0086p-4 : 0x2.01dca63fd4944p-4 : inexact-ok
+= sinh upward binary64 0x2.0086p-4 : 0x2.01dca63fd4946p-4 : inexact-ok
+= sinh downward intel96 0x2.0086p-4 : 0x2.01dca63fd4944a6cp-4 : inexact-ok
+= sinh tonearest intel96 0x2.0086p-4 : 0x2.01dca63fd4944a7p-4 : inexact-ok
+= sinh towardzero intel96 0x2.0086p-4 : 0x2.01dca63fd4944a6cp-4 : inexact-ok
+= sinh upward intel96 0x2.0086p-4 : 0x2.01dca63fd4944a7p-4 : inexact-ok
+= sinh downward m68k96 0x2.0086p-4 : 0x2.01dca63fd4944a6cp-4 : inexact-ok
+= sinh tonearest m68k96 0x2.0086p-4 : 0x2.01dca63fd4944a7p-4 : inexact-ok
+= sinh towardzero m68k96 0x2.0086p-4 : 0x2.01dca63fd4944a6cp-4 : inexact-ok
+= sinh upward m68k96 0x2.0086p-4 : 0x2.01dca63fd4944a7p-4 : inexact-ok
+= sinh downward binary128 0x2.0086p-4 : 0x2.01dca63fd4944a6ed95f1838237cp-4 : inexact-ok
+= sinh tonearest binary128 0x2.0086p-4 : 0x2.01dca63fd4944a6ed95f1838237ep-4 : inexact-ok
+= sinh towardzero binary128 0x2.0086p-4 : 0x2.01dca63fd4944a6ed95f1838237cp-4 : inexact-ok
+= sinh upward binary128 0x2.0086p-4 : 0x2.01dca63fd4944a6ed95f1838237ep-4 : inexact-ok
+= sinh downward ibm128 0x2.0086p-4 : 0x2.01dca63fd4944a6ed95f183823p-4 : inexact-ok
+= sinh tonearest ibm128 0x2.0086p-4 : 0x2.01dca63fd4944a6ed95f183823p-4 : inexact-ok
+= sinh towardzero ibm128 0x2.0086p-4 : 0x2.01dca63fd4944a6ed95f183823p-4 : inexact-ok
+= sinh upward ibm128 0x2.0086p-4 : 0x2.01dca63fd4944a6ed95f183824p-4 : inexact-ok
+= sinh downward binary32 0x2.0085fcp-4 : 0x2.01dcap-4 : inexact-ok
+= sinh tonearest binary32 0x2.0085fcp-4 : 0x2.01dca4p-4 : inexact-ok
+= sinh towardzero binary32 0x2.0085fcp-4 : 0x2.01dcap-4 : inexact-ok
+= sinh upward binary32 0x2.0085fcp-4 : 0x2.01dca4p-4 : inexact-ok
+= sinh downward binary64 0x2.0085fcp-4 : 0x2.01dca237cdb5ep-4 : inexact-ok
+= sinh tonearest binary64 0x2.0085fcp-4 : 0x2.01dca237cdb6p-4 : inexact-ok
+= sinh towardzero binary64 0x2.0085fcp-4 : 0x2.01dca237cdb5ep-4 : inexact-ok
+= sinh upward binary64 0x2.0085fcp-4 : 0x2.01dca237cdb6p-4 : inexact-ok
+= sinh downward intel96 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2cp-4 : inexact-ok
+= sinh tonearest intel96 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2cp-4 : inexact-ok
+= sinh towardzero intel96 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2cp-4 : inexact-ok
+= sinh upward intel96 0x2.0085fcp-4 : 0x2.01dca237cdb5fc3p-4 : inexact-ok
+= sinh downward m68k96 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2cp-4 : inexact-ok
+= sinh tonearest m68k96 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2cp-4 : inexact-ok
+= sinh towardzero m68k96 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2cp-4 : inexact-ok
+= sinh upward m68k96 0x2.0085fcp-4 : 0x2.01dca237cdb5fc3p-4 : inexact-ok
+= sinh downward binary128 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2c1cedf2eb41bap-4 : inexact-ok
+= sinh tonearest binary128 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2c1cedf2eb41bap-4 : inexact-ok
+= sinh towardzero binary128 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2c1cedf2eb41bap-4 : inexact-ok
+= sinh upward binary128 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2c1cedf2eb41bcp-4 : inexact-ok
+= sinh downward ibm128 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2c1cedf2eb41p-4 : inexact-ok
+= sinh tonearest ibm128 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2c1cedf2eb42p-4 : inexact-ok
+= sinh towardzero ibm128 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2c1cedf2eb41p-4 : inexact-ok
+= sinh upward ibm128 0x2.0085fcp-4 : 0x2.01dca237cdb5fc2c1cedf2eb42p-4 : inexact-ok
+= sinh downward binary64 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942p-4 : inexact-ok
+= sinh tonearest binary64 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942p-4 : inexact-ok
+= sinh towardzero binary64 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942p-4 : inexact-ok
+= sinh upward binary64 0x2.0085ffffffffep-4 : 0x2.01dca63fd4944p-4 : inexact-ok
+= sinh downward intel96 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2cp-4 : inexact-ok
+= sinh tonearest intel96 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a3p-4 : inexact-ok
+= sinh towardzero intel96 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2cp-4 : inexact-ok
+= sinh upward intel96 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a3p-4 : inexact-ok
+= sinh downward m68k96 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2cp-4 : inexact-ok
+= sinh tonearest m68k96 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a3p-4 : inexact-ok
+= sinh towardzero m68k96 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2cp-4 : inexact-ok
+= sinh upward m68k96 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a3p-4 : inexact-ok
+= sinh downward binary128 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2ea26c25ab16bep-4 : inexact-ok
+= sinh tonearest binary128 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2ea26c25ab16bep-4 : inexact-ok
+= sinh towardzero binary128 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2ea26c25ab16bep-4 : inexact-ok
+= sinh upward binary128 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2ea26c25ab16cp-4 : inexact-ok
+= sinh downward ibm128 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2ea26c25ab16p-4 : inexact-ok
+= sinh tonearest ibm128 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2ea26c25ab17p-4 : inexact-ok
+= sinh towardzero ibm128 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2ea26c25ab16p-4 : inexact-ok
+= sinh upward ibm128 0x2.0085ffffffffep-4 : 0x2.01dca63fd4942a2ea26c25ab17p-4 : inexact-ok
 sinh max
 = sinh downward binary32 0xf.fffffp+124 : 0xf.fffffp+124 : inexact-ok overflow errno-erange-ok
 = sinh tonearest binary32 0xf.fffffp+124 : plus_infty : inexact-ok overflow errno-erange
index d96a326baa7bd1b0a6f1ab51fd8706ed43cc0cb2..333cdfdb4056a8c2a2d1a025da65e266d9694b52 100644 (file)
@@ -11,6 +11,7 @@ ifeq ($(subdir),math)
 CFLAGS-e_cosh.c += -fexcess-precision=standard
 CFLAGS-e_lgamma_r.c += -fexcess-precision=standard
 CFLAGS-e_gamma_r.c += -fexcess-precision=standard
+CFLAGS-e_sinh.c += -fexcess-precision=standard
 CFLAGS-s_erf.c += -fexcess-precision=standard
 CFLAGS-s_erfc.c += -fexcess-precision=standard
 CFLAGS-s_erf_common.c += -fexcess-precision=standard
index 3f787967f93d72f0db79369d276b54e79699162f..a9f48e61f056c27083ceb4258db69118d0ff7951 100644 (file)
-/* @(#)e_sinh.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: e_sinh.c,v 1.7 1995/05/10 20:46:13 jtc Exp $";
-#endif
+/* Correctly rounded hyperbolic sine for binary64 values.
+
+Copyright (c) 2023-2026 Alexei Sibidanov.
+
+The original version of this file was copied from the CORE-MATH
+project (file src/binary64/sinh/sinh.c, revision 8c2c3473).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
 
-/* __ieee754_sinh(x)
- * Method :
- * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2
- *     1. Replace x by |x| (sinh(-x) = -sinh(x)).
- *     2.
- *                                                 E + E/(E+1)
- *         0        <= x <= 22     :  sinh(x) := --------------, E=expm1(x)
- *                                                     2
- *
- *         22       <= x <= lnovft :  sinh(x) := exp(x)/2
- *         lnovft   <= x <= ln2ovft:  sinh(x) := exp(x/2)/2 * exp(x/2)
- *         ln2ovft  <  x           :  sinh(x) := x*shuge (overflow)
- *
- * Special cases:
- *     sinh(x) is |x| if x is +INF, -INF, or NaN.
- *     only sinh(0)=0 is exact for finite x.
- */
-
-#include <float.h>
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <array_length.h>
 #include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <math-underflow.h>
+#include <stdint.h>
+#include <errno.h>
 #include <libm-alias-finite.h>
-
-static const double one = 1.0, shuge = 1.0e307;
+#include <ddcoremath.h>
+#include "math_config.h"
 
 #ifndef SECTION
 # define SECTION
 #endif
 
+static inline double
+polydd_sinh (double xh, double xl, int n, const double c[][2], double *l)
+{
+  int i = n - 1;
+  double ch, cl, e;
+  ch = fasttwosum (c[i][0], *l, &cl);
+  cl += c[i][1];
+  while (--i >= 0)
+    {
+      ch = muldd2 (xh, xl, ch, cl, &cl);
+      ch = fasttwosum (c[i][0], ch, &e);
+      cl = (cl + c[i][1]) + e;
+    }
+  *l = cl;
+  return ch;
+}
+
+static double __attribute__ ((noinline))
+as_exp_accurate (double x, double t, double th, double tl, double *l)
+{
+  static const double ch[][2] =
+    {
+      { 0x1p+0, 0x1.6c16bd194535dp-94 },
+      { 0x1p-1, -0x1.8259d904fd34fp-93 },
+      { 0x1.5555555555555p-3, 0x1.53e93e9f26e62p-57 }
+    };
+  const double l2h = 0x1.62e42ffp-13, l2l = 0x1.718432a1b0e26p-47,
+              l2ll = 0x1.9ff0342542fc3p-102;
+  double dx = x - l2h * t, dxl = l2l * t,
+        dxll = l2ll * t + fma (l2l, t, -dxl);
+  double dxh = dx + dxl;
+  dxl = ((dx - dxh) + dxl) + dxll;
+  double fl = dxh
+             * (0x1.5555555555555p-5
+                + dxh * (0x1.11111113e93e9p-7 + dxh * 0x1.6c16c169400a7p-10));
+  double fh = polydd_sinh (dxh, dxl, 3, ch, &fl);
+  fh = muldd2 (dxh, dxl, fh, fl, &fl);
+  fh = muldd2 (th, tl, fh, fl, &fl);
+  double zh = th + fh, zl = (th - zh) + fh;
+  double uh = zh + tl, ul = ((zh - uh) + tl) + zl;
+  double vh = uh + fl, vl = ((uh - vh) + fl) + ul;
+  *l = vl;
+  return vh;
+}
+
+static double __attribute__ ((noinline))
+as_sinh_zero (double x)
+{
+  static const double ch[][2] =
+    {
+      { 0x1.5555555555555p-3, 0x1.555555555552fp-57 },
+      { 0x1.1111111111111p-7, 0x1.11111115cf00dp-63 },
+      { 0x1.a01a01a01a01ap-13, 0x1.a0011c925b85cp-73 },
+      { 0x1.71de3a556c734p-19, -0x1.b4e2835532bcdp-73 },
+      { 0x1.ae64567f54482p-26, -0x1.defcf17a6ab79p-81 }
+    };
+  double x2 = x * x, x2l = fma (x, x, -x2);
+  double y2 = x2
+             * (0x1.6124613aef206p-33
+                + x2 * (0x1.ae7f36beea815p-41 + x2 * 0x1.95785063cd974p-49));
+  double y1 = polydd_sinh (x2, x2l, 5, ch, &y2);
+  y1 = mulddd3 (y1, y2, x, &y2);
+  y1 = muldd2 (y1, y2, x2, x2l, &y2);
+  double y0 = fasttwosum (x, y1, &y1);
+  y1 = fasttwosum (y1, y2, &y2);
+  uint64_t t = asuint64 (y1);
+  if (__glibc_unlikely (!(t & MANTISSA_MASK)))
+    {
+      uint64_t w = asuint64 (y2);
+      if ((w ^ t) >> 63)
+       t--;
+      else
+       t++;
+      y1 = asdouble (t);
+    }
+  return y0 + y1;
+}
+
+static __attribute__ ((noinline)) double
+as_sinh_database (double x, double f)
+{
+  static const double db[][3] =
+    {
+      { 0x1.364303e1ad8f6p-2, 0x1.3b07e0c779ddap-2, -0x1.bcp-106 },
+      { 0x1.4169f234f23b9p-2, 0x1.46b7b3b358f99p-2, -0x1p-56 },
+      { 0x1.616cc75d49226p-2, 0x1.687bd068c1c1ep-2, 0x1.ap-111 },
+      { 0x1.ae3773250e7d2p-2, 0x1.bafc3479fc9ccp-2, -0x1p-105 },
+      { 0x1.b7efa91915c95p-2, 0x1.c59869f17b483p-2, -0x1p-104 },
+      { 0x1.d68039861ab53p-2, 0x1.e73b46abb01e1p-2, -0x1.2p-109 },
+      { 0x1.e90f16eb88c09p-2, 0x1.fbdd4a37760b7p-2, -0x1.f8p-108 },
+      { 0x1.a3fc7e4dd47d1p-1, 0x1.d4b21ebf542fp-1, 0x1.ep-107 },
+      { 0x1.aa3b649a96091p-1, 0x1.dd32c5ed1e93p-1, 0x1.8ap-106 },
+      { 0x1.c13876341b62ep-1, 0x1.fd1d7f1c8170cp-1, 0x1.72p-105 },
+      { 0x1.2f5d3b178914ap+0, 0x1.7b8516ffd2406p+0, -0x1.28p-104 },
+      { 0x1.3ffc12b81cbc2p+0, 0x1.9a0ff413a1af3p+0, 0x1.cp-107 },
+      { 0x1.44f65dff00782p+0, 0x1.a38a3c3227609p+0, -0x1p-103 },
+      { 0x1.7346e3c591a14p+0, 0x1.01e9cfa77b855p+1, 0x1.p-102 },
+      { 0x1.b6e2c73f41415p+0, 0x1.57e377b3f0b4bp+1, -0x1p-102 },
+      { 0x1.dc5059d4e507dp+0, 0x1.9168c60ed5256p+1, 0x1.c6p-104 },
+      { 0x1.f737f1e8378c7p+0, 0x1.bffd3f94f40fbp+1, 0x1.a4p-104 },
+      { 0x1.3359640329982p+1, 0x1.5e40df3f985bep+2, 0x1.97p-102 },
+      { 0x1.58a4ff5adac35p+1, 0x1.d671928665bddp+2, 0x1p-102 },
+      { 0x1.8c0a26d055288p+1, 0x1.6056b06a21918p+3, -0x1.bep-102 },
+      { 0x1.bc3c2d0c95f52p+1, 0x1.00fef7383a978p+4, 0x1.61p-100 },
+      { 0x1.0a19aebb51e9p+3, 0x1.fee8f69c4cd25p+10, 0x1.48p-95 },
+      { 0x1.3eb8f61734227p+3, 0x1.4ab1cf45e4e26p+13, 0x1p-90 },
+      { 0x1.43a81752eabe7p+3, 0x1.81d364845ecfap+13, -0x1p-90 },
+      { 0x1.16369cd53bb69p+4, 0x1.0fbc6c02b1c9p+24, -0x1.9p-81 },
+      { 0x1.20e29ea8b51e2p+4, 0x1.08b8abba28abcp+25, 0x1.9bp-79 },
+      { 0x1.92a5c27afbe82p+4, 0x1.3c81f9a247253p+35, 0x1p-67 },
+      { 0x1.a1e4f11b513d7p+4, 0x1.9a65b6c2e2185p+36, -0x1.bcp-70 },
+      { 0x1.c089fcf166171p+4, 0x1.5c452e0e37569p+39, 0x1.4p-69 },
+      { 0x1.e42a98b3a0be5p+4, 0x1.938768ca4f8aap+42, 0x1.6dp-62 },
+      { 0x1.04db52248cbb8p+5, 0x1.0794072349523p+46, 0x1.0e8p-57 },
+      { 0x1.21bc021eeb97ep+5, 0x1.3065064a170fbp+51, 0x1.088p-52 },
+      { 0x1.39fc4d3bb711p+5, 0x1.8a4e90733b95ep+55, 0x1.6ep-50 },
+      { 0x1.3c895d86e96c9p+5, 0x1.0f33837882a6p+56, -0x1.28p-49 },
+      { 0x1.e07e71bfcf06fp+5, 0x1.91ec4412c344fp+85, 0x1p-24 },
+      { 0x1.f7216c4b435c9p+5, 0x1.a97e7be23e65ap+89, -0x1p-15 },
+      { 0x1.6474c604cc0d7p+6, 0x1.7a8f65ad009bdp+127, -0x1.08p+20 },
+      { 0x1.7a60ee15e3e9dp+6, 0x1.62e4dc3bbf53fp+135, 0x1.bp+29 },
+      { 0x1.1f0da93354198p+7, 0x1.0bd73b73fc74cp+206, 0x1.59p+102 },
+      { 0x1.54cd1fea7663ap+7, 0x1.c90810d354618p+244, 0x1.2p+135 },
+      { 0x1.556c678d5e976p+7, 0x1.37e7ac4e7f9b3p+245, 0x1.02p+141 },
+      { 0x1.7945e34b18a9ap+7, 0x1.1b0e4936a8c9bp+271, -0x1.fap+166 },
+      { 0x1.2da9e5e6af0bp+8, 0x1.27d6fe867d6f6p+434, 0x1.0ap+329 },
+      { 0x1.54ceba01331d5p+8, 0x1.9a86785b5ef3ep+490, -0x1.22p+386 },
+      { 0x1.9e7b643238a14p+8, 0x1.f5da7fe652978p+596, 0x1p+493 },
+      { 0x1.c7206c1b753e4p+8, 0x1.8670de0b68cadp+655, -0x1.78p+548 },
+      { 0x1.d6479eba7c971p+8, 0x1.62a88613629b6p+677, -0x1.4p+568 },
+      { 0x1.eb9914d4ac1c8p+8, 0x1.2b67eff65dce8p+708, -0x1.02p+603 },
+      { 0x1.0bc04af1b09f5p+9, 0x1.7b1d97c902985p+771, 0x1.56p+666 },
+      { 0x1.26ee1a46d8c8bp+9, 0x1.fbe20477df4a7p+849, -0x1.55p+745 },
+      { 0x1.4a869881f72acp+9, 0x1.9ea7540a3d1f9p+952, -0x1.2dp+848 },
+  };
+  int a = 0, b = array_length (db) - 1, m = (a + b) / 2;
+  double ax = fabs (x);
+  while (a <= b)
+    {
+      if (db[m][0] < ax)
+       a = m + 1;
+      else if (db[m][0] == ax)
+       {
+         f = copysign (1, x) * db[m][1] + copysign (1, x) * db[m][2];
+         break;
+       }
+      else
+       b = m - 1;
+      m = (a + b) / 2;
+    }
+  return f;
+}
+
 SECTION
 double
 __ieee754_sinh (double x)
 {
-  double t, w, h;
-  int32_t ix, jx;
-  uint32_t lx;
-
-  /* High word of |x|. */
-  GET_HIGH_WORD (jx, x);
-  ix = jx & 0x7fffffff;
-
-  /* x is INF or NaN */
-  if (__glibc_unlikely (ix >= 0x7ff00000))
-    return x + x;
-
-  h = 0.5;
-  if (jx < 0)
-    h = -h;
-  /* |x| in [0,22], return sign(x)*0.5*(E+E/(E+1))) */
-  if (ix < 0x40360000)                  /* |x|<22 */
+  /*
+    The function sinh(x) is approximated by a minimax polynomial for
+    |x|<0.25. For other arguments the identity
+    sinh(x)=(exp(|x|)-exp(-|x|))/2*copysign(1,x) is used. For |x|<5
+    both exponents are calculated with slightly higher precision than
+    double. For 5<|x|<36.736801 the exp(-|x|) is small and is
+    calculated with double precision but exp(|x|) is calculated with
+    higher than double precision. For 36.736801<|x|<710.47586
+    exp(-|x|) becomes too small and only exp(|x|) is calculated.
+   */
+  static const double t0[][2] =
     {
-      if (__glibc_unlikely (ix < 0x3e300000)) {            /* |x|<2**-28 */
-       math_check_force_underflow (x);
-       if (shuge + x > one)
-         return x;
-       /* sinh(tiny) = tiny with inexact */
-      }
-      t = __expm1 (fabs (x));
-      if (ix < 0x3ff00000)
-       return h * (2.0 * t - t * t / (t + one));
-      return h * (t + t / (t + one));
+      { 0x0p+0, 0x1p+0 },
+      { -0x1.19083535b085ep-56, 0x1.02c9a3e778061p+0 },
+      { 0x1.d73e2a475b466p-55, 0x1.059b0d3158574p+0 },
+      { 0x1.186be4bb285p-57, 0x1.0874518759bc8p+0 },
+      { 0x1.8a62e4adc610ap-54, 0x1.0b5586cf9890fp+0 },
+      { 0x1.03a1727c57b52p-59, 0x1.0e3ec32d3d1a2p+0 },
+      { -0x1.6c51039449b3ap-54, 0x1.11301d0125b51p+0 },
+      { -0x1.32fbf9af1369ep-54, 0x1.1429aaea92dep+0 },
+      { -0x1.19041b9d78a76p-55, 0x1.172b83c7d517bp+0 },
+      { 0x1.e5b4c7b4968e4p-55, 0x1.1a35beb6fcb75p+0 },
+      { 0x1.e016e00a2643cp-54, 0x1.1d4873168b9aap+0 },
+      { 0x1.dc775814a8494p-55, 0x1.2063b88628cd6p+0 },
+      { 0x1.9b07eb6c70572p-54, 0x1.2387a6e756238p+0 },
+      { 0x1.2bd339940e9dap-55, 0x1.26b4565e27cddp+0 },
+      { 0x1.612e8afad1256p-55, 0x1.29e9df51fdee1p+0 },
+      { 0x1.0024754db41d4p-54, 0x1.2d285a6e4030bp+0 },
+      { 0x1.6f46ad23182e4p-55, 0x1.306fe0a31b715p+0 },
+      { 0x1.32721843659a6p-54, 0x1.33c08b26416ffp+0 },
+      { -0x1.63aeabf42eae2p-54, 0x1.371a7373aa9cbp+0 },
+      { -0x1.5e436d661f5e2p-56, 0x1.3a7db34e59ff7p+0 },
+      { 0x1.ada0911f09ebcp-55, 0x1.3dea64c123422p+0 },
+      { -0x1.ef3691c309278p-58, 0x1.4160a21f72e2ap+0 },
+      { 0x1.89b7a04ef80dp-59, 0x1.44e086061892dp+0 },
+      { 0x1.3c1a3b69062fp-56, 0x1.486a2b5c13cdp+0 },
+      { 0x1.d4397afec42e2p-56, 0x1.4bfdad5362a27p+0 },
+      { -0x1.4b309d25957e4p-54, 0x1.4f9b2769d2ca7p+0 },
+      { -0x1.07abe1db13cacp-55, 0x1.5342b569d4f82p+0 },
+      { 0x1.9bb2c011d93acp-54, 0x1.56f4736b527dap+0 },
+      { 0x1.6324c054647acp-54, 0x1.5ab07dd485429p+0 },
+      { 0x1.ba6f93080e65ep-54, 0x1.5e76f15ad2148p+0 },
+      { -0x1.383c17e40b496p-54, 0x1.6247eb03a5585p+0 },
+      { -0x1.bb60987591c34p-54, 0x1.6623882552225p+0 },
+      { -0x1.bdd3413b26456p-54, 0x1.6a09e667f3bcdp+0 },
+      { -0x1.bbe3a683c88aap-57, 0x1.6dfb23c651a2fp+0 },
+      { -0x1.16e4786887a9ap-55, 0x1.71f75e8ec5f74p+0 },
+      { -0x1.0245957316dd4p-54, 0x1.75feb564267c9p+0 },
+      { -0x1.41577ee04993p-55, 0x1.7a11473eb0187p+0 },
+      { 0x1.05d02ba15797ep-56, 0x1.7e2f336cf4e62p+0 },
+      { -0x1.d4c1dd41532d8p-54, 0x1.82589994cce13p+0 },
+      { -0x1.fc6f89bd4f6bap-54, 0x1.868d99b4492edp+0 },
+      { 0x1.6e9f156864b26p-54, 0x1.8ace5422aa0dbp+0 },
+      { 0x1.5cc13a2e3976cp-55, 0x1.8f1ae99157736p+0 },
+      { -0x1.75fc781b57ebcp-57, 0x1.93737b0cdc5e5p+0 },
+      { -0x1.d185b7c1b85dp-54, 0x1.97d829fde4e5p+0 },
+      { 0x1.c7c46b071f2bep-56, 0x1.9c49182a3f09p+0 },
+      { -0x1.359495d1cd532p-54, 0x1.a0c667b5de565p+0 },
+      { -0x1.d2f6edb8d41e2p-54, 0x1.a5503b23e255dp+0 },
+      { 0x1.0fac90ef7fd32p-54, 0x1.a9e6b5579fdbfp+0 },
+      { 0x1.7a1cd345dcc82p-54, 0x1.ae89f995ad3adp+0 },
+      { -0x1.2805e3084d708p-57, 0x1.b33a2b84f15fbp+0 },
+      { -0x1.5584f7e54ac3ap-56, 0x1.b7f76f2fb5e47p+0 },
+      { 0x1.23dd07a2d9e84p-55, 0x1.bcc1e904bc1d2p+0 },
+      { 0x1.11065895048dep-55, 0x1.c199bdd85529cp+0 },
+      { 0x1.2884dff483cacp-54, 0x1.c67f12e57d14bp+0 },
+      { 0x1.503cbd1e949dcp-56, 0x1.cb720dcef9069p+0 },
+      { -0x1.cbc3743797a9cp-54, 0x1.d072d4a07897cp+0 },
+      { 0x1.2ed02d75b3706p-55, 0x1.d5818dcfba487p+0 },
+      { 0x1.c2300696db532p-54, 0x1.da9e603db3285p+0 },
+      { -0x1.1a5cd4f184b5cp-54, 0x1.dfc97337b9b5fp+0 },
+      { 0x1.39e8980a9cc9p-55, 0x1.e502ee78b3ff6p+0 },
+      { -0x1.e9c23179c2894p-54, 0x1.ea4afa2a490dap+0 },
+      { 0x1.dc7f486a4b6bp-54, 0x1.efa1bee615a27p+0 },
+      { 0x1.9d3e12dd8a18ap-54, 0x1.f50765b6e454p+0 },
+      { 0x1.74853f3a5931ep-55, 0x1.fa7c1819e90d8p+0 }
+    };
+  static const double t1[][2] =
+    {
+      { 0x0p+0, 0x1p+0 },
+      { 0x1.ae8e38c59c72ap-54, 0x1.000b175effdc7p+0 },
+      { -0x1.7b5d0d58ea8f4p-58, 0x1.00162f3904052p+0 },
+      { 0x1.4115cb6b16a8ep-54, 0x1.0021478e11ce6p+0 },
+      { -0x1.d7c96f201bb2ep-55, 0x1.002c605e2e8cfp+0 },
+      { 0x1.84711d4c35eap-54, 0x1.003779a95f959p+0 },
+      { -0x1.0484245243778p-55, 0x1.0042936faa3d8p+0 },
+      { -0x1.4b237da2025fap-54, 0x1.004dadb113dap+0 },
+      { -0x1.5e00e62d6b30ep-56, 0x1.0058c86da1c0ap+0 },
+      { 0x1.a1d6cedbb948p-54, 0x1.0063e3a559473p+0 },
+      { -0x1.4acf197a00142p-54, 0x1.006eff583fc3dp+0 },
+      { -0x1.eaf2ea42391a6p-57, 0x1.007a1b865a8cap+0 },
+      { 0x1.da93f90835f76p-56, 0x1.0085382faef83p+0 },
+      { -0x1.6a79084ab093cp-55, 0x1.00905554425d4p+0 },
+      { 0x1.86364f8fbe8f8p-54, 0x1.009b72f41a12bp+0 },
+      { -0x1.82e8e14e3110ep-55, 0x1.00a6910f3b6fdp+0 },
+      { -0x1.4f6b2a7609f72p-55, 0x1.00b1afa5abcbfp+0 },
+      { -0x1.e1a258ea8f71ap-56, 0x1.00bcceb7707ecp+0 },
+      { 0x1.4362ca5bc26f2p-56, 0x1.00c7ee448ee02p+0 },
+      { 0x1.095a56c919d02p-54, 0x1.00d30e4d0c483p+0 },
+      { -0x1.406ac4e81a646p-57, 0x1.00de2ed0ee0f5p+0 },
+      { 0x1.b5a6902767e08p-54, 0x1.00e94fd0398ep+0 },
+      { -0x1.91b206085932p-54, 0x1.00f4714af41d3p+0 },
+      { 0x1.427068ab22306p-55, 0x1.00ff93412315cp+0 },
+      { 0x1.c1d0660524e08p-54, 0x1.010ab5b2cbd11p+0 },
+      { -0x1.e7bdfb3204be8p-54, 0x1.0115d89ff3a8bp+0 },
+      { 0x1.843aa8b9cbbc6p-55, 0x1.0120fc089ff63p+0 },
+      { -0x1.34104ee7edae8p-56, 0x1.012c1fecd613bp+0 },
+      { -0x1.2b6aeb6176892p-56, 0x1.0137444c9b5b5p+0 },
+      { 0x1.a8cd33b8a1bb2p-56, 0x1.01426927f5278p+0 },
+      { 0x1.2edc08e5da99ap-56, 0x1.014d8e7ee8d2fp+0 },
+      { 0x1.57ba2dc7e0c72p-55, 0x1.0158b4517bb88p+0 },
+      { 0x1.b61299ab8cdb8p-54, 0x1.0163da9fb3335p+0 },
+      { -0x1.90565902c5f44p-54, 0x1.016f0169949edp+0 },
+      { 0x1.70fc41c5c2d54p-55, 0x1.017a28af25567p+0 },
+      { 0x1.4b9a6e145d76cp-54, 0x1.018550706ab62p+0 },
+      { -0x1.008eff5142bfap-56, 0x1.019078ad6a19fp+0 },
+      { -0x1.77669f033c7dep-54, 0x1.019ba16628de2p+0 },
+      { -0x1.09bb78eeead0ap-54, 0x1.01a6ca9aac5f3p+0 },
+      { 0x1.371231477ece6p-54, 0x1.01b1f44af9f9ep+0 },
+      { 0x1.5e7626621eb5ap-56, 0x1.01bd1e77170b4p+0 },
+      { -0x1.bc72b100828a4p-54, 0x1.01c8491f08f08p+0 },
+      { -0x1.ce39cbbab8bbep-57, 0x1.01d37442d507p+0 },
+      { 0x1.16996709da2e2p-55, 0x1.01de9fe280ac8p+0 },
+      { -0x1.c11f5239bf536p-55, 0x1.01e9cbfe113efp+0 },
+      { 0x1.e1d4eb5edc6b4p-55, 0x1.01f4f8958c1c6p+0 },
+      { -0x1.afb99946ee3fp-54, 0x1.020025a8f6a35p+0 },
+      { -0x1.8f06d8a148a32p-54, 0x1.020b533856324p+0 },
+      { -0x1.2bf310fc54eb6p-55, 0x1.02168143b0281p+0 },
+      { -0x1.c95a035eb4176p-54, 0x1.0221afcb09e3ep+0 },
+      { -0x1.491793e46834cp-54, 0x1.022cdece68c4fp+0 },
+      { -0x1.3e8d0d9c4909p-56, 0x1.02380e4dd22adp+0 },
+      { -0x1.314aa16278aa4p-54, 0x1.02433e494b755p+0 },
+      { 0x1.48daf888e965p-55, 0x1.024e6ec0da046p+0 },
+      { 0x1.56dc8046821f4p-55, 0x1.02599fb483385p+0 },
+      { 0x1.45b42356b9d46p-54, 0x1.0264d1244c719p+0 },
+      { -0x1.082ef51b61d7ep-56, 0x1.027003103b10ep+0 },
+      { 0x1.2106ed0920a34p-56, 0x1.027b357854772p+0 },
+      { -0x1.fd4cf26ea5d0ep-54, 0x1.0286685c9e059p+0 },
+      { -0x1.09f8775e78084p-54, 0x1.02919bbd1d1d8p+0 },
+      { 0x1.64cbba902ca28p-58, 0x1.029ccf99d720ap+0 },
+      { 0x1.4383ef231d206p-54, 0x1.02a803f2d170dp+0 },
+      { 0x1.4a47a505b3a46p-54, 0x1.02b338c811703p+0 },
+      { 0x1.e47120223468p-54, 0x1.02be6e199c811p+0 },
+  };
+
+  const double s = 0x1.71547652b82fep+12;
+  double ax = fabs (x), v0 = fma (ax, s, 0x1.8000002p+26);
+  uint64_t jt = asuint64 (v0);
+  uint64_t v = jt;
+  uint64_t tt = ~((1 << 26) - 1l);
+  v &= tt;
+  double t = asdouble (v) - 0x1.8p26;
+  uint64_t aix = asuint64 (ax);
+  if (__glibc_unlikely (aix < UINT64_C(0x3fd0000000000000)))
+    { // |x| < 0x1p-2
+      if (__glibc_unlikely (aix < UINT64_C(0x3e57137449123ef7)))
+       {
+         // |x| < x0 = 0x1.7137449123ef7p-26
+         return fma (x, 0x1p-55, x);
+       }
+      /* With p = c[0]*x^3 + c[1]*x^5 + c[2]*x^7 + c[3]*x^9 + c[4]*x^11,
+        q = x + p is a minimax approximation of sinh(x) on [x0,1/4] such that
+        |q - sinh(x)|/x^3 < 2^-56.5839 */
+      static const double c[] = { 0x1.5555555555555p-3, 0x1.111111111151ep-7,
+                                 0x1.a01a019d0c767p-13, 0x1.71de444a96e11p-19,
+                                 0x1.ae8465375242p-26 };
+      double x2 = x * x, x3 = x2 * x, x4 = x2 * x2,
+            p = x3
+              * ((c[0] + x2 * c[1]) + x4 * ((c[2] + x2 * c[3]) + x4 * c[4]));
+      // fails with e = x3*0x1.5p-53 and x=0x1.71c5b3515d069p-8 (rndz, no fma)
+      double e = x3 * 0x2.1p-53, lb = x + (p - e), ub = x + (p + e);
+      if (lb == ub)
+       return lb;
+      return as_sinh_zero (x);
     }
+  if (__glibc_unlikely (aix > UINT64_C(0x408633ce8fb9f87d)))
+    { // |x| >~ 710.47586
+      if (aix >= EXPONENT_MASK)
+       return x + x; // nan Inf
+      return copysign (0x1p1023, x) * 2.0;
+    }
+  // now 0.25 <= |x| < 710.47586
+  // this branch was checked exhaustively with/without FMA
+  int64_t il = ((uint64_t) jt << 14) >> 40, jl = -il;
+  int64_t i1 = il & 0x3f, i0 = (il >> 6) & 0x3f, ie = il >> 12;
+  int64_t j1 = jl & 0x3f, j0 = (jl >> 6) & 0x3f, je = jl >> 12;
+  double sp = asdouble ((uint64_t) (1022 + ie) << 52),
+        sm = asdouble ((uint64_t) (1022 + je) << 52);
+  double t0h = t0[i0][1], t0l = t0[i0][0];
+  double t1h = t1[i1][1], t1l = t1[i1][0];
+  double th = t0h * t1h, tl = t0h * t1l + t1h * t0l + fma (t0h, t1h, -th);
+  const double l2h = 0x1.62e42ffp-13, l2l = 0x1.718432a1b0e26p-47;
+  double dx = (ax - l2h * t) + l2l * t, dx2 = dx * dx, mx = -dx;
+  static const double ch[]
+      = { 0x1p+0, 0x1p-1, 0x1.5555555aaaaaep-3, 0x1.55555551c98cp-5 };
+  double pp = dx * ((ch[0] + dx * ch[1]) + dx2 * (ch[2] + dx * ch[3]));
+  double rh, rl;
+  if (__glibc_unlikely (aix > UINT64_C(0x4014000000000000)))
+    { // |x| > 5
+      if (__glibc_unlikely (aix > UINT64_C(0x40425e4f7b2737fa)))
+       { // |x| >~ 36.736801
+         sp = asdouble ((1021 + ie) << 52);
+         rh = th;
+         rl = tl + th * pp;
+         rh *= copysign (1, x);
+         rl *= copysign (1, x);
+         double e = 0x1.1b6p-63 * th, lb = rh + (rl - e), ub = rh + (rl + e);
+         if (lb == ub)
+           return (lb * sp) * 2;
 
-  /* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */
-  if (ix < 0x40862e42)
-    return h * __ieee754_exp (fabs (x));
+         th = as_exp_accurate (ax, t, th, tl, &tl);
+         th = fasttwosum (th, tl, &tl);
+         th *= copysign (1, x);
+         tl *= copysign (1, x);
+         uint64_t uh = asuint64 (th), ul = asuint64 (tl);
+         int64_t eh = (uh >> 52) & 0x7ff, el = (ul >> 52) & 0x7ff,
+                 ml = (ul + 8) & MANTISSA_MASK;
+         th += tl;
+         th *= 2;
+         th *= asuint64 (sp);
+         if (ml <= 16 || eh - el > 103)
+           return as_sinh_database (x, th);
+         return th;
+       }
+      // now 5 < |x| < 36.736801
+      double q0h = t0[j0][1], q1h = t1[j1][1], qh = q0h * q1h;
+      th *= sp;
+      tl *= sp;
+      qh *= sm;
+      double pm = mx * ((ch[0] + mx * ch[1]) + dx2 * (ch[2] + mx * ch[3]));
+      double em = qh + qh * pm;
+      rh = th;
+      rl = (tl - em) + th * pp;
 
-  /* |x| in [log(maxdouble), overflowthresold] */
-  GET_LOW_WORD (lx, x);
-  if (ix < 0x408633ce || ((ix == 0x408633ce) && (lx <= (uint32_t) 0x8fb9f87d)))
-    {
-      w = __ieee754_exp (0.5 * fabs (x));
-      t = h * w;
-      return t * w;
+      rh *= copysign (1, x);
+      rl *= copysign (1, x);
+      // fails with e = 0x1.1dbp-63*rh and x=0x1.4971fd7b64137p+2 (rndz, no
+      // fma)
+      double e = 0x1.202p-63 * rh, lb = rh + (rl - e), ub = rh + (rl + e);
+      if (lb == ub)
+       return lb;
+
+      th = as_exp_accurate (ax, t, th, tl, &tl);
+      if (__glibc_unlikely (aix > UINT64_C(0x403f666666666666)))
+       { // |x| > 31.4
+         rh = th - qh;
+         rl = ((th - rh) - qh) + tl;
+       }
+      else
+       { // 5 < |x| <= 31.4
+         qh = q0h * q1h;
+         double q0l = t0[j0][0], q1l = t1[j1][0];
+         double ql = q0h * q1l + q1h * q0l + fma (q0h, q1h, -qh);
+         qh *= sm;
+         ql *= sm;
+         qh = as_exp_accurate (-ax, -t, qh, ql, &ql);
+         rh = th - qh;
+         rl = (((th - rh) - qh) - ql) + tl;
+       }
     }
+  else
+    { // 0.25 <= |x| <= 5
+      double q0h = t0[j0][1], q0l = t0[j0][0];
+      double q1h = t1[j1][1], q1l = t1[j1][0];
+      double qh = q0h * q1h, ql = q0h * q1l + q1h * q0l + fma (q0h, q1h, -qh);
+      th *= sp;
+      tl *= sp;
+      qh *= sm;
+      ql *= sm;
+      double pm = mx * ((ch[0] + mx * ch[1]) + dx2 * (ch[2] + mx * ch[3]));
+      double fph = th, fpl = tl + th * pp;
+      double fmh = qh, fml = ql + qh * pm;
 
-  /* |x| > overflowthresold, sinh(x) overflow */
-  return math_narrow_eval (x * shuge);
+      rh = fph - fmh;
+      rl = ((fph - rh) - fmh) - fml + fpl;
+      rh *= copysign (1, x);
+      rl *= copysign (1, x);
+      double e = 0x1.c0ap-62 * rh, lb = rh + (rl - e), ub = rh + (rl + e);
+      if (lb == ub)
+       return lb;
+      th = as_exp_accurate (ax, t, th, tl, &tl);
+      qh = as_exp_accurate (-ax, -t, qh, ql, &ql);
+      rh = th - qh;
+      rl = ((th - rh) - qh) - ql + tl;
+    }
+  rh = fasttwosum (rh, rl, &rl);
+  uint64_t uh = asuint64 (rh), ul = asuint64 (rl);
+  int64_t eh = (uh >> MANTISSA_WIDTH) & 0x7ff,
+         el = (ul >> MANTISSA_WIDTH) & 0x7ff,
+         ml = (ul + 8) & MANTISSA_MASK;
+  rh *= copysign (1, x);
+  rl *= copysign (1, x);
+  rh += rl;
+  // fails with ml<=14 and ul.u + 7 above with x=0x1.c13876341b62ep-1 and rndz
+  if (__glibc_unlikely (ml <= 16 || eh - el > 103))
+    return as_sinh_database (x, rh);
+  return rh;
 }
 
 #ifndef __ieee754_sinh
index 3330db5a3e9b58c58cfeac85582bd925fff03840..68b5577516940ad76745f7ef8a7b50be12a7db4f 100644 (file)
@@ -83,6 +83,18 @@ double: 0
 Function: "lgamma_upward":
 double: 0
 
+Function: "sinh":
+double: 0
+
+Function: "sinh_downward":
+double: 0
+
+Function: "sinh_towardzero":
+double: 0
+
+Function: "sinh_upward":
+double: 0
+
 Function: "tgamma":
 double: 0