[v2,37/42] x86-64: Add vector sinh/sinhf implementation to libmvec

Message ID 20211209050508.2614536-38-skpgkp2@gmail.com
State Superseded
Headers
Series x86-64: Add vector math functions to libmvec |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Sunil Pandey Dec. 9, 2021, 5:05 a.m. UTC
  Implement vectorized sinh/sinhf containing SSE, AVX, AVX2 and
AVX512 versions for libmvec as per vector ABI.  It also contains
accuracy and ABI tests for vector sinh/sinhf with regenerated ulps.
---
 bits/libm-simd-decl-stubs.h                   |   11 +
 math/bits/mathcalls.h                         |    2 +-
 .../unix/sysv/linux/x86_64/libmvec.abilist    |    8 +
 sysdeps/x86/fpu/bits/math-vector.h            |    4 +
 .../x86/fpu/finclude/math-vector-fortran.h    |    4 +
 sysdeps/x86_64/fpu/Makeconfig                 |    1 +
 sysdeps/x86_64/fpu/Versions                   |    2 +
 sysdeps/x86_64/fpu/libm-test-ulps             |   20 +
 .../fpu/multiarch/svml_d_sinh2_core-sse2.S    |   20 +
 .../x86_64/fpu/multiarch/svml_d_sinh2_core.c  |   27 +
 .../fpu/multiarch/svml_d_sinh2_core_sse4.S    | 3029 +++++++++++++++++
 .../fpu/multiarch/svml_d_sinh4_core-sse.S     |   20 +
 .../x86_64/fpu/multiarch/svml_d_sinh4_core.c  |   27 +
 .../fpu/multiarch/svml_d_sinh4_core_avx2.S    | 2702 +++++++++++++++
 .../fpu/multiarch/svml_d_sinh8_core-avx2.S    |   20 +
 .../x86_64/fpu/multiarch/svml_d_sinh8_core.c  |   27 +
 .../fpu/multiarch/svml_d_sinh8_core_avx512.S  | 2026 +++++++++++
 .../fpu/multiarch/svml_s_sinhf16_core-avx2.S  |   20 +
 .../fpu/multiarch/svml_s_sinhf16_core.c       |   28 +
 .../multiarch/svml_s_sinhf16_core_avx512.S    | 1421 ++++++++
 .../fpu/multiarch/svml_s_sinhf4_core-sse2.S   |   20 +
 .../x86_64/fpu/multiarch/svml_s_sinhf4_core.c |   28 +
 .../fpu/multiarch/svml_s_sinhf4_core_sse4.S   | 2239 ++++++++++++
 .../fpu/multiarch/svml_s_sinhf8_core-sse.S    |   20 +
 .../x86_64/fpu/multiarch/svml_s_sinhf8_core.c |   28 +
 .../fpu/multiarch/svml_s_sinhf8_core_avx2.S   | 1959 +++++++++++
 sysdeps/x86_64/fpu/svml_d_sinh2_core.S        |   29 +
 sysdeps/x86_64/fpu/svml_d_sinh4_core.S        |   29 +
 sysdeps/x86_64/fpu/svml_d_sinh4_core_avx.S    |   25 +
 sysdeps/x86_64/fpu/svml_d_sinh8_core.S        |   25 +
 sysdeps/x86_64/fpu/svml_s_sinhf16_core.S      |   25 +
 sysdeps/x86_64/fpu/svml_s_sinhf4_core.S       |   29 +
 sysdeps/x86_64/fpu/svml_s_sinhf8_core.S       |   29 +
 sysdeps/x86_64/fpu/svml_s_sinhf8_core_avx.S   |   25 +
 .../x86_64/fpu/test-double-libmvec-sinh-avx.c |    1 +
 .../fpu/test-double-libmvec-sinh-avx2.c       |    1 +
 .../fpu/test-double-libmvec-sinh-avx512f.c    |    1 +
 sysdeps/x86_64/fpu/test-double-libmvec-sinh.c |    3 +
 .../x86_64/fpu/test-double-vlen2-wrappers.c   |    1 +
 .../fpu/test-double-vlen4-avx2-wrappers.c     |    1 +
 .../x86_64/fpu/test-double-vlen4-wrappers.c   |    1 +
 .../x86_64/fpu/test-double-vlen8-wrappers.c   |    1 +
 .../x86_64/fpu/test-float-libmvec-sinhf-avx.c |    1 +
 .../fpu/test-float-libmvec-sinhf-avx2.c       |    1 +
 .../fpu/test-float-libmvec-sinhf-avx512f.c    |    1 +
 sysdeps/x86_64/fpu/test-float-libmvec-sinhf.c |    3 +
 .../x86_64/fpu/test-float-vlen16-wrappers.c   |    1 +
 .../x86_64/fpu/test-float-vlen4-wrappers.c    |    1 +
 .../fpu/test-float-vlen8-avx2-wrappers.c      |    1 +
 .../x86_64/fpu/test-float-vlen8-wrappers.c    |    1 +
 50 files changed, 13948 insertions(+), 1 deletion(-)
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core-sse2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core_sse4.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core-sse.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core_avx2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core-avx2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core_avx512.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core-avx2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core_avx512.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core-sse2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core_sse4.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core-sse.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core_avx2.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_sinh2_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_sinh4_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_sinh4_core_avx.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_sinh8_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_sinhf16_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_sinhf4_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_sinhf8_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_sinhf8_core_avx.S
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx.c
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx2.c
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx512f.c
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-sinh.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx2.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx512f.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-sinhf.c
  

Patch

diff --git a/bits/libm-simd-decl-stubs.h b/bits/libm-simd-decl-stubs.h
index 728864ac0d..9ed3c17389 100644
--- a/bits/libm-simd-decl-stubs.h
+++ b/bits/libm-simd-decl-stubs.h
@@ -296,4 +296,15 @@ 
 #define __DECL_SIMD_log2f32x
 #define __DECL_SIMD_log2f64x
 #define __DECL_SIMD_log2f128x
+
+#define __DECL_SIMD_sinh
+#define __DECL_SIMD_sinhf
+#define __DECL_SIMD_sinhl
+#define __DECL_SIMD_sinhf16
+#define __DECL_SIMD_sinhf32
+#define __DECL_SIMD_sinhf64
+#define __DECL_SIMD_sinhf128
+#define __DECL_SIMD_sinhf32x
+#define __DECL_SIMD_sinhf64x
+#define __DECL_SIMD_sinhf128x
 #endif
diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h
index 5db493d938..cb733b3773 100644
--- a/math/bits/mathcalls.h
+++ b/math/bits/mathcalls.h
@@ -70,7 +70,7 @@  __MATHCALL (tan,, (_Mdouble_ __x));
 /* Hyperbolic cosine of X.  */
 __MATHCALL_VEC (cosh,, (_Mdouble_ __x));
 /* Hyperbolic sine of X.  */
-__MATHCALL (sinh,, (_Mdouble_ __x));
+__MATHCALL_VEC (sinh,, (_Mdouble_ __x));
 /* Hyperbolic tangent of X.  */
 __MATHCALL (tanh,, (_Mdouble_ __x));
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist b/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
index c3b83b6de0..19f5e2edf2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
@@ -62,6 +62,7 @@  GLIBC_2.35 _ZGVbN2v_expm1 F
 GLIBC_2.35 _ZGVbN2v_log10 F
 GLIBC_2.35 _ZGVbN2v_log1p F
 GLIBC_2.35 _ZGVbN2v_log2 F
+GLIBC_2.35 _ZGVbN2v_sinh F
 GLIBC_2.35 _ZGVbN2vv_atan2 F
 GLIBC_2.35 _ZGVbN2vv_hypot F
 GLIBC_2.35 _ZGVbN4v_acosf F
@@ -80,6 +81,7 @@  GLIBC_2.35 _ZGVbN4v_expm1f F
 GLIBC_2.35 _ZGVbN4v_log10f F
 GLIBC_2.35 _ZGVbN4v_log1pf F
 GLIBC_2.35 _ZGVbN4v_log2f F
+GLIBC_2.35 _ZGVbN4v_sinhf F
 GLIBC_2.35 _ZGVbN4vv_atan2f F
 GLIBC_2.35 _ZGVbN4vv_hypotf F
 GLIBC_2.35 _ZGVcN4v_acos F
@@ -98,6 +100,7 @@  GLIBC_2.35 _ZGVcN4v_expm1 F
 GLIBC_2.35 _ZGVcN4v_log10 F
 GLIBC_2.35 _ZGVcN4v_log1p F
 GLIBC_2.35 _ZGVcN4v_log2 F
+GLIBC_2.35 _ZGVcN4v_sinh F
 GLIBC_2.35 _ZGVcN4vv_atan2 F
 GLIBC_2.35 _ZGVcN4vv_hypot F
 GLIBC_2.35 _ZGVcN8v_acosf F
@@ -116,6 +119,7 @@  GLIBC_2.35 _ZGVcN8v_expm1f F
 GLIBC_2.35 _ZGVcN8v_log10f F
 GLIBC_2.35 _ZGVcN8v_log1pf F
 GLIBC_2.35 _ZGVcN8v_log2f F
+GLIBC_2.35 _ZGVcN8v_sinhf F
 GLIBC_2.35 _ZGVcN8vv_atan2f F
 GLIBC_2.35 _ZGVcN8vv_hypotf F
 GLIBC_2.35 _ZGVdN4v_acos F
@@ -134,6 +138,7 @@  GLIBC_2.35 _ZGVdN4v_expm1 F
 GLIBC_2.35 _ZGVdN4v_log10 F
 GLIBC_2.35 _ZGVdN4v_log1p F
 GLIBC_2.35 _ZGVdN4v_log2 F
+GLIBC_2.35 _ZGVdN4v_sinh F
 GLIBC_2.35 _ZGVdN4vv_atan2 F
 GLIBC_2.35 _ZGVdN4vv_hypot F
 GLIBC_2.35 _ZGVdN8v_acosf F
@@ -152,6 +157,7 @@  GLIBC_2.35 _ZGVdN8v_expm1f F
 GLIBC_2.35 _ZGVdN8v_log10f F
 GLIBC_2.35 _ZGVdN8v_log1pf F
 GLIBC_2.35 _ZGVdN8v_log2f F
+GLIBC_2.35 _ZGVdN8v_sinhf F
 GLIBC_2.35 _ZGVdN8vv_atan2f F
 GLIBC_2.35 _ZGVdN8vv_hypotf F
 GLIBC_2.35 _ZGVeN16v_acosf F
@@ -170,6 +176,7 @@  GLIBC_2.35 _ZGVeN16v_expm1f F
 GLIBC_2.35 _ZGVeN16v_log10f F
 GLIBC_2.35 _ZGVeN16v_log1pf F
 GLIBC_2.35 _ZGVeN16v_log2f F
+GLIBC_2.35 _ZGVeN16v_sinhf F
 GLIBC_2.35 _ZGVeN16vv_atan2f F
 GLIBC_2.35 _ZGVeN16vv_hypotf F
 GLIBC_2.35 _ZGVeN8v_acos F
@@ -188,5 +195,6 @@  GLIBC_2.35 _ZGVeN8v_expm1 F
 GLIBC_2.35 _ZGVeN8v_log10 F
 GLIBC_2.35 _ZGVeN8v_log1p F
 GLIBC_2.35 _ZGVeN8v_log2 F
+GLIBC_2.35 _ZGVeN8v_sinh F
 GLIBC_2.35 _ZGVeN8vv_atan2 F
 GLIBC_2.35 _ZGVeN8vv_hypot F
diff --git a/sysdeps/x86/fpu/bits/math-vector.h b/sysdeps/x86/fpu/bits/math-vector.h
index 613e9c94b9..3fab52e942 100644
--- a/sysdeps/x86/fpu/bits/math-vector.h
+++ b/sysdeps/x86/fpu/bits/math-vector.h
@@ -130,6 +130,10 @@ 
 #  define __DECL_SIMD_log2 __DECL_SIMD_x86_64
 #  undef __DECL_SIMD_log2f
 #  define __DECL_SIMD_log2f __DECL_SIMD_x86_64
+#  undef __DECL_SIMD_sinh
+#  define __DECL_SIMD_sinh __DECL_SIMD_x86_64
+#  undef __DECL_SIMD_sinhf
+#  define __DECL_SIMD_sinhf __DECL_SIMD_x86_64
 
 # endif
 #endif
diff --git a/sysdeps/x86/fpu/finclude/math-vector-fortran.h b/sysdeps/x86/fpu/finclude/math-vector-fortran.h
index 54eb77b8f2..6784b6d1ba 100644
--- a/sysdeps/x86/fpu/finclude/math-vector-fortran.h
+++ b/sysdeps/x86/fpu/finclude/math-vector-fortran.h
@@ -64,6 +64,8 @@ 
 !GCC$ builtin (log1pf) attributes simd (notinbranch) if('x86_64')
 !GCC$ builtin (log2) attributes simd (notinbranch) if('x86_64')
 !GCC$ builtin (log2f) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (sinh) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (sinhf) attributes simd (notinbranch) if('x86_64')
 
 !GCC$ builtin (cos) attributes simd (notinbranch) if('x32')
 !GCC$ builtin (cosf) attributes simd (notinbranch) if('x32')
@@ -113,3 +115,5 @@ 
 !GCC$ builtin (log1pf) attributes simd (notinbranch) if('x32')
 !GCC$ builtin (log2) attributes simd (notinbranch) if('x32')
 !GCC$ builtin (log2f) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (sinh) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (sinhf) attributes simd (notinbranch) if('x32')
diff --git a/sysdeps/x86_64/fpu/Makeconfig b/sysdeps/x86_64/fpu/Makeconfig
index c167580d71..85a7d42cd8 100644
--- a/sysdeps/x86_64/fpu/Makeconfig
+++ b/sysdeps/x86_64/fpu/Makeconfig
@@ -46,6 +46,7 @@  libmvec-funcs = \
   pow \
   sin \
   sincos \
+  sinh \
 
 # Define libmvec function for benchtests directory.
 libmvec-bench-funcs = \
diff --git a/sysdeps/x86_64/fpu/Versions b/sysdeps/x86_64/fpu/Versions
index d1625d07de..626142bd6b 100644
--- a/sysdeps/x86_64/fpu/Versions
+++ b/sysdeps/x86_64/fpu/Versions
@@ -30,6 +30,7 @@  libmvec {
     _ZGVbN2v_log10; _ZGVcN4v_log10; _ZGVdN4v_log10; _ZGVeN8v_log10;
     _ZGVbN2v_log1p; _ZGVcN4v_log1p; _ZGVdN4v_log1p; _ZGVeN8v_log1p;
     _ZGVbN2v_log2; _ZGVcN4v_log2; _ZGVdN4v_log2; _ZGVeN8v_log2;
+    _ZGVbN2v_sinh; _ZGVcN4v_sinh; _ZGVdN4v_sinh; _ZGVeN8v_sinh;
     _ZGVbN2vv_atan2; _ZGVcN4vv_atan2; _ZGVdN4vv_atan2; _ZGVeN8vv_atan2;
     _ZGVbN2vv_hypot; _ZGVcN4vv_hypot; _ZGVdN4vv_hypot; _ZGVeN8vv_hypot;
     _ZGVbN4v_acosf; _ZGVcN8v_acosf; _ZGVdN8v_acosf; _ZGVeN16v_acosf;
@@ -48,6 +49,7 @@  libmvec {
     _ZGVbN4v_log10f; _ZGVcN8v_log10f; _ZGVdN8v_log10f; _ZGVeN16v_log10f;
     _ZGVbN4v_log1pf; _ZGVcN8v_log1pf; _ZGVdN8v_log1pf; _ZGVeN16v_log1pf;
     _ZGVbN4v_log2f; _ZGVcN8v_log2f; _ZGVdN8v_log2f; _ZGVeN16v_log2f;
+    _ZGVbN4v_sinhf; _ZGVcN8v_sinhf; _ZGVdN8v_sinhf; _ZGVeN16v_sinhf;
     _ZGVbN4vv_atan2f; _ZGVcN8vv_atan2f; _ZGVdN8vv_atan2f; _ZGVeN16vv_atan2f;
     _ZGVbN4vv_hypotf; _ZGVcN8vv_hypotf; _ZGVdN8vv_hypotf; _ZGVeN16vv_hypotf;
   }
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 0df9130e8d..67126a5c2b 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -2037,6 +2037,26 @@  float: 3
 float128: 4
 ldouble: 5
 
+Function: "sinh_vlen16":
+float: 1
+
+Function: "sinh_vlen2":
+double: 1
+
+Function: "sinh_vlen4":
+double: 1
+float: 1
+
+Function: "sinh_vlen4_avx2":
+double: 1
+
+Function: "sinh_vlen8":
+double: 1
+float: 1
+
+Function: "sinh_vlen8_avx2":
+float: 1
+
 Function: "tan":
 float: 1
 float128: 1
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core-sse2.S
new file mode 100644
index 0000000000..ca12ad6678
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core-sse2.S
@@ -0,0 +1,20 @@ 
+/* SSE2 version of vectorized sinh, vector length is 2.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define _ZGVbN2v_sinh _ZGVbN2v_sinh_sse2
+#include "../svml_d_sinh2_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core.c
new file mode 100644
index 0000000000..c0344b2902
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core.c
@@ -0,0 +1,27 @@ 
+/* Multiple versions of vectorized sinh, vector length is 2.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define SYMBOL_NAME _ZGVbN2v_sinh
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN2v_sinh, __GI__ZGVbN2v_sinh, __redirect__ZGVbN2v_sinh)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core_sse4.S
new file mode 100644
index 0000000000..31ae1e425a
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh2_core_sse4.S
@@ -0,0 +1,3029 @@ 
+/* Function sinh vectorized with SSE4.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   https://www.gnu.org/licenses/.  */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ *   Compute sinh(x) as (exp(x)-exp(-x))/2,
+ *   where exp is calculated as
+ *   exp(M*ln2 + ln2*(j/2^k) + r) = 2^M * 2^(j/2^k) * exp(r)
+ *
+ *   Special cases:
+ *
+ *   sinh(NaN) = quiet NaN, and raise invalid exception
+ *   sinh(INF) = that INF
+ *   sinh(x)   = x for subnormals
+ *   sinh(x) overflows for big x and returns MAXLOG+log(2)
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.sse4,"ax",@progbits
+ENTRY(_ZGVbN2v_sinh_sse4)
+        pushq     %rbp
+        cfi_def_cfa_offset(16)
+        movq      %rsp, %rbp
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+        andq      $-64, %rsp
+        subq      $320, %rsp
+        movaps    %xmm0, %xmm3
+
+/*  Abs argument  */
+        movups    1408+__svml_dsinh_data_internal(%rip), %xmm0
+        lea       1608+__svml_dsinh_data_internal(%rip), %r8
+        andps     %xmm3, %xmm0
+        movaps    %xmm0, %xmm4
+
+/*
+ *  Load argument
+ * dM = x*2^K/log(2) + RShifter
+ */
+        movups    1216+__svml_dsinh_data_internal(%rip), %xmm1
+        pxor      %xmm3, %xmm4
+        mulpd     %xmm4, %xmm1
+        movups    %xmm15, 144(%rsp)
+        .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+        movups    3648+__svml_dsinh_data_internal(%rip), %xmm15
+        addpd     %xmm15, %xmm1
+
+/*
+ *  R
+ * dN = dM - RShifter
+ */
+        movaps    %xmm1, %xmm2
+        subpd     %xmm15, %xmm2
+
+/* VLOAD_CONST( D, dPC[0],         TAB._dPC1 ); */
+        movq      3712+__svml_dsinh_data_internal(%rip), %xmm6
+
+/*
+ * Check for overflow\underflow
+ *
+ */
+        pshufd    $221, %xmm4, %xmm5
+        pcmpgtd   %xmm6, %xmm5
+
+/* dR = dX - dN*Log2_hi/2^K */
+        movups    1280+__svml_dsinh_data_internal(%rip), %xmm6
+        mulpd     %xmm2, %xmm6
+        movmskps  %xmm5, %edx
+
+/* dR = (dX - dN*Log2_hi/2^K) - dN*Log2_lo/2^K */
+        movups    1344+__svml_dsinh_data_internal(%rip), %xmm15
+
+/*
+ *  Index and lookup
+ * j
+ */
+        movups    4224+__svml_dsinh_data_internal(%rip), %xmm7
+        mulpd     %xmm2, %xmm15
+        subpd     %xmm6, %xmm4
+        subpd     %xmm15, %xmm4
+
+/* dR2 = dR^2 */
+        movaps    %xmm4, %xmm2
+        andps     %xmm1, %xmm7
+        mulpd     %xmm4, %xmm2
+        movd      %xmm7, %eax
+
+/* split j and N */
+        pxor      %xmm7, %xmm1
+
+/*
+ *  G1,G2,G3: dTdif,dTn * 2^N,2^(-N)
+ * lM now is an EXP(2^N)
+ */
+        psllq     $45, %xmm1
+        pextrw    $4, %xmm7, %ecx
+        shll      $4, %eax
+
+/*  */
+        movaps    %xmm1, %xmm15
+        shll      $4, %ecx
+        movq      (%rax,%r8), %xmm5
+        movq      -8(%rax,%r8), %xmm6
+        movhpd    (%rcx,%r8), %xmm5
+        movhpd    -8(%rcx,%r8), %xmm6
+        paddq     %xmm1, %xmm6
+        paddq     %xmm5, %xmm15
+
+/*  */
+        psubq     %xmm1, %xmm5
+
+/*
+ * sinh(r) = r*((a1=1)+r^2*(a3+r^2*a5)) = r + r*(r^2*(a3+r^2*a5)) ....
+ * dSinh_r = (a3+r^2*a5)
+ */
+        movups    4032+__svml_dsinh_data_internal(%rip), %xmm1
+
+/* dG3 = dTn*2^N + dTn*2^-N */
+        movdqa    %xmm15, %xmm7
+        mulpd     %xmm2, %xmm1
+        addpd     %xmm5, %xmm7
+        addpd     3904+__svml_dsinh_data_internal(%rip), %xmm1
+
+/* dG2 = dTn*2^N - dTn*2^-N */
+        subpd     %xmm5, %xmm15
+
+/* dSinh_r = r^2*(a3+r^2*a5) */
+        mulpd     %xmm2, %xmm1
+
+/* dG2 += dG1 */
+        addpd     %xmm6, %xmm15
+
+/* dG1 += dG3 */
+        addpd     %xmm7, %xmm6
+
+/* dSinh_r = r + r*(r^2*(a3+r^2*a5)) */
+        mulpd     %xmm4, %xmm1
+
+/*
+ * poly(r) = (dG2+dG1)+dG3*sinh(dR)+dG1*sinh(dR)+(dG1+dG2)*dR2*(a2 +a4*dR2)
+ * dOut = (a2 +a4*dR2)
+ */
+        movups    3968+__svml_dsinh_data_internal(%rip), %xmm5
+        mulpd     %xmm2, %xmm5
+        addpd     %xmm1, %xmm4
+        addpd     3840+__svml_dsinh_data_internal(%rip), %xmm5
+
+/* dOut = dG1*sinh(dR)+dG2*dR2*(a2 +a4*dR2) */
+        mulpd     %xmm6, %xmm4
+
+/* dOut = dR2*(a2 +a4*dR2) */
+        mulpd     %xmm5, %xmm2
+
+/* dOut = dG2*dR2*(a2 +a4*dR2) */
+        mulpd     %xmm15, %xmm2
+        addpd     %xmm4, %xmm2
+
+/* dOut = dG2 + dG1*sinh(dR)+dG2*dR2*(a2 +a4*dR2) */
+        addpd     %xmm2, %xmm15
+
+/*  Ret H  */
+        orps      %xmm15, %xmm0
+        andl      $3, %edx
+        jne       L(2)
+
+L(1):
+        movups    144(%rsp), %xmm15
+        cfi_restore(32)
+        movq      %rbp, %rsp
+        popq      %rbp
+        cfi_def_cfa(7, 8)
+        cfi_restore(6)
+        ret
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+        .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+
+L(2):
+        movups    %xmm3, 192(%rsp)
+        movups    %xmm0, 256(%rsp)
+        je        L(1)
+        xorl      %eax, %eax
+        movups    %xmm8, 96(%rsp)
+        movups    %xmm9, 80(%rsp)
+        movups    %xmm10, 64(%rsp)
+        movups    %xmm11, 48(%rsp)
+        movups    %xmm12, 32(%rsp)
+        movups    %xmm13, 16(%rsp)
+        movups    %xmm14, (%rsp)
+        movq      %rsi, 120(%rsp)
+        movq      %rdi, 112(%rsp)
+        movq      %r12, 136(%rsp)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22
+        movl      %eax, %r12d
+        movq      %r13, 128(%rsp)
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+        movl      %edx, %r13d
+
+L(3):
+        btl       %r12d, %r13d
+        jc        L(5)
+
+L(4):
+        incl      %r12d
+        cmpl      $2, %r12d
+        jl        L(3)
+        movups    96(%rsp), %xmm8
+        cfi_restore(25)
+        movups    80(%rsp), %xmm9
+        cfi_restore(26)
+        movups    64(%rsp), %xmm10
+        cfi_restore(27)
+        movups    48(%rsp), %xmm11
+        cfi_restore(28)
+        movups    32(%rsp), %xmm12
+        cfi_restore(29)
+        movups    16(%rsp), %xmm13
+        cfi_restore(30)
+        movups    (%rsp), %xmm14
+        cfi_restore(31)
+        movq      120(%rsp), %rsi
+        cfi_restore(4)
+        movq      112(%rsp), %rdi
+        cfi_restore(5)
+        movq      136(%rsp), %r12
+        cfi_restore(12)
+        movq      128(%rsp), %r13
+        cfi_restore(13)
+        movups    256(%rsp), %xmm0
+        jmp       L(1)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22
+
+L(5):
+        lea       192(%rsp,%r12,8), %rdi
+        lea       256(%rsp,%r12,8), %rsi
+        call      __svml_dsinh_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVbN2v_sinh_sse4)
+
+        .align    16,0x90
+
+__svml_dsinh_cout_rare_internal:
+
+        cfi_startproc
+
+        movq      %rsi, %r9
+        movzwl    6(%rdi), %ecx
+        xorl      %eax, %eax
+        andl      $32752, %ecx
+        shrl      $4, %ecx
+        movsd     (%rdi), %xmm2
+        movb      7(%rdi), %dl
+        movsd     %xmm2, -8(%rsp)
+        cmpl      $2047, %ecx
+        je        L(13)
+        testl     %ecx, %ecx
+        jle       L(12)
+        andb      $127, %dl
+        movsd     %xmm2, -32(%rsp)
+        movb      %dl, -25(%rsp)
+        cmpl      $969, %ecx
+        jle       L(11)
+        movsd     -32(%rsp), %xmm0
+        movsd     1136+__dsinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(10)
+        movsd     1184+__dsinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(7)
+        comisd    1176+__dsinh_la_CoutTab(%rip), %xmm0
+        jb        L(6)
+        movsd     1112+__dsinh_la_CoutTab(%rip), %xmm1
+        lea       __dsinh_la_CoutTab(%rip), %rcx
+        mulsd     %xmm0, %xmm1
+        movsd     1144+__dsinh_la_CoutTab(%rip), %xmm4
+        movq      8+__dsinh_la_CoutTab(%rip), %r10
+        movq      %r10, %rsi
+        shrq      $48, %rsi
+        addsd     1120+__dsinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -40(%rsp)
+        andl      $-32753, %esi
+        movsd     -40(%rsp), %xmm10
+        movl      -40(%rsp), %r8d
+        movl      %r8d, %r11d
+        shrl      $6, %r11d
+        andl      $63, %r8d
+        movq      %r10, -16(%rsp)
+        subsd     1120+__dsinh_la_CoutTab(%rip), %xmm10
+        mulsd     %xmm10, %xmm4
+        lea       1023(%r11), %edi
+        xorps     .FLT_98(%rip), %xmm10
+        addl      $1022, %r11d
+        mulsd     1152+__dsinh_la_CoutTab(%rip), %xmm10
+        subsd     %xmm4, %xmm0
+        movaps    %xmm10, %xmm2
+        movaps    %xmm0, %xmm8
+        andl      $2047, %r11d
+        lea       (%r8,%r8), %edx
+        negl      %edi
+        lea       1(%r8,%r8), %r8d
+        movsd     (%rcx,%rdx,8), %xmm9
+        negl      %edx
+        shll      $4, %r11d
+        addl      $-4, %edi
+        orl       %r11d, %esi
+        andl      $2047, %edi
+        movw      %si, -10(%rsp)
+        andl      $-32753, %esi
+        shll      $4, %edi
+        addsd     %xmm0, %xmm2
+        movsd     %xmm2, -24(%rsp)
+        orl       %edi, %esi
+        movsd     -24(%rsp), %xmm6
+        movsd     1128+__dsinh_la_CoutTab(%rip), %xmm2
+        subsd     %xmm6, %xmm8
+        movsd     %xmm8, -56(%rsp)
+        movsd     -24(%rsp), %xmm12
+        movsd     -56(%rsp), %xmm11
+        movsd     (%rcx,%r8,8), %xmm7
+        addsd     %xmm11, %xmm12
+        movsd     %xmm12, -48(%rsp)
+        movsd     -56(%rsp), %xmm5
+        addsd     %xmm5, %xmm10
+        movsd     -16(%rsp), %xmm5
+        mulsd     %xmm5, %xmm9
+        mulsd     %xmm5, %xmm7
+        movsd     %xmm10, -56(%rsp)
+        movaps    %xmm9, %xmm10
+        movsd     -48(%rsp), %xmm13
+        movw      %si, -10(%rsp)
+        lea       128(%rdx), %esi
+        movsd     -16(%rsp), %xmm14
+        addl      $129, %edx
+        subsd     %xmm13, %xmm0
+        movsd     %xmm0, -48(%rsp)
+        movsd     -56(%rsp), %xmm1
+        movsd     -48(%rsp), %xmm15
+        addsd     %xmm15, %xmm1
+        movsd     %xmm1, -48(%rsp)
+        movsd     -24(%rsp), %xmm4
+        mulsd     %xmm4, %xmm2
+        movaps    %xmm4, %xmm3
+        mulsd     %xmm4, %xmm3
+        movsd     -48(%rsp), %xmm1
+        movaps    %xmm4, %xmm0
+        movsd     %xmm2, -24(%rsp)
+        movsd     -24(%rsp), %xmm6
+        movsd     1064+__dsinh_la_CoutTab(%rip), %xmm2
+        subsd     %xmm4, %xmm6
+        mulsd     %xmm3, %xmm2
+        movsd     %xmm6, -56(%rsp)
+        movsd     -24(%rsp), %xmm11
+        movsd     -56(%rsp), %xmm8
+        subsd     %xmm8, %xmm11
+        addsd     1048+__dsinh_la_CoutTab(%rip), %xmm2
+        movsd     %xmm11, -24(%rsp)
+        movsd     1072+__dsinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm3, %xmm11
+        mulsd     %xmm3, %xmm2
+        addsd     1056+__dsinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm4, %xmm2
+        mulsd     %xmm3, %xmm11
+        movsd     -24(%rsp), %xmm12
+        addsd     1040+__dsinh_la_CoutTab(%rip), %xmm11
+        subsd     %xmm12, %xmm0
+        mulsd     %xmm3, %xmm11
+        movsd     (%rcx,%rsi,8), %xmm3
+        movaps    %xmm9, %xmm12
+        mulsd     %xmm14, %xmm3
+        movsd     %xmm0, -56(%rsp)
+        subsd     %xmm3, %xmm10
+        movsd     -24(%rsp), %xmm8
+        movsd     -56(%rsp), %xmm6
+        movsd     %xmm10, -24(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     (%rcx,%rdx,8), %xmm0
+        subsd     %xmm13, %xmm12
+        mulsd     %xmm14, %xmm0
+        subsd     %xmm3, %xmm12
+        movsd     %xmm12, -56(%rsp)
+        movsd     -24(%rsp), %xmm14
+        movsd     -56(%rsp), %xmm12
+        movaps    %xmm14, %xmm5
+        movb      -1(%rsp), %cl
+        addsd     %xmm7, %xmm12
+        addsd     %xmm0, %xmm7
+        subsd     %xmm0, %xmm12
+        andb      $-128, %cl
+        addsd     %xmm12, %xmm5
+        movsd     %xmm5, -24(%rsp)
+        movaps    %xmm9, %xmm5
+        movsd     -24(%rsp), %xmm15
+        addsd     %xmm3, %xmm5
+        subsd     %xmm15, %xmm14
+        addsd     %xmm14, %xmm12
+        movsd     %xmm12, -56(%rsp)
+        movsd     -24(%rsp), %xmm10
+        movsd     -56(%rsp), %xmm12
+        movsd     %xmm5, -24(%rsp)
+        movsd     -24(%rsp), %xmm13
+        subsd     %xmm13, %xmm9
+        addsd     %xmm9, %xmm3
+        movsd     %xmm3, -56(%rsp)
+        movsd     -24(%rsp), %xmm3
+        movsd     -56(%rsp), %xmm5
+        addsd     %xmm7, %xmm5
+        movaps    %xmm3, %xmm7
+        addsd     %xmm5, %xmm7
+        movsd     %xmm7, -24(%rsp)
+        movsd     -24(%rsp), %xmm9
+        movsd     1128+__dsinh_la_CoutTab(%rip), %xmm7
+        subsd     %xmm9, %xmm3
+        addsd     %xmm3, %xmm5
+        movsd     %xmm5, -56(%rsp)
+        movsd     -24(%rsp), %xmm0
+        mulsd     %xmm0, %xmm7
+        movsd     -56(%rsp), %xmm3
+        movsd     %xmm7, -24(%rsp)
+        movaps    %xmm0, %xmm7
+        movsd     -24(%rsp), %xmm14
+        mulsd     %xmm3, %xmm4
+        subsd     %xmm0, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm9
+        subsd     %xmm9, %xmm13
+        movsd     %xmm13, -24(%rsp)
+        movaps    %xmm0, %xmm13
+        movsd     -24(%rsp), %xmm15
+        mulsd     %xmm2, %xmm13
+        subsd     %xmm15, %xmm7
+        mulsd     %xmm1, %xmm0
+        mulsd     %xmm3, %xmm1
+        mulsd     %xmm3, %xmm2
+        movaps    %xmm10, %xmm15
+        movaps    %xmm13, %xmm5
+        mulsd     %xmm11, %xmm15
+        mulsd     %xmm12, %xmm11
+        addsd     %xmm15, %xmm5
+        addsd     %xmm12, %xmm11
+        movsd     %xmm7, -56(%rsp)
+        addsd     %xmm0, %xmm11
+        movsd     -24(%rsp), %xmm9
+        addsd     %xmm1, %xmm11
+        movsd     -56(%rsp), %xmm7
+        addsd     %xmm2, %xmm11
+        movsd     %xmm5, -24(%rsp)
+        addsd     %xmm4, %xmm11
+        movsd     -24(%rsp), %xmm14
+        subsd     %xmm14, %xmm13
+        addsd     %xmm13, %xmm15
+        movsd     %xmm15, -56(%rsp)
+        movaps    %xmm8, %xmm15
+        mulsd     %xmm9, %xmm15
+        mulsd     %xmm6, %xmm9
+        mulsd     %xmm7, %xmm6
+        mulsd     %xmm7, %xmm8
+        movsd     -24(%rsp), %xmm14
+        movaps    %xmm15, %xmm13
+        movsd     -56(%rsp), %xmm5
+        addsd     %xmm14, %xmm13
+        addsd     %xmm9, %xmm5
+        movsd     %xmm13, -24(%rsp)
+        addsd     %xmm6, %xmm5
+        movsd     -24(%rsp), %xmm13
+        addsd     %xmm8, %xmm5
+        subsd     %xmm13, %xmm15
+        addsd     %xmm5, %xmm11
+        addsd     %xmm15, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movaps    %xmm10, %xmm15
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm14
+        addsd     %xmm13, %xmm15
+        addsd     %xmm14, %xmm11
+        movsd     %xmm15, -24(%rsp)
+        movsd     -24(%rsp), %xmm15
+        subsd     %xmm15, %xmm10
+        addsd     %xmm10, %xmm13
+        movsd     %xmm13, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm10
+        addsd     %xmm10, %xmm11
+        addsd     %xmm11, %xmm13
+        movsd     %xmm13, -32(%rsp)
+        movb      -25(%rsp), %dil
+        andb      $127, %dil
+        orb       %cl, %dil
+        movb      %dil, -25(%rsp)
+        movq      -32(%rsp), %r10
+        movq      %r10, (%r9)
+        ret
+
+L(6):
+        movaps    %xmm0, %xmm2
+        mulsd     %xmm0, %xmm2
+        movsd     1104+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        movb      -1(%rsp), %dl
+        andb      $-128, %dl
+        addsd     1096+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1088+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1080+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm1, %xmm2
+        mulsd     %xmm0, %xmm2
+        addsd     %xmm2, %xmm0
+        movsd     %xmm0, -32(%rsp)
+        movb      -25(%rsp), %cl
+        andb      $127, %cl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movq      -32(%rsp), %rsi
+        movq      %rsi, (%r9)
+        ret
+
+L(7):
+        movsd     1112+__dsinh_la_CoutTab(%rip), %xmm1
+        lea       __dsinh_la_CoutTab(%rip), %r8
+        mulsd     %xmm0, %xmm1
+        movsd     1144+__dsinh_la_CoutTab(%rip), %xmm2
+        movsd     1152+__dsinh_la_CoutTab(%rip), %xmm3
+        movq      8+__dsinh_la_CoutTab(%rip), %rdx
+        movq      %rdx, -16(%rsp)
+        addsd     1120+__dsinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -40(%rsp)
+        movsd     -40(%rsp), %xmm4
+        movsd     1072+__dsinh_la_CoutTab(%rip), %xmm1
+        movl      -40(%rsp), %edx
+        movl      %edx, %esi
+        andl      $63, %esi
+        subsd     1120+__dsinh_la_CoutTab(%rip), %xmm4
+        mulsd     %xmm4, %xmm2
+        lea       (%rsi,%rsi), %ecx
+        mulsd     %xmm3, %xmm4
+        subsd     %xmm2, %xmm0
+        movsd     (%r8,%rcx,8), %xmm5
+        lea       1(%rsi,%rsi), %edi
+        shrl      $6, %edx
+        subsd     %xmm4, %xmm0
+        mulsd     %xmm0, %xmm1
+        addl      $1022, %edx
+        andl      $2047, %edx
+        addsd     1064+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1056+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1048+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1040+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     %xmm0, %xmm1
+        mulsd     %xmm5, %xmm1
+        addsd     (%r8,%rdi,8), %xmm1
+        addsd     %xmm5, %xmm1
+        cmpl      $2046, %edx
+        ja        L(8)
+        movq      8+__dsinh_la_CoutTab(%rip), %rcx
+        shrq      $48, %rcx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm0, %xmm1
+        movsd     %xmm1, -32(%rsp)
+        jmp       L(9)
+
+L(8):
+        decl      %edx
+        andl      $2047, %edx
+        movzwl    -10(%rsp), %ecx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm0, %xmm1
+        mulsd     1024+__dsinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -32(%rsp)
+
+L(9):
+        movb      -25(%rsp), %cl
+        movb      -1(%rsp), %dl
+        andb      $127, %cl
+        andb      $-128, %dl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movq      -32(%rsp), %rsi
+        movq      %rsi, (%r9)
+        ret
+
+L(10):
+        movsd     1168+__dsinh_la_CoutTab(%rip), %xmm0
+        movl      $3, %eax
+        mulsd     %xmm2, %xmm0
+        movsd     %xmm0, (%r9)
+        ret
+
+L(11):
+        movsd     __dsinh_la_CoutTab(%rip), %xmm0
+        addsd     1160+__dsinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm2, %xmm0
+        movsd     %xmm0, (%r9)
+        ret
+
+L(12):
+        movsd     1160+__dsinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm2, -24(%rsp)
+        movsd     -24(%rsp), %xmm1
+        movq      8+__dsinh_la_CoutTab(%rip), %rdx
+        movq      %rdx, -16(%rsp)
+        addsd     -8(%rsp), %xmm1
+        movsd     %xmm1, (%r9)
+        ret
+
+L(13):
+        addsd     %xmm2, %xmm2
+        movsd     %xmm2, (%r9)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_dsinh_cout_rare_internal,@function
+        .size	__svml_dsinh_cout_rare_internal,.-__svml_dsinh_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_dsinh_data_internal:
+        .long	0
+        .long	1071644672
+        .long	1828292879
+        .long	1071691096
+        .long	1014845819
+        .long	1071739576
+        .long	1853186616
+        .long	1071790202
+        .long	171030293
+        .long	1071843070
+        .long	1276261410
+        .long	1071898278
+        .long	3577096743
+        .long	1071955930
+        .long	3712504873
+        .long	1072016135
+        .long	1719614413
+        .long	1072079006
+        .long	1944781191
+        .long	1072144660
+        .long	1110089947
+        .long	1072213221
+        .long	2191782032
+        .long	1072284817
+        .long	2572866477
+        .long	1072359583
+        .long	3716502172
+        .long	1072437659
+        .long	3707479175
+        .long	1072519192
+        .long	2728693978
+        .long	1072604335
+        .long	0
+        .long	0
+        .long	1255956747
+        .long	1015588398
+        .long	3117910646
+        .long	3161559105
+        .long	3066496371
+        .long	1015656574
+        .long	3526460132
+        .long	1014428778
+        .long	300981948
+        .long	1014684169
+        .long	2951496418
+        .long	1013793687
+        .long	88491949
+        .long	1015427660
+        .long	330458198
+        .long	3163282740
+        .long	3993278767
+        .long	3161724279
+        .long	1451641639
+        .long	1015474673
+        .long	2960257726
+        .long	1013742662
+        .long	878562433
+        .long	1015521741
+        .long	2303740125
+        .long	1014042725
+        .long	3613079303
+        .long	1014164738
+        .long	396109971
+        .long	3163462691
+        .long	0
+        .long	1071644672
+        .long	2728693978
+        .long	1071555759
+        .long	3707479175
+        .long	1071470616
+        .long	3716502172
+        .long	1071389083
+        .long	2572866477
+        .long	1071311007
+        .long	2191782032
+        .long	1071236241
+        .long	1110089947
+        .long	1071164645
+        .long	1944781191
+        .long	1071096084
+        .long	1719614413
+        .long	1071030430
+        .long	3712504873
+        .long	1070967559
+        .long	3577096743
+        .long	1070907354
+        .long	1276261410
+        .long	1070849702
+        .long	171030293
+        .long	1070794494
+        .long	1853186616
+        .long	1070741626
+        .long	1014845819
+        .long	1070691000
+        .long	1828292879
+        .long	1070642520
+        .long	0
+        .long	0
+        .long	396109971
+        .long	3162414115
+        .long	3613079303
+        .long	1013116162
+        .long	2303740125
+        .long	1012994149
+        .long	878562433
+        .long	1014473165
+        .long	2960257726
+        .long	1012694086
+        .long	1451641639
+        .long	1014426097
+        .long	3993278767
+        .long	3160675703
+        .long	330458198
+        .long	3162234164
+        .long	88491949
+        .long	1014379084
+        .long	2951496418
+        .long	1012745111
+        .long	300981948
+        .long	1013635593
+        .long	3526460132
+        .long	1013380202
+        .long	3066496371
+        .long	1014607998
+        .long	3117910646
+        .long	3160510529
+        .long	1255956747
+        .long	1014539822
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	0
+        .long	0
+        .long	1071644672
+        .long	431824500
+        .long	1064709706
+        .long	730821105
+        .long	1071633346
+        .long	1779301686
+        .long	1065758303
+        .long	2174652632
+        .long	1071622081
+        .long	872681311
+        .long	1066443490
+        .long	2912730644
+        .long	1071610877
+        .long	2882296449
+        .long	1066806964
+        .long	1533953344
+        .long	1071599734
+        .long	3305321028
+        .long	1067170481
+        .long	929806999
+        .long	1071588651
+        .long	340716357
+        .long	1067492210
+        .long	3999357479
+        .long	1071577627
+        .long	1073477808
+        .long	1067674027
+        .long	764307441
+        .long	1071566664
+        .long	3128166954
+        .long	1067855881
+        .long	2728693978
+        .long	1071555759
+        .long	3639221082
+        .long	1068037778
+        .long	4224142467
+        .long	1071544913
+        .long	4041415279
+        .long	1068219723
+        .long	3884662774
+        .long	1071534126
+        .long	1480599658
+        .long	1068401722
+        .long	351641897
+        .long	1071523398
+        .long	2997120266
+        .long	1068541361
+        .long	863738719
+        .long	1071512727
+        .long	928693471
+        .long	1068632422
+        .long	4076975200
+        .long	1071502113
+        .long	1708958952
+        .long	1068723517
+        .long	64696965
+        .long	1071491558
+        .long	3926287402
+        .long	1068814649
+        .long	382305176
+        .long	1071481059
+        .long	1878784442
+        .long	1068905822
+        .long	3707479175
+        .long	1071470616
+        .long	2754496392
+        .long	1068997037
+        .long	135105010
+        .long	1071460231
+        .long	861943228
+        .long	1069088298
+        .long	1242007932
+        .long	1071449901
+        .long	3400259254
+        .long	1069179606
+        .long	1432208378
+        .long	1071439627
+        .long	394759087
+        .long	1069270966
+        .long	3706687593
+        .long	1071429408
+        .long	3351980561
+        .long	1069362378
+        .long	2483480501
+        .long	1071419245
+        .long	2310349189
+        .long	1069453847
+        .long	777507147
+        .long	1071409137
+        .long	200254151
+        .long	1069545375
+        .long	1610600570
+        .long	1071399083
+        .long	4274709417
+        .long	1069592241
+        .long	3716502172
+        .long	1071389083
+        .long	2266782956
+        .long	1069638068
+        .long	1540824585
+        .long	1071379138
+        .long	1995599824
+        .long	1069683928
+        .long	2420883922
+        .long	1071369246
+        .long	647201135
+        .long	1069729823
+        .long	815859274
+        .long	1071359408
+        .long	4001939191
+        .long	1069775753
+        .long	4076559943
+        .long	1071349622
+        .long	664843213
+        .long	1069821722
+        .long	2380618042
+        .long	1071339890
+        .long	720494647
+        .long	1069867729
+        .long	3092190715
+        .long	1071330210
+        .long	1373458573
+        .long	1069913776
+        .long	697153126
+        .long	1071320583
+        .long	4128322810
+        .long	1069959864
+        .long	2572866477
+        .long	1071311007
+        .long	1904966097
+        .long	1070005996
+        .long	3218338682
+        .long	1071301483
+        .long	513564799
+        .long	1070052172
+        .long	1434058175
+        .long	1071292011
+        .long	1474894098
+        .long	1070098393
+        .long	321958744
+        .long	1071282590
+        .long	2020498546
+        .long	1070144661
+        .long	2990417245
+        .long	1071273219
+        .long	3682797359
+        .long	1070190977
+        .long	3964284211
+        .long	1071263899
+        .long	3705320722
+        .long	1070237343
+        .long	2069751141
+        .long	1071254630
+        .long	3632815436
+        .long	1070283760
+        .long	434316067
+        .long	1071245411
+        .long	721481577
+        .long	1070330230
+        .long	2191782032
+        .long	1071236241
+        .long	824045819
+        .long	1070376753
+        .long	1892288442
+        .long	1071227121
+        .long	1210063881
+        .long	1070423331
+        .long	2682146384
+        .long	1071218050
+        .long	3450994238
+        .long	1070469965
+        .long	3418903055
+        .long	1071209028
+        .long	535468266
+        .long	1070516658
+        .long	2966275557
+        .long	1071200055
+        .long	2639266259
+        .long	1070563409
+        .long	194117574
+        .long	1071191131
+        .long	3530359402
+        .long	1070603158
+        .long	2568320822
+        .long	1071182254
+        .long	3405407025
+        .long	1070626595
+        .long	380978316
+        .long	1071173426
+        .long	1749136243
+        .long	1070650064
+        .long	1110089947
+        .long	1071164645
+        .long	1517376385
+        .long	1070673565
+        .long	3649726105
+        .long	1071155911
+        .long	1375061601
+        .long	1070697099
+        .long	2604962541
+        .long	1071147225
+        .long	4286252247
+        .long	1070720666
+        .long	1176749997
+        .long	1071138586
+        .long	334352625
+        .long	1070744269
+        .long	2571947539
+        .long	1071129993
+        .long	1081936396
+        .long	1070767906
+        .long	1413356050
+        .long	1071121447
+        .long	916128083
+        .long	1070791579
+        .long	919555682
+        .long	1071112947
+        .long	2818494152
+        .long	1070815288
+        .long	19972402
+        .long	1071104493
+        .long	1185261260
+        .long	1070839035
+        .long	1944781191
+        .long	1071096084
+        .long	3302240303
+        .long	1070862819
+        .long	1339972927
+        .long	1071087721
+        .long	3575110344
+        .long	1070886642
+        .long	1447192521
+        .long	1071079403
+        .long	709375646
+        .long	1070910505
+        .long	1218806132
+        .long	1071071130
+        .long	2005420950
+        .long	1070934407
+        .long	3907805044
+        .long	1071062901
+        .long	1883763132
+        .long	1070958350
+        .long	4182873220
+        .long	1071054717
+        .long	3359975962
+        .long	1070982334
+        .long	1013258799
+        .long	1071046578
+        .long	864909351
+        .long	1071006361
+        .long	1963711167
+        .long	1071038482
+        .long	1719614413
+        .long	1071030430
+        .long	1719614413
+        .long	1071030430
+        .long	365628427
+        .long	1071054543
+        .long	3561793907
+        .long	1071022421
+        .long	4134867513
+        .long	1071078699
+        .long	2186617381
+        .long	1071014456
+        .long	3184944616
+        .long	1071102901
+        .long	885834528
+        .long	1071006534
+        .long	564029795
+        .long	1071127149
+        .long	2956612997
+        .long	1070998654
+        .long	3621005023
+        .long	1071151442
+        .long	3111574537
+        .long	1070990817
+        .long	2530717257
+        .long	1071175783
+        .long	363667784
+        .long	1070983023
+        .long	358839240
+        .long	1071200172
+        .long	2321106615
+        .long	1070975270
+        .long	177057508
+        .long	1071224609
+        .long	3712504873
+        .long	1070967559
+        .long	768195176
+        .long	1071249095
+        .long	3566716925
+        .long	1070959890
+        .long	921269482
+        .long	1071273631
+        .long	917841882
+        .long	1070952263
+        .long	3726549525
+        .long	1071298217
+        .long	3395129871
+        .long	1070944676
+        .long	3690744995
+        .long	1071322855
+        .long	1453150082
+        .long	1070937131
+        .long	3916966168
+        .long	1071347545
+        .long	2731501122
+        .long	1070929626
+        .long	3219913010
+        .long	1071372288
+        .long	1990012071
+        .long	1070922162
+        .long	420933669
+        .long	1071397085
+        .long	2583551245
+        .long	1070914738
+        .long	2938050448
+        .long	1071421935
+        .long	3577096743
+        .long	1070907354
+        .long	1016247609
+        .long	1071446841
+        .long	4040676318
+        .long	1070900010
+        .long	2087301532
+        .long	1071471802
+        .long	3049340112
+        .long	1070892706
+        .long	705101620
+        .long	1071496820
+        .long	3978100823
+        .long	1070885441
+        .long	20578973
+        .long	1071521895
+        .long	1617004845
+        .long	1070878216
+        .long	3191864199
+        .long	1071547027
+        .long	3645941911
+        .long	1070871029
+        .long	499478133
+        .long	1071572219
+        .long	569847338
+        .long	1070863882
+        .long	3706163032
+        .long	1071597469
+        .long	78413852
+        .long	1070856773
+        .long	3107302654
+        .long	1071622780
+        .long	1276261410
+        .long	1070849702
+        .long	945376945
+        .long	1071646412
+        .long	3272845541
+        .long	1070842669
+        .long	3773502825
+        .long	1071659128
+        .long	887463927
+        .long	1070835675
+        .long	3049734401
+        .long	1071671876
+        .long	1829099622
+        .long	1070828718
+        .long	379637879
+        .long	1071684656
+        .long	926591435
+        .long	1070821799
+        .long	1667720032
+        .long	1071697467
+        .long	1603444721
+        .long	1070814917
+        .long	4232573504
+        .long	1071710310
+        .long	2992903935
+        .long	1070808072
+        .long	1101891425
+        .long	1071723187
+        .long	4232894513
+        .long	1070801264
+        .long	2487351331
+        .long	1071736096
+        .long	171030293
+        .long	1070794494
+        .long	1424924347
+        .long	1071749039
+        .long	2839424854
+        .long	1070787759
+        .long	3839693941
+        .long	1071762015
+        .long	2799960843
+        .long	1070781061
+        .long	2776099954
+        .long	1071775026
+        .long	3504003472
+        .long	1070774399
+        .long	4167790294
+        .long	1071788071
+        .long	4112506593
+        .long	1070767773
+        .long	1067865225
+        .long	1071801152
+        .long	3790955393
+        .long	1070761183
+        .long	3713696612
+        .long	1071814267
+        .long	1709341917
+        .long	1070754629
+        .long	872270569
+        .long	1071827419
+        .long	1337108031
+        .long	1070748110
+        .long	2789908864
+        .long	1071840606
+        .long	1853186616
+        .long	1070741626
+        .long	2537611823
+        .long	1071853830
+        .long	2440944790
+        .long	1070735177
+        .long	1780910816
+        .long	1071867091
+        .long	2288159958
+        .long	1070728763
+        .long	2189982503
+        .long	1071880389
+        .long	586995997
+        .long	1070722384
+        .long	1144730516
+        .long	1071893725
+        .long	828946858
+        .long	1070716039
+        .long	324769168
+        .long	1071907099
+        .long	2214878420
+        .long	1070709728
+        .long	1414505409
+        .long	1071920511
+        .long	3949972341
+        .long	1070703451
+        .long	1808220925
+        .long	1071933962
+        .long	948735466
+        .long	1070697209
+        .long	3200056266
+        .long	1071947452
+        .long	1014845819
+        .long	1070691000
+        .long	2994125935
+        .long	1071960982
+        .long	3366293073
+        .long	1070684824
+        .long	2894502806
+        .long	1071974552
+        .long	2930322912
+        .long	1070678682
+        .long	315333498
+        .long	1071988163
+        .long	3228316108
+        .long	1070672573
+        .long	1265790390
+        .long	1072001814
+        .long	3490863953
+        .long	1070666497
+        .long	3170252699
+        .long	1072015506
+        .long	2952712987
+        .long	1070660454
+        .long	3458291493
+        .long	1072029240
+        .long	852742562
+        .long	1070654444
+        .long	3859687560
+        .long	1072043016
+        .long	728909815
+        .long	1070648466
+        .long	1814547538
+        .long	1072056835
+        .long	1828292879
+        .long	1070642520
+        .long	3358256687
+        .long	1072070696
+        .long	3402036099
+        .long	1070636606
+        .long	1646693443
+        .long	1072084601
+        .long	410360776
+        .long	1070630725
+        .long	2726084392
+        .long	1072098549
+        .long	702412510
+        .long	1070624875
+        .long	4058219142
+        .long	1072112541
+        .long	3541402996
+        .long	1070619056
+        .long	3110436433
+        .long	1072126578
+        .long	3899555717
+        .long	1070613269
+        .long	1650643112
+        .long	1072140660
+        .long	1048019041
+        .long	1070607514
+        .long	1452398678
+        .long	1072154787
+        .long	2851812149
+        .long	1070601789
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .type	__svml_dsinh_data_internal,@object
+        .size	__svml_dsinh_data_internal,4288
+        .space 320, 0x00 	
+        .align 32
+
+__dsinh_la_CoutTab:
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	0
+        .long	1048019041
+        .long	1072704666
+        .long	1398474845
+        .long	3161559171
+        .long	3541402996
+        .long	1072716208
+        .long	2759177317
+        .long	1015903202
+        .long	410360776
+        .long	1072727877
+        .long	1269990655
+        .long	1013024446
+        .long	1828292879
+        .long	1072739672
+        .long	1255956747
+        .long	1016636974
+        .long	852742562
+        .long	1072751596
+        .long	667253587
+        .long	1010842135
+        .long	3490863953
+        .long	1072763649
+        .long	960797498
+        .long	3163997456
+        .long	2930322912
+        .long	1072775834
+        .long	2599499422
+        .long	3163762623
+        .long	1014845819
+        .long	1072788152
+        .long	3117910646
+        .long	3162607681
+        .long	3949972341
+        .long	1072800603
+        .long	2068408548
+        .long	1015962444
+        .long	828946858
+        .long	1072813191
+        .long	10642492
+        .long	1016988014
+        .long	2288159958
+        .long	1072825915
+        .long	2169144469
+        .long	1015924597
+        .long	1853186616
+        .long	1072838778
+        .long	3066496371
+        .long	1016705150
+        .long	1709341917
+        .long	1072851781
+        .long	2571168217
+        .long	1015201075
+        .long	4112506593
+        .long	1072864925
+        .long	2947355221
+        .long	1015419624
+        .long	2799960843
+        .long	1072878213
+        .long	1423655381
+        .long	1016070727
+        .long	171030293
+        .long	1072891646
+        .long	3526460132
+        .long	1015477354
+        .long	2992903935
+        .long	1072905224
+        .long	2218154406
+        .long	1016276769
+        .long	926591435
+        .long	1072918951
+        .long	3208833762
+        .long	3163962090
+        .long	887463927
+        .long	1072932827
+        .long	3596744163
+        .long	3161842742
+        .long	1276261410
+        .long	1072946854
+        .long	300981948
+        .long	1015732745
+        .long	569847338
+        .long	1072961034
+        .long	472945272
+        .long	3160339305
+        .long	1617004845
+        .long	1072975368
+        .long	82804944
+        .long	1011391354
+        .long	3049340112
+        .long	1072989858
+        .long	3062915824
+        .long	1014219171
+        .long	3577096743
+        .long	1073004506
+        .long	2951496418
+        .long	1014842263
+        .long	1990012071
+        .long	1073019314
+        .long	3529070563
+        .long	3163861769
+        .long	1453150082
+        .long	1073034283
+        .long	498154669
+        .long	3162536638
+        .long	917841882
+        .long	1073049415
+        .long	18715565
+        .long	1016707884
+        .long	3712504873
+        .long	1073064711
+        .long	88491949
+        .long	1016476236
+        .long	363667784
+        .long	1073080175
+        .long	813753950
+        .long	1016833785
+        .long	2956612997
+        .long	1073095806
+        .long	2118169751
+        .long	3163784129
+        .long	2186617381
+        .long	1073111608
+        .long	2270764084
+        .long	3164321289
+        .long	1719614413
+        .long	1073127582
+        .long	330458198
+        .long	3164331316
+        .long	1013258799
+        .long	1073143730
+        .long	1748797611
+        .long	3161177658
+        .long	3907805044
+        .long	1073160053
+        .long	2257091225
+        .long	3162598983
+        .long	1447192521
+        .long	1073176555
+        .long	1462857171
+        .long	3163563097
+        .long	1944781191
+        .long	1073193236
+        .long	3993278767
+        .long	3162772855
+        .long	919555682
+        .long	1073210099
+        .long	3121969534
+        .long	1013996802
+        .long	2571947539
+        .long	1073227145
+        .long	3558159064
+        .long	3164425245
+        .long	2604962541
+        .long	1073244377
+        .long	2614425274
+        .long	3164587768
+        .long	1110089947
+        .long	1073261797
+        .long	1451641639
+        .long	1016523249
+        .long	2568320822
+        .long	1073279406
+        .long	2732824428
+        .long	1015401491
+        .long	2966275557
+        .long	1073297207
+        .long	2176155324
+        .long	3160891335
+        .long	2682146384
+        .long	1073315202
+        .long	2082178513
+        .long	3164411995
+        .long	2191782032
+        .long	1073333393
+        .long	2960257726
+        .long	1014791238
+        .long	2069751141
+        .long	1073351782
+        .long	1562170675
+        .long	3163773257
+        .long	2990417245
+        .long	1073370371
+        .long	3683467745
+        .long	3164417902
+        .long	1434058175
+        .long	1073389163
+        .long	251133233
+        .long	1016134345
+        .long	2572866477
+        .long	1073408159
+        .long	878562433
+        .long	1016570317
+        .long	3092190715
+        .long	1073427362
+        .long	814012168
+        .long	3160571998
+        .long	4076559943
+        .long	1073446774
+        .long	2119478331
+        .long	3161806927
+        .long	2420883922
+        .long	1073466398
+        .long	2049810052
+        .long	1015168464
+        .long	3716502172
+        .long	1073486235
+        .long	2303740125
+        .long	1015091301
+        .long	777507147
+        .long	1073506289
+        .long	4282924205
+        .long	1016236109
+        .long	3706687593
+        .long	1073526560
+        .long	3521726939
+        .long	1014301643
+        .long	1242007932
+        .long	1073547053
+        .long	1132034716
+        .long	3164388407
+        .long	3707479175
+        .long	1073567768
+        .long	3613079303
+        .long	1015213314
+        .long	64696965
+        .long	1073588710
+        .long	1768797490
+        .long	1016865536
+        .long	863738719
+        .long	1073609879
+        .long	1326992220
+        .long	3163661773
+        .long	3884662774
+        .long	1073631278
+        .long	2158611599
+        .long	1015258761
+        .long	2728693978
+        .long	1073652911
+        .long	396109971
+        .long	3164511267
+        .long	3999357479
+        .long	1073674779
+        .long	2258941616
+        .long	1016973300
+        .long	1533953344
+        .long	1073696886
+        .long	769171851
+        .long	1016714209
+        .long	2174652632
+        .long	1073719233
+        .long	4087714590
+        .long	1015498835
+        .long	0
+        .long	1073741824
+        .long	0
+        .long	0
+        .long	0
+        .long	1071644672
+        .long	1431652600
+        .long	1069897045
+        .long	1431670732
+        .long	1067799893
+        .long	984555731
+        .long	1065423122
+        .long	472530941
+        .long	1062650218
+        .long	1431655765
+        .long	1069897045
+        .long	286331153
+        .long	1065423121
+        .long	436314138
+        .long	1059717536
+        .long	2773927732
+        .long	1053236707
+        .long	1697350398
+        .long	1079448903
+        .long	0
+        .long	1127743488
+        .long	33554432
+        .long	1101004800
+        .long	2411329662
+        .long	1082536910
+        .long	4277796864
+        .long	1065758274
+        .long	3164486458
+        .long	1025308570
+        .long	1
+        .long	1048576
+        .long	4294967295
+        .long	2146435071
+        .long	3671843104
+        .long	1067178892
+        .long	3875694624
+        .long	1077247184
+        .type	__dsinh_la_CoutTab,@object
+        .size	__dsinh_la_CoutTab,1192
+        .space 8, 0x00 	
+        .align 16
+
+.FLT_98:
+        .long	0x00000000,0x80000000,0x00000000,0x00000000
+        .type	.FLT_98,@object
+        .size	.FLT_98,16
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core-sse.S
new file mode 100644
index 0000000000..ae531575fe
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core-sse.S
@@ -0,0 +1,20 @@ 
+/* SSE version of vectorized sinh, vector length is 4.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define _ZGVdN4v_sinh _ZGVdN4v_sinh_sse_wrapper
+#include "../svml_d_sinh4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core.c
new file mode 100644
index 0000000000..bdf10b664b
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core.c
@@ -0,0 +1,27 @@ 
+/* Multiple versions of vectorized sinh, vector length is 4.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define SYMBOL_NAME _ZGVdN4v_sinh
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN4v_sinh, __GI__ZGVdN4v_sinh, __redirect__ZGVdN4v_sinh)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core_avx2.S
new file mode 100644
index 0000000000..a20c94b298
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh4_core_avx2.S
@@ -0,0 +1,2702 @@ 
+/* Function sinh vectorized with AVX2.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   https://www.gnu.org/licenses/.  */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ *   Compute sinh(x) as (exp(x)-exp(-x))/2,
+ *   where exp is calculated as
+ *   exp(M*ln2 + ln2*(j/2^k) + r) = 2^M * 2^(j/2^k) * exp(r)
+ *
+ *   Special cases:
+ *
+ *   sinh(NaN) = quiet NaN, and raise invalid exception
+ *   sinh(INF) = that INF
+ *   sinh(x)   = x for subnormals
+ *   sinh(x) overflows for big x and returns MAXLOG+log(2)
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.avx2,"ax",@progbits
+ENTRY(_ZGVdN4v_sinh_avx2)
+        pushq     %rbp
+        cfi_def_cfa_offset(16)
+        movq      %rsp, %rbp
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+        andq      $-64, %rsp
+        subq      $384, %rsp
+        lea       1608+__svml_dsinh_data_internal(%rip), %rcx
+        vmovups   %ymm9, 96(%rsp)
+        .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+        vmovupd   3648+__svml_dsinh_data_internal(%rip), %ymm9
+
+/*
+ *  Load argument
+ * dM = x*2^K/log(2) + RShifter
+ */
+        vmovupd   1216+__svml_dsinh_data_internal(%rip), %ymm5
+        vmovups   %ymm8, 32(%rsp)
+        vmovups   %ymm12, 224(%rsp)
+        vmovups   %ymm15, 320(%rsp)
+        vmovups   %ymm10, 160(%rsp)
+        vmovups   %ymm11, 192(%rsp)
+        vmovups   %ymm13, 256(%rsp)
+        vmovups   %ymm14, 288(%rsp)
+        .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+        vmovapd   %ymm0, %ymm8
+
+/*
+ * VLOAD_CONST( D, dPC[0],         TAB._dPC1 );
+ *  Abs argument
+ */
+        vandpd    1408+__svml_dsinh_data_internal(%rip), %ymm8, %ymm7
+        vxorpd    %ymm8, %ymm7, %ymm6
+        vfmadd213pd %ymm9, %ymm6, %ymm5
+
+/*
+ *  Index and lookup
+ * j
+ */
+        vandps    4224+__svml_dsinh_data_internal(%rip), %ymm5, %ymm4
+
+/*
+ * Check for overflow\underflow
+ *
+ */
+        vextractf128 $1, %ymm6, %xmm1
+        vshufps   $221, %xmm1, %xmm6, %xmm2
+        vpcmpgtd  3712+__svml_dsinh_data_internal(%rip), %xmm2, %xmm3
+        vmovmskps %xmm3, %r8d
+
+/*
+ *  R
+ * dN = dM - RShifter
+ */
+        vsubpd    %ymm9, %ymm5, %ymm3
+
+/* dR = dX - dN*Log2_hi/2^K */
+        vfnmadd231pd 1280+__svml_dsinh_data_internal(%rip), %ymm3, %ymm6
+
+/* dR = (dX - dN*Log2_hi/2^K) - dN*Log2_lo/2^K */
+        vfnmadd231pd 1344+__svml_dsinh_data_internal(%rip), %ymm3, %ymm6
+        vextractf128 $1, %ymm4, %xmm12
+        vmovd     %xmm4, %edx
+        vmovd     %xmm12, %r9d
+        shll      $4, %edx
+        vpextrd   $2, %xmm4, %eax
+        shll      $4, %r9d
+        vpextrd   $2, %xmm12, %r10d
+        shll      $4, %eax
+        shll      $4, %r10d
+        vmovq     -8(%rdx,%rcx), %xmm15
+        vmovq     -8(%r9,%rcx), %xmm1
+        vmovhpd   -8(%rax,%rcx), %xmm15, %xmm0
+        vmovq     (%rdx,%rcx), %xmm10
+        vmovhpd   -8(%r10,%rcx), %xmm1, %xmm9
+        vmovhpd   (%rax,%rcx), %xmm10, %xmm11
+
+/* dR2 = dR^2 */
+        vmulpd    %ymm6, %ymm6, %ymm1
+        vmovq     (%r9,%rcx), %xmm13
+        vmovhpd   (%r10,%rcx), %xmm13, %xmm14
+
+/* split j and N */
+        vxorps    %ymm4, %ymm5, %ymm5
+
+/*
+ *  G1,G2,G3: dTdif,dTn * 2^N,2^(-N)
+ * lM now is an EXP(2^N)
+ */
+        vpsllq    $45, %ymm5, %ymm3
+        vinsertf128 $1, %xmm9, %ymm0, %ymm10
+
+/*
+ * sinh(r) = r*((a1=1)+r^2*(a3+r^2*a5)) = r + r*(r^2*(a3+r^2*a5)) ....
+ * dSinh_r = (a3+r^2*a5)
+ */
+        vmovupd   4032+__svml_dsinh_data_internal(%rip), %ymm9
+        vpaddq    %ymm3, %ymm10, %ymm0
+        vfmadd213pd 3904+__svml_dsinh_data_internal(%rip), %ymm1, %ymm9
+        vinsertf128 $1, %xmm14, %ymm11, %ymm2
+
+/* dSinh_r = r^2*(a3+r^2*a5) */
+        vmulpd    %ymm9, %ymm1, %ymm14
+
+/*  */
+        vpaddq    %ymm3, %ymm2, %ymm4
+
+/*  */
+        vpsubq    %ymm3, %ymm2, %ymm2
+
+/* dSinh_r = r + r*(r^2*(a3+r^2*a5)) */
+        vfmadd213pd %ymm6, %ymm6, %ymm14
+
+/*
+ * poly(r) = (dG2+dG1)+dG3*sinh(dR)+dG1*sinh(dR)+(dG1+dG2)*dR2*(a2 +a4*dR2)
+ * dOut = (a2 +a4*dR2)
+ */
+        vmovupd   3968+__svml_dsinh_data_internal(%rip), %ymm6
+
+/* dG2 = dTn*2^N - dTn*2^-N */
+        vsubpd    %ymm2, %ymm4, %ymm5
+
+/* dG3 = dTn*2^N + dTn*2^-N */
+        vaddpd    %ymm2, %ymm4, %ymm11
+        vfmadd213pd 3840+__svml_dsinh_data_internal(%rip), %ymm1, %ymm6
+
+/* dG2 += dG1 */
+        vaddpd    %ymm5, %ymm0, %ymm13
+
+/* dG1 += dG3 */
+        vaddpd    %ymm11, %ymm0, %ymm0
+
+/* dOut = dR2*(a2 +a4*dR2) */
+        vmulpd    %ymm6, %ymm1, %ymm1
+
+/* dOut = dG2*dR2*(a2 +a4*dR2) */
+        vmulpd    %ymm13, %ymm1, %ymm12
+
+/* dOut = dG1*sinh(dR)+dG2*dR2*(a2 +a4*dR2) */
+        vfmadd213pd %ymm12, %ymm0, %ymm14
+
+/* dOut = dG2 + dG1*sinh(dR)+dG2*dR2*(a2 +a4*dR2) */
+        vaddpd    %ymm14, %ymm13, %ymm15
+
+/*  Ret H  */
+        vorpd     %ymm15, %ymm7, %ymm0
+        testl     %r8d, %r8d
+        jne       L(2)
+
+L(1):
+        vmovups   32(%rsp), %ymm8
+        cfi_restore(91)
+        vmovups   96(%rsp), %ymm9
+        cfi_restore(92)
+        vmovups   160(%rsp), %ymm10
+        cfi_restore(93)
+        vmovups   192(%rsp), %ymm11
+        cfi_restore(94)
+        vmovups   224(%rsp), %ymm12
+        cfi_restore(95)
+        vmovups   256(%rsp), %ymm13
+        cfi_restore(96)
+        vmovups   288(%rsp), %ymm14
+        cfi_restore(97)
+        vmovups   320(%rsp), %ymm15
+        cfi_restore(98)
+        movq      %rbp, %rsp
+        popq      %rbp
+        cfi_def_cfa(7, 8)
+        cfi_restore(6)
+        ret
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+        .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+
+L(2):
+        vmovupd   %ymm8, 64(%rsp)
+        vmovupd   %ymm0, 128(%rsp)
+        je        L(1)
+        xorl      %eax, %eax
+        vzeroupper
+        movq      %rsi, 8(%rsp)
+        movq      %rdi, (%rsp)
+        movq      %r12, 24(%rsp)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+        movl      %eax, %r12d
+        movq      %r13, 16(%rsp)
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+        movl      %r8d, %r13d
+
+L(3):
+        btl       %r12d, %r13d
+        jc        L(5)
+
+L(4):
+        incl      %r12d
+        cmpl      $4, %r12d
+        jl        L(3)
+        movq      8(%rsp), %rsi
+        cfi_restore(4)
+        movq      (%rsp), %rdi
+        cfi_restore(5)
+        movq      24(%rsp), %r12
+        cfi_restore(12)
+        movq      16(%rsp), %r13
+        cfi_restore(13)
+        vmovupd   128(%rsp), %ymm0
+        jmp       L(1)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+
+L(5):
+        lea       64(%rsp,%r12,8), %rdi
+        lea       128(%rsp,%r12,8), %rsi
+        call      __svml_dsinh_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVdN4v_sinh_avx2)
+
+        .align    16,0x90
+
+__svml_dsinh_cout_rare_internal:
+
+        cfi_startproc
+
+        movq      %rsi, %r9
+        movzwl    6(%rdi), %ecx
+        xorl      %eax, %eax
+        andl      $32752, %ecx
+        shrl      $4, %ecx
+        movsd     (%rdi), %xmm2
+        movb      7(%rdi), %dl
+        movsd     %xmm2, -8(%rsp)
+        cmpl      $2047, %ecx
+        je        L(13)
+        testl     %ecx, %ecx
+        jle       L(12)
+        andb      $127, %dl
+        movsd     %xmm2, -32(%rsp)
+        movb      %dl, -25(%rsp)
+        cmpl      $969, %ecx
+        jle       L(11)
+        movsd     -32(%rsp), %xmm0
+        movsd     1136+__dsinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(10)
+        movsd     1184+__dsinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(7)
+        comisd    1176+__dsinh_la_CoutTab(%rip), %xmm0
+        jb        L(6)
+        movsd     1112+__dsinh_la_CoutTab(%rip), %xmm1
+        lea       __dsinh_la_CoutTab(%rip), %rcx
+        mulsd     %xmm0, %xmm1
+        movsd     1144+__dsinh_la_CoutTab(%rip), %xmm4
+        movq      8+__dsinh_la_CoutTab(%rip), %r10
+        movq      %r10, %rsi
+        shrq      $48, %rsi
+        addsd     1120+__dsinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -40(%rsp)
+        andl      $-32753, %esi
+        movsd     -40(%rsp), %xmm10
+        movl      -40(%rsp), %r8d
+        movl      %r8d, %r11d
+        shrl      $6, %r11d
+        andl      $63, %r8d
+        movq      %r10, -16(%rsp)
+        subsd     1120+__dsinh_la_CoutTab(%rip), %xmm10
+        mulsd     %xmm10, %xmm4
+        lea       1023(%r11), %edi
+        xorps     .FLT_98(%rip), %xmm10
+        addl      $1022, %r11d
+        mulsd     1152+__dsinh_la_CoutTab(%rip), %xmm10
+        subsd     %xmm4, %xmm0
+        movaps    %xmm10, %xmm2
+        movaps    %xmm0, %xmm8
+        andl      $2047, %r11d
+        lea       (%r8,%r8), %edx
+        negl      %edi
+        lea       1(%r8,%r8), %r8d
+        movsd     (%rcx,%rdx,8), %xmm9
+        negl      %edx
+        shll      $4, %r11d
+        addl      $-4, %edi
+        orl       %r11d, %esi
+        andl      $2047, %edi
+        movw      %si, -10(%rsp)
+        andl      $-32753, %esi
+        shll      $4, %edi
+        addsd     %xmm0, %xmm2
+        movsd     %xmm2, -24(%rsp)
+        orl       %edi, %esi
+        movsd     -24(%rsp), %xmm6
+        movsd     1128+__dsinh_la_CoutTab(%rip), %xmm2
+        subsd     %xmm6, %xmm8
+        movsd     %xmm8, -56(%rsp)
+        movsd     -24(%rsp), %xmm12
+        movsd     -56(%rsp), %xmm11
+        movsd     (%rcx,%r8,8), %xmm7
+        addsd     %xmm11, %xmm12
+        movsd     %xmm12, -48(%rsp)
+        movsd     -56(%rsp), %xmm5
+        addsd     %xmm5, %xmm10
+        movsd     -16(%rsp), %xmm5
+        mulsd     %xmm5, %xmm9
+        mulsd     %xmm5, %xmm7
+        movsd     %xmm10, -56(%rsp)
+        movaps    %xmm9, %xmm10
+        movsd     -48(%rsp), %xmm13
+        movw      %si, -10(%rsp)
+        lea       128(%rdx), %esi
+        movsd     -16(%rsp), %xmm14
+        addl      $129, %edx
+        subsd     %xmm13, %xmm0
+        movsd     %xmm0, -48(%rsp)
+        movsd     -56(%rsp), %xmm1
+        movsd     -48(%rsp), %xmm15
+        addsd     %xmm15, %xmm1
+        movsd     %xmm1, -48(%rsp)
+        movsd     -24(%rsp), %xmm4
+        mulsd     %xmm4, %xmm2
+        movaps    %xmm4, %xmm3
+        mulsd     %xmm4, %xmm3
+        movsd     -48(%rsp), %xmm1
+        movaps    %xmm4, %xmm0
+        movsd     %xmm2, -24(%rsp)
+        movsd     -24(%rsp), %xmm6
+        movsd     1064+__dsinh_la_CoutTab(%rip), %xmm2
+        subsd     %xmm4, %xmm6
+        mulsd     %xmm3, %xmm2
+        movsd     %xmm6, -56(%rsp)
+        movsd     -24(%rsp), %xmm11
+        movsd     -56(%rsp), %xmm8
+        subsd     %xmm8, %xmm11
+        addsd     1048+__dsinh_la_CoutTab(%rip), %xmm2
+        movsd     %xmm11, -24(%rsp)
+        movsd     1072+__dsinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm3, %xmm11
+        mulsd     %xmm3, %xmm2
+        addsd     1056+__dsinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm4, %xmm2
+        mulsd     %xmm3, %xmm11
+        movsd     -24(%rsp), %xmm12
+        addsd     1040+__dsinh_la_CoutTab(%rip), %xmm11
+        subsd     %xmm12, %xmm0
+        mulsd     %xmm3, %xmm11
+        movsd     (%rcx,%rsi,8), %xmm3
+        movaps    %xmm9, %xmm12
+        mulsd     %xmm14, %xmm3
+        movsd     %xmm0, -56(%rsp)
+        subsd     %xmm3, %xmm10
+        movsd     -24(%rsp), %xmm8
+        movsd     -56(%rsp), %xmm6
+        movsd     %xmm10, -24(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     (%rcx,%rdx,8), %xmm0
+        subsd     %xmm13, %xmm12
+        mulsd     %xmm14, %xmm0
+        subsd     %xmm3, %xmm12
+        movsd     %xmm12, -56(%rsp)
+        movsd     -24(%rsp), %xmm14
+        movsd     -56(%rsp), %xmm12
+        movaps    %xmm14, %xmm5
+        movb      -1(%rsp), %cl
+        addsd     %xmm7, %xmm12
+        addsd     %xmm0, %xmm7
+        subsd     %xmm0, %xmm12
+        andb      $-128, %cl
+        addsd     %xmm12, %xmm5
+        movsd     %xmm5, -24(%rsp)
+        movaps    %xmm9, %xmm5
+        movsd     -24(%rsp), %xmm15
+        addsd     %xmm3, %xmm5
+        subsd     %xmm15, %xmm14
+        addsd     %xmm14, %xmm12
+        movsd     %xmm12, -56(%rsp)
+        movsd     -24(%rsp), %xmm10
+        movsd     -56(%rsp), %xmm12
+        movsd     %xmm5, -24(%rsp)
+        movsd     -24(%rsp), %xmm13
+        subsd     %xmm13, %xmm9
+        addsd     %xmm9, %xmm3
+        movsd     %xmm3, -56(%rsp)
+        movsd     -24(%rsp), %xmm3
+        movsd     -56(%rsp), %xmm5
+        addsd     %xmm7, %xmm5
+        movaps    %xmm3, %xmm7
+        addsd     %xmm5, %xmm7
+        movsd     %xmm7, -24(%rsp)
+        movsd     -24(%rsp), %xmm9
+        movsd     1128+__dsinh_la_CoutTab(%rip), %xmm7
+        subsd     %xmm9, %xmm3
+        addsd     %xmm3, %xmm5
+        movsd     %xmm5, -56(%rsp)
+        movsd     -24(%rsp), %xmm0
+        mulsd     %xmm0, %xmm7
+        movsd     -56(%rsp), %xmm3
+        movsd     %xmm7, -24(%rsp)
+        movaps    %xmm0, %xmm7
+        movsd     -24(%rsp), %xmm14
+        mulsd     %xmm3, %xmm4
+        subsd     %xmm0, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm9
+        subsd     %xmm9, %xmm13
+        movsd     %xmm13, -24(%rsp)
+        movaps    %xmm0, %xmm13
+        movsd     -24(%rsp), %xmm15
+        mulsd     %xmm2, %xmm13
+        subsd     %xmm15, %xmm7
+        mulsd     %xmm1, %xmm0
+        mulsd     %xmm3, %xmm1
+        mulsd     %xmm3, %xmm2
+        movaps    %xmm10, %xmm15
+        movaps    %xmm13, %xmm5
+        mulsd     %xmm11, %xmm15
+        mulsd     %xmm12, %xmm11
+        addsd     %xmm15, %xmm5
+        addsd     %xmm12, %xmm11
+        movsd     %xmm7, -56(%rsp)
+        addsd     %xmm0, %xmm11
+        movsd     -24(%rsp), %xmm9
+        addsd     %xmm1, %xmm11
+        movsd     -56(%rsp), %xmm7
+        addsd     %xmm2, %xmm11
+        movsd     %xmm5, -24(%rsp)
+        addsd     %xmm4, %xmm11
+        movsd     -24(%rsp), %xmm14
+        subsd     %xmm14, %xmm13
+        addsd     %xmm13, %xmm15
+        movsd     %xmm15, -56(%rsp)
+        movaps    %xmm8, %xmm15
+        mulsd     %xmm9, %xmm15
+        mulsd     %xmm6, %xmm9
+        mulsd     %xmm7, %xmm6
+        mulsd     %xmm7, %xmm8
+        movsd     -24(%rsp), %xmm14
+        movaps    %xmm15, %xmm13
+        movsd     -56(%rsp), %xmm5
+        addsd     %xmm14, %xmm13
+        addsd     %xmm9, %xmm5
+        movsd     %xmm13, -24(%rsp)
+        addsd     %xmm6, %xmm5
+        movsd     -24(%rsp), %xmm13
+        addsd     %xmm8, %xmm5
+        subsd     %xmm13, %xmm15
+        addsd     %xmm5, %xmm11
+        addsd     %xmm15, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movaps    %xmm10, %xmm15
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm14
+        addsd     %xmm13, %xmm15
+        addsd     %xmm14, %xmm11
+        movsd     %xmm15, -24(%rsp)
+        movsd     -24(%rsp), %xmm15
+        subsd     %xmm15, %xmm10
+        addsd     %xmm10, %xmm13
+        movsd     %xmm13, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm10
+        addsd     %xmm10, %xmm11
+        addsd     %xmm11, %xmm13
+        movsd     %xmm13, -32(%rsp)
+        movb      -25(%rsp), %dil
+        andb      $127, %dil
+        orb       %cl, %dil
+        movb      %dil, -25(%rsp)
+        movq      -32(%rsp), %r10
+        movq      %r10, (%r9)
+        ret
+
+L(6):
+        movaps    %xmm0, %xmm2
+        mulsd     %xmm0, %xmm2
+        movsd     1104+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        movb      -1(%rsp), %dl
+        andb      $-128, %dl
+        addsd     1096+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1088+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1080+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm1, %xmm2
+        mulsd     %xmm0, %xmm2
+        addsd     %xmm2, %xmm0
+        movsd     %xmm0, -32(%rsp)
+        movb      -25(%rsp), %cl
+        andb      $127, %cl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movq      -32(%rsp), %rsi
+        movq      %rsi, (%r9)
+        ret
+
+L(7):
+        movsd     1112+__dsinh_la_CoutTab(%rip), %xmm1
+        lea       __dsinh_la_CoutTab(%rip), %r8
+        mulsd     %xmm0, %xmm1
+        movsd     1144+__dsinh_la_CoutTab(%rip), %xmm2
+        movsd     1152+__dsinh_la_CoutTab(%rip), %xmm3
+        movq      8+__dsinh_la_CoutTab(%rip), %rdx
+        movq      %rdx, -16(%rsp)
+        addsd     1120+__dsinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -40(%rsp)
+        movsd     -40(%rsp), %xmm4
+        movsd     1072+__dsinh_la_CoutTab(%rip), %xmm1
+        movl      -40(%rsp), %edx
+        movl      %edx, %esi
+        andl      $63, %esi
+        subsd     1120+__dsinh_la_CoutTab(%rip), %xmm4
+        mulsd     %xmm4, %xmm2
+        lea       (%rsi,%rsi), %ecx
+        mulsd     %xmm3, %xmm4
+        subsd     %xmm2, %xmm0
+        movsd     (%r8,%rcx,8), %xmm5
+        lea       1(%rsi,%rsi), %edi
+        shrl      $6, %edx
+        subsd     %xmm4, %xmm0
+        mulsd     %xmm0, %xmm1
+        addl      $1022, %edx
+        andl      $2047, %edx
+        addsd     1064+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1056+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1048+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1040+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     %xmm0, %xmm1
+        mulsd     %xmm5, %xmm1
+        addsd     (%r8,%rdi,8), %xmm1
+        addsd     %xmm5, %xmm1
+        cmpl      $2046, %edx
+        ja        L(8)
+        movq      8+__dsinh_la_CoutTab(%rip), %rcx
+        shrq      $48, %rcx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm0, %xmm1
+        movsd     %xmm1, -32(%rsp)
+        jmp       L(9)
+
+L(8):
+        decl      %edx
+        andl      $2047, %edx
+        movzwl    -10(%rsp), %ecx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm0, %xmm1
+        mulsd     1024+__dsinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -32(%rsp)
+
+L(9):
+        movb      -25(%rsp), %cl
+        movb      -1(%rsp), %dl
+        andb      $127, %cl
+        andb      $-128, %dl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movq      -32(%rsp), %rsi
+        movq      %rsi, (%r9)
+        ret
+
+L(10):
+        movsd     1168+__dsinh_la_CoutTab(%rip), %xmm0
+        movl      $3, %eax
+        mulsd     %xmm2, %xmm0
+        movsd     %xmm0, (%r9)
+        ret
+
+L(11):
+        movsd     __dsinh_la_CoutTab(%rip), %xmm0
+        addsd     1160+__dsinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm2, %xmm0
+        movsd     %xmm0, (%r9)
+        ret
+
+L(12):
+        movsd     1160+__dsinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm2, -24(%rsp)
+        movsd     -24(%rsp), %xmm1
+        movq      8+__dsinh_la_CoutTab(%rip), %rdx
+        movq      %rdx, -16(%rsp)
+        addsd     -8(%rsp), %xmm1
+        movsd     %xmm1, (%r9)
+        ret
+
+L(13):
+        addsd     %xmm2, %xmm2
+        movsd     %xmm2, (%r9)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_dsinh_cout_rare_internal,@function
+        .size	__svml_dsinh_cout_rare_internal,.-__svml_dsinh_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_dsinh_data_internal:
+        .long	0
+        .long	1071644672
+        .long	1828292879
+        .long	1071691096
+        .long	1014845819
+        .long	1071739576
+        .long	1853186616
+        .long	1071790202
+        .long	171030293
+        .long	1071843070
+        .long	1276261410
+        .long	1071898278
+        .long	3577096743
+        .long	1071955930
+        .long	3712504873
+        .long	1072016135
+        .long	1719614413
+        .long	1072079006
+        .long	1944781191
+        .long	1072144660
+        .long	1110089947
+        .long	1072213221
+        .long	2191782032
+        .long	1072284817
+        .long	2572866477
+        .long	1072359583
+        .long	3716502172
+        .long	1072437659
+        .long	3707479175
+        .long	1072519192
+        .long	2728693978
+        .long	1072604335
+        .long	0
+        .long	0
+        .long	1255956747
+        .long	1015588398
+        .long	3117910646
+        .long	3161559105
+        .long	3066496371
+        .long	1015656574
+        .long	3526460132
+        .long	1014428778
+        .long	300981948
+        .long	1014684169
+        .long	2951496418
+        .long	1013793687
+        .long	88491949
+        .long	1015427660
+        .long	330458198
+        .long	3163282740
+        .long	3993278767
+        .long	3161724279
+        .long	1451641639
+        .long	1015474673
+        .long	2960257726
+        .long	1013742662
+        .long	878562433
+        .long	1015521741
+        .long	2303740125
+        .long	1014042725
+        .long	3613079303
+        .long	1014164738
+        .long	396109971
+        .long	3163462691
+        .long	0
+        .long	1071644672
+        .long	2728693978
+        .long	1071555759
+        .long	3707479175
+        .long	1071470616
+        .long	3716502172
+        .long	1071389083
+        .long	2572866477
+        .long	1071311007
+        .long	2191782032
+        .long	1071236241
+        .long	1110089947
+        .long	1071164645
+        .long	1944781191
+        .long	1071096084
+        .long	1719614413
+        .long	1071030430
+        .long	3712504873
+        .long	1070967559
+        .long	3577096743
+        .long	1070907354
+        .long	1276261410
+        .long	1070849702
+        .long	171030293
+        .long	1070794494
+        .long	1853186616
+        .long	1070741626
+        .long	1014845819
+        .long	1070691000
+        .long	1828292879
+        .long	1070642520
+        .long	0
+        .long	0
+        .long	396109971
+        .long	3162414115
+        .long	3613079303
+        .long	1013116162
+        .long	2303740125
+        .long	1012994149
+        .long	878562433
+        .long	1014473165
+        .long	2960257726
+        .long	1012694086
+        .long	1451641639
+        .long	1014426097
+        .long	3993278767
+        .long	3160675703
+        .long	330458198
+        .long	3162234164
+        .long	88491949
+        .long	1014379084
+        .long	2951496418
+        .long	1012745111
+        .long	300981948
+        .long	1013635593
+        .long	3526460132
+        .long	1013380202
+        .long	3066496371
+        .long	1014607998
+        .long	3117910646
+        .long	3160510529
+        .long	1255956747
+        .long	1014539822
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	0
+        .long	0
+        .long	1071644672
+        .long	431824500
+        .long	1064709706
+        .long	730821105
+        .long	1071633346
+        .long	1779301686
+        .long	1065758303
+        .long	2174652632
+        .long	1071622081
+        .long	872681311
+        .long	1066443490
+        .long	2912730644
+        .long	1071610877
+        .long	2882296449
+        .long	1066806964
+        .long	1533953344
+        .long	1071599734
+        .long	3305321028
+        .long	1067170481
+        .long	929806999
+        .long	1071588651
+        .long	340716357
+        .long	1067492210
+        .long	3999357479
+        .long	1071577627
+        .long	1073477808
+        .long	1067674027
+        .long	764307441
+        .long	1071566664
+        .long	3128166954
+        .long	1067855881
+        .long	2728693978
+        .long	1071555759
+        .long	3639221082
+        .long	1068037778
+        .long	4224142467
+        .long	1071544913
+        .long	4041415279
+        .long	1068219723
+        .long	3884662774
+        .long	1071534126
+        .long	1480599658
+        .long	1068401722
+        .long	351641897
+        .long	1071523398
+        .long	2997120266
+        .long	1068541361
+        .long	863738719
+        .long	1071512727
+        .long	928693471
+        .long	1068632422
+        .long	4076975200
+        .long	1071502113
+        .long	1708958952
+        .long	1068723517
+        .long	64696965
+        .long	1071491558
+        .long	3926287402
+        .long	1068814649
+        .long	382305176
+        .long	1071481059
+        .long	1878784442
+        .long	1068905822
+        .long	3707479175
+        .long	1071470616
+        .long	2754496392
+        .long	1068997037
+        .long	135105010
+        .long	1071460231
+        .long	861943228
+        .long	1069088298
+        .long	1242007932
+        .long	1071449901
+        .long	3400259254
+        .long	1069179606
+        .long	1432208378
+        .long	1071439627
+        .long	394759087
+        .long	1069270966
+        .long	3706687593
+        .long	1071429408
+        .long	3351980561
+        .long	1069362378
+        .long	2483480501
+        .long	1071419245
+        .long	2310349189
+        .long	1069453847
+        .long	777507147
+        .long	1071409137
+        .long	200254151
+        .long	1069545375
+        .long	1610600570
+        .long	1071399083
+        .long	4274709417
+        .long	1069592241
+        .long	3716502172
+        .long	1071389083
+        .long	2266782956
+        .long	1069638068
+        .long	1540824585
+        .long	1071379138
+        .long	1995599824
+        .long	1069683928
+        .long	2420883922
+        .long	1071369246
+        .long	647201135
+        .long	1069729823
+        .long	815859274
+        .long	1071359408
+        .long	4001939191
+        .long	1069775753
+        .long	4076559943
+        .long	1071349622
+        .long	664843213
+        .long	1069821722
+        .long	2380618042
+        .long	1071339890
+        .long	720494647
+        .long	1069867729
+        .long	3092190715
+        .long	1071330210
+        .long	1373458573
+        .long	1069913776
+        .long	697153126
+        .long	1071320583
+        .long	4128322810
+        .long	1069959864
+        .long	2572866477
+        .long	1071311007
+        .long	1904966097
+        .long	1070005996
+        .long	3218338682
+        .long	1071301483
+        .long	513564799
+        .long	1070052172
+        .long	1434058175
+        .long	1071292011
+        .long	1474894098
+        .long	1070098393
+        .long	321958744
+        .long	1071282590
+        .long	2020498546
+        .long	1070144661
+        .long	2990417245
+        .long	1071273219
+        .long	3682797359
+        .long	1070190977
+        .long	3964284211
+        .long	1071263899
+        .long	3705320722
+        .long	1070237343
+        .long	2069751141
+        .long	1071254630
+        .long	3632815436
+        .long	1070283760
+        .long	434316067
+        .long	1071245411
+        .long	721481577
+        .long	1070330230
+        .long	2191782032
+        .long	1071236241
+        .long	824045819
+        .long	1070376753
+        .long	1892288442
+        .long	1071227121
+        .long	1210063881
+        .long	1070423331
+        .long	2682146384
+        .long	1071218050
+        .long	3450994238
+        .long	1070469965
+        .long	3418903055
+        .long	1071209028
+        .long	535468266
+        .long	1070516658
+        .long	2966275557
+        .long	1071200055
+        .long	2639266259
+        .long	1070563409
+        .long	194117574
+        .long	1071191131
+        .long	3530359402
+        .long	1070603158
+        .long	2568320822
+        .long	1071182254
+        .long	3405407025
+        .long	1070626595
+        .long	380978316
+        .long	1071173426
+        .long	1749136243
+        .long	1070650064
+        .long	1110089947
+        .long	1071164645
+        .long	1517376385
+        .long	1070673565
+        .long	3649726105
+        .long	1071155911
+        .long	1375061601
+        .long	1070697099
+        .long	2604962541
+        .long	1071147225
+        .long	4286252247
+        .long	1070720666
+        .long	1176749997
+        .long	1071138586
+        .long	334352625
+        .long	1070744269
+        .long	2571947539
+        .long	1071129993
+        .long	1081936396
+        .long	1070767906
+        .long	1413356050
+        .long	1071121447
+        .long	916128083
+        .long	1070791579
+        .long	919555682
+        .long	1071112947
+        .long	2818494152
+        .long	1070815288
+        .long	19972402
+        .long	1071104493
+        .long	1185261260
+        .long	1070839035
+        .long	1944781191
+        .long	1071096084
+        .long	3302240303
+        .long	1070862819
+        .long	1339972927
+        .long	1071087721
+        .long	3575110344
+        .long	1070886642
+        .long	1447192521
+        .long	1071079403
+        .long	709375646
+        .long	1070910505
+        .long	1218806132
+        .long	1071071130
+        .long	2005420950
+        .long	1070934407
+        .long	3907805044
+        .long	1071062901
+        .long	1883763132
+        .long	1070958350
+        .long	4182873220
+        .long	1071054717
+        .long	3359975962
+        .long	1070982334
+        .long	1013258799
+        .long	1071046578
+        .long	864909351
+        .long	1071006361
+        .long	1963711167
+        .long	1071038482
+        .long	1719614413
+        .long	1071030430
+        .long	1719614413
+        .long	1071030430
+        .long	365628427
+        .long	1071054543
+        .long	3561793907
+        .long	1071022421
+        .long	4134867513
+        .long	1071078699
+        .long	2186617381
+        .long	1071014456
+        .long	3184944616
+        .long	1071102901
+        .long	885834528
+        .long	1071006534
+        .long	564029795
+        .long	1071127149
+        .long	2956612997
+        .long	1070998654
+        .long	3621005023
+        .long	1071151442
+        .long	3111574537
+        .long	1070990817
+        .long	2530717257
+        .long	1071175783
+        .long	363667784
+        .long	1070983023
+        .long	358839240
+        .long	1071200172
+        .long	2321106615
+        .long	1070975270
+        .long	177057508
+        .long	1071224609
+        .long	3712504873
+        .long	1070967559
+        .long	768195176
+        .long	1071249095
+        .long	3566716925
+        .long	1070959890
+        .long	921269482
+        .long	1071273631
+        .long	917841882
+        .long	1070952263
+        .long	3726549525
+        .long	1071298217
+        .long	3395129871
+        .long	1070944676
+        .long	3690744995
+        .long	1071322855
+        .long	1453150082
+        .long	1070937131
+        .long	3916966168
+        .long	1071347545
+        .long	2731501122
+        .long	1070929626
+        .long	3219913010
+        .long	1071372288
+        .long	1990012071
+        .long	1070922162
+        .long	420933669
+        .long	1071397085
+        .long	2583551245
+        .long	1070914738
+        .long	2938050448
+        .long	1071421935
+        .long	3577096743
+        .long	1070907354
+        .long	1016247609
+        .long	1071446841
+        .long	4040676318
+        .long	1070900010
+        .long	2087301532
+        .long	1071471802
+        .long	3049340112
+        .long	1070892706
+        .long	705101620
+        .long	1071496820
+        .long	3978100823
+        .long	1070885441
+        .long	20578973
+        .long	1071521895
+        .long	1617004845
+        .long	1070878216
+        .long	3191864199
+        .long	1071547027
+        .long	3645941911
+        .long	1070871029
+        .long	499478133
+        .long	1071572219
+        .long	569847338
+        .long	1070863882
+        .long	3706163032
+        .long	1071597469
+        .long	78413852
+        .long	1070856773
+        .long	3107302654
+        .long	1071622780
+        .long	1276261410
+        .long	1070849702
+        .long	945376945
+        .long	1071646412
+        .long	3272845541
+        .long	1070842669
+        .long	3773502825
+        .long	1071659128
+        .long	887463927
+        .long	1070835675
+        .long	3049734401
+        .long	1071671876
+        .long	1829099622
+        .long	1070828718
+        .long	379637879
+        .long	1071684656
+        .long	926591435
+        .long	1070821799
+        .long	1667720032
+        .long	1071697467
+        .long	1603444721
+        .long	1070814917
+        .long	4232573504
+        .long	1071710310
+        .long	2992903935
+        .long	1070808072
+        .long	1101891425
+        .long	1071723187
+        .long	4232894513
+        .long	1070801264
+        .long	2487351331
+        .long	1071736096
+        .long	171030293
+        .long	1070794494
+        .long	1424924347
+        .long	1071749039
+        .long	2839424854
+        .long	1070787759
+        .long	3839693941
+        .long	1071762015
+        .long	2799960843
+        .long	1070781061
+        .long	2776099954
+        .long	1071775026
+        .long	3504003472
+        .long	1070774399
+        .long	4167790294
+        .long	1071788071
+        .long	4112506593
+        .long	1070767773
+        .long	1067865225
+        .long	1071801152
+        .long	3790955393
+        .long	1070761183
+        .long	3713696612
+        .long	1071814267
+        .long	1709341917
+        .long	1070754629
+        .long	872270569
+        .long	1071827419
+        .long	1337108031
+        .long	1070748110
+        .long	2789908864
+        .long	1071840606
+        .long	1853186616
+        .long	1070741626
+        .long	2537611823
+        .long	1071853830
+        .long	2440944790
+        .long	1070735177
+        .long	1780910816
+        .long	1071867091
+        .long	2288159958
+        .long	1070728763
+        .long	2189982503
+        .long	1071880389
+        .long	586995997
+        .long	1070722384
+        .long	1144730516
+        .long	1071893725
+        .long	828946858
+        .long	1070716039
+        .long	324769168
+        .long	1071907099
+        .long	2214878420
+        .long	1070709728
+        .long	1414505409
+        .long	1071920511
+        .long	3949972341
+        .long	1070703451
+        .long	1808220925
+        .long	1071933962
+        .long	948735466
+        .long	1070697209
+        .long	3200056266
+        .long	1071947452
+        .long	1014845819
+        .long	1070691000
+        .long	2994125935
+        .long	1071960982
+        .long	3366293073
+        .long	1070684824
+        .long	2894502806
+        .long	1071974552
+        .long	2930322912
+        .long	1070678682
+        .long	315333498
+        .long	1071988163
+        .long	3228316108
+        .long	1070672573
+        .long	1265790390
+        .long	1072001814
+        .long	3490863953
+        .long	1070666497
+        .long	3170252699
+        .long	1072015506
+        .long	2952712987
+        .long	1070660454
+        .long	3458291493
+        .long	1072029240
+        .long	852742562
+        .long	1070654444
+        .long	3859687560
+        .long	1072043016
+        .long	728909815
+        .long	1070648466
+        .long	1814547538
+        .long	1072056835
+        .long	1828292879
+        .long	1070642520
+        .long	3358256687
+        .long	1072070696
+        .long	3402036099
+        .long	1070636606
+        .long	1646693443
+        .long	1072084601
+        .long	410360776
+        .long	1070630725
+        .long	2726084392
+        .long	1072098549
+        .long	702412510
+        .long	1070624875
+        .long	4058219142
+        .long	1072112541
+        .long	3541402996
+        .long	1070619056
+        .long	3110436433
+        .long	1072126578
+        .long	3899555717
+        .long	1070613269
+        .long	1650643112
+        .long	1072140660
+        .long	1048019041
+        .long	1070607514
+        .long	1452398678
+        .long	1072154787
+        .long	2851812149
+        .long	1070601789
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .type	__svml_dsinh_data_internal,@object
+        .size	__svml_dsinh_data_internal,4288
+        .space 320, 0x00 	
+        .align 32
+
+__dsinh_la_CoutTab:
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	0
+        .long	1048019041
+        .long	1072704666
+        .long	1398474845
+        .long	3161559171
+        .long	3541402996
+        .long	1072716208
+        .long	2759177317
+        .long	1015903202
+        .long	410360776
+        .long	1072727877
+        .long	1269990655
+        .long	1013024446
+        .long	1828292879
+        .long	1072739672
+        .long	1255956747
+        .long	1016636974
+        .long	852742562
+        .long	1072751596
+        .long	667253587
+        .long	1010842135
+        .long	3490863953
+        .long	1072763649
+        .long	960797498
+        .long	3163997456
+        .long	2930322912
+        .long	1072775834
+        .long	2599499422
+        .long	3163762623
+        .long	1014845819
+        .long	1072788152
+        .long	3117910646
+        .long	3162607681
+        .long	3949972341
+        .long	1072800603
+        .long	2068408548
+        .long	1015962444
+        .long	828946858
+        .long	1072813191
+        .long	10642492
+        .long	1016988014
+        .long	2288159958
+        .long	1072825915
+        .long	2169144469
+        .long	1015924597
+        .long	1853186616
+        .long	1072838778
+        .long	3066496371
+        .long	1016705150
+        .long	1709341917
+        .long	1072851781
+        .long	2571168217
+        .long	1015201075
+        .long	4112506593
+        .long	1072864925
+        .long	2947355221
+        .long	1015419624
+        .long	2799960843
+        .long	1072878213
+        .long	1423655381
+        .long	1016070727
+        .long	171030293
+        .long	1072891646
+        .long	3526460132
+        .long	1015477354
+        .long	2992903935
+        .long	1072905224
+        .long	2218154406
+        .long	1016276769
+        .long	926591435
+        .long	1072918951
+        .long	3208833762
+        .long	3163962090
+        .long	887463927
+        .long	1072932827
+        .long	3596744163
+        .long	3161842742
+        .long	1276261410
+        .long	1072946854
+        .long	300981948
+        .long	1015732745
+        .long	569847338
+        .long	1072961034
+        .long	472945272
+        .long	3160339305
+        .long	1617004845
+        .long	1072975368
+        .long	82804944
+        .long	1011391354
+        .long	3049340112
+        .long	1072989858
+        .long	3062915824
+        .long	1014219171
+        .long	3577096743
+        .long	1073004506
+        .long	2951496418
+        .long	1014842263
+        .long	1990012071
+        .long	1073019314
+        .long	3529070563
+        .long	3163861769
+        .long	1453150082
+        .long	1073034283
+        .long	498154669
+        .long	3162536638
+        .long	917841882
+        .long	1073049415
+        .long	18715565
+        .long	1016707884
+        .long	3712504873
+        .long	1073064711
+        .long	88491949
+        .long	1016476236
+        .long	363667784
+        .long	1073080175
+        .long	813753950
+        .long	1016833785
+        .long	2956612997
+        .long	1073095806
+        .long	2118169751
+        .long	3163784129
+        .long	2186617381
+        .long	1073111608
+        .long	2270764084
+        .long	3164321289
+        .long	1719614413
+        .long	1073127582
+        .long	330458198
+        .long	3164331316
+        .long	1013258799
+        .long	1073143730
+        .long	1748797611
+        .long	3161177658
+        .long	3907805044
+        .long	1073160053
+        .long	2257091225
+        .long	3162598983
+        .long	1447192521
+        .long	1073176555
+        .long	1462857171
+        .long	3163563097
+        .long	1944781191
+        .long	1073193236
+        .long	3993278767
+        .long	3162772855
+        .long	919555682
+        .long	1073210099
+        .long	3121969534
+        .long	1013996802
+        .long	2571947539
+        .long	1073227145
+        .long	3558159064
+        .long	3164425245
+        .long	2604962541
+        .long	1073244377
+        .long	2614425274
+        .long	3164587768
+        .long	1110089947
+        .long	1073261797
+        .long	1451641639
+        .long	1016523249
+        .long	2568320822
+        .long	1073279406
+        .long	2732824428
+        .long	1015401491
+        .long	2966275557
+        .long	1073297207
+        .long	2176155324
+        .long	3160891335
+        .long	2682146384
+        .long	1073315202
+        .long	2082178513
+        .long	3164411995
+        .long	2191782032
+        .long	1073333393
+        .long	2960257726
+        .long	1014791238
+        .long	2069751141
+        .long	1073351782
+        .long	1562170675
+        .long	3163773257
+        .long	2990417245
+        .long	1073370371
+        .long	3683467745
+        .long	3164417902
+        .long	1434058175
+        .long	1073389163
+        .long	251133233
+        .long	1016134345
+        .long	2572866477
+        .long	1073408159
+        .long	878562433
+        .long	1016570317
+        .long	3092190715
+        .long	1073427362
+        .long	814012168
+        .long	3160571998
+        .long	4076559943
+        .long	1073446774
+        .long	2119478331
+        .long	3161806927
+        .long	2420883922
+        .long	1073466398
+        .long	2049810052
+        .long	1015168464
+        .long	3716502172
+        .long	1073486235
+        .long	2303740125
+        .long	1015091301
+        .long	777507147
+        .long	1073506289
+        .long	4282924205
+        .long	1016236109
+        .long	3706687593
+        .long	1073526560
+        .long	3521726939
+        .long	1014301643
+        .long	1242007932
+        .long	1073547053
+        .long	1132034716
+        .long	3164388407
+        .long	3707479175
+        .long	1073567768
+        .long	3613079303
+        .long	1015213314
+        .long	64696965
+        .long	1073588710
+        .long	1768797490
+        .long	1016865536
+        .long	863738719
+        .long	1073609879
+        .long	1326992220
+        .long	3163661773
+        .long	3884662774
+        .long	1073631278
+        .long	2158611599
+        .long	1015258761
+        .long	2728693978
+        .long	1073652911
+        .long	396109971
+        .long	3164511267
+        .long	3999357479
+        .long	1073674779
+        .long	2258941616
+        .long	1016973300
+        .long	1533953344
+        .long	1073696886
+        .long	769171851
+        .long	1016714209
+        .long	2174652632
+        .long	1073719233
+        .long	4087714590
+        .long	1015498835
+        .long	0
+        .long	1073741824
+        .long	0
+        .long	0
+        .long	0
+        .long	1071644672
+        .long	1431652600
+        .long	1069897045
+        .long	1431670732
+        .long	1067799893
+        .long	984555731
+        .long	1065423122
+        .long	472530941
+        .long	1062650218
+        .long	1431655765
+        .long	1069897045
+        .long	286331153
+        .long	1065423121
+        .long	436314138
+        .long	1059717536
+        .long	2773927732
+        .long	1053236707
+        .long	1697350398
+        .long	1079448903
+        .long	0
+        .long	1127743488
+        .long	33554432
+        .long	1101004800
+        .long	2411329662
+        .long	1082536910
+        .long	4277796864
+        .long	1065758274
+        .long	3164486458
+        .long	1025308570
+        .long	1
+        .long	1048576
+        .long	4294967295
+        .long	2146435071
+        .long	3671843104
+        .long	1067178892
+        .long	3875694624
+        .long	1077247184
+        .type	__dsinh_la_CoutTab,@object
+        .size	__dsinh_la_CoutTab,1192
+        .space 8, 0x00 	
+        .align 16
+
+.FLT_98:
+        .long	0x00000000,0x80000000,0x00000000,0x00000000
+        .type	.FLT_98,@object
+        .size	.FLT_98,16
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core-avx2.S
new file mode 100644
index 0000000000..d767d25080
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core-avx2.S
@@ -0,0 +1,20 @@ 
+/* AVX2 version of vectorized sinh, vector length is 8.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define _ZGVeN8v_sinh _ZGVeN8v_sinh_avx2_wrapper
+#include "../svml_d_sinh8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core.c
new file mode 100644
index 0000000000..427d07bce2
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core.c
@@ -0,0 +1,27 @@ 
+/* Multiple versions of vectorized sinh, vector length is 8.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define SYMBOL_NAME _ZGVeN8v_sinh
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN8v_sinh, __GI__ZGVeN8v_sinh, __redirect__ZGVeN8v_sinh)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core_avx512.S
new file mode 100644
index 0000000000..5010f531e9
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sinh8_core_avx512.S
@@ -0,0 +1,2026 @@ 
+/* Function sinh vectorized with AVX-512.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   https://www.gnu.org/licenses/.  */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ *   Compute sinh(x) as (exp(x)-exp(-x))/2,
+ *   where exp is calculated as
+ *   exp(M*ln2 + ln2*(j/2^k) + r) = 2^M * 2^(j/2^k) * exp(r)
+ *
+ *   Special cases:
+ *
+ *   sinh(NaN) = quiet NaN, and raise invalid exception
+ *   sinh(INF) = that INF
+ *   sinh(x)   = x for subnormals
+ *   sinh(x) overflows for big x and returns MAXLOG+log(2)
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.evex512,"ax",@progbits
+ENTRY(_ZGVeN8v_sinh_skx)
+        pushq     %rbp
+        cfi_def_cfa_offset(16)
+        movq      %rsp, %rbp
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+        andq      $-64, %rsp
+        subq      $192, %rsp
+        lea       1608+__svml_dsinh_data_internal(%rip), %rax
+        vmovaps   %zmm0, %zmm8
+
+/*  Abs argument  */
+        vandpd    1408+__svml_dsinh_data_internal(%rip), %zmm8, %zmm7
+        vmovups   3648+__svml_dsinh_data_internal(%rip), %zmm13
+
+/*
+ *  Load argument
+ * dM = x*2^K/log(2) + RShifter
+ */
+        vmovups   1216+__svml_dsinh_data_internal(%rip), %zmm12
+        vmovups   1280+__svml_dsinh_data_internal(%rip), %zmm14
+        vmovups   4032+__svml_dsinh_data_internal(%rip), %zmm6
+
+/* VLOAD_CONST( D, dPC[0],         TAB._dPC1 ); */
+        vmovups   3968+__svml_dsinh_data_internal(%rip), %zmm4
+        vxorpd    %zmm8, %zmm7, %zmm5
+        kxnorw    %k0, %k0, %k1
+        kxnorw    %k0, %k0, %k2
+        vfmadd213pd {rn-sae}, %zmm13, %zmm5, %zmm12
+
+/*
+ * Check for overflow\underflow
+ *
+ */
+        vpsrlq    $32, %zmm5, %zmm9
+
+/*
+ *  R
+ * dN = dM - RShifter
+ */
+        vsubpd    {rn-sae}, %zmm13, %zmm12, %zmm2
+        vpmovqd   %zmm9, %ymm10
+        vmovups   1344+__svml_dsinh_data_internal(%rip), %zmm9
+
+/* dR = dX - dN*Log2_hi/2^K */
+        vfnmadd231pd {rn-sae}, %zmm14, %zmm2, %zmm5
+
+/*
+ * sinh(r) = r*((a1=1)+r^2*(a3+r^2*a5)) = r + r*(r^2*(a3+r^2*a5)) ....
+ * dSinh_r = (a3+r^2*a5)
+ */
+        vmovups   3904+__svml_dsinh_data_internal(%rip), %zmm14
+
+/* dR = (dX - dN*Log2_hi/2^K) - dN*Log2_lo/2^K */
+        vfnmadd231pd {rn-sae}, %zmm9, %zmm2, %zmm5
+        vpcmpgtd  3712+__svml_dsinh_data_internal(%rip), %ymm10, %ymm11
+        vmovmskps %ymm11, %edx
+
+/* dR2 = dR^2 */
+        vmulpd    {rn-sae}, %zmm5, %zmm5, %zmm2
+        vfmadd231pd {rn-sae}, %zmm2, %zmm6, %zmm14
+
+/*
+ *  Index and lookup
+ * j
+ */
+        vpandq    4224+__svml_dsinh_data_internal(%rip), %zmm12, %zmm15
+        vpsllq    $4, %zmm15, %zmm1
+        vpmovqd   %zmm1, %ymm0
+        vpxord    %zmm11, %zmm11, %zmm11
+        vpxord    %zmm10, %zmm10, %zmm10
+        vgatherdpd (%rax,%ymm0), %zmm11{%k1}
+        vgatherdpd -8(%rax,%ymm0), %zmm10{%k2}
+
+/* split j and N */
+        vpxorq    %zmm15, %zmm12, %zmm3
+
+/*
+ *  G1,G2,G3: dTdif,dTn * 2^N,2^(-N)
+ * lM now is an EXP(2^N)
+ */
+        vpsllq    $45, %zmm3, %zmm3
+        vpaddq    %zmm3, %zmm10, %zmm1
+
+/*  */
+        vpaddq    %zmm3, %zmm11, %zmm12
+
+/*  */
+        vpsubq    %zmm3, %zmm11, %zmm13
+
+/* dSinh_r = r^2*(a3+r^2*a5) */
+        vmulpd    {rn-sae}, %zmm2, %zmm14, %zmm3
+
+/* dG2 = dTn*2^N - dTn*2^-N */
+        vsubpd    {rn-sae}, %zmm13, %zmm12, %zmm15
+
+/* dG3 = dTn*2^N + dTn*2^-N */
+        vaddpd    {rn-sae}, %zmm13, %zmm12, %zmm0
+
+/* dSinh_r = r + r*(r^2*(a3+r^2*a5)) */
+        vfmadd213pd {rn-sae}, %zmm5, %zmm5, %zmm3
+
+/*
+ * poly(r) = (dG2+dG1)+dG3*sinh(dR)+dG1*sinh(dR)+(dG1+dG2)*dR2*(a2 +a4*dR2)
+ * dOut = (a2 +a4*dR2)
+ */
+        vmovups   3840+__svml_dsinh_data_internal(%rip), %zmm5
+
+/* dG1 += dG3 */
+        vaddpd    {rn-sae}, %zmm0, %zmm1, %zmm6
+        vfmadd231pd {rn-sae}, %zmm2, %zmm4, %zmm5
+
+/* dOut = dR2*(a2 +a4*dR2) */
+        vmulpd    {rn-sae}, %zmm2, %zmm5, %zmm4
+
+/* dG2 += dG1 */
+        vaddpd    {rn-sae}, %zmm15, %zmm1, %zmm2
+
+/* dOut = dG2*dR2*(a2 +a4*dR2) */
+        vmulpd    {rn-sae}, %zmm2, %zmm4, %zmm4
+
+/* dOut = dG1*sinh(dR)+dG2*dR2*(a2 +a4*dR2) */
+        vfmadd213pd {rn-sae}, %zmm4, %zmm6, %zmm3
+
+/* dOut = dG2 + dG1*sinh(dR)+dG2*dR2*(a2 +a4*dR2) */
+        vaddpd    {rn-sae}, %zmm2, %zmm3, %zmm0
+
+/*  Ret H  */
+        vorpd     %zmm0, %zmm7, %zmm0
+        testl     %edx, %edx
+        jne       L(2)
+
+L(1):
+        movq      %rbp, %rsp
+        popq      %rbp
+        cfi_def_cfa(7, 8)
+        cfi_restore(6)
+        ret
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+
+L(2):
+        vmovups   %zmm8, 64(%rsp)
+        vmovups   %zmm0, 128(%rsp)
+        je        L(1)
+        xorl      %eax, %eax
+        vzeroupper
+        kmovw     %k4, 24(%rsp)
+        kmovw     %k5, 16(%rsp)
+        kmovw     %k6, 8(%rsp)
+        kmovw     %k7, (%rsp)
+        movq      %rsi, 40(%rsp)
+        movq      %rdi, 32(%rsp)
+        movq      %r12, 56(%rsp)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+        movl      %eax, %r12d
+        movq      %r13, 48(%rsp)
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+        movl      %edx, %r13d
+        .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+L(3):
+        btl       %r12d, %r13d
+        jc        L(5)
+
+L(4):
+        incl      %r12d
+        cmpl      $8, %r12d
+        jl        L(3)
+        kmovw     24(%rsp), %k4
+        cfi_restore(122)
+        kmovw     16(%rsp), %k5
+        cfi_restore(123)
+        kmovw     8(%rsp), %k6
+        cfi_restore(124)
+        kmovw     (%rsp), %k7
+        cfi_restore(125)
+        vmovups   128(%rsp), %zmm0
+        movq      40(%rsp), %rsi
+        cfi_restore(4)
+        movq      32(%rsp), %rdi
+        cfi_restore(5)
+        movq      56(%rsp), %r12
+        cfi_restore(12)
+        movq      48(%rsp), %r13
+        cfi_restore(13)
+        jmp       L(1)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+L(5):
+        lea       64(%rsp,%r12,8), %rdi
+        lea       128(%rsp,%r12,8), %rsi
+        call      __svml_dsinh_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVeN8v_sinh_skx)
+
+        .align    16,0x90
+
+__svml_dsinh_cout_rare_internal:
+
+        cfi_startproc
+
+        movq      %rsi, %r9
+        movzwl    6(%rdi), %ecx
+        xorl      %eax, %eax
+        andl      $32752, %ecx
+        shrl      $4, %ecx
+        movsd     (%rdi), %xmm2
+        movb      7(%rdi), %dl
+        movsd     %xmm2, -8(%rsp)
+        cmpl      $2047, %ecx
+        je        L(13)
+        testl     %ecx, %ecx
+        jle       L(12)
+        andb      $127, %dl
+        movsd     %xmm2, -32(%rsp)
+        movb      %dl, -25(%rsp)
+        cmpl      $969, %ecx
+        jle       L(11)
+        movsd     -32(%rsp), %xmm0
+        movsd     1136+__dsinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(10)
+        movsd     1184+__dsinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(7)
+        comisd    1176+__dsinh_la_CoutTab(%rip), %xmm0
+        jb        L(6)
+        movsd     1112+__dsinh_la_CoutTab(%rip), %xmm1
+        lea       __dsinh_la_CoutTab(%rip), %rcx
+        mulsd     %xmm0, %xmm1
+        movsd     1144+__dsinh_la_CoutTab(%rip), %xmm4
+        movq      8+__dsinh_la_CoutTab(%rip), %r10
+        movq      %r10, %rsi
+        shrq      $48, %rsi
+        addsd     1120+__dsinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -40(%rsp)
+        andl      $-32753, %esi
+        movsd     -40(%rsp), %xmm10
+        movl      -40(%rsp), %r8d
+        movl      %r8d, %r11d
+        shrl      $6, %r11d
+        andl      $63, %r8d
+        movq      %r10, -16(%rsp)
+        subsd     1120+__dsinh_la_CoutTab(%rip), %xmm10
+        mulsd     %xmm10, %xmm4
+        lea       1023(%r11), %edi
+        xorps     .FLT_97(%rip), %xmm10
+        addl      $1022, %r11d
+        mulsd     1152+__dsinh_la_CoutTab(%rip), %xmm10
+        subsd     %xmm4, %xmm0
+        movaps    %xmm10, %xmm2
+        movaps    %xmm0, %xmm8
+        andl      $2047, %r11d
+        lea       (%r8,%r8), %edx
+        negl      %edi
+        lea       1(%r8,%r8), %r8d
+        movsd     (%rcx,%rdx,8), %xmm9
+        negl      %edx
+        shll      $4, %r11d
+        addl      $-4, %edi
+        orl       %r11d, %esi
+        andl      $2047, %edi
+        movw      %si, -10(%rsp)
+        andl      $-32753, %esi
+        shll      $4, %edi
+        addsd     %xmm0, %xmm2
+        movsd     %xmm2, -24(%rsp)
+        orl       %edi, %esi
+        movsd     -24(%rsp), %xmm6
+        movsd     1128+__dsinh_la_CoutTab(%rip), %xmm2
+        subsd     %xmm6, %xmm8
+        movsd     %xmm8, -56(%rsp)
+        movsd     -24(%rsp), %xmm12
+        movsd     -56(%rsp), %xmm11
+        movsd     (%rcx,%r8,8), %xmm7
+        addsd     %xmm11, %xmm12
+        movsd     %xmm12, -48(%rsp)
+        movsd     -56(%rsp), %xmm5
+        addsd     %xmm5, %xmm10
+        movsd     -16(%rsp), %xmm5
+        mulsd     %xmm5, %xmm9
+        mulsd     %xmm5, %xmm7
+        movsd     %xmm10, -56(%rsp)
+        movaps    %xmm9, %xmm10
+        movsd     -48(%rsp), %xmm13
+        movw      %si, -10(%rsp)
+        lea       128(%rdx), %esi
+        movsd     -16(%rsp), %xmm14
+        addl      $129, %edx
+        subsd     %xmm13, %xmm0
+        movsd     %xmm0, -48(%rsp)
+        movsd     -56(%rsp), %xmm1
+        movsd     -48(%rsp), %xmm15
+        addsd     %xmm15, %xmm1
+        movsd     %xmm1, -48(%rsp)
+        movsd     -24(%rsp), %xmm4
+        mulsd     %xmm4, %xmm2
+        movaps    %xmm4, %xmm3
+        mulsd     %xmm4, %xmm3
+        movsd     -48(%rsp), %xmm1
+        movaps    %xmm4, %xmm0
+        movsd     %xmm2, -24(%rsp)
+        movsd     -24(%rsp), %xmm6
+        movsd     1064+__dsinh_la_CoutTab(%rip), %xmm2
+        subsd     %xmm4, %xmm6
+        mulsd     %xmm3, %xmm2
+        movsd     %xmm6, -56(%rsp)
+        movsd     -24(%rsp), %xmm11
+        movsd     -56(%rsp), %xmm8
+        subsd     %xmm8, %xmm11
+        addsd     1048+__dsinh_la_CoutTab(%rip), %xmm2
+        movsd     %xmm11, -24(%rsp)
+        movsd     1072+__dsinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm3, %xmm11
+        mulsd     %xmm3, %xmm2
+        addsd     1056+__dsinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm4, %xmm2
+        mulsd     %xmm3, %xmm11
+        movsd     -24(%rsp), %xmm12
+        addsd     1040+__dsinh_la_CoutTab(%rip), %xmm11
+        subsd     %xmm12, %xmm0
+        mulsd     %xmm3, %xmm11
+        movsd     (%rcx,%rsi,8), %xmm3
+        movaps    %xmm9, %xmm12
+        mulsd     %xmm14, %xmm3
+        movsd     %xmm0, -56(%rsp)
+        subsd     %xmm3, %xmm10
+        movsd     -24(%rsp), %xmm8
+        movsd     -56(%rsp), %xmm6
+        movsd     %xmm10, -24(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     (%rcx,%rdx,8), %xmm0
+        subsd     %xmm13, %xmm12
+        mulsd     %xmm14, %xmm0
+        subsd     %xmm3, %xmm12
+        movsd     %xmm12, -56(%rsp)
+        movsd     -24(%rsp), %xmm14
+        movsd     -56(%rsp), %xmm12
+        movaps    %xmm14, %xmm5
+        movb      -1(%rsp), %cl
+        addsd     %xmm7, %xmm12
+        addsd     %xmm0, %xmm7
+        subsd     %xmm0, %xmm12
+        andb      $-128, %cl
+        addsd     %xmm12, %xmm5
+        movsd     %xmm5, -24(%rsp)
+        movaps    %xmm9, %xmm5
+        movsd     -24(%rsp), %xmm15
+        addsd     %xmm3, %xmm5
+        subsd     %xmm15, %xmm14
+        addsd     %xmm14, %xmm12
+        movsd     %xmm12, -56(%rsp)
+        movsd     -24(%rsp), %xmm10
+        movsd     -56(%rsp), %xmm12
+        movsd     %xmm5, -24(%rsp)
+        movsd     -24(%rsp), %xmm13
+        subsd     %xmm13, %xmm9
+        addsd     %xmm9, %xmm3
+        movsd     %xmm3, -56(%rsp)
+        movsd     -24(%rsp), %xmm3
+        movsd     -56(%rsp), %xmm5
+        addsd     %xmm7, %xmm5
+        movaps    %xmm3, %xmm7
+        addsd     %xmm5, %xmm7
+        movsd     %xmm7, -24(%rsp)
+        movsd     -24(%rsp), %xmm9
+        movsd     1128+__dsinh_la_CoutTab(%rip), %xmm7
+        subsd     %xmm9, %xmm3
+        addsd     %xmm3, %xmm5
+        movsd     %xmm5, -56(%rsp)
+        movsd     -24(%rsp), %xmm0
+        mulsd     %xmm0, %xmm7
+        movsd     -56(%rsp), %xmm3
+        movsd     %xmm7, -24(%rsp)
+        movaps    %xmm0, %xmm7
+        movsd     -24(%rsp), %xmm14
+        mulsd     %xmm3, %xmm4
+        subsd     %xmm0, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm9
+        subsd     %xmm9, %xmm13
+        movsd     %xmm13, -24(%rsp)
+        movaps    %xmm0, %xmm13
+        movsd     -24(%rsp), %xmm15
+        mulsd     %xmm2, %xmm13
+        subsd     %xmm15, %xmm7
+        mulsd     %xmm1, %xmm0
+        mulsd     %xmm3, %xmm1
+        mulsd     %xmm3, %xmm2
+        movaps    %xmm10, %xmm15
+        movaps    %xmm13, %xmm5
+        mulsd     %xmm11, %xmm15
+        mulsd     %xmm12, %xmm11
+        addsd     %xmm15, %xmm5
+        addsd     %xmm12, %xmm11
+        movsd     %xmm7, -56(%rsp)
+        addsd     %xmm0, %xmm11
+        movsd     -24(%rsp), %xmm9
+        addsd     %xmm1, %xmm11
+        movsd     -56(%rsp), %xmm7
+        addsd     %xmm2, %xmm11
+        movsd     %xmm5, -24(%rsp)
+        addsd     %xmm4, %xmm11
+        movsd     -24(%rsp), %xmm14
+        subsd     %xmm14, %xmm13
+        addsd     %xmm13, %xmm15
+        movsd     %xmm15, -56(%rsp)
+        movaps    %xmm8, %xmm15
+        mulsd     %xmm9, %xmm15
+        mulsd     %xmm6, %xmm9
+        mulsd     %xmm7, %xmm6
+        mulsd     %xmm7, %xmm8
+        movsd     -24(%rsp), %xmm14
+        movaps    %xmm15, %xmm13
+        movsd     -56(%rsp), %xmm5
+        addsd     %xmm14, %xmm13
+        addsd     %xmm9, %xmm5
+        movsd     %xmm13, -24(%rsp)
+        addsd     %xmm6, %xmm5
+        movsd     -24(%rsp), %xmm13
+        addsd     %xmm8, %xmm5
+        subsd     %xmm13, %xmm15
+        addsd     %xmm5, %xmm11
+        addsd     %xmm15, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movaps    %xmm10, %xmm15
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm14
+        addsd     %xmm13, %xmm15
+        addsd     %xmm14, %xmm11
+        movsd     %xmm15, -24(%rsp)
+        movsd     -24(%rsp), %xmm15
+        subsd     %xmm15, %xmm10
+        addsd     %xmm10, %xmm13
+        movsd     %xmm13, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm10
+        addsd     %xmm10, %xmm11
+        addsd     %xmm11, %xmm13
+        movsd     %xmm13, -32(%rsp)
+        movb      -25(%rsp), %dil
+        andb      $127, %dil
+        orb       %cl, %dil
+        movb      %dil, -25(%rsp)
+        movq      -32(%rsp), %r10
+        movq      %r10, (%r9)
+        ret
+
+L(6):
+        movaps    %xmm0, %xmm2
+        mulsd     %xmm0, %xmm2
+        movsd     1104+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        movb      -1(%rsp), %dl
+        andb      $-128, %dl
+        addsd     1096+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1088+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1080+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm1, %xmm2
+        mulsd     %xmm0, %xmm2
+        addsd     %xmm2, %xmm0
+        movsd     %xmm0, -32(%rsp)
+        movb      -25(%rsp), %cl
+        andb      $127, %cl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movq      -32(%rsp), %rsi
+        movq      %rsi, (%r9)
+        ret
+
+L(7):
+        movsd     1112+__dsinh_la_CoutTab(%rip), %xmm1
+        lea       __dsinh_la_CoutTab(%rip), %r8
+        mulsd     %xmm0, %xmm1
+        movsd     1144+__dsinh_la_CoutTab(%rip), %xmm2
+        movsd     1152+__dsinh_la_CoutTab(%rip), %xmm3
+        movq      8+__dsinh_la_CoutTab(%rip), %rdx
+        movq      %rdx, -16(%rsp)
+        addsd     1120+__dsinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -40(%rsp)
+        movsd     -40(%rsp), %xmm4
+        movsd     1072+__dsinh_la_CoutTab(%rip), %xmm1
+        movl      -40(%rsp), %edx
+        movl      %edx, %esi
+        andl      $63, %esi
+        subsd     1120+__dsinh_la_CoutTab(%rip), %xmm4
+        mulsd     %xmm4, %xmm2
+        lea       (%rsi,%rsi), %ecx
+        mulsd     %xmm3, %xmm4
+        subsd     %xmm2, %xmm0
+        movsd     (%r8,%rcx,8), %xmm5
+        lea       1(%rsi,%rsi), %edi
+        shrl      $6, %edx
+        subsd     %xmm4, %xmm0
+        mulsd     %xmm0, %xmm1
+        addl      $1022, %edx
+        andl      $2047, %edx
+        addsd     1064+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1056+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1048+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1040+__dsinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     %xmm0, %xmm1
+        mulsd     %xmm5, %xmm1
+        addsd     (%r8,%rdi,8), %xmm1
+        addsd     %xmm5, %xmm1
+        cmpl      $2046, %edx
+        ja        L(8)
+        movq      8+__dsinh_la_CoutTab(%rip), %rcx
+        shrq      $48, %rcx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm0, %xmm1
+        movsd     %xmm1, -32(%rsp)
+        jmp       L(9)
+
+L(8):
+        decl      %edx
+        andl      $2047, %edx
+        movzwl    -10(%rsp), %ecx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm0, %xmm1
+        mulsd     1024+__dsinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -32(%rsp)
+
+L(9):
+        movb      -25(%rsp), %cl
+        movb      -1(%rsp), %dl
+        andb      $127, %cl
+        andb      $-128, %dl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movq      -32(%rsp), %rsi
+        movq      %rsi, (%r9)
+        ret
+
+L(10):
+        movsd     1168+__dsinh_la_CoutTab(%rip), %xmm0
+        movl      $3, %eax
+        mulsd     %xmm2, %xmm0
+        movsd     %xmm0, (%r9)
+        ret
+
+L(11):
+        movsd     __dsinh_la_CoutTab(%rip), %xmm0
+        addsd     1160+__dsinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm2, %xmm0
+        movsd     %xmm0, (%r9)
+        ret
+
+L(12):
+        movsd     1160+__dsinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm2, -24(%rsp)
+        movsd     -24(%rsp), %xmm1
+        movq      8+__dsinh_la_CoutTab(%rip), %rdx
+        movq      %rdx, -16(%rsp)
+        addsd     -8(%rsp), %xmm1
+        movsd     %xmm1, (%r9)
+        ret
+
+L(13):
+        addsd     %xmm2, %xmm2
+        movsd     %xmm2, (%r9)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_dsinh_cout_rare_internal,@function
+        .size	__svml_dsinh_cout_rare_internal,.-__svml_dsinh_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_dsinh_data_internal:
+        .long	0
+        .long	1071644672
+        .long	1828292879
+        .long	1071691096
+        .long	1014845819
+        .long	1071739576
+        .long	1853186616
+        .long	1071790202
+        .long	171030293
+        .long	1071843070
+        .long	1276261410
+        .long	1071898278
+        .long	3577096743
+        .long	1071955930
+        .long	3712504873
+        .long	1072016135
+        .long	1719614413
+        .long	1072079006
+        .long	1944781191
+        .long	1072144660
+        .long	1110089947
+        .long	1072213221
+        .long	2191782032
+        .long	1072284817
+        .long	2572866477
+        .long	1072359583
+        .long	3716502172
+        .long	1072437659
+        .long	3707479175
+        .long	1072519192
+        .long	2728693978
+        .long	1072604335
+        .long	0
+        .long	0
+        .long	1255956747
+        .long	1015588398
+        .long	3117910646
+        .long	3161559105
+        .long	3066496371
+        .long	1015656574
+        .long	3526460132
+        .long	1014428778
+        .long	300981948
+        .long	1014684169
+        .long	2951496418
+        .long	1013793687
+        .long	88491949
+        .long	1015427660
+        .long	330458198
+        .long	3163282740
+        .long	3993278767
+        .long	3161724279
+        .long	1451641639
+        .long	1015474673
+        .long	2960257726
+        .long	1013742662
+        .long	878562433
+        .long	1015521741
+        .long	2303740125
+        .long	1014042725
+        .long	3613079303
+        .long	1014164738
+        .long	396109971
+        .long	3163462691
+        .long	0
+        .long	1071644672
+        .long	2728693978
+        .long	1071555759
+        .long	3707479175
+        .long	1071470616
+        .long	3716502172
+        .long	1071389083
+        .long	2572866477
+        .long	1071311007
+        .long	2191782032
+        .long	1071236241
+        .long	1110089947
+        .long	1071164645
+        .long	1944781191
+        .long	1071096084
+        .long	1719614413
+        .long	1071030430
+        .long	3712504873
+        .long	1070967559
+        .long	3577096743
+        .long	1070907354
+        .long	1276261410
+        .long	1070849702
+        .long	171030293
+        .long	1070794494
+        .long	1853186616
+        .long	1070741626
+        .long	1014845819
+        .long	1070691000
+        .long	1828292879
+        .long	1070642520
+        .long	0
+        .long	0
+        .long	396109971
+        .long	3162414115
+        .long	3613079303
+        .long	1013116162
+        .long	2303740125
+        .long	1012994149
+        .long	878562433
+        .long	1014473165
+        .long	2960257726
+        .long	1012694086
+        .long	1451641639
+        .long	1014426097
+        .long	3993278767
+        .long	3160675703
+        .long	330458198
+        .long	3162234164
+        .long	88491949
+        .long	1014379084
+        .long	2951496418
+        .long	1012745111
+        .long	300981948
+        .long	1013635593
+        .long	3526460132
+        .long	1013380202
+        .long	3066496371
+        .long	1014607998
+        .long	3117910646
+        .long	3160510529
+        .long	1255956747
+        .long	1014539822
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .long	0
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .long	1
+        .long	1123549184
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	1082453555
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .long	15
+        .long	0
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .long	1431657638
+        .long	1069897045
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .long	1431653196
+        .long	1067799893
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .long	249327322
+        .long	1065423121
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .long	419584011
+        .long	1062650220
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .long	100753094
+        .long	1059717741
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .long	461398617
+        .long	1056571820
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .long	4277796864
+        .long	1072049730
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .long	3164486458
+        .long	1031600026
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	2147483648
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	1071644672
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	1071644672
+        .long	431824500
+        .long	1064709706
+        .long	730821105
+        .long	1071633346
+        .long	1779301686
+        .long	1065758303
+        .long	2174652632
+        .long	1071622081
+        .long	872681311
+        .long	1066443490
+        .long	2912730644
+        .long	1071610877
+        .long	2882296449
+        .long	1066806964
+        .long	1533953344
+        .long	1071599734
+        .long	3305321028
+        .long	1067170481
+        .long	929806999
+        .long	1071588651
+        .long	340716357
+        .long	1067492210
+        .long	3999357479
+        .long	1071577627
+        .long	1073477808
+        .long	1067674027
+        .long	764307441
+        .long	1071566664
+        .long	3128166954
+        .long	1067855881
+        .long	2728693978
+        .long	1071555759
+        .long	3639221082
+        .long	1068037778
+        .long	4224142467
+        .long	1071544913
+        .long	4041415279
+        .long	1068219723
+        .long	3884662774
+        .long	1071534126
+        .long	1480599658
+        .long	1068401722
+        .long	351641897
+        .long	1071523398
+        .long	2997120266
+        .long	1068541361
+        .long	863738719
+        .long	1071512727
+        .long	928693471
+        .long	1068632422
+        .long	4076975200
+        .long	1071502113
+        .long	1708958952
+        .long	1068723517
+        .long	64696965
+        .long	1071491558
+        .long	3926287402
+        .long	1068814649
+        .long	382305176
+        .long	1071481059
+        .long	1878784442
+        .long	1068905822
+        .long	3707479175
+        .long	1071470616
+        .long	2754496392
+        .long	1068997037
+        .long	135105010
+        .long	1071460231
+        .long	861943228
+        .long	1069088298
+        .long	1242007932
+        .long	1071449901
+        .long	3400259254
+        .long	1069179606
+        .long	1432208378
+        .long	1071439627
+        .long	394759087
+        .long	1069270966
+        .long	3706687593
+        .long	1071429408
+        .long	3351980561
+        .long	1069362378
+        .long	2483480501
+        .long	1071419245
+        .long	2310349189
+        .long	1069453847
+        .long	777507147
+        .long	1071409137
+        .long	200254151
+        .long	1069545375
+        .long	1610600570
+        .long	1071399083
+        .long	4274709417
+        .long	1069592241
+        .long	3716502172
+        .long	1071389083
+        .long	2266782956
+        .long	1069638068
+        .long	1540824585
+        .long	1071379138
+        .long	1995599824
+        .long	1069683928
+        .long	2420883922
+        .long	1071369246
+        .long	647201135
+        .long	1069729823
+        .long	815859274
+        .long	1071359408
+        .long	4001939191
+        .long	1069775753
+        .long	4076559943
+        .long	1071349622
+        .long	664843213
+        .long	1069821722
+        .long	2380618042
+        .long	1071339890
+        .long	720494647
+        .long	1069867729
+        .long	3092190715
+        .long	1071330210
+        .long	1373458573
+        .long	1069913776
+        .long	697153126
+        .long	1071320583
+        .long	4128322810
+        .long	1069959864
+        .long	2572866477
+        .long	1071311007
+        .long	1904966097
+        .long	1070005996
+        .long	3218338682
+        .long	1071301483
+        .long	513564799
+        .long	1070052172
+        .long	1434058175
+        .long	1071292011
+        .long	1474894098
+        .long	1070098393
+        .long	321958744
+        .long	1071282590
+        .long	2020498546
+        .long	1070144661
+        .long	2990417245
+        .long	1071273219
+        .long	3682797359
+        .long	1070190977
+        .long	3964284211
+        .long	1071263899
+        .long	3705320722
+        .long	1070237343
+        .long	2069751141
+        .long	1071254630
+        .long	3632815436
+        .long	1070283760
+        .long	434316067
+        .long	1071245411
+        .long	721481577
+        .long	1070330230
+        .long	2191782032
+        .long	1071236241
+        .long	824045819
+        .long	1070376753
+        .long	1892288442
+        .long	1071227121
+        .long	1210063881
+        .long	1070423331
+        .long	2682146384
+        .long	1071218050
+        .long	3450994238
+        .long	1070469965
+        .long	3418903055
+        .long	1071209028
+        .long	535468266
+        .long	1070516658
+        .long	2966275557
+        .long	1071200055
+        .long	2639266259
+        .long	1070563409
+        .long	194117574
+        .long	1071191131
+        .long	3530359402
+        .long	1070603158
+        .long	2568320822
+        .long	1071182254
+        .long	3405407025
+        .long	1070626595
+        .long	380978316
+        .long	1071173426
+        .long	1749136243
+        .long	1070650064
+        .long	1110089947
+        .long	1071164645
+        .long	1517376385
+        .long	1070673565
+        .long	3649726105
+        .long	1071155911
+        .long	1375061601
+        .long	1070697099
+        .long	2604962541
+        .long	1071147225
+        .long	4286252247
+        .long	1070720666
+        .long	1176749997
+        .long	1071138586
+        .long	334352625
+        .long	1070744269
+        .long	2571947539
+        .long	1071129993
+        .long	1081936396
+        .long	1070767906
+        .long	1413356050
+        .long	1071121447
+        .long	916128083
+        .long	1070791579
+        .long	919555682
+        .long	1071112947
+        .long	2818494152
+        .long	1070815288
+        .long	19972402
+        .long	1071104493
+        .long	1185261260
+        .long	1070839035
+        .long	1944781191
+        .long	1071096084
+        .long	3302240303
+        .long	1070862819
+        .long	1339972927
+        .long	1071087721
+        .long	3575110344
+        .long	1070886642
+        .long	1447192521
+        .long	1071079403
+        .long	709375646
+        .long	1070910505
+        .long	1218806132
+        .long	1071071130
+        .long	2005420950
+        .long	1070934407
+        .long	3907805044
+        .long	1071062901
+        .long	1883763132
+        .long	1070958350
+        .long	4182873220
+        .long	1071054717
+        .long	3359975962
+        .long	1070982334
+        .long	1013258799
+        .long	1071046578
+        .long	864909351
+        .long	1071006361
+        .long	1963711167
+        .long	1071038482
+        .long	1719614413
+        .long	1071030430
+        .long	1719614413
+        .long	1071030430
+        .long	365628427
+        .long	1071054543
+        .long	3561793907
+        .long	1071022421
+        .long	4134867513
+        .long	1071078699
+        .long	2186617381
+        .long	1071014456
+        .long	3184944616
+        .long	1071102901
+        .long	885834528
+        .long	1071006534
+        .long	564029795
+        .long	1071127149
+        .long	2956612997
+        .long	1070998654
+        .long	3621005023
+        .long	1071151442
+        .long	3111574537
+        .long	1070990817
+        .long	2530717257
+        .long	1071175783
+        .long	363667784
+        .long	1070983023
+        .long	358839240
+        .long	1071200172
+        .long	2321106615
+        .long	1070975270
+        .long	177057508
+        .long	1071224609
+        .long	3712504873
+        .long	1070967559
+        .long	768195176
+        .long	1071249095
+        .long	3566716925
+        .long	1070959890
+        .long	921269482
+        .long	1071273631
+        .long	917841882
+        .long	1070952263
+        .long	3726549525
+        .long	1071298217
+        .long	3395129871
+        .long	1070944676
+        .long	3690744995
+        .long	1071322855
+        .long	1453150082
+        .long	1070937131
+        .long	3916966168
+        .long	1071347545
+        .long	2731501122
+        .long	1070929626
+        .long	3219913010
+        .long	1071372288
+        .long	1990012071
+        .long	1070922162
+        .long	420933669
+        .long	1071397085
+        .long	2583551245
+        .long	1070914738
+        .long	2938050448
+        .long	1071421935
+        .long	3577096743
+        .long	1070907354
+        .long	1016247609
+        .long	1071446841
+        .long	4040676318
+        .long	1070900010
+        .long	2087301532
+        .long	1071471802
+        .long	3049340112
+        .long	1070892706
+        .long	705101620
+        .long	1071496820
+        .long	3978100823
+        .long	1070885441
+        .long	20578973
+        .long	1071521895
+        .long	1617004845
+        .long	1070878216
+        .long	3191864199
+        .long	1071547027
+        .long	3645941911
+        .long	1070871029
+        .long	499478133
+        .long	1071572219
+        .long	569847338
+        .long	1070863882
+        .long	3706163032
+        .long	1071597469
+        .long	78413852
+        .long	1070856773
+        .long	3107302654
+        .long	1071622780
+        .long	1276261410
+        .long	1070849702
+        .long	945376945
+        .long	1071646412
+        .long	3272845541
+        .long	1070842669
+        .long	3773502825
+        .long	1071659128
+        .long	887463927
+        .long	1070835675
+        .long	3049734401
+        .long	1071671876
+        .long	1829099622
+        .long	1070828718
+        .long	379637879
+        .long	1071684656
+        .long	926591435
+        .long	1070821799
+        .long	1667720032
+        .long	1071697467
+        .long	1603444721
+        .long	1070814917
+        .long	4232573504
+        .long	1071710310
+        .long	2992903935
+        .long	1070808072
+        .long	1101891425
+        .long	1071723187
+        .long	4232894513
+        .long	1070801264
+        .long	2487351331
+        .long	1071736096
+        .long	171030293
+        .long	1070794494
+        .long	1424924347
+        .long	1071749039
+        .long	2839424854
+        .long	1070787759
+        .long	3839693941
+        .long	1071762015
+        .long	2799960843
+        .long	1070781061
+        .long	2776099954
+        .long	1071775026
+        .long	3504003472
+        .long	1070774399
+        .long	4167790294
+        .long	1071788071
+        .long	4112506593
+        .long	1070767773
+        .long	1067865225
+        .long	1071801152
+        .long	3790955393
+        .long	1070761183
+        .long	3713696612
+        .long	1071814267
+        .long	1709341917
+        .long	1070754629
+        .long	872270569
+        .long	1071827419
+        .long	1337108031
+        .long	1070748110
+        .long	2789908864
+        .long	1071840606
+        .long	1853186616
+        .long	1070741626
+        .long	2537611823
+        .long	1071853830
+        .long	2440944790
+        .long	1070735177
+        .long	1780910816
+        .long	1071867091
+        .long	2288159958
+        .long	1070728763
+        .long	2189982503
+        .long	1071880389
+        .long	586995997
+        .long	1070722384
+        .long	1144730516
+        .long	1071893725
+        .long	828946858
+        .long	1070716039
+        .long	324769168
+        .long	1071907099
+        .long	2214878420
+        .long	1070709728
+        .long	1414505409
+        .long	1071920511
+        .long	3949972341
+        .long	1070703451
+        .long	1808220925
+        .long	1071933962
+        .long	948735466
+        .long	1070697209
+        .long	3200056266
+        .long	1071947452
+        .long	1014845819
+        .long	1070691000
+        .long	2994125935
+        .long	1071960982
+        .long	3366293073
+        .long	1070684824
+        .long	2894502806
+        .long	1071974552
+        .long	2930322912
+        .long	1070678682
+        .long	315333498
+        .long	1071988163
+        .long	3228316108
+        .long	1070672573
+        .long	1265790390
+        .long	1072001814
+        .long	3490863953
+        .long	1070666497
+        .long	3170252699
+        .long	1072015506
+        .long	2952712987
+        .long	1070660454
+        .long	3458291493
+        .long	1072029240
+        .long	852742562
+        .long	1070654444
+        .long	3859687560
+        .long	1072043016
+        .long	728909815
+        .long	1070648466
+        .long	1814547538
+        .long	1072056835
+        .long	1828292879
+        .long	1070642520
+        .long	3358256687
+        .long	1072070696
+        .long	3402036099
+        .long	1070636606
+        .long	1646693443
+        .long	1072084601
+        .long	410360776
+        .long	1070630725
+        .long	2726084392
+        .long	1072098549
+        .long	702412510
+        .long	1070624875
+        .long	4058219142
+        .long	1072112541
+        .long	3541402996
+        .long	1070619056
+        .long	3110436433
+        .long	1072126578
+        .long	3899555717
+        .long	1070613269
+        .long	1650643112
+        .long	1072140660
+        .long	1048019041
+        .long	1070607514
+        .long	1452398678
+        .long	1072154787
+        .long	2851812149
+        .long	1070601789
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .long	0
+        .long	1120403456
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	1082531225
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1072693248
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .long	4294966717
+        .long	1071644671
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .long	1431655597
+        .long	1069897045
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .long	3474379417
+        .long	1067799893
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .long	1460859941
+        .long	1065423121
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	2146435072
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .long	65472
+        .long	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .long	127
+        .long	0
+        .type	__svml_dsinh_data_internal,@object
+        .size	__svml_dsinh_data_internal,4288
+        .space 320, 0x00 	
+        .align 32
+
+__dsinh_la_CoutTab:
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	0
+        .long	1048019041
+        .long	1072704666
+        .long	1398474845
+        .long	3161559171
+        .long	3541402996
+        .long	1072716208
+        .long	2759177317
+        .long	1015903202
+        .long	410360776
+        .long	1072727877
+        .long	1269990655
+        .long	1013024446
+        .long	1828292879
+        .long	1072739672
+        .long	1255956747
+        .long	1016636974
+        .long	852742562
+        .long	1072751596
+        .long	667253587
+        .long	1010842135
+        .long	3490863953
+        .long	1072763649
+        .long	960797498
+        .long	3163997456
+        .long	2930322912
+        .long	1072775834
+        .long	2599499422
+        .long	3163762623
+        .long	1014845819
+        .long	1072788152
+        .long	3117910646
+        .long	3162607681
+        .long	3949972341
+        .long	1072800603
+        .long	2068408548
+        .long	1015962444
+        .long	828946858
+        .long	1072813191
+        .long	10642492
+        .long	1016988014
+        .long	2288159958
+        .long	1072825915
+        .long	2169144469
+        .long	1015924597
+        .long	1853186616
+        .long	1072838778
+        .long	3066496371
+        .long	1016705150
+        .long	1709341917
+        .long	1072851781
+        .long	2571168217
+        .long	1015201075
+        .long	4112506593
+        .long	1072864925
+        .long	2947355221
+        .long	1015419624
+        .long	2799960843
+        .long	1072878213
+        .long	1423655381
+        .long	1016070727
+        .long	171030293
+        .long	1072891646
+        .long	3526460132
+        .long	1015477354
+        .long	2992903935
+        .long	1072905224
+        .long	2218154406
+        .long	1016276769
+        .long	926591435
+        .long	1072918951
+        .long	3208833762
+        .long	3163962090
+        .long	887463927
+        .long	1072932827
+        .long	3596744163
+        .long	3161842742
+        .long	1276261410
+        .long	1072946854
+        .long	300981948
+        .long	1015732745
+        .long	569847338
+        .long	1072961034
+        .long	472945272
+        .long	3160339305
+        .long	1617004845
+        .long	1072975368
+        .long	82804944
+        .long	1011391354
+        .long	3049340112
+        .long	1072989858
+        .long	3062915824
+        .long	1014219171
+        .long	3577096743
+        .long	1073004506
+        .long	2951496418
+        .long	1014842263
+        .long	1990012071
+        .long	1073019314
+        .long	3529070563
+        .long	3163861769
+        .long	1453150082
+        .long	1073034283
+        .long	498154669
+        .long	3162536638
+        .long	917841882
+        .long	1073049415
+        .long	18715565
+        .long	1016707884
+        .long	3712504873
+        .long	1073064711
+        .long	88491949
+        .long	1016476236
+        .long	363667784
+        .long	1073080175
+        .long	813753950
+        .long	1016833785
+        .long	2956612997
+        .long	1073095806
+        .long	2118169751
+        .long	3163784129
+        .long	2186617381
+        .long	1073111608
+        .long	2270764084
+        .long	3164321289
+        .long	1719614413
+        .long	1073127582
+        .long	330458198
+        .long	3164331316
+        .long	1013258799
+        .long	1073143730
+        .long	1748797611
+        .long	3161177658
+        .long	3907805044
+        .long	1073160053
+        .long	2257091225
+        .long	3162598983
+        .long	1447192521
+        .long	1073176555
+        .long	1462857171
+        .long	3163563097
+        .long	1944781191
+        .long	1073193236
+        .long	3993278767
+        .long	3162772855
+        .long	919555682
+        .long	1073210099
+        .long	3121969534
+        .long	1013996802
+        .long	2571947539
+        .long	1073227145
+        .long	3558159064
+        .long	3164425245
+        .long	2604962541
+        .long	1073244377
+        .long	2614425274
+        .long	3164587768
+        .long	1110089947
+        .long	1073261797
+        .long	1451641639
+        .long	1016523249
+        .long	2568320822
+        .long	1073279406
+        .long	2732824428
+        .long	1015401491
+        .long	2966275557
+        .long	1073297207
+        .long	2176155324
+        .long	3160891335
+        .long	2682146384
+        .long	1073315202
+        .long	2082178513
+        .long	3164411995
+        .long	2191782032
+        .long	1073333393
+        .long	2960257726
+        .long	1014791238
+        .long	2069751141
+        .long	1073351782
+        .long	1562170675
+        .long	3163773257
+        .long	2990417245
+        .long	1073370371
+        .long	3683467745
+        .long	3164417902
+        .long	1434058175
+        .long	1073389163
+        .long	251133233
+        .long	1016134345
+        .long	2572866477
+        .long	1073408159
+        .long	878562433
+        .long	1016570317
+        .long	3092190715
+        .long	1073427362
+        .long	814012168
+        .long	3160571998
+        .long	4076559943
+        .long	1073446774
+        .long	2119478331
+        .long	3161806927
+        .long	2420883922
+        .long	1073466398
+        .long	2049810052
+        .long	1015168464
+        .long	3716502172
+        .long	1073486235
+        .long	2303740125
+        .long	1015091301
+        .long	777507147
+        .long	1073506289
+        .long	4282924205
+        .long	1016236109
+        .long	3706687593
+        .long	1073526560
+        .long	3521726939
+        .long	1014301643
+        .long	1242007932
+        .long	1073547053
+        .long	1132034716
+        .long	3164388407
+        .long	3707479175
+        .long	1073567768
+        .long	3613079303
+        .long	1015213314
+        .long	64696965
+        .long	1073588710
+        .long	1768797490
+        .long	1016865536
+        .long	863738719
+        .long	1073609879
+        .long	1326992220
+        .long	3163661773
+        .long	3884662774
+        .long	1073631278
+        .long	2158611599
+        .long	1015258761
+        .long	2728693978
+        .long	1073652911
+        .long	396109971
+        .long	3164511267
+        .long	3999357479
+        .long	1073674779
+        .long	2258941616
+        .long	1016973300
+        .long	1533953344
+        .long	1073696886
+        .long	769171851
+        .long	1016714209
+        .long	2174652632
+        .long	1073719233
+        .long	4087714590
+        .long	1015498835
+        .long	0
+        .long	1073741824
+        .long	0
+        .long	0
+        .long	0
+        .long	1071644672
+        .long	1431652600
+        .long	1069897045
+        .long	1431670732
+        .long	1067799893
+        .long	984555731
+        .long	1065423122
+        .long	472530941
+        .long	1062650218
+        .long	1431655765
+        .long	1069897045
+        .long	286331153
+        .long	1065423121
+        .long	436314138
+        .long	1059717536
+        .long	2773927732
+        .long	1053236707
+        .long	1697350398
+        .long	1079448903
+        .long	0
+        .long	1127743488
+        .long	33554432
+        .long	1101004800
+        .long	2411329662
+        .long	1082536910
+        .long	4277796864
+        .long	1065758274
+        .long	3164486458
+        .long	1025308570
+        .long	1
+        .long	1048576
+        .long	4294967295
+        .long	2146435071
+        .long	3671843104
+        .long	1067178892
+        .long	3875694624
+        .long	1077247184
+        .type	__dsinh_la_CoutTab,@object
+        .size	__dsinh_la_CoutTab,1192
+        .space 8, 0x00 	
+        .align 16
+
+.FLT_97:
+        .long	0x00000000,0x80000000,0x00000000,0x00000000
+        .type	.FLT_97,@object
+        .size	.FLT_97,16
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core-avx2.S
new file mode 100644
index 0000000000..06525b7b37
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core-avx2.S
@@ -0,0 +1,20 @@ 
+/* AVX2 version of vectorized sinhf.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define _ZGVeN16v_sinhf _ZGVeN16v_sinhf_avx2_wrapper
+#include "../svml_s_sinhf16_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core.c
new file mode 100644
index 0000000000..6a954caa37
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core.c
@@ -0,0 +1,28 @@ 
+/* Multiple versions of vectorized sinhf, vector length is 16.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define SYMBOL_NAME _ZGVeN16v_sinhf
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN16v_sinhf, __GI__ZGVeN16v_sinhf,
+	       __redirect__ZGVeN16v_sinhf)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core_avx512.S
new file mode 100644
index 0000000000..0104d56bc1
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf16_core_avx512.S
@@ -0,0 +1,1421 @@ 
+/* Function sinhf vectorized with AVX-512.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   https://www.gnu.org/licenses/.  */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ *   Compute sinh(x) as (exp(x)-exp(-x))/2,
+ *   where exp is calculated as
+ *   exp(M*ln2 + ln2*(j/2^k) + r) = 2^M * 2^(j/2^k) * exp(r)
+ *
+ *   Special cases:
+ *
+ *   sinh(NaN) = quiet NaN, and raise invalid exception
+ *   sinh(INF) = that INF
+ *   sinh(x)   = x for subnormals
+ *   sinh(x) overflows for big x and returns MAXLOG+log(2)
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.exex512,"ax",@progbits
+ENTRY(_ZGVeN16v_sinhf_skx)
+        pushq     %rbp
+        cfi_def_cfa_offset(16)
+        movq      %rsp, %rbp
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+        andq      $-64, %rsp
+        subq      $192, %rsp
+        vmovaps   %zmm0, %zmm5
+
+/*
+ *  Implementation
+ *  Abs argument
+ */
+        vandps    1152+__svml_ssinh_data_internal(%rip), %zmm5, %zmm4
+
+/*
+ * Check for overflow\underflow
+ * MORE faster than GE?
+ */
+        vpternlogd $255, %zmm6, %zmm6, %zmm6
+        vmovups   1280+__svml_ssinh_data_internal(%rip), %zmm7
+
+/*
+ *  Load argument
+ * dM = x/log(2) + RShifter
+ */
+        vmovups   960+__svml_ssinh_data_internal(%rip), %zmm11
+        vmovups   1024+__svml_ssinh_data_internal(%rip), %zmm8
+        vmovups   1088+__svml_ssinh_data_internal(%rip), %zmm10
+        vmovups   1856+__svml_ssinh_data_internal(%rip), %zmm12
+        vmovups   1728+__svml_ssinh_data_internal(%rip), %zmm0
+        vmovups   1792+__svml_ssinh_data_internal(%rip), %zmm3
+
+/* x^2 */
+        vmovups   1536+__svml_ssinh_data_internal(%rip), %zmm2
+        vxorps    %zmm5, %zmm4, %zmm1
+        vfmadd213ps {rn-sae}, %zmm7, %zmm1, %zmm11
+        vpcmpd    $2, 1408+__svml_ssinh_data_internal(%rip), %zmm1, %k1
+
+/*
+ *  G1,G2 2^N,2^(-N)
+ * iM now is an EXP(2^N)
+ */
+        vpslld    $23, %zmm11, %zmm13
+
+/*
+ *  R
+ * sN = sM - RShifter
+ */
+        vsubps    {rn-sae}, %zmm7, %zmm11, %zmm9
+        vpaddd    %zmm13, %zmm12, %zmm14
+        vpsubd    %zmm13, %zmm12, %zmm15
+
+/* sG1 = 2^(N-1)+2^(-N-1) */
+        vaddps    {rn-sae}, %zmm15, %zmm14, %zmm7
+        vpandnd   %zmm1, %zmm1, %zmm6{%k1}
+
+/* sR = sX - sN*Log2_hi */
+        vfnmadd231ps {rn-sae}, %zmm8, %zmm9, %zmm1
+        vptestmd  %zmm6, %zmm6, %k0
+
+/* sG2 = 2^(N-1)-2^(-N-1) */
+        vsubps    {rn-sae}, %zmm15, %zmm14, %zmm8
+
+/* sR = (sX - sN*Log2_hi) - sN*Log2_lo */
+        vfnmadd231ps {rn-sae}, %zmm10, %zmm9, %zmm1
+
+/*
+ * sinh(r) = r*((a1=1)+r^2*(a3+r^2*(a5+{v1 r^2*a7})))) = r + r*(r^2*(a3+r^2*(a5+r^2*a7))) ....
+ * sSinh_r = (a3+r^2*a5)
+ */
+        vmovups   1600+__svml_ssinh_data_internal(%rip), %zmm14
+        kmovw     %k0, %edx
+
+/* sR2 = sR^2 */
+        vmulps    {rn-sae}, %zmm1, %zmm1, %zmm6
+        vfmadd231ps {rn-sae}, %zmm6, %zmm0, %zmm14
+
+/* sSinh_r = r^2*(a3+r^2*a5) */
+        vmulps    {rn-sae}, %zmm6, %zmm14, %zmm0
+
+/* sSinh_r = r + r*(r^2*(a3+r^2*a5)) */
+        vfmadd213ps {rn-sae}, %zmm1, %zmm1, %zmm0
+
+/*
+ * sinh(X) = sG2 + sG1*sinh(dR) + sG2*sR2*(a2+sR2*(a4+a6*sR2)
+ * sOut = (a4 +a6*sR2)
+ */
+        vmovups   1664+__svml_ssinh_data_internal(%rip), %zmm1
+        vfmadd231ps {rn-sae}, %zmm6, %zmm3, %zmm1
+
+/* sOut = a2+sR2*(a4+a6*sR2) */
+        vfmadd213ps {rn-sae}, %zmm2, %zmm6, %zmm1
+
+/* sOut = sR2*(a2+sR2*(a4+a6*sR2) */
+        vmulps    {rn-sae}, %zmm6, %zmm1, %zmm2
+
+/* sOut = sG2*sR2*(a2+sR2*(a4+a6*sR2) */
+        vmulps    {rn-sae}, %zmm8, %zmm2, %zmm3
+
+/* sOut = sG1*sinh(dR)+sG2*sR2*(a2+sR2*(a4+a6*sR2) */
+        vfmadd213ps {rn-sae}, %zmm3, %zmm0, %zmm7
+
+/* sOut = sG2 + sG1*sinh(dR) + sG2*sR2*(a2+sR2*(a4+a6*sR2) */
+        vaddps    {rn-sae}, %zmm8, %zmm7, %zmm9
+
+/*  Ret H  */
+        vorps     %zmm9, %zmm4, %zmm0
+        testl     %edx, %edx
+        jne       L(2)
+
+L(1):
+        movq      %rbp, %rsp
+        popq      %rbp
+        cfi_def_cfa(7, 8)
+        cfi_restore(6)
+        ret
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+
+L(2):
+        vmovups   %zmm5, 64(%rsp)
+        vmovups   %zmm0, 128(%rsp)
+        je        L(1)
+        xorl      %eax, %eax
+        vzeroupper
+        kmovw     %k4, 24(%rsp)
+        kmovw     %k5, 16(%rsp)
+        kmovw     %k6, 8(%rsp)
+        kmovw     %k7, (%rsp)
+        movq      %rsi, 40(%rsp)
+        movq      %rdi, 32(%rsp)
+        movq      %r12, 56(%rsp)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+        movl      %eax, %r12d
+        movq      %r13, 48(%rsp)
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+        movl      %edx, %r13d
+        .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+L(3):
+        btl       %r12d, %r13d
+        jc        L(5)
+
+L(4):
+        incl      %r12d
+        cmpl      $16, %r12d
+        jl        L(3)
+        kmovw     24(%rsp), %k4
+        cfi_restore(122)
+        kmovw     16(%rsp), %k5
+        cfi_restore(123)
+        kmovw     8(%rsp), %k6
+        cfi_restore(124)
+        kmovw     (%rsp), %k7
+        cfi_restore(125)
+        vmovups   128(%rsp), %zmm0
+        movq      40(%rsp), %rsi
+        cfi_restore(4)
+        movq      32(%rsp), %rdi
+        cfi_restore(5)
+        movq      56(%rsp), %r12
+        cfi_restore(12)
+        movq      48(%rsp), %r13
+        cfi_restore(13)
+        jmp       L(1)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+L(5):
+        lea       64(%rsp,%r12,4), %rdi
+        lea       128(%rsp,%r12,4), %rsi
+        call      __svml_ssinh_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVeN16v_sinhf_skx)
+
+        .align    16,0x90
+
+__svml_ssinh_cout_rare_internal:
+
+        cfi_startproc
+
+        movq      %rsi, %r9
+        movzwl    2(%rdi), %edx
+        xorl      %eax, %eax
+        andl      $32640, %edx
+        movss     (%rdi), %xmm2
+        cmpl      $32640, %edx
+        je        L(13)
+        cvtss2sd  %xmm2, %xmm2
+        movsd     %xmm2, -8(%rsp)
+        movzwl    -2(%rsp), %edx
+        andl      $32752, %edx
+        movsd     %xmm2, -32(%rsp)
+        shrl      $4, %edx
+        andb      $127, -25(%rsp)
+        testl     %edx, %edx
+        jle       L(12)
+        cmpl      $969, %edx
+        jle       L(11)
+        movsd     -32(%rsp), %xmm0
+        movsd     1136+__ssinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(10)
+        movsd     1184+__ssinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(7)
+        comisd    1176+__ssinh_la_CoutTab(%rip), %xmm0
+        jb        L(6)
+        movsd     1112+__ssinh_la_CoutTab(%rip), %xmm3
+        lea       __ssinh_la_CoutTab(%rip), %rcx
+        mulsd     %xmm0, %xmm3
+        movsd     1144+__ssinh_la_CoutTab(%rip), %xmm10
+        movq      8+__ssinh_la_CoutTab(%rip), %r10
+        movq      %r10, %rsi
+        shrq      $48, %rsi
+        addsd     1120+__ssinh_la_CoutTab(%rip), %xmm3
+        movsd     %xmm3, -40(%rsp)
+        andl      $-32753, %esi
+        movsd     -40(%rsp), %xmm13
+        movl      -40(%rsp), %r8d
+        movl      %r8d, %r11d
+        shrl      $6, %r11d
+        andl      $63, %r8d
+        movq      %r10, -16(%rsp)
+        subsd     1120+__ssinh_la_CoutTab(%rip), %xmm13
+        mulsd     %xmm13, %xmm10
+        lea       1023(%r11), %edi
+        xorps     .FLT_98(%rip), %xmm13
+        addl      $1022, %r11d
+        mulsd     1152+__ssinh_la_CoutTab(%rip), %xmm13
+        subsd     %xmm10, %xmm0
+        movaps    %xmm0, %xmm5
+        movaps    %xmm0, %xmm11
+        andl      $2047, %r11d
+        lea       (%r8,%r8), %edx
+        negl      %edi
+        lea       1(%r8,%r8), %r8d
+        movsd     (%rcx,%rdx,8), %xmm8
+        negl      %edx
+        shll      $4, %r11d
+        addl      $-4, %edi
+        orl       %r11d, %esi
+        andl      $2047, %edi
+        movw      %si, -10(%rsp)
+        andl      $-32753, %esi
+        shll      $4, %edi
+        addsd     %xmm13, %xmm5
+        movsd     %xmm5, -24(%rsp)
+        orl       %edi, %esi
+        movsd     -24(%rsp), %xmm7
+        movsd     1128+__ssinh_la_CoutTab(%rip), %xmm5
+        subsd     %xmm7, %xmm11
+        movsd     %xmm11, -56(%rsp)
+        movsd     -24(%rsp), %xmm4
+        movsd     -56(%rsp), %xmm12
+        movsd     (%rcx,%r8,8), %xmm6
+        addsd     %xmm12, %xmm4
+        movsd     %xmm4, -48(%rsp)
+        movsd     -56(%rsp), %xmm9
+        movsd     -16(%rsp), %xmm4
+        addsd     %xmm9, %xmm13
+        mulsd     %xmm4, %xmm8
+        mulsd     %xmm4, %xmm6
+        movsd     %xmm13, -56(%rsp)
+        movaps    %xmm8, %xmm9
+        movsd     -48(%rsp), %xmm15
+        movw      %si, -10(%rsp)
+        lea       128(%rdx), %esi
+        movsd     -16(%rsp), %xmm14
+        addl      $129, %edx
+        subsd     %xmm15, %xmm0
+        movaps    %xmm8, %xmm15
+        movsd     %xmm0, -48(%rsp)
+        movsd     -56(%rsp), %xmm3
+        movsd     -48(%rsp), %xmm0
+        addsd     %xmm0, %xmm3
+        movsd     %xmm3, -48(%rsp)
+        movsd     -24(%rsp), %xmm10
+        mulsd     %xmm10, %xmm5
+        movaps    %xmm10, %xmm2
+        mulsd     %xmm10, %xmm2
+        movsd     -48(%rsp), %xmm3
+        movaps    %xmm10, %xmm1
+        movsd     %xmm5, -24(%rsp)
+        movsd     -24(%rsp), %xmm7
+        subsd     %xmm10, %xmm7
+        movsd     %xmm7, -56(%rsp)
+        movsd     -24(%rsp), %xmm12
+        movsd     -56(%rsp), %xmm11
+        subsd     %xmm11, %xmm12
+        movsd     1064+__ssinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm2, %xmm11
+        movsd     %xmm12, -24(%rsp)
+        movsd     1072+__ssinh_la_CoutTab(%rip), %xmm12
+        mulsd     %xmm2, %xmm12
+        addsd     1048+__ssinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm2, %xmm11
+        addsd     1056+__ssinh_la_CoutTab(%rip), %xmm12
+        mulsd     %xmm2, %xmm12
+        mulsd     %xmm10, %xmm11
+        addsd     1040+__ssinh_la_CoutTab(%rip), %xmm12
+        addsd     %xmm11, %xmm10
+        mulsd     %xmm2, %xmm12
+        movsd     (%rcx,%rsi,8), %xmm2
+        mulsd     %xmm14, %xmm2
+        movsd     -24(%rsp), %xmm0
+        subsd     %xmm2, %xmm9
+        subsd     %xmm0, %xmm1
+        movsd     %xmm1, -56(%rsp)
+        movsd     -24(%rsp), %xmm7
+        movsd     -56(%rsp), %xmm5
+        movsd     %xmm9, -24(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     (%rcx,%rdx,8), %xmm1
+        subsd     %xmm13, %xmm15
+        mulsd     %xmm14, %xmm1
+        subsd     %xmm2, %xmm15
+        movsd     %xmm15, -56(%rsp)
+        movaps    %xmm8, %xmm13
+        movsd     -24(%rsp), %xmm14
+        addsd     %xmm2, %xmm13
+        movsd     -56(%rsp), %xmm9
+        movaps    %xmm14, %xmm0
+        movb      -1(%rsp), %cl
+        addsd     %xmm6, %xmm9
+        addsd     %xmm1, %xmm6
+        subsd     %xmm1, %xmm9
+        andb      $-128, %cl
+        addsd     %xmm9, %xmm0
+        movsd     %xmm0, -24(%rsp)
+        movsd     -24(%rsp), %xmm4
+        subsd     %xmm4, %xmm14
+        addsd     %xmm14, %xmm9
+        movsd     %xmm9, -56(%rsp)
+        movsd     -24(%rsp), %xmm9
+        movsd     -56(%rsp), %xmm0
+        movsd     %xmm13, -24(%rsp)
+        movsd     -24(%rsp), %xmm15
+        subsd     %xmm15, %xmm8
+        addsd     %xmm8, %xmm2
+        movsd     %xmm2, -56(%rsp)
+        movsd     -24(%rsp), %xmm2
+        movsd     -56(%rsp), %xmm4
+        addsd     %xmm6, %xmm4
+        movaps    %xmm2, %xmm6
+        addsd     %xmm4, %xmm6
+        movsd     %xmm6, -24(%rsp)
+        movsd     -24(%rsp), %xmm8
+        movsd     1128+__ssinh_la_CoutTab(%rip), %xmm6
+        subsd     %xmm8, %xmm2
+        addsd     %xmm2, %xmm4
+        movsd     %xmm4, -56(%rsp)
+        movsd     -24(%rsp), %xmm1
+        mulsd     %xmm1, %xmm6
+        movsd     -56(%rsp), %xmm2
+        movsd     %xmm6, -24(%rsp)
+        movaps    %xmm1, %xmm6
+        movsd     -24(%rsp), %xmm14
+        mulsd     %xmm2, %xmm10
+        subsd     %xmm1, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm8
+        subsd     %xmm8, %xmm13
+        movsd     %xmm13, -24(%rsp)
+        movaps    %xmm11, %xmm13
+        movsd     -24(%rsp), %xmm15
+        mulsd     %xmm1, %xmm13
+        subsd     %xmm15, %xmm6
+        mulsd     %xmm3, %xmm1
+        mulsd     %xmm2, %xmm3
+        movaps    %xmm12, %xmm15
+        movaps    %xmm13, %xmm4
+        mulsd     %xmm9, %xmm15
+        mulsd     %xmm0, %xmm12
+        addsd     %xmm15, %xmm4
+        addsd     %xmm0, %xmm12
+        movsd     %xmm6, -56(%rsp)
+        addsd     %xmm1, %xmm12
+        movsd     -24(%rsp), %xmm8
+        addsd     %xmm3, %xmm12
+        movsd     -56(%rsp), %xmm6
+        movsd     %xmm4, -24(%rsp)
+        movsd     -24(%rsp), %xmm14
+        subsd     %xmm14, %xmm13
+        addsd     %xmm13, %xmm15
+        movsd     %xmm15, -56(%rsp)
+        movaps    %xmm7, %xmm15
+        mulsd     %xmm8, %xmm15
+        mulsd     %xmm5, %xmm8
+        mulsd     %xmm6, %xmm5
+        mulsd     %xmm6, %xmm7
+        movsd     -24(%rsp), %xmm14
+        movaps    %xmm14, %xmm13
+        movsd     -56(%rsp), %xmm4
+        addsd     %xmm15, %xmm13
+        addsd     %xmm8, %xmm4
+        movsd     %xmm13, -24(%rsp)
+        addsd     %xmm5, %xmm4
+        movsd     -24(%rsp), %xmm13
+        addsd     %xmm7, %xmm4
+        subsd     %xmm13, %xmm15
+        addsd     %xmm4, %xmm12
+        addsd     %xmm15, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movaps    %xmm9, %xmm15
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm14
+        addsd     %xmm13, %xmm15
+        addsd     %xmm14, %xmm12
+        movsd     %xmm15, -24(%rsp)
+        movsd     -24(%rsp), %xmm15
+        subsd     %xmm15, %xmm9
+        addsd     %xmm9, %xmm13
+        movsd     %xmm13, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm9
+        addsd     %xmm9, %xmm12
+        addsd     %xmm12, %xmm13
+        addsd     %xmm13, %xmm10
+        movsd     %xmm10, -32(%rsp)
+        movb      -25(%rsp), %dil
+        andb      $127, %dil
+        orb       %cl, %dil
+        movb      %dil, -25(%rsp)
+        movsd     -32(%rsp), %xmm10
+        cvtsd2ss  %xmm10, %xmm10
+        movss     %xmm10, (%r9)
+        ret
+
+L(6):
+        movaps    %xmm0, %xmm2
+        mulsd     %xmm0, %xmm2
+        movsd     1104+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        movb      -1(%rsp), %dl
+        andb      $-128, %dl
+        addsd     1096+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1088+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1080+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm1, %xmm2
+        mulsd     %xmm0, %xmm2
+        addsd     %xmm2, %xmm0
+        movsd     %xmm0, -32(%rsp)
+        movb      -25(%rsp), %cl
+        andb      $127, %cl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movsd     -32(%rsp), %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(7):
+        movsd     1112+__ssinh_la_CoutTab(%rip), %xmm1
+        lea       __ssinh_la_CoutTab(%rip), %r8
+        mulsd     %xmm0, %xmm1
+        movsd     1144+__ssinh_la_CoutTab(%rip), %xmm2
+        movsd     1152+__ssinh_la_CoutTab(%rip), %xmm3
+        movq      8+__ssinh_la_CoutTab(%rip), %rdx
+        movq      %rdx, -16(%rsp)
+        addsd     1120+__ssinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -40(%rsp)
+        movsd     -40(%rsp), %xmm4
+        movsd     1072+__ssinh_la_CoutTab(%rip), %xmm1
+        movl      -40(%rsp), %edx
+        movl      %edx, %esi
+        andl      $63, %esi
+        subsd     1120+__ssinh_la_CoutTab(%rip), %xmm4
+        mulsd     %xmm4, %xmm2
+        lea       (%rsi,%rsi), %ecx
+        mulsd     %xmm3, %xmm4
+        subsd     %xmm2, %xmm0
+        movsd     (%r8,%rcx,8), %xmm5
+        lea       1(%rsi,%rsi), %edi
+        shrl      $6, %edx
+        subsd     %xmm4, %xmm0
+        mulsd     %xmm0, %xmm1
+        addl      $1022, %edx
+        andl      $2047, %edx
+        addsd     1064+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1056+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1048+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1040+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     %xmm0, %xmm1
+        mulsd     %xmm5, %xmm1
+        addsd     (%r8,%rdi,8), %xmm1
+        addsd     %xmm5, %xmm1
+        cmpl      $2046, %edx
+        ja        L(8)
+        movq      8+__ssinh_la_CoutTab(%rip), %rcx
+        shrq      $48, %rcx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm1, %xmm0
+        movsd     %xmm0, -32(%rsp)
+        jmp       L(9)
+
+L(8):
+        decl      %edx
+        andl      $2047, %edx
+        movzwl    -10(%rsp), %ecx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm1, %xmm0
+        mulsd     1024+__ssinh_la_CoutTab(%rip), %xmm0
+        movsd     %xmm0, -32(%rsp)
+
+L(9):
+        movb      -25(%rsp), %cl
+        movb      -1(%rsp), %dl
+        andb      $127, %cl
+        andb      $-128, %dl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movsd     -32(%rsp), %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(10):
+        movsd     1168+__ssinh_la_CoutTab(%rip), %xmm0
+        movl      $3, %eax
+        mulsd     %xmm2, %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(11):
+        movsd     __ssinh_la_CoutTab(%rip), %xmm0
+        addsd     1160+__ssinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm2, %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(12):
+        movsd     1160+__ssinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm2, -24(%rsp)
+        pxor      %xmm2, %xmm2
+        cvtss2sd  (%rdi), %xmm2
+        movsd     -24(%rsp), %xmm1
+        movq      8+__ssinh_la_CoutTab(%rip), %rdx
+        addsd     %xmm1, %xmm2
+        cvtsd2ss  %xmm2, %xmm2
+        movq      %rdx, -16(%rsp)
+        movss     %xmm2, (%r9)
+        ret
+
+L(13):
+        addss     %xmm2, %xmm2
+        movss     %xmm2, (%r9)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_ssinh_cout_rare_internal,@function
+        .size	__svml_ssinh_cout_rare_internal,.-__svml_ssinh_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_ssinh_data_internal:
+        .long	1056964608
+        .long	1057148295
+        .long	1057336003
+        .long	1057527823
+        .long	1057723842
+        .long	1057924154
+        .long	1058128851
+        .long	1058338032
+        .long	1058551792
+        .long	1058770234
+        .long	1058993458
+        .long	1059221571
+        .long	1059454679
+        .long	1059692891
+        .long	1059936319
+        .long	1060185078
+        .long	1060439283
+        .long	1060699055
+        .long	1060964516
+        .long	1061235789
+        .long	1061513002
+        .long	1061796286
+        .long	1062085772
+        .long	1062381598
+        .long	1062683901
+        .long	1062992824
+        .long	1063308511
+        .long	1063631111
+        .long	1063960775
+        .long	1064297658
+        .long	1064641917
+        .long	1064993715
+        .long	0
+        .long	2999887785
+        .long	852465809
+        .long	3003046475
+        .long	2984291233
+        .long	3001644133
+        .long	854021668
+        .long	2997748242
+        .long	849550193
+        .long	2995541347
+        .long	851518274
+        .long	809701978
+        .long	2997656926
+        .long	2996185864
+        .long	2980965110
+        .long	3002882728
+        .long	844097402
+        .long	848217591
+        .long	2999013352
+        .long	2992006718
+        .long	831170615
+        .long	3002278818
+        .long	833158180
+        .long	3000769962
+        .long	2991891850
+        .long	2999994908
+        .long	2979965785
+        .long	2982419430
+        .long	2982221534
+        .long	2999469642
+        .long	833168438
+        .long	2987538264
+        .long	1056964608
+        .long	1056605107
+        .long	1056253309
+        .long	1055909050
+        .long	1055572167
+        .long	1055242503
+        .long	1054919903
+        .long	1054604216
+        .long	1054295293
+        .long	1053992990
+        .long	1053697164
+        .long	1053407678
+        .long	1053124394
+        .long	1052847181
+        .long	1052575908
+        .long	1052310447
+        .long	1052050675
+        .long	1051796470
+        .long	1051547711
+        .long	1051304283
+        .long	1051066071
+        .long	1050832963
+        .long	1050604850
+        .long	1050381626
+        .long	1050163184
+        .long	1049949424
+        .long	1049740243
+        .long	1049535546
+        .long	1049335234
+        .long	1049139215
+        .long	1048947395
+        .long	1048759687
+        .long	0
+        .long	2979149656
+        .long	824779830
+        .long	2991081034
+        .long	2973832926
+        .long	2974030822
+        .long	2971577177
+        .long	2991606300
+        .long	2983503242
+        .long	2992381354
+        .long	824769572
+        .long	2993890210
+        .long	822782007
+        .long	2983618110
+        .long	2990624744
+        .long	839828983
+        .long	835708794
+        .long	2994494120
+        .long	2972576502
+        .long	2987797256
+        .long	2989268318
+        .long	801313370
+        .long	843129666
+        .long	2987152739
+        .long	841161585
+        .long	2989359634
+        .long	845633060
+        .long	2993255525
+        .long	2975902625
+        .long	2994657867
+        .long	844077201
+        .long	2991499177
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .type	__svml_ssinh_data_internal,@object
+        .size	__svml_ssinh_data_internal,1920
+        .align 32
+
+__ssinh_la_CoutTab:
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	0
+        .long	1048019041
+        .long	1072704666
+        .long	1398474845
+        .long	3161559171
+        .long	3541402996
+        .long	1072716208
+        .long	2759177317
+        .long	1015903202
+        .long	410360776
+        .long	1072727877
+        .long	1269990655
+        .long	1013024446
+        .long	1828292879
+        .long	1072739672
+        .long	1255956747
+        .long	1016636974
+        .long	852742562
+        .long	1072751596
+        .long	667253587
+        .long	1010842135
+        .long	3490863953
+        .long	1072763649
+        .long	960797498
+        .long	3163997456
+        .long	2930322912
+        .long	1072775834
+        .long	2599499422
+        .long	3163762623
+        .long	1014845819
+        .long	1072788152
+        .long	3117910646
+        .long	3162607681
+        .long	3949972341
+        .long	1072800603
+        .long	2068408548
+        .long	1015962444
+        .long	828946858
+        .long	1072813191
+        .long	10642492
+        .long	1016988014
+        .long	2288159958
+        .long	1072825915
+        .long	2169144469
+        .long	1015924597
+        .long	1853186616
+        .long	1072838778
+        .long	3066496371
+        .long	1016705150
+        .long	1709341917
+        .long	1072851781
+        .long	2571168217
+        .long	1015201075
+        .long	4112506593
+        .long	1072864925
+        .long	2947355221
+        .long	1015419624
+        .long	2799960843
+        .long	1072878213
+        .long	1423655381
+        .long	1016070727
+        .long	171030293
+        .long	1072891646
+        .long	3526460132
+        .long	1015477354
+        .long	2992903935
+        .long	1072905224
+        .long	2218154406
+        .long	1016276769
+        .long	926591435
+        .long	1072918951
+        .long	3208833762
+        .long	3163962090
+        .long	887463927
+        .long	1072932827
+        .long	3596744163
+        .long	3161842742
+        .long	1276261410
+        .long	1072946854
+        .long	300981948
+        .long	1015732745
+        .long	569847338
+        .long	1072961034
+        .long	472945272
+        .long	3160339305
+        .long	1617004845
+        .long	1072975368
+        .long	82804944
+        .long	1011391354
+        .long	3049340112
+        .long	1072989858
+        .long	3062915824
+        .long	1014219171
+        .long	3577096743
+        .long	1073004506
+        .long	2951496418
+        .long	1014842263
+        .long	1990012071
+        .long	1073019314
+        .long	3529070563
+        .long	3163861769
+        .long	1453150082
+        .long	1073034283
+        .long	498154669
+        .long	3162536638
+        .long	917841882
+        .long	1073049415
+        .long	18715565
+        .long	1016707884
+        .long	3712504873
+        .long	1073064711
+        .long	88491949
+        .long	1016476236
+        .long	363667784
+        .long	1073080175
+        .long	813753950
+        .long	1016833785
+        .long	2956612997
+        .long	1073095806
+        .long	2118169751
+        .long	3163784129
+        .long	2186617381
+        .long	1073111608
+        .long	2270764084
+        .long	3164321289
+        .long	1719614413
+        .long	1073127582
+        .long	330458198
+        .long	3164331316
+        .long	1013258799
+        .long	1073143730
+        .long	1748797611
+        .long	3161177658
+        .long	3907805044
+        .long	1073160053
+        .long	2257091225
+        .long	3162598983
+        .long	1447192521
+        .long	1073176555
+        .long	1462857171
+        .long	3163563097
+        .long	1944781191
+        .long	1073193236
+        .long	3993278767
+        .long	3162772855
+        .long	919555682
+        .long	1073210099
+        .long	3121969534
+        .long	1013996802
+        .long	2571947539
+        .long	1073227145
+        .long	3558159064
+        .long	3164425245
+        .long	2604962541
+        .long	1073244377
+        .long	2614425274
+        .long	3164587768
+        .long	1110089947
+        .long	1073261797
+        .long	1451641639
+        .long	1016523249
+        .long	2568320822
+        .long	1073279406
+        .long	2732824428
+        .long	1015401491
+        .long	2966275557
+        .long	1073297207
+        .long	2176155324
+        .long	3160891335
+        .long	2682146384
+        .long	1073315202
+        .long	2082178513
+        .long	3164411995
+        .long	2191782032
+        .long	1073333393
+        .long	2960257726
+        .long	1014791238
+        .long	2069751141
+        .long	1073351782
+        .long	1562170675
+        .long	3163773257
+        .long	2990417245
+        .long	1073370371
+        .long	3683467745
+        .long	3164417902
+        .long	1434058175
+        .long	1073389163
+        .long	251133233
+        .long	1016134345
+        .long	2572866477
+        .long	1073408159
+        .long	878562433
+        .long	1016570317
+        .long	3092190715
+        .long	1073427362
+        .long	814012168
+        .long	3160571998
+        .long	4076559943
+        .long	1073446774
+        .long	2119478331
+        .long	3161806927
+        .long	2420883922
+        .long	1073466398
+        .long	2049810052
+        .long	1015168464
+        .long	3716502172
+        .long	1073486235
+        .long	2303740125
+        .long	1015091301
+        .long	777507147
+        .long	1073506289
+        .long	4282924205
+        .long	1016236109
+        .long	3706687593
+        .long	1073526560
+        .long	3521726939
+        .long	1014301643
+        .long	1242007932
+        .long	1073547053
+        .long	1132034716
+        .long	3164388407
+        .long	3707479175
+        .long	1073567768
+        .long	3613079303
+        .long	1015213314
+        .long	64696965
+        .long	1073588710
+        .long	1768797490
+        .long	1016865536
+        .long	863738719
+        .long	1073609879
+        .long	1326992220
+        .long	3163661773
+        .long	3884662774
+        .long	1073631278
+        .long	2158611599
+        .long	1015258761
+        .long	2728693978
+        .long	1073652911
+        .long	396109971
+        .long	3164511267
+        .long	3999357479
+        .long	1073674779
+        .long	2258941616
+        .long	1016973300
+        .long	1533953344
+        .long	1073696886
+        .long	769171851
+        .long	1016714209
+        .long	2174652632
+        .long	1073719233
+        .long	4087714590
+        .long	1015498835
+        .long	0
+        .long	1073741824
+        .long	0
+        .long	0
+        .long	0
+        .long	1071644672
+        .long	1431652600
+        .long	1069897045
+        .long	1431670732
+        .long	1067799893
+        .long	984555731
+        .long	1065423122
+        .long	472530941
+        .long	1062650218
+        .long	1431655765
+        .long	1069897045
+        .long	286331153
+        .long	1065423121
+        .long	436314138
+        .long	1059717536
+        .long	2773927732
+        .long	1053236707
+        .long	1697350398
+        .long	1079448903
+        .long	0
+        .long	1127743488
+        .long	33554432
+        .long	1101004800
+        .long	2684354560
+        .long	1079401119
+        .long	4277796864
+        .long	1065758274
+        .long	3164486458
+        .long	1025308570
+        .long	1
+        .long	1048576
+        .long	4294967295
+        .long	2146435071
+        .long	3671843104
+        .long	1067178892
+        .long	3875694624
+        .long	1077247184
+        .type	__ssinh_la_CoutTab,@object
+        .size	__ssinh_la_CoutTab,1192
+        .space 8, 0x00 	
+        .align 16
+
+.FLT_98:
+        .long	0x00000000,0x80000000,0x00000000,0x00000000
+        .type	.FLT_98,@object
+        .size	.FLT_98,16
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core-sse2.S
new file mode 100644
index 0000000000..1b31095fe1
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core-sse2.S
@@ -0,0 +1,20 @@ 
+/* SSE2 version of vectorized sinhf, vector length is 4.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define _ZGVbN4v_sinhf _ZGVbN4v_sinhf_sse2
+#include "../svml_s_sinhf4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core.c
new file mode 100644
index 0000000000..9d4297c2c9
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core.c
@@ -0,0 +1,28 @@ 
+/* Multiple versions of vectorized sinhf, vector length is 4.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define SYMBOL_NAME _ZGVbN4v_sinhf
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN4v_sinhf, __GI__ZGVbN4v_sinhf,
+	       __redirect__ZGVbN4v_sinhf)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core_sse4.S
new file mode 100644
index 0000000000..253cba7227
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf4_core_sse4.S
@@ -0,0 +1,2239 @@ 
+/* Function sinhf vectorized with SSE4.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   https://www.gnu.org/licenses/.  */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ *   Compute sinh(x) as (exp(x)-exp(-x))/2,
+ *   where exp is calculated as
+ *   exp(M*ln2 + ln2*(j/2^k) + r) = 2^M * 2^(j/2^k) * exp(r)
+ *
+ *   Special cases:
+ *
+ *   sinh(NaN) = quiet NaN, and raise invalid exception
+ *   sinh(INF) = that INF
+ *   sinh(x)   = x for subnormals
+ *   sinh(x) overflows for big x and returns MAXLOG+log(2)
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.sse4,"ax",@progbits
+ENTRY(_ZGVbN4v_sinhf_sse4)
+        pushq     %rbp
+        cfi_def_cfa_offset(16)
+        movq      %rsp, %rbp
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+        andq      $-64, %rsp
+        subq      $320, %rsp
+
+/*
+ *  Implementation
+ *  Abs argument
+ */
+        movups    1152+__svml_ssinh_data_internal(%rip), %xmm1
+        andps     %xmm0, %xmm1
+        movaps    %xmm1, %xmm2
+
+/*
+ *  Load argument
+ * dM = x/log(2) + RShifter
+ */
+        movups    960+__svml_ssinh_data_internal(%rip), %xmm7
+        pxor      %xmm0, %xmm2
+        mulps     %xmm2, %xmm7
+
+/*
+ * Check for overflow\underflow
+ * MORE faster than GE?
+ */
+        movaps    %xmm2, %xmm4
+        movups    1280+__svml_ssinh_data_internal(%rip), %xmm5
+        pcmpgtd   1408+__svml_ssinh_data_internal(%rip), %xmm4
+        addps     %xmm5, %xmm7
+        movmskps  %xmm4, %edx
+
+/*
+ *  R
+ * sN = sM - RShifter
+ */
+        movaps    %xmm7, %xmm6
+
+/*
+ *  G1,G2 2^N,2^(-N)
+ * iM now is an EXP(2^N)
+ */
+        pslld     $23, %xmm7
+
+/* sR = sX - sN*Log2_hi */
+        movups    1024+__svml_ssinh_data_internal(%rip), %xmm4
+        subps     %xmm5, %xmm6
+        mulps     %xmm6, %xmm4
+
+/* sR = (sX - sN*Log2_hi) - sN*Log2_lo */
+        movups    1088+__svml_ssinh_data_internal(%rip), %xmm5
+        subps     %xmm4, %xmm2
+        mulps     %xmm6, %xmm5
+        movdqu    1856+__svml_ssinh_data_internal(%rip), %xmm3
+        subps     %xmm5, %xmm2
+
+/* sR2 = sR^2 */
+        movaps    %xmm2, %xmm5
+        movdqa    %xmm3, %xmm4
+        mulps     %xmm2, %xmm5
+        paddd     %xmm7, %xmm4
+        movdqa    %xmm3, %xmm6
+
+/* sG1 = 2^(N-1)+2^(-N-1) */
+        movdqa    %xmm4, %xmm3
+        psubd     %xmm7, %xmm6
+
+/*
+ * sinh(r) = r*((a1=1)+r^2*(a3+r^2*(a5+{v1 r^2*a7})))) = r + r*(r^2*(a3+r^2*(a5+r^2*a7))) ....
+ * sSinh_r = (a3+r^2*a5)
+ */
+        movups    1728+__svml_ssinh_data_internal(%rip), %xmm7
+        addps     %xmm6, %xmm3
+        mulps     %xmm5, %xmm7
+
+/* sG2 = 2^(N-1)-2^(-N-1) */
+        subps     %xmm6, %xmm4
+
+/*
+ * sinh(X) = sG2 + sG1*sinh(dR) + sG2*sR2*(a2+sR2*(a4+a6*sR2)
+ * sOut = (a4 +a6*sR2)
+ */
+        movups    1792+__svml_ssinh_data_internal(%rip), %xmm6
+        mulps     %xmm5, %xmm6
+        addps     1600+__svml_ssinh_data_internal(%rip), %xmm7
+
+/* sSinh_r = r^2*(a3+r^2*a5) */
+        mulps     %xmm5, %xmm7
+        addps     1664+__svml_ssinh_data_internal(%rip), %xmm6
+
+/* sOut = a2+sR2*(a4+a6*sR2) */
+        mulps     %xmm5, %xmm6
+
+/* sSinh_r = r + r*(r^2*(a3+r^2*a5)) */
+        mulps     %xmm2, %xmm7
+        addps     1536+__svml_ssinh_data_internal(%rip), %xmm6
+        addps     %xmm7, %xmm2
+
+/* sOut = sR2*(a2+sR2*(a4+a6*sR2) */
+        mulps     %xmm6, %xmm5
+
+/* sOut = sG1*sinh(dR)+sG2*sR2*(a2+sR2*(a4+a6*sR2) */
+        mulps     %xmm2, %xmm3
+
+/* sOut = sG2*sR2*(a2+sR2*(a4+a6*sR2) */
+        mulps     %xmm4, %xmm5
+        addps     %xmm3, %xmm5
+
+/* sOut = sG2 + sG1*sinh(dR) + sG2*sR2*(a2+sR2*(a4+a6*sR2) */
+        addps     %xmm5, %xmm4
+
+/*  Ret H  */
+        orps      %xmm4, %xmm1
+        testl     %edx, %edx
+        jne       L(2)
+
+L(1):
+        movaps    %xmm1, %xmm0
+        movq      %rbp, %rsp
+        popq      %rbp
+        cfi_def_cfa(7, 8)
+        cfi_restore(6)
+        ret
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+
+L(2):
+        movups    %xmm0, 192(%rsp)
+        movups    %xmm1, 256(%rsp)
+        xorl      %eax, %eax
+        movups    %xmm8, 112(%rsp)
+        movups    %xmm9, 96(%rsp)
+        movups    %xmm10, 80(%rsp)
+        movups    %xmm11, 64(%rsp)
+        movups    %xmm12, 48(%rsp)
+        movups    %xmm13, 32(%rsp)
+        movups    %xmm14, 16(%rsp)
+        movups    %xmm15, (%rsp)
+        movq      %rsi, 136(%rsp)
+        movq      %rdi, 128(%rsp)
+        movq      %r12, 152(%rsp)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22
+        movl      %eax, %r12d
+        movq      %r13, 144(%rsp)
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+        movl      %edx, %r13d
+
+L(3):
+        btl       %r12d, %r13d
+        jc        L(5)
+
+L(4):
+        incl      %r12d
+        cmpl      $4, %r12d
+        jl        L(3)
+        movups    112(%rsp), %xmm8
+        cfi_restore(25)
+        movups    96(%rsp), %xmm9
+        cfi_restore(26)
+        movups    80(%rsp), %xmm10
+        cfi_restore(27)
+        movups    64(%rsp), %xmm11
+        cfi_restore(28)
+        movups    48(%rsp), %xmm12
+        cfi_restore(29)
+        movups    32(%rsp), %xmm13
+        cfi_restore(30)
+        movups    16(%rsp), %xmm14
+        cfi_restore(31)
+        movups    (%rsp), %xmm15
+        cfi_restore(32)
+        movq      136(%rsp), %rsi
+        cfi_restore(4)
+        movq      128(%rsp), %rdi
+        cfi_restore(5)
+        movq      152(%rsp), %r12
+        cfi_restore(12)
+        movq      144(%rsp), %r13
+        cfi_restore(13)
+        movups    256(%rsp), %xmm1
+        jmp       L(1)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22
+
+L(5):
+        lea       192(%rsp,%r12,4), %rdi
+        lea       256(%rsp,%r12,4), %rsi
+        call      __svml_ssinh_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVbN4v_sinhf_sse4)
+
+        .align    16,0x90
+
+__svml_ssinh_cout_rare_internal:
+
+        cfi_startproc
+
+        movq      %rsi, %r9
+        movzwl    2(%rdi), %edx
+        xorl      %eax, %eax
+        andl      $32640, %edx
+        movss     (%rdi), %xmm2
+        cmpl      $32640, %edx
+        je        L(13)
+        cvtss2sd  %xmm2, %xmm2
+        movsd     %xmm2, -8(%rsp)
+        movzwl    -2(%rsp), %edx
+        andl      $32752, %edx
+        movsd     %xmm2, -32(%rsp)
+        shrl      $4, %edx
+        andb      $127, -25(%rsp)
+        testl     %edx, %edx
+        jle       L(12)
+        cmpl      $969, %edx
+        jle       L(11)
+        movsd     -32(%rsp), %xmm0
+        movsd     1136+__ssinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(10)
+        movsd     1184+__ssinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(7)
+        comisd    1176+__ssinh_la_CoutTab(%rip), %xmm0
+        jb        L(6)
+        movsd     1112+__ssinh_la_CoutTab(%rip), %xmm3
+        lea       __ssinh_la_CoutTab(%rip), %rcx
+        mulsd     %xmm0, %xmm3
+        movsd     1144+__ssinh_la_CoutTab(%rip), %xmm10
+        movq      8+__ssinh_la_CoutTab(%rip), %r10
+        movq      %r10, %rsi
+        shrq      $48, %rsi
+        addsd     1120+__ssinh_la_CoutTab(%rip), %xmm3
+        movsd     %xmm3, -40(%rsp)
+        andl      $-32753, %esi
+        movsd     -40(%rsp), %xmm13
+        movl      -40(%rsp), %r8d
+        movl      %r8d, %r11d
+        shrl      $6, %r11d
+        andl      $63, %r8d
+        movq      %r10, -16(%rsp)
+        subsd     1120+__ssinh_la_CoutTab(%rip), %xmm13
+        mulsd     %xmm13, %xmm10
+        lea       1023(%r11), %edi
+        xorps     .FLT_100(%rip), %xmm13
+        addl      $1022, %r11d
+        mulsd     1152+__ssinh_la_CoutTab(%rip), %xmm13
+        subsd     %xmm10, %xmm0
+        movaps    %xmm0, %xmm5
+        movaps    %xmm0, %xmm11
+        andl      $2047, %r11d
+        lea       (%r8,%r8), %edx
+        negl      %edi
+        lea       1(%r8,%r8), %r8d
+        movsd     (%rcx,%rdx,8), %xmm8
+        negl      %edx
+        shll      $4, %r11d
+        addl      $-4, %edi
+        orl       %r11d, %esi
+        andl      $2047, %edi
+        movw      %si, -10(%rsp)
+        andl      $-32753, %esi
+        shll      $4, %edi
+        addsd     %xmm13, %xmm5
+        movsd     %xmm5, -24(%rsp)
+        orl       %edi, %esi
+        movsd     -24(%rsp), %xmm7
+        movsd     1128+__ssinh_la_CoutTab(%rip), %xmm5
+        subsd     %xmm7, %xmm11
+        movsd     %xmm11, -56(%rsp)
+        movsd     -24(%rsp), %xmm4
+        movsd     -56(%rsp), %xmm12
+        movsd     (%rcx,%r8,8), %xmm6
+        addsd     %xmm12, %xmm4
+        movsd     %xmm4, -48(%rsp)
+        movsd     -56(%rsp), %xmm9
+        movsd     -16(%rsp), %xmm4
+        addsd     %xmm9, %xmm13
+        mulsd     %xmm4, %xmm8
+        mulsd     %xmm4, %xmm6
+        movsd     %xmm13, -56(%rsp)
+        movaps    %xmm8, %xmm9
+        movsd     -48(%rsp), %xmm15
+        movw      %si, -10(%rsp)
+        lea       128(%rdx), %esi
+        movsd     -16(%rsp), %xmm14
+        addl      $129, %edx
+        subsd     %xmm15, %xmm0
+        movaps    %xmm8, %xmm15
+        movsd     %xmm0, -48(%rsp)
+        movsd     -56(%rsp), %xmm3
+        movsd     -48(%rsp), %xmm0
+        addsd     %xmm0, %xmm3
+        movsd     %xmm3, -48(%rsp)
+        movsd     -24(%rsp), %xmm10
+        mulsd     %xmm10, %xmm5
+        movaps    %xmm10, %xmm2
+        mulsd     %xmm10, %xmm2
+        movsd     -48(%rsp), %xmm3
+        movaps    %xmm10, %xmm1
+        movsd     %xmm5, -24(%rsp)
+        movsd     -24(%rsp), %xmm7
+        subsd     %xmm10, %xmm7
+        movsd     %xmm7, -56(%rsp)
+        movsd     -24(%rsp), %xmm12
+        movsd     -56(%rsp), %xmm11
+        subsd     %xmm11, %xmm12
+        movsd     1064+__ssinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm2, %xmm11
+        movsd     %xmm12, -24(%rsp)
+        movsd     1072+__ssinh_la_CoutTab(%rip), %xmm12
+        mulsd     %xmm2, %xmm12
+        addsd     1048+__ssinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm2, %xmm11
+        addsd     1056+__ssinh_la_CoutTab(%rip), %xmm12
+        mulsd     %xmm2, %xmm12
+        mulsd     %xmm10, %xmm11
+        addsd     1040+__ssinh_la_CoutTab(%rip), %xmm12
+        addsd     %xmm11, %xmm10
+        mulsd     %xmm2, %xmm12
+        movsd     (%rcx,%rsi,8), %xmm2
+        mulsd     %xmm14, %xmm2
+        movsd     -24(%rsp), %xmm0
+        subsd     %xmm2, %xmm9
+        subsd     %xmm0, %xmm1
+        movsd     %xmm1, -56(%rsp)
+        movsd     -24(%rsp), %xmm7
+        movsd     -56(%rsp), %xmm5
+        movsd     %xmm9, -24(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     (%rcx,%rdx,8), %xmm1
+        subsd     %xmm13, %xmm15
+        mulsd     %xmm14, %xmm1
+        subsd     %xmm2, %xmm15
+        movsd     %xmm15, -56(%rsp)
+        movaps    %xmm8, %xmm13
+        movsd     -24(%rsp), %xmm14
+        addsd     %xmm2, %xmm13
+        movsd     -56(%rsp), %xmm9
+        movaps    %xmm14, %xmm0
+        movb      -1(%rsp), %cl
+        addsd     %xmm6, %xmm9
+        addsd     %xmm1, %xmm6
+        subsd     %xmm1, %xmm9
+        andb      $-128, %cl
+        addsd     %xmm9, %xmm0
+        movsd     %xmm0, -24(%rsp)
+        movsd     -24(%rsp), %xmm4
+        subsd     %xmm4, %xmm14
+        addsd     %xmm14, %xmm9
+        movsd     %xmm9, -56(%rsp)
+        movsd     -24(%rsp), %xmm9
+        movsd     -56(%rsp), %xmm0
+        movsd     %xmm13, -24(%rsp)
+        movsd     -24(%rsp), %xmm15
+        subsd     %xmm15, %xmm8
+        addsd     %xmm8, %xmm2
+        movsd     %xmm2, -56(%rsp)
+        movsd     -24(%rsp), %xmm2
+        movsd     -56(%rsp), %xmm4
+        addsd     %xmm6, %xmm4
+        movaps    %xmm2, %xmm6
+        addsd     %xmm4, %xmm6
+        movsd     %xmm6, -24(%rsp)
+        movsd     -24(%rsp), %xmm8
+        movsd     1128+__ssinh_la_CoutTab(%rip), %xmm6
+        subsd     %xmm8, %xmm2
+        addsd     %xmm2, %xmm4
+        movsd     %xmm4, -56(%rsp)
+        movsd     -24(%rsp), %xmm1
+        mulsd     %xmm1, %xmm6
+        movsd     -56(%rsp), %xmm2
+        movsd     %xmm6, -24(%rsp)
+        movaps    %xmm1, %xmm6
+        movsd     -24(%rsp), %xmm14
+        mulsd     %xmm2, %xmm10
+        subsd     %xmm1, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm8
+        subsd     %xmm8, %xmm13
+        movsd     %xmm13, -24(%rsp)
+        movaps    %xmm11, %xmm13
+        movsd     -24(%rsp), %xmm15
+        mulsd     %xmm1, %xmm13
+        subsd     %xmm15, %xmm6
+        mulsd     %xmm3, %xmm1
+        mulsd     %xmm2, %xmm3
+        movaps    %xmm12, %xmm15
+        movaps    %xmm13, %xmm4
+        mulsd     %xmm9, %xmm15
+        mulsd     %xmm0, %xmm12
+        addsd     %xmm15, %xmm4
+        addsd     %xmm0, %xmm12
+        movsd     %xmm6, -56(%rsp)
+        addsd     %xmm1, %xmm12
+        movsd     -24(%rsp), %xmm8
+        addsd     %xmm3, %xmm12
+        movsd     -56(%rsp), %xmm6
+        movsd     %xmm4, -24(%rsp)
+        movsd     -24(%rsp), %xmm14
+        subsd     %xmm14, %xmm13
+        addsd     %xmm13, %xmm15
+        movsd     %xmm15, -56(%rsp)
+        movaps    %xmm7, %xmm15
+        mulsd     %xmm8, %xmm15
+        mulsd     %xmm5, %xmm8
+        mulsd     %xmm6, %xmm5
+        mulsd     %xmm6, %xmm7
+        movsd     -24(%rsp), %xmm14
+        movaps    %xmm14, %xmm13
+        movsd     -56(%rsp), %xmm4
+        addsd     %xmm15, %xmm13
+        addsd     %xmm8, %xmm4
+        movsd     %xmm13, -24(%rsp)
+        addsd     %xmm5, %xmm4
+        movsd     -24(%rsp), %xmm13
+        addsd     %xmm7, %xmm4
+        subsd     %xmm13, %xmm15
+        addsd     %xmm4, %xmm12
+        addsd     %xmm15, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movaps    %xmm9, %xmm15
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm14
+        addsd     %xmm13, %xmm15
+        addsd     %xmm14, %xmm12
+        movsd     %xmm15, -24(%rsp)
+        movsd     -24(%rsp), %xmm15
+        subsd     %xmm15, %xmm9
+        addsd     %xmm9, %xmm13
+        movsd     %xmm13, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm9
+        addsd     %xmm9, %xmm12
+        addsd     %xmm12, %xmm13
+        addsd     %xmm13, %xmm10
+        movsd     %xmm10, -32(%rsp)
+        movb      -25(%rsp), %dil
+        andb      $127, %dil
+        orb       %cl, %dil
+        movb      %dil, -25(%rsp)
+        movsd     -32(%rsp), %xmm10
+        cvtsd2ss  %xmm10, %xmm10
+        movss     %xmm10, (%r9)
+        ret
+
+L(6):
+        movaps    %xmm0, %xmm2
+        mulsd     %xmm0, %xmm2
+        movsd     1104+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        movb      -1(%rsp), %dl
+        andb      $-128, %dl
+        addsd     1096+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1088+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1080+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm1, %xmm2
+        mulsd     %xmm0, %xmm2
+        addsd     %xmm2, %xmm0
+        movsd     %xmm0, -32(%rsp)
+        movb      -25(%rsp), %cl
+        andb      $127, %cl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movsd     -32(%rsp), %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(7):
+        movsd     1112+__ssinh_la_CoutTab(%rip), %xmm1
+        lea       __ssinh_la_CoutTab(%rip), %r8
+        mulsd     %xmm0, %xmm1
+        movsd     1144+__ssinh_la_CoutTab(%rip), %xmm2
+        movsd     1152+__ssinh_la_CoutTab(%rip), %xmm3
+        movq      8+__ssinh_la_CoutTab(%rip), %rdx
+        movq      %rdx, -16(%rsp)
+        addsd     1120+__ssinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -40(%rsp)
+        movsd     -40(%rsp), %xmm4
+        movsd     1072+__ssinh_la_CoutTab(%rip), %xmm1
+        movl      -40(%rsp), %edx
+        movl      %edx, %esi
+        andl      $63, %esi
+        subsd     1120+__ssinh_la_CoutTab(%rip), %xmm4
+        mulsd     %xmm4, %xmm2
+        lea       (%rsi,%rsi), %ecx
+        mulsd     %xmm3, %xmm4
+        subsd     %xmm2, %xmm0
+        movsd     (%r8,%rcx,8), %xmm5
+        lea       1(%rsi,%rsi), %edi
+        shrl      $6, %edx
+        subsd     %xmm4, %xmm0
+        mulsd     %xmm0, %xmm1
+        addl      $1022, %edx
+        andl      $2047, %edx
+        addsd     1064+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1056+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1048+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1040+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     %xmm0, %xmm1
+        mulsd     %xmm5, %xmm1
+        addsd     (%r8,%rdi,8), %xmm1
+        addsd     %xmm5, %xmm1
+        cmpl      $2046, %edx
+        ja        L(8)
+        movq      8+__ssinh_la_CoutTab(%rip), %rcx
+        shrq      $48, %rcx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm1, %xmm0
+        movsd     %xmm0, -32(%rsp)
+        jmp       L(9)
+
+L(8):
+        decl      %edx
+        andl      $2047, %edx
+        movzwl    -10(%rsp), %ecx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm1, %xmm0
+        mulsd     1024+__ssinh_la_CoutTab(%rip), %xmm0
+        movsd     %xmm0, -32(%rsp)
+
+L(9):
+        movb      -25(%rsp), %cl
+        movb      -1(%rsp), %dl
+        andb      $127, %cl
+        andb      $-128, %dl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movsd     -32(%rsp), %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(10):
+        movsd     1168+__ssinh_la_CoutTab(%rip), %xmm0
+        movl      $3, %eax
+        mulsd     %xmm2, %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(11):
+        movsd     __ssinh_la_CoutTab(%rip), %xmm0
+        addsd     1160+__ssinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm2, %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(12):
+        movsd     1160+__ssinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm2, -24(%rsp)
+        pxor      %xmm2, %xmm2
+        cvtss2sd  (%rdi), %xmm2
+        movsd     -24(%rsp), %xmm1
+        movq      8+__ssinh_la_CoutTab(%rip), %rdx
+        addsd     %xmm1, %xmm2
+        cvtsd2ss  %xmm2, %xmm2
+        movq      %rdx, -16(%rsp)
+        movss     %xmm2, (%r9)
+        ret
+
+L(13):
+        addss     %xmm2, %xmm2
+        movss     %xmm2, (%r9)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_ssinh_cout_rare_internal,@function
+        .size	__svml_ssinh_cout_rare_internal,.-__svml_ssinh_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_ssinh_data_internal:
+        .long	1056964608
+        .long	1057148295
+        .long	1057336003
+        .long	1057527823
+        .long	1057723842
+        .long	1057924154
+        .long	1058128851
+        .long	1058338032
+        .long	1058551792
+        .long	1058770234
+        .long	1058993458
+        .long	1059221571
+        .long	1059454679
+        .long	1059692891
+        .long	1059936319
+        .long	1060185078
+        .long	1060439283
+        .long	1060699055
+        .long	1060964516
+        .long	1061235789
+        .long	1061513002
+        .long	1061796286
+        .long	1062085772
+        .long	1062381598
+        .long	1062683901
+        .long	1062992824
+        .long	1063308511
+        .long	1063631111
+        .long	1063960775
+        .long	1064297658
+        .long	1064641917
+        .long	1064993715
+        .long	0
+        .long	2999887785
+        .long	852465809
+        .long	3003046475
+        .long	2984291233
+        .long	3001644133
+        .long	854021668
+        .long	2997748242
+        .long	849550193
+        .long	2995541347
+        .long	851518274
+        .long	809701978
+        .long	2997656926
+        .long	2996185864
+        .long	2980965110
+        .long	3002882728
+        .long	844097402
+        .long	848217591
+        .long	2999013352
+        .long	2992006718
+        .long	831170615
+        .long	3002278818
+        .long	833158180
+        .long	3000769962
+        .long	2991891850
+        .long	2999994908
+        .long	2979965785
+        .long	2982419430
+        .long	2982221534
+        .long	2999469642
+        .long	833168438
+        .long	2987538264
+        .long	1056964608
+        .long	1056605107
+        .long	1056253309
+        .long	1055909050
+        .long	1055572167
+        .long	1055242503
+        .long	1054919903
+        .long	1054604216
+        .long	1054295293
+        .long	1053992990
+        .long	1053697164
+        .long	1053407678
+        .long	1053124394
+        .long	1052847181
+        .long	1052575908
+        .long	1052310447
+        .long	1052050675
+        .long	1051796470
+        .long	1051547711
+        .long	1051304283
+        .long	1051066071
+        .long	1050832963
+        .long	1050604850
+        .long	1050381626
+        .long	1050163184
+        .long	1049949424
+        .long	1049740243
+        .long	1049535546
+        .long	1049335234
+        .long	1049139215
+        .long	1048947395
+        .long	1048759687
+        .long	0
+        .long	2979149656
+        .long	824779830
+        .long	2991081034
+        .long	2973832926
+        .long	2974030822
+        .long	2971577177
+        .long	2991606300
+        .long	2983503242
+        .long	2992381354
+        .long	824769572
+        .long	2993890210
+        .long	822782007
+        .long	2983618110
+        .long	2990624744
+        .long	839828983
+        .long	835708794
+        .long	2994494120
+        .long	2972576502
+        .long	2987797256
+        .long	2989268318
+        .long	801313370
+        .long	843129666
+        .long	2987152739
+        .long	841161585
+        .long	2989359634
+        .long	845633060
+        .long	2993255525
+        .long	2975902625
+        .long	2994657867
+        .long	844077201
+        .long	2991499177
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .type	__svml_ssinh_data_internal,@object
+        .size	__svml_ssinh_data_internal,1920
+        .align 32
+
+__ssinh_la_CoutTab:
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	0
+        .long	1048019041
+        .long	1072704666
+        .long	1398474845
+        .long	3161559171
+        .long	3541402996
+        .long	1072716208
+        .long	2759177317
+        .long	1015903202
+        .long	410360776
+        .long	1072727877
+        .long	1269990655
+        .long	1013024446
+        .long	1828292879
+        .long	1072739672
+        .long	1255956747
+        .long	1016636974
+        .long	852742562
+        .long	1072751596
+        .long	667253587
+        .long	1010842135
+        .long	3490863953
+        .long	1072763649
+        .long	960797498
+        .long	3163997456
+        .long	2930322912
+        .long	1072775834
+        .long	2599499422
+        .long	3163762623
+        .long	1014845819
+        .long	1072788152
+        .long	3117910646
+        .long	3162607681
+        .long	3949972341
+        .long	1072800603
+        .long	2068408548
+        .long	1015962444
+        .long	828946858
+        .long	1072813191
+        .long	10642492
+        .long	1016988014
+        .long	2288159958
+        .long	1072825915
+        .long	2169144469
+        .long	1015924597
+        .long	1853186616
+        .long	1072838778
+        .long	3066496371
+        .long	1016705150
+        .long	1709341917
+        .long	1072851781
+        .long	2571168217
+        .long	1015201075
+        .long	4112506593
+        .long	1072864925
+        .long	2947355221
+        .long	1015419624
+        .long	2799960843
+        .long	1072878213
+        .long	1423655381
+        .long	1016070727
+        .long	171030293
+        .long	1072891646
+        .long	3526460132
+        .long	1015477354
+        .long	2992903935
+        .long	1072905224
+        .long	2218154406
+        .long	1016276769
+        .long	926591435
+        .long	1072918951
+        .long	3208833762
+        .long	3163962090
+        .long	887463927
+        .long	1072932827
+        .long	3596744163
+        .long	3161842742
+        .long	1276261410
+        .long	1072946854
+        .long	300981948
+        .long	1015732745
+        .long	569847338
+        .long	1072961034
+        .long	472945272
+        .long	3160339305
+        .long	1617004845
+        .long	1072975368
+        .long	82804944
+        .long	1011391354
+        .long	3049340112
+        .long	1072989858
+        .long	3062915824
+        .long	1014219171
+        .long	3577096743
+        .long	1073004506
+        .long	2951496418
+        .long	1014842263
+        .long	1990012071
+        .long	1073019314
+        .long	3529070563
+        .long	3163861769
+        .long	1453150082
+        .long	1073034283
+        .long	498154669
+        .long	3162536638
+        .long	917841882
+        .long	1073049415
+        .long	18715565
+        .long	1016707884
+        .long	3712504873
+        .long	1073064711
+        .long	88491949
+        .long	1016476236
+        .long	363667784
+        .long	1073080175
+        .long	813753950
+        .long	1016833785
+        .long	2956612997
+        .long	1073095806
+        .long	2118169751
+        .long	3163784129
+        .long	2186617381
+        .long	1073111608
+        .long	2270764084
+        .long	3164321289
+        .long	1719614413
+        .long	1073127582
+        .long	330458198
+        .long	3164331316
+        .long	1013258799
+        .long	1073143730
+        .long	1748797611
+        .long	3161177658
+        .long	3907805044
+        .long	1073160053
+        .long	2257091225
+        .long	3162598983
+        .long	1447192521
+        .long	1073176555
+        .long	1462857171
+        .long	3163563097
+        .long	1944781191
+        .long	1073193236
+        .long	3993278767
+        .long	3162772855
+        .long	919555682
+        .long	1073210099
+        .long	3121969534
+        .long	1013996802
+        .long	2571947539
+        .long	1073227145
+        .long	3558159064
+        .long	3164425245
+        .long	2604962541
+        .long	1073244377
+        .long	2614425274
+        .long	3164587768
+        .long	1110089947
+        .long	1073261797
+        .long	1451641639
+        .long	1016523249
+        .long	2568320822
+        .long	1073279406
+        .long	2732824428
+        .long	1015401491
+        .long	2966275557
+        .long	1073297207
+        .long	2176155324
+        .long	3160891335
+        .long	2682146384
+        .long	1073315202
+        .long	2082178513
+        .long	3164411995
+        .long	2191782032
+        .long	1073333393
+        .long	2960257726
+        .long	1014791238
+        .long	2069751141
+        .long	1073351782
+        .long	1562170675
+        .long	3163773257
+        .long	2990417245
+        .long	1073370371
+        .long	3683467745
+        .long	3164417902
+        .long	1434058175
+        .long	1073389163
+        .long	251133233
+        .long	1016134345
+        .long	2572866477
+        .long	1073408159
+        .long	878562433
+        .long	1016570317
+        .long	3092190715
+        .long	1073427362
+        .long	814012168
+        .long	3160571998
+        .long	4076559943
+        .long	1073446774
+        .long	2119478331
+        .long	3161806927
+        .long	2420883922
+        .long	1073466398
+        .long	2049810052
+        .long	1015168464
+        .long	3716502172
+        .long	1073486235
+        .long	2303740125
+        .long	1015091301
+        .long	777507147
+        .long	1073506289
+        .long	4282924205
+        .long	1016236109
+        .long	3706687593
+        .long	1073526560
+        .long	3521726939
+        .long	1014301643
+        .long	1242007932
+        .long	1073547053
+        .long	1132034716
+        .long	3164388407
+        .long	3707479175
+        .long	1073567768
+        .long	3613079303
+        .long	1015213314
+        .long	64696965
+        .long	1073588710
+        .long	1768797490
+        .long	1016865536
+        .long	863738719
+        .long	1073609879
+        .long	1326992220
+        .long	3163661773
+        .long	3884662774
+        .long	1073631278
+        .long	2158611599
+        .long	1015258761
+        .long	2728693978
+        .long	1073652911
+        .long	396109971
+        .long	3164511267
+        .long	3999357479
+        .long	1073674779
+        .long	2258941616
+        .long	1016973300
+        .long	1533953344
+        .long	1073696886
+        .long	769171851
+        .long	1016714209
+        .long	2174652632
+        .long	1073719233
+        .long	4087714590
+        .long	1015498835
+        .long	0
+        .long	1073741824
+        .long	0
+        .long	0
+        .long	0
+        .long	1071644672
+        .long	1431652600
+        .long	1069897045
+        .long	1431670732
+        .long	1067799893
+        .long	984555731
+        .long	1065423122
+        .long	472530941
+        .long	1062650218
+        .long	1431655765
+        .long	1069897045
+        .long	286331153
+        .long	1065423121
+        .long	436314138
+        .long	1059717536
+        .long	2773927732
+        .long	1053236707
+        .long	1697350398
+        .long	1079448903
+        .long	0
+        .long	1127743488
+        .long	33554432
+        .long	1101004800
+        .long	2684354560
+        .long	1079401119
+        .long	4277796864
+        .long	1065758274
+        .long	3164486458
+        .long	1025308570
+        .long	1
+        .long	1048576
+        .long	4294967295
+        .long	2146435071
+        .long	3671843104
+        .long	1067178892
+        .long	3875694624
+        .long	1077247184
+        .type	__ssinh_la_CoutTab,@object
+        .size	__ssinh_la_CoutTab,1192
+        .space 8, 0x00 	
+        .align 16
+
+.FLT_100:
+        .long	0x00000000,0x80000000,0x00000000,0x00000000
+        .type	.FLT_100,@object
+        .size	.FLT_100,16
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core-sse.S
new file mode 100644
index 0000000000..d3c9c607a0
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core-sse.S
@@ -0,0 +1,20 @@ 
+/* SSE version of vectorized sinhf, vector length is 8.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define _ZGVdN8v_sinhf _ZGVdN8v_sinhf_sse_wrapper
+#include "../svml_s_sinhf8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core.c
new file mode 100644
index 0000000000..2a2e21e742
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core.c
@@ -0,0 +1,28 @@ 
+/* Multiple versions of vectorized sinhf, vector length is 8.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#define SYMBOL_NAME _ZGVdN8v_sinhf
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN8v_sinhf, __GI__ZGVdN8v_sinhf,
+	       __redirect__ZGVdN8v_sinhf)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core_avx2.S
new file mode 100644
index 0000000000..8d3cae07bf
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinhf8_core_avx2.S
@@ -0,0 +1,1959 @@ 
+/* Function sinhf vectorized with AVX2.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   https://www.gnu.org/licenses/.  */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ *   Compute sinh(x) as (exp(x)-exp(-x))/2,
+ *   where exp is calculated as
+ *   exp(M*ln2 + ln2*(j/2^k) + r) = 2^M * 2^(j/2^k) * exp(r)
+ *
+ *   Special cases:
+ *
+ *   sinh(NaN) = quiet NaN, and raise invalid exception
+ *   sinh(INF) = that INF
+ *   sinh(x)   = x for subnormals
+ *   sinh(x) overflows for big x and returns MAXLOG+log(2)
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.avx2,"ax",@progbits
+ENTRY(_ZGVdN8v_sinhf_avx2)
+        pushq     %rbp
+        cfi_def_cfa_offset(16)
+        movq      %rsp, %rbp
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+        andq      $-64, %rsp
+        subq      $384, %rsp
+        vmovups   1280+__svml_ssinh_data_internal(%rip), %ymm3
+
+/*
+ *  Load argument
+ * dM = x/log(2) + RShifter
+ */
+        vmovups   960+__svml_ssinh_data_internal(%rip), %ymm5
+        vmovups   %ymm8, 32(%rsp)
+        vmovups   1856+__svml_ssinh_data_internal(%rip), %ymm6
+        vmovups   %ymm9, 96(%rsp)
+        vmovups   %ymm11, 192(%rsp)
+        vmovups   %ymm10, 160(%rsp)
+        vmovups   %ymm12, 224(%rsp)
+        vmovups   %ymm13, 256(%rsp)
+        vmovups   %ymm15, 320(%rsp)
+        vmovups   %ymm14, 288(%rsp)
+        vmovaps   %ymm0, %ymm1
+
+/*
+ *  Implementation
+ *  Abs argument
+ */
+        vandps    1152+__svml_ssinh_data_internal(%rip), %ymm1, %ymm0
+        .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+        vxorps    %ymm1, %ymm0, %ymm8
+        vfmadd213ps %ymm3, %ymm8, %ymm5
+
+/*
+ *  R
+ * sN = sM - RShifter
+ */
+        vsubps    %ymm3, %ymm5, %ymm4
+
+/*
+ *  G1,G2 2^N,2^(-N)
+ * iM now is an EXP(2^N)
+ */
+        vpslld    $23, %ymm5, %ymm7
+
+/*
+ * sinh(X) = sG2 + sG1*sinh(dR) + sG2*sR2*(a2+sR2*(a4+a6*sR2)
+ * sOut = (a4 +a6*sR2)
+ */
+        vmovups   1792+__svml_ssinh_data_internal(%rip), %ymm5
+
+/*
+ * sinh(r) = r*((a1=1)+r^2*(a3+r^2*(a5+{v1 r^2*a7})))) = r + r*(r^2*(a3+r^2*(a5+r^2*a7))) ....
+ * sSinh_r = (a3+r^2*a5)
+ */
+        vmovups   1728+__svml_ssinh_data_internal(%rip), %ymm3
+
+/*
+ * Check for overflow\underflow
+ * MORE faster than GE?
+ */
+        vpcmpgtd  1408+__svml_ssinh_data_internal(%rip), %ymm8, %ymm2
+
+/* sR = sX - sN*Log2_hi */
+        vfnmadd231ps 1024+__svml_ssinh_data_internal(%rip), %ymm4, %ymm8
+
+/* sR = (sX - sN*Log2_hi) - sN*Log2_lo */
+        vfnmadd231ps 1088+__svml_ssinh_data_internal(%rip), %ymm4, %ymm8
+
+/* sR2 = sR^2 */
+        vmulps    %ymm8, %ymm8, %ymm4
+        vfmadd213ps 1664+__svml_ssinh_data_internal(%rip), %ymm4, %ymm5
+        vfmadd213ps 1600+__svml_ssinh_data_internal(%rip), %ymm4, %ymm3
+
+/* sOut = a2+sR2*(a4+a6*sR2) */
+        vfmadd213ps 1536+__svml_ssinh_data_internal(%rip), %ymm4, %ymm5
+
+/* sSinh_r = r^2*(a3+r^2*a5) */
+        vmulps    %ymm3, %ymm4, %ymm9
+        vmovmskps %ymm2, %edx
+        vpaddd    %ymm7, %ymm6, %ymm2
+        vpsubd    %ymm7, %ymm6, %ymm6
+
+/* sOut = sR2*(a2+sR2*(a4+a6*sR2) */
+        vmulps    %ymm5, %ymm4, %ymm7
+
+/* sSinh_r = r + r*(r^2*(a3+r^2*a5)) */
+        vfmadd213ps %ymm8, %ymm8, %ymm9
+
+/* sG2 = 2^(N-1)-2^(-N-1) */
+        vsubps    %ymm6, %ymm2, %ymm11
+
+/* sG1 = 2^(N-1)+2^(-N-1) */
+        vaddps    %ymm6, %ymm2, %ymm12
+
+/* sOut = sG2*sR2*(a2+sR2*(a4+a6*sR2) */
+        vmulps    %ymm7, %ymm11, %ymm10
+
+/* sOut = sG1*sinh(dR)+sG2*sR2*(a2+sR2*(a4+a6*sR2) */
+        vfmadd213ps %ymm10, %ymm9, %ymm12
+
+/* sOut = sG2 + sG1*sinh(dR) + sG2*sR2*(a2+sR2*(a4+a6*sR2) */
+        vaddps    %ymm12, %ymm11, %ymm13
+
+/*  Ret H  */
+        vorps     %ymm13, %ymm0, %ymm0
+        testl     %edx, %edx
+        jne       L(2)
+
+L(1):
+        vmovups   32(%rsp), %ymm8
+        cfi_restore(91)
+        vmovups   96(%rsp), %ymm9
+        cfi_restore(92)
+        vmovups   160(%rsp), %ymm10
+        cfi_restore(93)
+        vmovups   192(%rsp), %ymm11
+        cfi_restore(94)
+        vmovups   224(%rsp), %ymm12
+        cfi_restore(95)
+        vmovups   256(%rsp), %ymm13
+        cfi_restore(96)
+        vmovups   288(%rsp), %ymm14
+        cfi_restore(97)
+        vmovups   320(%rsp), %ymm15
+        cfi_restore(98)
+        movq      %rbp, %rsp
+        popq      %rbp
+        cfi_def_cfa(7, 8)
+        cfi_restore(6)
+        ret
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+        .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+
+L(2):
+        vmovups   %ymm1, 64(%rsp)
+        vmovups   %ymm0, 128(%rsp)
+        je        L(1)
+        xorl      %eax, %eax
+        vzeroupper
+        movq      %rsi, 8(%rsp)
+        movq      %rdi, (%rsp)
+        movq      %r12, 24(%rsp)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+        movl      %eax, %r12d
+        movq      %r13, 16(%rsp)
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+        movl      %edx, %r13d
+
+L(3):
+        btl       %r12d, %r13d
+        jc        L(5)
+
+L(4):
+        incl      %r12d
+        cmpl      $8, %r12d
+        jl        L(3)
+        movq      8(%rsp), %rsi
+        cfi_restore(4)
+        movq      (%rsp), %rdi
+        cfi_restore(5)
+        movq      24(%rsp), %r12
+        cfi_restore(12)
+        movq      16(%rsp), %r13
+        cfi_restore(13)
+        vmovups   128(%rsp), %ymm0
+        jmp       L(1)
+        .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+        .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+
+L(5):
+        lea       64(%rsp,%r12,4), %rdi
+        lea       128(%rsp,%r12,4), %rsi
+        call      __svml_ssinh_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVdN8v_sinhf_avx2)
+
+        .align    16,0x90
+
+__svml_ssinh_cout_rare_internal:
+
+        cfi_startproc
+
+        movq      %rsi, %r9
+        movzwl    2(%rdi), %edx
+        xorl      %eax, %eax
+        andl      $32640, %edx
+        movss     (%rdi), %xmm2
+        cmpl      $32640, %edx
+        je        L(13)
+        cvtss2sd  %xmm2, %xmm2
+        movsd     %xmm2, -8(%rsp)
+        movzwl    -2(%rsp), %edx
+        andl      $32752, %edx
+        movsd     %xmm2, -32(%rsp)
+        shrl      $4, %edx
+        andb      $127, -25(%rsp)
+        testl     %edx, %edx
+        jle       L(12)
+        cmpl      $969, %edx
+        jle       L(11)
+        movsd     -32(%rsp), %xmm0
+        movsd     1136+__ssinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(10)
+        movsd     1184+__ssinh_la_CoutTab(%rip), %xmm1
+        comisd    %xmm0, %xmm1
+        jbe       L(7)
+        comisd    1176+__ssinh_la_CoutTab(%rip), %xmm0
+        jb        L(6)
+        movsd     1112+__ssinh_la_CoutTab(%rip), %xmm3
+        lea       __ssinh_la_CoutTab(%rip), %rcx
+        mulsd     %xmm0, %xmm3
+        movsd     1144+__ssinh_la_CoutTab(%rip), %xmm10
+        movq      8+__ssinh_la_CoutTab(%rip), %r10
+        movq      %r10, %rsi
+        shrq      $48, %rsi
+        addsd     1120+__ssinh_la_CoutTab(%rip), %xmm3
+        movsd     %xmm3, -40(%rsp)
+        andl      $-32753, %esi
+        movsd     -40(%rsp), %xmm13
+        movl      -40(%rsp), %r8d
+        movl      %r8d, %r11d
+        shrl      $6, %r11d
+        andl      $63, %r8d
+        movq      %r10, -16(%rsp)
+        subsd     1120+__ssinh_la_CoutTab(%rip), %xmm13
+        mulsd     %xmm13, %xmm10
+        lea       1023(%r11), %edi
+        xorps     .FLT_100(%rip), %xmm13
+        addl      $1022, %r11d
+        mulsd     1152+__ssinh_la_CoutTab(%rip), %xmm13
+        subsd     %xmm10, %xmm0
+        movaps    %xmm0, %xmm5
+        movaps    %xmm0, %xmm11
+        andl      $2047, %r11d
+        lea       (%r8,%r8), %edx
+        negl      %edi
+        lea       1(%r8,%r8), %r8d
+        movsd     (%rcx,%rdx,8), %xmm8
+        negl      %edx
+        shll      $4, %r11d
+        addl      $-4, %edi
+        orl       %r11d, %esi
+        andl      $2047, %edi
+        movw      %si, -10(%rsp)
+        andl      $-32753, %esi
+        shll      $4, %edi
+        addsd     %xmm13, %xmm5
+        movsd     %xmm5, -24(%rsp)
+        orl       %edi, %esi
+        movsd     -24(%rsp), %xmm7
+        movsd     1128+__ssinh_la_CoutTab(%rip), %xmm5
+        subsd     %xmm7, %xmm11
+        movsd     %xmm11, -56(%rsp)
+        movsd     -24(%rsp), %xmm4
+        movsd     -56(%rsp), %xmm12
+        movsd     (%rcx,%r8,8), %xmm6
+        addsd     %xmm12, %xmm4
+        movsd     %xmm4, -48(%rsp)
+        movsd     -56(%rsp), %xmm9
+        movsd     -16(%rsp), %xmm4
+        addsd     %xmm9, %xmm13
+        mulsd     %xmm4, %xmm8
+        mulsd     %xmm4, %xmm6
+        movsd     %xmm13, -56(%rsp)
+        movaps    %xmm8, %xmm9
+        movsd     -48(%rsp), %xmm15
+        movw      %si, -10(%rsp)
+        lea       128(%rdx), %esi
+        movsd     -16(%rsp), %xmm14
+        addl      $129, %edx
+        subsd     %xmm15, %xmm0
+        movaps    %xmm8, %xmm15
+        movsd     %xmm0, -48(%rsp)
+        movsd     -56(%rsp), %xmm3
+        movsd     -48(%rsp), %xmm0
+        addsd     %xmm0, %xmm3
+        movsd     %xmm3, -48(%rsp)
+        movsd     -24(%rsp), %xmm10
+        mulsd     %xmm10, %xmm5
+        movaps    %xmm10, %xmm2
+        mulsd     %xmm10, %xmm2
+        movsd     -48(%rsp), %xmm3
+        movaps    %xmm10, %xmm1
+        movsd     %xmm5, -24(%rsp)
+        movsd     -24(%rsp), %xmm7
+        subsd     %xmm10, %xmm7
+        movsd     %xmm7, -56(%rsp)
+        movsd     -24(%rsp), %xmm12
+        movsd     -56(%rsp), %xmm11
+        subsd     %xmm11, %xmm12
+        movsd     1064+__ssinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm2, %xmm11
+        movsd     %xmm12, -24(%rsp)
+        movsd     1072+__ssinh_la_CoutTab(%rip), %xmm12
+        mulsd     %xmm2, %xmm12
+        addsd     1048+__ssinh_la_CoutTab(%rip), %xmm11
+        mulsd     %xmm2, %xmm11
+        addsd     1056+__ssinh_la_CoutTab(%rip), %xmm12
+        mulsd     %xmm2, %xmm12
+        mulsd     %xmm10, %xmm11
+        addsd     1040+__ssinh_la_CoutTab(%rip), %xmm12
+        addsd     %xmm11, %xmm10
+        mulsd     %xmm2, %xmm12
+        movsd     (%rcx,%rsi,8), %xmm2
+        mulsd     %xmm14, %xmm2
+        movsd     -24(%rsp), %xmm0
+        subsd     %xmm2, %xmm9
+        subsd     %xmm0, %xmm1
+        movsd     %xmm1, -56(%rsp)
+        movsd     -24(%rsp), %xmm7
+        movsd     -56(%rsp), %xmm5
+        movsd     %xmm9, -24(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     (%rcx,%rdx,8), %xmm1
+        subsd     %xmm13, %xmm15
+        mulsd     %xmm14, %xmm1
+        subsd     %xmm2, %xmm15
+        movsd     %xmm15, -56(%rsp)
+        movaps    %xmm8, %xmm13
+        movsd     -24(%rsp), %xmm14
+        addsd     %xmm2, %xmm13
+        movsd     -56(%rsp), %xmm9
+        movaps    %xmm14, %xmm0
+        movb      -1(%rsp), %cl
+        addsd     %xmm6, %xmm9
+        addsd     %xmm1, %xmm6
+        subsd     %xmm1, %xmm9
+        andb      $-128, %cl
+        addsd     %xmm9, %xmm0
+        movsd     %xmm0, -24(%rsp)
+        movsd     -24(%rsp), %xmm4
+        subsd     %xmm4, %xmm14
+        addsd     %xmm14, %xmm9
+        movsd     %xmm9, -56(%rsp)
+        movsd     -24(%rsp), %xmm9
+        movsd     -56(%rsp), %xmm0
+        movsd     %xmm13, -24(%rsp)
+        movsd     -24(%rsp), %xmm15
+        subsd     %xmm15, %xmm8
+        addsd     %xmm8, %xmm2
+        movsd     %xmm2, -56(%rsp)
+        movsd     -24(%rsp), %xmm2
+        movsd     -56(%rsp), %xmm4
+        addsd     %xmm6, %xmm4
+        movaps    %xmm2, %xmm6
+        addsd     %xmm4, %xmm6
+        movsd     %xmm6, -24(%rsp)
+        movsd     -24(%rsp), %xmm8
+        movsd     1128+__ssinh_la_CoutTab(%rip), %xmm6
+        subsd     %xmm8, %xmm2
+        addsd     %xmm2, %xmm4
+        movsd     %xmm4, -56(%rsp)
+        movsd     -24(%rsp), %xmm1
+        mulsd     %xmm1, %xmm6
+        movsd     -56(%rsp), %xmm2
+        movsd     %xmm6, -24(%rsp)
+        movaps    %xmm1, %xmm6
+        movsd     -24(%rsp), %xmm14
+        mulsd     %xmm2, %xmm10
+        subsd     %xmm1, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm8
+        subsd     %xmm8, %xmm13
+        movsd     %xmm13, -24(%rsp)
+        movaps    %xmm11, %xmm13
+        movsd     -24(%rsp), %xmm15
+        mulsd     %xmm1, %xmm13
+        subsd     %xmm15, %xmm6
+        mulsd     %xmm3, %xmm1
+        mulsd     %xmm2, %xmm3
+        movaps    %xmm12, %xmm15
+        movaps    %xmm13, %xmm4
+        mulsd     %xmm9, %xmm15
+        mulsd     %xmm0, %xmm12
+        addsd     %xmm15, %xmm4
+        addsd     %xmm0, %xmm12
+        movsd     %xmm6, -56(%rsp)
+        addsd     %xmm1, %xmm12
+        movsd     -24(%rsp), %xmm8
+        addsd     %xmm3, %xmm12
+        movsd     -56(%rsp), %xmm6
+        movsd     %xmm4, -24(%rsp)
+        movsd     -24(%rsp), %xmm14
+        subsd     %xmm14, %xmm13
+        addsd     %xmm13, %xmm15
+        movsd     %xmm15, -56(%rsp)
+        movaps    %xmm7, %xmm15
+        mulsd     %xmm8, %xmm15
+        mulsd     %xmm5, %xmm8
+        mulsd     %xmm6, %xmm5
+        mulsd     %xmm6, %xmm7
+        movsd     -24(%rsp), %xmm14
+        movaps    %xmm14, %xmm13
+        movsd     -56(%rsp), %xmm4
+        addsd     %xmm15, %xmm13
+        addsd     %xmm8, %xmm4
+        movsd     %xmm13, -24(%rsp)
+        addsd     %xmm5, %xmm4
+        movsd     -24(%rsp), %xmm13
+        addsd     %xmm7, %xmm4
+        subsd     %xmm13, %xmm15
+        addsd     %xmm4, %xmm12
+        addsd     %xmm15, %xmm14
+        movsd     %xmm14, -56(%rsp)
+        movaps    %xmm9, %xmm15
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm14
+        addsd     %xmm13, %xmm15
+        addsd     %xmm14, %xmm12
+        movsd     %xmm15, -24(%rsp)
+        movsd     -24(%rsp), %xmm15
+        subsd     %xmm15, %xmm9
+        addsd     %xmm9, %xmm13
+        movsd     %xmm13, -56(%rsp)
+        movsd     -24(%rsp), %xmm13
+        movsd     -56(%rsp), %xmm9
+        addsd     %xmm9, %xmm12
+        addsd     %xmm12, %xmm13
+        addsd     %xmm13, %xmm10
+        movsd     %xmm10, -32(%rsp)
+        movb      -25(%rsp), %dil
+        andb      $127, %dil
+        orb       %cl, %dil
+        movb      %dil, -25(%rsp)
+        movsd     -32(%rsp), %xmm10
+        cvtsd2ss  %xmm10, %xmm10
+        movss     %xmm10, (%r9)
+        ret
+
+L(6):
+        movaps    %xmm0, %xmm2
+        mulsd     %xmm0, %xmm2
+        movsd     1104+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        movb      -1(%rsp), %dl
+        andb      $-128, %dl
+        addsd     1096+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1088+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm2, %xmm1
+        addsd     1080+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm1, %xmm2
+        mulsd     %xmm0, %xmm2
+        addsd     %xmm2, %xmm0
+        movsd     %xmm0, -32(%rsp)
+        movb      -25(%rsp), %cl
+        andb      $127, %cl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movsd     -32(%rsp), %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(7):
+        movsd     1112+__ssinh_la_CoutTab(%rip), %xmm1
+        lea       __ssinh_la_CoutTab(%rip), %r8
+        mulsd     %xmm0, %xmm1
+        movsd     1144+__ssinh_la_CoutTab(%rip), %xmm2
+        movsd     1152+__ssinh_la_CoutTab(%rip), %xmm3
+        movq      8+__ssinh_la_CoutTab(%rip), %rdx
+        movq      %rdx, -16(%rsp)
+        addsd     1120+__ssinh_la_CoutTab(%rip), %xmm1
+        movsd     %xmm1, -40(%rsp)
+        movsd     -40(%rsp), %xmm4
+        movsd     1072+__ssinh_la_CoutTab(%rip), %xmm1
+        movl      -40(%rsp), %edx
+        movl      %edx, %esi
+        andl      $63, %esi
+        subsd     1120+__ssinh_la_CoutTab(%rip), %xmm4
+        mulsd     %xmm4, %xmm2
+        lea       (%rsi,%rsi), %ecx
+        mulsd     %xmm3, %xmm4
+        subsd     %xmm2, %xmm0
+        movsd     (%r8,%rcx,8), %xmm5
+        lea       1(%rsi,%rsi), %edi
+        shrl      $6, %edx
+        subsd     %xmm4, %xmm0
+        mulsd     %xmm0, %xmm1
+        addl      $1022, %edx
+        andl      $2047, %edx
+        addsd     1064+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1056+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1048+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     1040+__ssinh_la_CoutTab(%rip), %xmm1
+        mulsd     %xmm0, %xmm1
+        mulsd     %xmm0, %xmm1
+        addsd     %xmm0, %xmm1
+        mulsd     %xmm5, %xmm1
+        addsd     (%r8,%rdi,8), %xmm1
+        addsd     %xmm5, %xmm1
+        cmpl      $2046, %edx
+        ja        L(8)
+        movq      8+__ssinh_la_CoutTab(%rip), %rcx
+        shrq      $48, %rcx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm1, %xmm0
+        movsd     %xmm0, -32(%rsp)
+        jmp       L(9)
+
+L(8):
+        decl      %edx
+        andl      $2047, %edx
+        movzwl    -10(%rsp), %ecx
+        shll      $4, %edx
+        andl      $-32753, %ecx
+        orl       %edx, %ecx
+        movw      %cx, -10(%rsp)
+        movsd     -16(%rsp), %xmm0
+        mulsd     %xmm1, %xmm0
+        mulsd     1024+__ssinh_la_CoutTab(%rip), %xmm0
+        movsd     %xmm0, -32(%rsp)
+
+L(9):
+        movb      -25(%rsp), %cl
+        movb      -1(%rsp), %dl
+        andb      $127, %cl
+        andb      $-128, %dl
+        orb       %dl, %cl
+        movb      %cl, -25(%rsp)
+        movsd     -32(%rsp), %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(10):
+        movsd     1168+__ssinh_la_CoutTab(%rip), %xmm0
+        movl      $3, %eax
+        mulsd     %xmm2, %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(11):
+        movsd     __ssinh_la_CoutTab(%rip), %xmm0
+        addsd     1160+__ssinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm2, %xmm0
+        cvtsd2ss  %xmm0, %xmm0
+        movss     %xmm0, (%r9)
+        ret
+
+L(12):
+        movsd     1160+__ssinh_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm2, -24(%rsp)
+        pxor      %xmm2, %xmm2
+        cvtss2sd  (%rdi), %xmm2
+        movsd     -24(%rsp), %xmm1
+        movq      8+__ssinh_la_CoutTab(%rip), %rdx
+        addsd     %xmm1, %xmm2
+        cvtsd2ss  %xmm2, %xmm2
+        movq      %rdx, -16(%rsp)
+        movss     %xmm2, (%r9)
+        ret
+
+L(13):
+        addss     %xmm2, %xmm2
+        movss     %xmm2, (%r9)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_ssinh_cout_rare_internal,@function
+        .size	__svml_ssinh_cout_rare_internal,.-__svml_ssinh_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_ssinh_data_internal:
+        .long	1056964608
+        .long	1057148295
+        .long	1057336003
+        .long	1057527823
+        .long	1057723842
+        .long	1057924154
+        .long	1058128851
+        .long	1058338032
+        .long	1058551792
+        .long	1058770234
+        .long	1058993458
+        .long	1059221571
+        .long	1059454679
+        .long	1059692891
+        .long	1059936319
+        .long	1060185078
+        .long	1060439283
+        .long	1060699055
+        .long	1060964516
+        .long	1061235789
+        .long	1061513002
+        .long	1061796286
+        .long	1062085772
+        .long	1062381598
+        .long	1062683901
+        .long	1062992824
+        .long	1063308511
+        .long	1063631111
+        .long	1063960775
+        .long	1064297658
+        .long	1064641917
+        .long	1064993715
+        .long	0
+        .long	2999887785
+        .long	852465809
+        .long	3003046475
+        .long	2984291233
+        .long	3001644133
+        .long	854021668
+        .long	2997748242
+        .long	849550193
+        .long	2995541347
+        .long	851518274
+        .long	809701978
+        .long	2997656926
+        .long	2996185864
+        .long	2980965110
+        .long	3002882728
+        .long	844097402
+        .long	848217591
+        .long	2999013352
+        .long	2992006718
+        .long	831170615
+        .long	3002278818
+        .long	833158180
+        .long	3000769962
+        .long	2991891850
+        .long	2999994908
+        .long	2979965785
+        .long	2982419430
+        .long	2982221534
+        .long	2999469642
+        .long	833168438
+        .long	2987538264
+        .long	1056964608
+        .long	1056605107
+        .long	1056253309
+        .long	1055909050
+        .long	1055572167
+        .long	1055242503
+        .long	1054919903
+        .long	1054604216
+        .long	1054295293
+        .long	1053992990
+        .long	1053697164
+        .long	1053407678
+        .long	1053124394
+        .long	1052847181
+        .long	1052575908
+        .long	1052310447
+        .long	1052050675
+        .long	1051796470
+        .long	1051547711
+        .long	1051304283
+        .long	1051066071
+        .long	1050832963
+        .long	1050604850
+        .long	1050381626
+        .long	1050163184
+        .long	1049949424
+        .long	1049740243
+        .long	1049535546
+        .long	1049335234
+        .long	1049139215
+        .long	1048947395
+        .long	1048759687
+        .long	0
+        .long	2979149656
+        .long	824779830
+        .long	2991081034
+        .long	2973832926
+        .long	2974030822
+        .long	2971577177
+        .long	2991606300
+        .long	2983503242
+        .long	2992381354
+        .long	824769572
+        .long	2993890210
+        .long	822782007
+        .long	2983618110
+        .long	2990624744
+        .long	839828983
+        .long	835708794
+        .long	2994494120
+        .long	2972576502
+        .long	2987797256
+        .long	2989268318
+        .long	801313370
+        .long	843129666
+        .long	2987152739
+        .long	841161585
+        .long	2989359634
+        .long	845633060
+        .long	2993255525
+        .long	2975902625
+        .long	2994657867
+        .long	844077201
+        .long	2991499177
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .long	1220542464
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .long	1220542465
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .long	1118743631
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .long	1056964676
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .long	1042983605
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .long	1060204544
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .long	939916788
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .long	2147483648
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .long	1262485504
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .long	31
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .long	1118743630
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .long	1065353216
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .long	1042983511
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .long	1026206322
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .long	1007228001
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .long	985049251
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .long	1056964608
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .type	__svml_ssinh_data_internal,@object
+        .size	__svml_ssinh_data_internal,1920
+        .align 32
+
+__ssinh_la_CoutTab:
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	0
+        .long	1048019041
+        .long	1072704666
+        .long	1398474845
+        .long	3161559171
+        .long	3541402996
+        .long	1072716208
+        .long	2759177317
+        .long	1015903202
+        .long	410360776
+        .long	1072727877
+        .long	1269990655
+        .long	1013024446
+        .long	1828292879
+        .long	1072739672
+        .long	1255956747
+        .long	1016636974
+        .long	852742562
+        .long	1072751596
+        .long	667253587
+        .long	1010842135
+        .long	3490863953
+        .long	1072763649
+        .long	960797498
+        .long	3163997456
+        .long	2930322912
+        .long	1072775834
+        .long	2599499422
+        .long	3163762623
+        .long	1014845819
+        .long	1072788152
+        .long	3117910646
+        .long	3162607681
+        .long	3949972341
+        .long	1072800603
+        .long	2068408548
+        .long	1015962444
+        .long	828946858
+        .long	1072813191
+        .long	10642492
+        .long	1016988014
+        .long	2288159958
+        .long	1072825915
+        .long	2169144469
+        .long	1015924597
+        .long	1853186616
+        .long	1072838778
+        .long	3066496371
+        .long	1016705150
+        .long	1709341917
+        .long	1072851781
+        .long	2571168217
+        .long	1015201075
+        .long	4112506593
+        .long	1072864925
+        .long	2947355221
+        .long	1015419624
+        .long	2799960843
+        .long	1072878213
+        .long	1423655381
+        .long	1016070727
+        .long	171030293
+        .long	1072891646
+        .long	3526460132
+        .long	1015477354
+        .long	2992903935
+        .long	1072905224
+        .long	2218154406
+        .long	1016276769
+        .long	926591435
+        .long	1072918951
+        .long	3208833762
+        .long	3163962090
+        .long	887463927
+        .long	1072932827
+        .long	3596744163
+        .long	3161842742
+        .long	1276261410
+        .long	1072946854
+        .long	300981948
+        .long	1015732745
+        .long	569847338
+        .long	1072961034
+        .long	472945272
+        .long	3160339305
+        .long	1617004845
+        .long	1072975368
+        .long	82804944
+        .long	1011391354
+        .long	3049340112
+        .long	1072989858
+        .long	3062915824
+        .long	1014219171
+        .long	3577096743
+        .long	1073004506
+        .long	2951496418
+        .long	1014842263
+        .long	1990012071
+        .long	1073019314
+        .long	3529070563
+        .long	3163861769
+        .long	1453150082
+        .long	1073034283
+        .long	498154669
+        .long	3162536638
+        .long	917841882
+        .long	1073049415
+        .long	18715565
+        .long	1016707884
+        .long	3712504873
+        .long	1073064711
+        .long	88491949
+        .long	1016476236
+        .long	363667784
+        .long	1073080175
+        .long	813753950
+        .long	1016833785
+        .long	2956612997
+        .long	1073095806
+        .long	2118169751
+        .long	3163784129
+        .long	2186617381
+        .long	1073111608
+        .long	2270764084
+        .long	3164321289
+        .long	1719614413
+        .long	1073127582
+        .long	330458198
+        .long	3164331316
+        .long	1013258799
+        .long	1073143730
+        .long	1748797611
+        .long	3161177658
+        .long	3907805044
+        .long	1073160053
+        .long	2257091225
+        .long	3162598983
+        .long	1447192521
+        .long	1073176555
+        .long	1462857171
+        .long	3163563097
+        .long	1944781191
+        .long	1073193236
+        .long	3993278767
+        .long	3162772855
+        .long	919555682
+        .long	1073210099
+        .long	3121969534
+        .long	1013996802
+        .long	2571947539
+        .long	1073227145
+        .long	3558159064
+        .long	3164425245
+        .long	2604962541
+        .long	1073244377
+        .long	2614425274
+        .long	3164587768
+        .long	1110089947
+        .long	1073261797
+        .long	1451641639
+        .long	1016523249
+        .long	2568320822
+        .long	1073279406
+        .long	2732824428
+        .long	1015401491
+        .long	2966275557
+        .long	1073297207
+        .long	2176155324
+        .long	3160891335
+        .long	2682146384
+        .long	1073315202
+        .long	2082178513
+        .long	3164411995
+        .long	2191782032
+        .long	1073333393
+        .long	2960257726
+        .long	1014791238
+        .long	2069751141
+        .long	1073351782
+        .long	1562170675
+        .long	3163773257
+        .long	2990417245
+        .long	1073370371
+        .long	3683467745
+        .long	3164417902
+        .long	1434058175
+        .long	1073389163
+        .long	251133233
+        .long	1016134345
+        .long	2572866477
+        .long	1073408159
+        .long	878562433
+        .long	1016570317
+        .long	3092190715
+        .long	1073427362
+        .long	814012168
+        .long	3160571998
+        .long	4076559943
+        .long	1073446774
+        .long	2119478331
+        .long	3161806927
+        .long	2420883922
+        .long	1073466398
+        .long	2049810052
+        .long	1015168464
+        .long	3716502172
+        .long	1073486235
+        .long	2303740125
+        .long	1015091301
+        .long	777507147
+        .long	1073506289
+        .long	4282924205
+        .long	1016236109
+        .long	3706687593
+        .long	1073526560
+        .long	3521726939
+        .long	1014301643
+        .long	1242007932
+        .long	1073547053
+        .long	1132034716
+        .long	3164388407
+        .long	3707479175
+        .long	1073567768
+        .long	3613079303
+        .long	1015213314
+        .long	64696965
+        .long	1073588710
+        .long	1768797490
+        .long	1016865536
+        .long	863738719
+        .long	1073609879
+        .long	1326992220
+        .long	3163661773
+        .long	3884662774
+        .long	1073631278
+        .long	2158611599
+        .long	1015258761
+        .long	2728693978
+        .long	1073652911
+        .long	396109971
+        .long	3164511267
+        .long	3999357479
+        .long	1073674779
+        .long	2258941616
+        .long	1016973300
+        .long	1533953344
+        .long	1073696886
+        .long	769171851
+        .long	1016714209
+        .long	2174652632
+        .long	1073719233
+        .long	4087714590
+        .long	1015498835
+        .long	0
+        .long	1073741824
+        .long	0
+        .long	0
+        .long	0
+        .long	1071644672
+        .long	1431652600
+        .long	1069897045
+        .long	1431670732
+        .long	1067799893
+        .long	984555731
+        .long	1065423122
+        .long	472530941
+        .long	1062650218
+        .long	1431655765
+        .long	1069897045
+        .long	286331153
+        .long	1065423121
+        .long	436314138
+        .long	1059717536
+        .long	2773927732
+        .long	1053236707
+        .long	1697350398
+        .long	1079448903
+        .long	0
+        .long	1127743488
+        .long	33554432
+        .long	1101004800
+        .long	2684354560
+        .long	1079401119
+        .long	4277796864
+        .long	1065758274
+        .long	3164486458
+        .long	1025308570
+        .long	1
+        .long	1048576
+        .long	4294967295
+        .long	2146435071
+        .long	3671843104
+        .long	1067178892
+        .long	3875694624
+        .long	1077247184
+        .type	__ssinh_la_CoutTab,@object
+        .size	__ssinh_la_CoutTab,1192
+        .space 8, 0x00 	
+        .align 16
+
+.FLT_100:
+        .long	0x00000000,0x80000000,0x00000000,0x00000000
+        .type	.FLT_100,@object
+        .size	.FLT_100,16
diff --git a/sysdeps/x86_64/fpu/svml_d_sinh2_core.S b/sysdeps/x86_64/fpu/svml_d_sinh2_core.S
new file mode 100644
index 0000000000..91bda7318c
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_sinh2_core.S
@@ -0,0 +1,29 @@ 
+/* Function sinh vectorized with SSE2.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include "svml_d_wrapper_impl.h"
+
+	.text
+ENTRY (_ZGVbN2v_sinh)
+WRAPPER_IMPL_SSE2 sinh
+END (_ZGVbN2v_sinh)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN2v_sinh)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_d_sinh4_core.S b/sysdeps/x86_64/fpu/svml_d_sinh4_core.S
new file mode 100644
index 0000000000..7b8091946a
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_sinh4_core.S
@@ -0,0 +1,29 @@ 
+/* Function sinh vectorized with AVX2, wrapper version.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include "svml_d_wrapper_impl.h"
+
+	.text
+ENTRY (_ZGVdN4v_sinh)
+WRAPPER_IMPL_AVX _ZGVbN2v_sinh
+END (_ZGVdN4v_sinh)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN4v_sinh)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_d_sinh4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_sinh4_core_avx.S
new file mode 100644
index 0000000000..f773bf110c
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_sinh4_core_avx.S
@@ -0,0 +1,25 @@ 
+/* Function sinh vectorized in AVX ISA as wrapper to SSE4 ISA version.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include "svml_d_wrapper_impl.h"
+
+	.text
+ENTRY (_ZGVcN4v_sinh)
+WRAPPER_IMPL_AVX _ZGVbN2v_sinh
+END (_ZGVcN4v_sinh)
diff --git a/sysdeps/x86_64/fpu/svml_d_sinh8_core.S b/sysdeps/x86_64/fpu/svml_d_sinh8_core.S
new file mode 100644
index 0000000000..153a18429c
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_sinh8_core.S
@@ -0,0 +1,25 @@ 
+/* Function sinh vectorized with AVX-512, wrapper to AVX2.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include "svml_d_wrapper_impl.h"
+
+	.text
+ENTRY (_ZGVeN8v_sinh)
+WRAPPER_IMPL_AVX512 _ZGVdN4v_sinh
+END (_ZGVeN8v_sinh)
diff --git a/sysdeps/x86_64/fpu/svml_s_sinhf16_core.S b/sysdeps/x86_64/fpu/svml_s_sinhf16_core.S
new file mode 100644
index 0000000000..f8dc7da336
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_sinhf16_core.S
@@ -0,0 +1,25 @@ 
+/* Function sinhf vectorized with AVX-512. Wrapper to AVX2 version.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include "svml_s_wrapper_impl.h"
+
+	.text
+ENTRY (_ZGVeN16v_sinhf)
+WRAPPER_IMPL_AVX512 _ZGVdN8v_sinhf
+END (_ZGVeN16v_sinhf)
diff --git a/sysdeps/x86_64/fpu/svml_s_sinhf4_core.S b/sysdeps/x86_64/fpu/svml_s_sinhf4_core.S
new file mode 100644
index 0000000000..d065d03eb6
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_sinhf4_core.S
@@ -0,0 +1,29 @@ 
+/* Function sinhf vectorized with SSE2, wrapper version.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include "svml_s_wrapper_impl.h"
+
+	.text
+ENTRY (_ZGVbN4v_sinhf)
+WRAPPER_IMPL_SSE2 sinhf
+END (_ZGVbN4v_sinhf)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN4v_sinhf)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_s_sinhf8_core.S b/sysdeps/x86_64/fpu/svml_s_sinhf8_core.S
new file mode 100644
index 0000000000..1194699a76
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_sinhf8_core.S
@@ -0,0 +1,29 @@ 
+/* Function sinhf vectorized with AVX2, wrapper version.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include "svml_s_wrapper_impl.h"
+
+	.text
+ENTRY (_ZGVdN8v_sinhf)
+WRAPPER_IMPL_AVX _ZGVbN4v_sinhf
+END (_ZGVdN8v_sinhf)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN8v_sinhf)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_s_sinhf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_sinhf8_core_avx.S
new file mode 100644
index 0000000000..82c6b9b239
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_sinhf8_core_avx.S
@@ -0,0 +1,25 @@ 
+/* Function sinhf vectorized in AVX ISA as wrapper to SSE4 ISA version.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include "svml_s_wrapper_impl.h"
+
+        .text
+ENTRY (_ZGVcN8v_sinhf)
+WRAPPER_IMPL_AVX _ZGVbN4v_sinhf
+END (_ZGVcN8v_sinhf)
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx.c
new file mode 100644
index 0000000000..55aa36d866
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx.c
@@ -0,0 +1 @@ 
+#include "test-double-libmvec-sinh.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx2.c b/sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx2.c
new file mode 100644
index 0000000000..55aa36d866
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx2.c
@@ -0,0 +1 @@ 
+#include "test-double-libmvec-sinh.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx512f.c b/sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx512f.c
new file mode 100644
index 0000000000..55aa36d866
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sinh-avx512f.c
@@ -0,0 +1 @@ 
+#include "test-double-libmvec-sinh.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sinh.c b/sysdeps/x86_64/fpu/test-double-libmvec-sinh.c
new file mode 100644
index 0000000000..82dcaf745d
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sinh.c
@@ -0,0 +1,3 @@ 
+#define LIBMVEC_TYPE double
+#define LIBMVEC_FUNC sinh
+#include "test-vector-abi-arg1.h"
diff --git a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
index 4ad2fc8868..a0bdd99971 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
@@ -45,6 +45,7 @@  VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVbN2vv_hypot)
 VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVbN2v_log10)
 VECTOR_WRAPPER (WRAPPER_NAME (log1p), _ZGVbN2v_log1p)
 VECTOR_WRAPPER (WRAPPER_NAME (log2), _ZGVbN2v_log2)
+VECTOR_WRAPPER (WRAPPER_NAME (sinh), _ZGVbN2v_sinh)
 
 #define VEC_INT_TYPE __m128i
 
diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
index f48641aa6a..3900d7e81b 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
@@ -48,6 +48,7 @@  VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVdN4vv_hypot)
 VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVdN4v_log10)
 VECTOR_WRAPPER (WRAPPER_NAME (log1p), _ZGVdN4v_log1p)
 VECTOR_WRAPPER (WRAPPER_NAME (log2), _ZGVdN4v_log2)
+VECTOR_WRAPPER (WRAPPER_NAME (sinh), _ZGVdN4v_sinh)
 
 #ifndef __ILP32__
 # define VEC_INT_TYPE __m256i
diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
index 91ca44a4b0..80c30b6a9c 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
@@ -45,6 +45,7 @@  VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVcN4vv_hypot)
 VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVcN4v_log10)
 VECTOR_WRAPPER (WRAPPER_NAME (log1p), _ZGVcN4v_log1p)
 VECTOR_WRAPPER (WRAPPER_NAME (log2), _ZGVcN4v_log2)
+VECTOR_WRAPPER (WRAPPER_NAME (sinh), _ZGVcN4v_sinh)
 
 #define VEC_INT_TYPE __m128i
 
diff --git a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
index fa9b82c02d..512b551a46 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
@@ -45,6 +45,7 @@  VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVeN8vv_hypot)
 VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVeN8v_log10)
 VECTOR_WRAPPER (WRAPPER_NAME (log1p), _ZGVeN8v_log1p)
 VECTOR_WRAPPER (WRAPPER_NAME (log2), _ZGVeN8v_log2)
+VECTOR_WRAPPER (WRAPPER_NAME (sinh), _ZGVeN8v_sinh)
 
 #ifndef __ILP32__
 # define VEC_INT_TYPE __m512i
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx.c b/sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx.c
new file mode 100644
index 0000000000..93986945f3
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx.c
@@ -0,0 +1 @@ 
+#include "test-float-libmvec-sinhf.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx2.c b/sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx2.c
new file mode 100644
index 0000000000..93986945f3
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx2.c
@@ -0,0 +1 @@ 
+#include "test-float-libmvec-sinhf.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx512f.c b/sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx512f.c
new file mode 100644
index 0000000000..93986945f3
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sinhf-avx512f.c
@@ -0,0 +1 @@ 
+#include "test-float-libmvec-sinhf.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sinhf.c b/sysdeps/x86_64/fpu/test-float-libmvec-sinhf.c
new file mode 100644
index 0000000000..fb1f3c5c48
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sinhf.c
@@ -0,0 +1,3 @@ 
+#define LIBMVEC_TYPE float
+#define LIBMVEC_FUNC sinhf
+#include "test-vector-abi-arg1.h"
diff --git a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
index 26efef1490..c6bf2f5f6b 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
@@ -45,6 +45,7 @@  VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVeN16vv_hypotf)
 VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVeN16v_log10f)
 VECTOR_WRAPPER (WRAPPER_NAME (log1pf), _ZGVeN16v_log1pf)
 VECTOR_WRAPPER (WRAPPER_NAME (log2f), _ZGVeN16v_log2f)
+VECTOR_WRAPPER (WRAPPER_NAME (sinhf), _ZGVeN16v_sinhf)
 
 #define VEC_INT_TYPE __m512i
 
diff --git a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
index 9c484d4a15..b17bf08eb9 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
@@ -45,6 +45,7 @@  VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVbN4vv_hypotf)
 VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVbN4v_log10f)
 VECTOR_WRAPPER (WRAPPER_NAME (log1pf), _ZGVbN4v_log1pf)
 VECTOR_WRAPPER (WRAPPER_NAME (log2f), _ZGVbN4v_log2f)
+VECTOR_WRAPPER (WRAPPER_NAME (sinhf), _ZGVbN4v_sinhf)
 
 #define VEC_INT_TYPE __m128i
 
diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
index 220f66567b..ede717bb48 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
@@ -48,6 +48,7 @@  VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVdN8vv_hypotf)
 VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVdN8v_log10f)
 VECTOR_WRAPPER (WRAPPER_NAME (log1pf), _ZGVdN8v_log1pf)
 VECTOR_WRAPPER (WRAPPER_NAME (log2f), _ZGVdN8v_log2f)
+VECTOR_WRAPPER (WRAPPER_NAME (sinhf), _ZGVdN8v_sinhf)
 
 /* Redefinition of wrapper to be compatible with _ZGVdN8vvv_sincosf.  */
 #undef VECTOR_WRAPPER_fFF
diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
index dbc69fb9d4..ec5b13aac3 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
@@ -45,6 +45,7 @@  VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVcN8vv_hypotf)
 VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVcN8v_log10f)
 VECTOR_WRAPPER (WRAPPER_NAME (log1pf), _ZGVcN8v_log1pf)
 VECTOR_WRAPPER (WRAPPER_NAME (log2f), _ZGVcN8v_log2f)
+VECTOR_WRAPPER (WRAPPER_NAME (sinhf), _ZGVcN8v_sinhf)
 
 #define VEC_INT_TYPE __m128i