diff mbox series

[v2,31/42] x86-64: Add vector log10/log10f implementation to libmvec

Message ID 20211209050508.2614536-32-skpgkp2@gmail.com
State New
Headers show
Series x86-64: Add vector math functions to libmvec | expand

Commit Message

Sunil Pandey Dec. 9, 2021, 5:04 a.m. UTC
Implement vectorized log10/log10f containing SSE, AVX, AVX2 and
AVX512 versions for libmvec as per vector ABI.  It also contains
accuracy and ABI tests for vector log10/log10f 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_log102_core-sse2.S   |   20 +
 .../x86_64/fpu/multiarch/svml_d_log102_core.c |   27 +
 .../fpu/multiarch/svml_d_log102_core_sse4.S   | 3958 +++++++++++++++++
 .../fpu/multiarch/svml_d_log104_core-sse.S    |   20 +
 .../x86_64/fpu/multiarch/svml_d_log104_core.c |   27 +
 .../fpu/multiarch/svml_d_log104_core_avx2.S   | 3782 ++++++++++++++++
 .../fpu/multiarch/svml_d_log108_core-avx2.S   |   20 +
 .../x86_64/fpu/multiarch/svml_d_log108_core.c |   27 +
 .../fpu/multiarch/svml_d_log108_core_avx512.S | 1082 +++++
 .../fpu/multiarch/svml_s_log10f16_core-avx2.S |   20 +
 .../fpu/multiarch/svml_s_log10f16_core.c      |   28 +
 .../multiarch/svml_s_log10f16_core_avx512.S   |  727 +++
 .../fpu/multiarch/svml_s_log10f4_core-sse2.S  |   20 +
 .../fpu/multiarch/svml_s_log10f4_core.c       |   28 +
 .../fpu/multiarch/svml_s_log10f4_core_sse4.S  | 1968 ++++++++
 .../fpu/multiarch/svml_s_log10f8_core-sse.S   |   20 +
 .../fpu/multiarch/svml_s_log10f8_core.c       |   28 +
 .../fpu/multiarch/svml_s_log10f8_core_avx2.S  | 1861 ++++++++
 sysdeps/x86_64/fpu/svml_d_log102_core.S       |   29 +
 sysdeps/x86_64/fpu/svml_d_log104_core.S       |   29 +
 sysdeps/x86_64/fpu/svml_d_log104_core_avx.S   |   25 +
 sysdeps/x86_64/fpu/svml_d_log108_core.S       |   25 +
 sysdeps/x86_64/fpu/svml_s_log10f16_core.S     |   25 +
 sysdeps/x86_64/fpu/svml_s_log10f4_core.S      |   29 +
 sysdeps/x86_64/fpu/svml_s_log10f8_core.S      |   29 +
 sysdeps/x86_64/fpu/svml_s_log10f8_core_avx.S  |   25 +
 .../fpu/test-double-libmvec-log10-avx.c       |    1 +
 .../fpu/test-double-libmvec-log10-avx2.c      |    1 +
 .../fpu/test-double-libmvec-log10-avx512f.c   |    1 +
 .../x86_64/fpu/test-double-libmvec-log10.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 +
 .../fpu/test-float-libmvec-log10f-avx.c       |    1 +
 .../fpu/test-float-libmvec-log10f-avx2.c      |    1 +
 .../fpu/test-float-libmvec-log10f-avx512f.c   |    1 +
 .../x86_64/fpu/test-float-libmvec-log10f.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, 13950 insertions(+), 1 deletion(-)
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log102_core-sse2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log102_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log104_core-sse.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log104_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log108_core-avx2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log108_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log108_core_avx512.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core-avx2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core_avx512.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core-sse2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core_sse4.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core-sse.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core_avx2.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_log102_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_log104_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_log104_core_avx.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_log108_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_log10f16_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_log10f4_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_log10f8_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_log10f8_core_avx.S
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log10-avx.c
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log10-avx2.c
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log10-avx512f.c
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log10.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx2.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx512f.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-log10f.c
diff mbox series

Patch

diff --git a/bits/libm-simd-decl-stubs.h b/bits/libm-simd-decl-stubs.h
index 4e08de9936..005b578162 100644
--- a/bits/libm-simd-decl-stubs.h
+++ b/bits/libm-simd-decl-stubs.h
@@ -263,4 +263,15 @@ 
 #define __DECL_SIMD_hypotf32x
 #define __DECL_SIMD_hypotf64x
 #define __DECL_SIMD_hypotf128x
+
+#define __DECL_SIMD_log10
+#define __DECL_SIMD_log10f
+#define __DECL_SIMD_log10l
+#define __DECL_SIMD_log10f16
+#define __DECL_SIMD_log10f32
+#define __DECL_SIMD_log10f64
+#define __DECL_SIMD_log10f128
+#define __DECL_SIMD_log10f32x
+#define __DECL_SIMD_log10f64x
+#define __DECL_SIMD_log10f128x
 #endif
diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h
index 32f487c109..7abbb2c116 100644
--- a/math/bits/mathcalls.h
+++ b/math/bits/mathcalls.h
@@ -104,7 +104,7 @@  __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent));
 __MATHCALL_VEC (log,, (_Mdouble_ __x));
 
 /* Base-ten logarithm of X.  */
-__MATHCALL (log10,, (_Mdouble_ __x));
+__MATHCALL_VEC (log10,, (_Mdouble_ __x));
 
 /* Break VALUE into integral and fractional parts.  */
 __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2));
diff --git a/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist b/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
index 4fbc8629a1..7c2c633d77 100644
--- a/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
@@ -59,6 +59,7 @@  GLIBC_2.35 _ZGVbN2v_erfc F
 GLIBC_2.35 _ZGVbN2v_exp10 F
 GLIBC_2.35 _ZGVbN2v_exp2 F
 GLIBC_2.35 _ZGVbN2v_expm1 F
+GLIBC_2.35 _ZGVbN2v_log10 F
 GLIBC_2.35 _ZGVbN2vv_atan2 F
 GLIBC_2.35 _ZGVbN2vv_hypot F
 GLIBC_2.35 _ZGVbN4v_acosf F
@@ -74,6 +75,7 @@  GLIBC_2.35 _ZGVbN4v_erff F
 GLIBC_2.35 _ZGVbN4v_exp10f F
 GLIBC_2.35 _ZGVbN4v_exp2f F
 GLIBC_2.35 _ZGVbN4v_expm1f F
+GLIBC_2.35 _ZGVbN4v_log10f F
 GLIBC_2.35 _ZGVbN4vv_atan2f F
 GLIBC_2.35 _ZGVbN4vv_hypotf F
 GLIBC_2.35 _ZGVcN4v_acos F
@@ -89,6 +91,7 @@  GLIBC_2.35 _ZGVcN4v_erfc F
 GLIBC_2.35 _ZGVcN4v_exp10 F
 GLIBC_2.35 _ZGVcN4v_exp2 F
 GLIBC_2.35 _ZGVcN4v_expm1 F
+GLIBC_2.35 _ZGVcN4v_log10 F
 GLIBC_2.35 _ZGVcN4vv_atan2 F
 GLIBC_2.35 _ZGVcN4vv_hypot F
 GLIBC_2.35 _ZGVcN8v_acosf F
@@ -104,6 +107,7 @@  GLIBC_2.35 _ZGVcN8v_erff F
 GLIBC_2.35 _ZGVcN8v_exp10f F
 GLIBC_2.35 _ZGVcN8v_exp2f F
 GLIBC_2.35 _ZGVcN8v_expm1f F
+GLIBC_2.35 _ZGVcN8v_log10f F
 GLIBC_2.35 _ZGVcN8vv_atan2f F
 GLIBC_2.35 _ZGVcN8vv_hypotf F
 GLIBC_2.35 _ZGVdN4v_acos F
@@ -119,6 +123,7 @@  GLIBC_2.35 _ZGVdN4v_erfc F
 GLIBC_2.35 _ZGVdN4v_exp10 F
 GLIBC_2.35 _ZGVdN4v_exp2 F
 GLIBC_2.35 _ZGVdN4v_expm1 F
+GLIBC_2.35 _ZGVdN4v_log10 F
 GLIBC_2.35 _ZGVdN4vv_atan2 F
 GLIBC_2.35 _ZGVdN4vv_hypot F
 GLIBC_2.35 _ZGVdN8v_acosf F
@@ -134,6 +139,7 @@  GLIBC_2.35 _ZGVdN8v_erff F
 GLIBC_2.35 _ZGVdN8v_exp10f F
 GLIBC_2.35 _ZGVdN8v_exp2f F
 GLIBC_2.35 _ZGVdN8v_expm1f F
+GLIBC_2.35 _ZGVdN8v_log10f F
 GLIBC_2.35 _ZGVdN8vv_atan2f F
 GLIBC_2.35 _ZGVdN8vv_hypotf F
 GLIBC_2.35 _ZGVeN16v_acosf F
@@ -149,6 +155,7 @@  GLIBC_2.35 _ZGVeN16v_erff F
 GLIBC_2.35 _ZGVeN16v_exp10f F
 GLIBC_2.35 _ZGVeN16v_exp2f F
 GLIBC_2.35 _ZGVeN16v_expm1f F
+GLIBC_2.35 _ZGVeN16v_log10f F
 GLIBC_2.35 _ZGVeN16vv_atan2f F
 GLIBC_2.35 _ZGVeN16vv_hypotf F
 GLIBC_2.35 _ZGVeN8v_acos F
@@ -164,5 +171,6 @@  GLIBC_2.35 _ZGVeN8v_erfc F
 GLIBC_2.35 _ZGVeN8v_exp10 F
 GLIBC_2.35 _ZGVeN8v_exp2 F
 GLIBC_2.35 _ZGVeN8v_expm1 F
+GLIBC_2.35 _ZGVeN8v_log10 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 0f43244b3f..8fb29e5869 100644
--- a/sysdeps/x86/fpu/bits/math-vector.h
+++ b/sysdeps/x86/fpu/bits/math-vector.h
@@ -118,6 +118,10 @@ 
 #  define __DECL_SIMD_hypot __DECL_SIMD_x86_64
 #  undef __DECL_SIMD_hypotf
 #  define __DECL_SIMD_hypotf __DECL_SIMD_x86_64
+#  undef __DECL_SIMD_log10
+#  define __DECL_SIMD_log10 __DECL_SIMD_x86_64
+#  undef __DECL_SIMD_log10f
+#  define __DECL_SIMD_log10f __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 42f4adbd06..de11e0c929 100644
--- a/sysdeps/x86/fpu/finclude/math-vector-fortran.h
+++ b/sysdeps/x86/fpu/finclude/math-vector-fortran.h
@@ -58,6 +58,8 @@ 
 !GCC$ builtin (expm1f) attributes simd (notinbranch) if('x86_64')
 !GCC$ builtin (hypot) attributes simd (notinbranch) if('x86_64')
 !GCC$ builtin (hypotf) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (log10) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (log10f) attributes simd (notinbranch) if('x86_64')
 
 !GCC$ builtin (cos) attributes simd (notinbranch) if('x32')
 !GCC$ builtin (cosf) attributes simd (notinbranch) if('x32')
@@ -101,3 +103,5 @@ 
 !GCC$ builtin (expm1f) attributes simd (notinbranch) if('x32')
 !GCC$ builtin (hypot) attributes simd (notinbranch) if('x32')
 !GCC$ builtin (hypotf) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (log10) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (log10f) attributes simd (notinbranch) if('x32')
diff --git a/sysdeps/x86_64/fpu/Makeconfig b/sysdeps/x86_64/fpu/Makeconfig
index c8040e39d1..c67a1a17b8 100644
--- a/sysdeps/x86_64/fpu/Makeconfig
+++ b/sysdeps/x86_64/fpu/Makeconfig
@@ -40,6 +40,7 @@  libmvec-funcs = \
   expm1 \
   hypot \
   log \
+  log10 \
   pow \
   sin \
   sincos \
diff --git a/sysdeps/x86_64/fpu/Versions b/sysdeps/x86_64/fpu/Versions
index 6beaa3bf8b..563781cc04 100644
--- a/sysdeps/x86_64/fpu/Versions
+++ b/sysdeps/x86_64/fpu/Versions
@@ -27,6 +27,7 @@  libmvec {
     _ZGVbN2v_exp10; _ZGVcN4v_exp10; _ZGVdN4v_exp10; _ZGVeN8v_exp10;
     _ZGVbN2v_exp2; _ZGVcN4v_exp2; _ZGVdN4v_exp2; _ZGVeN8v_exp2;
     _ZGVbN2v_expm1; _ZGVcN4v_expm1; _ZGVdN4v_expm1; _ZGVeN8v_expm1;
+    _ZGVbN2v_log10; _ZGVcN4v_log10; _ZGVdN4v_log10; _ZGVeN8v_log10;
     _ZGVbN2vv_atan2; _ZGVcN4vv_atan2; _ZGVdN4vv_atan2; _ZGVeN8vv_atan2;
     _ZGVbN2vv_hypot; _ZGVcN4vv_hypot; _ZGVdN4vv_hypot; _ZGVeN8vv_hypot;
     _ZGVbN4v_acosf; _ZGVcN8v_acosf; _ZGVdN8v_acosf; _ZGVeN16v_acosf;
@@ -42,6 +43,7 @@  libmvec {
     _ZGVbN4v_exp10f; _ZGVcN8v_exp10f; _ZGVdN8v_exp10f; _ZGVeN16v_exp10f;
     _ZGVbN4v_exp2f; _ZGVcN8v_exp2f; _ZGVdN8v_exp2f; _ZGVeN16v_exp2f;
     _ZGVbN4v_expm1f; _ZGVcN8v_expm1f; _ZGVdN8v_expm1f; _ZGVeN16v_expm1f;
+    _ZGVbN4v_log10f; _ZGVcN8v_log10f; _ZGVdN8v_log10f; _ZGVeN16v_log10f;
     _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 577ffd239a..764311972a 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -1738,6 +1738,26 @@  float: 2
 float128: 1
 ldouble: 1
 
+Function: "log10_vlen16":
+float: 1
+
+Function: "log10_vlen2":
+double: 1
+
+Function: "log10_vlen4":
+double: 1
+float: 1
+
+Function: "log10_vlen4_avx2":
+double: 1
+
+Function: "log10_vlen8":
+double: 1
+float: 1
+
+Function: "log10_vlen8_avx2":
+float: 1
+
 Function: "log1p":
 double: 1
 float: 1
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core-sse2.S
new file mode 100644
index 0000000000..e654db6d6c
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core-sse2.S
@@ -0,0 +1,20 @@ 
+/* SSE2 version of vectorized log10, 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_log10 _ZGVbN2v_log10_sse2
+#include "../svml_d_log102_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core.c
new file mode 100644
index 0000000000..1c775f33b6
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core.c
@@ -0,0 +1,27 @@ 
+/* Multiple versions of vectorized log10, 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_log10
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN2v_log10, __GI__ZGVbN2v_log10, __redirect__ZGVbN2v_log10)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S
new file mode 100644
index 0000000000..049ccfcaa1
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S
@@ -0,0 +1,3958 @@ 
+/* Function log10 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:
+ *
+ *    Get short reciprocal approximation Rcp ~ 1/mantissa(x)
+ *    R = Rcp*x - 1.0
+ *    log10(x) = k*log10(2.0) - log10(Rcp) + poly_approximation(R)
+ *       log10(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.sse4,"ax",@progbits
+ENTRY(_ZGVbN2v_log10_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, %xmm6
+
+/* preserve mantissa, set input exponent to 2^(-10) */
+        movups    8576+__svml_dlog10_data_internal(%rip), %xmm5
+
+/* check range */
+        movaps    %xmm6, %xmm3
+        andps     %xmm6, %xmm5
+        movaps    %xmm6, %xmm2
+        orps      8640+__svml_dlog10_data_internal(%rip), %xmm5
+        lea       -4222912+__svml_dlog10_data_internal(%rip), %r8
+
+/* reciprocal approximation good to at least 11 bits */
+        cvtpd2ps  %xmm5, %xmm7
+        cmpltpd   8704+__svml_dlog10_data_internal(%rip), %xmm3
+        cmpnlepd  8768+__svml_dlog10_data_internal(%rip), %xmm2
+        movlhps   %xmm7, %xmm7
+        orps      %xmm2, %xmm3
+        rcpps     %xmm7, %xmm0
+
+/* combine and get argument value range mask */
+        movmskpd  %xmm3, %edx
+
+/* round reciprocal to nearest integer, will have 1+9 mantissa bits */
+        movups    .FLT_16(%rip), %xmm1
+
+/* argument reduction */
+        movups    8832+__svml_dlog10_data_internal(%rip), %xmm2
+        cvtps2pd  %xmm0, %xmm4
+        addpd     %xmm1, %xmm4
+        subpd     %xmm1, %xmm4
+        andps     %xmm5, %xmm2
+
+/* exponent bits */
+        movaps    %xmm6, %xmm0
+        subpd     %xmm2, %xmm5
+        mulpd     %xmm4, %xmm2
+        mulpd     %xmm4, %xmm5
+        subpd     8960+__svml_dlog10_data_internal(%rip), %xmm2
+        addpd     %xmm2, %xmm5
+        psrlq     $20, %xmm0
+
+/*
+ * prepare table index
+ * table lookup
+ */
+        movaps    %xmm4, %xmm3
+        pshufd    $221, %xmm0, %xmm7
+        psrlq     $40, %xmm3
+
+/* biased exponent in DP format */
+        cvtdq2pd  %xmm7, %xmm0
+        movd      %xmm3, %eax
+
+/* exponent*log(2.0) */
+        movups    9152+__svml_dlog10_data_internal(%rip), %xmm7
+        cmpltpd   %xmm4, %xmm7
+
+/* polynomial */
+        movups    8448+__svml_dlog10_data_internal(%rip), %xmm4
+        mulpd     %xmm5, %xmm4
+        pshufd    $2, %xmm3, %xmm2
+        movaps    %xmm5, %xmm3
+        mulpd     %xmm5, %xmm3
+        movd      %xmm2, %ecx
+        movups    8480+__svml_dlog10_data_internal(%rip), %xmm2
+        andps     9216+__svml_dlog10_data_internal(%rip), %xmm7
+        addpd     8464+__svml_dlog10_data_internal(%rip), %xmm4
+        mulpd     %xmm5, %xmm2
+        mulpd     %xmm3, %xmm4
+        addpd     8496+__svml_dlog10_data_internal(%rip), %xmm2
+        addpd     %xmm4, %xmm2
+        orps      9280+__svml_dlog10_data_internal(%rip), %xmm7
+        subpd     %xmm7, %xmm0
+        mulpd     %xmm2, %xmm3
+        mulpd     9344+__svml_dlog10_data_internal(%rip), %xmm0
+        movups    8512+__svml_dlog10_data_internal(%rip), %xmm7
+        mulpd     %xmm5, %xmm7
+        movslq    %eax, %rax
+        addpd     %xmm3, %xmm7
+        movslq    %ecx, %rcx
+        movsd     (%r8,%rax), %xmm1
+        movhpd    (%r8,%rcx), %xmm1
+
+/* reconstruction */
+        addpd     %xmm7, %xmm1
+        addpd     %xmm1, %xmm0
+        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):
+        movups    %xmm6, 192(%rsp)
+        movups    %xmm0, 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      $2, %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), %xmm0
+        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,8), %rdi
+        lea       256(%rsp,%r12,8), %rsi
+        call      __svml_dlog10_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVbN2v_log10_sse4)
+
+        .align    16,0x90
+
+__svml_dlog10_cout_rare_internal:
+
+        cfi_startproc
+
+        xorl      %eax, %eax
+        movzwl    6(%rdi), %edx
+        andl      $32752, %edx
+        cmpl      $32752, %edx
+        je        L(11)
+        movsd     (%rdi), %xmm2
+        xorl      %ecx, %ecx
+        movsd     %xmm2, -8(%rsp)
+        movzwl    -2(%rsp), %edx
+        testl     $32752, %edx
+        jne       L(6)
+        movsd     1600+__dlog10_la_CoutTab(%rip), %xmm0
+        movl      $-60, %ecx
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm2, -8(%rsp)
+
+L(6):
+        movsd     1608+__dlog10_la_CoutTab(%rip), %xmm0
+        comisd    %xmm0, %xmm2
+        jbe       L(8)
+        movaps    %xmm2, %xmm1
+        subsd     .FLT_90(%rip), %xmm1
+        movsd     %xmm1, -16(%rsp)
+        andb      $127, -9(%rsp)
+        movsd     -16(%rsp), %xmm0
+        comisd    1592+__dlog10_la_CoutTab(%rip), %xmm0
+        jbe       L(7)
+        movsd     %xmm2, -16(%rsp)
+        pxor      %xmm7, %xmm7
+        movzwl    -10(%rsp), %edi
+        lea       __dlog10_la_CoutTab(%rip), %r10
+        andl      $-32753, %edi
+        addl      $16368, %edi
+        movw      %di, -10(%rsp)
+        movsd     -16(%rsp), %xmm3
+        movaps    %xmm3, %xmm1
+        movaps    %xmm3, %xmm2
+        movsd     1688+__dlog10_la_CoutTab(%rip), %xmm5
+        movzwl    -2(%rsp), %edx
+        andl      $32752, %edx
+        addsd     1576+__dlog10_la_CoutTab(%rip), %xmm1
+        addsd     1584+__dlog10_la_CoutTab(%rip), %xmm2
+        movsd     %xmm1, -24(%rsp)
+        movl      -24(%rsp), %r8d
+        movsd     %xmm2, -24(%rsp)
+        andl      $127, %r8d
+        movsd     -24(%rsp), %xmm8
+        movsd     1560+__dlog10_la_CoutTab(%rip), %xmm9
+        movsd     1568+__dlog10_la_CoutTab(%rip), %xmm0
+        shrl      $4, %edx
+        subsd     1584+__dlog10_la_CoutTab(%rip), %xmm8
+        lea       (%r8,%r8,2), %r9d
+        movsd     (%r10,%r9,8), %xmm6
+        lea       -1023(%rcx,%rdx), %ecx
+        cvtsi2sd  %ecx, %xmm7
+        subsd     %xmm8, %xmm3
+        mulsd     %xmm6, %xmm8
+        mulsd     %xmm7, %xmm9
+        subsd     1624+__dlog10_la_CoutTab(%rip), %xmm8
+        mulsd     %xmm3, %xmm6
+        mulsd     %xmm0, %xmm7
+        addsd     8(%r10,%r9,8), %xmm9
+        addsd     16(%r10,%r9,8), %xmm7
+        addsd     %xmm8, %xmm9
+        movaps    %xmm8, %xmm4
+        addsd     %xmm6, %xmm4
+        mulsd     %xmm4, %xmm5
+        addsd     1680+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1672+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1664+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1656+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1648+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1640+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1632+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm5, %xmm8
+        mulsd     %xmm6, %xmm5
+        addsd     %xmm5, %xmm7
+        addsd     %xmm6, %xmm7
+        addsd     %xmm7, %xmm8
+        addsd     %xmm8, %xmm9
+        movsd     %xmm9, (%rsi)
+        ret
+
+L(7):
+        movsd     1624+__dlog10_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm0, %xmm1
+        movsd     1688+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1680+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1672+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1664+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1656+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1648+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1640+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1632+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     %xmm1, %xmm2
+        movsd     %xmm2, (%rsi)
+        ret
+
+L(8):
+        ucomisd   %xmm0, %xmm2
+        jp        L(9)
+        je        L(10)
+
+L(9):
+        divsd     %xmm0, %xmm0
+        movsd     %xmm0, (%rsi)
+        movl      $1, %eax
+        ret
+
+L(10):
+        movsd     1616+__dlog10_la_CoutTab(%rip), %xmm1
+        movl      $2, %eax
+        xorps     .FLT_89(%rip), %xmm1
+        divsd     %xmm0, %xmm1
+        movsd     %xmm1, (%rsi)
+        ret
+
+L(11):
+        movb      7(%rdi), %dl
+        andb      $-128, %dl
+        cmpb      $-128, %dl
+        je        L(13)
+
+L(12):
+        movsd     (%rdi), %xmm0
+        mulsd     %xmm0, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+L(13):
+        testl     $1048575, 4(%rdi)
+        jne       L(12)
+        cmpl      $0, (%rdi)
+        jne       L(12)
+        movsd     1608+__dlog10_la_CoutTab(%rip), %xmm0
+        movl      $1, %eax
+        divsd     %xmm0, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_dlog10_cout_rare_internal,@function
+        .size	__svml_dlog10_cout_rare_internal,.-__svml_dlog10_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_dlog10_data_internal:
+        .long	1190572160
+        .long	3228777073
+        .long	3860447744
+        .long	3189665916
+        .long	1198987632
+        .long	3228777077
+        .long	3228397393
+        .long	3189668294
+        .long	1168821104
+        .long	3228777081
+        .long	637194908
+        .long	3189668066
+        .long	1100245360
+        .long	3228777085
+        .long	133785915
+        .long	3189667542
+        .long	993432048
+        .long	3228777089
+        .long	3017828443
+        .long	3189667588
+        .long	848551680
+        .long	3228777093
+        .long	560605178
+        .long	3189668289
+        .long	665773664
+        .long	3228777097
+        .long	3849538177
+        .long	3189667548
+        .long	445266208
+        .long	3228777101
+        .long	3804908986
+        .long	3189667886
+        .long	187196464
+        .long	3228777105
+        .long	3516966431
+        .long	3189667858
+        .long	4186697744
+        .long	3228777108
+        .long	3052190817
+        .long	3189667809
+        .long	3854000384
+        .long	3228777112
+        .long	1554781574
+        .long	3189667427
+        .long	3484235504
+        .long	3228777116
+        .long	4153839410
+        .long	3189667384
+        .long	3077565856
+        .long	3228777120
+        .long	4000768869
+        .long	3189667904
+        .long	2634153136
+        .long	3228777124
+        .long	4244738174
+        .long	3189668339
+        .long	2154157984
+        .long	3228777128
+        .long	3014247306
+        .long	3189667771
+        .long	1637739952
+        .long	3228777132
+        .long	1906045981
+        .long	3189667650
+        .long	1085057568
+        .long	3228777136
+        .long	3987700171
+        .long	3189668284
+        .long	496268368
+        .long	3228777140
+        .long	1674280096
+        .long	3189667373
+        .long	4166496080
+        .long	3228777143
+        .long	2078815235
+        .long	3189667744
+        .long	3505961600
+        .long	3228777147
+        .long	4286802640
+        .long	3189667683
+        .long	2809786672
+        .long	3228777151
+        .long	1913564473
+        .long	3189667639
+        .long	2078124752
+        .long	3228777155
+        .long	2693682663
+        .long	3189667702
+        .long	1311128304
+        .long	3228777159
+        .long	1012063542
+        .long	3189668158
+        .long	508948832
+        .long	3228777163
+        .long	2489929809
+        .long	3189667978
+        .long	3966704144
+        .long	3228777166
+        .long	2165614611
+        .long	3189667408
+        .long	3094609184
+        .long	3228777170
+        .long	2488783422
+        .long	3189667472
+        .long	2187779856
+        .long	3228777174
+        .long	2723126436
+        .long	3189667428
+        .long	1246363792
+        .long	3228777178
+        .long	3017034520
+        .long	3189668359
+        .long	270507744
+        .long	3228777182
+        .long	1972662349
+        .long	3189667544
+        .long	3555324736
+        .long	3228777185
+        .long	898998658
+        .long	3189668182
+        .long	2511025072
+        .long	3228777189
+        .long	2160314027
+        .long	3189667608
+        .long	1432719952
+        .long	3228777193
+        .long	1911887828
+        .long	3189668033
+        .long	320552432
+        .long	3228777197
+        .long	3280422502
+        .long	3189667818
+        .long	3469631920
+        .long	3228777200
+        .long	3027884278
+        .long	3189668109
+        .long	2290165072
+        .long	3228777204
+        .long	3517602960
+        .long	3189668197
+        .long	1077259536
+        .long	3228777208
+        .long	3013130823
+        .long	3189668046
+        .long	4126022080
+        .long	3228777211
+        .long	3235689898
+        .long	3189667740
+        .long	2846656704
+        .long	3228777215
+        .long	87643117
+        .long	3189667953
+        .long	1534268448
+        .long	3228777219
+        .long	754951962
+        .long	3189668360
+        .long	188994208
+        .long	3228777223
+        .long	3023581101
+        .long	3189668100
+        .long	3105937296
+        .long	3228777226
+        .long	1490072819
+        .long	3189668276
+        .long	1695298320
+        .long	3228777230
+        .long	3738440902
+        .long	3189668304
+        .long	252178944
+        .long	3228777234
+        .long	897194307
+        .long	3189667388
+        .long	3071679952
+        .long	3228777237
+        .long	195484330
+        .long	3189668024
+        .long	1563999488
+        .long	3228777241
+        .long	3795554301
+        .long	3189668248
+        .long	24236736
+        .long	3228777245
+        .long	2858806924
+        .long	3189668212
+        .long	2747490080
+        .long	3228777248
+        .long	4259795627
+        .long	3189667532
+        .long	1143955184
+        .long	3228777252
+        .long	4279885499
+        .long	3189667764
+        .long	3803696144
+        .long	3228777255
+        .long	3997664578
+        .long	3189667698
+        .long	2136907056
+        .long	3228777259
+        .long	2176158532
+        .long	3189667869
+        .long	438683136
+        .long	3228777263
+        .long	227964261
+        .long	3189667893
+        .long	3004118816
+        .long	3228777266
+        .long	2296676690
+        .long	3189667896
+        .long	1243405872
+        .long	3228777270
+        .long	2079834385
+        .long	3189667894
+        .long	3746604496
+        .long	3228777273
+        .long	3850151037
+        .long	3189668185
+        .long	1923904960
+        .long	3228777277
+        .long	574763554
+        .long	3189667699
+        .long	70398640
+        .long	3228777281
+        .long	3827982506
+        .long	3189667452
+        .long	2481176176
+        .long	3228777284
+        .long	1146808857
+        .long	3189667869
+        .long	566425600
+        .long	3228777288
+        .long	4238446104
+        .long	3189668130
+        .long	2916203392
+        .long	3228777291
+        .long	3553887815
+        .long	3189667582
+        .long	940696080
+        .long	3228777295
+        .long	1221192380
+        .long	3189668153
+        .long	3229958720
+        .long	3228777298
+        .long	2271570828
+        .long	3189667556
+        .long	1194176400
+        .long	3228777302
+        .long	3002536483
+        .long	3189667850
+        .long	3423402736
+        .long	3228777305
+        .long	2434838684
+        .long	3189667608
+        .long	1327821424
+        .long	3228777309
+        .long	2687777298
+        .long	3189667396
+        .long	3497484640
+        .long	3228777312
+        .long	2749657917
+        .long	3189668082
+        .long	1342574720
+        .long	3228777316
+        .long	3002546917
+        .long	3189668115
+        .long	3453142464
+        .long	3228777319
+        .long	3498283957
+        .long	3189667970
+        .long	1239368816
+        .long	3228777323
+        .long	455121273
+        .long	3189667422
+        .long	3291303200
+        .long	3228777326
+        .long	2621841620
+        .long	3189667932
+        .long	3012883008
+        .long	3228777333
+        .long	2362501462
+        .long	3189667975
+        .long	2618787376
+        .long	3228777340
+        .long	1091754251
+        .long	3189667994
+        .long	2109911280
+        .long	3228777347
+        .long	193599334
+        .long	3189668101
+        .long	1487139360
+        .long	3228777354
+        .long	3757852586
+        .long	3189667728
+        .long	751346048
+        .long	3228777361
+        .long	1167306858
+        .long	3189667607
+        .long	4198363056
+        .long	3228777367
+        .long	3727503052
+        .long	3189667447
+        .long	3239110320
+        .long	3228777374
+        .long	4101491224
+        .long	3189667535
+        .long	2169399936
+        .long	3228777381
+        .long	1682828411
+        .long	3189668088
+        .long	990067152
+        .long	3228777388
+        .long	325154957
+        .long	3189667406
+        .long	3996905008
+        .long	3228777394
+        .long	333920478
+        .long	3189668041
+        .long	2600795440
+        .long	3228777401
+        .long	1868291498
+        .long	3189667430
+        .long	1097513040
+        .long	3228777408
+        .long	2092796598
+        .long	3189667816
+        .long	3782823440
+        .long	3228777414
+        .long	2342635878
+        .long	3189667569
+        .long	2067581456
+        .long	3228777421
+        .long	2489432283
+        .long	3189667708
+        .long	247535056
+        .long	3228777428
+        .long	2233925548
+        .long	3189668023
+        .long	2618423584
+        .long	3228777434
+        .long	2884435678
+        .long	3189668162
+        .long	591076000
+        .long	3228777441
+        .long	2793733516
+        .long	3189667544
+        .long	2756182032
+        .long	3228777447
+        .long	726899401
+        .long	3189668194
+        .long	524554032
+        .long	3228777454
+        .long	3888914666
+        .long	3189668216
+        .long	2486865376
+        .long	3228777460
+        .long	2627594277
+        .long	3189667420
+        .long	53912208
+        .long	3228777467
+        .long	2333314786
+        .long	3189667677
+        .long	1816352000
+        .long	3228777473
+        .long	860249135
+        .long	3189668031
+        .long	3479932544
+        .long	3228777479
+        .long	1333576769
+        .long	3189667862
+        .long	750393936
+        .long	3228777486
+        .long	3863808803
+        .long	3189667876
+        .long	2218370608
+        .long	3228777492
+        .long	988274049
+        .long	3189667895
+        .long	3589587648
+        .long	3228777498
+        .long	1363020542
+        .long	3189667588
+        .long	569762768
+        .long	3228777505
+        .long	2860785679
+        .long	3189668116
+        .long	1749508368
+        .long	3228777511
+        .long	3454164214
+        .long	3189667505
+        .long	2834527744
+        .long	3228777517
+        .long	551781933
+        .long	3189668193
+        .long	3825484512
+        .long	3228777523
+        .long	2204991099
+        .long	3189668076
+        .long	428068000
+        .long	3228777530
+        .long	330816187
+        .long	3189667835
+        .long	1232862576
+        .long	3228777536
+        .long	1875584004
+        .long	3189667900
+        .long	1945543984
+        .long	3228777542
+        .long	3147029736
+        .long	3189667368
+        .long	2566748560
+        .long	3228777548
+        .long	2759544833
+        .long	3189667927
+        .long	3097106128
+        .long	3228777554
+        .long	2378335007
+        .long	3189667440
+        .long	3537239968
+        .long	3228777560
+        .long	59134449
+        .long	3189667766
+        .long	3887767008
+        .long	3228777566
+        .long	2237380018
+        .long	3189668142
+        .long	4149297872
+        .long	3228777572
+        .long	2899689733
+        .long	3189667692
+        .long	27469632
+        .long	3228777579
+        .long	2818642709
+        .long	3189667832
+        .long	112815152
+        .long	3228777585
+        .long	4092579806
+        .long	3189667420
+        .long	110959312
+        .long	3228777591
+        .long	936570796
+        .long	3189668056
+        .long	22488368
+        .long	3228777597
+        .long	365917996
+        .long	3189668022
+        .long	4142949952
+        .long	3228777602
+        .long	3149756965
+        .long	3189667408
+        .long	3882983968
+        .long	3228777608
+        .long	4081670258
+        .long	3189668028
+        .long	3538126528
+        .long	3228777614
+        .long	1719873156
+        .long	3189668130
+        .long	3108940752
+        .long	3228777620
+        .long	3284322898
+        .long	3189668289
+        .long	2595984192
+        .long	3228777626
+        .long	1642430589
+        .long	3189668010
+        .long	1999808880
+        .long	3228777632
+        .long	4232900950
+        .long	3189667360
+        .long	1320961392
+        .long	3228777638
+        .long	346567365
+        .long	3189667513
+        .long	559982960
+        .long	3228777644
+        .long	2138178062
+        .long	3189668130
+        .long	4012376832
+        .long	3228777649
+        .long	2536292360
+        .long	3189667756
+        .long	3088739088
+        .long	3228777655
+        .long	2310947316
+        .long	3189668224
+        .long	2084562592
+        .long	3228777661
+        .long	719337470
+        .long	3189667732
+        .long	1000367760
+        .long	3228777667
+        .long	2925814745
+        .long	3189668182
+        .long	4131637328
+        .long	3228777672
+        .long	2769058114
+        .long	3189668120
+        .long	2888947152
+        .long	3228777678
+        .long	2397746692
+        .long	3189667888
+        .long	1567770080
+        .long	3228777684
+        .long	1319666757
+        .long	3189667549
+        .long	168606816
+        .long	3228777690
+        .long	3249166601
+        .long	3189667815
+        .long	2986920608
+        .long	3228777695
+        .long	3117551188
+        .long	3189667844
+        .long	1433268080
+        .long	3228777701
+        .long	2392446108
+        .long	3189668088
+        .long	4098070400
+        .long	3228777706
+        .long	1952984424
+        .long	3189667965
+        .long	2391874944
+        .long	3228777712
+        .long	3260016359
+        .long	3189667565
+        .long	610126416
+        .long	3228777718
+        .long	1206683346
+        .long	3189668275
+        .long	3048265088
+        .long	3228777723
+        .long	3467821979
+        .long	3189668220
+        .long	1116824880
+        .long	3228777729
+        .long	3688655521
+        .long	3189667898
+        .long	3406204528
+        .long	3228777734
+        .long	3255713182
+        .long	3189667556
+        .long	1326929264
+        .long	3228777740
+        .long	200527713
+        .long	3189667591
+        .long	3469389248
+        .long	3228777745
+        .long	1129326388
+        .long	3189667868
+        .long	1244101248
+        .long	3228777751
+        .long	308865650
+        .long	3189668017
+        .long	3241447056
+        .long	3228777756
+        .long	3090939005
+        .long	3189667668
+        .long	871935152
+        .long	3228777762
+        .long	3265000937
+        .long	3189667670
+        .long	2725939152
+        .long	3228777767
+        .long	4229796659
+        .long	3189668178
+        .long	213959504
+        .long	3228777773
+        .long	1991139447
+        .long	3189667724
+        .long	1926361824
+        .long	3228777778
+        .long	2528808771
+        .long	3189668376
+        .long	3568606000
+        .long	3228777783
+        .long	4260639448
+        .long	3189667546
+        .long	846147968
+        .long	3228777789
+        .long	806895635
+        .long	3189668179
+        .long	2349341824
+        .long	3228777794
+        .long	3346322191
+        .long	3189667388
+        .long	3783635920
+        .long	3228777799
+        .long	175610890
+        .long	3189667587
+        .long	854474928
+        .long	3228777805
+        .long	2938776958
+        .long	3189668104
+        .long	2152201728
+        .long	3228777810
+        .long	2503702909
+        .long	3189668036
+        .long	3382253648
+        .long	3228777815
+        .long	990471545
+        .long	3189668020
+        .long	250064432
+        .long	3228777821
+        .long	2919909380
+        .long	3189667876
+        .long	1345966144
+        .long	3228777826
+        .long	3002840896
+        .long	3189668306
+        .long	2375385488
+        .long	3228777831
+        .long	3730416038
+        .long	3189667426
+        .long	3338712928
+        .long	3228777836
+        .long	1372953258
+        .long	3189667506
+        .long	4236335536
+        .long	3228777841
+        .long	3486643335
+        .long	3189668352
+        .long	773669728
+        .long	3228777847
+        .long	3527808638
+        .long	3189667828
+        .long	1541030400
+        .long	3228777852
+        .long	1323886332
+        .long	3189667450
+        .long	2243827264
+        .long	3228777857
+        .long	3473574637
+        .long	3189667708
+        .long	2882434080
+        .long	3228777862
+        .long	2116524762
+        .long	3189667453
+        .long	3457221328
+        .long	3228777867
+        .long	3472145296
+        .long	3189668357
+        .long	3968556352
+        .long	3228777872
+        .long	1399438939
+        .long	3189668087
+        .long	121835984
+        .long	3228777878
+        .long	1630440586
+        .long	3189667769
+        .long	507355824
+        .long	3228777883
+        .long	414821867
+        .long	3189668165
+        .long	830506528
+        .long	3228777888
+        .long	1651489076
+        .long	3189667856
+        .long	1091642960
+        .long	3228777893
+        .long	1914960493
+        .long	3189667544
+        .long	1291116960
+        .long	3228777898
+        .long	1585226677
+        .long	3189668172
+        .long	1429277424
+        .long	3228777903
+        .long	1458536815
+        .long	3189667992
+        .long	1506470256
+        .long	3228777908
+        .long	5177277
+        .long	3189667794
+        .long	1523038448
+        .long	3228777913
+        .long	2100423580
+        .long	3189667910
+        .long	1479322112
+        .long	3228777918
+        .long	2766296967
+        .long	3189668266
+        .long	1375658528
+        .long	3228777923
+        .long	3908110271
+        .long	3189667373
+        .long	1212382096
+        .long	3228777928
+        .long	1728734206
+        .long	3189667440
+        .long	989824464
+        .long	3228777933
+        .long	2721564364
+        .long	3189668188
+        .long	708314544
+        .long	3228777938
+        .long	1548992985
+        .long	3189667813
+        .long	368178464
+        .long	3228777943
+        .long	102841028
+        .long	3189668008
+        .long	4264706992
+        .long	3228777947
+        .long	975947285
+        .long	3189667700
+        .long	3808286304
+        .long	3228777952
+        .long	3025865597
+        .long	3189668024
+        .long	3294201856
+        .long	3228777957
+        .long	905114809
+        .long	3189668054
+        .long	2722769184
+        .long	3228777962
+        .long	3281428766
+        .long	3189667672
+        .long	2094301216
+        .long	3228777967
+        .long	2831959372
+        .long	3189668375
+        .long	1409108384
+        .long	3228777972
+        .long	2859726358
+        .long	3189667900
+        .long	667498528
+        .long	3228777977
+        .long	3483539044
+        .long	3189668146
+        .long	4164744336
+        .long	3228777981
+        .long	643592870
+        .long	3189667709
+        .long	3311214096
+        .long	3228777986
+        .long	3888135264
+        .long	3189667701
+        .long	2402175552
+        .long	3228777991
+        .long	1565708850
+        .long	3189668342
+        .long	1437926768
+        .long	3228777996
+        .long	3880143694
+        .long	3189667559
+        .long	418763344
+        .long	3228778001
+        .long	2177554551
+        .long	3189667774
+        .long	3639945856
+        .long	3228778005
+        .long	632683322
+        .long	3189668317
+        .long	2511830656
+        .long	3228778010
+        .long	1595152623
+        .long	3189668068
+        .long	1329673632
+        .long	3228778015
+        .long	1921601627
+        .long	3189668075
+        .long	93761104
+        .long	3228778020
+        .long	1757445293
+        .long	3189668004
+        .long	3099344416
+        .long	3228778024
+        .long	1435123721
+        .long	3189667691
+        .long	1756770768
+        .long	3228778029
+        .long	783914014
+        .long	3189667649
+        .long	361287040
+        .long	3228778034
+        .long	2235532382
+        .long	3189667506
+        .long	3208137904
+        .long	3228778038
+        .long	1904486204
+        .long	3189667498
+        .long	1707663968
+        .long	3228778043
+        .long	41908474
+        .long	3189667890
+        .long	155105584
+        .long	3228778048
+        .long	2107716085
+        .long	3189668380
+        .long	2845700992
+        .long	3228778052
+        .long	3156927676
+        .long	3189667488
+        .long	1189784368
+        .long	3228778057
+        .long	4047204189
+        .long	3189668063
+        .long	3777557072
+        .long	3228778061
+        .long	577628716
+        .long	3189667418
+        .long	2019349136
+        .long	3228778066
+        .long	2610467089
+        .long	3189667920
+        .long	210390496
+        .long	3228778071
+        .long	2766766141
+        .long	3189668118
+        .long	2645909040
+        .long	3228778075
+        .long	3243727052
+        .long	3189668176
+        .long	736228768
+        .long	3228778080
+        .long	3122320416
+        .long	3189668130
+        .long	3071540880
+        .long	3228778084
+        .long	3131821814
+        .long	3189668172
+        .long	1062165440
+        .long	3228778089
+        .long	3213377517
+        .long	3189667895
+        .long	3298289744
+        .long	3228778093
+        .long	2564668383
+        .long	3189667569
+        .long	1190229968
+        .long	3228778098
+        .long	3238426468
+        .long	3189668376
+        .long	3328169632
+        .long	3228778102
+        .long	1168702877
+        .long	3189667512
+        .long	1122421104
+        .long	3228778107
+        .long	19789062
+        .long	3189667604
+        .long	3163164128
+        .long	3228778111
+        .long	1630085837
+        .long	3189667685
+        .long	860707408
+        .long	3228778116
+        .long	4114762240
+        .long	3189667464
+        .long	2805226992
+        .long	3228778120
+        .long	18835043
+        .long	3189667485
+        .long	407027936
+        .long	3228778125
+        .long	1254882039
+        .long	3189668241
+        .long	2256282720
+        .long	3228778129
+        .long	1578671063
+        .long	3189668264
+        .long	4058260128
+        .long	3228778133
+        .long	2087871538
+        .long	3189668330
+        .long	1518227216
+        .long	3228778138
+        .long	1874562670
+        .long	3189667466
+        .long	3226351136
+        .long	3228778142
+        .long	1975306748
+        .long	3189668156
+        .long	592928208
+        .long	3228778147
+        .long	2027557844
+        .long	3189668223
+        .long	2208122192
+        .long	3228778151
+        .long	3385698680
+        .long	3189668056
+        .long	3777193280
+        .long	3228778155
+        .long	2370310143
+        .long	3189667586
+        .long	1005399968
+        .long	3228778160
+        .long	259325820
+        .long	3189668365
+        .long	2482901056
+        .long	3228778164
+        .long	780809723
+        .long	3189667443
+        .long	3914951728
+        .long	3228778168
+        .long	212773867
+        .long	3189667618
+        .long	1006805600
+        .long	3228778173
+        .long	951469551
+        .long	3189668212
+        .long	2348616576
+        .long	3228778177
+        .long	2086655720
+        .long	3189668128
+        .long	3645635056
+        .long	3228778181
+        .long	2113468742
+        .long	3189667868
+        .long	603109872
+        .long	3228778186
+        .long	1652875995
+        .long	3189667443
+        .long	1811190160
+        .long	3228778190
+        .long	2629878773
+        .long	3189668368
+        .long	2975121696
+        .long	3228778194
+        .long	346123600
+        .long	3189667455
+        .long	4095115920
+        .long	3228778198
+        .long	3526019824
+        .long	3189667996
+        .long	876415552
+        .long	3228778203
+        .long	1439312045
+        .long	3189667395
+        .long	1909163616
+        .long	3228778207
+        .long	3349683269
+        .long	3189668324
+        .long	2898599856
+        .long	3228778211
+        .long	649479362
+        .long	3189667358
+        .long	3844929728
+        .long	3228778215
+        .long	2676997587
+        .long	3189668158
+        .long	453390032
+        .long	3228778220
+        .long	848895008
+        .long	3189668036
+        .long	1314117952
+        .long	3228778224
+        .long	3492148440
+        .long	3189668045
+        .long	2132347376
+        .long	3228778228
+        .long	281429102
+        .long	3189667715
+        .long	2908278048
+        .long	3228778232
+        .long	2940038679
+        .long	3189667953
+        .long	3642108336
+        .long	3228778236
+        .long	3909547671
+        .long	3189667808
+        .long	39067888
+        .long	3228778241
+        .long	3920787602
+        .long	3189668378
+        .long	689286912
+        .long	3228778245
+        .long	1690865565
+        .long	3189667500
+        .long	1297992288
+        .long	3228778249
+        .long	2169866692
+        .long	3189667738
+        .long	1865376896
+        .long	3228778253
+        .long	967083596
+        .long	3189667983
+        .long	2391632256
+        .long	3228778257
+        .long	1361458469
+        .long	3189668348
+        .long	2876948576
+        .long	3228778261
+        .long	32611984
+        .long	3189667893
+        .long	3321514720
+        .long	3228778265
+        .long	2193827755
+        .long	3189667454
+        .long	3725518240
+        .long	3228778269
+        .long	2245419299
+        .long	3189668375
+        .long	4089145456
+        .long	3228778273
+        .long	3497133018
+        .long	3189668150
+        .long	117614048
+        .long	3228778278
+        .long	175818393
+        .long	3189668353
+        .long	401042352
+        .long	3228778282
+        .long	3839976210
+        .long	3189668213
+        .long	644645552
+        .long	3228778286
+        .long	3041010480
+        .long	3189667412
+        .long	848604848
+        .long	3228778290
+        .long	2760940853
+        .long	3189667832
+        .long	1013100256
+        .long	3228778294
+        .long	2385564198
+        .long	3189668140
+        .long	1138310560
+        .long	3228778298
+        .long	2892472831
+        .long	3189667574
+        .long	1224413296
+        .long	3228778302
+        .long	781676890
+        .long	3189667676
+        .long	1271584832
+        .long	3228778306
+        .long	3578454272
+        .long	3189667868
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	2256045239
+        .long	3209413770
+        .long	2491592457
+        .long	3210460574
+        .long	1804910333
+        .long	3211053321
+        .long	1914826022
+        .long	3211505620
+        .long	3803025062
+        .long	3211872665
+        .long	1674748349
+        .long	3212097941
+        .long	1798374224
+        .long	3212322782
+        .long	2768032015
+        .long	3212547190
+        .long	3136444289
+        .long	3212771167
+        .long	2855105875
+        .long	3212915789
+        .long	2332612951
+        .long	3213027349
+        .long	1363424900
+        .long	3213138696
+        .long	3437629661
+        .long	3213249830
+        .long	3435456176
+        .long	3213360753
+        .long	512327647
+        .long	3213471466
+        .long	2393978768
+        .long	3213581968
+        .long	3901767770
+        .long	3213692261
+        .long	4132692718
+        .long	3213802346
+        .long	1082284973
+        .long	3213898832
+        .long	2823056504
+        .long	3213953667
+        .long	366152305
+        .long	3214008400
+        .long	3959556563
+        .long	3214063029
+        .long	2367110801
+        .long	3214117557
+        .long	1523289056
+        .long	3214171983
+        .long	3058430271
+        .long	3214226307
+        .long	3839215
+        .long	3214280531
+        .long	2561657861
+        .long	3214334653
+        .long	3745193976
+        .long	3214388675
+        .long	853823952
+        .long	3214442598
+        .long	4062993129
+        .long	3214496420
+        .long	2064542556
+        .long	3214550144
+        .long	721479184
+        .long	3214603769
+        .long	1593203319
+        .long	3214657295
+        .long	1935571978
+        .long	3214710723
+        .long	3290896245
+        .long	3214764053
+        .long	2898068879
+        .long	3214817286
+        .long	2282560537
+        .long	3214870422
+        .long	2961513548
+        .long	3214923461
+        .long	1074417563
+        .long	3214955210
+        .long	2820079616
+        .long	3214981633
+        .long	1021551109
+        .long	3215008009
+        .long	716013687
+        .long	3215034337
+        .long	2641666110
+        .long	3215060617
+        .long	3237753164
+        .long	3215086850
+        .long	3234528909
+        .long	3215113036
+        .long	3358317786
+        .long	3215139175
+        .long	36575458
+        .long	3215165268
+        .long	2577785893
+        .long	3215191313
+        .long	3106717932
+        .long	3215217312
+        .long	2334256463
+        .long	3215243265
+        .long	967494986
+        .long	3215269172
+        .long	4004729818
+        .long	3215295032
+        .long	3555617588
+        .long	3215320847
+        .long	316038151
+        .long	3215346617
+        .long	3568120799
+        .long	3215372340
+        .long	1115499161
+        .long	3215398019
+        .long	2233009907
+        .long	3215423652
+        .long	3306979906
+        .long	3215449240
+        .long	720153405
+        .long	3215474784
+        .long	3736618996
+        .long	3215500282
+        .long	142096100
+        .long	3215525737
+        .long	3488599868
+        .long	3215551146
+        .long	1554858050
+        .long	3215576512
+        .long	3590975466
+        .long	3215601833
+        .long	1663752343
+        .long	3215627111
+        .long	721479184
+        .long	3215652345
+        .long	1414091172
+        .long	3215677535
+        .long	93191556
+        .long	3215702682
+        .long	1696976726
+        .long	3215727785
+        .long	2570390009
+        .long	3215752845
+        .long	3350046349
+        .long	3215777862
+        .long	374320308
+        .long	3215802837
+        .long	2863237644
+        .long	3215827768
+        .long	2853726453
+        .long	3215852657
+        .long	969442960
+        .long	3215877504
+        .long	2125826056
+        .long	3215902308
+        .long	2645217056
+        .long	3215927070
+        .long	3141783046
+        .long	3215951790
+        .long	4226570871
+        .long	3215976468
+        .long	3253764118
+        .long	3215991848
+        .long	999795016
+        .long	3216004146
+        .long	4242218727
+        .long	3216016422
+        .long	395520918
+        .long	3216028679
+        .long	2642482782
+        .long	3216040914
+        .long	2689550894
+        .long	3216053129
+        .long	831618312
+        .long	3216065324
+        .long	1657067230
+        .long	3216077498
+        .long	1162876950
+        .long	3216089652
+        .long	3934502846
+        .long	3216101785
+        .long	1671049587
+        .long	3216113899
+        .long	3250051821
+        .long	3216125992
+        .long	367745354
+        .long	3216138066
+        .long	1898814972
+        .long	3216150119
+        .long	3831632753
+        .long	3216162152
+        .long	2153169263
+        .long	3216174166
+        .long	1438937368
+        .long	3216186160
+        .long	1968099508
+        .long	3216198134
+        .long	4018444062
+        .long	3216210088
+        .long	3571427061
+        .long	3216222023
+        .long	902115705
+        .long	3216233939
+        .long	579197221
+        .long	3216245835
+        .long	2875053055
+        .long	3216257711
+        .long	3765767585
+        .long	3216269568
+        .long	3521071355
+        .long	3216281406
+        .long	2409382351
+        .long	3216293225
+        .long	697814500
+        .long	3216305025
+        .long	2947153405
+        .long	3216316805
+        .long	831995525
+        .long	3216328567
+        .long	3205527541
+        .long	3216340309
+        .long	1739796226
+        .long	3216352033
+        .long	990487678
+        .long	3216363738
+        .long	1217066237
+        .long	3216375424
+        .long	2677749815
+        .long	3216387091
+        .long	1334550573
+        .long	3216398740
+        .long	1738184714
+        .long	3216410370
+        .long	4143178441
+        .long	3216421981
+        .long	212908442
+        .long	3216433575
+        .long	3084380679
+        .long	3216445149
+        .long	123597797
+        .long	3216456706
+        .long	170206973
+        .long	3216468244
+        .long	3472736381
+        .long	3216479763
+        .long	1688602678
+        .long	3216491265
+        .long	3653922191
+        .long	3216502748
+        .long	1023779914
+        .long	3216514214
+        .long	2631975180
+        .long	3216525661
+        .long	131290539
+        .long	3216537091
+        .long	2353237313
+        .long	3216548502
+        .long	948324365
+        .long	3216559896
+        .long	450836243
+        .long	3216571272
+        .long	1098971024
+        .long	3216582630
+        .long	3129814575
+        .long	3216593970
+        .long	2484380169
+        .long	3216605293
+        .long	3692517238
+        .long	3216616598
+        .long	2693048988
+        .long	3216627886
+        .long	4013648344
+        .long	3216639156
+        .long	3590975466
+        .long	3216650409
+        .long	1655586284
+        .long	3216661645
+        .long	2731939102
+        .long	3216672863
+        .long	2753499254
+        .long	3216684064
+        .long	1947647495
+        .long	3216695248
+        .long	540719148
+        .long	3216706415
+        .long	3052977802
+        .long	3216717564
+        .long	1118752477
+        .long	3216728697
+        .long	3551215000
+        .long	3216739812
+        .long	1982647887
+        .long	3216750911
+        .long	929221623
+        .long	3216761993
+        .long	611131637
+        .long	3216773058
+        .long	1247571711
+        .long	3216784106
+        .long	3056740043
+        .long	3216795137
+        .long	1960877976
+        .long	3216806152
+        .long	2471177857
+        .long	3216817150
+        .long	507919781
+        .long	3216828132
+        .long	580346667
+        .long	3216839097
+        .long	2901768203
+        .long	3216850045
+        .long	3389566649
+        .long	3216860977
+        .long	2255137180
+        .long	3216871893
+        .long	4003893595
+        .long	3216882792
+        .long	255404805
+        .long	3216893676
+        .long	4103138823
+        .long	3216904542
+        .long	2869828094
+        .long	3216915393
+        .long	1057147997
+        .long	3216926228
+        .long	3165853160
+        .long	3216937046
+        .long	810881035
+        .long	3216947849
+        .long	2786128388
+        .long	3216958635
+        .long	704718315
+        .long	3216969406
+        .long	3358743942
+        .long	3216980160
+        .long	2359535366
+        .long	3216990899
+        .long	2202435985
+        .long	3217001622
+        .long	3086938536
+        .long	3217012329
+        .long	916690285
+        .long	3217023021
+        .long	2239683676
+        .long	3217032432
+        .long	2690954374
+        .long	3217037762
+        .long	4057646264
+        .long	3217043084
+        .long	2142368519
+        .long	3217048399
+        .long	1337238495
+        .long	3217053706
+        .long	1738982326
+        .long	3217059005
+        .long	3443904681
+        .long	3217064296
+        .long	2252923910
+        .long	3217069580
+        .long	2556476367
+        .long	3217074856
+        .long	154649628
+        .long	3217080125
+        .long	3732021368
+        .long	3217085385
+        .long	497923366
+        .long	3217090639
+        .long	3431084121
+        .long	3217095884
+        .long	4034990935
+        .long	3217101122
+        .long	2402663310
+        .long	3217106353
+        .long	2921687961
+        .long	3217111576
+        .long	1389319216
+        .long	3217116792
+        .long	2192350480
+        .long	3217122000
+        .long	1127247302
+        .long	3217127201
+        .long	2580018809
+        .long	3217132394
+        .long	2346350743
+        .long	3217137580
+        .long	516509563
+        .long	3217142759
+        .long	1475344637
+        .long	3217147930
+        .long	1017388536
+        .long	3217153094
+        .long	3526728381
+        .long	3217158250
+        .long	502171511
+        .long	3217163400
+        .long	622018689
+        .long	3217168542
+        .long	3974262445
+        .long	3217173676
+        .long	2056589177
+        .long	3217178804
+        .long	3546185020
+        .long	3217183924
+        .long	4234966846
+        .long	3217189037
+        .long	4209453505
+        .long	3217194143
+        .long	3555800579
+        .long	3217199242
+        .long	2359802410
+        .long	3217204334
+        .long	706894115
+        .long	3217209419
+        .long	2977120889
+        .long	3217214496
+        .long	665270808
+        .long	3217219567
+        .long	2445647873
+        .long	3217224630
+        .long	4107302903
+        .long	3217229686
+        .long	1438937368
+        .long	3217234736
+        .long	3113807214
+        .long	3217239778
+        .long	624953709
+        .long	3217244814
+        .long	60313751
+        .long	1069756916
+        .long	2039124234
+        .long	1069751894
+        .long	3639817142
+        .long	1069746879
+        .long	485812347
+        .long	1069741872
+        .long	1085767695
+        .long	1069736871
+        .long	1063773387
+        .long	1069731877
+        .long	339219334
+        .long	1069726890
+        .long	3126793337
+        .long	1069721909
+        .long	756610100
+        .long	1069716936
+        .long	1738980508
+        .long	1069711969
+        .long	1699638774
+        .long	1069707009
+        .long	559609852
+        .long	1069702056
+        .long	2535207687
+        .long	1069697109
+        .long	3253131575
+        .long	1069692169
+        .long	2635366323
+        .long	1069687236
+        .long	604213229
+        .long	1069682310
+        .long	1377255668
+        .long	1069677390
+        .long	582455508
+        .long	1069672477
+        .long	2438020609
+        .long	1069667570
+        .long	2572533958
+        .long	1069662670
+        .long	909853896
+        .long	1069657777
+        .long	1669112469
+        .long	1069652890
+        .long	479811889
+        .long	1069648010
+        .long	1561692097
+        .long	1069643136
+        .long	544859953
+        .long	1069638269
+        .long	1649656813
+        .long	1069633408
+        .long	506787744
+        .long	1069628554
+        .long	1337189126
+        .long	1069623706
+        .long	4067125179
+        .long	1069618864
+        .long	33219107
+        .long	1069614030
+        .long	2047222611
+        .long	1069609201
+        .long	1446341380
+        .long	1069604379
+        .long	2452971930
+        .long	1069599563
+        .long	699863591
+        .long	1069594754
+        .long	409986179
+        .long	1069589951
+        .long	1511626604
+        .long	1069585154
+        .long	3933354665
+        .long	1069580363
+        .long	3309054273
+        .long	1069575579
+        .long	3862823860
+        .long	1069570801
+        .long	1229105731
+        .long	1069566030
+        .long	3927521083
+        .long	1069561264
+        .long	3298097489
+        .long	1069556505
+        .long	3566038531
+        .long	1069551752
+        .long	733771779
+        .long	1069546492
+        .long	147741522
+        .long	1069537011
+        .long	941119220
+        .long	1069527542
+        .long	2976542023
+        .long	1069518085
+        .long	1822213927
+        .long	1069508641
+        .long	1636804890
+        .long	1069499209
+        .long	2284546202
+        .long	1069489789
+        .long	3630195051
+        .long	1069480381
+        .long	1244064508
+        .long	1069470986
+        .long	3581890024
+        .long	1069461602
+        .long	1920055674
+        .long	1069452231
+        .long	420362572
+        .long	1069442872
+        .long	3245124339
+        .long	1069433524
+        .long	1672262586
+        .long	1069424189
+        .long	4160075380
+        .long	1069414865
+        .long	1987496281
+        .long	1069405554
+        .long	3613830132
+        .long	1069396254
+        .long	319012134
+        .long	1069386967
+        .long	563343667
+        .long	1069377691
+        .long	4217685989
+        .long	1069368426
+        .long	2563457725
+        .long	1069359174
+        .long	4062436141
+        .long	1069349933
+        .long	4291983603
+        .long	1069340704
+        .long	3124914285
+        .long	1069331487
+        .long	434524433
+        .long	1069322282
+        .long	389557226
+        .long	1069313088
+        .long	2864265763
+        .long	1069303905
+        .long	3438410662
+        .long	1069294734
+        .long	1987192267
+        .long	1069285575
+        .long	2681248272
+        .long	1069276427
+        .long	1101749478
+        .long	1069267291
+        .long	1420266631
+        .long	1069258166
+        .long	3513866211
+        .long	1069249052
+        .long	2965108111
+        .long	1069239950
+        .long	3946945232
+        .long	1069230859
+        .long	2042852013
+        .long	1069221780
+        .long	1426691339
+        .long	1069212712
+        .long	1977810406
+        .long	1069203655
+        .long	3576005764
+        .long	1069194609
+        .long	1806553800
+        .long	1069185575
+        .long	845110407
+        .long	1069176552
+        .long	572806897
+        .long	1069167540
+        .long	871215109
+        .long	1069158539
+        .long	1622345234
+        .long	1069149549
+        .long	2708643653
+        .long	1069140570
+        .long	4012990793
+        .long	1069131602
+        .long	1123731696
+        .long	1069122646
+        .long	2514543080
+        .long	1069113700
+        .long	3774627456
+        .long	1069104765
+        .long	493612919
+        .long	1069095842
+        .long	1146452959
+        .long	1069086929
+        .long	1323620609
+        .long	1069078027
+        .long	910975575
+        .long	1069069136
+        .long	4089762193
+        .long	1069060255
+        .long	2156738208
+        .long	1069051386
+        .long	3588943832
+        .long	1069042527
+        .long	3978928661
+        .long	1069033679
+        .long	3214618865
+        .long	1069024842
+        .long	1184347908
+        .long	1069016016
+        .long	2071821874
+        .long	1069007200
+        .long	1471215619
+        .long	1068998395
+        .long	3567040008
+        .long	1068989600
+        .long	3954270794
+        .long	1068980816
+        .long	2523248584
+        .long	1068972043
+        .long	3459676924
+        .long	1068963280
+        .long	2359718512
+        .long	1068954528
+        .long	3409862494
+        .long	1068945786
+        .long	2207053396
+        .long	1068937055
+        .long	2938558446
+        .long	1068928334
+        .long	1202096535
+        .long	1068919624
+        .long	1185705549
+        .long	1068910924
+        .long	2782838657
+        .long	1068902234
+        .long	1592362481
+        .long	1068893555
+        .long	1803457173
+        .long	1068884886
+        .long	3310712729
+        .long	1068876227
+        .long	1714127196
+        .long	1068867579
+        .long	1204006779
+        .long	1068858941
+        .long	1676062187
+        .long	1068850313
+        .long	3026374166
+        .long	1068841695
+        .long	856424459
+        .long	1068833088
+        .long	3652963247
+        .long	1068824490
+        .long	2723236352
+        .long	1068815903
+        .long	2259754591
+        .long	1068807326
+        .long	2160422882
+        .long	1068798759
+        .long	2323505847
+        .long	1068790202
+        .long	2647626118
+        .long	1068781655
+        .long	3031762665
+        .long	1068773118
+        .long	3375249122
+        .long	1068764591
+        .long	3577772136
+        .long	1068756074
+        .long	3539369713
+        .long	1068747567
+        .long	3160429578
+        .long	1068739070
+        .long	2341687551
+        .long	1068730583
+        .long	984225923
+        .long	1068722106
+        .long	3284439142
+        .long	1068713638
+        .long	554163028
+        .long	1068705181
+        .long	1285444256
+        .long	1068696733
+        .long	1085767695
+        .long	1068688295
+        .long	4152891319
+        .long	1068679866
+        .long	1800008162
+        .long	1068671448
+        .long	2520515836
+        .long	1068663039
+        .long	1923243906
+        .long	1068654640
+        .long	4207288842
+        .long	1068646250
+        .long	687176001
+        .long	1068637871
+        .long	4152596484
+        .long	1068629500
+        .long	1623765359
+        .long	1068621140
+        .long	1596060423
+        .long	1068612789
+        .long	3975249632
+        .long	1068604447
+        .long	77489616
+        .long	1068596116
+        .long	2694095274
+        .long	1068587793
+        .long	3141865345
+        .long	1068579480
+        .long	1327852022
+        .long	1068571177
+        .long	1454392201
+        .long	1068562883
+        .long	3429171450
+        .long	1068554598
+        .long	2865222567
+        .long	1068546323
+        .long	3965826047
+        .long	1068538057
+        .long	2344639476
+        .long	1068529801
+        .long	2205565304
+        .long	1068521554
+        .long	3457847553
+        .long	1068513316
+        .long	1716070423
+        .long	1068505088
+        .long	2370117590
+        .long	1068494794
+        .long	3549949915
+        .long	1068478374
+        .long	2497601776
+        .long	1068461973
+        .long	3329575662
+        .long	1068445590
+        .long	1573040697
+        .long	1068429226
+        .long	1345699131
+        .long	1068412880
+        .long	2470881766
+        .long	1068396552
+        .long	477545290
+        .long	1068380243
+        .long	3780138808
+        .long	1068363951
+        .long	3613830132
+        .long	1068347678
+        .long	4099274231
+        .long	1068331423
+        .long	767774141
+        .long	1068315187
+        .long	2036114853
+        .long	1068298968
+        .long	3436756955
+        .long	1068282767
+        .long	502735958
+        .long	1068266585
+        .long	1652561629
+        .long	1068250420
+        .long	2420411682
+        .long	1068234273
+        .long	2635998437
+        .long	1068218144
+        .long	2129599017
+        .long	1068202033
+        .long	732052851
+        .long	1068185940
+        .long	2569726489
+        .long	1068169864
+        .long	3179609248
+        .long	1068153806
+        .long	2394212644
+        .long	1068137766
+        .long	46600658
+        .long	1068121744
+        .long	265354603
+        .long	1068105739
+        .long	2884636119
+        .long	1068089751
+        .long	3444184771
+        .long	1068073781
+        .long	1779250256
+        .long	1068057829
+        .long	2020590027
+        .long	1068041894
+        .long	4004532340
+        .long	1068025976
+        .long	3272973907
+        .long	1068010076
+        .long	3958279445
+        .long	1067994193
+        .long	1603410172
+        .long	1067978328
+        .long	341790679
+        .long	1067962480
+        .long	12404745
+        .long	1067946649
+        .long	454760348
+        .long	1067930835
+        .long	1508887391
+        .long	1067915038
+        .long	3015335440
+        .long	1067899258
+        .long	520204185
+        .long	1067883496
+        .long	2455010382
+        .long	1067867750
+        .long	71914560
+        .long	1067852022
+        .long	1803457173
+        .long	1067836310
+        .long	3197785334
+        .long	1067820615
+        .long	4098519806
+        .long	1067804937
+        .long	54818232
+        .long	1067789277
+        .long	3796209456
+        .long	1067773632
+        .long	2282918403
+        .long	1067758005
+        .long	3950504196
+        .long	1067742394
+        .long	55152364
+        .long	1067726801
+        .long	3328378382
+        .long	1067711223
+        .long	732385311
+        .long	1067695663
+        .long	704701956
+        .long	1067680119
+        .long	3093409710
+        .long	1067664591
+        .long	3452107773
+        .long	1067649080
+        .long	1629845684
+        .long	1067633586
+        .long	1771121268
+        .long	1067618108
+        .long	3725944001
+        .long	1067602646
+        .long	3049832979
+        .long	1067587201
+        .long	3888716792
+        .long	1067571772
+        .long	1799062323
+        .long	1067556360
+        .long	927741940
+        .long	1067540964
+        .long	1127129614
+        .long	1067525584
+        .long	2250066244
+        .long	1067510220
+        .long	4149857685
+        .long	1067494872
+        .long	2385305499
+        .long	1067479541
+        .long	1105606892
+        .long	1067464226
+        .long	330901792
+        .long	1067447486
+        .long	3134934760
+        .long	1067416919
+        .long	1744581096
+        .long	1067386385
+        .long	166917835
+        .long	1067355883
+        .long	2409924962
+        .long	1067325412
+        .long	3892547049
+        .long	1067294973
+        .long	34624089
+        .long	1067264567
+        .long	3436756955
+        .long	1067234191
+        .long	930630721
+        .long	1067203848
+        .long	823651223
+        .long	1067173536
+        .long	2834170318
+        .long	1067143255
+        .long	2386449519
+        .long	1067113006
+        .long	3495558248
+        .long	1067082788
+        .long	1587501032
+        .long	1067052602
+        .long	679083091
+        .long	1067022447
+        .long	493004867
+        .long	1066992323
+        .long	752825758
+        .long	1066962230
+        .long	1182960573
+        .long	1066932168
+        .long	1508676010
+        .long	1066902137
+        .long	1456087143
+        .long	1066872137
+        .long	752153937
+        .long	1066842168
+        .long	3419645073
+        .long	1066812229
+        .long	597265304
+        .long	1066782322
+        .long	604423098
+        .long	1066752445
+        .long	3171423441
+        .long	1066722598
+        .long	3734431730
+        .long	1066692782
+        .long	2025404984
+        .long	1066662997
+        .long	2072088478
+        .long	1066633242
+        .long	3608077800
+        .long	1066603517
+        .long	2072815517
+        .long	1066573823
+        .long	1496489755
+        .long	1066544159
+        .long	1615129006
+        .long	1066514525
+        .long	2165566144
+        .long	1066484921
+        .long	2885435163
+        .long	1066455347
+        .long	3513167923
+        .long	1066425803
+        .long	3281014557
+        .long	1066390787
+        .long	2604876893
+        .long	1066331819
+        .long	184567847
+        .long	1066272911
+        .long	4093204381
+        .long	1066214061
+        .long	930630721
+        .long	1066155272
+        .long	3068052312
+        .long	1066096541
+        .long	1403389294
+        .long	1066037870
+        .long	4015975920
+        .long	1065979257
+        .long	1806815988
+        .long	1065920704
+        .long	2858315029
+        .long	1065862209
+        .long	2369503088
+        .long	1065803773
+        .long	4130865093
+        .long	1065745395
+        .long	3344465584
+        .long	1065687076
+        .long	3803811842
+        .long	1065628815
+        .long	713978687
+        .long	1065570613
+        .long	2166438958
+        .long	1065512468
+        .long	3369253777
+        .long	1065454381
+        .long	3826935798
+        .long	1065396352
+        .long	1795984718
+        .long	1065323547
+        .long	1064675693
+        .long	1065207720
+        .long	182837332
+        .long	1065092008
+        .long	2466218622
+        .long	1064976410
+        .long	2643543973
+        .long	1064860927
+        .long	4036370876
+        .long	1064745558
+        .long	1379209261
+        .long	1064630304
+        .long	2294346567
+        .long	1064515163
+        .long	1522032624
+        .long	1064400136
+        .long	495642370
+        .long	1064265805
+        .long	3615182787
+        .long	1064036203
+        .long	1900236729
+        .long	1063806828
+        .long	2033862474
+        .long	1063577678
+        .long	2114800432
+        .long	1063348753
+        .long	494771388
+        .long	1062984042
+        .long	1967954106
+        .long	1062527089
+        .long	1170198565
+        .long	1061933680
+        .long	417502738
+        .long	1060884213
+        .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
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	368569247
+        .long	3223701786
+        .long	368569247
+        .long	3223701786
+        .long	1671522011
+        .long	1075227560
+        .long	1671522011
+        .long	1075227560
+        .long	1691548315
+        .long	3221787401
+        .long	1691548315
+        .long	3221787401
+        .long	3700771192
+        .long	1073506818
+        .long	3700771192
+        .long	1073506818
+        .long	3698831637
+        .long	3220339442
+        .long	3698831637
+        .long	3220339442
+        .long	3207479564
+        .long	1062894188
+        .long	3207479564
+        .long	1062894188
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	589282582
+        .long	1068907621
+        .long	589282582
+        .long	1068907621
+        .long	1325131787
+        .long	3216755581
+        .long	1325131787
+        .long	3216755581
+        .long	1668232222
+        .long	1069713319
+        .long	1668232222
+        .long	1069713319
+        .long	354868790
+        .long	3217804155
+        .long	354868790
+        .long	3217804155
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	4294967295
+        .long	1048575
+        .long	4294967295
+        .long	1048575
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1062207488
+        .long	0
+        .long	1062207488
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1048576
+        .long	0
+        .long	1048576
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	4227858432
+        .long	4294967295
+        .long	4227858432
+        .long	4294967295
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1071366144
+        .long	0
+        .long	1071366144
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1352597504
+        .long	1070810131
+        .long	1352597504
+        .long	1070810131
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	3296460800
+        .long	1031700412
+        .long	3296460800
+        .long	1031700412
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1082564608
+        .long	0
+        .long	1082564608
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1083176960
+        .long	0
+        .long	1083176960
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1083174912
+        .long	0
+        .long	1083174912
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	4293918720
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	3220176896
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	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
+        .type	__svml_dlog10_data_internal,@object
+        .size	__svml_dlog10_data_internal,9600
+        .align 32
+
+__dlog10_la_CoutTab:
+        .long	0
+        .long	1071366144
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	1071337728
+        .long	184549376
+        .long	1065092008
+        .long	2099961998
+        .long	3178897324
+        .long	0
+        .long	1071309312
+        .long	931135488
+        .long	1066155272
+        .long	2365712557
+        .long	3178155773
+        .long	0
+        .long	1071280896
+        .long	603979776
+        .long	1066752445
+        .long	709057215
+        .long	1031474920
+        .long	0
+        .long	1071252480
+        .long	3437232128
+        .long	1067234191
+        .long	1515412199
+        .long	3179085970
+        .long	0
+        .long	1071238272
+        .long	1105723392
+        .long	1067464226
+        .long	153915826
+        .long	3178000698
+        .long	0
+        .long	1071209856
+        .long	3328442368
+        .long	1067711223
+        .long	3899912278
+        .long	3177135692
+        .long	0
+        .long	1071181440
+        .long	341835776
+        .long	1067962480
+        .long	2509208190
+        .long	3176531222
+        .long	0
+        .long	1071167232
+        .long	2884632576
+        .long	1068089751
+        .long	1030636902
+        .long	1025224143
+        .long	0
+        .long	1071138816
+        .long	3613917184
+        .long	1068347678
+        .long	3527163461
+        .long	3177529532
+        .long	0
+        .long	1071124608
+        .long	3549954048
+        .long	1068478374
+        .long	3498894081
+        .long	3173000425
+        .long	0
+        .long	1071096192
+        .long	1623785472
+        .long	1068621140
+        .long	2889825554
+        .long	3176375375
+        .long	0
+        .long	1071081984
+        .long	1085800448
+        .long	1068688295
+        .long	4015256301
+        .long	3177184346
+        .long	0
+        .long	1071053568
+        .long	3652976640
+        .long	1068824490
+        .long	3600693529
+        .long	3175753877
+        .long	0
+        .long	1071039360
+        .long	1592393728
+        .long	1068893555
+        .long	231073830
+        .long	3177087939
+        .long	0
+        .long	1071025152
+        .long	3459645440
+        .long	1068963280
+        .long	1740576090
+        .long	1029619435
+        .long	0
+        .long	1070996736
+        .long	3774611456
+        .long	1069104765
+        .long	3858552785
+        .long	1028603845
+        .long	0
+        .long	1070982528
+        .long	845086720
+        .long	1069176552
+        .long	3138879731
+        .long	1029120443
+        .long	0
+        .long	1070968320
+        .long	3513843712
+        .long	1069249052
+        .long	2107125367
+        .long	1029044389
+        .long	0
+        .long	1070954112
+        .long	434503680
+        .long	1069322282
+        .long	3827602229
+        .long	1028932700
+        .long	0
+        .long	1070939904
+        .long	3613851648
+        .long	1069396254
+        .long	1223751955
+        .long	3176465139
+        .long	0
+        .long	1070911488
+        .long	733741056
+        .long	1069546492
+        .long	1625232067
+        .long	1029570781
+        .long	0
+        .long	1070897280
+        .long	1511620608
+        .long	1069585154
+        .long	3044605139
+        .long	1028090775
+        .long	0
+        .long	1070883072
+        .long	1337196544
+        .long	1069623706
+        .long	2602639001
+        .long	3175938675
+        .long	0
+        .long	1070868864
+        .long	2572533760
+        .long	1069662670
+        .long	3067107955
+        .long	1022933137
+        .long	0
+        .long	1070854656
+        .long	559611904
+        .long	1069702056
+        .long	764145786
+        .long	3174041535
+        .long	0
+        .long	1070840448
+        .long	485818368
+        .long	1069741872
+        .long	2037567072
+        .long	3175580956
+        .long	0
+        .long	1070826240
+        .long	259604480
+        .long	1069782128
+        .long	4012068429
+        .long	1027865895
+        .long	0
+        .long	1070812032
+        .long	3454042112
+        .long	1069822833
+        .long	2867680007
+        .long	3174202478
+        .long	0
+        .long	1070797824
+        .long	2188754944
+        .long	1069863999
+        .long	2538655286
+        .long	3175840981
+        .long	0
+        .long	1070783616
+        .long	2965241856
+        .long	1069905635
+        .long	1338936972
+        .long	3176093950
+        .long	0
+        .long	1070769408
+        .long	966279168
+        .long	1069947753
+        .long	1774547674
+        .long	3175051484
+        .long	0
+        .long	1070755200
+        .long	1604042752
+        .long	1069990363
+        .long	2557470738
+        .long	3174667448
+        .long	0
+        .long	1070740992
+        .long	3417833472
+        .long	1070033477
+        .long	2268255117
+        .long	3175678264
+        .long	0
+        .long	1070740992
+        .long	3417833472
+        .long	1070033477
+        .long	2268255117
+        .long	3175678264
+        .long	0
+        .long	1070726784
+        .long	2451292160
+        .long	1070077108
+        .long	3757728941
+        .long	1027943275
+        .long	0
+        .long	1070712576
+        .long	929644544
+        .long	1070121268
+        .long	899045708
+        .long	1027944939
+        .long	0
+        .long	1070698368
+        .long	3057254400
+        .long	1070165969
+        .long	3880649376
+        .long	3172972504
+        .long	0
+        .long	1070684160
+        .long	2231091200
+        .long	1070211226
+        .long	521319256
+        .long	1027600177
+        .long	0
+        .long	1070684160
+        .long	2231091200
+        .long	1070211226
+        .long	521319256
+        .long	1027600177
+        .long	0
+        .long	1070669952
+        .long	2620162048
+        .long	1070257052
+        .long	1385613369
+        .long	3176104036
+        .long	0
+        .long	1070655744
+        .long	2096726016
+        .long	1070303462
+        .long	3138305819
+        .long	3173646777
+        .long	0
+        .long	1070641536
+        .long	944717824
+        .long	1070350471
+        .long	1065120110
+        .long	1027539054
+        .long	0
+        .long	1070641536
+        .long	944717824
+        .long	1070350471
+        .long	1065120110
+        .long	1027539054
+        .long	0
+        .long	1070627328
+        .long	1985789952
+        .long	1070398094
+        .long	3635943864
+        .long	3173136490
+        .long	0
+        .long	1070613120
+        .long	2123825152
+        .long	1070446348
+        .long	1125219725
+        .long	3175615738
+        .long	0
+        .long	1070598912
+        .long	1078378496
+        .long	1070495250
+        .long	603852726
+        .long	3174570526
+        .long	0
+        .long	1070598912
+        .long	1078378496
+        .long	1070495250
+        .long	603852726
+        .long	3174570526
+        .long	0
+        .long	1070573312
+        .long	1537933312
+        .long	1070544817
+        .long	998069198
+        .long	1026662908
+        .long	0
+        .long	1070544896
+        .long	733773824
+        .long	1070595068
+        .long	4061058002
+        .long	3174036009
+        .long	0
+        .long	1070544896
+        .long	733773824
+        .long	1070595068
+        .long	4061058002
+        .long	3174036009
+        .long	0
+        .long	1070516480
+        .long	3897544704
+        .long	1070621058
+        .long	951856294
+        .long	1026731877
+        .long	0
+        .long	1070516480
+        .long	3897544704
+        .long	1070621058
+        .long	951856294
+        .long	1026731877
+        .long	0
+        .long	1070488064
+        .long	493535232
+        .long	1070646897
+        .long	3852369308
+        .long	3173264746
+        .long	0
+        .long	1070459648
+        .long	463249408
+        .long	1070673107
+        .long	2853152111
+        .long	3174564937
+        .long	0
+        .long	1070459648
+        .long	463249408
+        .long	1070673107
+        .long	2853152111
+        .long	3174564937
+        .long	0
+        .long	1070431232
+        .long	3186585600
+        .long	1070699699
+        .long	1874718356
+        .long	3174139933
+        .long	0
+        .long	1070431232
+        .long	3186585600
+        .long	1070699699
+        .long	1874718356
+        .long	3174139933
+        .long	0
+        .long	1070402816
+        .long	1525858304
+        .long	1070726686
+        .long	3039843523
+        .long	1024724665
+        .long	0
+        .long	1070402816
+        .long	1525858304
+        .long	1070726686
+        .long	3039843523
+        .long	1024724665
+        .long	0
+        .long	1070374400
+        .long	3425300480
+        .long	1070754078
+        .long	1303046649
+        .long	1022401701
+        .long	0
+        .long	1070374400
+        .long	3425300480
+        .long	1070754078
+        .long	1303046649
+        .long	1022401701
+        .long	0
+        .long	1070345984
+        .long	1980465152
+        .long	1070781889
+        .long	3188656319
+        .long	1027271390
+        .long	0
+        .long	1070345984
+        .long	1980465152
+        .long	1070781889
+        .long	3188656319
+        .long	1027271390
+        .long	0
+        .long	1070317568
+        .long	1352630272
+        .long	1070810131
+        .long	3090895658
+        .long	3174564915
+        .long	1352630272
+        .long	1070810131
+        .long	3090895658
+        .long	3174564915
+        .long	64
+        .long	1120927744
+        .long	0
+        .long	1096810496
+        .long	0
+        .long	1064828928
+        .long	0
+        .long	1135607808
+        .long	0
+        .long	0
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1071366144
+        .long	3207479559
+        .long	1062894188
+        .long	3698831637
+        .long	3220339442
+        .long	3700832817
+        .long	1073506818
+        .long	1691624569
+        .long	3221787401
+        .long	2065628764
+        .long	1075227551
+        .long	1770847080
+        .long	3223701774
+        .long	3786517112
+        .long	1077250450
+        .long	1316351650
+        .long	3225793313
+        .type	__dlog10_la_CoutTab,@object
+        .size	__dlog10_la_CoutTab,1696
+        .align 16
+
+.FLT_16:
+        .long	0x00000000,0x43380000,0x00000000,0x43380000
+        .type	.FLT_16,@object
+        .size	.FLT_16,16
+        .align 16
+
+.FLT_89:
+        .long	0x00000000,0x80000000,0x00000000,0x00000000
+        .type	.FLT_89,@object
+        .size	.FLT_89,16
+        .align 8
+
+.FLT_90:
+        .long	0x00000000,0x3ff00000
+        .type	.FLT_90,@object
+        .size	.FLT_90,8
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core-sse.S
new file mode 100644
index 0000000000..0a101666f5
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core-sse.S
@@ -0,0 +1,20 @@ 
+/* SSE version of vectorized log10, 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_log10 _ZGVdN4v_log10_sse_wrapper
+#include "../svml_d_log104_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core.c
new file mode 100644
index 0000000000..48c63cfb3d
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core.c
@@ -0,0 +1,27 @@ 
+/* Multiple versions of vectorized log10, 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_log10
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN4v_log10, __GI__ZGVdN4v_log10, __redirect__ZGVdN4v_log10)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S
new file mode 100644
index 0000000000..2c15645fc2
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S
@@ -0,0 +1,3782 @@ 
+/* Function log10 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:
+ *
+ *    Get short reciprocal approximation Rcp ~ 1/mantissa(x)
+ *    R = Rcp*x - 1.0
+ *    log10(x) = k*log10(2.0) - log10(Rcp) + poly_approximation(R)
+ *       log10(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.avx2,"ax",@progbits
+ENTRY(_ZGVdN4v_log10_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       -4222912+__svml_dlog10_data_internal(%rip), %rax
+        vmovapd   %ymm0, %ymm3
+
+/* preserve mantissa, set input exponent to 2^(-10) */
+        vandpd    8704+__svml_dlog10_data_internal(%rip), %ymm3, %ymm4
+        vorpd     8768+__svml_dlog10_data_internal(%rip), %ymm4, %ymm2
+
+/* reciprocal approximation good to at least 11 bits */
+        vcvtpd2ps %ymm2, %xmm5
+
+/* exponent bits */
+        vpsrlq    $20, %ymm3, %ymm7
+        vmovups   %ymm8, 32(%rsp)
+        vmovups   %ymm9, 96(%rsp)
+        vmovups   %ymm15, 320(%rsp)
+        .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, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+
+/* exponent*log(2.0) */
+        vmovupd   9280+__svml_dlog10_data_internal(%rip), %ymm15
+        vmovups   %ymm12, 224(%rsp)
+        vmovups   %ymm10, 160(%rsp)
+        vmovups   %ymm13, 256(%rsp)
+        vmovups   %ymm11, 192(%rsp)
+        vmovups   %ymm14, 288(%rsp)
+        vrcpps    %xmm5, %xmm6
+
+/* check range */
+        vcmplt_oqpd 8832+__svml_dlog10_data_internal(%rip), %ymm3, %ymm5
+        vcvtps2pd %xmm6, %ymm1
+        vcmpnle_uqpd 8896+__svml_dlog10_data_internal(%rip), %ymm3, %ymm6
+
+/* round reciprocal to nearest integer, will have 1+9 mantissa bits */
+        vroundpd  $0, %ymm1, %ymm1
+        .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
+        vorpd     %ymm6, %ymm5, %ymm8
+
+/* combine and get argument value range mask */
+        vmovmskpd %ymm8, %edx
+
+/* argument reduction */
+        vfmsub213pd 9088+__svml_dlog10_data_internal(%rip), %ymm1, %ymm2
+
+/* polynomial */
+        vmovupd   8512+__svml_dlog10_data_internal(%rip), %ymm8
+        vmovupd   8576+__svml_dlog10_data_internal(%rip), %ymm5
+
+/*
+ * prepare table index
+ * table lookup
+ */
+        vpsrlq    $40, %ymm1, %ymm9
+        vmulpd    %ymm2, %ymm2, %ymm6
+        vfmadd213pd 8544+__svml_dlog10_data_internal(%rip), %ymm2, %ymm8
+        vfmadd213pd 8608+__svml_dlog10_data_internal(%rip), %ymm2, %ymm5
+        vmulpd    8640+__svml_dlog10_data_internal(%rip), %ymm2, %ymm2
+        vcmplt_oqpd %ymm1, %ymm15, %ymm1
+        vfmadd213pd %ymm5, %ymm6, %ymm8
+        vandpd    9344+__svml_dlog10_data_internal(%rip), %ymm1, %ymm15
+        vfmadd213pd %ymm2, %ymm6, %ymm8
+        vextractf128 $1, %ymm9, %xmm12
+        vmovd     %xmm9, %ecx
+        vmovd     %xmm12, %r9d
+        movslq    %ecx, %rcx
+        vpextrd   $2, %xmm9, %r8d
+        movslq    %r9d, %r9
+        vpextrd   $2, %xmm12, %r10d
+        movslq    %r8d, %r8
+        movslq    %r10d, %r10
+        vmovsd    (%rax,%rcx), %xmm10
+        vmovsd    (%rax,%r9), %xmm13
+        vmovhpd   (%rax,%r8), %xmm10, %xmm11
+        vmovhpd   (%rax,%r10), %xmm13, %xmm14
+        vextractf128 $1, %ymm7, %xmm0
+        vshufps   $221, %xmm0, %xmm7, %xmm4
+
+/* biased exponent in DP format */
+        vcvtdq2pd %xmm4, %ymm0
+        vorpd     9408+__svml_dlog10_data_internal(%rip), %ymm15, %ymm4
+        vsubpd    %ymm4, %ymm0, %ymm0
+        vmulpd    9472+__svml_dlog10_data_internal(%rip), %ymm0, %ymm9
+        vinsertf128 $1, %xmm14, %ymm11, %ymm7
+
+/* reconstruction */
+        vaddpd    %ymm8, %ymm7, %ymm0
+        vaddpd    %ymm0, %ymm9, %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):
+        vmovupd   %ymm3, 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      %edx, %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_dlog10_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVdN4v_log10_avx2)
+
+        .align    16,0x90
+
+__svml_dlog10_cout_rare_internal:
+
+        cfi_startproc
+
+        xorl      %eax, %eax
+        movzwl    6(%rdi), %edx
+        andl      $32752, %edx
+        cmpl      $32752, %edx
+        je        L(11)
+        movsd     (%rdi), %xmm2
+        xorl      %ecx, %ecx
+        movsd     %xmm2, -8(%rsp)
+        movzwl    -2(%rsp), %edx
+        testl     $32752, %edx
+        jne       L(6)
+        movsd     1600+__dlog10_la_CoutTab(%rip), %xmm0
+        movl      $-60, %ecx
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm2, -8(%rsp)
+
+L(6):
+        movsd     1608+__dlog10_la_CoutTab(%rip), %xmm0
+        comisd    %xmm0, %xmm2
+        jbe       L(8)
+        movaps    %xmm2, %xmm1
+        subsd     .FLT_89(%rip), %xmm1
+        movsd     %xmm1, -16(%rsp)
+        andb      $127, -9(%rsp)
+        movsd     -16(%rsp), %xmm0
+        comisd    1592+__dlog10_la_CoutTab(%rip), %xmm0
+        jbe       L(7)
+        movsd     %xmm2, -16(%rsp)
+        pxor      %xmm7, %xmm7
+        movzwl    -10(%rsp), %edi
+        lea       __dlog10_la_CoutTab(%rip), %r10
+        andl      $-32753, %edi
+        addl      $16368, %edi
+        movw      %di, -10(%rsp)
+        movsd     -16(%rsp), %xmm3
+        movaps    %xmm3, %xmm1
+        movaps    %xmm3, %xmm2
+        movsd     1688+__dlog10_la_CoutTab(%rip), %xmm5
+        movzwl    -2(%rsp), %edx
+        andl      $32752, %edx
+        addsd     1576+__dlog10_la_CoutTab(%rip), %xmm1
+        addsd     1584+__dlog10_la_CoutTab(%rip), %xmm2
+        movsd     %xmm1, -24(%rsp)
+        movl      -24(%rsp), %r8d
+        movsd     %xmm2, -24(%rsp)
+        andl      $127, %r8d
+        movsd     -24(%rsp), %xmm8
+        movsd     1560+__dlog10_la_CoutTab(%rip), %xmm9
+        movsd     1568+__dlog10_la_CoutTab(%rip), %xmm0
+        shrl      $4, %edx
+        subsd     1584+__dlog10_la_CoutTab(%rip), %xmm8
+        lea       (%r8,%r8,2), %r9d
+        movsd     (%r10,%r9,8), %xmm6
+        lea       -1023(%rcx,%rdx), %ecx
+        cvtsi2sd  %ecx, %xmm7
+        subsd     %xmm8, %xmm3
+        mulsd     %xmm6, %xmm8
+        mulsd     %xmm7, %xmm9
+        subsd     1624+__dlog10_la_CoutTab(%rip), %xmm8
+        mulsd     %xmm3, %xmm6
+        mulsd     %xmm0, %xmm7
+        addsd     8(%r10,%r9,8), %xmm9
+        addsd     16(%r10,%r9,8), %xmm7
+        addsd     %xmm8, %xmm9
+        movaps    %xmm8, %xmm4
+        addsd     %xmm6, %xmm4
+        mulsd     %xmm4, %xmm5
+        addsd     1680+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1672+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1664+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1656+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1648+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1640+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1632+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm5, %xmm8
+        mulsd     %xmm6, %xmm5
+        addsd     %xmm5, %xmm7
+        addsd     %xmm6, %xmm7
+        addsd     %xmm7, %xmm8
+        addsd     %xmm8, %xmm9
+        movsd     %xmm9, (%rsi)
+        ret
+
+L(7):
+        movsd     1624+__dlog10_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm0, %xmm1
+        movsd     1688+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1680+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1672+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1664+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1656+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1648+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1640+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1632+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     %xmm1, %xmm2
+        movsd     %xmm2, (%rsi)
+        ret
+
+L(8):
+        ucomisd   %xmm0, %xmm2
+        jp        L(9)
+        je        L(10)
+
+L(9):
+        divsd     %xmm0, %xmm0
+        movsd     %xmm0, (%rsi)
+        movl      $1, %eax
+        ret
+
+L(10):
+        movsd     1616+__dlog10_la_CoutTab(%rip), %xmm1
+        movl      $2, %eax
+        xorps     .FLT_88(%rip), %xmm1
+        divsd     %xmm0, %xmm1
+        movsd     %xmm1, (%rsi)
+        ret
+
+L(11):
+        movb      7(%rdi), %dl
+        andb      $-128, %dl
+        cmpb      $-128, %dl
+        je        L(13)
+
+L(12):
+        movsd     (%rdi), %xmm0
+        mulsd     %xmm0, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+L(13):
+        testl     $1048575, 4(%rdi)
+        jne       L(12)
+        cmpl      $0, (%rdi)
+        jne       L(12)
+        movsd     1608+__dlog10_la_CoutTab(%rip), %xmm0
+        movl      $1, %eax
+        divsd     %xmm0, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_dlog10_cout_rare_internal,@function
+        .size	__svml_dlog10_cout_rare_internal,.-__svml_dlog10_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_dlog10_data_internal:
+        .long	1190572160
+        .long	3228777073
+        .long	3860447744
+        .long	3189665916
+        .long	1198987632
+        .long	3228777077
+        .long	3228397393
+        .long	3189668294
+        .long	1168821104
+        .long	3228777081
+        .long	637194908
+        .long	3189668066
+        .long	1100245360
+        .long	3228777085
+        .long	133785915
+        .long	3189667542
+        .long	993432048
+        .long	3228777089
+        .long	3017828443
+        .long	3189667588
+        .long	848551680
+        .long	3228777093
+        .long	560605178
+        .long	3189668289
+        .long	665773664
+        .long	3228777097
+        .long	3849538177
+        .long	3189667548
+        .long	445266208
+        .long	3228777101
+        .long	3804908986
+        .long	3189667886
+        .long	187196464
+        .long	3228777105
+        .long	3516966431
+        .long	3189667858
+        .long	4186697744
+        .long	3228777108
+        .long	3052190817
+        .long	3189667809
+        .long	3854000384
+        .long	3228777112
+        .long	1554781574
+        .long	3189667427
+        .long	3484235504
+        .long	3228777116
+        .long	4153839410
+        .long	3189667384
+        .long	3077565856
+        .long	3228777120
+        .long	4000768869
+        .long	3189667904
+        .long	2634153136
+        .long	3228777124
+        .long	4244738174
+        .long	3189668339
+        .long	2154157984
+        .long	3228777128
+        .long	3014247306
+        .long	3189667771
+        .long	1637739952
+        .long	3228777132
+        .long	1906045981
+        .long	3189667650
+        .long	1085057568
+        .long	3228777136
+        .long	3987700171
+        .long	3189668284
+        .long	496268368
+        .long	3228777140
+        .long	1674280096
+        .long	3189667373
+        .long	4166496080
+        .long	3228777143
+        .long	2078815235
+        .long	3189667744
+        .long	3505961600
+        .long	3228777147
+        .long	4286802640
+        .long	3189667683
+        .long	2809786672
+        .long	3228777151
+        .long	1913564473
+        .long	3189667639
+        .long	2078124752
+        .long	3228777155
+        .long	2693682663
+        .long	3189667702
+        .long	1311128304
+        .long	3228777159
+        .long	1012063542
+        .long	3189668158
+        .long	508948832
+        .long	3228777163
+        .long	2489929809
+        .long	3189667978
+        .long	3966704144
+        .long	3228777166
+        .long	2165614611
+        .long	3189667408
+        .long	3094609184
+        .long	3228777170
+        .long	2488783422
+        .long	3189667472
+        .long	2187779856
+        .long	3228777174
+        .long	2723126436
+        .long	3189667428
+        .long	1246363792
+        .long	3228777178
+        .long	3017034520
+        .long	3189668359
+        .long	270507744
+        .long	3228777182
+        .long	1972662349
+        .long	3189667544
+        .long	3555324736
+        .long	3228777185
+        .long	898998658
+        .long	3189668182
+        .long	2511025072
+        .long	3228777189
+        .long	2160314027
+        .long	3189667608
+        .long	1432719952
+        .long	3228777193
+        .long	1911887828
+        .long	3189668033
+        .long	320552432
+        .long	3228777197
+        .long	3280422502
+        .long	3189667818
+        .long	3469631920
+        .long	3228777200
+        .long	3027884278
+        .long	3189668109
+        .long	2290165072
+        .long	3228777204
+        .long	3517602960
+        .long	3189668197
+        .long	1077259536
+        .long	3228777208
+        .long	3013130823
+        .long	3189668046
+        .long	4126022080
+        .long	3228777211
+        .long	3235689898
+        .long	3189667740
+        .long	2846656704
+        .long	3228777215
+        .long	87643117
+        .long	3189667953
+        .long	1534268448
+        .long	3228777219
+        .long	754951962
+        .long	3189668360
+        .long	188994208
+        .long	3228777223
+        .long	3023581101
+        .long	3189668100
+        .long	3105937296
+        .long	3228777226
+        .long	1490072819
+        .long	3189668276
+        .long	1695298320
+        .long	3228777230
+        .long	3738440902
+        .long	3189668304
+        .long	252178944
+        .long	3228777234
+        .long	897194307
+        .long	3189667388
+        .long	3071679952
+        .long	3228777237
+        .long	195484330
+        .long	3189668024
+        .long	1563999488
+        .long	3228777241
+        .long	3795554301
+        .long	3189668248
+        .long	24236736
+        .long	3228777245
+        .long	2858806924
+        .long	3189668212
+        .long	2747490080
+        .long	3228777248
+        .long	4259795627
+        .long	3189667532
+        .long	1143955184
+        .long	3228777252
+        .long	4279885499
+        .long	3189667764
+        .long	3803696144
+        .long	3228777255
+        .long	3997664578
+        .long	3189667698
+        .long	2136907056
+        .long	3228777259
+        .long	2176158532
+        .long	3189667869
+        .long	438683136
+        .long	3228777263
+        .long	227964261
+        .long	3189667893
+        .long	3004118816
+        .long	3228777266
+        .long	2296676690
+        .long	3189667896
+        .long	1243405872
+        .long	3228777270
+        .long	2079834385
+        .long	3189667894
+        .long	3746604496
+        .long	3228777273
+        .long	3850151037
+        .long	3189668185
+        .long	1923904960
+        .long	3228777277
+        .long	574763554
+        .long	3189667699
+        .long	70398640
+        .long	3228777281
+        .long	3827982506
+        .long	3189667452
+        .long	2481176176
+        .long	3228777284
+        .long	1146808857
+        .long	3189667869
+        .long	566425600
+        .long	3228777288
+        .long	4238446104
+        .long	3189668130
+        .long	2916203392
+        .long	3228777291
+        .long	3553887815
+        .long	3189667582
+        .long	940696080
+        .long	3228777295
+        .long	1221192380
+        .long	3189668153
+        .long	3229958720
+        .long	3228777298
+        .long	2271570828
+        .long	3189667556
+        .long	1194176400
+        .long	3228777302
+        .long	3002536483
+        .long	3189667850
+        .long	3423402736
+        .long	3228777305
+        .long	2434838684
+        .long	3189667608
+        .long	1327821424
+        .long	3228777309
+        .long	2687777298
+        .long	3189667396
+        .long	3497484640
+        .long	3228777312
+        .long	2749657917
+        .long	3189668082
+        .long	1342574720
+        .long	3228777316
+        .long	3002546917
+        .long	3189668115
+        .long	3453142464
+        .long	3228777319
+        .long	3498283957
+        .long	3189667970
+        .long	1239368816
+        .long	3228777323
+        .long	455121273
+        .long	3189667422
+        .long	3291303200
+        .long	3228777326
+        .long	2621841620
+        .long	3189667932
+        .long	3012883008
+        .long	3228777333
+        .long	2362501462
+        .long	3189667975
+        .long	2618787376
+        .long	3228777340
+        .long	1091754251
+        .long	3189667994
+        .long	2109911280
+        .long	3228777347
+        .long	193599334
+        .long	3189668101
+        .long	1487139360
+        .long	3228777354
+        .long	3757852586
+        .long	3189667728
+        .long	751346048
+        .long	3228777361
+        .long	1167306858
+        .long	3189667607
+        .long	4198363056
+        .long	3228777367
+        .long	3727503052
+        .long	3189667447
+        .long	3239110320
+        .long	3228777374
+        .long	4101491224
+        .long	3189667535
+        .long	2169399936
+        .long	3228777381
+        .long	1682828411
+        .long	3189668088
+        .long	990067152
+        .long	3228777388
+        .long	325154957
+        .long	3189667406
+        .long	3996905008
+        .long	3228777394
+        .long	333920478
+        .long	3189668041
+        .long	2600795440
+        .long	3228777401
+        .long	1868291498
+        .long	3189667430
+        .long	1097513040
+        .long	3228777408
+        .long	2092796598
+        .long	3189667816
+        .long	3782823440
+        .long	3228777414
+        .long	2342635878
+        .long	3189667569
+        .long	2067581456
+        .long	3228777421
+        .long	2489432283
+        .long	3189667708
+        .long	247535056
+        .long	3228777428
+        .long	2233925548
+        .long	3189668023
+        .long	2618423584
+        .long	3228777434
+        .long	2884435678
+        .long	3189668162
+        .long	591076000
+        .long	3228777441
+        .long	2793733516
+        .long	3189667544
+        .long	2756182032
+        .long	3228777447
+        .long	726899401
+        .long	3189668194
+        .long	524554032
+        .long	3228777454
+        .long	3888914666
+        .long	3189668216
+        .long	2486865376
+        .long	3228777460
+        .long	2627594277
+        .long	3189667420
+        .long	53912208
+        .long	3228777467
+        .long	2333314786
+        .long	3189667677
+        .long	1816352000
+        .long	3228777473
+        .long	860249135
+        .long	3189668031
+        .long	3479932544
+        .long	3228777479
+        .long	1333576769
+        .long	3189667862
+        .long	750393936
+        .long	3228777486
+        .long	3863808803
+        .long	3189667876
+        .long	2218370608
+        .long	3228777492
+        .long	988274049
+        .long	3189667895
+        .long	3589587648
+        .long	3228777498
+        .long	1363020542
+        .long	3189667588
+        .long	569762768
+        .long	3228777505
+        .long	2860785679
+        .long	3189668116
+        .long	1749508368
+        .long	3228777511
+        .long	3454164214
+        .long	3189667505
+        .long	2834527744
+        .long	3228777517
+        .long	551781933
+        .long	3189668193
+        .long	3825484512
+        .long	3228777523
+        .long	2204991099
+        .long	3189668076
+        .long	428068000
+        .long	3228777530
+        .long	330816187
+        .long	3189667835
+        .long	1232862576
+        .long	3228777536
+        .long	1875584004
+        .long	3189667900
+        .long	1945543984
+        .long	3228777542
+        .long	3147029736
+        .long	3189667368
+        .long	2566748560
+        .long	3228777548
+        .long	2759544833
+        .long	3189667927
+        .long	3097106128
+        .long	3228777554
+        .long	2378335007
+        .long	3189667440
+        .long	3537239968
+        .long	3228777560
+        .long	59134449
+        .long	3189667766
+        .long	3887767008
+        .long	3228777566
+        .long	2237380018
+        .long	3189668142
+        .long	4149297872
+        .long	3228777572
+        .long	2899689733
+        .long	3189667692
+        .long	27469632
+        .long	3228777579
+        .long	2818642709
+        .long	3189667832
+        .long	112815152
+        .long	3228777585
+        .long	4092579806
+        .long	3189667420
+        .long	110959312
+        .long	3228777591
+        .long	936570796
+        .long	3189668056
+        .long	22488368
+        .long	3228777597
+        .long	365917996
+        .long	3189668022
+        .long	4142949952
+        .long	3228777602
+        .long	3149756965
+        .long	3189667408
+        .long	3882983968
+        .long	3228777608
+        .long	4081670258
+        .long	3189668028
+        .long	3538126528
+        .long	3228777614
+        .long	1719873156
+        .long	3189668130
+        .long	3108940752
+        .long	3228777620
+        .long	3284322898
+        .long	3189668289
+        .long	2595984192
+        .long	3228777626
+        .long	1642430589
+        .long	3189668010
+        .long	1999808880
+        .long	3228777632
+        .long	4232900950
+        .long	3189667360
+        .long	1320961392
+        .long	3228777638
+        .long	346567365
+        .long	3189667513
+        .long	559982960
+        .long	3228777644
+        .long	2138178062
+        .long	3189668130
+        .long	4012376832
+        .long	3228777649
+        .long	2536292360
+        .long	3189667756
+        .long	3088739088
+        .long	3228777655
+        .long	2310947316
+        .long	3189668224
+        .long	2084562592
+        .long	3228777661
+        .long	719337470
+        .long	3189667732
+        .long	1000367760
+        .long	3228777667
+        .long	2925814745
+        .long	3189668182
+        .long	4131637328
+        .long	3228777672
+        .long	2769058114
+        .long	3189668120
+        .long	2888947152
+        .long	3228777678
+        .long	2397746692
+        .long	3189667888
+        .long	1567770080
+        .long	3228777684
+        .long	1319666757
+        .long	3189667549
+        .long	168606816
+        .long	3228777690
+        .long	3249166601
+        .long	3189667815
+        .long	2986920608
+        .long	3228777695
+        .long	3117551188
+        .long	3189667844
+        .long	1433268080
+        .long	3228777701
+        .long	2392446108
+        .long	3189668088
+        .long	4098070400
+        .long	3228777706
+        .long	1952984424
+        .long	3189667965
+        .long	2391874944
+        .long	3228777712
+        .long	3260016359
+        .long	3189667565
+        .long	610126416
+        .long	3228777718
+        .long	1206683346
+        .long	3189668275
+        .long	3048265088
+        .long	3228777723
+        .long	3467821979
+        .long	3189668220
+        .long	1116824880
+        .long	3228777729
+        .long	3688655521
+        .long	3189667898
+        .long	3406204528
+        .long	3228777734
+        .long	3255713182
+        .long	3189667556
+        .long	1326929264
+        .long	3228777740
+        .long	200527713
+        .long	3189667591
+        .long	3469389248
+        .long	3228777745
+        .long	1129326388
+        .long	3189667868
+        .long	1244101248
+        .long	3228777751
+        .long	308865650
+        .long	3189668017
+        .long	3241447056
+        .long	3228777756
+        .long	3090939005
+        .long	3189667668
+        .long	871935152
+        .long	3228777762
+        .long	3265000937
+        .long	3189667670
+        .long	2725939152
+        .long	3228777767
+        .long	4229796659
+        .long	3189668178
+        .long	213959504
+        .long	3228777773
+        .long	1991139447
+        .long	3189667724
+        .long	1926361824
+        .long	3228777778
+        .long	2528808771
+        .long	3189668376
+        .long	3568606000
+        .long	3228777783
+        .long	4260639448
+        .long	3189667546
+        .long	846147968
+        .long	3228777789
+        .long	806895635
+        .long	3189668179
+        .long	2349341824
+        .long	3228777794
+        .long	3346322191
+        .long	3189667388
+        .long	3783635920
+        .long	3228777799
+        .long	175610890
+        .long	3189667587
+        .long	854474928
+        .long	3228777805
+        .long	2938776958
+        .long	3189668104
+        .long	2152201728
+        .long	3228777810
+        .long	2503702909
+        .long	3189668036
+        .long	3382253648
+        .long	3228777815
+        .long	990471545
+        .long	3189668020
+        .long	250064432
+        .long	3228777821
+        .long	2919909380
+        .long	3189667876
+        .long	1345966144
+        .long	3228777826
+        .long	3002840896
+        .long	3189668306
+        .long	2375385488
+        .long	3228777831
+        .long	3730416038
+        .long	3189667426
+        .long	3338712928
+        .long	3228777836
+        .long	1372953258
+        .long	3189667506
+        .long	4236335536
+        .long	3228777841
+        .long	3486643335
+        .long	3189668352
+        .long	773669728
+        .long	3228777847
+        .long	3527808638
+        .long	3189667828
+        .long	1541030400
+        .long	3228777852
+        .long	1323886332
+        .long	3189667450
+        .long	2243827264
+        .long	3228777857
+        .long	3473574637
+        .long	3189667708
+        .long	2882434080
+        .long	3228777862
+        .long	2116524762
+        .long	3189667453
+        .long	3457221328
+        .long	3228777867
+        .long	3472145296
+        .long	3189668357
+        .long	3968556352
+        .long	3228777872
+        .long	1399438939
+        .long	3189668087
+        .long	121835984
+        .long	3228777878
+        .long	1630440586
+        .long	3189667769
+        .long	507355824
+        .long	3228777883
+        .long	414821867
+        .long	3189668165
+        .long	830506528
+        .long	3228777888
+        .long	1651489076
+        .long	3189667856
+        .long	1091642960
+        .long	3228777893
+        .long	1914960493
+        .long	3189667544
+        .long	1291116960
+        .long	3228777898
+        .long	1585226677
+        .long	3189668172
+        .long	1429277424
+        .long	3228777903
+        .long	1458536815
+        .long	3189667992
+        .long	1506470256
+        .long	3228777908
+        .long	5177277
+        .long	3189667794
+        .long	1523038448
+        .long	3228777913
+        .long	2100423580
+        .long	3189667910
+        .long	1479322112
+        .long	3228777918
+        .long	2766296967
+        .long	3189668266
+        .long	1375658528
+        .long	3228777923
+        .long	3908110271
+        .long	3189667373
+        .long	1212382096
+        .long	3228777928
+        .long	1728734206
+        .long	3189667440
+        .long	989824464
+        .long	3228777933
+        .long	2721564364
+        .long	3189668188
+        .long	708314544
+        .long	3228777938
+        .long	1548992985
+        .long	3189667813
+        .long	368178464
+        .long	3228777943
+        .long	102841028
+        .long	3189668008
+        .long	4264706992
+        .long	3228777947
+        .long	975947285
+        .long	3189667700
+        .long	3808286304
+        .long	3228777952
+        .long	3025865597
+        .long	3189668024
+        .long	3294201856
+        .long	3228777957
+        .long	905114809
+        .long	3189668054
+        .long	2722769184
+        .long	3228777962
+        .long	3281428766
+        .long	3189667672
+        .long	2094301216
+        .long	3228777967
+        .long	2831959372
+        .long	3189668375
+        .long	1409108384
+        .long	3228777972
+        .long	2859726358
+        .long	3189667900
+        .long	667498528
+        .long	3228777977
+        .long	3483539044
+        .long	3189668146
+        .long	4164744336
+        .long	3228777981
+        .long	643592870
+        .long	3189667709
+        .long	3311214096
+        .long	3228777986
+        .long	3888135264
+        .long	3189667701
+        .long	2402175552
+        .long	3228777991
+        .long	1565708850
+        .long	3189668342
+        .long	1437926768
+        .long	3228777996
+        .long	3880143694
+        .long	3189667559
+        .long	418763344
+        .long	3228778001
+        .long	2177554551
+        .long	3189667774
+        .long	3639945856
+        .long	3228778005
+        .long	632683322
+        .long	3189668317
+        .long	2511830656
+        .long	3228778010
+        .long	1595152623
+        .long	3189668068
+        .long	1329673632
+        .long	3228778015
+        .long	1921601627
+        .long	3189668075
+        .long	93761104
+        .long	3228778020
+        .long	1757445293
+        .long	3189668004
+        .long	3099344416
+        .long	3228778024
+        .long	1435123721
+        .long	3189667691
+        .long	1756770768
+        .long	3228778029
+        .long	783914014
+        .long	3189667649
+        .long	361287040
+        .long	3228778034
+        .long	2235532382
+        .long	3189667506
+        .long	3208137904
+        .long	3228778038
+        .long	1904486204
+        .long	3189667498
+        .long	1707663968
+        .long	3228778043
+        .long	41908474
+        .long	3189667890
+        .long	155105584
+        .long	3228778048
+        .long	2107716085
+        .long	3189668380
+        .long	2845700992
+        .long	3228778052
+        .long	3156927676
+        .long	3189667488
+        .long	1189784368
+        .long	3228778057
+        .long	4047204189
+        .long	3189668063
+        .long	3777557072
+        .long	3228778061
+        .long	577628716
+        .long	3189667418
+        .long	2019349136
+        .long	3228778066
+        .long	2610467089
+        .long	3189667920
+        .long	210390496
+        .long	3228778071
+        .long	2766766141
+        .long	3189668118
+        .long	2645909040
+        .long	3228778075
+        .long	3243727052
+        .long	3189668176
+        .long	736228768
+        .long	3228778080
+        .long	3122320416
+        .long	3189668130
+        .long	3071540880
+        .long	3228778084
+        .long	3131821814
+        .long	3189668172
+        .long	1062165440
+        .long	3228778089
+        .long	3213377517
+        .long	3189667895
+        .long	3298289744
+        .long	3228778093
+        .long	2564668383
+        .long	3189667569
+        .long	1190229968
+        .long	3228778098
+        .long	3238426468
+        .long	3189668376
+        .long	3328169632
+        .long	3228778102
+        .long	1168702877
+        .long	3189667512
+        .long	1122421104
+        .long	3228778107
+        .long	19789062
+        .long	3189667604
+        .long	3163164128
+        .long	3228778111
+        .long	1630085837
+        .long	3189667685
+        .long	860707408
+        .long	3228778116
+        .long	4114762240
+        .long	3189667464
+        .long	2805226992
+        .long	3228778120
+        .long	18835043
+        .long	3189667485
+        .long	407027936
+        .long	3228778125
+        .long	1254882039
+        .long	3189668241
+        .long	2256282720
+        .long	3228778129
+        .long	1578671063
+        .long	3189668264
+        .long	4058260128
+        .long	3228778133
+        .long	2087871538
+        .long	3189668330
+        .long	1518227216
+        .long	3228778138
+        .long	1874562670
+        .long	3189667466
+        .long	3226351136
+        .long	3228778142
+        .long	1975306748
+        .long	3189668156
+        .long	592928208
+        .long	3228778147
+        .long	2027557844
+        .long	3189668223
+        .long	2208122192
+        .long	3228778151
+        .long	3385698680
+        .long	3189668056
+        .long	3777193280
+        .long	3228778155
+        .long	2370310143
+        .long	3189667586
+        .long	1005399968
+        .long	3228778160
+        .long	259325820
+        .long	3189668365
+        .long	2482901056
+        .long	3228778164
+        .long	780809723
+        .long	3189667443
+        .long	3914951728
+        .long	3228778168
+        .long	212773867
+        .long	3189667618
+        .long	1006805600
+        .long	3228778173
+        .long	951469551
+        .long	3189668212
+        .long	2348616576
+        .long	3228778177
+        .long	2086655720
+        .long	3189668128
+        .long	3645635056
+        .long	3228778181
+        .long	2113468742
+        .long	3189667868
+        .long	603109872
+        .long	3228778186
+        .long	1652875995
+        .long	3189667443
+        .long	1811190160
+        .long	3228778190
+        .long	2629878773
+        .long	3189668368
+        .long	2975121696
+        .long	3228778194
+        .long	346123600
+        .long	3189667455
+        .long	4095115920
+        .long	3228778198
+        .long	3526019824
+        .long	3189667996
+        .long	876415552
+        .long	3228778203
+        .long	1439312045
+        .long	3189667395
+        .long	1909163616
+        .long	3228778207
+        .long	3349683269
+        .long	3189668324
+        .long	2898599856
+        .long	3228778211
+        .long	649479362
+        .long	3189667358
+        .long	3844929728
+        .long	3228778215
+        .long	2676997587
+        .long	3189668158
+        .long	453390032
+        .long	3228778220
+        .long	848895008
+        .long	3189668036
+        .long	1314117952
+        .long	3228778224
+        .long	3492148440
+        .long	3189668045
+        .long	2132347376
+        .long	3228778228
+        .long	281429102
+        .long	3189667715
+        .long	2908278048
+        .long	3228778232
+        .long	2940038679
+        .long	3189667953
+        .long	3642108336
+        .long	3228778236
+        .long	3909547671
+        .long	3189667808
+        .long	39067888
+        .long	3228778241
+        .long	3920787602
+        .long	3189668378
+        .long	689286912
+        .long	3228778245
+        .long	1690865565
+        .long	3189667500
+        .long	1297992288
+        .long	3228778249
+        .long	2169866692
+        .long	3189667738
+        .long	1865376896
+        .long	3228778253
+        .long	967083596
+        .long	3189667983
+        .long	2391632256
+        .long	3228778257
+        .long	1361458469
+        .long	3189668348
+        .long	2876948576
+        .long	3228778261
+        .long	32611984
+        .long	3189667893
+        .long	3321514720
+        .long	3228778265
+        .long	2193827755
+        .long	3189667454
+        .long	3725518240
+        .long	3228778269
+        .long	2245419299
+        .long	3189668375
+        .long	4089145456
+        .long	3228778273
+        .long	3497133018
+        .long	3189668150
+        .long	117614048
+        .long	3228778278
+        .long	175818393
+        .long	3189668353
+        .long	401042352
+        .long	3228778282
+        .long	3839976210
+        .long	3189668213
+        .long	644645552
+        .long	3228778286
+        .long	3041010480
+        .long	3189667412
+        .long	848604848
+        .long	3228778290
+        .long	2760940853
+        .long	3189667832
+        .long	1013100256
+        .long	3228778294
+        .long	2385564198
+        .long	3189668140
+        .long	1138310560
+        .long	3228778298
+        .long	2892472831
+        .long	3189667574
+        .long	1224413296
+        .long	3228778302
+        .long	781676890
+        .long	3189667676
+        .long	1271584832
+        .long	3228778306
+        .long	3578454272
+        .long	3189667868
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	2256045239
+        .long	3209413770
+        .long	2491592457
+        .long	3210460574
+        .long	1804910333
+        .long	3211053321
+        .long	1914826022
+        .long	3211505620
+        .long	3803025062
+        .long	3211872665
+        .long	1674748349
+        .long	3212097941
+        .long	1798374224
+        .long	3212322782
+        .long	2768032015
+        .long	3212547190
+        .long	3136444289
+        .long	3212771167
+        .long	2855105875
+        .long	3212915789
+        .long	2332612951
+        .long	3213027349
+        .long	1363424900
+        .long	3213138696
+        .long	3437629661
+        .long	3213249830
+        .long	3435456176
+        .long	3213360753
+        .long	512327647
+        .long	3213471466
+        .long	2393978768
+        .long	3213581968
+        .long	3901767770
+        .long	3213692261
+        .long	4132692718
+        .long	3213802346
+        .long	1082284973
+        .long	3213898832
+        .long	2823056504
+        .long	3213953667
+        .long	366152305
+        .long	3214008400
+        .long	3959556563
+        .long	3214063029
+        .long	2367110801
+        .long	3214117557
+        .long	1523289056
+        .long	3214171983
+        .long	3058430271
+        .long	3214226307
+        .long	3839215
+        .long	3214280531
+        .long	2561657861
+        .long	3214334653
+        .long	3745193976
+        .long	3214388675
+        .long	853823952
+        .long	3214442598
+        .long	4062993129
+        .long	3214496420
+        .long	2064542556
+        .long	3214550144
+        .long	721479184
+        .long	3214603769
+        .long	1593203319
+        .long	3214657295
+        .long	1935571978
+        .long	3214710723
+        .long	3290896245
+        .long	3214764053
+        .long	2898068879
+        .long	3214817286
+        .long	2282560537
+        .long	3214870422
+        .long	2961513548
+        .long	3214923461
+        .long	1074417563
+        .long	3214955210
+        .long	2820079616
+        .long	3214981633
+        .long	1021551109
+        .long	3215008009
+        .long	716013687
+        .long	3215034337
+        .long	2641666110
+        .long	3215060617
+        .long	3237753164
+        .long	3215086850
+        .long	3234528909
+        .long	3215113036
+        .long	3358317786
+        .long	3215139175
+        .long	36575458
+        .long	3215165268
+        .long	2577785893
+        .long	3215191313
+        .long	3106717932
+        .long	3215217312
+        .long	2334256463
+        .long	3215243265
+        .long	967494986
+        .long	3215269172
+        .long	4004729818
+        .long	3215295032
+        .long	3555617588
+        .long	3215320847
+        .long	316038151
+        .long	3215346617
+        .long	3568120799
+        .long	3215372340
+        .long	1115499161
+        .long	3215398019
+        .long	2233009907
+        .long	3215423652
+        .long	3306979906
+        .long	3215449240
+        .long	720153405
+        .long	3215474784
+        .long	3736618996
+        .long	3215500282
+        .long	142096100
+        .long	3215525737
+        .long	3488599868
+        .long	3215551146
+        .long	1554858050
+        .long	3215576512
+        .long	3590975466
+        .long	3215601833
+        .long	1663752343
+        .long	3215627111
+        .long	721479184
+        .long	3215652345
+        .long	1414091172
+        .long	3215677535
+        .long	93191556
+        .long	3215702682
+        .long	1696976726
+        .long	3215727785
+        .long	2570390009
+        .long	3215752845
+        .long	3350046349
+        .long	3215777862
+        .long	374320308
+        .long	3215802837
+        .long	2863237644
+        .long	3215827768
+        .long	2853726453
+        .long	3215852657
+        .long	969442960
+        .long	3215877504
+        .long	2125826056
+        .long	3215902308
+        .long	2645217056
+        .long	3215927070
+        .long	3141783046
+        .long	3215951790
+        .long	4226570871
+        .long	3215976468
+        .long	3253764118
+        .long	3215991848
+        .long	999795016
+        .long	3216004146
+        .long	4242218727
+        .long	3216016422
+        .long	395520918
+        .long	3216028679
+        .long	2642482782
+        .long	3216040914
+        .long	2689550894
+        .long	3216053129
+        .long	831618312
+        .long	3216065324
+        .long	1657067230
+        .long	3216077498
+        .long	1162876950
+        .long	3216089652
+        .long	3934502846
+        .long	3216101785
+        .long	1671049587
+        .long	3216113899
+        .long	3250051821
+        .long	3216125992
+        .long	367745354
+        .long	3216138066
+        .long	1898814972
+        .long	3216150119
+        .long	3831632753
+        .long	3216162152
+        .long	2153169263
+        .long	3216174166
+        .long	1438937368
+        .long	3216186160
+        .long	1968099508
+        .long	3216198134
+        .long	4018444062
+        .long	3216210088
+        .long	3571427061
+        .long	3216222023
+        .long	902115705
+        .long	3216233939
+        .long	579197221
+        .long	3216245835
+        .long	2875053055
+        .long	3216257711
+        .long	3765767585
+        .long	3216269568
+        .long	3521071355
+        .long	3216281406
+        .long	2409382351
+        .long	3216293225
+        .long	697814500
+        .long	3216305025
+        .long	2947153405
+        .long	3216316805
+        .long	831995525
+        .long	3216328567
+        .long	3205527541
+        .long	3216340309
+        .long	1739796226
+        .long	3216352033
+        .long	990487678
+        .long	3216363738
+        .long	1217066237
+        .long	3216375424
+        .long	2677749815
+        .long	3216387091
+        .long	1334550573
+        .long	3216398740
+        .long	1738184714
+        .long	3216410370
+        .long	4143178441
+        .long	3216421981
+        .long	212908442
+        .long	3216433575
+        .long	3084380679
+        .long	3216445149
+        .long	123597797
+        .long	3216456706
+        .long	170206973
+        .long	3216468244
+        .long	3472736381
+        .long	3216479763
+        .long	1688602678
+        .long	3216491265
+        .long	3653922191
+        .long	3216502748
+        .long	1023779914
+        .long	3216514214
+        .long	2631975180
+        .long	3216525661
+        .long	131290539
+        .long	3216537091
+        .long	2353237313
+        .long	3216548502
+        .long	948324365
+        .long	3216559896
+        .long	450836243
+        .long	3216571272
+        .long	1098971024
+        .long	3216582630
+        .long	3129814575
+        .long	3216593970
+        .long	2484380169
+        .long	3216605293
+        .long	3692517238
+        .long	3216616598
+        .long	2693048988
+        .long	3216627886
+        .long	4013648344
+        .long	3216639156
+        .long	3590975466
+        .long	3216650409
+        .long	1655586284
+        .long	3216661645
+        .long	2731939102
+        .long	3216672863
+        .long	2753499254
+        .long	3216684064
+        .long	1947647495
+        .long	3216695248
+        .long	540719148
+        .long	3216706415
+        .long	3052977802
+        .long	3216717564
+        .long	1118752477
+        .long	3216728697
+        .long	3551215000
+        .long	3216739812
+        .long	1982647887
+        .long	3216750911
+        .long	929221623
+        .long	3216761993
+        .long	611131637
+        .long	3216773058
+        .long	1247571711
+        .long	3216784106
+        .long	3056740043
+        .long	3216795137
+        .long	1960877976
+        .long	3216806152
+        .long	2471177857
+        .long	3216817150
+        .long	507919781
+        .long	3216828132
+        .long	580346667
+        .long	3216839097
+        .long	2901768203
+        .long	3216850045
+        .long	3389566649
+        .long	3216860977
+        .long	2255137180
+        .long	3216871893
+        .long	4003893595
+        .long	3216882792
+        .long	255404805
+        .long	3216893676
+        .long	4103138823
+        .long	3216904542
+        .long	2869828094
+        .long	3216915393
+        .long	1057147997
+        .long	3216926228
+        .long	3165853160
+        .long	3216937046
+        .long	810881035
+        .long	3216947849
+        .long	2786128388
+        .long	3216958635
+        .long	704718315
+        .long	3216969406
+        .long	3358743942
+        .long	3216980160
+        .long	2359535366
+        .long	3216990899
+        .long	2202435985
+        .long	3217001622
+        .long	3086938536
+        .long	3217012329
+        .long	916690285
+        .long	3217023021
+        .long	2239683676
+        .long	3217032432
+        .long	2690954374
+        .long	3217037762
+        .long	4057646264
+        .long	3217043084
+        .long	2142368519
+        .long	3217048399
+        .long	1337238495
+        .long	3217053706
+        .long	1738982326
+        .long	3217059005
+        .long	3443904681
+        .long	3217064296
+        .long	2252923910
+        .long	3217069580
+        .long	2556476367
+        .long	3217074856
+        .long	154649628
+        .long	3217080125
+        .long	3732021368
+        .long	3217085385
+        .long	497923366
+        .long	3217090639
+        .long	3431084121
+        .long	3217095884
+        .long	4034990935
+        .long	3217101122
+        .long	2402663310
+        .long	3217106353
+        .long	2921687961
+        .long	3217111576
+        .long	1389319216
+        .long	3217116792
+        .long	2192350480
+        .long	3217122000
+        .long	1127247302
+        .long	3217127201
+        .long	2580018809
+        .long	3217132394
+        .long	2346350743
+        .long	3217137580
+        .long	516509563
+        .long	3217142759
+        .long	1475344637
+        .long	3217147930
+        .long	1017388536
+        .long	3217153094
+        .long	3526728381
+        .long	3217158250
+        .long	502171511
+        .long	3217163400
+        .long	622018689
+        .long	3217168542
+        .long	3974262445
+        .long	3217173676
+        .long	2056589177
+        .long	3217178804
+        .long	3546185020
+        .long	3217183924
+        .long	4234966846
+        .long	3217189037
+        .long	4209453505
+        .long	3217194143
+        .long	3555800579
+        .long	3217199242
+        .long	2359802410
+        .long	3217204334
+        .long	706894115
+        .long	3217209419
+        .long	2977120889
+        .long	3217214496
+        .long	665270808
+        .long	3217219567
+        .long	2445647873
+        .long	3217224630
+        .long	4107302903
+        .long	3217229686
+        .long	1438937368
+        .long	3217234736
+        .long	3113807214
+        .long	3217239778
+        .long	624953709
+        .long	3217244814
+        .long	60313751
+        .long	1069756916
+        .long	2039124234
+        .long	1069751894
+        .long	3639817142
+        .long	1069746879
+        .long	485812347
+        .long	1069741872
+        .long	1085767695
+        .long	1069736871
+        .long	1063773387
+        .long	1069731877
+        .long	339219334
+        .long	1069726890
+        .long	3126793337
+        .long	1069721909
+        .long	756610100
+        .long	1069716936
+        .long	1738980508
+        .long	1069711969
+        .long	1699638774
+        .long	1069707009
+        .long	559609852
+        .long	1069702056
+        .long	2535207687
+        .long	1069697109
+        .long	3253131575
+        .long	1069692169
+        .long	2635366323
+        .long	1069687236
+        .long	604213229
+        .long	1069682310
+        .long	1377255668
+        .long	1069677390
+        .long	582455508
+        .long	1069672477
+        .long	2438020609
+        .long	1069667570
+        .long	2572533958
+        .long	1069662670
+        .long	909853896
+        .long	1069657777
+        .long	1669112469
+        .long	1069652890
+        .long	479811889
+        .long	1069648010
+        .long	1561692097
+        .long	1069643136
+        .long	544859953
+        .long	1069638269
+        .long	1649656813
+        .long	1069633408
+        .long	506787744
+        .long	1069628554
+        .long	1337189126
+        .long	1069623706
+        .long	4067125179
+        .long	1069618864
+        .long	33219107
+        .long	1069614030
+        .long	2047222611
+        .long	1069609201
+        .long	1446341380
+        .long	1069604379
+        .long	2452971930
+        .long	1069599563
+        .long	699863591
+        .long	1069594754
+        .long	409986179
+        .long	1069589951
+        .long	1511626604
+        .long	1069585154
+        .long	3933354665
+        .long	1069580363
+        .long	3309054273
+        .long	1069575579
+        .long	3862823860
+        .long	1069570801
+        .long	1229105731
+        .long	1069566030
+        .long	3927521083
+        .long	1069561264
+        .long	3298097489
+        .long	1069556505
+        .long	3566038531
+        .long	1069551752
+        .long	733771779
+        .long	1069546492
+        .long	147741522
+        .long	1069537011
+        .long	941119220
+        .long	1069527542
+        .long	2976542023
+        .long	1069518085
+        .long	1822213927
+        .long	1069508641
+        .long	1636804890
+        .long	1069499209
+        .long	2284546202
+        .long	1069489789
+        .long	3630195051
+        .long	1069480381
+        .long	1244064508
+        .long	1069470986
+        .long	3581890024
+        .long	1069461602
+        .long	1920055674
+        .long	1069452231
+        .long	420362572
+        .long	1069442872
+        .long	3245124339
+        .long	1069433524
+        .long	1672262586
+        .long	1069424189
+        .long	4160075380
+        .long	1069414865
+        .long	1987496281
+        .long	1069405554
+        .long	3613830132
+        .long	1069396254
+        .long	319012134
+        .long	1069386967
+        .long	563343667
+        .long	1069377691
+        .long	4217685989
+        .long	1069368426
+        .long	2563457725
+        .long	1069359174
+        .long	4062436141
+        .long	1069349933
+        .long	4291983603
+        .long	1069340704
+        .long	3124914285
+        .long	1069331487
+        .long	434524433
+        .long	1069322282
+        .long	389557226
+        .long	1069313088
+        .long	2864265763
+        .long	1069303905
+        .long	3438410662
+        .long	1069294734
+        .long	1987192267
+        .long	1069285575
+        .long	2681248272
+        .long	1069276427
+        .long	1101749478
+        .long	1069267291
+        .long	1420266631
+        .long	1069258166
+        .long	3513866211
+        .long	1069249052
+        .long	2965108111
+        .long	1069239950
+        .long	3946945232
+        .long	1069230859
+        .long	2042852013
+        .long	1069221780
+        .long	1426691339
+        .long	1069212712
+        .long	1977810406
+        .long	1069203655
+        .long	3576005764
+        .long	1069194609
+        .long	1806553800
+        .long	1069185575
+        .long	845110407
+        .long	1069176552
+        .long	572806897
+        .long	1069167540
+        .long	871215109
+        .long	1069158539
+        .long	1622345234
+        .long	1069149549
+        .long	2708643653
+        .long	1069140570
+        .long	4012990793
+        .long	1069131602
+        .long	1123731696
+        .long	1069122646
+        .long	2514543080
+        .long	1069113700
+        .long	3774627456
+        .long	1069104765
+        .long	493612919
+        .long	1069095842
+        .long	1146452959
+        .long	1069086929
+        .long	1323620609
+        .long	1069078027
+        .long	910975575
+        .long	1069069136
+        .long	4089762193
+        .long	1069060255
+        .long	2156738208
+        .long	1069051386
+        .long	3588943832
+        .long	1069042527
+        .long	3978928661
+        .long	1069033679
+        .long	3214618865
+        .long	1069024842
+        .long	1184347908
+        .long	1069016016
+        .long	2071821874
+        .long	1069007200
+        .long	1471215619
+        .long	1068998395
+        .long	3567040008
+        .long	1068989600
+        .long	3954270794
+        .long	1068980816
+        .long	2523248584
+        .long	1068972043
+        .long	3459676924
+        .long	1068963280
+        .long	2359718512
+        .long	1068954528
+        .long	3409862494
+        .long	1068945786
+        .long	2207053396
+        .long	1068937055
+        .long	2938558446
+        .long	1068928334
+        .long	1202096535
+        .long	1068919624
+        .long	1185705549
+        .long	1068910924
+        .long	2782838657
+        .long	1068902234
+        .long	1592362481
+        .long	1068893555
+        .long	1803457173
+        .long	1068884886
+        .long	3310712729
+        .long	1068876227
+        .long	1714127196
+        .long	1068867579
+        .long	1204006779
+        .long	1068858941
+        .long	1676062187
+        .long	1068850313
+        .long	3026374166
+        .long	1068841695
+        .long	856424459
+        .long	1068833088
+        .long	3652963247
+        .long	1068824490
+        .long	2723236352
+        .long	1068815903
+        .long	2259754591
+        .long	1068807326
+        .long	2160422882
+        .long	1068798759
+        .long	2323505847
+        .long	1068790202
+        .long	2647626118
+        .long	1068781655
+        .long	3031762665
+        .long	1068773118
+        .long	3375249122
+        .long	1068764591
+        .long	3577772136
+        .long	1068756074
+        .long	3539369713
+        .long	1068747567
+        .long	3160429578
+        .long	1068739070
+        .long	2341687551
+        .long	1068730583
+        .long	984225923
+        .long	1068722106
+        .long	3284439142
+        .long	1068713638
+        .long	554163028
+        .long	1068705181
+        .long	1285444256
+        .long	1068696733
+        .long	1085767695
+        .long	1068688295
+        .long	4152891319
+        .long	1068679866
+        .long	1800008162
+        .long	1068671448
+        .long	2520515836
+        .long	1068663039
+        .long	1923243906
+        .long	1068654640
+        .long	4207288842
+        .long	1068646250
+        .long	687176001
+        .long	1068637871
+        .long	4152596484
+        .long	1068629500
+        .long	1623765359
+        .long	1068621140
+        .long	1596060423
+        .long	1068612789
+        .long	3975249632
+        .long	1068604447
+        .long	77489616
+        .long	1068596116
+        .long	2694095274
+        .long	1068587793
+        .long	3141865345
+        .long	1068579480
+        .long	1327852022
+        .long	1068571177
+        .long	1454392201
+        .long	1068562883
+        .long	3429171450
+        .long	1068554598
+        .long	2865222567
+        .long	1068546323
+        .long	3965826047
+        .long	1068538057
+        .long	2344639476
+        .long	1068529801
+        .long	2205565304
+        .long	1068521554
+        .long	3457847553
+        .long	1068513316
+        .long	1716070423
+        .long	1068505088
+        .long	2370117590
+        .long	1068494794
+        .long	3549949915
+        .long	1068478374
+        .long	2497601776
+        .long	1068461973
+        .long	3329575662
+        .long	1068445590
+        .long	1573040697
+        .long	1068429226
+        .long	1345699131
+        .long	1068412880
+        .long	2470881766
+        .long	1068396552
+        .long	477545290
+        .long	1068380243
+        .long	3780138808
+        .long	1068363951
+        .long	3613830132
+        .long	1068347678
+        .long	4099274231
+        .long	1068331423
+        .long	767774141
+        .long	1068315187
+        .long	2036114853
+        .long	1068298968
+        .long	3436756955
+        .long	1068282767
+        .long	502735958
+        .long	1068266585
+        .long	1652561629
+        .long	1068250420
+        .long	2420411682
+        .long	1068234273
+        .long	2635998437
+        .long	1068218144
+        .long	2129599017
+        .long	1068202033
+        .long	732052851
+        .long	1068185940
+        .long	2569726489
+        .long	1068169864
+        .long	3179609248
+        .long	1068153806
+        .long	2394212644
+        .long	1068137766
+        .long	46600658
+        .long	1068121744
+        .long	265354603
+        .long	1068105739
+        .long	2884636119
+        .long	1068089751
+        .long	3444184771
+        .long	1068073781
+        .long	1779250256
+        .long	1068057829
+        .long	2020590027
+        .long	1068041894
+        .long	4004532340
+        .long	1068025976
+        .long	3272973907
+        .long	1068010076
+        .long	3958279445
+        .long	1067994193
+        .long	1603410172
+        .long	1067978328
+        .long	341790679
+        .long	1067962480
+        .long	12404745
+        .long	1067946649
+        .long	454760348
+        .long	1067930835
+        .long	1508887391
+        .long	1067915038
+        .long	3015335440
+        .long	1067899258
+        .long	520204185
+        .long	1067883496
+        .long	2455010382
+        .long	1067867750
+        .long	71914560
+        .long	1067852022
+        .long	1803457173
+        .long	1067836310
+        .long	3197785334
+        .long	1067820615
+        .long	4098519806
+        .long	1067804937
+        .long	54818232
+        .long	1067789277
+        .long	3796209456
+        .long	1067773632
+        .long	2282918403
+        .long	1067758005
+        .long	3950504196
+        .long	1067742394
+        .long	55152364
+        .long	1067726801
+        .long	3328378382
+        .long	1067711223
+        .long	732385311
+        .long	1067695663
+        .long	704701956
+        .long	1067680119
+        .long	3093409710
+        .long	1067664591
+        .long	3452107773
+        .long	1067649080
+        .long	1629845684
+        .long	1067633586
+        .long	1771121268
+        .long	1067618108
+        .long	3725944001
+        .long	1067602646
+        .long	3049832979
+        .long	1067587201
+        .long	3888716792
+        .long	1067571772
+        .long	1799062323
+        .long	1067556360
+        .long	927741940
+        .long	1067540964
+        .long	1127129614
+        .long	1067525584
+        .long	2250066244
+        .long	1067510220
+        .long	4149857685
+        .long	1067494872
+        .long	2385305499
+        .long	1067479541
+        .long	1105606892
+        .long	1067464226
+        .long	330901792
+        .long	1067447486
+        .long	3134934760
+        .long	1067416919
+        .long	1744581096
+        .long	1067386385
+        .long	166917835
+        .long	1067355883
+        .long	2409924962
+        .long	1067325412
+        .long	3892547049
+        .long	1067294973
+        .long	34624089
+        .long	1067264567
+        .long	3436756955
+        .long	1067234191
+        .long	930630721
+        .long	1067203848
+        .long	823651223
+        .long	1067173536
+        .long	2834170318
+        .long	1067143255
+        .long	2386449519
+        .long	1067113006
+        .long	3495558248
+        .long	1067082788
+        .long	1587501032
+        .long	1067052602
+        .long	679083091
+        .long	1067022447
+        .long	493004867
+        .long	1066992323
+        .long	752825758
+        .long	1066962230
+        .long	1182960573
+        .long	1066932168
+        .long	1508676010
+        .long	1066902137
+        .long	1456087143
+        .long	1066872137
+        .long	752153937
+        .long	1066842168
+        .long	3419645073
+        .long	1066812229
+        .long	597265304
+        .long	1066782322
+        .long	604423098
+        .long	1066752445
+        .long	3171423441
+        .long	1066722598
+        .long	3734431730
+        .long	1066692782
+        .long	2025404984
+        .long	1066662997
+        .long	2072088478
+        .long	1066633242
+        .long	3608077800
+        .long	1066603517
+        .long	2072815517
+        .long	1066573823
+        .long	1496489755
+        .long	1066544159
+        .long	1615129006
+        .long	1066514525
+        .long	2165566144
+        .long	1066484921
+        .long	2885435163
+        .long	1066455347
+        .long	3513167923
+        .long	1066425803
+        .long	3281014557
+        .long	1066390787
+        .long	2604876893
+        .long	1066331819
+        .long	184567847
+        .long	1066272911
+        .long	4093204381
+        .long	1066214061
+        .long	930630721
+        .long	1066155272
+        .long	3068052312
+        .long	1066096541
+        .long	1403389294
+        .long	1066037870
+        .long	4015975920
+        .long	1065979257
+        .long	1806815988
+        .long	1065920704
+        .long	2858315029
+        .long	1065862209
+        .long	2369503088
+        .long	1065803773
+        .long	4130865093
+        .long	1065745395
+        .long	3344465584
+        .long	1065687076
+        .long	3803811842
+        .long	1065628815
+        .long	713978687
+        .long	1065570613
+        .long	2166438958
+        .long	1065512468
+        .long	3369253777
+        .long	1065454381
+        .long	3826935798
+        .long	1065396352
+        .long	1795984718
+        .long	1065323547
+        .long	1064675693
+        .long	1065207720
+        .long	182837332
+        .long	1065092008
+        .long	2466218622
+        .long	1064976410
+        .long	2643543973
+        .long	1064860927
+        .long	4036370876
+        .long	1064745558
+        .long	1379209261
+        .long	1064630304
+        .long	2294346567
+        .long	1064515163
+        .long	1522032624
+        .long	1064400136
+        .long	495642370
+        .long	1064265805
+        .long	3615182787
+        .long	1064036203
+        .long	1900236729
+        .long	1063806828
+        .long	2033862474
+        .long	1063577678
+        .long	2114800432
+        .long	1063348753
+        .long	494771388
+        .long	1062984042
+        .long	1967954106
+        .long	1062527089
+        .long	1170198565
+        .long	1061933680
+        .long	417502738
+        .long	1060884213
+        .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
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	368569247
+        .long	3223701786
+        .long	368569247
+        .long	3223701786
+        .long	368569247
+        .long	3223701786
+        .long	368569247
+        .long	3223701786
+        .long	1671522011
+        .long	1075227560
+        .long	1671522011
+        .long	1075227560
+        .long	1671522011
+        .long	1075227560
+        .long	1671522011
+        .long	1075227560
+        .long	1691548315
+        .long	3221787401
+        .long	1691548315
+        .long	3221787401
+        .long	1691548315
+        .long	3221787401
+        .long	1691548315
+        .long	3221787401
+        .long	3700771192
+        .long	1073506818
+        .long	3700771192
+        .long	1073506818
+        .long	3700771192
+        .long	1073506818
+        .long	3700771192
+        .long	1073506818
+        .long	3698831637
+        .long	3220339442
+        .long	3698831637
+        .long	3220339442
+        .long	3698831637
+        .long	3220339442
+        .long	3698831637
+        .long	3220339442
+        .long	3207479564
+        .long	1062894188
+        .long	3207479564
+        .long	1062894188
+        .long	3207479564
+        .long	1062894188
+        .long	3207479564
+        .long	1062894188
+        .long	589282582
+        .long	1068907621
+        .long	589282582
+        .long	1068907621
+        .long	589282582
+        .long	1068907621
+        .long	589282582
+        .long	1068907621
+        .long	1325131787
+        .long	3216755581
+        .long	1325131787
+        .long	3216755581
+        .long	1325131787
+        .long	3216755581
+        .long	1325131787
+        .long	3216755581
+        .long	1668232222
+        .long	1069713319
+        .long	1668232222
+        .long	1069713319
+        .long	1668232222
+        .long	1069713319
+        .long	1668232222
+        .long	1069713319
+        .long	354868790
+        .long	3217804155
+        .long	354868790
+        .long	3217804155
+        .long	354868790
+        .long	3217804155
+        .long	354868790
+        .long	3217804155
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	4294967295
+        .long	1048575
+        .long	4294967295
+        .long	1048575
+        .long	4294967295
+        .long	1048575
+        .long	4294967295
+        .long	1048575
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1062207488
+        .long	0
+        .long	1062207488
+        .long	0
+        .long	1062207488
+        .long	0
+        .long	1062207488
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1048576
+        .long	0
+        .long	1048576
+        .long	0
+        .long	1048576
+        .long	0
+        .long	1048576
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	4227858432
+        .long	4294967295
+        .long	4227858432
+        .long	4294967295
+        .long	4227858432
+        .long	4294967295
+        .long	4227858432
+        .long	4294967295
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1071366144
+        .long	0
+        .long	1071366144
+        .long	0
+        .long	1071366144
+        .long	0
+        .long	1071366144
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1352597504
+        .long	1070810131
+        .long	1352597504
+        .long	1070810131
+        .long	1352597504
+        .long	1070810131
+        .long	1352597504
+        .long	1070810131
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	3296460800
+        .long	1031700412
+        .long	3296460800
+        .long	1031700412
+        .long	3296460800
+        .long	1031700412
+        .long	3296460800
+        .long	1031700412
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1082564608
+        .long	0
+        .long	1082564608
+        .long	0
+        .long	1082564608
+        .long	0
+        .long	1082564608
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1083176960
+        .long	0
+        .long	1083176960
+        .long	0
+        .long	1083176960
+        .long	0
+        .long	1083176960
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1083174912
+        .long	0
+        .long	1083174912
+        .long	0
+        .long	1083174912
+        .long	0
+        .long	1083174912
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	4293918720
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	3220176896
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	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
+        .type	__svml_dlog10_data_internal,@object
+        .size	__svml_dlog10_data_internal,9728
+        .align 32
+
+__dlog10_la_CoutTab:
+        .long	0
+        .long	1071366144
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	1071337728
+        .long	184549376
+        .long	1065092008
+        .long	2099961998
+        .long	3178897324
+        .long	0
+        .long	1071309312
+        .long	931135488
+        .long	1066155272
+        .long	2365712557
+        .long	3178155773
+        .long	0
+        .long	1071280896
+        .long	603979776
+        .long	1066752445
+        .long	709057215
+        .long	1031474920
+        .long	0
+        .long	1071252480
+        .long	3437232128
+        .long	1067234191
+        .long	1515412199
+        .long	3179085970
+        .long	0
+        .long	1071238272
+        .long	1105723392
+        .long	1067464226
+        .long	153915826
+        .long	3178000698
+        .long	0
+        .long	1071209856
+        .long	3328442368
+        .long	1067711223
+        .long	3899912278
+        .long	3177135692
+        .long	0
+        .long	1071181440
+        .long	341835776
+        .long	1067962480
+        .long	2509208190
+        .long	3176531222
+        .long	0
+        .long	1071167232
+        .long	2884632576
+        .long	1068089751
+        .long	1030636902
+        .long	1025224143
+        .long	0
+        .long	1071138816
+        .long	3613917184
+        .long	1068347678
+        .long	3527163461
+        .long	3177529532
+        .long	0
+        .long	1071124608
+        .long	3549954048
+        .long	1068478374
+        .long	3498894081
+        .long	3173000425
+        .long	0
+        .long	1071096192
+        .long	1623785472
+        .long	1068621140
+        .long	2889825554
+        .long	3176375375
+        .long	0
+        .long	1071081984
+        .long	1085800448
+        .long	1068688295
+        .long	4015256301
+        .long	3177184346
+        .long	0
+        .long	1071053568
+        .long	3652976640
+        .long	1068824490
+        .long	3600693529
+        .long	3175753877
+        .long	0
+        .long	1071039360
+        .long	1592393728
+        .long	1068893555
+        .long	231073830
+        .long	3177087939
+        .long	0
+        .long	1071025152
+        .long	3459645440
+        .long	1068963280
+        .long	1740576090
+        .long	1029619435
+        .long	0
+        .long	1070996736
+        .long	3774611456
+        .long	1069104765
+        .long	3858552785
+        .long	1028603845
+        .long	0
+        .long	1070982528
+        .long	845086720
+        .long	1069176552
+        .long	3138879731
+        .long	1029120443
+        .long	0
+        .long	1070968320
+        .long	3513843712
+        .long	1069249052
+        .long	2107125367
+        .long	1029044389
+        .long	0
+        .long	1070954112
+        .long	434503680
+        .long	1069322282
+        .long	3827602229
+        .long	1028932700
+        .long	0
+        .long	1070939904
+        .long	3613851648
+        .long	1069396254
+        .long	1223751955
+        .long	3176465139
+        .long	0
+        .long	1070911488
+        .long	733741056
+        .long	1069546492
+        .long	1625232067
+        .long	1029570781
+        .long	0
+        .long	1070897280
+        .long	1511620608
+        .long	1069585154
+        .long	3044605139
+        .long	1028090775
+        .long	0
+        .long	1070883072
+        .long	1337196544
+        .long	1069623706
+        .long	2602639001
+        .long	3175938675
+        .long	0
+        .long	1070868864
+        .long	2572533760
+        .long	1069662670
+        .long	3067107955
+        .long	1022933137
+        .long	0
+        .long	1070854656
+        .long	559611904
+        .long	1069702056
+        .long	764145786
+        .long	3174041535
+        .long	0
+        .long	1070840448
+        .long	485818368
+        .long	1069741872
+        .long	2037567072
+        .long	3175580956
+        .long	0
+        .long	1070826240
+        .long	259604480
+        .long	1069782128
+        .long	4012068429
+        .long	1027865895
+        .long	0
+        .long	1070812032
+        .long	3454042112
+        .long	1069822833
+        .long	2867680007
+        .long	3174202478
+        .long	0
+        .long	1070797824
+        .long	2188754944
+        .long	1069863999
+        .long	2538655286
+        .long	3175840981
+        .long	0
+        .long	1070783616
+        .long	2965241856
+        .long	1069905635
+        .long	1338936972
+        .long	3176093950
+        .long	0
+        .long	1070769408
+        .long	966279168
+        .long	1069947753
+        .long	1774547674
+        .long	3175051484
+        .long	0
+        .long	1070755200
+        .long	1604042752
+        .long	1069990363
+        .long	2557470738
+        .long	3174667448
+        .long	0
+        .long	1070740992
+        .long	3417833472
+        .long	1070033477
+        .long	2268255117
+        .long	3175678264
+        .long	0
+        .long	1070740992
+        .long	3417833472
+        .long	1070033477
+        .long	2268255117
+        .long	3175678264
+        .long	0
+        .long	1070726784
+        .long	2451292160
+        .long	1070077108
+        .long	3757728941
+        .long	1027943275
+        .long	0
+        .long	1070712576
+        .long	929644544
+        .long	1070121268
+        .long	899045708
+        .long	1027944939
+        .long	0
+        .long	1070698368
+        .long	3057254400
+        .long	1070165969
+        .long	3880649376
+        .long	3172972504
+        .long	0
+        .long	1070684160
+        .long	2231091200
+        .long	1070211226
+        .long	521319256
+        .long	1027600177
+        .long	0
+        .long	1070684160
+        .long	2231091200
+        .long	1070211226
+        .long	521319256
+        .long	1027600177
+        .long	0
+        .long	1070669952
+        .long	2620162048
+        .long	1070257052
+        .long	1385613369
+        .long	3176104036
+        .long	0
+        .long	1070655744
+        .long	2096726016
+        .long	1070303462
+        .long	3138305819
+        .long	3173646777
+        .long	0
+        .long	1070641536
+        .long	944717824
+        .long	1070350471
+        .long	1065120110
+        .long	1027539054
+        .long	0
+        .long	1070641536
+        .long	944717824
+        .long	1070350471
+        .long	1065120110
+        .long	1027539054
+        .long	0
+        .long	1070627328
+        .long	1985789952
+        .long	1070398094
+        .long	3635943864
+        .long	3173136490
+        .long	0
+        .long	1070613120
+        .long	2123825152
+        .long	1070446348
+        .long	1125219725
+        .long	3175615738
+        .long	0
+        .long	1070598912
+        .long	1078378496
+        .long	1070495250
+        .long	603852726
+        .long	3174570526
+        .long	0
+        .long	1070598912
+        .long	1078378496
+        .long	1070495250
+        .long	603852726
+        .long	3174570526
+        .long	0
+        .long	1070573312
+        .long	1537933312
+        .long	1070544817
+        .long	998069198
+        .long	1026662908
+        .long	0
+        .long	1070544896
+        .long	733773824
+        .long	1070595068
+        .long	4061058002
+        .long	3174036009
+        .long	0
+        .long	1070544896
+        .long	733773824
+        .long	1070595068
+        .long	4061058002
+        .long	3174036009
+        .long	0
+        .long	1070516480
+        .long	3897544704
+        .long	1070621058
+        .long	951856294
+        .long	1026731877
+        .long	0
+        .long	1070516480
+        .long	3897544704
+        .long	1070621058
+        .long	951856294
+        .long	1026731877
+        .long	0
+        .long	1070488064
+        .long	493535232
+        .long	1070646897
+        .long	3852369308
+        .long	3173264746
+        .long	0
+        .long	1070459648
+        .long	463249408
+        .long	1070673107
+        .long	2853152111
+        .long	3174564937
+        .long	0
+        .long	1070459648
+        .long	463249408
+        .long	1070673107
+        .long	2853152111
+        .long	3174564937
+        .long	0
+        .long	1070431232
+        .long	3186585600
+        .long	1070699699
+        .long	1874718356
+        .long	3174139933
+        .long	0
+        .long	1070431232
+        .long	3186585600
+        .long	1070699699
+        .long	1874718356
+        .long	3174139933
+        .long	0
+        .long	1070402816
+        .long	1525858304
+        .long	1070726686
+        .long	3039843523
+        .long	1024724665
+        .long	0
+        .long	1070402816
+        .long	1525858304
+        .long	1070726686
+        .long	3039843523
+        .long	1024724665
+        .long	0
+        .long	1070374400
+        .long	3425300480
+        .long	1070754078
+        .long	1303046649
+        .long	1022401701
+        .long	0
+        .long	1070374400
+        .long	3425300480
+        .long	1070754078
+        .long	1303046649
+        .long	1022401701
+        .long	0
+        .long	1070345984
+        .long	1980465152
+        .long	1070781889
+        .long	3188656319
+        .long	1027271390
+        .long	0
+        .long	1070345984
+        .long	1980465152
+        .long	1070781889
+        .long	3188656319
+        .long	1027271390
+        .long	0
+        .long	1070317568
+        .long	1352630272
+        .long	1070810131
+        .long	3090895658
+        .long	3174564915
+        .long	1352630272
+        .long	1070810131
+        .long	3090895658
+        .long	3174564915
+        .long	64
+        .long	1120927744
+        .long	0
+        .long	1096810496
+        .long	0
+        .long	1064828928
+        .long	0
+        .long	1135607808
+        .long	0
+        .long	0
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1071366144
+        .long	3207479559
+        .long	1062894188
+        .long	3698831637
+        .long	3220339442
+        .long	3700832817
+        .long	1073506818
+        .long	1691624569
+        .long	3221787401
+        .long	2065628764
+        .long	1075227551
+        .long	1770847080
+        .long	3223701774
+        .long	3786517112
+        .long	1077250450
+        .long	1316351650
+        .long	3225793313
+        .type	__dlog10_la_CoutTab,@object
+        .size	__dlog10_la_CoutTab,1696
+        .align 16
+
+.FLT_88:
+        .long	0x00000000,0x80000000,0x00000000,0x00000000
+        .type	.FLT_88,@object
+        .size	.FLT_88,16
+        .align 8
+
+.FLT_89:
+        .long	0x00000000,0x3ff00000
+        .type	.FLT_89,@object
+        .size	.FLT_89,8
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core-avx2.S
new file mode 100644
index 0000000000..3432e7cffe
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core-avx2.S
@@ -0,0 +1,20 @@ 
+/* AVX2 version of vectorized log10, 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_log10 _ZGVeN8v_log10_avx2_wrapper
+#include "../svml_d_log108_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core.c
new file mode 100644
index 0000000000..273a0d4739
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core.c
@@ -0,0 +1,27 @@ 
+/* Multiple versions of vectorized log10, 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_log10
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN8v_log10, __GI__ZGVeN8v_log10, __redirect__ZGVeN8v_log10)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core_avx512.S
new file mode 100644
index 0000000000..5dda561d49
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log108_core_avx512.S
@@ -0,0 +1,1082 @@ 
+/* Function log10 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:
+ *
+ *    Get short reciprocal approximation Rcp ~ 1/mantissa(x)
+ *    R = Rcp*x - 1.0
+ *    log10(x) = k*log10(2.0) - log10(Rcp) + poly_approximation(R)
+ *       log10(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.evex512,"ax",@progbits
+ENTRY(_ZGVeN8v_log10_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, %zmm7
+        vgetmantpd $8, {sae}, %zmm7, %zmm6
+        vmovups   128+__svml_dlog10_data_internal_avx512(%rip), %zmm3
+        vmovups   512+__svml_dlog10_data_internal_avx512(%rip), %zmm12
+        vmovups   640+__svml_dlog10_data_internal_avx512(%rip), %zmm13
+
+/* Start polynomial evaluation */
+        vmovups   256+__svml_dlog10_data_internal_avx512(%rip), %zmm10
+        vmovups   320+__svml_dlog10_data_internal_avx512(%rip), %zmm1
+        vmovups   384+__svml_dlog10_data_internal_avx512(%rip), %zmm11
+        vmovups   448+__svml_dlog10_data_internal_avx512(%rip), %zmm14
+
+/* Prepare exponent correction: DblRcp<0.75? */
+        vmovups   192+__svml_dlog10_data_internal_avx512(%rip), %zmm2
+
+/* Table lookup */
+        vmovups   __svml_dlog10_data_internal_avx512(%rip), %zmm5
+
+/* GetExp(x) */
+        vgetexppd {sae}, %zmm7, %zmm0
+
+/* DblRcp ~ 1/Mantissa */
+        vrcp14pd  %zmm6, %zmm8
+
+/* x<=0? */
+        vfpclasspd $94, %zmm7, %k0
+
+/* round DblRcp to 4 fractional bits (RN mode, no Precision exception) */
+        vrndscalepd $88, {sae}, %zmm8, %zmm4
+        vmovups   576+__svml_dlog10_data_internal_avx512(%rip), %zmm8
+        kmovw     %k0, %edx
+
+/* Reduced argument: R = DblRcp*Mantissa - 1 */
+        vfmsub213pd {rn-sae}, %zmm3, %zmm4, %zmm6
+        vcmppd    $17, {sae}, %zmm2, %zmm4, %k1
+        vfmadd231pd {rn-sae}, %zmm6, %zmm12, %zmm8
+        vmovups   704+__svml_dlog10_data_internal_avx512(%rip), %zmm12
+        vfmadd231pd {rn-sae}, %zmm6, %zmm10, %zmm1
+        vfmadd231pd {rn-sae}, %zmm6, %zmm11, %zmm14
+        vmovups   768+__svml_dlog10_data_internal_avx512(%rip), %zmm2
+
+/* R^2 */
+        vmulpd    {rn-sae}, %zmm6, %zmm6, %zmm15
+        vfmadd231pd {rn-sae}, %zmm6, %zmm13, %zmm12
+
+/* Prepare table index */
+        vpsrlq    $48, %zmm4, %zmm9
+
+/* add 1 to Expon if DblRcp<0.75 */
+        vaddpd    {rn-sae}, %zmm3, %zmm0, %zmm0{%k1}
+        vmulpd    {rn-sae}, %zmm15, %zmm15, %zmm13
+        vfmadd213pd {rn-sae}, %zmm14, %zmm15, %zmm1
+        vfmadd213pd {rn-sae}, %zmm12, %zmm15, %zmm8
+        vpermt2pd 64+__svml_dlog10_data_internal_avx512(%rip), %zmm9, %zmm5
+
+/* polynomial */
+        vfmadd213pd {rn-sae}, %zmm8, %zmm13, %zmm1
+        vfmadd213pd {rn-sae}, %zmm2, %zmm6, %zmm1
+        vfmadd213pd {rn-sae}, %zmm5, %zmm1, %zmm6
+        vmovups   832+__svml_dlog10_data_internal_avx512(%rip), %zmm1
+        vfmadd213pd {rn-sae}, %zmm6, %zmm1, %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   %zmm7, 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_dlog10_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVeN8v_log10_skx)
+
+        .align    16,0x90
+
+__svml_dlog10_cout_rare_internal:
+
+        cfi_startproc
+
+        xorl      %eax, %eax
+        movzwl    6(%rdi), %edx
+        andl      $32752, %edx
+        cmpl      $32752, %edx
+        je        L(11)
+        movsd     (%rdi), %xmm2
+        xorl      %ecx, %ecx
+        movsd     %xmm2, -8(%rsp)
+        movzwl    -2(%rsp), %edx
+        testl     $32752, %edx
+        jne       L(6)
+        movsd     1600+__dlog10_la_CoutTab(%rip), %xmm0
+        movl      $-60, %ecx
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm2, -8(%rsp)
+
+L(6):
+        movsd     1608+__dlog10_la_CoutTab(%rip), %xmm0
+        comisd    %xmm0, %xmm2
+        jbe       L(8)
+        movaps    %xmm2, %xmm1
+        subsd     .FLT_89(%rip), %xmm1
+        movsd     %xmm1, -16(%rsp)
+        andb      $127, -9(%rsp)
+        movsd     -16(%rsp), %xmm0
+        comisd    1592+__dlog10_la_CoutTab(%rip), %xmm0
+        jbe       L(7)
+        movsd     %xmm2, -16(%rsp)
+        pxor      %xmm7, %xmm7
+        movzwl    -10(%rsp), %edi
+        lea       __dlog10_la_CoutTab(%rip), %r10
+        andl      $-32753, %edi
+        addl      $16368, %edi
+        movw      %di, -10(%rsp)
+        movsd     -16(%rsp), %xmm3
+        movaps    %xmm3, %xmm1
+        movaps    %xmm3, %xmm2
+        movsd     1688+__dlog10_la_CoutTab(%rip), %xmm5
+        movzwl    -2(%rsp), %edx
+        andl      $32752, %edx
+        addsd     1576+__dlog10_la_CoutTab(%rip), %xmm1
+        addsd     1584+__dlog10_la_CoutTab(%rip), %xmm2
+        movsd     %xmm1, -24(%rsp)
+        movl      -24(%rsp), %r8d
+        movsd     %xmm2, -24(%rsp)
+        andl      $127, %r8d
+        movsd     -24(%rsp), %xmm8
+        movsd     1560+__dlog10_la_CoutTab(%rip), %xmm9
+        movsd     1568+__dlog10_la_CoutTab(%rip), %xmm0
+        shrl      $4, %edx
+        subsd     1584+__dlog10_la_CoutTab(%rip), %xmm8
+        lea       (%r8,%r8,2), %r9d
+        movsd     (%r10,%r9,8), %xmm6
+        lea       -1023(%rcx,%rdx), %ecx
+        cvtsi2sd  %ecx, %xmm7
+        subsd     %xmm8, %xmm3
+        mulsd     %xmm6, %xmm8
+        mulsd     %xmm7, %xmm9
+        subsd     1624+__dlog10_la_CoutTab(%rip), %xmm8
+        mulsd     %xmm3, %xmm6
+        mulsd     %xmm0, %xmm7
+        addsd     8(%r10,%r9,8), %xmm9
+        addsd     16(%r10,%r9,8), %xmm7
+        addsd     %xmm8, %xmm9
+        movaps    %xmm8, %xmm4
+        addsd     %xmm6, %xmm4
+        mulsd     %xmm4, %xmm5
+        addsd     1680+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1672+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1664+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1656+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1648+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1640+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm4, %xmm5
+        addsd     1632+__dlog10_la_CoutTab(%rip), %xmm5
+        mulsd     %xmm5, %xmm8
+        mulsd     %xmm6, %xmm5
+        addsd     %xmm5, %xmm7
+        addsd     %xmm6, %xmm7
+        addsd     %xmm7, %xmm8
+        addsd     %xmm8, %xmm9
+        movsd     %xmm9, (%rsi)
+        ret
+
+L(7):
+        movsd     1624+__dlog10_la_CoutTab(%rip), %xmm0
+        mulsd     %xmm0, %xmm1
+        movsd     1688+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1680+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1672+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1664+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1656+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1648+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1640+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     1632+__dlog10_la_CoutTab(%rip), %xmm2
+        mulsd     %xmm1, %xmm2
+        addsd     %xmm1, %xmm2
+        movsd     %xmm2, (%rsi)
+        ret
+
+L(8):
+        ucomisd   %xmm0, %xmm2
+        jp        L(9)
+        je        L(10)
+
+L(9):
+        divsd     %xmm0, %xmm0
+        movsd     %xmm0, (%rsi)
+        movl      $1, %eax
+        ret
+
+L(10):
+        movsd     1616+__dlog10_la_CoutTab(%rip), %xmm1
+        movl      $2, %eax
+        xorps     .FLT_88(%rip), %xmm1
+        divsd     %xmm0, %xmm1
+        movsd     %xmm1, (%rsi)
+        ret
+
+L(11):
+        movb      7(%rdi), %dl
+        andb      $-128, %dl
+        cmpb      $-128, %dl
+        je        L(13)
+
+L(12):
+        movsd     (%rdi), %xmm0
+        mulsd     %xmm0, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+L(13):
+        testl     $1048575, 4(%rdi)
+        jne       L(12)
+        cmpl      $0, (%rdi)
+        jne       L(12)
+        movsd     1608+__dlog10_la_CoutTab(%rip), %xmm0
+        movl      $1, %eax
+        divsd     %xmm0, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_dlog10_cout_rare_internal,@function
+        .size	__svml_dlog10_cout_rare_internal,.-__svml_dlog10_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_dlog10_data_internal_avx512:
+        .long	0
+        .long	0
+        .long	721479184
+        .long	3214603769
+        .long	3590975466
+        .long	3215601833
+        .long	1438937368
+        .long	3216186160
+        .long	948324365
+        .long	3216559896
+        .long	2869828094
+        .long	3216915393
+        .long	516509563
+        .long	3217142759
+        .long	2145647618
+        .long	3217304702
+        .long	733771779
+        .long	1069546492
+        .long	3513866211
+        .long	1069249052
+        .long	3459676924
+        .long	1068963280
+        .long	1085767695
+        .long	1068688295
+        .long	3613830132
+        .long	1068347678
+        .long	1803457173
+        .long	1067836310
+        .long	3436756955
+        .long	1067234191
+        .long	930630721
+        .long	1066155272
+        .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	0
+        .long	1072168960
+        .long	0
+        .long	1072168960
+        .long	0
+        .long	1072168960
+        .long	0
+        .long	1072168960
+        .long	0
+        .long	1072168960
+        .long	0
+        .long	1072168960
+        .long	0
+        .long	1072168960
+        .long	0
+        .long	1072168960
+        .long	675808112
+        .long	1068024536
+        .long	675808112
+        .long	1068024536
+        .long	675808112
+        .long	1068024536
+        .long	675808112
+        .long	1068024536
+        .long	675808112
+        .long	1068024536
+        .long	675808112
+        .long	1068024536
+        .long	675808112
+        .long	1068024536
+        .long	675808112
+        .long	1068024536
+        .long	2516752404
+        .long	3215710221
+        .long	2516752404
+        .long	3215710221
+        .long	2516752404
+        .long	3215710221
+        .long	2516752404
+        .long	3215710221
+        .long	2516752404
+        .long	3215710221
+        .long	2516752404
+        .long	3215710221
+        .long	2516752404
+        .long	3215710221
+        .long	2516752404
+        .long	3215710221
+        .long	4085995682
+        .long	1068483574
+        .long	4085995682
+        .long	1068483574
+        .long	4085995682
+        .long	1068483574
+        .long	4085995682
+        .long	1068483574
+        .long	4085995682
+        .long	1068483574
+        .long	4085995682
+        .long	1068483574
+        .long	4085995682
+        .long	1068483574
+        .long	4085995682
+        .long	1068483574
+        .long	879025280
+        .long	3216148390
+        .long	879025280
+        .long	3216148390
+        .long	879025280
+        .long	3216148390
+        .long	879025280
+        .long	3216148390
+        .long	879025280
+        .long	3216148390
+        .long	879025280
+        .long	3216148390
+        .long	879025280
+        .long	3216148390
+        .long	879025280
+        .long	3216148390
+        .long	2004821977
+        .long	1068907618
+        .long	2004821977
+        .long	1068907618
+        .long	2004821977
+        .long	1068907618
+        .long	2004821977
+        .long	1068907618
+        .long	2004821977
+        .long	1068907618
+        .long	2004821977
+        .long	1068907618
+        .long	2004821977
+        .long	1068907618
+        .long	2004821977
+        .long	1068907618
+        .long	356255395
+        .long	3216755579
+        .long	356255395
+        .long	3216755579
+        .long	356255395
+        .long	3216755579
+        .long	356255395
+        .long	3216755579
+        .long	356255395
+        .long	3216755579
+        .long	356255395
+        .long	3216755579
+        .long	356255395
+        .long	3216755579
+        .long	356255395
+        .long	3216755579
+        .long	1668235916
+        .long	1069713319
+        .long	1668235916
+        .long	1069713319
+        .long	1668235916
+        .long	1069713319
+        .long	1668235916
+        .long	1069713319
+        .long	1668235916
+        .long	1069713319
+        .long	1668235916
+        .long	1069713319
+        .long	1668235916
+        .long	1069713319
+        .long	1668235916
+        .long	1069713319
+        .long	354870491
+        .long	3217804155
+        .long	354870491
+        .long	3217804155
+        .long	354870491
+        .long	3217804155
+        .long	354870491
+        .long	3217804155
+        .long	354870491
+        .long	3217804155
+        .long	354870491
+        .long	3217804155
+        .long	354870491
+        .long	3217804155
+        .long	354870491
+        .long	3217804155
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .long	354870542
+        .long	1071369083
+        .long	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .long	1352628735
+        .long	1070810131
+        .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	120
+        .long	0
+        .long	120
+        .long	0
+        .long	120
+        .long	0
+        .long	120
+        .long	0
+        .long	120
+        .long	0
+        .long	120
+        .long	0
+        .long	120
+        .long	0
+        .long	120
+        .long	0
+        .long	0
+        .long	1048576
+        .long	0
+        .long	1048576
+        .long	0
+        .long	1048576
+        .long	0
+        .long	1048576
+        .long	0
+        .long	1048576
+        .long	0
+        .long	1048576
+        .long	0
+        .long	1048576
+        .long	0
+        .long	1048576
+        .long	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .long	4294967295
+        .long	2146435071
+        .type	__svml_dlog10_data_internal_avx512,@object
+        .size	__svml_dlog10_data_internal_avx512,1152
+        .align 32
+
+__dlog10_la_CoutTab:
+        .long	0
+        .long	1071366144
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	0
+        .long	1071337728
+        .long	184549376
+        .long	1065092008
+        .long	2099961998
+        .long	3178897324
+        .long	0
+        .long	1071309312
+        .long	931135488
+        .long	1066155272
+        .long	2365712557
+        .long	3178155773
+        .long	0
+        .long	1071280896
+        .long	603979776
+        .long	1066752445
+        .long	709057215
+        .long	1031474920
+        .long	0
+        .long	1071252480
+        .long	3437232128
+        .long	1067234191
+        .long	1515412199
+        .long	3179085970
+        .long	0
+        .long	1071238272
+        .long	1105723392
+        .long	1067464226
+        .long	153915826
+        .long	3178000698
+        .long	0
+        .long	1071209856
+        .long	3328442368
+        .long	1067711223
+        .long	3899912278
+        .long	3177135692
+        .long	0
+        .long	1071181440
+        .long	341835776
+        .long	1067962480
+        .long	2509208190
+        .long	3176531222
+        .long	0
+        .long	1071167232
+        .long	2884632576
+        .long	1068089751
+        .long	1030636902
+        .long	1025224143
+        .long	0
+        .long	1071138816
+        .long	3613917184
+        .long	1068347678
+        .long	3527163461
+        .long	3177529532
+        .long	0
+        .long	1071124608
+        .long	3549954048
+        .long	1068478374
+        .long	3498894081
+        .long	3173000425
+        .long	0
+        .long	1071096192
+        .long	1623785472
+        .long	1068621140
+        .long	2889825554
+        .long	3176375375
+        .long	0
+        .long	1071081984
+        .long	1085800448
+        .long	1068688295
+        .long	4015256301
+        .long	3177184346
+        .long	0
+        .long	1071053568
+        .long	3652976640
+        .long	1068824490
+        .long	3600693529
+        .long	3175753877
+        .long	0
+        .long	1071039360
+        .long	1592393728
+        .long	1068893555
+        .long	231073830
+        .long	3177087939
+        .long	0
+        .long	1071025152
+        .long	3459645440
+        .long	1068963280
+        .long	1740576090
+        .long	1029619435
+        .long	0
+        .long	1070996736
+        .long	3774611456
+        .long	1069104765
+        .long	3858552785
+        .long	1028603845
+        .long	0
+        .long	1070982528
+        .long	845086720
+        .long	1069176552
+        .long	3138879731
+        .long	1029120443
+        .long	0
+        .long	1070968320
+        .long	3513843712
+        .long	1069249052
+        .long	2107125367
+        .long	1029044389
+        .long	0
+        .long	1070954112
+        .long	434503680
+        .long	1069322282
+        .long	3827602229
+        .long	1028932700
+        .long	0
+        .long	1070939904
+        .long	3613851648
+        .long	1069396254
+        .long	1223751955
+        .long	3176465139
+        .long	0
+        .long	1070911488
+        .long	733741056
+        .long	1069546492
+        .long	1625232067
+        .long	1029570781
+        .long	0
+        .long	1070897280
+        .long	1511620608
+        .long	1069585154
+        .long	3044605139
+        .long	1028090775
+        .long	0
+        .long	1070883072
+        .long	1337196544
+        .long	1069623706
+        .long	2602639001
+        .long	3175938675
+        .long	0
+        .long	1070868864
+        .long	2572533760
+        .long	1069662670
+        .long	3067107955
+        .long	1022933137
+        .long	0
+        .long	1070854656
+        .long	559611904
+        .long	1069702056
+        .long	764145786
+        .long	3174041535
+        .long	0
+        .long	1070840448
+        .long	485818368
+        .long	1069741872
+        .long	2037567072
+        .long	3175580956
+        .long	0
+        .long	1070826240
+        .long	259604480
+        .long	1069782128
+        .long	4012068429
+        .long	1027865895
+        .long	0
+        .long	1070812032
+        .long	3454042112
+        .long	1069822833
+        .long	2867680007
+        .long	3174202478
+        .long	0
+        .long	1070797824
+        .long	2188754944
+        .long	1069863999
+        .long	2538655286
+        .long	3175840981
+        .long	0
+        .long	1070783616
+        .long	2965241856
+        .long	1069905635
+        .long	1338936972
+        .long	3176093950
+        .long	0
+        .long	1070769408
+        .long	966279168
+        .long	1069947753
+        .long	1774547674
+        .long	3175051484
+        .long	0
+        .long	1070755200
+        .long	1604042752
+        .long	1069990363
+        .long	2557470738
+        .long	3174667448
+        .long	0
+        .long	1070740992
+        .long	3417833472
+        .long	1070033477
+        .long	2268255117
+        .long	3175678264
+        .long	0
+        .long	1070740992
+        .long	3417833472
+        .long	1070033477
+        .long	2268255117
+        .long	3175678264
+        .long	0
+        .long	1070726784
+        .long	2451292160
+        .long	1070077108
+        .long	3757728941
+        .long	1027943275
+        .long	0
+        .long	1070712576
+        .long	929644544
+        .long	1070121268
+        .long	899045708
+        .long	1027944939
+        .long	0
+        .long	1070698368
+        .long	3057254400
+        .long	1070165969
+        .long	3880649376
+        .long	3172972504
+        .long	0
+        .long	1070684160
+        .long	2231091200
+        .long	1070211226
+        .long	521319256
+        .long	1027600177
+        .long	0
+        .long	1070684160
+        .long	2231091200
+        .long	1070211226
+        .long	521319256
+        .long	1027600177
+        .long	0
+        .long	1070669952
+        .long	2620162048
+        .long	1070257052
+        .long	1385613369
+        .long	3176104036
+        .long	0
+        .long	1070655744
+        .long	2096726016
+        .long	1070303462
+        .long	3138305819
+        .long	3173646777
+        .long	0
+        .long	1070641536
+        .long	944717824
+        .long	1070350471
+        .long	1065120110
+        .long	1027539054
+        .long	0
+        .long	1070641536
+        .long	944717824
+        .long	1070350471
+        .long	1065120110
+        .long	1027539054
+        .long	0
+        .long	1070627328
+        .long	1985789952
+        .long	1070398094
+        .long	3635943864
+        .long	3173136490
+        .long	0
+        .long	1070613120
+        .long	2123825152
+        .long	1070446348
+        .long	1125219725
+        .long	3175615738
+        .long	0
+        .long	1070598912
+        .long	1078378496
+        .long	1070495250
+        .long	603852726
+        .long	3174570526
+        .long	0
+        .long	1070598912
+        .long	1078378496
+        .long	1070495250
+        .long	603852726
+        .long	3174570526
+        .long	0
+        .long	1070573312
+        .long	1537933312
+        .long	1070544817
+        .long	998069198
+        .long	1026662908
+        .long	0
+        .long	1070544896
+        .long	733773824
+        .long	1070595068
+        .long	4061058002
+        .long	3174036009
+        .long	0
+        .long	1070544896
+        .long	733773824
+        .long	1070595068
+        .long	4061058002
+        .long	3174036009
+        .long	0
+        .long	1070516480
+        .long	3897544704
+        .long	1070621058
+        .long	951856294
+        .long	1026731877
+        .long	0
+        .long	1070516480
+        .long	3897544704
+        .long	1070621058
+        .long	951856294
+        .long	1026731877
+        .long	0
+        .long	1070488064
+        .long	493535232
+        .long	1070646897
+        .long	3852369308
+        .long	3173264746
+        .long	0
+        .long	1070459648
+        .long	463249408
+        .long	1070673107
+        .long	2853152111
+        .long	3174564937
+        .long	0
+        .long	1070459648
+        .long	463249408
+        .long	1070673107
+        .long	2853152111
+        .long	3174564937
+        .long	0
+        .long	1070431232
+        .long	3186585600
+        .long	1070699699
+        .long	1874718356
+        .long	3174139933
+        .long	0
+        .long	1070431232
+        .long	3186585600
+        .long	1070699699
+        .long	1874718356
+        .long	3174139933
+        .long	0
+        .long	1070402816
+        .long	1525858304
+        .long	1070726686
+        .long	3039843523
+        .long	1024724665
+        .long	0
+        .long	1070402816
+        .long	1525858304
+        .long	1070726686
+        .long	3039843523
+        .long	1024724665
+        .long	0
+        .long	1070374400
+        .long	3425300480
+        .long	1070754078
+        .long	1303046649
+        .long	1022401701
+        .long	0
+        .long	1070374400
+        .long	3425300480
+        .long	1070754078
+        .long	1303046649
+        .long	1022401701
+        .long	0
+        .long	1070345984
+        .long	1980465152
+        .long	1070781889
+        .long	3188656319
+        .long	1027271390
+        .long	0
+        .long	1070345984
+        .long	1980465152
+        .long	1070781889
+        .long	3188656319
+        .long	1027271390
+        .long	0
+        .long	1070317568
+        .long	1352630272
+        .long	1070810131
+        .long	3090895658
+        .long	3174564915
+        .long	1352630272
+        .long	1070810131
+        .long	3090895658
+        .long	3174564915
+        .long	64
+        .long	1120927744
+        .long	0
+        .long	1096810496
+        .long	0
+        .long	1064828928
+        .long	0
+        .long	1135607808
+        .long	0
+        .long	0
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	1071366144
+        .long	3207479559
+        .long	1062894188
+        .long	3698831637
+        .long	3220339442
+        .long	3700832817
+        .long	1073506818
+        .long	1691624569
+        .long	3221787401
+        .long	2065628764
+        .long	1075227551
+        .long	1770847080
+        .long	3223701774
+        .long	3786517112
+        .long	1077250450
+        .long	1316351650
+        .long	3225793313
+        .type	__dlog10_la_CoutTab,@object
+        .size	__dlog10_la_CoutTab,1696
+        .align 16
+
+.FLT_88:
+        .long	0x00000000,0x80000000,0x00000000,0x00000000
+        .type	.FLT_88,@object
+        .size	.FLT_88,16
+        .align 8
+
+.FLT_89:
+        .long	0x00000000,0x3ff00000
+        .type	.FLT_89,@object
+        .size	.FLT_89,8
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core-avx2.S
new file mode 100644
index 0000000000..e389e2eca1
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core-avx2.S
@@ -0,0 +1,20 @@ 
+/* AVX2 version of vectorized log10f.
+   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_log10f _ZGVeN16v_log10f_avx2_wrapper
+#include "../svml_s_log10f16_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core.c
new file mode 100644
index 0000000000..274fc7e0ff
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core.c
@@ -0,0 +1,28 @@ 
+/* Multiple versions of vectorized log10f, 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_log10f
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN16v_log10f, __GI__ZGVeN16v_log10f,
+	       __redirect__ZGVeN16v_log10f)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core_avx512.S
new file mode 100644
index 0000000000..26462c14f1
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f16_core_avx512.S
@@ -0,0 +1,727 @@ 
+/* Function log10f 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:
+ *
+ *    Get short reciprocal approximation Rcp ~ 1/mantissa(x)
+ *    R = Rcp*x - 1.0
+ *    log10(x) = k*log10(2.0) - log10(Rcp) + poly_approximation(R)
+ *       log10(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.exex512,"ax",@progbits
+ENTRY(_ZGVeN16v_log10f_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
+        vgetmantps $11, {sae}, %zmm0, %zmm3
+        vmovups   __svml_slog10_data_internal_avx512(%rip), %zmm1
+        vgetexpps {sae}, %zmm0, %zmm5
+        vmovups   320+__svml_slog10_data_internal_avx512(%rip), %zmm10
+        vpsrld    $19, %zmm3, %zmm7
+        vgetexpps {sae}, %zmm3, %zmm6
+        vsubps    {rn-sae}, %zmm1, %zmm3, %zmm11
+        vpermps   64+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm1
+        vpermps   128+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm2
+        vsubps    {rn-sae}, %zmm6, %zmm5, %zmm9
+        vpermps   192+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm4
+        vpermps   256+__svml_slog10_data_internal_avx512(%rip), %zmm7, %zmm8
+
+/* x<=0? */
+        vfpclassps $94, %zmm0, %k0
+        vfmadd213ps {rn-sae}, %zmm2, %zmm11, %zmm1
+        vmulps    {rn-sae}, %zmm10, %zmm9, %zmm12
+        vfmadd213ps {rn-sae}, %zmm4, %zmm11, %zmm1
+        kmovw     %k0, %edx
+        vfmadd213ps {rn-sae}, %zmm8, %zmm11, %zmm1
+        vfmadd213ps {rn-sae}, %zmm12, %zmm11, %zmm1
+        testl     %edx, %edx
+        jne       L(2)
+
+L(1):
+        vmovaps   %zmm1, %zmm0
+        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   %zmm0, 64(%rsp)
+        vmovups   %zmm1, 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), %zmm1
+        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_slog10_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVeN16v_log10f_skx)
+
+        .align    16,0x90
+
+__svml_slog10_cout_rare_internal:
+
+        cfi_startproc
+
+        xorl      %eax, %eax
+        movzwl    2(%rdi), %edx
+        andl      $32640, %edx
+        cmpl      $32640, %edx
+        je        L(11)
+        movss     (%rdi), %xmm2
+        xorl      %ecx, %ecx
+        movss     %xmm2, -16(%rsp)
+        movzwl    -14(%rsp), %edx
+        testl     $32640, %edx
+        jne       L(6)
+        mulss     .FLT_77(%rip), %xmm2
+        movl      $-40, %ecx
+        movss     %xmm2, -16(%rsp)
+
+L(6):
+        pxor      %xmm0, %xmm0
+        comiss    %xmm0, %xmm2
+        jbe       L(8)
+        movaps    %xmm2, %xmm1
+        subss     .FLT_93(%rip), %xmm1
+        movss     %xmm1, -20(%rsp)
+        andb      $127, -17(%rsp)
+        movss     -20(%rsp), %xmm0
+        comiss    .FLT_78(%rip), %xmm0
+        jbe       L(7)
+        movss     %xmm2, -20(%rsp)
+        pxor      %xmm8, %xmm8
+        movzwl    -18(%rsp), %edi
+        lea       __slog10_la_CoutTab(%rip), %r10
+        andl      $-32641, %edi
+        addl      $16256, %edi
+        movw      %di, -18(%rsp)
+        movss     -20(%rsp), %xmm3
+        movaps    %xmm3, %xmm0
+        movss     .FLT_80(%rip), %xmm2
+        movaps    %xmm2, %xmm1
+        addss     .FLT_79(%rip), %xmm0
+        addss     %xmm3, %xmm1
+        movss     %xmm0, -24(%rsp)
+        movl      -24(%rsp), %r8d
+        movss     %xmm1, -24(%rsp)
+        andl      $127, %r8d
+        movss     -24(%rsp), %xmm9
+        movss     .FLT_89(%rip), %xmm6
+        subss     %xmm2, %xmm9
+        movzwl    -14(%rsp), %edx
+        lea       (%r8,%r8,2), %r9d
+        movss     (%r10,%r9,4), %xmm7
+        andl      $32640, %edx
+        shrl      $7, %edx
+        subss     %xmm9, %xmm3
+        mulss     %xmm7, %xmm9
+        mulss     %xmm3, %xmm7
+        subss     .FLT_81(%rip), %xmm9
+        movaps    %xmm9, %xmm4
+        lea       -127(%rcx,%rdx), %ecx
+        cvtsi2ss  %ecx, %xmm8
+        addss     %xmm7, %xmm4
+        mulss     %xmm4, %xmm6
+        movss     .FLT_90(%rip), %xmm10
+        mulss     %xmm8, %xmm10
+        addss     .FLT_88(%rip), %xmm6
+        addss     4(%r10,%r9,4), %xmm10
+        mulss     %xmm4, %xmm6
+        addss     %xmm9, %xmm10
+        addss     .FLT_87(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        movss     .FLT_91(%rip), %xmm5
+        mulss     %xmm5, %xmm8
+        addss     .FLT_86(%rip), %xmm6
+        addss     8(%r10,%r9,4), %xmm8
+        mulss     %xmm4, %xmm6
+        addss     .FLT_85(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_84(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_83(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_82(%rip), %xmm6
+        mulss     %xmm6, %xmm9
+        mulss     %xmm7, %xmm6
+        addss     %xmm6, %xmm8
+        addss     %xmm7, %xmm8
+        addss     %xmm8, %xmm9
+        addss     %xmm9, %xmm10
+        movss     %xmm10, (%rsi)
+        ret
+
+L(7):
+        movss     .FLT_81(%rip), %xmm0
+        mulss     %xmm0, %xmm1
+        movss     .FLT_89(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_88(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_87(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_86(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_85(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_84(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_83(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_82(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     %xmm1, %xmm2
+        movss     %xmm2, (%rsi)
+        ret
+
+L(8):
+        ucomiss   %xmm0, %xmm2
+        jp        L(9)
+        je        L(10)
+
+L(9):
+        divss     %xmm0, %xmm0
+        movss     %xmm0, (%rsi)
+        movl      $1, %eax
+        ret
+
+L(10):
+        movss     .FLT_92(%rip), %xmm1
+        movl      $2, %eax
+        divss     %xmm0, %xmm1
+        movss     %xmm1, (%rsi)
+        ret
+
+L(11):
+        movb      3(%rdi), %dl
+        andb      $-128, %dl
+        cmpb      $-128, %dl
+        je        L(13)
+
+L(12):
+        movss     (%rdi), %xmm0
+        mulss     %xmm0, %xmm0
+        movss     %xmm0, (%rsi)
+        ret
+
+L(13):
+        testl     $8388607, (%rdi)
+        jne       L(12)
+        movl      $1, %eax
+        pxor      %xmm1, %xmm1
+        pxor      %xmm0, %xmm0
+        divss     %xmm0, %xmm1
+        movss     %xmm1, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_slog10_cout_rare_internal,@function
+        .size	__svml_slog10_cout_rare_internal,.-__svml_slog10_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_slog10_data_internal_avx512:
+        .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	3184111259
+        .long	3181837556
+        .long	3180047478
+        .long	3177957936
+        .long	3175655835
+        .long	3173780127
+        .long	3172237531
+        .long	3170958066
+        .long	3196205737
+        .long	3194315592
+        .long	3192585145
+        .long	3191105685
+        .long	3189833727
+        .long	3188734475
+        .long	3187779868
+        .long	3186223182
+        .long	1041488008
+        .long	1041279100
+        .long	1040946627
+        .long	1040547595
+        .long	1040048184
+        .long	1039171801
+        .long	1038306334
+        .long	1037468467
+        .long	1034710670
+        .long	1037388369
+        .long	1039339328
+        .long	1040458589
+        .long	1040937011
+        .long	1041247376
+        .long	1041427373
+        .long	1041506296
+        .long	3193854619
+        .long	3193841271
+        .long	3193799669
+        .long	3193724950
+        .long	3193617675
+        .long	3193480957
+        .long	3193318914
+        .long	3193135864
+        .long	3194544764
+        .long	3194251079
+        .long	3194067571
+        .long	3193958490
+        .long	3193898352
+        .long	3193869008
+        .long	3193857579
+        .long	3193854984
+        .long	1054759896
+        .long	1054759749
+        .long	1054758872
+        .long	1054756529
+        .long	1054752055
+        .long	1054744934
+        .long	1054734809
+        .long	1054721467
+        .long	1054738669
+        .long	1054749415
+        .long	1054755175
+        .long	1054758032
+        .long	1054759295
+        .long	1054759760
+        .long	1054759882
+        .long	1054759897
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .type	__svml_slog10_data_internal_avx512,@object
+        .size	__svml_slog10_data_internal_avx512,384
+        .align 32
+
+__slog10_la_CoutTab:
+        .long	1121868800
+        .long	0
+        .long	0
+        .long	1121641104
+        .long	1004535808
+        .long	912917177
+        .long	1121413408
+        .long	1013055488
+        .long	3065901602
+        .long	1121185712
+        .long	1017839616
+        .long	3083361151
+        .long	1120958016
+        .long	1021673472
+        .long	929297206
+        .long	1120844168
+        .long	1023524864
+        .long	3077496589
+        .long	1120616472
+        .long	1025499136
+        .long	3070500046
+        .long	1120388776
+        .long	1027506176
+        .long	912271551
+        .long	1120274928
+        .long	1028521984
+        .long	927716856
+        .long	1120047232
+        .long	1030586368
+        .long	923757491
+        .long	1119933384
+        .long	1031634944
+        .long	3056752848
+        .long	1119705688
+        .long	1032775680
+        .long	917029265
+        .long	1119591840
+        .long	1033314304
+        .long	3065085585
+        .long	1119364144
+        .long	1034403840
+        .long	3064614024
+        .long	1119250296
+        .long	1034954752
+        .long	921091539
+        .long	1119136448
+        .long	1035513856
+        .long	3057436454
+        .long	1118908752
+        .long	1036644352
+        .long	922468856
+        .long	1118794904
+        .long	1037219840
+        .long	3049155845
+        .long	1118681056
+        .long	1037799424
+        .long	904301451
+        .long	1118567208
+        .long	1038385152
+        .long	908617625
+        .long	1118453360
+        .long	1038977024
+        .long	905362229
+        .long	1118225664
+        .long	1040179200
+        .long	3027570914
+        .long	1118111816
+        .long	1040488448
+        .long	882280038
+        .long	1117997968
+        .long	1040796672
+        .long	911375775
+        .long	1117884120
+        .long	1041108480
+        .long	904500572
+        .long	1117770272
+        .long	1041423872
+        .long	3057579304
+        .long	1117656424
+        .long	1041742336
+        .long	3053334705
+        .long	1117542576
+        .long	1042064384
+        .long	3053389931
+        .long	1117428728
+        .long	1042390016
+        .long	3051561465
+        .long	1117314880
+        .long	1042719232
+        .long	3011187895
+        .long	1117201032
+        .long	1043052544
+        .long	3059907089
+        .long	1117087184
+        .long	1043389440
+        .long	3057005374
+        .long	1116973336
+        .long	1043729920
+        .long	911932638
+        .long	1116859488
+        .long	1044075008
+        .long	892958461
+        .long	1116859488
+        .long	1044075008
+        .long	892958461
+        .long	1116745640
+        .long	1044424192
+        .long	3048660547
+        .long	1116631792
+        .long	1044777472
+        .long	3049032043
+        .long	1116517944
+        .long	1045134848
+        .long	906867152
+        .long	1116404096
+        .long	1045496832
+        .long	911484894
+        .long	1116404096
+        .long	1045496832
+        .long	911484894
+        .long	1116290248
+        .long	1045863424
+        .long	912580963
+        .long	1116176400
+        .long	1046235136
+        .long	3058440244
+        .long	1116062552
+        .long	1046610944
+        .long	895945194
+        .long	1116062552
+        .long	1046610944
+        .long	895945194
+        .long	1115948704
+        .long	1046991872
+        .long	904357324
+        .long	1115834856
+        .long	1047377920
+        .long	902293870
+        .long	1115721008
+        .long	1047769088
+        .long	907149878
+        .long	1115721008
+        .long	1047769088
+        .long	907149878
+        .long	1115529456
+        .long	1048165888
+        .long	3052029263
+        .long	1115301760
+        .long	1048567808
+        .long	3035959522
+        .long	1115301760
+        .long	1048567808
+        .long	3035959522
+        .long	1115074064
+        .long	1048775680
+        .long	892998645
+        .long	1115074064
+        .long	1048775680
+        .long	892998645
+        .long	1114846368
+        .long	1048982400
+        .long	881767775
+        .long	1114618672
+        .long	1049192064
+        .long	893839142
+        .long	1114618672
+        .long	1049192064
+        .long	893839142
+        .long	1114390976
+        .long	1049404800
+        .long	896498651
+        .long	1114390976
+        .long	1049404800
+        .long	896498651
+        .long	1114163280
+        .long	1049620736
+        .long	3033695903
+        .long	1114163280
+        .long	1049620736
+        .long	3033695903
+        .long	1113935584
+        .long	1049839872
+        .long	3029986056
+        .long	1113935584
+        .long	1049839872
+        .long	3029986056
+        .long	1113707888
+        .long	1050062336
+        .long	884671939
+        .long	1113707888
+        .long	1050062336
+        .long	884671939
+        .long	1113480192
+        .long	1050288256
+        .long	894707678
+        .long	1050279936
+        .long	964848148
+        .long	1207959616
+        .long	1174405120
+        .long	1002438656
+        .long	1400897536
+        .long	0
+        .long	1065353216
+        .long	1121868800
+        .long	3212771328
+        .long	3079888218
+        .long	870463078
+        .long	2957202361
+        .long	749987585
+        .long	2838272395
+        .long	631921661
+        .long	2720751022
+        .type	__slog10_la_CoutTab,@object
+        .size	__slog10_la_CoutTab,848
+        .align 4
+
+.FLT_77:
+        .long	0x53800000
+        .type	.FLT_77,@object
+        .size	.FLT_77,4
+        .align 4
+
+.FLT_78:
+        .long	0x3bc00000
+        .type	.FLT_78,@object
+        .size	.FLT_78,4
+        .align 4
+
+.FLT_79:
+        .long	0x48000040
+        .type	.FLT_79,@object
+        .size	.FLT_79,4
+        .align 4
+
+.FLT_80:
+        .long	0x46000000
+        .type	.FLT_80,@object
+        .size	.FLT_80,4
+        .align 4
+
+.FLT_81:
+        .long	0x42de5c00
+        .type	.FLT_81,@object
+        .size	.FLT_81,4
+        .align 4
+
+.FLT_82:
+        .long	0xbf7f0000
+        .type	.FLT_82,@object
+        .size	.FLT_82,4
+        .align 4
+
+.FLT_83:
+        .long	0xb7935d5a
+        .type	.FLT_83,@object
+        .size	.FLT_83,4
+        .align 4
+
+.FLT_84:
+        .long	0x33e23666
+        .type	.FLT_84,@object
+        .size	.FLT_84,4
+        .align 4
+
+.FLT_85:
+        .long	0xb04353b9
+        .type	.FLT_85,@object
+        .size	.FLT_85,4
+        .align 4
+
+.FLT_86:
+        .long	0x2cb3e701
+        .type	.FLT_86,@object
+        .size	.FLT_86,4
+        .align 4
+
+.FLT_87:
+        .long	0xa92c998b
+        .type	.FLT_87,@object
+        .size	.FLT_87,4
+        .align 4
+
+.FLT_88:
+        .long	0x25aa5bfd
+        .type	.FLT_88,@object
+        .size	.FLT_88,4
+        .align 4
+
+.FLT_89:
+        .long	0xa22b5dae
+        .type	.FLT_89,@object
+        .size	.FLT_89,4
+        .align 4
+
+.FLT_90:
+        .long	0x3e9a0000
+        .type	.FLT_90,@object
+        .size	.FLT_90,4
+        .align 4
+
+.FLT_91:
+        .long	0x39826a14
+        .type	.FLT_91,@object
+        .size	.FLT_91,4
+        .align 4
+
+.FLT_92:
+        .long	0xbf800000
+        .type	.FLT_92,@object
+        .size	.FLT_92,4
+        .align 4
+
+.FLT_93:
+        .long	0x3f800000
+        .type	.FLT_93,@object
+        .size	.FLT_93,4
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core-sse2.S
new file mode 100644
index 0000000000..bb1cdee37e
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core-sse2.S
@@ -0,0 +1,20 @@ 
+/* SSE2 version of vectorized log10f, 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_log10f _ZGVbN4v_log10f_sse2
+#include "../svml_s_log10f4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core.c
new file mode 100644
index 0000000000..67e9e71a76
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core.c
@@ -0,0 +1,28 @@ 
+/* Multiple versions of vectorized log10f, 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_log10f
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN4v_log10f, __GI__ZGVbN4v_log10f,
+	       __redirect__ZGVbN4v_log10f)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core_sse4.S
new file mode 100644
index 0000000000..bc4f7f7a88
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f4_core_sse4.S
@@ -0,0 +1,1968 @@ 
+/* Function log10f 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:
+ *
+ *    Get short reciprocal approximation Rcp ~ 1/mantissa(x)
+ *    R = Rcp*x - 1.0
+ *    log10(x) = k*log10(2.0) - log10(Rcp) + poly_approximation(R)
+ *       log10(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.sse4,"ax",@progbits
+ENTRY(_ZGVbN4v_log10f_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, %xmm4
+
+/* reduction: compute r,n */
+        movdqu    1664+__svml_slog10_data_internal(%rip), %xmm5
+        movaps    %xmm0, %xmm7
+        movdqu    1728+__svml_slog10_data_internal(%rip), %xmm3
+        psubd     %xmm5, %xmm4
+        pand      %xmm4, %xmm3
+        movaps    %xmm0, %xmm6
+        paddd     %xmm5, %xmm3
+        psrad     $23, %xmm4
+        cmpltps   1280+__svml_slog10_data_internal(%rip), %xmm7
+        cmpnleps  1344+__svml_slog10_data_internal(%rip), %xmm6
+        cvtdq2ps  %xmm4, %xmm2
+        subps     1792+__svml_slog10_data_internal(%rip), %xmm3
+        movups    1856+__svml_slog10_data_internal(%rip), %xmm1
+        orps      %xmm6, %xmm7
+        mulps     %xmm3, %xmm1
+        movaps    %xmm3, %xmm6
+        mulps     %xmm3, %xmm6
+
+/* combine and get argument value range mask */
+        movmskps  %xmm7, %edx
+        addps     1872+__svml_slog10_data_internal(%rip), %xmm1
+        movups    1888+__svml_slog10_data_internal(%rip), %xmm4
+        mulps     %xmm3, %xmm4
+        mulps     %xmm6, %xmm1
+        addps     1904+__svml_slog10_data_internal(%rip), %xmm4
+        movups    1920+__svml_slog10_data_internal(%rip), %xmm5
+        addps     %xmm1, %xmm4
+        mulps     %xmm3, %xmm5
+        mulps     %xmm6, %xmm4
+        addps     1936+__svml_slog10_data_internal(%rip), %xmm5
+        movups    1952+__svml_slog10_data_internal(%rip), %xmm1
+        addps     %xmm4, %xmm5
+        mulps     %xmm3, %xmm1
+        mulps     %xmm5, %xmm6
+        addps     1968+__svml_slog10_data_internal(%rip), %xmm1
+        movups    1600+__svml_slog10_data_internal(%rip), %xmm4
+        addps     %xmm6, %xmm1
+        mulps     %xmm2, %xmm4
+        mulps     %xmm3, %xmm1
+        movups    1536+__svml_slog10_data_internal(%rip), %xmm7
+        mulps     %xmm7, %xmm2
+        addps     1984+__svml_slog10_data_internal(%rip), %xmm1
+        mulps     %xmm1, %xmm3
+        addps     %xmm3, %xmm4
+        addps     %xmm2, %xmm4
+        testl     %edx, %edx
+        jne       L(2)
+
+L(1):
+        movaps    %xmm4, %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    %xmm4, 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), %xmm4
+        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_slog10_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVbN4v_log10f_sse4)
+
+        .align    16,0x90
+
+__svml_slog10_cout_rare_internal:
+
+        cfi_startproc
+
+        xorl      %eax, %eax
+        movzwl    2(%rdi), %edx
+        andl      $32640, %edx
+        cmpl      $32640, %edx
+        je        L(11)
+        movss     (%rdi), %xmm2
+        xorl      %ecx, %ecx
+        movss     %xmm2, -16(%rsp)
+        movzwl    -14(%rsp), %edx
+        testl     $32640, %edx
+        jne       L(6)
+        mulss     .FLT_83(%rip), %xmm2
+        movl      $-40, %ecx
+        movss     %xmm2, -16(%rsp)
+
+L(6):
+        pxor      %xmm0, %xmm0
+        comiss    %xmm0, %xmm2
+        jbe       L(8)
+        movaps    %xmm2, %xmm1
+        subss     .FLT_99(%rip), %xmm1
+        movss     %xmm1, -20(%rsp)
+        andb      $127, -17(%rsp)
+        movss     -20(%rsp), %xmm0
+        comiss    .FLT_84(%rip), %xmm0
+        jbe       L(7)
+        movss     %xmm2, -20(%rsp)
+        pxor      %xmm8, %xmm8
+        movzwl    -18(%rsp), %edi
+        lea       __slog10_la_CoutTab(%rip), %r10
+        andl      $-32641, %edi
+        addl      $16256, %edi
+        movw      %di, -18(%rsp)
+        movss     -20(%rsp), %xmm3
+        movaps    %xmm3, %xmm0
+        movss     .FLT_86(%rip), %xmm2
+        movaps    %xmm2, %xmm1
+        addss     .FLT_85(%rip), %xmm0
+        addss     %xmm3, %xmm1
+        movss     %xmm0, -24(%rsp)
+        movl      -24(%rsp), %r8d
+        movss     %xmm1, -24(%rsp)
+        andl      $127, %r8d
+        movss     -24(%rsp), %xmm9
+        movss     .FLT_95(%rip), %xmm6
+        subss     %xmm2, %xmm9
+        movzwl    -14(%rsp), %edx
+        lea       (%r8,%r8,2), %r9d
+        movss     (%r10,%r9,4), %xmm7
+        andl      $32640, %edx
+        shrl      $7, %edx
+        subss     %xmm9, %xmm3
+        mulss     %xmm7, %xmm9
+        mulss     %xmm3, %xmm7
+        subss     .FLT_87(%rip), %xmm9
+        movaps    %xmm9, %xmm4
+        lea       -127(%rcx,%rdx), %ecx
+        cvtsi2ss  %ecx, %xmm8
+        addss     %xmm7, %xmm4
+        mulss     %xmm4, %xmm6
+        movss     .FLT_96(%rip), %xmm10
+        mulss     %xmm8, %xmm10
+        addss     .FLT_94(%rip), %xmm6
+        addss     4(%r10,%r9,4), %xmm10
+        mulss     %xmm4, %xmm6
+        addss     %xmm9, %xmm10
+        addss     .FLT_93(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        movss     .FLT_97(%rip), %xmm5
+        mulss     %xmm5, %xmm8
+        addss     .FLT_92(%rip), %xmm6
+        addss     8(%r10,%r9,4), %xmm8
+        mulss     %xmm4, %xmm6
+        addss     .FLT_91(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_90(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_89(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_88(%rip), %xmm6
+        mulss     %xmm6, %xmm9
+        mulss     %xmm7, %xmm6
+        addss     %xmm6, %xmm8
+        addss     %xmm7, %xmm8
+        addss     %xmm8, %xmm9
+        addss     %xmm9, %xmm10
+        movss     %xmm10, (%rsi)
+        ret
+
+L(7):
+        movss     .FLT_87(%rip), %xmm0
+        mulss     %xmm0, %xmm1
+        movss     .FLT_95(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_94(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_93(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_92(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_91(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_90(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_89(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_88(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     %xmm1, %xmm2
+        movss     %xmm2, (%rsi)
+        ret
+
+L(8):
+        ucomiss   %xmm0, %xmm2
+        jp        L(9)
+        je        L(10)
+
+L(9):
+        divss     %xmm0, %xmm0
+        movss     %xmm0, (%rsi)
+        movl      $1, %eax
+        ret
+
+L(10):
+        movss     .FLT_98(%rip), %xmm1
+        movl      $2, %eax
+        divss     %xmm0, %xmm1
+        movss     %xmm1, (%rsi)
+        ret
+
+L(11):
+        movb      3(%rdi), %dl
+        andb      $-128, %dl
+        cmpb      $-128, %dl
+        je        L(13)
+
+L(12):
+        movss     (%rdi), %xmm0
+        mulss     %xmm0, %xmm0
+        movss     %xmm0, (%rsi)
+        ret
+
+L(13):
+        testl     $8388607, (%rdi)
+        jne       L(12)
+        movl      $1, %eax
+        pxor      %xmm1, %xmm1
+        pxor      %xmm0, %xmm0
+        divss     %xmm0, %xmm1
+        movss     %xmm1, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_slog10_cout_rare_internal,@function
+        .size	__svml_slog10_cout_rare_internal,.-__svml_slog10_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_slog10_data_internal:
+        .long	3256334460
+        .long	969394728
+        .long	3256334974
+        .long	969699354
+        .long	3256335486
+        .long	970041911
+        .long	3256335982
+        .long	968584717
+        .long	3256336494
+        .long	969519438
+        .long	3256336990
+        .long	968649168
+        .long	3256337502
+        .long	970165641
+        .long	3256337998
+        .long	969872020
+        .long	3256338494
+        .long	969862955
+        .long	3256338990
+        .long	970135976
+        .long	3256339470
+        .long	968591496
+        .long	3256339966
+        .long	969421411
+        .long	3256340462
+        .long	970526195
+        .long	3256340942
+        .long	969806353
+        .long	3256341422
+        .long	969356721
+        .long	3256341902
+        .long	969175014
+        .long	3256342382
+        .long	969258977
+        .long	3256342862
+        .long	969606381
+        .long	3256343342
+        .long	970215027
+        .long	3256343806
+        .long	968985590
+        .long	3256344286
+        .long	970110228
+        .long	3256344750
+        .long	969392519
+        .long	3256345214
+        .long	968927522
+        .long	3256345678
+        .long	968713169
+        .long	3256346142
+        .long	968747418
+        .long	3256346606
+        .long	969028253
+        .long	3256347070
+        .long	969553681
+        .long	3256347534
+        .long	970321733
+        .long	3256347982
+        .long	969233313
+        .long	3256348446
+        .long	970480802
+        .long	3256348894
+        .long	969867999
+        .long	3256349342
+        .long	969490179
+        .long	3256349790
+        .long	969345487
+        .long	3256350238
+        .long	969432093
+        .long	3256350686
+        .long	969748186
+        .long	3256351566
+        .long	968964541
+        .long	3256352446
+        .long	969077639
+        .long	3256353326
+        .long	970073736
+        .long	3256354190
+        .long	969842251
+        .long	3256355054
+        .long	970467209
+        .long	3256355902
+        .long	969838628
+        .long	3256356750
+        .long	970041115
+        .long	3256357582
+        .long	968965252
+        .long	3256358414
+        .long	968696192
+        .long	3256359246
+        .long	969222201
+        .long	3256360078
+        .long	970531798
+        .long	3256360894
+        .long	970516595
+        .long	3256361694
+        .long	969165599
+        .long	3256362494
+        .long	968565200
+        .long	3256363294
+        .long	968704863
+        .long	3256364094
+        .long	969574273
+        .long	3256364878
+        .long	969066179
+        .long	3256365662
+        .long	969267840
+        .long	3256366446
+        .long	970169567
+        .long	3256367214
+        .long	969664714
+        .long	3256367982
+        .long	969841134
+        .long	3256368734
+        .long	968592559
+        .long	3256369502
+        .long	970104362
+        .long	3256370254
+        .long	970173483
+        .long	3256370990
+        .long	968791339
+        .long	3256371742
+        .long	970143819
+        .long	3256372478
+        .long	970028365
+        .long	3256373214
+        .long	970534037
+        .long	3256373934
+        .long	969555746
+        .long	3256374654
+        .long	969182856
+        .long	3256375374
+        .long	969407729
+        .long	3256376094
+        .long	970222869
+        .long	3256376798
+        .long	969523769
+        .long	3256377502
+        .long	969400361
+        .long	3256378206
+        .long	969845561
+        .long	3256378894
+        .long	968755260
+        .long	3256379598
+        .long	970316935
+        .long	3256380286
+        .long	970329575
+        .long	3256380958
+        .long	968786598
+        .long	3256381646
+        .long	969875841
+        .long	3256382318
+        .long	969396649
+        .long	3256382990
+        .long	969439935
+        .long	3256383662
+        .long	969999571
+        .long	3256384318
+        .long	968972383
+        .long	3256384990
+        .long	970546758
+        .long	3256385646
+        .long	970522577
+        .long	3256386286
+        .long	968894127
+        .long	3256386942
+        .long	969850093
+        .long	3256387582
+        .long	969190651
+        .long	3256388222
+        .long	969007524
+        .long	3256388862
+        .long	969295375
+        .long	3256389502
+        .long	970048957
+        .long	3256390126
+        .long	969165958
+        .long	3256390750
+        .long	968738453
+        .long	3256391374
+        .long	968761452
+        .long	3256391998
+        .long	969230043
+        .long	3256392622
+        .long	970139398
+        .long	3256393230
+        .long	969387611
+        .long	3256393838
+        .long	969067159
+        .long	3256394446
+        .long	969173441
+        .long	3256395054
+        .long	969701929
+        .long	3256395646
+        .long	968551015
+        .long	3256396254
+        .long	969910618
+        .long	3256396846
+        .long	969582116
+        .long	3256397438
+        .long	969658411
+        .long	3256398030
+        .long	970135319
+        .long	3256398606
+        .long	968911569
+        .long	3256399198
+        .long	970177409
+        .long	3256399774
+        .long	969734540
+        .long	3256400350
+        .long	969676181
+        .long	3256400926
+        .long	969998457
+        .long	3256401486
+        .long	968600401
+        .long	3256402062
+        .long	969672558
+        .long	3256402622
+        .long	969016921
+        .long	3256403182
+        .long	968726993
+        .long	3256403742
+        .long	968799182
+        .long	3256404302
+        .long	969229944
+        .long	3256404862
+        .long	970015791
+        .long	3256405406
+        .long	969056131
+        .long	3256405966
+        .long	970541879
+        .long	3256406510
+        .long	970275391
+        .long	3256407054
+        .long	970350525
+        .long	3256407582
+        .long	968666884
+        .long	3256408126
+        .long	969415571
+        .long	3256408670
+        .long	970496282
+        .long	3256409198
+        .long	969808752
+        .long	3256409726
+        .long	969447067
+        .long	3256410254
+        .long	969408203
+        .long	3256410782
+        .long	969689179
+        .long	3256411310
+        .long	970287052
+        .long	3256411822
+        .long	969101770
+        .long	3256412350
+        .long	970324777
+        .long	3256412862
+        .long	969758945
+        .long	3256413374
+        .long	969498644
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1071862019
+        .long	1071862019
+        .long	1071862019
+        .long	1071862019
+        .long	3214137316
+        .long	3214137316
+        .long	3214137316
+        .long	3214137316
+        .long	986960742
+        .long	986960742
+        .long	986960742
+        .long	986960742
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	989855744
+        .long	989855744
+        .long	989855744
+        .long	989855744
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	8388608
+        .long	8388608
+        .long	8388608
+        .long	8388608
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	2139095039
+        .long	2139095039
+        .long	2139095039
+        .long	2139095039
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	4294967040
+        .long	4294967040
+        .long	4294967040
+        .long	4294967040
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1054736384
+        .long	1054736384
+        .long	1054736384
+        .long	1054736384
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1050288384
+        .long	1050288384
+        .long	1050288384
+        .long	1050288384
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	3058365952
+        .long	3058365952
+        .long	3058365952
+        .long	3058365952
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1059760811
+        .long	1059760811
+        .long	1059760811
+        .long	1059760811
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1031824308
+        .long	1031824308
+        .long	1031824308
+        .long	1031824308
+        .long	3179872371
+        .long	3179872371
+        .long	3179872371
+        .long	3179872371
+        .long	1031230231
+        .long	1031230231
+        .long	1031230231
+        .long	1031230231
+        .long	3180460839
+        .long	3180460839
+        .long	3180460839
+        .long	3180460839
+        .long	1035078550
+        .long	1035078550
+        .long	1035078550
+        .long	1035078550
+        .long	3185471008
+        .long	3185471008
+        .long	3185471008
+        .long	3185471008
+        .long	1041513701
+        .long	1041513701
+        .long	1041513701
+        .long	1041513701
+        .long	3193854917
+        .long	3193854917
+        .long	3193854917
+        .long	3193854917
+        .long	1054759897
+        .long	1054759897
+        .long	1054759897
+        .long	1054759897
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1036894503
+        .long	1036894503
+        .long	1036894503
+        .long	1036894503
+        .long	3186945393
+        .long	3186945393
+        .long	3186945393
+        .long	3186945393
+        .long	1041464766
+        .long	1041464766
+        .long	1041464766
+        .long	1041464766
+        .long	3193833762
+        .long	3193833762
+        .long	3193833762
+        .long	3193833762
+        .long	1054760110
+        .long	1054760110
+        .long	1054760110
+        .long	1054760110
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	2139095040
+        .long	4286578688
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	3212836864
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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_slog10_data_internal,@object
+        .size	__svml_slog10_data_internal,2432
+        .align 32
+
+__slog10_la_CoutTab:
+        .long	1121868800
+        .long	0
+        .long	0
+        .long	1121641104
+        .long	1004535808
+        .long	912917177
+        .long	1121413408
+        .long	1013055488
+        .long	3065901602
+        .long	1121185712
+        .long	1017839616
+        .long	3083361151
+        .long	1120958016
+        .long	1021673472
+        .long	929297206
+        .long	1120844168
+        .long	1023524864
+        .long	3077496589
+        .long	1120616472
+        .long	1025499136
+        .long	3070500046
+        .long	1120388776
+        .long	1027506176
+        .long	912271551
+        .long	1120274928
+        .long	1028521984
+        .long	927716856
+        .long	1120047232
+        .long	1030586368
+        .long	923757491
+        .long	1119933384
+        .long	1031634944
+        .long	3056752848
+        .long	1119705688
+        .long	1032775680
+        .long	917029265
+        .long	1119591840
+        .long	1033314304
+        .long	3065085585
+        .long	1119364144
+        .long	1034403840
+        .long	3064614024
+        .long	1119250296
+        .long	1034954752
+        .long	921091539
+        .long	1119136448
+        .long	1035513856
+        .long	3057436454
+        .long	1118908752
+        .long	1036644352
+        .long	922468856
+        .long	1118794904
+        .long	1037219840
+        .long	3049155845
+        .long	1118681056
+        .long	1037799424
+        .long	904301451
+        .long	1118567208
+        .long	1038385152
+        .long	908617625
+        .long	1118453360
+        .long	1038977024
+        .long	905362229
+        .long	1118225664
+        .long	1040179200
+        .long	3027570914
+        .long	1118111816
+        .long	1040488448
+        .long	882280038
+        .long	1117997968
+        .long	1040796672
+        .long	911375775
+        .long	1117884120
+        .long	1041108480
+        .long	904500572
+        .long	1117770272
+        .long	1041423872
+        .long	3057579304
+        .long	1117656424
+        .long	1041742336
+        .long	3053334705
+        .long	1117542576
+        .long	1042064384
+        .long	3053389931
+        .long	1117428728
+        .long	1042390016
+        .long	3051561465
+        .long	1117314880
+        .long	1042719232
+        .long	3011187895
+        .long	1117201032
+        .long	1043052544
+        .long	3059907089
+        .long	1117087184
+        .long	1043389440
+        .long	3057005374
+        .long	1116973336
+        .long	1043729920
+        .long	911932638
+        .long	1116859488
+        .long	1044075008
+        .long	892958461
+        .long	1116859488
+        .long	1044075008
+        .long	892958461
+        .long	1116745640
+        .long	1044424192
+        .long	3048660547
+        .long	1116631792
+        .long	1044777472
+        .long	3049032043
+        .long	1116517944
+        .long	1045134848
+        .long	906867152
+        .long	1116404096
+        .long	1045496832
+        .long	911484894
+        .long	1116404096
+        .long	1045496832
+        .long	911484894
+        .long	1116290248
+        .long	1045863424
+        .long	912580963
+        .long	1116176400
+        .long	1046235136
+        .long	3058440244
+        .long	1116062552
+        .long	1046610944
+        .long	895945194
+        .long	1116062552
+        .long	1046610944
+        .long	895945194
+        .long	1115948704
+        .long	1046991872
+        .long	904357324
+        .long	1115834856
+        .long	1047377920
+        .long	902293870
+        .long	1115721008
+        .long	1047769088
+        .long	907149878
+        .long	1115721008
+        .long	1047769088
+        .long	907149878
+        .long	1115529456
+        .long	1048165888
+        .long	3052029263
+        .long	1115301760
+        .long	1048567808
+        .long	3035959522
+        .long	1115301760
+        .long	1048567808
+        .long	3035959522
+        .long	1115074064
+        .long	1048775680
+        .long	892998645
+        .long	1115074064
+        .long	1048775680
+        .long	892998645
+        .long	1114846368
+        .long	1048982400
+        .long	881767775
+        .long	1114618672
+        .long	1049192064
+        .long	893839142
+        .long	1114618672
+        .long	1049192064
+        .long	893839142
+        .long	1114390976
+        .long	1049404800
+        .long	896498651
+        .long	1114390976
+        .long	1049404800
+        .long	896498651
+        .long	1114163280
+        .long	1049620736
+        .long	3033695903
+        .long	1114163280
+        .long	1049620736
+        .long	3033695903
+        .long	1113935584
+        .long	1049839872
+        .long	3029986056
+        .long	1113935584
+        .long	1049839872
+        .long	3029986056
+        .long	1113707888
+        .long	1050062336
+        .long	884671939
+        .long	1113707888
+        .long	1050062336
+        .long	884671939
+        .long	1113480192
+        .long	1050288256
+        .long	894707678
+        .long	1050279936
+        .long	964848148
+        .long	1207959616
+        .long	1174405120
+        .long	1002438656
+        .long	1400897536
+        .long	0
+        .long	1065353216
+        .long	1121868800
+        .long	3212771328
+        .long	3079888218
+        .long	870463078
+        .long	2957202361
+        .long	749987585
+        .long	2838272395
+        .long	631921661
+        .long	2720751022
+        .type	__slog10_la_CoutTab,@object
+        .size	__slog10_la_CoutTab,848
+        .align 4
+
+.FLT_83:
+        .long	0x53800000
+        .type	.FLT_83,@object
+        .size	.FLT_83,4
+        .align 4
+
+.FLT_84:
+        .long	0x3bc00000
+        .type	.FLT_84,@object
+        .size	.FLT_84,4
+        .align 4
+
+.FLT_85:
+        .long	0x48000040
+        .type	.FLT_85,@object
+        .size	.FLT_85,4
+        .align 4
+
+.FLT_86:
+        .long	0x46000000
+        .type	.FLT_86,@object
+        .size	.FLT_86,4
+        .align 4
+
+.FLT_87:
+        .long	0x42de5c00
+        .type	.FLT_87,@object
+        .size	.FLT_87,4
+        .align 4
+
+.FLT_88:
+        .long	0xbf7f0000
+        .type	.FLT_88,@object
+        .size	.FLT_88,4
+        .align 4
+
+.FLT_89:
+        .long	0xb7935d5a
+        .type	.FLT_89,@object
+        .size	.FLT_89,4
+        .align 4
+
+.FLT_90:
+        .long	0x33e23666
+        .type	.FLT_90,@object
+        .size	.FLT_90,4
+        .align 4
+
+.FLT_91:
+        .long	0xb04353b9
+        .type	.FLT_91,@object
+        .size	.FLT_91,4
+        .align 4
+
+.FLT_92:
+        .long	0x2cb3e701
+        .type	.FLT_92,@object
+        .size	.FLT_92,4
+        .align 4
+
+.FLT_93:
+        .long	0xa92c998b
+        .type	.FLT_93,@object
+        .size	.FLT_93,4
+        .align 4
+
+.FLT_94:
+        .long	0x25aa5bfd
+        .type	.FLT_94,@object
+        .size	.FLT_94,4
+        .align 4
+
+.FLT_95:
+        .long	0xa22b5dae
+        .type	.FLT_95,@object
+        .size	.FLT_95,4
+        .align 4
+
+.FLT_96:
+        .long	0x3e9a0000
+        .type	.FLT_96,@object
+        .size	.FLT_96,4
+        .align 4
+
+.FLT_97:
+        .long	0x39826a14
+        .type	.FLT_97,@object
+        .size	.FLT_97,4
+        .align 4
+
+.FLT_98:
+        .long	0xbf800000
+        .type	.FLT_98,@object
+        .size	.FLT_98,4
+        .align 4
+
+.FLT_99:
+        .long	0x3f800000
+        .type	.FLT_99,@object
+        .size	.FLT_99,4
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core-sse.S
new file mode 100644
index 0000000000..e3467e5c90
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core-sse.S
@@ -0,0 +1,20 @@ 
+/* SSE version of vectorized log10f, 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_log10f _ZGVdN8v_log10f_sse_wrapper
+#include "../svml_s_log10f8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core.c
new file mode 100644
index 0000000000..bfd3ef6554
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core.c
@@ -0,0 +1,28 @@ 
+/* Multiple versions of vectorized log10f, 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_log10f
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN8v_log10f, __GI__ZGVdN8v_log10f,
+	       __redirect__ZGVdN8v_log10f)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core_avx2.S
new file mode 100644
index 0000000000..9c7c67950f
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log10f8_core_avx2.S
@@ -0,0 +1,1861 @@ 
+/* Function log10f 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:
+ *
+ *    Get short reciprocal approximation Rcp ~ 1/mantissa(x)
+ *    R = Rcp*x - 1.0
+ *    log10(x) = k*log10(2.0) - log10(Rcp) + poly_approximation(R)
+ *       log10(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+	.section .text.avx2,"ax",@progbits
+ENTRY(_ZGVdN8v_log10f_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
+
+/* reduction: compute r,n */
+        vmovups   1728+__svml_slog10_data_internal(%rip), %ymm4
+        vmovups   %ymm8, 32(%rsp)
+        vmovups   %ymm9, 96(%rsp)
+        .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
+        vmovups   1920+__svml_slog10_data_internal(%rip), %ymm8
+        vmovups   %ymm15, 320(%rsp)
+        vmovups   %ymm14, 288(%rsp)
+        vmovups   %ymm13, 256(%rsp)
+        vmovups   %ymm12, 224(%rsp)
+        vmovups   %ymm11, 192(%rsp)
+        vmovups   %ymm10, 160(%rsp)
+        vpsubd    %ymm4, %ymm0, %ymm1
+        vcmplt_oqps 1344+__svml_slog10_data_internal(%rip), %ymm0, %ymm5
+        vcmpnle_uqps 1408+__svml_slog10_data_internal(%rip), %ymm0, %ymm6
+        vpand     1792+__svml_slog10_data_internal(%rip), %ymm1, %ymm3
+        vpsrad    $23, %ymm1, %ymm2
+        vpaddd    %ymm4, %ymm3, %ymm1
+        vmovups   2048+__svml_slog10_data_internal(%rip), %ymm3
+        .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
+        vcvtdq2ps %ymm2, %ymm9
+        vmovups   1984+__svml_slog10_data_internal(%rip), %ymm2
+        vorps     %ymm6, %ymm5, %ymm7
+        vsubps    1856+__svml_slog10_data_internal(%rip), %ymm1, %ymm6
+        vmovups   2112+__svml_slog10_data_internal(%rip), %ymm5
+        vfmadd213ps 1952+__svml_slog10_data_internal(%rip), %ymm6, %ymm8
+        vfmadd213ps 2016+__svml_slog10_data_internal(%rip), %ymm6, %ymm2
+        vmulps    %ymm6, %ymm6, %ymm4
+        vfmadd213ps 2080+__svml_slog10_data_internal(%rip), %ymm6, %ymm3
+        vfmadd213ps 2144+__svml_slog10_data_internal(%rip), %ymm6, %ymm5
+        vfmadd213ps %ymm2, %ymm4, %ymm8
+        vfmadd213ps %ymm3, %ymm4, %ymm8
+        vfmadd213ps %ymm5, %ymm4, %ymm8
+        vfmadd213ps 2176+__svml_slog10_data_internal(%rip), %ymm6, %ymm8
+
+/* combine and get argument value range mask */
+        vmovmskps %ymm7, %edx
+        vmulps    1664+__svml_slog10_data_internal(%rip), %ymm9, %ymm7
+        vfmadd213ps %ymm7, %ymm6, %ymm8
+        vfmadd132ps 1600+__svml_slog10_data_internal(%rip), %ymm8, %ymm9
+        testl     %edx, %edx
+        jne       L(2)
+
+L(1):
+        vmovaps   %ymm9, %ymm0
+        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   %ymm0, 64(%rsp)
+        vmovups   %ymm9, 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), %ymm9
+        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_slog10_cout_rare_internal
+        jmp       L(4)
+
+END(_ZGVdN8v_log10f_avx2)
+
+        .align    16,0x90
+
+__svml_slog10_cout_rare_internal:
+
+        cfi_startproc
+
+        xorl      %eax, %eax
+        movzwl    2(%rdi), %edx
+        andl      $32640, %edx
+        cmpl      $32640, %edx
+        je        L(11)
+        movss     (%rdi), %xmm2
+        xorl      %ecx, %ecx
+        movss     %xmm2, -16(%rsp)
+        movzwl    -14(%rsp), %edx
+        testl     $32640, %edx
+        jne       L(6)
+        mulss     .FLT_83(%rip), %xmm2
+        movl      $-40, %ecx
+        movss     %xmm2, -16(%rsp)
+
+L(6):
+        pxor      %xmm0, %xmm0
+        comiss    %xmm0, %xmm2
+        jbe       L(8)
+        movaps    %xmm2, %xmm1
+        subss     .FLT_99(%rip), %xmm1
+        movss     %xmm1, -20(%rsp)
+        andb      $127, -17(%rsp)
+        movss     -20(%rsp), %xmm0
+        comiss    .FLT_84(%rip), %xmm0
+        jbe       L(7)
+        movss     %xmm2, -20(%rsp)
+        pxor      %xmm8, %xmm8
+        movzwl    -18(%rsp), %edi
+        lea       __slog10_la_CoutTab(%rip), %r10
+        andl      $-32641, %edi
+        addl      $16256, %edi
+        movw      %di, -18(%rsp)
+        movss     -20(%rsp), %xmm3
+        movaps    %xmm3, %xmm0
+        movss     .FLT_86(%rip), %xmm2
+        movaps    %xmm2, %xmm1
+        addss     .FLT_85(%rip), %xmm0
+        addss     %xmm3, %xmm1
+        movss     %xmm0, -24(%rsp)
+        movl      -24(%rsp), %r8d
+        movss     %xmm1, -24(%rsp)
+        andl      $127, %r8d
+        movss     -24(%rsp), %xmm9
+        movss     .FLT_95(%rip), %xmm6
+        subss     %xmm2, %xmm9
+        movzwl    -14(%rsp), %edx
+        lea       (%r8,%r8,2), %r9d
+        movss     (%r10,%r9,4), %xmm7
+        andl      $32640, %edx
+        shrl      $7, %edx
+        subss     %xmm9, %xmm3
+        mulss     %xmm7, %xmm9
+        mulss     %xmm3, %xmm7
+        subss     .FLT_87(%rip), %xmm9
+        movaps    %xmm9, %xmm4
+        lea       -127(%rcx,%rdx), %ecx
+        cvtsi2ss  %ecx, %xmm8
+        addss     %xmm7, %xmm4
+        mulss     %xmm4, %xmm6
+        movss     .FLT_96(%rip), %xmm10
+        mulss     %xmm8, %xmm10
+        addss     .FLT_94(%rip), %xmm6
+        addss     4(%r10,%r9,4), %xmm10
+        mulss     %xmm4, %xmm6
+        addss     %xmm9, %xmm10
+        addss     .FLT_93(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        movss     .FLT_97(%rip), %xmm5
+        mulss     %xmm5, %xmm8
+        addss     .FLT_92(%rip), %xmm6
+        addss     8(%r10,%r9,4), %xmm8
+        mulss     %xmm4, %xmm6
+        addss     .FLT_91(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_90(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_89(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_88(%rip), %xmm6
+        mulss     %xmm6, %xmm9
+        mulss     %xmm7, %xmm6
+        addss     %xmm6, %xmm8
+        addss     %xmm7, %xmm8
+        addss     %xmm8, %xmm9
+        addss     %xmm9, %xmm10
+        movss     %xmm10, (%rsi)
+        ret
+
+L(7):
+        movss     .FLT_87(%rip), %xmm0
+        mulss     %xmm0, %xmm1
+        movss     .FLT_95(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_94(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_93(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_92(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_91(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_90(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_89(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_88(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     %xmm1, %xmm2
+        movss     %xmm2, (%rsi)
+        ret
+
+L(8):
+        ucomiss   %xmm0, %xmm2
+        jp        L(9)
+        je        L(10)
+
+L(9):
+        divss     %xmm0, %xmm0
+        movss     %xmm0, (%rsi)
+        movl      $1, %eax
+        ret
+
+L(10):
+        movss     .FLT_98(%rip), %xmm1
+        movl      $2, %eax
+        divss     %xmm0, %xmm1
+        movss     %xmm1, (%rsi)
+        ret
+
+L(11):
+        movb      3(%rdi), %dl
+        andb      $-128, %dl
+        cmpb      $-128, %dl
+        je        L(13)
+
+L(12):
+        movss     (%rdi), %xmm0
+        mulss     %xmm0, %xmm0
+        movss     %xmm0, (%rsi)
+        ret
+
+L(13):
+        testl     $8388607, (%rdi)
+        jne       L(12)
+        movl      $1, %eax
+        pxor      %xmm1, %xmm1
+        pxor      %xmm0, %xmm0
+        divss     %xmm0, %xmm1
+        movss     %xmm1, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_slog10_cout_rare_internal,@function
+        .size	__svml_slog10_cout_rare_internal,.-__svml_slog10_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_slog10_data_internal:
+        .long	3256334460
+        .long	969394728
+        .long	3256334974
+        .long	969699354
+        .long	3256335486
+        .long	970041911
+        .long	3256335982
+        .long	968584717
+        .long	3256336494
+        .long	969519438
+        .long	3256336990
+        .long	968649168
+        .long	3256337502
+        .long	970165641
+        .long	3256337998
+        .long	969872020
+        .long	3256338494
+        .long	969862955
+        .long	3256338990
+        .long	970135976
+        .long	3256339470
+        .long	968591496
+        .long	3256339966
+        .long	969421411
+        .long	3256340462
+        .long	970526195
+        .long	3256340942
+        .long	969806353
+        .long	3256341422
+        .long	969356721
+        .long	3256341902
+        .long	969175014
+        .long	3256342382
+        .long	969258977
+        .long	3256342862
+        .long	969606381
+        .long	3256343342
+        .long	970215027
+        .long	3256343806
+        .long	968985590
+        .long	3256344286
+        .long	970110228
+        .long	3256344750
+        .long	969392519
+        .long	3256345214
+        .long	968927522
+        .long	3256345678
+        .long	968713169
+        .long	3256346142
+        .long	968747418
+        .long	3256346606
+        .long	969028253
+        .long	3256347070
+        .long	969553681
+        .long	3256347534
+        .long	970321733
+        .long	3256347982
+        .long	969233313
+        .long	3256348446
+        .long	970480802
+        .long	3256348894
+        .long	969867999
+        .long	3256349342
+        .long	969490179
+        .long	3256349790
+        .long	969345487
+        .long	3256350238
+        .long	969432093
+        .long	3256350686
+        .long	969748186
+        .long	3256351566
+        .long	968964541
+        .long	3256352446
+        .long	969077639
+        .long	3256353326
+        .long	970073736
+        .long	3256354190
+        .long	969842251
+        .long	3256355054
+        .long	970467209
+        .long	3256355902
+        .long	969838628
+        .long	3256356750
+        .long	970041115
+        .long	3256357582
+        .long	968965252
+        .long	3256358414
+        .long	968696192
+        .long	3256359246
+        .long	969222201
+        .long	3256360078
+        .long	970531798
+        .long	3256360894
+        .long	970516595
+        .long	3256361694
+        .long	969165599
+        .long	3256362494
+        .long	968565200
+        .long	3256363294
+        .long	968704863
+        .long	3256364094
+        .long	969574273
+        .long	3256364878
+        .long	969066179
+        .long	3256365662
+        .long	969267840
+        .long	3256366446
+        .long	970169567
+        .long	3256367214
+        .long	969664714
+        .long	3256367982
+        .long	969841134
+        .long	3256368734
+        .long	968592559
+        .long	3256369502
+        .long	970104362
+        .long	3256370254
+        .long	970173483
+        .long	3256370990
+        .long	968791339
+        .long	3256371742
+        .long	970143819
+        .long	3256372478
+        .long	970028365
+        .long	3256373214
+        .long	970534037
+        .long	3256373934
+        .long	969555746
+        .long	3256374654
+        .long	969182856
+        .long	3256375374
+        .long	969407729
+        .long	3256376094
+        .long	970222869
+        .long	3256376798
+        .long	969523769
+        .long	3256377502
+        .long	969400361
+        .long	3256378206
+        .long	969845561
+        .long	3256378894
+        .long	968755260
+        .long	3256379598
+        .long	970316935
+        .long	3256380286
+        .long	970329575
+        .long	3256380958
+        .long	968786598
+        .long	3256381646
+        .long	969875841
+        .long	3256382318
+        .long	969396649
+        .long	3256382990
+        .long	969439935
+        .long	3256383662
+        .long	969999571
+        .long	3256384318
+        .long	968972383
+        .long	3256384990
+        .long	970546758
+        .long	3256385646
+        .long	970522577
+        .long	3256386286
+        .long	968894127
+        .long	3256386942
+        .long	969850093
+        .long	3256387582
+        .long	969190651
+        .long	3256388222
+        .long	969007524
+        .long	3256388862
+        .long	969295375
+        .long	3256389502
+        .long	970048957
+        .long	3256390126
+        .long	969165958
+        .long	3256390750
+        .long	968738453
+        .long	3256391374
+        .long	968761452
+        .long	3256391998
+        .long	969230043
+        .long	3256392622
+        .long	970139398
+        .long	3256393230
+        .long	969387611
+        .long	3256393838
+        .long	969067159
+        .long	3256394446
+        .long	969173441
+        .long	3256395054
+        .long	969701929
+        .long	3256395646
+        .long	968551015
+        .long	3256396254
+        .long	969910618
+        .long	3256396846
+        .long	969582116
+        .long	3256397438
+        .long	969658411
+        .long	3256398030
+        .long	970135319
+        .long	3256398606
+        .long	968911569
+        .long	3256399198
+        .long	970177409
+        .long	3256399774
+        .long	969734540
+        .long	3256400350
+        .long	969676181
+        .long	3256400926
+        .long	969998457
+        .long	3256401486
+        .long	968600401
+        .long	3256402062
+        .long	969672558
+        .long	3256402622
+        .long	969016921
+        .long	3256403182
+        .long	968726993
+        .long	3256403742
+        .long	968799182
+        .long	3256404302
+        .long	969229944
+        .long	3256404862
+        .long	970015791
+        .long	3256405406
+        .long	969056131
+        .long	3256405966
+        .long	970541879
+        .long	3256406510
+        .long	970275391
+        .long	3256407054
+        .long	970350525
+        .long	3256407582
+        .long	968666884
+        .long	3256408126
+        .long	969415571
+        .long	3256408670
+        .long	970496282
+        .long	3256409198
+        .long	969808752
+        .long	3256409726
+        .long	969447067
+        .long	3256410254
+        .long	969408203
+        .long	3256410782
+        .long	969689179
+        .long	3256411310
+        .long	970287052
+        .long	3256411822
+        .long	969101770
+        .long	3256412350
+        .long	970324777
+        .long	3256412862
+        .long	969758945
+        .long	3256413374
+        .long	969498644
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1071862019
+        .long	1071862019
+        .long	1071862019
+        .long	1071862019
+        .long	1071862019
+        .long	1071862019
+        .long	1071862019
+        .long	1071862019
+        .long	3214137316
+        .long	3214137316
+        .long	3214137316
+        .long	3214137316
+        .long	3214137316
+        .long	3214137316
+        .long	3214137316
+        .long	3214137316
+        .long	986960742
+        .long	986960742
+        .long	986960742
+        .long	986960742
+        .long	986960742
+        .long	986960742
+        .long	986960742
+        .long	986960742
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	989855744
+        .long	989855744
+        .long	989855744
+        .long	989855744
+        .long	989855744
+        .long	989855744
+        .long	989855744
+        .long	989855744
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	8388608
+        .long	8388608
+        .long	8388608
+        .long	8388608
+        .long	8388608
+        .long	8388608
+        .long	8388608
+        .long	8388608
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	2139095039
+        .long	2139095039
+        .long	2139095039
+        .long	2139095039
+        .long	2139095039
+        .long	2139095039
+        .long	2139095039
+        .long	2139095039
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	4294967040
+        .long	4294967040
+        .long	4294967040
+        .long	4294967040
+        .long	4294967040
+        .long	4294967040
+        .long	4294967040
+        .long	4294967040
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1054736384
+        .long	1054736384
+        .long	1054736384
+        .long	1054736384
+        .long	1054736384
+        .long	1054736384
+        .long	1054736384
+        .long	1054736384
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1050288384
+        .long	1050288384
+        .long	1050288384
+        .long	1050288384
+        .long	1050288384
+        .long	1050288384
+        .long	1050288384
+        .long	1050288384
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	3058365952
+        .long	3058365952
+        .long	3058365952
+        .long	3058365952
+        .long	3058365952
+        .long	3058365952
+        .long	3058365952
+        .long	3058365952
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1059760811
+        .long	1059760811
+        .long	1059760811
+        .long	1059760811
+        .long	1059760811
+        .long	1059760811
+        .long	1059760811
+        .long	1059760811
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .long	8388607
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1031824308
+        .long	1031824308
+        .long	1031824308
+        .long	1031824308
+        .long	1031824308
+        .long	1031824308
+        .long	1031824308
+        .long	1031824308
+        .long	3179872371
+        .long	3179872371
+        .long	3179872371
+        .long	3179872371
+        .long	3179872371
+        .long	3179872371
+        .long	3179872371
+        .long	3179872371
+        .long	1031230231
+        .long	1031230231
+        .long	1031230231
+        .long	1031230231
+        .long	1031230231
+        .long	1031230231
+        .long	1031230231
+        .long	1031230231
+        .long	3180460839
+        .long	3180460839
+        .long	3180460839
+        .long	3180460839
+        .long	3180460839
+        .long	3180460839
+        .long	3180460839
+        .long	3180460839
+        .long	1035078550
+        .long	1035078550
+        .long	1035078550
+        .long	1035078550
+        .long	1035078550
+        .long	1035078550
+        .long	1035078550
+        .long	1035078550
+        .long	3185471008
+        .long	3185471008
+        .long	3185471008
+        .long	3185471008
+        .long	3185471008
+        .long	3185471008
+        .long	3185471008
+        .long	3185471008
+        .long	1041513701
+        .long	1041513701
+        .long	1041513701
+        .long	1041513701
+        .long	1041513701
+        .long	1041513701
+        .long	1041513701
+        .long	1041513701
+        .long	3193854917
+        .long	3193854917
+        .long	3193854917
+        .long	3193854917
+        .long	3193854917
+        .long	3193854917
+        .long	3193854917
+        .long	3193854917
+        .long	1054759897
+        .long	1054759897
+        .long	1054759897
+        .long	1054759897
+        .long	1054759897
+        .long	1054759897
+        .long	1054759897
+        .long	1054759897
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1036894503
+        .long	1036894503
+        .long	1036894503
+        .long	1036894503
+        .long	1036894503
+        .long	1036894503
+        .long	1036894503
+        .long	1036894503
+        .long	3186945393
+        .long	3186945393
+        .long	3186945393
+        .long	3186945393
+        .long	3186945393
+        .long	3186945393
+        .long	3186945393
+        .long	3186945393
+        .long	1041464766
+        .long	1041464766
+        .long	1041464766
+        .long	1041464766
+        .long	1041464766
+        .long	1041464766
+        .long	1041464766
+        .long	1041464766
+        .long	3193833762
+        .long	3193833762
+        .long	3193833762
+        .long	3193833762
+        .long	3193833762
+        .long	3193833762
+        .long	3193833762
+        .long	3193833762
+        .long	1054760110
+        .long	1054760110
+        .long	1054760110
+        .long	1054760110
+        .long	1054760110
+        .long	1054760110
+        .long	1054760110
+        .long	1054760110
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .long	1050288283
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	2139095040
+        .long	4286578688
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	3212836864
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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_slog10_data_internal,@object
+        .size	__svml_slog10_data_internal,2688
+        .align 32
+
+__slog10_la_CoutTab:
+        .long	1121868800
+        .long	0
+        .long	0
+        .long	1121641104
+        .long	1004535808
+        .long	912917177
+        .long	1121413408
+        .long	1013055488
+        .long	3065901602
+        .long	1121185712
+        .long	1017839616
+        .long	3083361151
+        .long	1120958016
+        .long	1021673472
+        .long	929297206
+        .long	1120844168
+        .long	1023524864
+        .long	3077496589
+        .long	1120616472
+        .long	1025499136
+        .long	3070500046
+        .long	1120388776
+        .long	1027506176
+        .long	912271551
+        .long	1120274928
+        .long	1028521984
+        .long	927716856
+        .long	1120047232
+        .long	1030586368
+        .long	923757491
+        .long	1119933384
+        .long	1031634944
+        .long	3056752848
+        .long	1119705688
+        .long	1032775680
+        .long	917029265
+        .long	1119591840
+        .long	1033314304
+        .long	3065085585
+        .long	1119364144
+        .long	1034403840
+        .long	3064614024
+        .long	1119250296
+        .long	1034954752
+        .long	921091539
+        .long	1119136448
+        .long	1035513856
+        .long	3057436454
+        .long	1118908752
+        .long	1036644352
+        .long	922468856
+        .long	1118794904
+        .long	1037219840
+        .long	3049155845
+        .long	1118681056
+        .long	1037799424
+        .long	904301451
+        .long	1118567208
+        .long	1038385152
+        .long	908617625
+        .long	1118453360
+        .long	1038977024
+        .long	905362229
+        .long	1118225664
+        .long	1040179200
+        .long	3027570914
+        .long	1118111816
+        .long	1040488448
+        .long	882280038
+        .long	1117997968
+        .long	1040796672
+        .long	911375775
+        .long	1117884120
+        .long	1041108480
+        .long	904500572
+        .long	1117770272
+        .long	1041423872
+        .long	3057579304
+        .long	1117656424
+        .long	1041742336
+        .long	3053334705
+        .long	1117542576
+        .long	1042064384
+        .long	3053389931
+        .long	1117428728
+        .long	1042390016
+        .long	3051561465
+        .long	1117314880
+        .long	1042719232
+        .long	3011187895
+        .long	1117201032
+        .long	1043052544
+        .long	3059907089
+        .long	1117087184
+        .long	1043389440
+        .long	3057005374
+        .long	1116973336
+        .long	1043729920
+        .long	911932638
+        .long	1116859488
+        .long	1044075008
+        .long	892958461
+        .long	1116859488
+        .long	1044075008
+        .long	892958461
+        .long	1116745640
+        .long	1044424192
+        .long	3048660547
+        .long	1116631792
+        .long	1044777472
+        .long	3049032043
+        .long	1116517944
+        .long	1045134848
+        .long	906867152
+        .long	1116404096
+        .long	1045496832
+        .long	911484894
+        .long	1116404096
+        .long	1045496832
+        .long	911484894
+        .long	1116290248
+        .long	1045863424
+        .long	912580963
+        .long	1116176400
+        .long	1046235136
+        .long	3058440244
+        .long	1116062552
+        .long	1046610944
+        .long	895945194
+        .long	1116062552
+        .long	1046610944
+        .long	895945194
+        .long	1115948704
+        .long	1046991872
+        .long	904357324
+        .long	1115834856
+        .long	1047377920
+        .long	902293870
+        .long	1115721008
+        .long	1047769088
+        .long	907149878
+        .long	1115721008
+        .long	1047769088
+        .long	907149878
+        .long	1115529456
+        .long	1048165888
+        .long	3052029263
+        .long	1115301760
+        .long	1048567808
+        .long	3035959522
+        .long	1115301760
+        .long	1048567808
+        .long	3035959522
+        .long	1115074064
+        .long	1048775680
+        .long	892998645
+        .long	1115074064
+        .long	1048775680
+        .long	892998645
+        .long	1114846368
+        .long	1048982400
+        .long	881767775
+        .long	1114618672
+        .long	1049192064
+        .long	893839142
+        .long	1114618672
+        .long	1049192064
+        .long	893839142
+        .long	1114390976
+        .long	1049404800
+        .long	896498651
+        .long	1114390976
+        .long	1049404800
+        .long	896498651
+        .long	1114163280
+        .long	1049620736
+        .long	3033695903
+        .long	1114163280
+        .long	1049620736
+        .long	3033695903
+        .long	1113935584
+        .long	1049839872
+        .long	3029986056
+        .long	1113935584
+        .long	1049839872
+        .long	3029986056
+        .long	1113707888
+        .long	1050062336
+        .long	884671939
+        .long	1113707888
+        .long	1050062336
+        .long	884671939
+        .long	1113480192
+        .long	1050288256
+        .long	894707678
+        .long	1050279936
+        .long	964848148
+        .long	1207959616
+        .long	1174405120
+        .long	1002438656
+        .long	1400897536
+        .long	0
+        .long	1065353216
+        .long	1121868800
+        .long	3212771328
+        .long	3079888218
+        .long	870463078
+        .long	2957202361
+        .long	749987585
+        .long	2838272395
+        .long	631921661
+        .long	2720751022
+        .type	__slog10_la_CoutTab,@object
+        .size	__slog10_la_CoutTab,848
+        .align 4
+
+.FLT_83:
+        .long	0x53800000
+        .type	.FLT_83,@object
+        .size	.FLT_83,4
+        .align 4
+
+.FLT_84:
+        .long	0x3bc00000
+        .type	.FLT_84,@object
+        .size	.FLT_84,4
+        .align 4
+
+.FLT_85:
+        .long	0x48000040
+        .type	.FLT_85,@object
+        .size	.FLT_85,4
+        .align 4
+
+.FLT_86:
+        .long	0x46000000
+        .type	.FLT_86,@object
+        .size	.FLT_86,4
+        .align 4
+
+.FLT_87:
+        .long	0x42de5c00
+        .type	.FLT_87,@object
+        .size	.FLT_87,4
+        .align 4
+
+.FLT_88:
+        .long	0xbf7f0000
+        .type	.FLT_88,@object
+        .size	.FLT_88,4
+        .align 4
+
+.FLT_89:
+        .long	0xb7935d5a
+        .type	.FLT_89,@object
+        .size	.FLT_89,4
+        .align 4
+
+.FLT_90:
+        .long	0x33e23666
+        .type	.FLT_90,@object
+        .size	.FLT_90,4
+        .align 4
+
+.FLT_91:
+        .long	0xb04353b9
+        .type	.FLT_91,@object
+        .size	.FLT_91,4
+        .align 4
+
+.FLT_92:
+        .long	0x2cb3e701
+        .type	.FLT_92,@object
+        .size	.FLT_92,4
+        .align 4
+
+.FLT_93:
+        .long	0xa92c998b
+        .type	.FLT_93,@object
+        .size	.FLT_93,4
+        .align 4
+
+.FLT_94:
+        .long	0x25aa5bfd
+        .type	.FLT_94,@object
+        .size	.FLT_94,4
+        .align 4
+
+.FLT_95:
+        .long	0xa22b5dae
+        .type	.FLT_95,@object
+        .size	.FLT_95,4
+        .align 4
+
+.FLT_96:
+        .long	0x3e9a0000
+        .type	.FLT_96,@object
+        .size	.FLT_96,4
+        .align 4
+
+.FLT_97:
+        .long	0x39826a14
+        .type	.FLT_97,@object
+        .size	.FLT_97,4
+        .align 4
+
+.FLT_98:
+        .long	0xbf800000
+        .type	.FLT_98,@object
+        .size	.FLT_98,4
+        .align 4
+
+.FLT_99:
+        .long	0x3f800000
+        .type	.FLT_99,@object
+        .size	.FLT_99,4
diff --git a/sysdeps/x86_64/fpu/svml_d_log102_core.S b/sysdeps/x86_64/fpu/svml_d_log102_core.S
new file mode 100644
index 0000000000..3d0c058ac2
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_log102_core.S
@@ -0,0 +1,29 @@ 
+/* Function log10 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_log10)
+WRAPPER_IMPL_SSE2 log10
+END (_ZGVbN2v_log10)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN2v_log10)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_d_log104_core.S b/sysdeps/x86_64/fpu/svml_d_log104_core.S
new file mode 100644
index 0000000000..9e32c62c0e
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_log104_core.S
@@ -0,0 +1,29 @@ 
+/* Function log10 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_log10)
+WRAPPER_IMPL_AVX _ZGVbN2v_log10
+END (_ZGVdN4v_log10)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN4v_log10)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_d_log104_core_avx.S b/sysdeps/x86_64/fpu/svml_d_log104_core_avx.S
new file mode 100644
index 0000000000..2b073b16f9
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_log104_core_avx.S
@@ -0,0 +1,25 @@ 
+/* Function log10 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_log10)
+WRAPPER_IMPL_AVX _ZGVbN2v_log10
+END (_ZGVcN4v_log10)
diff --git a/sysdeps/x86_64/fpu/svml_d_log108_core.S b/sysdeps/x86_64/fpu/svml_d_log108_core.S
new file mode 100644
index 0000000000..853d791f2d
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_log108_core.S
@@ -0,0 +1,25 @@ 
+/* Function log10 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_log10)
+WRAPPER_IMPL_AVX512 _ZGVdN4v_log10
+END (_ZGVeN8v_log10)
diff --git a/sysdeps/x86_64/fpu/svml_s_log10f16_core.S b/sysdeps/x86_64/fpu/svml_s_log10f16_core.S
new file mode 100644
index 0000000000..769603c92d
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_log10f16_core.S
@@ -0,0 +1,25 @@ 
+/* Function log10f 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_log10f)
+WRAPPER_IMPL_AVX512 _ZGVdN8v_log10f
+END (_ZGVeN16v_log10f)
diff --git a/sysdeps/x86_64/fpu/svml_s_log10f4_core.S b/sysdeps/x86_64/fpu/svml_s_log10f4_core.S
new file mode 100644
index 0000000000..523525409b
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_log10f4_core.S
@@ -0,0 +1,29 @@ 
+/* Function log10f 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_log10f)
+WRAPPER_IMPL_SSE2 log10f
+END (_ZGVbN4v_log10f)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN4v_log10f)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_s_log10f8_core.S b/sysdeps/x86_64/fpu/svml_s_log10f8_core.S
new file mode 100644
index 0000000000..630ec76b7f
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_log10f8_core.S
@@ -0,0 +1,29 @@ 
+/* Function log10f 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_log10f)
+WRAPPER_IMPL_AVX _ZGVbN4v_log10f
+END (_ZGVdN8v_log10f)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN8v_log10f)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_s_log10f8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_log10f8_core_avx.S
new file mode 100644
index 0000000000..374208cb2c
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_log10f8_core_avx.S
@@ -0,0 +1,25 @@ 
+/* Function log10f 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_log10f)
+WRAPPER_IMPL_AVX _ZGVbN4v_log10f
+END (_ZGVcN8v_log10f)
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log10-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-log10-avx.c
new file mode 100644
index 0000000000..770fd725e0
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-log10-avx.c
@@ -0,0 +1 @@ 
+#include "test-double-libmvec-log10.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log10-avx2.c b/sysdeps/x86_64/fpu/test-double-libmvec-log10-avx2.c
new file mode 100644
index 0000000000..770fd725e0
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-log10-avx2.c
@@ -0,0 +1 @@ 
+#include "test-double-libmvec-log10.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log10-avx512f.c b/sysdeps/x86_64/fpu/test-double-libmvec-log10-avx512f.c
new file mode 100644
index 0000000000..770fd725e0
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-log10-avx512f.c
@@ -0,0 +1 @@ 
+#include "test-double-libmvec-log10.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log10.c b/sysdeps/x86_64/fpu/test-double-libmvec-log10.c
new file mode 100644
index 0000000000..cb1ab36819
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-log10.c
@@ -0,0 +1,3 @@ 
+#define LIBMVEC_TYPE double
+#define LIBMVEC_FUNC log10
+#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 8e1aeb6cff..3ef095ae62 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
@@ -42,6 +42,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (exp10), _ZGVbN2v_exp10)
 VECTOR_WRAPPER (WRAPPER_NAME (exp2), _ZGVbN2v_exp2)
 VECTOR_WRAPPER (WRAPPER_NAME (expm1), _ZGVbN2v_expm1)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVbN2vv_hypot)
+VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVbN2v_log10)
 
 #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 7f144711bf..1606920439 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
@@ -45,6 +45,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (exp10), _ZGVdN4v_exp10)
 VECTOR_WRAPPER (WRAPPER_NAME (exp2), _ZGVdN4v_exp2)
 VECTOR_WRAPPER (WRAPPER_NAME (expm1), _ZGVdN4v_expm1)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVdN4vv_hypot)
+VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVdN4v_log10)
 
 #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 48824d699a..934003b172 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
@@ -42,6 +42,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (exp10), _ZGVcN4v_exp10)
 VECTOR_WRAPPER (WRAPPER_NAME (exp2), _ZGVcN4v_exp2)
 VECTOR_WRAPPER (WRAPPER_NAME (expm1), _ZGVcN4v_expm1)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVcN4vv_hypot)
+VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVcN4v_log10)
 
 #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 eda821a402..f6eff0b72d 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
@@ -42,6 +42,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (exp10), _ZGVeN8v_exp10)
 VECTOR_WRAPPER (WRAPPER_NAME (exp2), _ZGVeN8v_exp2)
 VECTOR_WRAPPER (WRAPPER_NAME (expm1), _ZGVeN8v_expm1)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVeN8vv_hypot)
+VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVeN8v_log10)
 
 #ifndef __ILP32__
 # define VEC_INT_TYPE __m512i
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx.c b/sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx.c
new file mode 100644
index 0000000000..04f017f1e2
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx.c
@@ -0,0 +1 @@ 
+#include "test-float-libmvec-log10f.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx2.c b/sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx2.c
new file mode 100644
index 0000000000..04f017f1e2
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx2.c
@@ -0,0 +1 @@ 
+#include "test-float-libmvec-log10f.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx512f.c b/sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx512f.c
new file mode 100644
index 0000000000..04f017f1e2
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-log10f-avx512f.c
@@ -0,0 +1 @@ 
+#include "test-float-libmvec-log10f.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-log10f.c b/sysdeps/x86_64/fpu/test-float-libmvec-log10f.c
new file mode 100644
index 0000000000..682ce1e239
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-log10f.c
@@ -0,0 +1,3 @@ 
+#define LIBMVEC_TYPE float
+#define LIBMVEC_FUNC log10f
+#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 89132d61e9..3927d2e332 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
@@ -42,6 +42,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (exp10f), _ZGVeN16v_exp10f)
 VECTOR_WRAPPER (WRAPPER_NAME (exp2f), _ZGVeN16v_exp2f)
 VECTOR_WRAPPER (WRAPPER_NAME (expm1f), _ZGVeN16v_expm1f)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVeN16vv_hypotf)
+VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVeN16v_log10f)
 
 #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 5100f35035..a9f012a4ba 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
@@ -42,6 +42,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (exp10f), _ZGVbN4v_exp10f)
 VECTOR_WRAPPER (WRAPPER_NAME (exp2f), _ZGVbN4v_exp2f)
 VECTOR_WRAPPER (WRAPPER_NAME (expm1f), _ZGVbN4v_expm1f)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVbN4vv_hypotf)
+VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVbN4v_log10f)
 
 #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 cd9be5eed4..00486c2965 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
@@ -45,6 +45,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (exp10f), _ZGVdN8v_exp10f)
 VECTOR_WRAPPER (WRAPPER_NAME (exp2f), _ZGVdN8v_exp2f)
 VECTOR_WRAPPER (WRAPPER_NAME (expm1f), _ZGVdN8v_expm1f)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVdN8vv_hypotf)
+VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVdN8v_log10f)
 
 /* 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 44e4fd773c..296a4d68a8 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
@@ -42,6 +42,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (exp10f), _ZGVcN8v_exp10f)
 VECTOR_WRAPPER (WRAPPER_NAME (exp2f), _ZGVcN8v_exp2f)
 VECTOR_WRAPPER (WRAPPER_NAME (expm1f), _ZGVcN8v_expm1f)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVcN8vv_hypotf)
+VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVcN8v_log10f)
 
 #define VEC_INT_TYPE __m128i