@@ -109,4 +109,15 @@
#define __DECL_SIMD_acosf32x
#define __DECL_SIMD_acosf64x
#define __DECL_SIMD_acosf128x
+
+#define __DECL_SIMD_acosh
+#define __DECL_SIMD_acoshf
+#define __DECL_SIMD_acoshl
+#define __DECL_SIMD_acoshf16
+#define __DECL_SIMD_acoshf32
+#define __DECL_SIMD_acoshf64
+#define __DECL_SIMD_acoshf128
+#define __DECL_SIMD_acoshf32x
+#define __DECL_SIMD_acoshf64x
+#define __DECL_SIMD_acoshf128x
#endif
@@ -82,7 +82,7 @@ __MATHDECL_VEC (void,sincos,,
#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
/* Hyperbolic arc cosine of X. */
-__MATHCALL (acosh,, (_Mdouble_ __x));
+__MATHCALL_VEC (acosh,, (_Mdouble_ __x));
/* Hyperbolic arc sine of X. */
__MATHCALL (asinh,, (_Mdouble_ __x));
/* Hyperbolic arc tangent of X. */
@@ -47,10 +47,18 @@ GLIBC_2.22 _ZGVeN8v_sin F
GLIBC_2.22 _ZGVeN8vv_pow F
GLIBC_2.22 _ZGVeN8vvv_sincos F
GLIBC_2.35 _ZGVbN2v_acos F
+GLIBC_2.35 _ZGVbN2v_acosh F
GLIBC_2.35 _ZGVbN4v_acosf F
+GLIBC_2.35 _ZGVbN4v_acoshf F
GLIBC_2.35 _ZGVcN4v_acos F
+GLIBC_2.35 _ZGVcN4v_acosh F
GLIBC_2.35 _ZGVcN8v_acosf F
+GLIBC_2.35 _ZGVcN8v_acoshf F
GLIBC_2.35 _ZGVdN4v_acos F
+GLIBC_2.35 _ZGVdN4v_acosh F
GLIBC_2.35 _ZGVdN8v_acosf F
+GLIBC_2.35 _ZGVdN8v_acoshf F
GLIBC_2.35 _ZGVeN16v_acosf F
+GLIBC_2.35 _ZGVeN16v_acoshf F
GLIBC_2.35 _ZGVeN8v_acos F
+GLIBC_2.35 _ZGVeN8v_acosh F
@@ -62,6 +62,10 @@
# define __DECL_SIMD_acos __DECL_SIMD_x86_64
# undef __DECL_SIMD_acosf
# define __DECL_SIMD_acosf __DECL_SIMD_x86_64
+# undef __DECL_SIMD_acosh
+# define __DECL_SIMD_acosh __DECL_SIMD_x86_64
+# undef __DECL_SIMD_acoshf
+# define __DECL_SIMD_acoshf __DECL_SIMD_x86_64
# endif
#endif
@@ -30,6 +30,8 @@
!GCC$ builtin (powf) attributes simd (notinbranch) if('x86_64')
!GCC$ builtin (acos) attributes simd (notinbranch) if('x86_64')
!GCC$ builtin (acosf) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (acosh) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (acoshf) attributes simd (notinbranch) if('x86_64')
!GCC$ builtin (cos) attributes simd (notinbranch) if('x32')
!GCC$ builtin (cosf) attributes simd (notinbranch) if('x32')
@@ -45,3 +47,5 @@
!GCC$ builtin (powf) attributes simd (notinbranch) if('x32')
!GCC$ builtin (acos) attributes simd (notinbranch) if('x32')
!GCC$ builtin (acosf) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (acosh) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (acoshf) attributes simd (notinbranch) if('x32')
@@ -23,6 +23,7 @@ postclean-generated += libmvec.mk
# Define for both math and mathvec directories.
libmvec-funcs = \
acos \
+ acosh \
cos \
exp \
log \
@@ -15,6 +15,8 @@ libmvec {
},
GLIBC_2.35 {
_ZGVbN2v_acos; _ZGVcN4v_acos; _ZGVdN4v_acos; _ZGVeN8v_acos;
+ _ZGVbN2v_acosh; _ZGVcN4v_acosh; _ZGVdN4v_acosh; _ZGVeN8v_acosh;
_ZGVbN4v_acosf; _ZGVcN8v_acosf; _ZGVdN8v_acosf; _ZGVeN16v_acosf;
+ _ZGVbN4v_acoshf; _ZGVcN8v_acoshf; _ZGVdN8v_acoshf; _ZGVeN16v_acoshf;
}
}
@@ -69,6 +69,26 @@ float: 2
float128: 3
ldouble: 3
+Function: "acosh_vlen16":
+float: 1
+
+Function: "acosh_vlen2":
+double: 2
+
+Function: "acosh_vlen4":
+double: 2
+float: 1
+
+Function: "acosh_vlen4_avx2":
+double: 2
+
+Function: "acosh_vlen8":
+double: 1
+float: 1
+
+Function: "acosh_vlen8_avx2":
+float: 2
+
Function: "asin":
double: 1
float: 1
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE2 version of vectorized acosh, 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_acosh _ZGVbN2v_acosh_sse2
+#include "../svml_d_acosh2_core.S"
new file mode 100644
@@ -0,0 +1,27 @@
+/* Multiple versions of vectorized acosh, 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_acosh
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN2v_acosh, __GI__ZGVbN2v_acosh, __redirect__ZGVbN2v_acosh)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,5409 @@
+/* Function acosh vectorized with SSE4.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute acosh(x) as log(x + sqrt(x*x - 1))
+ *
+ * Special cases:
+ *
+ * acosh(NaN) = quiet NaN, and raise invalid exception
+ * acosh(-INF) = NaN
+ * acosh(+INF) = +INF
+ * acosh(x) = NaN if x < 1
+ * acosh(1) = +0
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.sse4,"ax",@progbits
+ENTRY(_ZGVbN2v_acosh_sse4)
+ pushq %rbp
+ cfi_def_cfa_offset(16)
+ movq %rsp, %rbp
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ andq $-64, %rsp
+ subq $256, %rsp
+ movaps %xmm0, %xmm7
+ movups %xmm10, 160(%rsp)
+
+/* Compute U = X - 1 and V = X + 1, naively first. */
+ movaps %xmm7, %xmm2
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+
+/* Load the constant 1 and possibly other stuff */
+ movups 12800+__svml_dacosh_data_internal(%rip), %xmm10
+
+/*
+ * Check that 1 < X < +inf; otherwise go to the callout function.
+ * We need the callout for X = 1 to avoid division by zero below.
+ * This test ensures that callout handles NaN and either infinity.
+ */
+ movaps %xmm7, %xmm1
+ movaps %xmm10, %xmm4
+ movaps %xmm10, %xmm5
+ subpd %xmm10, %xmm2
+ addpd %xmm7, %xmm4
+ cmpnlepd 13952+__svml_dacosh_data_internal(%rip), %xmm1
+ cmpnltpd %xmm7, %xmm5
+
+/* For low-accuracy versions, naivety is harmless */
+ mulpd %xmm2, %xmm4
+
+/* dH = [X + sqrt(X^2 - 1)] - 1 */
+ sqrtpd %xmm4, %xmm3
+ addpd %xmm2, %xmm3
+ movups %xmm12, 144(%rsp)
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22
+
+/*
+ * Now we feed into the log1p code, using H in place of _VARG1 and
+ * also adding L into Xl.
+ * compute 1+x as high, low parts
+ */
+ movaps %xmm10, %xmm12
+ maxpd %xmm3, %xmm12
+ orps %xmm5, %xmm1
+ movaps %xmm10, %xmm5
+ minpd %xmm3, %xmm5
+ movmskpd %xmm1, %edx
+
+/* Now multiplex to the case X = 2^-30 * input, Xl = dL = 0 in the "big" case. */
+ movups 14464+__svml_dacosh_data_internal(%rip), %xmm0
+
+/*
+ * The following computation can go wrong for very large X, e.g.
+ * the X^2 - 1 = U * V can overflow. But for large X we have
+ * acosh(X) / log(2 X) - 1 =~= 1/(4 * X^2), so for X >= 2^30
+ * we can just later stick X back into the log and tweak up the exponent.
+ * Actually we scale X by 2^-30 and tweak the exponent up by 31,
+ * to stay in the safe range for the later log computation.
+ * Compute a flag now telling us when to do this.
+ */
+ movaps %xmm7, %xmm6
+ andps 12864+__svml_dacosh_data_internal(%rip), %xmm3
+ movaps %xmm12, %xmm1
+ mulpd %xmm7, %xmm0
+ cmpltpd 12928+__svml_dacosh_data_internal(%rip), %xmm3
+ cmpltpd 13568+__svml_dacosh_data_internal(%rip), %xmm6
+ addpd %xmm5, %xmm1
+ orps 12992+__svml_dacosh_data_internal(%rip), %xmm3
+ movaps %xmm6, %xmm4
+ andps %xmm3, %xmm1
+ andnps %xmm0, %xmm4
+ subpd %xmm1, %xmm12
+ andps %xmm6, %xmm1
+ lea -4218816+__svml_dacosh_data_internal(%rip), %r8
+
+/*
+ * Now resume the main code.
+ * preserve mantissa, set input exponent to 2^(-10)
+ */
+ movups 12480+__svml_dacosh_data_internal(%rip), %xmm2
+ orps %xmm1, %xmm4
+ andps %xmm4, %xmm2
+
+/* exponent bits */
+ movaps %xmm4, %xmm1
+ orps 12544+__svml_dacosh_data_internal(%rip), %xmm2
+ psrlq $20, %xmm1
+
+/* reciprocal approximation good to at least 11 bits */
+ cvtpd2ps %xmm2, %xmm3
+ addpd %xmm12, %xmm5
+ movlhps %xmm3, %xmm3
+ andps %xmm6, %xmm5
+ rcpps %xmm3, %xmm0
+ cvtps2pd %xmm0, %xmm3
+
+/* round reciprocal to nearest integer, will have 1+9 mantissa bits */
+ movups .FLT_24(%rip), %xmm0
+ addpd %xmm0, %xmm3
+ subpd %xmm0, %xmm3
+
+/* exponent of X needed to scale Xl */
+ movdqu 13376+__svml_dacosh_data_internal(%rip), %xmm12
+ movaps %xmm6, %xmm0
+
+/* 2^ (-10-exp(X) ) */
+ movdqu 13440+__svml_dacosh_data_internal(%rip), %xmm2
+ pand %xmm4, %xmm12
+ psubq %xmm12, %xmm2
+
+/* scale DblRcp */
+ mulpd %xmm3, %xmm2
+
+/* argument reduction */
+ mulpd %xmm2, %xmm4
+ mulpd %xmm2, %xmm5
+ subpd %xmm10, %xmm4
+ pshufd $221, %xmm1, %xmm12
+
+/* biased exponent in DP format */
+ cvtdq2pd %xmm12, %xmm12
+
+/* Add 31 to the exponent in the "large" case to get log(2 * input) */
+ movups 14144+__svml_dacosh_data_internal(%rip), %xmm1
+ addpd %xmm12, %xmm1
+ andps %xmm6, %xmm12
+
+/*
+ * prepare table index
+ * table lookup
+ */
+ movaps %xmm3, %xmm6
+ psrlq $40, %xmm6
+ andnps %xmm1, %xmm0
+ movd %xmm6, %eax
+ orps %xmm12, %xmm0
+ pshufd $2, %xmm6, %xmm6
+
+/* exponent*log(2.0) */
+ movups 13184+__svml_dacosh_data_internal(%rip), %xmm12
+ movd %xmm6, %ecx
+ movaps %xmm4, %xmm6
+ addpd %xmm5, %xmm6
+ cmpltpd %xmm3, %xmm12
+ movaps %xmm6, %xmm2
+ movaps %xmm6, %xmm10
+ subpd %xmm4, %xmm2
+ mulpd %xmm6, %xmm10
+ subpd %xmm2, %xmm5
+
+/* polynomial */
+ movups 12416+__svml_dacosh_data_internal(%rip), %xmm4
+ mulpd %xmm6, %xmm4
+ movups 12448+__svml_dacosh_data_internal(%rip), %xmm3
+ addpd 12432+__svml_dacosh_data_internal(%rip), %xmm4
+ mulpd %xmm6, %xmm3
+ mulpd %xmm10, %xmm4
+ addpd 12464+__svml_dacosh_data_internal(%rip), %xmm3
+ addpd %xmm4, %xmm3
+
+/*
+ * reconstruction
+ * VQFMA( D, R, P, R2, R );
+ */
+ mulpd %xmm3, %xmm10
+ addpd %xmm10, %xmm5
+ andps 13248+__svml_dacosh_data_internal(%rip), %xmm12
+ orps 13312+__svml_dacosh_data_internal(%rip), %xmm12
+ subpd %xmm12, %xmm0
+ addpd %xmm5, %xmm6
+ mulpd 13504+__svml_dacosh_data_internal(%rip), %xmm0
+ movslq %eax, %rax
+ movslq %ecx, %rcx
+ movsd (%r8,%rax), %xmm1
+ movhpd (%r8,%rcx), %xmm1
+ addpd %xmm6, %xmm1
+ addpd %xmm1, %xmm0
+ testl %edx, %edx
+ jne L(2)
+
+L(1):
+ movups 160(%rsp), %xmm10
+ cfi_restore(27)
+ movups 144(%rsp), %xmm12
+ cfi_restore(29)
+ 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, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22
+
+L(2):
+ movups %xmm7, 128(%rsp)
+ movups %xmm0, 192(%rsp)
+ xorl %eax, %eax
+ movups %xmm8, 80(%rsp)
+ movups %xmm9, 64(%rsp)
+ movups %xmm11, 48(%rsp)
+ movups %xmm13, 32(%rsp)
+ movups %xmm14, 16(%rsp)
+ movups %xmm15, (%rsp)
+ movq %rsi, 104(%rsp)
+ movq %rdi, 96(%rsp)
+ movq %r12, 120(%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
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 112(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+L(3):
+ btl %r12d, %r13d
+ jc L(5)
+
+L(4):
+ incl %r12d
+ cmpl $2, %r12d
+ jl L(3)
+ movups 80(%rsp), %xmm8
+ cfi_restore(25)
+ movups 64(%rsp), %xmm9
+ cfi_restore(26)
+ movups 48(%rsp), %xmm11
+ cfi_restore(28)
+ movups 32(%rsp), %xmm13
+ cfi_restore(30)
+ movups 16(%rsp), %xmm14
+ cfi_restore(31)
+ movups (%rsp), %xmm15
+ cfi_restore(32)
+ movq 104(%rsp), %rsi
+ cfi_restore(4)
+ movq 96(%rsp), %rdi
+ cfi_restore(5)
+ movq 120(%rsp), %r12
+ cfi_restore(12)
+ movq 112(%rsp), %r13
+ cfi_restore(13)
+ movups 192(%rsp), %xmm0
+ jmp L(1)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+
+L(5):
+ lea 128(%rsp,%r12,8), %rdi
+ lea 192(%rsp,%r12,8), %rsi
+ call __svml_dacosh_cout_rare_internal
+ jmp L(4)
+
+END(_ZGVbN2v_acosh_sse4)
+
+ .align 16,0x90
+
+__svml_dacosh_cout_rare_internal:
+
+ cfi_startproc
+
+ movzwl 6(%rdi), %eax
+ andl $32752, %eax
+ movsd (%rdi), %xmm0
+ cmpl $32752, %eax
+ je L(9)
+
+L(6):
+ movsd %xmm0, -8(%rsp)
+ cmpl $0, -8(%rsp)
+ jne L(8)
+ cmpl $1072693248, -4(%rsp)
+ je L(7)
+ cmpl $2146435072, -4(%rsp)
+ jne L(8)
+ movsd %xmm0, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(7):
+ movq 8+__dacosh_la_CoutTab(%rip), %rax
+ movq %rax, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(8):
+ movsd 16+__dacosh_la_CoutTab(%rip), %xmm0
+ movl $1, %eax
+ mulsd 8+__dacosh_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, (%rsi)
+ ret
+
+L(9):
+ testl $1048575, 4(%rdi)
+ jne L(10)
+ cmpl $0, (%rdi)
+ je L(6)
+
+L(10):
+ mulsd %xmm0, %xmm0
+ xorl %eax, %eax
+ movsd %xmm0, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_dacosh_cout_rare_internal,@function
+ .size __svml_dacosh_cout_rare_internal,.-__svml_dacosh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_dacosh_data_internal:
+ .long 3715793664
+ .long 3230016299
+ .long 4013928704
+ .long 3189565726
+ .long 3699038248
+ .long 3230016303
+ .long 4255595370
+ .long 3189567439
+ .long 3648859040
+ .long 3230016307
+ .long 1732833791
+ .long 3189567296
+ .long 3565385952
+ .long 3230016311
+ .long 2485752410
+ .long 3189567274
+ .long 3448748152
+ .long 3230016315
+ .long 3514744523
+ .long 3189567800
+ .long 3299074072
+ .long 3230016319
+ .long 3686511262
+ .long 3189567474
+ .long 3116491376
+ .long 3230016323
+ .long 716063611
+ .long 3189567908
+ .long 2901127016
+ .long 3230016327
+ .long 354437295
+ .long 3189567291
+ .long 2653107184
+ .long 3230016331
+ .long 3777462366
+ .long 3189567264
+ .long 2372557360
+ .long 3230016335
+ .long 3590663412
+ .long 3189567498
+ .long 2059602304
+ .long 3230016339
+ .long 1680795031
+ .long 3189567428
+ .long 1714366048
+ .long 3230016343
+ .long 2010344982
+ .long 3189567986
+ .long 1336971936
+ .long 3230016347
+ .long 166254822
+ .long 3189567184
+ .long 927542568
+ .long 3230016351
+ .long 59552610
+ .long 3189567972
+ .long 486199888
+ .long 3230016355
+ .long 2268824919
+ .long 3189567664
+ .long 13065112
+ .long 3230016359
+ .long 3005381643
+ .long 3189567835
+ .long 3803226080
+ .long 3230016362
+ .long 4018973165
+ .long 3189567825
+ .long 3266868056
+ .long 3230016366
+ .long 3693925101
+ .long 3189567457
+ .long 2699077504
+ .long 3230016370
+ .long 4005905743
+ .long 3189567697
+ .long 2099972936
+ .long 3230016374
+ .long 3580935118
+ .long 3189567215
+ .long 1469672176
+ .long 3230016378
+ .long 2928784295
+ .long 3189567129
+ .long 808292392
+ .long 3230016382
+ .long 674298833
+ .long 3189567553
+ .long 115950104
+ .long 3230016386
+ .long 2555938320
+ .long 3189567208
+ .long 3687728456
+ .long 3230016389
+ .long 532458218
+ .long 3189567130
+ .long 2933808064
+ .long 3230016393
+ .long 3888913110
+ .long 3189567192
+ .long 2149270784
+ .long 3230016397
+ .long 2365955494
+ .long 3189567756
+ .long 1334230552
+ .long 3230016401
+ .long 3325722981
+ .long 3189567206
+ .long 488800640
+ .long 3230016405
+ .long 1496133617
+ .long 3189567683
+ .long 3908061016
+ .long 3230016408
+ .long 1824836379
+ .long 3189567490
+ .long 3002189112
+ .long 3230016412
+ .long 1222174320
+ .long 3189567837
+ .long 2066263648
+ .long 3230016416
+ .long 2472769660
+ .long 3189567285
+ .long 1100395408
+ .long 3230016420
+ .long 447932460
+ .long 3189567455
+ .long 104694584
+ .long 3230016424
+ .long 1006807684
+ .long 3189567460
+ .long 3374238048
+ .long 3230016427
+ .long 4121834935
+ .long 3189567556
+ .long 2319200184
+ .long 3230016431
+ .long 3019906587
+ .long 3189567664
+ .long 1234656664
+ .long 3230016435
+ .long 3882744783
+ .long 3189567930
+ .long 120715280
+ .long 3230016439
+ .long 1927363170
+ .long 3189567242
+ .long 3272450504
+ .long 3230016442
+ .long 8203115
+ .long 3189567876
+ .long 2100034368
+ .long 3230016446
+ .long 1260625560
+ .long 3189567855
+ .long 898540192
+ .long 3230016450
+ .long 1791679111
+ .long 3189567639
+ .long 3963040720
+ .long 3230016453
+ .long 831133439
+ .long 3189567590
+ .long 2703706240
+ .long 3230016457
+ .long 2803140504
+ .long 3189567482
+ .long 1415608352
+ .long 3230016461
+ .long 2955844462
+ .long 3189568058
+ .long 98850816
+ .long 3230016465
+ .long 4017967070
+ .long 3189567455
+ .long 3048504096
+ .long 3230016468
+ .long 3974385451
+ .long 3189567871
+ .long 1674736240
+ .long 3230016472
+ .long 2424114556
+ .long 3189567887
+ .long 272616624
+ .long 3230016476
+ .long 4261883032
+ .long 3189567073
+ .long 3137214056
+ .long 3230016479
+ .long 3716750895
+ .long 3189567522
+ .long 1678694944
+ .long 3230016483
+ .long 498025304
+ .long 3189567180
+ .long 192127016
+ .long 3230016487
+ .long 1011852160
+ .long 3189567511
+ .long 2972577480
+ .long 3230016490
+ .long 558940916
+ .long 3189567850
+ .long 1430211120
+ .long 3230016494
+ .long 2550865739
+ .long 3189567935
+ .long 4155061376
+ .long 3230016497
+ .long 1930847170
+ .long 3189567371
+ .long 2557291968
+ .long 3230016501
+ .long 1716354804
+ .long 3189567130
+ .long 931967984
+ .long 3230016505
+ .long 2729403392
+ .long 3189567981
+ .long 3574154016
+ .long 3230016508
+ .long 1067280599
+ .long 3189567890
+ .long 1894012232
+ .long 3230016512
+ .long 2094260282
+ .long 3189567604
+ .long 186606176
+ .long 3230016516
+ .long 3897933165
+ .long 3189568046
+ .long 2746998904
+ .long 3230016519
+ .long 1935720459
+ .long 3189567701
+ .long 985351064
+ .long 3230016523
+ .long 2170344821
+ .long 3189567164
+ .long 3491691984
+ .long 3230016526
+ .long 4220979537
+ .long 3189567547
+ .long 1676181328
+ .long 3230016530
+ .long 1953924393
+ .long 3189567854
+ .long 4128847448
+ .long 3230016533
+ .long 1689829067
+ .long 3189567468
+ .long 2259849008
+ .long 3230016537
+ .long 2367753130
+ .long 3189567619
+ .long 364246088
+ .long 3230016541
+ .long 2263309073
+ .long 3189567722
+ .long 2737098280
+ .long 3230016544
+ .long 2366756869
+ .long 3189567856
+ .long 788562816
+ .long 3230016548
+ .long 2294653975
+ .long 3189567145
+ .long 3108665616
+ .long 3230016551
+ .long 1786494117
+ .long 3189567254
+ .long 1107562960
+ .long 3230016555
+ .long 3655887416
+ .long 3189567689
+ .long 3375279848
+ .long 3230016558
+ .long 1178948625
+ .long 3189567241
+ .long 1321971608
+ .long 3230016562
+ .long 1620080441
+ .long 3189567466
+ .long 3537662304
+ .long 3230016565
+ .long 154455618
+ .long 3189567981
+ .long 1432506360
+ .long 3230016569
+ .long 3128192125
+ .long 3189567889
+ .long 3596526920
+ .long 3230016572
+ .long 2026842750
+ .long 3189567212
+ .long 1439877480
+ .long 3230016576
+ .long 1384431897
+ .long 3189567284
+ .long 3552580280
+ .long 3230016579
+ .long 1999983129
+ .long 3189568079
+ .long 1344787944
+ .long 3230016583
+ .long 4035436820
+ .long 3189567579
+ .long 3406521808
+ .long 3230016586
+ .long 77799817
+ .long 3189567285
+ .long 1147933592
+ .long 3230016590
+ .long 1261060207
+ .long 3189567477
+ .long 3159043768
+ .long 3230016593
+ .long 2102717775
+ .long 3189567605
+ .long 850003184
+ .long 3230016597
+ .long 161472469
+ .long 3189567688
+ .long 2810831440
+ .long 3230016600
+ .long 1937336881
+ .long 3189567665
+ .long 451678520
+ .long 3230016604
+ .long 2268353549
+ .long 3189567773
+ .long 2362563168
+ .long 3230016607
+ .long 1785871595
+ .long 3189567889
+ .long 4248601816
+ .long 3230016610
+ .long 2434669991
+ .long 3189567898
+ .long 1814910472
+ .long 3230016614
+ .long 2666999375
+ .long 3189568058
+ .long 3651506624
+ .long 3230016617
+ .long 1033139811
+ .long 3189567312
+ .long 1168538136
+ .long 3230016621
+ .long 4004618418
+ .long 3189567740
+ .long 2956021672
+ .long 3230016624
+ .long 3799928764
+ .long 3189567751
+ .long 424104288
+ .long 3230016628
+ .long 3650233137
+ .long 3189567549
+ .long 2162801816
+ .long 3230016631
+ .long 437313833
+ .long 3189567438
+ .long 3877227800
+ .long 3230016634
+ .long 2138293494
+ .long 3189567140
+ .long 1272495376
+ .long 3230016638
+ .long 2891370752
+ .long 3189567168
+ .long 2938619176
+ .long 3230016641
+ .long 1704142730
+ .long 3189567114
+ .long 285744240
+ .long 3230016645
+ .long 500817607
+ .long 3189568035
+ .long 1903884424
+ .long 3230016648
+ .long 3102571944
+ .long 3189567668
+ .long 3498151272
+ .long 3230016651
+ .long 2374193154
+ .long 3189567933
+ .long 773655960
+ .long 3230016655
+ .long 2898331636
+ .long 3189568089
+ .long 2320411168
+ .long 3230016658
+ .long 1983295500
+ .long 3189567113
+ .long 3843527280
+ .long 3230016661
+ .long 2132853542
+ .long 3189567093
+ .long 1048114320
+ .long 3230016665
+ .long 3551155364
+ .long 3189567407
+ .long 2524183824
+ .long 3230016668
+ .long 2564000663
+ .long 3189567090
+ .long 3976845048
+ .long 3230016671
+ .long 361581803
+ .long 3189567196
+ .long 1111206880
+ .long 3230016675
+ .long 696765230
+ .long 3189568040
+ .long 2517279744
+ .long 3230016678
+ .long 941542475
+ .long 3189567463
+ .long 3900171776
+ .long 3230016681
+ .long 2377895552
+ .long 3189567282
+ .long 964990760
+ .long 3230016685
+ .long 1173605489
+ .long 3189567454
+ .long 2301746008
+ .long 3230016688
+ .long 3096720313
+ .long 3189567400
+ .long 3615544576
+ .long 3230016691
+ .long 1942008121
+ .long 3189567335
+ .long 611493160
+ .long 3230016695
+ .long 3375481119
+ .long 3189567537
+ .long 1879599992
+ .long 3230016698
+ .long 4103239143
+ .long 3189567624
+ .long 3124971056
+ .long 3230016701
+ .long 3773474925
+ .long 3189567869
+ .long 52711992
+ .long 3230016705
+ .long 2465315445
+ .long 3189567444
+ .long 1252829960
+ .long 3230016708
+ .long 1041581158
+ .long 3189567781
+ .long 2430429904
+ .long 3230016711
+ .long 166620501
+ .long 3189567739
+ .long 3585583704
+ .long 3230016714
+ .long 2379237630
+ .long 3189567984
+ .long 423395616
+ .long 3230016718
+ .long 134834559
+ .long 3189567178
+ .long 1533871416
+ .long 3230016721
+ .long 1449318760
+ .long 3189567373
+ .long 2622114680
+ .long 3230016724
+ .long 3042372984
+ .long 3189567127
+ .long 3688195920
+ .long 3230016727
+ .long 1265290101
+ .long 3189567921
+ .long 437218048
+ .long 3230016731
+ .long 2248549362
+ .long 3189567262
+ .long 1459185496
+ .long 3230016734
+ .long 1293250365
+ .long 3189567151
+ .long 2459200496
+ .long 3230016737
+ .long 313786605
+ .long 3189567180
+ .long 3437332240
+ .long 3230016740
+ .long 3289151823
+ .long 3189567872
+ .long 98682312
+ .long 3230016744
+ .long 2693758821
+ .long 3189567877
+ .long 1033253848
+ .long 3230016747
+ .long 4237443192
+ .long 3189567301
+ .long 1946147760
+ .long 3230016750
+ .long 4099404586
+ .long 3189567972
+ .long 2837431968
+ .long 3230016753
+ .long 343640666
+ .long 3189567552
+ .long 3707174040
+ .long 3230016756
+ .long 4238401458
+ .long 3189567983
+ .long 260473960
+ .long 3230016760
+ .long 21423548
+ .long 3189567559
+ .long 1087333264
+ .long 3230016763
+ .long 3515278593
+ .long 3189567309
+ .long 1892851296
+ .long 3230016766
+ .long 629106375
+ .long 3189567166
+ .long 2677094384
+ .long 3230016769
+ .long 2048670044
+ .long 3189567227
+ .long 3440128544
+ .long 3230016772
+ .long 3739217292
+ .long 3189568009
+ .long 4182019504
+ .long 3230016775
+ .long 3662039444
+ .long 3189567618
+ .long 607865368
+ .long 3230016779
+ .long 1766486991
+ .long 3189567112
+ .long 1307665824
+ .long 3230016782
+ .long 512689457
+ .long 3189567670
+ .long 1986518392
+ .long 3230016785
+ .long 1704577378
+ .long 3189567760
+ .long 2644487576
+ .long 3230016788
+ .long 4001935135
+ .long 3189567473
+ .long 3281637576
+ .long 3230016791
+ .long 1184452342
+ .long 3189567735
+ .long 3898032312
+ .long 3230016794
+ .long 2714793956
+ .long 3189567464
+ .long 198768096
+ .long 3230016798
+ .long 3657654418
+ .long 3189567905
+ .long 773842856
+ .long 3230016801
+ .long 2809688013
+ .long 3189567736
+ .long 1328352328
+ .long 3230016804
+ .long 390727591
+ .long 3189567393
+ .long 1862359256
+ .long 3230016807
+ .long 1135237925
+ .long 3189567248
+ .long 2375926096
+ .long 3230016810
+ .long 1377572509
+ .long 3189567837
+ .long 2869115032
+ .long 3230016813
+ .long 3148383775
+ .long 3189568032
+ .long 3341987960
+ .long 3230016816
+ .long 3809536738
+ .long 3189567313
+ .long 3794606472
+ .long 3230016819
+ .long 4243445934
+ .long 3189568034
+ .long 4227031920
+ .long 3230016822
+ .long 1302642088
+ .long 3189567451
+ .long 344358048
+ .long 3230016826
+ .long 3239125361
+ .long 3189567151
+ .long 736580224
+ .long 3230016829
+ .long 3753161736
+ .long 3189567129
+ .long 1108791648
+ .long 3230016832
+ .long 624357483
+ .long 3189568045
+ .long 1461052568
+ .long 3230016835
+ .long 3153257064
+ .long 3189567338
+ .long 1793422920
+ .long 3230016838
+ .long 2705820149
+ .long 3189567635
+ .long 2105962400
+ .long 3230016841
+ .long 911564860
+ .long 3189567737
+ .long 2398730424
+ .long 3230016844
+ .long 1086958332
+ .long 3189567948
+ .long 2671786152
+ .long 3230016847
+ .long 1598984535
+ .long 3189567210
+ .long 2925188456
+ .long 3230016850
+ .long 4113385879
+ .long 3189567401
+ .long 3158995968
+ .long 3230016853
+ .long 2426812671
+ .long 3189567396
+ .long 3373267048
+ .long 3230016856
+ .long 3480845679
+ .long 3189567359
+ .long 3568059792
+ .long 3230016859
+ .long 3306230729
+ .long 3189567924
+ .long 3743432056
+ .long 3230016862
+ .long 3853821277
+ .long 3189567317
+ .long 3899441408
+ .long 3230016865
+ .long 2049309148
+ .long 3189567699
+ .long 4036145192
+ .long 3230016868
+ .long 2667321817
+ .long 3189567166
+ .long 4153600472
+ .long 3230016871
+ .long 3540670389
+ .long 3189567114
+ .long 4251864072
+ .long 3230016874
+ .long 404207883
+ .long 3189567310
+ .long 36025272
+ .long 3230016878
+ .long 2837617046
+ .long 3189567103
+ .long 96074976
+ .long 3230016881
+ .long 1231280453
+ .long 3189567669
+ .long 137101976
+ .long 3230016884
+ .long 792492437
+ .long 3189567071
+ .long 159162080
+ .long 3230016887
+ .long 2385525292
+ .long 3189567618
+ .long 162310880
+ .long 3230016890
+ .long 3272051015
+ .long 3189567858
+ .long 146603712
+ .long 3230016893
+ .long 623573538
+ .long 3189567881
+ .long 112095672
+ .long 3230016896
+ .long 2151835939
+ .long 3189567451
+ .long 58841608
+ .long 3230016899
+ .long 958006130
+ .long 3189567217
+ .long 4281863424
+ .long 3230016901
+ .long 549948691
+ .long 3189567863
+ .long 4191280920
+ .long 3230016904
+ .long 4177689987
+ .long 3189567217
+ .long 4082115512
+ .long 3230016907
+ .long 2895765193
+ .long 3189567599
+ .long 3954421112
+ .long 3230016910
+ .long 1055606208
+ .long 3189567799
+ .long 3808251392
+ .long 3230016913
+ .long 1966521217
+ .long 3189567351
+ .long 3643659776
+ .long 3230016916
+ .long 1017382758
+ .long 3189567732
+ .long 3460699480
+ .long 3230016919
+ .long 3485890155
+ .long 3189567410
+ .long 3259423472
+ .long 3230016922
+ .long 2657419170
+ .long 3189567140
+ .long 3039884488
+ .long 3230016925
+ .long 4198858220
+ .long 3189568080
+ .long 2802135064
+ .long 3230016928
+ .long 2343740494
+ .long 3189567869
+ .long 2546227480
+ .long 3230016931
+ .long 2423084215
+ .long 3189567957
+ .long 2272213808
+ .long 3230016934
+ .long 3887273856
+ .long 3189567631
+ .long 1980145888
+ .long 3230016937
+ .long 3992755473
+ .long 3189567251
+ .long 1670075336
+ .long 3230016940
+ .long 722498073
+ .long 3189567389
+ .long 1342053552
+ .long 3230016943
+ .long 3573506400
+ .long 3189567965
+ .long 996131728
+ .long 3230016946
+ .long 714695829
+ .long 3189567392
+ .long 632360808
+ .long 3230016949
+ .long 2816704229
+ .long 3189567846
+ .long 250791552
+ .long 3230016952
+ .long 386951333
+ .long 3189567243
+ .long 4146441768
+ .long 3230016954
+ .long 2155319939
+ .long 3189567580
+ .long 3729427184
+ .long 3230016957
+ .long 4227840137
+ .long 3189567931
+ .long 3294765200
+ .long 3230016960
+ .long 1718354212
+ .long 3189567672
+ .long 2842505696
+ .long 3230016963
+ .long 4243880582
+ .long 3189567656
+ .long 2372698352
+ .long 3230016966
+ .long 3784093842
+ .long 3189567302
+ .long 1885392624
+ .long 3230016969
+ .long 2318733051
+ .long 3189567813
+ .long 1380637784
+ .long 3230016972
+ .long 497929746
+ .long 3189567210
+ .long 858482864
+ .long 3230016975
+ .long 3218883783
+ .long 3189567649
+ .long 318976720
+ .long 3230016978
+ .long 3492652862
+ .long 3189567382
+ .long 4057135272
+ .long 3230016980
+ .long 473724673
+ .long 3189568069
+ .long 3483072376
+ .long 3230016983
+ .long 150485010
+ .long 3189567757
+ .long 2891803552
+ .long 3230016986
+ .long 3028900958
+ .long 3189567173
+ .long 2283376816
+ .long 3230016989
+ .long 321242596
+ .long 3189567822
+ .long 1657840008
+ .long 3230016992
+ .long 151305746
+ .long 3189568029
+ .long 1015240760
+ .long 3230016995
+ .long 2208026401
+ .long 3189567184
+ .long 355626480
+ .long 3230016998
+ .long 2487781842
+ .long 3189567931
+ .long 3974011720
+ .long 3230017000
+ .long 2391142094
+ .long 3189567091
+ .long 3280508896
+ .long 3230017003
+ .long 734457618
+ .long 3189568092
+ .long 2570132168
+ .long 3230017006
+ .long 3070902701
+ .long 3189567794
+ .long 1842928168
+ .long 3230017009
+ .long 1110877923
+ .long 3189567896
+ .long 1098943352
+ .long 3230017012
+ .long 3880360185
+ .long 3189567898
+ .long 338223984
+ .long 3230017015
+ .long 391995809
+ .long 3189567294
+ .long 3855783416
+ .long 3230017017
+ .long 4186345433
+ .long 3189567745
+ .long 3061732952
+ .long 3230017020
+ .long 3682852050
+ .long 3189567081
+ .long 2251085560
+ .long 3230017023
+ .long 3057037137
+ .long 3189567617
+ .long 1423886760
+ .long 3230017026
+ .long 3352664894
+ .long 3189567074
+ .long 580181848
+ .long 3230017029
+ .long 1170568982
+ .long 3189567927
+ .long 4014983272
+ .long 3230017031
+ .long 671148579
+ .long 3189567293
+ .long 3138401368
+ .long 3230017034
+ .long 267496658
+ .long 3189567304
+ .long 2245448192
+ .long 3230017037
+ .long 1285167087
+ .long 3189568066
+ .long 1336168336
+ .long 3230017040
+ .long 4259909589
+ .long 3189567788
+ .long 410606184
+ .long 3230017043
+ .long 1494078902
+ .long 3189568031
+ .long 3763773256
+ .long 3230017045
+ .long 261935754
+ .long 3189567685
+ .long 2805778992
+ .long 3230017048
+ .long 3679585605
+ .long 3189567195
+ .long 1831634536
+ .long 3230017051
+ .long 809066513
+ .long 3189567664
+ .long 841383576
+ .long 3230017054
+ .long 385945238
+ .long 3189567897
+ .long 4130036912
+ .long 3230017056
+ .long 825579909
+ .long 3189567603
+ .long 3107703272
+ .long 3230017059
+ .long 3911295427
+ .long 3189567514
+ .long 2069393104
+ .long 3230017062
+ .long 3473784588
+ .long 3189567461
+ .long 1015149384
+ .long 3230017065
+ .long 629861200
+ .long 3189567515
+ .long 4239982216
+ .long 3230017067
+ .long 2659142760
+ .long 3189567083
+ .long 3153999632
+ .long 3230017070
+ .long 1251680713
+ .long 3189567080
+ .long 2052211384
+ .long 3230017073
+ .long 3168705163
+ .long 3189567992
+ .long 934659776
+ .long 3230017076
+ .long 1674797624
+ .long 3189567952
+ .long 4096354216
+ .long 3230017078
+ .long 437847902
+ .long 3189567971
+ .long 2947402064
+ .long 3230017081
+ .long 4024401533
+ .long 3189567960
+ .long 1782812400
+ .long 3230017084
+ .long 786902458
+ .long 3189567873
+ .long 602626840
+ .long 3230017087
+ .long 2593792633
+ .long 3189567812
+ .long 3701854136
+ .long 3230017089
+ .long 3989721221
+ .long 3189567126
+ .long 2490600968
+ .long 3230017092
+ .long 2545746866
+ .long 3189567591
+ .long 1263875768
+ .long 3230017095
+ .long 3115843521
+ .long 3189567377
+ .long 21719488
+ .long 3230017098
+ .long 1730226063
+ .long 3189567307
+ .long 3059140216
+ .long 3230017100
+ .long 690350922
+ .long 3189567892
+ .long 1786244008
+ .long 3230017103
+ .long 3350998585
+ .long 3189567394
+ .long 498038616
+ .long 3230017106
+ .long 1499123379
+ .long 3189568082
+ .long 3489531672
+ .long 3230017108
+ .long 2598665922
+ .long 3189567118
+ .long 2170828712
+ .long 3230017111
+ .long 2436376826
+ .long 3189567935
+ .long 836937048
+ .long 3230017114
+ .long 1977004902
+ .long 3189568052
+ .long 3782863816
+ .long 3230017116
+ .long 4027224619
+ .long 3189567373
+ .long 2418714096
+ .long 3230017119
+ .long 2616869856
+ .long 3189567271
+ .long 1039494712
+ .long 3230017122
+ .long 3775628133
+ .long 3189567616
+ .long 3940212336
+ .long 3230017124
+ .long 419018052
+ .long 3189567909
+ .long 2530971600
+ .long 3230017127
+ .long 150919657
+ .long 3189567379
+ .long 1106778856
+ .long 3230017130
+ .long 2926254537
+ .long 3189567139
+ .long 3962640312
+ .long 3230017132
+ .long 1610863810
+ .long 3189567216
+ .long 2508660136
+ .long 3230017135
+ .long 1166015244
+ .long 3189567672
+ .long 1039844240
+ .long 3230017138
+ .long 645159638
+ .long 3189567685
+ .long 3851198376
+ .long 3230017140
+ .long 2449439581
+ .long 3189567695
+ .long 2352826264
+ .long 3230017143
+ .long 1619104640
+ .long 3189567458
+ .long 839733360
+ .long 3230017146
+ .long 2427070371
+ .long 3189567165
+ .long 3606924968
+ .long 3230017148
+ .long 2166480890
+ .long 3189567544
+ .long 2064504368
+ .long 3230017151
+ .long 2283025905
+ .long 3189567907
+ .long 507476584
+ .long 3230017154
+ .long 3923356754
+ .long 3189567272
+ .long 3230846472
+ .long 3230017156
+ .long 805331677
+ .long 3189567533
+ .long 1644716880
+ .long 3230017159
+ .long 3790469685
+ .long 3189567406
+ .long 44092384
+ .long 3230017162
+ .long 2689788214
+ .long 3189567653
+ .long 2723977432
+ .long 3230017164
+ .long 2762250221
+ .long 3189567072
+ .long 1094474416
+ .long 3230017167
+ .long 2781925193
+ .long 3189567716
+ .long 3745554800
+ .long 3230017169
+ .long 593120878
+ .long 3189567817
+ .long 2087320704
+ .long 3230017172
+ .long 403414988
+ .long 3189568021
+ .long 414776008
+ .long 3230017175
+ .long 359307328
+ .long 3189567387
+ .long 3022924432
+ .long 3230017177
+ .long 3373547966
+ .long 3189567572
+ .long 1321867688
+ .long 3230017180
+ .long 3978711340
+ .long 3189567805
+ .long 3901576528
+ .long 3230017182
+ .long 2765663238
+ .long 3189568046
+ .long 2172152384
+ .long 3230017185
+ .long 1181150766
+ .long 3189568053
+ .long 428598440
+ .long 3230017188
+ .long 2473022131
+ .long 3189567471
+ .long 2965917728
+ .long 3230017190
+ .long 1621744488
+ .long 3189567971
+ .long 1194211288
+ .long 3230017193
+ .long 2931299013
+ .long 3189567190
+ .long 3703449168
+ .long 3230017195
+ .long 873154950
+ .long 3189568039
+ .long 1903732144
+ .long 3230017198
+ .long 1510784525
+ .long 3189567521
+ .long 90062704
+ .long 3230017201
+ .long 2918231590
+ .long 3189568086
+ .long 2557443240
+ .long 3230017203
+ .long 3329944838
+ .long 3189567475
+ .long 715974088
+ .long 3230017206
+ .long 2679715410
+ .long 3189568021
+ .long 3155624672
+ .long 3230017208
+ .long 1841110143
+ .long 3189567518
+ .long 1286495072
+ .long 3230017211
+ .long 3881638924
+ .long 3189567497
+ .long 3698554440
+ .long 3230017213
+ .long 167906931
+ .long 3189567169
+ .long 1801902600
+ .long 3230017216
+ .long 1468264167
+ .long 3189567597
+ .long 4186508448
+ .long 3230017218
+ .long 2400624638
+ .long 3189567691
+ .long 2262471560
+ .long 3230017221
+ .long 3796182064
+ .long 3189567357
+ .long 324793264
+ .long 3230017224
+ .long 2801238958
+ .long 3189567581
+ .long 2668474776
+ .long 3230017226
+ .long 2273142813
+ .long 3189567436
+ .long 703615288
+ .long 3230017229
+ .long 831867571
+ .long 3189567237
+ .long 3020183048
+ .long 3230017231
+ .long 2238048829
+ .long 3189567595
+ .long 1028277008
+ .long 3230017234
+ .long 1163763070
+ .long 3189567452
+ .long 3317865168
+ .long 3230017236
+ .long 1206450788
+ .long 3189567228
+ .long 1299046216
+ .long 3230017239
+ .long 737162226
+ .long 3189567879
+ .long 3561787920
+ .long 3230017241
+ .long 2433253277
+ .long 3189567901
+ .long 1516188728
+ .long 3230017244
+ .long 3561277099
+ .long 3189567506
+ .long 3752216144
+ .long 3230017246
+ .long 1385095507
+ .long 3189567674
+ .long 1679968384
+ .long 3230017249
+ .long 829462408
+ .long 3189567156
+ .long 3889412704
+ .long 3230017251
+ .long 2939266725
+ .long 3189567673
+ .long 1790647080
+ .long 3230017254
+ .long 4214100827
+ .long 3189567848
+ .long 3973638544
+ .long 3230017256
+ .long 2537954451
+ .long 3189567376
+ .long 1848484816
+ .long 3230017259
+ .long 1128740312
+ .long 3189567098
+ .long 4005152680
+ .long 3230017261
+ .long 1932232434
+ .long 3189568053
+ .long 1853739648
+ .long 3230017264
+ .long 1359710694
+ .long 3189567457
+ .long 3984212256
+ .long 3230017266
+ .long 1268482287
+ .long 3189567990
+ .long 1806667776
+ .long 3230017269
+ .long 839689017
+ .long 3189567631
+ .long 3911072520
+ .long 3230017271
+ .long 3727165601
+ .long 3189567921
+ .long 1707523520
+ .long 3230017274
+ .long 1836550952
+ .long 3189567895
+ .long 3785986872
+ .long 3230017276
+ .long 172951407
+ .long 3189567220
+ .long 1556559360
+ .long 3230017279
+ .long 1166449891
+ .long 3189567294
+ .long 3609206856
+ .long 3230017281
+ .long 28625366
+ .long 3189567222
+ .long 1354025920
+ .long 3230017284
+ .long 4038426582
+ .long 3189567978
+ .long 3380982208
+ .long 3230017286
+ .long 2756284659
+ .long 3189567362
+ .long 1100172048
+ .long 3230017289
+ .long 848830252
+ .long 3189567230
+ .long 3101560856
+ .long 3230017291
+ .long 1868170309
+ .long 3189567423
+ .long 795244752
+ .long 3230017294
+ .long 3128260908
+ .long 3189567885
+ .long 2771188936
+ .long 3230017296
+ .long 1691261279
+ .long 3189567706
+ .long 439489304
+ .long 3230017299
+ .long 2886711298
+ .long 3189567236
+ .long 2390110824
+ .long 3230017301
+ .long 1311431101
+ .long 3189567133
+ .long 33149176
+ .long 3230017304
+ .long 3042183093
+ .long 3189567401
+ .long 1958569120
+ .long 3230017306
+ .long 3174208880
+ .long 3189567462
+ .long 3871433416
+ .long 3230017308
+ .long 302374021
+ .long 3189567243
+ .long 1476804712
+ .long 3230017311
+ .long 712531519
+ .long 3189567241
+ .long 3364647440
+ .long 3230017313
+ .long 3705318448
+ .long 3189567568
+ .long 945056744
+ .long 3230017316
+ .long 2424171915
+ .long 3189568016
+ .long 2807996856
+ .long 3230017318
+ .long 199511961
+ .long 3189567094
+ .long 363562688
+ .long 3230017321
+ .long 3766234060
+ .long 3189567214
+ .long 2201718256
+ .long 3230017323
+ .long 1956195829
+ .long 3189567592
+ .long 4027525584
+ .long 3230017325
+ .long 2891794585
+ .long 3189567375
+ .long 1546046576
+ .long 3230017328
+ .long 843173017
+ .long 3189567760
+ .long 3347244936
+ .long 3230017330
+ .long 1609532414
+ .long 3189567955
+ .long 841215080
+ .long 3230017333
+ .long 3356704285
+ .long 3189567294
+ .long 2617920488
+ .long 3230017335
+ .long 1641729240
+ .long 3189567346
+ .long 87455368
+ .long 3230017338
+ .long 1455753222
+ .long 3189567878
+ .long 1839783016
+ .long 3230017340
+ .long 1936589978
+ .long 3189567944
+ .long 3579964728
+ .long 3230017342
+ .long 1006586129
+ .long 3189567993
+ .long 1013061704
+ .long 3230017345
+ .long 2766825484
+ .long 3189567880
+ .long 2729036928
+ .long 3230017347
+ .long 1888685184
+ .long 3189567954
+ .long 137984104
+ .long 3230017350
+ .long 848046306
+ .long 3189568090
+ .long 1829866024
+ .long 3230017352
+ .long 4178224056
+ .long 3189567750
+ .long 3509743488
+ .long 3230017354
+ .long 2637072474
+ .long 3189567070
+ .long 882677184
+ .long 3230017357
+ .long 3133305384
+ .long 3189567936
+ .long 2538629624
+ .long 3230017359
+ .long 1343200028
+ .long 3189567905
+ .long 4182661312
+ .long 3230017361
+ .long 107195460
+ .long 3189567427
+ .long 1519832648
+ .long 3230017364
+ .long 602154914
+ .long 3189567857
+ .long 3140105848
+ .long 3230017366
+ .long 659160740
+ .long 3189567417
+ .long 453573824
+ .long 3230017369
+ .long 236889930
+ .long 3189567396
+ .long 2050198592
+ .long 3230017371
+ .long 1175634921
+ .long 3189567087
+ .long 3635040168
+ .long 3230017373
+ .long 1241855527
+ .long 3189567941
+ .long 913158504
+ .long 3230017376
+ .long 3947904414
+ .long 3189567477
+ .long 2474515312
+ .long 3230017378
+ .long 1206979822
+ .long 3189567534
+ .long 4024170344
+ .long 3230017380
+ .long 1847397805
+ .long 3189567152
+ .long 1267183240
+ .long 3230017383
+ .long 2916539301
+ .long 3189567754
+ .long 2793515456
+ .long 3230017385
+ .long 2568213263
+ .long 3189568078
+ .long 13259168
+ .long 3230017388
+ .long 3003245330
+ .long 3189567303
+ .long 1516375624
+ .long 3230017390
+ .long 3472633477
+ .long 3189567153
+ .long 3007924104
+ .long 3230017392
+ .long 532406289
+ .long 3189567855
+ .long 192963816
+ .long 3230017395
+ .long 4149310663
+ .long 3189567165
+ .long 1661455728
+ .long 3230017397
+ .long 946970842
+ .long 3189567598
+ .long 3118458864
+ .long 3230017399
+ .long 2040517972
+ .long 3189567254
+ .long 269032128
+ .long 3230017402
+ .long 3669971831
+ .long 3189568072
+ .long 1703136256
+ .long 3230017404
+ .long 2375197389
+ .long 3189567687
+ .long 3125829976
+ .long 3230017406
+ .long 296757744
+ .long 3189567673
+ .long 242171944
+ .long 3230017409
+ .long 611424102
+ .long 3189567452
+ .long 1642122608
+ .long 3230017411
+ .long 1700968423
+ .long 3189567419
+ .long 3030740440
+ .long 3230017413
+ .long 2947762668
+ .long 3189567968
+ .long 113083840
+ .long 3230017416
+ .long 690901756
+ .long 3189567496
+ .long 1479112984
+ .long 3230017418
+ .long 121139903
+ .long 3189567571
+ .long 2833886088
+ .long 3230017420
+ .long 173386055
+ .long 3189567866
+ .long 4177428584
+ .long 3230017422
+ .long 2964718132
+ .long 3189567231
+ .long 1214798496
+ .long 3230017425
+ .long 541562024
+ .long 3189567842
+ .long 2535955680
+ .long 3230017427
+ .long 3368765612
+ .long 3189568076
+ .long 3845958008
+ .long 3230017429
+ .long 3194541507
+ .long 3189567689
+ .long 849863256
+ .long 3230017432
+ .long 3443356552
+ .long 3189567858
+ .long 2137631024
+ .long 3230017434
+ .long 1180679397
+ .long 3189567138
+ .long 3414318912
+ .long 3230017436
+ .long 2261929999
+ .long 3189567651
+ .long 384984464
+ .long 3230017439
+ .long 954057098
+ .long 3189567971
+ .long 1639587024
+ .long 3230017441
+ .long 1346995839
+ .long 3189567263
+ .long 2883183944
+ .long 3230017443
+ .long 3253373727
+ .long 3189567382
+ .long 4115799808
+ .long 3230017445
+ .long 4143791142
+ .long 3189567800
+ .long 1042491824
+ .long 3230017448
+ .long 4240432954
+ .long 3189567700
+ .long 2253218992
+ .long 3230017450
+ .long 1891708033
+ .long 3189568072
+ .long 3453038360
+ .long 3230017452
+ .long 710292621
+ .long 3189567662
+ .long 347006880
+ .long 3230017455
+ .long 2712254611
+ .long 3189567116
+ .long 1525083304
+ .long 3230017457
+ .long 349583280
+ .long 3189568004
+ .long 2692324448
+ .long 3230017459
+ .long 1803227864
+ .long 3189567740
+ .long 3848754312
+ .long 3230017461
+ .long 3644606976
+ .long 3189567826
+ .long 699429536
+ .long 3230017464
+ .long 1067153346
+ .long 3189567751
+ .long 1834308568
+ .long 3230017466
+ .long 1335350692
+ .long 3189567081
+ .long 2958447872
+ .long 3230017468
+ .long 1803696599
+ .long 3189567557
+ .long 4071871152
+ .long 3230017470
+ .long 1232152547
+ .long 3189568017
+ .long 879634736
+ .long 3230017473
+ .long 1455437901
+ .long 3189567512
+ .long 1971696744
+ .long 3230017475
+ .long 3708110750
+ .long 3189567399
+ .long 3053113344
+ .long 3230017477
+ .long 3907324819
+ .long 3189567290
+ .long 4123907920
+ .long 3230017479
+ .long 4080000314
+ .long 3189567141
+ .long 889136480
+ .long 3230017482
+ .long 1286519001
+ .long 3189567298
+ .long 1938756848
+ .long 3230017484
+ .long 1292347423
+ .long 3189567513
+ .long 2977824880
+ .long 3230017486
+ .long 1159725249
+ .long 3189568015
+ .long 4006363664
+ .long 3230017488
+ .long 895621348
+ .long 3189567502
+ .long 729428896
+ .long 3230017491
+ .long 1212894155
+ .long 3189567280
+ .long 1736978096
+ .long 3230017493
+ .long 296117275
+ .long 3189567210
+ .long 2734066816
+ .long 3230017495
+ .long 2463481211
+ .long 3189567796
+ .long 3720717848
+ .long 3230017497
+ .long 76524950
+ .long 3189567159
+ .long 401986584
+ .long 3230017500
+ .long 1718551671
+ .long 3189567216
+ .long 1367830248
+ .long 3230017502
+ .long 3568874946
+ .long 3189567584
+ .long 2323304104
+ .long 3230017504
+ .long 2763456396
+ .long 3189567666
+ .long 3268430632
+ .long 3230017506
+ .long 1208592501
+ .long 3189567715
+ .long 4203232240
+ .long 3230017508
+ .long 4148835618
+ .long 3189567851
+ .long 832763976
+ .long 3230017511
+ .long 610418007
+ .long 3189567082
+ .long 1746982680
+ .long 3230017513
+ .long 3035714190
+ .long 3189567431
+ .long 2650943256
+ .long 3230017515
+ .long 85931336
+ .long 3189567843
+ .long 3544667832
+ .long 3230017517
+ .long 3006685957
+ .long 3189567286
+ .long 133211144
+ .long 3230017520
+ .long 878859600
+ .long 3189567873
+ .long 1006529776
+ .long 3230017522
+ .long 854333969
+ .long 3189567724
+ .long 1869678336
+ .long 3230017524
+ .long 3058646748
+ .long 3189567155
+ .long 2722678648
+ .long 3230017526
+ .long 360733640
+ .long 3189567693
+ .long 3565552488
+ .long 3230017528
+ .long 3015564990
+ .long 3189568013
+ .long 103354256
+ .long 3230017531
+ .long 2286095909
+ .long 3189568081
+ .long 926040176
+ .long 3230017533
+ .long 1899270393
+ .long 3189567137
+ .long 1738664488
+ .long 3230017535
+ .long 1377641292
+ .long 3189567833
+ .long 2541248696
+ .long 3230017537
+ .long 4266686523
+ .long 3189568077
+ .long 3333814224
+ .long 3230017539
+ .long 4018775563
+ .long 3189567218
+ .long 4116382408
+ .long 3230017541
+ .long 3373913644
+ .long 3189567103
+ .long 594007232
+ .long 3230017544
+ .long 2818265402
+ .long 3189568021
+ .long 1356644520
+ .long 3230017546
+ .long 1075601108
+ .long 3189567716
+ .long 2109348112
+ .long 3230017548
+ .long 3342127702
+ .long 3189567566
+ .long 2852139088
+ .long 3230017550
+ .long 2910355434
+ .long 3189567504
+ .long 3585038464
+ .long 3230017552
+ .long 611858749
+ .long 3189567074
+ .long 13099880
+ .long 3230017555
+ .long 1954698831
+ .long 3189567516
+ .long 726278816
+ .long 3230017557
+ .long 550712630
+ .long 3189567710
+ .long 1429628792
+ .long 3230017559
+ .long 3672474493
+ .long 3189567278
+ .long 2123170544
+ .long 3230017561
+ .long 1160875209
+ .long 3189567651
+ .long 2806924760
+ .long 3230017563
+ .long 2242524344
+ .long 3189568000
+ .long 3480912064
+ .long 3230017565
+ .long 2823138691
+ .long 3189567327
+ .long 4145152992
+ .long 3230017567
+ .long 3521079748
+ .long 3189567568
+ .long 504700744
+ .long 3230017570
+ .long 1136670137
+ .long 3189567486
+ .long 1149510328
+ .long 3230017572
+ .long 806933442
+ .long 3189567823
+ .long 1784634816
+ .long 3230017574
+ .long 1606084669
+ .long 3189567242
+ .long 2410094488
+ .long 3230017576
+ .long 2841342625
+ .long 3189567480
+ .long 3025909584
+ .long 3230017578
+ .long 984188059
+ .long 3189567239
+ .long 3632100264
+ .long 3230017580
+ .long 3011730434
+ .long 3189567337
+ .long 4228686632
+ .long 3230017582
+ .long 328432041
+ .long 3189567676
+ .long 520721440
+ .long 3230017585
+ .long 2057225622
+ .long 3189567268
+ .long 1098159248
+ .long 3230017587
+ .long 3150727306
+ .long 3189567348
+ .long 1666052680
+ .long 3230017589
+ .long 3291380622
+ .long 3189567307
+ .long 2224421584
+ .long 3230017591
+ .long 3570771984
+ .long 3189567798
+ .long 2773285760
+ .long 3230017593
+ .long 2427604440
+ .long 3189567698
+ .long 3312664936
+ .long 3230017595
+ .long 3733848165
+ .long 3189567211
+ .long 3842578768
+ .long 3230017597
+ .long 2673912350
+ .long 3189567904
+ .long 68079584
+ .long 3230017600
+ .long 960995892
+ .long 3189567616
+ .long 579121512
+ .long 3230017602
+ .long 4150493479
+ .long 3189567659
+ .long 1080756744
+ .long 3230017604
+ .long 1054941272
+ .long 3189567735
+ .long 1573004704
+ .long 3230017606
+ .long 2574365292
+ .long 3189568007
+ .long 2055884768
+ .long 3230017608
+ .long 2507498673
+ .long 3189567092
+ .long 2529416224
+ .long 3230017610
+ .long 2082176323
+ .long 3189567207
+ .long 2993618320
+ .long 3230017612
+ .long 3719982601
+ .long 3189568058
+ .long 3448510256
+ .long 3230017614
+ .long 4104247904
+ .long 3189567897
+ .long 3894111152
+ .long 3230017616
+ .long 3735557011
+ .long 3189567647
+ .long 35472776
+ .long 3230017619
+ .long 2914260983
+ .long 3189567862
+ .long 462548736
+ .long 3230017621
+ .long 1334094042
+ .long 3189567734
+ .long 880390688
+ .long 3230017623
+ .long 1291097379
+ .long 3189567171
+ .long 1289017512
+ .long 3230017625
+ .long 1627119803
+ .long 3189567853
+ .long 1688448064
+ .long 3230017627
+ .long 3886873723
+ .long 3189567117
+ .long 2078701104
+ .long 3230017629
+ .long 627887757
+ .long 3189567206
+ .long 2459795360
+ .long 3230017631
+ .long 1722013861
+ .long 3189567101
+ .long 2831749488
+ .long 3230017633
+ .long 4163262354
+ .long 3189567678
+ .long 3194582104
+ .long 3230017635
+ .long 4170237688
+ .long 3189567639
+ .long 3548311752
+ .long 3230017637
+ .long 47563772
+ .long 3189567637
+ .long 3892956928
+ .long 3230017639
+ .long 2990136007
+ .long 3189567231
+ .long 4228536056
+ .long 3230017641
+ .long 4294532248
+ .long 3189567995
+ .long 260100240
+ .long 3230017644
+ .long 2060709623
+ .long 3189567397
+ .long 577602376
+ .long 3230017646
+ .long 1488525373
+ .long 3189568044
+ .long 886093456
+ .long 3230017648
+ .long 1657840200
+ .long 3189567474
+ .long 1185591680
+ .long 3230017650
+ .long 3155771782
+ .long 3189567399
+ .long 1476115208
+ .long 3230017652
+ .long 2195162329
+ .long 3189567591
+ .long 1757682144
+ .long 3230017654
+ .long 1292806663
+ .long 3189567956
+ .long 2030310544
+ .long 3230017656
+ .long 2151451208
+ .long 3189567540
+ .long 2294018392
+ .long 3230017658
+ .long 2224122735
+ .long 3189567630
+ .long 2548823632
+ .long 3230017660
+ .long 3554417607
+ .long 3189567684
+ .long 2794744152
+ .long 3230017662
+ .long 3831650627
+ .long 3189567409
+ .long 3031797776
+ .long 3230017664
+ .long 4024246224
+ .long 3189567811
+ .long 3260002296
+ .long 3230017666
+ .long 2530219738
+ .long 3189567128
+ .long 3479375416
+ .long 3230017668
+ .long 1618145996
+ .long 3189568024
+ .long 3689934832
+ .long 3230017670
+ .long 392379700
+ .long 3189567378
+ .long 3891698144
+ .long 3230017672
+ .long 55874694
+ .long 3189567574
+ .long 4084682928
+ .long 3230017674
+ .long 4294251475
+ .long 3189567312
+ .long 4268906688
+ .long 3230017676
+ .long 1899705040
+ .long 3189567783
+ .long 149419600
+ .long 3230017679
+ .long 357699389
+ .long 3189567568
+ .long 316173656
+ .long 3230017681
+ .long 3025711727
+ .long 3189567790
+ .long 474218920
+ .long 3230017683
+ .long 2921891821
+ .long 3189568046
+ .long 623572704
+ .long 3230017685
+ .long 1716968749
+ .long 3189567453
+ .long 764252248
+ .long 3230017687
+ .long 2393171526
+ .long 3189567748
+ .long 896274768
+ .long 3230017689
+ .long 1343317993
+ .long 3189567172
+ .long 1019657400
+ .long 3230017691
+ .long 1388235839
+ .long 3189567661
+ .long 1134417256
+ .long 3230017693
+ .long 2766147125
+ .long 3189567706
+ .long 1240571384
+ .long 3230017695
+ .long 2162068842
+ .long 3189567499
+ .long 1338136776
+ .long 3230017697
+ .long 4075455588
+ .long 3189567932
+ .long 1427130392
+ .long 3230017699
+ .long 1579647664
+ .long 3189567555
+ .long 1507569120
+ .long 3230017701
+ .long 3785749868
+ .long 3189567715
+ .long 1579469816
+ .long 3230017703
+ .long 2639950365
+ .long 3189567469
+ .long 1642849272
+ .long 3230017705
+ .long 3611501026
+ .long 3189567698
+ .long 1697724240
+ .long 3230017707
+ .long 15422953
+ .long 3189568066
+ .long 1744111424
+ .long 3230017709
+ .long 2642213241
+ .long 3189568062
+ .long 1782027472
+ .long 3230017711
+ .long 143606300
+ .long 3189568058
+ .long 1811488992
+ .long 3230017713
+ .long 501328690
+ .long 3189567276
+ .long 1832512520
+ .long 3230017715
+ .long 3258054578
+ .long 3189567915
+ .long 1845114576
+ .long 3230017717
+ .long 1297851139
+ .long 3189568007
+ .long 1849311616
+ .long 3230017719
+ .long 3589200000
+ .long 3189567580
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2147483648
+ .long 2846560486
+ .long 3210737666
+ .long 2729511872
+ .long 3211784202
+ .long 3956813460
+ .long 3212307985
+ .long 1796237193
+ .long 3212828714
+ .long 1562748889
+ .long 3213092649
+ .long 1602292343
+ .long 3213352007
+ .long 745814092
+ .long 3213610865
+ .long 2969306084
+ .long 3213869224
+ .long 3953060839
+ .long 3214006263
+ .long 1128703349
+ .long 3214134948
+ .long 1371067273
+ .long 3214263386
+ .long 131445019
+ .long 3214391579
+ .long 1427948820
+ .long 3214519527
+ .long 665817496
+ .long 3214647232
+ .long 1817459908
+ .long 3214774694
+ .long 242758400
+ .long 3214901915
+ .long 2082038134
+ .long 3214981455
+ .long 2300828032
+ .long 3215044825
+ .long 571795571
+ .long 3215108076
+ .long 3120479584
+ .long 3215171207
+ .long 3276640540
+ .long 3215234220
+ .long 2949178581
+ .long 3215297115
+ .long 4036279704
+ .long 3215359892
+ .long 4130528508
+ .long 3215422552
+ .long 813954767
+ .long 3215485096
+ .long 248046571
+ .long 3215547523
+ .long 4288926261
+ .long 3215609833
+ .long 1897492927
+ .long 3215672029
+ .long 3499237165
+ .long 3215734109
+ .long 2329611090
+ .long 3215796075
+ .long 203907094
+ .long 3215857927
+ .long 3222364838
+ .long 3215919664
+ .long 295408387
+ .long 3215981289
+ .long 899212401
+ .long 3216012696
+ .long 2606049022
+ .long 3216043395
+ .long 4003691233
+ .long 3216074038
+ .long 1675303236
+ .long 3216104626
+ .long 789189655
+ .long 3216135158
+ .long 2213928479
+ .long 3216165634
+ .long 2518405585
+ .long 3216196055
+ .long 2561783534
+ .long 3216226421
+ .long 3198568176
+ .long 3216256732
+ .long 983674944
+ .long 3216286989
+ .long 1057364031
+ .long 3216317191
+ .long 4260371496
+ .long 3216347338
+ .long 2838974660
+ .long 3216377432
+ .long 1919860988
+ .long 3216407472
+ .long 2330291020
+ .long 3216437458
+ .long 598130195
+ .long 3216467391
+ .long 1836782285
+ .long 3216497270
+ .long 2565351466
+ .long 3216527096
+ .long 3593575201
+ .long 3216556869
+ .long 1431920350
+ .long 3216586590
+ .long 1176515501
+ .long 3216616258
+ .long 3624279252
+ .long 3216645873
+ .long 977982819
+ .long 3216675437
+ .long 2616083454
+ .long 3216704948
+ .long 733015457
+ .long 3216734408
+ .long 403990373
+ .long 3216763816
+ .long 2405156675
+ .long 3216793172
+ .long 3213628385
+ .long 3216822477
+ .long 3597448029
+ .long 3216851731
+ .long 25680167
+ .long 3216880935
+ .long 1848308454
+ .long 3216910087
+ .long 1231492199
+ .long 3216939189
+ .long 3222364838
+ .long 3216968240
+ .long 4274224607
+ .long 3216997241
+ .long 836496059
+ .long 3217026193
+ .long 1119829323
+ .long 3217043131
+ .long 315251054
+ .long 3217057557
+ .long 518461891
+ .long 3217071958
+ .long 2094042713
+ .long 3217086334
+ .long 1109735857
+ .long 3217100686
+ .long 2221359788
+ .long 3217115013
+ .long 1492952593
+ .long 3217129316
+ .long 3576653728
+ .long 3217143594
+ .long 237880003
+ .long 3217157849
+ .long 420109003
+ .long 3217172079
+ .long 180120274
+ .long 3217186285
+ .long 4162843939
+ .long 3217200466
+ .long 4126536273
+ .long 3217214624
+ .long 417628115
+ .long 3217228759
+ .long 1970736719
+ .long 3217242869
+ .long 538873716
+ .long 3217256956
+ .long 758227830
+ .long 3217271019
+ .long 2968307242
+ .long 3217285058
+ .long 3211951040
+ .long 3217299074
+ .long 1825275166
+ .long 3217313067
+ .long 3437683677
+ .long 3217327036
+ .long 4086978021
+ .long 3217340982
+ .long 4104270002
+ .long 3217354905
+ .long 3819025464
+ .long 3217368805
+ .long 3559075183
+ .long 3217382682
+ .long 3650625670
+ .long 3217396536
+ .long 123302585
+ .long 3217410368
+ .long 1890030548
+ .long 3217424176
+ .long 682272600
+ .long 3217437962
+ .long 1114811729
+ .long 3217451725
+ .long 3505892050
+ .long 3217465465
+ .long 3877229085
+ .long 3217479183
+ .long 2543954549
+ .long 3217492879
+ .long 4114626469
+ .long 3217506552
+ .long 311370023
+ .long 3217520204
+ .long 34658569
+ .long 3217533833
+ .long 3593519732
+ .long 3217547439
+ .long 2705545195
+ .long 3217561024
+ .long 1971736889
+ .long 3217574587
+ .long 1696647441
+ .long 3217588128
+ .long 2183357019
+ .long 3217601647
+ .long 3733482817
+ .long 3217615144
+ .long 2352221150
+ .long 3217628620
+ .long 2633258676
+ .long 3217642074
+ .long 578912458
+ .long 3217655507
+ .long 780008323
+ .long 3217668918
+ .long 3530988084
+ .long 3217682307
+ .long 534951267
+ .long 3217695676
+ .long 673467853
+ .long 3217709023
+ .long 4236783385
+ .long 3217722348
+ .long 2923827788
+ .long 3217735653
+ .long 1317060595
+ .long 3217748937
+ .long 3997577740
+ .long 3217762199
+ .long 2660218276
+ .long 3217775441
+ .long 1883376699
+ .long 3217788662
+ .long 1949142230
+ .long 3217801862
+ .long 3138274530
+ .long 3217815041
+ .long 1435244737
+ .long 3217828200
+ .long 1413145637
+ .long 3217841338
+ .long 3348797986
+ .long 3217854455
+ .long 3222758658
+ .long 3217867552
+ .long 1309263324
+ .long 3217880629
+ .long 2176234471
+ .long 3217893685
+ .long 1800387473
+ .long 3217906721
+ .long 452140382
+ .long 3217919737
+ .long 2695621757
+ .long 3217932732
+ .long 208809263
+ .long 3217945708
+ .long 1848308454
+ .long 3217958663
+ .long 3584589359
+ .long 3217971598
+ .long 1386895968
+ .long 3217984514
+ .long 4108155659
+ .long 3217997409
+ .long 3420215606
+ .long 3218010285
+ .long 3878621277
+ .long 3218023141
+ .long 1447787319
+ .long 3218035978
+ .long 680874053
+ .long 3218048795
+ .long 1834892843
+ .long 3218061592
+ .long 870713292
+ .long 3218074370
+ .long 1168986141
+ .long 3218083436
+ .long 3245089583
+ .long 3218089805
+ .long 2494877761
+ .long 3218096165
+ .long 3338922950
+ .long 3218102515
+ .long 1607293197
+ .long 3218108856
+ .long 1719424943
+ .long 3218115187
+ .long 3799224547
+ .long 3218121508
+ .long 3675071677
+ .long 3218127820
+ .long 1469757259
+ .long 3218134123
+ .long 1600486820
+ .long 3218140416
+ .long 4188949205
+ .long 3218146699
+ .long 766352567
+ .long 3218152974
+ .long 43231408
+ .long 3218159239
+ .long 2139646042
+ .long 3218165494
+ .long 2880153102
+ .long 3218171740
+ .long 2383743325
+ .long 3218177977
+ .long 768877423
+ .long 3218184205
+ .long 2448456521
+ .long 3218190423
+ .long 3244923387
+ .long 3218196632
+ .long 3275167422
+ .long 3218202832
+ .long 2655560435
+ .long 3218209023
+ .long 1501959692
+ .long 3218215205
+ .long 4224678246
+ .long 3218221377
+ .long 2348618756
+ .long 3218227541
+ .long 283080250
+ .long 3218233696
+ .long 2436859197
+ .long 3218239841
+ .long 333350563
+ .long 3218245978
+ .long 2675321801
+ .long 3218252105
+ .long 985177381
+ .long 3218258224
+ .long 3964700035
+ .long 3218264333
+ .long 3135315249
+ .long 3218270434
+ .long 2902865164
+ .long 3218276526
+ .long 3377742213
+ .long 3218282609
+ .long 374891912
+ .long 3218288684
+ .long 2593684821
+ .long 3218294749
+ .long 1553148222
+ .long 3218300806
+ .long 1656739931
+ .long 3218306854
+ .long 3012481825
+ .long 3218312893
+ .long 1432962538
+ .long 3218318924
+ .long 1320242026
+ .long 3218324946
+ .long 2780952336
+ .long 3218330959
+ .long 1626300240
+ .long 3218336964
+ .long 2256971748
+ .long 3218342960
+ .long 483265518
+ .long 3218348948
+ .long 704964628
+ .long 3218354927
+ .long 3026437244
+ .long 3218360897
+ .long 3256639170
+ .long 3218366859
+ .long 1499050969
+ .long 3218372813
+ .long 2151680465
+ .long 3218378758
+ .long 1022163351
+ .long 3218384695
+ .long 2507634849
+ .long 3218390623
+ .long 2414862975
+ .long 3218396543
+ .long 845152874
+ .long 3218402455
+ .long 2194349235
+ .long 3218408358
+ .long 2267936813
+ .long 3218414253
+ .long 1165944702
+ .long 3218420140
+ .long 3282948707
+ .long 3218426018
+ .long 128204514
+ .long 3218431889
+ .long 390421100
+ .long 3218437751
+ .long 4167959282
+ .long 3218443604
+ .long 2968834018
+ .long 3218449450
+ .long 1185553177
+ .long 3218455288
+ .long 3210217930
+ .long 3218461117
+ .long 549623114
+ .long 3218466939
+ .long 1890030548
+ .long 3218472752
+ .long 3032400188
+ .long 3218478557
+ .long 4072261525
+ .long 3218484354
+ .long 3450874911
+ .long 1070995813
+ .long 2331021804
+ .long 1070990032
+ .long 1029453230
+ .long 1070984259
+ .long 3747176240
+ .long 1070978493
+ .long 1800682930
+ .long 1070972736
+ .long 3686719393
+ .long 1070966986
+ .long 722545241
+ .long 1070961245
+ .long 1405669883
+ .long 1070955511
+ .long 1349079372
+ .long 1070949785
+ .long 461103529
+ .long 1070944067
+ .long 2945413886
+ .long 1070938356
+ .long 121152472
+ .long 1070932654
+ .long 487700860
+ .long 1070926959
+ .long 3954874384
+ .long 1070921271
+ .long 1842920138
+ .long 1070915592
+ .long 2652318780
+ .long 1070909920
+ .long 1999011482
+ .long 1070904256
+ .long 4089234463
+ .long 1070898599
+ .long 244680560
+ .long 1070892951
+ .long 3262235675
+ .long 1070887309
+ .long 169336595
+ .long 1070881676
+ .long 3763576649
+ .long 1070876049
+ .long 1073096258
+ .long 1070870431
+ .long 601221319
+ .long 1070864820
+ .long 2261690268
+ .long 1070859216
+ .long 1673619518
+ .long 1070853620
+ .long 3046403514
+ .long 1070848031
+ .long 1999843716
+ .long 1070842450
+ .long 2744015967
+ .long 1070836876
+ .long 899399508
+ .long 1070831310
+ .long 676744370
+ .long 1070825751
+ .long 1992167703
+ .long 1070820199
+ .long 467152011
+ .long 1070814655
+ .long 313445281
+ .long 1070809118
+ .long 1448157352
+ .long 1070803588
+ .long 3788725476
+ .long 1070798065
+ .long 2957945300
+ .long 1070792550
+ .long 3168871046
+ .long 1070787042
+ .long 44944622
+ .long 1070781542
+ .long 2094830420
+ .long 1070776048
+ .long 647642559
+ .long 1070770562
+ .long 4212681596
+ .long 1070765082
+ .long 4119694493
+ .long 1070759610
+ .long 288676754
+ .long 1070754146
+ .long 1229870791
+ .long 1070748688
+ .long 2568927817
+ .long 1070743237
+ .long 4226775419
+ .long 1070737793
+ .long 1829681364
+ .long 1070732357
+ .long 3889121191
+ .long 1070726927
+ .long 1737005556
+ .long 1070721505
+ .long 3885417029
+ .long 1070716089
+ .long 1666870165
+ .long 1070710681
+ .long 3594048319
+ .long 1070705279
+ .long 1000063738
+ .long 1070699885
+ .long 2398194399
+ .long 1070694497
+ .long 3417111411
+ .long 1070689116
+ .long 3980746691
+ .long 1070683742
+ .long 4013324163
+ .long 1070678375
+ .long 3439358267
+ .long 1070673015
+ .long 2183652476
+ .long 1070667662
+ .long 171297820
+ .long 1070662316
+ .long 1622638721
+ .long 1070656976
+ .long 2168369647
+ .long 1070651643
+ .long 1734435555
+ .long 1070646317
+ .long 247063161
+ .long 1070640998
+ .long 1927726804
+ .long 1070635685
+ .long 2408245143
+ .long 1070630379
+ .long 1615681634
+ .long 1070625080
+ .long 3772343130
+ .long 1070619787
+ .long 215909304
+ .long 1070614502
+ .long 3759169634
+ .long 1070609222
+ .long 1445381777
+ .long 1070603950
+ .long 1792910451
+ .long 1070598684
+ .long 870975437
+ .long 1070590754
+ .long 3194096222
+ .long 1070580248
+ .long 1823716217
+ .long 1070569756
+ .long 913800688
+ .long 1070559277
+ .long 323875369
+ .long 1070548811
+ .long 4208958430
+ .long 1070538357
+ .long 3839688678
+ .long 1070527917
+ .long 3372126730
+ .long 1070517490
+ .long 2667883253
+ .long 1070507076
+ .long 1589083690
+ .long 1070496675
+ .long 4293333010
+ .long 1070486286
+ .long 2053843986
+ .long 1070475911
+ .long 3324205749
+ .long 1070465548
+ .long 3673610217
+ .long 1070455198
+ .long 2966718784
+ .long 1070444861
+ .long 1068692560
+ .long 1070434537
+ .long 2140157205
+ .long 1070424225
+ .long 1752298597
+ .long 1070413926
+ .long 4066729595
+ .long 1070403639
+ .long 360651144
+ .long 1070393366
+ .long 3386588242
+ .long 1070383104
+ .long 127747308
+ .long 1070372856
+ .long 3337621361
+ .long 1070362619
+ .long 380113
+ .long 1070352396
+ .long 2870475188
+ .long 1070342184
+ .long 3227997535
+ .long 1070331985
+ .long 943446189
+ .long 1070321799
+ .long 182758681
+ .long 1070311625
+ .long 817374162
+ .long 1070301463
+ .long 2719198427
+ .long 1070291313
+ .long 1465634365
+ .long 1070281176
+ .long 1224481606
+ .long 1070271051
+ .long 1869032404
+ .long 1070260938
+ .long 3273036717
+ .long 1070250837
+ .long 1015732707
+ .long 1070240749
+ .long 3561713742
+ .long 1070230672
+ .long 2196155141
+ .long 1070220608
+ .long 1089583089
+ .long 1070210556
+ .long 118003300
+ .long 1070200516
+ .long 3452833475
+ .long 1070190487
+ .long 2381031992
+ .long 1070180471
+ .long 1074899573
+ .long 1070170467
+ .long 3707175295
+ .long 1070160474
+ .long 1566132617
+ .long 1070150494
+ .long 3120348377
+ .long 1070140525
+ .long 3953929663
+ .long 1070130568
+ .long 3946380940
+ .long 1070120623
+ .long 2977634725
+ .long 1070110690
+ .long 928049556
+ .long 1070100769
+ .long 1973375279
+ .long 1070090859
+ .long 1699849154
+ .long 1070080961
+ .long 4284063055
+ .long 1070071074
+ .long 1018125008
+ .long 1070061200
+ .long 374428300
+ .long 1070051337
+ .long 2235845747
+ .long 1070041485
+ .long 2190695046
+ .long 1070031645
+ .long 122671437
+ .long 1070021817
+ .long 210845780
+ .long 1070012000
+ .long 2339728060
+ .long 1070002194
+ .long 2099265479
+ .long 1069992400
+ .long 3669742467
+ .long 1069982617
+ .long 2641909617
+ .long 1069972846
+ .long 3196851002
+ .long 1069963086
+ .long 926113142
+ .long 1069953338
+ .long 11572342
+ .long 1069943601
+ .long 340530969
+ .long 1069933875
+ .long 1800682930
+ .long 1069924160
+ .long 4280111857
+ .long 1069914456
+ .long 3372322013
+ .long 1069904764
+ .long 3261138386
+ .long 1069895083
+ .long 3835803021
+ .long 1069885413
+ .long 690973253
+ .long 1069875755
+ .long 2306589128
+ .long 1069866107
+ .long 4278067876
+ .long 1069856470
+ .long 2201204065
+ .long 1069846845
+ .long 262102455
+ .long 1069837231
+ .long 2647241692
+ .long 1069827627
+ .long 658570708
+ .long 1069818035
+ .long 2778278092
+ .long 1069808453
+ .long 309052031
+ .long 1069798883
+ .long 1733817001
+ .long 1069789323
+ .long 2650961017
+ .long 1069779774
+ .long 2954203158
+ .long 1069770236
+ .long 2537624622
+ .long 1069760709
+ .long 1295667077
+ .long 1069751193
+ .long 3418098326
+ .long 1069741687
+ .long 210141498
+ .long 1069732193
+ .long 157244505
+ .long 1069722709
+ .long 3155274661
+ .long 1069713235
+ .long 510517079
+ .long 1069703773
+ .long 709476866
+ .long 1069694321
+ .long 3649073763
+ .long 1069684879
+ .long 636640577
+ .long 1069675449
+ .long 159725394
+ .long 1069666029
+ .long 2116286250
+ .long 1069656619
+ .long 2109656884
+ .long 1069647220
+ .long 38479793
+ .long 1069637832
+ .long 96704707
+ .long 1069628454
+ .long 2183652476
+ .long 1069619086
+ .long 1904013563
+ .long 1069609729
+ .long 3452748429
+ .long 1069600382
+ .long 2435216853
+ .long 1069591046
+ .long 3047045639
+ .long 1069581720
+ .long 894257944
+ .long 1069572405
+ .long 173141005
+ .long 1069563100
+ .long 785342784
+ .long 1069553805
+ .long 970708326
+ .long 1069541521
+ .long 2645916898
+ .long 1069522972
+ .long 2106590683
+ .long 1069504444
+ .long 3453588195
+ .long 1069485936
+ .long 2198475040
+ .long 1069467449
+ .long 2443390270
+ .long 1069448982
+ .long 3996141691
+ .long 1069430535
+ .long 2370203065
+ .long 1069412109
+ .long 1669613218
+ .long 1069393703
+ .long 1704071394
+ .long 1069375317
+ .long 2283901796
+ .long 1069356951
+ .long 3220050856
+ .long 1069338605
+ .long 29117219
+ .long 1069320280
+ .long 1113218225
+ .long 1069301974
+ .long 1990183441
+ .long 1069283688
+ .long 2473421172
+ .long 1069265422
+ .long 2376948508
+ .long 1069247176
+ .long 1515388672
+ .long 1069228950
+ .long 3998935692
+ .long 1069210743
+ .long 1053482595
+ .long 1069192557
+ .long 1085389880
+ .long 1069174390
+ .long 3911679148
+ .long 1069156242
+ .long 760030536
+ .long 1069138115
+ .long 38583924
+ .long 1069120007
+ .long 1566132617
+ .long 1069101918
+ .long 867088104
+ .long 1069083849
+ .long 2056379433
+ .long 1069065799
+ .long 659581512
+ .long 1069047769
+ .long 792781808
+ .long 1069029758
+ .long 2277675977
+ .long 1069011766
+ .long 641565395
+ .long 1068993794
+ .long 2256601
+ .long 1068975841
+ .long 183156961
+ .long 1068957907
+ .long 1008239542
+ .long 1068939992
+ .long 2302040698
+ .long 1068922096
+ .long 3889657667
+ .long 1068904219
+ .long 1301778891
+ .long 1068886362
+ .long 2954550821
+ .long 1068868523
+ .long 84804484
+ .long 1068850704
+ .long 1109791498
+ .long 1068832903
+ .long 1562410668
+ .long 1068815121
+ .long 1271074840
+ .long 1068797358
+ .long 64741293
+ .long 1068779614
+ .long 2067876735
+ .long 1068761888
+ .long 2815553124
+ .long 1068744181
+ .long 2138347284
+ .long 1068726493
+ .long 4162338635
+ .long 1068708823
+ .long 129237761
+ .long 1068691173
+ .long 2756122533
+ .long 1068673540
+ .long 3285762921
+ .long 1068655926
+ .long 1551389854
+ .long 1068638331
+ .long 1681725707
+ .long 1068620754
+ .long 3511047527
+ .long 1068603195
+ .long 2579184841
+ .long 1068585655
+ .long 3016419377
+ .long 1068568133
+ .long 363613719
+ .long 1068550630
+ .long 3047045639
+ .long 1068533144
+ .long 2313634884
+ .long 1068515677
+ .long 296456961
+ .long 1068497513
+ .long 1367328035
+ .long 1068462651
+ .long 3221665916
+ .long 1068427825
+ .long 1242258971
+ .long 1068393036
+ .long 3697798734
+ .long 1068358282
+ .long 1678104687
+ .long 1068323565
+ .long 3453858508
+ .long 1068288883
+ .long 116861598
+ .long 1068254238
+ .long 4234736672
+ .long 1068219627
+ .long 2606283437
+ .long 1068185053
+ .long 3506114812
+ .long 1068150514
+ .long 2324914545
+ .long 1068116011
+ .long 3044269692
+ .long 1068081543
+ .long 1056797460
+ .long 1068047111
+ .long 346010435
+ .long 1068012714
+ .long 601410756
+ .long 1067978352
+ .long 1513453498
+ .long 1067944025
+ .long 2773542775
+ .long 1067909733
+ .long 4074027864
+ .long 1067875476
+ .long 813232056
+ .long 1067841255
+ .long 1275317999
+ .long 1067807068
+ .long 860480111
+ .long 1067772916
+ .long 3559777258
+ .long 1067738798
+ .long 480292498
+ .long 1067704716
+ .long 4204867691
+ .long 1067670667
+ .long 1547459502
+ .long 1067636654
+ .long 797775935
+ .long 1067602675
+ .long 1656501562
+ .long 1067568730
+ .long 3825228429
+ .long 1067534819
+ .long 2711485098
+ .long 1067500943
+ .long 2313634884
+ .long 1067467101
+ .long 376973398
+ .long 1067416219
+ .long 672386641
+ .long 1067348671
+ .long 630691842
+ .long 1067281191
+ .long 3960777458
+ .long 1067213778
+ .long 1488394470
+ .long 1067146434
+ .long 1220920383
+ .long 1067079157
+ .long 2577548405
+ .long 1067011947
+ .long 684247743
+ .long 1066944805
+ .long 3553625811
+ .long 1066877729
+ .long 2020150230
+ .long 1066810721
+ .long 4099880293
+ .long 1066743779
+ .long 630721729
+ .long 1066676905
+ .long 3927125538
+ .long 1066610096
+ .long 535440936
+ .long 1066543355
+ .long 2773516144
+ .long 1066476679
+ .long 1486051399
+ .long 1066410070
+ .long 808661260
+ .long 1066285262
+ .long 2227658502
+ .long 1066152307
+ .long 1813447778
+ .long 1066019484
+ .long 2743640746
+ .long 1065886792
+ .long 3904192454
+ .long 1065754231
+ .long 4184355568
+ .long 1065621801
+ .long 2476667369
+ .long 1065489502
+ .long 1971904113
+ .long 1065357333
+ .long 3138267131
+ .long 1065097372
+ .long 341338964
+ .long 1064833554
+ .long 1954052322
+ .long 1064569994
+ .long 1498975029
+ .long 1064306693
+ .long 2190050752
+ .long 1063782660
+ .long 1440057502
+ .long 1063257089
+ .long 1432705161
+ .long 1062208000
+ .long 0
+ .long 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2900053258
+ .long 1070176668
+ .long 2900053258
+ .long 1070176668
+ .long 1208323809
+ .long 3218079745
+ .long 1208323809
+ .long 3218079745
+ .long 1431651269
+ .long 1070945621
+ .long 1431651269
+ .long 1070945621
+ .long 4294965279
+ .long 3219128319
+ .long 4294965279
+ .long 3219128319
+ .long 4294967295
+ .long 1048575
+ .long 4294967295
+ .long 1048575
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1062207488
+ .long 0
+ .long 1062207488
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967295
+ .long 3220176895
+ .long 4294967295
+ .long 3220176895
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294963200
+ .long 2134900735
+ .long 4294963200
+ .long 2134900735
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 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 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1040187392
+ .long 0
+ .long 1040187392
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294966272
+ .long 4294967295
+ .long 4294966272
+ .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 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 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 2146435072
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2134900736
+ .long 0
+ .long 2134900736
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4277811695
+ .long 1072049730
+ .long 4277811695
+ .long 1072049730
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1104150528
+ .long 0
+ .long 1104150528
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967290
+ .long 1071120383
+ .long 4294967290
+ .long 1071120383
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294967290
+ .long 1070858239
+ .long 4294967290
+ .long 1070858239
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 333042728
+ .long 1070694400
+ .long 333042728
+ .long 1070694400
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 635310127
+ .long 1070563328
+ .long 635310127
+ .long 1070563328
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 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 2147483648
+ .long 0
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1077870592
+ .long 0
+ .long 1077870592
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294966784
+ .long 0
+ .long 4294966784
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4160749568
+ .long 4294967295
+ .long 4160749568
+ .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 4278190080
+ .long 4294967295
+ .long 4278190080
+ .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 4294963200
+ .long 4294967295
+ .long 4294963200
+ .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 1041235968
+ .long 0
+ .long 1041235968
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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_dacosh_data_internal,@object
+ .size __svml_dacosh_data_internal,14720
+ .align 16
+
+.FLT_24:
+ .long 0x00000000,0x43380000,0x00000000,0x43380000
+ .type .FLT_24,@object
+ .size .FLT_24,16
+ .align 8
+
+__dacosh_la_CoutTab:
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 0
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 4293918720
+ .type __dacosh_la_CoutTab,@object
+ .size __dacosh_la_CoutTab,32
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE version of vectorized acosh, 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_acosh _ZGVdN4v_acosh_sse_wrapper
+#include "../svml_d_acosh4_core.S"
new file mode 100644
@@ -0,0 +1,27 @@
+/* Multiple versions of vectorized acosh, 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_acosh
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN4v_acosh, __GI__ZGVdN4v_acosh, __redirect__ZGVdN4v_acosh)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,5072 @@
+/* Function acosh vectorized with AVX2.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute acosh(x) as log(x + sqrt(x*x - 1))
+ *
+ * Special cases:
+ *
+ * acosh(NaN) = quiet NaN, and raise invalid exception
+ * acosh(-INF) = NaN
+ * acosh(+INF) = +INF
+ * acosh(x) = NaN if x < 1
+ * acosh(1) = +0
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.avx2,"ax",@progbits
+ENTRY(_ZGVdN4v_acosh_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_dacosh_data_internal(%rip), %rax
+ vmovups %ymm8, 224(%rsp)
+ .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+
+/* Load the constant 1 and possibly other stuff */
+ vmovupd 12864+__svml_dacosh_data_internal(%rip), %ymm8
+ vmovups %ymm9, 192(%rsp)
+ vmovups %ymm12, 160(%rsp)
+ vmovups %ymm10, 32(%rsp)
+ vmovups %ymm11, 96(%rsp)
+ vmovups %ymm14, 288(%rsp)
+ vmovups %ymm13, 256(%rsp)
+ vmovups %ymm15, 320(%rsp)
+ .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+ vmovapd %ymm0, %ymm9
+ vmovapd %ymm8, %ymm1
+ vfmsub231pd %ymm9, %ymm9, %ymm1
+
+/*
+ * Now 1 / (1 + d)
+ * = 1 / (1 + (sqrt(1 - e) - 1))
+ * = 1 / sqrt(1 - e)
+ * = 1 + 1/2 * e + 3/8 * e^2 + 5/16 * e^3 + 35/128 * e^4 +
+ * 63/256 * e^5 + 231/1024 * e^6 + ....
+ * So compute the first five nonconstant terms of that, so that
+ * we have a relative correction (1 + Corr) to apply to S etc.
+ * C1 = 1/2
+ * C2 = 3/8
+ * C3 = 5/16
+ * C4 = 35/128
+ * C5 = 63/256
+ */
+ vmovupd 13952+__svml_dacosh_data_internal(%rip), %ymm0
+
+/*
+ * Check that 1 < X < +inf; otherwise go to the callout function.
+ * We need the callout for X = 1 to avoid division by zero below.
+ * This test ensures that callout handles NaN and either infinity.
+ */
+ vcmpnle_uqpd 14016+__svml_dacosh_data_internal(%rip), %ymm9, %ymm5
+ vcmpngt_uqpd %ymm8, %ymm9, %ymm4
+
+/* dU is needed later on */
+ vsubpd %ymm8, %ymm9, %ymm6
+
+/*
+ * The following computation can go wrong for very large X, e.g.
+ * the X^2 - 1 = U * V can overflow. But for large X we have
+ * acosh(X) / log(2 X) - 1 =~= 1/(4 * X^2), so for X >= 2^30
+ * we can just later stick X back into the log and tweak up the exponent.
+ * Actually we scale X by 2^-30 and tweak the exponent up by 31,
+ * to stay in the safe range for the later log computation.
+ * Compute a flag now telling us when to do this.
+ */
+ vcmplt_oqpd 13632+__svml_dacosh_data_internal(%rip), %ymm9, %ymm7
+
+/*
+ * do the same thing but with NR iteration
+ * Finally, express Y + W = U * V accurately where Y has <= 29 bits
+ */
+ vandpd 14400+__svml_dacosh_data_internal(%rip), %ymm1, %ymm12
+
+/*
+ * Compute R = 1/sqrt(Y + W) * (1 + d)
+ * Force R to <= 12 significant bits in case it isn't already
+ * This means that R * Y and R^2 * Y are exactly representable.
+ */
+ vcvtpd2ps %ymm12, %xmm3
+ vsubpd %ymm12, %ymm1, %ymm13
+ vrsqrtps %xmm3, %xmm10
+ vcvtps2pd %xmm10, %ymm11
+
+/* Now multiplex to the case X = 2^-30 * input, Xl = dL = 0 in the "big" case. */
+ vmulpd 14528+__svml_dacosh_data_internal(%rip), %ymm9, %ymm10
+ vandpd 14272+__svml_dacosh_data_internal(%rip), %ymm11, %ymm14
+ vorpd %ymm4, %ymm5, %ymm2
+
+/*
+ * Compute S = (Y/sqrt(Y + W)) * (1 + d)
+ * and T = (W/sqrt(Y + W)) * (1 + d)
+ * so that S + T = sqrt(Y + W) * (1 + d)
+ * S is exact, and the rounding error in T is OK.
+ */
+ vmulpd %ymm14, %ymm12, %ymm5
+ vmulpd %ymm13, %ymm14, %ymm4
+
+/*
+ * Compute e = -(2 * d + d^2)
+ * The first FMR is exact, and the rounding error in the other is acceptable
+ * since d and e are ~ 2^-12
+ */
+ vmovapd %ymm8, %ymm15
+ vfnmadd231pd %ymm5, %ymm14, %ymm15
+
+/*
+ * For low-accuracy versions, the computation can be done
+ * just as U + ((S + T) + (S + T) * Corr)
+ */
+ vaddpd %ymm4, %ymm5, %ymm1
+ vfnmadd231pd %ymm4, %ymm14, %ymm15
+ vfmadd213pd 13888+__svml_dacosh_data_internal(%rip), %ymm15, %ymm0
+ vfmadd213pd 13824+__svml_dacosh_data_internal(%rip), %ymm15, %ymm0
+ vfmadd213pd 13760+__svml_dacosh_data_internal(%rip), %ymm15, %ymm0
+ vfmadd213pd 13696+__svml_dacosh_data_internal(%rip), %ymm15, %ymm0
+ vmovmskpd %ymm2, %edx
+ vmulpd %ymm0, %ymm15, %ymm2
+ vfmadd213pd %ymm1, %ymm2, %ymm1
+ vaddpd %ymm1, %ymm6, %ymm6
+
+/*
+ * Now we feed into the log1p code, using H in place of _VARG1 and
+ * also adding L into Xl.
+ * compute 1+x as high, low parts
+ */
+ vmaxpd %ymm6, %ymm8, %ymm1
+ vminpd %ymm6, %ymm8, %ymm3
+ vandpd 12928+__svml_dacosh_data_internal(%rip), %ymm6, %ymm0
+ vcmplt_oqpd 12992+__svml_dacosh_data_internal(%rip), %ymm0, %ymm5
+ vaddpd %ymm3, %ymm1, %ymm4
+ vorpd 13056+__svml_dacosh_data_internal(%rip), %ymm5, %ymm2
+ vandpd %ymm2, %ymm4, %ymm11
+ vblendvpd %ymm7, %ymm11, %ymm10, %ymm5
+ vsubpd %ymm11, %ymm1, %ymm6
+
+/* 2^ (-10-exp(X) ) */
+ vmovupd 13504+__svml_dacosh_data_internal(%rip), %ymm2
+ vaddpd %ymm6, %ymm3, %ymm12
+
+/* exponent bits */
+ vpsrlq $20, %ymm5, %ymm3
+
+/*
+ * Now resume the main code.
+ * preserve mantissa, set input exponent to 2^(-10)
+ */
+ vandpd 12544+__svml_dacosh_data_internal(%rip), %ymm5, %ymm13
+ vorpd 12608+__svml_dacosh_data_internal(%rip), %ymm13, %ymm14
+
+/* reciprocal approximation good to at least 11 bits */
+ vcvtpd2ps %ymm14, %xmm15
+ vrcpps %xmm15, %xmm0
+ vandpd %ymm7, %ymm12, %ymm4
+ vcvtps2pd %xmm0, %ymm10
+
+/* exponent of X needed to scale Xl */
+ vandps 13440+__svml_dacosh_data_internal(%rip), %ymm5, %ymm1
+ vpsubq %ymm1, %ymm2, %ymm11
+ vextractf128 $1, %ymm3, %xmm6
+ vshufps $221, %xmm6, %xmm3, %xmm12
+
+/* biased exponent in DP format */
+ vcvtdq2pd %xmm12, %ymm14
+
+/* round reciprocal to nearest integer, will have 1+9 mantissa bits */
+ vroundpd $0, %ymm10, %ymm3
+
+/* Add 31 to the exponent in the "large" case to get log(2 * input) */
+ vaddpd 14208+__svml_dacosh_data_internal(%rip), %ymm14, %ymm13
+
+/* scale DblRcp */
+ vmulpd %ymm11, %ymm3, %ymm2
+ vblendvpd %ymm7, %ymm14, %ymm13, %ymm1
+
+/* exponent*log(2.0) */
+ vmovupd 13248+__svml_dacosh_data_internal(%rip), %ymm13
+
+/* argument reduction */
+ vfmsub213pd %ymm8, %ymm2, %ymm5
+ vmulpd %ymm2, %ymm4, %ymm2
+ vmovupd 12480+__svml_dacosh_data_internal(%rip), %ymm4
+
+/*
+ * prepare table index
+ * table lookup
+ */
+ vpsrlq $40, %ymm3, %ymm7
+ vcmplt_oqpd %ymm3, %ymm13, %ymm3
+ vandpd 13312+__svml_dacosh_data_internal(%rip), %ymm3, %ymm14
+ vorpd 13376+__svml_dacosh_data_internal(%rip), %ymm14, %ymm15
+ vsubpd %ymm15, %ymm1, %ymm1
+ vmulpd 13568+__svml_dacosh_data_internal(%rip), %ymm1, %ymm3
+ vaddpd %ymm2, %ymm5, %ymm1
+ vsubpd %ymm5, %ymm1, %ymm5
+ vfmadd213pd 12512+__svml_dacosh_data_internal(%rip), %ymm1, %ymm4
+ vmulpd %ymm1, %ymm1, %ymm8
+ vsubpd %ymm5, %ymm2, %ymm2
+
+/* polynomial */
+ vmovupd 12416+__svml_dacosh_data_internal(%rip), %ymm5
+ vfmadd213pd 12448+__svml_dacosh_data_internal(%rip), %ymm1, %ymm5
+ vfmadd213pd %ymm4, %ymm8, %ymm5
+
+/*
+ * reconstruction
+ * VQFMA( D, R, P, R2, R );
+ */
+ vfmadd213pd %ymm2, %ymm8, %ymm5
+ vaddpd %ymm5, %ymm1, %ymm4
+ vextractf128 $1, %ymm7, %xmm10
+ vmovd %xmm7, %ecx
+ vmovd %xmm10, %r9d
+ movslq %ecx, %rcx
+ vpextrd $2, %xmm7, %r8d
+ movslq %r9d, %r9
+ vpextrd $2, %xmm10, %r10d
+ movslq %r8d, %r8
+ movslq %r10d, %r10
+ vmovsd (%rax,%rcx), %xmm0
+ vmovsd (%rax,%r9), %xmm11
+ vmovhpd (%rax,%r8), %xmm0, %xmm6
+ vmovhpd (%rax,%r10), %xmm11, %xmm12
+ vinsertf128 $1, %xmm12, %ymm6, %ymm0
+ vaddpd %ymm4, %ymm0, %ymm0
+ vaddpd %ymm0, %ymm3, %ymm0
+ testl %edx, %edx
+ jne L(2)
+
+L(1):
+ vmovups 224(%rsp), %ymm8
+ cfi_restore(91)
+ vmovups 192(%rsp), %ymm9
+ cfi_restore(92)
+ vmovups 32(%rsp), %ymm10
+ cfi_restore(93)
+ vmovups 96(%rsp), %ymm11
+ cfi_restore(94)
+ vmovups 160(%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, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+
+L(2):
+ vmovupd %ymm9, 64(%rsp)
+ vmovupd %ymm0, 128(%rsp)
+ je L(1)
+ xorl %eax, %eax
+ vzeroupper
+ movq %rsi, 8(%rsp)
+ movq %rdi, (%rsp)
+ movq %r12, 24(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 16(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+L(3):
+ btl %r12d, %r13d
+ jc L(5)
+
+L(4):
+ incl %r12d
+ cmpl $4, %r12d
+ jl L(3)
+ movq 8(%rsp), %rsi
+ cfi_restore(4)
+ movq (%rsp), %rdi
+ cfi_restore(5)
+ movq 24(%rsp), %r12
+ cfi_restore(12)
+ movq 16(%rsp), %r13
+ cfi_restore(13)
+ vmovupd 128(%rsp), %ymm0
+ jmp L(1)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+
+L(5):
+ lea 64(%rsp,%r12,8), %rdi
+ lea 128(%rsp,%r12,8), %rsi
+ call __svml_dacosh_cout_rare_internal
+ jmp L(4)
+
+END(_ZGVdN4v_acosh_avx2)
+
+ .align 16,0x90
+
+__svml_dacosh_cout_rare_internal:
+
+ cfi_startproc
+
+ movzwl 6(%rdi), %eax
+ andl $32752, %eax
+ movsd (%rdi), %xmm0
+ cmpl $32752, %eax
+ je L(9)
+
+L(6):
+ movsd %xmm0, -8(%rsp)
+ cmpl $0, -8(%rsp)
+ jne L(8)
+ cmpl $1072693248, -4(%rsp)
+ je L(7)
+ cmpl $2146435072, -4(%rsp)
+ jne L(8)
+ movsd %xmm0, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(7):
+ movq 8+__dacosh_la_CoutTab(%rip), %rax
+ movq %rax, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(8):
+ movsd 16+__dacosh_la_CoutTab(%rip), %xmm0
+ movl $1, %eax
+ mulsd 8+__dacosh_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, (%rsi)
+ ret
+
+L(9):
+ testl $1048575, 4(%rdi)
+ jne L(10)
+ cmpl $0, (%rdi)
+ je L(6)
+
+L(10):
+ mulsd %xmm0, %xmm0
+ xorl %eax, %eax
+ movsd %xmm0, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_dacosh_cout_rare_internal,@function
+ .size __svml_dacosh_cout_rare_internal,.-__svml_dacosh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_dacosh_data_internal:
+ .long 3715793664
+ .long 3230016299
+ .long 4013928704
+ .long 3189565726
+ .long 3699038248
+ .long 3230016303
+ .long 4255595370
+ .long 3189567439
+ .long 3648859040
+ .long 3230016307
+ .long 1732833791
+ .long 3189567296
+ .long 3565385952
+ .long 3230016311
+ .long 2485752410
+ .long 3189567274
+ .long 3448748152
+ .long 3230016315
+ .long 3514744523
+ .long 3189567800
+ .long 3299074072
+ .long 3230016319
+ .long 3686511262
+ .long 3189567474
+ .long 3116491376
+ .long 3230016323
+ .long 716063611
+ .long 3189567908
+ .long 2901127016
+ .long 3230016327
+ .long 354437295
+ .long 3189567291
+ .long 2653107184
+ .long 3230016331
+ .long 3777462366
+ .long 3189567264
+ .long 2372557360
+ .long 3230016335
+ .long 3590663412
+ .long 3189567498
+ .long 2059602304
+ .long 3230016339
+ .long 1680795031
+ .long 3189567428
+ .long 1714366048
+ .long 3230016343
+ .long 2010344982
+ .long 3189567986
+ .long 1336971936
+ .long 3230016347
+ .long 166254822
+ .long 3189567184
+ .long 927542568
+ .long 3230016351
+ .long 59552610
+ .long 3189567972
+ .long 486199888
+ .long 3230016355
+ .long 2268824919
+ .long 3189567664
+ .long 13065112
+ .long 3230016359
+ .long 3005381643
+ .long 3189567835
+ .long 3803226080
+ .long 3230016362
+ .long 4018973165
+ .long 3189567825
+ .long 3266868056
+ .long 3230016366
+ .long 3693925101
+ .long 3189567457
+ .long 2699077504
+ .long 3230016370
+ .long 4005905743
+ .long 3189567697
+ .long 2099972936
+ .long 3230016374
+ .long 3580935118
+ .long 3189567215
+ .long 1469672176
+ .long 3230016378
+ .long 2928784295
+ .long 3189567129
+ .long 808292392
+ .long 3230016382
+ .long 674298833
+ .long 3189567553
+ .long 115950104
+ .long 3230016386
+ .long 2555938320
+ .long 3189567208
+ .long 3687728456
+ .long 3230016389
+ .long 532458218
+ .long 3189567130
+ .long 2933808064
+ .long 3230016393
+ .long 3888913110
+ .long 3189567192
+ .long 2149270784
+ .long 3230016397
+ .long 2365955494
+ .long 3189567756
+ .long 1334230552
+ .long 3230016401
+ .long 3325722981
+ .long 3189567206
+ .long 488800640
+ .long 3230016405
+ .long 1496133617
+ .long 3189567683
+ .long 3908061016
+ .long 3230016408
+ .long 1824836379
+ .long 3189567490
+ .long 3002189112
+ .long 3230016412
+ .long 1222174320
+ .long 3189567837
+ .long 2066263648
+ .long 3230016416
+ .long 2472769660
+ .long 3189567285
+ .long 1100395408
+ .long 3230016420
+ .long 447932460
+ .long 3189567455
+ .long 104694584
+ .long 3230016424
+ .long 1006807684
+ .long 3189567460
+ .long 3374238048
+ .long 3230016427
+ .long 4121834935
+ .long 3189567556
+ .long 2319200184
+ .long 3230016431
+ .long 3019906587
+ .long 3189567664
+ .long 1234656664
+ .long 3230016435
+ .long 3882744783
+ .long 3189567930
+ .long 120715280
+ .long 3230016439
+ .long 1927363170
+ .long 3189567242
+ .long 3272450504
+ .long 3230016442
+ .long 8203115
+ .long 3189567876
+ .long 2100034368
+ .long 3230016446
+ .long 1260625560
+ .long 3189567855
+ .long 898540192
+ .long 3230016450
+ .long 1791679111
+ .long 3189567639
+ .long 3963040720
+ .long 3230016453
+ .long 831133439
+ .long 3189567590
+ .long 2703706240
+ .long 3230016457
+ .long 2803140504
+ .long 3189567482
+ .long 1415608352
+ .long 3230016461
+ .long 2955844462
+ .long 3189568058
+ .long 98850816
+ .long 3230016465
+ .long 4017967070
+ .long 3189567455
+ .long 3048504096
+ .long 3230016468
+ .long 3974385451
+ .long 3189567871
+ .long 1674736240
+ .long 3230016472
+ .long 2424114556
+ .long 3189567887
+ .long 272616624
+ .long 3230016476
+ .long 4261883032
+ .long 3189567073
+ .long 3137214056
+ .long 3230016479
+ .long 3716750895
+ .long 3189567522
+ .long 1678694944
+ .long 3230016483
+ .long 498025304
+ .long 3189567180
+ .long 192127016
+ .long 3230016487
+ .long 1011852160
+ .long 3189567511
+ .long 2972577480
+ .long 3230016490
+ .long 558940916
+ .long 3189567850
+ .long 1430211120
+ .long 3230016494
+ .long 2550865739
+ .long 3189567935
+ .long 4155061376
+ .long 3230016497
+ .long 1930847170
+ .long 3189567371
+ .long 2557291968
+ .long 3230016501
+ .long 1716354804
+ .long 3189567130
+ .long 931967984
+ .long 3230016505
+ .long 2729403392
+ .long 3189567981
+ .long 3574154016
+ .long 3230016508
+ .long 1067280599
+ .long 3189567890
+ .long 1894012232
+ .long 3230016512
+ .long 2094260282
+ .long 3189567604
+ .long 186606176
+ .long 3230016516
+ .long 3897933165
+ .long 3189568046
+ .long 2746998904
+ .long 3230016519
+ .long 1935720459
+ .long 3189567701
+ .long 985351064
+ .long 3230016523
+ .long 2170344821
+ .long 3189567164
+ .long 3491691984
+ .long 3230016526
+ .long 4220979537
+ .long 3189567547
+ .long 1676181328
+ .long 3230016530
+ .long 1953924393
+ .long 3189567854
+ .long 4128847448
+ .long 3230016533
+ .long 1689829067
+ .long 3189567468
+ .long 2259849008
+ .long 3230016537
+ .long 2367753130
+ .long 3189567619
+ .long 364246088
+ .long 3230016541
+ .long 2263309073
+ .long 3189567722
+ .long 2737098280
+ .long 3230016544
+ .long 2366756869
+ .long 3189567856
+ .long 788562816
+ .long 3230016548
+ .long 2294653975
+ .long 3189567145
+ .long 3108665616
+ .long 3230016551
+ .long 1786494117
+ .long 3189567254
+ .long 1107562960
+ .long 3230016555
+ .long 3655887416
+ .long 3189567689
+ .long 3375279848
+ .long 3230016558
+ .long 1178948625
+ .long 3189567241
+ .long 1321971608
+ .long 3230016562
+ .long 1620080441
+ .long 3189567466
+ .long 3537662304
+ .long 3230016565
+ .long 154455618
+ .long 3189567981
+ .long 1432506360
+ .long 3230016569
+ .long 3128192125
+ .long 3189567889
+ .long 3596526920
+ .long 3230016572
+ .long 2026842750
+ .long 3189567212
+ .long 1439877480
+ .long 3230016576
+ .long 1384431897
+ .long 3189567284
+ .long 3552580280
+ .long 3230016579
+ .long 1999983129
+ .long 3189568079
+ .long 1344787944
+ .long 3230016583
+ .long 4035436820
+ .long 3189567579
+ .long 3406521808
+ .long 3230016586
+ .long 77799817
+ .long 3189567285
+ .long 1147933592
+ .long 3230016590
+ .long 1261060207
+ .long 3189567477
+ .long 3159043768
+ .long 3230016593
+ .long 2102717775
+ .long 3189567605
+ .long 850003184
+ .long 3230016597
+ .long 161472469
+ .long 3189567688
+ .long 2810831440
+ .long 3230016600
+ .long 1937336881
+ .long 3189567665
+ .long 451678520
+ .long 3230016604
+ .long 2268353549
+ .long 3189567773
+ .long 2362563168
+ .long 3230016607
+ .long 1785871595
+ .long 3189567889
+ .long 4248601816
+ .long 3230016610
+ .long 2434669991
+ .long 3189567898
+ .long 1814910472
+ .long 3230016614
+ .long 2666999375
+ .long 3189568058
+ .long 3651506624
+ .long 3230016617
+ .long 1033139811
+ .long 3189567312
+ .long 1168538136
+ .long 3230016621
+ .long 4004618418
+ .long 3189567740
+ .long 2956021672
+ .long 3230016624
+ .long 3799928764
+ .long 3189567751
+ .long 424104288
+ .long 3230016628
+ .long 3650233137
+ .long 3189567549
+ .long 2162801816
+ .long 3230016631
+ .long 437313833
+ .long 3189567438
+ .long 3877227800
+ .long 3230016634
+ .long 2138293494
+ .long 3189567140
+ .long 1272495376
+ .long 3230016638
+ .long 2891370752
+ .long 3189567168
+ .long 2938619176
+ .long 3230016641
+ .long 1704142730
+ .long 3189567114
+ .long 285744240
+ .long 3230016645
+ .long 500817607
+ .long 3189568035
+ .long 1903884424
+ .long 3230016648
+ .long 3102571944
+ .long 3189567668
+ .long 3498151272
+ .long 3230016651
+ .long 2374193154
+ .long 3189567933
+ .long 773655960
+ .long 3230016655
+ .long 2898331636
+ .long 3189568089
+ .long 2320411168
+ .long 3230016658
+ .long 1983295500
+ .long 3189567113
+ .long 3843527280
+ .long 3230016661
+ .long 2132853542
+ .long 3189567093
+ .long 1048114320
+ .long 3230016665
+ .long 3551155364
+ .long 3189567407
+ .long 2524183824
+ .long 3230016668
+ .long 2564000663
+ .long 3189567090
+ .long 3976845048
+ .long 3230016671
+ .long 361581803
+ .long 3189567196
+ .long 1111206880
+ .long 3230016675
+ .long 696765230
+ .long 3189568040
+ .long 2517279744
+ .long 3230016678
+ .long 941542475
+ .long 3189567463
+ .long 3900171776
+ .long 3230016681
+ .long 2377895552
+ .long 3189567282
+ .long 964990760
+ .long 3230016685
+ .long 1173605489
+ .long 3189567454
+ .long 2301746008
+ .long 3230016688
+ .long 3096720313
+ .long 3189567400
+ .long 3615544576
+ .long 3230016691
+ .long 1942008121
+ .long 3189567335
+ .long 611493160
+ .long 3230016695
+ .long 3375481119
+ .long 3189567537
+ .long 1879599992
+ .long 3230016698
+ .long 4103239143
+ .long 3189567624
+ .long 3124971056
+ .long 3230016701
+ .long 3773474925
+ .long 3189567869
+ .long 52711992
+ .long 3230016705
+ .long 2465315445
+ .long 3189567444
+ .long 1252829960
+ .long 3230016708
+ .long 1041581158
+ .long 3189567781
+ .long 2430429904
+ .long 3230016711
+ .long 166620501
+ .long 3189567739
+ .long 3585583704
+ .long 3230016714
+ .long 2379237630
+ .long 3189567984
+ .long 423395616
+ .long 3230016718
+ .long 134834559
+ .long 3189567178
+ .long 1533871416
+ .long 3230016721
+ .long 1449318760
+ .long 3189567373
+ .long 2622114680
+ .long 3230016724
+ .long 3042372984
+ .long 3189567127
+ .long 3688195920
+ .long 3230016727
+ .long 1265290101
+ .long 3189567921
+ .long 437218048
+ .long 3230016731
+ .long 2248549362
+ .long 3189567262
+ .long 1459185496
+ .long 3230016734
+ .long 1293250365
+ .long 3189567151
+ .long 2459200496
+ .long 3230016737
+ .long 313786605
+ .long 3189567180
+ .long 3437332240
+ .long 3230016740
+ .long 3289151823
+ .long 3189567872
+ .long 98682312
+ .long 3230016744
+ .long 2693758821
+ .long 3189567877
+ .long 1033253848
+ .long 3230016747
+ .long 4237443192
+ .long 3189567301
+ .long 1946147760
+ .long 3230016750
+ .long 4099404586
+ .long 3189567972
+ .long 2837431968
+ .long 3230016753
+ .long 343640666
+ .long 3189567552
+ .long 3707174040
+ .long 3230016756
+ .long 4238401458
+ .long 3189567983
+ .long 260473960
+ .long 3230016760
+ .long 21423548
+ .long 3189567559
+ .long 1087333264
+ .long 3230016763
+ .long 3515278593
+ .long 3189567309
+ .long 1892851296
+ .long 3230016766
+ .long 629106375
+ .long 3189567166
+ .long 2677094384
+ .long 3230016769
+ .long 2048670044
+ .long 3189567227
+ .long 3440128544
+ .long 3230016772
+ .long 3739217292
+ .long 3189568009
+ .long 4182019504
+ .long 3230016775
+ .long 3662039444
+ .long 3189567618
+ .long 607865368
+ .long 3230016779
+ .long 1766486991
+ .long 3189567112
+ .long 1307665824
+ .long 3230016782
+ .long 512689457
+ .long 3189567670
+ .long 1986518392
+ .long 3230016785
+ .long 1704577378
+ .long 3189567760
+ .long 2644487576
+ .long 3230016788
+ .long 4001935135
+ .long 3189567473
+ .long 3281637576
+ .long 3230016791
+ .long 1184452342
+ .long 3189567735
+ .long 3898032312
+ .long 3230016794
+ .long 2714793956
+ .long 3189567464
+ .long 198768096
+ .long 3230016798
+ .long 3657654418
+ .long 3189567905
+ .long 773842856
+ .long 3230016801
+ .long 2809688013
+ .long 3189567736
+ .long 1328352328
+ .long 3230016804
+ .long 390727591
+ .long 3189567393
+ .long 1862359256
+ .long 3230016807
+ .long 1135237925
+ .long 3189567248
+ .long 2375926096
+ .long 3230016810
+ .long 1377572509
+ .long 3189567837
+ .long 2869115032
+ .long 3230016813
+ .long 3148383775
+ .long 3189568032
+ .long 3341987960
+ .long 3230016816
+ .long 3809536738
+ .long 3189567313
+ .long 3794606472
+ .long 3230016819
+ .long 4243445934
+ .long 3189568034
+ .long 4227031920
+ .long 3230016822
+ .long 1302642088
+ .long 3189567451
+ .long 344358048
+ .long 3230016826
+ .long 3239125361
+ .long 3189567151
+ .long 736580224
+ .long 3230016829
+ .long 3753161736
+ .long 3189567129
+ .long 1108791648
+ .long 3230016832
+ .long 624357483
+ .long 3189568045
+ .long 1461052568
+ .long 3230016835
+ .long 3153257064
+ .long 3189567338
+ .long 1793422920
+ .long 3230016838
+ .long 2705820149
+ .long 3189567635
+ .long 2105962400
+ .long 3230016841
+ .long 911564860
+ .long 3189567737
+ .long 2398730424
+ .long 3230016844
+ .long 1086958332
+ .long 3189567948
+ .long 2671786152
+ .long 3230016847
+ .long 1598984535
+ .long 3189567210
+ .long 2925188456
+ .long 3230016850
+ .long 4113385879
+ .long 3189567401
+ .long 3158995968
+ .long 3230016853
+ .long 2426812671
+ .long 3189567396
+ .long 3373267048
+ .long 3230016856
+ .long 3480845679
+ .long 3189567359
+ .long 3568059792
+ .long 3230016859
+ .long 3306230729
+ .long 3189567924
+ .long 3743432056
+ .long 3230016862
+ .long 3853821277
+ .long 3189567317
+ .long 3899441408
+ .long 3230016865
+ .long 2049309148
+ .long 3189567699
+ .long 4036145192
+ .long 3230016868
+ .long 2667321817
+ .long 3189567166
+ .long 4153600472
+ .long 3230016871
+ .long 3540670389
+ .long 3189567114
+ .long 4251864072
+ .long 3230016874
+ .long 404207883
+ .long 3189567310
+ .long 36025272
+ .long 3230016878
+ .long 2837617046
+ .long 3189567103
+ .long 96074976
+ .long 3230016881
+ .long 1231280453
+ .long 3189567669
+ .long 137101976
+ .long 3230016884
+ .long 792492437
+ .long 3189567071
+ .long 159162080
+ .long 3230016887
+ .long 2385525292
+ .long 3189567618
+ .long 162310880
+ .long 3230016890
+ .long 3272051015
+ .long 3189567858
+ .long 146603712
+ .long 3230016893
+ .long 623573538
+ .long 3189567881
+ .long 112095672
+ .long 3230016896
+ .long 2151835939
+ .long 3189567451
+ .long 58841608
+ .long 3230016899
+ .long 958006130
+ .long 3189567217
+ .long 4281863424
+ .long 3230016901
+ .long 549948691
+ .long 3189567863
+ .long 4191280920
+ .long 3230016904
+ .long 4177689987
+ .long 3189567217
+ .long 4082115512
+ .long 3230016907
+ .long 2895765193
+ .long 3189567599
+ .long 3954421112
+ .long 3230016910
+ .long 1055606208
+ .long 3189567799
+ .long 3808251392
+ .long 3230016913
+ .long 1966521217
+ .long 3189567351
+ .long 3643659776
+ .long 3230016916
+ .long 1017382758
+ .long 3189567732
+ .long 3460699480
+ .long 3230016919
+ .long 3485890155
+ .long 3189567410
+ .long 3259423472
+ .long 3230016922
+ .long 2657419170
+ .long 3189567140
+ .long 3039884488
+ .long 3230016925
+ .long 4198858220
+ .long 3189568080
+ .long 2802135064
+ .long 3230016928
+ .long 2343740494
+ .long 3189567869
+ .long 2546227480
+ .long 3230016931
+ .long 2423084215
+ .long 3189567957
+ .long 2272213808
+ .long 3230016934
+ .long 3887273856
+ .long 3189567631
+ .long 1980145888
+ .long 3230016937
+ .long 3992755473
+ .long 3189567251
+ .long 1670075336
+ .long 3230016940
+ .long 722498073
+ .long 3189567389
+ .long 1342053552
+ .long 3230016943
+ .long 3573506400
+ .long 3189567965
+ .long 996131728
+ .long 3230016946
+ .long 714695829
+ .long 3189567392
+ .long 632360808
+ .long 3230016949
+ .long 2816704229
+ .long 3189567846
+ .long 250791552
+ .long 3230016952
+ .long 386951333
+ .long 3189567243
+ .long 4146441768
+ .long 3230016954
+ .long 2155319939
+ .long 3189567580
+ .long 3729427184
+ .long 3230016957
+ .long 4227840137
+ .long 3189567931
+ .long 3294765200
+ .long 3230016960
+ .long 1718354212
+ .long 3189567672
+ .long 2842505696
+ .long 3230016963
+ .long 4243880582
+ .long 3189567656
+ .long 2372698352
+ .long 3230016966
+ .long 3784093842
+ .long 3189567302
+ .long 1885392624
+ .long 3230016969
+ .long 2318733051
+ .long 3189567813
+ .long 1380637784
+ .long 3230016972
+ .long 497929746
+ .long 3189567210
+ .long 858482864
+ .long 3230016975
+ .long 3218883783
+ .long 3189567649
+ .long 318976720
+ .long 3230016978
+ .long 3492652862
+ .long 3189567382
+ .long 4057135272
+ .long 3230016980
+ .long 473724673
+ .long 3189568069
+ .long 3483072376
+ .long 3230016983
+ .long 150485010
+ .long 3189567757
+ .long 2891803552
+ .long 3230016986
+ .long 3028900958
+ .long 3189567173
+ .long 2283376816
+ .long 3230016989
+ .long 321242596
+ .long 3189567822
+ .long 1657840008
+ .long 3230016992
+ .long 151305746
+ .long 3189568029
+ .long 1015240760
+ .long 3230016995
+ .long 2208026401
+ .long 3189567184
+ .long 355626480
+ .long 3230016998
+ .long 2487781842
+ .long 3189567931
+ .long 3974011720
+ .long 3230017000
+ .long 2391142094
+ .long 3189567091
+ .long 3280508896
+ .long 3230017003
+ .long 734457618
+ .long 3189568092
+ .long 2570132168
+ .long 3230017006
+ .long 3070902701
+ .long 3189567794
+ .long 1842928168
+ .long 3230017009
+ .long 1110877923
+ .long 3189567896
+ .long 1098943352
+ .long 3230017012
+ .long 3880360185
+ .long 3189567898
+ .long 338223984
+ .long 3230017015
+ .long 391995809
+ .long 3189567294
+ .long 3855783416
+ .long 3230017017
+ .long 4186345433
+ .long 3189567745
+ .long 3061732952
+ .long 3230017020
+ .long 3682852050
+ .long 3189567081
+ .long 2251085560
+ .long 3230017023
+ .long 3057037137
+ .long 3189567617
+ .long 1423886760
+ .long 3230017026
+ .long 3352664894
+ .long 3189567074
+ .long 580181848
+ .long 3230017029
+ .long 1170568982
+ .long 3189567927
+ .long 4014983272
+ .long 3230017031
+ .long 671148579
+ .long 3189567293
+ .long 3138401368
+ .long 3230017034
+ .long 267496658
+ .long 3189567304
+ .long 2245448192
+ .long 3230017037
+ .long 1285167087
+ .long 3189568066
+ .long 1336168336
+ .long 3230017040
+ .long 4259909589
+ .long 3189567788
+ .long 410606184
+ .long 3230017043
+ .long 1494078902
+ .long 3189568031
+ .long 3763773256
+ .long 3230017045
+ .long 261935754
+ .long 3189567685
+ .long 2805778992
+ .long 3230017048
+ .long 3679585605
+ .long 3189567195
+ .long 1831634536
+ .long 3230017051
+ .long 809066513
+ .long 3189567664
+ .long 841383576
+ .long 3230017054
+ .long 385945238
+ .long 3189567897
+ .long 4130036912
+ .long 3230017056
+ .long 825579909
+ .long 3189567603
+ .long 3107703272
+ .long 3230017059
+ .long 3911295427
+ .long 3189567514
+ .long 2069393104
+ .long 3230017062
+ .long 3473784588
+ .long 3189567461
+ .long 1015149384
+ .long 3230017065
+ .long 629861200
+ .long 3189567515
+ .long 4239982216
+ .long 3230017067
+ .long 2659142760
+ .long 3189567083
+ .long 3153999632
+ .long 3230017070
+ .long 1251680713
+ .long 3189567080
+ .long 2052211384
+ .long 3230017073
+ .long 3168705163
+ .long 3189567992
+ .long 934659776
+ .long 3230017076
+ .long 1674797624
+ .long 3189567952
+ .long 4096354216
+ .long 3230017078
+ .long 437847902
+ .long 3189567971
+ .long 2947402064
+ .long 3230017081
+ .long 4024401533
+ .long 3189567960
+ .long 1782812400
+ .long 3230017084
+ .long 786902458
+ .long 3189567873
+ .long 602626840
+ .long 3230017087
+ .long 2593792633
+ .long 3189567812
+ .long 3701854136
+ .long 3230017089
+ .long 3989721221
+ .long 3189567126
+ .long 2490600968
+ .long 3230017092
+ .long 2545746866
+ .long 3189567591
+ .long 1263875768
+ .long 3230017095
+ .long 3115843521
+ .long 3189567377
+ .long 21719488
+ .long 3230017098
+ .long 1730226063
+ .long 3189567307
+ .long 3059140216
+ .long 3230017100
+ .long 690350922
+ .long 3189567892
+ .long 1786244008
+ .long 3230017103
+ .long 3350998585
+ .long 3189567394
+ .long 498038616
+ .long 3230017106
+ .long 1499123379
+ .long 3189568082
+ .long 3489531672
+ .long 3230017108
+ .long 2598665922
+ .long 3189567118
+ .long 2170828712
+ .long 3230017111
+ .long 2436376826
+ .long 3189567935
+ .long 836937048
+ .long 3230017114
+ .long 1977004902
+ .long 3189568052
+ .long 3782863816
+ .long 3230017116
+ .long 4027224619
+ .long 3189567373
+ .long 2418714096
+ .long 3230017119
+ .long 2616869856
+ .long 3189567271
+ .long 1039494712
+ .long 3230017122
+ .long 3775628133
+ .long 3189567616
+ .long 3940212336
+ .long 3230017124
+ .long 419018052
+ .long 3189567909
+ .long 2530971600
+ .long 3230017127
+ .long 150919657
+ .long 3189567379
+ .long 1106778856
+ .long 3230017130
+ .long 2926254537
+ .long 3189567139
+ .long 3962640312
+ .long 3230017132
+ .long 1610863810
+ .long 3189567216
+ .long 2508660136
+ .long 3230017135
+ .long 1166015244
+ .long 3189567672
+ .long 1039844240
+ .long 3230017138
+ .long 645159638
+ .long 3189567685
+ .long 3851198376
+ .long 3230017140
+ .long 2449439581
+ .long 3189567695
+ .long 2352826264
+ .long 3230017143
+ .long 1619104640
+ .long 3189567458
+ .long 839733360
+ .long 3230017146
+ .long 2427070371
+ .long 3189567165
+ .long 3606924968
+ .long 3230017148
+ .long 2166480890
+ .long 3189567544
+ .long 2064504368
+ .long 3230017151
+ .long 2283025905
+ .long 3189567907
+ .long 507476584
+ .long 3230017154
+ .long 3923356754
+ .long 3189567272
+ .long 3230846472
+ .long 3230017156
+ .long 805331677
+ .long 3189567533
+ .long 1644716880
+ .long 3230017159
+ .long 3790469685
+ .long 3189567406
+ .long 44092384
+ .long 3230017162
+ .long 2689788214
+ .long 3189567653
+ .long 2723977432
+ .long 3230017164
+ .long 2762250221
+ .long 3189567072
+ .long 1094474416
+ .long 3230017167
+ .long 2781925193
+ .long 3189567716
+ .long 3745554800
+ .long 3230017169
+ .long 593120878
+ .long 3189567817
+ .long 2087320704
+ .long 3230017172
+ .long 403414988
+ .long 3189568021
+ .long 414776008
+ .long 3230017175
+ .long 359307328
+ .long 3189567387
+ .long 3022924432
+ .long 3230017177
+ .long 3373547966
+ .long 3189567572
+ .long 1321867688
+ .long 3230017180
+ .long 3978711340
+ .long 3189567805
+ .long 3901576528
+ .long 3230017182
+ .long 2765663238
+ .long 3189568046
+ .long 2172152384
+ .long 3230017185
+ .long 1181150766
+ .long 3189568053
+ .long 428598440
+ .long 3230017188
+ .long 2473022131
+ .long 3189567471
+ .long 2965917728
+ .long 3230017190
+ .long 1621744488
+ .long 3189567971
+ .long 1194211288
+ .long 3230017193
+ .long 2931299013
+ .long 3189567190
+ .long 3703449168
+ .long 3230017195
+ .long 873154950
+ .long 3189568039
+ .long 1903732144
+ .long 3230017198
+ .long 1510784525
+ .long 3189567521
+ .long 90062704
+ .long 3230017201
+ .long 2918231590
+ .long 3189568086
+ .long 2557443240
+ .long 3230017203
+ .long 3329944838
+ .long 3189567475
+ .long 715974088
+ .long 3230017206
+ .long 2679715410
+ .long 3189568021
+ .long 3155624672
+ .long 3230017208
+ .long 1841110143
+ .long 3189567518
+ .long 1286495072
+ .long 3230017211
+ .long 3881638924
+ .long 3189567497
+ .long 3698554440
+ .long 3230017213
+ .long 167906931
+ .long 3189567169
+ .long 1801902600
+ .long 3230017216
+ .long 1468264167
+ .long 3189567597
+ .long 4186508448
+ .long 3230017218
+ .long 2400624638
+ .long 3189567691
+ .long 2262471560
+ .long 3230017221
+ .long 3796182064
+ .long 3189567357
+ .long 324793264
+ .long 3230017224
+ .long 2801238958
+ .long 3189567581
+ .long 2668474776
+ .long 3230017226
+ .long 2273142813
+ .long 3189567436
+ .long 703615288
+ .long 3230017229
+ .long 831867571
+ .long 3189567237
+ .long 3020183048
+ .long 3230017231
+ .long 2238048829
+ .long 3189567595
+ .long 1028277008
+ .long 3230017234
+ .long 1163763070
+ .long 3189567452
+ .long 3317865168
+ .long 3230017236
+ .long 1206450788
+ .long 3189567228
+ .long 1299046216
+ .long 3230017239
+ .long 737162226
+ .long 3189567879
+ .long 3561787920
+ .long 3230017241
+ .long 2433253277
+ .long 3189567901
+ .long 1516188728
+ .long 3230017244
+ .long 3561277099
+ .long 3189567506
+ .long 3752216144
+ .long 3230017246
+ .long 1385095507
+ .long 3189567674
+ .long 1679968384
+ .long 3230017249
+ .long 829462408
+ .long 3189567156
+ .long 3889412704
+ .long 3230017251
+ .long 2939266725
+ .long 3189567673
+ .long 1790647080
+ .long 3230017254
+ .long 4214100827
+ .long 3189567848
+ .long 3973638544
+ .long 3230017256
+ .long 2537954451
+ .long 3189567376
+ .long 1848484816
+ .long 3230017259
+ .long 1128740312
+ .long 3189567098
+ .long 4005152680
+ .long 3230017261
+ .long 1932232434
+ .long 3189568053
+ .long 1853739648
+ .long 3230017264
+ .long 1359710694
+ .long 3189567457
+ .long 3984212256
+ .long 3230017266
+ .long 1268482287
+ .long 3189567990
+ .long 1806667776
+ .long 3230017269
+ .long 839689017
+ .long 3189567631
+ .long 3911072520
+ .long 3230017271
+ .long 3727165601
+ .long 3189567921
+ .long 1707523520
+ .long 3230017274
+ .long 1836550952
+ .long 3189567895
+ .long 3785986872
+ .long 3230017276
+ .long 172951407
+ .long 3189567220
+ .long 1556559360
+ .long 3230017279
+ .long 1166449891
+ .long 3189567294
+ .long 3609206856
+ .long 3230017281
+ .long 28625366
+ .long 3189567222
+ .long 1354025920
+ .long 3230017284
+ .long 4038426582
+ .long 3189567978
+ .long 3380982208
+ .long 3230017286
+ .long 2756284659
+ .long 3189567362
+ .long 1100172048
+ .long 3230017289
+ .long 848830252
+ .long 3189567230
+ .long 3101560856
+ .long 3230017291
+ .long 1868170309
+ .long 3189567423
+ .long 795244752
+ .long 3230017294
+ .long 3128260908
+ .long 3189567885
+ .long 2771188936
+ .long 3230017296
+ .long 1691261279
+ .long 3189567706
+ .long 439489304
+ .long 3230017299
+ .long 2886711298
+ .long 3189567236
+ .long 2390110824
+ .long 3230017301
+ .long 1311431101
+ .long 3189567133
+ .long 33149176
+ .long 3230017304
+ .long 3042183093
+ .long 3189567401
+ .long 1958569120
+ .long 3230017306
+ .long 3174208880
+ .long 3189567462
+ .long 3871433416
+ .long 3230017308
+ .long 302374021
+ .long 3189567243
+ .long 1476804712
+ .long 3230017311
+ .long 712531519
+ .long 3189567241
+ .long 3364647440
+ .long 3230017313
+ .long 3705318448
+ .long 3189567568
+ .long 945056744
+ .long 3230017316
+ .long 2424171915
+ .long 3189568016
+ .long 2807996856
+ .long 3230017318
+ .long 199511961
+ .long 3189567094
+ .long 363562688
+ .long 3230017321
+ .long 3766234060
+ .long 3189567214
+ .long 2201718256
+ .long 3230017323
+ .long 1956195829
+ .long 3189567592
+ .long 4027525584
+ .long 3230017325
+ .long 2891794585
+ .long 3189567375
+ .long 1546046576
+ .long 3230017328
+ .long 843173017
+ .long 3189567760
+ .long 3347244936
+ .long 3230017330
+ .long 1609532414
+ .long 3189567955
+ .long 841215080
+ .long 3230017333
+ .long 3356704285
+ .long 3189567294
+ .long 2617920488
+ .long 3230017335
+ .long 1641729240
+ .long 3189567346
+ .long 87455368
+ .long 3230017338
+ .long 1455753222
+ .long 3189567878
+ .long 1839783016
+ .long 3230017340
+ .long 1936589978
+ .long 3189567944
+ .long 3579964728
+ .long 3230017342
+ .long 1006586129
+ .long 3189567993
+ .long 1013061704
+ .long 3230017345
+ .long 2766825484
+ .long 3189567880
+ .long 2729036928
+ .long 3230017347
+ .long 1888685184
+ .long 3189567954
+ .long 137984104
+ .long 3230017350
+ .long 848046306
+ .long 3189568090
+ .long 1829866024
+ .long 3230017352
+ .long 4178224056
+ .long 3189567750
+ .long 3509743488
+ .long 3230017354
+ .long 2637072474
+ .long 3189567070
+ .long 882677184
+ .long 3230017357
+ .long 3133305384
+ .long 3189567936
+ .long 2538629624
+ .long 3230017359
+ .long 1343200028
+ .long 3189567905
+ .long 4182661312
+ .long 3230017361
+ .long 107195460
+ .long 3189567427
+ .long 1519832648
+ .long 3230017364
+ .long 602154914
+ .long 3189567857
+ .long 3140105848
+ .long 3230017366
+ .long 659160740
+ .long 3189567417
+ .long 453573824
+ .long 3230017369
+ .long 236889930
+ .long 3189567396
+ .long 2050198592
+ .long 3230017371
+ .long 1175634921
+ .long 3189567087
+ .long 3635040168
+ .long 3230017373
+ .long 1241855527
+ .long 3189567941
+ .long 913158504
+ .long 3230017376
+ .long 3947904414
+ .long 3189567477
+ .long 2474515312
+ .long 3230017378
+ .long 1206979822
+ .long 3189567534
+ .long 4024170344
+ .long 3230017380
+ .long 1847397805
+ .long 3189567152
+ .long 1267183240
+ .long 3230017383
+ .long 2916539301
+ .long 3189567754
+ .long 2793515456
+ .long 3230017385
+ .long 2568213263
+ .long 3189568078
+ .long 13259168
+ .long 3230017388
+ .long 3003245330
+ .long 3189567303
+ .long 1516375624
+ .long 3230017390
+ .long 3472633477
+ .long 3189567153
+ .long 3007924104
+ .long 3230017392
+ .long 532406289
+ .long 3189567855
+ .long 192963816
+ .long 3230017395
+ .long 4149310663
+ .long 3189567165
+ .long 1661455728
+ .long 3230017397
+ .long 946970842
+ .long 3189567598
+ .long 3118458864
+ .long 3230017399
+ .long 2040517972
+ .long 3189567254
+ .long 269032128
+ .long 3230017402
+ .long 3669971831
+ .long 3189568072
+ .long 1703136256
+ .long 3230017404
+ .long 2375197389
+ .long 3189567687
+ .long 3125829976
+ .long 3230017406
+ .long 296757744
+ .long 3189567673
+ .long 242171944
+ .long 3230017409
+ .long 611424102
+ .long 3189567452
+ .long 1642122608
+ .long 3230017411
+ .long 1700968423
+ .long 3189567419
+ .long 3030740440
+ .long 3230017413
+ .long 2947762668
+ .long 3189567968
+ .long 113083840
+ .long 3230017416
+ .long 690901756
+ .long 3189567496
+ .long 1479112984
+ .long 3230017418
+ .long 121139903
+ .long 3189567571
+ .long 2833886088
+ .long 3230017420
+ .long 173386055
+ .long 3189567866
+ .long 4177428584
+ .long 3230017422
+ .long 2964718132
+ .long 3189567231
+ .long 1214798496
+ .long 3230017425
+ .long 541562024
+ .long 3189567842
+ .long 2535955680
+ .long 3230017427
+ .long 3368765612
+ .long 3189568076
+ .long 3845958008
+ .long 3230017429
+ .long 3194541507
+ .long 3189567689
+ .long 849863256
+ .long 3230017432
+ .long 3443356552
+ .long 3189567858
+ .long 2137631024
+ .long 3230017434
+ .long 1180679397
+ .long 3189567138
+ .long 3414318912
+ .long 3230017436
+ .long 2261929999
+ .long 3189567651
+ .long 384984464
+ .long 3230017439
+ .long 954057098
+ .long 3189567971
+ .long 1639587024
+ .long 3230017441
+ .long 1346995839
+ .long 3189567263
+ .long 2883183944
+ .long 3230017443
+ .long 3253373727
+ .long 3189567382
+ .long 4115799808
+ .long 3230017445
+ .long 4143791142
+ .long 3189567800
+ .long 1042491824
+ .long 3230017448
+ .long 4240432954
+ .long 3189567700
+ .long 2253218992
+ .long 3230017450
+ .long 1891708033
+ .long 3189568072
+ .long 3453038360
+ .long 3230017452
+ .long 710292621
+ .long 3189567662
+ .long 347006880
+ .long 3230017455
+ .long 2712254611
+ .long 3189567116
+ .long 1525083304
+ .long 3230017457
+ .long 349583280
+ .long 3189568004
+ .long 2692324448
+ .long 3230017459
+ .long 1803227864
+ .long 3189567740
+ .long 3848754312
+ .long 3230017461
+ .long 3644606976
+ .long 3189567826
+ .long 699429536
+ .long 3230017464
+ .long 1067153346
+ .long 3189567751
+ .long 1834308568
+ .long 3230017466
+ .long 1335350692
+ .long 3189567081
+ .long 2958447872
+ .long 3230017468
+ .long 1803696599
+ .long 3189567557
+ .long 4071871152
+ .long 3230017470
+ .long 1232152547
+ .long 3189568017
+ .long 879634736
+ .long 3230017473
+ .long 1455437901
+ .long 3189567512
+ .long 1971696744
+ .long 3230017475
+ .long 3708110750
+ .long 3189567399
+ .long 3053113344
+ .long 3230017477
+ .long 3907324819
+ .long 3189567290
+ .long 4123907920
+ .long 3230017479
+ .long 4080000314
+ .long 3189567141
+ .long 889136480
+ .long 3230017482
+ .long 1286519001
+ .long 3189567298
+ .long 1938756848
+ .long 3230017484
+ .long 1292347423
+ .long 3189567513
+ .long 2977824880
+ .long 3230017486
+ .long 1159725249
+ .long 3189568015
+ .long 4006363664
+ .long 3230017488
+ .long 895621348
+ .long 3189567502
+ .long 729428896
+ .long 3230017491
+ .long 1212894155
+ .long 3189567280
+ .long 1736978096
+ .long 3230017493
+ .long 296117275
+ .long 3189567210
+ .long 2734066816
+ .long 3230017495
+ .long 2463481211
+ .long 3189567796
+ .long 3720717848
+ .long 3230017497
+ .long 76524950
+ .long 3189567159
+ .long 401986584
+ .long 3230017500
+ .long 1718551671
+ .long 3189567216
+ .long 1367830248
+ .long 3230017502
+ .long 3568874946
+ .long 3189567584
+ .long 2323304104
+ .long 3230017504
+ .long 2763456396
+ .long 3189567666
+ .long 3268430632
+ .long 3230017506
+ .long 1208592501
+ .long 3189567715
+ .long 4203232240
+ .long 3230017508
+ .long 4148835618
+ .long 3189567851
+ .long 832763976
+ .long 3230017511
+ .long 610418007
+ .long 3189567082
+ .long 1746982680
+ .long 3230017513
+ .long 3035714190
+ .long 3189567431
+ .long 2650943256
+ .long 3230017515
+ .long 85931336
+ .long 3189567843
+ .long 3544667832
+ .long 3230017517
+ .long 3006685957
+ .long 3189567286
+ .long 133211144
+ .long 3230017520
+ .long 878859600
+ .long 3189567873
+ .long 1006529776
+ .long 3230017522
+ .long 854333969
+ .long 3189567724
+ .long 1869678336
+ .long 3230017524
+ .long 3058646748
+ .long 3189567155
+ .long 2722678648
+ .long 3230017526
+ .long 360733640
+ .long 3189567693
+ .long 3565552488
+ .long 3230017528
+ .long 3015564990
+ .long 3189568013
+ .long 103354256
+ .long 3230017531
+ .long 2286095909
+ .long 3189568081
+ .long 926040176
+ .long 3230017533
+ .long 1899270393
+ .long 3189567137
+ .long 1738664488
+ .long 3230017535
+ .long 1377641292
+ .long 3189567833
+ .long 2541248696
+ .long 3230017537
+ .long 4266686523
+ .long 3189568077
+ .long 3333814224
+ .long 3230017539
+ .long 4018775563
+ .long 3189567218
+ .long 4116382408
+ .long 3230017541
+ .long 3373913644
+ .long 3189567103
+ .long 594007232
+ .long 3230017544
+ .long 2818265402
+ .long 3189568021
+ .long 1356644520
+ .long 3230017546
+ .long 1075601108
+ .long 3189567716
+ .long 2109348112
+ .long 3230017548
+ .long 3342127702
+ .long 3189567566
+ .long 2852139088
+ .long 3230017550
+ .long 2910355434
+ .long 3189567504
+ .long 3585038464
+ .long 3230017552
+ .long 611858749
+ .long 3189567074
+ .long 13099880
+ .long 3230017555
+ .long 1954698831
+ .long 3189567516
+ .long 726278816
+ .long 3230017557
+ .long 550712630
+ .long 3189567710
+ .long 1429628792
+ .long 3230017559
+ .long 3672474493
+ .long 3189567278
+ .long 2123170544
+ .long 3230017561
+ .long 1160875209
+ .long 3189567651
+ .long 2806924760
+ .long 3230017563
+ .long 2242524344
+ .long 3189568000
+ .long 3480912064
+ .long 3230017565
+ .long 2823138691
+ .long 3189567327
+ .long 4145152992
+ .long 3230017567
+ .long 3521079748
+ .long 3189567568
+ .long 504700744
+ .long 3230017570
+ .long 1136670137
+ .long 3189567486
+ .long 1149510328
+ .long 3230017572
+ .long 806933442
+ .long 3189567823
+ .long 1784634816
+ .long 3230017574
+ .long 1606084669
+ .long 3189567242
+ .long 2410094488
+ .long 3230017576
+ .long 2841342625
+ .long 3189567480
+ .long 3025909584
+ .long 3230017578
+ .long 984188059
+ .long 3189567239
+ .long 3632100264
+ .long 3230017580
+ .long 3011730434
+ .long 3189567337
+ .long 4228686632
+ .long 3230017582
+ .long 328432041
+ .long 3189567676
+ .long 520721440
+ .long 3230017585
+ .long 2057225622
+ .long 3189567268
+ .long 1098159248
+ .long 3230017587
+ .long 3150727306
+ .long 3189567348
+ .long 1666052680
+ .long 3230017589
+ .long 3291380622
+ .long 3189567307
+ .long 2224421584
+ .long 3230017591
+ .long 3570771984
+ .long 3189567798
+ .long 2773285760
+ .long 3230017593
+ .long 2427604440
+ .long 3189567698
+ .long 3312664936
+ .long 3230017595
+ .long 3733848165
+ .long 3189567211
+ .long 3842578768
+ .long 3230017597
+ .long 2673912350
+ .long 3189567904
+ .long 68079584
+ .long 3230017600
+ .long 960995892
+ .long 3189567616
+ .long 579121512
+ .long 3230017602
+ .long 4150493479
+ .long 3189567659
+ .long 1080756744
+ .long 3230017604
+ .long 1054941272
+ .long 3189567735
+ .long 1573004704
+ .long 3230017606
+ .long 2574365292
+ .long 3189568007
+ .long 2055884768
+ .long 3230017608
+ .long 2507498673
+ .long 3189567092
+ .long 2529416224
+ .long 3230017610
+ .long 2082176323
+ .long 3189567207
+ .long 2993618320
+ .long 3230017612
+ .long 3719982601
+ .long 3189568058
+ .long 3448510256
+ .long 3230017614
+ .long 4104247904
+ .long 3189567897
+ .long 3894111152
+ .long 3230017616
+ .long 3735557011
+ .long 3189567647
+ .long 35472776
+ .long 3230017619
+ .long 2914260983
+ .long 3189567862
+ .long 462548736
+ .long 3230017621
+ .long 1334094042
+ .long 3189567734
+ .long 880390688
+ .long 3230017623
+ .long 1291097379
+ .long 3189567171
+ .long 1289017512
+ .long 3230017625
+ .long 1627119803
+ .long 3189567853
+ .long 1688448064
+ .long 3230017627
+ .long 3886873723
+ .long 3189567117
+ .long 2078701104
+ .long 3230017629
+ .long 627887757
+ .long 3189567206
+ .long 2459795360
+ .long 3230017631
+ .long 1722013861
+ .long 3189567101
+ .long 2831749488
+ .long 3230017633
+ .long 4163262354
+ .long 3189567678
+ .long 3194582104
+ .long 3230017635
+ .long 4170237688
+ .long 3189567639
+ .long 3548311752
+ .long 3230017637
+ .long 47563772
+ .long 3189567637
+ .long 3892956928
+ .long 3230017639
+ .long 2990136007
+ .long 3189567231
+ .long 4228536056
+ .long 3230017641
+ .long 4294532248
+ .long 3189567995
+ .long 260100240
+ .long 3230017644
+ .long 2060709623
+ .long 3189567397
+ .long 577602376
+ .long 3230017646
+ .long 1488525373
+ .long 3189568044
+ .long 886093456
+ .long 3230017648
+ .long 1657840200
+ .long 3189567474
+ .long 1185591680
+ .long 3230017650
+ .long 3155771782
+ .long 3189567399
+ .long 1476115208
+ .long 3230017652
+ .long 2195162329
+ .long 3189567591
+ .long 1757682144
+ .long 3230017654
+ .long 1292806663
+ .long 3189567956
+ .long 2030310544
+ .long 3230017656
+ .long 2151451208
+ .long 3189567540
+ .long 2294018392
+ .long 3230017658
+ .long 2224122735
+ .long 3189567630
+ .long 2548823632
+ .long 3230017660
+ .long 3554417607
+ .long 3189567684
+ .long 2794744152
+ .long 3230017662
+ .long 3831650627
+ .long 3189567409
+ .long 3031797776
+ .long 3230017664
+ .long 4024246224
+ .long 3189567811
+ .long 3260002296
+ .long 3230017666
+ .long 2530219738
+ .long 3189567128
+ .long 3479375416
+ .long 3230017668
+ .long 1618145996
+ .long 3189568024
+ .long 3689934832
+ .long 3230017670
+ .long 392379700
+ .long 3189567378
+ .long 3891698144
+ .long 3230017672
+ .long 55874694
+ .long 3189567574
+ .long 4084682928
+ .long 3230017674
+ .long 4294251475
+ .long 3189567312
+ .long 4268906688
+ .long 3230017676
+ .long 1899705040
+ .long 3189567783
+ .long 149419600
+ .long 3230017679
+ .long 357699389
+ .long 3189567568
+ .long 316173656
+ .long 3230017681
+ .long 3025711727
+ .long 3189567790
+ .long 474218920
+ .long 3230017683
+ .long 2921891821
+ .long 3189568046
+ .long 623572704
+ .long 3230017685
+ .long 1716968749
+ .long 3189567453
+ .long 764252248
+ .long 3230017687
+ .long 2393171526
+ .long 3189567748
+ .long 896274768
+ .long 3230017689
+ .long 1343317993
+ .long 3189567172
+ .long 1019657400
+ .long 3230017691
+ .long 1388235839
+ .long 3189567661
+ .long 1134417256
+ .long 3230017693
+ .long 2766147125
+ .long 3189567706
+ .long 1240571384
+ .long 3230017695
+ .long 2162068842
+ .long 3189567499
+ .long 1338136776
+ .long 3230017697
+ .long 4075455588
+ .long 3189567932
+ .long 1427130392
+ .long 3230017699
+ .long 1579647664
+ .long 3189567555
+ .long 1507569120
+ .long 3230017701
+ .long 3785749868
+ .long 3189567715
+ .long 1579469816
+ .long 3230017703
+ .long 2639950365
+ .long 3189567469
+ .long 1642849272
+ .long 3230017705
+ .long 3611501026
+ .long 3189567698
+ .long 1697724240
+ .long 3230017707
+ .long 15422953
+ .long 3189568066
+ .long 1744111424
+ .long 3230017709
+ .long 2642213241
+ .long 3189568062
+ .long 1782027472
+ .long 3230017711
+ .long 143606300
+ .long 3189568058
+ .long 1811488992
+ .long 3230017713
+ .long 501328690
+ .long 3189567276
+ .long 1832512520
+ .long 3230017715
+ .long 3258054578
+ .long 3189567915
+ .long 1845114576
+ .long 3230017717
+ .long 1297851139
+ .long 3189568007
+ .long 1849311616
+ .long 3230017719
+ .long 3589200000
+ .long 3189567580
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2147483648
+ .long 2846560486
+ .long 3210737666
+ .long 2729511872
+ .long 3211784202
+ .long 3956813460
+ .long 3212307985
+ .long 1796237193
+ .long 3212828714
+ .long 1562748889
+ .long 3213092649
+ .long 1602292343
+ .long 3213352007
+ .long 745814092
+ .long 3213610865
+ .long 2969306084
+ .long 3213869224
+ .long 3953060839
+ .long 3214006263
+ .long 1128703349
+ .long 3214134948
+ .long 1371067273
+ .long 3214263386
+ .long 131445019
+ .long 3214391579
+ .long 1427948820
+ .long 3214519527
+ .long 665817496
+ .long 3214647232
+ .long 1817459908
+ .long 3214774694
+ .long 242758400
+ .long 3214901915
+ .long 2082038134
+ .long 3214981455
+ .long 2300828032
+ .long 3215044825
+ .long 571795571
+ .long 3215108076
+ .long 3120479584
+ .long 3215171207
+ .long 3276640540
+ .long 3215234220
+ .long 2949178581
+ .long 3215297115
+ .long 4036279704
+ .long 3215359892
+ .long 4130528508
+ .long 3215422552
+ .long 813954767
+ .long 3215485096
+ .long 248046571
+ .long 3215547523
+ .long 4288926261
+ .long 3215609833
+ .long 1897492927
+ .long 3215672029
+ .long 3499237165
+ .long 3215734109
+ .long 2329611090
+ .long 3215796075
+ .long 203907094
+ .long 3215857927
+ .long 3222364838
+ .long 3215919664
+ .long 295408387
+ .long 3215981289
+ .long 899212401
+ .long 3216012696
+ .long 2606049022
+ .long 3216043395
+ .long 4003691233
+ .long 3216074038
+ .long 1675303236
+ .long 3216104626
+ .long 789189655
+ .long 3216135158
+ .long 2213928479
+ .long 3216165634
+ .long 2518405585
+ .long 3216196055
+ .long 2561783534
+ .long 3216226421
+ .long 3198568176
+ .long 3216256732
+ .long 983674944
+ .long 3216286989
+ .long 1057364031
+ .long 3216317191
+ .long 4260371496
+ .long 3216347338
+ .long 2838974660
+ .long 3216377432
+ .long 1919860988
+ .long 3216407472
+ .long 2330291020
+ .long 3216437458
+ .long 598130195
+ .long 3216467391
+ .long 1836782285
+ .long 3216497270
+ .long 2565351466
+ .long 3216527096
+ .long 3593575201
+ .long 3216556869
+ .long 1431920350
+ .long 3216586590
+ .long 1176515501
+ .long 3216616258
+ .long 3624279252
+ .long 3216645873
+ .long 977982819
+ .long 3216675437
+ .long 2616083454
+ .long 3216704948
+ .long 733015457
+ .long 3216734408
+ .long 403990373
+ .long 3216763816
+ .long 2405156675
+ .long 3216793172
+ .long 3213628385
+ .long 3216822477
+ .long 3597448029
+ .long 3216851731
+ .long 25680167
+ .long 3216880935
+ .long 1848308454
+ .long 3216910087
+ .long 1231492199
+ .long 3216939189
+ .long 3222364838
+ .long 3216968240
+ .long 4274224607
+ .long 3216997241
+ .long 836496059
+ .long 3217026193
+ .long 1119829323
+ .long 3217043131
+ .long 315251054
+ .long 3217057557
+ .long 518461891
+ .long 3217071958
+ .long 2094042713
+ .long 3217086334
+ .long 1109735857
+ .long 3217100686
+ .long 2221359788
+ .long 3217115013
+ .long 1492952593
+ .long 3217129316
+ .long 3576653728
+ .long 3217143594
+ .long 237880003
+ .long 3217157849
+ .long 420109003
+ .long 3217172079
+ .long 180120274
+ .long 3217186285
+ .long 4162843939
+ .long 3217200466
+ .long 4126536273
+ .long 3217214624
+ .long 417628115
+ .long 3217228759
+ .long 1970736719
+ .long 3217242869
+ .long 538873716
+ .long 3217256956
+ .long 758227830
+ .long 3217271019
+ .long 2968307242
+ .long 3217285058
+ .long 3211951040
+ .long 3217299074
+ .long 1825275166
+ .long 3217313067
+ .long 3437683677
+ .long 3217327036
+ .long 4086978021
+ .long 3217340982
+ .long 4104270002
+ .long 3217354905
+ .long 3819025464
+ .long 3217368805
+ .long 3559075183
+ .long 3217382682
+ .long 3650625670
+ .long 3217396536
+ .long 123302585
+ .long 3217410368
+ .long 1890030548
+ .long 3217424176
+ .long 682272600
+ .long 3217437962
+ .long 1114811729
+ .long 3217451725
+ .long 3505892050
+ .long 3217465465
+ .long 3877229085
+ .long 3217479183
+ .long 2543954549
+ .long 3217492879
+ .long 4114626469
+ .long 3217506552
+ .long 311370023
+ .long 3217520204
+ .long 34658569
+ .long 3217533833
+ .long 3593519732
+ .long 3217547439
+ .long 2705545195
+ .long 3217561024
+ .long 1971736889
+ .long 3217574587
+ .long 1696647441
+ .long 3217588128
+ .long 2183357019
+ .long 3217601647
+ .long 3733482817
+ .long 3217615144
+ .long 2352221150
+ .long 3217628620
+ .long 2633258676
+ .long 3217642074
+ .long 578912458
+ .long 3217655507
+ .long 780008323
+ .long 3217668918
+ .long 3530988084
+ .long 3217682307
+ .long 534951267
+ .long 3217695676
+ .long 673467853
+ .long 3217709023
+ .long 4236783385
+ .long 3217722348
+ .long 2923827788
+ .long 3217735653
+ .long 1317060595
+ .long 3217748937
+ .long 3997577740
+ .long 3217762199
+ .long 2660218276
+ .long 3217775441
+ .long 1883376699
+ .long 3217788662
+ .long 1949142230
+ .long 3217801862
+ .long 3138274530
+ .long 3217815041
+ .long 1435244737
+ .long 3217828200
+ .long 1413145637
+ .long 3217841338
+ .long 3348797986
+ .long 3217854455
+ .long 3222758658
+ .long 3217867552
+ .long 1309263324
+ .long 3217880629
+ .long 2176234471
+ .long 3217893685
+ .long 1800387473
+ .long 3217906721
+ .long 452140382
+ .long 3217919737
+ .long 2695621757
+ .long 3217932732
+ .long 208809263
+ .long 3217945708
+ .long 1848308454
+ .long 3217958663
+ .long 3584589359
+ .long 3217971598
+ .long 1386895968
+ .long 3217984514
+ .long 4108155659
+ .long 3217997409
+ .long 3420215606
+ .long 3218010285
+ .long 3878621277
+ .long 3218023141
+ .long 1447787319
+ .long 3218035978
+ .long 680874053
+ .long 3218048795
+ .long 1834892843
+ .long 3218061592
+ .long 870713292
+ .long 3218074370
+ .long 1168986141
+ .long 3218083436
+ .long 3245089583
+ .long 3218089805
+ .long 2494877761
+ .long 3218096165
+ .long 3338922950
+ .long 3218102515
+ .long 1607293197
+ .long 3218108856
+ .long 1719424943
+ .long 3218115187
+ .long 3799224547
+ .long 3218121508
+ .long 3675071677
+ .long 3218127820
+ .long 1469757259
+ .long 3218134123
+ .long 1600486820
+ .long 3218140416
+ .long 4188949205
+ .long 3218146699
+ .long 766352567
+ .long 3218152974
+ .long 43231408
+ .long 3218159239
+ .long 2139646042
+ .long 3218165494
+ .long 2880153102
+ .long 3218171740
+ .long 2383743325
+ .long 3218177977
+ .long 768877423
+ .long 3218184205
+ .long 2448456521
+ .long 3218190423
+ .long 3244923387
+ .long 3218196632
+ .long 3275167422
+ .long 3218202832
+ .long 2655560435
+ .long 3218209023
+ .long 1501959692
+ .long 3218215205
+ .long 4224678246
+ .long 3218221377
+ .long 2348618756
+ .long 3218227541
+ .long 283080250
+ .long 3218233696
+ .long 2436859197
+ .long 3218239841
+ .long 333350563
+ .long 3218245978
+ .long 2675321801
+ .long 3218252105
+ .long 985177381
+ .long 3218258224
+ .long 3964700035
+ .long 3218264333
+ .long 3135315249
+ .long 3218270434
+ .long 2902865164
+ .long 3218276526
+ .long 3377742213
+ .long 3218282609
+ .long 374891912
+ .long 3218288684
+ .long 2593684821
+ .long 3218294749
+ .long 1553148222
+ .long 3218300806
+ .long 1656739931
+ .long 3218306854
+ .long 3012481825
+ .long 3218312893
+ .long 1432962538
+ .long 3218318924
+ .long 1320242026
+ .long 3218324946
+ .long 2780952336
+ .long 3218330959
+ .long 1626300240
+ .long 3218336964
+ .long 2256971748
+ .long 3218342960
+ .long 483265518
+ .long 3218348948
+ .long 704964628
+ .long 3218354927
+ .long 3026437244
+ .long 3218360897
+ .long 3256639170
+ .long 3218366859
+ .long 1499050969
+ .long 3218372813
+ .long 2151680465
+ .long 3218378758
+ .long 1022163351
+ .long 3218384695
+ .long 2507634849
+ .long 3218390623
+ .long 2414862975
+ .long 3218396543
+ .long 845152874
+ .long 3218402455
+ .long 2194349235
+ .long 3218408358
+ .long 2267936813
+ .long 3218414253
+ .long 1165944702
+ .long 3218420140
+ .long 3282948707
+ .long 3218426018
+ .long 128204514
+ .long 3218431889
+ .long 390421100
+ .long 3218437751
+ .long 4167959282
+ .long 3218443604
+ .long 2968834018
+ .long 3218449450
+ .long 1185553177
+ .long 3218455288
+ .long 3210217930
+ .long 3218461117
+ .long 549623114
+ .long 3218466939
+ .long 1890030548
+ .long 3218472752
+ .long 3032400188
+ .long 3218478557
+ .long 4072261525
+ .long 3218484354
+ .long 3450874911
+ .long 1070995813
+ .long 2331021804
+ .long 1070990032
+ .long 1029453230
+ .long 1070984259
+ .long 3747176240
+ .long 1070978493
+ .long 1800682930
+ .long 1070972736
+ .long 3686719393
+ .long 1070966986
+ .long 722545241
+ .long 1070961245
+ .long 1405669883
+ .long 1070955511
+ .long 1349079372
+ .long 1070949785
+ .long 461103529
+ .long 1070944067
+ .long 2945413886
+ .long 1070938356
+ .long 121152472
+ .long 1070932654
+ .long 487700860
+ .long 1070926959
+ .long 3954874384
+ .long 1070921271
+ .long 1842920138
+ .long 1070915592
+ .long 2652318780
+ .long 1070909920
+ .long 1999011482
+ .long 1070904256
+ .long 4089234463
+ .long 1070898599
+ .long 244680560
+ .long 1070892951
+ .long 3262235675
+ .long 1070887309
+ .long 169336595
+ .long 1070881676
+ .long 3763576649
+ .long 1070876049
+ .long 1073096258
+ .long 1070870431
+ .long 601221319
+ .long 1070864820
+ .long 2261690268
+ .long 1070859216
+ .long 1673619518
+ .long 1070853620
+ .long 3046403514
+ .long 1070848031
+ .long 1999843716
+ .long 1070842450
+ .long 2744015967
+ .long 1070836876
+ .long 899399508
+ .long 1070831310
+ .long 676744370
+ .long 1070825751
+ .long 1992167703
+ .long 1070820199
+ .long 467152011
+ .long 1070814655
+ .long 313445281
+ .long 1070809118
+ .long 1448157352
+ .long 1070803588
+ .long 3788725476
+ .long 1070798065
+ .long 2957945300
+ .long 1070792550
+ .long 3168871046
+ .long 1070787042
+ .long 44944622
+ .long 1070781542
+ .long 2094830420
+ .long 1070776048
+ .long 647642559
+ .long 1070770562
+ .long 4212681596
+ .long 1070765082
+ .long 4119694493
+ .long 1070759610
+ .long 288676754
+ .long 1070754146
+ .long 1229870791
+ .long 1070748688
+ .long 2568927817
+ .long 1070743237
+ .long 4226775419
+ .long 1070737793
+ .long 1829681364
+ .long 1070732357
+ .long 3889121191
+ .long 1070726927
+ .long 1737005556
+ .long 1070721505
+ .long 3885417029
+ .long 1070716089
+ .long 1666870165
+ .long 1070710681
+ .long 3594048319
+ .long 1070705279
+ .long 1000063738
+ .long 1070699885
+ .long 2398194399
+ .long 1070694497
+ .long 3417111411
+ .long 1070689116
+ .long 3980746691
+ .long 1070683742
+ .long 4013324163
+ .long 1070678375
+ .long 3439358267
+ .long 1070673015
+ .long 2183652476
+ .long 1070667662
+ .long 171297820
+ .long 1070662316
+ .long 1622638721
+ .long 1070656976
+ .long 2168369647
+ .long 1070651643
+ .long 1734435555
+ .long 1070646317
+ .long 247063161
+ .long 1070640998
+ .long 1927726804
+ .long 1070635685
+ .long 2408245143
+ .long 1070630379
+ .long 1615681634
+ .long 1070625080
+ .long 3772343130
+ .long 1070619787
+ .long 215909304
+ .long 1070614502
+ .long 3759169634
+ .long 1070609222
+ .long 1445381777
+ .long 1070603950
+ .long 1792910451
+ .long 1070598684
+ .long 870975437
+ .long 1070590754
+ .long 3194096222
+ .long 1070580248
+ .long 1823716217
+ .long 1070569756
+ .long 913800688
+ .long 1070559277
+ .long 323875369
+ .long 1070548811
+ .long 4208958430
+ .long 1070538357
+ .long 3839688678
+ .long 1070527917
+ .long 3372126730
+ .long 1070517490
+ .long 2667883253
+ .long 1070507076
+ .long 1589083690
+ .long 1070496675
+ .long 4293333010
+ .long 1070486286
+ .long 2053843986
+ .long 1070475911
+ .long 3324205749
+ .long 1070465548
+ .long 3673610217
+ .long 1070455198
+ .long 2966718784
+ .long 1070444861
+ .long 1068692560
+ .long 1070434537
+ .long 2140157205
+ .long 1070424225
+ .long 1752298597
+ .long 1070413926
+ .long 4066729595
+ .long 1070403639
+ .long 360651144
+ .long 1070393366
+ .long 3386588242
+ .long 1070383104
+ .long 127747308
+ .long 1070372856
+ .long 3337621361
+ .long 1070362619
+ .long 380113
+ .long 1070352396
+ .long 2870475188
+ .long 1070342184
+ .long 3227997535
+ .long 1070331985
+ .long 943446189
+ .long 1070321799
+ .long 182758681
+ .long 1070311625
+ .long 817374162
+ .long 1070301463
+ .long 2719198427
+ .long 1070291313
+ .long 1465634365
+ .long 1070281176
+ .long 1224481606
+ .long 1070271051
+ .long 1869032404
+ .long 1070260938
+ .long 3273036717
+ .long 1070250837
+ .long 1015732707
+ .long 1070240749
+ .long 3561713742
+ .long 1070230672
+ .long 2196155141
+ .long 1070220608
+ .long 1089583089
+ .long 1070210556
+ .long 118003300
+ .long 1070200516
+ .long 3452833475
+ .long 1070190487
+ .long 2381031992
+ .long 1070180471
+ .long 1074899573
+ .long 1070170467
+ .long 3707175295
+ .long 1070160474
+ .long 1566132617
+ .long 1070150494
+ .long 3120348377
+ .long 1070140525
+ .long 3953929663
+ .long 1070130568
+ .long 3946380940
+ .long 1070120623
+ .long 2977634725
+ .long 1070110690
+ .long 928049556
+ .long 1070100769
+ .long 1973375279
+ .long 1070090859
+ .long 1699849154
+ .long 1070080961
+ .long 4284063055
+ .long 1070071074
+ .long 1018125008
+ .long 1070061200
+ .long 374428300
+ .long 1070051337
+ .long 2235845747
+ .long 1070041485
+ .long 2190695046
+ .long 1070031645
+ .long 122671437
+ .long 1070021817
+ .long 210845780
+ .long 1070012000
+ .long 2339728060
+ .long 1070002194
+ .long 2099265479
+ .long 1069992400
+ .long 3669742467
+ .long 1069982617
+ .long 2641909617
+ .long 1069972846
+ .long 3196851002
+ .long 1069963086
+ .long 926113142
+ .long 1069953338
+ .long 11572342
+ .long 1069943601
+ .long 340530969
+ .long 1069933875
+ .long 1800682930
+ .long 1069924160
+ .long 4280111857
+ .long 1069914456
+ .long 3372322013
+ .long 1069904764
+ .long 3261138386
+ .long 1069895083
+ .long 3835803021
+ .long 1069885413
+ .long 690973253
+ .long 1069875755
+ .long 2306589128
+ .long 1069866107
+ .long 4278067876
+ .long 1069856470
+ .long 2201204065
+ .long 1069846845
+ .long 262102455
+ .long 1069837231
+ .long 2647241692
+ .long 1069827627
+ .long 658570708
+ .long 1069818035
+ .long 2778278092
+ .long 1069808453
+ .long 309052031
+ .long 1069798883
+ .long 1733817001
+ .long 1069789323
+ .long 2650961017
+ .long 1069779774
+ .long 2954203158
+ .long 1069770236
+ .long 2537624622
+ .long 1069760709
+ .long 1295667077
+ .long 1069751193
+ .long 3418098326
+ .long 1069741687
+ .long 210141498
+ .long 1069732193
+ .long 157244505
+ .long 1069722709
+ .long 3155274661
+ .long 1069713235
+ .long 510517079
+ .long 1069703773
+ .long 709476866
+ .long 1069694321
+ .long 3649073763
+ .long 1069684879
+ .long 636640577
+ .long 1069675449
+ .long 159725394
+ .long 1069666029
+ .long 2116286250
+ .long 1069656619
+ .long 2109656884
+ .long 1069647220
+ .long 38479793
+ .long 1069637832
+ .long 96704707
+ .long 1069628454
+ .long 2183652476
+ .long 1069619086
+ .long 1904013563
+ .long 1069609729
+ .long 3452748429
+ .long 1069600382
+ .long 2435216853
+ .long 1069591046
+ .long 3047045639
+ .long 1069581720
+ .long 894257944
+ .long 1069572405
+ .long 173141005
+ .long 1069563100
+ .long 785342784
+ .long 1069553805
+ .long 970708326
+ .long 1069541521
+ .long 2645916898
+ .long 1069522972
+ .long 2106590683
+ .long 1069504444
+ .long 3453588195
+ .long 1069485936
+ .long 2198475040
+ .long 1069467449
+ .long 2443390270
+ .long 1069448982
+ .long 3996141691
+ .long 1069430535
+ .long 2370203065
+ .long 1069412109
+ .long 1669613218
+ .long 1069393703
+ .long 1704071394
+ .long 1069375317
+ .long 2283901796
+ .long 1069356951
+ .long 3220050856
+ .long 1069338605
+ .long 29117219
+ .long 1069320280
+ .long 1113218225
+ .long 1069301974
+ .long 1990183441
+ .long 1069283688
+ .long 2473421172
+ .long 1069265422
+ .long 2376948508
+ .long 1069247176
+ .long 1515388672
+ .long 1069228950
+ .long 3998935692
+ .long 1069210743
+ .long 1053482595
+ .long 1069192557
+ .long 1085389880
+ .long 1069174390
+ .long 3911679148
+ .long 1069156242
+ .long 760030536
+ .long 1069138115
+ .long 38583924
+ .long 1069120007
+ .long 1566132617
+ .long 1069101918
+ .long 867088104
+ .long 1069083849
+ .long 2056379433
+ .long 1069065799
+ .long 659581512
+ .long 1069047769
+ .long 792781808
+ .long 1069029758
+ .long 2277675977
+ .long 1069011766
+ .long 641565395
+ .long 1068993794
+ .long 2256601
+ .long 1068975841
+ .long 183156961
+ .long 1068957907
+ .long 1008239542
+ .long 1068939992
+ .long 2302040698
+ .long 1068922096
+ .long 3889657667
+ .long 1068904219
+ .long 1301778891
+ .long 1068886362
+ .long 2954550821
+ .long 1068868523
+ .long 84804484
+ .long 1068850704
+ .long 1109791498
+ .long 1068832903
+ .long 1562410668
+ .long 1068815121
+ .long 1271074840
+ .long 1068797358
+ .long 64741293
+ .long 1068779614
+ .long 2067876735
+ .long 1068761888
+ .long 2815553124
+ .long 1068744181
+ .long 2138347284
+ .long 1068726493
+ .long 4162338635
+ .long 1068708823
+ .long 129237761
+ .long 1068691173
+ .long 2756122533
+ .long 1068673540
+ .long 3285762921
+ .long 1068655926
+ .long 1551389854
+ .long 1068638331
+ .long 1681725707
+ .long 1068620754
+ .long 3511047527
+ .long 1068603195
+ .long 2579184841
+ .long 1068585655
+ .long 3016419377
+ .long 1068568133
+ .long 363613719
+ .long 1068550630
+ .long 3047045639
+ .long 1068533144
+ .long 2313634884
+ .long 1068515677
+ .long 296456961
+ .long 1068497513
+ .long 1367328035
+ .long 1068462651
+ .long 3221665916
+ .long 1068427825
+ .long 1242258971
+ .long 1068393036
+ .long 3697798734
+ .long 1068358282
+ .long 1678104687
+ .long 1068323565
+ .long 3453858508
+ .long 1068288883
+ .long 116861598
+ .long 1068254238
+ .long 4234736672
+ .long 1068219627
+ .long 2606283437
+ .long 1068185053
+ .long 3506114812
+ .long 1068150514
+ .long 2324914545
+ .long 1068116011
+ .long 3044269692
+ .long 1068081543
+ .long 1056797460
+ .long 1068047111
+ .long 346010435
+ .long 1068012714
+ .long 601410756
+ .long 1067978352
+ .long 1513453498
+ .long 1067944025
+ .long 2773542775
+ .long 1067909733
+ .long 4074027864
+ .long 1067875476
+ .long 813232056
+ .long 1067841255
+ .long 1275317999
+ .long 1067807068
+ .long 860480111
+ .long 1067772916
+ .long 3559777258
+ .long 1067738798
+ .long 480292498
+ .long 1067704716
+ .long 4204867691
+ .long 1067670667
+ .long 1547459502
+ .long 1067636654
+ .long 797775935
+ .long 1067602675
+ .long 1656501562
+ .long 1067568730
+ .long 3825228429
+ .long 1067534819
+ .long 2711485098
+ .long 1067500943
+ .long 2313634884
+ .long 1067467101
+ .long 376973398
+ .long 1067416219
+ .long 672386641
+ .long 1067348671
+ .long 630691842
+ .long 1067281191
+ .long 3960777458
+ .long 1067213778
+ .long 1488394470
+ .long 1067146434
+ .long 1220920383
+ .long 1067079157
+ .long 2577548405
+ .long 1067011947
+ .long 684247743
+ .long 1066944805
+ .long 3553625811
+ .long 1066877729
+ .long 2020150230
+ .long 1066810721
+ .long 4099880293
+ .long 1066743779
+ .long 630721729
+ .long 1066676905
+ .long 3927125538
+ .long 1066610096
+ .long 535440936
+ .long 1066543355
+ .long 2773516144
+ .long 1066476679
+ .long 1486051399
+ .long 1066410070
+ .long 808661260
+ .long 1066285262
+ .long 2227658502
+ .long 1066152307
+ .long 1813447778
+ .long 1066019484
+ .long 2743640746
+ .long 1065886792
+ .long 3904192454
+ .long 1065754231
+ .long 4184355568
+ .long 1065621801
+ .long 2476667369
+ .long 1065489502
+ .long 1971904113
+ .long 1065357333
+ .long 3138267131
+ .long 1065097372
+ .long 341338964
+ .long 1064833554
+ .long 1954052322
+ .long 1064569994
+ .long 1498975029
+ .long 1064306693
+ .long 2190050752
+ .long 1063782660
+ .long 1440057502
+ .long 1063257089
+ .long 1432705161
+ .long 1062208000
+ .long 0
+ .long 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2900053258
+ .long 1070176668
+ .long 2900053258
+ .long 1070176668
+ .long 2900053258
+ .long 1070176668
+ .long 2900053258
+ .long 1070176668
+ .long 1208323809
+ .long 3218079745
+ .long 1208323809
+ .long 3218079745
+ .long 1208323809
+ .long 3218079745
+ .long 1208323809
+ .long 3218079745
+ .long 1431651269
+ .long 1070945621
+ .long 1431651269
+ .long 1070945621
+ .long 1431651269
+ .long 1070945621
+ .long 1431651269
+ .long 1070945621
+ .long 4294965279
+ .long 3219128319
+ .long 4294965279
+ .long 3219128319
+ .long 4294965279
+ .long 3219128319
+ .long 4294965279
+ .long 3219128319
+ .long 4294967295
+ .long 1048575
+ .long 4294967295
+ .long 1048575
+ .long 4294967295
+ .long 1048575
+ .long 4294967295
+ .long 1048575
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1062207488
+ .long 0
+ .long 1062207488
+ .long 0
+ .long 1062207488
+ .long 0
+ .long 1062207488
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967295
+ .long 3220176895
+ .long 4294967295
+ .long 3220176895
+ .long 4294967295
+ .long 3220176895
+ .long 4294967295
+ .long 3220176895
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294963200
+ .long 2134900735
+ .long 4294963200
+ .long 2134900735
+ .long 4294963200
+ .long 2134900735
+ .long 4294963200
+ .long 2134900735
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 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 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1040187392
+ .long 0
+ .long 1040187392
+ .long 0
+ .long 1040187392
+ .long 0
+ .long 1040187392
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294966272
+ .long 4294967295
+ .long 4294966272
+ .long 4294967295
+ .long 4294966272
+ .long 4294967295
+ .long 4294966272
+ .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 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 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 2146435072
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 2146435072
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2134900736
+ .long 0
+ .long 2134900736
+ .long 0
+ .long 2134900736
+ .long 0
+ .long 2134900736
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4277811695
+ .long 1072049730
+ .long 4277811695
+ .long 1072049730
+ .long 4277811695
+ .long 1072049730
+ .long 4277811695
+ .long 1072049730
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1104150528
+ .long 0
+ .long 1104150528
+ .long 0
+ .long 1104150528
+ .long 0
+ .long 1104150528
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967290
+ .long 1071120383
+ .long 4294967290
+ .long 1071120383
+ .long 4294967290
+ .long 1071120383
+ .long 4294967290
+ .long 1071120383
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294967290
+ .long 1070858239
+ .long 4294967290
+ .long 1070858239
+ .long 4294967290
+ .long 1070858239
+ .long 4294967290
+ .long 1070858239
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 333042728
+ .long 1070694400
+ .long 333042728
+ .long 1070694400
+ .long 333042728
+ .long 1070694400
+ .long 333042728
+ .long 1070694400
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 635310127
+ .long 1070563328
+ .long 635310127
+ .long 1070563328
+ .long 635310127
+ .long 1070563328
+ .long 635310127
+ .long 1070563328
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 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 2147483648
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1077870592
+ .long 0
+ .long 1077870592
+ .long 0
+ .long 1077870592
+ .long 0
+ .long 1077870592
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294966784
+ .long 0
+ .long 4294966784
+ .long 0
+ .long 4294966784
+ .long 0
+ .long 4294966784
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4160749568
+ .long 4294967295
+ .long 4160749568
+ .long 4294967295
+ .long 4160749568
+ .long 4294967295
+ .long 4160749568
+ .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 4278190080
+ .long 4294967295
+ .long 4278190080
+ .long 4294967295
+ .long 4278190080
+ .long 4294967295
+ .long 4278190080
+ .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 4294963200
+ .long 4294967295
+ .long 4294963200
+ .long 4294967295
+ .long 4294963200
+ .long 4294967295
+ .long 4294963200
+ .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 1041235968
+ .long 0
+ .long 1041235968
+ .long 0
+ .long 1041235968
+ .long 0
+ .long 1041235968
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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_dacosh_data_internal,@object
+ .size __svml_dacosh_data_internal,14784
+ .align 8
+
+__dacosh_la_CoutTab:
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 0
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 4293918720
+ .type __dacosh_la_CoutTab,@object
+ .size __dacosh_la_CoutTab,32
new file mode 100644
@@ -0,0 +1,20 @@
+/* AVX2 version of vectorized acosh, 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_acosh _ZGVeN8v_acosh_avx2_wrapper
+#include "../svml_d_acosh8_core.S"
new file mode 100644
@@ -0,0 +1,27 @@
+/* Multiple versions of vectorized acosh, 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_acosh
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN8v_acosh, __GI__ZGVeN8v_acosh, __redirect__ZGVeN8v_acosh)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,865 @@
+/* Function acosh vectorized with AVX-512.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute acosh(x) as log(x + sqrt(x*x - 1))
+ * using RSQRT instructions for starting the
+ * square root approximation, and small table lookups for log
+ * that map to AVX-512 permute instructions
+ *
+ * Special cases:
+ *
+ * acosh(NaN) = quiet NaN, and raise invalid exception
+ * acosh(-INF) = NaN
+ * acosh(+INF) = +INF
+ * acosh(x) = NaN if x < 1
+ * acosh(1) = +0
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.evex512,"ax",@progbits
+ENTRY(_ZGVeN8v_acosh_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
+ vmovups 256+__svml_dacosh_data_internal_avx512(%rip), %zmm5
+
+/* polynomial computation for small inputs */
+ vmovups 576+__svml_dacosh_data_internal_avx512(%rip), %zmm13
+ vmovups 640+__svml_dacosh_data_internal_avx512(%rip), %zmm14
+
+/*
+ * sqrt(1+x^2) ~ Sh + Sl + Sh*Eh*poly_s
+ * poly_s = c1+c2*Eh+c3*Eh^2
+ */
+ vmovups 704+__svml_dacosh_data_internal_avx512(%rip), %zmm1
+ vmovups 832+__svml_dacosh_data_internal_avx512(%rip), %zmm2
+ vmovups 896+__svml_dacosh_data_internal_avx512(%rip), %zmm6
+
+/* very large inputs ? */
+ vmovups 448+__svml_dacosh_data_internal_avx512(%rip), %zmm15
+
+/* out of range inputs? */
+ vmovups 512+__svml_dacosh_data_internal_avx512(%rip), %zmm3
+
+/* not a very small input ? */
+ vmovups 384+__svml_dacosh_data_internal_avx512(%rip), %zmm10
+ vmovaps %zmm0, %zmm12
+
+/* x^2 - 1 */
+ vmovaps %zmm5, %zmm11
+ vfmsub231pd {rn-sae}, %zmm12, %zmm12, %zmm11
+ vcmppd $21, {sae}, %zmm15, %zmm12, %k2
+ vcmppd $22, {sae}, %zmm3, %zmm12, %k0
+ vcmppd $18, {sae}, %zmm5, %zmm12, %k1
+ vrsqrt14pd %zmm11, %zmm4
+ vcmppd $21, {sae}, %zmm10, %zmm11, %k3
+ vfmadd231pd {rn-sae}, %zmm11, %zmm13, %zmm14
+ vmovups 768+__svml_dacosh_data_internal_avx512(%rip), %zmm13
+
+/* Sh ~sqrt(-1+x^2) */
+ vmulpd {rn-sae}, %zmm4, %zmm11, %zmm9
+ vmulpd {rn-sae}, %zmm11, %zmm14, %zmm8
+
+/* Sh+x */
+ vaddpd {rn-sae}, %zmm12, %zmm9, %zmm15
+ kmovw %k0, %edx
+ kmovw %k1, %eax
+
+/* Shh */
+ vsubpd {rn-sae}, %zmm12, %zmm15, %zmm14
+
+/* (Yh*R0)_low */
+ vmovaps %zmm11, %zmm0
+ orl %eax, %edx
+
+/* rel. error term: Eh=1-Sh*R0 */
+ vmovaps %zmm5, %zmm7
+ vfmsub213pd {rn-sae}, %zmm9, %zmm4, %zmm0
+ vfnmadd231pd {rn-sae}, %zmm9, %zmm4, %zmm7
+
+/* rel. error term: Eh=(1-Sh*R0)-Sl*R0 */
+ vfnmadd231pd {rn-sae}, %zmm0, %zmm4, %zmm7
+
+/* Shl */
+ vsubpd {rn-sae}, %zmm14, %zmm9, %zmm4
+ vmovups 1472+__svml_dacosh_data_internal_avx512(%rip), %zmm14
+ vfmadd231pd {rn-sae}, %zmm7, %zmm1, %zmm13
+ vfmadd213pd {rn-sae}, %zmm2, %zmm7, %zmm13
+ vfmadd213pd {rn-sae}, %zmm6, %zmm7, %zmm13
+
+/* Sh*Eh */
+ vmulpd {rn-sae}, %zmm7, %zmm9, %zmm7
+
+/* Sl + Sh*Eh*poly_s */
+ vfmadd213pd {rn-sae}, %zmm0, %zmm13, %zmm7
+
+/* polynomials */
+ vmovups 1344+__svml_dacosh_data_internal_avx512(%rip), %zmm13
+
+/* polynomial computation for small inputs */
+ vaddpd {rn-sae}, %zmm7, %zmm9, %zmm0
+
+/* Xin0+Sl+Sh*Eh*poly_s ~ x+sqrt(1+x^2) */
+ vaddpd {rn-sae}, %zmm7, %zmm15, %zmm6
+ vfmadd231pd {rn-sae}, %zmm0, %zmm8, %zmm0
+
+/* fixup for very large inputs */
+ vmovups 1216+__svml_dacosh_data_internal_avx512(%rip), %zmm8
+
+/* Sl_high */
+ vsubpd {rn-sae}, %zmm15, %zmm6, %zmm9
+ vmovups 1536+__svml_dacosh_data_internal_avx512(%rip), %zmm15
+ vmulpd {rn-sae}, %zmm8, %zmm12, %zmm6{%k2}
+
+/* Sl_l */
+ vsubpd {rn-sae}, %zmm9, %zmm7, %zmm3
+ vrcp14pd %zmm6, %zmm1
+
+/* Xin_low */
+ vaddpd {rn-sae}, %zmm4, %zmm3, %zmm7
+
+/* Table lookups */
+ vmovups __svml_dacosh_data_internal_avx512(%rip), %zmm3
+
+/* round reciprocal to 1+4b mantissas */
+ vpaddq 1088+__svml_dacosh_data_internal_avx512(%rip), %zmm1, %zmm2
+
+/* fixup for very large inputs */
+ vxorpd %zmm7, %zmm7, %zmm7{%k2}
+ vmovups 1408+__svml_dacosh_data_internal_avx512(%rip), %zmm1
+ vandpd 1152+__svml_dacosh_data_internal_avx512(%rip), %zmm2, %zmm8
+ vmovups 128+__svml_dacosh_data_internal_avx512(%rip), %zmm2
+
+/* Prepare table index */
+ vpsrlq $48, %zmm8, %zmm9
+
+/* reduced argument for log(): (Rcp*Xin-1)+Rcp*Xin_low */
+ vfmsub231pd {rn-sae}, %zmm8, %zmm6, %zmm5
+
+/* exponents */
+ vgetexppd {sae}, %zmm8, %zmm4
+ vmovups 1280+__svml_dacosh_data_internal_avx512(%rip), %zmm6
+ vpermt2pd 64+__svml_dacosh_data_internal_avx512(%rip), %zmm9, %zmm3
+ vpermt2pd 192+__svml_dacosh_data_internal_avx512(%rip), %zmm9, %zmm2
+ vsubpd {rn-sae}, %zmm6, %zmm4, %zmm4{%k2}
+ vfmadd231pd {rn-sae}, %zmm8, %zmm7, %zmm5
+ vmovups 1600+__svml_dacosh_data_internal_avx512(%rip), %zmm6
+ vmovups 1664+__svml_dacosh_data_internal_avx512(%rip), %zmm7
+
+/* -K*L2H + Th */
+ vmovups 1920+__svml_dacosh_data_internal_avx512(%rip), %zmm8
+
+/* -K*L2L + Tl */
+ vmovups 1984+__svml_dacosh_data_internal_avx512(%rip), %zmm9
+ vfmadd231pd {rn-sae}, %zmm5, %zmm13, %zmm1
+ vmovups 1792+__svml_dacosh_data_internal_avx512(%rip), %zmm13
+ vfnmadd231pd {rn-sae}, %zmm4, %zmm8, %zmm3
+ vfnmadd213pd {rn-sae}, %zmm2, %zmm9, %zmm4
+ vfmadd213pd {rn-sae}, %zmm14, %zmm5, %zmm1
+ vmovups 1728+__svml_dacosh_data_internal_avx512(%rip), %zmm2
+ vmovups 1856+__svml_dacosh_data_internal_avx512(%rip), %zmm14
+ vfmadd213pd {rn-sae}, %zmm15, %zmm5, %zmm1
+
+/* R^2 */
+ vmulpd {rn-sae}, %zmm5, %zmm5, %zmm15
+ vfmadd213pd {rn-sae}, %zmm6, %zmm5, %zmm1
+ vfmadd213pd {rn-sae}, %zmm7, %zmm5, %zmm1
+ vfmadd213pd {rn-sae}, %zmm2, %zmm5, %zmm1
+ vfmadd213pd {rn-sae}, %zmm13, %zmm5, %zmm1
+ vfmadd213pd {rn-sae}, %zmm14, %zmm5, %zmm1
+
+/* Tl + R^2*Poly */
+ vfmadd213pd {rn-sae}, %zmm4, %zmm15, %zmm1
+
+/* R+Tl + R^2*Poly */
+ vaddpd {rn-sae}, %zmm5, %zmm1, %zmm5
+ vaddpd {rn-sae}, %zmm5, %zmm3, %zmm0{%k3}
+ jne L(2)
+
+L(1):
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+
+L(2):
+ vmovups %zmm12, 64(%rsp)
+ vmovups %zmm0, 128(%rsp)
+ je L(1)
+ xorl %eax, %eax
+ vzeroupper
+ kmovw %k4, 24(%rsp)
+ kmovw %k5, 16(%rsp)
+ kmovw %k6, 8(%rsp)
+ kmovw %k7, (%rsp)
+ movq %rsi, 40(%rsp)
+ movq %rdi, 32(%rsp)
+ movq %r12, 56(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 48(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+L(3):
+ btl %r12d, %r13d
+ jc L(5)
+
+L(4):
+ incl %r12d
+ cmpl $8, %r12d
+ jl L(3)
+ kmovw 24(%rsp), %k4
+ cfi_restore(122)
+ kmovw 16(%rsp), %k5
+ cfi_restore(123)
+ kmovw 8(%rsp), %k6
+ cfi_restore(124)
+ kmovw (%rsp), %k7
+ cfi_restore(125)
+ vmovups 128(%rsp), %zmm0
+ movq 40(%rsp), %rsi
+ cfi_restore(4)
+ movq 32(%rsp), %rdi
+ cfi_restore(5)
+ movq 56(%rsp), %r12
+ cfi_restore(12)
+ movq 48(%rsp), %r13
+ cfi_restore(13)
+ jmp L(1)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+L(5):
+ lea 64(%rsp,%r12,8), %rdi
+ lea 128(%rsp,%r12,8), %rsi
+ call __svml_dacosh_cout_rare_internal
+ jmp L(4)
+
+END(_ZGVeN8v_acosh_skx)
+
+ .align 16,0x90
+
+__svml_dacosh_cout_rare_internal:
+
+ cfi_startproc
+
+ movzwl 6(%rdi), %eax
+ andl $32752, %eax
+ movsd (%rdi), %xmm0
+ cmpl $32752, %eax
+ je L(9)
+
+L(6):
+ movsd %xmm0, -8(%rsp)
+ cmpl $0, -8(%rsp)
+ jne L(8)
+ cmpl $1072693248, -4(%rsp)
+ je L(7)
+ cmpl $2146435072, -4(%rsp)
+ jne L(8)
+ movsd %xmm0, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(7):
+ movq 8+__dacosh_la_CoutTab(%rip), %rax
+ movq %rax, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(8):
+ movsd 16+__dacosh_la_CoutTab(%rip), %xmm0
+ movl $1, %eax
+ mulsd 8+__dacosh_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, (%rsi)
+ ret
+
+L(9):
+ testl $1048575, 4(%rdi)
+ jne L(10)
+ cmpl $0, (%rdi)
+ je L(6)
+
+L(10):
+ mulsd %xmm0, %xmm0
+ xorl %eax, %eax
+ movsd %xmm0, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_dacosh_cout_rare_internal,@function
+ .size __svml_dacosh_cout_rare_internal,.-__svml_dacosh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_dacosh_data_internal_avx512:
+ .long 0
+ .long 0
+ .long 3222405120
+ .long 3215919664
+ .long 1848311808
+ .long 3216910087
+ .long 1890025472
+ .long 3217424176
+ .long 3348791296
+ .long 3217854455
+ .long 2880159744
+ .long 3218171740
+ .long 3256631296
+ .long 3218366859
+ .long 4139499520
+ .long 3218553303
+ .long 3971973120
+ .long 3218731811
+ .long 3348791296
+ .long 3218903031
+ .long 1605304320
+ .long 3219067535
+ .long 3827638272
+ .long 3219177074
+ .long 1584414720
+ .long 3219253343
+ .long 860823552
+ .long 3219326935
+ .long 3896934400
+ .long 3219398031
+ .long 643547136
+ .long 3219466797
+ .long 0
+ .long 0
+ .long 3496399314
+ .long 1028893491
+ .long 720371772
+ .long 1026176044
+ .long 1944193543
+ .long 3175338952
+ .long 634920691
+ .long 3175752108
+ .long 1664625295
+ .long 1029304828
+ .long 192624563
+ .long 3177103997
+ .long 3796653051
+ .long 3176138396
+ .long 3062724207
+ .long 3176680434
+ .long 634920691
+ .long 3176800684
+ .long 1913570380
+ .long 3174806221
+ .long 825194088
+ .long 3176465773
+ .long 2335489660
+ .long 3172599741
+ .long 2497625109
+ .long 1029604288
+ .long 914782743
+ .long 1029350199
+ .long 3743595607
+ .long 3175525305
+ .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 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 0
+ .long 1055916032
+ .long 0
+ .long 1055916032
+ .long 0
+ .long 1055916032
+ .long 0
+ .long 1055916032
+ .long 0
+ .long 1055916032
+ .long 0
+ .long 1055916032
+ .long 0
+ .long 1055916032
+ .long 0
+ .long 1055916032
+ .long 0
+ .long 1608515584
+ .long 0
+ .long 1608515584
+ .long 0
+ .long 1608515584
+ .long 0
+ .long 1608515584
+ .long 0
+ .long 1608515584
+ .long 0
+ .long 1608515584
+ .long 0
+ .long 1608515584
+ .long 0
+ .long 1608515584
+ .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
+ .long 246350567
+ .long 1068708642
+ .long 246350567
+ .long 1068708642
+ .long 246350567
+ .long 1068708642
+ .long 246350567
+ .long 1068708642
+ .long 246350567
+ .long 1068708642
+ .long 246350567
+ .long 1068708642
+ .long 246350567
+ .long 1068708642
+ .long 246350567
+ .long 1068708642
+ .long 1431445118
+ .long 3217380693
+ .long 1431445118
+ .long 3217380693
+ .long 1431445118
+ .long 3217380693
+ .long 1431445118
+ .long 3217380693
+ .long 1431445118
+ .long 3217380693
+ .long 1431445118
+ .long 3217380693
+ .long 1431445118
+ .long 3217380693
+ .long 1431445118
+ .long 3217380693
+ .long 26490386
+ .long 1070694400
+ .long 26490386
+ .long 1070694400
+ .long 26490386
+ .long 1070694400
+ .long 26490386
+ .long 1070694400
+ .long 26490386
+ .long 1070694400
+ .long 26490386
+ .long 1070694400
+ .long 26490386
+ .long 1070694400
+ .long 26490386
+ .long 1070694400
+ .long 20643840
+ .long 1070858240
+ .long 20643840
+ .long 1070858240
+ .long 20643840
+ .long 1070858240
+ .long 20643840
+ .long 1070858240
+ .long 20643840
+ .long 1070858240
+ .long 20643840
+ .long 1070858240
+ .long 20643840
+ .long 1070858240
+ .long 20643840
+ .long 1070858240
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1074790400
+ .long 0
+ .long 1074790400
+ .long 0
+ .long 1074790400
+ .long 0
+ .long 1074790400
+ .long 0
+ .long 1074790400
+ .long 0
+ .long 1074790400
+ .long 0
+ .long 1074790400
+ .long 0
+ .long 1074790400
+ .long 1075921768
+ .long 3216615856
+ .long 1075921768
+ .long 3216615856
+ .long 1075921768
+ .long 3216615856
+ .long 1075921768
+ .long 3216615856
+ .long 1075921768
+ .long 3216615856
+ .long 1075921768
+ .long 3216615856
+ .long 1075921768
+ .long 3216615856
+ .long 1075921768
+ .long 3216615856
+ .long 1847891832
+ .long 1069318246
+ .long 1847891832
+ .long 1069318246
+ .long 1847891832
+ .long 1069318246
+ .long 1847891832
+ .long 1069318246
+ .long 1847891832
+ .long 1069318246
+ .long 1847891832
+ .long 1069318246
+ .long 1847891832
+ .long 1069318246
+ .long 1847891832
+ .long 1069318246
+ .long 2315602889
+ .long 3217031163
+ .long 2315602889
+ .long 3217031163
+ .long 2315602889
+ .long 3217031163
+ .long 2315602889
+ .long 3217031163
+ .long 2315602889
+ .long 3217031163
+ .long 2315602889
+ .long 3217031163
+ .long 2315602889
+ .long 3217031163
+ .long 2315602889
+ .long 3217031163
+ .long 4145174257
+ .long 1069697314
+ .long 4145174257
+ .long 1069697314
+ .long 4145174257
+ .long 1069697314
+ .long 4145174257
+ .long 1069697314
+ .long 4145174257
+ .long 1069697314
+ .long 4145174257
+ .long 1069697314
+ .long 4145174257
+ .long 1069697314
+ .long 4145174257
+ .long 1069697314
+ .long 1436264246
+ .long 3217380693
+ .long 1436264246
+ .long 3217380693
+ .long 1436264246
+ .long 3217380693
+ .long 1436264246
+ .long 3217380693
+ .long 1436264246
+ .long 3217380693
+ .long 1436264246
+ .long 3217380693
+ .long 1436264246
+ .long 3217380693
+ .long 1436264246
+ .long 3217380693
+ .long 2579396527
+ .long 1070176665
+ .long 2579396527
+ .long 1070176665
+ .long 2579396527
+ .long 1070176665
+ .long 2579396527
+ .long 1070176665
+ .long 2579396527
+ .long 1070176665
+ .long 2579396527
+ .long 1070176665
+ .long 2579396527
+ .long 1070176665
+ .long 2579396527
+ .long 1070176665
+ .long 4294966373
+ .long 3218079743
+ .long 4294966373
+ .long 3218079743
+ .long 4294966373
+ .long 3218079743
+ .long 4294966373
+ .long 3218079743
+ .long 4294966373
+ .long 3218079743
+ .long 4294966373
+ .long 3218079743
+ .long 4294966373
+ .long 3218079743
+ .long 4294966373
+ .long 3218079743
+ .long 1431655617
+ .long 1070945621
+ .long 1431655617
+ .long 1070945621
+ .long 1431655617
+ .long 1070945621
+ .long 1431655617
+ .long 1070945621
+ .long 1431655617
+ .long 1070945621
+ .long 1431655617
+ .long 1070945621
+ .long 1431655617
+ .long 1070945621
+ .long 1431655617
+ .long 1070945621
+ .long 0
+ .long 3219128320
+ .long 0
+ .long 3219128320
+ .long 0
+ .long 3219128320
+ .long 0
+ .long 3219128320
+ .long 0
+ .long 3219128320
+ .long 0
+ .long 3219128320
+ .long 0
+ .long 3219128320
+ .long 0
+ .long 3219128320
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .type __svml_dacosh_data_internal_avx512,@object
+ .size __svml_dacosh_data_internal_avx512,2048
+ .align 8
+
+__dacosh_la_CoutTab:
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 0
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 4293918720
+ .type __dacosh_la_CoutTab,@object
+ .size __dacosh_la_CoutTab,32
new file mode 100644
@@ -0,0 +1,20 @@
+/* AVX2 version of vectorized acoshf.
+ 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_acoshf _ZGVeN16v_acoshf_avx2_wrapper
+#include "../svml_s_acoshf16_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized acoshf, 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_acoshf
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN16v_acoshf, __GI__ZGVeN16v_acoshf,
+ __redirect__ZGVeN16v_acoshf)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,662 @@
+/* Function acoshf vectorized with AVX-512.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute acosh(x) as log(x + sqrt(x*x - 1))
+ * using RSQRT instructions for starting the
+ * square root approximation, and small table lookups for log
+ * that map to AVX-512 permute instructions
+ *
+ * Special cases:
+ *
+ * acosh(NaN) = quiet NaN, and raise invalid exception
+ * acosh(-INF) = NaN
+ * acosh(+INF) = +INF
+ * acosh(x) = NaN if x < 1
+ * acosh(1) = +0
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.exex512,"ax",@progbits
+ENTRY(_ZGVeN16v_acoshf_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
+ vmovups 256+__svml_sacosh_data_internal_avx512(%rip), %zmm1
+
+/*
+ * sqrt(1+x^2) ~ Sh + Sl + Sh*Eh*poly_s
+ * poly_s = c1+c2*Eh
+ */
+ vmovups 640+__svml_sacosh_data_internal_avx512(%rip), %zmm13
+ vmovups 704+__svml_sacosh_data_internal_avx512(%rip), %zmm15
+
+/* polynomial computation for small inputs */
+ vmovups 576+__svml_sacosh_data_internal_avx512(%rip), %zmm9
+
+/* very large inputs ? */
+ vmovups 448+__svml_sacosh_data_internal_avx512(%rip), %zmm10
+
+/* out of range inputs? */
+ vmovups 512+__svml_sacosh_data_internal_avx512(%rip), %zmm11
+
+/* not a very small input ? */
+ vmovups 384+__svml_sacosh_data_internal_avx512(%rip), %zmm6
+ vmovaps %zmm0, %zmm8
+
+/* x^2 - 1 */
+ vmovaps %zmm1, %zmm7
+ vfmsub231ps {rn-sae}, %zmm8, %zmm8, %zmm7
+ vcmpps $21, {sae}, %zmm10, %zmm8, %k2
+ vcmpps $22, {sae}, %zmm11, %zmm8, %k0
+ vcmpps $18, {sae}, %zmm1, %zmm8, %k1
+ vrsqrt14ps %zmm7, %zmm12
+ vcmpps $21, {sae}, %zmm6, %zmm7, %k3
+ vmulps {rn-sae}, %zmm9, %zmm7, %zmm4
+
+/* Sh ~sqrt(-1+x^2) */
+ vmulps {rn-sae}, %zmm12, %zmm7, %zmm5
+ kmovw %k0, %edx
+ kmovw %k1, %eax
+
+/* Sh+x */
+ vaddps {rn-sae}, %zmm8, %zmm5, %zmm9
+
+/* (Yh*R0)_low */
+ vmovaps %zmm7, %zmm0
+ orl %eax, %edx
+
+/* rel. error term: Eh=1-Sh*R0 */
+ vmovaps %zmm1, %zmm14
+ vfmsub213ps {rn-sae}, %zmm5, %zmm12, %zmm0
+ vfnmadd231ps {rn-sae}, %zmm5, %zmm12, %zmm14
+
+/* rel. error term: Eh=(1-Sh*R0)-Sl*R0 */
+ vfnmadd231ps {rn-sae}, %zmm0, %zmm12, %zmm14
+
+/* Sh*Eh */
+ vmulps {rn-sae}, %zmm14, %zmm5, %zmm3
+ vfmadd231ps {rn-sae}, %zmm14, %zmm13, %zmm15
+
+/* Sl + Sh*Eh*poly_s */
+ vfmadd213ps {rn-sae}, %zmm0, %zmm15, %zmm3
+
+/* Shh */
+ vsubps {rn-sae}, %zmm8, %zmm9, %zmm15
+
+/* polynomial computation for small inputs */
+ vaddps {rn-sae}, %zmm3, %zmm5, %zmm0
+
+/* Xin0+Sl+Sh*Eh*poly_s ~ x+sqrt(1+x^2) */
+ vaddps {rn-sae}, %zmm3, %zmm9, %zmm2
+
+/* Shl */
+ vsubps {rn-sae}, %zmm15, %zmm5, %zmm10
+ vfmadd231ps {rn-sae}, %zmm0, %zmm4, %zmm0
+
+/* fixup for very large inputs */
+ vmovups 896+__svml_sacosh_data_internal_avx512(%rip), %zmm4
+
+/* Sl_high */
+ vsubps {rn-sae}, %zmm9, %zmm2, %zmm5
+
+/* polynomial */
+ vmovups 1024+__svml_sacosh_data_internal_avx512(%rip), %zmm9
+ vmulps {rn-sae}, %zmm4, %zmm8, %zmm2{%k2}
+
+/* -K*L2L + Tl */
+ vmovups 1280+__svml_sacosh_data_internal_avx512(%rip), %zmm4
+
+/* Sl_l */
+ vsubps {rn-sae}, %zmm5, %zmm3, %zmm3
+ vrcp14ps %zmm2, %zmm11
+ vmovups 128+__svml_sacosh_data_internal_avx512(%rip), %zmm5
+
+/* Xin_low */
+ vaddps {rn-sae}, %zmm10, %zmm3, %zmm13
+
+/* round reciprocal to 1+4b mantissas */
+ vpaddd 768+__svml_sacosh_data_internal_avx512(%rip), %zmm11, %zmm12
+ vmovups 1152+__svml_sacosh_data_internal_avx512(%rip), %zmm10
+ vandps 832+__svml_sacosh_data_internal_avx512(%rip), %zmm12, %zmm14
+
+/* fixup for very large inputs */
+ vxorps %zmm13, %zmm13, %zmm13{%k2}
+
+/* reduced argument for log(): (Rcp*Xin-1)+Rcp*Xin_low */
+ vfmsub231ps {rn-sae}, %zmm14, %zmm2, %zmm1
+
+/* exponents */
+ vgetexpps {sae}, %zmm14, %zmm12
+ vmovups 960+__svml_sacosh_data_internal_avx512(%rip), %zmm2
+
+/* Prepare table index */
+ vpsrld $18, %zmm14, %zmm3
+ vfmadd231ps {rn-sae}, %zmm14, %zmm13, %zmm1
+ vmovups 1088+__svml_sacosh_data_internal_avx512(%rip), %zmm13
+
+/* Table lookups */
+ vmovups __svml_sacosh_data_internal_avx512(%rip), %zmm14
+ vsubps {rn-sae}, %zmm2, %zmm12, %zmm12{%k2}
+ vpermt2ps 192+__svml_sacosh_data_internal_avx512(%rip), %zmm3, %zmm5
+ vpermt2ps 64+__svml_sacosh_data_internal_avx512(%rip), %zmm3, %zmm14
+
+/* R^2 */
+ vmulps {rn-sae}, %zmm1, %zmm1, %zmm11
+
+/* -K*L2H + Th */
+ vmovups 1216+__svml_sacosh_data_internal_avx512(%rip), %zmm2
+ vfmadd231ps {rn-sae}, %zmm1, %zmm9, %zmm13
+ vfnmadd231ps {rn-sae}, %zmm12, %zmm2, %zmm14
+ vfnmadd213ps {rn-sae}, %zmm5, %zmm4, %zmm12
+ vfmadd213ps {rn-sae}, %zmm10, %zmm1, %zmm13
+
+/* Tl + R^2*Poly */
+ vfmadd213ps {rn-sae}, %zmm12, %zmm11, %zmm13
+
+/* R+Tl + R^2*Poly */
+ vaddps {rn-sae}, %zmm1, %zmm13, %zmm1
+ vaddps {rn-sae}, %zmm1, %zmm14, %zmm0{%k3}
+ jne L(2)
+
+L(1):
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+
+L(2):
+ vmovups %zmm8, 64(%rsp)
+ vmovups %zmm0, 128(%rsp)
+ je L(1)
+ xorl %eax, %eax
+ vzeroupper
+ kmovw %k4, 24(%rsp)
+ kmovw %k5, 16(%rsp)
+ kmovw %k6, 8(%rsp)
+ kmovw %k7, (%rsp)
+ movq %rsi, 40(%rsp)
+ movq %rdi, 32(%rsp)
+ movq %r12, 56(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 48(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+L(3):
+ btl %r12d, %r13d
+ jc L(5)
+
+L(4):
+ incl %r12d
+ cmpl $16, %r12d
+ jl L(3)
+ kmovw 24(%rsp), %k4
+ cfi_restore(122)
+ kmovw 16(%rsp), %k5
+ cfi_restore(123)
+ kmovw 8(%rsp), %k6
+ cfi_restore(124)
+ kmovw (%rsp), %k7
+ cfi_restore(125)
+ vmovups 128(%rsp), %zmm0
+ movq 40(%rsp), %rsi
+ cfi_restore(4)
+ movq 32(%rsp), %rdi
+ cfi_restore(5)
+ movq 56(%rsp), %r12
+ cfi_restore(12)
+ movq 48(%rsp), %r13
+ cfi_restore(13)
+ jmp L(1)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+L(5):
+ lea 64(%rsp,%r12,4), %rdi
+ lea 128(%rsp,%r12,4), %rsi
+ call __svml_sacosh_cout_rare_internal
+ jmp L(4)
+
+END(_ZGVeN16v_acoshf_skx)
+
+ .align 16,0x90
+
+__svml_sacosh_cout_rare_internal:
+
+ cfi_startproc
+
+ movl (%rdi), %eax
+ movl %eax, -8(%rsp)
+ andl $2139095040, %eax
+ cmpl $2139095040, %eax
+ je L(9)
+
+L(6):
+ movl -8(%rsp), %eax
+ cmpl $1065353216, %eax
+ je L(8)
+ cmpl $2139095040, %eax
+ jne L(7)
+ movl 8+__sacosh_la__iml_sacosh_cout_tab(%rip), %eax
+ movl %eax, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(7):
+ movss 8+__sacosh_la__iml_sacosh_cout_tab(%rip), %xmm0
+ movl $1, %eax
+ mulss 4+__sacosh_la__iml_sacosh_cout_tab(%rip), %xmm0
+ movss %xmm0, (%rsi)
+ ret
+
+L(8):
+ movl 4+__sacosh_la__iml_sacosh_cout_tab(%rip), %eax
+ movl %eax, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(9):
+ testl $8388607, -8(%rsp)
+ je L(6)
+ movss -8(%rsp), %xmm0
+ xorl %eax, %eax
+ mulss -8(%rsp), %xmm0
+ movss %xmm0, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_sacosh_cout_rare_internal,@function
+ .size __svml_sacosh_cout_rare_internal,.-__svml_sacosh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_sacosh_data_internal_avx512:
+ .long 0
+ .long 3170631680
+ .long 3178790912
+ .long 3182919680
+ .long 3186704384
+ .long 3189022720
+ .long 3190816768
+ .long 3192561664
+ .long 3194257408
+ .long 3195912192
+ .long 3196796928
+ .long 3197583360
+ .long 3198357504
+ .long 3199111168
+ .long 3199848448
+ .long 3200569344
+ .long 3201277952
+ .long 3201966080
+ .long 3202646016
+ .long 3203309568
+ .long 3203960832
+ .long 3204524032
+ .long 3204837376
+ .long 3205146624
+ .long 3205447680
+ .long 3205744640
+ .long 3206037504
+ .long 3206324224
+ .long 3206606848
+ .long 3206883328
+ .long 3207155712
+ .long 3207424000
+ .long 2147483648
+ .long 3072770974
+ .long 943319038
+ .long 3075640037
+ .long 930648533
+ .long 3089726480
+ .long 936349528
+ .long 944943494
+ .long 897812054
+ .long 3087808175
+ .long 941839444
+ .long 3093478113
+ .long 937982919
+ .long 931430736
+ .long 924853521
+ .long 3075349253
+ .long 945558336
+ .long 3094838221
+ .long 906200662
+ .long 3084126596
+ .long 3088015279
+ .long 3089451852
+ .long 3093678154
+ .long 938521645
+ .long 3091119329
+ .long 3090949395
+ .long 933442244
+ .long 930702671
+ .long 945827699
+ .long 913590776
+ .long 3082066287
+ .long 3087046763
+ .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 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 1593835520
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 3190466014
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1040187392
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 1082130432
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .type __svml_sacosh_data_internal_avx512,@object
+ .size __svml_sacosh_data_internal_avx512,1344
+ .align 4
+
+__sacosh_la__iml_sacosh_cout_tab:
+ .long 1065353216
+ .long 0
+ .long 2139095040
+ .type __sacosh_la__iml_sacosh_cout_tab,@object
+ .size __sacosh_la__iml_sacosh_cout_tab,12
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE2 version of vectorized acoshf, 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_acoshf _ZGVbN4v_acoshf_sse2
+#include "../svml_s_acoshf4_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized acoshf, 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_acoshf
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN4v_acoshf, __GI__ZGVbN4v_acoshf,
+ __redirect__ZGVbN4v_acoshf)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,2499 @@
+/* Function acoshf vectorized with SSE4.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute acosh(x) as log(x + sqrt(x*x - 1))
+ *
+ * Special cases:
+ *
+ * acosh(NaN) = quiet NaN, and raise invalid exception
+ * acosh(-INF) = NaN
+ * acosh(+INF) = +INF
+ * acosh(x) = NaN if x < 1
+ * acosh(1) = +0
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.sse4,"ax",@progbits
+ENTRY(_ZGVbN4v_acoshf_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
+
+/* Compute U = X - 1 and V = X + 1, naively first. */
+ movaps %xmm0, %xmm3
+
+/* Load constants, always including One = 1 */
+ movups 1920+__svml_sacosh_data_internal(%rip), %xmm1
+
+/*
+ * Check that 1 < X < +inf; otherwise go to the callout function.
+ * We need the callout for X = 1 to avoid division by zero below.
+ * This test ensures that callout handles NaN and either infinity.
+ */
+ movaps %xmm0, %xmm5
+ movaps %xmm1, %xmm7
+ movaps %xmm1, %xmm2
+
+/* Finally, express Y + W = U * V accurately where Y has <= 8 bits */
+ movups 3008+__svml_sacosh_data_internal(%rip), %xmm4
+ subps %xmm1, %xmm3
+ addps %xmm0, %xmm7
+ cmpnleps 2624+__svml_sacosh_data_internal(%rip), %xmm5
+ cmpnltps %xmm0, %xmm2
+
+/* For low-accuracy versions, naivety is harmless */
+ mulps %xmm3, %xmm7
+ movups %xmm15, 144(%rsp)
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm4, %xmm15
+ andps %xmm7, %xmm15
+ orps %xmm2, %xmm5
+
+/*
+ * Compute R = 1/sqrt(Y + W) * (1 + d)
+ * Force R to <= 8 significant bits.
+ * This means that R * Y and R^2 * Y are exactly representable.
+ */
+ rsqrtps %xmm15, %xmm6
+ movmskps %xmm5, %edx
+ subps %xmm15, %xmm7
+ andps %xmm4, %xmm6
+
+/*
+ * Compute e = -(2 * d + d^2)
+ * The first FMR is exact, and the rounding error in the other is acceptable
+ * since d and e are ~ 2^-8
+ */
+ movaps %xmm1, %xmm5
+
+/*
+ * Compute S = (Y/sqrt(Y + W)) * (1 + d)
+ * and T = (W/sqrt(Y + W)) * (1 + d)
+ * so that S + T = sqrt(Y + W) * (1 + d)
+ * S is exact, and the rounding error in T is OK.
+ */
+ mulps %xmm6, %xmm15
+ movaps %xmm6, %xmm4
+ mulps %xmm6, %xmm7
+ mulps %xmm15, %xmm4
+ mulps %xmm7, %xmm6
+
+/*
+ * For low-accuracy versions, the computation can be done
+ * just as U + ((S + T) + (S + T) * Corr)
+ */
+ addps %xmm7, %xmm15
+ subps %xmm4, %xmm5
+
+/*
+ * Now we feed into the log1p code, using H in place of _VARG1 and
+ * also adding L into Xl.
+ * compute 1+x as high, low parts
+ */
+ movaps %xmm1, %xmm7
+
+/*
+ * The following computation can go wrong for very large X, e.g.
+ * the X^2 - 1 = U * V can overflow. But for large X we have
+ * acosh(X) / log(2 X) - 1 =~= 1/(4 * X^2), so for X >= 2^30
+ * we can just later stick X back into the log and tweak up the exponent.
+ * Actually we scale X by 2^-30 and tweak the exponent up by 31,
+ * to stay in the safe range for the later log computation.
+ * Compute a flag now telling us when to do this.
+ */
+ movaps %xmm0, %xmm2
+ cmpltps 2368+__svml_sacosh_data_internal(%rip), %xmm2
+ subps %xmm6, %xmm5
+
+/*
+ * Now 1 / (1 + d)
+ * = 1 / (1 + (sqrt(1 - e) - 1))
+ * = 1 / sqrt(1 - e)
+ * = 1 + 1/2 * e + 3/8 * e^2 + 5/16 * e^3 + 35/128 * e^4 + ...
+ * So compute the first three nonconstant terms of that, so that
+ * we have a relative correction (1 + Corr) to apply to S etc.
+ * C1 = 1/2
+ * C2 = 3/8
+ * C3 = 5/16
+ */
+ movups 2496+__svml_sacosh_data_internal(%rip), %xmm6
+ movaps %xmm2, %xmm4
+ mulps %xmm5, %xmm6
+ addps 2432+__svml_sacosh_data_internal(%rip), %xmm6
+ mulps %xmm5, %xmm6
+ addps 2560+__svml_sacosh_data_internal(%rip), %xmm6
+ mulps %xmm6, %xmm5
+ mulps %xmm15, %xmm5
+ addps %xmm5, %xmm15
+ movaps %xmm1, %xmm5
+ addps %xmm15, %xmm3
+ movaps %xmm1, %xmm15
+ maxps %xmm3, %xmm7
+ minps %xmm3, %xmm5
+ movaps %xmm7, %xmm6
+
+/* Now multiplex to the case X = 2^-30 * input, Xl = 0 in the "big" case. */
+ movups 3072+__svml_sacosh_data_internal(%rip), %xmm3
+ addps %xmm5, %xmm6
+ mulps %xmm0, %xmm3
+ subps %xmm6, %xmm7
+ andnps %xmm3, %xmm4
+ andps %xmm2, %xmm6
+ orps %xmm6, %xmm4
+ addps %xmm7, %xmm5
+
+/*
+ * Now resume the main code.
+ * reduction: compute r,n
+ */
+ movdqu 2240+__svml_sacosh_data_internal(%rip), %xmm7
+ andps %xmm2, %xmm5
+ movdqu 2304+__svml_sacosh_data_internal(%rip), %xmm6
+ psubd %xmm7, %xmm4
+ pand %xmm4, %xmm6
+ psrad $23, %xmm4
+ cvtdq2ps %xmm4, %xmm3
+ pslld $23, %xmm4
+ paddd %xmm7, %xmm6
+ psubd %xmm4, %xmm15
+
+/* polynomial evaluation */
+ subps %xmm1, %xmm6
+ mulps %xmm15, %xmm5
+ movups 2096+__svml_sacosh_data_internal(%rip), %xmm1
+ addps %xmm6, %xmm5
+ mulps %xmm5, %xmm1
+ movaps %xmm2, %xmm6
+
+/* Add 31 to the exponent in the "large" case to get log(2 * input) */
+ movups 2816+__svml_sacosh_data_internal(%rip), %xmm4
+ addps 2080+__svml_sacosh_data_internal(%rip), %xmm1
+ addps %xmm3, %xmm4
+ mulps %xmm5, %xmm1
+ andnps %xmm4, %xmm6
+ andps %xmm2, %xmm3
+ orps %xmm3, %xmm6
+ addps 2064+__svml_sacosh_data_internal(%rip), %xmm1
+
+/* final reconstruction */
+ mulps 3136+__svml_sacosh_data_internal(%rip), %xmm6
+ mulps %xmm5, %xmm1
+ addps 2048+__svml_sacosh_data_internal(%rip), %xmm1
+ mulps %xmm5, %xmm1
+ addps 2032+__svml_sacosh_data_internal(%rip), %xmm1
+ mulps %xmm5, %xmm1
+ addps 2016+__svml_sacosh_data_internal(%rip), %xmm1
+ mulps %xmm5, %xmm1
+ addps 2000+__svml_sacosh_data_internal(%rip), %xmm1
+ mulps %xmm5, %xmm1
+ addps 1984+__svml_sacosh_data_internal(%rip), %xmm1
+ mulps %xmm5, %xmm1
+ mulps %xmm5, %xmm1
+ addps %xmm1, %xmm5
+ addps %xmm6, %xmm5
+ testl %edx, %edx
+ jne L(2)
+
+L(1):
+ movups 144(%rsp), %xmm15
+ cfi_restore(32)
+ movaps %xmm5, %xmm0
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+
+L(2):
+ movups %xmm0, 192(%rsp)
+ movups %xmm5, 256(%rsp)
+ xorl %eax, %eax
+ movups %xmm8, 96(%rsp)
+ movups %xmm9, 80(%rsp)
+ movups %xmm10, 64(%rsp)
+ movups %xmm11, 48(%rsp)
+ movups %xmm12, 32(%rsp)
+ movups %xmm13, 16(%rsp)
+ movups %xmm14, (%rsp)
+ movq %rsi, 120(%rsp)
+ movq %rdi, 112(%rsp)
+ movq %r12, 136(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 128(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+L(3):
+ btl %r12d, %r13d
+ jc L(5)
+
+L(4):
+ incl %r12d
+ cmpl $4, %r12d
+ jl L(3)
+ movups 96(%rsp), %xmm8
+ cfi_restore(25)
+ movups 80(%rsp), %xmm9
+ cfi_restore(26)
+ movups 64(%rsp), %xmm10
+ cfi_restore(27)
+ movups 48(%rsp), %xmm11
+ cfi_restore(28)
+ movups 32(%rsp), %xmm12
+ cfi_restore(29)
+ movups 16(%rsp), %xmm13
+ cfi_restore(30)
+ movups (%rsp), %xmm14
+ cfi_restore(31)
+ movq 120(%rsp), %rsi
+ cfi_restore(4)
+ movq 112(%rsp), %rdi
+ cfi_restore(5)
+ movq 136(%rsp), %r12
+ cfi_restore(12)
+ movq 128(%rsp), %r13
+ cfi_restore(13)
+ movups 256(%rsp), %xmm5
+ jmp L(1)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22
+
+L(5):
+ lea 192(%rsp,%r12,4), %rdi
+ lea 256(%rsp,%r12,4), %rsi
+ call __svml_sacosh_cout_rare_internal
+ jmp L(4)
+
+END(_ZGVbN4v_acoshf_sse4)
+
+ .align 16,0x90
+
+__svml_sacosh_cout_rare_internal:
+
+ cfi_startproc
+
+ movl (%rdi), %eax
+ movl %eax, -8(%rsp)
+ andl $2139095040, %eax
+ cmpl $2139095040, %eax
+ je L(9)
+
+L(6):
+ movl -8(%rsp), %eax
+ cmpl $1065353216, %eax
+ je L(8)
+ cmpl $2139095040, %eax
+ jne L(7)
+ movl 8+__sacosh_la__iml_sacosh_cout_tab(%rip), %eax
+ movl %eax, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(7):
+ movss 8+__sacosh_la__iml_sacosh_cout_tab(%rip), %xmm0
+ movl $1, %eax
+ mulss 4+__sacosh_la__iml_sacosh_cout_tab(%rip), %xmm0
+ movss %xmm0, (%rsi)
+ ret
+
+L(8):
+ movl 4+__sacosh_la__iml_sacosh_cout_tab(%rip), %eax
+ movl %eax, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(9):
+ testl $8388607, -8(%rsp)
+ je L(6)
+ movss -8(%rsp), %xmm0
+ xorl %eax, %eax
+ mulss -8(%rsp), %xmm0
+ movss %xmm0, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_sacosh_cout_rare_internal,@function
+ .size __svml_sacosh_cout_rare_internal,.-__svml_sacosh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_sacosh_data_internal:
+ .long 3266227256
+ .long 3107766024
+ .long 3266228276
+ .long 3107776882
+ .long 3266229284
+ .long 3109949545
+ .long 3266230292
+ .long 3108055846
+ .long 3266231292
+ .long 3106351937
+ .long 3266232276
+ .long 3109092567
+ .long 3266233260
+ .long 3107948216
+ .long 3266234236
+ .long 3107170960
+ .long 3266235204
+ .long 3106817287
+ .long 3266236164
+ .long 3106942449
+ .long 3266237116
+ .long 3107600489
+ .long 3266238060
+ .long 3108844279
+ .long 3266239004
+ .long 3106531253
+ .long 3266239932
+ .long 3109100650
+ .long 3266240860
+ .long 3108213420
+ .long 3266241780
+ .long 3108112381
+ .long 3266242692
+ .long 3108845034
+ .long 3266243604
+ .long 3106263589
+ .long 3266244500
+ .long 3108802209
+ .long 3266245396
+ .long 3108116909
+ .long 3266246284
+ .long 3108445707
+ .long 3266247164
+ .long 3109831435
+ .long 3266248044
+ .long 3108121760
+ .long 3266248916
+ .long 3107552123
+ .long 3266249780
+ .long 3108162844
+ .long 3266250644
+ .long 3105799146
+ .long 3266251492
+ .long 3108888393
+ .long 3266252340
+ .long 3109079979
+ .long 3266253188
+ .long 3106411173
+ .long 3266254020
+ .long 3109307139
+ .long 3266254852
+ .long 3109415127
+ .long 3266255684
+ .long 3106770317
+ .long 3266256500
+ .long 3109795834
+ .long 3266257324
+ .long 3105942641
+ .long 3266258132
+ .long 3107826892
+ .long 3266258940
+ .long 3107092610
+ .long 3266259740
+ .long 3107966131
+ .long 3266260540
+ .long 3106284596
+ .long 3266261332
+ .long 3106273188
+ .long 3266262116
+ .long 3107962226
+ .long 3266262900
+ .long 3107187186
+ .long 3266263676
+ .long 3108171617
+ .long 3266264452
+ .long 3106749947
+ .long 3266265220
+ .long 3107144703
+ .long 3266265980
+ .long 3109383615
+ .long 3266266740
+ .long 3109299629
+ .long 3266267500
+ .long 3106919521
+ .long 3266268252
+ .long 3106463913
+ .long 3266268996
+ .long 3107958670
+ .long 3266269740
+ .long 3107234917
+ .long 3266270476
+ .long 3108511954
+ .long 3266271212
+ .long 3107620056
+ .long 3266271940
+ .long 3108777693
+ .long 3266272668
+ .long 3107814325
+ .long 3266273388
+ .long 3108947630
+ .long 3266274108
+ .long 3108006290
+ .long 3266274820
+ .long 3109207222
+ .long 3266275532
+ .long 3108378366
+ .long 3266276236
+ .long 3109735912
+ .long 3266276940
+ .long 3109107087
+ .long 3266277644
+ .long 3106513079
+ .long 3266278340
+ .long 3106169044
+ .long 3266279028
+ .long 3108095503
+ .long 3266279716
+ .long 3108118349
+ .long 3266280404
+ .long 3106257463
+ .long 3266281084
+ .long 3106726720
+ .long 3266281756
+ .long 3109545389
+ .long 3266282436
+ .long 3106343833
+ .long 3266283100
+ .long 3109723642
+ .long 3266283772
+ .long 3107120300
+ .long 3266284436
+ .long 3106940529
+ .long 3266285092
+ .long 3109202170
+ .long 3266285748
+ .long 3109728494
+ .long 3266286404
+ .long 3108536808
+ .long 3266287052
+ .long 3109838471
+ .long 3266287700
+ .long 3109455977
+ .long 3266288348
+ .long 3107405879
+ .long 3266288988
+ .long 3107898790
+ .long 3266289628
+ .long 3106756477
+ .long 3266290260
+ .long 3108189081
+ .long 3266290892
+ .long 3108017907
+ .long 3266291524
+ .long 3106258339
+ .long 3266292148
+ .long 3107119845
+ .long 3266292772
+ .long 3106423069
+ .long 3266293388
+ .long 3108377050
+ .long 3266294004
+ .long 3108802011
+ .long 3266294620
+ .long 3107712277
+ .long 3266295228
+ .long 3109316274
+ .long 3266295836
+ .long 3109433625
+ .long 3266296444
+ .long 3108078064
+ .long 3266297044
+ .long 3109457438
+ .long 3266297644
+ .long 3109390801
+ .long 3266298244
+ .long 3107891329
+ .long 3266298836
+ .long 3109166323
+ .long 3266299428
+ .long 3109034299
+ .long 3266300020
+ .long 3107507904
+ .long 3266300604
+ .long 3108793919
+ .long 3266301188
+ .long 3108710352
+ .long 3266301772
+ .long 3107269350
+ .long 3266302348
+ .long 3108677203
+ .long 3266302924
+ .long 3108751436
+ .long 3266303500
+ .long 3107503720
+ .long 3266304068
+ .long 3109139881
+ .long 3266304636
+ .long 3109476985
+ .long 3266305204
+ .long 3108526254
+ .long 3266305772
+ .long 3106298768
+ .long 3266306332
+ .long 3106999765
+ .long 3266306892
+ .long 3106445739
+ .long 3266307444
+ .long 3108841650
+ .long 3266308004
+ .long 3105809415
+ .long 3266308548
+ .long 3109942336
+ .long 3266309100
+ .long 3108667760
+ .long 3266309652
+ .long 3106190122
+ .long 3266310196
+ .long 3106713732
+ .long 3266310740
+ .long 3106054165
+ .long 3266311276
+ .long 3108415484
+ .long 3266311812
+ .long 3109613023
+ .long 3266312348
+ .long 3109656301
+ .long 3266312884
+ .long 3108554723
+ .long 3266313420
+ .long 3106317576
+ .long 3266313948
+ .long 3107148341
+ .long 3266314476
+ .long 3106861780
+ .long 3266314996
+ .long 3109661153
+ .long 3266315524
+ .long 3107166702
+ .long 3266316044
+ .long 3107775778
+ .long 3266316564
+ .long 3107302717
+ .long 3266317076
+ .long 3109950361
+ .long 3266317596
+ .long 3107338539
+ .long 3266318108
+ .long 3107864196
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 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 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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_sacosh_data_internal,@object
+ .size __svml_sacosh_data_internal,3392
+ .align 4
+
+__sacosh_la__iml_sacosh_cout_tab:
+ .long 1065353216
+ .long 0
+ .long 2139095040
+ .type __sacosh_la__iml_sacosh_cout_tab,@object
+ .size __sacosh_la__iml_sacosh_cout_tab,12
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE version of vectorized acoshf, 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_acoshf _ZGVdN8v_acoshf_sse_wrapper
+#include "../svml_s_acoshf8_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized acoshf, 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_acoshf
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN8v_acoshf, __GI__ZGVdN8v_acoshf,
+ __redirect__ZGVdN8v_acoshf)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,2113 @@
+/* Function acoshf vectorized with AVX2.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute acosh(x) as log(x + sqrt(x*x - 1))
+ *
+ * Special cases:
+ *
+ * acosh(NaN) = quiet NaN, and raise invalid exception
+ * acosh(-INF) = NaN
+ * acosh(+INF) = +INF
+ * acosh(x) = NaN if x < 1
+ * acosh(1) = +0
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.avx2,"ax",@progbits
+ENTRY(_ZGVdN8v_acoshf_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
+
+/* Load constants, always including One = 1 */
+ vmovups 1920+__svml_sacosh_data_internal(%rip), %ymm2
+ vmovups %ymm10, 160(%rsp)
+ vmovups %ymm8, 32(%rsp)
+ vmovups %ymm11, 192(%rsp)
+ vmovups %ymm9, 96(%rsp)
+ .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .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
+
+/*
+ * Now 1 / (1 + d)
+ * = 1 / (1 + (sqrt(1 - e) - 1))
+ * = 1 / sqrt(1 - e)
+ * = 1 + 1/2 * e + 3/8 * e^2 + 5/16 * e^3 + 35/128 * e^4 + ...
+ * So compute the first three nonconstant terms of that, so that
+ * we have a relative correction (1 + Corr) to apply to S etc.
+ * C1 = 1/2
+ * C2 = 3/8
+ * C3 = 5/16
+ */
+ vmovups 2624+__svml_sacosh_data_internal(%rip), %ymm9
+ vmovups %ymm12, 224(%rsp)
+ vmovups %ymm14, 288(%rsp)
+ vmovups %ymm13, 256(%rsp)
+ vmovups %ymm15, 320(%rsp)
+ vmovaps %ymm0, %ymm3
+
+/*
+ * Check that 1 < X < +inf; otherwise go to the callout function.
+ * We need the callout for X = 1 to avoid division by zero below.
+ * This test ensures that callout handles NaN and either infinity.
+ */
+ vcmpnle_uqps 2752+__svml_sacosh_data_internal(%rip), %ymm3, %ymm4
+ vcmpngt_uqps %ymm2, %ymm3, %ymm5
+ .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
+
+/* sU is needed later on */
+ vsubps %ymm2, %ymm3, %ymm13
+
+/*
+ * The following computation can go wrong for very large X, e.g.
+ * the X^2 - 1 = U * V can overflow. But for large X we have
+ * acosh(X) / log(2 X) - 1 =~= 1/(4 * X^2), so for X >= 2^30
+ * we can just later stick X back into the log and tweak up the exponent.
+ * Actually we scale X by 2^-30 and tweak the exponent up by 31,
+ * to stay in the safe range for the later log computation.
+ * Compute a flag now telling us when to do this.
+ */
+ vcmplt_oqps 2496+__svml_sacosh_data_internal(%rip), %ymm3, %ymm1
+ vmovaps %ymm2, %ymm7
+ vorps %ymm5, %ymm4, %ymm6
+ vfmsub231ps %ymm3, %ymm3, %ymm7
+
+/* Finally, express Y + W = U * V accurately where Y has <= 8 bits */
+ vmovups 3136+__svml_sacosh_data_internal(%rip), %ymm4
+ vandps %ymm4, %ymm7, %ymm5
+
+/*
+ * Compute R = 1/sqrt(Y + W) * (1 + d)
+ * Force R to <= 8 significant bits.
+ * This means that R * Y and R^2 * Y are exactly representable.
+ */
+ vrsqrtps %ymm5, %ymm0
+ vsubps %ymm5, %ymm7, %ymm7
+ vmovmskps %ymm6, %edx
+ vandps %ymm4, %ymm0, %ymm6
+
+/*
+ * Compute S = (Y/sqrt(Y + W)) * (1 + d)
+ * and T = (W/sqrt(Y + W)) * (1 + d)
+ * so that S + T = sqrt(Y + W) * (1 + d)
+ * S is exact, and the rounding error in T is OK.
+ */
+ vmulps %ymm6, %ymm5, %ymm10
+ vmulps %ymm7, %ymm6, %ymm11
+
+/*
+ * Compute e = -(2 * d + d^2)
+ * The first FMR is exact, and the rounding error in the other is acceptable
+ * since d and e are ~ 2^-8
+ */
+ vmovaps %ymm2, %ymm8
+ vfnmadd231ps %ymm10, %ymm6, %ymm8
+
+/*
+ * For low-accuracy versions, the computation can be done
+ * just as U + ((S + T) + (S + T) * Corr)
+ */
+ vaddps %ymm11, %ymm10, %ymm14
+ vfnmadd231ps %ymm11, %ymm6, %ymm8
+
+/* Now multiplex to the case X = 2^-30 * input, Xl = 0 in the "big" case. */
+ vmulps 3200+__svml_sacosh_data_internal(%rip), %ymm3, %ymm6
+ vfmadd213ps 2560+__svml_sacosh_data_internal(%rip), %ymm8, %ymm9
+ vfmadd213ps 2688+__svml_sacosh_data_internal(%rip), %ymm8, %ymm9
+ vmulps %ymm9, %ymm8, %ymm12
+ vfmadd213ps %ymm14, %ymm12, %ymm14
+
+/*
+ * Now resume the main code.
+ * reduction: compute r,n
+ */
+ vmovups 2368+__svml_sacosh_data_internal(%rip), %ymm12
+ vaddps %ymm14, %ymm13, %ymm15
+
+/*
+ * Now we feed into the log1p code, using H in place of _VARG1 and
+ * also adding L into Xl.
+ * compute 1+x as high, low parts
+ */
+ vmaxps %ymm15, %ymm2, %ymm0
+ vminps %ymm15, %ymm2, %ymm4
+ vaddps %ymm4, %ymm0, %ymm7
+ vblendvps %ymm1, %ymm7, %ymm6, %ymm9
+ vsubps %ymm7, %ymm0, %ymm5
+ vpsubd %ymm12, %ymm9, %ymm10
+ vaddps %ymm5, %ymm4, %ymm8
+ vpsrad $23, %ymm10, %ymm13
+ vpand 2432+__svml_sacosh_data_internal(%rip), %ymm10, %ymm11
+ vpslld $23, %ymm13, %ymm14
+ vpaddd %ymm12, %ymm11, %ymm4
+ vcvtdq2ps %ymm13, %ymm0
+ vpsubd %ymm14, %ymm2, %ymm13
+
+/* polynomial evaluation */
+ vsubps %ymm2, %ymm4, %ymm2
+ vmovups 2208+__svml_sacosh_data_internal(%rip), %ymm4
+ vandps %ymm1, %ymm8, %ymm15
+ vmulps %ymm13, %ymm15, %ymm5
+ vaddps %ymm2, %ymm5, %ymm2
+
+/* Add 31 to the exponent in the "large" case to get log(2 * input) */
+ vaddps 2944+__svml_sacosh_data_internal(%rip), %ymm0, %ymm5
+ vfmadd213ps 2176+__svml_sacosh_data_internal(%rip), %ymm2, %ymm4
+ vblendvps %ymm1, %ymm0, %ymm5, %ymm0
+ vfmadd213ps 2144+__svml_sacosh_data_internal(%rip), %ymm2, %ymm4
+ vfmadd213ps 2112+__svml_sacosh_data_internal(%rip), %ymm2, %ymm4
+ vfmadd213ps 2080+__svml_sacosh_data_internal(%rip), %ymm2, %ymm4
+ vfmadd213ps 2048+__svml_sacosh_data_internal(%rip), %ymm2, %ymm4
+ vfmadd213ps 2016+__svml_sacosh_data_internal(%rip), %ymm2, %ymm4
+ vfmadd213ps 1984+__svml_sacosh_data_internal(%rip), %ymm2, %ymm4
+ vmulps %ymm4, %ymm2, %ymm6
+ vfmadd213ps %ymm2, %ymm2, %ymm6
+
+/* final reconstruction */
+ vfmadd132ps 3264+__svml_sacosh_data_internal(%rip), %ymm6, %ymm0
+ testl %edx, %edx
+ jne L(2)
+
+L(1):
+ vmovups 32(%rsp), %ymm8
+ cfi_restore(91)
+ vmovups 96(%rsp), %ymm9
+ cfi_restore(92)
+ vmovups 160(%rsp), %ymm10
+ cfi_restore(93)
+ vmovups 192(%rsp), %ymm11
+ cfi_restore(94)
+ vmovups 224(%rsp), %ymm12
+ cfi_restore(95)
+ vmovups 256(%rsp), %ymm13
+ cfi_restore(96)
+ vmovups 288(%rsp), %ymm14
+ cfi_restore(97)
+ vmovups 320(%rsp), %ymm15
+ cfi_restore(98)
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+
+L(2):
+ vmovups %ymm3, 64(%rsp)
+ vmovups %ymm0, 128(%rsp)
+ je L(1)
+ xorl %eax, %eax
+ vzeroupper
+ movq %rsi, 8(%rsp)
+ movq %rdi, (%rsp)
+ movq %r12, 24(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 16(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+L(3):
+ btl %r12d, %r13d
+ jc L(5)
+
+L(4):
+ incl %r12d
+ cmpl $8, %r12d
+ jl L(3)
+ movq 8(%rsp), %rsi
+ cfi_restore(4)
+ movq (%rsp), %rdi
+ cfi_restore(5)
+ movq 24(%rsp), %r12
+ cfi_restore(12)
+ movq 16(%rsp), %r13
+ cfi_restore(13)
+ vmovups 128(%rsp), %ymm0
+ jmp L(1)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+
+L(5):
+ lea 64(%rsp,%r12,4), %rdi
+ lea 128(%rsp,%r12,4), %rsi
+ call __svml_sacosh_cout_rare_internal
+ jmp L(4)
+
+END(_ZGVdN8v_acoshf_avx2)
+
+ .align 16,0x90
+
+__svml_sacosh_cout_rare_internal:
+
+ cfi_startproc
+
+ movl (%rdi), %eax
+ movl %eax, -8(%rsp)
+ andl $2139095040, %eax
+ cmpl $2139095040, %eax
+ je L(9)
+
+L(6):
+ movl -8(%rsp), %eax
+ cmpl $1065353216, %eax
+ je L(8)
+ cmpl $2139095040, %eax
+ jne L(7)
+ movl 8+__sacosh_la__iml_sacosh_cout_tab(%rip), %eax
+ movl %eax, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(7):
+ movss 8+__sacosh_la__iml_sacosh_cout_tab(%rip), %xmm0
+ movl $1, %eax
+ mulss 4+__sacosh_la__iml_sacosh_cout_tab(%rip), %xmm0
+ movss %xmm0, (%rsi)
+ ret
+
+L(8):
+ movl 4+__sacosh_la__iml_sacosh_cout_tab(%rip), %eax
+ movl %eax, (%rsi)
+ xorl %eax, %eax
+ ret
+
+L(9):
+ testl $8388607, -8(%rsp)
+ je L(6)
+ movss -8(%rsp), %xmm0
+ xorl %eax, %eax
+ mulss -8(%rsp), %xmm0
+ movss %xmm0, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_sacosh_cout_rare_internal,@function
+ .size __svml_sacosh_cout_rare_internal,.-__svml_sacosh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_sacosh_data_internal:
+ .long 3266227256
+ .long 3107766024
+ .long 3266228276
+ .long 3107776882
+ .long 3266229284
+ .long 3109949545
+ .long 3266230292
+ .long 3108055846
+ .long 3266231292
+ .long 3106351937
+ .long 3266232276
+ .long 3109092567
+ .long 3266233260
+ .long 3107948216
+ .long 3266234236
+ .long 3107170960
+ .long 3266235204
+ .long 3106817287
+ .long 3266236164
+ .long 3106942449
+ .long 3266237116
+ .long 3107600489
+ .long 3266238060
+ .long 3108844279
+ .long 3266239004
+ .long 3106531253
+ .long 3266239932
+ .long 3109100650
+ .long 3266240860
+ .long 3108213420
+ .long 3266241780
+ .long 3108112381
+ .long 3266242692
+ .long 3108845034
+ .long 3266243604
+ .long 3106263589
+ .long 3266244500
+ .long 3108802209
+ .long 3266245396
+ .long 3108116909
+ .long 3266246284
+ .long 3108445707
+ .long 3266247164
+ .long 3109831435
+ .long 3266248044
+ .long 3108121760
+ .long 3266248916
+ .long 3107552123
+ .long 3266249780
+ .long 3108162844
+ .long 3266250644
+ .long 3105799146
+ .long 3266251492
+ .long 3108888393
+ .long 3266252340
+ .long 3109079979
+ .long 3266253188
+ .long 3106411173
+ .long 3266254020
+ .long 3109307139
+ .long 3266254852
+ .long 3109415127
+ .long 3266255684
+ .long 3106770317
+ .long 3266256500
+ .long 3109795834
+ .long 3266257324
+ .long 3105942641
+ .long 3266258132
+ .long 3107826892
+ .long 3266258940
+ .long 3107092610
+ .long 3266259740
+ .long 3107966131
+ .long 3266260540
+ .long 3106284596
+ .long 3266261332
+ .long 3106273188
+ .long 3266262116
+ .long 3107962226
+ .long 3266262900
+ .long 3107187186
+ .long 3266263676
+ .long 3108171617
+ .long 3266264452
+ .long 3106749947
+ .long 3266265220
+ .long 3107144703
+ .long 3266265980
+ .long 3109383615
+ .long 3266266740
+ .long 3109299629
+ .long 3266267500
+ .long 3106919521
+ .long 3266268252
+ .long 3106463913
+ .long 3266268996
+ .long 3107958670
+ .long 3266269740
+ .long 3107234917
+ .long 3266270476
+ .long 3108511954
+ .long 3266271212
+ .long 3107620056
+ .long 3266271940
+ .long 3108777693
+ .long 3266272668
+ .long 3107814325
+ .long 3266273388
+ .long 3108947630
+ .long 3266274108
+ .long 3108006290
+ .long 3266274820
+ .long 3109207222
+ .long 3266275532
+ .long 3108378366
+ .long 3266276236
+ .long 3109735912
+ .long 3266276940
+ .long 3109107087
+ .long 3266277644
+ .long 3106513079
+ .long 3266278340
+ .long 3106169044
+ .long 3266279028
+ .long 3108095503
+ .long 3266279716
+ .long 3108118349
+ .long 3266280404
+ .long 3106257463
+ .long 3266281084
+ .long 3106726720
+ .long 3266281756
+ .long 3109545389
+ .long 3266282436
+ .long 3106343833
+ .long 3266283100
+ .long 3109723642
+ .long 3266283772
+ .long 3107120300
+ .long 3266284436
+ .long 3106940529
+ .long 3266285092
+ .long 3109202170
+ .long 3266285748
+ .long 3109728494
+ .long 3266286404
+ .long 3108536808
+ .long 3266287052
+ .long 3109838471
+ .long 3266287700
+ .long 3109455977
+ .long 3266288348
+ .long 3107405879
+ .long 3266288988
+ .long 3107898790
+ .long 3266289628
+ .long 3106756477
+ .long 3266290260
+ .long 3108189081
+ .long 3266290892
+ .long 3108017907
+ .long 3266291524
+ .long 3106258339
+ .long 3266292148
+ .long 3107119845
+ .long 3266292772
+ .long 3106423069
+ .long 3266293388
+ .long 3108377050
+ .long 3266294004
+ .long 3108802011
+ .long 3266294620
+ .long 3107712277
+ .long 3266295228
+ .long 3109316274
+ .long 3266295836
+ .long 3109433625
+ .long 3266296444
+ .long 3108078064
+ .long 3266297044
+ .long 3109457438
+ .long 3266297644
+ .long 3109390801
+ .long 3266298244
+ .long 3107891329
+ .long 3266298836
+ .long 3109166323
+ .long 3266299428
+ .long 3109034299
+ .long 3266300020
+ .long 3107507904
+ .long 3266300604
+ .long 3108793919
+ .long 3266301188
+ .long 3108710352
+ .long 3266301772
+ .long 3107269350
+ .long 3266302348
+ .long 3108677203
+ .long 3266302924
+ .long 3108751436
+ .long 3266303500
+ .long 3107503720
+ .long 3266304068
+ .long 3109139881
+ .long 3266304636
+ .long 3109476985
+ .long 3266305204
+ .long 3108526254
+ .long 3266305772
+ .long 3106298768
+ .long 3266306332
+ .long 3106999765
+ .long 3266306892
+ .long 3106445739
+ .long 3266307444
+ .long 3108841650
+ .long 3266308004
+ .long 3105809415
+ .long 3266308548
+ .long 3109942336
+ .long 3266309100
+ .long 3108667760
+ .long 3266309652
+ .long 3106190122
+ .long 3266310196
+ .long 3106713732
+ .long 3266310740
+ .long 3106054165
+ .long 3266311276
+ .long 3108415484
+ .long 3266311812
+ .long 3109613023
+ .long 3266312348
+ .long 3109656301
+ .long 3266312884
+ .long 3108554723
+ .long 3266313420
+ .long 3106317576
+ .long 3266313948
+ .long 3107148341
+ .long 3266314476
+ .long 3106861780
+ .long 3266314996
+ .long 3109661153
+ .long 3266315524
+ .long 3107166702
+ .long 3266316044
+ .long 3107775778
+ .long 3266316564
+ .long 3107302717
+ .long 3266317076
+ .long 3109950361
+ .long 3266317596
+ .long 3107338539
+ .long 3266318108
+ .long 3107864196
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .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 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 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 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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_sacosh_data_internal,@object
+ .size __svml_sacosh_data_internal,3520
+ .align 4
+
+__sacosh_la__iml_sacosh_cout_tab:
+ .long 1065353216
+ .long 0
+ .long 2139095040
+ .type __sacosh_la__iml_sacosh_cout_tab,@object
+ .size __sacosh_la__iml_sacosh_cout_tab,12
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function acosh 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_acosh)
+WRAPPER_IMPL_SSE2 acosh
+END (_ZGVbN2v_acosh)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN2v_acosh)
+#endif
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function acosh 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_acosh)
+WRAPPER_IMPL_AVX _ZGVbN2v_acosh
+END (_ZGVdN4v_acosh)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN4v_acosh)
+#endif
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function acosh 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_acosh)
+WRAPPER_IMPL_AVX _ZGVbN2v_acosh
+END (_ZGVcN4v_acosh)
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function acosh 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_acosh)
+WRAPPER_IMPL_AVX512 _ZGVdN4v_acosh
+END (_ZGVeN8v_acosh)
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function acoshf 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_acoshf)
+WRAPPER_IMPL_AVX512 _ZGVdN8v_acoshf
+END (_ZGVeN16v_acoshf)
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function acoshf 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_acoshf)
+WRAPPER_IMPL_SSE2 acoshf
+END (_ZGVbN4v_acoshf)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN4v_acoshf)
+#endif
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function acoshf 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_acoshf)
+WRAPPER_IMPL_AVX _ZGVbN4v_acoshf
+END (_ZGVdN8v_acoshf)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN8v_acoshf)
+#endif
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function acoshf 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_acoshf)
+WRAPPER_IMPL_AVX _ZGVbN4v_acoshf
+END (_ZGVcN8v_acoshf)
new file mode 100644
@@ -0,0 +1 @@
+#include "test-double-libmvec-acosh.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-double-libmvec-acosh.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-double-libmvec-acosh.c"
new file mode 100644
@@ -0,0 +1,3 @@
+#define LIBMVEC_TYPE double
+#define LIBMVEC_FUNC acosh
+#include "test-vector-abi-arg1.h"
@@ -28,6 +28,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (log), _ZGVbN2v_log)
VECTOR_WRAPPER (WRAPPER_NAME (exp), _ZGVbN2v_exp)
VECTOR_WRAPPER_ff (WRAPPER_NAME (pow), _ZGVbN2vv_pow)
VECTOR_WRAPPER (WRAPPER_NAME (acos), _ZGVbN2v_acos)
+VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVbN2v_acosh)
#define VEC_INT_TYPE __m128i
@@ -31,6 +31,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (log), _ZGVdN4v_log)
VECTOR_WRAPPER (WRAPPER_NAME (exp), _ZGVdN4v_exp)
VECTOR_WRAPPER_ff (WRAPPER_NAME (pow), _ZGVdN4vv_pow)
VECTOR_WRAPPER (WRAPPER_NAME (acos), _ZGVdN4v_acos)
+VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVdN4v_acosh)
#ifndef __ILP32__
# define VEC_INT_TYPE __m256i
@@ -28,6 +28,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (log), _ZGVcN4v_log)
VECTOR_WRAPPER (WRAPPER_NAME (exp), _ZGVcN4v_exp)
VECTOR_WRAPPER_ff (WRAPPER_NAME (pow), _ZGVcN4vv_pow)
VECTOR_WRAPPER (WRAPPER_NAME (acos), _ZGVcN4v_acos)
+VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVcN4v_acosh)
#define VEC_INT_TYPE __m128i
@@ -28,6 +28,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (log), _ZGVeN8v_log)
VECTOR_WRAPPER (WRAPPER_NAME (exp), _ZGVeN8v_exp)
VECTOR_WRAPPER_ff (WRAPPER_NAME (pow), _ZGVeN8vv_pow)
VECTOR_WRAPPER (WRAPPER_NAME (acos), _ZGVeN8v_acos)
+VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVeN8v_acosh)
#ifndef __ILP32__
# define VEC_INT_TYPE __m512i
new file mode 100644
@@ -0,0 +1 @@
+#include "test-float-libmvec-acoshf.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-float-libmvec-acoshf.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-float-libmvec-acoshf.c"
new file mode 100644
@@ -0,0 +1,3 @@
+#define LIBMVEC_TYPE float
+#define LIBMVEC_FUNC acoshf
+#include "test-vector-abi-arg1.h"
@@ -28,6 +28,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (logf), _ZGVeN16v_logf)
VECTOR_WRAPPER (WRAPPER_NAME (expf), _ZGVeN16v_expf)
VECTOR_WRAPPER_ff (WRAPPER_NAME (powf), _ZGVeN16vv_powf)
VECTOR_WRAPPER (WRAPPER_NAME (acosf), _ZGVeN16v_acosf)
+VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVeN16v_acoshf)
#define VEC_INT_TYPE __m512i
@@ -28,6 +28,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (logf), _ZGVbN4v_logf)
VECTOR_WRAPPER (WRAPPER_NAME (expf), _ZGVbN4v_expf)
VECTOR_WRAPPER_ff (WRAPPER_NAME (powf), _ZGVbN4vv_powf)
VECTOR_WRAPPER (WRAPPER_NAME (acosf), _ZGVbN4v_acosf)
+VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVbN4v_acoshf)
#define VEC_INT_TYPE __m128i
@@ -31,6 +31,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (logf), _ZGVdN8v_logf)
VECTOR_WRAPPER (WRAPPER_NAME (expf), _ZGVdN8v_expf)
VECTOR_WRAPPER_ff (WRAPPER_NAME (powf), _ZGVdN8vv_powf)
VECTOR_WRAPPER (WRAPPER_NAME (acosf), _ZGVdN8v_acosf)
+VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVdN8v_acoshf)
/* Redefinition of wrapper to be compatible with _ZGVdN8vvv_sincosf. */
#undef VECTOR_WRAPPER_fFF
@@ -28,6 +28,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (logf), _ZGVcN8v_logf)
VECTOR_WRAPPER (WRAPPER_NAME (expf), _ZGVcN8v_expf)
VECTOR_WRAPPER_ff (WRAPPER_NAME (powf), _ZGVcN8vv_powf)
VECTOR_WRAPPER (WRAPPER_NAME (acosf), _ZGVcN8v_acosf)
+VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVcN8v_acoshf)
#define VEC_INT_TYPE __m128i