diff mbox series

[35/42] x86-64: Add vector log2/log2f implementation to libmvec

Message ID 20211124193807.2093208-36-skpgkp2@gmail.com
State Changes Requested
Headers show
Series x86-64: Add vector math functions to libmvec | expand

Checks

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

Commit Message

Sunil Pandey Nov. 24, 2021, 7:38 p.m. UTC
Implement vectorized log2/log2f containing SSE, AVX, AVX2 and
AVX512 versions for libmvec as per vector ABI.  It also contains
accuracy and ABI tests for vector log2/log2f 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 +
 sysdeps/x86_64/fpu/Makeconfig                 |    1 +
 sysdeps/x86_64/fpu/Versions                   |    2 +
 sysdeps/x86_64/fpu/libm-test-ulps             |   20 +
 .../fpu/multiarch/svml_d_log22_core-sse2.S    |   20 +
 .../x86_64/fpu/multiarch/svml_d_log22_core.c  |   27 +
 .../fpu/multiarch/svml_d_log22_core_sse4.S    | 5474 +++++++++++++++++
 .../fpu/multiarch/svml_d_log24_core-sse.S     |   20 +
 .../x86_64/fpu/multiarch/svml_d_log24_core.c  |   27 +
 .../fpu/multiarch/svml_d_log24_core_avx2.S    | 5321 ++++++++++++++++
 .../fpu/multiarch/svml_d_log28_core-avx2.S    |   20 +
 .../x86_64/fpu/multiarch/svml_d_log28_core.c  |   27 +
 .../fpu/multiarch/svml_d_log28_core_avx512.S  | 1661 +++++
 .../fpu/multiarch/svml_s_log2f16_core-avx2.S  |   20 +
 .../fpu/multiarch/svml_s_log2f16_core.c       |   28 +
 .../multiarch/svml_s_log2f16_core_avx512.S    |  697 +++
 .../fpu/multiarch/svml_s_log2f4_core-sse2.S   |   20 +
 .../x86_64/fpu/multiarch/svml_s_log2f4_core.c |   28 +
 .../fpu/multiarch/svml_s_log2f4_core_sse4.S   | 1795 ++++++
 .../fpu/multiarch/svml_s_log2f8_core-sse.S    |   20 +
 .../x86_64/fpu/multiarch/svml_s_log2f8_core.c |   28 +
 .../fpu/multiarch/svml_s_log2f8_core_avx2.S   | 1727 ++++++
 sysdeps/x86_64/fpu/svml_d_log22_core.S        |   29 +
 sysdeps/x86_64/fpu/svml_d_log24_core.S        |   29 +
 sysdeps/x86_64/fpu/svml_d_log24_core_avx.S    |   25 +
 sysdeps/x86_64/fpu/svml_d_log28_core.S        |   25 +
 sysdeps/x86_64/fpu/svml_s_log2f16_core.S      |   25 +
 sysdeps/x86_64/fpu/svml_s_log2f4_core.S       |   29 +
 sysdeps/x86_64/fpu/svml_s_log2f8_core.S       |   29 +
 sysdeps/x86_64/fpu/svml_s_log2f8_core_avx.S   |   25 +
 .../x86_64/fpu/test-double-libmvec-log2-avx.c |    1 +
 .../fpu/test-double-libmvec-log2-avx2.c       |    1 +
 .../fpu/test-double-libmvec-log2-avx512f.c    |    1 +
 sysdeps/x86_64/fpu/test-double-libmvec-log2.c |    3 +
 .../x86_64/fpu/test-double-vlen2-wrappers.c   |    1 +
 .../fpu/test-double-vlen4-avx2-wrappers.c     |    1 +
 .../x86_64/fpu/test-double-vlen4-wrappers.c   |    1 +
 .../x86_64/fpu/test-double-vlen8-wrappers.c   |    1 +
 .../x86_64/fpu/test-float-libmvec-log2f-avx.c |    1 +
 .../fpu/test-float-libmvec-log2f-avx2.c       |    1 +
 .../fpu/test-float-libmvec-log2f-avx512f.c    |    1 +
 sysdeps/x86_64/fpu/test-float-libmvec-log2f.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 +
 49 files changed, 17243 insertions(+), 1 deletion(-)
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log22_core-sse2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log22_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log22_core_sse4.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log24_core-sse.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log24_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log24_core_avx2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log28_core-avx2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log28_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_log28_core_avx512.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core-avx2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core_avx512.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core-sse2.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core_sse4.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core-sse.S
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core_avx2.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_log22_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_log24_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_log24_core_avx.S
 create mode 100644 sysdeps/x86_64/fpu/svml_d_log28_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_log2f16_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_log2f4_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_log2f8_core.S
 create mode 100644 sysdeps/x86_64/fpu/svml_s_log2f8_core_avx.S
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log2-avx.c
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log2-avx2.c
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log2-avx512f.c
 create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log2.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx2.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx512f.c
 create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-log2f.c
diff mbox series

Patch

diff --git a/bits/libm-simd-decl-stubs.h b/bits/libm-simd-decl-stubs.h
index 6f10e52d7c..728864ac0d 100644
--- a/bits/libm-simd-decl-stubs.h
+++ b/bits/libm-simd-decl-stubs.h
@@ -285,4 +285,15 @@ 
 #define __DECL_SIMD_log1pf32x
 #define __DECL_SIMD_log1pf64x
 #define __DECL_SIMD_log1pf128x
+
+#define __DECL_SIMD_log2
+#define __DECL_SIMD_log2f
+#define __DECL_SIMD_log2l
+#define __DECL_SIMD_log2f16
+#define __DECL_SIMD_log2f32
+#define __DECL_SIMD_log2f64
+#define __DECL_SIMD_log2f128
+#define __DECL_SIMD_log2f32x
+#define __DECL_SIMD_log2f64x
+#define __DECL_SIMD_log2f128x
 #endif
diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h
index 34810571b2..5db493d938 100644
--- a/math/bits/mathcalls.h
+++ b/math/bits/mathcalls.h
@@ -130,7 +130,7 @@  __MATHCALL (logb,, (_Mdouble_ __x));
 __MATHCALL_VEC (exp2,, (_Mdouble_ __x));
 
 /* Compute base-2 logarithm of X.  */
-__MATHCALL (log2,, (_Mdouble_ __x));
+__MATHCALL_VEC (log2,, (_Mdouble_ __x));
 #endif
 
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist b/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
index 9daf3ce9c0..c3b83b6de0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
@@ -61,6 +61,7 @@  GLIBC_2.35 _ZGVbN2v_exp2 F
 GLIBC_2.35 _ZGVbN2v_expm1 F
 GLIBC_2.35 _ZGVbN2v_log10 F
 GLIBC_2.35 _ZGVbN2v_log1p F
+GLIBC_2.35 _ZGVbN2v_log2 F
 GLIBC_2.35 _ZGVbN2vv_atan2 F
 GLIBC_2.35 _ZGVbN2vv_hypot F
 GLIBC_2.35 _ZGVbN4v_acosf F
@@ -78,6 +79,7 @@  GLIBC_2.35 _ZGVbN4v_exp2f F
 GLIBC_2.35 _ZGVbN4v_expm1f F
 GLIBC_2.35 _ZGVbN4v_log10f F
 GLIBC_2.35 _ZGVbN4v_log1pf F
+GLIBC_2.35 _ZGVbN4v_log2f F
 GLIBC_2.35 _ZGVbN4vv_atan2f F
 GLIBC_2.35 _ZGVbN4vv_hypotf F
 GLIBC_2.35 _ZGVcN4v_acos F
@@ -95,6 +97,7 @@  GLIBC_2.35 _ZGVcN4v_exp2 F
 GLIBC_2.35 _ZGVcN4v_expm1 F
 GLIBC_2.35 _ZGVcN4v_log10 F
 GLIBC_2.35 _ZGVcN4v_log1p F
+GLIBC_2.35 _ZGVcN4v_log2 F
 GLIBC_2.35 _ZGVcN4vv_atan2 F
 GLIBC_2.35 _ZGVcN4vv_hypot F
 GLIBC_2.35 _ZGVcN8v_acosf F
@@ -112,6 +115,7 @@  GLIBC_2.35 _ZGVcN8v_exp2f F
 GLIBC_2.35 _ZGVcN8v_expm1f F
 GLIBC_2.35 _ZGVcN8v_log10f F
 GLIBC_2.35 _ZGVcN8v_log1pf F
+GLIBC_2.35 _ZGVcN8v_log2f F
 GLIBC_2.35 _ZGVcN8vv_atan2f F
 GLIBC_2.35 _ZGVcN8vv_hypotf F
 GLIBC_2.35 _ZGVdN4v_acos F
@@ -129,6 +133,7 @@  GLIBC_2.35 _ZGVdN4v_exp2 F
 GLIBC_2.35 _ZGVdN4v_expm1 F
 GLIBC_2.35 _ZGVdN4v_log10 F
 GLIBC_2.35 _ZGVdN4v_log1p F
+GLIBC_2.35 _ZGVdN4v_log2 F
 GLIBC_2.35 _ZGVdN4vv_atan2 F
 GLIBC_2.35 _ZGVdN4vv_hypot F
 GLIBC_2.35 _ZGVdN8v_acosf F
@@ -146,6 +151,7 @@  GLIBC_2.35 _ZGVdN8v_exp2f F
 GLIBC_2.35 _ZGVdN8v_expm1f F
 GLIBC_2.35 _ZGVdN8v_log10f F
 GLIBC_2.35 _ZGVdN8v_log1pf F
+GLIBC_2.35 _ZGVdN8v_log2f F
 GLIBC_2.35 _ZGVdN8vv_atan2f F
 GLIBC_2.35 _ZGVdN8vv_hypotf F
 GLIBC_2.35 _ZGVeN16v_acosf F
@@ -163,6 +169,7 @@  GLIBC_2.35 _ZGVeN16v_exp2f F
 GLIBC_2.35 _ZGVeN16v_expm1f F
 GLIBC_2.35 _ZGVeN16v_log10f F
 GLIBC_2.35 _ZGVeN16v_log1pf F
+GLIBC_2.35 _ZGVeN16v_log2f F
 GLIBC_2.35 _ZGVeN16vv_atan2f F
 GLIBC_2.35 _ZGVeN16vv_hypotf F
 GLIBC_2.35 _ZGVeN8v_acos F
@@ -180,5 +187,6 @@  GLIBC_2.35 _ZGVeN8v_exp2 F
 GLIBC_2.35 _ZGVeN8v_expm1 F
 GLIBC_2.35 _ZGVeN8v_log10 F
 GLIBC_2.35 _ZGVeN8v_log1p F
+GLIBC_2.35 _ZGVeN8v_log2 F
 GLIBC_2.35 _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 b822ddc5e1..613e9c94b9 100644
--- a/sysdeps/x86/fpu/bits/math-vector.h
+++ b/sysdeps/x86/fpu/bits/math-vector.h
@@ -126,6 +126,10 @@ 
 #  define __DECL_SIMD_log1p __DECL_SIMD_x86_64
 #  undef __DECL_SIMD_log1pf
 #  define __DECL_SIMD_log1pf __DECL_SIMD_x86_64
+#  undef __DECL_SIMD_log2
+#  define __DECL_SIMD_log2 __DECL_SIMD_x86_64
+#  undef __DECL_SIMD_log2f
+#  define __DECL_SIMD_log2f __DECL_SIMD_x86_64
 
 # endif
 #endif
diff --git a/sysdeps/x86_64/fpu/Makeconfig b/sysdeps/x86_64/fpu/Makeconfig
index b557030447..44700c3f2b 100644
--- a/sysdeps/x86_64/fpu/Makeconfig
+++ b/sysdeps/x86_64/fpu/Makeconfig
@@ -42,6 +42,7 @@  libmvec-funcs = \
   log \
   log10 \
   log1p \
+  log2 \
   pow \
   sin \
   sincos \
diff --git a/sysdeps/x86_64/fpu/Versions b/sysdeps/x86_64/fpu/Versions
index 496cd09d2b..d1625d07de 100644
--- a/sysdeps/x86_64/fpu/Versions
+++ b/sysdeps/x86_64/fpu/Versions
@@ -29,6 +29,7 @@  libmvec {
     _ZGVbN2v_expm1; _ZGVcN4v_expm1; _ZGVdN4v_expm1; _ZGVeN8v_expm1;
     _ZGVbN2v_log10; _ZGVcN4v_log10; _ZGVdN4v_log10; _ZGVeN8v_log10;
     _ZGVbN2v_log1p; _ZGVcN4v_log1p; _ZGVdN4v_log1p; _ZGVeN8v_log1p;
+    _ZGVbN2v_log2; _ZGVcN4v_log2; _ZGVdN4v_log2; _ZGVeN8v_log2;
     _ZGVbN2vv_atan2; _ZGVcN4vv_atan2; _ZGVdN4vv_atan2; _ZGVeN8vv_atan2;
     _ZGVbN2vv_hypot; _ZGVcN4vv_hypot; _ZGVdN4vv_hypot; _ZGVeN8vv_hypot;
     _ZGVbN4v_acosf; _ZGVcN8v_acosf; _ZGVdN8v_acosf; _ZGVeN16v_acosf;
@@ -46,6 +47,7 @@  libmvec {
     _ZGVbN4v_expm1f; _ZGVcN8v_expm1f; _ZGVdN8v_expm1f; _ZGVeN16v_expm1f;
     _ZGVbN4v_log10f; _ZGVcN8v_log10f; _ZGVdN8v_log10f; _ZGVeN16v_log10f;
     _ZGVbN4v_log1pf; _ZGVcN8v_log1pf; _ZGVdN8v_log1pf; _ZGVeN16v_log1pf;
+    _ZGVbN4v_log2f; _ZGVcN8v_log2f; _ZGVdN8v_log2f; _ZGVeN16v_log2f;
     _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 af68c48b2b..0df9130e8d 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -1826,6 +1826,26 @@  float: 3
 float128: 1
 ldouble: 1
 
+Function: "log2_vlen16":
+float: 1
+
+Function: "log2_vlen2":
+double: 1
+
+Function: "log2_vlen4":
+double: 1
+float: 1
+
+Function: "log2_vlen4_avx2":
+double: 1
+
+Function: "log2_vlen8":
+double: 1
+float: 1
+
+Function: "log2_vlen8_avx2":
+float: 1
+
 Function: "log_downward":
 float: 2
 float128: 1
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core-sse2.S
new file mode 100644
index 0000000000..e0833a174b
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core-sse2.S
@@ -0,0 +1,20 @@ 
+/* SSE2 version of vectorized log2, 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_log2 _ZGVbN2v_log2_sse2
+#include "../svml_d_log22_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core.c
new file mode 100644
index 0000000000..6d0b5a03ca
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core.c
@@ -0,0 +1,27 @@ 
+/* Multiple versions of vectorized log2, 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_log2
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN2v_log2, __GI__ZGVbN2v_log2, __redirect__ZGVbN2v_log2)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core_sse4.S
new file mode 100644
index 0000000000..f748fc7d3c
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log22_core_sse4.S
@@ -0,0 +1,5474 @@ 
+/* Function log 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
+ *    log2(x) = k - log2(Rcp) + poly_approximation(R)
+ *       log2(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+ENTRY(_ZGVbN2v_log2_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    12672+__svml_dlog2_data_internal(%rip), %xmm5
+
+/* check range */
+        movaps    %xmm6, %xmm3
+        andps     %xmm6, %xmm5
+        movaps    %xmm6, %xmm2
+        orps      12800+__svml_dlog2_data_internal(%rip), %xmm5
+        lea       -4218816+__svml_dlog2_data_internal(%rip), %r8
+
+/* reciprocal approximation good to at least 11 bits */
+        cvtpd2ps  %xmm5, %xmm7
+        cmpltpd   12864+__svml_dlog2_data_internal(%rip), %xmm3
+        cmpnlepd  12928+__svml_dlog2_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    12992+__svml_dlog2_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     13120+__svml_dlog2_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 */
+        movups    13184+__svml_dlog2_data_internal(%rip), %xmm7
+        cmpltpd   %xmm4, %xmm7
+
+/* polynomial */
+        movups    12544+__svml_dlog2_data_internal(%rip), %xmm4
+        mulpd     %xmm5, %xmm4
+        pshufd    $2, %xmm3, %xmm2
+        movaps    %xmm5, %xmm3
+        mulpd     %xmm5, %xmm3
+        movd      %xmm2, %ecx
+        movups    12576+__svml_dlog2_data_internal(%rip), %xmm2
+        andps     13248+__svml_dlog2_data_internal(%rip), %xmm7
+        addpd     12560+__svml_dlog2_data_internal(%rip), %xmm4
+        mulpd     %xmm5, %xmm2
+        mulpd     %xmm3, %xmm4
+        addpd     12592+__svml_dlog2_data_internal(%rip), %xmm2
+        addpd     %xmm4, %xmm2
+        orps      13312+__svml_dlog2_data_internal(%rip), %xmm7
+        subpd     %xmm7, %xmm0
+        mulpd     %xmm2, %xmm3
+        movups    12608+__svml_dlog2_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       .LBL_1_3
+
+.LBL_1_2:
+        movq      %rbp, %rsp
+        popq      %rbp
+        cfi_def_cfa(7, 8)
+        cfi_restore(6)
+        ret
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+
+.LBL_1_3:
+        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
+
+.LBL_1_7:
+        btl       %r12d, %r13d
+        jc        .LBL_1_10
+
+.LBL_1_8:
+        incl      %r12d
+        cmpl      $2, %r12d
+        jl        .LBL_1_7
+        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       .LBL_1_2
+        .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
+
+.LBL_1_10:
+        lea       192(%rsp,%r12,8), %rdi
+        lea       256(%rsp,%r12,8), %rsi
+        call      __svml_dlog2_cout_rare_internal
+        jmp       .LBL_1_8
+
+END(_ZGVbN2v_log2_sse4)
+
+        .align    16,0x90
+
+__svml_dlog2_cout_rare_internal:
+
+        cfi_startproc
+
+        movq      $0, -64(%rsp)
+        movsd     -64(%rsp), %xmm0
+        movsd     (%rdi), %xmm1
+        movups    _zeros.173.0.0.1(%rip), %xmm2
+        subsd     %xmm0, %xmm1
+        movsd     %xmm1, -8(%rsp)
+        movups    %xmm2, -56(%rsp)
+        movups    _ones.173.0.0.1(%rip), %xmm0
+        movups    %xmm0, -40(%rsp)
+        movups    _infs.173.0.0.1(%rip), %xmm0
+        movups    %xmm0, -24(%rsp)
+        movl      -4(%rsp), %eax
+        cmpl      $2146435072, %eax
+        jae       .LBL_2_19
+        lea       -1072660480(%rax), %edx
+        cmpl      $53248, %edx
+        jae       .LBL_2_14
+        lea       -1072693232(%rax), %edx
+        cmpl      $24, %edx
+        jae       .LBL_2_13
+        movl      -8(%rsp), %edi
+        movl      %eax, %ecx
+        movl      %edi, %edx
+        shll      $11, %ecx
+        shrl      $21, %edx
+        orl       %edx, %ecx
+        addl      $-2147483646, %ecx
+        cmpl      $3, %ecx
+        jae       .LBL_2_12
+        addl      $-1072693248, %eax
+        orl       %edi, %eax
+        jne       .LBL_2_10
+        movq      -56(%rsp), %rax
+        movq      %rax, (%rsi)
+        jmp       .LBL_2_11
+
+.LBL_2_10:
+        movsd     -8(%rsp), %xmm0
+        movsd     16+__dlog2_la__Q3(%rip), %xmm2
+        movsd     24+__dlog2_la__Q3(%rip), %xmm1
+        addsd     -32(%rsp), %xmm0
+        mulsd     %xmm0, %xmm2
+        mulsd     %xmm0, %xmm1
+        addsd     8+__dlog2_la__Q3(%rip), %xmm2
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm0, -8(%rsp)
+        addsd     __dlog2_la__Q3(%rip), %xmm2
+        mulsd     %xmm0, %xmm2
+        addsd     %xmm1, %xmm2
+        movsd     %xmm2, (%rsi)
+
+.LBL_2_11:
+        xorl      %eax, %eax
+        ret
+
+.LBL_2_12:
+        movsd     -8(%rsp), %xmm2
+        xorl      %eax, %eax
+        movsd     16+__dlog2_la__Q2(%rip), %xmm1
+        movsd     24+__dlog2_la__Q2(%rip), %xmm3
+        addsd     -32(%rsp), %xmm2
+        movaps    %xmm2, %xmm0
+        mulsd     %xmm2, %xmm0
+        mulsd     %xmm0, %xmm1
+        mulsd     %xmm0, %xmm3
+        addsd     __dlog2_la__Q2(%rip), %xmm1
+        addsd     8+__dlog2_la__Q2(%rip), %xmm3
+        mulsd     %xmm2, %xmm1
+        mulsd     %xmm0, %xmm3
+        movsd     %xmm2, -8(%rsp)
+        addsd     %xmm1, %xmm3
+        movl      $0, -8(%rsp)
+        movsd     -8(%rsp), %xmm4
+        subsd     %xmm4, %xmm2
+        addsd     %xmm2, %xmm4
+        mulsd     32+__dlog2_la__Q2(%rip), %xmm4
+        addsd     %xmm3, %xmm4
+        movsd     %xmm4, (%rsi)
+        ret
+
+.LBL_2_13:
+        movsd     -8(%rsp), %xmm2
+        xorl      %eax, %eax
+        movsd     72+__dlog2_la__Q1(%rip), %xmm10
+        movsd     64+__dlog2_la__Q1(%rip), %xmm4
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm5
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm7
+        movsd     88+__dlog2_la__Q1(%rip), %xmm14
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm11
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm15
+        addsd     -32(%rsp), %xmm2
+        movaps    %xmm2, %xmm3
+        movaps    %xmm2, %xmm6
+        mulsd     %xmm2, %xmm3
+        movaps    %xmm2, %xmm0
+        mulsd     %xmm2, %xmm5
+        mulsd     __dlog2_la__TWO_32(%rip), %xmm6
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm3, %xmm4
+        addsd     56+__dlog2_la__Q1(%rip), %xmm10
+        addsd     48+__dlog2_la__Q1(%rip), %xmm4
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm3, %xmm4
+        addsd     40+__dlog2_la__Q1(%rip), %xmm10
+        addsd     32+__dlog2_la__Q1(%rip), %xmm4
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm3, %xmm4
+        addsd     24+__dlog2_la__Q1(%rip), %xmm10
+        addsd     16+__dlog2_la__Q1(%rip), %xmm4
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm2, %xmm4
+        movsd     __dlog2_la__TWO_32(%rip), %xmm3
+        addsd     %xmm4, %xmm10
+        mulsd     %xmm10, %xmm7
+        movaps    %xmm3, %xmm8
+        mulsd     %xmm10, %xmm8
+        movsd     %xmm5, -72(%rsp)
+        movsd     -72(%rsp), %xmm1
+        movsd     %xmm7, -72(%rsp)
+        subsd     %xmm6, %xmm1
+        movsd     -72(%rsp), %xmm9
+        subsd     %xmm1, %xmm0
+        subsd     %xmm8, %xmm9
+        movsd     %xmm1, -8(%rsp)
+        subsd     %xmm9, %xmm10
+        addsd     %xmm9, %xmm14
+        addsd     8+__dlog2_la__Q1(%rip), %xmm10
+        movaps    %xmm14, %xmm4
+        mulsd     %xmm0, %xmm4
+        mulsd     %xmm2, %xmm10
+        mulsd     %xmm1, %xmm14
+        addsd     %xmm0, %xmm1
+        addsd     %xmm10, %xmm4
+        movaps    %xmm4, %xmm12
+        movsd     80+__dlog2_la__Q1(%rip), %xmm9
+        addsd     %xmm14, %xmm12
+        mulsd     %xmm12, %xmm11
+        mulsd     %xmm3, %xmm12
+        movsd     %xmm11, -72(%rsp)
+        movsd     -72(%rsp), %xmm13
+        subsd     %xmm12, %xmm13
+        subsd     %xmm13, %xmm4
+        addsd     %xmm13, %xmm9
+        addsd     %xmm14, %xmm4
+        movaps    %xmm9, %xmm13
+        addsd     __dlog2_la__Q1(%rip), %xmm4
+        addsd     %xmm4, %xmm13
+        mulsd     %xmm13, %xmm15
+        mulsd     %xmm3, %xmm13
+        movsd     %xmm15, -72(%rsp)
+        movsd     -72(%rsp), %xmm14
+        subsd     %xmm13, %xmm14
+        mulsd     %xmm14, %xmm1
+        subsd     %xmm14, %xmm9
+        addsd     %xmm9, %xmm4
+        mulsd     %xmm2, %xmm4
+        addsd     %xmm4, %xmm1
+        movsd     %xmm1, (%rsi)
+        ret
+
+.LBL_2_14:
+        movl      %eax, %ecx
+        movl      %eax, %edx
+        shrl      $20, %ecx
+        andl      $1048575, %edx
+        addl      $-1023, %ecx
+        cmpl      $1048576, %eax
+        jae       .LBL_2_18
+        movl      %edx, -4(%rsp)
+        movl      -8(%rsp), %edx
+        orl       %edx, %eax
+        jne       .LBL_2_17
+        movsd     -32(%rsp), %xmm0
+        movl      $2, %eax
+        divsd     -56(%rsp), %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+.LBL_2_17:
+        movsd     -8(%rsp), %xmm0
+        mulsd     __dlog2_la__TWO_55(%rip), %xmm0
+        movsd     %xmm0, -8(%rsp)
+        movl      -4(%rsp), %edx
+        movl      %edx, %ecx
+        shrl      $20, %ecx
+        movl      %edx, %eax
+        addl      $-1078, %ecx
+
+.LBL_2_18:
+        shrl      $12, %eax
+        orl       $1072693248, %edx
+        movzbl    %al, %edi
+        pxor      %xmm7, %xmm7
+        movl      %edx, -4(%rsp)
+        lea       __dlog2_la___libm_rcp_table_256(%rip), %rdx
+        movsd     -8(%rsp), %xmm10
+        pxor      %xmm8, %xmm8
+        movl      $0, -8(%rsp)
+        lea       __dlog2_la___libm_log2_table_256(%rip), %rax
+        movsd     -8(%rsp), %xmm0
+        cvtss2sd  (%rdx,%rdi,4), %xmm7
+        cvtsi2sd  %ecx, %xmm8
+        subsd     %xmm0, %xmm10
+        mulsd     %xmm7, %xmm10
+        mulsd     %xmm0, %xmm7
+        movsd     40+__dlog2_la__P(%rip), %xmm4
+        movsd     32+__dlog2_la__P(%rip), %xmm3
+        movsd     48+__dlog2_la__P(%rip), %xmm5
+        movsd     __dlog2_la__TWO_32(%rip), %xmm6
+        shlq      $4, %rdi
+        addsd     -32(%rsp), %xmm7
+        movaps    %xmm7, %xmm2
+        mulsd     %xmm5, %xmm7
+        addsd     %xmm10, %xmm2
+        mulsd     %xmm5, %xmm10
+        addsd     %xmm7, %xmm6
+        movaps    %xmm2, %xmm1
+        mulsd     %xmm2, %xmm1
+        mulsd     %xmm1, %xmm4
+        mulsd     %xmm1, %xmm3
+        addsd     24+__dlog2_la__P(%rip), %xmm4
+        addsd     16+__dlog2_la__P(%rip), %xmm3
+        mulsd     %xmm1, %xmm4
+        mulsd     %xmm1, %xmm3
+        addsd     8+__dlog2_la__P(%rip), %xmm4
+        addsd     __dlog2_la__P(%rip), %xmm3
+        mulsd     %xmm1, %xmm4
+        mulsd     %xmm2, %xmm3
+        movsd     %xmm6, -72(%rsp)
+        addsd     %xmm3, %xmm4
+        addsd     8(%rax,%rdi), %xmm8
+        addsd     %xmm4, %xmm10
+        movsd     -72(%rsp), %xmm9
+        subsd     __dlog2_la__TWO_32(%rip), %xmm9
+        subsd     %xmm9, %xmm7
+        addsd     %xmm8, %xmm9
+        addsd     (%rax,%rdi), %xmm7
+        movsd     %xmm9, -8(%rsp)
+        xorl      %eax, %eax
+        addsd     %xmm7, %xmm10
+        addsd     %xmm9, %xmm10
+        movsd     %xmm10, (%rsi)
+        ret
+
+.LBL_2_19:
+        movl      %eax, %edx
+        andl      $2147483647, %edx
+        cmpl      $2146435072, %edx
+        ja        .LBL_2_28
+        jne       .LBL_2_22
+        cmpl      $0, -8(%rsp)
+        jne       .LBL_2_28
+
+.LBL_2_22:
+        testl     $-2147483648, %eax
+        je        .LBL_2_27
+        movl      -8(%rsp), %eax
+        orl       %eax, %edx
+        movsd     -56(%rsp), %xmm1
+        jne       .LBL_2_25
+        movsd     -32(%rsp), %xmm0
+        movl      $2, %eax
+        divsd     %xmm1, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+.LBL_2_25:
+        movsd     -24(%rsp), %xmm0
+        movl      $1, %eax
+        mulsd     %xmm1, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+.LBL_2_27:
+        movq      -8(%rsp), %rax
+        movq      %rax, (%rsi)
+        xorl      %eax, %eax
+        ret
+
+.LBL_2_28:
+        movsd     -8(%rsp), %xmm0
+        xorl      %eax, %eax
+        mulsd     -40(%rsp), %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_dlog2_cout_rare_internal,@function
+        .size	__svml_dlog2_cout_rare_internal,.-__svml_dlog2_cout_rare_internal
+        .section .rodata, "a"
+        .align 64
+        .align 16
+
+_zeros.173.0.0.1:
+        .long	0
+        .long	0
+        .long	0
+        .long	2147483648
+        .align 16
+
+_ones.173.0.0.1:
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	3220176896
+        .align 16
+
+_infs.173.0.0.1:
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	4293918720
+
+        .section .rodata, "a"
+        .space 16, 0x00 	
+        .align 64
+
+__svml_dlog2_data_internal:
+        .long	0
+        .long	3230658560
+        .long	0
+        .long	0
+        .long	3721504
+        .long	3230658564
+        .long	390392217
+        .long	1028833224
+        .long	4279173520
+        .long	3230658567
+        .long	3697526933
+        .long	3176772302
+        .long	4236484232
+        .long	3230658571
+        .long	3866369393
+        .long	3173573477
+        .long	4170683432
+        .long	3230658575
+        .long	2406066045
+        .long	1027614617
+        .long	4081833376
+        .long	3230658579
+        .long	872311433
+        .long	1029558987
+        .long	3969996056
+        .long	3230658583
+        .long	3455238169
+        .long	3176293652
+        .long	3835233240
+        .long	3230658587
+        .long	3122028036
+        .long	3175399406
+        .long	3677606424
+        .long	3230658591
+        .long	3775975107
+        .long	3175065502
+        .long	3497176864
+        .long	3230658595
+        .long	1120402784
+        .long	3176065974
+        .long	3294005576
+        .long	3230658599
+        .long	3607704643
+        .long	1027775251
+        .long	3068153320
+        .long	3230658603
+        .long	3174454558
+        .long	1028715334
+        .long	2819680616
+        .long	3230658607
+        .long	1714361654
+        .long	3176145083
+        .long	2548647760
+        .long	3230658611
+        .long	1446250901
+        .long	1029564267
+        .long	2255114776
+        .long	3230658615
+        .long	4080025744
+        .long	1029178975
+        .long	1939141472
+        .long	3230658619
+        .long	841987973
+        .long	1029054409
+        .long	1600787408
+        .long	3230658623
+        .long	399562616
+        .long	1024114381
+        .long	1240111912
+        .long	3230658627
+        .long	3503181124
+        .long	3176697658
+        .long	857174080
+        .long	3230658631
+        .long	1254487117
+        .long	3175371962
+        .long	452032760
+        .long	3230658635
+        .long	4205447303
+        .long	3176492920
+        .long	24746584
+        .long	3230658639
+        .long	1994290281
+        .long	1028250505
+        .long	3870341224
+        .long	3230658642
+        .long	3457675008
+        .long	3176979311
+        .long	3398940264
+        .long	3230658646
+        .long	3225497353
+        .long	3176623592
+        .long	2905568928
+        .long	3230658650
+        .long	2126923612
+        .long	1026561068
+        .long	2390284912
+        .long	3230658654
+        .long	4230405746
+        .long	3172886618
+        .long	1853145696
+        .long	3230658658
+        .long	2504030371
+        .long	3175134796
+        .long	1294208528
+        .long	3230658662
+        .long	2470849917
+        .long	3177172451
+        .long	713530440
+        .long	3230658666
+        .long	4008627283
+        .long	3176362565
+        .long	111168232
+        .long	3230658670
+        .long	3947344950
+        .long	1028309766
+        .long	3782145768
+        .long	3230658673
+        .long	3547697003
+        .long	3176800217
+        .long	3136584832
+        .long	3230658677
+        .long	2863038012
+        .long	1025769979
+        .long	2469508848
+        .long	3230658681
+        .long	4101655891
+        .long	1028623806
+        .long	1780973736
+        .long	3230658685
+        .long	180044497
+        .long	1028727134
+        .long	1071035200
+        .long	3230658689
+        .long	1240324917
+        .long	1029164642
+        .long	339748720
+        .long	3230658693
+        .long	3339205157
+        .long	3174606851
+        .long	3882136872
+        .long	3230658696
+        .long	3953461054
+        .long	1027744139
+        .long	3108320112
+        .long	3230658700
+        .long	4056294543
+        .long	1027898214
+        .long	2313320576
+        .long	3230658704
+        .long	2017978773
+        .long	3176388905
+        .long	1497192904
+        .long	3230658708
+        .long	2630318761
+        .long	3172120215
+        .long	659991504
+        .long	3230658712
+        .long	1173149442
+        .long	3176476805
+        .long	4096737888
+        .long	3230658715
+        .long	2084279151
+        .long	3176632233
+        .long	3217551464
+        .long	3230658719
+        .long	147752605
+        .long	3175187076
+        .long	2317453320
+        .long	3230658723
+        .long	3463598502
+        .long	1029004710
+        .long	1396497032
+        .long	3230658727
+        .long	348113666
+        .long	3175216077
+        .long	454735992
+        .long	3230658731
+        .long	2797541458
+        .long	3172926093
+        .long	3787190664
+        .long	3230658734
+        .long	3810950996
+        .long	3175936077
+        .long	2803979432
+        .long	3230658738
+        .long	1880742672
+        .long	3175438052
+        .long	1800122360
+        .long	3230658742
+        .long	185990116
+        .long	1025407904
+        .long	775672016
+        .long	3230658746
+        .long	3308007208
+        .long	1029438945
+        .long	4025648056
+        .long	3230658749
+        .long	3792627158
+        .long	1028183615
+        .long	2960168064
+        .long	3230658753
+        .long	2550675711
+        .long	1029174609
+        .long	1874251296
+        .long	3230658757
+        .long	522796161
+        .long	3175188745
+        .long	767949536
+        .long	3230658761
+        .long	99639657
+        .long	1028478111
+        .long	3936281640
+        .long	3230658764
+        .long	1618272739
+        .long	3176759878
+        .long	2789364408
+        .long	3230658768
+        .long	2976648779
+        .long	3177001126
+        .long	1622216320
+        .long	3230658772
+        .long	995205633
+        .long	3174119615
+        .long	434888360
+        .long	3230658776
+        .long	201851350
+        .long	3175435880
+        .long	3522398632
+        .long	3230658779
+        .long	1631082790
+        .long	1029197235
+        .long	2294863136
+        .long	3230658783
+        .long	1386753027
+        .long	3176550178
+        .long	1047299600
+        .long	3230658787
+        .long	1591070772
+        .long	3176954051
+        .long	4074725544
+        .long	3230658790
+        .long	701119861
+        .long	3176328095
+        .long	2787256416
+        .long	3230658794
+        .long	3223019512
+        .long	1028866240
+        .long	1479909352
+        .long	3230658798
+        .long	2952422582
+        .long	1024508588
+        .long	152734024
+        .long	3230658802
+        .long	288366270
+        .long	3175075539
+        .long	3100747208
+        .long	3230658805
+        .long	1494938379
+        .long	1027731037
+        .long	1734063600
+        .long	3230658809
+        .long	1796105868
+        .long	1028158292
+        .long	347699608
+        .long	3230658813
+        .long	2172100889
+        .long	1029347730
+        .long	3236671448
+        .long	3230658816
+        .long	321576108
+        .long	1027051181
+        .long	1811093280
+        .long	3230658820
+        .long	3159981384
+        .long	1028760888
+        .long	365980952
+        .long	3230658824
+        .long	4083088766
+        .long	3176402658
+        .long	3196350152
+        .long	3230658827
+        .long	1966791372
+        .long	3176779668
+        .long	1712314488
+        .long	3230658831
+        .long	3599116437
+        .long	3176268195
+        .long	208889280
+        .long	3230658835
+        .long	3498192131
+        .long	1027096101
+        .long	2981089664
+        .long	3230658838
+        .long	3152711547
+        .long	3171644297
+        .long	1439028720
+        .long	3230658842
+        .long	142239255
+        .long	3176002168
+        .long	4172688536
+        .long	3230658845
+        .long	2394955302
+        .long	3175668459
+        .long	2592181840
+        .long	3230658849
+        .long	772412634
+        .long	1029163313
+        .long	992523056
+        .long	3230658853
+        .long	239947902
+        .long	3177123772
+        .long	3668726472
+        .long	3230658856
+        .long	3993011847
+        .long	3173133053
+        .long	2030904280
+        .long	3230658860
+        .long	1203564427
+        .long	1024968471
+        .long	374070408
+        .long	3230658864
+        .long	3495014224
+        .long	1029532111
+        .long	2993238600
+        .long	3230658867
+        .long	1693008698
+        .long	1029300208
+        .long	1298520552
+        .long	3230658871
+        .long	229843979
+        .long	1028616611
+        .long	3879896968
+        .long	3230658874
+        .long	2840741382
+        .long	3177076399
+        .long	2147479216
+        .long	3230658878
+        .long	1315931416
+        .long	3175394520
+        .long	396280360
+        .long	3230658882
+        .long	2917523745
+        .long	3176241221
+        .long	2921313312
+        .long	3230658885
+        .long	954068080
+        .long	3176872778
+        .long	1132688928
+        .long	3230658889
+        .long	1539389383
+        .long	3177096379
+        .long	3620387088
+        .long	3230658892
+        .long	3213801166
+        .long	1029050611
+        .long	1794518304
+        .long	3230658896
+        .long	224494799
+        .long	1029157143
+        .long	4245062128
+        .long	3230658899
+        .long	2292409870
+        .long	1029149094
+        .long	2382128760
+        .long	3230658903
+        .long	4172000302
+        .long	1029521900
+        .long	500730120
+        .long	3230658907
+        .long	1566889331
+        .long	1022410137
+        .long	2895877976
+        .long	3230658910
+        .long	3447287041
+        .long	3177068115
+        .long	977682048
+        .long	3230658914
+        .long	6222552
+        .long	3176756595
+        .long	3336121072
+        .long	3230658917
+        .long	3594755137
+        .long	3176063522
+        .long	1381304448
+        .long	3230658921
+        .long	1172789584
+        .long	1029247928
+        .long	3703210584
+        .long	3230658924
+        .long	2721646462
+        .long	3176500859
+        .long	1711948584
+        .long	3230658928
+        .long	1244442214
+        .long	1029312023
+        .long	3997496536
+        .long	3230658931
+        .long	272480018
+        .long	1025685723
+        .long	1969963224
+        .long	3230658935
+        .long	1208505284
+        .long	1029490192
+        .long	4219326432
+        .long	3230658938
+        .long	3360578575
+        .long	3174058635
+        .long	2155694632
+        .long	3230658942
+        .long	2245681021
+        .long	1026963921
+        .long	74078008
+        .long	3230658946
+        .long	3496835215
+        .long	3176351493
+        .long	2269486608
+        .long	3230658949
+        .long	2995409405
+        .long	3176402213
+        .long	152028432
+        .long	3230658953
+        .long	2946959370
+        .long	3171080196
+        .long	2311680512
+        .long	3230658956
+        .long	811079866
+        .long	1029646941
+        .long	158550536
+        .long	3230658960
+        .long	2634400740
+        .long	3174719534
+        .long	2282615248
+        .long	3230658963
+        .long	3704965237
+        .long	3176349039
+        .long	93982048
+        .long	3230658967
+        .long	2840134146
+        .long	1025829616
+        .long	2182627360
+        .long	3230658970
+        .long	1838738265
+        .long	3176564070
+        .long	4253625592
+        .long	3230658973
+        .long	1173390987
+        .long	3176177543
+        .long	2012050992
+        .long	3230658977
+        .long	1084871272
+        .long	3173895075
+        .long	4047879552
+        .long	3230658980
+        .long	3493007974
+        .long	1028200188
+        .long	1771217928
+        .long	3230658984
+        .long	866422899
+        .long	3176434896
+        .long	3772041832
+        .long	3230658987
+        .long	241037730
+        .long	3176289012
+        .long	1460457632
+        .long	3230658991
+        .long	1003496008
+        .long	3176406370
+        .long	3426440744
+        .long	3230658994
+        .long	2184560753
+        .long	3173354948
+        .long	1080097248
+        .long	3230658998
+        .long	4029600754
+        .long	3175828440
+        .long	3011402280
+        .long	3230659001
+        .long	2827800738
+        .long	1028558112
+        .long	630461632
+        .long	3230659005
+        .long	1669381205
+        .long	1027303067
+        .long	2527250152
+        .long	3230659008
+        .long	1507135636
+        .long	3175470401
+        .long	111873368
+        .long	3230659012
+        .long	4290552909
+        .long	1029305988
+        .long	1974305832
+        .long	3230659015
+        .long	491815833
+        .long	1028930331
+        .long	3819620088
+        .long	3230659018
+        .long	974322798
+        .long	1029451925
+        .long	1352888528
+        .long	3230659022
+        .long	1335536991
+        .long	3172426672
+        .long	3164085312
+        .long	3230659025
+        .long	2773436098
+        .long	1029127279
+        .long	663315256
+        .long	3230659029
+        .long	2684187733
+        .long	1028181243
+        .long	2440552240
+        .long	3230659032
+        .long	2161571790
+        .long	1027765615
+        .long	4200868112
+        .long	3230659035
+        .long	3277047205
+        .long	3174837243
+        .long	1649334592
+        .long	3230659039
+        .long	4124850187
+        .long	1025335396
+        .long	3375925144
+        .long	3230659042
+        .long	3003584975
+        .long	1021519814
+        .long	790743920
+        .long	3230659046
+        .long	1415914940
+        .long	1024723625
+        .long	2483764120
+        .long	3230659049
+        .long	1136793699
+        .long	3172319743
+        .long	4160056928
+        .long	3230659052
+        .long	2148664472
+        .long	1029245862
+        .long	1524693384
+        .long	3230659056
+        .long	3056467792
+        .long	1028886726
+        .long	3167646296
+        .long	3230659059
+        .long	142099839
+        .long	1028497609
+        .long	499019152
+        .long	3230659063
+        .long	3699751308
+        .long	1026582910
+        .long	2108784496
+        .long	3230659066
+        .long	2287012473
+        .long	1023727633
+        .long	3702012848
+        .long	3230659069
+        .long	2554126940
+        .long	3177131484
+        .long	983774616
+        .long	3230659073
+        .long	263088196
+        .long	1028047407
+        .long	2544041936
+        .long	3230659076
+        .long	1900821763
+        .long	3176347035
+        .long	4087884960
+        .long	3230659079
+        .long	1428486283
+        .long	3175804842
+        .long	1320373696
+        .long	3230659083
+        .long	1249103901
+        .long	1027194698
+        .long	2831479912
+        .long	3230659086
+        .long	4024111846
+        .long	1027875195
+        .long	31306072
+        .long	3230659090
+        .long	2178201336
+        .long	1028790706
+        .long	1509823688
+        .long	3230659093
+        .long	863228784
+        .long	3177069330
+        .long	2972102280
+        .long	3230659096
+        .long	2800600011
+        .long	3176772901
+        .long	123211224
+        .long	3230659100
+        .long	2000143580
+        .long	3175827790
+        .long	1553121664
+        .long	3230659103
+        .long	3598597716
+        .long	3174664631
+        .long	2966902736
+        .long	3230659106
+        .long	160093135
+        .long	1028156559
+        .long	69623448
+        .long	3230659110
+        .long	1838028210
+        .long	1028805781
+        .long	1451254576
+        .long	3230659113
+        .long	171321689
+        .long	1027544179
+        .long	2816864888
+        .long	3230659116
+        .long	48443041
+        .long	3175147757
+        .long	4166490328
+        .long	3230659119
+        .long	2602435169
+        .long	3175152427
+        .long	1205199416
+        .long	3230659123
+        .long	3778841539
+        .long	3176922801
+        .long	2522962456
+        .long	3230659126
+        .long	69075835
+        .long	1029409055
+        .long	3824847712
+        .long	3230659129
+        .long	660089785
+        .long	3174442320
+        .long	815923368
+        .long	3230659133
+        .long	2460308321
+        .long	1029094234
+        .long	2086159344
+        .long	3230659136
+        .long	3024187972
+        .long	3174141999
+        .long	3340623576
+        .long	3230659139
+        .long	1011494086
+        .long	3176827516
+        .long	284383880
+        .long	3230659143
+        .long	3868463126
+        .long	3173236251
+        .long	1507409832
+        .long	3230659146
+        .long	4210695494
+        .long	1029032026
+        .long	2714769000
+        .long	3230659149
+        .long	2695744497
+        .long	3176876805
+        .long	3906496160
+        .long	3230659152
+        .long	343340875
+        .long	1024675097
+        .long	787658648
+        .long	3230659156
+        .long	2519963105
+        .long	1029601486
+        .long	1948225576
+        .long	3230659159
+        .long	2834660375
+        .long	1027576345
+        .long	3093264072
+        .long	3230659162
+        .long	1202481435
+        .long	1029504111
+        .long	4222808424
+        .long	3230659165
+        .long	548784753
+        .long	1028305847
+        .long	1041925528
+        .long	3230659169
+        .long	2583607066
+        .long	1028957355
+        .long	2140584040
+        .long	3230659172
+        .long	2642007844
+        .long	3175275174
+        .long	3223850632
+        .long	3230659175
+        .long	352423749
+        .long	3174321553
+        .long	4291759144
+        .long	3230659178
+        .long	339552960
+        .long	3176556350
+        .long	1049376024
+        .long	3230659182
+        .long	2660353592
+        .long	1027255432
+        .long	2086669480
+        .long	3230659185
+        .long	1104152295
+        .long	1028453979
+        .long	3108705728
+        .long	3230659188
+        .long	540614262
+        .long	3175907859
+        .long	4115518184
+        .long	3230659191
+        .long	3806184097
+        .long	1028762582
+        .long	812172832
+        .long	3230659195
+        .long	308602627
+        .long	3173981149
+        .long	1788637456
+        .long	3230659198
+        .long	1325608725
+        .long	3176678267
+        .long	2749977840
+        .long	3230659201
+        .long	990288509
+        .long	3176107526
+        .long	3696226952
+        .long	3230659204
+        .long	1916429866
+        .long	1028814544
+        .long	332450344
+        .long	3230659208
+        .long	3336107755
+        .long	3176608247
+        .long	1248615376
+        .long	3230659211
+        .long	4035119084
+        .long	3176707463
+        .long	2149787400
+        .long	3230659214
+        .long	2050304943
+        .long	1029173658
+        .long	3035998944
+        .long	3230659217
+        .long	2951948176
+        .long	1029115289
+        .long	3907282448
+        .long	3230659220
+        .long	2907658715
+        .long	1028586234
+        .long	468702944
+        .long	3230659224
+        .long	674698596
+        .long	3175213847
+        .long	1310227256
+        .long	3230659227
+        .long	3034611927
+        .long	1027966053
+        .long	2136920200
+        .long	3230659230
+        .long	2687871008
+        .long	1028041908
+        .long	2948813792
+        .long	3230659233
+        .long	596497875
+        .long	3174693992
+        .long	3745939952
+        .long	3230659236
+        .long	3329560030
+        .long	1028812176
+        .long	233363184
+        .long	3230659240
+        .long	1501722877
+        .long	1028149340
+        .long	1001049792
+        .long	3230659243
+        .long	3907078376
+        .long	1028788204
+        .long	1754064080
+        .long	3230659246
+        .long	946102851
+        .long	1024784319
+        .long	2492437552
+        .long	3230659249
+        .long	2477139935
+        .long	3176834550
+        .long	3216201616
+        .long	3230659252
+        .long	3861383265
+        .long	3175556568
+        .long	3925387568
+        .long	3230659255
+        .long	1708411866
+        .long	1028140551
+        .long	325059304
+        .long	3230659259
+        .long	1571249374
+        .long	3176283508
+        .long	1005182528
+        .long	3230659262
+        .long	1100083059
+        .long	3174229259
+        .long	1670820936
+        .long	3230659265
+        .long	3756028850
+        .long	3175680086
+        .long	2322005432
+        .long	3230659268
+        .long	1631050573
+        .long	3176213330
+        .long	2958766824
+        .long	3230659271
+        .long	1907582341
+        .long	1029438684
+        .long	3581135800
+        .long	3230659274
+        .long	2950542199
+        .long	3173786866
+        .long	4189142976
+        .long	3230659277
+        .long	114954998
+        .long	3177096717
+        .long	487851568
+        .long	3230659281
+        .long	2653253061
+        .long	3176673071
+        .long	1067226576
+        .long	3230659284
+        .long	1766996068
+        .long	3175354818
+        .long	1632331016
+        .long	3230659287
+        .long	3950907539
+        .long	3175157886
+        .long	2183195112
+        .long	3230659290
+        .long	2440105690
+        .long	1029327524
+        .long	2719848976
+        .long	3230659293
+        .long	341115768
+        .long	1028056330
+        .long	3242322640
+        .long	3230659296
+        .long	3179572713
+        .long	3175645667
+        .long	3750646040
+        .long	3230659299
+        .long	935147933
+        .long	3175536948
+        .long	4244849008
+        .long	3230659302
+        .long	3916511820
+        .long	3176877809
+        .long	429994000
+        .long	3230659306
+        .long	3978671087
+        .long	1028263473
+        .long	896045240
+        .long	3230659309
+        .long	230228243
+        .long	3176823382
+        .long	1348065008
+        .long	3230659312
+        .long	1603302089
+        .long	1028781499
+        .long	1786082752
+        .long	3230659315
+        .long	1397794181
+        .long	1029625122
+        .long	2210127840
+        .long	3230659318
+        .long	3655812571
+        .long	3172766563
+        .long	2620229560
+        .long	3230659321
+        .long	2385997325
+        .long	1026727032
+        .long	3016417088
+        .long	3230659324
+        .long	697404896
+        .long	3176786781
+        .long	3398719528
+        .long	3230659327
+        .long	3231162475
+        .long	3175777962
+        .long	3767165880
+        .long	3230659330
+        .long	2548610257
+        .long	1028922412
+        .long	4121785048
+        .long	3230659333
+        .long	3962667547
+        .long	1027852637
+        .long	167638560
+        .long	3230659337
+        .long	3554092856
+        .long	3176729278
+        .long	494689752
+        .long	3230659340
+        .long	2911955219
+        .long	1028435709
+        .long	807999952
+        .long	3230659343
+        .long	3789336944
+        .long	3176103637
+        .long	1107597728
+        .long	3230659346
+        .long	3750507527
+        .long	1027365134
+        .long	1393511536
+        .long	3230659349
+        .long	1827158241
+        .long	1028945876
+        .long	1665769752
+        .long	3230659352
+        .long	3306289784
+        .long	1029589760
+        .long	1924400656
+        .long	3230659355
+        .long	1510741592
+        .long	3176411966
+        .long	2169432464
+        .long	3230659358
+        .long	2294259978
+        .long	1025847307
+        .long	2400893272
+        .long	3230659361
+        .long	539270871
+        .long	3176922069
+        .long	2618811120
+        .long	3230659364
+        .long	3685107127
+        .long	1027828508
+        .long	2823213928
+        .long	3230659367
+        .long	3271061162
+        .long	3176969831
+        .long	3014129568
+        .long	3230659370
+        .long	1787956575
+        .long	1028863184
+        .long	3191585784
+        .long	3230659373
+        .long	716587587
+        .long	3176400736
+        .long	3355610272
+        .long	3230659376
+        .long	2630361878
+        .long	3176313132
+        .long	3506230624
+        .long	3230659379
+        .long	3623957067
+        .long	1024822653
+        .long	3643474344
+        .long	3230659382
+        .long	3940980068
+        .long	3174610269
+        .long	3767368864
+        .long	3230659385
+        .long	499400003
+        .long	1028297429
+        .long	3877941520
+        .long	3230659388
+        .long	3143491592
+        .long	1028937135
+        .long	3975219568
+        .long	3230659391
+        .long	1265600507
+        .long	1027302761
+        .long	4059230184
+        .long	3230659394
+        .long	3423756523
+        .long	3174759308
+        .long	4130000464
+        .long	3230659397
+        .long	2126977913
+        .long	1029294479
+        .long	4187557400
+        .long	3230659400
+        .long	1341359213
+        .long	3176282153
+        .long	4231927936
+        .long	3230659403
+        .long	142327675
+        .long	1028516775
+        .long	4263138896
+        .long	3230659406
+        .long	3537045733
+        .long	3176611365
+        .long	4281217056
+        .long	3230659409
+        .long	804943611
+        .long	3175398448
+        .long	4286189088
+        .long	3230659412
+        .long	2300440576
+        .long	3173821797
+        .long	4278081592
+        .long	3230659415
+        .long	650140298
+        .long	1028345827
+        .long	4256921080
+        .long	3230659418
+        .long	258434203
+        .long	1024439656
+        .long	4222733992
+        .long	3230659421
+        .long	2845277783
+        .long	3175806217
+        .long	4175546688
+        .long	3230659424
+        .long	486214358
+        .long	1021995298
+        .long	4115385440
+        .long	3230659427
+        .long	362801877
+        .long	1027412332
+        .long	4042276440
+        .long	3230659430
+        .long	3220639070
+        .long	3177080040
+        .long	3956245816
+        .long	3230659433
+        .long	3857709974
+        .long	3176973100
+        .long	3857319608
+        .long	3230659436
+        .long	300219354
+        .long	1029159912
+        .long	3745523760
+        .long	3230659439
+        .long	2500015736
+        .long	3170135365
+        .long	3620884168
+        .long	3230659442
+        .long	3361192444
+        .long	1028410302
+        .long	3483426624
+        .long	3230659445
+        .long	962673197
+        .long	3176780787
+        .long	3333176872
+        .long	3230659448
+        .long	466308644
+        .long	1029193870
+        .long	3170160544
+        .long	3230659451
+        .long	1036576323
+        .long	1029692281
+        .long	2994403208
+        .long	3230659454
+        .long	1262493470
+        .long	3177123208
+        .long	2805930376
+        .long	3230659457
+        .long	2116833460
+        .long	3176824531
+        .long	2604767464
+        .long	3230659460
+        .long	4130386607
+        .long	1029379265
+        .long	2390939800
+        .long	3230659463
+        .long	3203410687
+        .long	1028676250
+        .long	2164472656
+        .long	3230659466
+        .long	1369952708
+        .long	3175783357
+        .long	1925391232
+        .long	3230659469
+        .long	879032334
+        .long	1028096866
+        .long	1673720632
+        .long	3230659472
+        .long	4136287431
+        .long	3171822968
+        .long	1409485904
+        .long	3230659475
+        .long	1676116683
+        .long	1027498055
+        .long	1132712008
+        .long	3230659478
+        .long	2215341913
+        .long	3175421168
+        .long	843423840
+        .long	3230659481
+        .long	1029715364
+        .long	3176433781
+        .long	541646224
+        .long	3230659484
+        .long	2606758269
+        .long	1029491721
+        .long	227403888
+        .long	3230659487
+        .long	2201115753
+        .long	1027951322
+        .long	4195688808
+        .long	3230659489
+        .long	4218769073
+        .long	1025395495
+        .long	3856590992
+        .long	3230659492
+        .long	434820483
+        .long	1029228152
+        .long	3505102248
+        .long	3230659495
+        .long	3898434635
+        .long	3176361218
+        .long	3141247048
+        .long	3230659498
+        .long	3118973316
+        .long	1029656842
+        .long	2765049752
+        .long	3230659501
+        .long	2996229621
+        .long	1029012421
+        .long	2376534672
+        .long	3230659504
+        .long	2407486153
+        .long	3175647547
+        .long	1975726056
+        .long	3230659507
+        .long	2587350529
+        .long	1029480630
+        .long	1562648048
+        .long	3230659510
+        .long	4294469746
+        .long	3176242263
+        .long	1137324760
+        .long	3230659513
+        .long	3819488195
+        .long	1023708576
+        .long	699780200
+        .long	3230659516
+        .long	116131792
+        .long	3177042014
+        .long	250038336
+        .long	3230659519
+        .long	1551898075
+        .long	1029096746
+        .long	4083090328
+        .long	3230659521
+        .long	2844986349
+        .long	1028973019
+        .long	3609025400
+        .long	3230659524
+        .long	2591634103
+        .long	1026318183
+        .long	3122834592
+        .long	3230659527
+        .long	2325851864
+        .long	3175053154
+        .long	2114169952
+        .long	3230659533
+        .long	790463889
+        .long	3176974498
+        .long	1057284960
+        .long	3230659539
+        .long	1675706223
+        .long	1028317332
+        .long	4247334344
+        .long	3230659544
+        .long	4226562338
+        .long	1027765102
+        .long	3094569872
+        .long	3230659550
+        .long	2366937865
+        .long	3168809551
+        .long	1894144112
+        .long	3230659556
+        .long	1267587328
+        .long	3176269982
+        .long	646241264
+        .long	3230659562
+        .long	1575621247
+        .long	3177156253
+        .long	3646011760
+        .long	3230659567
+        .long	2645567153
+        .long	3175833815
+        .long	2303703080
+        .long	3230659573
+        .long	1827286098
+        .long	1027997469
+        .long	914463544
+        .long	3230659579
+        .long	752350642
+        .long	1029527042
+        .long	3773440424
+        .long	3230659584
+        .long	160463655
+        .long	3176715839
+        .long	2290878096
+        .long	3230659590
+        .long	909081824
+        .long	3175933674
+        .long	761921776
+        .long	3230659596
+        .long	2905535403
+        .long	1028759497
+        .long	3481715656
+        .long	3230659601
+        .long	3887423264
+        .long	3176529033
+        .long	1860501056
+        .long	3230659607
+        .long	2811353534
+        .long	3176342172
+        .long	193420168
+        .long	3230659613
+        .long	3875218385
+        .long	1029601075
+        .long	2775614176
+        .long	3230659618
+        .long	915846711
+        .long	1029206337
+        .long	1017321408
+        .long	3230659624
+        .long	2817823673
+        .long	1028329866
+        .long	3508648392
+        .long	3230659629
+        .long	2457221968
+        .long	1028382518
+        .long	1659831496
+        .long	3230659635
+        .long	1953946979
+        .long	1028155361
+        .long	4060975304
+        .long	3230659640
+        .long	1103591667
+        .long	3177007543
+        .long	2122314280
+        .long	3230659646
+        .long	1917780451
+        .long	1029286965
+        .long	138983784
+        .long	3230659652
+        .long	3695788845
+        .long	3176288716
+        .long	2406118280
+        .long	3230659657
+        .long	1052548871
+        .long	1029099285
+        .long	333949368
+        .long	3230659663
+        .long	1769629084
+        .long	1028668282
+        .long	2512576920
+        .long	3230659668
+        .long	2829899890
+        .long	3177160765
+        .long	352230712
+        .long	3230659674
+        .long	190593276
+        .long	3177082107
+        .long	2443008776
+        .long	3230659679
+        .long	308933071
+        .long	1028033311
+        .long	195139040
+        .long	3230659685
+        .long	2406662387
+        .long	3174119994
+        .long	2198717736
+        .long	3230659690
+        .long	3951897556
+        .long	1025531185
+        .long	4158938296
+        .long	3230659695
+        .long	3747433104
+        .long	3176582029
+        .long	1780993280
+        .long	3230659701
+        .long	1185733823
+        .long	1025977389
+        .long	3654976232
+        .long	3230659706
+        .long	2876938397
+        .long	3175696111
+        .long	1191110656
+        .long	3230659712
+        .long	1221563196
+        .long	3173251774
+        .long	2979488360
+        .long	3230659717
+        .long	2581073785
+        .long	1028588464
+        .long	430331104
+        .long	3230659723
+        .long	1522002357
+        .long	1028645059
+        .long	2133728976
+        .long	3230659728
+        .long	1060437513
+        .long	3176445060
+        .long	3794869336
+        .long	3230659733
+        .long	1092840036
+        .long	3177052773
+        .long	1118938696
+        .long	3230659739
+        .long	2353106107
+        .long	1029111084
+        .long	2696024600
+        .long	3230659744
+        .long	4060627338
+        .long	1029597310
+        .long	4231311888
+        .long	3230659749
+        .long	3779876129
+        .long	1028286236
+        .long	1429984576
+        .long	3230659755
+        .long	48483734
+        .long	1027710210
+        .long	2882127744
+        .long	3230659760
+        .long	445208449
+        .long	1029139348
+        .long	4292923760
+        .long	3230659765
+        .long	2295142960
+        .long	3176049005
+        .long	1367554208
+        .long	3230659771
+        .long	1540635558
+        .long	1028483904
+        .long	2696101728
+        .long	3230659776
+        .long	352999095
+        .long	3169858434
+        .long	3983746296
+        .long	3230659781
+        .long	1810565431
+        .long	3175091705
+        .long	935667088
+        .long	3230659787
+        .long	349039573
+        .long	3176928791
+        .long	2141944392
+        .long	3230659792
+        .long	3659173497
+        .long	3174252174
+        .long	3307755816
+        .long	3230659797
+        .long	58840479
+        .long	1028893602
+        .long	138278192
+        .long	3230659803
+        .long	2062870396
+        .long	3175475632
+        .long	1223589488
+        .long	3230659808
+        .long	3079310401
+        .long	3176348925
+        .long	2268865008
+        .long	3230659813
+        .long	4107437042
+        .long	3177028487
+        .long	3274246600
+        .long	3230659818
+        .long	3740178426
+        .long	3176375927
+        .long	4239875352
+        .long	3230659823
+        .long	1575862792
+        .long	3176856991
+        .long	870924320
+        .long	3230659829
+        .long	1293986679
+        .long	1021959545
+        .long	1757467688
+        .long	3230659834
+        .long	1268894705
+        .long	3177114344
+        .long	2604677040
+        .long	3230659839
+        .long	1483899592
+        .long	3176088657
+        .long	3412690504
+        .long	3230659844
+        .long	1351083799
+        .long	3175751585
+        .long	4181645488
+        .long	3230659849
+        .long	1119433498
+        .long	3177131776
+        .long	616711392
+        .long	3230659855
+        .long	4175979329
+        .long	3173786505
+        .long	1307958768
+        .long	3230659860
+        .long	2068378112
+        .long	3176493003
+        .long	1960555592
+        .long	3230659865
+        .long	178688056
+        .long	1027848710
+        .long	2574636408
+        .long	3230659870
+        .long	2359427625
+        .long	1028095731
+        .long	3150335072
+        .long	3230659875
+        .long	446961290
+        .long	1028242607
+        .long	3687784736
+        .long	3230659880
+        .long	2606786686
+        .long	3176252768
+        .long	4187117872
+        .long	3230659885
+        .long	147991783
+        .long	3176229143
+        .long	353498960
+        .long	3230659891
+        .long	2565649361
+        .long	1026609244
+        .long	776993680
+        .long	3230659896
+        .long	91083332
+        .long	3175234267
+        .long	1162765160
+        .long	3230659901
+        .long	1883429456
+        .long	3174458208
+        .long	1510943144
+        .long	3230659906
+        .long	1013024678
+        .long	1027761501
+        .long	1821656704
+        .long	3230659911
+        .long	2329976096
+        .long	3171060885
+        .long	2095034256
+        .long	3230659916
+        .long	393569875
+        .long	3175313071
+        .long	2331203560
+        .long	3230659921
+        .long	3866070308
+        .long	1029684158
+        .long	2530291696
+        .long	3230659926
+        .long	2303293568
+        .long	3177026483
+        .long	2692425136
+        .long	3230659931
+        .long	4151833399
+        .long	3175350159
+        .long	2817729672
+        .long	3230659936
+        .long	65831588
+        .long	3170064008
+        .long	2906330464
+        .long	3230659941
+        .long	3126642666
+        .long	3176187966
+        .long	2958352048
+        .long	3230659946
+        .long	1091895479
+        .long	1029434562
+        .long	2973918296
+        .long	3230659951
+        .long	1341819779
+        .long	3177032854
+        .long	2953152496
+        .long	3230659956
+        .long	3431130783
+        .long	1025344246
+        .long	2896177272
+        .long	3230659961
+        .long	222319660
+        .long	3174332028
+        .long	2803114648
+        .long	3230659966
+        .long	2574176974
+        .long	3176321678
+        .long	2674086032
+        .long	3230659971
+        .long	3543599213
+        .long	3175295621
+        .long	2509212216
+        .long	3230659976
+        .long	3961571325
+        .long	1028729606
+        .long	2308613376
+        .long	3230659981
+        .long	1968562443
+        .long	3175604756
+        .long	2072409104
+        .long	3230659986
+        .long	169553949
+        .long	3175973960
+        .long	1800718384
+        .long	3230659991
+        .long	1866092989
+        .long	1029054996
+        .long	1493659592
+        .long	3230659996
+        .long	3321480082
+        .long	1028052101
+        .long	1151350528
+        .long	3230660001
+        .long	1162474749
+        .long	3175441009
+        .long	773908408
+        .long	3230660006
+        .long	2117491299
+        .long	1028922038
+        .long	361449840
+        .long	3230660011
+        .long	1720394601
+        .long	3176859733
+        .long	4209058184
+        .long	3230660015
+        .long	3270331864
+        .long	1026022939
+        .long	3726914304
+        .long	3230660020
+        .long	761189460
+        .long	1027666521
+        .long	3210100392
+        .long	3230660025
+        .long	3128639134
+        .long	3176063736
+        .long	2658730784
+        .long	3230660030
+        .long	861675876
+        .long	3174834708
+        .long	2072919240
+        .long	3230660035
+        .long	598417369
+        .long	1026585686
+        .long	1452778960
+        .long	3230660040
+        .long	2969558584
+        .long	3174198415
+        .long	798422592
+        .long	3230660045
+        .long	1955836092
+        .long	3175908135
+        .long	109962232
+        .long	3230660050
+        .long	1441195450
+        .long	1027193622
+        .long	3682476712
+        .long	3230660054
+        .long	3027916121
+        .long	1027617136
+        .long	2926142440
+        .long	3230660059
+        .long	4058891045
+        .long	1029177821
+        .long	2136037160
+        .long	3230660064
+        .long	3295666276
+        .long	1028335364
+        .long	1312270792
+        .long	3230660069
+        .long	2664877443
+        .long	1029314281
+        .long	454952704
+        .long	3230660074
+        .long	2887304751
+        .long	3176354723
+        .long	3859159056
+        .long	3230660078
+        .long	3247043098
+        .long	1029078121
+        .long	2935063552
+        .long	3230660083
+        .long	551596274
+        .long	3176193330
+        .long	1977741296
+        .long	3230660088
+        .long	2154007986
+        .long	3174741581
+        .long	987299552
+        .long	3230660093
+        .long	1133524394
+        .long	1027524435
+        .long	4258812360
+        .long	3230660097
+        .long	1600085620
+        .long	3177058369
+        .long	3202451376
+        .long	3230660102
+        .long	2333163438
+        .long	3176526084
+        .long	2113289616
+        .long	3230660107
+        .long	276039368
+        .long	1025414372
+        .long	991432288
+        .long	3230660112
+        .long	3502468789
+        .long	3176017589
+        .long	4131951408
+        .long	3230660116
+        .long	1901031578
+        .long	1027861596
+        .long	2945016584
+        .long	3230660121
+        .long	1505110536
+        .long	1028759236
+        .long	1725698816
+        .long	3230660126
+        .long	2648053277
+        .long	3176895440
+        .long	474101336
+        .long	3230660131
+        .long	1239242430
+        .long	1029534392
+        .long	3485294136
+        .long	3230660135
+        .long	845517171
+        .long	3173477246
+        .long	2169444872
+        .long	3230660140
+        .long	4075267769
+        .long	1028643096
+        .long	821622576
+        .long	3230660145
+        .long	499928215
+        .long	1029048762
+        .long	3736895800
+        .long	3230660149
+        .long	870045772
+        .long	3176516274
+        .long	2325430744
+        .long	3230660154
+        .long	3081415625
+        .long	3176560522
+        .long	882295008
+        .long	3230660159
+        .long	3662267248
+        .long	1029384081
+        .long	3702555704
+        .long	3230660163
+        .long	4011089820
+        .long	1029189731
+        .long	2196377600
+        .long	3230660168
+        .long	2872532918
+        .long	3175632540
+        .long	658826888
+        .long	3230660173
+        .long	2512614570
+        .long	3176940300
+        .long	3384969288
+        .long	3230660177
+        .long	2018053043
+        .long	3176636781
+        .long	1784968168
+        .long	3230660182
+        .long	927902188
+        .long	3175374192
+        .long	153888328
+        .long	3230660187
+        .long	338402635
+        .long	1029478185
+        .long	2786794096
+        .long	3230660191
+        .long	2634228741
+        .long	3175787031
+        .long	1093847488
+        .long	3230660196
+        .long	13726686
+        .long	3173662371
+        .long	3665079232
+        .long	3230660200
+        .long	955232272
+        .long	1029144724
+        .long	1910650416
+        .long	3230660205
+        .long	1913213398
+        .long	3177091414
+        .long	125623600
+        .long	3230660210
+        .long	3896909877
+        .long	3176901474
+        .long	2605060880
+        .long	3230660214
+        .long	1162024003
+        .long	3171225909
+        .long	759122024
+        .long	3230660219
+        .long	101180827
+        .long	1028720107
+        .long	3177835544
+        .long	3230660223
+        .long	1119059392
+        .long	3177080184
+        .long	1271360360
+        .long	3230660228
+        .long	2533735500
+        .long	1028313476
+        .long	3629724104
+        .long	3230660232
+        .long	2461458646
+        .long	3176172399
+        .long	1663084832
+        .long	3230660237
+        .long	3468033532
+        .long	1028155452
+        .long	3961469328
+        .long	3230660241
+        .long	688573429
+        .long	3173787118
+        .long	1935034792
+        .long	3230660246
+        .long	852313808
+        .long	1029214281
+        .long	4173807160
+        .long	3230660250
+        .long	1743831019
+        .long	3176961601
+        .long	2087942800
+        .long	3230660255
+        .long	939132585
+        .long	3175339625
+        .long	4267466816
+        .long	3230660259
+        .long	804943611
+        .long	3176447024
+        .long	2122534736
+        .long	3230660264
+        .long	1216317347
+        .long	1028000177
+        .long	4243170840
+        .long	3230660268
+        .long	2936275121
+        .long	3175268569
+        .long	2039529840
+        .long	3230660273
+        .long	2537367085
+        .long	1028954723
+        .long	4101635200
+        .long	3230660277
+        .long	2494170689
+        .long	3173567976
+        .long	1839640816
+        .long	3230660282
+        .long	392206900
+        .long	3176845046
+        .long	3843569368
+        .long	3230660286
+        .long	4090462392
+        .long	1028307871
+        .long	1523573928
+        .long	3230660291
+        .long	460756979
+        .long	3176389882
+        .long	3469676392
+        .long	3230660295
+        .long	2929822293
+        .long	1029426676
+        .long	1092029040
+        .long	3230660300
+        .long	3560063032
+        .long	1027386665
+        .long	2980652976
+        .long	3230660304
+        .long	2630002021
+        .long	1029084255
+        .long	545699712
+        .long	3230660309
+        .long	3251005607
+        .long	1029513439
+        .long	2377189560
+        .long	3230660313
+        .long	2613820932
+        .long	1027076618
+        .long	4180240568
+        .long	3230660317
+        .long	2799936722
+        .long	1025378340
+        .long	1659970392
+        .long	3230660322
+        .long	3210945223
+        .long	3175522055
+        .long	3406398200
+        .long	3230660326
+        .long	2950429423
+        .long	3176973715
+        .long	829673600
+        .long	3230660331
+        .long	1432187170
+        .long	3177113229
+        .long	2519815008
+        .long	3230660335
+        .long	3601043748
+        .long	3172224737
+        .long	4181938568
+        .long	3230660339
+        .long	814468389
+        .long	3175150283
+        .long	1521160064
+        .long	3230660344
+        .long	3976767292
+        .long	3177175436
+        .long	3127496808
+        .long	3230660348
+        .long	2716501510
+        .long	1028977394
+        .long	411096528
+        .long	3230660353
+        .long	878128567
+        .long	3176628610
+        .long	1961975816
+        .long	3230660357
+        .long	2184878723
+        .long	1028801182
+        .long	3485248976
+        .long	3230660361
+        .long	3145811820
+        .long	1029533129
+        .long	686029968
+        .long	3230660366
+        .long	3776363698
+        .long	1029165449
+        .long	2154334280
+        .long	3230660370
+        .long	671743341
+        .long	1024333977
+        .long	3595275160
+        .long	3230660374
+        .long	2461553818
+        .long	3174779052
+        .long	713965496
+        .long	3230660379
+        .long	2151713083
+        .long	3175993252
+        .long	2100419720
+        .long	3230660383
+        .long	3102031601
+        .long	1029232965
+        .long	3459750008
+        .long	3230660387
+        .long	4013823470
+        .long	1028620538
+        .long	497068208
+        .long	3230660392
+        .long	4248883599
+        .long	1028910528
+        .long	1802387696
+        .long	3230660396
+        .long	1846273839
+        .long	3175860934
+        .long	3080819632
+        .long	3230660400
+        .long	1848559975
+        .long	3175415033
+        .long	37474824
+        .long	3230660405
+        .long	883985798
+        .long	1029169919
+        .long	1262365616
+        .long	3230660409
+        .long	2970327261
+        .long	3175919327
+        .long	2460602152
+        .long	3230660413
+        .long	2212867178
+        .long	3176520464
+        .long	3632261520
+        .long	3230660417
+        .long	3872739030
+        .long	3176664707
+        .long	482453184
+        .long	3230660422
+        .long	1041960122
+        .long	1024886984
+        .long	1601188152
+        .long	3230660426
+        .long	3362961153
+        .long	3176317848
+        .long	2693575232
+        .long	3230660430
+        .long	914600537
+        .long	3175721660
+        .long	3759690192
+        .long	3230660434
+        .long	3732031835
+        .long	1029491624
+        .long	504641160
+        .long	3230660439
+        .long	1661949843
+        .long	3176759759
+        .long	1518437864
+        .long	3230660443
+        .long	1155538621
+        .long	3176080216
+        .long	2506187792
+        .long	3230660447
+        .long	2074668130
+        .long	3176155102
+        .long	3467965424
+        .long	3230660451
+        .long	5072226
+        .long	1029678430
+        .long	108877600
+        .long	3230660456
+        .long	3844188174
+        .long	3175740294
+        .long	1018932768
+        .long	3230660460
+        .long	509804163
+        .long	1026986837
+        .long	1903237144
+        .long	3230660464
+        .long	817284140
+        .long	1028367931
+        .long	2761863936
+        .long	3230660468
+        .long	1026749811
+        .long	1028400722
+        .long	3594886040
+        .long	3230660472
+        .long	134616122
+        .long	1027302887
+        .long	107408744
+        .long	3230660477
+        .long	3388129995
+        .long	3176634073
+        .long	889438928
+        .long	3230660481
+        .long	4952363
+        .long	1026762363
+        .long	1646081256
+        .long	3230660485
+        .long	602092353
+        .long	1025334666
+        .long	2377407400
+        .long	3230660489
+        .long	870715200
+        .long	1028049234
+        .long	3083488720
+        .long	3230660493
+        .long	2898850879
+        .long	1026959461
+        .long	3764396280
+        .long	3230660497
+        .long	1041634577
+        .long	3172001824
+        .long	125233544
+        .long	3230660502
+        .long	4098260650
+        .long	3176968164
+        .long	756005576
+        .long	3230660506
+        .long	3936264397
+        .long	3176271837
+        .long	1361815248
+        .long	3230660510
+        .long	2005773894
+        .long	1029460947
+        .long	1942732416
+        .long	3230660514
+        .long	2286486375
+        .long	3177123695
+        .long	2498826688
+        .long	3230660518
+        .long	1062595601
+        .long	1029046698
+        .long	3030167328
+        .long	3230660522
+        .long	589866180
+        .long	3176077962
+        .long	3536823352
+        .long	3230660526
+        .long	1103133966
+        .long	3175759187
+        .long	4018863464
+        .long	3230660530
+        .long	1280466737
+        .long	3177138719
+        .long	181388800
+        .long	3230660535
+        .long	2008274805
+        .long	3175962957
+        .long	614402088
+        .long	3230660539
+        .long	3816723771
+        .long	1026223943
+        .long	1023003888
+        .long	3230660543
+        .long	3028155298
+        .long	1028659203
+        .long	1407261776
+        .long	3230660547
+        .long	2229630046
+        .long	1029625324
+        .long	1767243040
+        .long	3230660551
+        .long	3164503958
+        .long	3174949449
+        .long	2103014712
+        .long	3230660555
+        .long	874323935
+        .long	1029396372
+        .long	2414643512
+        .long	3230660559
+        .long	136799065
+        .long	3176242621
+        .long	2702195920
+        .long	3230660563
+        .long	3087239240
+        .long	3175416105
+        .long	2965738120
+        .long	3230660567
+        .long	3552260349
+        .long	1026854656
+        .long	3205336024
+        .long	3230660571
+        .long	628231562
+        .long	3175305872
+        .long	3421055288
+        .long	3230660575
+        .long	723080663
+        .long	1029356970
+        .long	3612961272
+        .long	3230660579
+        .long	3562572440
+        .long	3176040503
+        .long	3781119104
+        .long	3230660583
+        .long	2799655455
+        .long	1029154690
+        .long	3925593608
+        .long	3230660587
+        .long	3936971761
+        .long	1026575267
+        .long	4046449368
+        .long	3230660591
+        .long	2072414816
+        .long	3175590577
+        .long	4143750696
+        .long	3230660595
+        .long	1765517578
+        .long	3176912984
+        .long	4217561648
+        .long	3230660599
+        .long	3309795482
+        .long	1025944498
+        .long	4267946000
+        .long	3230660603
+        .long	3577983989
+        .long	3176780675
+        .long	0
+        .long	3230660608
+        .long	0
+        .long	2147483648
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	0
+        .long	4278875493
+        .long	3211202435
+        .long	1836756087
+        .long	3212249540
+        .long	2166742286
+        .long	3212919558
+        .long	3069118545
+        .long	3213295184
+        .long	2882618713
+        .long	3213670083
+        .long	396983052
+        .long	3213964849
+        .long	2254986537
+        .long	3214151575
+        .long	2244137514
+        .long	3214337942
+        .long	2001317058
+        .long	3214523951
+        .long	3129282438
+        .long	3214709603
+        .long	2901961050
+        .long	3214894900
+        .long	3574805523
+        .long	3215006929
+        .long	97153270
+        .long	3215099225
+        .long	2489866790
+        .long	3215191344
+        .long	733531480
+        .long	3215283289
+        .long	1972305287
+        .long	3215375059
+        .long	449270987
+        .long	3215466656
+        .long	3276362132
+        .long	3215558079
+        .long	369713010
+        .long	3215649331
+        .long	3104484191
+        .long	3215740410
+        .long	1365308336
+        .long	3215831319
+        .long	2201113504
+        .long	3215922057
+        .long	4175201612
+        .long	3215997608
+        .long	2678235035
+        .long	3216042808
+        .long	111107850
+        .long	3216087924
+        .long	2115197501
+        .long	3216132955
+        .long	1439478642
+        .long	3216177903
+        .long	3710382531
+        .long	3216222767
+        .long	1662048346
+        .long	3216267549
+        .long	906181559
+        .long	3216312248
+        .long	2752238835
+        .long	3216356864
+        .long	4207481622
+        .long	3216401398
+        .long	2271996550
+        .long	3216445851
+        .long	2528682625
+        .long	3216490222
+        .long	1963434183
+        .long	3216534512
+        .long	1850094427
+        .long	3216578721
+        .long	3455539314
+        .long	3216622849
+        .long	3744760980
+        .long	3216666897
+        .long	3970852583
+        .long	3216710865
+        .long	1085123514
+        .long	3216754754
+        .long	622050639
+        .long	3216798563
+        .long	3814425306
+        .long	3216842292
+        .long	3298434523
+        .long	3216885943
+        .long	293578162
+        .long	3216929516
+        .long	307749260
+        .long	3216973010
+        .long	252379301
+        .long	3217016426
+        .long	663693424
+        .long	3217045466
+        .long	2363128292
+        .long	3217067096
+        .long	1523075309
+        .long	3217088688
+        .long	3028878894
+        .long	3217110241
+        .long	3172800190
+        .long	3217131756
+        .long	2538941307
+        .long	3217153233
+        .long	1708300177
+        .long	3217174672
+        .long	1258792512
+        .long	3217196073
+        .long	1765273565
+        .long	3217217436
+        .long	3799559706
+        .long	3217238761
+        .long	3635482505
+        .long	3217260049
+        .long	1838844516
+        .long	3217281300
+        .long	3267440290
+        .long	3217302513
+        .long	4186175309
+        .long	3217323689
+        .long	857021220
+        .long	3217344829
+        .long	2423938186
+        .long	3217365931
+        .long	848124101
+        .long	3217386997
+        .long	972805768
+        .long	3217408026
+        .long	3343389647
+        .long	3217429018
+        .long	4207481622
+        .long	3217449974
+        .long	4104841180
+        .long	3217470894
+        .long	3572433535
+        .long	3217491778
+        .long	3144448886
+        .long	3217512626
+        .long	3352321503
+        .long	3217533438
+        .long	429781357
+        .long	3217554215
+        .long	3492742067
+        .long	3217574955
+        .long	179581133
+        .long	3217595661
+        .long	3895798636
+        .long	3217616330
+        .long	2274427972
+        .long	3217636965
+        .long	125726943
+        .long	3217657565
+        .long	2257326549
+        .long	3217678129
+        .long	589346923
+        .long	3217698659
+        .long	4219186077
+        .long	3217719153
+        .long	766831764
+        .long	3217739614
+        .long	3619519104
+        .long	3217760039
+        .long	392140265
+        .long	3217780431
+        .long	171901807
+        .long	3217800788
+        .long	3453570542
+        .long	3217821110
+        .long	2139490342
+        .long	3217841399
+        .long	1014435273
+        .long	3217861654
+        .long	565756928
+        .long	3217881875
+        .long	1278368112
+        .long	3217902062
+        .long	3634759079
+        .long	3217922215
+        .long	3820046351
+        .long	3217942335
+        .long	2311923285
+        .long	3217962422
+        .long	3880675917
+        .long	3217982475
+        .long	409329490
+        .long	3218002496
+        .long	958435111
+        .long	3218022483
+        .long	1701314133
+        .long	3218042437
+        .long	3103942666
+        .long	3218062358
+        .long	2814999741
+        .long	3218080995
+        .long	2722956900
+        .long	3218090923
+        .long	1505407411
+        .long	3218100835
+        .long	3685756937
+        .long	3218110730
+        .long	901390368
+        .long	3218120610
+        .long	1968450191
+        .long	3218130473
+        .long	2817072651
+        .long	3218140320
+        .long	3671264118
+        .long	3218150151
+        .long	458973606
+        .long	3218159967
+        .long	1991969023
+        .long	3218169766
+        .long	4196040400
+        .long	3218179549
+        .long	2995908720
+        .long	3218189317
+        .long	2905167410
+        .long	3218199069
+        .long	4141387283
+        .long	3218208805
+        .long	2626123321
+        .long	3218218526
+        .long	2869823290
+        .long	3218228231
+        .long	791965228
+        .long	3218237921
+        .long	900933251
+        .long	3218247595
+        .long	3409122230
+        .long	3218257253
+        .long	4232944303
+        .long	3218266896
+        .long	3582769936
+        .long	3218276524
+        .long	1667967030
+        .long	3218286137
+        .long	2991874584
+        .long	3218295734
+        .long	3466907117
+        .long	3218305316
+        .long	3299462810
+        .long	3218314883
+        .long	2694962427
+        .long	3218324435
+        .long	1857855474
+        .long	3218333972
+        .long	991626313
+        .long	3218343494
+        .long	298800229
+        .long	3218353001
+        .long	4275916740
+        .long	3218362492
+        .long	238699089
+        .long	3218371970
+        .long	1271733131
+        .long	3218381432
+        .long	3278800247
+        .long	3218390879
+        .long	2162752362
+        .long	3218400312
+        .long	2415452322
+        .long	3218409730
+        .long	4232877747
+        .long	3218419133
+        .long	3515126734
+        .long	3218428522
+        .long	456358091
+        .long	3218437897
+        .long	3839764252
+        .long	3218447256
+        .long	972805768
+        .long	3218456602
+        .long	636889785
+        .long	3218465933
+        .long	3022604462
+        .long	3218475249
+        .long	4024691694
+        .long	3218484551
+        .long	3831987111
+        .long	3218493839
+        .long	2632458130
+        .long	3218503113
+        .long	613209272
+        .long	3218512373
+        .long	2255454733
+        .long	3218521618
+        .long	3449621726
+        .long	3218530849
+        .long	85290269
+        .long	3218540067
+        .long	936100227
+        .long	3218549270
+        .long	1889952648
+        .long	3218558459
+        .long	3128884028
+        .long	3218567634
+        .long	539136753
+        .long	3218576796
+        .long	2891033284
+        .long	3218585943
+        .long	1774210047
+        .long	3218595077
+        .long	1662393428
+        .long	3218604197
+        .long	2733535479
+        .long	3218613303
+        .long	869818766
+        .long	3218622396
+        .long	542563073
+        .long	3218631475
+        .long	1927328294
+        .long	3218640540
+        .long	903919170
+        .long	3218649592
+        .long	1941291890
+        .long	3218658630
+        .long	917689576
+        .long	3218667655
+        .long	2300516105
+        .long	3218676666
+        .long	1966471527
+        .long	3218685664
+        .long	86458524
+        .long	3218694649
+        .long	1125586940
+        .long	3218703620
+        .long	958276399
+        .long	3218712578
+        .long	4048129956
+        .long	3218721522
+        .long	1973102048
+        .long	3218730454
+        .long	3490273972
+        .long	3218739372
+        .long	176119889
+        .long	3218748278
+        .long	786249521
+        .long	3218757170
+        .long	1190641396
+        .long	3218766049
+        .long	1553516298
+        .long	3218774915
+        .long	2038374217
+        .long	3218783768
+        .long	2807998562
+        .long	3218792608
+        .long	4024460340
+        .long	3218801435
+        .long	1554155016
+        .long	3218810250
+        .long	4147675809
+        .long	3218819051
+        .long	3375046719
+        .long	3218827840
+        .long	3690497658
+        .long	3218836616
+        .long	957631997
+        .long	3218845380
+        .long	3924267057
+        .long	3218854130
+        .long	4157667002
+        .long	3218862868
+        .long	1814350566
+        .long	3218871594
+        .long	1345127672
+        .long	3218880307
+        .long	2905168726
+        .long	3218889007
+        .long	2354008484
+        .long	3218897695
+        .long	4140451764
+        .long	3218906370
+        .long	4122708074
+        .long	3218915033
+        .long	2453297277
+        .long	3218923684
+        .long	3579053340
+        .long	3218932322
+        .long	3356226173
+        .long	3218940948
+        .long	1935387215
+        .long	3218949562
+        .long	3761433103
+        .long	3218958163
+        .long	393720137
+        .long	3218966753
+        .long	570838969
+        .long	3218975330
+        .long	145847129
+        .long	3218983895
+        .long	3561109068
+        .long	3218992447
+        .long	2373463229
+        .long	3219000988
+        .long	1024029336
+        .long	3219009517
+        .long	3953310001
+        .long	3219018033
+        .long	2716292306
+        .long	3219026538
+        .long	1752255026
+        .long	3219035031
+        .long	1204902862
+        .long	3219043512
+        .long	1217337138
+        .long	3219051981
+        .long	1932059168
+        .long	3219060438
+        .long	3490973615
+        .long	3219068883
+        .long	1740424513
+        .long	3219077317
+        .long	1116100460
+        .long	3219085739
+        .long	1758136015
+        .long	3219094149
+        .long	3806082244
+        .long	3219102547
+        .long	3103942666
+        .long	3219110934
+        .long	4085078348
+        .long	3219119309
+        .long	2592341915
+        .long	3219127673
+        .long	1237017397
+        .long	1071636966
+        .long	2971350592
+        .long	1071628625
+        .long	2474540381
+        .long	1071620296
+        .long	3905998082
+        .long	1071611978
+        .long	2835758645
+        .long	1071603672
+        .long	3424346780
+        .long	1071595377
+        .long	1242904730
+        .long	1071587094
+        .long	453058437
+        .long	1071578822
+        .long	922012657
+        .long	1071570561
+        .long	2517515272
+        .long	1071562311
+        .long	812887046
+        .long	1071554073
+        .long	4266887859
+        .long	1071545845
+        .long	4158942730
+        .long	1071537629
+        .long	358942686
+        .long	1071529425
+        .long	1327241886
+        .long	1071521231
+        .long	2639818283
+        .long	1071513048
+        .long	4168139969
+        .long	1071504876
+        .long	1489227762
+        .long	1071496716
+        .long	3065521585
+        .long	1071488566
+        .long	180106617
+        .long	1071480428
+        .long	1296448894
+        .long	1071472300
+        .long	1993621492
+        .long	1071464183
+        .long	2146170984
+        .long	1071456077
+        .long	1629147435
+        .long	1071447982
+        .long	318101713
+        .long	1071439898
+        .long	2384050109
+        .long	1071431824
+        .long	3408569797
+        .long	1071423761
+        .long	3268698084
+        .long	1071415709
+        .long	1841962494
+        .long	1071407668
+        .long	3301345460
+        .long	1071399637
+        .long	3230379855
+        .long	1071391617
+        .long	1508048307
+        .long	1071383608
+        .long	2308780654
+        .long	1071375609
+        .long	1217549516
+        .long	1071367621
+        .long	2409736962
+        .long	1071359643
+        .long	1471262832
+        .long	1071351676
+        .long	2578451427
+        .long	1071343719
+        .long	1318159863
+        .long	1071335773
+        .long	1867644803
+        .long	1071327837
+        .long	4109658128
+        .long	1071319911
+        .long	3632444524
+        .long	1071311996
+        .long	319673663
+        .long	1071304092
+        .long	2645405118
+        .long	1071296197
+        .long	1904282206
+        .long	1071288313
+        .long	2276300709
+        .long	1071280439
+        .long	3646937343
+        .long	1071272575
+        .long	1607147436
+        .long	1071264722
+        .long	338264500
+        .long	1071256879
+        .long	4022063343
+        .long	1071249045
+        .long	3955855900
+        .long	1071241222
+        .long	27325445
+        .long	1071233410
+        .long	714524338
+        .long	1071225607
+        .long	1611035309
+        .long	1071217814
+        .long	2605838414
+        .long	1071210031
+        .long	3588341533
+        .long	1071202258
+        .long	153410875
+        .long	1071194496
+        .long	781237988
+        .long	1071186743
+        .long	1067533806
+        .long	1071179000
+        .long	903395686
+        .long	1071171267
+        .long	180337970
+        .long	1071163544
+        .long	3085257158
+        .long	1071155830
+        .long	920560604
+        .long	1071148127
+        .long	2168935497
+        .long	1071140433
+        .long	2428575699
+        .long	1071132749
+        .long	1593048857
+        .long	1071125075
+        .long	3851294344
+        .long	1071117410
+        .long	507752028
+        .long	1071109756
+        .long	47131309
+        .long	1071102111
+        .long	2364605328
+        .long	1071094475
+        .long	3060776247
+        .long	1071086849
+        .long	2031607852
+        .long	1071079233
+        .long	3468423567
+        .long	1071071626
+        .long	2973002597
+        .long	1071064029
+        .long	442479858
+        .long	1071056442
+        .long	69344031
+        .long	1071048864
+        .long	1751501034
+        .long	1071041295
+        .long	1092272106
+        .long	1071033736
+        .long	2285293781
+        .long	1071026186
+        .long	934646808
+        .long	1071018646
+        .long	1234723447
+        .long	1071011115
+        .long	3085323714
+        .long	1071003593
+        .long	2091653507
+        .long	1070996081
+        .long	2449224655
+        .long	1070988578
+        .long	4058951182
+        .long	1070981084
+        .long	2527147484
+        .long	1070973600
+        .long	2050428397
+        .long	1070966125
+        .long	2530805506
+        .long	1070958659
+        .long	3870652645
+        .long	1070951202
+        .long	1677736816
+        .long	1070943755
+        .long	150118311
+        .long	1070936317
+        .long	3486214350
+        .long	1070928887
+        .long	2999895448
+        .long	1070921467
+        .long	2890287450
+        .long	1070914056
+        .long	3061900616
+        .long	1070906654
+        .long	3419595198
+        .long	1070899261
+        .long	3868579735
+        .long	1070891877
+        .long	19442055
+        .long	1070884503
+        .long	368016775
+        .long	1070877137
+        .long	525579846
+        .long	1070869780
+        .long	398716067
+        .long	1070862432
+        .long	4189317433
+        .long	1070855092
+        .long	3214712303
+        .long	1070847762
+        .long	1677467535
+        .long	1070840441
+        .long	3780484975
+        .long	1070833128
+        .long	842097952
+        .long	1070825825
+        .long	1360840737
+        .long	1070818530
+        .long	950675880
+        .long	1070811244
+        .long	3815829096
+        .long	1070803966
+        .long	1275951213
+        .long	1070796698
+        .long	1830887666
+        .long	1070789438
+        .long	1095905871
+        .long	1070782187
+        .long	3276530156
+        .long	1070774944
+        .long	3988671029
+        .long	1070767710
+        .long	3143525540
+        .long	1070760485
+        .long	652608459
+        .long	1070753269
+        .long	722718060
+        .long	1070746061
+        .long	3266000023
+        .long	1070738861
+        .long	3899945937
+        .long	1070731670
+        .long	2537326407
+        .long	1070724488
+        .long	3386189576
+        .long	1070717314
+        .long	2064957766
+        .long	1070710149
+        .long	2782295200
+        .long	1070702992
+        .long	1157237371
+        .long	1070695844
+        .long	1399058776
+        .long	1070688704
+        .long	3422369598
+        .long	1070681572
+        .long	2847114276
+        .long	1070674449
+        .long	3883471977
+        .long	1070667334
+        .long	2151986001
+        .long	1070660228
+        .long	1863431563
+        .long	1070653130
+        .long	2933912512
+        .long	1070646040
+        .long	984859948
+        .long	1070638959
+        .long	227932728
+        .long	1070631886
+        .long	580114212
+        .long	1070624821
+        .long	1958678199
+        .long	1070617764
+        .long	4281187571
+        .long	1070610715
+        .long	3170525652
+        .long	1070603675
+        .long	2839796761
+        .long	1070596643
+        .long	2119878685
+        .long	1070583143
+        .long	4089253071
+        .long	1070569111
+        .long	2835758645
+        .long	1070555096
+        .long	2492901513
+        .long	1070541097
+        .long	2899780145
+        .long	1070527114
+        .long	3896050086
+        .long	1070513147
+        .long	1026954088
+        .long	1070499197
+        .long	2723188744
+        .long	1070485262
+        .long	236130877
+        .long	1070471344
+        .long	1997573379
+        .long	1070457441
+        .long	3554951635
+        .long	1070443554
+        .long	456242909
+        .long	1070429684
+        .long	1134865756
+        .long	1070415829
+        .long	1139873776
+        .long	1070401990
+        .long	315822345
+        .long	1070388167
+        .long	2802766176
+        .long	1070374359
+        .long	4151355006
+        .long	1070360567
+        .long	4207733072
+        .long	1070346791
+        .long	2818569420
+        .long	1070333031
+        .long	4126022811
+        .long	1070319286
+        .long	3682837469
+        .long	1070305557
+        .long	1337242607
+        .long	1070291844
+        .long	1232950086
+        .long	1070278146
+        .long	3219217489
+        .long	1070264463
+        .long	2850845810
+        .long	1070250796
+        .long	4273079031
+        .long	1070237144
+        .long	3041732648
+        .long	1070223508
+        .long	3303060581
+        .long	1070209887
+        .long	613883718
+        .long	1070196282
+        .long	3416424147
+        .long	1070182691
+        .long	2973531841
+        .long	1070169116
+        .long	3433453502
+        .long	1070155556
+        .long	354993870
+        .long	1070142012
+        .long	2182349993
+        .long	1070128482
+        .long	180337970
+        .long	1070114968
+        .long	2794129140
+        .long	1070101468
+        .long	1289509543
+        .long	1070087984
+        .long	4112616140
+        .long	1070074514
+        .long	2530196300
+        .long	1070061060
+        .long	694376742
+        .long	1070047621
+        .long	2757759525
+        .long	1070034196
+        .long	4283485357
+        .long	1070020786
+        .long	835166085
+        .long	1070007392
+        .long	861784501
+        .long	1069994012
+        .long	4222855791
+        .long	1069980646
+        .long	2188425477
+        .long	1069967296
+        .long	3208871137
+        .long	1069953960
+        .long	2850129301
+        .long	1069940639
+        .long	973562605
+        .long	1069927333
+        .long	1735957778
+        .long	1069914041
+        .long	704621746
+        .long	1069900764
+        .long	2037248826
+        .long	1069887501
+        .long	1302049555
+        .long	1069874253
+        .long	2657617909
+        .long	1069861019
+        .long	1673060149
+        .long	1069847800
+        .long	2507862062
+        .long	1069834595
+        .long	732017833
+        .long	1069821405
+        .long	505897304
+        .long	1069808229
+        .long	1695342161
+        .long	1069795067
+        .long	4166631327
+        .long	1069781919
+        .long	3491511767
+        .long	1069768786
+        .long	3832098487
+        .long	1069755667
+        .long	761003473
+        .long	1069742563
+        .long	2736170304
+        .long	1069729472
+        .long	1036101224
+        .long	1069716396
+        .long	4119593661
+        .long	1069703333
+        .long	3266000023
+        .long	1069690285
+        .long	2639996940
+        .long	1069677251
+        .long	2111714268
+        .long	1069664231
+        .long	1551700571
+        .long	1069651225
+        .long	830921328
+        .long	1069638233
+        .long	4115724438
+        .long	1069625254
+        .long	2687969258
+        .long	1069612290
+        .long	714828609
+        .long	1069599340
+        .long	2363885129
+        .long	1069586403
+        .long	3213194931
+        .long	1069573480
+        .long	3136187749
+        .long	1069560571
+        .long	2006697909
+        .long	1069547676
+        .long	3692892517
+        .long	1069522069
+        .long	765175007
+        .long	1069496334
+        .long	3570253499
+        .long	1069470625
+        .long	3269064532
+        .long	1069444944
+        .long	3908238678
+        .long	1069419290
+        .long	945260706
+        .long	1069393664
+        .long	2723302721
+        .long	1069368064
+        .long	406449780
+        .long	1069342492
+        .long	2339434949
+        .long	1069316946
+        .long	3982864956
+        .long	1069291427
+        .long	798118804
+        .long	1069265936
+        .long	1132246414
+        .long	1069240471
+        .long	448161614
+        .long	1069215033
+        .long	2799475404
+        .long	1069189621
+        .long	3650623571
+        .long	1069164236
+        .long	2761765396
+        .long	1069138878
+        .long	4188780490
+        .long	1069113546
+        .long	3398363754
+        .long	1069088241
+        .long	152924136
+        .long	1069062963
+        .long	2805548810
+        .long	1069037710
+        .long	2530196300
+        .long	1069012484
+        .long	3386464469
+        .long	1068987284
+        .long	844750970
+        .long	1068962111
+        .long	3261086672
+        .long	1068936963
+        .long	1812361559
+        .long	1068911842
+        .long	561092771
+        .long	1068886747
+        .long	3570519722
+        .long	1068861677
+        .long	2019699215
+        .long	1068836634
+        .long	4268273544
+        .long	1068811616
+        .long	1496729166
+        .long	1068786625
+        .long	2066132126
+        .long	1068761659
+        .long	1453354059
+        .long	1068736719
+        .long	3725905754
+        .long	1068711804
+        .long	67097779
+        .long	1068686916
+        .long	3135775963
+        .long	1068662052
+        .long	4116645570
+        .long	1068637214
+        .long	2785039517
+        .long	1068612402
+        .long	3211948238
+        .long	1068587615
+        .long	879114973
+        .long	1068562854
+        .long	4153869436
+        .long	1068538117
+        .long	4224353950
+        .long	1068513406
+        .long	1738648877
+        .long	1068478498
+        .long	621328029
+        .long	1068429177
+        .long	361989374
+        .long	1068379906
+        .long	522185726
+        .long	1068330685
+        .long	664805953
+        .long	1068281514
+        .long	354069550
+        .long	1068232393
+        .long	3450488540
+        .long	1068183321
+        .long	930992923
+        .long	1068134300
+        .long	953696405
+        .long	1068085328
+        .long	3088087314
+        .long	1068036405
+        .long	2609990599
+        .long	1067987532
+        .long	3386464469
+        .long	1067938708
+        .long	695925966
+        .long	1067889934
+        .long	2702982241
+        .long	1067841208
+        .long	393654302
+        .long	1067792532
+        .long	1935110223
+        .long	1067743904
+        .long	2610888947
+        .long	1067695325
+        .long	2000764363
+        .long	1067646795
+        .long	3980740227
+        .long	1067598313
+        .long	3838143224
+        .long	1067549880
+        .long	1156519829
+        .long	1067501496
+        .long	4110598596
+        .long	1067453159
+        .long	3097995520
+        .long	1067359375
+        .long	3297851897
+        .long	1067262895
+        .long	3702812359
+        .long	1067166511
+        .long	3492345695
+        .long	1067070223
+        .long	1848366390
+        .long	1066974031
+        .long	2250192214
+        .long	1066877934
+        .long	3884599966
+        .long	1066781932
+        .long	1645815860
+        .long	1066686026
+        .long	3315375145
+        .long	1066590214
+        .long	3792308805
+        .long	1066494497
+        .long	251039259
+        .long	1066395959
+        .long	207414748
+        .long	1066204903
+        .long	1561045812
+        .long	1066014035
+        .long	2718921511
+        .long	1065823355
+        .long	2092732370
+        .long	1065632863
+        .long	2393819184
+        .long	1065442558
+        .long	4086440081
+        .long	1065151664
+        .long	3228205919
+        .long	1064771801
+        .long	3368528065
+        .long	1064392310
+        .long	2754502618
+        .long	1063721742
+        .long	2303420870
+        .long	1062672426
+        .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	2696122091
+        .long	3214636092
+        .long	2696122091
+        .long	3214636092
+        .long	60798926
+        .long	1067957842
+        .long	60798926
+        .long	1067957842
+        .long	4242638864
+        .long	3216335824
+        .long	4242638864
+        .long	3216335824
+        .long	3540051903
+        .long	1069845994
+        .long	3540051903
+        .long	1069845994
+        .long	2610650434
+        .long	3218487403
+        .long	2610650434
+        .long	3218487403
+        .long	734375590
+        .long	1062030445
+        .long	734375590
+        .long	1062030445
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	2574098898
+        .long	1070757742
+        .long	2574098898
+        .long	1070757742
+        .long	1279163547
+        .long	3218543945
+        .long	1279163547
+        .long	3218543945
+        .long	3694782758
+        .long	1071564553
+        .long	3694782758
+        .long	1071564553
+        .long	1697348856
+        .long	3219592519
+        .long	1697348856
+        .long	3219592519
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	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	1063256064
+        .long	0
+        .long	1063256064
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1073156096
+        .long	0
+        .long	1073156096
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	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	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_dlog2_data_internal,@object
+        .size	__svml_dlog2_data_internal,13568
+        .align 64
+
+__dlog2_la__Q3:
+        .long	3213221364
+        .long	1050233568
+        .long	1697350398
+        .long	3219592519
+        .long	3694789629
+        .long	1071564553
+        .long	0
+        .long	1073157447
+        .type	__dlog2_la__Q3,@object
+        .size	__dlog2_la__Q3,32
+        .space 32, 0x00 	
+        .align 64
+
+__dlog2_la__Q2:
+        .long	3213221358
+        .long	1050233568
+        .long	1697350398
+        .long	3219592519
+        .long	3695167823
+        .long	1071564553
+        .long	1697791998
+        .long	3218543943
+        .long	0
+        .long	1073157447
+        .type	__dlog2_la__Q2,@object
+        .size	__dlog2_la__Q2,40
+        .space 24, 0x00 	
+        .align 64
+
+__dlog2_la__Q1:
+        .long	3213221370
+        .long	1050233568
+        .long	3213207734
+        .long	3196668640
+        .long	3694789628
+        .long	1071564553
+        .long	1697350743
+        .long	3218543943
+        .long	1357908666
+        .long	1070757740
+        .long	3685007067
+        .long	3217999625
+        .long	96832070
+        .long	1070227830
+        .long	1140452344
+        .long	3217495379
+        .long	2606274745
+        .long	1069844296
+        .long	1933654871
+        .long	3217172449
+        .long	0
+        .long	1073157447
+        .long	0
+        .long	3219592519
+        .type	__dlog2_la__Q1,@object
+        .size	__dlog2_la__Q1,96
+        .space 32, 0x00 	
+        .align 64
+
+__dlog2_la__TWO_32P:
+        .long	1048576
+        .long	1106247680
+        .type	__dlog2_la__TWO_32P,@object
+        .size	__dlog2_la__TWO_32P,8
+        .space 56, 0x00 	
+        .align 64
+
+__dlog2_la__TWO_32:
+        .long	0
+        .long	1106247680
+        .type	__dlog2_la__TWO_32,@object
+        .size	__dlog2_la__TWO_32,8
+        .space 56, 0x00 	
+        .align 64
+
+__dlog2_la__TWO_55:
+        .long	0
+        .long	1130364928
+        .type	__dlog2_la__TWO_55,@object
+        .size	__dlog2_la__TWO_55,8
+        .space 56, 0x00 	
+        .align 64
+
+__dlog2_la___libm_rcp_table_256:
+        .long	0x3f7f8000
+        .long	0x3f7e8000
+        .long	0x3f7d8000
+        .long	0x3f7c8000
+        .long	0x3f7ba000
+        .long	0x3f7aa000
+        .long	0x3f79a000
+        .long	0x3f78c000
+        .long	0x3f77c000
+        .long	0x3f76e000
+        .long	0x3f75e000
+        .long	0x3f750000
+        .long	0x3f742000
+        .long	0x3f732000
+        .long	0x3f724000
+        .long	0x3f716000
+        .long	0x3f708000
+        .long	0x3f6fa000
+        .long	0x3f6ec000
+        .long	0x3f6de000
+        .long	0x3f6d0000
+        .long	0x3f6c2000
+        .long	0x3f6b6000
+        .long	0x3f6a8000
+        .long	0x3f69a000
+        .long	0x3f68c000
+        .long	0x3f680000
+        .long	0x3f672000
+        .long	0x3f666000
+        .long	0x3f658000
+        .long	0x3f64c000
+        .long	0x3f640000
+        .long	0x3f632000
+        .long	0x3f626000
+        .long	0x3f61a000
+        .long	0x3f60e000
+        .long	0x3f600000
+        .long	0x3f5f4000
+        .long	0x3f5e8000
+        .long	0x3f5dc000
+        .long	0x3f5d0000
+        .long	0x3f5c4000
+        .long	0x3f5b8000
+        .long	0x3f5ae000
+        .long	0x3f5a2000
+        .long	0x3f596000
+        .long	0x3f58a000
+        .long	0x3f57e000
+        .long	0x3f574000
+        .long	0x3f568000
+        .long	0x3f55e000
+        .long	0x3f552000
+        .long	0x3f546000
+        .long	0x3f53c000
+        .long	0x3f532000
+        .long	0x3f526000
+        .long	0x3f51c000
+        .long	0x3f510000
+        .long	0x3f506000
+        .long	0x3f4fc000
+        .long	0x3f4f2000
+        .long	0x3f4e6000
+        .long	0x3f4dc000
+        .long	0x3f4d2000
+        .long	0x3f4c8000
+        .long	0x3f4be000
+        .long	0x3f4b4000
+        .long	0x3f4aa000
+        .long	0x3f4a0000
+        .long	0x3f496000
+        .long	0x3f48c000
+        .long	0x3f482000
+        .long	0x3f478000
+        .long	0x3f46e000
+        .long	0x3f464000
+        .long	0x3f45c000
+        .long	0x3f452000
+        .long	0x3f448000
+        .long	0x3f43e000
+        .long	0x3f436000
+        .long	0x3f42c000
+        .long	0x3f422000
+        .long	0x3f41a000
+        .long	0x3f410000
+        .long	0x3f408000
+        .long	0x3f3fe000
+        .long	0x3f3f6000
+        .long	0x3f3ec000
+        .long	0x3f3e4000
+        .long	0x3f3da000
+        .long	0x3f3d2000
+        .long	0x3f3ca000
+        .long	0x3f3c0000
+        .long	0x3f3b8000
+        .long	0x3f3b0000
+        .long	0x3f3a8000
+        .long	0x3f39e000
+        .long	0x3f396000
+        .long	0x3f38e000
+        .long	0x3f386000
+        .long	0x3f37e000
+        .long	0x3f376000
+        .long	0x3f36c000
+        .long	0x3f364000
+        .long	0x3f35c000
+        .long	0x3f354000
+        .long	0x3f34c000
+        .long	0x3f344000
+        .long	0x3f33c000
+        .long	0x3f334000
+        .long	0x3f32e000
+        .long	0x3f326000
+        .long	0x3f31e000
+        .long	0x3f316000
+        .long	0x3f30e000
+        .long	0x3f306000
+        .long	0x3f2fe000
+        .long	0x3f2f8000
+        .long	0x3f2f0000
+        .long	0x3f2e8000
+        .long	0x3f2e2000
+        .long	0x3f2da000
+        .long	0x3f2d2000
+        .long	0x3f2cc000
+        .long	0x3f2c4000
+        .long	0x3f2bc000
+        .long	0x3f2b6000
+        .long	0x3f2ae000
+        .long	0x3f2a8000
+        .long	0x3f2a0000
+        .long	0x3f29a000
+        .long	0x3f292000
+        .long	0x3f28c000
+        .long	0x3f284000
+        .long	0x3f27e000
+        .long	0x3f276000
+        .long	0x3f270000
+        .long	0x3f268000
+        .long	0x3f262000
+        .long	0x3f25c000
+        .long	0x3f254000
+        .long	0x3f24e000
+        .long	0x3f248000
+        .long	0x3f240000
+        .long	0x3f23a000
+        .long	0x3f234000
+        .long	0x3f22e000
+        .long	0x3f226000
+        .long	0x3f220000
+        .long	0x3f21a000
+        .long	0x3f214000
+        .long	0x3f20e000
+        .long	0x3f206000
+        .long	0x3f200000
+        .long	0x3f1fa000
+        .long	0x3f1f4000
+        .long	0x3f1ee000
+        .long	0x3f1e8000
+        .long	0x3f1e2000
+        .long	0x3f1dc000
+        .long	0x3f1d6000
+        .long	0x3f1d0000
+        .long	0x3f1ca000
+        .long	0x3f1c4000
+        .long	0x3f1be000
+        .long	0x3f1b8000
+        .long	0x3f1b2000
+        .long	0x3f1ac000
+        .long	0x3f1a6000
+        .long	0x3f1a0000
+        .long	0x3f19a000
+        .long	0x3f194000
+        .long	0x3f190000
+        .long	0x3f18a000
+        .long	0x3f184000
+        .long	0x3f17e000
+        .long	0x3f178000
+        .long	0x3f172000
+        .long	0x3f16e000
+        .long	0x3f168000
+        .long	0x3f162000
+        .long	0x3f15c000
+        .long	0x3f158000
+        .long	0x3f152000
+        .long	0x3f14c000
+        .long	0x3f148000
+        .long	0x3f142000
+        .long	0x3f13c000
+        .long	0x3f138000
+        .long	0x3f132000
+        .long	0x3f12c000
+        .long	0x3f128000
+        .long	0x3f122000
+        .long	0x3f11c000
+        .long	0x3f118000
+        .long	0x3f112000
+        .long	0x3f10e000
+        .long	0x3f108000
+        .long	0x3f104000
+        .long	0x3f0fe000
+        .long	0x3f0f8000
+        .long	0x3f0f4000
+        .long	0x3f0ee000
+        .long	0x3f0ea000
+        .long	0x3f0e6000
+        .long	0x3f0e0000
+        .long	0x3f0dc000
+        .long	0x3f0d6000
+        .long	0x3f0d2000
+        .long	0x3f0cc000
+        .long	0x3f0c8000
+        .long	0x3f0c2000
+        .long	0x3f0be000
+        .long	0x3f0ba000
+        .long	0x3f0b4000
+        .long	0x3f0b0000
+        .long	0x3f0ac000
+        .long	0x3f0a6000
+        .long	0x3f0a2000
+        .long	0x3f09e000
+        .long	0x3f098000
+        .long	0x3f094000
+        .long	0x3f090000
+        .long	0x3f08a000
+        .long	0x3f086000
+        .long	0x3f082000
+        .long	0x3f07e000
+        .long	0x3f078000
+        .long	0x3f074000
+        .long	0x3f070000
+        .long	0x3f06c000
+        .long	0x3f066000
+        .long	0x3f062000
+        .long	0x3f05e000
+        .long	0x3f05a000
+        .long	0x3f056000
+        .long	0x3f052000
+        .long	0x3f04c000
+        .long	0x3f048000
+        .long	0x3f044000
+        .long	0x3f040000
+        .long	0x3f03c000
+        .long	0x3f038000
+        .long	0x3f034000
+        .long	0x3f030000
+        .long	0x3f02a000
+        .long	0x3f026000
+        .long	0x3f022000
+        .long	0x3f01e000
+        .long	0x3f01a000
+        .long	0x3f016000
+        .long	0x3f012000
+        .long	0x3f00e000
+        .long	0x3f00a000
+        .long	0x3f006000
+        .long	0x3f002000
+        .type	__dlog2_la___libm_rcp_table_256,@object
+        .size	__dlog2_la___libm_rcp_table_256,1024
+        .align 64
+
+__dlog2_la___libm_log2_table_256:
+        .long	0xfb44c3b7,0x3e1485cb
+        .long	0x00000000,0x3f671b0e
+        .long	0x06028ac0,0x3e31d5d9
+        .long	0x00000000,0x3f815cfe
+        .long	0xb8d7240b,0x3df8b9cb
+        .long	0x00000000,0x3f8cfee7
+        .long	0x0d179106,0x3e38864a
+        .long	0x00000000,0x3f94564a
+        .long	0xecba1593,0x3e459c6a
+        .long	0x00000000,0x3f997723
+        .long	0x94120c14,0x3e48d36a
+        .long	0x00000000,0x3f9f5923
+        .long	0xd2571490,0x3e5410ba
+        .long	0x00000000,0x3fa2a094
+        .long	0x1dc036a2,0x3e2776b0
+        .long	0x00000000,0x3fa53894
+        .long	0x78efe2b1,0x3e537229
+        .long	0x00000000,0x3fa8324c
+        .long	0xfd29dc75,0x3e59c0fa
+        .long	0x00000000,0x3faacf54
+        .long	0x046734f7,0x3e4636b7
+        .long	0x00000000,0x3fadced9
+        .long	0xd3b410b8,0x3e6f7950
+        .long	0x00000000,0x3fb0387e
+        .long	0x00f2200a,0x3e19d1e7
+        .long	0x00000000,0x3fb18ac6
+        .long	0x8661ba82,0x3e4f09a9
+        .long	0x00000000,0x3fb30edd
+        .long	0x9367107c,0x3e564d91
+        .long	0x00000000,0x3fb463c1
+        .long	0x0e4a4ce8,0x3e4e1fd1
+        .long	0x00000000,0x3fb5b9e1
+        .long	0x3cdb6374,0x3e492cf0
+        .long	0x00000000,0x3fb7113f
+        .long	0x069c4f7f,0x3e61a364
+        .long	0x00000000,0x3fb869dd
+        .long	0x427b631b,0x3e6493a6
+        .long	0x00000000,0x3fb9c3be
+        .long	0xe02b3e8b,0x3e6af2c2
+        .long	0x00000000,0x3fbb1ee4
+        .long	0x389f4365,0x3e616e1e
+        .long	0x00000000,0x3fbc7b52
+        .long	0x6a31fd96,0x3e4633b7
+        .long	0x00000000,0x3fbdd90a
+        .long	0x0508664d,0x3e62ed84
+        .long	0x00000000,0x3fbf05d4
+        .long	0xaca1905c,0x3e775dcd
+        .long	0x00000000,0x3fc032fb
+        .long	0x094fbeeb,0x3e753e65
+        .long	0x00000000,0x3fc0e3b5
+        .long	0x96aa4b17,0x3e671f44
+        .long	0x00000000,0x3fc19519
+        .long	0x92da5a47,0x3e785566
+        .long	0x00000000,0x3fc22dad
+        .long	0xbeb7d722,0x3e518efa
+        .long	0x00000000,0x3fc2e050
+        .long	0xab57551c,0x3e738564
+        .long	0x00000000,0x3fc379f7
+        .long	0x54a914e3,0x3e55d0da
+        .long	0x00000000,0x3fc42ddd
+        .long	0xfe974017,0x3e73cd00
+        .long	0x00000000,0x3fc4c89b
+        .long	0x59064390,0x3e54ffd6
+        .long	0x00000000,0x3fc563dc
+        .long	0x633ab50f,0x3e67d75e
+        .long	0x00000000,0x3fc619a2
+        .long	0xc8877e8a,0x3e77e6ce
+        .long	0x00000000,0x3fc6b5ff
+        .long	0x1ab7837f,0x3e7ecc1f
+        .long	0x00000000,0x3fc752e1
+        .long	0xf9d5827a,0x3e7cea7c
+        .long	0x00000000,0x3fc7f049
+        .long	0x64ccd537,0x3e357f7a
+        .long	0x00000000,0x3fc8a898
+        .long	0xf7c9b05b,0x3e7994ca
+        .long	0x00000000,0x3fc94724
+        .long	0xa2f56536,0x3e524b8f
+        .long	0x00000000,0x3fc9e63a
+        .long	0x5edaab42,0x3e7fd640
+        .long	0x00000000,0x3fca85d8
+        .long	0xd163379a,0x3e625f54
+        .long	0x00000000,0x3fcb2602
+        .long	0x936acd51,0x3e7ebdc3
+        .long	0x00000000,0x3fcbc6b6
+        .long	0xcfbc0aa0,0x3e7eee14
+        .long	0x00000000,0x3fcc67f7
+        .long	0xf73bcdad,0x3e764469
+        .long	0x00000000,0x3fcceec4
+        .long	0x60971b86,0x3e6eb44e
+        .long	0x00000000,0x3fcd9109
+        .long	0xcd2052a5,0x3e65fcf4
+        .long	0x00000000,0x3fce33dd
+        .long	0xc402867b,0x3e61af1e
+        .long	0x00000000,0x3fced741
+        .long	0xa0c956e4,0x3e61bfbd
+        .long	0x00000000,0x3fcf7b36
+        .long	0x831e77ff,0x3e85287b
+        .long	0x00000000,0x3fd00223
+        .long	0xaddfdee2,0x3e7d2fc3
+        .long	0x00000000,0x3fd054a4
+        .long	0x342052c1,0x3e83724b
+        .long	0x00000000,0x3fd0999d
+        .long	0x602bcd34,0x3e7b4ec9
+        .long	0x00000000,0x3fd0eca6
+        .long	0x3aa20ead,0x3e6742da
+        .long	0x00000000,0x3fd13ffa
+        .long	0x9ecdadf4,0x3e713e82
+        .long	0x00000000,0x3fd185a4
+        .long	0xfef3031b,0x3e52f27e
+        .long	0x00000000,0x3fd1cb83
+        .long	0x79e4af8a,0x3e710739
+        .long	0x00000000,0x3fd21fa1
+        .long	0xe59ad84a,0x3e637301
+        .long	0x00000000,0x3fd265f5
+        .long	0x3d7dfd9b,0x3e88697c
+        .long	0x00000000,0x3fd2baa0
+        .long	0x738117b0,0x3e717788
+        .long	0x00000000,0x3fd3016b
+        .long	0xd3c26a97,0x3e6c5514
+        .long	0x00000000,0x3fd3486c
+        .long	0x4c4ff246,0x3e8df550
+        .long	0x00000000,0x3fd38fa3
+        .long	0x40340fa6,0x3e88102d
+        .long	0x00000000,0x3fd3e562
+        .long	0x4592f4c3,0x3e5f53b6
+        .long	0x00000000,0x3fd42d14
+        .long	0x8b149a00,0x3e750fc8
+        .long	0x00000000,0x3fd474fd
+        .long	0xa8f50e5f,0x3e86d01c
+        .long	0x00000000,0x3fd4bd1e
+        .long	0x7a22a88a,0x3e83c469
+        .long	0x00000000,0x3fd50578
+        .long	0xdc18b6d2,0x3e79000e
+        .long	0x00000000,0x3fd54e0b
+        .long	0x7c00250b,0x3e7870f0
+        .long	0x00000000,0x3fd596d7
+        .long	0xc1c885ae,0x3e8e3dd5
+        .long	0x00000000,0x3fd5dfdc
+        .long	0xa6ecc47e,0x3e7bf64c
+        .long	0x00000000,0x3fd6291c
+        .long	0x0bc16c18,0x3e6bdaca
+        .long	0x00000000,0x3fd67296
+        .long	0x1f925729,0x3e84d25c
+        .long	0x00000000,0x3fd6bc4a
+        .long	0xf23978de,0x3e5a5fb4
+        .long	0x00000000,0x3fd7063a
+        .long	0xe2ac7f60,0x3e8e3da0
+        .long	0x00000000,0x3fd75064
+        .long	0x71f51a7b,0x3e819e20
+        .long	0x00000000,0x3fd79acb
+        .long	0x5b924234,0x3e5e43ae
+        .long	0x00000000,0x3fd7d67c
+        .long	0xe9aedf37,0x3e701a2b
+        .long	0x00000000,0x3fd8214f
+        .long	0xeddd33ea,0x3e6b6f51
+        .long	0x00000000,0x3fd86c5f
+        .long	0xe732b3c4,0x3e79375f
+        .long	0x00000000,0x3fd8b7ac
+        .long	0xe47cb9df,0x3e7e831b
+        .long	0x00000000,0x3fd8f416
+        .long	0xe392d3c8,0x3e8abc37
+        .long	0x00000000,0x3fd93fd2
+        .long	0x28b35c77,0x3e80852d
+        .long	0x00000000,0x3fd98bcd
+        .long	0xd29cea36,0x3e69f374
+        .long	0x00000000,0x3fd9c8c3
+        .long	0xb3d7b0e6,0x3e542981
+        .long	0x00000000,0x3fda152f
+        .long	0x1fe6d5ac,0x3e8b2bfb
+        .long	0x00000000,0x3fda527f
+        .long	0xf32e5dda,0x3e6f6f5c
+        .long	0x00000000,0x3fda9f5e
+        .long	0xd34d0d30,0x3e65abaa
+        .long	0x00000000,0x3fdadd0b
+        .long	0xe0ac9602,0x3e7bd47f
+        .long	0x00000000,0x3fdb2a5d
+        .long	0x7c5c784b,0x3e833601
+        .long	0x00000000,0x3fdb6867
+        .long	0xd7b0821f,0x3e5b887c
+        .long	0x00000000,0x3fdbb62f
+        .long	0xcd0a8f6a,0x3e83eccc
+        .long	0x00000000,0x3fdbf497
+        .long	0x7500a4e8,0x3e7ba0e6
+        .long	0x00000000,0x3fdc332a
+        .long	0xfc8712bb,0x3e885a8b
+        .long	0x00000000,0x3fdc819d
+        .long	0xf7a3a78f,0x3e81c336
+        .long	0x00000000,0x3fdcc090
+        .long	0x4ad8a38b,0x3e7846b4
+        .long	0x00000000,0x3fdcffae
+        .long	0xfcfc3a99,0x3e7db50f
+        .long	0x00000000,0x3fdd3ef7
+        .long	0x433cccd2,0x3e238809
+        .long	0x00000000,0x3fdd8e50
+        .long	0x6828fa82,0x3e721b2e
+        .long	0x00000000,0x3fddcdfb
+        .long	0xfc7c49c1,0x3e82848b
+        .long	0x00000000,0x3fde0dd2
+        .long	0x1fce4d49,0x3e615144
+        .long	0x00000000,0x3fde4dd6
+        .long	0x77e2e8fd,0x3e68b88a
+        .long	0x00000000,0x3fde8e06
+        .long	0x22a961b0,0x3e8fd353
+        .long	0x00000000,0x3fdece62
+        .long	0x266f2e1f,0x3e72854e
+        .long	0x00000000,0x3fdf1f16
+        .long	0xc69211fe,0x3e8520c7
+        .long	0x00000000,0x3fdf5fd8
+        .long	0xaba878d5,0x3e826fcf
+        .long	0x00000000,0x3fdfa0c8
+        .long	0xcd5b35b1,0x3e726ed8
+        .long	0x00000000,0x3fdfe1e6
+        .long	0x678a4f1c,0x3e49054d
+        .long	0x00000000,0x3fe01199
+        .long	0x3bc19f18,0x3e5d23cb
+        .long	0x00000000,0x3fe03256
+        .long	0x12772acb,0x3e87af35
+        .long	0x00000000,0x3fe0532a
+        .long	0x2849c88a,0x3e67f5fc
+        .long	0x00000000,0x3fe07416
+        .long	0x0e574fa1,0x3e84fce2
+        .long	0x00000000,0x3fe08cd6
+        .long	0x0ec2b5fa,0x3e857044
+        .long	0x00000000,0x3fe0adeb
+        .long	0xd031f353,0x3e6d5d1d
+        .long	0x00000000,0x3fe0cf18
+        .long	0xdae75c4d,0x3e99a159
+        .long	0x00000000,0x3fe0f05c
+        .long	0x1553afb9,0x3e90eaf1
+        .long	0x00000000,0x3fe111b9
+        .long	0xdcc5c3c7,0x3e8bc6f3
+        .long	0x00000000,0x3fe1332e
+        .long	0x1109e597,0x3e94ef84
+        .long	0x00000000,0x3fe154bb
+        .long	0xd82adea4,0x3e937f40
+        .long	0x00000000,0x3fe16df5
+        .long	0x78336a2f,0x3e96dc5a
+        .long	0x00000000,0x3fe18fad
+        .long	0x84c2c804,0x3e90935b
+        .long	0x00000000,0x3fe1b17e
+        .long	0x04fd30aa,0x3e8a837a
+        .long	0x00000000,0x3fe1caeb
+        .long	0xd924b0ac,0x3e99061d
+        .long	0x00000000,0x3fe1ece7
+        .long	0xef9b9d01,0x3e7ed700
+        .long	0x00000000,0x3fe20efd
+        .long	0x202c81ec,0x3e9c6ebb
+        .long	0x00000000,0x3fe2289d
+        .long	0xfc0d7d76,0x3e936d4d
+        .long	0x00000000,0x3fe24adf
+        .long	0x9f8756ba,0x3e9a35d7
+        .long	0x00000000,0x3fe26d3a
+        .long	0xe7c79d83,0x3e584ee3
+        .long	0x00000000,0x3fe28710
+        .long	0x942065a0,0x3e7d9e0d
+        .long	0x00000000,0x3fe2a998
+        .long	0x2175afbf,0x3e872108
+        .long	0x00000000,0x3fe2c38f
+        .long	0xfaf6283c,0x3e9f5809
+        .long	0x00000000,0x3fe2e644
+        .long	0x411d0507,0x3e871209
+        .long	0x00000000,0x3fe3005e
+        .long	0x370c24bf,0x3e9c3b11
+        .long	0x00000000,0x3fe32341
+        .long	0x8044bb5a,0x3e9bce8e
+        .long	0x00000000,0x3fe33d7d
+        .long	0x698ea854,0x3e98aca0
+        .long	0x00000000,0x3fe3608f
+        .long	0xd4d873bb,0x3e972a8e
+        .long	0x00000000,0x3fe37aee
+        .long	0x615e8182,0x3e8f669b
+        .long	0x00000000,0x3fe39e2f
+        .long	0xdda5b49a,0x3e98d1f4
+        .long	0x00000000,0x3fe3b8b1
+        .long	0xe72383f7,0x3e9cc279
+        .long	0x00000000,0x3fe3dc21
+        .long	0x497497f1,0x3e9c6774
+        .long	0x00000000,0x3fe3f6c7
+        .long	0x801bd0e6,0x3e82c7f6
+        .long	0x00000000,0x3fe4117d
+        .long	0xd0ee28b4,0x3e9dfdd6
+        .long	0x00000000,0x3fe43531
+        .long	0xb70d3761,0x3e92d3a2
+        .long	0x00000000,0x3fe4500b
+        .long	0xe7d6bcb2,0x3e9c8343
+        .long	0x00000000,0x3fe46af4
+        .long	0x90d43957,0x3e693179
+        .long	0x00000000,0x3fe48eef
+        .long	0xf12570df,0x3e799eab
+        .long	0x00000000,0x3fe4a9fd
+        .long	0x1b88755d,0x3e78c5f8
+        .long	0x00000000,0x3fe4c51b
+        .long	0xdf99a22c,0x3e7369be
+        .long	0x00000000,0x3fe4e049
+        .long	0x6ed50f62,0x3e88fd93
+        .long	0x00000000,0x3fe5049f
+        .long	0x978605ff,0x3e9c6042
+        .long	0x00000000,0x3fe51ff2
+        .long	0xe6c85f4c,0x3e930ae6
+        .long	0x00000000,0x3fe53b56
+        .long	0xc3275ba6,0x3e92e7b6
+        .long	0x00000000,0x3fe556ca
+        .long	0x91597938,0x3e9e6401
+        .long	0x00000000,0x3fe5724e
+        .long	0x448ebb62,0x3e3d2dee
+        .long	0x00000000,0x3fe59719
+        .long	0x47501b6d,0x3e9b432e
+        .long	0x00000000,0x3fe5b2c3
+        .long	0x571fa7cd,0x3e83cf9b
+        .long	0x00000000,0x3fe5ce7f
+        .long	0x7359819d,0x3e8dc615
+        .long	0x00000000,0x3fe5ea4b
+        .long	0xc78a85ed,0x3e8973c3
+        .long	0x00000000,0x3fe60628
+        .long	0xc15a9f3d,0x3e77d788
+        .long	0x00000000,0x3fe62216
+        .long	0x51952736,0x3e9d2538
+        .long	0x00000000,0x3fe63e14
+        .long	0xde792c07,0x3e94dab9
+        .long	0x00000000,0x3fe65a24
+        .long	0x5bfa4318,0x3e8f5be1
+        .long	0x00000000,0x3fe67645
+        .long	0x55090ec8,0x3e903b26
+        .long	0x00000000,0x3fe69277
+        .long	0xc78b6175,0x3e99236f
+        .long	0x00000000,0x3fe6aeba
+        .long	0x3a80db6a,0x3e8a1972
+        .long	0x00000000,0x3fe6cb0f
+        .long	0xf558aa96,0x3e8d43a2
+        .long	0x00000000,0x3fe6e775
+        .long	0xd9a82f2e,0x3e424ee3
+        .long	0x00000000,0x3fe703ed
+        .long	0x583878f6,0x3e764d8e
+        .long	0x00000000,0x3fe72076
+        .long	0xc1150a3e,0x3e379604
+        .long	0x00000000,0x3fe73d11
+        .long	0xed85584b,0x3e93b229
+        .long	0x00000000,0x3fe759bd
+        .long	0x451a7b48,0x3e62967a
+        .long	0x00000000,0x3fe7767c
+        .long	0xc044e72d,0x3e8e12d7
+        .long	0x00000000,0x3fe7934c
+        .long	0xfdfb6949,0x3e9ca45d
+        .long	0x00000000,0x3fe7b02e
+        .long	0xff690fce,0x3e9244fc
+        .long	0x00000000,0x3fe7c37a
+        .long	0x81487a2c,0x3e7e9cea
+        .long	0x00000000,0x3fe7e07b
+        .long	0xd0ad2d9a,0x3e760da0
+        .long	0x00000000,0x3fe7fd8e
+        .long	0x096f45d9,0x3e8d7703
+        .long	0x00000000,0x3fe81ab3
+        .long	0x1b17115b,0x3e78dbee
+        .long	0x00000000,0x3fe837eb
+        .long	0x7c252ee0,0x3e8dc5a4
+        .long	0x00000000,0x3fe85535
+        .long	0x42d5123f,0x3e950116
+        .long	0x00000000,0x3fe868c6
+        .long	0xf11e41be,0x3e4c4eb7
+        .long	0x00000000,0x3fe88630
+        .long	0xdb2890b4,0x3e7773b8
+        .long	0x00000000,0x3fe8a3ac
+        .long	0x7ffb4479,0x3e7bc8e7
+        .long	0x00000000,0x3fe8c13b
+        .long	0x237693b3,0x3e8c388f
+        .long	0x00000000,0x3fe8d4fa
+        .long	0x45fcf1a0,0x3e731cd4
+        .long	0x00000000,0x3fe8f2a9
+        .long	0xe4895b91,0x3e9fae07
+        .long	0x00000000,0x3fe9106a
+        .long	0x42d2824e,0x3e7d140d
+        .long	0x00000000,0x3fe9244c
+        .long	0x39900f67,0x3e75c3c8
+        .long	0x00000000,0x3fe9422e
+        .long	0xa314252b,0x3e902422
+        .long	0x00000000,0x3fe96023
+        .long	0xf2a6b8ef,0x3e7b9be8
+        .long	0x00000000,0x3fe97427
+        .long	0x1476f5e9,0x3e66b188
+        .long	0x00000000,0x3fe9923d
+        .long	0xdde10a6f,0x3e93c377
+        .long	0x00000000,0x3fe9b066
+        .long	0x4944a32c,0x3e817cad
+        .long	0x00000000,0x3fe9c48d
+        .long	0xc738e7ef,0x3e9927f2
+        .long	0x00000000,0x3fe9e2d7
+        .long	0xd25cfd94,0x3e7ccc41
+        .long	0x00000000,0x3fea0136
+        .long	0x2210e81b,0x3e8382fa
+        .long	0x00000000,0x3fea1580
+        .long	0x1e690ce2,0x3e7752a7
+        .long	0x00000000,0x3fea3400
+        .long	0x122315d2,0x3e94cfee
+        .long	0x00000000,0x3fea4860
+        .long	0xce98333b,0x3e80536e
+        .long	0x00000000,0x3fea6702
+        .long	0xc30f00e9,0x3e838b7e
+        .long	0x00000000,0x3fea7b79
+        .long	0x05b0c779,0x3e9dc380
+        .long	0x00000000,0x3fea9a3c
+        .long	0xdd6dd3fe,0x3e6be168
+        .long	0x00000000,0x3feab915
+        .long	0x26e0d276,0x3e966757
+        .long	0x00000000,0x3feacdb0
+        .long	0x0aad615c,0x3e880252
+        .long	0x00000000,0x3feaecab
+        .long	0x7927096a,0x3e607c31
+        .long	0x00000000,0x3feb015e
+        .long	0x53b3d90e,0x3e596513
+        .long	0x00000000,0x3feb161a
+        .long	0x8f2f0570,0x3e90ec3a
+        .long	0x00000000,0x3feb3545
+        .long	0x81193954,0x3e9cb640
+        .long	0x00000000,0x3feb4a18
+        .long	0x311e7236,0x3e936479
+        .long	0x00000000,0x3feb6967
+        .long	0x3a42a413,0x3e9210e8
+        .long	0x00000000,0x3feb7e52
+        .long	0x4a0daeb2,0x3e9a1717
+        .long	0x00000000,0x3feb9dc4
+        .long	0xce900653,0x3e925bb7
+        .long	0x00000000,0x3febb2c7
+        .long	0xb5087588,0x3e95dbb8
+        .long	0x00000000,0x3febd25d
+        .long	0x4a41204c,0x3e8d0aa9
+        .long	0x00000000,0x3febe778
+        .long	0x69a0d774,0x3e9c772f
+        .long	0x00000000,0x3febfc9c
+        .long	0x79d0a9a5,0x3e97b6a0
+        .long	0x00000000,0x3fec1c65
+        .long	0xd26f1a12,0x3e8f7402
+        .long	0x00000000,0x3fec31a2
+        .long	0x1243bc84,0x3e4db2f1
+        .long	0x00000000,0x3fec46e9
+        .long	0x477e1755,0x3e80dcc2
+        .long	0x00000000,0x3fec66e5
+        .long	0xc2f904c1,0x3e8b1e31
+        .long	0x00000000,0x3fec7c44
+        .long	0x1785b0c4,0x3e8fb619
+        .long	0x00000000,0x3fec91ad
+        .long	0xedb052ef,0x3e98832d
+        .long	0x00000000,0x3fecb1dd
+        .long	0x9e373618,0x3e98c822
+        .long	0x00000000,0x3fecc75f
+        .long	0x32954637,0x3e9a46e7
+        .long	0x00000000,0x3fecdceb
+        .long	0xf0e6b2a9,0x3e996305
+        .long	0x00000000,0x3fecfd50
+        .long	0x1a6614ee,0x3e68c160
+        .long	0x00000000,0x3fed12f6
+        .long	0x09e33b28,0x3e9229c4
+        .long	0x00000000,0x3fed28a5
+        .long	0xe53b994c,0x3e7f281b
+        .long	0x00000000,0x3fed3e5f
+        .long	0x1124ac35,0x3e9f27f3
+        .long	0x00000000,0x3fed5f08
+        .long	0x3d2fdc03,0x3e84e779
+        .long	0x00000000,0x3fed74dc
+        .long	0x1e93fd97,0x3e416c07
+        .long	0x00000000,0x3fed8aba
+        .long	0x91b415ef,0x3e654669
+        .long	0x00000000,0x3feda0a2
+        .long	0x6495f594,0x3e9712d4
+        .long	0x00000000,0x3fedc191
+        .long	0x40171789,0x3e9ca7b2
+        .long	0x00000000,0x3fedd793
+        .long	0xe8fc4323,0x3e929afa
+        .long	0x00000000,0x3fededa0
+        .long	0xeb03bd09,0x3e9a2e96
+        .long	0x00000000,0x3fee03b7
+        .long	0xca370ea2,0x3e94a63d
+        .long	0x00000000,0x3fee19d9
+        .long	0xe30512ec,0x3e6a3bcb
+        .long	0x00000000,0x3fee3006
+        .long	0x411c95ce,0x3e99d3ed
+        .long	0x00000000,0x3fee515c
+        .long	0x35cfaf8e,0x3e3e5b57
+        .long	0x00000000,0x3fee67a4
+        .long	0x5669df6a,0x3e9fca71
+        .long	0x00000000,0x3fee7df5
+        .long	0x04f19d94,0x3e9914e2
+        .long	0x00000000,0x3fee9452
+        .long	0xcaa19134,0x3e8b511c
+        .long	0x00000000,0x3feeaaba
+        .long	0x4bb3bfb1,0x3e9ed72f
+        .long	0x00000000,0x3feec12c
+        .long	0x3c29d75e,0x3e8be8d6
+        .long	0x00000000,0x3feed7aa
+        .long	0x97da24fd,0x3e9c55d9
+        .long	0x00000000,0x3feeee32
+        .long	0x983c68ea,0x3e7ddfb1
+        .long	0x00000000,0x3fef1014
+        .long	0xf4425883,0x3e83ce66
+        .long	0x00000000,0x3fef26b8
+        .long	0xf7857f23,0x3e9055c3
+        .long	0x00000000,0x3fef3d67
+        .long	0x2805b525,0x3e9c2223
+        .long	0x00000000,0x3fef5421
+        .long	0x0c347fcf,0x3e8d59ba
+        .long	0x00000000,0x3fef6ae7
+        .long	0x7c901c44,0x3e82b110
+        .long	0x00000000,0x3fef81b8
+        .long	0x74d1b482,0x3e8b1394
+        .long	0x00000000,0x3fef9894
+        .long	0x36fb9eb2,0x3e9ca75b
+        .long	0x00000000,0x3fefaf7b
+        .long	0x629b1b7e,0x3e981a0a
+        .long	0x00000000,0x3fefc66e
+        .long	0x7b8c1116,0x3e54cc20
+        .long	0x00000000,0x3fefdd6d
+        .long	0xc0babe05,0x3e99ac8b
+        .long	0x00000000,0x3feff476
+        .type	__dlog2_la___libm_log2_table_256,@object
+        .size	__dlog2_la___libm_log2_table_256,4096
+        .space 512, 0x00 	
+        .align 64
+
+__dlog2_la__P:
+        .long	3213235158
+        .long	1050233568
+        .long	1697350398
+        .long	3219592519
+        .long	3694740707
+        .long	1071564553
+        .long	1697260025
+        .long	3218543943
+        .long	2542794428
+        .long	1070757746
+        .long	2165113687
+        .long	3217999640
+        .long	0
+        .long	1073157447
+        .type	__dlog2_la__P,@object
+        .size	__dlog2_la__P,56
+        .space 8, 0x00 	
+        .align 16
+
+.FLT_16:
+        .long	0x00000000,0x43380000,0x00000000,0x43380000
+        .type	.FLT_16,@object
+        .size	.FLT_16,16
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core-sse.S
new file mode 100644
index 0000000000..882ee276f2
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core-sse.S
@@ -0,0 +1,20 @@ 
+/* SSE version of vectorized log2, 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_log2 _ZGVdN4v_log2_sse_wrapper
+#include "../svml_d_log24_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core.c
new file mode 100644
index 0000000000..7678090d11
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core.c
@@ -0,0 +1,27 @@ 
+/* Multiple versions of vectorized log2, 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_log2
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN4v_log2, __GI__ZGVdN4v_log2, __redirect__ZGVdN4v_log2)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core_avx2.S
new file mode 100644
index 0000000000..3960338639
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log24_core_avx2.S
@@ -0,0 +1,5321 @@ 
+/* Function log 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
+ *    log2(x) = k - log2(Rcp) + poly_approximation(R)
+ *       log2(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+ENTRY(_ZGVdN4v_log2_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       -4218816+__svml_dlog2_data_internal(%rip), %rax
+        vmovapd   %ymm0, %ymm3
+
+/* preserve mantissa, set input exponent to 2^(-10) */
+        vandpd    12800+__svml_dlog2_data_internal(%rip), %ymm3, %ymm4
+        vorpd     12928+__svml_dlog2_data_internal(%rip), %ymm4, %ymm2
+
+/* reciprocal approximation good to at least 11 bits */
+        vcvtpd2ps %ymm2, %xmm5
+
+/* exponent bits */
+        vpsrlq    $20, %ymm3, %ymm7
+        vmovups   %ymm15, 320(%rsp)
+        .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+
+/* exponent */
+        vmovupd   13312+__svml_dlog2_data_internal(%rip), %ymm15
+        vmovups   %ymm9, 96(%rsp)
+        vmovups   %ymm8, 32(%rsp)
+        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 12992+__svml_dlog2_data_internal(%rip), %ymm3, %ymm5
+        vcvtps2pd %xmm6, %ymm1
+        vcmpnle_uqpd 13056+__svml_dlog2_data_internal(%rip), %ymm3, %ymm6
+
+/* round reciprocal to nearest integer, will have 1+9 mantissa bits */
+        vroundpd  $0, %ymm1, %ymm1
+
+/* argument reduction */
+        vfmsub213pd 13248+__svml_dlog2_data_internal(%rip), %ymm1, %ymm2
+        .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
+
+/*
+ * prepare table index
+ * table lookup
+ */
+        vpsrlq    $40, %ymm1, %ymm9
+        vcmplt_oqpd %ymm1, %ymm15, %ymm1
+        vandpd    13376+__svml_dlog2_data_internal(%rip), %ymm1, %ymm15
+        vorpd     %ymm6, %ymm5, %ymm8
+
+/* combine and get argument value range mask */
+        vmovmskpd %ymm8, %edx
+        vmulpd    %ymm2, %ymm2, %ymm5
+        vextractf128 $1, %ymm7, %xmm0
+        vshufps   $221, %xmm0, %xmm7, %xmm4
+
+/* biased exponent in DP format */
+        vcvtdq2pd %xmm4, %ymm0
+
+/* polynomial */
+        vmovupd   12608+__svml_dlog2_data_internal(%rip), %ymm7
+        vorpd     13440+__svml_dlog2_data_internal(%rip), %ymm15, %ymm4
+        vsubpd    %ymm4, %ymm0, %ymm8
+        vmovupd   12672+__svml_dlog2_data_internal(%rip), %ymm0
+        vfmadd213pd 12640+__svml_dlog2_data_internal(%rip), %ymm2, %ymm7
+        vfmadd213pd 12704+__svml_dlog2_data_internal(%rip), %ymm2, %ymm0
+        vmulpd    12736+__svml_dlog2_data_internal(%rip), %ymm2, %ymm2
+        vfmadd213pd %ymm0, %ymm5, %ymm7
+        vfmadd213pd %ymm2, %ymm5, %ymm7
+        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
+        vinsertf128 $1, %xmm14, %ymm11, %ymm6
+
+/* reconstruction */
+        vaddpd    %ymm7, %ymm6, %ymm0
+        vaddpd    %ymm0, %ymm8, %ymm0
+        testl     %edx, %edx
+        jne       .LBL_1_3
+
+.LBL_1_2:
+        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
+
+.LBL_1_3:
+        vmovupd   %ymm3, 64(%rsp)
+        vmovupd   %ymm0, 128(%rsp)
+        je        .LBL_1_2
+        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
+
+.LBL_1_7:
+        btl       %r12d, %r13d
+        jc        .LBL_1_10
+
+.LBL_1_8:
+        incl      %r12d
+        cmpl      $4, %r12d
+        jl        .LBL_1_7
+        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       .LBL_1_2
+        .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
+
+.LBL_1_10:
+        lea       64(%rsp,%r12,8), %rdi
+        lea       128(%rsp,%r12,8), %rsi
+        call      __svml_dlog2_cout_rare_internal
+        jmp       .LBL_1_8
+
+END(_ZGVdN4v_log2_avx2)
+
+        .align    16,0x90
+
+__svml_dlog2_cout_rare_internal:
+
+        cfi_startproc
+
+        movq      $0, -64(%rsp)
+        movsd     -64(%rsp), %xmm0
+        movsd     (%rdi), %xmm1
+        movups    _zeros.201.0.0.1(%rip), %xmm2
+        subsd     %xmm0, %xmm1
+        movsd     %xmm1, -8(%rsp)
+        movups    %xmm2, -56(%rsp)
+        movups    _ones.201.0.0.1(%rip), %xmm0
+        movups    %xmm0, -40(%rsp)
+        movups    _infs.201.0.0.1(%rip), %xmm0
+        movups    %xmm0, -24(%rsp)
+        movl      -4(%rsp), %eax
+        cmpl      $2146435072, %eax
+        jae       .LBL_2_19
+        lea       -1072660480(%rax), %edx
+        cmpl      $53248, %edx
+        jae       .LBL_2_14
+        lea       -1072693232(%rax), %edx
+        cmpl      $24, %edx
+        jae       .LBL_2_13
+        movl      -8(%rsp), %edi
+        movl      %eax, %ecx
+        movl      %edi, %edx
+        shll      $11, %ecx
+        shrl      $21, %edx
+        orl       %edx, %ecx
+        addl      $-2147483646, %ecx
+        cmpl      $3, %ecx
+        jae       .LBL_2_12
+        addl      $-1072693248, %eax
+        orl       %edi, %eax
+        jne       .LBL_2_10
+        movq      -56(%rsp), %rax
+        movq      %rax, (%rsi)
+        jmp       .LBL_2_11
+
+.LBL_2_10:
+        movsd     -8(%rsp), %xmm0
+        movsd     16+__dlog2_la__Q3(%rip), %xmm2
+        movsd     24+__dlog2_la__Q3(%rip), %xmm1
+        addsd     -32(%rsp), %xmm0
+        mulsd     %xmm0, %xmm2
+        mulsd     %xmm0, %xmm1
+        addsd     8+__dlog2_la__Q3(%rip), %xmm2
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm0, -8(%rsp)
+        addsd     __dlog2_la__Q3(%rip), %xmm2
+        mulsd     %xmm0, %xmm2
+        addsd     %xmm1, %xmm2
+        movsd     %xmm2, (%rsi)
+
+.LBL_2_11:
+        xorl      %eax, %eax
+        ret
+
+.LBL_2_12:
+        movsd     -8(%rsp), %xmm2
+        xorl      %eax, %eax
+        movsd     16+__dlog2_la__Q2(%rip), %xmm1
+        movsd     24+__dlog2_la__Q2(%rip), %xmm3
+        addsd     -32(%rsp), %xmm2
+        movaps    %xmm2, %xmm0
+        mulsd     %xmm2, %xmm0
+        mulsd     %xmm0, %xmm1
+        mulsd     %xmm0, %xmm3
+        addsd     __dlog2_la__Q2(%rip), %xmm1
+        addsd     8+__dlog2_la__Q2(%rip), %xmm3
+        mulsd     %xmm2, %xmm1
+        mulsd     %xmm0, %xmm3
+        movsd     %xmm2, -8(%rsp)
+        addsd     %xmm1, %xmm3
+        movl      $0, -8(%rsp)
+        movsd     -8(%rsp), %xmm4
+        subsd     %xmm4, %xmm2
+        addsd     %xmm2, %xmm4
+        mulsd     32+__dlog2_la__Q2(%rip), %xmm4
+        addsd     %xmm3, %xmm4
+        movsd     %xmm4, (%rsi)
+        ret
+
+.LBL_2_13:
+        movsd     -8(%rsp), %xmm2
+        xorl      %eax, %eax
+        movsd     72+__dlog2_la__Q1(%rip), %xmm10
+        movsd     64+__dlog2_la__Q1(%rip), %xmm4
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm5
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm7
+        movsd     88+__dlog2_la__Q1(%rip), %xmm14
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm11
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm15
+        addsd     -32(%rsp), %xmm2
+        movaps    %xmm2, %xmm3
+        movaps    %xmm2, %xmm6
+        mulsd     %xmm2, %xmm3
+        movaps    %xmm2, %xmm0
+        mulsd     %xmm2, %xmm5
+        mulsd     __dlog2_la__TWO_32(%rip), %xmm6
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm3, %xmm4
+        addsd     56+__dlog2_la__Q1(%rip), %xmm10
+        addsd     48+__dlog2_la__Q1(%rip), %xmm4
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm3, %xmm4
+        addsd     40+__dlog2_la__Q1(%rip), %xmm10
+        addsd     32+__dlog2_la__Q1(%rip), %xmm4
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm3, %xmm4
+        addsd     24+__dlog2_la__Q1(%rip), %xmm10
+        addsd     16+__dlog2_la__Q1(%rip), %xmm4
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm2, %xmm4
+        movsd     __dlog2_la__TWO_32(%rip), %xmm3
+        addsd     %xmm4, %xmm10
+        mulsd     %xmm10, %xmm7
+        movaps    %xmm3, %xmm8
+        mulsd     %xmm10, %xmm8
+        movsd     %xmm5, -72(%rsp)
+        movsd     -72(%rsp), %xmm1
+        movsd     %xmm7, -72(%rsp)
+        subsd     %xmm6, %xmm1
+        movsd     -72(%rsp), %xmm9
+        subsd     %xmm1, %xmm0
+        subsd     %xmm8, %xmm9
+        movsd     %xmm1, -8(%rsp)
+        subsd     %xmm9, %xmm10
+        addsd     %xmm9, %xmm14
+        addsd     8+__dlog2_la__Q1(%rip), %xmm10
+        movaps    %xmm14, %xmm4
+        mulsd     %xmm0, %xmm4
+        mulsd     %xmm2, %xmm10
+        mulsd     %xmm1, %xmm14
+        addsd     %xmm0, %xmm1
+        addsd     %xmm10, %xmm4
+        movaps    %xmm4, %xmm12
+        movsd     80+__dlog2_la__Q1(%rip), %xmm9
+        addsd     %xmm14, %xmm12
+        mulsd     %xmm12, %xmm11
+        mulsd     %xmm3, %xmm12
+        movsd     %xmm11, -72(%rsp)
+        movsd     -72(%rsp), %xmm13
+        subsd     %xmm12, %xmm13
+        subsd     %xmm13, %xmm4
+        addsd     %xmm13, %xmm9
+        addsd     %xmm14, %xmm4
+        movaps    %xmm9, %xmm13
+        addsd     __dlog2_la__Q1(%rip), %xmm4
+        addsd     %xmm4, %xmm13
+        mulsd     %xmm13, %xmm15
+        mulsd     %xmm3, %xmm13
+        movsd     %xmm15, -72(%rsp)
+        movsd     -72(%rsp), %xmm14
+        subsd     %xmm13, %xmm14
+        mulsd     %xmm14, %xmm1
+        subsd     %xmm14, %xmm9
+        addsd     %xmm9, %xmm4
+        mulsd     %xmm2, %xmm4
+        addsd     %xmm4, %xmm1
+        movsd     %xmm1, (%rsi)
+        ret
+
+.LBL_2_14:
+        movl      %eax, %ecx
+        movl      %eax, %edx
+        shrl      $20, %ecx
+        andl      $1048575, %edx
+        addl      $-1023, %ecx
+        cmpl      $1048576, %eax
+        jae       .LBL_2_18
+        movl      %edx, -4(%rsp)
+        movl      -8(%rsp), %edx
+        orl       %edx, %eax
+        jne       .LBL_2_17
+        movsd     -32(%rsp), %xmm0
+        movl      $2, %eax
+        divsd     -56(%rsp), %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+.LBL_2_17:
+        movsd     -8(%rsp), %xmm0
+        mulsd     __dlog2_la__TWO_55(%rip), %xmm0
+        movsd     %xmm0, -8(%rsp)
+        movl      -4(%rsp), %edx
+        movl      %edx, %ecx
+        shrl      $20, %ecx
+        movl      %edx, %eax
+        addl      $-1078, %ecx
+
+.LBL_2_18:
+        shrl      $12, %eax
+        orl       $1072693248, %edx
+        movzbl    %al, %edi
+        pxor      %xmm7, %xmm7
+        movl      %edx, -4(%rsp)
+        lea       __dlog2_la___libm_rcp_table_256(%rip), %rdx
+        movsd     -8(%rsp), %xmm10
+        pxor      %xmm8, %xmm8
+        movl      $0, -8(%rsp)
+        lea       __dlog2_la___libm_log2_table_256(%rip), %rax
+        movsd     -8(%rsp), %xmm0
+        cvtss2sd  (%rdx,%rdi,4), %xmm7
+        cvtsi2sd  %ecx, %xmm8
+        subsd     %xmm0, %xmm10
+        mulsd     %xmm7, %xmm10
+        mulsd     %xmm0, %xmm7
+        movsd     40+__dlog2_la__P(%rip), %xmm4
+        movsd     32+__dlog2_la__P(%rip), %xmm3
+        movsd     48+__dlog2_la__P(%rip), %xmm5
+        movsd     __dlog2_la__TWO_32(%rip), %xmm6
+        shlq      $4, %rdi
+        addsd     -32(%rsp), %xmm7
+        movaps    %xmm7, %xmm2
+        mulsd     %xmm5, %xmm7
+        addsd     %xmm10, %xmm2
+        mulsd     %xmm5, %xmm10
+        addsd     %xmm7, %xmm6
+        movaps    %xmm2, %xmm1
+        mulsd     %xmm2, %xmm1
+        mulsd     %xmm1, %xmm4
+        mulsd     %xmm1, %xmm3
+        addsd     24+__dlog2_la__P(%rip), %xmm4
+        addsd     16+__dlog2_la__P(%rip), %xmm3
+        mulsd     %xmm1, %xmm4
+        mulsd     %xmm1, %xmm3
+        addsd     8+__dlog2_la__P(%rip), %xmm4
+        addsd     __dlog2_la__P(%rip), %xmm3
+        mulsd     %xmm1, %xmm4
+        mulsd     %xmm2, %xmm3
+        movsd     %xmm6, -72(%rsp)
+        addsd     %xmm3, %xmm4
+        addsd     8(%rax,%rdi), %xmm8
+        addsd     %xmm4, %xmm10
+        movsd     -72(%rsp), %xmm9
+        subsd     __dlog2_la__TWO_32(%rip), %xmm9
+        subsd     %xmm9, %xmm7
+        addsd     %xmm8, %xmm9
+        addsd     (%rax,%rdi), %xmm7
+        movsd     %xmm9, -8(%rsp)
+        xorl      %eax, %eax
+        addsd     %xmm7, %xmm10
+        addsd     %xmm9, %xmm10
+        movsd     %xmm10, (%rsi)
+        ret
+
+.LBL_2_19:
+        movl      %eax, %edx
+        andl      $2147483647, %edx
+        cmpl      $2146435072, %edx
+        ja        .LBL_2_28
+        jne       .LBL_2_22
+        cmpl      $0, -8(%rsp)
+        jne       .LBL_2_28
+
+.LBL_2_22:
+        testl     $-2147483648, %eax
+        je        .LBL_2_27
+        movl      -8(%rsp), %eax
+        orl       %eax, %edx
+        movsd     -56(%rsp), %xmm1
+        jne       .LBL_2_25
+        movsd     -32(%rsp), %xmm0
+        movl      $2, %eax
+        divsd     %xmm1, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+.LBL_2_25:
+        movsd     -24(%rsp), %xmm0
+        movl      $1, %eax
+        mulsd     %xmm1, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+.LBL_2_27:
+        movq      -8(%rsp), %rax
+        movq      %rax, (%rsi)
+        xorl      %eax, %eax
+        ret
+
+.LBL_2_28:
+        movsd     -8(%rsp), %xmm0
+        xorl      %eax, %eax
+        mulsd     -40(%rsp), %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_dlog2_cout_rare_internal,@function
+        .size	__svml_dlog2_cout_rare_internal,.-__svml_dlog2_cout_rare_internal
+        .section .rodata, "a"
+        .align 64
+        .align 16
+
+_zeros.201.0.0.1:
+        .long	0
+        .long	0
+        .long	0
+        .long	2147483648
+        .align 16
+
+_ones.201.0.0.1:
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	3220176896
+        .align 16
+
+_infs.201.0.0.1:
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	4293918720
+
+        .section .rodata, "a"
+        .space 16, 0x00 	
+        .align 64
+
+__svml_dlog2_data_internal:
+        .long	0
+        .long	3230658560
+        .long	0
+        .long	0
+        .long	3721504
+        .long	3230658564
+        .long	390392217
+        .long	1028833224
+        .long	4279173520
+        .long	3230658567
+        .long	3697526933
+        .long	3176772302
+        .long	4236484232
+        .long	3230658571
+        .long	3866369393
+        .long	3173573477
+        .long	4170683432
+        .long	3230658575
+        .long	2406066045
+        .long	1027614617
+        .long	4081833376
+        .long	3230658579
+        .long	872311433
+        .long	1029558987
+        .long	3969996056
+        .long	3230658583
+        .long	3455238169
+        .long	3176293652
+        .long	3835233240
+        .long	3230658587
+        .long	3122028036
+        .long	3175399406
+        .long	3677606424
+        .long	3230658591
+        .long	3775975107
+        .long	3175065502
+        .long	3497176864
+        .long	3230658595
+        .long	1120402784
+        .long	3176065974
+        .long	3294005576
+        .long	3230658599
+        .long	3607704643
+        .long	1027775251
+        .long	3068153320
+        .long	3230658603
+        .long	3174454558
+        .long	1028715334
+        .long	2819680616
+        .long	3230658607
+        .long	1714361654
+        .long	3176145083
+        .long	2548647760
+        .long	3230658611
+        .long	1446250901
+        .long	1029564267
+        .long	2255114776
+        .long	3230658615
+        .long	4080025744
+        .long	1029178975
+        .long	1939141472
+        .long	3230658619
+        .long	841987973
+        .long	1029054409
+        .long	1600787408
+        .long	3230658623
+        .long	399562616
+        .long	1024114381
+        .long	1240111912
+        .long	3230658627
+        .long	3503181124
+        .long	3176697658
+        .long	857174080
+        .long	3230658631
+        .long	1254487117
+        .long	3175371962
+        .long	452032760
+        .long	3230658635
+        .long	4205447303
+        .long	3176492920
+        .long	24746584
+        .long	3230658639
+        .long	1994290281
+        .long	1028250505
+        .long	3870341224
+        .long	3230658642
+        .long	3457675008
+        .long	3176979311
+        .long	3398940264
+        .long	3230658646
+        .long	3225497353
+        .long	3176623592
+        .long	2905568928
+        .long	3230658650
+        .long	2126923612
+        .long	1026561068
+        .long	2390284912
+        .long	3230658654
+        .long	4230405746
+        .long	3172886618
+        .long	1853145696
+        .long	3230658658
+        .long	2504030371
+        .long	3175134796
+        .long	1294208528
+        .long	3230658662
+        .long	2470849917
+        .long	3177172451
+        .long	713530440
+        .long	3230658666
+        .long	4008627283
+        .long	3176362565
+        .long	111168232
+        .long	3230658670
+        .long	3947344950
+        .long	1028309766
+        .long	3782145768
+        .long	3230658673
+        .long	3547697003
+        .long	3176800217
+        .long	3136584832
+        .long	3230658677
+        .long	2863038012
+        .long	1025769979
+        .long	2469508848
+        .long	3230658681
+        .long	4101655891
+        .long	1028623806
+        .long	1780973736
+        .long	3230658685
+        .long	180044497
+        .long	1028727134
+        .long	1071035200
+        .long	3230658689
+        .long	1240324917
+        .long	1029164642
+        .long	339748720
+        .long	3230658693
+        .long	3339205157
+        .long	3174606851
+        .long	3882136872
+        .long	3230658696
+        .long	3953461054
+        .long	1027744139
+        .long	3108320112
+        .long	3230658700
+        .long	4056294543
+        .long	1027898214
+        .long	2313320576
+        .long	3230658704
+        .long	2017978773
+        .long	3176388905
+        .long	1497192904
+        .long	3230658708
+        .long	2630318761
+        .long	3172120215
+        .long	659991504
+        .long	3230658712
+        .long	1173149442
+        .long	3176476805
+        .long	4096737888
+        .long	3230658715
+        .long	2084279151
+        .long	3176632233
+        .long	3217551464
+        .long	3230658719
+        .long	147752605
+        .long	3175187076
+        .long	2317453320
+        .long	3230658723
+        .long	3463598502
+        .long	1029004710
+        .long	1396497032
+        .long	3230658727
+        .long	348113666
+        .long	3175216077
+        .long	454735992
+        .long	3230658731
+        .long	2797541458
+        .long	3172926093
+        .long	3787190664
+        .long	3230658734
+        .long	3810950996
+        .long	3175936077
+        .long	2803979432
+        .long	3230658738
+        .long	1880742672
+        .long	3175438052
+        .long	1800122360
+        .long	3230658742
+        .long	185990116
+        .long	1025407904
+        .long	775672016
+        .long	3230658746
+        .long	3308007208
+        .long	1029438945
+        .long	4025648056
+        .long	3230658749
+        .long	3792627158
+        .long	1028183615
+        .long	2960168064
+        .long	3230658753
+        .long	2550675711
+        .long	1029174609
+        .long	1874251296
+        .long	3230658757
+        .long	522796161
+        .long	3175188745
+        .long	767949536
+        .long	3230658761
+        .long	99639657
+        .long	1028478111
+        .long	3936281640
+        .long	3230658764
+        .long	1618272739
+        .long	3176759878
+        .long	2789364408
+        .long	3230658768
+        .long	2976648779
+        .long	3177001126
+        .long	1622216320
+        .long	3230658772
+        .long	995205633
+        .long	3174119615
+        .long	434888360
+        .long	3230658776
+        .long	201851350
+        .long	3175435880
+        .long	3522398632
+        .long	3230658779
+        .long	1631082790
+        .long	1029197235
+        .long	2294863136
+        .long	3230658783
+        .long	1386753027
+        .long	3176550178
+        .long	1047299600
+        .long	3230658787
+        .long	1591070772
+        .long	3176954051
+        .long	4074725544
+        .long	3230658790
+        .long	701119861
+        .long	3176328095
+        .long	2787256416
+        .long	3230658794
+        .long	3223019512
+        .long	1028866240
+        .long	1479909352
+        .long	3230658798
+        .long	2952422582
+        .long	1024508588
+        .long	152734024
+        .long	3230658802
+        .long	288366270
+        .long	3175075539
+        .long	3100747208
+        .long	3230658805
+        .long	1494938379
+        .long	1027731037
+        .long	1734063600
+        .long	3230658809
+        .long	1796105868
+        .long	1028158292
+        .long	347699608
+        .long	3230658813
+        .long	2172100889
+        .long	1029347730
+        .long	3236671448
+        .long	3230658816
+        .long	321576108
+        .long	1027051181
+        .long	1811093280
+        .long	3230658820
+        .long	3159981384
+        .long	1028760888
+        .long	365980952
+        .long	3230658824
+        .long	4083088766
+        .long	3176402658
+        .long	3196350152
+        .long	3230658827
+        .long	1966791372
+        .long	3176779668
+        .long	1712314488
+        .long	3230658831
+        .long	3599116437
+        .long	3176268195
+        .long	208889280
+        .long	3230658835
+        .long	3498192131
+        .long	1027096101
+        .long	2981089664
+        .long	3230658838
+        .long	3152711547
+        .long	3171644297
+        .long	1439028720
+        .long	3230658842
+        .long	142239255
+        .long	3176002168
+        .long	4172688536
+        .long	3230658845
+        .long	2394955302
+        .long	3175668459
+        .long	2592181840
+        .long	3230658849
+        .long	772412634
+        .long	1029163313
+        .long	992523056
+        .long	3230658853
+        .long	239947902
+        .long	3177123772
+        .long	3668726472
+        .long	3230658856
+        .long	3993011847
+        .long	3173133053
+        .long	2030904280
+        .long	3230658860
+        .long	1203564427
+        .long	1024968471
+        .long	374070408
+        .long	3230658864
+        .long	3495014224
+        .long	1029532111
+        .long	2993238600
+        .long	3230658867
+        .long	1693008698
+        .long	1029300208
+        .long	1298520552
+        .long	3230658871
+        .long	229843979
+        .long	1028616611
+        .long	3879896968
+        .long	3230658874
+        .long	2840741382
+        .long	3177076399
+        .long	2147479216
+        .long	3230658878
+        .long	1315931416
+        .long	3175394520
+        .long	396280360
+        .long	3230658882
+        .long	2917523745
+        .long	3176241221
+        .long	2921313312
+        .long	3230658885
+        .long	954068080
+        .long	3176872778
+        .long	1132688928
+        .long	3230658889
+        .long	1539389383
+        .long	3177096379
+        .long	3620387088
+        .long	3230658892
+        .long	3213801166
+        .long	1029050611
+        .long	1794518304
+        .long	3230658896
+        .long	224494799
+        .long	1029157143
+        .long	4245062128
+        .long	3230658899
+        .long	2292409870
+        .long	1029149094
+        .long	2382128760
+        .long	3230658903
+        .long	4172000302
+        .long	1029521900
+        .long	500730120
+        .long	3230658907
+        .long	1566889331
+        .long	1022410137
+        .long	2895877976
+        .long	3230658910
+        .long	3447287041
+        .long	3177068115
+        .long	977682048
+        .long	3230658914
+        .long	6222552
+        .long	3176756595
+        .long	3336121072
+        .long	3230658917
+        .long	3594755137
+        .long	3176063522
+        .long	1381304448
+        .long	3230658921
+        .long	1172789584
+        .long	1029247928
+        .long	3703210584
+        .long	3230658924
+        .long	2721646462
+        .long	3176500859
+        .long	1711948584
+        .long	3230658928
+        .long	1244442214
+        .long	1029312023
+        .long	3997496536
+        .long	3230658931
+        .long	272480018
+        .long	1025685723
+        .long	1969963224
+        .long	3230658935
+        .long	1208505284
+        .long	1029490192
+        .long	4219326432
+        .long	3230658938
+        .long	3360578575
+        .long	3174058635
+        .long	2155694632
+        .long	3230658942
+        .long	2245681021
+        .long	1026963921
+        .long	74078008
+        .long	3230658946
+        .long	3496835215
+        .long	3176351493
+        .long	2269486608
+        .long	3230658949
+        .long	2995409405
+        .long	3176402213
+        .long	152028432
+        .long	3230658953
+        .long	2946959370
+        .long	3171080196
+        .long	2311680512
+        .long	3230658956
+        .long	811079866
+        .long	1029646941
+        .long	158550536
+        .long	3230658960
+        .long	2634400740
+        .long	3174719534
+        .long	2282615248
+        .long	3230658963
+        .long	3704965237
+        .long	3176349039
+        .long	93982048
+        .long	3230658967
+        .long	2840134146
+        .long	1025829616
+        .long	2182627360
+        .long	3230658970
+        .long	1838738265
+        .long	3176564070
+        .long	4253625592
+        .long	3230658973
+        .long	1173390987
+        .long	3176177543
+        .long	2012050992
+        .long	3230658977
+        .long	1084871272
+        .long	3173895075
+        .long	4047879552
+        .long	3230658980
+        .long	3493007974
+        .long	1028200188
+        .long	1771217928
+        .long	3230658984
+        .long	866422899
+        .long	3176434896
+        .long	3772041832
+        .long	3230658987
+        .long	241037730
+        .long	3176289012
+        .long	1460457632
+        .long	3230658991
+        .long	1003496008
+        .long	3176406370
+        .long	3426440744
+        .long	3230658994
+        .long	2184560753
+        .long	3173354948
+        .long	1080097248
+        .long	3230658998
+        .long	4029600754
+        .long	3175828440
+        .long	3011402280
+        .long	3230659001
+        .long	2827800738
+        .long	1028558112
+        .long	630461632
+        .long	3230659005
+        .long	1669381205
+        .long	1027303067
+        .long	2527250152
+        .long	3230659008
+        .long	1507135636
+        .long	3175470401
+        .long	111873368
+        .long	3230659012
+        .long	4290552909
+        .long	1029305988
+        .long	1974305832
+        .long	3230659015
+        .long	491815833
+        .long	1028930331
+        .long	3819620088
+        .long	3230659018
+        .long	974322798
+        .long	1029451925
+        .long	1352888528
+        .long	3230659022
+        .long	1335536991
+        .long	3172426672
+        .long	3164085312
+        .long	3230659025
+        .long	2773436098
+        .long	1029127279
+        .long	663315256
+        .long	3230659029
+        .long	2684187733
+        .long	1028181243
+        .long	2440552240
+        .long	3230659032
+        .long	2161571790
+        .long	1027765615
+        .long	4200868112
+        .long	3230659035
+        .long	3277047205
+        .long	3174837243
+        .long	1649334592
+        .long	3230659039
+        .long	4124850187
+        .long	1025335396
+        .long	3375925144
+        .long	3230659042
+        .long	3003584975
+        .long	1021519814
+        .long	790743920
+        .long	3230659046
+        .long	1415914940
+        .long	1024723625
+        .long	2483764120
+        .long	3230659049
+        .long	1136793699
+        .long	3172319743
+        .long	4160056928
+        .long	3230659052
+        .long	2148664472
+        .long	1029245862
+        .long	1524693384
+        .long	3230659056
+        .long	3056467792
+        .long	1028886726
+        .long	3167646296
+        .long	3230659059
+        .long	142099839
+        .long	1028497609
+        .long	499019152
+        .long	3230659063
+        .long	3699751308
+        .long	1026582910
+        .long	2108784496
+        .long	3230659066
+        .long	2287012473
+        .long	1023727633
+        .long	3702012848
+        .long	3230659069
+        .long	2554126940
+        .long	3177131484
+        .long	983774616
+        .long	3230659073
+        .long	263088196
+        .long	1028047407
+        .long	2544041936
+        .long	3230659076
+        .long	1900821763
+        .long	3176347035
+        .long	4087884960
+        .long	3230659079
+        .long	1428486283
+        .long	3175804842
+        .long	1320373696
+        .long	3230659083
+        .long	1249103901
+        .long	1027194698
+        .long	2831479912
+        .long	3230659086
+        .long	4024111846
+        .long	1027875195
+        .long	31306072
+        .long	3230659090
+        .long	2178201336
+        .long	1028790706
+        .long	1509823688
+        .long	3230659093
+        .long	863228784
+        .long	3177069330
+        .long	2972102280
+        .long	3230659096
+        .long	2800600011
+        .long	3176772901
+        .long	123211224
+        .long	3230659100
+        .long	2000143580
+        .long	3175827790
+        .long	1553121664
+        .long	3230659103
+        .long	3598597716
+        .long	3174664631
+        .long	2966902736
+        .long	3230659106
+        .long	160093135
+        .long	1028156559
+        .long	69623448
+        .long	3230659110
+        .long	1838028210
+        .long	1028805781
+        .long	1451254576
+        .long	3230659113
+        .long	171321689
+        .long	1027544179
+        .long	2816864888
+        .long	3230659116
+        .long	48443041
+        .long	3175147757
+        .long	4166490328
+        .long	3230659119
+        .long	2602435169
+        .long	3175152427
+        .long	1205199416
+        .long	3230659123
+        .long	3778841539
+        .long	3176922801
+        .long	2522962456
+        .long	3230659126
+        .long	69075835
+        .long	1029409055
+        .long	3824847712
+        .long	3230659129
+        .long	660089785
+        .long	3174442320
+        .long	815923368
+        .long	3230659133
+        .long	2460308321
+        .long	1029094234
+        .long	2086159344
+        .long	3230659136
+        .long	3024187972
+        .long	3174141999
+        .long	3340623576
+        .long	3230659139
+        .long	1011494086
+        .long	3176827516
+        .long	284383880
+        .long	3230659143
+        .long	3868463126
+        .long	3173236251
+        .long	1507409832
+        .long	3230659146
+        .long	4210695494
+        .long	1029032026
+        .long	2714769000
+        .long	3230659149
+        .long	2695744497
+        .long	3176876805
+        .long	3906496160
+        .long	3230659152
+        .long	343340875
+        .long	1024675097
+        .long	787658648
+        .long	3230659156
+        .long	2519963105
+        .long	1029601486
+        .long	1948225576
+        .long	3230659159
+        .long	2834660375
+        .long	1027576345
+        .long	3093264072
+        .long	3230659162
+        .long	1202481435
+        .long	1029504111
+        .long	4222808424
+        .long	3230659165
+        .long	548784753
+        .long	1028305847
+        .long	1041925528
+        .long	3230659169
+        .long	2583607066
+        .long	1028957355
+        .long	2140584040
+        .long	3230659172
+        .long	2642007844
+        .long	3175275174
+        .long	3223850632
+        .long	3230659175
+        .long	352423749
+        .long	3174321553
+        .long	4291759144
+        .long	3230659178
+        .long	339552960
+        .long	3176556350
+        .long	1049376024
+        .long	3230659182
+        .long	2660353592
+        .long	1027255432
+        .long	2086669480
+        .long	3230659185
+        .long	1104152295
+        .long	1028453979
+        .long	3108705728
+        .long	3230659188
+        .long	540614262
+        .long	3175907859
+        .long	4115518184
+        .long	3230659191
+        .long	3806184097
+        .long	1028762582
+        .long	812172832
+        .long	3230659195
+        .long	308602627
+        .long	3173981149
+        .long	1788637456
+        .long	3230659198
+        .long	1325608725
+        .long	3176678267
+        .long	2749977840
+        .long	3230659201
+        .long	990288509
+        .long	3176107526
+        .long	3696226952
+        .long	3230659204
+        .long	1916429866
+        .long	1028814544
+        .long	332450344
+        .long	3230659208
+        .long	3336107755
+        .long	3176608247
+        .long	1248615376
+        .long	3230659211
+        .long	4035119084
+        .long	3176707463
+        .long	2149787400
+        .long	3230659214
+        .long	2050304943
+        .long	1029173658
+        .long	3035998944
+        .long	3230659217
+        .long	2951948176
+        .long	1029115289
+        .long	3907282448
+        .long	3230659220
+        .long	2907658715
+        .long	1028586234
+        .long	468702944
+        .long	3230659224
+        .long	674698596
+        .long	3175213847
+        .long	1310227256
+        .long	3230659227
+        .long	3034611927
+        .long	1027966053
+        .long	2136920200
+        .long	3230659230
+        .long	2687871008
+        .long	1028041908
+        .long	2948813792
+        .long	3230659233
+        .long	596497875
+        .long	3174693992
+        .long	3745939952
+        .long	3230659236
+        .long	3329560030
+        .long	1028812176
+        .long	233363184
+        .long	3230659240
+        .long	1501722877
+        .long	1028149340
+        .long	1001049792
+        .long	3230659243
+        .long	3907078376
+        .long	1028788204
+        .long	1754064080
+        .long	3230659246
+        .long	946102851
+        .long	1024784319
+        .long	2492437552
+        .long	3230659249
+        .long	2477139935
+        .long	3176834550
+        .long	3216201616
+        .long	3230659252
+        .long	3861383265
+        .long	3175556568
+        .long	3925387568
+        .long	3230659255
+        .long	1708411866
+        .long	1028140551
+        .long	325059304
+        .long	3230659259
+        .long	1571249374
+        .long	3176283508
+        .long	1005182528
+        .long	3230659262
+        .long	1100083059
+        .long	3174229259
+        .long	1670820936
+        .long	3230659265
+        .long	3756028850
+        .long	3175680086
+        .long	2322005432
+        .long	3230659268
+        .long	1631050573
+        .long	3176213330
+        .long	2958766824
+        .long	3230659271
+        .long	1907582341
+        .long	1029438684
+        .long	3581135800
+        .long	3230659274
+        .long	2950542199
+        .long	3173786866
+        .long	4189142976
+        .long	3230659277
+        .long	114954998
+        .long	3177096717
+        .long	487851568
+        .long	3230659281
+        .long	2653253061
+        .long	3176673071
+        .long	1067226576
+        .long	3230659284
+        .long	1766996068
+        .long	3175354818
+        .long	1632331016
+        .long	3230659287
+        .long	3950907539
+        .long	3175157886
+        .long	2183195112
+        .long	3230659290
+        .long	2440105690
+        .long	1029327524
+        .long	2719848976
+        .long	3230659293
+        .long	341115768
+        .long	1028056330
+        .long	3242322640
+        .long	3230659296
+        .long	3179572713
+        .long	3175645667
+        .long	3750646040
+        .long	3230659299
+        .long	935147933
+        .long	3175536948
+        .long	4244849008
+        .long	3230659302
+        .long	3916511820
+        .long	3176877809
+        .long	429994000
+        .long	3230659306
+        .long	3978671087
+        .long	1028263473
+        .long	896045240
+        .long	3230659309
+        .long	230228243
+        .long	3176823382
+        .long	1348065008
+        .long	3230659312
+        .long	1603302089
+        .long	1028781499
+        .long	1786082752
+        .long	3230659315
+        .long	1397794181
+        .long	1029625122
+        .long	2210127840
+        .long	3230659318
+        .long	3655812571
+        .long	3172766563
+        .long	2620229560
+        .long	3230659321
+        .long	2385997325
+        .long	1026727032
+        .long	3016417088
+        .long	3230659324
+        .long	697404896
+        .long	3176786781
+        .long	3398719528
+        .long	3230659327
+        .long	3231162475
+        .long	3175777962
+        .long	3767165880
+        .long	3230659330
+        .long	2548610257
+        .long	1028922412
+        .long	4121785048
+        .long	3230659333
+        .long	3962667547
+        .long	1027852637
+        .long	167638560
+        .long	3230659337
+        .long	3554092856
+        .long	3176729278
+        .long	494689752
+        .long	3230659340
+        .long	2911955219
+        .long	1028435709
+        .long	807999952
+        .long	3230659343
+        .long	3789336944
+        .long	3176103637
+        .long	1107597728
+        .long	3230659346
+        .long	3750507527
+        .long	1027365134
+        .long	1393511536
+        .long	3230659349
+        .long	1827158241
+        .long	1028945876
+        .long	1665769752
+        .long	3230659352
+        .long	3306289784
+        .long	1029589760
+        .long	1924400656
+        .long	3230659355
+        .long	1510741592
+        .long	3176411966
+        .long	2169432464
+        .long	3230659358
+        .long	2294259978
+        .long	1025847307
+        .long	2400893272
+        .long	3230659361
+        .long	539270871
+        .long	3176922069
+        .long	2618811120
+        .long	3230659364
+        .long	3685107127
+        .long	1027828508
+        .long	2823213928
+        .long	3230659367
+        .long	3271061162
+        .long	3176969831
+        .long	3014129568
+        .long	3230659370
+        .long	1787956575
+        .long	1028863184
+        .long	3191585784
+        .long	3230659373
+        .long	716587587
+        .long	3176400736
+        .long	3355610272
+        .long	3230659376
+        .long	2630361878
+        .long	3176313132
+        .long	3506230624
+        .long	3230659379
+        .long	3623957067
+        .long	1024822653
+        .long	3643474344
+        .long	3230659382
+        .long	3940980068
+        .long	3174610269
+        .long	3767368864
+        .long	3230659385
+        .long	499400003
+        .long	1028297429
+        .long	3877941520
+        .long	3230659388
+        .long	3143491592
+        .long	1028937135
+        .long	3975219568
+        .long	3230659391
+        .long	1265600507
+        .long	1027302761
+        .long	4059230184
+        .long	3230659394
+        .long	3423756523
+        .long	3174759308
+        .long	4130000464
+        .long	3230659397
+        .long	2126977913
+        .long	1029294479
+        .long	4187557400
+        .long	3230659400
+        .long	1341359213
+        .long	3176282153
+        .long	4231927936
+        .long	3230659403
+        .long	142327675
+        .long	1028516775
+        .long	4263138896
+        .long	3230659406
+        .long	3537045733
+        .long	3176611365
+        .long	4281217056
+        .long	3230659409
+        .long	804943611
+        .long	3175398448
+        .long	4286189088
+        .long	3230659412
+        .long	2300440576
+        .long	3173821797
+        .long	4278081592
+        .long	3230659415
+        .long	650140298
+        .long	1028345827
+        .long	4256921080
+        .long	3230659418
+        .long	258434203
+        .long	1024439656
+        .long	4222733992
+        .long	3230659421
+        .long	2845277783
+        .long	3175806217
+        .long	4175546688
+        .long	3230659424
+        .long	486214358
+        .long	1021995298
+        .long	4115385440
+        .long	3230659427
+        .long	362801877
+        .long	1027412332
+        .long	4042276440
+        .long	3230659430
+        .long	3220639070
+        .long	3177080040
+        .long	3956245816
+        .long	3230659433
+        .long	3857709974
+        .long	3176973100
+        .long	3857319608
+        .long	3230659436
+        .long	300219354
+        .long	1029159912
+        .long	3745523760
+        .long	3230659439
+        .long	2500015736
+        .long	3170135365
+        .long	3620884168
+        .long	3230659442
+        .long	3361192444
+        .long	1028410302
+        .long	3483426624
+        .long	3230659445
+        .long	962673197
+        .long	3176780787
+        .long	3333176872
+        .long	3230659448
+        .long	466308644
+        .long	1029193870
+        .long	3170160544
+        .long	3230659451
+        .long	1036576323
+        .long	1029692281
+        .long	2994403208
+        .long	3230659454
+        .long	1262493470
+        .long	3177123208
+        .long	2805930376
+        .long	3230659457
+        .long	2116833460
+        .long	3176824531
+        .long	2604767464
+        .long	3230659460
+        .long	4130386607
+        .long	1029379265
+        .long	2390939800
+        .long	3230659463
+        .long	3203410687
+        .long	1028676250
+        .long	2164472656
+        .long	3230659466
+        .long	1369952708
+        .long	3175783357
+        .long	1925391232
+        .long	3230659469
+        .long	879032334
+        .long	1028096866
+        .long	1673720632
+        .long	3230659472
+        .long	4136287431
+        .long	3171822968
+        .long	1409485904
+        .long	3230659475
+        .long	1676116683
+        .long	1027498055
+        .long	1132712008
+        .long	3230659478
+        .long	2215341913
+        .long	3175421168
+        .long	843423840
+        .long	3230659481
+        .long	1029715364
+        .long	3176433781
+        .long	541646224
+        .long	3230659484
+        .long	2606758269
+        .long	1029491721
+        .long	227403888
+        .long	3230659487
+        .long	2201115753
+        .long	1027951322
+        .long	4195688808
+        .long	3230659489
+        .long	4218769073
+        .long	1025395495
+        .long	3856590992
+        .long	3230659492
+        .long	434820483
+        .long	1029228152
+        .long	3505102248
+        .long	3230659495
+        .long	3898434635
+        .long	3176361218
+        .long	3141247048
+        .long	3230659498
+        .long	3118973316
+        .long	1029656842
+        .long	2765049752
+        .long	3230659501
+        .long	2996229621
+        .long	1029012421
+        .long	2376534672
+        .long	3230659504
+        .long	2407486153
+        .long	3175647547
+        .long	1975726056
+        .long	3230659507
+        .long	2587350529
+        .long	1029480630
+        .long	1562648048
+        .long	3230659510
+        .long	4294469746
+        .long	3176242263
+        .long	1137324760
+        .long	3230659513
+        .long	3819488195
+        .long	1023708576
+        .long	699780200
+        .long	3230659516
+        .long	116131792
+        .long	3177042014
+        .long	250038336
+        .long	3230659519
+        .long	1551898075
+        .long	1029096746
+        .long	4083090328
+        .long	3230659521
+        .long	2844986349
+        .long	1028973019
+        .long	3609025400
+        .long	3230659524
+        .long	2591634103
+        .long	1026318183
+        .long	3122834592
+        .long	3230659527
+        .long	2325851864
+        .long	3175053154
+        .long	2114169952
+        .long	3230659533
+        .long	790463889
+        .long	3176974498
+        .long	1057284960
+        .long	3230659539
+        .long	1675706223
+        .long	1028317332
+        .long	4247334344
+        .long	3230659544
+        .long	4226562338
+        .long	1027765102
+        .long	3094569872
+        .long	3230659550
+        .long	2366937865
+        .long	3168809551
+        .long	1894144112
+        .long	3230659556
+        .long	1267587328
+        .long	3176269982
+        .long	646241264
+        .long	3230659562
+        .long	1575621247
+        .long	3177156253
+        .long	3646011760
+        .long	3230659567
+        .long	2645567153
+        .long	3175833815
+        .long	2303703080
+        .long	3230659573
+        .long	1827286098
+        .long	1027997469
+        .long	914463544
+        .long	3230659579
+        .long	752350642
+        .long	1029527042
+        .long	3773440424
+        .long	3230659584
+        .long	160463655
+        .long	3176715839
+        .long	2290878096
+        .long	3230659590
+        .long	909081824
+        .long	3175933674
+        .long	761921776
+        .long	3230659596
+        .long	2905535403
+        .long	1028759497
+        .long	3481715656
+        .long	3230659601
+        .long	3887423264
+        .long	3176529033
+        .long	1860501056
+        .long	3230659607
+        .long	2811353534
+        .long	3176342172
+        .long	193420168
+        .long	3230659613
+        .long	3875218385
+        .long	1029601075
+        .long	2775614176
+        .long	3230659618
+        .long	915846711
+        .long	1029206337
+        .long	1017321408
+        .long	3230659624
+        .long	2817823673
+        .long	1028329866
+        .long	3508648392
+        .long	3230659629
+        .long	2457221968
+        .long	1028382518
+        .long	1659831496
+        .long	3230659635
+        .long	1953946979
+        .long	1028155361
+        .long	4060975304
+        .long	3230659640
+        .long	1103591667
+        .long	3177007543
+        .long	2122314280
+        .long	3230659646
+        .long	1917780451
+        .long	1029286965
+        .long	138983784
+        .long	3230659652
+        .long	3695788845
+        .long	3176288716
+        .long	2406118280
+        .long	3230659657
+        .long	1052548871
+        .long	1029099285
+        .long	333949368
+        .long	3230659663
+        .long	1769629084
+        .long	1028668282
+        .long	2512576920
+        .long	3230659668
+        .long	2829899890
+        .long	3177160765
+        .long	352230712
+        .long	3230659674
+        .long	190593276
+        .long	3177082107
+        .long	2443008776
+        .long	3230659679
+        .long	308933071
+        .long	1028033311
+        .long	195139040
+        .long	3230659685
+        .long	2406662387
+        .long	3174119994
+        .long	2198717736
+        .long	3230659690
+        .long	3951897556
+        .long	1025531185
+        .long	4158938296
+        .long	3230659695
+        .long	3747433104
+        .long	3176582029
+        .long	1780993280
+        .long	3230659701
+        .long	1185733823
+        .long	1025977389
+        .long	3654976232
+        .long	3230659706
+        .long	2876938397
+        .long	3175696111
+        .long	1191110656
+        .long	3230659712
+        .long	1221563196
+        .long	3173251774
+        .long	2979488360
+        .long	3230659717
+        .long	2581073785
+        .long	1028588464
+        .long	430331104
+        .long	3230659723
+        .long	1522002357
+        .long	1028645059
+        .long	2133728976
+        .long	3230659728
+        .long	1060437513
+        .long	3176445060
+        .long	3794869336
+        .long	3230659733
+        .long	1092840036
+        .long	3177052773
+        .long	1118938696
+        .long	3230659739
+        .long	2353106107
+        .long	1029111084
+        .long	2696024600
+        .long	3230659744
+        .long	4060627338
+        .long	1029597310
+        .long	4231311888
+        .long	3230659749
+        .long	3779876129
+        .long	1028286236
+        .long	1429984576
+        .long	3230659755
+        .long	48483734
+        .long	1027710210
+        .long	2882127744
+        .long	3230659760
+        .long	445208449
+        .long	1029139348
+        .long	4292923760
+        .long	3230659765
+        .long	2295142960
+        .long	3176049005
+        .long	1367554208
+        .long	3230659771
+        .long	1540635558
+        .long	1028483904
+        .long	2696101728
+        .long	3230659776
+        .long	352999095
+        .long	3169858434
+        .long	3983746296
+        .long	3230659781
+        .long	1810565431
+        .long	3175091705
+        .long	935667088
+        .long	3230659787
+        .long	349039573
+        .long	3176928791
+        .long	2141944392
+        .long	3230659792
+        .long	3659173497
+        .long	3174252174
+        .long	3307755816
+        .long	3230659797
+        .long	58840479
+        .long	1028893602
+        .long	138278192
+        .long	3230659803
+        .long	2062870396
+        .long	3175475632
+        .long	1223589488
+        .long	3230659808
+        .long	3079310401
+        .long	3176348925
+        .long	2268865008
+        .long	3230659813
+        .long	4107437042
+        .long	3177028487
+        .long	3274246600
+        .long	3230659818
+        .long	3740178426
+        .long	3176375927
+        .long	4239875352
+        .long	3230659823
+        .long	1575862792
+        .long	3176856991
+        .long	870924320
+        .long	3230659829
+        .long	1293986679
+        .long	1021959545
+        .long	1757467688
+        .long	3230659834
+        .long	1268894705
+        .long	3177114344
+        .long	2604677040
+        .long	3230659839
+        .long	1483899592
+        .long	3176088657
+        .long	3412690504
+        .long	3230659844
+        .long	1351083799
+        .long	3175751585
+        .long	4181645488
+        .long	3230659849
+        .long	1119433498
+        .long	3177131776
+        .long	616711392
+        .long	3230659855
+        .long	4175979329
+        .long	3173786505
+        .long	1307958768
+        .long	3230659860
+        .long	2068378112
+        .long	3176493003
+        .long	1960555592
+        .long	3230659865
+        .long	178688056
+        .long	1027848710
+        .long	2574636408
+        .long	3230659870
+        .long	2359427625
+        .long	1028095731
+        .long	3150335072
+        .long	3230659875
+        .long	446961290
+        .long	1028242607
+        .long	3687784736
+        .long	3230659880
+        .long	2606786686
+        .long	3176252768
+        .long	4187117872
+        .long	3230659885
+        .long	147991783
+        .long	3176229143
+        .long	353498960
+        .long	3230659891
+        .long	2565649361
+        .long	1026609244
+        .long	776993680
+        .long	3230659896
+        .long	91083332
+        .long	3175234267
+        .long	1162765160
+        .long	3230659901
+        .long	1883429456
+        .long	3174458208
+        .long	1510943144
+        .long	3230659906
+        .long	1013024678
+        .long	1027761501
+        .long	1821656704
+        .long	3230659911
+        .long	2329976096
+        .long	3171060885
+        .long	2095034256
+        .long	3230659916
+        .long	393569875
+        .long	3175313071
+        .long	2331203560
+        .long	3230659921
+        .long	3866070308
+        .long	1029684158
+        .long	2530291696
+        .long	3230659926
+        .long	2303293568
+        .long	3177026483
+        .long	2692425136
+        .long	3230659931
+        .long	4151833399
+        .long	3175350159
+        .long	2817729672
+        .long	3230659936
+        .long	65831588
+        .long	3170064008
+        .long	2906330464
+        .long	3230659941
+        .long	3126642666
+        .long	3176187966
+        .long	2958352048
+        .long	3230659946
+        .long	1091895479
+        .long	1029434562
+        .long	2973918296
+        .long	3230659951
+        .long	1341819779
+        .long	3177032854
+        .long	2953152496
+        .long	3230659956
+        .long	3431130783
+        .long	1025344246
+        .long	2896177272
+        .long	3230659961
+        .long	222319660
+        .long	3174332028
+        .long	2803114648
+        .long	3230659966
+        .long	2574176974
+        .long	3176321678
+        .long	2674086032
+        .long	3230659971
+        .long	3543599213
+        .long	3175295621
+        .long	2509212216
+        .long	3230659976
+        .long	3961571325
+        .long	1028729606
+        .long	2308613376
+        .long	3230659981
+        .long	1968562443
+        .long	3175604756
+        .long	2072409104
+        .long	3230659986
+        .long	169553949
+        .long	3175973960
+        .long	1800718384
+        .long	3230659991
+        .long	1866092989
+        .long	1029054996
+        .long	1493659592
+        .long	3230659996
+        .long	3321480082
+        .long	1028052101
+        .long	1151350528
+        .long	3230660001
+        .long	1162474749
+        .long	3175441009
+        .long	773908408
+        .long	3230660006
+        .long	2117491299
+        .long	1028922038
+        .long	361449840
+        .long	3230660011
+        .long	1720394601
+        .long	3176859733
+        .long	4209058184
+        .long	3230660015
+        .long	3270331864
+        .long	1026022939
+        .long	3726914304
+        .long	3230660020
+        .long	761189460
+        .long	1027666521
+        .long	3210100392
+        .long	3230660025
+        .long	3128639134
+        .long	3176063736
+        .long	2658730784
+        .long	3230660030
+        .long	861675876
+        .long	3174834708
+        .long	2072919240
+        .long	3230660035
+        .long	598417369
+        .long	1026585686
+        .long	1452778960
+        .long	3230660040
+        .long	2969558584
+        .long	3174198415
+        .long	798422592
+        .long	3230660045
+        .long	1955836092
+        .long	3175908135
+        .long	109962232
+        .long	3230660050
+        .long	1441195450
+        .long	1027193622
+        .long	3682476712
+        .long	3230660054
+        .long	3027916121
+        .long	1027617136
+        .long	2926142440
+        .long	3230660059
+        .long	4058891045
+        .long	1029177821
+        .long	2136037160
+        .long	3230660064
+        .long	3295666276
+        .long	1028335364
+        .long	1312270792
+        .long	3230660069
+        .long	2664877443
+        .long	1029314281
+        .long	454952704
+        .long	3230660074
+        .long	2887304751
+        .long	3176354723
+        .long	3859159056
+        .long	3230660078
+        .long	3247043098
+        .long	1029078121
+        .long	2935063552
+        .long	3230660083
+        .long	551596274
+        .long	3176193330
+        .long	1977741296
+        .long	3230660088
+        .long	2154007986
+        .long	3174741581
+        .long	987299552
+        .long	3230660093
+        .long	1133524394
+        .long	1027524435
+        .long	4258812360
+        .long	3230660097
+        .long	1600085620
+        .long	3177058369
+        .long	3202451376
+        .long	3230660102
+        .long	2333163438
+        .long	3176526084
+        .long	2113289616
+        .long	3230660107
+        .long	276039368
+        .long	1025414372
+        .long	991432288
+        .long	3230660112
+        .long	3502468789
+        .long	3176017589
+        .long	4131951408
+        .long	3230660116
+        .long	1901031578
+        .long	1027861596
+        .long	2945016584
+        .long	3230660121
+        .long	1505110536
+        .long	1028759236
+        .long	1725698816
+        .long	3230660126
+        .long	2648053277
+        .long	3176895440
+        .long	474101336
+        .long	3230660131
+        .long	1239242430
+        .long	1029534392
+        .long	3485294136
+        .long	3230660135
+        .long	845517171
+        .long	3173477246
+        .long	2169444872
+        .long	3230660140
+        .long	4075267769
+        .long	1028643096
+        .long	821622576
+        .long	3230660145
+        .long	499928215
+        .long	1029048762
+        .long	3736895800
+        .long	3230660149
+        .long	870045772
+        .long	3176516274
+        .long	2325430744
+        .long	3230660154
+        .long	3081415625
+        .long	3176560522
+        .long	882295008
+        .long	3230660159
+        .long	3662267248
+        .long	1029384081
+        .long	3702555704
+        .long	3230660163
+        .long	4011089820
+        .long	1029189731
+        .long	2196377600
+        .long	3230660168
+        .long	2872532918
+        .long	3175632540
+        .long	658826888
+        .long	3230660173
+        .long	2512614570
+        .long	3176940300
+        .long	3384969288
+        .long	3230660177
+        .long	2018053043
+        .long	3176636781
+        .long	1784968168
+        .long	3230660182
+        .long	927902188
+        .long	3175374192
+        .long	153888328
+        .long	3230660187
+        .long	338402635
+        .long	1029478185
+        .long	2786794096
+        .long	3230660191
+        .long	2634228741
+        .long	3175787031
+        .long	1093847488
+        .long	3230660196
+        .long	13726686
+        .long	3173662371
+        .long	3665079232
+        .long	3230660200
+        .long	955232272
+        .long	1029144724
+        .long	1910650416
+        .long	3230660205
+        .long	1913213398
+        .long	3177091414
+        .long	125623600
+        .long	3230660210
+        .long	3896909877
+        .long	3176901474
+        .long	2605060880
+        .long	3230660214
+        .long	1162024003
+        .long	3171225909
+        .long	759122024
+        .long	3230660219
+        .long	101180827
+        .long	1028720107
+        .long	3177835544
+        .long	3230660223
+        .long	1119059392
+        .long	3177080184
+        .long	1271360360
+        .long	3230660228
+        .long	2533735500
+        .long	1028313476
+        .long	3629724104
+        .long	3230660232
+        .long	2461458646
+        .long	3176172399
+        .long	1663084832
+        .long	3230660237
+        .long	3468033532
+        .long	1028155452
+        .long	3961469328
+        .long	3230660241
+        .long	688573429
+        .long	3173787118
+        .long	1935034792
+        .long	3230660246
+        .long	852313808
+        .long	1029214281
+        .long	4173807160
+        .long	3230660250
+        .long	1743831019
+        .long	3176961601
+        .long	2087942800
+        .long	3230660255
+        .long	939132585
+        .long	3175339625
+        .long	4267466816
+        .long	3230660259
+        .long	804943611
+        .long	3176447024
+        .long	2122534736
+        .long	3230660264
+        .long	1216317347
+        .long	1028000177
+        .long	4243170840
+        .long	3230660268
+        .long	2936275121
+        .long	3175268569
+        .long	2039529840
+        .long	3230660273
+        .long	2537367085
+        .long	1028954723
+        .long	4101635200
+        .long	3230660277
+        .long	2494170689
+        .long	3173567976
+        .long	1839640816
+        .long	3230660282
+        .long	392206900
+        .long	3176845046
+        .long	3843569368
+        .long	3230660286
+        .long	4090462392
+        .long	1028307871
+        .long	1523573928
+        .long	3230660291
+        .long	460756979
+        .long	3176389882
+        .long	3469676392
+        .long	3230660295
+        .long	2929822293
+        .long	1029426676
+        .long	1092029040
+        .long	3230660300
+        .long	3560063032
+        .long	1027386665
+        .long	2980652976
+        .long	3230660304
+        .long	2630002021
+        .long	1029084255
+        .long	545699712
+        .long	3230660309
+        .long	3251005607
+        .long	1029513439
+        .long	2377189560
+        .long	3230660313
+        .long	2613820932
+        .long	1027076618
+        .long	4180240568
+        .long	3230660317
+        .long	2799936722
+        .long	1025378340
+        .long	1659970392
+        .long	3230660322
+        .long	3210945223
+        .long	3175522055
+        .long	3406398200
+        .long	3230660326
+        .long	2950429423
+        .long	3176973715
+        .long	829673600
+        .long	3230660331
+        .long	1432187170
+        .long	3177113229
+        .long	2519815008
+        .long	3230660335
+        .long	3601043748
+        .long	3172224737
+        .long	4181938568
+        .long	3230660339
+        .long	814468389
+        .long	3175150283
+        .long	1521160064
+        .long	3230660344
+        .long	3976767292
+        .long	3177175436
+        .long	3127496808
+        .long	3230660348
+        .long	2716501510
+        .long	1028977394
+        .long	411096528
+        .long	3230660353
+        .long	878128567
+        .long	3176628610
+        .long	1961975816
+        .long	3230660357
+        .long	2184878723
+        .long	1028801182
+        .long	3485248976
+        .long	3230660361
+        .long	3145811820
+        .long	1029533129
+        .long	686029968
+        .long	3230660366
+        .long	3776363698
+        .long	1029165449
+        .long	2154334280
+        .long	3230660370
+        .long	671743341
+        .long	1024333977
+        .long	3595275160
+        .long	3230660374
+        .long	2461553818
+        .long	3174779052
+        .long	713965496
+        .long	3230660379
+        .long	2151713083
+        .long	3175993252
+        .long	2100419720
+        .long	3230660383
+        .long	3102031601
+        .long	1029232965
+        .long	3459750008
+        .long	3230660387
+        .long	4013823470
+        .long	1028620538
+        .long	497068208
+        .long	3230660392
+        .long	4248883599
+        .long	1028910528
+        .long	1802387696
+        .long	3230660396
+        .long	1846273839
+        .long	3175860934
+        .long	3080819632
+        .long	3230660400
+        .long	1848559975
+        .long	3175415033
+        .long	37474824
+        .long	3230660405
+        .long	883985798
+        .long	1029169919
+        .long	1262365616
+        .long	3230660409
+        .long	2970327261
+        .long	3175919327
+        .long	2460602152
+        .long	3230660413
+        .long	2212867178
+        .long	3176520464
+        .long	3632261520
+        .long	3230660417
+        .long	3872739030
+        .long	3176664707
+        .long	482453184
+        .long	3230660422
+        .long	1041960122
+        .long	1024886984
+        .long	1601188152
+        .long	3230660426
+        .long	3362961153
+        .long	3176317848
+        .long	2693575232
+        .long	3230660430
+        .long	914600537
+        .long	3175721660
+        .long	3759690192
+        .long	3230660434
+        .long	3732031835
+        .long	1029491624
+        .long	504641160
+        .long	3230660439
+        .long	1661949843
+        .long	3176759759
+        .long	1518437864
+        .long	3230660443
+        .long	1155538621
+        .long	3176080216
+        .long	2506187792
+        .long	3230660447
+        .long	2074668130
+        .long	3176155102
+        .long	3467965424
+        .long	3230660451
+        .long	5072226
+        .long	1029678430
+        .long	108877600
+        .long	3230660456
+        .long	3844188174
+        .long	3175740294
+        .long	1018932768
+        .long	3230660460
+        .long	509804163
+        .long	1026986837
+        .long	1903237144
+        .long	3230660464
+        .long	817284140
+        .long	1028367931
+        .long	2761863936
+        .long	3230660468
+        .long	1026749811
+        .long	1028400722
+        .long	3594886040
+        .long	3230660472
+        .long	134616122
+        .long	1027302887
+        .long	107408744
+        .long	3230660477
+        .long	3388129995
+        .long	3176634073
+        .long	889438928
+        .long	3230660481
+        .long	4952363
+        .long	1026762363
+        .long	1646081256
+        .long	3230660485
+        .long	602092353
+        .long	1025334666
+        .long	2377407400
+        .long	3230660489
+        .long	870715200
+        .long	1028049234
+        .long	3083488720
+        .long	3230660493
+        .long	2898850879
+        .long	1026959461
+        .long	3764396280
+        .long	3230660497
+        .long	1041634577
+        .long	3172001824
+        .long	125233544
+        .long	3230660502
+        .long	4098260650
+        .long	3176968164
+        .long	756005576
+        .long	3230660506
+        .long	3936264397
+        .long	3176271837
+        .long	1361815248
+        .long	3230660510
+        .long	2005773894
+        .long	1029460947
+        .long	1942732416
+        .long	3230660514
+        .long	2286486375
+        .long	3177123695
+        .long	2498826688
+        .long	3230660518
+        .long	1062595601
+        .long	1029046698
+        .long	3030167328
+        .long	3230660522
+        .long	589866180
+        .long	3176077962
+        .long	3536823352
+        .long	3230660526
+        .long	1103133966
+        .long	3175759187
+        .long	4018863464
+        .long	3230660530
+        .long	1280466737
+        .long	3177138719
+        .long	181388800
+        .long	3230660535
+        .long	2008274805
+        .long	3175962957
+        .long	614402088
+        .long	3230660539
+        .long	3816723771
+        .long	1026223943
+        .long	1023003888
+        .long	3230660543
+        .long	3028155298
+        .long	1028659203
+        .long	1407261776
+        .long	3230660547
+        .long	2229630046
+        .long	1029625324
+        .long	1767243040
+        .long	3230660551
+        .long	3164503958
+        .long	3174949449
+        .long	2103014712
+        .long	3230660555
+        .long	874323935
+        .long	1029396372
+        .long	2414643512
+        .long	3230660559
+        .long	136799065
+        .long	3176242621
+        .long	2702195920
+        .long	3230660563
+        .long	3087239240
+        .long	3175416105
+        .long	2965738120
+        .long	3230660567
+        .long	3552260349
+        .long	1026854656
+        .long	3205336024
+        .long	3230660571
+        .long	628231562
+        .long	3175305872
+        .long	3421055288
+        .long	3230660575
+        .long	723080663
+        .long	1029356970
+        .long	3612961272
+        .long	3230660579
+        .long	3562572440
+        .long	3176040503
+        .long	3781119104
+        .long	3230660583
+        .long	2799655455
+        .long	1029154690
+        .long	3925593608
+        .long	3230660587
+        .long	3936971761
+        .long	1026575267
+        .long	4046449368
+        .long	3230660591
+        .long	2072414816
+        .long	3175590577
+        .long	4143750696
+        .long	3230660595
+        .long	1765517578
+        .long	3176912984
+        .long	4217561648
+        .long	3230660599
+        .long	3309795482
+        .long	1025944498
+        .long	4267946000
+        .long	3230660603
+        .long	3577983989
+        .long	3176780675
+        .long	0
+        .long	3230660608
+        .long	0
+        .long	2147483648
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	0
+        .long	0
+        .long	4278875493
+        .long	3211202435
+        .long	1836756087
+        .long	3212249540
+        .long	2166742286
+        .long	3212919558
+        .long	3069118545
+        .long	3213295184
+        .long	2882618713
+        .long	3213670083
+        .long	396983052
+        .long	3213964849
+        .long	2254986537
+        .long	3214151575
+        .long	2244137514
+        .long	3214337942
+        .long	2001317058
+        .long	3214523951
+        .long	3129282438
+        .long	3214709603
+        .long	2901961050
+        .long	3214894900
+        .long	3574805523
+        .long	3215006929
+        .long	97153270
+        .long	3215099225
+        .long	2489866790
+        .long	3215191344
+        .long	733531480
+        .long	3215283289
+        .long	1972305287
+        .long	3215375059
+        .long	449270987
+        .long	3215466656
+        .long	3276362132
+        .long	3215558079
+        .long	369713010
+        .long	3215649331
+        .long	3104484191
+        .long	3215740410
+        .long	1365308336
+        .long	3215831319
+        .long	2201113504
+        .long	3215922057
+        .long	4175201612
+        .long	3215997608
+        .long	2678235035
+        .long	3216042808
+        .long	111107850
+        .long	3216087924
+        .long	2115197501
+        .long	3216132955
+        .long	1439478642
+        .long	3216177903
+        .long	3710382531
+        .long	3216222767
+        .long	1662048346
+        .long	3216267549
+        .long	906181559
+        .long	3216312248
+        .long	2752238835
+        .long	3216356864
+        .long	4207481622
+        .long	3216401398
+        .long	2271996550
+        .long	3216445851
+        .long	2528682625
+        .long	3216490222
+        .long	1963434183
+        .long	3216534512
+        .long	1850094427
+        .long	3216578721
+        .long	3455539314
+        .long	3216622849
+        .long	3744760980
+        .long	3216666897
+        .long	3970852583
+        .long	3216710865
+        .long	1085123514
+        .long	3216754754
+        .long	622050639
+        .long	3216798563
+        .long	3814425306
+        .long	3216842292
+        .long	3298434523
+        .long	3216885943
+        .long	293578162
+        .long	3216929516
+        .long	307749260
+        .long	3216973010
+        .long	252379301
+        .long	3217016426
+        .long	663693424
+        .long	3217045466
+        .long	2363128292
+        .long	3217067096
+        .long	1523075309
+        .long	3217088688
+        .long	3028878894
+        .long	3217110241
+        .long	3172800190
+        .long	3217131756
+        .long	2538941307
+        .long	3217153233
+        .long	1708300177
+        .long	3217174672
+        .long	1258792512
+        .long	3217196073
+        .long	1765273565
+        .long	3217217436
+        .long	3799559706
+        .long	3217238761
+        .long	3635482505
+        .long	3217260049
+        .long	1838844516
+        .long	3217281300
+        .long	3267440290
+        .long	3217302513
+        .long	4186175309
+        .long	3217323689
+        .long	857021220
+        .long	3217344829
+        .long	2423938186
+        .long	3217365931
+        .long	848124101
+        .long	3217386997
+        .long	972805768
+        .long	3217408026
+        .long	3343389647
+        .long	3217429018
+        .long	4207481622
+        .long	3217449974
+        .long	4104841180
+        .long	3217470894
+        .long	3572433535
+        .long	3217491778
+        .long	3144448886
+        .long	3217512626
+        .long	3352321503
+        .long	3217533438
+        .long	429781357
+        .long	3217554215
+        .long	3492742067
+        .long	3217574955
+        .long	179581133
+        .long	3217595661
+        .long	3895798636
+        .long	3217616330
+        .long	2274427972
+        .long	3217636965
+        .long	125726943
+        .long	3217657565
+        .long	2257326549
+        .long	3217678129
+        .long	589346923
+        .long	3217698659
+        .long	4219186077
+        .long	3217719153
+        .long	766831764
+        .long	3217739614
+        .long	3619519104
+        .long	3217760039
+        .long	392140265
+        .long	3217780431
+        .long	171901807
+        .long	3217800788
+        .long	3453570542
+        .long	3217821110
+        .long	2139490342
+        .long	3217841399
+        .long	1014435273
+        .long	3217861654
+        .long	565756928
+        .long	3217881875
+        .long	1278368112
+        .long	3217902062
+        .long	3634759079
+        .long	3217922215
+        .long	3820046351
+        .long	3217942335
+        .long	2311923285
+        .long	3217962422
+        .long	3880675917
+        .long	3217982475
+        .long	409329490
+        .long	3218002496
+        .long	958435111
+        .long	3218022483
+        .long	1701314133
+        .long	3218042437
+        .long	3103942666
+        .long	3218062358
+        .long	2814999741
+        .long	3218080995
+        .long	2722956900
+        .long	3218090923
+        .long	1505407411
+        .long	3218100835
+        .long	3685756937
+        .long	3218110730
+        .long	901390368
+        .long	3218120610
+        .long	1968450191
+        .long	3218130473
+        .long	2817072651
+        .long	3218140320
+        .long	3671264118
+        .long	3218150151
+        .long	458973606
+        .long	3218159967
+        .long	1991969023
+        .long	3218169766
+        .long	4196040400
+        .long	3218179549
+        .long	2995908720
+        .long	3218189317
+        .long	2905167410
+        .long	3218199069
+        .long	4141387283
+        .long	3218208805
+        .long	2626123321
+        .long	3218218526
+        .long	2869823290
+        .long	3218228231
+        .long	791965228
+        .long	3218237921
+        .long	900933251
+        .long	3218247595
+        .long	3409122230
+        .long	3218257253
+        .long	4232944303
+        .long	3218266896
+        .long	3582769936
+        .long	3218276524
+        .long	1667967030
+        .long	3218286137
+        .long	2991874584
+        .long	3218295734
+        .long	3466907117
+        .long	3218305316
+        .long	3299462810
+        .long	3218314883
+        .long	2694962427
+        .long	3218324435
+        .long	1857855474
+        .long	3218333972
+        .long	991626313
+        .long	3218343494
+        .long	298800229
+        .long	3218353001
+        .long	4275916740
+        .long	3218362492
+        .long	238699089
+        .long	3218371970
+        .long	1271733131
+        .long	3218381432
+        .long	3278800247
+        .long	3218390879
+        .long	2162752362
+        .long	3218400312
+        .long	2415452322
+        .long	3218409730
+        .long	4232877747
+        .long	3218419133
+        .long	3515126734
+        .long	3218428522
+        .long	456358091
+        .long	3218437897
+        .long	3839764252
+        .long	3218447256
+        .long	972805768
+        .long	3218456602
+        .long	636889785
+        .long	3218465933
+        .long	3022604462
+        .long	3218475249
+        .long	4024691694
+        .long	3218484551
+        .long	3831987111
+        .long	3218493839
+        .long	2632458130
+        .long	3218503113
+        .long	613209272
+        .long	3218512373
+        .long	2255454733
+        .long	3218521618
+        .long	3449621726
+        .long	3218530849
+        .long	85290269
+        .long	3218540067
+        .long	936100227
+        .long	3218549270
+        .long	1889952648
+        .long	3218558459
+        .long	3128884028
+        .long	3218567634
+        .long	539136753
+        .long	3218576796
+        .long	2891033284
+        .long	3218585943
+        .long	1774210047
+        .long	3218595077
+        .long	1662393428
+        .long	3218604197
+        .long	2733535479
+        .long	3218613303
+        .long	869818766
+        .long	3218622396
+        .long	542563073
+        .long	3218631475
+        .long	1927328294
+        .long	3218640540
+        .long	903919170
+        .long	3218649592
+        .long	1941291890
+        .long	3218658630
+        .long	917689576
+        .long	3218667655
+        .long	2300516105
+        .long	3218676666
+        .long	1966471527
+        .long	3218685664
+        .long	86458524
+        .long	3218694649
+        .long	1125586940
+        .long	3218703620
+        .long	958276399
+        .long	3218712578
+        .long	4048129956
+        .long	3218721522
+        .long	1973102048
+        .long	3218730454
+        .long	3490273972
+        .long	3218739372
+        .long	176119889
+        .long	3218748278
+        .long	786249521
+        .long	3218757170
+        .long	1190641396
+        .long	3218766049
+        .long	1553516298
+        .long	3218774915
+        .long	2038374217
+        .long	3218783768
+        .long	2807998562
+        .long	3218792608
+        .long	4024460340
+        .long	3218801435
+        .long	1554155016
+        .long	3218810250
+        .long	4147675809
+        .long	3218819051
+        .long	3375046719
+        .long	3218827840
+        .long	3690497658
+        .long	3218836616
+        .long	957631997
+        .long	3218845380
+        .long	3924267057
+        .long	3218854130
+        .long	4157667002
+        .long	3218862868
+        .long	1814350566
+        .long	3218871594
+        .long	1345127672
+        .long	3218880307
+        .long	2905168726
+        .long	3218889007
+        .long	2354008484
+        .long	3218897695
+        .long	4140451764
+        .long	3218906370
+        .long	4122708074
+        .long	3218915033
+        .long	2453297277
+        .long	3218923684
+        .long	3579053340
+        .long	3218932322
+        .long	3356226173
+        .long	3218940948
+        .long	1935387215
+        .long	3218949562
+        .long	3761433103
+        .long	3218958163
+        .long	393720137
+        .long	3218966753
+        .long	570838969
+        .long	3218975330
+        .long	145847129
+        .long	3218983895
+        .long	3561109068
+        .long	3218992447
+        .long	2373463229
+        .long	3219000988
+        .long	1024029336
+        .long	3219009517
+        .long	3953310001
+        .long	3219018033
+        .long	2716292306
+        .long	3219026538
+        .long	1752255026
+        .long	3219035031
+        .long	1204902862
+        .long	3219043512
+        .long	1217337138
+        .long	3219051981
+        .long	1932059168
+        .long	3219060438
+        .long	3490973615
+        .long	3219068883
+        .long	1740424513
+        .long	3219077317
+        .long	1116100460
+        .long	3219085739
+        .long	1758136015
+        .long	3219094149
+        .long	3806082244
+        .long	3219102547
+        .long	3103942666
+        .long	3219110934
+        .long	4085078348
+        .long	3219119309
+        .long	2592341915
+        .long	3219127673
+        .long	1237017397
+        .long	1071636966
+        .long	2971350592
+        .long	1071628625
+        .long	2474540381
+        .long	1071620296
+        .long	3905998082
+        .long	1071611978
+        .long	2835758645
+        .long	1071603672
+        .long	3424346780
+        .long	1071595377
+        .long	1242904730
+        .long	1071587094
+        .long	453058437
+        .long	1071578822
+        .long	922012657
+        .long	1071570561
+        .long	2517515272
+        .long	1071562311
+        .long	812887046
+        .long	1071554073
+        .long	4266887859
+        .long	1071545845
+        .long	4158942730
+        .long	1071537629
+        .long	358942686
+        .long	1071529425
+        .long	1327241886
+        .long	1071521231
+        .long	2639818283
+        .long	1071513048
+        .long	4168139969
+        .long	1071504876
+        .long	1489227762
+        .long	1071496716
+        .long	3065521585
+        .long	1071488566
+        .long	180106617
+        .long	1071480428
+        .long	1296448894
+        .long	1071472300
+        .long	1993621492
+        .long	1071464183
+        .long	2146170984
+        .long	1071456077
+        .long	1629147435
+        .long	1071447982
+        .long	318101713
+        .long	1071439898
+        .long	2384050109
+        .long	1071431824
+        .long	3408569797
+        .long	1071423761
+        .long	3268698084
+        .long	1071415709
+        .long	1841962494
+        .long	1071407668
+        .long	3301345460
+        .long	1071399637
+        .long	3230379855
+        .long	1071391617
+        .long	1508048307
+        .long	1071383608
+        .long	2308780654
+        .long	1071375609
+        .long	1217549516
+        .long	1071367621
+        .long	2409736962
+        .long	1071359643
+        .long	1471262832
+        .long	1071351676
+        .long	2578451427
+        .long	1071343719
+        .long	1318159863
+        .long	1071335773
+        .long	1867644803
+        .long	1071327837
+        .long	4109658128
+        .long	1071319911
+        .long	3632444524
+        .long	1071311996
+        .long	319673663
+        .long	1071304092
+        .long	2645405118
+        .long	1071296197
+        .long	1904282206
+        .long	1071288313
+        .long	2276300709
+        .long	1071280439
+        .long	3646937343
+        .long	1071272575
+        .long	1607147436
+        .long	1071264722
+        .long	338264500
+        .long	1071256879
+        .long	4022063343
+        .long	1071249045
+        .long	3955855900
+        .long	1071241222
+        .long	27325445
+        .long	1071233410
+        .long	714524338
+        .long	1071225607
+        .long	1611035309
+        .long	1071217814
+        .long	2605838414
+        .long	1071210031
+        .long	3588341533
+        .long	1071202258
+        .long	153410875
+        .long	1071194496
+        .long	781237988
+        .long	1071186743
+        .long	1067533806
+        .long	1071179000
+        .long	903395686
+        .long	1071171267
+        .long	180337970
+        .long	1071163544
+        .long	3085257158
+        .long	1071155830
+        .long	920560604
+        .long	1071148127
+        .long	2168935497
+        .long	1071140433
+        .long	2428575699
+        .long	1071132749
+        .long	1593048857
+        .long	1071125075
+        .long	3851294344
+        .long	1071117410
+        .long	507752028
+        .long	1071109756
+        .long	47131309
+        .long	1071102111
+        .long	2364605328
+        .long	1071094475
+        .long	3060776247
+        .long	1071086849
+        .long	2031607852
+        .long	1071079233
+        .long	3468423567
+        .long	1071071626
+        .long	2973002597
+        .long	1071064029
+        .long	442479858
+        .long	1071056442
+        .long	69344031
+        .long	1071048864
+        .long	1751501034
+        .long	1071041295
+        .long	1092272106
+        .long	1071033736
+        .long	2285293781
+        .long	1071026186
+        .long	934646808
+        .long	1071018646
+        .long	1234723447
+        .long	1071011115
+        .long	3085323714
+        .long	1071003593
+        .long	2091653507
+        .long	1070996081
+        .long	2449224655
+        .long	1070988578
+        .long	4058951182
+        .long	1070981084
+        .long	2527147484
+        .long	1070973600
+        .long	2050428397
+        .long	1070966125
+        .long	2530805506
+        .long	1070958659
+        .long	3870652645
+        .long	1070951202
+        .long	1677736816
+        .long	1070943755
+        .long	150118311
+        .long	1070936317
+        .long	3486214350
+        .long	1070928887
+        .long	2999895448
+        .long	1070921467
+        .long	2890287450
+        .long	1070914056
+        .long	3061900616
+        .long	1070906654
+        .long	3419595198
+        .long	1070899261
+        .long	3868579735
+        .long	1070891877
+        .long	19442055
+        .long	1070884503
+        .long	368016775
+        .long	1070877137
+        .long	525579846
+        .long	1070869780
+        .long	398716067
+        .long	1070862432
+        .long	4189317433
+        .long	1070855092
+        .long	3214712303
+        .long	1070847762
+        .long	1677467535
+        .long	1070840441
+        .long	3780484975
+        .long	1070833128
+        .long	842097952
+        .long	1070825825
+        .long	1360840737
+        .long	1070818530
+        .long	950675880
+        .long	1070811244
+        .long	3815829096
+        .long	1070803966
+        .long	1275951213
+        .long	1070796698
+        .long	1830887666
+        .long	1070789438
+        .long	1095905871
+        .long	1070782187
+        .long	3276530156
+        .long	1070774944
+        .long	3988671029
+        .long	1070767710
+        .long	3143525540
+        .long	1070760485
+        .long	652608459
+        .long	1070753269
+        .long	722718060
+        .long	1070746061
+        .long	3266000023
+        .long	1070738861
+        .long	3899945937
+        .long	1070731670
+        .long	2537326407
+        .long	1070724488
+        .long	3386189576
+        .long	1070717314
+        .long	2064957766
+        .long	1070710149
+        .long	2782295200
+        .long	1070702992
+        .long	1157237371
+        .long	1070695844
+        .long	1399058776
+        .long	1070688704
+        .long	3422369598
+        .long	1070681572
+        .long	2847114276
+        .long	1070674449
+        .long	3883471977
+        .long	1070667334
+        .long	2151986001
+        .long	1070660228
+        .long	1863431563
+        .long	1070653130
+        .long	2933912512
+        .long	1070646040
+        .long	984859948
+        .long	1070638959
+        .long	227932728
+        .long	1070631886
+        .long	580114212
+        .long	1070624821
+        .long	1958678199
+        .long	1070617764
+        .long	4281187571
+        .long	1070610715
+        .long	3170525652
+        .long	1070603675
+        .long	2839796761
+        .long	1070596643
+        .long	2119878685
+        .long	1070583143
+        .long	4089253071
+        .long	1070569111
+        .long	2835758645
+        .long	1070555096
+        .long	2492901513
+        .long	1070541097
+        .long	2899780145
+        .long	1070527114
+        .long	3896050086
+        .long	1070513147
+        .long	1026954088
+        .long	1070499197
+        .long	2723188744
+        .long	1070485262
+        .long	236130877
+        .long	1070471344
+        .long	1997573379
+        .long	1070457441
+        .long	3554951635
+        .long	1070443554
+        .long	456242909
+        .long	1070429684
+        .long	1134865756
+        .long	1070415829
+        .long	1139873776
+        .long	1070401990
+        .long	315822345
+        .long	1070388167
+        .long	2802766176
+        .long	1070374359
+        .long	4151355006
+        .long	1070360567
+        .long	4207733072
+        .long	1070346791
+        .long	2818569420
+        .long	1070333031
+        .long	4126022811
+        .long	1070319286
+        .long	3682837469
+        .long	1070305557
+        .long	1337242607
+        .long	1070291844
+        .long	1232950086
+        .long	1070278146
+        .long	3219217489
+        .long	1070264463
+        .long	2850845810
+        .long	1070250796
+        .long	4273079031
+        .long	1070237144
+        .long	3041732648
+        .long	1070223508
+        .long	3303060581
+        .long	1070209887
+        .long	613883718
+        .long	1070196282
+        .long	3416424147
+        .long	1070182691
+        .long	2973531841
+        .long	1070169116
+        .long	3433453502
+        .long	1070155556
+        .long	354993870
+        .long	1070142012
+        .long	2182349993
+        .long	1070128482
+        .long	180337970
+        .long	1070114968
+        .long	2794129140
+        .long	1070101468
+        .long	1289509543
+        .long	1070087984
+        .long	4112616140
+        .long	1070074514
+        .long	2530196300
+        .long	1070061060
+        .long	694376742
+        .long	1070047621
+        .long	2757759525
+        .long	1070034196
+        .long	4283485357
+        .long	1070020786
+        .long	835166085
+        .long	1070007392
+        .long	861784501
+        .long	1069994012
+        .long	4222855791
+        .long	1069980646
+        .long	2188425477
+        .long	1069967296
+        .long	3208871137
+        .long	1069953960
+        .long	2850129301
+        .long	1069940639
+        .long	973562605
+        .long	1069927333
+        .long	1735957778
+        .long	1069914041
+        .long	704621746
+        .long	1069900764
+        .long	2037248826
+        .long	1069887501
+        .long	1302049555
+        .long	1069874253
+        .long	2657617909
+        .long	1069861019
+        .long	1673060149
+        .long	1069847800
+        .long	2507862062
+        .long	1069834595
+        .long	732017833
+        .long	1069821405
+        .long	505897304
+        .long	1069808229
+        .long	1695342161
+        .long	1069795067
+        .long	4166631327
+        .long	1069781919
+        .long	3491511767
+        .long	1069768786
+        .long	3832098487
+        .long	1069755667
+        .long	761003473
+        .long	1069742563
+        .long	2736170304
+        .long	1069729472
+        .long	1036101224
+        .long	1069716396
+        .long	4119593661
+        .long	1069703333
+        .long	3266000023
+        .long	1069690285
+        .long	2639996940
+        .long	1069677251
+        .long	2111714268
+        .long	1069664231
+        .long	1551700571
+        .long	1069651225
+        .long	830921328
+        .long	1069638233
+        .long	4115724438
+        .long	1069625254
+        .long	2687969258
+        .long	1069612290
+        .long	714828609
+        .long	1069599340
+        .long	2363885129
+        .long	1069586403
+        .long	3213194931
+        .long	1069573480
+        .long	3136187749
+        .long	1069560571
+        .long	2006697909
+        .long	1069547676
+        .long	3692892517
+        .long	1069522069
+        .long	765175007
+        .long	1069496334
+        .long	3570253499
+        .long	1069470625
+        .long	3269064532
+        .long	1069444944
+        .long	3908238678
+        .long	1069419290
+        .long	945260706
+        .long	1069393664
+        .long	2723302721
+        .long	1069368064
+        .long	406449780
+        .long	1069342492
+        .long	2339434949
+        .long	1069316946
+        .long	3982864956
+        .long	1069291427
+        .long	798118804
+        .long	1069265936
+        .long	1132246414
+        .long	1069240471
+        .long	448161614
+        .long	1069215033
+        .long	2799475404
+        .long	1069189621
+        .long	3650623571
+        .long	1069164236
+        .long	2761765396
+        .long	1069138878
+        .long	4188780490
+        .long	1069113546
+        .long	3398363754
+        .long	1069088241
+        .long	152924136
+        .long	1069062963
+        .long	2805548810
+        .long	1069037710
+        .long	2530196300
+        .long	1069012484
+        .long	3386464469
+        .long	1068987284
+        .long	844750970
+        .long	1068962111
+        .long	3261086672
+        .long	1068936963
+        .long	1812361559
+        .long	1068911842
+        .long	561092771
+        .long	1068886747
+        .long	3570519722
+        .long	1068861677
+        .long	2019699215
+        .long	1068836634
+        .long	4268273544
+        .long	1068811616
+        .long	1496729166
+        .long	1068786625
+        .long	2066132126
+        .long	1068761659
+        .long	1453354059
+        .long	1068736719
+        .long	3725905754
+        .long	1068711804
+        .long	67097779
+        .long	1068686916
+        .long	3135775963
+        .long	1068662052
+        .long	4116645570
+        .long	1068637214
+        .long	2785039517
+        .long	1068612402
+        .long	3211948238
+        .long	1068587615
+        .long	879114973
+        .long	1068562854
+        .long	4153869436
+        .long	1068538117
+        .long	4224353950
+        .long	1068513406
+        .long	1738648877
+        .long	1068478498
+        .long	621328029
+        .long	1068429177
+        .long	361989374
+        .long	1068379906
+        .long	522185726
+        .long	1068330685
+        .long	664805953
+        .long	1068281514
+        .long	354069550
+        .long	1068232393
+        .long	3450488540
+        .long	1068183321
+        .long	930992923
+        .long	1068134300
+        .long	953696405
+        .long	1068085328
+        .long	3088087314
+        .long	1068036405
+        .long	2609990599
+        .long	1067987532
+        .long	3386464469
+        .long	1067938708
+        .long	695925966
+        .long	1067889934
+        .long	2702982241
+        .long	1067841208
+        .long	393654302
+        .long	1067792532
+        .long	1935110223
+        .long	1067743904
+        .long	2610888947
+        .long	1067695325
+        .long	2000764363
+        .long	1067646795
+        .long	3980740227
+        .long	1067598313
+        .long	3838143224
+        .long	1067549880
+        .long	1156519829
+        .long	1067501496
+        .long	4110598596
+        .long	1067453159
+        .long	3097995520
+        .long	1067359375
+        .long	3297851897
+        .long	1067262895
+        .long	3702812359
+        .long	1067166511
+        .long	3492345695
+        .long	1067070223
+        .long	1848366390
+        .long	1066974031
+        .long	2250192214
+        .long	1066877934
+        .long	3884599966
+        .long	1066781932
+        .long	1645815860
+        .long	1066686026
+        .long	3315375145
+        .long	1066590214
+        .long	3792308805
+        .long	1066494497
+        .long	251039259
+        .long	1066395959
+        .long	207414748
+        .long	1066204903
+        .long	1561045812
+        .long	1066014035
+        .long	2718921511
+        .long	1065823355
+        .long	2092732370
+        .long	1065632863
+        .long	2393819184
+        .long	1065442558
+        .long	4086440081
+        .long	1065151664
+        .long	3228205919
+        .long	1064771801
+        .long	3368528065
+        .long	1064392310
+        .long	2754502618
+        .long	1063721742
+        .long	2303420870
+        .long	1062672426
+        .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	2696122091
+        .long	3214636092
+        .long	2696122091
+        .long	3214636092
+        .long	2696122091
+        .long	3214636092
+        .long	2696122091
+        .long	3214636092
+        .long	60798926
+        .long	1067957842
+        .long	60798926
+        .long	1067957842
+        .long	60798926
+        .long	1067957842
+        .long	60798926
+        .long	1067957842
+        .long	4242638864
+        .long	3216335824
+        .long	4242638864
+        .long	3216335824
+        .long	4242638864
+        .long	3216335824
+        .long	4242638864
+        .long	3216335824
+        .long	3540051903
+        .long	1069845994
+        .long	3540051903
+        .long	1069845994
+        .long	3540051903
+        .long	1069845994
+        .long	3540051903
+        .long	1069845994
+        .long	2610650434
+        .long	3218487403
+        .long	2610650434
+        .long	3218487403
+        .long	2610650434
+        .long	3218487403
+        .long	2610650434
+        .long	3218487403
+        .long	734375590
+        .long	1062030445
+        .long	734375590
+        .long	1062030445
+        .long	734375590
+        .long	1062030445
+        .long	734375590
+        .long	1062030445
+        .long	2574098898
+        .long	1070757742
+        .long	2574098898
+        .long	1070757742
+        .long	2574098898
+        .long	1070757742
+        .long	2574098898
+        .long	1070757742
+        .long	1279163547
+        .long	3218543945
+        .long	1279163547
+        .long	3218543945
+        .long	1279163547
+        .long	3218543945
+        .long	1279163547
+        .long	3218543945
+        .long	3694782758
+        .long	1071564553
+        .long	3694782758
+        .long	1071564553
+        .long	3694782758
+        .long	1071564553
+        .long	3694782758
+        .long	1071564553
+        .long	1697348856
+        .long	3219592519
+        .long	1697348856
+        .long	3219592519
+        .long	1697348856
+        .long	3219592519
+        .long	1697348856
+        .long	3219592519
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	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	1063256064
+        .long	0
+        .long	1063256064
+        .long	0
+        .long	1063256064
+        .long	0
+        .long	1063256064
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1073156096
+        .long	0
+        .long	1073156096
+        .long	0
+        .long	1073156096
+        .long	0
+        .long	1073156096
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	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	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_dlog2_data_internal,@object
+        .size	__svml_dlog2_data_internal,13696
+        .align 64
+
+__dlog2_la__Q3:
+        .long	3213221364
+        .long	1050233568
+        .long	1697350398
+        .long	3219592519
+        .long	3694789629
+        .long	1071564553
+        .long	0
+        .long	1073157447
+        .type	__dlog2_la__Q3,@object
+        .size	__dlog2_la__Q3,32
+        .space 32, 0x00 	
+        .align 64
+
+__dlog2_la__Q2:
+        .long	3213221358
+        .long	1050233568
+        .long	1697350398
+        .long	3219592519
+        .long	3695167823
+        .long	1071564553
+        .long	1697791998
+        .long	3218543943
+        .long	0
+        .long	1073157447
+        .type	__dlog2_la__Q2,@object
+        .size	__dlog2_la__Q2,40
+        .space 24, 0x00 	
+        .align 64
+
+__dlog2_la__Q1:
+        .long	3213221370
+        .long	1050233568
+        .long	3213207734
+        .long	3196668640
+        .long	3694789628
+        .long	1071564553
+        .long	1697350743
+        .long	3218543943
+        .long	1357908666
+        .long	1070757740
+        .long	3685007067
+        .long	3217999625
+        .long	96832070
+        .long	1070227830
+        .long	1140452344
+        .long	3217495379
+        .long	2606274745
+        .long	1069844296
+        .long	1933654871
+        .long	3217172449
+        .long	0
+        .long	1073157447
+        .long	0
+        .long	3219592519
+        .type	__dlog2_la__Q1,@object
+        .size	__dlog2_la__Q1,96
+        .space 32, 0x00 	
+        .align 64
+
+__dlog2_la__TWO_32P:
+        .long	1048576
+        .long	1106247680
+        .type	__dlog2_la__TWO_32P,@object
+        .size	__dlog2_la__TWO_32P,8
+        .space 56, 0x00 	
+        .align 64
+
+__dlog2_la__TWO_32:
+        .long	0
+        .long	1106247680
+        .type	__dlog2_la__TWO_32,@object
+        .size	__dlog2_la__TWO_32,8
+        .space 56, 0x00 	
+        .align 64
+
+__dlog2_la__TWO_55:
+        .long	0
+        .long	1130364928
+        .type	__dlog2_la__TWO_55,@object
+        .size	__dlog2_la__TWO_55,8
+        .space 56, 0x00 	
+        .align 64
+
+__dlog2_la___libm_rcp_table_256:
+        .long	0x3f7f8000
+        .long	0x3f7e8000
+        .long	0x3f7d8000
+        .long	0x3f7c8000
+        .long	0x3f7ba000
+        .long	0x3f7aa000
+        .long	0x3f79a000
+        .long	0x3f78c000
+        .long	0x3f77c000
+        .long	0x3f76e000
+        .long	0x3f75e000
+        .long	0x3f750000
+        .long	0x3f742000
+        .long	0x3f732000
+        .long	0x3f724000
+        .long	0x3f716000
+        .long	0x3f708000
+        .long	0x3f6fa000
+        .long	0x3f6ec000
+        .long	0x3f6de000
+        .long	0x3f6d0000
+        .long	0x3f6c2000
+        .long	0x3f6b6000
+        .long	0x3f6a8000
+        .long	0x3f69a000
+        .long	0x3f68c000
+        .long	0x3f680000
+        .long	0x3f672000
+        .long	0x3f666000
+        .long	0x3f658000
+        .long	0x3f64c000
+        .long	0x3f640000
+        .long	0x3f632000
+        .long	0x3f626000
+        .long	0x3f61a000
+        .long	0x3f60e000
+        .long	0x3f600000
+        .long	0x3f5f4000
+        .long	0x3f5e8000
+        .long	0x3f5dc000
+        .long	0x3f5d0000
+        .long	0x3f5c4000
+        .long	0x3f5b8000
+        .long	0x3f5ae000
+        .long	0x3f5a2000
+        .long	0x3f596000
+        .long	0x3f58a000
+        .long	0x3f57e000
+        .long	0x3f574000
+        .long	0x3f568000
+        .long	0x3f55e000
+        .long	0x3f552000
+        .long	0x3f546000
+        .long	0x3f53c000
+        .long	0x3f532000
+        .long	0x3f526000
+        .long	0x3f51c000
+        .long	0x3f510000
+        .long	0x3f506000
+        .long	0x3f4fc000
+        .long	0x3f4f2000
+        .long	0x3f4e6000
+        .long	0x3f4dc000
+        .long	0x3f4d2000
+        .long	0x3f4c8000
+        .long	0x3f4be000
+        .long	0x3f4b4000
+        .long	0x3f4aa000
+        .long	0x3f4a0000
+        .long	0x3f496000
+        .long	0x3f48c000
+        .long	0x3f482000
+        .long	0x3f478000
+        .long	0x3f46e000
+        .long	0x3f464000
+        .long	0x3f45c000
+        .long	0x3f452000
+        .long	0x3f448000
+        .long	0x3f43e000
+        .long	0x3f436000
+        .long	0x3f42c000
+        .long	0x3f422000
+        .long	0x3f41a000
+        .long	0x3f410000
+        .long	0x3f408000
+        .long	0x3f3fe000
+        .long	0x3f3f6000
+        .long	0x3f3ec000
+        .long	0x3f3e4000
+        .long	0x3f3da000
+        .long	0x3f3d2000
+        .long	0x3f3ca000
+        .long	0x3f3c0000
+        .long	0x3f3b8000
+        .long	0x3f3b0000
+        .long	0x3f3a8000
+        .long	0x3f39e000
+        .long	0x3f396000
+        .long	0x3f38e000
+        .long	0x3f386000
+        .long	0x3f37e000
+        .long	0x3f376000
+        .long	0x3f36c000
+        .long	0x3f364000
+        .long	0x3f35c000
+        .long	0x3f354000
+        .long	0x3f34c000
+        .long	0x3f344000
+        .long	0x3f33c000
+        .long	0x3f334000
+        .long	0x3f32e000
+        .long	0x3f326000
+        .long	0x3f31e000
+        .long	0x3f316000
+        .long	0x3f30e000
+        .long	0x3f306000
+        .long	0x3f2fe000
+        .long	0x3f2f8000
+        .long	0x3f2f0000
+        .long	0x3f2e8000
+        .long	0x3f2e2000
+        .long	0x3f2da000
+        .long	0x3f2d2000
+        .long	0x3f2cc000
+        .long	0x3f2c4000
+        .long	0x3f2bc000
+        .long	0x3f2b6000
+        .long	0x3f2ae000
+        .long	0x3f2a8000
+        .long	0x3f2a0000
+        .long	0x3f29a000
+        .long	0x3f292000
+        .long	0x3f28c000
+        .long	0x3f284000
+        .long	0x3f27e000
+        .long	0x3f276000
+        .long	0x3f270000
+        .long	0x3f268000
+        .long	0x3f262000
+        .long	0x3f25c000
+        .long	0x3f254000
+        .long	0x3f24e000
+        .long	0x3f248000
+        .long	0x3f240000
+        .long	0x3f23a000
+        .long	0x3f234000
+        .long	0x3f22e000
+        .long	0x3f226000
+        .long	0x3f220000
+        .long	0x3f21a000
+        .long	0x3f214000
+        .long	0x3f20e000
+        .long	0x3f206000
+        .long	0x3f200000
+        .long	0x3f1fa000
+        .long	0x3f1f4000
+        .long	0x3f1ee000
+        .long	0x3f1e8000
+        .long	0x3f1e2000
+        .long	0x3f1dc000
+        .long	0x3f1d6000
+        .long	0x3f1d0000
+        .long	0x3f1ca000
+        .long	0x3f1c4000
+        .long	0x3f1be000
+        .long	0x3f1b8000
+        .long	0x3f1b2000
+        .long	0x3f1ac000
+        .long	0x3f1a6000
+        .long	0x3f1a0000
+        .long	0x3f19a000
+        .long	0x3f194000
+        .long	0x3f190000
+        .long	0x3f18a000
+        .long	0x3f184000
+        .long	0x3f17e000
+        .long	0x3f178000
+        .long	0x3f172000
+        .long	0x3f16e000
+        .long	0x3f168000
+        .long	0x3f162000
+        .long	0x3f15c000
+        .long	0x3f158000
+        .long	0x3f152000
+        .long	0x3f14c000
+        .long	0x3f148000
+        .long	0x3f142000
+        .long	0x3f13c000
+        .long	0x3f138000
+        .long	0x3f132000
+        .long	0x3f12c000
+        .long	0x3f128000
+        .long	0x3f122000
+        .long	0x3f11c000
+        .long	0x3f118000
+        .long	0x3f112000
+        .long	0x3f10e000
+        .long	0x3f108000
+        .long	0x3f104000
+        .long	0x3f0fe000
+        .long	0x3f0f8000
+        .long	0x3f0f4000
+        .long	0x3f0ee000
+        .long	0x3f0ea000
+        .long	0x3f0e6000
+        .long	0x3f0e0000
+        .long	0x3f0dc000
+        .long	0x3f0d6000
+        .long	0x3f0d2000
+        .long	0x3f0cc000
+        .long	0x3f0c8000
+        .long	0x3f0c2000
+        .long	0x3f0be000
+        .long	0x3f0ba000
+        .long	0x3f0b4000
+        .long	0x3f0b0000
+        .long	0x3f0ac000
+        .long	0x3f0a6000
+        .long	0x3f0a2000
+        .long	0x3f09e000
+        .long	0x3f098000
+        .long	0x3f094000
+        .long	0x3f090000
+        .long	0x3f08a000
+        .long	0x3f086000
+        .long	0x3f082000
+        .long	0x3f07e000
+        .long	0x3f078000
+        .long	0x3f074000
+        .long	0x3f070000
+        .long	0x3f06c000
+        .long	0x3f066000
+        .long	0x3f062000
+        .long	0x3f05e000
+        .long	0x3f05a000
+        .long	0x3f056000
+        .long	0x3f052000
+        .long	0x3f04c000
+        .long	0x3f048000
+        .long	0x3f044000
+        .long	0x3f040000
+        .long	0x3f03c000
+        .long	0x3f038000
+        .long	0x3f034000
+        .long	0x3f030000
+        .long	0x3f02a000
+        .long	0x3f026000
+        .long	0x3f022000
+        .long	0x3f01e000
+        .long	0x3f01a000
+        .long	0x3f016000
+        .long	0x3f012000
+        .long	0x3f00e000
+        .long	0x3f00a000
+        .long	0x3f006000
+        .long	0x3f002000
+        .type	__dlog2_la___libm_rcp_table_256,@object
+        .size	__dlog2_la___libm_rcp_table_256,1024
+        .align 64
+
+__dlog2_la___libm_log2_table_256:
+        .long	0xfb44c3b7,0x3e1485cb
+        .long	0x00000000,0x3f671b0e
+        .long	0x06028ac0,0x3e31d5d9
+        .long	0x00000000,0x3f815cfe
+        .long	0xb8d7240b,0x3df8b9cb
+        .long	0x00000000,0x3f8cfee7
+        .long	0x0d179106,0x3e38864a
+        .long	0x00000000,0x3f94564a
+        .long	0xecba1593,0x3e459c6a
+        .long	0x00000000,0x3f997723
+        .long	0x94120c14,0x3e48d36a
+        .long	0x00000000,0x3f9f5923
+        .long	0xd2571490,0x3e5410ba
+        .long	0x00000000,0x3fa2a094
+        .long	0x1dc036a2,0x3e2776b0
+        .long	0x00000000,0x3fa53894
+        .long	0x78efe2b1,0x3e537229
+        .long	0x00000000,0x3fa8324c
+        .long	0xfd29dc75,0x3e59c0fa
+        .long	0x00000000,0x3faacf54
+        .long	0x046734f7,0x3e4636b7
+        .long	0x00000000,0x3fadced9
+        .long	0xd3b410b8,0x3e6f7950
+        .long	0x00000000,0x3fb0387e
+        .long	0x00f2200a,0x3e19d1e7
+        .long	0x00000000,0x3fb18ac6
+        .long	0x8661ba82,0x3e4f09a9
+        .long	0x00000000,0x3fb30edd
+        .long	0x9367107c,0x3e564d91
+        .long	0x00000000,0x3fb463c1
+        .long	0x0e4a4ce8,0x3e4e1fd1
+        .long	0x00000000,0x3fb5b9e1
+        .long	0x3cdb6374,0x3e492cf0
+        .long	0x00000000,0x3fb7113f
+        .long	0x069c4f7f,0x3e61a364
+        .long	0x00000000,0x3fb869dd
+        .long	0x427b631b,0x3e6493a6
+        .long	0x00000000,0x3fb9c3be
+        .long	0xe02b3e8b,0x3e6af2c2
+        .long	0x00000000,0x3fbb1ee4
+        .long	0x389f4365,0x3e616e1e
+        .long	0x00000000,0x3fbc7b52
+        .long	0x6a31fd96,0x3e4633b7
+        .long	0x00000000,0x3fbdd90a
+        .long	0x0508664d,0x3e62ed84
+        .long	0x00000000,0x3fbf05d4
+        .long	0xaca1905c,0x3e775dcd
+        .long	0x00000000,0x3fc032fb
+        .long	0x094fbeeb,0x3e753e65
+        .long	0x00000000,0x3fc0e3b5
+        .long	0x96aa4b17,0x3e671f44
+        .long	0x00000000,0x3fc19519
+        .long	0x92da5a47,0x3e785566
+        .long	0x00000000,0x3fc22dad
+        .long	0xbeb7d722,0x3e518efa
+        .long	0x00000000,0x3fc2e050
+        .long	0xab57551c,0x3e738564
+        .long	0x00000000,0x3fc379f7
+        .long	0x54a914e3,0x3e55d0da
+        .long	0x00000000,0x3fc42ddd
+        .long	0xfe974017,0x3e73cd00
+        .long	0x00000000,0x3fc4c89b
+        .long	0x59064390,0x3e54ffd6
+        .long	0x00000000,0x3fc563dc
+        .long	0x633ab50f,0x3e67d75e
+        .long	0x00000000,0x3fc619a2
+        .long	0xc8877e8a,0x3e77e6ce
+        .long	0x00000000,0x3fc6b5ff
+        .long	0x1ab7837f,0x3e7ecc1f
+        .long	0x00000000,0x3fc752e1
+        .long	0xf9d5827a,0x3e7cea7c
+        .long	0x00000000,0x3fc7f049
+        .long	0x64ccd537,0x3e357f7a
+        .long	0x00000000,0x3fc8a898
+        .long	0xf7c9b05b,0x3e7994ca
+        .long	0x00000000,0x3fc94724
+        .long	0xa2f56536,0x3e524b8f
+        .long	0x00000000,0x3fc9e63a
+        .long	0x5edaab42,0x3e7fd640
+        .long	0x00000000,0x3fca85d8
+        .long	0xd163379a,0x3e625f54
+        .long	0x00000000,0x3fcb2602
+        .long	0x936acd51,0x3e7ebdc3
+        .long	0x00000000,0x3fcbc6b6
+        .long	0xcfbc0aa0,0x3e7eee14
+        .long	0x00000000,0x3fcc67f7
+        .long	0xf73bcdad,0x3e764469
+        .long	0x00000000,0x3fcceec4
+        .long	0x60971b86,0x3e6eb44e
+        .long	0x00000000,0x3fcd9109
+        .long	0xcd2052a5,0x3e65fcf4
+        .long	0x00000000,0x3fce33dd
+        .long	0xc402867b,0x3e61af1e
+        .long	0x00000000,0x3fced741
+        .long	0xa0c956e4,0x3e61bfbd
+        .long	0x00000000,0x3fcf7b36
+        .long	0x831e77ff,0x3e85287b
+        .long	0x00000000,0x3fd00223
+        .long	0xaddfdee2,0x3e7d2fc3
+        .long	0x00000000,0x3fd054a4
+        .long	0x342052c1,0x3e83724b
+        .long	0x00000000,0x3fd0999d
+        .long	0x602bcd34,0x3e7b4ec9
+        .long	0x00000000,0x3fd0eca6
+        .long	0x3aa20ead,0x3e6742da
+        .long	0x00000000,0x3fd13ffa
+        .long	0x9ecdadf4,0x3e713e82
+        .long	0x00000000,0x3fd185a4
+        .long	0xfef3031b,0x3e52f27e
+        .long	0x00000000,0x3fd1cb83
+        .long	0x79e4af8a,0x3e710739
+        .long	0x00000000,0x3fd21fa1
+        .long	0xe59ad84a,0x3e637301
+        .long	0x00000000,0x3fd265f5
+        .long	0x3d7dfd9b,0x3e88697c
+        .long	0x00000000,0x3fd2baa0
+        .long	0x738117b0,0x3e717788
+        .long	0x00000000,0x3fd3016b
+        .long	0xd3c26a97,0x3e6c5514
+        .long	0x00000000,0x3fd3486c
+        .long	0x4c4ff246,0x3e8df550
+        .long	0x00000000,0x3fd38fa3
+        .long	0x40340fa6,0x3e88102d
+        .long	0x00000000,0x3fd3e562
+        .long	0x4592f4c3,0x3e5f53b6
+        .long	0x00000000,0x3fd42d14
+        .long	0x8b149a00,0x3e750fc8
+        .long	0x00000000,0x3fd474fd
+        .long	0xa8f50e5f,0x3e86d01c
+        .long	0x00000000,0x3fd4bd1e
+        .long	0x7a22a88a,0x3e83c469
+        .long	0x00000000,0x3fd50578
+        .long	0xdc18b6d2,0x3e79000e
+        .long	0x00000000,0x3fd54e0b
+        .long	0x7c00250b,0x3e7870f0
+        .long	0x00000000,0x3fd596d7
+        .long	0xc1c885ae,0x3e8e3dd5
+        .long	0x00000000,0x3fd5dfdc
+        .long	0xa6ecc47e,0x3e7bf64c
+        .long	0x00000000,0x3fd6291c
+        .long	0x0bc16c18,0x3e6bdaca
+        .long	0x00000000,0x3fd67296
+        .long	0x1f925729,0x3e84d25c
+        .long	0x00000000,0x3fd6bc4a
+        .long	0xf23978de,0x3e5a5fb4
+        .long	0x00000000,0x3fd7063a
+        .long	0xe2ac7f60,0x3e8e3da0
+        .long	0x00000000,0x3fd75064
+        .long	0x71f51a7b,0x3e819e20
+        .long	0x00000000,0x3fd79acb
+        .long	0x5b924234,0x3e5e43ae
+        .long	0x00000000,0x3fd7d67c
+        .long	0xe9aedf37,0x3e701a2b
+        .long	0x00000000,0x3fd8214f
+        .long	0xeddd33ea,0x3e6b6f51
+        .long	0x00000000,0x3fd86c5f
+        .long	0xe732b3c4,0x3e79375f
+        .long	0x00000000,0x3fd8b7ac
+        .long	0xe47cb9df,0x3e7e831b
+        .long	0x00000000,0x3fd8f416
+        .long	0xe392d3c8,0x3e8abc37
+        .long	0x00000000,0x3fd93fd2
+        .long	0x28b35c77,0x3e80852d
+        .long	0x00000000,0x3fd98bcd
+        .long	0xd29cea36,0x3e69f374
+        .long	0x00000000,0x3fd9c8c3
+        .long	0xb3d7b0e6,0x3e542981
+        .long	0x00000000,0x3fda152f
+        .long	0x1fe6d5ac,0x3e8b2bfb
+        .long	0x00000000,0x3fda527f
+        .long	0xf32e5dda,0x3e6f6f5c
+        .long	0x00000000,0x3fda9f5e
+        .long	0xd34d0d30,0x3e65abaa
+        .long	0x00000000,0x3fdadd0b
+        .long	0xe0ac9602,0x3e7bd47f
+        .long	0x00000000,0x3fdb2a5d
+        .long	0x7c5c784b,0x3e833601
+        .long	0x00000000,0x3fdb6867
+        .long	0xd7b0821f,0x3e5b887c
+        .long	0x00000000,0x3fdbb62f
+        .long	0xcd0a8f6a,0x3e83eccc
+        .long	0x00000000,0x3fdbf497
+        .long	0x7500a4e8,0x3e7ba0e6
+        .long	0x00000000,0x3fdc332a
+        .long	0xfc8712bb,0x3e885a8b
+        .long	0x00000000,0x3fdc819d
+        .long	0xf7a3a78f,0x3e81c336
+        .long	0x00000000,0x3fdcc090
+        .long	0x4ad8a38b,0x3e7846b4
+        .long	0x00000000,0x3fdcffae
+        .long	0xfcfc3a99,0x3e7db50f
+        .long	0x00000000,0x3fdd3ef7
+        .long	0x433cccd2,0x3e238809
+        .long	0x00000000,0x3fdd8e50
+        .long	0x6828fa82,0x3e721b2e
+        .long	0x00000000,0x3fddcdfb
+        .long	0xfc7c49c1,0x3e82848b
+        .long	0x00000000,0x3fde0dd2
+        .long	0x1fce4d49,0x3e615144
+        .long	0x00000000,0x3fde4dd6
+        .long	0x77e2e8fd,0x3e68b88a
+        .long	0x00000000,0x3fde8e06
+        .long	0x22a961b0,0x3e8fd353
+        .long	0x00000000,0x3fdece62
+        .long	0x266f2e1f,0x3e72854e
+        .long	0x00000000,0x3fdf1f16
+        .long	0xc69211fe,0x3e8520c7
+        .long	0x00000000,0x3fdf5fd8
+        .long	0xaba878d5,0x3e826fcf
+        .long	0x00000000,0x3fdfa0c8
+        .long	0xcd5b35b1,0x3e726ed8
+        .long	0x00000000,0x3fdfe1e6
+        .long	0x678a4f1c,0x3e49054d
+        .long	0x00000000,0x3fe01199
+        .long	0x3bc19f18,0x3e5d23cb
+        .long	0x00000000,0x3fe03256
+        .long	0x12772acb,0x3e87af35
+        .long	0x00000000,0x3fe0532a
+        .long	0x2849c88a,0x3e67f5fc
+        .long	0x00000000,0x3fe07416
+        .long	0x0e574fa1,0x3e84fce2
+        .long	0x00000000,0x3fe08cd6
+        .long	0x0ec2b5fa,0x3e857044
+        .long	0x00000000,0x3fe0adeb
+        .long	0xd031f353,0x3e6d5d1d
+        .long	0x00000000,0x3fe0cf18
+        .long	0xdae75c4d,0x3e99a159
+        .long	0x00000000,0x3fe0f05c
+        .long	0x1553afb9,0x3e90eaf1
+        .long	0x00000000,0x3fe111b9
+        .long	0xdcc5c3c7,0x3e8bc6f3
+        .long	0x00000000,0x3fe1332e
+        .long	0x1109e597,0x3e94ef84
+        .long	0x00000000,0x3fe154bb
+        .long	0xd82adea4,0x3e937f40
+        .long	0x00000000,0x3fe16df5
+        .long	0x78336a2f,0x3e96dc5a
+        .long	0x00000000,0x3fe18fad
+        .long	0x84c2c804,0x3e90935b
+        .long	0x00000000,0x3fe1b17e
+        .long	0x04fd30aa,0x3e8a837a
+        .long	0x00000000,0x3fe1caeb
+        .long	0xd924b0ac,0x3e99061d
+        .long	0x00000000,0x3fe1ece7
+        .long	0xef9b9d01,0x3e7ed700
+        .long	0x00000000,0x3fe20efd
+        .long	0x202c81ec,0x3e9c6ebb
+        .long	0x00000000,0x3fe2289d
+        .long	0xfc0d7d76,0x3e936d4d
+        .long	0x00000000,0x3fe24adf
+        .long	0x9f8756ba,0x3e9a35d7
+        .long	0x00000000,0x3fe26d3a
+        .long	0xe7c79d83,0x3e584ee3
+        .long	0x00000000,0x3fe28710
+        .long	0x942065a0,0x3e7d9e0d
+        .long	0x00000000,0x3fe2a998
+        .long	0x2175afbf,0x3e872108
+        .long	0x00000000,0x3fe2c38f
+        .long	0xfaf6283c,0x3e9f5809
+        .long	0x00000000,0x3fe2e644
+        .long	0x411d0507,0x3e871209
+        .long	0x00000000,0x3fe3005e
+        .long	0x370c24bf,0x3e9c3b11
+        .long	0x00000000,0x3fe32341
+        .long	0x8044bb5a,0x3e9bce8e
+        .long	0x00000000,0x3fe33d7d
+        .long	0x698ea854,0x3e98aca0
+        .long	0x00000000,0x3fe3608f
+        .long	0xd4d873bb,0x3e972a8e
+        .long	0x00000000,0x3fe37aee
+        .long	0x615e8182,0x3e8f669b
+        .long	0x00000000,0x3fe39e2f
+        .long	0xdda5b49a,0x3e98d1f4
+        .long	0x00000000,0x3fe3b8b1
+        .long	0xe72383f7,0x3e9cc279
+        .long	0x00000000,0x3fe3dc21
+        .long	0x497497f1,0x3e9c6774
+        .long	0x00000000,0x3fe3f6c7
+        .long	0x801bd0e6,0x3e82c7f6
+        .long	0x00000000,0x3fe4117d
+        .long	0xd0ee28b4,0x3e9dfdd6
+        .long	0x00000000,0x3fe43531
+        .long	0xb70d3761,0x3e92d3a2
+        .long	0x00000000,0x3fe4500b
+        .long	0xe7d6bcb2,0x3e9c8343
+        .long	0x00000000,0x3fe46af4
+        .long	0x90d43957,0x3e693179
+        .long	0x00000000,0x3fe48eef
+        .long	0xf12570df,0x3e799eab
+        .long	0x00000000,0x3fe4a9fd
+        .long	0x1b88755d,0x3e78c5f8
+        .long	0x00000000,0x3fe4c51b
+        .long	0xdf99a22c,0x3e7369be
+        .long	0x00000000,0x3fe4e049
+        .long	0x6ed50f62,0x3e88fd93
+        .long	0x00000000,0x3fe5049f
+        .long	0x978605ff,0x3e9c6042
+        .long	0x00000000,0x3fe51ff2
+        .long	0xe6c85f4c,0x3e930ae6
+        .long	0x00000000,0x3fe53b56
+        .long	0xc3275ba6,0x3e92e7b6
+        .long	0x00000000,0x3fe556ca
+        .long	0x91597938,0x3e9e6401
+        .long	0x00000000,0x3fe5724e
+        .long	0x448ebb62,0x3e3d2dee
+        .long	0x00000000,0x3fe59719
+        .long	0x47501b6d,0x3e9b432e
+        .long	0x00000000,0x3fe5b2c3
+        .long	0x571fa7cd,0x3e83cf9b
+        .long	0x00000000,0x3fe5ce7f
+        .long	0x7359819d,0x3e8dc615
+        .long	0x00000000,0x3fe5ea4b
+        .long	0xc78a85ed,0x3e8973c3
+        .long	0x00000000,0x3fe60628
+        .long	0xc15a9f3d,0x3e77d788
+        .long	0x00000000,0x3fe62216
+        .long	0x51952736,0x3e9d2538
+        .long	0x00000000,0x3fe63e14
+        .long	0xde792c07,0x3e94dab9
+        .long	0x00000000,0x3fe65a24
+        .long	0x5bfa4318,0x3e8f5be1
+        .long	0x00000000,0x3fe67645
+        .long	0x55090ec8,0x3e903b26
+        .long	0x00000000,0x3fe69277
+        .long	0xc78b6175,0x3e99236f
+        .long	0x00000000,0x3fe6aeba
+        .long	0x3a80db6a,0x3e8a1972
+        .long	0x00000000,0x3fe6cb0f
+        .long	0xf558aa96,0x3e8d43a2
+        .long	0x00000000,0x3fe6e775
+        .long	0xd9a82f2e,0x3e424ee3
+        .long	0x00000000,0x3fe703ed
+        .long	0x583878f6,0x3e764d8e
+        .long	0x00000000,0x3fe72076
+        .long	0xc1150a3e,0x3e379604
+        .long	0x00000000,0x3fe73d11
+        .long	0xed85584b,0x3e93b229
+        .long	0x00000000,0x3fe759bd
+        .long	0x451a7b48,0x3e62967a
+        .long	0x00000000,0x3fe7767c
+        .long	0xc044e72d,0x3e8e12d7
+        .long	0x00000000,0x3fe7934c
+        .long	0xfdfb6949,0x3e9ca45d
+        .long	0x00000000,0x3fe7b02e
+        .long	0xff690fce,0x3e9244fc
+        .long	0x00000000,0x3fe7c37a
+        .long	0x81487a2c,0x3e7e9cea
+        .long	0x00000000,0x3fe7e07b
+        .long	0xd0ad2d9a,0x3e760da0
+        .long	0x00000000,0x3fe7fd8e
+        .long	0x096f45d9,0x3e8d7703
+        .long	0x00000000,0x3fe81ab3
+        .long	0x1b17115b,0x3e78dbee
+        .long	0x00000000,0x3fe837eb
+        .long	0x7c252ee0,0x3e8dc5a4
+        .long	0x00000000,0x3fe85535
+        .long	0x42d5123f,0x3e950116
+        .long	0x00000000,0x3fe868c6
+        .long	0xf11e41be,0x3e4c4eb7
+        .long	0x00000000,0x3fe88630
+        .long	0xdb2890b4,0x3e7773b8
+        .long	0x00000000,0x3fe8a3ac
+        .long	0x7ffb4479,0x3e7bc8e7
+        .long	0x00000000,0x3fe8c13b
+        .long	0x237693b3,0x3e8c388f
+        .long	0x00000000,0x3fe8d4fa
+        .long	0x45fcf1a0,0x3e731cd4
+        .long	0x00000000,0x3fe8f2a9
+        .long	0xe4895b91,0x3e9fae07
+        .long	0x00000000,0x3fe9106a
+        .long	0x42d2824e,0x3e7d140d
+        .long	0x00000000,0x3fe9244c
+        .long	0x39900f67,0x3e75c3c8
+        .long	0x00000000,0x3fe9422e
+        .long	0xa314252b,0x3e902422
+        .long	0x00000000,0x3fe96023
+        .long	0xf2a6b8ef,0x3e7b9be8
+        .long	0x00000000,0x3fe97427
+        .long	0x1476f5e9,0x3e66b188
+        .long	0x00000000,0x3fe9923d
+        .long	0xdde10a6f,0x3e93c377
+        .long	0x00000000,0x3fe9b066
+        .long	0x4944a32c,0x3e817cad
+        .long	0x00000000,0x3fe9c48d
+        .long	0xc738e7ef,0x3e9927f2
+        .long	0x00000000,0x3fe9e2d7
+        .long	0xd25cfd94,0x3e7ccc41
+        .long	0x00000000,0x3fea0136
+        .long	0x2210e81b,0x3e8382fa
+        .long	0x00000000,0x3fea1580
+        .long	0x1e690ce2,0x3e7752a7
+        .long	0x00000000,0x3fea3400
+        .long	0x122315d2,0x3e94cfee
+        .long	0x00000000,0x3fea4860
+        .long	0xce98333b,0x3e80536e
+        .long	0x00000000,0x3fea6702
+        .long	0xc30f00e9,0x3e838b7e
+        .long	0x00000000,0x3fea7b79
+        .long	0x05b0c779,0x3e9dc380
+        .long	0x00000000,0x3fea9a3c
+        .long	0xdd6dd3fe,0x3e6be168
+        .long	0x00000000,0x3feab915
+        .long	0x26e0d276,0x3e966757
+        .long	0x00000000,0x3feacdb0
+        .long	0x0aad615c,0x3e880252
+        .long	0x00000000,0x3feaecab
+        .long	0x7927096a,0x3e607c31
+        .long	0x00000000,0x3feb015e
+        .long	0x53b3d90e,0x3e596513
+        .long	0x00000000,0x3feb161a
+        .long	0x8f2f0570,0x3e90ec3a
+        .long	0x00000000,0x3feb3545
+        .long	0x81193954,0x3e9cb640
+        .long	0x00000000,0x3feb4a18
+        .long	0x311e7236,0x3e936479
+        .long	0x00000000,0x3feb6967
+        .long	0x3a42a413,0x3e9210e8
+        .long	0x00000000,0x3feb7e52
+        .long	0x4a0daeb2,0x3e9a1717
+        .long	0x00000000,0x3feb9dc4
+        .long	0xce900653,0x3e925bb7
+        .long	0x00000000,0x3febb2c7
+        .long	0xb5087588,0x3e95dbb8
+        .long	0x00000000,0x3febd25d
+        .long	0x4a41204c,0x3e8d0aa9
+        .long	0x00000000,0x3febe778
+        .long	0x69a0d774,0x3e9c772f
+        .long	0x00000000,0x3febfc9c
+        .long	0x79d0a9a5,0x3e97b6a0
+        .long	0x00000000,0x3fec1c65
+        .long	0xd26f1a12,0x3e8f7402
+        .long	0x00000000,0x3fec31a2
+        .long	0x1243bc84,0x3e4db2f1
+        .long	0x00000000,0x3fec46e9
+        .long	0x477e1755,0x3e80dcc2
+        .long	0x00000000,0x3fec66e5
+        .long	0xc2f904c1,0x3e8b1e31
+        .long	0x00000000,0x3fec7c44
+        .long	0x1785b0c4,0x3e8fb619
+        .long	0x00000000,0x3fec91ad
+        .long	0xedb052ef,0x3e98832d
+        .long	0x00000000,0x3fecb1dd
+        .long	0x9e373618,0x3e98c822
+        .long	0x00000000,0x3fecc75f
+        .long	0x32954637,0x3e9a46e7
+        .long	0x00000000,0x3fecdceb
+        .long	0xf0e6b2a9,0x3e996305
+        .long	0x00000000,0x3fecfd50
+        .long	0x1a6614ee,0x3e68c160
+        .long	0x00000000,0x3fed12f6
+        .long	0x09e33b28,0x3e9229c4
+        .long	0x00000000,0x3fed28a5
+        .long	0xe53b994c,0x3e7f281b
+        .long	0x00000000,0x3fed3e5f
+        .long	0x1124ac35,0x3e9f27f3
+        .long	0x00000000,0x3fed5f08
+        .long	0x3d2fdc03,0x3e84e779
+        .long	0x00000000,0x3fed74dc
+        .long	0x1e93fd97,0x3e416c07
+        .long	0x00000000,0x3fed8aba
+        .long	0x91b415ef,0x3e654669
+        .long	0x00000000,0x3feda0a2
+        .long	0x6495f594,0x3e9712d4
+        .long	0x00000000,0x3fedc191
+        .long	0x40171789,0x3e9ca7b2
+        .long	0x00000000,0x3fedd793
+        .long	0xe8fc4323,0x3e929afa
+        .long	0x00000000,0x3fededa0
+        .long	0xeb03bd09,0x3e9a2e96
+        .long	0x00000000,0x3fee03b7
+        .long	0xca370ea2,0x3e94a63d
+        .long	0x00000000,0x3fee19d9
+        .long	0xe30512ec,0x3e6a3bcb
+        .long	0x00000000,0x3fee3006
+        .long	0x411c95ce,0x3e99d3ed
+        .long	0x00000000,0x3fee515c
+        .long	0x35cfaf8e,0x3e3e5b57
+        .long	0x00000000,0x3fee67a4
+        .long	0x5669df6a,0x3e9fca71
+        .long	0x00000000,0x3fee7df5
+        .long	0x04f19d94,0x3e9914e2
+        .long	0x00000000,0x3fee9452
+        .long	0xcaa19134,0x3e8b511c
+        .long	0x00000000,0x3feeaaba
+        .long	0x4bb3bfb1,0x3e9ed72f
+        .long	0x00000000,0x3feec12c
+        .long	0x3c29d75e,0x3e8be8d6
+        .long	0x00000000,0x3feed7aa
+        .long	0x97da24fd,0x3e9c55d9
+        .long	0x00000000,0x3feeee32
+        .long	0x983c68ea,0x3e7ddfb1
+        .long	0x00000000,0x3fef1014
+        .long	0xf4425883,0x3e83ce66
+        .long	0x00000000,0x3fef26b8
+        .long	0xf7857f23,0x3e9055c3
+        .long	0x00000000,0x3fef3d67
+        .long	0x2805b525,0x3e9c2223
+        .long	0x00000000,0x3fef5421
+        .long	0x0c347fcf,0x3e8d59ba
+        .long	0x00000000,0x3fef6ae7
+        .long	0x7c901c44,0x3e82b110
+        .long	0x00000000,0x3fef81b8
+        .long	0x74d1b482,0x3e8b1394
+        .long	0x00000000,0x3fef9894
+        .long	0x36fb9eb2,0x3e9ca75b
+        .long	0x00000000,0x3fefaf7b
+        .long	0x629b1b7e,0x3e981a0a
+        .long	0x00000000,0x3fefc66e
+        .long	0x7b8c1116,0x3e54cc20
+        .long	0x00000000,0x3fefdd6d
+        .long	0xc0babe05,0x3e99ac8b
+        .long	0x00000000,0x3feff476
+        .type	__dlog2_la___libm_log2_table_256,@object
+        .size	__dlog2_la___libm_log2_table_256,4096
+        .space 512, 0x00 	
+        .align 64
+
+__dlog2_la__P:
+        .long	3213235158
+        .long	1050233568
+        .long	1697350398
+        .long	3219592519
+        .long	3694740707
+        .long	1071564553
+        .long	1697260025
+        .long	3218543943
+        .long	2542794428
+        .long	1070757746
+        .long	2165113687
+        .long	3217999640
+        .long	0
+        .long	1073157447
+        .type	__dlog2_la__P,@object
+        .size	__dlog2_la__P,56
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core-avx2.S
new file mode 100644
index 0000000000..804de5fe0c
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core-avx2.S
@@ -0,0 +1,20 @@ 
+/* AVX2 version of vectorized log2, 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_log2 _ZGVeN8v_log2_avx2_wrapper
+#include "../svml_d_log28_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core.c
new file mode 100644
index 0000000000..bd55abecc7
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core.c
@@ -0,0 +1,27 @@ 
+/* Multiple versions of vectorized log2, 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_log2
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN8v_log2, __GI__ZGVeN8v_log2, __redirect__ZGVeN8v_log2)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core_avx512.S
new file mode 100644
index 0000000000..c92d0476f6
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log28_core_avx512.S
@@ -0,0 +1,1661 @@ 
+/* Function log 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
+ *    log2(x) = k - log2(Rcp) + poly_approximation(R)
+ *       log2(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+ENTRY(_ZGVeN8v_log2_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_dlog2_data_internal_avx512(%rip), %zmm2
+        vmovups   512+__svml_dlog2_data_internal_avx512(%rip), %zmm12
+        vmovups   640+__svml_dlog2_data_internal_avx512(%rip), %zmm13
+
+/* Start polynomial evaluation */
+        vmovups   256+__svml_dlog2_data_internal_avx512(%rip), %zmm10
+        vmovups   320+__svml_dlog2_data_internal_avx512(%rip), %zmm0
+        vmovups   384+__svml_dlog2_data_internal_avx512(%rip), %zmm11
+        vmovups   448+__svml_dlog2_data_internal_avx512(%rip), %zmm14
+
+/* Prepare exponent correction: DblRcp<0.75? */
+        vmovups   192+__svml_dlog2_data_internal_avx512(%rip), %zmm1
+
+/* Table lookup */
+        vmovups   __svml_dlog2_data_internal_avx512(%rip), %zmm4
+
+/* GetExp(x) */
+        vgetexppd {sae}, %zmm7, %zmm5
+
+/* 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, %zmm3
+        vmovups   576+__svml_dlog2_data_internal_avx512(%rip), %zmm8
+        kmovw     %k0, %edx
+
+/* Reduced argument: R = DblRcp*Mantissa - 1 */
+        vfmsub213pd {rn-sae}, %zmm2, %zmm3, %zmm6
+        vcmppd    $17, {sae}, %zmm1, %zmm3, %k1
+        vfmadd231pd {rn-sae}, %zmm6, %zmm12, %zmm8
+        vmovups   704+__svml_dlog2_data_internal_avx512(%rip), %zmm12
+        vfmadd231pd {rn-sae}, %zmm6, %zmm10, %zmm0
+        vfmadd231pd {rn-sae}, %zmm6, %zmm11, %zmm14
+        vmovups   768+__svml_dlog2_data_internal_avx512(%rip), %zmm1
+
+/* R^2 */
+        vmulpd    {rn-sae}, %zmm6, %zmm6, %zmm15
+        vfmadd231pd {rn-sae}, %zmm6, %zmm13, %zmm12
+
+/* Prepare table index */
+        vpsrlq    $48, %zmm3, %zmm9
+
+/* add 1 to Expon if DblRcp<0.75 */
+        vaddpd    {rn-sae}, %zmm2, %zmm5, %zmm5{%k1}
+        vmulpd    {rn-sae}, %zmm15, %zmm15, %zmm13
+        vfmadd213pd {rn-sae}, %zmm14, %zmm15, %zmm0
+        vfmadd213pd {rn-sae}, %zmm12, %zmm15, %zmm8
+        vpermt2pd 64+__svml_dlog2_data_internal_avx512(%rip), %zmm9, %zmm4
+
+/* polynomial */
+        vfmadd213pd {rn-sae}, %zmm8, %zmm13, %zmm0
+        vfmadd213pd {rn-sae}, %zmm1, %zmm6, %zmm0
+        vfmadd213pd {rn-sae}, %zmm4, %zmm0, %zmm6
+        vaddpd    {rn-sae}, %zmm6, %zmm5, %zmm0
+        testl     %edx, %edx
+        jne       .LBL_1_3
+
+.LBL_1_2:
+        movq      %rbp, %rsp
+        popq      %rbp
+        cfi_def_cfa(7, 8)
+        cfi_restore(6)
+        ret
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+
+.LBL_1_3:
+        vmovups   %zmm7, 64(%rsp)
+        vmovups   %zmm0, 128(%rsp)
+        je        .LBL_1_2
+        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
+
+.LBL_1_7:
+        btl       %r12d, %r13d
+        jc        .LBL_1_10
+
+.LBL_1_8:
+        incl      %r12d
+        cmpl      $8, %r12d
+        jl        .LBL_1_7
+        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       .LBL_1_2
+        .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
+
+.LBL_1_10:
+        lea       64(%rsp,%r12,8), %rdi
+        lea       128(%rsp,%r12,8), %rsi
+        call      __svml_dlog2_cout_rare_internal
+        jmp       .LBL_1_8
+
+END(_ZGVeN8v_log2_skx)
+
+        .align    16,0x90
+
+__svml_dlog2_cout_rare_internal:
+
+        cfi_startproc
+
+        movq      $0, -64(%rsp)
+        movsd     -64(%rsp), %xmm0
+        movsd     (%rdi), %xmm1
+        movups    _zeros.256.0.0.1(%rip), %xmm2
+        subsd     %xmm0, %xmm1
+        movsd     %xmm1, -8(%rsp)
+        movups    %xmm2, -56(%rsp)
+        movups    _ones.256.0.0.1(%rip), %xmm0
+        movups    %xmm0, -40(%rsp)
+        movups    _infs.256.0.0.1(%rip), %xmm0
+        movups    %xmm0, -24(%rsp)
+        movl      -4(%rsp), %eax
+        cmpl      $2146435072, %eax
+        jae       .LBL_2_19
+        lea       -1072660480(%rax), %edx
+        cmpl      $53248, %edx
+        jae       .LBL_2_14
+        lea       -1072693232(%rax), %edx
+        cmpl      $24, %edx
+        jae       .LBL_2_13
+        movl      -8(%rsp), %edi
+        movl      %eax, %ecx
+        movl      %edi, %edx
+        shll      $11, %ecx
+        shrl      $21, %edx
+        orl       %edx, %ecx
+        addl      $-2147483646, %ecx
+        cmpl      $3, %ecx
+        jae       .LBL_2_12
+        addl      $-1072693248, %eax
+        orl       %edi, %eax
+        jne       .LBL_2_10
+        movq      -56(%rsp), %rax
+        movq      %rax, (%rsi)
+        jmp       .LBL_2_11
+
+.LBL_2_10:
+        movsd     -8(%rsp), %xmm0
+        movsd     16+__dlog2_la__Q3(%rip), %xmm2
+        movsd     24+__dlog2_la__Q3(%rip), %xmm1
+        addsd     -32(%rsp), %xmm0
+        mulsd     %xmm0, %xmm2
+        mulsd     %xmm0, %xmm1
+        addsd     8+__dlog2_la__Q3(%rip), %xmm2
+        mulsd     %xmm0, %xmm2
+        movsd     %xmm0, -8(%rsp)
+        addsd     __dlog2_la__Q3(%rip), %xmm2
+        mulsd     %xmm0, %xmm2
+        addsd     %xmm1, %xmm2
+        movsd     %xmm2, (%rsi)
+
+.LBL_2_11:
+        xorl      %eax, %eax
+        ret
+
+.LBL_2_12:
+        movsd     -8(%rsp), %xmm2
+        xorl      %eax, %eax
+        movsd     16+__dlog2_la__Q2(%rip), %xmm1
+        movsd     24+__dlog2_la__Q2(%rip), %xmm3
+        addsd     -32(%rsp), %xmm2
+        movaps    %xmm2, %xmm0
+        mulsd     %xmm2, %xmm0
+        mulsd     %xmm0, %xmm1
+        mulsd     %xmm0, %xmm3
+        addsd     __dlog2_la__Q2(%rip), %xmm1
+        addsd     8+__dlog2_la__Q2(%rip), %xmm3
+        mulsd     %xmm2, %xmm1
+        mulsd     %xmm0, %xmm3
+        movsd     %xmm2, -8(%rsp)
+        addsd     %xmm1, %xmm3
+        movl      $0, -8(%rsp)
+        movsd     -8(%rsp), %xmm4
+        subsd     %xmm4, %xmm2
+        addsd     %xmm2, %xmm4
+        mulsd     32+__dlog2_la__Q2(%rip), %xmm4
+        addsd     %xmm3, %xmm4
+        movsd     %xmm4, (%rsi)
+        ret
+
+.LBL_2_13:
+        movsd     -8(%rsp), %xmm2
+        xorl      %eax, %eax
+        movsd     72+__dlog2_la__Q1(%rip), %xmm10
+        movsd     64+__dlog2_la__Q1(%rip), %xmm4
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm5
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm7
+        movsd     88+__dlog2_la__Q1(%rip), %xmm14
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm11
+        movsd     __dlog2_la__TWO_32P(%rip), %xmm15
+        addsd     -32(%rsp), %xmm2
+        movaps    %xmm2, %xmm3
+        movaps    %xmm2, %xmm6
+        mulsd     %xmm2, %xmm3
+        movaps    %xmm2, %xmm0
+        mulsd     %xmm2, %xmm5
+        mulsd     __dlog2_la__TWO_32(%rip), %xmm6
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm3, %xmm4
+        addsd     56+__dlog2_la__Q1(%rip), %xmm10
+        addsd     48+__dlog2_la__Q1(%rip), %xmm4
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm3, %xmm4
+        addsd     40+__dlog2_la__Q1(%rip), %xmm10
+        addsd     32+__dlog2_la__Q1(%rip), %xmm4
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm3, %xmm4
+        addsd     24+__dlog2_la__Q1(%rip), %xmm10
+        addsd     16+__dlog2_la__Q1(%rip), %xmm4
+        mulsd     %xmm3, %xmm10
+        mulsd     %xmm2, %xmm4
+        movsd     __dlog2_la__TWO_32(%rip), %xmm3
+        addsd     %xmm4, %xmm10
+        mulsd     %xmm10, %xmm7
+        movaps    %xmm3, %xmm8
+        mulsd     %xmm10, %xmm8
+        movsd     %xmm5, -72(%rsp)
+        movsd     -72(%rsp), %xmm1
+        movsd     %xmm7, -72(%rsp)
+        subsd     %xmm6, %xmm1
+        movsd     -72(%rsp), %xmm9
+        subsd     %xmm1, %xmm0
+        subsd     %xmm8, %xmm9
+        movsd     %xmm1, -8(%rsp)
+        subsd     %xmm9, %xmm10
+        addsd     %xmm9, %xmm14
+        addsd     8+__dlog2_la__Q1(%rip), %xmm10
+        movaps    %xmm14, %xmm4
+        mulsd     %xmm0, %xmm4
+        mulsd     %xmm2, %xmm10
+        mulsd     %xmm1, %xmm14
+        addsd     %xmm0, %xmm1
+        addsd     %xmm10, %xmm4
+        movaps    %xmm4, %xmm12
+        movsd     80+__dlog2_la__Q1(%rip), %xmm9
+        addsd     %xmm14, %xmm12
+        mulsd     %xmm12, %xmm11
+        mulsd     %xmm3, %xmm12
+        movsd     %xmm11, -72(%rsp)
+        movsd     -72(%rsp), %xmm13
+        subsd     %xmm12, %xmm13
+        subsd     %xmm13, %xmm4
+        addsd     %xmm13, %xmm9
+        addsd     %xmm14, %xmm4
+        movaps    %xmm9, %xmm13
+        addsd     __dlog2_la__Q1(%rip), %xmm4
+        addsd     %xmm4, %xmm13
+        mulsd     %xmm13, %xmm15
+        mulsd     %xmm3, %xmm13
+        movsd     %xmm15, -72(%rsp)
+        movsd     -72(%rsp), %xmm14
+        subsd     %xmm13, %xmm14
+        mulsd     %xmm14, %xmm1
+        subsd     %xmm14, %xmm9
+        addsd     %xmm9, %xmm4
+        mulsd     %xmm2, %xmm4
+        addsd     %xmm4, %xmm1
+        movsd     %xmm1, (%rsi)
+        ret
+
+.LBL_2_14:
+        movl      %eax, %ecx
+        movl      %eax, %edx
+        shrl      $20, %ecx
+        andl      $1048575, %edx
+        addl      $-1023, %ecx
+        cmpl      $1048576, %eax
+        jae       .LBL_2_18
+        movl      %edx, -4(%rsp)
+        movl      -8(%rsp), %edx
+        orl       %edx, %eax
+        jne       .LBL_2_17
+        movsd     -32(%rsp), %xmm0
+        movl      $2, %eax
+        divsd     -56(%rsp), %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+.LBL_2_17:
+        movsd     -8(%rsp), %xmm0
+        mulsd     __dlog2_la__TWO_55(%rip), %xmm0
+        movsd     %xmm0, -8(%rsp)
+        movl      -4(%rsp), %edx
+        movl      %edx, %ecx
+        shrl      $20, %ecx
+        movl      %edx, %eax
+        addl      $-1078, %ecx
+
+.LBL_2_18:
+        shrl      $12, %eax
+        orl       $1072693248, %edx
+        movzbl    %al, %edi
+        pxor      %xmm7, %xmm7
+        movl      %edx, -4(%rsp)
+        lea       __dlog2_la___libm_rcp_table_256(%rip), %rdx
+        movsd     -8(%rsp), %xmm10
+        pxor      %xmm8, %xmm8
+        movl      $0, -8(%rsp)
+        lea       __dlog2_la___libm_log2_table_256(%rip), %rax
+        movsd     -8(%rsp), %xmm0
+        cvtss2sd  (%rdx,%rdi,4), %xmm7
+        cvtsi2sd  %ecx, %xmm8
+        subsd     %xmm0, %xmm10
+        mulsd     %xmm7, %xmm10
+        mulsd     %xmm0, %xmm7
+        movsd     40+__dlog2_la__P(%rip), %xmm4
+        movsd     32+__dlog2_la__P(%rip), %xmm3
+        movsd     48+__dlog2_la__P(%rip), %xmm5
+        movsd     __dlog2_la__TWO_32(%rip), %xmm6
+        shlq      $4, %rdi
+        addsd     -32(%rsp), %xmm7
+        movaps    %xmm7, %xmm2
+        mulsd     %xmm5, %xmm7
+        addsd     %xmm10, %xmm2
+        mulsd     %xmm5, %xmm10
+        addsd     %xmm7, %xmm6
+        movaps    %xmm2, %xmm1
+        mulsd     %xmm2, %xmm1
+        mulsd     %xmm1, %xmm4
+        mulsd     %xmm1, %xmm3
+        addsd     24+__dlog2_la__P(%rip), %xmm4
+        addsd     16+__dlog2_la__P(%rip), %xmm3
+        mulsd     %xmm1, %xmm4
+        mulsd     %xmm1, %xmm3
+        addsd     8+__dlog2_la__P(%rip), %xmm4
+        addsd     __dlog2_la__P(%rip), %xmm3
+        mulsd     %xmm1, %xmm4
+        mulsd     %xmm2, %xmm3
+        movsd     %xmm6, -72(%rsp)
+        addsd     %xmm3, %xmm4
+        addsd     8(%rax,%rdi), %xmm8
+        addsd     %xmm4, %xmm10
+        movsd     -72(%rsp), %xmm9
+        subsd     __dlog2_la__TWO_32(%rip), %xmm9
+        subsd     %xmm9, %xmm7
+        addsd     %xmm8, %xmm9
+        addsd     (%rax,%rdi), %xmm7
+        movsd     %xmm9, -8(%rsp)
+        xorl      %eax, %eax
+        addsd     %xmm7, %xmm10
+        addsd     %xmm9, %xmm10
+        movsd     %xmm10, (%rsi)
+        ret
+
+.LBL_2_19:
+        movl      %eax, %edx
+        andl      $2147483647, %edx
+        cmpl      $2146435072, %edx
+        ja        .LBL_2_28
+        jne       .LBL_2_22
+        cmpl      $0, -8(%rsp)
+        jne       .LBL_2_28
+
+.LBL_2_22:
+        testl     $-2147483648, %eax
+        je        .LBL_2_27
+        movl      -8(%rsp), %eax
+        orl       %eax, %edx
+        movsd     -56(%rsp), %xmm1
+        jne       .LBL_2_25
+        movsd     -32(%rsp), %xmm0
+        movl      $2, %eax
+        divsd     %xmm1, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+.LBL_2_25:
+        movsd     -24(%rsp), %xmm0
+        movl      $1, %eax
+        mulsd     %xmm1, %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+.LBL_2_27:
+        movq      -8(%rsp), %rax
+        movq      %rax, (%rsi)
+        xorl      %eax, %eax
+        ret
+
+.LBL_2_28:
+        movsd     -8(%rsp), %xmm0
+        xorl      %eax, %eax
+        mulsd     -40(%rsp), %xmm0
+        movsd     %xmm0, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_dlog2_cout_rare_internal,@function
+        .size	__svml_dlog2_cout_rare_internal,.-__svml_dlog2_cout_rare_internal
+        .section .rodata, "a"
+        .align 64
+        .align 16
+
+_zeros.256.0.0.1:
+        .long	0
+        .long	0
+        .long	0
+        .long	2147483648
+        .align 16
+
+_ones.256.0.0.1:
+        .long	0
+        .long	1072693248
+        .long	0
+        .long	3220176896
+        .align 16
+
+_infs.256.0.0.1:
+        .long	0
+        .long	2146435072
+        .long	0
+        .long	4293918720
+
+        .section .rodata, "a"
+        .space 16, 0x00 	
+        .align 64
+
+__svml_dlog2_data_internal_avx512:
+        .long	0
+        .long	0
+        .long	4207481622
+        .long	3216401398
+        .long	972805768
+        .long	3217408026
+        .long	3103942666
+        .long	3218062358
+        .long	1271733131
+        .long	3218381432
+        .long	2300516105
+        .long	3218676666
+        .long	3761433103
+        .long	3218958163
+        .long	14039718
+        .long	3219177733
+        .long	1904282206
+        .long	1071288313
+        .long	1751501034
+        .long	1071041295
+        .long	3815829096
+        .long	1070803966
+        .long	2835758645
+        .long	1070555096
+        .long	180337970
+        .long	1070114968
+        .long	3266000023
+        .long	1069690285
+        .long	2530196300
+        .long	1069012484
+        .long	3386464469
+        .long	1067938708
+        .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	3658358034
+        .long	1069846603
+        .long	3658358034
+        .long	1069846603
+        .long	3658358034
+        .long	1069846603
+        .long	3658358034
+        .long	1069846603
+        .long	3658358034
+        .long	1069846603
+        .long	3658358034
+        .long	1069846603
+        .long	3658358034
+        .long	1069846603
+        .long	3658358034
+        .long	1069846603
+        .long	1307270350
+        .long	3217498040
+        .long	1307270350
+        .long	3217498040
+        .long	1307270350
+        .long	3217498040
+        .long	1307270350
+        .long	3217498040
+        .long	1307270350
+        .long	3217498040
+        .long	1307270350
+        .long	3217498040
+        .long	1307270350
+        .long	3217498040
+        .long	1307270350
+        .long	3217498040
+        .long	1367442963
+        .long	1070227827
+        .long	1367442963
+        .long	1070227827
+        .long	1367442963
+        .long	1070227827
+        .long	1367442963
+        .long	1070227827
+        .long	1367442963
+        .long	1070227827
+        .long	1367442963
+        .long	1070227827
+        .long	1367442963
+        .long	1070227827
+        .long	1367442963
+        .long	1070227827
+        .long	3840087116
+        .long	3217999623
+        .long	3840087116
+        .long	3217999623
+        .long	3840087116
+        .long	3217999623
+        .long	3840087116
+        .long	3217999623
+        .long	3840087116
+        .long	3217999623
+        .long	3840087116
+        .long	3217999623
+        .long	3840087116
+        .long	3217999623
+        .long	3840087116
+        .long	3217999623
+        .long	1360320794
+        .long	1070757740
+        .long	1360320794
+        .long	1070757740
+        .long	1360320794
+        .long	1070757740
+        .long	1360320794
+        .long	1070757740
+        .long	1360320794
+        .long	1070757740
+        .long	1360320794
+        .long	1070757740
+        .long	1360320794
+        .long	1070757740
+        .long	1360320794
+        .long	1070757740
+        .long	1698500493
+        .long	3218543943
+        .long	1698500493
+        .long	3218543943
+        .long	1698500493
+        .long	3218543943
+        .long	1698500493
+        .long	3218543943
+        .long	1698500493
+        .long	3218543943
+        .long	1698500493
+        .long	3218543943
+        .long	1698500493
+        .long	3218543943
+        .long	1698500493
+        .long	3218543943
+        .long	3694789279
+        .long	1071564553
+        .long	3694789279
+        .long	1071564553
+        .long	3694789279
+        .long	1071564553
+        .long	3694789279
+        .long	1071564553
+        .long	3694789279
+        .long	1071564553
+        .long	3694789279
+        .long	1071564553
+        .long	3694789279
+        .long	1071564553
+        .long	3694789279
+        .long	1071564553
+        .long	1697350356
+        .long	3219592519
+        .long	1697350356
+        .long	3219592519
+        .long	1697350356
+        .long	3219592519
+        .long	1697350356
+        .long	3219592519
+        .long	1697350356
+        .long	3219592519
+        .long	1697350356
+        .long	3219592519
+        .long	1697350356
+        .long	3219592519
+        .long	1697350356
+        .long	3219592519
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	1697350398
+        .long	1073157447
+        .long	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_dlog2_data_internal_avx512,@object
+        .size	__svml_dlog2_data_internal_avx512,1088
+        .align 64
+
+__dlog2_la__Q3:
+        .long	3213221364
+        .long	1050233568
+        .long	1697350398
+        .long	3219592519
+        .long	3694789629
+        .long	1071564553
+        .long	0
+        .long	1073157447
+        .type	__dlog2_la__Q3,@object
+        .size	__dlog2_la__Q3,32
+        .space 32, 0x00 	
+        .align 64
+
+__dlog2_la__Q2:
+        .long	3213221358
+        .long	1050233568
+        .long	1697350398
+        .long	3219592519
+        .long	3695167823
+        .long	1071564553
+        .long	1697791998
+        .long	3218543943
+        .long	0
+        .long	1073157447
+        .type	__dlog2_la__Q2,@object
+        .size	__dlog2_la__Q2,40
+        .space 24, 0x00 	
+        .align 64
+
+__dlog2_la__Q1:
+        .long	3213221370
+        .long	1050233568
+        .long	3213207734
+        .long	3196668640
+        .long	3694789628
+        .long	1071564553
+        .long	1697350743
+        .long	3218543943
+        .long	1357908666
+        .long	1070757740
+        .long	3685007067
+        .long	3217999625
+        .long	96832070
+        .long	1070227830
+        .long	1140452344
+        .long	3217495379
+        .long	2606274745
+        .long	1069844296
+        .long	1933654871
+        .long	3217172449
+        .long	0
+        .long	1073157447
+        .long	0
+        .long	3219592519
+        .type	__dlog2_la__Q1,@object
+        .size	__dlog2_la__Q1,96
+        .space 32, 0x00 	
+        .align 64
+
+__dlog2_la__TWO_32P:
+        .long	1048576
+        .long	1106247680
+        .type	__dlog2_la__TWO_32P,@object
+        .size	__dlog2_la__TWO_32P,8
+        .space 56, 0x00 	
+        .align 64
+
+__dlog2_la__TWO_32:
+        .long	0
+        .long	1106247680
+        .type	__dlog2_la__TWO_32,@object
+        .size	__dlog2_la__TWO_32,8
+        .space 56, 0x00 	
+        .align 64
+
+__dlog2_la__TWO_55:
+        .long	0
+        .long	1130364928
+        .type	__dlog2_la__TWO_55,@object
+        .size	__dlog2_la__TWO_55,8
+        .space 56, 0x00 	
+        .align 64
+
+__dlog2_la___libm_rcp_table_256:
+        .long	0x3f7f8000
+        .long	0x3f7e8000
+        .long	0x3f7d8000
+        .long	0x3f7c8000
+        .long	0x3f7ba000
+        .long	0x3f7aa000
+        .long	0x3f79a000
+        .long	0x3f78c000
+        .long	0x3f77c000
+        .long	0x3f76e000
+        .long	0x3f75e000
+        .long	0x3f750000
+        .long	0x3f742000
+        .long	0x3f732000
+        .long	0x3f724000
+        .long	0x3f716000
+        .long	0x3f708000
+        .long	0x3f6fa000
+        .long	0x3f6ec000
+        .long	0x3f6de000
+        .long	0x3f6d0000
+        .long	0x3f6c2000
+        .long	0x3f6b6000
+        .long	0x3f6a8000
+        .long	0x3f69a000
+        .long	0x3f68c000
+        .long	0x3f680000
+        .long	0x3f672000
+        .long	0x3f666000
+        .long	0x3f658000
+        .long	0x3f64c000
+        .long	0x3f640000
+        .long	0x3f632000
+        .long	0x3f626000
+        .long	0x3f61a000
+        .long	0x3f60e000
+        .long	0x3f600000
+        .long	0x3f5f4000
+        .long	0x3f5e8000
+        .long	0x3f5dc000
+        .long	0x3f5d0000
+        .long	0x3f5c4000
+        .long	0x3f5b8000
+        .long	0x3f5ae000
+        .long	0x3f5a2000
+        .long	0x3f596000
+        .long	0x3f58a000
+        .long	0x3f57e000
+        .long	0x3f574000
+        .long	0x3f568000
+        .long	0x3f55e000
+        .long	0x3f552000
+        .long	0x3f546000
+        .long	0x3f53c000
+        .long	0x3f532000
+        .long	0x3f526000
+        .long	0x3f51c000
+        .long	0x3f510000
+        .long	0x3f506000
+        .long	0x3f4fc000
+        .long	0x3f4f2000
+        .long	0x3f4e6000
+        .long	0x3f4dc000
+        .long	0x3f4d2000
+        .long	0x3f4c8000
+        .long	0x3f4be000
+        .long	0x3f4b4000
+        .long	0x3f4aa000
+        .long	0x3f4a0000
+        .long	0x3f496000
+        .long	0x3f48c000
+        .long	0x3f482000
+        .long	0x3f478000
+        .long	0x3f46e000
+        .long	0x3f464000
+        .long	0x3f45c000
+        .long	0x3f452000
+        .long	0x3f448000
+        .long	0x3f43e000
+        .long	0x3f436000
+        .long	0x3f42c000
+        .long	0x3f422000
+        .long	0x3f41a000
+        .long	0x3f410000
+        .long	0x3f408000
+        .long	0x3f3fe000
+        .long	0x3f3f6000
+        .long	0x3f3ec000
+        .long	0x3f3e4000
+        .long	0x3f3da000
+        .long	0x3f3d2000
+        .long	0x3f3ca000
+        .long	0x3f3c0000
+        .long	0x3f3b8000
+        .long	0x3f3b0000
+        .long	0x3f3a8000
+        .long	0x3f39e000
+        .long	0x3f396000
+        .long	0x3f38e000
+        .long	0x3f386000
+        .long	0x3f37e000
+        .long	0x3f376000
+        .long	0x3f36c000
+        .long	0x3f364000
+        .long	0x3f35c000
+        .long	0x3f354000
+        .long	0x3f34c000
+        .long	0x3f344000
+        .long	0x3f33c000
+        .long	0x3f334000
+        .long	0x3f32e000
+        .long	0x3f326000
+        .long	0x3f31e000
+        .long	0x3f316000
+        .long	0x3f30e000
+        .long	0x3f306000
+        .long	0x3f2fe000
+        .long	0x3f2f8000
+        .long	0x3f2f0000
+        .long	0x3f2e8000
+        .long	0x3f2e2000
+        .long	0x3f2da000
+        .long	0x3f2d2000
+        .long	0x3f2cc000
+        .long	0x3f2c4000
+        .long	0x3f2bc000
+        .long	0x3f2b6000
+        .long	0x3f2ae000
+        .long	0x3f2a8000
+        .long	0x3f2a0000
+        .long	0x3f29a000
+        .long	0x3f292000
+        .long	0x3f28c000
+        .long	0x3f284000
+        .long	0x3f27e000
+        .long	0x3f276000
+        .long	0x3f270000
+        .long	0x3f268000
+        .long	0x3f262000
+        .long	0x3f25c000
+        .long	0x3f254000
+        .long	0x3f24e000
+        .long	0x3f248000
+        .long	0x3f240000
+        .long	0x3f23a000
+        .long	0x3f234000
+        .long	0x3f22e000
+        .long	0x3f226000
+        .long	0x3f220000
+        .long	0x3f21a000
+        .long	0x3f214000
+        .long	0x3f20e000
+        .long	0x3f206000
+        .long	0x3f200000
+        .long	0x3f1fa000
+        .long	0x3f1f4000
+        .long	0x3f1ee000
+        .long	0x3f1e8000
+        .long	0x3f1e2000
+        .long	0x3f1dc000
+        .long	0x3f1d6000
+        .long	0x3f1d0000
+        .long	0x3f1ca000
+        .long	0x3f1c4000
+        .long	0x3f1be000
+        .long	0x3f1b8000
+        .long	0x3f1b2000
+        .long	0x3f1ac000
+        .long	0x3f1a6000
+        .long	0x3f1a0000
+        .long	0x3f19a000
+        .long	0x3f194000
+        .long	0x3f190000
+        .long	0x3f18a000
+        .long	0x3f184000
+        .long	0x3f17e000
+        .long	0x3f178000
+        .long	0x3f172000
+        .long	0x3f16e000
+        .long	0x3f168000
+        .long	0x3f162000
+        .long	0x3f15c000
+        .long	0x3f158000
+        .long	0x3f152000
+        .long	0x3f14c000
+        .long	0x3f148000
+        .long	0x3f142000
+        .long	0x3f13c000
+        .long	0x3f138000
+        .long	0x3f132000
+        .long	0x3f12c000
+        .long	0x3f128000
+        .long	0x3f122000
+        .long	0x3f11c000
+        .long	0x3f118000
+        .long	0x3f112000
+        .long	0x3f10e000
+        .long	0x3f108000
+        .long	0x3f104000
+        .long	0x3f0fe000
+        .long	0x3f0f8000
+        .long	0x3f0f4000
+        .long	0x3f0ee000
+        .long	0x3f0ea000
+        .long	0x3f0e6000
+        .long	0x3f0e0000
+        .long	0x3f0dc000
+        .long	0x3f0d6000
+        .long	0x3f0d2000
+        .long	0x3f0cc000
+        .long	0x3f0c8000
+        .long	0x3f0c2000
+        .long	0x3f0be000
+        .long	0x3f0ba000
+        .long	0x3f0b4000
+        .long	0x3f0b0000
+        .long	0x3f0ac000
+        .long	0x3f0a6000
+        .long	0x3f0a2000
+        .long	0x3f09e000
+        .long	0x3f098000
+        .long	0x3f094000
+        .long	0x3f090000
+        .long	0x3f08a000
+        .long	0x3f086000
+        .long	0x3f082000
+        .long	0x3f07e000
+        .long	0x3f078000
+        .long	0x3f074000
+        .long	0x3f070000
+        .long	0x3f06c000
+        .long	0x3f066000
+        .long	0x3f062000
+        .long	0x3f05e000
+        .long	0x3f05a000
+        .long	0x3f056000
+        .long	0x3f052000
+        .long	0x3f04c000
+        .long	0x3f048000
+        .long	0x3f044000
+        .long	0x3f040000
+        .long	0x3f03c000
+        .long	0x3f038000
+        .long	0x3f034000
+        .long	0x3f030000
+        .long	0x3f02a000
+        .long	0x3f026000
+        .long	0x3f022000
+        .long	0x3f01e000
+        .long	0x3f01a000
+        .long	0x3f016000
+        .long	0x3f012000
+        .long	0x3f00e000
+        .long	0x3f00a000
+        .long	0x3f006000
+        .long	0x3f002000
+        .type	__dlog2_la___libm_rcp_table_256,@object
+        .size	__dlog2_la___libm_rcp_table_256,1024
+        .align 64
+
+__dlog2_la___libm_log2_table_256:
+        .long	0xfb44c3b7,0x3e1485cb
+        .long	0x00000000,0x3f671b0e
+        .long	0x06028ac0,0x3e31d5d9
+        .long	0x00000000,0x3f815cfe
+        .long	0xb8d7240b,0x3df8b9cb
+        .long	0x00000000,0x3f8cfee7
+        .long	0x0d179106,0x3e38864a
+        .long	0x00000000,0x3f94564a
+        .long	0xecba1593,0x3e459c6a
+        .long	0x00000000,0x3f997723
+        .long	0x94120c14,0x3e48d36a
+        .long	0x00000000,0x3f9f5923
+        .long	0xd2571490,0x3e5410ba
+        .long	0x00000000,0x3fa2a094
+        .long	0x1dc036a2,0x3e2776b0
+        .long	0x00000000,0x3fa53894
+        .long	0x78efe2b1,0x3e537229
+        .long	0x00000000,0x3fa8324c
+        .long	0xfd29dc75,0x3e59c0fa
+        .long	0x00000000,0x3faacf54
+        .long	0x046734f7,0x3e4636b7
+        .long	0x00000000,0x3fadced9
+        .long	0xd3b410b8,0x3e6f7950
+        .long	0x00000000,0x3fb0387e
+        .long	0x00f2200a,0x3e19d1e7
+        .long	0x00000000,0x3fb18ac6
+        .long	0x8661ba82,0x3e4f09a9
+        .long	0x00000000,0x3fb30edd
+        .long	0x9367107c,0x3e564d91
+        .long	0x00000000,0x3fb463c1
+        .long	0x0e4a4ce8,0x3e4e1fd1
+        .long	0x00000000,0x3fb5b9e1
+        .long	0x3cdb6374,0x3e492cf0
+        .long	0x00000000,0x3fb7113f
+        .long	0x069c4f7f,0x3e61a364
+        .long	0x00000000,0x3fb869dd
+        .long	0x427b631b,0x3e6493a6
+        .long	0x00000000,0x3fb9c3be
+        .long	0xe02b3e8b,0x3e6af2c2
+        .long	0x00000000,0x3fbb1ee4
+        .long	0x389f4365,0x3e616e1e
+        .long	0x00000000,0x3fbc7b52
+        .long	0x6a31fd96,0x3e4633b7
+        .long	0x00000000,0x3fbdd90a
+        .long	0x0508664d,0x3e62ed84
+        .long	0x00000000,0x3fbf05d4
+        .long	0xaca1905c,0x3e775dcd
+        .long	0x00000000,0x3fc032fb
+        .long	0x094fbeeb,0x3e753e65
+        .long	0x00000000,0x3fc0e3b5
+        .long	0x96aa4b17,0x3e671f44
+        .long	0x00000000,0x3fc19519
+        .long	0x92da5a47,0x3e785566
+        .long	0x00000000,0x3fc22dad
+        .long	0xbeb7d722,0x3e518efa
+        .long	0x00000000,0x3fc2e050
+        .long	0xab57551c,0x3e738564
+        .long	0x00000000,0x3fc379f7
+        .long	0x54a914e3,0x3e55d0da
+        .long	0x00000000,0x3fc42ddd
+        .long	0xfe974017,0x3e73cd00
+        .long	0x00000000,0x3fc4c89b
+        .long	0x59064390,0x3e54ffd6
+        .long	0x00000000,0x3fc563dc
+        .long	0x633ab50f,0x3e67d75e
+        .long	0x00000000,0x3fc619a2
+        .long	0xc8877e8a,0x3e77e6ce
+        .long	0x00000000,0x3fc6b5ff
+        .long	0x1ab7837f,0x3e7ecc1f
+        .long	0x00000000,0x3fc752e1
+        .long	0xf9d5827a,0x3e7cea7c
+        .long	0x00000000,0x3fc7f049
+        .long	0x64ccd537,0x3e357f7a
+        .long	0x00000000,0x3fc8a898
+        .long	0xf7c9b05b,0x3e7994ca
+        .long	0x00000000,0x3fc94724
+        .long	0xa2f56536,0x3e524b8f
+        .long	0x00000000,0x3fc9e63a
+        .long	0x5edaab42,0x3e7fd640
+        .long	0x00000000,0x3fca85d8
+        .long	0xd163379a,0x3e625f54
+        .long	0x00000000,0x3fcb2602
+        .long	0x936acd51,0x3e7ebdc3
+        .long	0x00000000,0x3fcbc6b6
+        .long	0xcfbc0aa0,0x3e7eee14
+        .long	0x00000000,0x3fcc67f7
+        .long	0xf73bcdad,0x3e764469
+        .long	0x00000000,0x3fcceec4
+        .long	0x60971b86,0x3e6eb44e
+        .long	0x00000000,0x3fcd9109
+        .long	0xcd2052a5,0x3e65fcf4
+        .long	0x00000000,0x3fce33dd
+        .long	0xc402867b,0x3e61af1e
+        .long	0x00000000,0x3fced741
+        .long	0xa0c956e4,0x3e61bfbd
+        .long	0x00000000,0x3fcf7b36
+        .long	0x831e77ff,0x3e85287b
+        .long	0x00000000,0x3fd00223
+        .long	0xaddfdee2,0x3e7d2fc3
+        .long	0x00000000,0x3fd054a4
+        .long	0x342052c1,0x3e83724b
+        .long	0x00000000,0x3fd0999d
+        .long	0x602bcd34,0x3e7b4ec9
+        .long	0x00000000,0x3fd0eca6
+        .long	0x3aa20ead,0x3e6742da
+        .long	0x00000000,0x3fd13ffa
+        .long	0x9ecdadf4,0x3e713e82
+        .long	0x00000000,0x3fd185a4
+        .long	0xfef3031b,0x3e52f27e
+        .long	0x00000000,0x3fd1cb83
+        .long	0x79e4af8a,0x3e710739
+        .long	0x00000000,0x3fd21fa1
+        .long	0xe59ad84a,0x3e637301
+        .long	0x00000000,0x3fd265f5
+        .long	0x3d7dfd9b,0x3e88697c
+        .long	0x00000000,0x3fd2baa0
+        .long	0x738117b0,0x3e717788
+        .long	0x00000000,0x3fd3016b
+        .long	0xd3c26a97,0x3e6c5514
+        .long	0x00000000,0x3fd3486c
+        .long	0x4c4ff246,0x3e8df550
+        .long	0x00000000,0x3fd38fa3
+        .long	0x40340fa6,0x3e88102d
+        .long	0x00000000,0x3fd3e562
+        .long	0x4592f4c3,0x3e5f53b6
+        .long	0x00000000,0x3fd42d14
+        .long	0x8b149a00,0x3e750fc8
+        .long	0x00000000,0x3fd474fd
+        .long	0xa8f50e5f,0x3e86d01c
+        .long	0x00000000,0x3fd4bd1e
+        .long	0x7a22a88a,0x3e83c469
+        .long	0x00000000,0x3fd50578
+        .long	0xdc18b6d2,0x3e79000e
+        .long	0x00000000,0x3fd54e0b
+        .long	0x7c00250b,0x3e7870f0
+        .long	0x00000000,0x3fd596d7
+        .long	0xc1c885ae,0x3e8e3dd5
+        .long	0x00000000,0x3fd5dfdc
+        .long	0xa6ecc47e,0x3e7bf64c
+        .long	0x00000000,0x3fd6291c
+        .long	0x0bc16c18,0x3e6bdaca
+        .long	0x00000000,0x3fd67296
+        .long	0x1f925729,0x3e84d25c
+        .long	0x00000000,0x3fd6bc4a
+        .long	0xf23978de,0x3e5a5fb4
+        .long	0x00000000,0x3fd7063a
+        .long	0xe2ac7f60,0x3e8e3da0
+        .long	0x00000000,0x3fd75064
+        .long	0x71f51a7b,0x3e819e20
+        .long	0x00000000,0x3fd79acb
+        .long	0x5b924234,0x3e5e43ae
+        .long	0x00000000,0x3fd7d67c
+        .long	0xe9aedf37,0x3e701a2b
+        .long	0x00000000,0x3fd8214f
+        .long	0xeddd33ea,0x3e6b6f51
+        .long	0x00000000,0x3fd86c5f
+        .long	0xe732b3c4,0x3e79375f
+        .long	0x00000000,0x3fd8b7ac
+        .long	0xe47cb9df,0x3e7e831b
+        .long	0x00000000,0x3fd8f416
+        .long	0xe392d3c8,0x3e8abc37
+        .long	0x00000000,0x3fd93fd2
+        .long	0x28b35c77,0x3e80852d
+        .long	0x00000000,0x3fd98bcd
+        .long	0xd29cea36,0x3e69f374
+        .long	0x00000000,0x3fd9c8c3
+        .long	0xb3d7b0e6,0x3e542981
+        .long	0x00000000,0x3fda152f
+        .long	0x1fe6d5ac,0x3e8b2bfb
+        .long	0x00000000,0x3fda527f
+        .long	0xf32e5dda,0x3e6f6f5c
+        .long	0x00000000,0x3fda9f5e
+        .long	0xd34d0d30,0x3e65abaa
+        .long	0x00000000,0x3fdadd0b
+        .long	0xe0ac9602,0x3e7bd47f
+        .long	0x00000000,0x3fdb2a5d
+        .long	0x7c5c784b,0x3e833601
+        .long	0x00000000,0x3fdb6867
+        .long	0xd7b0821f,0x3e5b887c
+        .long	0x00000000,0x3fdbb62f
+        .long	0xcd0a8f6a,0x3e83eccc
+        .long	0x00000000,0x3fdbf497
+        .long	0x7500a4e8,0x3e7ba0e6
+        .long	0x00000000,0x3fdc332a
+        .long	0xfc8712bb,0x3e885a8b
+        .long	0x00000000,0x3fdc819d
+        .long	0xf7a3a78f,0x3e81c336
+        .long	0x00000000,0x3fdcc090
+        .long	0x4ad8a38b,0x3e7846b4
+        .long	0x00000000,0x3fdcffae
+        .long	0xfcfc3a99,0x3e7db50f
+        .long	0x00000000,0x3fdd3ef7
+        .long	0x433cccd2,0x3e238809
+        .long	0x00000000,0x3fdd8e50
+        .long	0x6828fa82,0x3e721b2e
+        .long	0x00000000,0x3fddcdfb
+        .long	0xfc7c49c1,0x3e82848b
+        .long	0x00000000,0x3fde0dd2
+        .long	0x1fce4d49,0x3e615144
+        .long	0x00000000,0x3fde4dd6
+        .long	0x77e2e8fd,0x3e68b88a
+        .long	0x00000000,0x3fde8e06
+        .long	0x22a961b0,0x3e8fd353
+        .long	0x00000000,0x3fdece62
+        .long	0x266f2e1f,0x3e72854e
+        .long	0x00000000,0x3fdf1f16
+        .long	0xc69211fe,0x3e8520c7
+        .long	0x00000000,0x3fdf5fd8
+        .long	0xaba878d5,0x3e826fcf
+        .long	0x00000000,0x3fdfa0c8
+        .long	0xcd5b35b1,0x3e726ed8
+        .long	0x00000000,0x3fdfe1e6
+        .long	0x678a4f1c,0x3e49054d
+        .long	0x00000000,0x3fe01199
+        .long	0x3bc19f18,0x3e5d23cb
+        .long	0x00000000,0x3fe03256
+        .long	0x12772acb,0x3e87af35
+        .long	0x00000000,0x3fe0532a
+        .long	0x2849c88a,0x3e67f5fc
+        .long	0x00000000,0x3fe07416
+        .long	0x0e574fa1,0x3e84fce2
+        .long	0x00000000,0x3fe08cd6
+        .long	0x0ec2b5fa,0x3e857044
+        .long	0x00000000,0x3fe0adeb
+        .long	0xd031f353,0x3e6d5d1d
+        .long	0x00000000,0x3fe0cf18
+        .long	0xdae75c4d,0x3e99a159
+        .long	0x00000000,0x3fe0f05c
+        .long	0x1553afb9,0x3e90eaf1
+        .long	0x00000000,0x3fe111b9
+        .long	0xdcc5c3c7,0x3e8bc6f3
+        .long	0x00000000,0x3fe1332e
+        .long	0x1109e597,0x3e94ef84
+        .long	0x00000000,0x3fe154bb
+        .long	0xd82adea4,0x3e937f40
+        .long	0x00000000,0x3fe16df5
+        .long	0x78336a2f,0x3e96dc5a
+        .long	0x00000000,0x3fe18fad
+        .long	0x84c2c804,0x3e90935b
+        .long	0x00000000,0x3fe1b17e
+        .long	0x04fd30aa,0x3e8a837a
+        .long	0x00000000,0x3fe1caeb
+        .long	0xd924b0ac,0x3e99061d
+        .long	0x00000000,0x3fe1ece7
+        .long	0xef9b9d01,0x3e7ed700
+        .long	0x00000000,0x3fe20efd
+        .long	0x202c81ec,0x3e9c6ebb
+        .long	0x00000000,0x3fe2289d
+        .long	0xfc0d7d76,0x3e936d4d
+        .long	0x00000000,0x3fe24adf
+        .long	0x9f8756ba,0x3e9a35d7
+        .long	0x00000000,0x3fe26d3a
+        .long	0xe7c79d83,0x3e584ee3
+        .long	0x00000000,0x3fe28710
+        .long	0x942065a0,0x3e7d9e0d
+        .long	0x00000000,0x3fe2a998
+        .long	0x2175afbf,0x3e872108
+        .long	0x00000000,0x3fe2c38f
+        .long	0xfaf6283c,0x3e9f5809
+        .long	0x00000000,0x3fe2e644
+        .long	0x411d0507,0x3e871209
+        .long	0x00000000,0x3fe3005e
+        .long	0x370c24bf,0x3e9c3b11
+        .long	0x00000000,0x3fe32341
+        .long	0x8044bb5a,0x3e9bce8e
+        .long	0x00000000,0x3fe33d7d
+        .long	0x698ea854,0x3e98aca0
+        .long	0x00000000,0x3fe3608f
+        .long	0xd4d873bb,0x3e972a8e
+        .long	0x00000000,0x3fe37aee
+        .long	0x615e8182,0x3e8f669b
+        .long	0x00000000,0x3fe39e2f
+        .long	0xdda5b49a,0x3e98d1f4
+        .long	0x00000000,0x3fe3b8b1
+        .long	0xe72383f7,0x3e9cc279
+        .long	0x00000000,0x3fe3dc21
+        .long	0x497497f1,0x3e9c6774
+        .long	0x00000000,0x3fe3f6c7
+        .long	0x801bd0e6,0x3e82c7f6
+        .long	0x00000000,0x3fe4117d
+        .long	0xd0ee28b4,0x3e9dfdd6
+        .long	0x00000000,0x3fe43531
+        .long	0xb70d3761,0x3e92d3a2
+        .long	0x00000000,0x3fe4500b
+        .long	0xe7d6bcb2,0x3e9c8343
+        .long	0x00000000,0x3fe46af4
+        .long	0x90d43957,0x3e693179
+        .long	0x00000000,0x3fe48eef
+        .long	0xf12570df,0x3e799eab
+        .long	0x00000000,0x3fe4a9fd
+        .long	0x1b88755d,0x3e78c5f8
+        .long	0x00000000,0x3fe4c51b
+        .long	0xdf99a22c,0x3e7369be
+        .long	0x00000000,0x3fe4e049
+        .long	0x6ed50f62,0x3e88fd93
+        .long	0x00000000,0x3fe5049f
+        .long	0x978605ff,0x3e9c6042
+        .long	0x00000000,0x3fe51ff2
+        .long	0xe6c85f4c,0x3e930ae6
+        .long	0x00000000,0x3fe53b56
+        .long	0xc3275ba6,0x3e92e7b6
+        .long	0x00000000,0x3fe556ca
+        .long	0x91597938,0x3e9e6401
+        .long	0x00000000,0x3fe5724e
+        .long	0x448ebb62,0x3e3d2dee
+        .long	0x00000000,0x3fe59719
+        .long	0x47501b6d,0x3e9b432e
+        .long	0x00000000,0x3fe5b2c3
+        .long	0x571fa7cd,0x3e83cf9b
+        .long	0x00000000,0x3fe5ce7f
+        .long	0x7359819d,0x3e8dc615
+        .long	0x00000000,0x3fe5ea4b
+        .long	0xc78a85ed,0x3e8973c3
+        .long	0x00000000,0x3fe60628
+        .long	0xc15a9f3d,0x3e77d788
+        .long	0x00000000,0x3fe62216
+        .long	0x51952736,0x3e9d2538
+        .long	0x00000000,0x3fe63e14
+        .long	0xde792c07,0x3e94dab9
+        .long	0x00000000,0x3fe65a24
+        .long	0x5bfa4318,0x3e8f5be1
+        .long	0x00000000,0x3fe67645
+        .long	0x55090ec8,0x3e903b26
+        .long	0x00000000,0x3fe69277
+        .long	0xc78b6175,0x3e99236f
+        .long	0x00000000,0x3fe6aeba
+        .long	0x3a80db6a,0x3e8a1972
+        .long	0x00000000,0x3fe6cb0f
+        .long	0xf558aa96,0x3e8d43a2
+        .long	0x00000000,0x3fe6e775
+        .long	0xd9a82f2e,0x3e424ee3
+        .long	0x00000000,0x3fe703ed
+        .long	0x583878f6,0x3e764d8e
+        .long	0x00000000,0x3fe72076
+        .long	0xc1150a3e,0x3e379604
+        .long	0x00000000,0x3fe73d11
+        .long	0xed85584b,0x3e93b229
+        .long	0x00000000,0x3fe759bd
+        .long	0x451a7b48,0x3e62967a
+        .long	0x00000000,0x3fe7767c
+        .long	0xc044e72d,0x3e8e12d7
+        .long	0x00000000,0x3fe7934c
+        .long	0xfdfb6949,0x3e9ca45d
+        .long	0x00000000,0x3fe7b02e
+        .long	0xff690fce,0x3e9244fc
+        .long	0x00000000,0x3fe7c37a
+        .long	0x81487a2c,0x3e7e9cea
+        .long	0x00000000,0x3fe7e07b
+        .long	0xd0ad2d9a,0x3e760da0
+        .long	0x00000000,0x3fe7fd8e
+        .long	0x096f45d9,0x3e8d7703
+        .long	0x00000000,0x3fe81ab3
+        .long	0x1b17115b,0x3e78dbee
+        .long	0x00000000,0x3fe837eb
+        .long	0x7c252ee0,0x3e8dc5a4
+        .long	0x00000000,0x3fe85535
+        .long	0x42d5123f,0x3e950116
+        .long	0x00000000,0x3fe868c6
+        .long	0xf11e41be,0x3e4c4eb7
+        .long	0x00000000,0x3fe88630
+        .long	0xdb2890b4,0x3e7773b8
+        .long	0x00000000,0x3fe8a3ac
+        .long	0x7ffb4479,0x3e7bc8e7
+        .long	0x00000000,0x3fe8c13b
+        .long	0x237693b3,0x3e8c388f
+        .long	0x00000000,0x3fe8d4fa
+        .long	0x45fcf1a0,0x3e731cd4
+        .long	0x00000000,0x3fe8f2a9
+        .long	0xe4895b91,0x3e9fae07
+        .long	0x00000000,0x3fe9106a
+        .long	0x42d2824e,0x3e7d140d
+        .long	0x00000000,0x3fe9244c
+        .long	0x39900f67,0x3e75c3c8
+        .long	0x00000000,0x3fe9422e
+        .long	0xa314252b,0x3e902422
+        .long	0x00000000,0x3fe96023
+        .long	0xf2a6b8ef,0x3e7b9be8
+        .long	0x00000000,0x3fe97427
+        .long	0x1476f5e9,0x3e66b188
+        .long	0x00000000,0x3fe9923d
+        .long	0xdde10a6f,0x3e93c377
+        .long	0x00000000,0x3fe9b066
+        .long	0x4944a32c,0x3e817cad
+        .long	0x00000000,0x3fe9c48d
+        .long	0xc738e7ef,0x3e9927f2
+        .long	0x00000000,0x3fe9e2d7
+        .long	0xd25cfd94,0x3e7ccc41
+        .long	0x00000000,0x3fea0136
+        .long	0x2210e81b,0x3e8382fa
+        .long	0x00000000,0x3fea1580
+        .long	0x1e690ce2,0x3e7752a7
+        .long	0x00000000,0x3fea3400
+        .long	0x122315d2,0x3e94cfee
+        .long	0x00000000,0x3fea4860
+        .long	0xce98333b,0x3e80536e
+        .long	0x00000000,0x3fea6702
+        .long	0xc30f00e9,0x3e838b7e
+        .long	0x00000000,0x3fea7b79
+        .long	0x05b0c779,0x3e9dc380
+        .long	0x00000000,0x3fea9a3c
+        .long	0xdd6dd3fe,0x3e6be168
+        .long	0x00000000,0x3feab915
+        .long	0x26e0d276,0x3e966757
+        .long	0x00000000,0x3feacdb0
+        .long	0x0aad615c,0x3e880252
+        .long	0x00000000,0x3feaecab
+        .long	0x7927096a,0x3e607c31
+        .long	0x00000000,0x3feb015e
+        .long	0x53b3d90e,0x3e596513
+        .long	0x00000000,0x3feb161a
+        .long	0x8f2f0570,0x3e90ec3a
+        .long	0x00000000,0x3feb3545
+        .long	0x81193954,0x3e9cb640
+        .long	0x00000000,0x3feb4a18
+        .long	0x311e7236,0x3e936479
+        .long	0x00000000,0x3feb6967
+        .long	0x3a42a413,0x3e9210e8
+        .long	0x00000000,0x3feb7e52
+        .long	0x4a0daeb2,0x3e9a1717
+        .long	0x00000000,0x3feb9dc4
+        .long	0xce900653,0x3e925bb7
+        .long	0x00000000,0x3febb2c7
+        .long	0xb5087588,0x3e95dbb8
+        .long	0x00000000,0x3febd25d
+        .long	0x4a41204c,0x3e8d0aa9
+        .long	0x00000000,0x3febe778
+        .long	0x69a0d774,0x3e9c772f
+        .long	0x00000000,0x3febfc9c
+        .long	0x79d0a9a5,0x3e97b6a0
+        .long	0x00000000,0x3fec1c65
+        .long	0xd26f1a12,0x3e8f7402
+        .long	0x00000000,0x3fec31a2
+        .long	0x1243bc84,0x3e4db2f1
+        .long	0x00000000,0x3fec46e9
+        .long	0x477e1755,0x3e80dcc2
+        .long	0x00000000,0x3fec66e5
+        .long	0xc2f904c1,0x3e8b1e31
+        .long	0x00000000,0x3fec7c44
+        .long	0x1785b0c4,0x3e8fb619
+        .long	0x00000000,0x3fec91ad
+        .long	0xedb052ef,0x3e98832d
+        .long	0x00000000,0x3fecb1dd
+        .long	0x9e373618,0x3e98c822
+        .long	0x00000000,0x3fecc75f
+        .long	0x32954637,0x3e9a46e7
+        .long	0x00000000,0x3fecdceb
+        .long	0xf0e6b2a9,0x3e996305
+        .long	0x00000000,0x3fecfd50
+        .long	0x1a6614ee,0x3e68c160
+        .long	0x00000000,0x3fed12f6
+        .long	0x09e33b28,0x3e9229c4
+        .long	0x00000000,0x3fed28a5
+        .long	0xe53b994c,0x3e7f281b
+        .long	0x00000000,0x3fed3e5f
+        .long	0x1124ac35,0x3e9f27f3
+        .long	0x00000000,0x3fed5f08
+        .long	0x3d2fdc03,0x3e84e779
+        .long	0x00000000,0x3fed74dc
+        .long	0x1e93fd97,0x3e416c07
+        .long	0x00000000,0x3fed8aba
+        .long	0x91b415ef,0x3e654669
+        .long	0x00000000,0x3feda0a2
+        .long	0x6495f594,0x3e9712d4
+        .long	0x00000000,0x3fedc191
+        .long	0x40171789,0x3e9ca7b2
+        .long	0x00000000,0x3fedd793
+        .long	0xe8fc4323,0x3e929afa
+        .long	0x00000000,0x3fededa0
+        .long	0xeb03bd09,0x3e9a2e96
+        .long	0x00000000,0x3fee03b7
+        .long	0xca370ea2,0x3e94a63d
+        .long	0x00000000,0x3fee19d9
+        .long	0xe30512ec,0x3e6a3bcb
+        .long	0x00000000,0x3fee3006
+        .long	0x411c95ce,0x3e99d3ed
+        .long	0x00000000,0x3fee515c
+        .long	0x35cfaf8e,0x3e3e5b57
+        .long	0x00000000,0x3fee67a4
+        .long	0x5669df6a,0x3e9fca71
+        .long	0x00000000,0x3fee7df5
+        .long	0x04f19d94,0x3e9914e2
+        .long	0x00000000,0x3fee9452
+        .long	0xcaa19134,0x3e8b511c
+        .long	0x00000000,0x3feeaaba
+        .long	0x4bb3bfb1,0x3e9ed72f
+        .long	0x00000000,0x3feec12c
+        .long	0x3c29d75e,0x3e8be8d6
+        .long	0x00000000,0x3feed7aa
+        .long	0x97da24fd,0x3e9c55d9
+        .long	0x00000000,0x3feeee32
+        .long	0x983c68ea,0x3e7ddfb1
+        .long	0x00000000,0x3fef1014
+        .long	0xf4425883,0x3e83ce66
+        .long	0x00000000,0x3fef26b8
+        .long	0xf7857f23,0x3e9055c3
+        .long	0x00000000,0x3fef3d67
+        .long	0x2805b525,0x3e9c2223
+        .long	0x00000000,0x3fef5421
+        .long	0x0c347fcf,0x3e8d59ba
+        .long	0x00000000,0x3fef6ae7
+        .long	0x7c901c44,0x3e82b110
+        .long	0x00000000,0x3fef81b8
+        .long	0x74d1b482,0x3e8b1394
+        .long	0x00000000,0x3fef9894
+        .long	0x36fb9eb2,0x3e9ca75b
+        .long	0x00000000,0x3fefaf7b
+        .long	0x629b1b7e,0x3e981a0a
+        .long	0x00000000,0x3fefc66e
+        .long	0x7b8c1116,0x3e54cc20
+        .long	0x00000000,0x3fefdd6d
+        .long	0xc0babe05,0x3e99ac8b
+        .long	0x00000000,0x3feff476
+        .type	__dlog2_la___libm_log2_table_256,@object
+        .size	__dlog2_la___libm_log2_table_256,4096
+        .space 512, 0x00 	
+        .align 64
+
+__dlog2_la__P:
+        .long	3213235158
+        .long	1050233568
+        .long	1697350398
+        .long	3219592519
+        .long	3694740707
+        .long	1071564553
+        .long	1697260025
+        .long	3218543943
+        .long	2542794428
+        .long	1070757746
+        .long	2165113687
+        .long	3217999640
+        .long	0
+        .long	1073157447
+        .type	__dlog2_la__P,@object
+        .size	__dlog2_la__P,56
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core-avx2.S
new file mode 100644
index 0000000000..234bf4750b
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core-avx2.S
@@ -0,0 +1,20 @@ 
+/* AVX2 version of vectorized log2f.
+   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_log2f _ZGVeN16v_log2f_avx2_wrapper
+#include "../svml_s_log2f16_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core.c
new file mode 100644
index 0000000000..abf4f04988
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core.c
@@ -0,0 +1,28 @@ 
+/* Multiple versions of vectorized log2f, 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_log2f
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN16v_log2f, __GI__ZGVeN16v_log2f,
+	       __redirect__ZGVeN16v_log2f)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core_avx512.S
new file mode 100644
index 0000000000..ff71272cd3
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f16_core_avx512.S
@@ -0,0 +1,697 @@ 
+/* Function logf16 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
+ *    log2(x) = k - log2(Rcp) + poly_approximation(R)
+ *       log2(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+ENTRY(_ZGVeN16v_log2f_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_slog2_data_internal_avx512(%rip), %zmm1
+        vgetexpps {sae}, %zmm0, %zmm5
+
+/* x<=0? */
+        vfpclassps $94, %zmm0, %k0
+        vsubps    {rn-sae}, %zmm1, %zmm3, %zmm9
+        vpsrld    $19, %zmm3, %zmm7
+        vgetexpps {sae}, %zmm3, %zmm6
+        vpermps   64+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm1
+        vpermps   128+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm2
+        vpermps   192+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm4
+        vpermps   256+__svml_slog2_data_internal_avx512(%rip), %zmm7, %zmm8
+        vsubps    {rn-sae}, %zmm6, %zmm5, %zmm10
+        vfmadd213ps {rn-sae}, %zmm2, %zmm9, %zmm1
+        kmovw     %k0, %edx
+        vfmadd213ps {rn-sae}, %zmm4, %zmm9, %zmm1
+        vfmadd213ps {rn-sae}, %zmm8, %zmm9, %zmm1
+        vfmadd213ps {rn-sae}, %zmm10, %zmm9, %zmm1
+        testl     %edx, %edx
+        jne       .LBL_1_3
+
+.LBL_1_2:
+        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)
+
+.LBL_1_3:
+        vmovups   %zmm0, 64(%rsp)
+        vmovups   %zmm1, 128(%rsp)
+        je        .LBL_1_2
+        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
+
+.LBL_1_7:
+        btl       %r12d, %r13d
+        jc        .LBL_1_10
+
+.LBL_1_8:
+        incl      %r12d
+        cmpl      $16, %r12d
+        jl        .LBL_1_7
+        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       .LBL_1_2
+        .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
+
+.LBL_1_10:
+        lea       64(%rsp,%r12,4), %rdi
+        lea       128(%rsp,%r12,4), %rsi
+        call      __svml_slog2_cout_rare_internal
+        jmp       .LBL_1_8
+
+END(_ZGVeN16v_log2f_skx)
+
+        .align    16,0x90
+
+__svml_slog2_cout_rare_internal:
+
+        cfi_startproc
+
+        xorl      %eax, %eax
+        movzwl    2(%rdi), %edx
+        andl      $32640, %edx
+        cmpl      $32640, %edx
+        je        .LBL_2_13
+        movss     (%rdi), %xmm2
+        xorl      %ecx, %ecx
+        pxor      %xmm1, %xmm1
+        movss     %xmm2, -16(%rsp)
+        ucomiss   %xmm1, %xmm2
+        jp        .LBL_2_3
+        je        .LBL_2_5
+
+.LBL_2_3:
+        movzwl    -14(%rsp), %edx
+        testl     $32640, %edx
+        jne       .LBL_2_5
+        movss     .FLT_76(%rip), %xmm0
+        movl      $-27, %ecx
+        mulss     %xmm0, %xmm2
+        movss     %xmm2, -16(%rsp)
+
+.LBL_2_5:
+        comiss    %xmm1, %xmm2
+        jbe       .LBL_2_9
+        movaps    %xmm2, %xmm1
+        subss     .FLT_90(%rip), %xmm1
+        movss     %xmm1, -20(%rsp)
+        andb      $127, -17(%rsp)
+        movss     -20(%rsp), %xmm0
+        comiss    .FLT_77(%rip), %xmm0
+        jbe       .LBL_2_8
+        movzwl    -14(%rsp), %edx
+        pxor      %xmm8, %xmm8
+        andl      $32640, %edx
+        lea       __slog2_la_CoutTab(%rip), %r10
+        shrl      $7, %edx
+        movss     %xmm2, -20(%rsp)
+        movss     .FLT_79(%rip), %xmm2
+        movaps    %xmm2, %xmm1
+        movss     .FLT_88(%rip), %xmm6
+        lea       -127(%rcx,%rdx), %r9d
+        movzwl    -18(%rsp), %ecx
+        andl      $-32641, %ecx
+        addl      $16256, %ecx
+        movw      %cx, -18(%rsp)
+        movss     -20(%rsp), %xmm3
+        movaps    %xmm3, %xmm0
+        addss     %xmm3, %xmm1
+        addss     .FLT_78(%rip), %xmm0
+        cvtsi2ss  %r9d, %xmm8
+        movss     %xmm0, -24(%rsp)
+        movl      -24(%rsp), %edi
+        movss     %xmm1, -24(%rsp)
+        andl      $127, %edi
+        movss     -24(%rsp), %xmm7
+        subss     %xmm2, %xmm7
+        lea       (%rdi,%rdi,2), %r8d
+        movss     (%r10,%r8,4), %xmm5
+        subss     %xmm7, %xmm3
+        addss     4(%r10,%r8,4), %xmm8
+        mulss     %xmm5, %xmm7
+        mulss     %xmm3, %xmm5
+        subss     .FLT_80(%rip), %xmm7
+        movaps    %xmm7, %xmm4
+        addss     %xmm7, %xmm8
+        addss     %xmm5, %xmm4
+        mulss     %xmm4, %xmm6
+        addss     .FLT_87(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_86(%rip), %xmm6
+        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     %xmm4, %xmm6
+        addss     .FLT_81(%rip), %xmm6
+        mulss     %xmm6, %xmm7
+        mulss     %xmm5, %xmm6
+        addss     8(%r10,%r8,4), %xmm6
+        addss     %xmm5, %xmm6
+        addss     %xmm6, %xmm7
+        addss     %xmm7, %xmm8
+        movss     %xmm8, (%rsi)
+        ret
+
+.LBL_2_8:
+        movss     .FLT_80(%rip), %xmm0
+        mulss     %xmm0, %xmm1
+        movss     .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     .FLT_81(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     %xmm1, %xmm2
+        movss     %xmm2, (%rsi)
+        ret
+
+.LBL_2_9:
+        ucomiss   %xmm1, %xmm2
+        jp        .LBL_2_10
+        je        .LBL_2_12
+
+.LBL_2_10:
+        divss     %xmm1, %xmm1
+        movss     %xmm1, (%rsi)
+        movl      $1, %eax
+        ret
+
+.LBL_2_12:
+        movss     .FLT_89(%rip), %xmm0
+        movl      $2, %eax
+        divss     %xmm1, %xmm0
+        movss     %xmm0, (%rsi)
+        ret
+
+.LBL_2_13:
+        movb      3(%rdi), %dl
+        andb      $-128, %dl
+        cmpb      $-128, %dl
+        je        .LBL_2_15
+
+.LBL_2_14:
+        movss     (%rdi), %xmm0
+        mulss     %xmm0, %xmm0
+        movss     %xmm0, (%rsi)
+        ret
+
+.LBL_2_15:
+        testl     $8388607, (%rdi)
+        jne       .LBL_2_14
+        movl      $1, %eax
+        pxor      %xmm1, %xmm1
+        pxor      %xmm0, %xmm0
+        divss     %xmm0, %xmm1
+        movss     %xmm1, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_slog2_cout_rare_internal,@function
+        .size	__svml_slog2_cout_rare_internal,.-__svml_slog2_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_slog2_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	3198647882
+        .long	3196759613
+        .long	3194486322
+        .long	3192115638
+        .long	3190203785
+        .long	3188646043
+        .long	3187058849
+        .long	3184933705
+        .long	3210235473
+        .long	3208544417
+        .long	3207107312
+        .long	3205878647
+        .long	3204822309
+        .long	3203370544
+        .long	3201784975
+        .long	3200401796
+        .long	1056280844
+        .long	1055933857
+        .long	1055381630
+        .long	1054718852
+        .long	1054004959
+        .long	1053277138
+        .long	1052558383
+        .long	1051862550
+        .long	1049572249
+        .long	1051796030
+        .long	1053416266
+        .long	1054571017
+        .long	1055365658
+        .long	1055881163
+        .long	1056180132
+        .long	1056311220
+        .long	3208161588
+        .long	3208150502
+        .long	3208115952
+        .long	3208053899
+        .long	3207964810
+        .long	3207851268
+        .long	3207716694
+        .long	3207564674
+        .long	3208734740
+        .long	3208490840
+        .long	3208338440
+        .long	3208247850
+        .long	3208197907
+        .long	3208173537
+        .long	3208164045
+        .long	3208161890
+        .long	1069066811
+        .long	1069066688
+        .long	1069065960
+        .long	1069064014
+        .long	1069060299
+        .long	1069054385
+        .long	1069045976
+        .long	1069034896
+        .long	1069049182
+        .long	1069058106
+        .long	1069062890
+        .long	1069065263
+        .long	1069066312
+        .long	1069066697
+        .long	1069066799
+        .long	1069066811
+        .type	__svml_slog2_data_internal_avx512,@object
+        .size	__svml_slog2_data_internal_avx512,320
+        .align 32
+
+__slog2_la_CoutTab:
+        .long	1136175680
+        .long	0
+        .long	0
+        .long	1135986583
+        .long	1018822656
+        .long	930849160
+        .long	1135809305
+        .long	1026916352
+        .long	941737263
+        .long	1135632026
+        .long	1032306688
+        .long	936581683
+        .long	1135466566
+        .long	1035100160
+        .long	929197062
+        .long	1135301106
+        .long	1037934592
+        .long	897678483
+        .long	1135135647
+        .long	1040498688
+        .long	3059980496
+        .long	1134982005
+        .long	1041852416
+        .long	908010313
+        .long	1134828364
+        .long	1043226624
+        .long	3073739761
+        .long	1134686541
+        .long	1044510720
+        .long	918631281
+        .long	1134538809
+        .long	1045868544
+        .long	3062817788
+        .long	1134402896
+        .long	1047134208
+        .long	3064656237
+        .long	1134266982
+        .long	1048416256
+        .long	3029590737
+        .long	1134131069
+        .long	1049145856
+        .long	903671587
+        .long	1134001065
+        .long	1049775616
+        .long	911388989
+        .long	1133876970
+        .long	1050384896
+        .long	3069885983
+        .long	1133752875
+        .long	1051001344
+        .long	3037530952
+        .long	1133634689
+        .long	1051596288
+        .long	3069922038
+        .long	1133516503
+        .long	1052198400
+        .long	3070222063
+        .long	1133404227
+        .long	1052776960
+        .long	919559368
+        .long	1133291951
+        .long	1053363200
+        .long	840060372
+        .long	1133185584
+        .long	1053924864
+        .long	915603033
+        .long	1133079217
+        .long	1054493184
+        .long	921334924
+        .long	1132978759
+        .long	1055036416
+        .long	896601826
+        .long	1132872392
+        .long	1055618048
+        .long	908913293
+        .long	1132777843
+        .long	1056141312
+        .long	3065728751
+        .long	1132677386
+        .long	1056702976
+        .long	909020429
+        .long	1132582837
+        .long	1057101312
+        .long	3048020321
+        .long	1132494198
+        .long	1057354752
+        .long	3038815896
+        .long	1132337219
+        .long	1057628160
+        .long	3068137421
+        .long	1132159940
+        .long	1057887232
+        .long	3069993595
+        .long	1131994480
+        .long	1058131456
+        .long	3054354312
+        .long	1131817202
+        .long	1058395904
+        .long	910223436
+        .long	1131651742
+        .long	1058645504
+        .long	3046952660
+        .long	1131486282
+        .long	1058897664
+        .long	3057670844
+        .long	1131332641
+        .long	1059133952
+        .long	924929721
+        .long	1131178999
+        .long	1059373056
+        .long	3068093797
+        .long	1131025358
+        .long	1059614208
+        .long	3058851683
+        .long	1130871717
+        .long	1059857920
+        .long	3069897752
+        .long	1130729894
+        .long	1060084736
+        .long	924446297
+        .long	1130576253
+        .long	1060333312
+        .long	903058075
+        .long	1130434430
+        .long	1060564992
+        .long	3052757441
+        .long	1130304426
+        .long	1060779264
+        .long	3045479197
+        .long	1130162603
+        .long	1061015040
+        .long	924699798
+        .long	1130032599
+        .long	1061233664
+        .long	3070937808
+        .long	1129890776
+        .long	1061473792
+        .long	925912756
+        .long	1129772591
+        .long	1061676032
+        .long	923952205
+        .long	1129642586
+        .long	1061900544
+        .long	906547304
+        .long	1129512582
+        .long	1062127104
+        .long	3050351427
+        .long	1129394397
+        .long	1062334976
+        .long	3070601694
+        .long	1129276211
+        .long	1062544384
+        .long	900519722
+        .long	1129158025
+        .long	1062755840
+        .long	3055774932
+        .long	1129039840
+        .long	1062969088
+        .long	3053661845
+        .long	1128921654
+        .long	1063184384
+        .long	3073448373
+        .long	1128815287
+        .long	1063379456
+        .long	907090876
+        .long	1128697101
+        .long	1063598336
+        .long	881051555
+        .long	1128590734
+        .long	1063796992
+        .long	898320955
+        .long	1128484367
+        .long	1063997440
+        .long	3068804107
+        .long	1128378000
+        .long	1064199168
+        .long	923531617
+        .long	1128283452
+        .long	1064380416
+        .long	3070994608
+        .long	1128177085
+        .long	1064585472
+        .long	901920533
+        .long	1128082536
+        .long	1064769536
+        .long	3071653428
+        .long	1127976169
+        .long	1064977920
+        .long	903017594
+        .long	1127881621
+        .long	1065164800
+        .long	911713416
+        .long	1127787072
+        .long	1065353216
+        .long	0
+        .long	1065353216
+        .long	0
+        .long	1207959616
+        .long	1174405120
+        .long	1002438656
+        .long	1291845632
+        .long	0
+        .long	1065353216
+        .long	1136175680
+        .long	3212771328
+        .long	3065082383
+        .long	841219731
+        .long	2913632803
+        .long	691870088
+        .long	2765780188
+        .long	545377693
+        .long	2619180638
+        .type	__slog2_la_CoutTab,@object
+        .size	__slog2_la_CoutTab,848
+        .align 4
+
+.FLT_76:
+        .long	0x4d000000
+        .type	.FLT_76,@object
+        .size	.FLT_76,4
+        .align 4
+
+.FLT_77:
+        .long	0x3bc00000
+        .type	.FLT_77,@object
+        .size	.FLT_77,4
+        .align 4
+
+.FLT_78:
+        .long	0x48000040
+        .type	.FLT_78,@object
+        .size	.FLT_78,4
+        .align 4
+
+.FLT_79:
+        .long	0x46000000
+        .type	.FLT_79,@object
+        .size	.FLT_79,4
+        .align 4
+
+.FLT_80:
+        .long	0x43b8aa40
+        .type	.FLT_80,@object
+        .size	.FLT_80,4
+        .align 4
+
+.FLT_81:
+        .long	0xbf7f0000
+        .type	.FLT_81,@object
+        .size	.FLT_81,4
+        .align 4
+
+.FLT_82:
+        .long	0xb6b1720f
+        .type	.FLT_82,@object
+        .size	.FLT_82,4
+        .align 4
+
+.FLT_83:
+        .long	0x3223fe93
+        .type	.FLT_83,@object
+        .size	.FLT_83,4
+        .align 4
+
+.FLT_84:
+        .long	0xadaa8223
+        .type	.FLT_84,@object
+        .size	.FLT_84,4
+        .align 4
+
+.FLT_85:
+        .long	0x293d1988
+        .type	.FLT_85,@object
+        .size	.FLT_85,4
+        .align 4
+
+.FLT_86:
+        .long	0xa4da74dc
+        .type	.FLT_86,@object
+        .size	.FLT_86,4
+        .align 4
+
+.FLT_87:
+        .long	0x2081cd9d
+        .type	.FLT_87,@object
+        .size	.FLT_87,4
+        .align 4
+
+.FLT_88:
+        .long	0x9c1d865e
+        .type	.FLT_88,@object
+        .size	.FLT_88,4
+        .align 4
+
+.FLT_89:
+        .long	0xbf800000
+        .type	.FLT_89,@object
+        .size	.FLT_89,4
+        .align 4
+
+.FLT_90:
+        .long	0x3f800000
+        .type	.FLT_90,@object
+        .size	.FLT_90,4
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core-sse2.S
new file mode 100644
index 0000000000..dd0e763ac9
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core-sse2.S
@@ -0,0 +1,20 @@ 
+/* SSE2 version of vectorized log2f, 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_log2f _ZGVbN4v_log2f_sse2
+#include "../svml_s_log2f4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core.c
new file mode 100644
index 0000000000..1eb68d9f52
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core.c
@@ -0,0 +1,28 @@ 
+/* Multiple versions of vectorized log2f, 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_log2f
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN4v_log2f, __GI__ZGVbN4v_log2f,
+	       __redirect__ZGVbN4v_log2f)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core_sse4.S
new file mode 100644
index 0000000000..5ad661f63a
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f4_core_sse4.S
@@ -0,0 +1,1795 @@ 
+/* Function logf4 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
+ *    log2(x) = k - log2(Rcp) + poly_approximation(R)
+ *       log2(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+ENTRY(_ZGVbN4v_log2f_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, %xmm2
+
+/* reduction: compute r,n */
+        movdqu    1536+__svml_slog2_data_internal(%rip), %xmm4
+        movaps    %xmm2, %xmm3
+        movdqu    1600+__svml_slog2_data_internal(%rip), %xmm1
+        psubd     %xmm4, %xmm3
+        pand      %xmm3, %xmm1
+        movaps    %xmm2, %xmm6
+        paddd     %xmm4, %xmm1
+        movaps    %xmm2, %xmm5
+        cmpltps   1280+__svml_slog2_data_internal(%rip), %xmm6
+        cmpnleps  1344+__svml_slog2_data_internal(%rip), %xmm5
+        subps     1664+__svml_slog2_data_internal(%rip), %xmm1
+        movups    1728+__svml_slog2_data_internal(%rip), %xmm7
+        psrad     $23, %xmm3
+        mulps     %xmm1, %xmm7
+        orps      %xmm5, %xmm6
+        cvtdq2ps  %xmm3, %xmm0
+
+/* combine and get argument value range mask */
+        movmskps  %xmm6, %edx
+        addps     1744+__svml_slog2_data_internal(%rip), %xmm7
+        movups    1760+__svml_slog2_data_internal(%rip), %xmm3
+        movaps    %xmm1, %xmm5
+        mulps     %xmm1, %xmm3
+        mulps     %xmm1, %xmm5
+        addps     1776+__svml_slog2_data_internal(%rip), %xmm3
+        mulps     %xmm5, %xmm7
+        movups    1792+__svml_slog2_data_internal(%rip), %xmm4
+        addps     %xmm7, %xmm3
+        mulps     %xmm1, %xmm4
+        mulps     %xmm5, %xmm3
+        addps     1808+__svml_slog2_data_internal(%rip), %xmm4
+        movups    1824+__svml_slog2_data_internal(%rip), %xmm6
+        addps     %xmm3, %xmm4
+        mulps     %xmm1, %xmm6
+        mulps     %xmm4, %xmm5
+        addps     1840+__svml_slog2_data_internal(%rip), %xmm6
+        addps     %xmm5, %xmm6
+        mulps     %xmm1, %xmm6
+        addps     1856+__svml_slog2_data_internal(%rip), %xmm6
+        mulps     %xmm6, %xmm1
+        addps     %xmm1, %xmm0
+        testl     %edx, %edx
+        jne       .LBL_1_3
+
+.LBL_1_2:
+        movq      %rbp, %rsp
+        popq      %rbp
+        cfi_def_cfa(7, 8)
+        cfi_restore(6)
+        ret
+        cfi_def_cfa(6, 16)
+        cfi_offset(6, -16)
+
+.LBL_1_3:
+        movups    %xmm2, 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
+
+.LBL_1_7:
+        btl       %r12d, %r13d
+        jc        .LBL_1_10
+
+.LBL_1_8:
+        incl      %r12d
+        cmpl      $4, %r12d
+        jl        .LBL_1_7
+        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       .LBL_1_2
+        .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
+
+.LBL_1_10:
+        lea       192(%rsp,%r12,4), %rdi
+        lea       256(%rsp,%r12,4), %rsi
+        call      __svml_slog2_cout_rare_internal
+        jmp       .LBL_1_8
+
+END(_ZGVbN4v_log2f_sse4)
+
+        .align    16,0x90
+
+__svml_slog2_cout_rare_internal:
+
+        cfi_startproc
+
+        xorl      %eax, %eax
+        movzwl    2(%rdi), %edx
+        andl      $32640, %edx
+        cmpl      $32640, %edx
+        je        .LBL_2_13
+        movss     (%rdi), %xmm2
+        xorl      %ecx, %ecx
+        pxor      %xmm1, %xmm1
+        movss     %xmm2, -16(%rsp)
+        ucomiss   %xmm1, %xmm2
+        jp        .LBL_2_3
+        je        .LBL_2_5
+
+.LBL_2_3:
+        movzwl    -14(%rsp), %edx
+        testl     $32640, %edx
+        jne       .LBL_2_5
+        movss     .FLT_81(%rip), %xmm0
+        movl      $-27, %ecx
+        mulss     %xmm0, %xmm2
+        movss     %xmm2, -16(%rsp)
+
+.LBL_2_5:
+        comiss    %xmm1, %xmm2
+        jbe       .LBL_2_9
+        movaps    %xmm2, %xmm1
+        subss     .FLT_95(%rip), %xmm1
+        movss     %xmm1, -20(%rsp)
+        andb      $127, -17(%rsp)
+        movss     -20(%rsp), %xmm0
+        comiss    .FLT_82(%rip), %xmm0
+        jbe       .LBL_2_8
+        movzwl    -14(%rsp), %edx
+        pxor      %xmm8, %xmm8
+        andl      $32640, %edx
+        lea       __slog2_la_CoutTab(%rip), %r10
+        shrl      $7, %edx
+        movss     %xmm2, -20(%rsp)
+        movss     .FLT_84(%rip), %xmm2
+        movaps    %xmm2, %xmm1
+        movss     .FLT_93(%rip), %xmm6
+        lea       -127(%rcx,%rdx), %r9d
+        movzwl    -18(%rsp), %ecx
+        andl      $-32641, %ecx
+        addl      $16256, %ecx
+        movw      %cx, -18(%rsp)
+        movss     -20(%rsp), %xmm3
+        movaps    %xmm3, %xmm0
+        addss     %xmm3, %xmm1
+        addss     .FLT_83(%rip), %xmm0
+        cvtsi2ss  %r9d, %xmm8
+        movss     %xmm0, -24(%rsp)
+        movl      -24(%rsp), %edi
+        movss     %xmm1, -24(%rsp)
+        andl      $127, %edi
+        movss     -24(%rsp), %xmm7
+        subss     %xmm2, %xmm7
+        lea       (%rdi,%rdi,2), %r8d
+        movss     (%r10,%r8,4), %xmm5
+        subss     %xmm7, %xmm3
+        addss     4(%r10,%r8,4), %xmm8
+        mulss     %xmm5, %xmm7
+        mulss     %xmm3, %xmm5
+        subss     .FLT_85(%rip), %xmm7
+        movaps    %xmm7, %xmm4
+        addss     %xmm7, %xmm8
+        addss     %xmm5, %xmm4
+        mulss     %xmm4, %xmm6
+        addss     .FLT_92(%rip), %xmm6
+        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     %xmm4, %xmm6
+        addss     .FLT_87(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_86(%rip), %xmm6
+        mulss     %xmm6, %xmm7
+        mulss     %xmm5, %xmm6
+        addss     8(%r10,%r8,4), %xmm6
+        addss     %xmm5, %xmm6
+        addss     %xmm6, %xmm7
+        addss     %xmm7, %xmm8
+        movss     %xmm8, (%rsi)
+        ret
+
+.LBL_2_8:
+        movss     .FLT_85(%rip), %xmm0
+        mulss     %xmm0, %xmm1
+        movss     .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     .FLT_87(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_86(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     %xmm1, %xmm2
+        movss     %xmm2, (%rsi)
+        ret
+
+.LBL_2_9:
+        ucomiss   %xmm1, %xmm2
+        jp        .LBL_2_10
+        je        .LBL_2_12
+
+.LBL_2_10:
+        divss     %xmm1, %xmm1
+        movss     %xmm1, (%rsi)
+        movl      $1, %eax
+        ret
+
+.LBL_2_12:
+        movss     .FLT_94(%rip), %xmm0
+        movl      $2, %eax
+        divss     %xmm1, %xmm0
+        movss     %xmm0, (%rsi)
+        ret
+
+.LBL_2_13:
+        movb      3(%rdi), %dl
+        andb      $-128, %dl
+        cmpb      $-128, %dl
+        je        .LBL_2_15
+
+.LBL_2_14:
+        movss     (%rdi), %xmm0
+        mulss     %xmm0, %xmm0
+        movss     %xmm0, (%rsi)
+        ret
+
+.LBL_2_15:
+        testl     $8388607, (%rdi)
+        jne       .LBL_2_14
+        movl      $1, %eax
+        pxor      %xmm1, %xmm1
+        pxor      %xmm0, %xmm0
+        divss     %xmm0, %xmm1
+        movss     %xmm1, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_slog2_cout_rare_internal,@function
+        .size	__svml_slog2_cout_rare_internal,.-__svml_slog2_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_slog2_data_internal:
+        .long	3271294976
+        .long	0
+        .long	3271296000
+        .long	3068856281
+        .long	3271297024
+        .long	938219729
+        .long	3271298032
+        .long	3079617137
+        .long	3271299040
+        .long	3081795326
+        .long	3271300048
+        .long	931444511
+        .long	3271301040
+        .long	3086175556
+        .long	3271302040
+        .long	937684290
+        .long	3271303024
+        .long	895273824
+        .long	3271304008
+        .long	929322840
+        .long	3271304984
+        .long	914973210
+        .long	3271305952
+        .long	3085691485
+        .long	3271306920
+        .long	3082544936
+        .long	3271307888
+        .long	934225115
+        .long	3271308840
+        .long	3081631497
+        .long	3271309792
+        .long	3084279599
+        .long	3271310744
+        .long	919294098
+        .long	3271311688
+        .long	928328979
+        .long	3271312624
+        .long	3066585895
+        .long	3271313560
+        .long	926130568
+        .long	3271314488
+        .long	901156711
+        .long	3271315416
+        .long	937414789
+        .long	3271316336
+        .long	936653537
+        .long	3271317248
+        .long	3058814943
+        .long	3271318160
+        .long	906908118
+        .long	3271319064
+        .long	3081401871
+        .long	3271319968
+        .long	3072543999
+        .long	3271320864
+        .long	3085330685
+        .long	3271321760
+        .long	3075910590
+        .long	3271322648
+        .long	3085106206
+        .long	3271323536
+        .long	3072312054
+        .long	3271324416
+        .long	3082060466
+        .long	3271325296
+        .long	3055197447
+        .long	3271326168
+        .long	3076357858
+        .long	3271327040
+        .long	920345845
+        .long	3271327904
+        .long	3063129936
+        .long	3271328768
+        .long	930567858
+        .long	3271329624
+        .long	909272754
+        .long	3271330480
+        .long	933804198
+        .long	3271331328
+        .long	918737494
+        .long	3271332176
+        .long	934022681
+        .long	3271333016
+        .long	910479685
+        .long	3271333856
+        .long	929589825
+        .long	3271334688
+        .long	3070655175
+        .long	3271335520
+        .long	3053267575
+        .long	3271336344
+        .long	3086194926
+        .long	3271337168
+        .long	3085997978
+        .long	3271337992
+        .long	3045913777
+        .long	3271338808
+        .long	3069765616
+        .long	3271339624
+        .long	928672192
+        .long	3271340432
+        .long	3045522449
+        .long	3271341240
+        .long	926802639
+        .long	3271342040
+        .long	3074232411
+        .long	3271342840
+        .long	3070586333
+        .long	3271343640
+        .long	934318260
+        .long	3271344432
+        .long	930283614
+        .long	3271345216
+        .long	3085545791
+        .long	3271346008
+        .long	931477852
+        .long	3271346792
+        .long	935625357
+        .long	3271347568
+        .long	3065394803
+        .long	3271348344
+        .long	3072676686
+        .long	3271349120
+        .long	925303420
+        .long	3271349888
+        .long	3069367164
+        .long	3271350656
+        .long	3038632180
+        .long	3271351424
+        .long	939079119
+        .long	3271352184
+        .long	935075887
+        .long	3271352936
+        .long	3082666870
+        .long	3271353696
+        .long	931789803
+        .long	3271354448
+        .long	932303901
+        .long	3271355192
+        .long	3081224294
+        .long	3271355944
+        .long	937147770
+        .long	3271356680
+        .long	3085250212
+        .long	3271357424
+        .long	908073671
+        .long	3271358896
+        .long	918282152
+        .long	3271360352
+        .long	3084832095
+        .long	3271361808
+        .long	937397780
+        .long	3271363240
+        .long	3080772107
+        .long	3271364672
+        .long	932533526
+        .long	3271366088
+        .long	930047759
+        .long	3271367496
+        .long	939267269
+        .long	3271368888
+        .long	910438307
+        .long	3271370272
+        .long	3069366057
+        .long	3271371648
+        .long	3050426335
+        .long	3271373016
+        .long	933100185
+        .long	3271374368
+        .long	3070825219
+        .long	3271375712
+        .long	3082654716
+        .long	3271377048
+        .long	3084246816
+        .long	3271378376
+        .long	3080058411
+        .long	3271379696
+        .long	3041317981
+        .long	3271381008
+        .long	936455786
+        .long	3271382304
+        .long	3057542833
+        .long	3271383592
+        .long	3083404326
+        .long	3271384880
+        .long	934663588
+        .long	3271386152
+        .long	926575359
+        .long	3271387416
+        .long	915856538
+        .long	3271388672
+        .long	897695912
+        .long	3271389920
+        .long	3031263839
+        .long	3271391160
+        .long	3025798075
+        .long	3271392392
+        .long	889828954
+        .long	3271393616
+        .long	898229073
+        .long	3271394832
+        .long	890611612
+        .long	3271396040
+        .long	3051312165
+        .long	3271397240
+        .long	3067504579
+        .long	3271398432
+        .long	3077629370
+        .long	3271399616
+        .long	3084686401
+        .long	3271400800
+        .long	932711104
+        .long	3271401968
+        .long	3061957243
+        .long	3271403136
+        .long	938752650
+        .long	3271404288
+        .long	3065929605
+        .long	3271405440
+        .long	928849078
+        .long	3271406584
+        .long	935935277
+        .long	3271407720
+        .long	937106840
+        .long	3271408848
+        .long	933163291
+        .long	3271409968
+        .long	905515466
+        .long	3271411080
+        .long	3084390822
+        .long	3271412192
+        .long	3060235563
+        .long	3271413296
+        .long	921719712
+        .long	3271414392
+        .long	918076967
+        .long	3271415480
+        .long	3071716852
+        .long	3271416568
+        .long	936042212
+        .long	3271417640
+        .long	3079912717
+        .long	3271418712
+        .long	3075951191
+        .long	3271419776
+        .long	3082895478
+        .long	3271420840
+        .long	927873550
+        .long	3271421888
+        .long	3086405181
+        .long	3271422936
+        .long	3084857775
+        .long	3271423984
+        .long	933876987
+        .long	3271425016
+        .long	3074395466
+        .long	3271426048
+        .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	1042663530
+        .long	1042663530
+        .long	1042663530
+        .long	1042663530
+        .long	3199384460
+        .long	3199384460
+        .long	3199384460
+        .long	3199384460
+        .long	996988896
+        .long	996988896
+        .long	996988896
+        .long	996988896
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1006632960
+        .long	1006632960
+        .long	1006632960
+        .long	1006632960
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1069023232
+        .long	1069023232
+        .long	1069023232
+        .long	1069023232
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1045774354
+        .long	1045774354
+        .long	1045774354
+        .long	1045774354
+        .long	3194195476
+        .long	3194195476
+        .long	3194195476
+        .long	3194195476
+        .long	1045259787
+        .long	1045259787
+        .long	1045259787
+        .long	1045259787
+        .long	3195172900
+        .long	3195172900
+        .long	3195172900
+        .long	3195172900
+        .long	1049877767
+        .long	1049877767
+        .long	1049877767
+        .long	1049877767
+        .long	3199777129
+        .long	3199777129
+        .long	3199777129
+        .long	3199777129
+        .long	1056323520
+        .long	1056323520
+        .long	1056323520
+        .long	1056323520
+        .long	3208161835
+        .long	3208161835
+        .long	3208161835
+        .long	3208161835
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1051385883
+        .long	1051385883
+        .long	1051385883
+        .long	1051385883
+        .long	3201001580
+        .long	3201001580
+        .long	3201001580
+        .long	3201001580
+        .long	1056242241
+        .long	1056242241
+        .long	1056242241
+        .long	1056242241
+        .long	3208144266
+        .long	3208144266
+        .long	3208144266
+        .long	3208144266
+        .long	1069066989
+        .long	1069066989
+        .long	1069066989
+        .long	1069066989
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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_slog2_data_internal,@object
+        .size	__svml_slog2_data_internal,2240
+        .align 32
+
+__slog2_la_CoutTab:
+        .long	1136175680
+        .long	0
+        .long	0
+        .long	1135986583
+        .long	1018822656
+        .long	930849160
+        .long	1135809305
+        .long	1026916352
+        .long	941737263
+        .long	1135632026
+        .long	1032306688
+        .long	936581683
+        .long	1135466566
+        .long	1035100160
+        .long	929197062
+        .long	1135301106
+        .long	1037934592
+        .long	897678483
+        .long	1135135647
+        .long	1040498688
+        .long	3059980496
+        .long	1134982005
+        .long	1041852416
+        .long	908010313
+        .long	1134828364
+        .long	1043226624
+        .long	3073739761
+        .long	1134686541
+        .long	1044510720
+        .long	918631281
+        .long	1134538809
+        .long	1045868544
+        .long	3062817788
+        .long	1134402896
+        .long	1047134208
+        .long	3064656237
+        .long	1134266982
+        .long	1048416256
+        .long	3029590737
+        .long	1134131069
+        .long	1049145856
+        .long	903671587
+        .long	1134001065
+        .long	1049775616
+        .long	911388989
+        .long	1133876970
+        .long	1050384896
+        .long	3069885983
+        .long	1133752875
+        .long	1051001344
+        .long	3037530952
+        .long	1133634689
+        .long	1051596288
+        .long	3069922038
+        .long	1133516503
+        .long	1052198400
+        .long	3070222063
+        .long	1133404227
+        .long	1052776960
+        .long	919559368
+        .long	1133291951
+        .long	1053363200
+        .long	840060372
+        .long	1133185584
+        .long	1053924864
+        .long	915603033
+        .long	1133079217
+        .long	1054493184
+        .long	921334924
+        .long	1132978759
+        .long	1055036416
+        .long	896601826
+        .long	1132872392
+        .long	1055618048
+        .long	908913293
+        .long	1132777843
+        .long	1056141312
+        .long	3065728751
+        .long	1132677386
+        .long	1056702976
+        .long	909020429
+        .long	1132582837
+        .long	1057101312
+        .long	3048020321
+        .long	1132494198
+        .long	1057354752
+        .long	3038815896
+        .long	1132337219
+        .long	1057628160
+        .long	3068137421
+        .long	1132159940
+        .long	1057887232
+        .long	3069993595
+        .long	1131994480
+        .long	1058131456
+        .long	3054354312
+        .long	1131817202
+        .long	1058395904
+        .long	910223436
+        .long	1131651742
+        .long	1058645504
+        .long	3046952660
+        .long	1131486282
+        .long	1058897664
+        .long	3057670844
+        .long	1131332641
+        .long	1059133952
+        .long	924929721
+        .long	1131178999
+        .long	1059373056
+        .long	3068093797
+        .long	1131025358
+        .long	1059614208
+        .long	3058851683
+        .long	1130871717
+        .long	1059857920
+        .long	3069897752
+        .long	1130729894
+        .long	1060084736
+        .long	924446297
+        .long	1130576253
+        .long	1060333312
+        .long	903058075
+        .long	1130434430
+        .long	1060564992
+        .long	3052757441
+        .long	1130304426
+        .long	1060779264
+        .long	3045479197
+        .long	1130162603
+        .long	1061015040
+        .long	924699798
+        .long	1130032599
+        .long	1061233664
+        .long	3070937808
+        .long	1129890776
+        .long	1061473792
+        .long	925912756
+        .long	1129772591
+        .long	1061676032
+        .long	923952205
+        .long	1129642586
+        .long	1061900544
+        .long	906547304
+        .long	1129512582
+        .long	1062127104
+        .long	3050351427
+        .long	1129394397
+        .long	1062334976
+        .long	3070601694
+        .long	1129276211
+        .long	1062544384
+        .long	900519722
+        .long	1129158025
+        .long	1062755840
+        .long	3055774932
+        .long	1129039840
+        .long	1062969088
+        .long	3053661845
+        .long	1128921654
+        .long	1063184384
+        .long	3073448373
+        .long	1128815287
+        .long	1063379456
+        .long	907090876
+        .long	1128697101
+        .long	1063598336
+        .long	881051555
+        .long	1128590734
+        .long	1063796992
+        .long	898320955
+        .long	1128484367
+        .long	1063997440
+        .long	3068804107
+        .long	1128378000
+        .long	1064199168
+        .long	923531617
+        .long	1128283452
+        .long	1064380416
+        .long	3070994608
+        .long	1128177085
+        .long	1064585472
+        .long	901920533
+        .long	1128082536
+        .long	1064769536
+        .long	3071653428
+        .long	1127976169
+        .long	1064977920
+        .long	903017594
+        .long	1127881621
+        .long	1065164800
+        .long	911713416
+        .long	1127787072
+        .long	1065353216
+        .long	0
+        .long	1065353216
+        .long	0
+        .long	1207959616
+        .long	1174405120
+        .long	1002438656
+        .long	1291845632
+        .long	0
+        .long	1065353216
+        .long	1136175680
+        .long	3212771328
+        .long	3065082383
+        .long	841219731
+        .long	2913632803
+        .long	691870088
+        .long	2765780188
+        .long	545377693
+        .long	2619180638
+        .type	__slog2_la_CoutTab,@object
+        .size	__slog2_la_CoutTab,848
+        .align 4
+
+.FLT_81:
+        .long	0x4d000000
+        .type	.FLT_81,@object
+        .size	.FLT_81,4
+        .align 4
+
+.FLT_82:
+        .long	0x3bc00000
+        .type	.FLT_82,@object
+        .size	.FLT_82,4
+        .align 4
+
+.FLT_83:
+        .long	0x48000040
+        .type	.FLT_83,@object
+        .size	.FLT_83,4
+        .align 4
+
+.FLT_84:
+        .long	0x46000000
+        .type	.FLT_84,@object
+        .size	.FLT_84,4
+        .align 4
+
+.FLT_85:
+        .long	0x43b8aa40
+        .type	.FLT_85,@object
+        .size	.FLT_85,4
+        .align 4
+
+.FLT_86:
+        .long	0xbf7f0000
+        .type	.FLT_86,@object
+        .size	.FLT_86,4
+        .align 4
+
+.FLT_87:
+        .long	0xb6b1720f
+        .type	.FLT_87,@object
+        .size	.FLT_87,4
+        .align 4
+
+.FLT_88:
+        .long	0x3223fe93
+        .type	.FLT_88,@object
+        .size	.FLT_88,4
+        .align 4
+
+.FLT_89:
+        .long	0xadaa8223
+        .type	.FLT_89,@object
+        .size	.FLT_89,4
+        .align 4
+
+.FLT_90:
+        .long	0x293d1988
+        .type	.FLT_90,@object
+        .size	.FLT_90,4
+        .align 4
+
+.FLT_91:
+        .long	0xa4da74dc
+        .type	.FLT_91,@object
+        .size	.FLT_91,4
+        .align 4
+
+.FLT_92:
+        .long	0x2081cd9d
+        .type	.FLT_92,@object
+        .size	.FLT_92,4
+        .align 4
+
+.FLT_93:
+        .long	0x9c1d865e
+        .type	.FLT_93,@object
+        .size	.FLT_93,4
+        .align 4
+
+.FLT_94:
+        .long	0xbf800000
+        .type	.FLT_94,@object
+        .size	.FLT_94,4
+        .align 4
+
+.FLT_95:
+        .long	0x3f800000
+        .type	.FLT_95,@object
+        .size	.FLT_95,4
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core-sse.S
new file mode 100644
index 0000000000..ec4b70568d
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core-sse.S
@@ -0,0 +1,20 @@ 
+/* SSE version of vectorized log2f, 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_log2f _ZGVdN8v_log2f_sse_wrapper
+#include "../svml_s_log2f8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core.c
new file mode 100644
index 0000000000..b3e958021a
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core.c
@@ -0,0 +1,28 @@ 
+/* Multiple versions of vectorized log2f, 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_log2f
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN8v_log2f, __GI__ZGVdN8v_log2f,
+	       __redirect__ZGVdN8v_log2f)
+  __attribute__ ((visibility ("hidden")));
+#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core_avx2.S
new file mode 100644
index 0000000000..ad01449e72
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_log2f8_core_avx2.S
@@ -0,0 +1,1727 @@ 
+/* Function logf8 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
+ *    log2(x) = k - log2(Rcp) + poly_approximation(R)
+ *       log2(Rcp) is tabulated
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+        .text
+ENTRY(_ZGVdN8v_log2f_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   1600+__svml_slog2_data_internal(%rip), %ymm4
+        vmovups   %ymm15, 320(%rsp)
+        vmovups   %ymm14, 288(%rsp)
+        vmovups   %ymm13, 256(%rsp)
+        vmovups   %ymm12, 224(%rsp)
+        vmovups   %ymm11, 192(%rsp)
+        vmovups   %ymm10, 160(%rsp)
+        vmovups   %ymm9, 96(%rsp)
+        vmovups   %ymm8, 32(%rsp)
+        vpsubd    %ymm4, %ymm0, %ymm1
+        vcmplt_oqps 1344+__svml_slog2_data_internal(%rip), %ymm0, %ymm5
+        vcmpnle_uqps 1408+__svml_slog2_data_internal(%rip), %ymm0, %ymm6
+        vpand     1664+__svml_slog2_data_internal(%rip), %ymm1, %ymm3
+        vpsrad    $23, %ymm1, %ymm2
+        vmovups   1984+__svml_slog2_data_internal(%rip), %ymm1
+        vpaddd    %ymm4, %ymm3, %ymm3
+        vmovups   1856+__svml_slog2_data_internal(%rip), %ymm4
+        vcvtdq2ps %ymm2, %ymm2
+        vorps     %ymm6, %ymm5, %ymm7
+
+/* combine and get argument value range mask */
+        vmovmskps %ymm7, %edx
+        vsubps    1728+__svml_slog2_data_internal(%rip), %ymm3, %ymm7
+        vmovups   1792+__svml_slog2_data_internal(%rip), %ymm3
+        vmovups   1920+__svml_slog2_data_internal(%rip), %ymm5
+        vfmadd213ps 1888+__svml_slog2_data_internal(%rip), %ymm7, %ymm4
+        vmulps    %ymm7, %ymm7, %ymm6
+        vfmadd213ps 2016+__svml_slog2_data_internal(%rip), %ymm7, %ymm1
+        vfmadd213ps 1824+__svml_slog2_data_internal(%rip), %ymm7, %ymm3
+        vfmadd213ps 1952+__svml_slog2_data_internal(%rip), %ymm7, %ymm5
+        vfmadd213ps %ymm4, %ymm6, %ymm3
+        vfmadd213ps %ymm5, %ymm6, %ymm3
+        vfmadd213ps %ymm1, %ymm6, %ymm3
+        vfmadd213ps 2048+__svml_slog2_data_internal(%rip), %ymm7, %ymm3
+        vfmadd213ps %ymm2, %ymm7, %ymm3
+        testl     %edx, %edx
+        jne       .LBL_1_3
+        .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
+
+.LBL_1_2:
+        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)
+        vmovaps   %ymm3, %ymm0
+        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
+
+.LBL_1_3:
+        vmovups   %ymm0, 64(%rsp)
+        vmovups   %ymm3, 128(%rsp)
+        je        .LBL_1_2
+        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
+
+.LBL_1_7:
+        btl       %r12d, %r13d
+        jc        .LBL_1_10
+
+.LBL_1_8:
+        incl      %r12d
+        cmpl      $8, %r12d
+        jl        .LBL_1_7
+        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), %ymm3
+        jmp       .LBL_1_2
+        .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
+
+.LBL_1_10:
+        lea       64(%rsp,%r12,4), %rdi
+        lea       128(%rsp,%r12,4), %rsi
+        call      __svml_slog2_cout_rare_internal
+        jmp       .LBL_1_8
+
+END(_ZGVdN8v_log2f_avx2)
+
+        .align    16,0x90
+
+__svml_slog2_cout_rare_internal:
+
+        cfi_startproc
+
+        xorl      %eax, %eax
+        movzwl    2(%rdi), %edx
+        andl      $32640, %edx
+        cmpl      $32640, %edx
+        je        .LBL_2_13
+        movss     (%rdi), %xmm2
+        xorl      %ecx, %ecx
+        pxor      %xmm1, %xmm1
+        movss     %xmm2, -16(%rsp)
+        ucomiss   %xmm1, %xmm2
+        jp        .LBL_2_3
+        je        .LBL_2_5
+
+.LBL_2_3:
+        movzwl    -14(%rsp), %edx
+        testl     $32640, %edx
+        jne       .LBL_2_5
+        movss     .FLT_81(%rip), %xmm0
+        movl      $-27, %ecx
+        mulss     %xmm0, %xmm2
+        movss     %xmm2, -16(%rsp)
+
+.LBL_2_5:
+        comiss    %xmm1, %xmm2
+        jbe       .LBL_2_9
+        movaps    %xmm2, %xmm1
+        subss     .FLT_95(%rip), %xmm1
+        movss     %xmm1, -20(%rsp)
+        andb      $127, -17(%rsp)
+        movss     -20(%rsp), %xmm0
+        comiss    .FLT_82(%rip), %xmm0
+        jbe       .LBL_2_8
+        movzwl    -14(%rsp), %edx
+        pxor      %xmm8, %xmm8
+        andl      $32640, %edx
+        lea       __slog2_la_CoutTab(%rip), %r10
+        shrl      $7, %edx
+        movss     %xmm2, -20(%rsp)
+        movss     .FLT_84(%rip), %xmm2
+        movaps    %xmm2, %xmm1
+        movss     .FLT_93(%rip), %xmm6
+        lea       -127(%rcx,%rdx), %r9d
+        movzwl    -18(%rsp), %ecx
+        andl      $-32641, %ecx
+        addl      $16256, %ecx
+        movw      %cx, -18(%rsp)
+        movss     -20(%rsp), %xmm3
+        movaps    %xmm3, %xmm0
+        addss     %xmm3, %xmm1
+        addss     .FLT_83(%rip), %xmm0
+        cvtsi2ss  %r9d, %xmm8
+        movss     %xmm0, -24(%rsp)
+        movl      -24(%rsp), %edi
+        movss     %xmm1, -24(%rsp)
+        andl      $127, %edi
+        movss     -24(%rsp), %xmm7
+        subss     %xmm2, %xmm7
+        lea       (%rdi,%rdi,2), %r8d
+        movss     (%r10,%r8,4), %xmm5
+        subss     %xmm7, %xmm3
+        addss     4(%r10,%r8,4), %xmm8
+        mulss     %xmm5, %xmm7
+        mulss     %xmm3, %xmm5
+        subss     .FLT_85(%rip), %xmm7
+        movaps    %xmm7, %xmm4
+        addss     %xmm7, %xmm8
+        addss     %xmm5, %xmm4
+        mulss     %xmm4, %xmm6
+        addss     .FLT_92(%rip), %xmm6
+        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     %xmm4, %xmm6
+        addss     .FLT_87(%rip), %xmm6
+        mulss     %xmm4, %xmm6
+        addss     .FLT_86(%rip), %xmm6
+        mulss     %xmm6, %xmm7
+        mulss     %xmm5, %xmm6
+        addss     8(%r10,%r8,4), %xmm6
+        addss     %xmm5, %xmm6
+        addss     %xmm6, %xmm7
+        addss     %xmm7, %xmm8
+        movss     %xmm8, (%rsi)
+        ret
+
+.LBL_2_8:
+        movss     .FLT_85(%rip), %xmm0
+        mulss     %xmm0, %xmm1
+        movss     .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     .FLT_87(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     .FLT_86(%rip), %xmm2
+        mulss     %xmm1, %xmm2
+        addss     %xmm1, %xmm2
+        movss     %xmm2, (%rsi)
+        ret
+
+.LBL_2_9:
+        ucomiss   %xmm1, %xmm2
+        jp        .LBL_2_10
+        je        .LBL_2_12
+
+.LBL_2_10:
+        divss     %xmm1, %xmm1
+        movss     %xmm1, (%rsi)
+        movl      $1, %eax
+        ret
+
+.LBL_2_12:
+        movss     .FLT_94(%rip), %xmm0
+        movl      $2, %eax
+        divss     %xmm1, %xmm0
+        movss     %xmm0, (%rsi)
+        ret
+
+.LBL_2_13:
+        movb      3(%rdi), %dl
+        andb      $-128, %dl
+        cmpb      $-128, %dl
+        je        .LBL_2_15
+
+.LBL_2_14:
+        movss     (%rdi), %xmm0
+        mulss     %xmm0, %xmm0
+        movss     %xmm0, (%rsi)
+        ret
+
+.LBL_2_15:
+        testl     $8388607, (%rdi)
+        jne       .LBL_2_14
+        movl      $1, %eax
+        pxor      %xmm1, %xmm1
+        pxor      %xmm0, %xmm0
+        divss     %xmm0, %xmm1
+        movss     %xmm1, (%rsi)
+        ret
+
+        cfi_endproc
+
+        .type	__svml_slog2_cout_rare_internal,@function
+        .size	__svml_slog2_cout_rare_internal,.-__svml_slog2_cout_rare_internal
+
+        .section .rodata, "a"
+        .align 64
+
+__svml_slog2_data_internal:
+        .long	3271294976
+        .long	0
+        .long	3271296000
+        .long	3068856281
+        .long	3271297024
+        .long	938219729
+        .long	3271298032
+        .long	3079617137
+        .long	3271299040
+        .long	3081795326
+        .long	3271300048
+        .long	931444511
+        .long	3271301040
+        .long	3086175556
+        .long	3271302040
+        .long	937684290
+        .long	3271303024
+        .long	895273824
+        .long	3271304008
+        .long	929322840
+        .long	3271304984
+        .long	914973210
+        .long	3271305952
+        .long	3085691485
+        .long	3271306920
+        .long	3082544936
+        .long	3271307888
+        .long	934225115
+        .long	3271308840
+        .long	3081631497
+        .long	3271309792
+        .long	3084279599
+        .long	3271310744
+        .long	919294098
+        .long	3271311688
+        .long	928328979
+        .long	3271312624
+        .long	3066585895
+        .long	3271313560
+        .long	926130568
+        .long	3271314488
+        .long	901156711
+        .long	3271315416
+        .long	937414789
+        .long	3271316336
+        .long	936653537
+        .long	3271317248
+        .long	3058814943
+        .long	3271318160
+        .long	906908118
+        .long	3271319064
+        .long	3081401871
+        .long	3271319968
+        .long	3072543999
+        .long	3271320864
+        .long	3085330685
+        .long	3271321760
+        .long	3075910590
+        .long	3271322648
+        .long	3085106206
+        .long	3271323536
+        .long	3072312054
+        .long	3271324416
+        .long	3082060466
+        .long	3271325296
+        .long	3055197447
+        .long	3271326168
+        .long	3076357858
+        .long	3271327040
+        .long	920345845
+        .long	3271327904
+        .long	3063129936
+        .long	3271328768
+        .long	930567858
+        .long	3271329624
+        .long	909272754
+        .long	3271330480
+        .long	933804198
+        .long	3271331328
+        .long	918737494
+        .long	3271332176
+        .long	934022681
+        .long	3271333016
+        .long	910479685
+        .long	3271333856
+        .long	929589825
+        .long	3271334688
+        .long	3070655175
+        .long	3271335520
+        .long	3053267575
+        .long	3271336344
+        .long	3086194926
+        .long	3271337168
+        .long	3085997978
+        .long	3271337992
+        .long	3045913777
+        .long	3271338808
+        .long	3069765616
+        .long	3271339624
+        .long	928672192
+        .long	3271340432
+        .long	3045522449
+        .long	3271341240
+        .long	926802639
+        .long	3271342040
+        .long	3074232411
+        .long	3271342840
+        .long	3070586333
+        .long	3271343640
+        .long	934318260
+        .long	3271344432
+        .long	930283614
+        .long	3271345216
+        .long	3085545791
+        .long	3271346008
+        .long	931477852
+        .long	3271346792
+        .long	935625357
+        .long	3271347568
+        .long	3065394803
+        .long	3271348344
+        .long	3072676686
+        .long	3271349120
+        .long	925303420
+        .long	3271349888
+        .long	3069367164
+        .long	3271350656
+        .long	3038632180
+        .long	3271351424
+        .long	939079119
+        .long	3271352184
+        .long	935075887
+        .long	3271352936
+        .long	3082666870
+        .long	3271353696
+        .long	931789803
+        .long	3271354448
+        .long	932303901
+        .long	3271355192
+        .long	3081224294
+        .long	3271355944
+        .long	937147770
+        .long	3271356680
+        .long	3085250212
+        .long	3271357424
+        .long	908073671
+        .long	3271358896
+        .long	918282152
+        .long	3271360352
+        .long	3084832095
+        .long	3271361808
+        .long	937397780
+        .long	3271363240
+        .long	3080772107
+        .long	3271364672
+        .long	932533526
+        .long	3271366088
+        .long	930047759
+        .long	3271367496
+        .long	939267269
+        .long	3271368888
+        .long	910438307
+        .long	3271370272
+        .long	3069366057
+        .long	3271371648
+        .long	3050426335
+        .long	3271373016
+        .long	933100185
+        .long	3271374368
+        .long	3070825219
+        .long	3271375712
+        .long	3082654716
+        .long	3271377048
+        .long	3084246816
+        .long	3271378376
+        .long	3080058411
+        .long	3271379696
+        .long	3041317981
+        .long	3271381008
+        .long	936455786
+        .long	3271382304
+        .long	3057542833
+        .long	3271383592
+        .long	3083404326
+        .long	3271384880
+        .long	934663588
+        .long	3271386152
+        .long	926575359
+        .long	3271387416
+        .long	915856538
+        .long	3271388672
+        .long	897695912
+        .long	3271389920
+        .long	3031263839
+        .long	3271391160
+        .long	3025798075
+        .long	3271392392
+        .long	889828954
+        .long	3271393616
+        .long	898229073
+        .long	3271394832
+        .long	890611612
+        .long	3271396040
+        .long	3051312165
+        .long	3271397240
+        .long	3067504579
+        .long	3271398432
+        .long	3077629370
+        .long	3271399616
+        .long	3084686401
+        .long	3271400800
+        .long	932711104
+        .long	3271401968
+        .long	3061957243
+        .long	3271403136
+        .long	938752650
+        .long	3271404288
+        .long	3065929605
+        .long	3271405440
+        .long	928849078
+        .long	3271406584
+        .long	935935277
+        .long	3271407720
+        .long	937106840
+        .long	3271408848
+        .long	933163291
+        .long	3271409968
+        .long	905515466
+        .long	3271411080
+        .long	3084390822
+        .long	3271412192
+        .long	3060235563
+        .long	3271413296
+        .long	921719712
+        .long	3271414392
+        .long	918076967
+        .long	3271415480
+        .long	3071716852
+        .long	3271416568
+        .long	936042212
+        .long	3271417640
+        .long	3079912717
+        .long	3271418712
+        .long	3075951191
+        .long	3271419776
+        .long	3082895478
+        .long	3271420840
+        .long	927873550
+        .long	3271421888
+        .long	3086405181
+        .long	3271422936
+        .long	3084857775
+        .long	3271423984
+        .long	933876987
+        .long	3271425016
+        .long	3074395466
+        .long	3271426048
+        .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	1042663530
+        .long	1042663530
+        .long	1042663530
+        .long	1042663530
+        .long	1042663530
+        .long	1042663530
+        .long	1042663530
+        .long	1042663530
+        .long	3199384460
+        .long	3199384460
+        .long	3199384460
+        .long	3199384460
+        .long	3199384460
+        .long	3199384460
+        .long	3199384460
+        .long	3199384460
+        .long	996988896
+        .long	996988896
+        .long	996988896
+        .long	996988896
+        .long	996988896
+        .long	996988896
+        .long	996988896
+        .long	996988896
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1006632960
+        .long	1006632960
+        .long	1006632960
+        .long	1006632960
+        .long	1006632960
+        .long	1006632960
+        .long	1006632960
+        .long	1006632960
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1069023232
+        .long	1069023232
+        .long	1069023232
+        .long	1069023232
+        .long	1069023232
+        .long	1069023232
+        .long	1069023232
+        .long	1069023232
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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	1045774354
+        .long	1045774354
+        .long	1045774354
+        .long	1045774354
+        .long	1045774354
+        .long	1045774354
+        .long	1045774354
+        .long	1045774354
+        .long	3194195476
+        .long	3194195476
+        .long	3194195476
+        .long	3194195476
+        .long	3194195476
+        .long	3194195476
+        .long	3194195476
+        .long	3194195476
+        .long	1045259787
+        .long	1045259787
+        .long	1045259787
+        .long	1045259787
+        .long	1045259787
+        .long	1045259787
+        .long	1045259787
+        .long	1045259787
+        .long	3195172900
+        .long	3195172900
+        .long	3195172900
+        .long	3195172900
+        .long	3195172900
+        .long	3195172900
+        .long	3195172900
+        .long	3195172900
+        .long	1049877767
+        .long	1049877767
+        .long	1049877767
+        .long	1049877767
+        .long	1049877767
+        .long	1049877767
+        .long	1049877767
+        .long	1049877767
+        .long	3199777129
+        .long	3199777129
+        .long	3199777129
+        .long	3199777129
+        .long	3199777129
+        .long	3199777129
+        .long	3199777129
+        .long	3199777129
+        .long	1056323520
+        .long	1056323520
+        .long	1056323520
+        .long	1056323520
+        .long	1056323520
+        .long	1056323520
+        .long	1056323520
+        .long	1056323520
+        .long	3208161835
+        .long	3208161835
+        .long	3208161835
+        .long	3208161835
+        .long	3208161835
+        .long	3208161835
+        .long	3208161835
+        .long	3208161835
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .long	1069066811
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .long	1051385883
+        .long	1051385883
+        .long	1051385883
+        .long	1051385883
+        .long	1051385883
+        .long	1051385883
+        .long	1051385883
+        .long	1051385883
+        .long	3201001580
+        .long	3201001580
+        .long	3201001580
+        .long	3201001580
+        .long	3201001580
+        .long	3201001580
+        .long	3201001580
+        .long	3201001580
+        .long	1056242241
+        .long	1056242241
+        .long	1056242241
+        .long	1056242241
+        .long	1056242241
+        .long	1056242241
+        .long	1056242241
+        .long	1056242241
+        .long	3208144266
+        .long	3208144266
+        .long	3208144266
+        .long	3208144266
+        .long	3208144266
+        .long	3208144266
+        .long	3208144266
+        .long	3208144266
+        .long	1069066989
+        .long	1069066989
+        .long	1069066989
+        .long	1069066989
+        .long	1069066989
+        .long	1069066989
+        .long	1069066989
+        .long	1069066989
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .byte	0
+        .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_slog2_data_internal,@object
+        .size	__svml_slog2_data_internal,2496
+        .align 32
+
+__slog2_la_CoutTab:
+        .long	1136175680
+        .long	0
+        .long	0
+        .long	1135986583
+        .long	1018822656
+        .long	930849160
+        .long	1135809305
+        .long	1026916352
+        .long	941737263
+        .long	1135632026
+        .long	1032306688
+        .long	936581683
+        .long	1135466566
+        .long	1035100160
+        .long	929197062
+        .long	1135301106
+        .long	1037934592
+        .long	897678483
+        .long	1135135647
+        .long	1040498688
+        .long	3059980496
+        .long	1134982005
+        .long	1041852416
+        .long	908010313
+        .long	1134828364
+        .long	1043226624
+        .long	3073739761
+        .long	1134686541
+        .long	1044510720
+        .long	918631281
+        .long	1134538809
+        .long	1045868544
+        .long	3062817788
+        .long	1134402896
+        .long	1047134208
+        .long	3064656237
+        .long	1134266982
+        .long	1048416256
+        .long	3029590737
+        .long	1134131069
+        .long	1049145856
+        .long	903671587
+        .long	1134001065
+        .long	1049775616
+        .long	911388989
+        .long	1133876970
+        .long	1050384896
+        .long	3069885983
+        .long	1133752875
+        .long	1051001344
+        .long	3037530952
+        .long	1133634689
+        .long	1051596288
+        .long	3069922038
+        .long	1133516503
+        .long	1052198400
+        .long	3070222063
+        .long	1133404227
+        .long	1052776960
+        .long	919559368
+        .long	1133291951
+        .long	1053363200
+        .long	840060372
+        .long	1133185584
+        .long	1053924864
+        .long	915603033
+        .long	1133079217
+        .long	1054493184
+        .long	921334924
+        .long	1132978759
+        .long	1055036416
+        .long	896601826
+        .long	1132872392
+        .long	1055618048
+        .long	908913293
+        .long	1132777843
+        .long	1056141312
+        .long	3065728751
+        .long	1132677386
+        .long	1056702976
+        .long	909020429
+        .long	1132582837
+        .long	1057101312
+        .long	3048020321
+        .long	1132494198
+        .long	1057354752
+        .long	3038815896
+        .long	1132337219
+        .long	1057628160
+        .long	3068137421
+        .long	1132159940
+        .long	1057887232
+        .long	3069993595
+        .long	1131994480
+        .long	1058131456
+        .long	3054354312
+        .long	1131817202
+        .long	1058395904
+        .long	910223436
+        .long	1131651742
+        .long	1058645504
+        .long	3046952660
+        .long	1131486282
+        .long	1058897664
+        .long	3057670844
+        .long	1131332641
+        .long	1059133952
+        .long	924929721
+        .long	1131178999
+        .long	1059373056
+        .long	3068093797
+        .long	1131025358
+        .long	1059614208
+        .long	3058851683
+        .long	1130871717
+        .long	1059857920
+        .long	3069897752
+        .long	1130729894
+        .long	1060084736
+        .long	924446297
+        .long	1130576253
+        .long	1060333312
+        .long	903058075
+        .long	1130434430
+        .long	1060564992
+        .long	3052757441
+        .long	1130304426
+        .long	1060779264
+        .long	3045479197
+        .long	1130162603
+        .long	1061015040
+        .long	924699798
+        .long	1130032599
+        .long	1061233664
+        .long	3070937808
+        .long	1129890776
+        .long	1061473792
+        .long	925912756
+        .long	1129772591
+        .long	1061676032
+        .long	923952205
+        .long	1129642586
+        .long	1061900544
+        .long	906547304
+        .long	1129512582
+        .long	1062127104
+        .long	3050351427
+        .long	1129394397
+        .long	1062334976
+        .long	3070601694
+        .long	1129276211
+        .long	1062544384
+        .long	900519722
+        .long	1129158025
+        .long	1062755840
+        .long	3055774932
+        .long	1129039840
+        .long	1062969088
+        .long	3053661845
+        .long	1128921654
+        .long	1063184384
+        .long	3073448373
+        .long	1128815287
+        .long	1063379456
+        .long	907090876
+        .long	1128697101
+        .long	1063598336
+        .long	881051555
+        .long	1128590734
+        .long	1063796992
+        .long	898320955
+        .long	1128484367
+        .long	1063997440
+        .long	3068804107
+        .long	1128378000
+        .long	1064199168
+        .long	923531617
+        .long	1128283452
+        .long	1064380416
+        .long	3070994608
+        .long	1128177085
+        .long	1064585472
+        .long	901920533
+        .long	1128082536
+        .long	1064769536
+        .long	3071653428
+        .long	1127976169
+        .long	1064977920
+        .long	903017594
+        .long	1127881621
+        .long	1065164800
+        .long	911713416
+        .long	1127787072
+        .long	1065353216
+        .long	0
+        .long	1065353216
+        .long	0
+        .long	1207959616
+        .long	1174405120
+        .long	1002438656
+        .long	1291845632
+        .long	0
+        .long	1065353216
+        .long	1136175680
+        .long	3212771328
+        .long	3065082383
+        .long	841219731
+        .long	2913632803
+        .long	691870088
+        .long	2765780188
+        .long	545377693
+        .long	2619180638
+        .type	__slog2_la_CoutTab,@object
+        .size	__slog2_la_CoutTab,848
+        .align 4
+
+.FLT_81:
+        .long	0x4d000000
+        .type	.FLT_81,@object
+        .size	.FLT_81,4
+        .align 4
+
+.FLT_82:
+        .long	0x3bc00000
+        .type	.FLT_82,@object
+        .size	.FLT_82,4
+        .align 4
+
+.FLT_83:
+        .long	0x48000040
+        .type	.FLT_83,@object
+        .size	.FLT_83,4
+        .align 4
+
+.FLT_84:
+        .long	0x46000000
+        .type	.FLT_84,@object
+        .size	.FLT_84,4
+        .align 4
+
+.FLT_85:
+        .long	0x43b8aa40
+        .type	.FLT_85,@object
+        .size	.FLT_85,4
+        .align 4
+
+.FLT_86:
+        .long	0xbf7f0000
+        .type	.FLT_86,@object
+        .size	.FLT_86,4
+        .align 4
+
+.FLT_87:
+        .long	0xb6b1720f
+        .type	.FLT_87,@object
+        .size	.FLT_87,4
+        .align 4
+
+.FLT_88:
+        .long	0x3223fe93
+        .type	.FLT_88,@object
+        .size	.FLT_88,4
+        .align 4
+
+.FLT_89:
+        .long	0xadaa8223
+        .type	.FLT_89,@object
+        .size	.FLT_89,4
+        .align 4
+
+.FLT_90:
+        .long	0x293d1988
+        .type	.FLT_90,@object
+        .size	.FLT_90,4
+        .align 4
+
+.FLT_91:
+        .long	0xa4da74dc
+        .type	.FLT_91,@object
+        .size	.FLT_91,4
+        .align 4
+
+.FLT_92:
+        .long	0x2081cd9d
+        .type	.FLT_92,@object
+        .size	.FLT_92,4
+        .align 4
+
+.FLT_93:
+        .long	0x9c1d865e
+        .type	.FLT_93,@object
+        .size	.FLT_93,4
+        .align 4
+
+.FLT_94:
+        .long	0xbf800000
+        .type	.FLT_94,@object
+        .size	.FLT_94,4
+        .align 4
+
+.FLT_95:
+        .long	0x3f800000
+        .type	.FLT_95,@object
+        .size	.FLT_95,4
diff --git a/sysdeps/x86_64/fpu/svml_d_log22_core.S b/sysdeps/x86_64/fpu/svml_d_log22_core.S
new file mode 100644
index 0000000000..f181a62c7d
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_log22_core.S
@@ -0,0 +1,29 @@ 
+/* Function log2 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_log2)
+WRAPPER_IMPL_SSE2 log2
+END (_ZGVbN2v_log2)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN2v_log2)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_d_log24_core.S b/sysdeps/x86_64/fpu/svml_d_log24_core.S
new file mode 100644
index 0000000000..b0a5aa9532
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_log24_core.S
@@ -0,0 +1,29 @@ 
+/* Function log2 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_log2)
+WRAPPER_IMPL_AVX _ZGVbN2v_log2
+END (_ZGVdN4v_log2)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN4v_log2)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_d_log24_core_avx.S b/sysdeps/x86_64/fpu/svml_d_log24_core_avx.S
new file mode 100644
index 0000000000..9a56cfed61
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_log24_core_avx.S
@@ -0,0 +1,25 @@ 
+/* Function log2 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_log2)
+WRAPPER_IMPL_AVX _ZGVbN2v_log2
+END (_ZGVcN4v_log2)
diff --git a/sysdeps/x86_64/fpu/svml_d_log28_core.S b/sysdeps/x86_64/fpu/svml_d_log28_core.S
new file mode 100644
index 0000000000..443cbfd578
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_d_log28_core.S
@@ -0,0 +1,25 @@ 
+/* Function log2 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_log2)
+WRAPPER_IMPL_AVX512 _ZGVdN4v_log2
+END (_ZGVeN8v_log2)
diff --git a/sysdeps/x86_64/fpu/svml_s_log2f16_core.S b/sysdeps/x86_64/fpu/svml_s_log2f16_core.S
new file mode 100644
index 0000000000..6cf265fd33
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_log2f16_core.S
@@ -0,0 +1,25 @@ 
+/* Function log2f 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_log2f)
+WRAPPER_IMPL_AVX512 _ZGVdN8v_log2f
+END (_ZGVeN16v_log2f)
diff --git a/sysdeps/x86_64/fpu/svml_s_log2f4_core.S b/sysdeps/x86_64/fpu/svml_s_log2f4_core.S
new file mode 100644
index 0000000000..024ba9b8c5
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_log2f4_core.S
@@ -0,0 +1,29 @@ 
+/* Function log2f 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_log2f)
+WRAPPER_IMPL_SSE2 log2f
+END (_ZGVbN4v_log2f)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN4v_log2f)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_s_log2f8_core.S b/sysdeps/x86_64/fpu/svml_s_log2f8_core.S
new file mode 100644
index 0000000000..5705590563
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_log2f8_core.S
@@ -0,0 +1,29 @@ 
+/* Function log2f 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_log2f)
+WRAPPER_IMPL_AVX _ZGVbN4v_log2f
+END (_ZGVdN8v_log2f)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN8v_log2f)
+#endif
diff --git a/sysdeps/x86_64/fpu/svml_s_log2f8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_log2f8_core_avx.S
new file mode 100644
index 0000000000..38602c475e
--- /dev/null
+++ b/sysdeps/x86_64/fpu/svml_s_log2f8_core_avx.S
@@ -0,0 +1,25 @@ 
+/* Function log2f 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_log2f)
+WRAPPER_IMPL_AVX _ZGVbN4v_log2f
+END (_ZGVcN8v_log2f)
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log2-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-log2-avx.c
new file mode 100644
index 0000000000..95d8e4bbd8
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-log2-avx.c
@@ -0,0 +1 @@ 
+#include "test-double-libmvec-log2.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log2-avx2.c b/sysdeps/x86_64/fpu/test-double-libmvec-log2-avx2.c
new file mode 100644
index 0000000000..95d8e4bbd8
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-log2-avx2.c
@@ -0,0 +1 @@ 
+#include "test-double-libmvec-log2.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log2-avx512f.c b/sysdeps/x86_64/fpu/test-double-libmvec-log2-avx512f.c
new file mode 100644
index 0000000000..95d8e4bbd8
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-log2-avx512f.c
@@ -0,0 +1 @@ 
+#include "test-double-libmvec-log2.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log2.c b/sysdeps/x86_64/fpu/test-double-libmvec-log2.c
new file mode 100644
index 0000000000..326b6f1171
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-log2.c
@@ -0,0 +1,3 @@ 
+#define LIBMVEC_TYPE double
+#define LIBMVEC_FUNC log2
+#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 4a62f72a9d..4ad2fc8868 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
@@ -44,6 +44,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (expm1), _ZGVbN2v_expm1)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVbN2vv_hypot)
 VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVbN2v_log10)
 VECTOR_WRAPPER (WRAPPER_NAME (log1p), _ZGVbN2v_log1p)
+VECTOR_WRAPPER (WRAPPER_NAME (log2), _ZGVbN2v_log2)
 
 #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 4390d83410..f48641aa6a 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
@@ -47,6 +47,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (expm1), _ZGVdN4v_expm1)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVdN4vv_hypot)
 VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVdN4v_log10)
 VECTOR_WRAPPER (WRAPPER_NAME (log1p), _ZGVdN4v_log1p)
+VECTOR_WRAPPER (WRAPPER_NAME (log2), _ZGVdN4v_log2)
 
 #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 838825f3bd..91ca44a4b0 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
@@ -44,6 +44,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (expm1), _ZGVcN4v_expm1)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVcN4vv_hypot)
 VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVcN4v_log10)
 VECTOR_WRAPPER (WRAPPER_NAME (log1p), _ZGVcN4v_log1p)
+VECTOR_WRAPPER (WRAPPER_NAME (log2), _ZGVcN4v_log2)
 
 #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 2898b231de..fa9b82c02d 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
@@ -44,6 +44,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (expm1), _ZGVeN8v_expm1)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypot), _ZGVeN8vv_hypot)
 VECTOR_WRAPPER (WRAPPER_NAME (log10), _ZGVeN8v_log10)
 VECTOR_WRAPPER (WRAPPER_NAME (log1p), _ZGVeN8v_log1p)
+VECTOR_WRAPPER (WRAPPER_NAME (log2), _ZGVeN8v_log2)
 
 #ifndef __ILP32__
 # define VEC_INT_TYPE __m512i
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx.c b/sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx.c
new file mode 100644
index 0000000000..c88b3fc5a9
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx.c
@@ -0,0 +1 @@ 
+#include "test-float-libmvec-log2f.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx2.c b/sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx2.c
new file mode 100644
index 0000000000..c88b3fc5a9
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx2.c
@@ -0,0 +1 @@ 
+#include "test-float-libmvec-log2f.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx512f.c b/sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx512f.c
new file mode 100644
index 0000000000..c88b3fc5a9
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-log2f-avx512f.c
@@ -0,0 +1 @@ 
+#include "test-float-libmvec-log2f.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-log2f.c b/sysdeps/x86_64/fpu/test-float-libmvec-log2f.c
new file mode 100644
index 0000000000..afba03d1e2
--- /dev/null
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-log2f.c
@@ -0,0 +1,3 @@ 
+#define LIBMVEC_TYPE float
+#define LIBMVEC_FUNC log2f
+#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 132daa04f7..26efef1490 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
@@ -44,6 +44,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (expm1f), _ZGVeN16v_expm1f)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVeN16vv_hypotf)
 VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVeN16v_log10f)
 VECTOR_WRAPPER (WRAPPER_NAME (log1pf), _ZGVeN16v_log1pf)
+VECTOR_WRAPPER (WRAPPER_NAME (log2f), _ZGVeN16v_log2f)
 
 #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 0c2d93eaa2..9c484d4a15 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
@@ -44,6 +44,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (expm1f), _ZGVbN4v_expm1f)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVbN4vv_hypotf)
 VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVbN4v_log10f)
 VECTOR_WRAPPER (WRAPPER_NAME (log1pf), _ZGVbN4v_log1pf)
+VECTOR_WRAPPER (WRAPPER_NAME (log2f), _ZGVbN4v_log2f)
 
 #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 afc0e4d078..220f66567b 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
@@ -47,6 +47,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (expm1f), _ZGVdN8v_expm1f)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVdN8vv_hypotf)
 VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVdN8v_log10f)
 VECTOR_WRAPPER (WRAPPER_NAME (log1pf), _ZGVdN8v_log1pf)
+VECTOR_WRAPPER (WRAPPER_NAME (log2f), _ZGVdN8v_log2f)
 
 /* 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 0001f9a839..dbc69fb9d4 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
@@ -44,6 +44,7 @@  VECTOR_WRAPPER (WRAPPER_NAME (expm1f), _ZGVcN8v_expm1f)
 VECTOR_WRAPPER_ff (WRAPPER_NAME (hypotf), _ZGVcN8vv_hypotf)
 VECTOR_WRAPPER (WRAPPER_NAME (log10f), _ZGVcN8v_log10f)
 VECTOR_WRAPPER (WRAPPER_NAME (log1pf), _ZGVcN8v_log1pf)
+VECTOR_WRAPPER (WRAPPER_NAME (log2f), _ZGVcN8v_log2f)
 
 #define VEC_INT_TYPE __m128i