@@ -153,4 +153,15 @@
#define __DECL_SIMD_atanf32x
#define __DECL_SIMD_atanf64x
#define __DECL_SIMD_atanf128x
+
+#define __DECL_SIMD_atan2
+#define __DECL_SIMD_atan2f
+#define __DECL_SIMD_atan2l
+#define __DECL_SIMD_atan2f16
+#define __DECL_SIMD_atan2f32
+#define __DECL_SIMD_atan2f64
+#define __DECL_SIMD_atan2f128
+#define __DECL_SIMD_atan2f32x
+#define __DECL_SIMD_atan2f64x
+#define __DECL_SIMD_atan2f128x
#endif
@@ -56,7 +56,7 @@ __MATHCALL_VEC (asin,, (_Mdouble_ __x));
/* Arc tangent of X. */
__MATHCALL_VEC (atan,, (_Mdouble_ __x));
/* Arc tangent of Y/X. */
-__MATHCALL (atan2,, (_Mdouble_ __y, _Mdouble_ __x));
+__MATHCALL_VEC (atan2,, (_Mdouble_ __y, _Mdouble_ __x));
/* Cosine of X. */
__MATHCALL_VEC (cos,, (_Mdouble_ __x));
@@ -51,38 +51,46 @@ GLIBC_2.35 _ZGVbN2v_acosh F
GLIBC_2.35 _ZGVbN2v_asin F
GLIBC_2.35 _ZGVbN2v_asinh F
GLIBC_2.35 _ZGVbN2v_atan F
+GLIBC_2.35 _ZGVbN2vv_atan2 F
GLIBC_2.35 _ZGVbN4v_acosf F
GLIBC_2.35 _ZGVbN4v_acoshf F
GLIBC_2.35 _ZGVbN4v_asinf F
GLIBC_2.35 _ZGVbN4v_asinhf F
GLIBC_2.35 _ZGVbN4v_atanf F
+GLIBC_2.35 _ZGVbN4vv_atan2f F
GLIBC_2.35 _ZGVcN4v_acos F
GLIBC_2.35 _ZGVcN4v_acosh F
GLIBC_2.35 _ZGVcN4v_asin F
GLIBC_2.35 _ZGVcN4v_asinh F
GLIBC_2.35 _ZGVcN4v_atan F
+GLIBC_2.35 _ZGVcN4vv_atan2 F
GLIBC_2.35 _ZGVcN8v_acosf F
GLIBC_2.35 _ZGVcN8v_acoshf F
GLIBC_2.35 _ZGVcN8v_asinf F
GLIBC_2.35 _ZGVcN8v_asinhf F
GLIBC_2.35 _ZGVcN8v_atanf F
+GLIBC_2.35 _ZGVcN8vv_atan2f F
GLIBC_2.35 _ZGVdN4v_acos F
GLIBC_2.35 _ZGVdN4v_acosh F
GLIBC_2.35 _ZGVdN4v_asin F
GLIBC_2.35 _ZGVdN4v_asinh F
GLIBC_2.35 _ZGVdN4v_atan F
+GLIBC_2.35 _ZGVdN4vv_atan2 F
GLIBC_2.35 _ZGVdN8v_acosf F
GLIBC_2.35 _ZGVdN8v_acoshf F
GLIBC_2.35 _ZGVdN8v_asinf F
GLIBC_2.35 _ZGVdN8v_asinhf F
GLIBC_2.35 _ZGVdN8v_atanf F
+GLIBC_2.35 _ZGVdN8vv_atan2f F
GLIBC_2.35 _ZGVeN16v_acosf F
GLIBC_2.35 _ZGVeN16v_acoshf F
GLIBC_2.35 _ZGVeN16v_asinf F
GLIBC_2.35 _ZGVeN16v_asinhf F
GLIBC_2.35 _ZGVeN16v_atanf F
+GLIBC_2.35 _ZGVeN16vv_atan2f F
GLIBC_2.35 _ZGVeN8v_acos F
GLIBC_2.35 _ZGVeN8v_acosh F
GLIBC_2.35 _ZGVeN8v_asin F
GLIBC_2.35 _ZGVeN8v_asinh F
GLIBC_2.35 _ZGVeN8v_atan F
+GLIBC_2.35 _ZGVeN8vv_atan2 F
@@ -78,6 +78,10 @@
# define __DECL_SIMD_atan __DECL_SIMD_x86_64
# undef __DECL_SIMD_atanf
# define __DECL_SIMD_atanf __DECL_SIMD_x86_64
+# undef __DECL_SIMD_atan2
+# define __DECL_SIMD_atan2 __DECL_SIMD_x86_64
+# undef __DECL_SIMD_atan2f
+# define __DECL_SIMD_atan2f __DECL_SIMD_x86_64
# endif
#endif
@@ -38,6 +38,8 @@
!GCC$ builtin (asinhf) attributes simd (notinbranch) if('x86_64')
!GCC$ builtin (atan) attributes simd (notinbranch) if('x86_64')
!GCC$ builtin (atanf) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (atan2) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (atan2f) attributes simd (notinbranch) if('x86_64')
!GCC$ builtin (cos) attributes simd (notinbranch) if('x32')
!GCC$ builtin (cosf) attributes simd (notinbranch) if('x32')
@@ -61,3 +63,5 @@
!GCC$ builtin (asinhf) attributes simd (notinbranch) if('x32')
!GCC$ builtin (atan) attributes simd (notinbranch) if('x32')
!GCC$ builtin (atanf) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (atan2) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (atan2f) attributes simd (notinbranch) if('x32')
@@ -27,6 +27,7 @@ libmvec-funcs = \
asin \
asinh \
atan \
+ atan2 \
cos \
exp \
log \
@@ -19,10 +19,12 @@ libmvec {
_ZGVbN2v_asin; _ZGVcN4v_asin; _ZGVdN4v_asin; _ZGVeN8v_asin;
_ZGVbN2v_asinh; _ZGVcN4v_asinh; _ZGVdN4v_asinh; _ZGVeN8v_asinh;
_ZGVbN2v_atan; _ZGVcN4v_atan; _ZGVdN4v_atan; _ZGVeN8v_atan;
+ _ZGVbN2vv_atan2; _ZGVcN4vv_atan2; _ZGVdN4vv_atan2; _ZGVeN8vv_atan2;
_ZGVbN4v_acosf; _ZGVcN8v_acosf; _ZGVdN8v_acosf; _ZGVeN16v_acosf;
_ZGVbN4v_acoshf; _ZGVcN8v_acoshf; _ZGVdN8v_acoshf; _ZGVeN16v_acoshf;
_ZGVbN4v_asinf; _ZGVcN8v_asinf; _ZGVdN8v_asinf; _ZGVeN16v_asinf;
_ZGVbN4v_asinhf; _ZGVcN8v_asinhf; _ZGVdN8v_asinhf; _ZGVeN16v_asinhf;
_ZGVbN4v_atanf; _ZGVcN8v_atanf; _ZGVdN8v_atanf; _ZGVeN16v_atanf;
+ _ZGVbN4vv_atan2f; _ZGVcN8vv_atan2f; _ZGVdN8vv_atan2f; _ZGVeN16vv_atan2f;
}
}
@@ -203,6 +203,26 @@ float: 2
float128: 2
ldouble: 1
+Function: "atan2_vlen16":
+float: 2
+
+Function: "atan2_vlen2":
+double: 1
+
+Function: "atan2_vlen4":
+double: 1
+float: 2
+
+Function: "atan2_vlen4_avx2":
+double: 1
+
+Function: "atan2_vlen8":
+double: 1
+float: 2
+
+Function: "atan2_vlen8_avx2":
+float: 2
+
Function: "atan_downward":
double: 1
float: 2
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE2 version of vectorized atan2.
+ 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 _ZGVbN2vv_atan2 _ZGVbN2vv_atan2_sse2
+#include "../svml_d_atan22_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized atan2, 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 _ZGVbN2vv_atan2
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN2vv_atan2, __GI__ZGVbN2vv_atan2,
+ __redirect__ZGVbN2vv_atan2)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,3629 @@
+/* Function atan2 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:
+ * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x)
+ * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x)
+ * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x)
+ * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x)
+ * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x
+ * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16.
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.sse4,"ax",@progbits
+ENTRY(_ZGVbN2vv_atan2_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
+ xorl %edx, %edx
+ movups %xmm8, 112(%rsp)
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm0, %xmm8
+
+/*
+ * #define NO_VECTOR_ZERO_ATAN2_ARGS
+ * Declarations
+ * Variables
+ * Constants
+ * The end of declarations
+ * Implementation
+ * Get r0~=1/B
+ * Cannot be replaced by VQRCP(D, dR0, dB);
+ * Argument Absolute values
+ */
+ movups 1728+__svml_datan2_data_internal(%rip), %xmm4
+ movups %xmm9, 96(%rsp)
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm1, %xmm9
+ movaps %xmm4, %xmm1
+ andps %xmm8, %xmm4
+ andps %xmm9, %xmm1
+ movaps %xmm4, %xmm2
+ cmpnltpd %xmm1, %xmm2
+
+/* Argument signs */
+ movups 1536+__svml_datan2_data_internal(%rip), %xmm3
+ movaps %xmm2, %xmm0
+ movaps %xmm3, %xmm7
+ movaps %xmm3, %xmm6
+
+/*
+ * 1) If y<x then a= y, b=x, PIO2=0
+ * 2) If y>x then a=-x, b=y, PIO2=Pi/2
+ */
+ orps %xmm1, %xmm3
+ andnps %xmm4, %xmm0
+ andps %xmm2, %xmm3
+ andps %xmm9, %xmm7
+ movups 64+__svml_datan2_data_internal(%rip), %xmm5
+ orps %xmm3, %xmm0
+ movaps %xmm2, %xmm3
+ andps %xmm2, %xmm5
+ andnps %xmm1, %xmm3
+ andps %xmm4, %xmm2
+ orps %xmm2, %xmm3
+ andps %xmm8, %xmm6
+ divpd %xmm3, %xmm0
+ movups %xmm10, 48(%rsp)
+ movq 1600+__svml_datan2_data_internal(%rip), %xmm2
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+
+/* Check if y and x are on main path. */
+ pshufd $221, %xmm1, %xmm10
+ psubd %xmm2, %xmm10
+ movups %xmm11, 80(%rsp)
+ movups %xmm12, 32(%rsp)
+ movups %xmm4, 16(%rsp)
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ movq 1664+__svml_datan2_data_internal(%rip), %xmm11
+ pshufd $221, %xmm4, %xmm12
+ movdqa %xmm10, %xmm4
+ pcmpgtd %xmm11, %xmm4
+ pcmpeqd %xmm11, %xmm10
+ por %xmm10, %xmm4
+
+/* Polynomial. */
+ movaps %xmm0, %xmm10
+ mulpd %xmm0, %xmm10
+ psubd %xmm2, %xmm12
+ movups %xmm13, 144(%rsp)
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22
+ movdqa %xmm12, %xmm13
+ pcmpgtd %xmm11, %xmm13
+ pcmpeqd %xmm11, %xmm12
+ por %xmm12, %xmm13
+ movaps %xmm10, %xmm12
+ mulpd %xmm10, %xmm12
+ por %xmm13, %xmm4
+ movaps %xmm12, %xmm13
+ mulpd %xmm12, %xmm13
+ movmskps %xmm4, %eax
+ movups %xmm15, 160(%rsp)
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ movups 256+__svml_datan2_data_internal(%rip), %xmm15
+ mulpd %xmm13, %xmm15
+ movups 320+__svml_datan2_data_internal(%rip), %xmm11
+ movups 384+__svml_datan2_data_internal(%rip), %xmm2
+ addpd 512+__svml_datan2_data_internal(%rip), %xmm15
+ mulpd %xmm13, %xmm11
+ mulpd %xmm13, %xmm2
+ mulpd %xmm13, %xmm15
+ addpd 576+__svml_datan2_data_internal(%rip), %xmm11
+ addpd 640+__svml_datan2_data_internal(%rip), %xmm2
+ addpd 768+__svml_datan2_data_internal(%rip), %xmm15
+ mulpd %xmm13, %xmm11
+ mulpd %xmm13, %xmm2
+ mulpd %xmm13, %xmm15
+ addpd 832+__svml_datan2_data_internal(%rip), %xmm11
+ addpd 896+__svml_datan2_data_internal(%rip), %xmm2
+ addpd 1024+__svml_datan2_data_internal(%rip), %xmm15
+ mulpd %xmm13, %xmm11
+ mulpd %xmm13, %xmm2
+ mulpd %xmm13, %xmm15
+ addpd 1088+__svml_datan2_data_internal(%rip), %xmm11
+ addpd 1152+__svml_datan2_data_internal(%rip), %xmm2
+ addpd 1280+__svml_datan2_data_internal(%rip), %xmm15
+ mulpd %xmm13, %xmm11
+ mulpd %xmm13, %xmm2
+ mulpd %xmm10, %xmm15
+ addpd 1344+__svml_datan2_data_internal(%rip), %xmm11
+ addpd 1408+__svml_datan2_data_internal(%rip), %xmm2
+ addpd %xmm15, %xmm11
+ mulpd %xmm2, %xmm10
+ mulpd %xmm11, %xmm12
+ movups %xmm14, 176(%rsp)
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xb0, 0xff, 0xff, 0xff, 0x22
+ movups 448+__svml_datan2_data_internal(%rip), %xmm14
+ mulpd %xmm13, %xmm14
+ addpd 704+__svml_datan2_data_internal(%rip), %xmm14
+ mulpd %xmm13, %xmm14
+ addpd 960+__svml_datan2_data_internal(%rip), %xmm14
+ mulpd %xmm13, %xmm14
+ addpd 1216+__svml_datan2_data_internal(%rip), %xmm14
+
+/* A00=1.0, account for it later VQFMA(D, dP4, dP4, dR8, dA00); */
+ mulpd %xmm14, %xmm13
+ addpd %xmm10, %xmm13
+ addpd %xmm12, %xmm13
+
+/*
+ * Reconstruction.
+ * dP=(R+R*dP) + dPIO2
+ */
+ mulpd %xmm0, %xmm13
+ addpd %xmm13, %xmm0
+ movups %xmm3, (%rsp)
+
+/* if x<0, dPI = Pi, else dPI =0 */
+ movaps %xmm9, %xmm3
+ cmplepd 1792+__svml_datan2_data_internal(%rip), %xmm3
+ addpd %xmm5, %xmm0
+ andps __svml_datan2_data_internal(%rip), %xmm3
+ orps %xmm7, %xmm0
+ addpd %xmm3, %xmm0
+
+/* Special branch for fast (vector) processing of zero arguments */
+ movups 16(%rsp), %xmm11
+ orps %xmm6, %xmm0
+ testb $3, %al
+ jne L(7)
+
+L(1):
+/*
+ * Special branch for fast (vector) processing of zero arguments
+ * The end of implementation
+ */
+ testl %edx, %edx
+ jne L(3)
+
+L(2):
+ movups 112(%rsp), %xmm8
+ cfi_restore(25)
+ movups 96(%rsp), %xmm9
+ cfi_restore(26)
+ movups 48(%rsp), %xmm10
+ cfi_restore(27)
+ movups 80(%rsp), %xmm11
+ cfi_restore(28)
+ movups 32(%rsp), %xmm12
+ cfi_restore(29)
+ movups 144(%rsp), %xmm13
+ cfi_restore(30)
+ movups 176(%rsp), %xmm14
+ cfi_restore(31)
+ movups 160(%rsp), %xmm15
+ cfi_restore(32)
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xb0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+
+L(3):
+ movups %xmm8, 64(%rsp)
+ movups %xmm9, 128(%rsp)
+ movups %xmm0, 192(%rsp)
+ je L(2)
+ xorl %eax, %eax
+ 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, 0x08, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 16(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+L(4):
+ btl %r12d, %r13d
+ jc L(6)
+
+L(5):
+ incl %r12d
+ cmpl $2, %r12d
+ jl L(4)
+ 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)
+ movups 192(%rsp), %xmm0
+ jmp L(2)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+
+L(6):
+ lea 64(%rsp,%r12,8), %rdi
+ lea 128(%rsp,%r12,8), %rsi
+ lea 192(%rsp,%r12,8), %rdx
+ call __svml_datan2_cout_rare_internal
+ jmp L(5)
+ cfi_restore(4)
+ cfi_restore(5)
+ cfi_restore(12)
+ cfi_restore(13)
+
+L(7):
+/* Check if at least on of Y or Y is zero: iAXAYZERO */
+ movups 1792+__svml_datan2_data_internal(%rip), %xmm2
+
+/* Check if both X & Y are not NaNs: iXYnotNAN */
+ movaps %xmm9, %xmm12
+ movaps %xmm8, %xmm10
+ cmpordpd %xmm9, %xmm12
+ cmpordpd %xmm8, %xmm10
+ cmpeqpd %xmm2, %xmm1
+ cmpeqpd %xmm2, %xmm11
+ andps %xmm10, %xmm12
+ orps %xmm11, %xmm1
+ pshufd $221, %xmm1, %xmm1
+ pshufd $221, %xmm12, %xmm11
+
+/* Check if at least on of Y or Y is zero and not NaN: iAXAYZEROnotNAN */
+ pand %xmm11, %xmm1
+
+/* Exclude from previous callout mask zero (and not NaN) arguments */
+ movdqa %xmm1, %xmm13
+ pandn %xmm4, %xmm13
+
+/*
+ * Path for zero arguments (at least one of both)
+ * Check if both args are zeros (den. is zero)
+ */
+ movups (%rsp), %xmm4
+ cmpeqpd %xmm2, %xmm4
+
+/* Go to callout */
+ movmskps %xmm13, %edx
+
+/* Set sPIO2 to zero if den. is zero */
+ movaps %xmm4, %xmm15
+ andps %xmm2, %xmm4
+ andnps %xmm5, %xmm15
+ andl $3, %edx
+ orps %xmm4, %xmm15
+ pshufd $221, %xmm9, %xmm5
+ orps %xmm7, %xmm15
+
+/* Res = sign(Y)*(X<0)?(PIO2+PI):PIO2 */
+ pshufd $221, %xmm2, %xmm7
+ pcmpgtd %xmm5, %xmm7
+ pshufd $80, %xmm7, %xmm14
+ andps %xmm3, %xmm14
+ addpd %xmm14, %xmm15
+
+/* Merge results from main and spec path */
+ pshufd $80, %xmm1, %xmm3
+ orps %xmm6, %xmm15
+ movdqa %xmm3, %xmm6
+ andps %xmm3, %xmm15
+ andnps %xmm0, %xmm6
+ movaps %xmm6, %xmm0
+ orps %xmm15, %xmm0
+ jmp L(1)
+
+END(_ZGVbN2vv_atan2_sse4)
+
+ .align 16,0x90
+
+__svml_datan2_cout_rare_internal:
+
+ cfi_startproc
+
+ movq %rdx, %rcx
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm1
+ movsd (%rdi), %xmm2
+ movsd (%rsi), %xmm0
+ mulsd %xmm1, %xmm2
+ mulsd %xmm0, %xmm1
+ movsd %xmm2, -48(%rsp)
+ movsd %xmm1, -40(%rsp)
+ movzwl -42(%rsp), %r9d
+ andl $32752, %r9d
+ movb -33(%rsp), %al
+ movzwl -34(%rsp), %r8d
+ andb $-128, %al
+ andl $32752, %r8d
+ shrl $4, %r9d
+ movb -41(%rsp), %dl
+ shrb $7, %dl
+ shrb $7, %al
+ shrl $4, %r8d
+ cmpl $2047, %r9d
+ je L(31)
+ cmpl $2047, %r8d
+ je L(25)
+ testl %r9d, %r9d
+ jne L(8)
+ testl $1048575, -44(%rsp)
+ jne L(8)
+ cmpl $0, -48(%rsp)
+ je L(19)
+
+L(8):
+ testl %r8d, %r8d
+ jne L(9)
+ testl $1048575, -36(%rsp)
+ jne L(9)
+ cmpl $0, -40(%rsp)
+ je L(18)
+
+L(9):
+ negl %r8d
+ movsd %xmm2, -48(%rsp)
+ addl %r9d, %r8d
+ movsd %xmm1, -40(%rsp)
+ movb -41(%rsp), %dil
+ movb -33(%rsp), %sil
+ andb $127, %dil
+ andb $127, %sil
+ cmpl $-54, %r8d
+ jle L(16)
+ cmpl $54, %r8d
+ jge L(15)
+ movb %sil, -33(%rsp)
+ movb %dil, -41(%rsp)
+ testb %al, %al
+ jne L(10)
+ movsd 1976+__datan2_la_CoutTab(%rip), %xmm1
+ movaps %xmm1, %xmm0
+ jmp L(11)
+
+L(10):
+ movsd 1936+__datan2_la_CoutTab(%rip), %xmm1
+ movsd 1944+__datan2_la_CoutTab(%rip), %xmm0
+
+L(11):
+ movsd -48(%rsp), %xmm4
+ movsd -40(%rsp), %xmm2
+ movaps %xmm4, %xmm5
+ divsd %xmm2, %xmm5
+ movzwl -42(%rsp), %esi
+ movsd %xmm5, -16(%rsp)
+ testl %r9d, %r9d
+ jle L(24)
+ cmpl $2046, %r9d
+ jge L(12)
+ andl $-32753, %esi
+ addl $-1023, %r9d
+ movsd %xmm4, -48(%rsp)
+ addl $16368, %esi
+ movw %si, -42(%rsp)
+ jmp L(13)
+
+L(12):
+ movsd 1992+__datan2_la_CoutTab(%rip), %xmm3
+ movl $1022, %r9d
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+
+L(13):
+ negl %r9d
+ addl $1023, %r9d
+ andl $2047, %r9d
+ movzwl 1894+__datan2_la_CoutTab(%rip), %esi
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm3
+ andl $-32753, %esi
+ shll $4, %r9d
+ movsd %xmm3, -40(%rsp)
+ orl %r9d, %esi
+ movw %si, -34(%rsp)
+ movsd -40(%rsp), %xmm4
+ mulsd %xmm4, %xmm2
+ comisd 1880+__datan2_la_CoutTab(%rip), %xmm5
+ jb L(14)
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm12
+ movaps %xmm2, %xmm3
+ mulsd %xmm2, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd %xmm5, -24(%rsp)
+ subsd %xmm2, %xmm13
+ movsd %xmm13, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm14
+ movl -20(%rsp), %r8d
+ movl %r8d, %r9d
+ andl $-524288, %r8d
+ andl $-1048576, %r9d
+ addl $262144, %r8d
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -72(%rsp)
+ andl $1048575, %r8d
+ movsd -72(%rsp), %xmm4
+ orl %r8d, %r9d
+ movl $0, -24(%rsp)
+ subsd %xmm4, %xmm3
+ movl %r9d, -20(%rsp)
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -24(%rsp), %xmm11
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm5
+ mulsd %xmm11, %xmm9
+ movsd 1968+__datan2_la_CoutTab(%rip), %xmm8
+ mulsd %xmm8, %xmm5
+ mulsd %xmm8, %xmm9
+ movaps %xmm5, %xmm7
+ movzwl -10(%rsp), %edi
+ addsd %xmm9, %xmm7
+ movsd %xmm7, -72(%rsp)
+ andl $32752, %edi
+ movsd -72(%rsp), %xmm6
+ shrl $4, %edi
+ subsd %xmm6, %xmm5
+ movl -12(%rsp), %esi
+ addsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ andl $1048575, %esi
+ movsd -48(%rsp), %xmm9
+ movsd -72(%rsp), %xmm3
+ movaps %xmm9, %xmm12
+ movsd -64(%rsp), %xmm10
+ movaps %xmm9, %xmm14
+ movaps %xmm9, %xmm6
+ addsd %xmm3, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ shll $20, %edi
+ subsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ orl %esi, %edi
+ movsd -72(%rsp), %xmm4
+ addl $-1069547520, %edi
+ movsd -64(%rsp), %xmm15
+ movl $113, %esi
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm15, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ sarl $19, %edi
+ addsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ cmpl $113, %edi
+ movsd -56(%rsp), %xmm7
+ cmovl %edi, %esi
+ subsd %xmm7, %xmm6
+ movsd %xmm6, -56(%rsp)
+ addl %esi, %esi
+ movsd -64(%rsp), %xmm12
+ lea __datan2_la_CoutTab(%rip), %rdi
+ movsd -56(%rsp), %xmm5
+ movslq %esi, %rsi
+ addsd %xmm5, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm7, %xmm13
+ movsd -56(%rsp), %xmm8
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm10, %xmm8
+ movsd -72(%rsp), %xmm4
+ movaps %xmm9, %xmm10
+ mulsd 2000+__datan2_la_CoutTab(%rip), %xmm10
+ subsd %xmm7, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd -64(%rsp), %xmm14
+ subsd %xmm14, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm15
+ subsd %xmm15, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm4
+ movsd %xmm10, -72(%rsp)
+ movaps %xmm2, %xmm10
+ addsd %xmm4, %xmm8
+ movsd -72(%rsp), %xmm4
+ subsd -48(%rsp), %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm3
+ subsd %xmm3, %xmm6
+ movaps %xmm2, %xmm3
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ subsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm12
+ mulsd %xmm11, %xmm9
+ movaps %xmm12, %xmm11
+ addsd %xmm9, %xmm11
+ movsd %xmm11, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm12
+ addsd %xmm9, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm6
+ addsd %xmm15, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm5, %xmm10
+ movsd %xmm10, -64(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm13
+ movsd %xmm13, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm14, %xmm15
+ movsd %xmm15, -64(%rsp)
+ movsd -56(%rsp), %xmm4
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm14
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -64(%rsp), %xmm4
+ movsd -56(%rsp), %xmm2
+ addsd %xmm2, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -72(%rsp), %xmm12
+ mulsd %xmm12, %xmm3
+ movsd -56(%rsp), %xmm5
+ movsd %xmm3, -72(%rsp)
+ addsd %xmm6, %xmm5
+ movsd -72(%rsp), %xmm9
+ subsd %xmm12, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm2
+ subsd %xmm2, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ divsd %xmm9, %xmm14
+ mulsd %xmm14, %xmm13
+ movsd -64(%rsp), %xmm10
+ movsd %xmm13, -64(%rsp)
+ addsd %xmm10, %xmm5
+ movsd -64(%rsp), %xmm15
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm12
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm4
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -56(%rsp), %xmm3
+ mulsd %xmm3, %xmm9
+ movsd -56(%rsp), %xmm11
+ subsd %xmm9, %xmm12
+ mulsd %xmm11, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -64(%rsp), %xmm5
+ subsd %xmm5, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -64(%rsp), %xmm2
+ movq -56(%rsp), %r10
+ movsd -64(%rsp), %xmm6
+ movsd -56(%rsp), %xmm4
+ movq %r10, -40(%rsp)
+ movsd -40(%rsp), %xmm3
+ movaps %xmm3, %xmm5
+ addsd 1888+__datan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm5
+ mulsd %xmm6, %xmm2
+ mulsd %xmm4, %xmm2
+ mulsd %xmm2, %xmm7
+ mulsd %xmm8, %xmm2
+ mulsd %xmm3, %xmm8
+ addsd %xmm2, %xmm7
+ movsd 1872+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm8, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movaps %xmm5, %xmm7
+ movsd -72(%rsp), %xmm4
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm6
+ addsd %xmm4, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ subsd %xmm8, %xmm5
+ addsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ movaps %xmm11, %xmm2
+ mulsd %xmm11, %xmm2
+ mulsd %xmm11, %xmm6
+ mulsd %xmm2, %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ addsd 1864+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm11, %xmm7
+ mulsd %xmm2, %xmm3
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ movsd -64(%rsp), %xmm8
+ addsd 1856+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm8, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ addsd 1848+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm10, %xmm11
+ mulsd %xmm2, %xmm3
+ movsd %xmm11, -64(%rsp)
+ addsd 1840+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1832+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1824+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm3, %xmm13
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %r11
+ movsd -56(%rsp), %xmm15
+ movq %r11, -40(%rsp)
+ addsd %xmm15, %xmm4
+ movsd -40(%rsp), %xmm8
+ addsd %xmm5, %xmm4
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm8, %xmm4
+ movaps %xmm8, %xmm2
+ addsd (%rdi,%rsi,8), %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd (%rdi,%rsi,8), %xmm6
+ movsd %xmm6, -64(%rsp)
+ movsd -56(%rsp), %xmm7
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movq -72(%rsp), %r8
+ movq %r8, -40(%rsp)
+ movsd -56(%rsp), %xmm2
+ movaps %xmm1, %xmm3
+ shrq $56, %r8
+ addsd -32(%rsp), %xmm2
+ shlb $7, %dl
+ addsd 8(%rdi,%rsi,8), %xmm2
+ movb %al, %sil
+ andb $127, %r8b
+ shlb $7, %sil
+ movsd %xmm2, -32(%rsp)
+ orb %sil, %r8b
+ movb %r8b, -33(%rsp)
+ movsd -40(%rsp), %xmm9
+ movaps %xmm9, %xmm5
+ addsd %xmm9, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %dil
+ movb %dil, %r9b
+ shrb $7, %dil
+ subsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm6
+ xorb %dil, %al
+ andb $127, %r9b
+ shlb $7, %al
+ addsd %xmm6, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ addsd %xmm8, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %al, %r9b
+ movsd -56(%rsp), %xmm1
+ movb %r9b, -25(%rsp)
+ subsd %xmm1, %xmm9
+ movsd %xmm9, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ movsd -56(%rsp), %xmm10
+ addsd %xmm10, %xmm11
+ movsd %xmm11, -56(%rsp)
+ movq -72(%rsp), %rax
+ movsd -56(%rsp), %xmm12
+ movq %rax, -40(%rsp)
+ addsd %xmm12, %xmm0
+ movsd -40(%rsp), %xmm13
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm13
+ movsd %xmm13, -24(%rsp)
+ movb -17(%rsp), %r10b
+ andb $127, %r10b
+ orb %dl, %r10b
+ movb %r10b, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(14):
+ movsd -48(%rsp), %xmm12
+ movb %al, %r8b
+ movaps %xmm12, %xmm7
+ mulsd 2000+__datan2_la_CoutTab(%rip), %xmm7
+ shlb $7, %r8b
+ shlb $7, %dl
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm2, %xmm13
+ subsd -48(%rsp), %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movsd %xmm13, -72(%rsp)
+ movsd -72(%rsp), %xmm14
+ subsd %xmm2, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm4
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm4
+ subsd %xmm3, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ divsd %xmm12, %xmm7
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm2
+ movsd -64(%rsp), %xmm14
+ movsd %xmm2, -64(%rsp)
+ movsd -64(%rsp), %xmm8
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -56(%rsp), %xmm11
+ mulsd %xmm11, %xmm12
+ movsd -56(%rsp), %xmm13
+ subsd %xmm12, %xmm4
+ mulsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -64(%rsp), %xmm15
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -64(%rsp), %xmm7
+ movq -56(%rsp), %rsi
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm3
+ movq %rsi, -40(%rsp)
+ movsd -40(%rsp), %xmm8
+ movaps %xmm8, %xmm9
+ addsd 1888+__datan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm6, %xmm9
+ mulsd %xmm5, %xmm8
+ mulsd %xmm2, %xmm7
+ movsd -16(%rsp), %xmm2
+ mulsd %xmm2, %xmm2
+ mulsd %xmm3, %xmm7
+ movsd 1872+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm7, %xmm6
+ mulsd %xmm5, %xmm7
+ addsd 1864+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm7, %xmm6
+ mulsd %xmm2, %xmm3
+ addsd %xmm8, %xmm6
+ addsd 1856+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ movaps %xmm9, %xmm5
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ addsd 1848+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm5
+ mulsd %xmm2, %xmm3
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm5
+ subsd %xmm6, %xmm9
+ addsd 1840+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ mulsd %xmm11, %xmm5
+ addsd 1832+__datan2_la_CoutTab(%rip), %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm2, %xmm3
+ subsd %xmm11, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd -64(%rsp), %xmm6
+ addsd 1824+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm6, %xmm8
+ mulsd %xmm2, %xmm3
+ movsd %xmm8, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ mulsd %xmm3, %xmm13
+ subsd %xmm10, %xmm11
+ movsd %xmm11, -64(%rsp)
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %rdi
+ movsd -56(%rsp), %xmm15
+ movq %rdi, -40(%rsp)
+ addsd %xmm15, %xmm4
+ shrq $56, %rdi
+ addsd %xmm5, %xmm4
+ andb $127, %dil
+ orb %r8b, %dil
+ movb %dil, -33(%rsp)
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm1, %xmm4
+ movsd -40(%rsp), %xmm7
+ movaps %xmm7, %xmm2
+ addsd %xmm7, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %r9b
+ movb %r9b, %r10b
+ shrb $7, %r9b
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ xorb %r9b, %al
+ andb $127, %r10b
+ shlb $7, %al
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd %xmm6, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %al, %r10b
+ movsd -56(%rsp), %xmm1
+ movb %r10b, -25(%rsp)
+ subsd %xmm1, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm1
+ addsd %xmm1, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movq -72(%rsp), %rax
+ movsd -56(%rsp), %xmm3
+ movq %rax, -40(%rsp)
+ addsd %xmm3, %xmm0
+ movsd -40(%rsp), %xmm4
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm4
+ movsd %xmm4, -24(%rsp)
+ movb -17(%rsp), %r11b
+ andb $127, %r11b
+ orb %dl, %r11b
+ movb %r11b, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(15):
+ cmpl $74, %r8d
+ jge L(32)
+ movb %dil, -41(%rsp)
+ divsd -48(%rsp), %xmm1
+ movsd 1928+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ subsd %xmm1, %xmm0
+ addsd 1920+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(16):
+ testb %al, %al
+ jne L(22)
+ movb %dil, -41(%rsp)
+ movb %sil, -33(%rsp)
+ movsd -48(%rsp), %xmm2
+ divsd -40(%rsp), %xmm2
+ movsd %xmm2, -24(%rsp)
+ movzwl -18(%rsp), %eax
+ testl $32752, %eax
+ je L(17)
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd %xmm2, %xmm0
+ movsd %xmm0, -72(%rsp)
+ movsd -72(%rsp), %xmm1
+ mulsd %xmm1, %xmm2
+ movsd %xmm2, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(17):
+ mulsd %xmm2, %xmm2
+ shlb $7, %dl
+ movsd %xmm2, -72(%rsp)
+ movsd -72(%rsp), %xmm0
+ addsd -24(%rsp), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(18):
+ testl %r9d, %r9d
+ jne L(32)
+ testl $1048575, -44(%rsp)
+ jne L(32)
+ jmp L(33)
+
+L(19):
+ jne L(32)
+
+L(20):
+ testb %al, %al
+ jne L(22)
+
+L(21):
+ shlb $7, %dl
+ movq 1976+__datan2_la_CoutTab(%rip), %rax
+ movq %rax, -24(%rsp)
+ shrq $56, %rax
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(22):
+ movsd 1936+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1944+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+
+L(23):
+ xorl %eax, %eax
+ ret
+
+L(24):
+ movsd 1984+__datan2_la_CoutTab(%rip), %xmm3
+ movl $-1022, %r9d
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+ jmp L(13)
+
+L(25):
+ cmpl $2047, %r9d
+ je L(31)
+
+L(26):
+ testl $1048575, -36(%rsp)
+ jne L(27)
+ cmpl $0, -40(%rsp)
+ je L(28)
+
+L(27):
+ addsd %xmm1, %xmm2
+ movsd %xmm2, (%rcx)
+ jmp L(23)
+
+L(28):
+ cmpl $2047, %r9d
+ je L(29)
+ testb %al, %al
+ je L(21)
+ jmp L(22)
+
+L(29):
+ testb %al, %al
+ jne L(30)
+ movsd 1904+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1912+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(30):
+ movsd 1952+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1960+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(31):
+ testl $1048575, -44(%rsp)
+ jne L(27)
+ cmpl $0, -48(%rsp)
+ jne L(27)
+ cmpl $2047, %r8d
+ je L(26)
+
+L(32):
+ movsd 1920+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1928+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(33):
+ cmpl $0, -48(%rsp)
+ jne L(32)
+ jmp L(20)
+
+ cfi_endproc
+
+ .type __svml_datan2_cout_rare_internal,@function
+ .size __svml_datan2_cout_rare_internal,.-__svml_datan2_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_datan2_data_internal:
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 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 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 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 0
+ .long 0
+ .long 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .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 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 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 4294967295
+ .long 0
+ .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
+ .type __svml_datan2_data_internal,@object
+ .size __svml_datan2_data_internal,2304
+ .align 32
+
+__datan2_la_CoutTab:
+ .long 3892314112
+ .long 1069799150
+ .long 2332892550
+ .long 1039715405
+ .long 1342177280
+ .long 1070305495
+ .long 270726690
+ .long 1041535749
+ .long 939524096
+ .long 1070817911
+ .long 2253973841
+ .long 3188654726
+ .long 3221225472
+ .long 1071277294
+ .long 3853927037
+ .long 1043226911
+ .long 2818572288
+ .long 1071767563
+ .long 2677759107
+ .long 1044314101
+ .long 3355443200
+ .long 1072103591
+ .long 1636578514
+ .long 3191094734
+ .long 1476395008
+ .long 1072475260
+ .long 1864703685
+ .long 3188646936
+ .long 805306368
+ .long 1072747407
+ .long 192551812
+ .long 3192726267
+ .long 2013265920
+ .long 1072892781
+ .long 2240369452
+ .long 1043768538
+ .long 0
+ .long 1072999953
+ .long 3665168337
+ .long 3192705970
+ .long 402653184
+ .long 1073084787
+ .long 1227953434
+ .long 3192313277
+ .long 2013265920
+ .long 1073142981
+ .long 3853283127
+ .long 1045277487
+ .long 805306368
+ .long 1073187261
+ .long 1676192264
+ .long 3192868861
+ .long 134217728
+ .long 1073217000
+ .long 4290763938
+ .long 1042034855
+ .long 671088640
+ .long 1073239386
+ .long 994303084
+ .long 3189643768
+ .long 402653184
+ .long 1073254338
+ .long 1878067156
+ .long 1042652475
+ .long 1610612736
+ .long 1073265562
+ .long 670314820
+ .long 1045138554
+ .long 3221225472
+ .long 1073273048
+ .long 691126919
+ .long 3189987794
+ .long 3489660928
+ .long 1073278664
+ .long 1618990832
+ .long 3188194509
+ .long 1207959552
+ .long 1073282409
+ .long 2198872939
+ .long 1044806069
+ .long 3489660928
+ .long 1073285217
+ .long 2633982383
+ .long 1042307894
+ .long 939524096
+ .long 1073287090
+ .long 1059367786
+ .long 3189114230
+ .long 2281701376
+ .long 1073288494
+ .long 3158525533
+ .long 1044484961
+ .long 3221225472
+ .long 1073289430
+ .long 286581777
+ .long 1044893263
+ .long 4026531840
+ .long 1073290132
+ .long 2000245215
+ .long 3191647611
+ .long 134217728
+ .long 1073290601
+ .long 4205071590
+ .long 1045035927
+ .long 536870912
+ .long 1073290952
+ .long 2334392229
+ .long 1043447393
+ .long 805306368
+ .long 1073291186
+ .long 2281458177
+ .long 3188885569
+ .long 3087007744
+ .long 1073291361
+ .long 691611507
+ .long 1044733832
+ .long 3221225472
+ .long 1073291478
+ .long 1816229550
+ .long 1044363390
+ .long 2281701376
+ .long 1073291566
+ .long 1993843750
+ .long 3189837440
+ .long 134217728
+ .long 1073291625
+ .long 3654754496
+ .long 1044970837
+ .long 4026531840
+ .long 1073291668
+ .long 3224300229
+ .long 3191935390
+ .long 805306368
+ .long 1073291698
+ .long 2988777976
+ .long 3188950659
+ .long 536870912
+ .long 1073291720
+ .long 1030371341
+ .long 1043402665
+ .long 3221225472
+ .long 1073291734
+ .long 1524463765
+ .long 1044361356
+ .long 3087007744
+ .long 1073291745
+ .long 2754295320
+ .long 1044731036
+ .long 134217728
+ .long 1073291753
+ .long 3099629057
+ .long 1044970710
+ .long 2281701376
+ .long 1073291758
+ .long 962914160
+ .long 3189838838
+ .long 805306368
+ .long 1073291762
+ .long 3543908206
+ .long 3188950786
+ .long 4026531840
+ .long 1073291764
+ .long 1849909620
+ .long 3191935434
+ .long 3221225472
+ .long 1073291766
+ .long 1641333636
+ .long 1044361352
+ .long 536870912
+ .long 1073291768
+ .long 1373968792
+ .long 1043402654
+ .long 134217728
+ .long 1073291769
+ .long 2033191599
+ .long 1044970710
+ .long 3087007744
+ .long 1073291769
+ .long 4117947437
+ .long 1044731035
+ .long 805306368
+ .long 1073291770
+ .long 315378368
+ .long 3188950787
+ .long 2281701376
+ .long 1073291770
+ .long 2428571750
+ .long 3189838838
+ .long 3221225472
+ .long 1073291770
+ .long 1608007466
+ .long 1044361352
+ .long 4026531840
+ .long 1073291770
+ .long 1895711420
+ .long 3191935434
+ .long 134217728
+ .long 1073291771
+ .long 2031108713
+ .long 1044970710
+ .long 536870912
+ .long 1073291771
+ .long 1362518342
+ .long 1043402654
+ .long 805306368
+ .long 1073291771
+ .long 317461253
+ .long 3188950787
+ .long 939524096
+ .long 1073291771
+ .long 4117231784
+ .long 1044731035
+ .long 1073741824
+ .long 1073291771
+ .long 1607942376
+ .long 1044361352
+ .long 1207959552
+ .long 1073291771
+ .long 2428929577
+ .long 3189838838
+ .long 1207959552
+ .long 1073291771
+ .long 2031104645
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1895722602
+ .long 3191935434
+ .long 1342177280
+ .long 1073291771
+ .long 317465322
+ .long 3188950787
+ .long 1342177280
+ .long 1073291771
+ .long 1362515546
+ .long 1043402654
+ .long 1342177280
+ .long 1073291771
+ .long 1607942248
+ .long 1044361352
+ .long 1342177280
+ .long 1073291771
+ .long 4117231610
+ .long 1044731035
+ .long 1342177280
+ .long 1073291771
+ .long 2031104637
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1540251232
+ .long 1045150466
+ .long 1342177280
+ .long 1073291771
+ .long 2644671394
+ .long 1045270303
+ .long 1342177280
+ .long 1073291771
+ .long 2399244691
+ .long 1045360181
+ .long 1342177280
+ .long 1073291771
+ .long 803971124
+ .long 1045420100
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192879152
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192849193
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192826724
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192811744
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192800509
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192793019
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192787402
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192783657
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192780848
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192778976
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192777572
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192776635
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192775933
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192775465
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192775114
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774880
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774704
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774587
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774500
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774441
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774397
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774368
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774346
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774331
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774320
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774313
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774308
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774304
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774301
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774299
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774298
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774297
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1466225875
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1343512524
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1251477510
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1190120835
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1144103328
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1113424990
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1090416237
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1075077068
+ .long 3192774295
+ .long 1431655765
+ .long 3218429269
+ .long 2576978363
+ .long 1070176665
+ .long 2453154343
+ .long 3217180964
+ .long 4189149139
+ .long 1069314502
+ .long 1775019125
+ .long 3216459198
+ .long 273199057
+ .long 1068739452
+ .long 874748308
+ .long 3215993277
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1073741824
+ .long 1413754136
+ .long 1072243195
+ .long 856972295
+ .long 1015129638
+ .long 1413754136
+ .long 1073291771
+ .long 856972295
+ .long 1016178214
+ .long 1413754136
+ .long 1074340347
+ .long 856972295
+ .long 1017226790
+ .long 2134057426
+ .long 1073928572
+ .long 1285458442
+ .long 1016756537
+ .long 0
+ .long 3220176896
+ .long 0
+ .long 0
+ .long 0
+ .long 2144337920
+ .long 0
+ .long 1048576
+ .long 33554432
+ .long 1101004800
+ .type __datan2_la_CoutTab,@object
+ .size __datan2_la_CoutTab,2008
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE version of vectorized atan2.
+ 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 _ZGVdN4vv_atan2 _ZGVdN4vv_atan2_sse_wrapper
+#include "../svml_d_atan24_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized atan2, 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 _ZGVdN4vv_atan2
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN4vv_atan2, __GI__ZGVdN4vv_atan2,
+ __redirect__ZGVdN4vv_atan2)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,3161 @@
+/* Function atan2 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:
+ * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x)
+ * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x)
+ * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x)
+ * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x)
+ * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x
+ * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16.
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.avx2,"ax",@progbits
+ENTRY(_ZGVdN4vv_atan2_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
+ xorl %edx, %edx
+
+/*
+ * #define NO_VECTOR_ZERO_ATAN2_ARGS
+ * Declarations
+ * Variables
+ * Constants
+ * The end of declarations
+ * Implementation
+ * Get r0~=1/B
+ * Cannot be replaced by VQRCP(D, dR0, dB);
+ * Argument Absolute values
+ */
+ vmovupd 1728+__svml_datan2_data_internal(%rip), %ymm5
+
+/* Argument signs */
+ vmovupd 1536+__svml_datan2_data_internal(%rip), %ymm4
+ vmovups %ymm8, 32(%rsp)
+ vmovups %ymm14, 320(%rsp)
+ vmovups %ymm10, 160(%rsp)
+ vmovups %ymm9, 96(%rsp)
+ vmovups %ymm13, 288(%rsp)
+ .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 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, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+ vmovups 1600+__svml_datan2_data_internal(%rip), %xmm13
+ vmovups %ymm12, 256(%rsp)
+ vmovups %ymm11, 224(%rsp)
+ vmovupd %ymm0, (%rsp)
+ vmovups %ymm15, 352(%rsp)
+ .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x22
+ vmovapd %ymm1, %ymm8
+ vandpd %ymm5, %ymm8, %ymm2
+ vandpd %ymm5, %ymm0, %ymm1
+ vcmpnlt_uqpd %ymm2, %ymm1, %ymm3
+
+/*
+ * 1) If y<x then a= y, b=x, PIO2=0
+ * 2) If y>x then a=-x, b=y, PIO2=Pi/2
+ */
+ vorpd %ymm4, %ymm2, %ymm6
+ vblendvpd %ymm3, %ymm6, %ymm1, %ymm6
+ vblendvpd %ymm3, %ymm1, %ymm2, %ymm14
+ vmovupd %ymm14, 64(%rsp)
+ vdivpd %ymm14, %ymm6, %ymm14
+ vandpd %ymm4, %ymm8, %ymm5
+ vandpd %ymm4, %ymm0, %ymm7
+ vandpd 64+__svml_datan2_data_internal(%rip), %ymm3, %ymm4
+ vmovups 1664+__svml_datan2_data_internal(%rip), %xmm3
+
+/* Check if y and x are on main path. */
+ vextractf128 $1, %ymm2, %xmm9
+ vextractf128 $1, %ymm1, %xmm10
+ vshufps $221, %xmm9, %xmm2, %xmm11
+ vshufps $221, %xmm10, %xmm1, %xmm12
+ vpsubd %xmm13, %xmm11, %xmm0
+ vpsubd %xmm13, %xmm12, %xmm9
+ vpcmpgtd %xmm3, %xmm0, %xmm15
+ vpcmpeqd %xmm3, %xmm0, %xmm6
+ vpcmpgtd %xmm3, %xmm9, %xmm10
+ vpcmpeqd %xmm3, %xmm9, %xmm3
+ vpor %xmm6, %xmm15, %xmm11
+ vpor %xmm3, %xmm10, %xmm12
+
+/* Polynomial. */
+ vmulpd %ymm14, %ymm14, %ymm10
+ vpor %xmm12, %xmm11, %xmm3
+ vmovupd 320+__svml_datan2_data_internal(%rip), %ymm9
+ vmovupd 384+__svml_datan2_data_internal(%rip), %ymm12
+ vmovupd 448+__svml_datan2_data_internal(%rip), %ymm15
+ vmulpd %ymm10, %ymm10, %ymm11
+
+/* if x<0, dPI = Pi, else dPI =0 */
+ vcmple_oqpd 1792+__svml_datan2_data_internal(%rip), %ymm8, %ymm13
+ vmovmskps %xmm3, %eax
+ vmulpd %ymm11, %ymm11, %ymm0
+ vandpd __svml_datan2_data_internal(%rip), %ymm13, %ymm6
+ vmovupd 256+__svml_datan2_data_internal(%rip), %ymm13
+ vfmadd213pd 576+__svml_datan2_data_internal(%rip), %ymm0, %ymm9
+ vfmadd213pd 640+__svml_datan2_data_internal(%rip), %ymm0, %ymm12
+ vfmadd213pd 704+__svml_datan2_data_internal(%rip), %ymm0, %ymm15
+ vfmadd213pd 512+__svml_datan2_data_internal(%rip), %ymm0, %ymm13
+ vfmadd213pd 832+__svml_datan2_data_internal(%rip), %ymm0, %ymm9
+ vfmadd213pd 896+__svml_datan2_data_internal(%rip), %ymm0, %ymm12
+ vfmadd213pd 960+__svml_datan2_data_internal(%rip), %ymm0, %ymm15
+ vfmadd213pd 768+__svml_datan2_data_internal(%rip), %ymm0, %ymm13
+ vfmadd213pd 1088+__svml_datan2_data_internal(%rip), %ymm0, %ymm9
+ vfmadd213pd 1152+__svml_datan2_data_internal(%rip), %ymm0, %ymm12
+ vfmadd213pd 1216+__svml_datan2_data_internal(%rip), %ymm0, %ymm15
+ vfmadd213pd 1024+__svml_datan2_data_internal(%rip), %ymm0, %ymm13
+ vfmadd213pd 1344+__svml_datan2_data_internal(%rip), %ymm0, %ymm9
+ vfmadd213pd 1408+__svml_datan2_data_internal(%rip), %ymm0, %ymm12
+ vfmadd213pd 1280+__svml_datan2_data_internal(%rip), %ymm0, %ymm13
+
+/* A00=1.0, account for it later VQFMA(D, dP4, dP4, dR8, dA00); */
+ vmulpd %ymm15, %ymm0, %ymm0
+ vfmadd213pd %ymm9, %ymm10, %ymm13
+ vfmadd213pd %ymm0, %ymm10, %ymm12
+ vfmadd213pd %ymm12, %ymm11, %ymm13
+
+/*
+ * Reconstruction.
+ * dP=(R+R*dP) + dPIO2
+ */
+ vfmadd213pd %ymm14, %ymm14, %ymm13
+ vaddpd %ymm13, %ymm4, %ymm14
+ vorpd %ymm5, %ymm14, %ymm0
+ vaddpd %ymm0, %ymm6, %ymm9
+ vorpd %ymm7, %ymm9, %ymm0
+
+/* Special branch for fast (vector) processing of zero arguments */
+ testl %eax, %eax
+ jne L(7)
+
+L(1):
+/*
+ * Special branch for fast (vector) processing of zero arguments
+ * The end of implementation
+ */
+ testl %edx, %edx
+ jne L(3)
+
+L(2):
+ vmovups 32(%rsp), %ymm8
+ cfi_restore(91)
+ vmovups 96(%rsp), %ymm9
+ cfi_restore(92)
+ vmovups 160(%rsp), %ymm10
+ cfi_restore(93)
+ vmovups 224(%rsp), %ymm11
+ cfi_restore(94)
+ vmovups 256(%rsp), %ymm12
+ cfi_restore(95)
+ vmovups 288(%rsp), %ymm13
+ cfi_restore(96)
+ vmovups 320(%rsp), %ymm14
+ cfi_restore(97)
+ vmovups 352(%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, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x22
+
+L(3):
+ vmovupd (%rsp), %ymm1
+ vmovupd %ymm8, 128(%rsp)
+ vmovupd %ymm0, 192(%rsp)
+ vmovupd %ymm1, 64(%rsp)
+ je L(2)
+ xorl %eax, %eax
+ vzeroupper
+ movq %rsi, 8(%rsp)
+ movq %rdi, (%rsp)
+ movq %r12, 24(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 16(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+L(4):
+ btl %r12d, %r13d
+ jc L(6)
+
+L(5):
+ incl %r12d
+ cmpl $4, %r12d
+ jl L(4)
+ 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 192(%rsp), %ymm0
+ jmp L(2)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+
+L(6):
+ lea 64(%rsp,%r12,8), %rdi
+ lea 128(%rsp,%r12,8), %rsi
+ lea 192(%rsp,%r12,8), %rdx
+ call __svml_datan2_cout_rare_internal
+ jmp L(5)
+ cfi_restore(4)
+ cfi_restore(5)
+ cfi_restore(12)
+ cfi_restore(13)
+
+L(7):
+ vmovupd (%rsp), %ymm11
+
+/* Check if at least on of Y or Y is zero: iAXAYZERO */
+ vmovupd 1792+__svml_datan2_data_internal(%rip), %ymm10
+
+/* Check if both X & Y are not NaNs: iXYnotNAN */
+ vcmpordpd %ymm8, %ymm8, %ymm12
+ vcmpordpd %ymm11, %ymm11, %ymm13
+ vcmpeqpd %ymm10, %ymm2, %ymm2
+ vcmpeqpd %ymm10, %ymm1, %ymm1
+ vandpd %ymm13, %ymm12, %ymm14
+ vorpd %ymm1, %ymm2, %ymm2
+ vextractf128 $1, %ymm14, %xmm15
+ vextractf128 $1, %ymm2, %xmm11
+ vshufps $221, %xmm15, %xmm14, %xmm9
+ vshufps $221, %xmm11, %xmm2, %xmm12
+
+/*
+ * Path for zero arguments (at least one of both)
+ * Check if both args are zeros (den. is zero)
+ */
+ vcmpeqpd 64(%rsp), %ymm10, %ymm2
+
+/* Check if at least on of Y or Y is zero and not NaN: iAXAYZEROnotNAN */
+ vpand %xmm9, %xmm12, %xmm1
+
+/* Exclude from previous callout mask zero (and not NaN) arguments */
+ vpandn %xmm3, %xmm1, %xmm3
+
+/* Go to callout */
+ vmovmskps %xmm3, %edx
+
+/* Set sPIO2 to zero if den. is zero */
+ vblendvpd %ymm2, %ymm10, %ymm4, %ymm4
+ vorpd %ymm5, %ymm4, %ymm5
+
+/* Res = sign(Y)*(X<0)?(PIO2+PI):PIO2 */
+ vextractf128 $1, %ymm10, %xmm2
+ vextractf128 $1, %ymm8, %xmm3
+ vshufps $221, %xmm2, %xmm10, %xmm4
+ vshufps $221, %xmm3, %xmm8, %xmm9
+ vpcmpgtd %xmm9, %xmm4, %xmm12
+ vpshufd $80, %xmm12, %xmm11
+ vpshufd $250, %xmm12, %xmm13
+ vinsertf128 $1, %xmm13, %ymm11, %ymm14
+ vandpd %ymm6, %ymm14, %ymm6
+ vaddpd %ymm6, %ymm5, %ymm2
+ vorpd %ymm7, %ymm2, %ymm2
+
+/* Merge results from main and spec path */
+ vpshufd $80, %xmm1, %xmm7
+ vpshufd $250, %xmm1, %xmm1
+ vinsertf128 $1, %xmm1, %ymm7, %ymm3
+ vblendvpd %ymm3, %ymm2, %ymm0, %ymm0
+ jmp L(1)
+
+END(_ZGVdN4vv_atan2_avx2)
+
+ .align 16,0x90
+
+__svml_datan2_cout_rare_internal:
+
+ cfi_startproc
+
+ movq %rdx, %rcx
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm1
+ movsd (%rdi), %xmm2
+ movsd (%rsi), %xmm0
+ mulsd %xmm1, %xmm2
+ mulsd %xmm0, %xmm1
+ movsd %xmm2, -48(%rsp)
+ movsd %xmm1, -40(%rsp)
+ movzwl -42(%rsp), %r9d
+ andl $32752, %r9d
+ movb -33(%rsp), %al
+ movzwl -34(%rsp), %r8d
+ andb $-128, %al
+ andl $32752, %r8d
+ shrl $4, %r9d
+ movb -41(%rsp), %dl
+ shrb $7, %dl
+ shrb $7, %al
+ shrl $4, %r8d
+ cmpl $2047, %r9d
+ je L(31)
+ cmpl $2047, %r8d
+ je L(25)
+ testl %r9d, %r9d
+ jne L(8)
+ testl $1048575, -44(%rsp)
+ jne L(8)
+ cmpl $0, -48(%rsp)
+ je L(19)
+
+L(8):
+ testl %r8d, %r8d
+ jne L(9)
+ testl $1048575, -36(%rsp)
+ jne L(9)
+ cmpl $0, -40(%rsp)
+ je L(18)
+
+L(9):
+ negl %r8d
+ movsd %xmm2, -48(%rsp)
+ addl %r9d, %r8d
+ movsd %xmm1, -40(%rsp)
+ movb -41(%rsp), %dil
+ movb -33(%rsp), %sil
+ andb $127, %dil
+ andb $127, %sil
+ cmpl $-54, %r8d
+ jle L(16)
+ cmpl $54, %r8d
+ jge L(15)
+ movb %sil, -33(%rsp)
+ movb %dil, -41(%rsp)
+ testb %al, %al
+ jne L(10)
+ movsd 1976+__datan2_la_CoutTab(%rip), %xmm1
+ movaps %xmm1, %xmm0
+ jmp L(11)
+
+L(10):
+ movsd 1936+__datan2_la_CoutTab(%rip), %xmm1
+ movsd 1944+__datan2_la_CoutTab(%rip), %xmm0
+
+L(11):
+ movsd -48(%rsp), %xmm4
+ movsd -40(%rsp), %xmm2
+ movaps %xmm4, %xmm5
+ divsd %xmm2, %xmm5
+ movzwl -42(%rsp), %esi
+ movsd %xmm5, -16(%rsp)
+ testl %r9d, %r9d
+ jle L(24)
+ cmpl $2046, %r9d
+ jge L(12)
+ andl $-32753, %esi
+ addl $-1023, %r9d
+ movsd %xmm4, -48(%rsp)
+ addl $16368, %esi
+ movw %si, -42(%rsp)
+ jmp L(13)
+
+L(12):
+ movsd 1992+__datan2_la_CoutTab(%rip), %xmm3
+ movl $1022, %r9d
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+
+L(13):
+ negl %r9d
+ addl $1023, %r9d
+ andl $2047, %r9d
+ movzwl 1894+__datan2_la_CoutTab(%rip), %esi
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm3
+ andl $-32753, %esi
+ shll $4, %r9d
+ movsd %xmm3, -40(%rsp)
+ orl %r9d, %esi
+ movw %si, -34(%rsp)
+ movsd -40(%rsp), %xmm4
+ mulsd %xmm4, %xmm2
+ comisd 1880+__datan2_la_CoutTab(%rip), %xmm5
+ jb L(14)
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm12
+ movaps %xmm2, %xmm3
+ mulsd %xmm2, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd %xmm5, -24(%rsp)
+ subsd %xmm2, %xmm13
+ movsd %xmm13, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm14
+ movl -20(%rsp), %r8d
+ movl %r8d, %r9d
+ andl $-524288, %r8d
+ andl $-1048576, %r9d
+ addl $262144, %r8d
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -72(%rsp)
+ andl $1048575, %r8d
+ movsd -72(%rsp), %xmm4
+ orl %r8d, %r9d
+ movl $0, -24(%rsp)
+ subsd %xmm4, %xmm3
+ movl %r9d, -20(%rsp)
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -24(%rsp), %xmm11
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm5
+ mulsd %xmm11, %xmm9
+ movsd 1968+__datan2_la_CoutTab(%rip), %xmm8
+ mulsd %xmm8, %xmm5
+ mulsd %xmm8, %xmm9
+ movaps %xmm5, %xmm7
+ movzwl -10(%rsp), %edi
+ addsd %xmm9, %xmm7
+ movsd %xmm7, -72(%rsp)
+ andl $32752, %edi
+ movsd -72(%rsp), %xmm6
+ shrl $4, %edi
+ subsd %xmm6, %xmm5
+ movl -12(%rsp), %esi
+ addsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ andl $1048575, %esi
+ movsd -48(%rsp), %xmm9
+ movsd -72(%rsp), %xmm3
+ movaps %xmm9, %xmm12
+ movsd -64(%rsp), %xmm10
+ movaps %xmm9, %xmm14
+ movaps %xmm9, %xmm6
+ addsd %xmm3, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ shll $20, %edi
+ subsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ orl %esi, %edi
+ movsd -72(%rsp), %xmm4
+ addl $-1069547520, %edi
+ movsd -64(%rsp), %xmm15
+ movl $113, %esi
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm15, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ sarl $19, %edi
+ addsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ cmpl $113, %edi
+ movsd -56(%rsp), %xmm7
+ cmovl %edi, %esi
+ subsd %xmm7, %xmm6
+ movsd %xmm6, -56(%rsp)
+ addl %esi, %esi
+ movsd -64(%rsp), %xmm12
+ lea __datan2_la_CoutTab(%rip), %rdi
+ movsd -56(%rsp), %xmm5
+ movslq %esi, %rsi
+ addsd %xmm5, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm7, %xmm13
+ movsd -56(%rsp), %xmm8
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm10, %xmm8
+ movsd -72(%rsp), %xmm4
+ movaps %xmm9, %xmm10
+ mulsd 2000+__datan2_la_CoutTab(%rip), %xmm10
+ subsd %xmm7, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd -64(%rsp), %xmm14
+ subsd %xmm14, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm15
+ subsd %xmm15, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm4
+ movsd %xmm10, -72(%rsp)
+ movaps %xmm2, %xmm10
+ addsd %xmm4, %xmm8
+ movsd -72(%rsp), %xmm4
+ subsd -48(%rsp), %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm3
+ subsd %xmm3, %xmm6
+ movaps %xmm2, %xmm3
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ subsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm12
+ mulsd %xmm11, %xmm9
+ movaps %xmm12, %xmm11
+ addsd %xmm9, %xmm11
+ movsd %xmm11, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm12
+ addsd %xmm9, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm6
+ addsd %xmm15, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm5, %xmm10
+ movsd %xmm10, -64(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm13
+ movsd %xmm13, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm14, %xmm15
+ movsd %xmm15, -64(%rsp)
+ movsd -56(%rsp), %xmm4
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm14
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -64(%rsp), %xmm4
+ movsd -56(%rsp), %xmm2
+ addsd %xmm2, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -72(%rsp), %xmm12
+ mulsd %xmm12, %xmm3
+ movsd -56(%rsp), %xmm5
+ movsd %xmm3, -72(%rsp)
+ addsd %xmm6, %xmm5
+ movsd -72(%rsp), %xmm9
+ subsd %xmm12, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm2
+ subsd %xmm2, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ divsd %xmm9, %xmm14
+ mulsd %xmm14, %xmm13
+ movsd -64(%rsp), %xmm10
+ movsd %xmm13, -64(%rsp)
+ addsd %xmm10, %xmm5
+ movsd -64(%rsp), %xmm15
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm12
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm4
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -56(%rsp), %xmm3
+ mulsd %xmm3, %xmm9
+ movsd -56(%rsp), %xmm11
+ subsd %xmm9, %xmm12
+ mulsd %xmm11, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -64(%rsp), %xmm5
+ subsd %xmm5, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -64(%rsp), %xmm2
+ movq -56(%rsp), %r10
+ movsd -64(%rsp), %xmm6
+ movsd -56(%rsp), %xmm4
+ movq %r10, -40(%rsp)
+ movsd -40(%rsp), %xmm3
+ movaps %xmm3, %xmm5
+ addsd 1888+__datan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm5
+ mulsd %xmm6, %xmm2
+ mulsd %xmm4, %xmm2
+ mulsd %xmm2, %xmm7
+ mulsd %xmm8, %xmm2
+ mulsd %xmm3, %xmm8
+ addsd %xmm2, %xmm7
+ movsd 1872+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm8, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movaps %xmm5, %xmm7
+ movsd -72(%rsp), %xmm4
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm6
+ addsd %xmm4, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ subsd %xmm8, %xmm5
+ addsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ movaps %xmm11, %xmm2
+ mulsd %xmm11, %xmm2
+ mulsd %xmm11, %xmm6
+ mulsd %xmm2, %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ addsd 1864+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm11, %xmm7
+ mulsd %xmm2, %xmm3
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ movsd -64(%rsp), %xmm8
+ addsd 1856+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm8, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ addsd 1848+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm10, %xmm11
+ mulsd %xmm2, %xmm3
+ movsd %xmm11, -64(%rsp)
+ addsd 1840+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1832+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1824+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm3, %xmm13
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %r11
+ movsd -56(%rsp), %xmm15
+ movq %r11, -40(%rsp)
+ addsd %xmm15, %xmm4
+ movsd -40(%rsp), %xmm8
+ addsd %xmm5, %xmm4
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm8, %xmm4
+ movaps %xmm8, %xmm2
+ addsd (%rdi,%rsi,8), %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd (%rdi,%rsi,8), %xmm6
+ movsd %xmm6, -64(%rsp)
+ movsd -56(%rsp), %xmm7
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movq -72(%rsp), %r8
+ movq %r8, -40(%rsp)
+ movsd -56(%rsp), %xmm2
+ movaps %xmm1, %xmm3
+ shrq $56, %r8
+ addsd -32(%rsp), %xmm2
+ shlb $7, %dl
+ addsd 8(%rdi,%rsi,8), %xmm2
+ movb %al, %sil
+ andb $127, %r8b
+ shlb $7, %sil
+ movsd %xmm2, -32(%rsp)
+ orb %sil, %r8b
+ movb %r8b, -33(%rsp)
+ movsd -40(%rsp), %xmm9
+ movaps %xmm9, %xmm5
+ addsd %xmm9, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %dil
+ movb %dil, %r9b
+ shrb $7, %dil
+ subsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm6
+ xorb %dil, %al
+ andb $127, %r9b
+ shlb $7, %al
+ addsd %xmm6, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ addsd %xmm8, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %al, %r9b
+ movsd -56(%rsp), %xmm1
+ movb %r9b, -25(%rsp)
+ subsd %xmm1, %xmm9
+ movsd %xmm9, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ movsd -56(%rsp), %xmm10
+ addsd %xmm10, %xmm11
+ movsd %xmm11, -56(%rsp)
+ movq -72(%rsp), %rax
+ movsd -56(%rsp), %xmm12
+ movq %rax, -40(%rsp)
+ addsd %xmm12, %xmm0
+ movsd -40(%rsp), %xmm13
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm13
+ movsd %xmm13, -24(%rsp)
+ movb -17(%rsp), %r10b
+ andb $127, %r10b
+ orb %dl, %r10b
+ movb %r10b, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(14):
+ movsd -48(%rsp), %xmm12
+ movb %al, %r8b
+ movaps %xmm12, %xmm7
+ mulsd 2000+__datan2_la_CoutTab(%rip), %xmm7
+ shlb $7, %r8b
+ shlb $7, %dl
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm2, %xmm13
+ subsd -48(%rsp), %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movsd %xmm13, -72(%rsp)
+ movsd -72(%rsp), %xmm14
+ subsd %xmm2, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm4
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm4
+ subsd %xmm3, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ divsd %xmm12, %xmm7
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm2
+ movsd -64(%rsp), %xmm14
+ movsd %xmm2, -64(%rsp)
+ movsd -64(%rsp), %xmm8
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -56(%rsp), %xmm11
+ mulsd %xmm11, %xmm12
+ movsd -56(%rsp), %xmm13
+ subsd %xmm12, %xmm4
+ mulsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -64(%rsp), %xmm15
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -64(%rsp), %xmm7
+ movq -56(%rsp), %rsi
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm3
+ movq %rsi, -40(%rsp)
+ movsd -40(%rsp), %xmm8
+ movaps %xmm8, %xmm9
+ addsd 1888+__datan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm6, %xmm9
+ mulsd %xmm5, %xmm8
+ mulsd %xmm2, %xmm7
+ movsd -16(%rsp), %xmm2
+ mulsd %xmm2, %xmm2
+ mulsd %xmm3, %xmm7
+ movsd 1872+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm7, %xmm6
+ mulsd %xmm5, %xmm7
+ addsd 1864+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm7, %xmm6
+ mulsd %xmm2, %xmm3
+ addsd %xmm8, %xmm6
+ addsd 1856+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ movaps %xmm9, %xmm5
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ addsd 1848+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm5
+ mulsd %xmm2, %xmm3
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm5
+ subsd %xmm6, %xmm9
+ addsd 1840+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ mulsd %xmm11, %xmm5
+ addsd 1832+__datan2_la_CoutTab(%rip), %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm2, %xmm3
+ subsd %xmm11, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd -64(%rsp), %xmm6
+ addsd 1824+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm6, %xmm8
+ mulsd %xmm2, %xmm3
+ movsd %xmm8, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ mulsd %xmm3, %xmm13
+ subsd %xmm10, %xmm11
+ movsd %xmm11, -64(%rsp)
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %rdi
+ movsd -56(%rsp), %xmm15
+ movq %rdi, -40(%rsp)
+ addsd %xmm15, %xmm4
+ shrq $56, %rdi
+ addsd %xmm5, %xmm4
+ andb $127, %dil
+ orb %r8b, %dil
+ movb %dil, -33(%rsp)
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm1, %xmm4
+ movsd -40(%rsp), %xmm7
+ movaps %xmm7, %xmm2
+ addsd %xmm7, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %r9b
+ movb %r9b, %r10b
+ shrb $7, %r9b
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ xorb %r9b, %al
+ andb $127, %r10b
+ shlb $7, %al
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd %xmm6, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %al, %r10b
+ movsd -56(%rsp), %xmm1
+ movb %r10b, -25(%rsp)
+ subsd %xmm1, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm1
+ addsd %xmm1, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movq -72(%rsp), %rax
+ movsd -56(%rsp), %xmm3
+ movq %rax, -40(%rsp)
+ addsd %xmm3, %xmm0
+ movsd -40(%rsp), %xmm4
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm4
+ movsd %xmm4, -24(%rsp)
+ movb -17(%rsp), %r11b
+ andb $127, %r11b
+ orb %dl, %r11b
+ movb %r11b, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(15):
+ cmpl $74, %r8d
+ jge L(32)
+ movb %dil, -41(%rsp)
+ divsd -48(%rsp), %xmm1
+ movsd 1928+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ subsd %xmm1, %xmm0
+ addsd 1920+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(16):
+ testb %al, %al
+ jne L(22)
+ movb %dil, -41(%rsp)
+ movb %sil, -33(%rsp)
+ movsd -48(%rsp), %xmm2
+ divsd -40(%rsp), %xmm2
+ movsd %xmm2, -24(%rsp)
+ movzwl -18(%rsp), %eax
+ testl $32752, %eax
+ je L(17)
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd %xmm2, %xmm0
+ movsd %xmm0, -72(%rsp)
+ movsd -72(%rsp), %xmm1
+ mulsd %xmm1, %xmm2
+ movsd %xmm2, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(17):
+ mulsd %xmm2, %xmm2
+ shlb $7, %dl
+ movsd %xmm2, -72(%rsp)
+ movsd -72(%rsp), %xmm0
+ addsd -24(%rsp), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(18):
+ testl %r9d, %r9d
+ jne L(32)
+ testl $1048575, -44(%rsp)
+ jne L(32)
+ jmp L(33)
+
+L(19):
+ jne L(32)
+
+L(20):
+ testb %al, %al
+ jne L(22)
+
+L(21):
+ shlb $7, %dl
+ movq 1976+__datan2_la_CoutTab(%rip), %rax
+ movq %rax, -24(%rsp)
+ shrq $56, %rax
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(22):
+ movsd 1936+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1944+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+
+L(23):
+ xorl %eax, %eax
+ ret
+
+L(24):
+ movsd 1984+__datan2_la_CoutTab(%rip), %xmm3
+ movl $-1022, %r9d
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+ jmp L(13)
+
+L(25):
+ cmpl $2047, %r9d
+ je L(31)
+
+L(26):
+ testl $1048575, -36(%rsp)
+ jne L(27)
+ cmpl $0, -40(%rsp)
+ je L(28)
+
+L(27):
+ addsd %xmm1, %xmm2
+ movsd %xmm2, (%rcx)
+ jmp L(23)
+
+L(28):
+ cmpl $2047, %r9d
+ je L(29)
+ testb %al, %al
+ je L(21)
+ jmp L(22)
+
+L(29):
+ testb %al, %al
+ jne L(30)
+ movsd 1904+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1912+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(30):
+ movsd 1952+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1960+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(31):
+ testl $1048575, -44(%rsp)
+ jne L(27)
+ cmpl $0, -48(%rsp)
+ jne L(27)
+ cmpl $2047, %r8d
+ je L(26)
+
+L(32):
+ movsd 1920+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1928+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(33):
+ cmpl $0, -48(%rsp)
+ jne L(32)
+ jmp L(20)
+
+ cfi_endproc
+
+ .type __svml_datan2_cout_rare_internal,@function
+ .size __svml_datan2_cout_rare_internal,.-__svml_datan2_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_datan2_data_internal:
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 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 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 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 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .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
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 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 4294967295
+ .long 0
+ .long 4294967295
+ .long 0
+ .long 4294967295
+ .long 0
+ .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
+ .type __svml_datan2_data_internal,@object
+ .size __svml_datan2_data_internal,2304
+ .align 32
+
+__datan2_la_CoutTab:
+ .long 3892314112
+ .long 1069799150
+ .long 2332892550
+ .long 1039715405
+ .long 1342177280
+ .long 1070305495
+ .long 270726690
+ .long 1041535749
+ .long 939524096
+ .long 1070817911
+ .long 2253973841
+ .long 3188654726
+ .long 3221225472
+ .long 1071277294
+ .long 3853927037
+ .long 1043226911
+ .long 2818572288
+ .long 1071767563
+ .long 2677759107
+ .long 1044314101
+ .long 3355443200
+ .long 1072103591
+ .long 1636578514
+ .long 3191094734
+ .long 1476395008
+ .long 1072475260
+ .long 1864703685
+ .long 3188646936
+ .long 805306368
+ .long 1072747407
+ .long 192551812
+ .long 3192726267
+ .long 2013265920
+ .long 1072892781
+ .long 2240369452
+ .long 1043768538
+ .long 0
+ .long 1072999953
+ .long 3665168337
+ .long 3192705970
+ .long 402653184
+ .long 1073084787
+ .long 1227953434
+ .long 3192313277
+ .long 2013265920
+ .long 1073142981
+ .long 3853283127
+ .long 1045277487
+ .long 805306368
+ .long 1073187261
+ .long 1676192264
+ .long 3192868861
+ .long 134217728
+ .long 1073217000
+ .long 4290763938
+ .long 1042034855
+ .long 671088640
+ .long 1073239386
+ .long 994303084
+ .long 3189643768
+ .long 402653184
+ .long 1073254338
+ .long 1878067156
+ .long 1042652475
+ .long 1610612736
+ .long 1073265562
+ .long 670314820
+ .long 1045138554
+ .long 3221225472
+ .long 1073273048
+ .long 691126919
+ .long 3189987794
+ .long 3489660928
+ .long 1073278664
+ .long 1618990832
+ .long 3188194509
+ .long 1207959552
+ .long 1073282409
+ .long 2198872939
+ .long 1044806069
+ .long 3489660928
+ .long 1073285217
+ .long 2633982383
+ .long 1042307894
+ .long 939524096
+ .long 1073287090
+ .long 1059367786
+ .long 3189114230
+ .long 2281701376
+ .long 1073288494
+ .long 3158525533
+ .long 1044484961
+ .long 3221225472
+ .long 1073289430
+ .long 286581777
+ .long 1044893263
+ .long 4026531840
+ .long 1073290132
+ .long 2000245215
+ .long 3191647611
+ .long 134217728
+ .long 1073290601
+ .long 4205071590
+ .long 1045035927
+ .long 536870912
+ .long 1073290952
+ .long 2334392229
+ .long 1043447393
+ .long 805306368
+ .long 1073291186
+ .long 2281458177
+ .long 3188885569
+ .long 3087007744
+ .long 1073291361
+ .long 691611507
+ .long 1044733832
+ .long 3221225472
+ .long 1073291478
+ .long 1816229550
+ .long 1044363390
+ .long 2281701376
+ .long 1073291566
+ .long 1993843750
+ .long 3189837440
+ .long 134217728
+ .long 1073291625
+ .long 3654754496
+ .long 1044970837
+ .long 4026531840
+ .long 1073291668
+ .long 3224300229
+ .long 3191935390
+ .long 805306368
+ .long 1073291698
+ .long 2988777976
+ .long 3188950659
+ .long 536870912
+ .long 1073291720
+ .long 1030371341
+ .long 1043402665
+ .long 3221225472
+ .long 1073291734
+ .long 1524463765
+ .long 1044361356
+ .long 3087007744
+ .long 1073291745
+ .long 2754295320
+ .long 1044731036
+ .long 134217728
+ .long 1073291753
+ .long 3099629057
+ .long 1044970710
+ .long 2281701376
+ .long 1073291758
+ .long 962914160
+ .long 3189838838
+ .long 805306368
+ .long 1073291762
+ .long 3543908206
+ .long 3188950786
+ .long 4026531840
+ .long 1073291764
+ .long 1849909620
+ .long 3191935434
+ .long 3221225472
+ .long 1073291766
+ .long 1641333636
+ .long 1044361352
+ .long 536870912
+ .long 1073291768
+ .long 1373968792
+ .long 1043402654
+ .long 134217728
+ .long 1073291769
+ .long 2033191599
+ .long 1044970710
+ .long 3087007744
+ .long 1073291769
+ .long 4117947437
+ .long 1044731035
+ .long 805306368
+ .long 1073291770
+ .long 315378368
+ .long 3188950787
+ .long 2281701376
+ .long 1073291770
+ .long 2428571750
+ .long 3189838838
+ .long 3221225472
+ .long 1073291770
+ .long 1608007466
+ .long 1044361352
+ .long 4026531840
+ .long 1073291770
+ .long 1895711420
+ .long 3191935434
+ .long 134217728
+ .long 1073291771
+ .long 2031108713
+ .long 1044970710
+ .long 536870912
+ .long 1073291771
+ .long 1362518342
+ .long 1043402654
+ .long 805306368
+ .long 1073291771
+ .long 317461253
+ .long 3188950787
+ .long 939524096
+ .long 1073291771
+ .long 4117231784
+ .long 1044731035
+ .long 1073741824
+ .long 1073291771
+ .long 1607942376
+ .long 1044361352
+ .long 1207959552
+ .long 1073291771
+ .long 2428929577
+ .long 3189838838
+ .long 1207959552
+ .long 1073291771
+ .long 2031104645
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1895722602
+ .long 3191935434
+ .long 1342177280
+ .long 1073291771
+ .long 317465322
+ .long 3188950787
+ .long 1342177280
+ .long 1073291771
+ .long 1362515546
+ .long 1043402654
+ .long 1342177280
+ .long 1073291771
+ .long 1607942248
+ .long 1044361352
+ .long 1342177280
+ .long 1073291771
+ .long 4117231610
+ .long 1044731035
+ .long 1342177280
+ .long 1073291771
+ .long 2031104637
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1540251232
+ .long 1045150466
+ .long 1342177280
+ .long 1073291771
+ .long 2644671394
+ .long 1045270303
+ .long 1342177280
+ .long 1073291771
+ .long 2399244691
+ .long 1045360181
+ .long 1342177280
+ .long 1073291771
+ .long 803971124
+ .long 1045420100
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192879152
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192849193
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192826724
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192811744
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192800509
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192793019
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192787402
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192783657
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192780848
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192778976
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192777572
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192776635
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192775933
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192775465
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192775114
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774880
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774704
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774587
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774500
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774441
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774397
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774368
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774346
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774331
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774320
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774313
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774308
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774304
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774301
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774299
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774298
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774297
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1466225875
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1343512524
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1251477510
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1190120835
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1144103328
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1113424990
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1090416237
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1075077068
+ .long 3192774295
+ .long 1431655765
+ .long 3218429269
+ .long 2576978363
+ .long 1070176665
+ .long 2453154343
+ .long 3217180964
+ .long 4189149139
+ .long 1069314502
+ .long 1775019125
+ .long 3216459198
+ .long 273199057
+ .long 1068739452
+ .long 874748308
+ .long 3215993277
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1073741824
+ .long 1413754136
+ .long 1072243195
+ .long 856972295
+ .long 1015129638
+ .long 1413754136
+ .long 1073291771
+ .long 856972295
+ .long 1016178214
+ .long 1413754136
+ .long 1074340347
+ .long 856972295
+ .long 1017226790
+ .long 2134057426
+ .long 1073928572
+ .long 1285458442
+ .long 1016756537
+ .long 0
+ .long 3220176896
+ .long 0
+ .long 0
+ .long 0
+ .long 2144337920
+ .long 0
+ .long 1048576
+ .long 33554432
+ .long 1101004800
+ .type __datan2_la_CoutTab,@object
+ .size __datan2_la_CoutTab,2008
new file mode 100644
@@ -0,0 +1,20 @@
+/* AVX2 version of vectorized atan2.
+ 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 _ZGVeN8vv_atan2 _ZGVeN8vv_atan2_avx2_wrapper
+#include "../svml_d_atan28_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized atan2, 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 _ZGVeN8vv_atan2
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN8vv_atan2, __GI__ZGVeN8vv_atan2,
+ __redirect__ZGVeN8vv_atan2)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,2311 @@
+/* Function atan2 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:
+ * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x)
+ * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x)
+ * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x)
+ * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x)
+ * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x
+ * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16.
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.evex512,"ax",@progbits
+ENTRY(_ZGVeN8vv_atan2_skx)
+ 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
+ xorl %edx, %edx
+
+/*
+ * #define NO_VECTOR_ZERO_ATAN2_ARGS
+ * Declarations
+ * Variables
+ * Constants
+ * The end of declarations
+ * Implementation
+ * Get r0~=1/B
+ * Cannot be replaced by VQRCP(D, dR0, dB);
+ * Argument Absolute values
+ */
+ vmovups 1728+__svml_datan2_data_internal(%rip), %zmm4
+
+/* Argument signs */
+ vmovups 1536+__svml_datan2_data_internal(%rip), %zmm6
+
+/*
+ * 1) If y<x then a= y, b=x, PIO2=0
+ * 2) If y>x then a=-x, b=y, PIO2=Pi/2
+ */
+ vmovups 64+__svml_datan2_data_internal(%rip), %zmm3
+ vandpd %zmm4, %zmm0, %zmm11
+ vmovaps %zmm1, %zmm7
+ vandpd %zmm4, %zmm7, %zmm2
+ vandpd %zmm6, %zmm7, %zmm5
+ vandpd %zmm6, %zmm0, %zmm4
+ vorpd %zmm6, %zmm2, %zmm12
+ vcmppd $17, {sae}, %zmm2, %zmm11, %k1
+ vmovdqu 1664+__svml_datan2_data_internal(%rip), %ymm6
+ vmovups %zmm11, 64(%rsp)
+
+/* Check if y and x are on main path. */
+ vpsrlq $32, %zmm2, %zmm9
+ vblendmpd %zmm11, %zmm12, %zmm13{%k1}
+ vblendmpd %zmm2, %zmm11, %zmm15{%k1}
+ vpsrlq $32, %zmm11, %zmm8
+ vmovdqu 1600+__svml_datan2_data_internal(%rip), %ymm12
+ vdivpd {rn-sae}, %zmm15, %zmm13, %zmm1
+ vmovups %zmm15, (%rsp)
+ vpmovqd %zmm9, %ymm14
+ vpmovqd %zmm8, %ymm10
+ vxorpd %zmm3, %zmm3, %zmm3{%k1}
+ vpsubd %ymm12, %ymm14, %ymm13
+ vpsubd %ymm12, %ymm10, %ymm9
+
+/* Polynomial. */
+ vmulpd {rn-sae}, %zmm1, %zmm1, %zmm12
+ vpcmpgtd %ymm6, %ymm13, %ymm15
+ vpcmpeqd %ymm6, %ymm13, %ymm11
+ vmulpd {rn-sae}, %zmm12, %zmm12, %zmm13
+ vpor %ymm11, %ymm15, %ymm8
+ vmovups 256+__svml_datan2_data_internal(%rip), %zmm11
+ vmovups 512+__svml_datan2_data_internal(%rip), %zmm15
+ vpcmpgtd %ymm6, %ymm9, %ymm14
+ vpcmpeqd %ymm6, %ymm9, %ymm6
+ vpor %ymm6, %ymm14, %ymm10
+ vmulpd {rn-sae}, %zmm13, %zmm13, %zmm14
+ vmovups 320+__svml_datan2_data_internal(%rip), %zmm9
+ vpor %ymm10, %ymm8, %ymm6
+ vmovups 384+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd231pd {rn-sae}, %zmm14, %zmm11, %zmm15
+ vmovups 576+__svml_datan2_data_internal(%rip), %zmm11
+ vmovups 704+__svml_datan2_data_internal(%rip), %zmm8
+ vfmadd231pd {rn-sae}, %zmm14, %zmm9, %zmm11
+ vmovups 640+__svml_datan2_data_internal(%rip), %zmm9
+ vfmadd231pd {rn-sae}, %zmm14, %zmm10, %zmm9
+ vmovups 448+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd231pd {rn-sae}, %zmm14, %zmm10, %zmm8
+ vmovups 768+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm15
+ vmovups 832+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm11
+ vmovups 896+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm9
+ vmovups 960+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm8
+ vmovups 1024+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm15
+ vmovups 1088+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm11
+ vmovups 1152+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm9
+ vmovups 1216+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm8
+ vmovups 1280+__svml_datan2_data_internal(%rip), %zmm10
+
+/* A00=1.0, account for it later VQFMA(D, dP4, dP4, dR8, dA00); */
+ vmulpd {rn-sae}, %zmm14, %zmm8, %zmm8
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm15
+ vmovups 1344+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm11
+ vmovups 1408+__svml_datan2_data_internal(%rip), %zmm10
+ vfmadd213pd {rn-sae}, %zmm11, %zmm12, %zmm15
+ vfmadd213pd {rn-sae}, %zmm10, %zmm14, %zmm9
+ vfmadd213pd {rn-sae}, %zmm8, %zmm12, %zmm9
+ vmovups __svml_datan2_data_internal(%rip), %zmm8
+ vfmadd213pd {rn-sae}, %zmm9, %zmm13, %zmm15
+
+/*
+ * Reconstruction.
+ * dP=(R+R*dP) + dPIO2
+ */
+ vfmadd213pd {rn-sae}, %zmm1, %zmm1, %zmm15
+ vaddpd {rn-sae}, %zmm3, %zmm15, %zmm1
+ vorpd %zmm5, %zmm1, %zmm9
+
+/* if x<0, dPI = Pi, else dPI =0 */
+ vmovups 1792+__svml_datan2_data_internal(%rip), %zmm1
+ vcmppd $18, {sae}, %zmm1, %zmm7, %k2
+ vaddpd {rn-sae}, %zmm8, %zmm9, %zmm9{%k2}
+ vmovmskps %ymm6, %eax
+ vorpd %zmm4, %zmm9, %zmm11
+
+/* Special branch for fast (vector) processing of zero arguments */
+ vmovups 64(%rsp), %zmm9
+ testl %eax, %eax
+ jne L(7)
+
+L(1):
+/*
+ * Special branch for fast (vector) processing of zero arguments
+ * The end of implementation
+ */
+ testl %edx, %edx
+ jne L(3)
+
+L(2):
+ vmovaps %zmm11, %zmm0
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+
+L(3):
+ vmovups %zmm0, 64(%rsp)
+ vmovups %zmm7, 128(%rsp)
+ vmovups %zmm11, 192(%rsp)
+ je L(2)
+ xorl %eax, %eax
+ vzeroupper
+ kmovw %k4, 24(%rsp)
+ kmovw %k5, 16(%rsp)
+ kmovw %k6, 8(%rsp)
+ kmovw %k7, (%rsp)
+ movq %rsi, 40(%rsp)
+ movq %rdi, 32(%rsp)
+ movq %r12, 56(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 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, 0x30, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+
+L(4):
+ btl %r12d, %r13d
+ jc L(6)
+
+L(5):
+ incl %r12d
+ cmpl $8, %r12d
+ jl L(4)
+ 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 192(%rsp), %zmm11
+ 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(2)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+
+L(6):
+ lea 64(%rsp,%r12,8), %rdi
+ lea 128(%rsp,%r12,8), %rsi
+ lea 192(%rsp,%r12,8), %rdx
+ call __svml_datan2_cout_rare_internal
+ jmp L(5)
+ cfi_restore(4)
+ cfi_restore(5)
+ cfi_restore(12)
+ cfi_restore(13)
+ cfi_restore(122)
+ cfi_restore(123)
+ cfi_restore(124)
+ cfi_restore(125)
+
+L(7):
+/* Check if both X & Y are not NaNs: iXYnotNAN */
+ vcmppd $3, {sae}, %zmm7, %zmm7, %k1
+ vcmppd $3, {sae}, %zmm0, %zmm0, %k2
+
+/* Check if at least on of Y or Y is zero: iAXAYZERO */
+ vmovups 1792+__svml_datan2_data_internal(%rip), %zmm8
+ vpbroadcastq .FLT_31(%rip), %zmm10
+ vcmppd $4, {sae}, %zmm8, %zmm2, %k3
+ vmovaps %zmm10, %zmm12
+ vmovaps %zmm10, %zmm15
+ vmovaps %zmm10, %zmm13
+ vpandnq %zmm7, %zmm7, %zmm12{%k1}
+ vcmppd $4, {sae}, %zmm8, %zmm9, %k1
+ vpandnq %zmm2, %zmm2, %zmm15{%k3}
+ vmovaps %zmm10, %zmm2
+
+/* Res = sign(Y)*(X<0)?(PIO2+PI):PIO2 */
+ vpcmpgtq %zmm7, %zmm8, %k3
+ vpandnq %zmm0, %zmm0, %zmm13{%k2}
+ vpandnq %zmm9, %zmm9, %zmm2{%k1}
+ vandpd %zmm13, %zmm12, %zmm14
+ vorpd %zmm2, %zmm15, %zmm9
+ vpsrlq $32, %zmm14, %zmm1
+ vpsrlq $32, %zmm9, %zmm2
+ vpmovqd %zmm1, %ymm1
+ vpmovqd %zmm2, %ymm9
+
+/* Check if at least on of Y or Y is zero and not NaN: iAXAYZEROnotNAN */
+ vpand %ymm1, %ymm9, %ymm2
+
+/*
+ * Path for zero arguments (at least one of both)
+ * Check if both args are zeros (den. is zero)
+ */
+ vmovups (%rsp), %zmm1
+
+/* Exclude from previous callout mask zero (and not NaN) arguments */
+ vpandn %ymm6, %ymm2, %ymm6
+ vcmppd $4, {sae}, %zmm8, %zmm1, %k2
+
+/* Go to callout */
+ vmovmskps %ymm6, %edx
+ vpandnq %zmm1, %zmm1, %zmm10{%k2}
+
+/* Set sPIO2 to zero if den. is zero */
+ vpandnq %zmm3, %zmm10, %zmm3
+ vpandq %zmm10, %zmm8, %zmm1
+ vporq %zmm1, %zmm3, %zmm3
+ vorpd %zmm5, %zmm3, %zmm1
+ vmovups __svml_datan2_data_internal(%rip), %zmm5
+ vaddpd {rn-sae}, %zmm5, %zmm1, %zmm1{%k3}
+ vorpd %zmm4, %zmm1, %zmm1
+
+/* Merge results from main and spec path */
+ vpmovzxdq %ymm2, %zmm4
+ vpsllq $32, %zmm4, %zmm2
+ vpord %zmm2, %zmm4, %zmm3
+ vpandnq %zmm11, %zmm3, %zmm11
+ vpandq %zmm3, %zmm1, %zmm1
+ vporq %zmm1, %zmm11, %zmm11
+ jmp L(1)
+
+END(_ZGVeN8vv_atan2_skx)
+
+ .align 16,0x90
+
+__svml_datan2_cout_rare_internal:
+
+ cfi_startproc
+
+ movq %rdx, %rcx
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm1
+ movsd (%rdi), %xmm2
+ movsd (%rsi), %xmm0
+ mulsd %xmm1, %xmm2
+ mulsd %xmm0, %xmm1
+ movsd %xmm2, -48(%rsp)
+ movsd %xmm1, -40(%rsp)
+ movzwl -42(%rsp), %r9d
+ andl $32752, %r9d
+ movb -33(%rsp), %al
+ movzwl -34(%rsp), %r8d
+ andb $-128, %al
+ andl $32752, %r8d
+ shrl $4, %r9d
+ movb -41(%rsp), %dl
+ shrb $7, %dl
+ shrb $7, %al
+ shrl $4, %r8d
+ cmpl $2047, %r9d
+ je L(31)
+ cmpl $2047, %r8d
+ je L(25)
+ testl %r9d, %r9d
+ jne L(8)
+ testl $1048575, -44(%rsp)
+ jne L(8)
+ cmpl $0, -48(%rsp)
+ je L(19)
+
+L(8):
+ testl %r8d, %r8d
+ jne L(9)
+ testl $1048575, -36(%rsp)
+ jne L(9)
+ cmpl $0, -40(%rsp)
+ je L(18)
+
+L(9):
+ negl %r8d
+ movsd %xmm2, -48(%rsp)
+ addl %r9d, %r8d
+ movsd %xmm1, -40(%rsp)
+ movb -41(%rsp), %dil
+ movb -33(%rsp), %sil
+ andb $127, %dil
+ andb $127, %sil
+ cmpl $-54, %r8d
+ jle L(16)
+ cmpl $54, %r8d
+ jge L(15)
+ movb %sil, -33(%rsp)
+ movb %dil, -41(%rsp)
+ testb %al, %al
+ jne L(10)
+ movsd 1976+__datan2_la_CoutTab(%rip), %xmm1
+ movaps %xmm1, %xmm0
+ jmp L(11)
+
+L(10):
+ movsd 1936+__datan2_la_CoutTab(%rip), %xmm1
+ movsd 1944+__datan2_la_CoutTab(%rip), %xmm0
+
+L(11):
+ movsd -48(%rsp), %xmm4
+ movsd -40(%rsp), %xmm2
+ movaps %xmm4, %xmm5
+ divsd %xmm2, %xmm5
+ movzwl -42(%rsp), %esi
+ movsd %xmm5, -16(%rsp)
+ testl %r9d, %r9d
+ jle L(24)
+ cmpl $2046, %r9d
+ jge L(12)
+ andl $-32753, %esi
+ addl $-1023, %r9d
+ movsd %xmm4, -48(%rsp)
+ addl $16368, %esi
+ movw %si, -42(%rsp)
+ jmp L(13)
+
+L(12):
+ movsd 1992+__datan2_la_CoutTab(%rip), %xmm3
+ movl $1022, %r9d
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+
+L(13):
+ negl %r9d
+ addl $1023, %r9d
+ andl $2047, %r9d
+ movzwl 1894+__datan2_la_CoutTab(%rip), %esi
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm3
+ andl $-32753, %esi
+ shll $4, %r9d
+ movsd %xmm3, -40(%rsp)
+ orl %r9d, %esi
+ movw %si, -34(%rsp)
+ movsd -40(%rsp), %xmm4
+ mulsd %xmm4, %xmm2
+ comisd 1880+__datan2_la_CoutTab(%rip), %xmm5
+ jb L(14)
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm12
+ movaps %xmm2, %xmm3
+ mulsd %xmm2, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd %xmm5, -24(%rsp)
+ subsd %xmm2, %xmm13
+ movsd %xmm13, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm14
+ movl -20(%rsp), %r8d
+ movl %r8d, %r9d
+ andl $-524288, %r8d
+ andl $-1048576, %r9d
+ addl $262144, %r8d
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -72(%rsp)
+ andl $1048575, %r8d
+ movsd -72(%rsp), %xmm4
+ orl %r8d, %r9d
+ movl $0, -24(%rsp)
+ subsd %xmm4, %xmm3
+ movl %r9d, -20(%rsp)
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -24(%rsp), %xmm11
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm5
+ mulsd %xmm11, %xmm9
+ movsd 1968+__datan2_la_CoutTab(%rip), %xmm8
+ mulsd %xmm8, %xmm5
+ mulsd %xmm8, %xmm9
+ movaps %xmm5, %xmm7
+ movzwl -10(%rsp), %edi
+ addsd %xmm9, %xmm7
+ movsd %xmm7, -72(%rsp)
+ andl $32752, %edi
+ movsd -72(%rsp), %xmm6
+ shrl $4, %edi
+ subsd %xmm6, %xmm5
+ movl -12(%rsp), %esi
+ addsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ andl $1048575, %esi
+ movsd -48(%rsp), %xmm9
+ movsd -72(%rsp), %xmm3
+ movaps %xmm9, %xmm12
+ movsd -64(%rsp), %xmm10
+ movaps %xmm9, %xmm14
+ movaps %xmm9, %xmm6
+ addsd %xmm3, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ shll $20, %edi
+ subsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ orl %esi, %edi
+ movsd -72(%rsp), %xmm4
+ addl $-1069547520, %edi
+ movsd -64(%rsp), %xmm15
+ movl $113, %esi
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm15, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ sarl $19, %edi
+ addsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ cmpl $113, %edi
+ movsd -56(%rsp), %xmm7
+ cmovl %edi, %esi
+ subsd %xmm7, %xmm6
+ movsd %xmm6, -56(%rsp)
+ addl %esi, %esi
+ movsd -64(%rsp), %xmm12
+ lea __datan2_la_CoutTab(%rip), %rdi
+ movsd -56(%rsp), %xmm5
+ movslq %esi, %rsi
+ addsd %xmm5, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm7, %xmm13
+ movsd -56(%rsp), %xmm8
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm10, %xmm8
+ movsd -72(%rsp), %xmm4
+ movaps %xmm9, %xmm10
+ mulsd 2000+__datan2_la_CoutTab(%rip), %xmm10
+ subsd %xmm7, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd -64(%rsp), %xmm14
+ subsd %xmm14, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm15
+ subsd %xmm15, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm4
+ movsd %xmm10, -72(%rsp)
+ movaps %xmm2, %xmm10
+ addsd %xmm4, %xmm8
+ movsd -72(%rsp), %xmm4
+ subsd -48(%rsp), %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm3
+ subsd %xmm3, %xmm6
+ movaps %xmm2, %xmm3
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ subsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm12
+ mulsd %xmm11, %xmm9
+ movaps %xmm12, %xmm11
+ addsd %xmm9, %xmm11
+ movsd %xmm11, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm12
+ addsd %xmm9, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm6
+ addsd %xmm15, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm5, %xmm10
+ movsd %xmm10, -64(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm13
+ movsd %xmm13, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm14, %xmm15
+ movsd %xmm15, -64(%rsp)
+ movsd -56(%rsp), %xmm4
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm14
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -64(%rsp), %xmm4
+ movsd -56(%rsp), %xmm2
+ addsd %xmm2, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -72(%rsp), %xmm12
+ mulsd %xmm12, %xmm3
+ movsd -56(%rsp), %xmm5
+ movsd %xmm3, -72(%rsp)
+ addsd %xmm6, %xmm5
+ movsd -72(%rsp), %xmm9
+ subsd %xmm12, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm2
+ subsd %xmm2, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ divsd %xmm9, %xmm14
+ mulsd %xmm14, %xmm13
+ movsd -64(%rsp), %xmm10
+ movsd %xmm13, -64(%rsp)
+ addsd %xmm10, %xmm5
+ movsd -64(%rsp), %xmm15
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm12
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm4
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -56(%rsp), %xmm3
+ mulsd %xmm3, %xmm9
+ movsd -56(%rsp), %xmm11
+ subsd %xmm9, %xmm12
+ mulsd %xmm11, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -64(%rsp), %xmm5
+ subsd %xmm5, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -64(%rsp), %xmm2
+ movq -56(%rsp), %r10
+ movsd -64(%rsp), %xmm6
+ movsd -56(%rsp), %xmm4
+ movq %r10, -40(%rsp)
+ movsd -40(%rsp), %xmm3
+ movaps %xmm3, %xmm5
+ addsd 1888+__datan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm5
+ mulsd %xmm6, %xmm2
+ mulsd %xmm4, %xmm2
+ mulsd %xmm2, %xmm7
+ mulsd %xmm8, %xmm2
+ mulsd %xmm3, %xmm8
+ addsd %xmm2, %xmm7
+ movsd 1872+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm8, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movaps %xmm5, %xmm7
+ movsd -72(%rsp), %xmm4
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm6
+ addsd %xmm4, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ subsd %xmm8, %xmm5
+ addsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ movaps %xmm11, %xmm2
+ mulsd %xmm11, %xmm2
+ mulsd %xmm11, %xmm6
+ mulsd %xmm2, %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ addsd 1864+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm11, %xmm7
+ mulsd %xmm2, %xmm3
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ movsd -64(%rsp), %xmm8
+ addsd 1856+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm8, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ addsd 1848+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm10, %xmm11
+ mulsd %xmm2, %xmm3
+ movsd %xmm11, -64(%rsp)
+ addsd 1840+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1832+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1824+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm3, %xmm13
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %r11
+ movsd -56(%rsp), %xmm15
+ movq %r11, -40(%rsp)
+ addsd %xmm15, %xmm4
+ movsd -40(%rsp), %xmm8
+ addsd %xmm5, %xmm4
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm8, %xmm4
+ movaps %xmm8, %xmm2
+ addsd (%rdi,%rsi,8), %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd (%rdi,%rsi,8), %xmm6
+ movsd %xmm6, -64(%rsp)
+ movsd -56(%rsp), %xmm7
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movq -72(%rsp), %r8
+ movq %r8, -40(%rsp)
+ movsd -56(%rsp), %xmm2
+ movaps %xmm1, %xmm3
+ shrq $56, %r8
+ addsd -32(%rsp), %xmm2
+ shlb $7, %dl
+ addsd 8(%rdi,%rsi,8), %xmm2
+ movb %al, %sil
+ andb $127, %r8b
+ shlb $7, %sil
+ movsd %xmm2, -32(%rsp)
+ orb %sil, %r8b
+ movb %r8b, -33(%rsp)
+ movsd -40(%rsp), %xmm9
+ movaps %xmm9, %xmm5
+ addsd %xmm9, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %dil
+ movb %dil, %r9b
+ shrb $7, %dil
+ subsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm6
+ xorb %dil, %al
+ andb $127, %r9b
+ shlb $7, %al
+ addsd %xmm6, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ addsd %xmm8, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %al, %r9b
+ movsd -56(%rsp), %xmm1
+ movb %r9b, -25(%rsp)
+ subsd %xmm1, %xmm9
+ movsd %xmm9, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ movsd -56(%rsp), %xmm10
+ addsd %xmm10, %xmm11
+ movsd %xmm11, -56(%rsp)
+ movq -72(%rsp), %rax
+ movsd -56(%rsp), %xmm12
+ movq %rax, -40(%rsp)
+ addsd %xmm12, %xmm0
+ movsd -40(%rsp), %xmm13
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm13
+ movsd %xmm13, -24(%rsp)
+ movb -17(%rsp), %r10b
+ andb $127, %r10b
+ orb %dl, %r10b
+ movb %r10b, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(14):
+ movsd -48(%rsp), %xmm12
+ movb %al, %r8b
+ movaps %xmm12, %xmm7
+ mulsd 2000+__datan2_la_CoutTab(%rip), %xmm7
+ shlb $7, %r8b
+ shlb $7, %dl
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm2, %xmm13
+ subsd -48(%rsp), %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movsd %xmm13, -72(%rsp)
+ movsd -72(%rsp), %xmm14
+ subsd %xmm2, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm4
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm4
+ subsd %xmm3, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ divsd %xmm12, %xmm7
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm2
+ movsd -64(%rsp), %xmm14
+ movsd %xmm2, -64(%rsp)
+ movsd -64(%rsp), %xmm8
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -56(%rsp), %xmm11
+ mulsd %xmm11, %xmm12
+ movsd -56(%rsp), %xmm13
+ subsd %xmm12, %xmm4
+ mulsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -64(%rsp), %xmm15
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -64(%rsp), %xmm7
+ movq -56(%rsp), %rsi
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm3
+ movq %rsi, -40(%rsp)
+ movsd -40(%rsp), %xmm8
+ movaps %xmm8, %xmm9
+ addsd 1888+__datan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm6, %xmm9
+ mulsd %xmm5, %xmm8
+ mulsd %xmm2, %xmm7
+ movsd -16(%rsp), %xmm2
+ mulsd %xmm2, %xmm2
+ mulsd %xmm3, %xmm7
+ movsd 1872+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm7, %xmm6
+ mulsd %xmm5, %xmm7
+ addsd 1864+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm7, %xmm6
+ mulsd %xmm2, %xmm3
+ addsd %xmm8, %xmm6
+ addsd 1856+__datan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ movaps %xmm9, %xmm5
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ addsd 1848+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm5
+ mulsd %xmm2, %xmm3
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd 2000+__datan2_la_CoutTab(%rip), %xmm5
+ subsd %xmm6, %xmm9
+ addsd 1840+__datan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ mulsd %xmm11, %xmm5
+ addsd 1832+__datan2_la_CoutTab(%rip), %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm2, %xmm3
+ subsd %xmm11, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd -64(%rsp), %xmm6
+ addsd 1824+__datan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm6, %xmm8
+ mulsd %xmm2, %xmm3
+ movsd %xmm8, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ mulsd %xmm3, %xmm13
+ subsd %xmm10, %xmm11
+ movsd %xmm11, -64(%rsp)
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %rdi
+ movsd -56(%rsp), %xmm15
+ movq %rdi, -40(%rsp)
+ addsd %xmm15, %xmm4
+ shrq $56, %rdi
+ addsd %xmm5, %xmm4
+ andb $127, %dil
+ orb %r8b, %dil
+ movb %dil, -33(%rsp)
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm1, %xmm4
+ movsd -40(%rsp), %xmm7
+ movaps %xmm7, %xmm2
+ addsd %xmm7, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %r9b
+ movb %r9b, %r10b
+ shrb $7, %r9b
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ xorb %r9b, %al
+ andb $127, %r10b
+ shlb $7, %al
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd %xmm6, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %al, %r10b
+ movsd -56(%rsp), %xmm1
+ movb %r10b, -25(%rsp)
+ subsd %xmm1, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm1
+ addsd %xmm1, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movq -72(%rsp), %rax
+ movsd -56(%rsp), %xmm3
+ movq %rax, -40(%rsp)
+ addsd %xmm3, %xmm0
+ movsd -40(%rsp), %xmm4
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm4
+ movsd %xmm4, -24(%rsp)
+ movb -17(%rsp), %r11b
+ andb $127, %r11b
+ orb %dl, %r11b
+ movb %r11b, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(15):
+ cmpl $74, %r8d
+ jge L(32)
+ movb %dil, -41(%rsp)
+ divsd -48(%rsp), %xmm1
+ movsd 1928+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ subsd %xmm1, %xmm0
+ addsd 1920+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(16):
+ testb %al, %al
+ jne L(22)
+ movb %dil, -41(%rsp)
+ movb %sil, -33(%rsp)
+ movsd -48(%rsp), %xmm2
+ divsd -40(%rsp), %xmm2
+ movsd %xmm2, -24(%rsp)
+ movzwl -18(%rsp), %eax
+ testl $32752, %eax
+ je L(17)
+ movsd 1888+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd %xmm2, %xmm0
+ movsd %xmm0, -72(%rsp)
+ movsd -72(%rsp), %xmm1
+ mulsd %xmm1, %xmm2
+ movsd %xmm2, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(17):
+ mulsd %xmm2, %xmm2
+ shlb $7, %dl
+ movsd %xmm2, -72(%rsp)
+ movsd -72(%rsp), %xmm0
+ addsd -24(%rsp), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(18):
+ testl %r9d, %r9d
+ jne L(32)
+ testl $1048575, -44(%rsp)
+ jne L(32)
+ jmp L(33)
+
+L(19):
+ jne L(32)
+
+L(20):
+ testb %al, %al
+ jne L(22)
+
+L(21):
+ shlb $7, %dl
+ movq 1976+__datan2_la_CoutTab(%rip), %rax
+ movq %rax, -24(%rsp)
+ shrq $56, %rax
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(22):
+ movsd 1936+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1944+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+
+L(23):
+ xorl %eax, %eax
+ ret
+
+L(24):
+ movsd 1984+__datan2_la_CoutTab(%rip), %xmm3
+ movl $-1022, %r9d
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+ jmp L(13)
+
+L(25):
+ cmpl $2047, %r9d
+ je L(31)
+
+L(26):
+ testl $1048575, -36(%rsp)
+ jne L(27)
+ cmpl $0, -40(%rsp)
+ je L(28)
+
+L(27):
+ addsd %xmm1, %xmm2
+ movsd %xmm2, (%rcx)
+ jmp L(23)
+
+L(28):
+ cmpl $2047, %r9d
+ je L(29)
+ testb %al, %al
+ je L(21)
+ jmp L(22)
+
+L(29):
+ testb %al, %al
+ jne L(30)
+ movsd 1904+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1912+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(30):
+ movsd 1952+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1960+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(31):
+ testl $1048575, -44(%rsp)
+ jne L(27)
+ cmpl $0, -48(%rsp)
+ jne L(27)
+ cmpl $2047, %r8d
+ je L(26)
+
+L(32):
+ movsd 1920+__datan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %dl
+ addsd 1928+__datan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %dl, %al
+ movb %al, -17(%rsp)
+ movq -24(%rsp), %rdx
+ movq %rdx, (%rcx)
+ jmp L(23)
+
+L(33):
+ cmpl $0, -48(%rsp)
+ jne L(32)
+ jmp L(20)
+
+ cfi_endproc
+
+ .type __svml_datan2_cout_rare_internal,@function
+ .size __svml_datan2_cout_rare_internal,.-__svml_datan2_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_datan2_data_internal:
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1074340347
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .long 1413754136
+ .long 1073291771
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .long 17919630
+ .long 3202334474
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .long 350522012
+ .long 1058555694
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .long 934004643
+ .long 3203726773
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .long 912675337
+ .long 1059908874
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .long 2476035107
+ .long 3209881212
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .long 2927800243
+ .long 1064262173
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .long 1636715437
+ .long 3213013740
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .long 1712395941
+ .long 1066487628
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .long 2961307292
+ .long 3214564995
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .long 213298511
+ .long 1067542936
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .long 3848520124
+ .long 3215257506
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .long 3159386171
+ .long 1067969551
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .long 3936393556
+ .long 3215643233
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .long 3177262543
+ .long 1068373833
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .long 9713120
+ .long 3216052356
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .long 1227445841
+ .long 1068740906
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .long 163240596
+ .long 3216459216
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .long 133682613
+ .long 1069314503
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .long 2448315847
+ .long 3217180964
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .long 2576870964
+ .long 1070176665
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .long 1431655365
+ .long 3218429269
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 2150629376
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .long 4258267136
+ .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 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 4293918720
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 2145386496
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .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 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 133169152
+ .long 0
+ .long 4294967295
+ .long 0
+ .long 4294967295
+ .long 0
+ .long 4294967295
+ .long 0
+ .long 4294967295
+ .long 0
+ .long 4294967295
+ .long 0
+ .long 4294967295
+ .long 0
+ .long 4294967295
+ .long 0
+ .long 4294967295
+ .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
+ .type __svml_datan2_data_internal,@object
+ .size __svml_datan2_data_internal,2304
+ .align 32
+
+__datan2_la_CoutTab:
+ .long 3892314112
+ .long 1069799150
+ .long 2332892550
+ .long 1039715405
+ .long 1342177280
+ .long 1070305495
+ .long 270726690
+ .long 1041535749
+ .long 939524096
+ .long 1070817911
+ .long 2253973841
+ .long 3188654726
+ .long 3221225472
+ .long 1071277294
+ .long 3853927037
+ .long 1043226911
+ .long 2818572288
+ .long 1071767563
+ .long 2677759107
+ .long 1044314101
+ .long 3355443200
+ .long 1072103591
+ .long 1636578514
+ .long 3191094734
+ .long 1476395008
+ .long 1072475260
+ .long 1864703685
+ .long 3188646936
+ .long 805306368
+ .long 1072747407
+ .long 192551812
+ .long 3192726267
+ .long 2013265920
+ .long 1072892781
+ .long 2240369452
+ .long 1043768538
+ .long 0
+ .long 1072999953
+ .long 3665168337
+ .long 3192705970
+ .long 402653184
+ .long 1073084787
+ .long 1227953434
+ .long 3192313277
+ .long 2013265920
+ .long 1073142981
+ .long 3853283127
+ .long 1045277487
+ .long 805306368
+ .long 1073187261
+ .long 1676192264
+ .long 3192868861
+ .long 134217728
+ .long 1073217000
+ .long 4290763938
+ .long 1042034855
+ .long 671088640
+ .long 1073239386
+ .long 994303084
+ .long 3189643768
+ .long 402653184
+ .long 1073254338
+ .long 1878067156
+ .long 1042652475
+ .long 1610612736
+ .long 1073265562
+ .long 670314820
+ .long 1045138554
+ .long 3221225472
+ .long 1073273048
+ .long 691126919
+ .long 3189987794
+ .long 3489660928
+ .long 1073278664
+ .long 1618990832
+ .long 3188194509
+ .long 1207959552
+ .long 1073282409
+ .long 2198872939
+ .long 1044806069
+ .long 3489660928
+ .long 1073285217
+ .long 2633982383
+ .long 1042307894
+ .long 939524096
+ .long 1073287090
+ .long 1059367786
+ .long 3189114230
+ .long 2281701376
+ .long 1073288494
+ .long 3158525533
+ .long 1044484961
+ .long 3221225472
+ .long 1073289430
+ .long 286581777
+ .long 1044893263
+ .long 4026531840
+ .long 1073290132
+ .long 2000245215
+ .long 3191647611
+ .long 134217728
+ .long 1073290601
+ .long 4205071590
+ .long 1045035927
+ .long 536870912
+ .long 1073290952
+ .long 2334392229
+ .long 1043447393
+ .long 805306368
+ .long 1073291186
+ .long 2281458177
+ .long 3188885569
+ .long 3087007744
+ .long 1073291361
+ .long 691611507
+ .long 1044733832
+ .long 3221225472
+ .long 1073291478
+ .long 1816229550
+ .long 1044363390
+ .long 2281701376
+ .long 1073291566
+ .long 1993843750
+ .long 3189837440
+ .long 134217728
+ .long 1073291625
+ .long 3654754496
+ .long 1044970837
+ .long 4026531840
+ .long 1073291668
+ .long 3224300229
+ .long 3191935390
+ .long 805306368
+ .long 1073291698
+ .long 2988777976
+ .long 3188950659
+ .long 536870912
+ .long 1073291720
+ .long 1030371341
+ .long 1043402665
+ .long 3221225472
+ .long 1073291734
+ .long 1524463765
+ .long 1044361356
+ .long 3087007744
+ .long 1073291745
+ .long 2754295320
+ .long 1044731036
+ .long 134217728
+ .long 1073291753
+ .long 3099629057
+ .long 1044970710
+ .long 2281701376
+ .long 1073291758
+ .long 962914160
+ .long 3189838838
+ .long 805306368
+ .long 1073291762
+ .long 3543908206
+ .long 3188950786
+ .long 4026531840
+ .long 1073291764
+ .long 1849909620
+ .long 3191935434
+ .long 3221225472
+ .long 1073291766
+ .long 1641333636
+ .long 1044361352
+ .long 536870912
+ .long 1073291768
+ .long 1373968792
+ .long 1043402654
+ .long 134217728
+ .long 1073291769
+ .long 2033191599
+ .long 1044970710
+ .long 3087007744
+ .long 1073291769
+ .long 4117947437
+ .long 1044731035
+ .long 805306368
+ .long 1073291770
+ .long 315378368
+ .long 3188950787
+ .long 2281701376
+ .long 1073291770
+ .long 2428571750
+ .long 3189838838
+ .long 3221225472
+ .long 1073291770
+ .long 1608007466
+ .long 1044361352
+ .long 4026531840
+ .long 1073291770
+ .long 1895711420
+ .long 3191935434
+ .long 134217728
+ .long 1073291771
+ .long 2031108713
+ .long 1044970710
+ .long 536870912
+ .long 1073291771
+ .long 1362518342
+ .long 1043402654
+ .long 805306368
+ .long 1073291771
+ .long 317461253
+ .long 3188950787
+ .long 939524096
+ .long 1073291771
+ .long 4117231784
+ .long 1044731035
+ .long 1073741824
+ .long 1073291771
+ .long 1607942376
+ .long 1044361352
+ .long 1207959552
+ .long 1073291771
+ .long 2428929577
+ .long 3189838838
+ .long 1207959552
+ .long 1073291771
+ .long 2031104645
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1895722602
+ .long 3191935434
+ .long 1342177280
+ .long 1073291771
+ .long 317465322
+ .long 3188950787
+ .long 1342177280
+ .long 1073291771
+ .long 1362515546
+ .long 1043402654
+ .long 1342177280
+ .long 1073291771
+ .long 1607942248
+ .long 1044361352
+ .long 1342177280
+ .long 1073291771
+ .long 4117231610
+ .long 1044731035
+ .long 1342177280
+ .long 1073291771
+ .long 2031104637
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1540251232
+ .long 1045150466
+ .long 1342177280
+ .long 1073291771
+ .long 2644671394
+ .long 1045270303
+ .long 1342177280
+ .long 1073291771
+ .long 2399244691
+ .long 1045360181
+ .long 1342177280
+ .long 1073291771
+ .long 803971124
+ .long 1045420100
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192879152
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192849193
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192826724
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192811744
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192800509
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192793019
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192787402
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192783657
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192780848
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192778976
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192777572
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192776635
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192775933
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192775465
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192775114
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774880
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774704
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774587
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774500
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774441
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774397
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774368
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774346
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774331
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774320
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774313
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774308
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774304
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774301
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774299
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774298
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774297
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1466225875
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1343512524
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1251477510
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1190120835
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1144103328
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1113424990
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1090416237
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1075077068
+ .long 3192774295
+ .long 1431655765
+ .long 3218429269
+ .long 2576978363
+ .long 1070176665
+ .long 2453154343
+ .long 3217180964
+ .long 4189149139
+ .long 1069314502
+ .long 1775019125
+ .long 3216459198
+ .long 273199057
+ .long 1068739452
+ .long 874748308
+ .long 3215993277
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1073741824
+ .long 1413754136
+ .long 1072243195
+ .long 856972295
+ .long 1015129638
+ .long 1413754136
+ .long 1073291771
+ .long 856972295
+ .long 1016178214
+ .long 1413754136
+ .long 1074340347
+ .long 856972295
+ .long 1017226790
+ .long 2134057426
+ .long 1073928572
+ .long 1285458442
+ .long 1016756537
+ .long 0
+ .long 3220176896
+ .long 0
+ .long 0
+ .long 0
+ .long 2144337920
+ .long 0
+ .long 1048576
+ .long 33554432
+ .long 1101004800
+ .type __datan2_la_CoutTab,@object
+ .size __datan2_la_CoutTab,2008
+ .align 8
+
+.FLT_31:
+ .long 0xffffffff,0xffffffff
+ .type .FLT_31,@object
+ .size .FLT_31,8
new file mode 100644
@@ -0,0 +1,20 @@
+/* AVX2 version of vectorized atan2f.
+ 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 _ZGVeN16vv_atan2f _ZGVeN16vv_atan2f_avx2_wrapper
+#include "../svml_s_atan2f16_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized atan2f, 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 _ZGVeN16vv_atan2f
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN16vv_atan2f, __GI__ZGVeN16vv_atan2f,
+ __redirect__ZGVeN16vv_atan2f)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,1998 @@
+/* Function atan2f 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:
+ * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x)
+ * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x)
+ * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x)
+ * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x)
+ * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x
+ * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16.
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.exex512,"ax",@progbits
+ENTRY(_ZGVeN16vv_atan2f_skx)
+ 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
+ xorl %edx, %edx
+
+/*
+ * #define NO_VECTOR_ZERO_ATAN2_ARGS
+ * Declarations
+ * Variables
+ * Constants
+ * The end of declarations
+ * Implementation
+ * Arguments signs
+ */
+ vmovups 256+__svml_satan2_data_internal(%rip), %zmm6
+ vmovups 64+__svml_satan2_data_internal(%rip), %zmm3
+
+/* Testing on working interval. */
+ vmovups 1024+__svml_satan2_data_internal(%rip), %zmm9
+ vmovups 1088+__svml_satan2_data_internal(%rip), %zmm14
+
+/*
+ * 1) If y<x then a= y, b=x, PIO2=0
+ * 2) If y>x then a=-x, b=y, PIO2=Pi/2
+ */
+ vmovups 320+__svml_satan2_data_internal(%rip), %zmm4
+ vpternlogd $255, %zmm13, %zmm13, %zmm13
+ vmovaps %zmm1, %zmm8
+ vandps %zmm6, %zmm8, %zmm2
+ vandps %zmm6, %zmm0, %zmm1
+ vorps 192+__svml_satan2_data_internal(%rip), %zmm2, %zmm5
+ vpsubd %zmm9, %zmm2, %zmm10
+ vpsubd %zmm9, %zmm1, %zmm12
+ vxorps %zmm2, %zmm8, %zmm7
+ vxorps %zmm1, %zmm0, %zmm6
+ vcmpps $17, {sae}, %zmm2, %zmm1, %k1
+ vpcmpgtd %zmm10, %zmm14, %k2
+ vpcmpgtd %zmm12, %zmm14, %k3
+ vmovups 576+__svml_satan2_data_internal(%rip), %zmm14
+ vblendmps %zmm1, %zmm5, %zmm11{%k1}
+ vblendmps %zmm2, %zmm1, %zmm5{%k1}
+ vxorps %zmm4, %zmm4, %zmm4{%k1}
+
+/*
+ * Division a/b.
+ * Enabled when FMA is available and
+ * performance is better with NR iteration
+ */
+ vrcp14ps %zmm5, %zmm15
+ vfnmadd231ps {rn-sae}, %zmm5, %zmm15, %zmm3
+ vfmadd213ps {rn-sae}, %zmm15, %zmm3, %zmm15
+ vmulps {rn-sae}, %zmm15, %zmm11, %zmm3
+ vfnmadd231ps {rn-sae}, %zmm5, %zmm3, %zmm11
+ vfmadd213ps {rn-sae}, %zmm3, %zmm11, %zmm15
+ vmovups 448+__svml_satan2_data_internal(%rip), %zmm11
+ vpternlogd $255, %zmm3, %zmm3, %zmm3
+
+/* Polynomial. */
+ vmulps {rn-sae}, %zmm15, %zmm15, %zmm9
+ vpandnd %zmm10, %zmm10, %zmm13{%k2}
+ vmulps {rn-sae}, %zmm9, %zmm9, %zmm10
+ vfmadd231ps {rn-sae}, %zmm10, %zmm11, %zmm14
+ vmovups 640+__svml_satan2_data_internal(%rip), %zmm11
+ vpandnd %zmm12, %zmm12, %zmm3{%k3}
+ vpord %zmm3, %zmm13, %zmm3
+ vmovups 704+__svml_satan2_data_internal(%rip), %zmm13
+ vmovups 512+__svml_satan2_data_internal(%rip), %zmm12
+ vptestmd %zmm3, %zmm3, %k0
+ vfmadd213ps {rn-sae}, %zmm13, %zmm10, %zmm14
+ vfmadd231ps {rn-sae}, %zmm10, %zmm12, %zmm11
+ vmovups 768+__svml_satan2_data_internal(%rip), %zmm12
+ vmovups 832+__svml_satan2_data_internal(%rip), %zmm13
+
+/* Special branch for fast (vector) processing of zero arguments */
+ kortestw %k0, %k0
+ vfmadd213ps {rn-sae}, %zmm12, %zmm10, %zmm11
+ vmovups 896+__svml_satan2_data_internal(%rip), %zmm12
+ vfmadd213ps {rn-sae}, %zmm13, %zmm10, %zmm14
+ vmovups 960+__svml_satan2_data_internal(%rip), %zmm13
+ vfmadd213ps {rn-sae}, %zmm12, %zmm10, %zmm11
+ vfmadd213ps {rn-sae}, %zmm13, %zmm10, %zmm14
+ vfmadd213ps {rn-sae}, %zmm14, %zmm9, %zmm11
+
+/* Reconstruction. */
+ vfmadd213ps {rn-sae}, %zmm4, %zmm15, %zmm11
+
+/* if x<0, sPI = Pi, else sPI =0 */
+ vmovups __svml_satan2_data_internal(%rip), %zmm15
+ vorps %zmm7, %zmm11, %zmm9
+ vcmpps $18, {sae}, %zmm15, %zmm8, %k1
+ vmovups 384+__svml_satan2_data_internal(%rip), %zmm11
+ vaddps {rn-sae}, %zmm11, %zmm9, %zmm9{%k1}
+ vorps %zmm6, %zmm9, %zmm10
+ jne L(7)
+
+L(1):
+/*
+ * Special branch for fast (vector) processing of zero arguments
+ * The end of implementation
+ */
+ testl %edx, %edx
+ jne L(3)
+
+L(2):
+ vmovaps %zmm10, %zmm0
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+
+L(3):
+ vmovups %zmm0, 64(%rsp)
+ vmovups %zmm8, 128(%rsp)
+ vmovups %zmm10, 192(%rsp)
+ je L(2)
+ xorl %eax, %eax
+ vzeroupper
+ kmovw %k4, 24(%rsp)
+ kmovw %k5, 16(%rsp)
+ kmovw %k6, 8(%rsp)
+ kmovw %k7, (%rsp)
+ movq %rsi, 40(%rsp)
+ movq %rdi, 32(%rsp)
+ movq %r12, 56(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 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, 0x30, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+
+L(4):
+ btl %r12d, %r13d
+ jc L(6)
+
+L(5):
+ incl %r12d
+ cmpl $16, %r12d
+ jl L(4)
+ 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 192(%rsp), %zmm10
+ 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(2)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x08, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+
+L(6):
+ lea 64(%rsp,%r12,4), %rdi
+ lea 128(%rsp,%r12,4), %rsi
+ lea 192(%rsp,%r12,4), %rdx
+ call __svml_satan2_cout_rare_internal
+ jmp L(5)
+ cfi_restore(4)
+ cfi_restore(5)
+ cfi_restore(12)
+ cfi_restore(13)
+ cfi_restore(122)
+ cfi_restore(123)
+ cfi_restore(124)
+ cfi_restore(125)
+
+L(7):
+/* Check if at least on of Y or Y is zero: iAXAYZERO */
+ vmovups __svml_satan2_data_internal(%rip), %zmm9
+
+/* Check if both X & Y are not NaNs: iXYnotNAN */
+ vcmpps $3, {sae}, %zmm8, %zmm8, %k1
+ vcmpps $3, {sae}, %zmm0, %zmm0, %k2
+ vpcmpd $4, %zmm9, %zmm2, %k3
+ vpternlogd $255, %zmm12, %zmm12, %zmm12
+ vpternlogd $255, %zmm13, %zmm13, %zmm13
+ vpternlogd $255, %zmm14, %zmm14, %zmm14
+ vpandnd %zmm8, %zmm8, %zmm12{%k1}
+ vpcmpd $4, %zmm9, %zmm1, %k1
+ vpandnd %zmm0, %zmm0, %zmm13{%k2}
+
+/*
+ * Path for zero arguments (at least one of both)
+ * Check if both args are zeros (den. is zero)
+ */
+ vcmpps $4, {sae}, %zmm9, %zmm5, %k2
+ vandps %zmm13, %zmm12, %zmm12
+ vpandnd %zmm2, %zmm2, %zmm14{%k3}
+ vpternlogd $255, %zmm2, %zmm2, %zmm2
+
+/* Res = sign(Y)*(X<0)?(PIO2+PI):PIO2 */
+ vpcmpgtd %zmm8, %zmm9, %k3
+ vpandnd %zmm1, %zmm1, %zmm2{%k1}
+ vpord %zmm2, %zmm14, %zmm15
+ vpternlogd $255, %zmm2, %zmm2, %zmm2
+ vpandnd %zmm5, %zmm5, %zmm2{%k2}
+
+/* Set sPIO2 to zero if den. is zero */
+ vpandnd %zmm4, %zmm2, %zmm4
+ vpandd %zmm2, %zmm9, %zmm5
+ vpord %zmm5, %zmm4, %zmm2
+ vorps %zmm7, %zmm2, %zmm7
+ vaddps {rn-sae}, %zmm11, %zmm7, %zmm7{%k3}
+ vorps %zmm6, %zmm7, %zmm6
+
+/* Check if at least on of Y or Y is zero and not NaN: iAXAYZEROnotNAN */
+ vpandd %zmm12, %zmm15, %zmm1
+
+/* Exclude from previous callout mask zero (and not NaN) arguments */
+ vpandnd %zmm3, %zmm1, %zmm3
+
+/* Go to callout */
+ vptestmd %zmm3, %zmm3, %k0
+ kmovw %k0, %edx
+
+/* Merge results from main and spec path */
+ vpandnd %zmm10, %zmm1, %zmm10
+ vpandd %zmm1, %zmm6, %zmm11
+ vpord %zmm11, %zmm10, %zmm10
+ jmp L(1)
+
+END(_ZGVeN16vv_atan2f_skx)
+
+ .align 16,0x90
+
+__svml_satan2_cout_rare_internal:
+
+ cfi_startproc
+
+ pxor %xmm0, %xmm0
+ movss (%rdi), %xmm3
+ pxor %xmm1, %xmm1
+ movss (%rsi), %xmm2
+ movq %rdx, %r8
+ cvtss2sd %xmm3, %xmm0
+ cvtss2sd %xmm2, %xmm1
+ movss %xmm3, -32(%rsp)
+ movss %xmm2, -28(%rsp)
+ movsd %xmm0, -48(%rsp)
+ movsd %xmm1, -40(%rsp)
+ movzwl -30(%rsp), %edi
+ andl $32640, %edi
+ movb -25(%rsp), %dl
+ movzwl -42(%rsp), %eax
+ andb $-128, %dl
+ movzwl -34(%rsp), %r9d
+ andl $32752, %eax
+ andl $32752, %r9d
+ shrl $7, %edi
+ movb -29(%rsp), %cl
+ shrb $7, %cl
+ shrb $7, %dl
+ shrl $4, %eax
+ shrl $4, %r9d
+ cmpl $255, %edi
+ je L(25)
+ movzwl -26(%rsp), %esi
+ andl $32640, %esi
+ cmpl $32640, %esi
+ je L(25)
+ testl %eax, %eax
+ jne L(8)
+ testl $8388607, -32(%rsp)
+ je L(20)
+
+L(8):
+ testl %r9d, %r9d
+ jne L(9)
+ testl $8388607, -28(%rsp)
+ je L(19)
+
+L(9):
+ negl %r9d
+ movsd %xmm0, -48(%rsp)
+ addl %eax, %r9d
+ movsd %xmm1, -40(%rsp)
+ movb -41(%rsp), %dil
+ movb -33(%rsp), %sil
+ andb $127, %dil
+ andb $127, %sil
+ cmpl $-54, %r9d
+ jle L(17)
+ cmpl $54, %r9d
+ jge L(15)
+ movb %sil, -33(%rsp)
+ movb %dil, -41(%rsp)
+ testb %dl, %dl
+ jne L(10)
+ movsd 1976+__satan2_la_CoutTab(%rip), %xmm1
+ movaps %xmm1, %xmm0
+ jmp L(11)
+
+L(10):
+ movsd 1936+__satan2_la_CoutTab(%rip), %xmm1
+ movsd 1944+__satan2_la_CoutTab(%rip), %xmm0
+
+L(11):
+ movsd -48(%rsp), %xmm4
+ movsd -40(%rsp), %xmm2
+ movaps %xmm4, %xmm5
+ divsd %xmm2, %xmm5
+ movzwl -42(%rsp), %esi
+ movsd %xmm5, -16(%rsp)
+ testl %eax, %eax
+ jle L(24)
+ cmpl $2046, %eax
+ jge L(12)
+ andl $-32753, %esi
+ addl $-1023, %eax
+ movsd %xmm4, -48(%rsp)
+ addl $16368, %esi
+ movw %si, -42(%rsp)
+ jmp L(13)
+
+L(12):
+ movsd 1992+__satan2_la_CoutTab(%rip), %xmm3
+ movl $1022, %eax
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+
+L(13):
+ negl %eax
+ movq 1888+__satan2_la_CoutTab(%rip), %rsi
+ addl $1023, %eax
+ movq %rsi, -40(%rsp)
+ andl $2047, %eax
+ shrq $48, %rsi
+ shll $4, %eax
+ andl $-32753, %esi
+ orl %eax, %esi
+ movw %si, -34(%rsp)
+ movsd -40(%rsp), %xmm3
+ mulsd %xmm3, %xmm2
+ comisd 1880+__satan2_la_CoutTab(%rip), %xmm5
+ jb L(14)
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm12
+ movaps %xmm2, %xmm3
+ mulsd %xmm2, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd %xmm5, -24(%rsp)
+ subsd %xmm2, %xmm13
+ movsd %xmm13, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm14
+ movl -20(%rsp), %edi
+ movl %edi, %r9d
+ andl $-524288, %edi
+ andl $-1048576, %r9d
+ addl $262144, %edi
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -72(%rsp)
+ andl $1048575, %edi
+ movsd -72(%rsp), %xmm4
+ orl %edi, %r9d
+ movl $0, -24(%rsp)
+ subsd %xmm4, %xmm3
+ movl %r9d, -20(%rsp)
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -24(%rsp), %xmm11
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm5
+ mulsd %xmm11, %xmm9
+ movsd 1968+__satan2_la_CoutTab(%rip), %xmm8
+ mulsd %xmm8, %xmm5
+ mulsd %xmm8, %xmm9
+ movaps %xmm5, %xmm7
+ movzwl -10(%rsp), %esi
+ addsd %xmm9, %xmm7
+ movsd %xmm7, -72(%rsp)
+ andl $32752, %esi
+ movsd -72(%rsp), %xmm6
+ shrl $4, %esi
+ subsd %xmm6, %xmm5
+ movl -12(%rsp), %eax
+ addsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ andl $1048575, %eax
+ movsd -48(%rsp), %xmm9
+ movsd -72(%rsp), %xmm3
+ movaps %xmm9, %xmm12
+ movsd -64(%rsp), %xmm10
+ movaps %xmm9, %xmm14
+ movaps %xmm9, %xmm6
+ addsd %xmm3, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ shll $20, %esi
+ subsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ orl %eax, %esi
+ movsd -72(%rsp), %xmm4
+ addl $-1069547520, %esi
+ movsd -64(%rsp), %xmm15
+ movl $113, %eax
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm15, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ sarl $19, %esi
+ addsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ cmpl $113, %esi
+ movsd -56(%rsp), %xmm7
+ cmovl %esi, %eax
+ subsd %xmm7, %xmm6
+ movsd %xmm6, -56(%rsp)
+ addl %eax, %eax
+ movsd -64(%rsp), %xmm12
+ lea __satan2_la_CoutTab(%rip), %rsi
+ movsd -56(%rsp), %xmm5
+ movslq %eax, %rax
+ addsd %xmm5, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm7, %xmm13
+ movsd -56(%rsp), %xmm8
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm10, %xmm8
+ movsd -72(%rsp), %xmm4
+ movaps %xmm9, %xmm10
+ mulsd 2000+__satan2_la_CoutTab(%rip), %xmm10
+ subsd %xmm7, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd -64(%rsp), %xmm14
+ subsd %xmm14, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm15
+ subsd %xmm15, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm4
+ movsd %xmm10, -72(%rsp)
+ movaps %xmm2, %xmm10
+ addsd %xmm4, %xmm8
+ movsd -72(%rsp), %xmm4
+ subsd -48(%rsp), %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm3
+ subsd %xmm3, %xmm6
+ movaps %xmm2, %xmm3
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ subsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm12
+ mulsd %xmm11, %xmm9
+ movaps %xmm12, %xmm11
+ addsd %xmm9, %xmm11
+ movsd %xmm11, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm12
+ addsd %xmm9, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm6
+ addsd %xmm15, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm5, %xmm10
+ movsd %xmm10, -64(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm13
+ movsd %xmm13, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm14, %xmm15
+ movsd %xmm15, -64(%rsp)
+ movsd -56(%rsp), %xmm4
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm14
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -64(%rsp), %xmm4
+ movsd -56(%rsp), %xmm2
+ addsd %xmm2, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -72(%rsp), %xmm12
+ mulsd %xmm12, %xmm3
+ movsd -56(%rsp), %xmm5
+ movsd %xmm3, -72(%rsp)
+ addsd %xmm6, %xmm5
+ movsd -72(%rsp), %xmm9
+ subsd %xmm12, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm2
+ subsd %xmm2, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ divsd %xmm9, %xmm14
+ mulsd %xmm14, %xmm13
+ movsd -64(%rsp), %xmm10
+ movsd %xmm13, -64(%rsp)
+ addsd %xmm10, %xmm5
+ movsd -64(%rsp), %xmm15
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm12
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm4
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -56(%rsp), %xmm3
+ mulsd %xmm3, %xmm9
+ movsd -56(%rsp), %xmm11
+ subsd %xmm9, %xmm12
+ mulsd %xmm11, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -64(%rsp), %xmm5
+ subsd %xmm5, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -64(%rsp), %xmm2
+ movq -56(%rsp), %r10
+ movsd -64(%rsp), %xmm6
+ movsd -56(%rsp), %xmm4
+ movq %r10, -40(%rsp)
+ movsd -40(%rsp), %xmm3
+ movaps %xmm3, %xmm5
+ addsd 1888+__satan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm5
+ mulsd %xmm6, %xmm2
+ mulsd %xmm4, %xmm2
+ mulsd %xmm2, %xmm7
+ mulsd %xmm8, %xmm2
+ mulsd %xmm3, %xmm8
+ addsd %xmm2, %xmm7
+ movsd 1872+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm8, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movaps %xmm5, %xmm7
+ movsd -72(%rsp), %xmm4
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm6
+ addsd %xmm4, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ subsd %xmm8, %xmm5
+ addsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ movaps %xmm11, %xmm2
+ mulsd %xmm11, %xmm2
+ mulsd %xmm11, %xmm6
+ mulsd %xmm2, %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ addsd 1864+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm11, %xmm7
+ mulsd %xmm2, %xmm3
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ movsd -64(%rsp), %xmm8
+ addsd 1856+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm8, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ addsd 1848+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm10, %xmm11
+ mulsd %xmm2, %xmm3
+ movsd %xmm11, -64(%rsp)
+ addsd 1840+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1832+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1824+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm3, %xmm13
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %r11
+ movsd -56(%rsp), %xmm15
+ movq %r11, -40(%rsp)
+ addsd %xmm15, %xmm4
+ movsd -40(%rsp), %xmm8
+ addsd %xmm5, %xmm4
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm8, %xmm4
+ movaps %xmm8, %xmm2
+ addsd (%rsi,%rax,8), %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd (%rsi,%rax,8), %xmm6
+ movsd %xmm6, -64(%rsp)
+ movsd -56(%rsp), %xmm7
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movq -72(%rsp), %rdi
+ movq %rdi, -40(%rsp)
+ movsd -56(%rsp), %xmm2
+ movaps %xmm1, %xmm3
+ shrq $56, %rdi
+ addsd -32(%rsp), %xmm2
+ shlb $7, %cl
+ addsd 8(%rsi,%rax,8), %xmm2
+ movb %dl, %al
+ andb $127, %dil
+ shlb $7, %al
+ movsd %xmm2, -32(%rsp)
+ orb %al, %dil
+ movb %dil, -33(%rsp)
+ movsd -40(%rsp), %xmm9
+ movaps %xmm9, %xmm5
+ addsd %xmm9, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %sil
+ movb %sil, %r9b
+ shrb $7, %sil
+ subsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm6
+ xorb %sil, %dl
+ andb $127, %r9b
+ shlb $7, %dl
+ addsd %xmm6, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ addsd %xmm8, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %dl, %r9b
+ movsd -56(%rsp), %xmm1
+ movb %r9b, -25(%rsp)
+ subsd %xmm1, %xmm9
+ movsd %xmm9, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ movsd -56(%rsp), %xmm10
+ addsd %xmm10, %xmm11
+ movsd %xmm11, -56(%rsp)
+ movq -72(%rsp), %rdx
+ movsd -56(%rsp), %xmm12
+ movq %rdx, -40(%rsp)
+ addsd %xmm12, %xmm0
+ movsd -40(%rsp), %xmm13
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm13
+ movsd %xmm13, -24(%rsp)
+ movb -17(%rsp), %r10b
+ andb $127, %r10b
+ orb %cl, %r10b
+ movb %r10b, -17(%rsp)
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ movss %xmm0, (%r8)
+ jmp L(23)
+
+L(14):
+ movsd -48(%rsp), %xmm12
+ movb %dl, %dil
+ movaps %xmm12, %xmm7
+ mulsd 2000+__satan2_la_CoutTab(%rip), %xmm7
+ shlb $7, %dil
+ shlb $7, %cl
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm2, %xmm13
+ subsd -48(%rsp), %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movsd %xmm13, -72(%rsp)
+ movsd -72(%rsp), %xmm14
+ subsd %xmm2, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm4
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm4
+ subsd %xmm3, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ divsd %xmm12, %xmm7
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm2
+ movsd -64(%rsp), %xmm14
+ movsd %xmm2, -64(%rsp)
+ movsd -64(%rsp), %xmm8
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -56(%rsp), %xmm11
+ mulsd %xmm11, %xmm12
+ movsd -56(%rsp), %xmm13
+ subsd %xmm12, %xmm4
+ mulsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -64(%rsp), %xmm15
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -64(%rsp), %xmm7
+ movq -56(%rsp), %rax
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm3
+ movq %rax, -40(%rsp)
+ movsd -40(%rsp), %xmm8
+ movaps %xmm8, %xmm9
+ addsd 1888+__satan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm6, %xmm9
+ mulsd %xmm5, %xmm8
+ mulsd %xmm2, %xmm7
+ movsd -16(%rsp), %xmm2
+ mulsd %xmm2, %xmm2
+ mulsd %xmm3, %xmm7
+ movsd 1872+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm7, %xmm6
+ mulsd %xmm5, %xmm7
+ addsd 1864+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm7, %xmm6
+ mulsd %xmm2, %xmm3
+ addsd %xmm8, %xmm6
+ addsd 1856+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ movaps %xmm9, %xmm5
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ addsd 1848+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm5
+ mulsd %xmm2, %xmm3
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm5
+ subsd %xmm6, %xmm9
+ addsd 1840+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ mulsd %xmm11, %xmm5
+ addsd 1832+__satan2_la_CoutTab(%rip), %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm2, %xmm3
+ subsd %xmm11, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd -64(%rsp), %xmm6
+ addsd 1824+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm6, %xmm8
+ mulsd %xmm2, %xmm3
+ movsd %xmm8, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ mulsd %xmm3, %xmm13
+ subsd %xmm10, %xmm11
+ movsd %xmm11, -64(%rsp)
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %rsi
+ movsd -56(%rsp), %xmm15
+ movq %rsi, -40(%rsp)
+ addsd %xmm15, %xmm4
+ shrq $56, %rsi
+ addsd %xmm5, %xmm4
+ andb $127, %sil
+ orb %dil, %sil
+ movb %sil, -33(%rsp)
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm1, %xmm4
+ movsd -40(%rsp), %xmm7
+ movaps %xmm7, %xmm2
+ addsd %xmm7, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %r9b
+ movb %r9b, %r10b
+ shrb $7, %r9b
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ xorb %r9b, %dl
+ andb $127, %r10b
+ shlb $7, %dl
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd %xmm6, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %dl, %r10b
+ movsd -56(%rsp), %xmm1
+ movb %r10b, -25(%rsp)
+ subsd %xmm1, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm1
+ addsd %xmm1, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movq -72(%rsp), %rdx
+ movsd -56(%rsp), %xmm3
+ movq %rdx, -40(%rsp)
+ addsd %xmm3, %xmm0
+ movsd -40(%rsp), %xmm4
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm4
+ movsd %xmm4, -24(%rsp)
+ movb -17(%rsp), %r11b
+ andb $127, %r11b
+ orb %cl, %r11b
+ movb %r11b, -17(%rsp)
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ movss %xmm0, (%r8)
+ jmp L(23)
+
+L(15):
+ cmpl $74, %r9d
+ jge L(16)
+ movb %dil, -41(%rsp)
+ divsd -48(%rsp), %xmm1
+ movsd 1928+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ subsd %xmm1, %xmm0
+ addsd 1920+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(16):
+ movsd 1920+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1928+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(17):
+ testb %dl, %dl
+ jne L(22)
+ movb %dil, -41(%rsp)
+ pxor %xmm0, %xmm0
+ movb %sil, -33(%rsp)
+ movsd -48(%rsp), %xmm2
+ divsd -40(%rsp), %xmm2
+ cvtsd2ss %xmm2, %xmm0
+ movss %xmm0, -8(%rsp)
+ movzwl -6(%rsp), %eax
+ movsd %xmm2, -24(%rsp)
+ testl $32640, %eax
+ je L(18)
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd %xmm2, %xmm0
+ movsd %xmm0, -72(%rsp)
+ movsd -72(%rsp), %xmm1
+ mulsd %xmm1, %xmm2
+ movsd %xmm2, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm2
+ cvtsd2ss %xmm2, %xmm2
+ movss %xmm2, (%r8)
+ jmp L(23)
+
+L(18):
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ shlb $7, %cl
+ movss %xmm0, -8(%rsp)
+ movss -8(%rsp), %xmm2
+ movss -8(%rsp), %xmm1
+ mulss %xmm1, %xmm2
+ movss %xmm2, -8(%rsp)
+ movss -8(%rsp), %xmm3
+ cvtss2sd %xmm3, %xmm3
+ addsd -24(%rsp), %xmm3
+ movsd %xmm3, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm4
+ cvtsd2ss %xmm4, %xmm4
+ movss %xmm4, (%r8)
+ jmp L(23)
+
+L(19):
+ testl %eax, %eax
+ jne L(16)
+ testl $8388607, -32(%rsp)
+ jne L(16)
+
+L(20):
+ testb %dl, %dl
+ jne L(22)
+
+L(21):
+ shlb $7, %cl
+ movq 1976+__satan2_la_CoutTab(%rip), %rax
+ movq %rax, -24(%rsp)
+ shrq $56, %rax
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ movss %xmm0, (%r8)
+ jmp L(23)
+
+L(22):
+ movsd 1936+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1944+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+
+L(23):
+ xorl %eax, %eax
+ ret
+
+L(24):
+ movsd 1984+__satan2_la_CoutTab(%rip), %xmm3
+ movl $-1022, %eax
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+ jmp L(13)
+
+L(25):
+ cmpl $2047, %eax
+ je L(32)
+
+L(26):
+ cmpl $2047, %r9d
+ je L(30)
+
+L(27):
+ movzwl -26(%rsp), %eax
+ andl $32640, %eax
+ cmpl $32640, %eax
+ jne L(16)
+ cmpl $255, %edi
+ je L(28)
+ testb %dl, %dl
+ je L(21)
+ jmp L(22)
+
+L(28):
+ testb %dl, %dl
+ jne L(29)
+ movsd 1904+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1912+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(29):
+ movsd 1952+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1960+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(30):
+ testl $8388607, -28(%rsp)
+ je L(27)
+
+L(31):
+ addss %xmm2, %xmm3
+ movss %xmm3, (%r8)
+ jmp L(23)
+
+L(32):
+ testl $8388607, -32(%rsp)
+ jne L(31)
+ jmp L(26)
+
+ cfi_endproc
+
+ .type __svml_satan2_cout_rare_internal,@function
+ .size __svml_satan2_cout_rare_internal,.-__svml_satan2_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_satan2_data_internal:
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 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 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 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 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .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 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .type __svml_satan2_data_internal,@object
+ .size __svml_satan2_data_internal,1152
+ .align 32
+
+__satan2_la_CoutTab:
+ .long 3892314112
+ .long 1069799150
+ .long 2332892550
+ .long 1039715405
+ .long 1342177280
+ .long 1070305495
+ .long 270726690
+ .long 1041535749
+ .long 939524096
+ .long 1070817911
+ .long 2253973841
+ .long 3188654726
+ .long 3221225472
+ .long 1071277294
+ .long 3853927037
+ .long 1043226911
+ .long 2818572288
+ .long 1071767563
+ .long 2677759107
+ .long 1044314101
+ .long 3355443200
+ .long 1072103591
+ .long 1636578514
+ .long 3191094734
+ .long 1476395008
+ .long 1072475260
+ .long 1864703685
+ .long 3188646936
+ .long 805306368
+ .long 1072747407
+ .long 192551812
+ .long 3192726267
+ .long 2013265920
+ .long 1072892781
+ .long 2240369452
+ .long 1043768538
+ .long 0
+ .long 1072999953
+ .long 3665168337
+ .long 3192705970
+ .long 402653184
+ .long 1073084787
+ .long 1227953434
+ .long 3192313277
+ .long 2013265920
+ .long 1073142981
+ .long 3853283127
+ .long 1045277487
+ .long 805306368
+ .long 1073187261
+ .long 1676192264
+ .long 3192868861
+ .long 134217728
+ .long 1073217000
+ .long 4290763938
+ .long 1042034855
+ .long 671088640
+ .long 1073239386
+ .long 994303084
+ .long 3189643768
+ .long 402653184
+ .long 1073254338
+ .long 1878067156
+ .long 1042652475
+ .long 1610612736
+ .long 1073265562
+ .long 670314820
+ .long 1045138554
+ .long 3221225472
+ .long 1073273048
+ .long 691126919
+ .long 3189987794
+ .long 3489660928
+ .long 1073278664
+ .long 1618990832
+ .long 3188194509
+ .long 1207959552
+ .long 1073282409
+ .long 2198872939
+ .long 1044806069
+ .long 3489660928
+ .long 1073285217
+ .long 2633982383
+ .long 1042307894
+ .long 939524096
+ .long 1073287090
+ .long 1059367786
+ .long 3189114230
+ .long 2281701376
+ .long 1073288494
+ .long 3158525533
+ .long 1044484961
+ .long 3221225472
+ .long 1073289430
+ .long 286581777
+ .long 1044893263
+ .long 4026531840
+ .long 1073290132
+ .long 2000245215
+ .long 3191647611
+ .long 134217728
+ .long 1073290601
+ .long 4205071590
+ .long 1045035927
+ .long 536870912
+ .long 1073290952
+ .long 2334392229
+ .long 1043447393
+ .long 805306368
+ .long 1073291186
+ .long 2281458177
+ .long 3188885569
+ .long 3087007744
+ .long 1073291361
+ .long 691611507
+ .long 1044733832
+ .long 3221225472
+ .long 1073291478
+ .long 1816229550
+ .long 1044363390
+ .long 2281701376
+ .long 1073291566
+ .long 1993843750
+ .long 3189837440
+ .long 134217728
+ .long 1073291625
+ .long 3654754496
+ .long 1044970837
+ .long 4026531840
+ .long 1073291668
+ .long 3224300229
+ .long 3191935390
+ .long 805306368
+ .long 1073291698
+ .long 2988777976
+ .long 3188950659
+ .long 536870912
+ .long 1073291720
+ .long 1030371341
+ .long 1043402665
+ .long 3221225472
+ .long 1073291734
+ .long 1524463765
+ .long 1044361356
+ .long 3087007744
+ .long 1073291745
+ .long 2754295320
+ .long 1044731036
+ .long 134217728
+ .long 1073291753
+ .long 3099629057
+ .long 1044970710
+ .long 2281701376
+ .long 1073291758
+ .long 962914160
+ .long 3189838838
+ .long 805306368
+ .long 1073291762
+ .long 3543908206
+ .long 3188950786
+ .long 4026531840
+ .long 1073291764
+ .long 1849909620
+ .long 3191935434
+ .long 3221225472
+ .long 1073291766
+ .long 1641333636
+ .long 1044361352
+ .long 536870912
+ .long 1073291768
+ .long 1373968792
+ .long 1043402654
+ .long 134217728
+ .long 1073291769
+ .long 2033191599
+ .long 1044970710
+ .long 3087007744
+ .long 1073291769
+ .long 4117947437
+ .long 1044731035
+ .long 805306368
+ .long 1073291770
+ .long 315378368
+ .long 3188950787
+ .long 2281701376
+ .long 1073291770
+ .long 2428571750
+ .long 3189838838
+ .long 3221225472
+ .long 1073291770
+ .long 1608007466
+ .long 1044361352
+ .long 4026531840
+ .long 1073291770
+ .long 1895711420
+ .long 3191935434
+ .long 134217728
+ .long 1073291771
+ .long 2031108713
+ .long 1044970710
+ .long 536870912
+ .long 1073291771
+ .long 1362518342
+ .long 1043402654
+ .long 805306368
+ .long 1073291771
+ .long 317461253
+ .long 3188950787
+ .long 939524096
+ .long 1073291771
+ .long 4117231784
+ .long 1044731035
+ .long 1073741824
+ .long 1073291771
+ .long 1607942376
+ .long 1044361352
+ .long 1207959552
+ .long 1073291771
+ .long 2428929577
+ .long 3189838838
+ .long 1207959552
+ .long 1073291771
+ .long 2031104645
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1895722602
+ .long 3191935434
+ .long 1342177280
+ .long 1073291771
+ .long 317465322
+ .long 3188950787
+ .long 1342177280
+ .long 1073291771
+ .long 1362515546
+ .long 1043402654
+ .long 1342177280
+ .long 1073291771
+ .long 1607942248
+ .long 1044361352
+ .long 1342177280
+ .long 1073291771
+ .long 4117231610
+ .long 1044731035
+ .long 1342177280
+ .long 1073291771
+ .long 2031104637
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1540251232
+ .long 1045150466
+ .long 1342177280
+ .long 1073291771
+ .long 2644671394
+ .long 1045270303
+ .long 1342177280
+ .long 1073291771
+ .long 2399244691
+ .long 1045360181
+ .long 1342177280
+ .long 1073291771
+ .long 803971124
+ .long 1045420100
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192879152
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192849193
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192826724
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192811744
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192800509
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192793019
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192787402
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192783657
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192780848
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192778976
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192777572
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192776635
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192775933
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192775465
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192775114
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774880
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774704
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774587
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774500
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774441
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774397
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774368
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774346
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774331
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774320
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774313
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774308
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774304
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774301
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774299
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774298
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774297
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1466225875
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1343512524
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1251477510
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1190120835
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1144103328
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1113424990
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1090416237
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1075077068
+ .long 3192774295
+ .long 1431655765
+ .long 3218429269
+ .long 2576978363
+ .long 1070176665
+ .long 2453154343
+ .long 3217180964
+ .long 4189149139
+ .long 1069314502
+ .long 1775019125
+ .long 3216459198
+ .long 273199057
+ .long 1068739452
+ .long 874748308
+ .long 3215993277
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1073741824
+ .long 1413754136
+ .long 1072243195
+ .long 856972295
+ .long 1015129638
+ .long 1413754136
+ .long 1073291771
+ .long 856972295
+ .long 1016178214
+ .long 1413754136
+ .long 1074340347
+ .long 856972295
+ .long 1017226790
+ .long 2134057426
+ .long 1073928572
+ .long 1285458442
+ .long 1016756537
+ .long 0
+ .long 3220176896
+ .long 0
+ .long 0
+ .long 0
+ .long 2144337920
+ .long 0
+ .long 1048576
+ .long 33554432
+ .long 1101004800
+ .type __satan2_la_CoutTab,@object
+ .size __satan2_la_CoutTab,2008
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE2 version of vectorized atan2f.
+ 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 _ZGVbN4vv_atan2f _ZGVbN4vv_atan2f_sse2
+#include "../svml_s_atan2f4_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized atan2f, 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 _ZGVbN4vv_atan2f
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN4vv_atan2f, __GI__ZGVbN4vv_atan2f,
+ __redirect__ZGVbN4vv_atan2f)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,2668 @@
+/* Function atan2f 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:
+ * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x)
+ * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x)
+ * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x)
+ * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x)
+ * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x
+ * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16.
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.sse4,"ax",@progbits
+ENTRY(_ZGVbN4vv_atan2f_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
+ xorl %edx, %edx
+ movups %xmm9, 176(%rsp)
+ movups %xmm11, 112(%rsp)
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xb0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm0, %xmm11
+
+/*
+ * #define NO_VECTOR_ZERO_ATAN2_ARGS
+ * Declarations
+ * Variables
+ * Constants
+ * The end of declarations
+ * Implementation
+ * Arguments signs
+ */
+ movups 256+__svml_satan2_data_internal(%rip), %xmm9
+ movups %xmm12, 96(%rsp)
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm1, %xmm12
+ movups %xmm10, 144(%rsp)
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm9, %xmm10
+ andps %xmm11, %xmm9
+ andps %xmm12, %xmm10
+ movaps %xmm9, %xmm6
+ movaps %xmm9, %xmm4
+ cmpltps %xmm10, %xmm6
+
+/*
+ * 1) If y<x then a= y, b=x, PIO2=0
+ * 2) If y>x then a=-x, b=y, PIO2=Pi/2
+ */
+ movups 192+__svml_satan2_data_internal(%rip), %xmm5
+ movaps %xmm6, %xmm0
+ orps %xmm10, %xmm5
+ movaps %xmm10, %xmm1
+ andnps %xmm5, %xmm0
+ movaps %xmm6, %xmm5
+ andps %xmm6, %xmm4
+ andnps %xmm9, %xmm5
+ andps %xmm6, %xmm1
+ orps %xmm4, %xmm0
+ orps %xmm1, %xmm5
+ movaps %xmm9, %xmm3
+
+/* Division a/b. */
+ divps %xmm5, %xmm0
+ movups %xmm13, 80(%rsp)
+
+/* if x<0, sPI = Pi, else sPI =0 */
+ movaps %xmm12, %xmm4
+ movups %xmm14, 48(%rsp)
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm10, %xmm14
+
+/* Testing on working interval. */
+ movdqu 1024+__svml_satan2_data_internal(%rip), %xmm13
+ movaps %xmm9, %xmm7
+ psubd %xmm13, %xmm14
+ psubd %xmm13, %xmm3
+ movdqu 1088+__svml_satan2_data_internal(%rip), %xmm2
+ movdqa %xmm14, %xmm1
+ movdqa %xmm3, %xmm13
+ pcmpgtd %xmm2, %xmm1
+ pcmpeqd %xmm2, %xmm14
+ pcmpgtd %xmm2, %xmm13
+ pcmpeqd %xmm2, %xmm3
+ por %xmm14, %xmm1
+ por %xmm3, %xmm13
+ pxor %xmm11, %xmm7
+ por %xmm13, %xmm1
+
+/* Polynomial. */
+ movaps %xmm0, %xmm13
+ mulps %xmm0, %xmm13
+ cmpleps __svml_satan2_data_internal(%rip), %xmm4
+ movmskps %xmm1, %eax
+ movaps %xmm13, %xmm14
+ mulps %xmm13, %xmm14
+ movups 448+__svml_satan2_data_internal(%rip), %xmm2
+ mulps %xmm14, %xmm2
+ movups 512+__svml_satan2_data_internal(%rip), %xmm3
+ mulps %xmm14, %xmm3
+ addps 576+__svml_satan2_data_internal(%rip), %xmm2
+ mulps %xmm14, %xmm2
+ addps 640+__svml_satan2_data_internal(%rip), %xmm3
+ mulps %xmm14, %xmm3
+ addps 704+__svml_satan2_data_internal(%rip), %xmm2
+ mulps %xmm14, %xmm2
+ addps 768+__svml_satan2_data_internal(%rip), %xmm3
+ mulps %xmm14, %xmm3
+ addps 832+__svml_satan2_data_internal(%rip), %xmm2
+ mulps %xmm2, %xmm14
+ addps 896+__svml_satan2_data_internal(%rip), %xmm3
+ mulps %xmm3, %xmm13
+ addps 960+__svml_satan2_data_internal(%rip), %xmm14
+ andnps 320+__svml_satan2_data_internal(%rip), %xmm6
+ addps %xmm13, %xmm14
+
+/* Reconstruction. */
+ mulps %xmm14, %xmm0
+ movups %xmm8, 160(%rsp)
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm10, %xmm8
+ pxor %xmm12, %xmm8
+ addps %xmm6, %xmm0
+ andps 384+__svml_satan2_data_internal(%rip), %xmm4
+ orps %xmm8, %xmm0
+ addps %xmm4, %xmm0
+ orps %xmm7, %xmm0
+
+/* Special branch for fast (vector) processing of zero arguments */
+ testl %eax, %eax
+ jne L(7)
+
+L(1):
+/*
+ * Special branch for fast (vector) processing of zero arguments
+ * The end of implementation
+ */
+ testl %edx, %edx
+ jne L(3)
+
+L(2):
+ movups 160(%rsp), %xmm8
+ cfi_restore(25)
+ movups 176(%rsp), %xmm9
+ cfi_restore(26)
+ movups 144(%rsp), %xmm10
+ cfi_restore(27)
+ movups 112(%rsp), %xmm11
+ cfi_restore(28)
+ movups 96(%rsp), %xmm12
+ cfi_restore(29)
+ movups 80(%rsp), %xmm13
+ cfi_restore(30)
+ movups 48(%rsp), %xmm14
+ cfi_restore(31)
+ 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, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xb0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+
+L(3):
+ movups %xmm11, 64(%rsp)
+ movups %xmm12, 128(%rsp)
+ movups %xmm0, 192(%rsp)
+ je L(2)
+ xorl %eax, %eax
+ movups %xmm15, (%rsp)
+ movq %rsi, 24(%rsp)
+ movq %rdi, 16(%rsp)
+ movq %r12, 40(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 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, 32(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+L(4):
+ btl %r12d, %r13d
+ jc L(6)
+
+L(5):
+ incl %r12d
+ cmpl $4, %r12d
+ jl L(4)
+ movups (%rsp), %xmm15
+ cfi_restore(32)
+ movq 24(%rsp), %rsi
+ cfi_restore(4)
+ movq 16(%rsp), %rdi
+ cfi_restore(5)
+ movq 40(%rsp), %r12
+ cfi_restore(12)
+ movq 32(%rsp), %r13
+ cfi_restore(13)
+ movups 192(%rsp), %xmm0
+ jmp L(2)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x18, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+
+L(6):
+ lea 64(%rsp,%r12,4), %rdi
+ lea 128(%rsp,%r12,4), %rsi
+ lea 192(%rsp,%r12,4), %rdx
+ call __svml_satan2_cout_rare_internal
+ jmp L(5)
+ cfi_restore(4)
+ cfi_restore(5)
+ cfi_restore(12)
+ cfi_restore(13)
+ cfi_restore(32)
+
+L(7):
+/* Check if both X & Y are not NaNs: iXYnotNAN */
+ movaps %xmm12, %xmm3
+ movaps %xmm11, %xmm2
+ cmpordps %xmm12, %xmm3
+ cmpordps %xmm11, %xmm2
+
+/* Check if at least on of Y or Y is zero: iAXAYZERO */
+ movups __svml_satan2_data_internal(%rip), %xmm13
+ andps %xmm2, %xmm3
+
+/*
+ * Path for zero arguments (at least one of both)
+ * Check if both args are zeros (den. is zero)
+ */
+ cmpeqps %xmm13, %xmm5
+ pcmpeqd %xmm13, %xmm10
+ pcmpeqd %xmm13, %xmm9
+ por %xmm9, %xmm10
+
+/* Check if at least on of Y or Y is zero and not NaN: iAXAYZEROnotNAN */
+ andps %xmm3, %xmm10
+
+/* Exclude from previous callout mask zero (and not NaN) arguments */
+ movaps %xmm10, %xmm9
+ pandn %xmm1, %xmm9
+
+/* Set sPIO2 to zero if den. is zero */
+ movaps %xmm5, %xmm1
+ andnps %xmm6, %xmm1
+ andps %xmm13, %xmm5
+ orps %xmm5, %xmm1
+
+/* Res = sign(Y)*(X<0)?(PIO2+PI):PIO2 */
+ pcmpgtd %xmm12, %xmm13
+ orps %xmm8, %xmm1
+ andps %xmm4, %xmm13
+
+/* Merge results from main and spec path */
+ movaps %xmm10, %xmm4
+ addps %xmm13, %xmm1
+
+/* Go to callout */
+ movmskps %xmm9, %edx
+ orps %xmm7, %xmm1
+ andnps %xmm0, %xmm4
+ andps %xmm10, %xmm1
+ movaps %xmm4, %xmm0
+ orps %xmm1, %xmm0
+ jmp L(1)
+
+END(_ZGVbN4vv_atan2f_sse4)
+
+ .align 16,0x90
+
+__svml_satan2_cout_rare_internal:
+
+ cfi_startproc
+
+ pxor %xmm0, %xmm0
+ movss (%rdi), %xmm3
+ pxor %xmm1, %xmm1
+ movss (%rsi), %xmm2
+ movq %rdx, %r8
+ cvtss2sd %xmm3, %xmm0
+ cvtss2sd %xmm2, %xmm1
+ movss %xmm3, -32(%rsp)
+ movss %xmm2, -28(%rsp)
+ movsd %xmm0, -48(%rsp)
+ movsd %xmm1, -40(%rsp)
+ movzwl -30(%rsp), %edi
+ andl $32640, %edi
+ movb -25(%rsp), %dl
+ movzwl -42(%rsp), %eax
+ andb $-128, %dl
+ movzwl -34(%rsp), %r9d
+ andl $32752, %eax
+ andl $32752, %r9d
+ shrl $7, %edi
+ movb -29(%rsp), %cl
+ shrb $7, %cl
+ shrb $7, %dl
+ shrl $4, %eax
+ shrl $4, %r9d
+ cmpl $255, %edi
+ je L(25)
+ movzwl -26(%rsp), %esi
+ andl $32640, %esi
+ cmpl $32640, %esi
+ je L(25)
+ testl %eax, %eax
+ jne L(8)
+ testl $8388607, -32(%rsp)
+ je L(20)
+
+L(8):
+ testl %r9d, %r9d
+ jne L(9)
+ testl $8388607, -28(%rsp)
+ je L(19)
+
+L(9):
+ negl %r9d
+ movsd %xmm0, -48(%rsp)
+ addl %eax, %r9d
+ movsd %xmm1, -40(%rsp)
+ movb -41(%rsp), %dil
+ movb -33(%rsp), %sil
+ andb $127, %dil
+ andb $127, %sil
+ cmpl $-54, %r9d
+ jle L(17)
+ cmpl $54, %r9d
+ jge L(15)
+ movb %sil, -33(%rsp)
+ movb %dil, -41(%rsp)
+ testb %dl, %dl
+ jne L(10)
+ movsd 1976+__satan2_la_CoutTab(%rip), %xmm1
+ movaps %xmm1, %xmm0
+ jmp L(11)
+
+L(10):
+ movsd 1936+__satan2_la_CoutTab(%rip), %xmm1
+ movsd 1944+__satan2_la_CoutTab(%rip), %xmm0
+
+L(11):
+ movsd -48(%rsp), %xmm4
+ movsd -40(%rsp), %xmm2
+ movaps %xmm4, %xmm5
+ divsd %xmm2, %xmm5
+ movzwl -42(%rsp), %esi
+ movsd %xmm5, -16(%rsp)
+ testl %eax, %eax
+ jle L(24)
+ cmpl $2046, %eax
+ jge L(12)
+ andl $-32753, %esi
+ addl $-1023, %eax
+ movsd %xmm4, -48(%rsp)
+ addl $16368, %esi
+ movw %si, -42(%rsp)
+ jmp L(13)
+
+L(12):
+ movsd 1992+__satan2_la_CoutTab(%rip), %xmm3
+ movl $1022, %eax
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+
+L(13):
+ negl %eax
+ movq 1888+__satan2_la_CoutTab(%rip), %rsi
+ addl $1023, %eax
+ movq %rsi, -40(%rsp)
+ andl $2047, %eax
+ shrq $48, %rsi
+ shll $4, %eax
+ andl $-32753, %esi
+ orl %eax, %esi
+ movw %si, -34(%rsp)
+ movsd -40(%rsp), %xmm3
+ mulsd %xmm3, %xmm2
+ comisd 1880+__satan2_la_CoutTab(%rip), %xmm5
+ jb L(14)
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm12
+ movaps %xmm2, %xmm3
+ mulsd %xmm2, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd %xmm5, -24(%rsp)
+ subsd %xmm2, %xmm13
+ movsd %xmm13, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm14
+ movl -20(%rsp), %edi
+ movl %edi, %r9d
+ andl $-524288, %edi
+ andl $-1048576, %r9d
+ addl $262144, %edi
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -72(%rsp)
+ andl $1048575, %edi
+ movsd -72(%rsp), %xmm4
+ orl %edi, %r9d
+ movl $0, -24(%rsp)
+ subsd %xmm4, %xmm3
+ movl %r9d, -20(%rsp)
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -24(%rsp), %xmm11
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm5
+ mulsd %xmm11, %xmm9
+ movsd 1968+__satan2_la_CoutTab(%rip), %xmm8
+ mulsd %xmm8, %xmm5
+ mulsd %xmm8, %xmm9
+ movaps %xmm5, %xmm7
+ movzwl -10(%rsp), %esi
+ addsd %xmm9, %xmm7
+ movsd %xmm7, -72(%rsp)
+ andl $32752, %esi
+ movsd -72(%rsp), %xmm6
+ shrl $4, %esi
+ subsd %xmm6, %xmm5
+ movl -12(%rsp), %eax
+ addsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ andl $1048575, %eax
+ movsd -48(%rsp), %xmm9
+ movsd -72(%rsp), %xmm3
+ movaps %xmm9, %xmm12
+ movsd -64(%rsp), %xmm10
+ movaps %xmm9, %xmm14
+ movaps %xmm9, %xmm6
+ addsd %xmm3, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ shll $20, %esi
+ subsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ orl %eax, %esi
+ movsd -72(%rsp), %xmm4
+ addl $-1069547520, %esi
+ movsd -64(%rsp), %xmm15
+ movl $113, %eax
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm15, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ sarl $19, %esi
+ addsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ cmpl $113, %esi
+ movsd -56(%rsp), %xmm7
+ cmovl %esi, %eax
+ subsd %xmm7, %xmm6
+ movsd %xmm6, -56(%rsp)
+ addl %eax, %eax
+ movsd -64(%rsp), %xmm12
+ lea __satan2_la_CoutTab(%rip), %rsi
+ movsd -56(%rsp), %xmm5
+ movslq %eax, %rax
+ addsd %xmm5, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm7, %xmm13
+ movsd -56(%rsp), %xmm8
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm10, %xmm8
+ movsd -72(%rsp), %xmm4
+ movaps %xmm9, %xmm10
+ mulsd 2000+__satan2_la_CoutTab(%rip), %xmm10
+ subsd %xmm7, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd -64(%rsp), %xmm14
+ subsd %xmm14, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm15
+ subsd %xmm15, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm4
+ movsd %xmm10, -72(%rsp)
+ movaps %xmm2, %xmm10
+ addsd %xmm4, %xmm8
+ movsd -72(%rsp), %xmm4
+ subsd -48(%rsp), %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm3
+ subsd %xmm3, %xmm6
+ movaps %xmm2, %xmm3
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ subsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm12
+ mulsd %xmm11, %xmm9
+ movaps %xmm12, %xmm11
+ addsd %xmm9, %xmm11
+ movsd %xmm11, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm12
+ addsd %xmm9, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm6
+ addsd %xmm15, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm5, %xmm10
+ movsd %xmm10, -64(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm13
+ movsd %xmm13, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm14, %xmm15
+ movsd %xmm15, -64(%rsp)
+ movsd -56(%rsp), %xmm4
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm14
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -64(%rsp), %xmm4
+ movsd -56(%rsp), %xmm2
+ addsd %xmm2, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -72(%rsp), %xmm12
+ mulsd %xmm12, %xmm3
+ movsd -56(%rsp), %xmm5
+ movsd %xmm3, -72(%rsp)
+ addsd %xmm6, %xmm5
+ movsd -72(%rsp), %xmm9
+ subsd %xmm12, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm2
+ subsd %xmm2, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ divsd %xmm9, %xmm14
+ mulsd %xmm14, %xmm13
+ movsd -64(%rsp), %xmm10
+ movsd %xmm13, -64(%rsp)
+ addsd %xmm10, %xmm5
+ movsd -64(%rsp), %xmm15
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm12
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm4
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -56(%rsp), %xmm3
+ mulsd %xmm3, %xmm9
+ movsd -56(%rsp), %xmm11
+ subsd %xmm9, %xmm12
+ mulsd %xmm11, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -64(%rsp), %xmm5
+ subsd %xmm5, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -64(%rsp), %xmm2
+ movq -56(%rsp), %r10
+ movsd -64(%rsp), %xmm6
+ movsd -56(%rsp), %xmm4
+ movq %r10, -40(%rsp)
+ movsd -40(%rsp), %xmm3
+ movaps %xmm3, %xmm5
+ addsd 1888+__satan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm5
+ mulsd %xmm6, %xmm2
+ mulsd %xmm4, %xmm2
+ mulsd %xmm2, %xmm7
+ mulsd %xmm8, %xmm2
+ mulsd %xmm3, %xmm8
+ addsd %xmm2, %xmm7
+ movsd 1872+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm8, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movaps %xmm5, %xmm7
+ movsd -72(%rsp), %xmm4
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm6
+ addsd %xmm4, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ subsd %xmm8, %xmm5
+ addsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ movaps %xmm11, %xmm2
+ mulsd %xmm11, %xmm2
+ mulsd %xmm11, %xmm6
+ mulsd %xmm2, %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ addsd 1864+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm11, %xmm7
+ mulsd %xmm2, %xmm3
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ movsd -64(%rsp), %xmm8
+ addsd 1856+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm8, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ addsd 1848+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm10, %xmm11
+ mulsd %xmm2, %xmm3
+ movsd %xmm11, -64(%rsp)
+ addsd 1840+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1832+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1824+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm3, %xmm13
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %r11
+ movsd -56(%rsp), %xmm15
+ movq %r11, -40(%rsp)
+ addsd %xmm15, %xmm4
+ movsd -40(%rsp), %xmm8
+ addsd %xmm5, %xmm4
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm8, %xmm4
+ movaps %xmm8, %xmm2
+ addsd (%rsi,%rax,8), %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd (%rsi,%rax,8), %xmm6
+ movsd %xmm6, -64(%rsp)
+ movsd -56(%rsp), %xmm7
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movq -72(%rsp), %rdi
+ movq %rdi, -40(%rsp)
+ movsd -56(%rsp), %xmm2
+ movaps %xmm1, %xmm3
+ shrq $56, %rdi
+ addsd -32(%rsp), %xmm2
+ shlb $7, %cl
+ addsd 8(%rsi,%rax,8), %xmm2
+ movb %dl, %al
+ andb $127, %dil
+ shlb $7, %al
+ movsd %xmm2, -32(%rsp)
+ orb %al, %dil
+ movb %dil, -33(%rsp)
+ movsd -40(%rsp), %xmm9
+ movaps %xmm9, %xmm5
+ addsd %xmm9, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %sil
+ movb %sil, %r9b
+ shrb $7, %sil
+ subsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm6
+ xorb %sil, %dl
+ andb $127, %r9b
+ shlb $7, %dl
+ addsd %xmm6, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ addsd %xmm8, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %dl, %r9b
+ movsd -56(%rsp), %xmm1
+ movb %r9b, -25(%rsp)
+ subsd %xmm1, %xmm9
+ movsd %xmm9, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ movsd -56(%rsp), %xmm10
+ addsd %xmm10, %xmm11
+ movsd %xmm11, -56(%rsp)
+ movq -72(%rsp), %rdx
+ movsd -56(%rsp), %xmm12
+ movq %rdx, -40(%rsp)
+ addsd %xmm12, %xmm0
+ movsd -40(%rsp), %xmm13
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm13
+ movsd %xmm13, -24(%rsp)
+ movb -17(%rsp), %r10b
+ andb $127, %r10b
+ orb %cl, %r10b
+ movb %r10b, -17(%rsp)
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ movss %xmm0, (%r8)
+ jmp L(23)
+
+L(14):
+ movsd -48(%rsp), %xmm12
+ movb %dl, %dil
+ movaps %xmm12, %xmm7
+ mulsd 2000+__satan2_la_CoutTab(%rip), %xmm7
+ shlb $7, %dil
+ shlb $7, %cl
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm2, %xmm13
+ subsd -48(%rsp), %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movsd %xmm13, -72(%rsp)
+ movsd -72(%rsp), %xmm14
+ subsd %xmm2, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm4
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm4
+ subsd %xmm3, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ divsd %xmm12, %xmm7
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm2
+ movsd -64(%rsp), %xmm14
+ movsd %xmm2, -64(%rsp)
+ movsd -64(%rsp), %xmm8
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -56(%rsp), %xmm11
+ mulsd %xmm11, %xmm12
+ movsd -56(%rsp), %xmm13
+ subsd %xmm12, %xmm4
+ mulsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -64(%rsp), %xmm15
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -64(%rsp), %xmm7
+ movq -56(%rsp), %rax
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm3
+ movq %rax, -40(%rsp)
+ movsd -40(%rsp), %xmm8
+ movaps %xmm8, %xmm9
+ addsd 1888+__satan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm6, %xmm9
+ mulsd %xmm5, %xmm8
+ mulsd %xmm2, %xmm7
+ movsd -16(%rsp), %xmm2
+ mulsd %xmm2, %xmm2
+ mulsd %xmm3, %xmm7
+ movsd 1872+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm7, %xmm6
+ mulsd %xmm5, %xmm7
+ addsd 1864+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm7, %xmm6
+ mulsd %xmm2, %xmm3
+ addsd %xmm8, %xmm6
+ addsd 1856+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ movaps %xmm9, %xmm5
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ addsd 1848+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm5
+ mulsd %xmm2, %xmm3
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm5
+ subsd %xmm6, %xmm9
+ addsd 1840+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ mulsd %xmm11, %xmm5
+ addsd 1832+__satan2_la_CoutTab(%rip), %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm2, %xmm3
+ subsd %xmm11, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd -64(%rsp), %xmm6
+ addsd 1824+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm6, %xmm8
+ mulsd %xmm2, %xmm3
+ movsd %xmm8, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ mulsd %xmm3, %xmm13
+ subsd %xmm10, %xmm11
+ movsd %xmm11, -64(%rsp)
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %rsi
+ movsd -56(%rsp), %xmm15
+ movq %rsi, -40(%rsp)
+ addsd %xmm15, %xmm4
+ shrq $56, %rsi
+ addsd %xmm5, %xmm4
+ andb $127, %sil
+ orb %dil, %sil
+ movb %sil, -33(%rsp)
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm1, %xmm4
+ movsd -40(%rsp), %xmm7
+ movaps %xmm7, %xmm2
+ addsd %xmm7, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %r9b
+ movb %r9b, %r10b
+ shrb $7, %r9b
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ xorb %r9b, %dl
+ andb $127, %r10b
+ shlb $7, %dl
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd %xmm6, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %dl, %r10b
+ movsd -56(%rsp), %xmm1
+ movb %r10b, -25(%rsp)
+ subsd %xmm1, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm1
+ addsd %xmm1, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movq -72(%rsp), %rdx
+ movsd -56(%rsp), %xmm3
+ movq %rdx, -40(%rsp)
+ addsd %xmm3, %xmm0
+ movsd -40(%rsp), %xmm4
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm4
+ movsd %xmm4, -24(%rsp)
+ movb -17(%rsp), %r11b
+ andb $127, %r11b
+ orb %cl, %r11b
+ movb %r11b, -17(%rsp)
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ movss %xmm0, (%r8)
+ jmp L(23)
+
+L(15):
+ cmpl $74, %r9d
+ jge L(16)
+ movb %dil, -41(%rsp)
+ divsd -48(%rsp), %xmm1
+ movsd 1928+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ subsd %xmm1, %xmm0
+ addsd 1920+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(16):
+ movsd 1920+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1928+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(17):
+ testb %dl, %dl
+ jne L(22)
+ movb %dil, -41(%rsp)
+ pxor %xmm0, %xmm0
+ movb %sil, -33(%rsp)
+ movsd -48(%rsp), %xmm2
+ divsd -40(%rsp), %xmm2
+ cvtsd2ss %xmm2, %xmm0
+ movss %xmm0, -8(%rsp)
+ movzwl -6(%rsp), %eax
+ movsd %xmm2, -24(%rsp)
+ testl $32640, %eax
+ je L(18)
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd %xmm2, %xmm0
+ movsd %xmm0, -72(%rsp)
+ movsd -72(%rsp), %xmm1
+ mulsd %xmm1, %xmm2
+ movsd %xmm2, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm2
+ cvtsd2ss %xmm2, %xmm2
+ movss %xmm2, (%r8)
+ jmp L(23)
+
+L(18):
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ shlb $7, %cl
+ movss %xmm0, -8(%rsp)
+ movss -8(%rsp), %xmm2
+ movss -8(%rsp), %xmm1
+ mulss %xmm1, %xmm2
+ movss %xmm2, -8(%rsp)
+ movss -8(%rsp), %xmm3
+ cvtss2sd %xmm3, %xmm3
+ addsd -24(%rsp), %xmm3
+ movsd %xmm3, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm4
+ cvtsd2ss %xmm4, %xmm4
+ movss %xmm4, (%r8)
+ jmp L(23)
+
+L(19):
+ testl %eax, %eax
+ jne L(16)
+ testl $8388607, -32(%rsp)
+ jne L(16)
+
+L(20):
+ testb %dl, %dl
+ jne L(22)
+
+L(21):
+ shlb $7, %cl
+ movq 1976+__satan2_la_CoutTab(%rip), %rax
+ movq %rax, -24(%rsp)
+ shrq $56, %rax
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ movss %xmm0, (%r8)
+ jmp L(23)
+
+L(22):
+ movsd 1936+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1944+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+
+L(23):
+ xorl %eax, %eax
+ ret
+
+L(24):
+ movsd 1984+__satan2_la_CoutTab(%rip), %xmm3
+ movl $-1022, %eax
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+ jmp L(13)
+
+L(25):
+ cmpl $2047, %eax
+ je L(32)
+
+L(26):
+ cmpl $2047, %r9d
+ je L(30)
+
+L(27):
+ movzwl -26(%rsp), %eax
+ andl $32640, %eax
+ cmpl $32640, %eax
+ jne L(16)
+ cmpl $255, %edi
+ je L(28)
+ testb %dl, %dl
+ je L(21)
+ jmp L(22)
+
+L(28):
+ testb %dl, %dl
+ jne L(29)
+ movsd 1904+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1912+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(29):
+ movsd 1952+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1960+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(30):
+ testl $8388607, -28(%rsp)
+ je L(27)
+
+L(31):
+ addss %xmm2, %xmm3
+ movss %xmm3, (%r8)
+ jmp L(23)
+
+L(32):
+ testl $8388607, -32(%rsp)
+ jne L(31)
+ jmp L(26)
+
+ cfi_endproc
+
+ .type __svml_satan2_cout_rare_internal,@function
+ .size __svml_satan2_cout_rare_internal,.-__svml_satan2_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_satan2_data_internal:
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 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 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 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 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 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 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 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 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 4227858432
+ .long 4227858432
+ .long 4227858432
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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_satan2_data_internal,@object
+ .size __svml_satan2_data_internal,1152
+ .align 32
+
+__satan2_la_CoutTab:
+ .long 3892314112
+ .long 1069799150
+ .long 2332892550
+ .long 1039715405
+ .long 1342177280
+ .long 1070305495
+ .long 270726690
+ .long 1041535749
+ .long 939524096
+ .long 1070817911
+ .long 2253973841
+ .long 3188654726
+ .long 3221225472
+ .long 1071277294
+ .long 3853927037
+ .long 1043226911
+ .long 2818572288
+ .long 1071767563
+ .long 2677759107
+ .long 1044314101
+ .long 3355443200
+ .long 1072103591
+ .long 1636578514
+ .long 3191094734
+ .long 1476395008
+ .long 1072475260
+ .long 1864703685
+ .long 3188646936
+ .long 805306368
+ .long 1072747407
+ .long 192551812
+ .long 3192726267
+ .long 2013265920
+ .long 1072892781
+ .long 2240369452
+ .long 1043768538
+ .long 0
+ .long 1072999953
+ .long 3665168337
+ .long 3192705970
+ .long 402653184
+ .long 1073084787
+ .long 1227953434
+ .long 3192313277
+ .long 2013265920
+ .long 1073142981
+ .long 3853283127
+ .long 1045277487
+ .long 805306368
+ .long 1073187261
+ .long 1676192264
+ .long 3192868861
+ .long 134217728
+ .long 1073217000
+ .long 4290763938
+ .long 1042034855
+ .long 671088640
+ .long 1073239386
+ .long 994303084
+ .long 3189643768
+ .long 402653184
+ .long 1073254338
+ .long 1878067156
+ .long 1042652475
+ .long 1610612736
+ .long 1073265562
+ .long 670314820
+ .long 1045138554
+ .long 3221225472
+ .long 1073273048
+ .long 691126919
+ .long 3189987794
+ .long 3489660928
+ .long 1073278664
+ .long 1618990832
+ .long 3188194509
+ .long 1207959552
+ .long 1073282409
+ .long 2198872939
+ .long 1044806069
+ .long 3489660928
+ .long 1073285217
+ .long 2633982383
+ .long 1042307894
+ .long 939524096
+ .long 1073287090
+ .long 1059367786
+ .long 3189114230
+ .long 2281701376
+ .long 1073288494
+ .long 3158525533
+ .long 1044484961
+ .long 3221225472
+ .long 1073289430
+ .long 286581777
+ .long 1044893263
+ .long 4026531840
+ .long 1073290132
+ .long 2000245215
+ .long 3191647611
+ .long 134217728
+ .long 1073290601
+ .long 4205071590
+ .long 1045035927
+ .long 536870912
+ .long 1073290952
+ .long 2334392229
+ .long 1043447393
+ .long 805306368
+ .long 1073291186
+ .long 2281458177
+ .long 3188885569
+ .long 3087007744
+ .long 1073291361
+ .long 691611507
+ .long 1044733832
+ .long 3221225472
+ .long 1073291478
+ .long 1816229550
+ .long 1044363390
+ .long 2281701376
+ .long 1073291566
+ .long 1993843750
+ .long 3189837440
+ .long 134217728
+ .long 1073291625
+ .long 3654754496
+ .long 1044970837
+ .long 4026531840
+ .long 1073291668
+ .long 3224300229
+ .long 3191935390
+ .long 805306368
+ .long 1073291698
+ .long 2988777976
+ .long 3188950659
+ .long 536870912
+ .long 1073291720
+ .long 1030371341
+ .long 1043402665
+ .long 3221225472
+ .long 1073291734
+ .long 1524463765
+ .long 1044361356
+ .long 3087007744
+ .long 1073291745
+ .long 2754295320
+ .long 1044731036
+ .long 134217728
+ .long 1073291753
+ .long 3099629057
+ .long 1044970710
+ .long 2281701376
+ .long 1073291758
+ .long 962914160
+ .long 3189838838
+ .long 805306368
+ .long 1073291762
+ .long 3543908206
+ .long 3188950786
+ .long 4026531840
+ .long 1073291764
+ .long 1849909620
+ .long 3191935434
+ .long 3221225472
+ .long 1073291766
+ .long 1641333636
+ .long 1044361352
+ .long 536870912
+ .long 1073291768
+ .long 1373968792
+ .long 1043402654
+ .long 134217728
+ .long 1073291769
+ .long 2033191599
+ .long 1044970710
+ .long 3087007744
+ .long 1073291769
+ .long 4117947437
+ .long 1044731035
+ .long 805306368
+ .long 1073291770
+ .long 315378368
+ .long 3188950787
+ .long 2281701376
+ .long 1073291770
+ .long 2428571750
+ .long 3189838838
+ .long 3221225472
+ .long 1073291770
+ .long 1608007466
+ .long 1044361352
+ .long 4026531840
+ .long 1073291770
+ .long 1895711420
+ .long 3191935434
+ .long 134217728
+ .long 1073291771
+ .long 2031108713
+ .long 1044970710
+ .long 536870912
+ .long 1073291771
+ .long 1362518342
+ .long 1043402654
+ .long 805306368
+ .long 1073291771
+ .long 317461253
+ .long 3188950787
+ .long 939524096
+ .long 1073291771
+ .long 4117231784
+ .long 1044731035
+ .long 1073741824
+ .long 1073291771
+ .long 1607942376
+ .long 1044361352
+ .long 1207959552
+ .long 1073291771
+ .long 2428929577
+ .long 3189838838
+ .long 1207959552
+ .long 1073291771
+ .long 2031104645
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1895722602
+ .long 3191935434
+ .long 1342177280
+ .long 1073291771
+ .long 317465322
+ .long 3188950787
+ .long 1342177280
+ .long 1073291771
+ .long 1362515546
+ .long 1043402654
+ .long 1342177280
+ .long 1073291771
+ .long 1607942248
+ .long 1044361352
+ .long 1342177280
+ .long 1073291771
+ .long 4117231610
+ .long 1044731035
+ .long 1342177280
+ .long 1073291771
+ .long 2031104637
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1540251232
+ .long 1045150466
+ .long 1342177280
+ .long 1073291771
+ .long 2644671394
+ .long 1045270303
+ .long 1342177280
+ .long 1073291771
+ .long 2399244691
+ .long 1045360181
+ .long 1342177280
+ .long 1073291771
+ .long 803971124
+ .long 1045420100
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192879152
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192849193
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192826724
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192811744
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192800509
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192793019
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192787402
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192783657
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192780848
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192778976
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192777572
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192776635
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192775933
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192775465
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192775114
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774880
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774704
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774587
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774500
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774441
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774397
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774368
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774346
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774331
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774320
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774313
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774308
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774304
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774301
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774299
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774298
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774297
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1466225875
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1343512524
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1251477510
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1190120835
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1144103328
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1113424990
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1090416237
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1075077068
+ .long 3192774295
+ .long 1431655765
+ .long 3218429269
+ .long 2576978363
+ .long 1070176665
+ .long 2453154343
+ .long 3217180964
+ .long 4189149139
+ .long 1069314502
+ .long 1775019125
+ .long 3216459198
+ .long 273199057
+ .long 1068739452
+ .long 874748308
+ .long 3215993277
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1073741824
+ .long 1413754136
+ .long 1072243195
+ .long 856972295
+ .long 1015129638
+ .long 1413754136
+ .long 1073291771
+ .long 856972295
+ .long 1016178214
+ .long 1413754136
+ .long 1074340347
+ .long 856972295
+ .long 1017226790
+ .long 2134057426
+ .long 1073928572
+ .long 1285458442
+ .long 1016756537
+ .long 0
+ .long 3220176896
+ .long 0
+ .long 0
+ .long 0
+ .long 2144337920
+ .long 0
+ .long 1048576
+ .long 33554432
+ .long 1101004800
+ .type __satan2_la_CoutTab,@object
+ .size __satan2_la_CoutTab,2008
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE version of vectorized atan2f.
+ 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 _ZGVdN8vv_atan2f _ZGVdN8vv_atan2f_sse_wrapper
+#include "../svml_s_atan2f8_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized sinf, 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 _ZGVdN8vv_atan2f
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN8vv_atan2f, __GI__ZGVdN8vv_atan2f,
+ __redirect__ZGVdN8vv_atan2f)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,2413 @@
+/* Function atan2f 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:
+ * For 0.0 <= x <= 7.0/16.0: atan(x) = atan(0.0) + atan(s), where s=(x-0.0)/(1.0+0.0*x)
+ * For 7.0/16.0 <= x <= 11.0/16.0: atan(x) = atan(0.5) + atan(s), where s=(x-0.5)/(1.0+0.5*x)
+ * For 11.0/16.0 <= x <= 19.0/16.0: atan(x) = atan(1.0) + atan(s), where s=(x-1.0)/(1.0+1.0*x)
+ * For 19.0/16.0 <= x <= 39.0/16.0: atan(x) = atan(1.5) + atan(s), where s=(x-1.5)/(1.0+1.5*x)
+ * For 39.0/16.0 <= x <= inf : atan(x) = atan(inf) + atan(s), where s=-1.0/x
+ * Where atan(s) ~= s+s^3*Poly11(s^2) on interval |s|<7.0/0.16.
+ *
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ .section .text.avx2,"ax",@progbits
+ENTRY(_ZGVdN8vv_atan2f_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
+ xorl %edx, %edx
+
+/*
+ * #define NO_VECTOR_ZERO_ATAN2_ARGS
+ * Declarations
+ * Variables
+ * Constants
+ * The end of declarations
+ * Implementation
+ * Arguments signs
+ */
+ vmovups 256+__svml_satan2_data_internal(%rip), %ymm2
+ vmovups %ymm13, 288(%rsp)
+ vmovups %ymm12, 256(%rsp)
+ vmovups %ymm15, 352(%rsp)
+ vmovups %ymm14, 320(%rsp)
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x22
+
+/* Testing on working interval. */
+ vmovups 1024+__svml_satan2_data_internal(%rip), %ymm15
+ vmovups %ymm11, 224(%rsp)
+ vmovups %ymm9, 96(%rsp)
+ .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ vmovups 1088+__svml_satan2_data_internal(%rip), %ymm9
+ vmovups %ymm10, 160(%rsp)
+ vmovups %ymm8, 32(%rsp)
+
+/* if x<0, sPI = Pi, else sPI =0 */
+ vmovups __svml_satan2_data_internal(%rip), %ymm5
+ vmovaps %ymm1, %ymm7
+ .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ vandps %ymm2, %ymm7, %ymm13
+ vandps %ymm2, %ymm0, %ymm12
+ vcmplt_oqps %ymm13, %ymm12, %ymm4
+ vcmple_oqps %ymm5, %ymm7, %ymm6
+ vpsubd %ymm15, %ymm13, %ymm10
+ vpsubd %ymm15, %ymm12, %ymm8
+
+/*
+ * 1) If y<x then a= y, b=x, PIO2=0
+ * 2) If y>x then a=-x, b=y, PIO2=Pi/2
+ */
+ vorps 192+__svml_satan2_data_internal(%rip), %ymm13, %ymm3
+ vblendvps %ymm4, %ymm12, %ymm3, %ymm14
+ vblendvps %ymm4, %ymm13, %ymm12, %ymm3
+
+/* Division a/b. */
+ vdivps %ymm3, %ymm14, %ymm11
+ vpcmpgtd %ymm9, %ymm10, %ymm14
+ vpcmpeqd %ymm9, %ymm10, %ymm15
+ vpor %ymm15, %ymm14, %ymm10
+ vmovups 512+__svml_satan2_data_internal(%rip), %ymm15
+ vpcmpgtd %ymm9, %ymm8, %ymm14
+ vpcmpeqd %ymm9, %ymm8, %ymm8
+ vpor %ymm8, %ymm14, %ymm9
+ vmovups 448+__svml_satan2_data_internal(%rip), %ymm14
+ vpor %ymm9, %ymm10, %ymm10
+
+/* Polynomial. */
+ vmulps %ymm11, %ymm11, %ymm9
+ vmulps %ymm9, %ymm9, %ymm8
+ vfmadd213ps 576+__svml_satan2_data_internal(%rip), %ymm8, %ymm14
+ vfmadd213ps 640+__svml_satan2_data_internal(%rip), %ymm8, %ymm15
+ vfmadd213ps 704+__svml_satan2_data_internal(%rip), %ymm8, %ymm14
+ vfmadd213ps 768+__svml_satan2_data_internal(%rip), %ymm8, %ymm15
+ vfmadd213ps 832+__svml_satan2_data_internal(%rip), %ymm8, %ymm14
+ vfmadd213ps 896+__svml_satan2_data_internal(%rip), %ymm8, %ymm15
+ vfmadd213ps 960+__svml_satan2_data_internal(%rip), %ymm8, %ymm14
+ vfmadd213ps %ymm14, %ymm9, %ymm15
+ vandnps 320+__svml_satan2_data_internal(%rip), %ymm4, %ymm4
+
+/* Reconstruction. */
+ vfmadd213ps %ymm4, %ymm11, %ymm15
+ vxorps %ymm13, %ymm7, %ymm1
+ vandps 384+__svml_satan2_data_internal(%rip), %ymm6, %ymm6
+ vorps %ymm1, %ymm15, %ymm11
+ vaddps %ymm11, %ymm6, %ymm8
+ vmovmskps %ymm10, %eax
+ vxorps %ymm12, %ymm0, %ymm2
+ vorps %ymm2, %ymm8, %ymm9
+
+/* Special branch for fast (vector) processing of zero arguments */
+ testl %eax, %eax
+ jne L(7)
+
+L(1):
+/*
+ * Special branch for fast (vector) processing of zero arguments
+ * The end of implementation
+ */
+ testl %edx, %edx
+ jne L(3)
+
+L(2):
+ vmovaps %ymm9, %ymm0
+ vmovups 32(%rsp), %ymm8
+ cfi_restore(91)
+ vmovups 96(%rsp), %ymm9
+ cfi_restore(92)
+ vmovups 160(%rsp), %ymm10
+ cfi_restore(93)
+ vmovups 224(%rsp), %ymm11
+ cfi_restore(94)
+ vmovups 256(%rsp), %ymm12
+ cfi_restore(95)
+ vmovups 288(%rsp), %ymm13
+ cfi_restore(96)
+ vmovups 320(%rsp), %ymm14
+ cfi_restore(97)
+ vmovups 352(%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, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x22
+
+L(3):
+ vmovups %ymm0, 64(%rsp)
+ vmovups %ymm7, 128(%rsp)
+ vmovups %ymm9, 192(%rsp)
+ je L(2)
+ xorl %eax, %eax
+ vzeroupper
+ movq %rsi, 8(%rsp)
+ movq %rdi, (%rsp)
+ movq %r12, 24(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 16(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+L(4):
+ btl %r12d, %r13d
+ jc L(6)
+
+L(5):
+ incl %r12d
+ cmpl $8, %r12d
+ jl L(4)
+ 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 192(%rsp), %ymm9
+ jmp L(2)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+
+L(6):
+ lea 64(%rsp,%r12,4), %rdi
+ lea 128(%rsp,%r12,4), %rsi
+ lea 192(%rsp,%r12,4), %rdx
+ call __svml_satan2_cout_rare_internal
+ jmp L(5)
+ cfi_restore(4)
+ cfi_restore(5)
+ cfi_restore(12)
+ cfi_restore(13)
+
+L(7):
+/* Check if at least on of Y or Y is zero: iAXAYZERO */
+ vpcmpeqd %ymm5, %ymm13, %ymm13
+ vpcmpeqd %ymm5, %ymm12, %ymm12
+
+/* Check if both X & Y are not NaNs: iXYnotNAN */
+ vcmpordps %ymm7, %ymm7, %ymm11
+ vcmpordps %ymm0, %ymm0, %ymm14
+
+/*
+ * Path for zero arguments (at least one of both)
+ * Check if both args are zeros (den. is zero)
+ */
+ vcmpeqps %ymm5, %ymm3, %ymm3
+ vpor %ymm12, %ymm13, %ymm15
+
+/* Set sPIO2 to zero if den. is zero */
+ vblendvps %ymm3, %ymm5, %ymm4, %ymm4
+ vandps %ymm14, %ymm11, %ymm8
+
+/* Check if at least on of Y or Y is zero and not NaN: iAXAYZEROnotNAN */
+ vpand %ymm8, %ymm15, %ymm8
+
+/* Res = sign(Y)*(X<0)?(PIO2+PI):PIO2 */
+ vpcmpgtd %ymm7, %ymm5, %ymm5
+ vorps %ymm1, %ymm4, %ymm1
+ vandps %ymm6, %ymm5, %ymm6
+ vaddps %ymm6, %ymm1, %ymm1
+
+/* Exclude from previous callout mask zero (and not NaN) arguments */
+ vpandn %ymm10, %ymm8, %ymm10
+ vorps %ymm2, %ymm1, %ymm2
+
+/* Go to callout */
+ vmovmskps %ymm10, %edx
+
+/* Merge results from main and spec path */
+ vblendvps %ymm8, %ymm2, %ymm9, %ymm9
+ jmp L(1)
+
+END(_ZGVdN8vv_atan2f_avx2)
+
+ .align 16,0x90
+
+__svml_satan2_cout_rare_internal:
+
+ cfi_startproc
+
+ pxor %xmm0, %xmm0
+ movss (%rdi), %xmm3
+ pxor %xmm1, %xmm1
+ movss (%rsi), %xmm2
+ movq %rdx, %r8
+ cvtss2sd %xmm3, %xmm0
+ cvtss2sd %xmm2, %xmm1
+ movss %xmm3, -32(%rsp)
+ movss %xmm2, -28(%rsp)
+ movsd %xmm0, -48(%rsp)
+ movsd %xmm1, -40(%rsp)
+ movzwl -30(%rsp), %edi
+ andl $32640, %edi
+ movb -25(%rsp), %dl
+ movzwl -42(%rsp), %eax
+ andb $-128, %dl
+ movzwl -34(%rsp), %r9d
+ andl $32752, %eax
+ andl $32752, %r9d
+ shrl $7, %edi
+ movb -29(%rsp), %cl
+ shrb $7, %cl
+ shrb $7, %dl
+ shrl $4, %eax
+ shrl $4, %r9d
+ cmpl $255, %edi
+ je L(25)
+ movzwl -26(%rsp), %esi
+ andl $32640, %esi
+ cmpl $32640, %esi
+ je L(25)
+ testl %eax, %eax
+ jne L(8)
+ testl $8388607, -32(%rsp)
+ je L(20)
+
+L(8):
+ testl %r9d, %r9d
+ jne L(9)
+ testl $8388607, -28(%rsp)
+ je L(19)
+
+L(9):
+ negl %r9d
+ movsd %xmm0, -48(%rsp)
+ addl %eax, %r9d
+ movsd %xmm1, -40(%rsp)
+ movb -41(%rsp), %dil
+ movb -33(%rsp), %sil
+ andb $127, %dil
+ andb $127, %sil
+ cmpl $-54, %r9d
+ jle L(17)
+ cmpl $54, %r9d
+ jge L(15)
+ movb %sil, -33(%rsp)
+ movb %dil, -41(%rsp)
+ testb %dl, %dl
+ jne L(10)
+ movsd 1976+__satan2_la_CoutTab(%rip), %xmm1
+ movaps %xmm1, %xmm0
+ jmp L(11)
+
+L(10):
+ movsd 1936+__satan2_la_CoutTab(%rip), %xmm1
+ movsd 1944+__satan2_la_CoutTab(%rip), %xmm0
+
+L(11):
+ movsd -48(%rsp), %xmm4
+ movsd -40(%rsp), %xmm2
+ movaps %xmm4, %xmm5
+ divsd %xmm2, %xmm5
+ movzwl -42(%rsp), %esi
+ movsd %xmm5, -16(%rsp)
+ testl %eax, %eax
+ jle L(24)
+ cmpl $2046, %eax
+ jge L(12)
+ andl $-32753, %esi
+ addl $-1023, %eax
+ movsd %xmm4, -48(%rsp)
+ addl $16368, %esi
+ movw %si, -42(%rsp)
+ jmp L(13)
+
+L(12):
+ movsd 1992+__satan2_la_CoutTab(%rip), %xmm3
+ movl $1022, %eax
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+
+L(13):
+ negl %eax
+ movq 1888+__satan2_la_CoutTab(%rip), %rsi
+ addl $1023, %eax
+ movq %rsi, -40(%rsp)
+ andl $2047, %eax
+ shrq $48, %rsi
+ shll $4, %eax
+ andl $-32753, %esi
+ orl %eax, %esi
+ movw %si, -34(%rsp)
+ movsd -40(%rsp), %xmm3
+ mulsd %xmm3, %xmm2
+ comisd 1880+__satan2_la_CoutTab(%rip), %xmm5
+ jb L(14)
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm12
+ movaps %xmm2, %xmm3
+ mulsd %xmm2, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd %xmm5, -24(%rsp)
+ subsd %xmm2, %xmm13
+ movsd %xmm13, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm14
+ movl -20(%rsp), %edi
+ movl %edi, %r9d
+ andl $-524288, %edi
+ andl $-1048576, %r9d
+ addl $262144, %edi
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -72(%rsp)
+ andl $1048575, %edi
+ movsd -72(%rsp), %xmm4
+ orl %edi, %r9d
+ movl $0, -24(%rsp)
+ subsd %xmm4, %xmm3
+ movl %r9d, -20(%rsp)
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -24(%rsp), %xmm11
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm5
+ mulsd %xmm11, %xmm9
+ movsd 1968+__satan2_la_CoutTab(%rip), %xmm8
+ mulsd %xmm8, %xmm5
+ mulsd %xmm8, %xmm9
+ movaps %xmm5, %xmm7
+ movzwl -10(%rsp), %esi
+ addsd %xmm9, %xmm7
+ movsd %xmm7, -72(%rsp)
+ andl $32752, %esi
+ movsd -72(%rsp), %xmm6
+ shrl $4, %esi
+ subsd %xmm6, %xmm5
+ movl -12(%rsp), %eax
+ addsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ andl $1048575, %eax
+ movsd -48(%rsp), %xmm9
+ movsd -72(%rsp), %xmm3
+ movaps %xmm9, %xmm12
+ movsd -64(%rsp), %xmm10
+ movaps %xmm9, %xmm14
+ movaps %xmm9, %xmm6
+ addsd %xmm3, %xmm12
+ movsd %xmm12, -72(%rsp)
+ movsd -72(%rsp), %xmm13
+ shll $20, %esi
+ subsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ orl %eax, %esi
+ movsd -72(%rsp), %xmm4
+ addl $-1069547520, %esi
+ movsd -64(%rsp), %xmm15
+ movl $113, %eax
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm15, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ sarl $19, %esi
+ addsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ cmpl $113, %esi
+ movsd -56(%rsp), %xmm7
+ cmovl %esi, %eax
+ subsd %xmm7, %xmm6
+ movsd %xmm6, -56(%rsp)
+ addl %eax, %eax
+ movsd -64(%rsp), %xmm12
+ lea __satan2_la_CoutTab(%rip), %rsi
+ movsd -56(%rsp), %xmm5
+ movslq %eax, %rax
+ addsd %xmm5, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm7, %xmm13
+ movsd -56(%rsp), %xmm8
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm10, %xmm8
+ movsd -72(%rsp), %xmm4
+ movaps %xmm9, %xmm10
+ mulsd 2000+__satan2_la_CoutTab(%rip), %xmm10
+ subsd %xmm7, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd -64(%rsp), %xmm14
+ subsd %xmm14, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm15
+ subsd %xmm15, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm4
+ movsd %xmm10, -72(%rsp)
+ movaps %xmm2, %xmm10
+ addsd %xmm4, %xmm8
+ movsd -72(%rsp), %xmm4
+ subsd -48(%rsp), %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm3
+ subsd %xmm3, %xmm6
+ movaps %xmm2, %xmm3
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ subsd %xmm5, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ movsd -64(%rsp), %xmm9
+ mulsd %xmm11, %xmm12
+ mulsd %xmm11, %xmm9
+ movaps %xmm12, %xmm11
+ addsd %xmm9, %xmm11
+ movsd %xmm11, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm12
+ addsd %xmm9, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm15
+ movsd -64(%rsp), %xmm6
+ addsd %xmm15, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm5, %xmm10
+ movsd %xmm10, -64(%rsp)
+ movsd -72(%rsp), %xmm13
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm13
+ movsd %xmm13, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ addsd %xmm14, %xmm15
+ movsd %xmm15, -64(%rsp)
+ movsd -56(%rsp), %xmm4
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm14
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -64(%rsp), %xmm4
+ movsd -56(%rsp), %xmm2
+ addsd %xmm2, %xmm4
+ movsd %xmm4, -56(%rsp)
+ movsd -72(%rsp), %xmm12
+ mulsd %xmm12, %xmm3
+ movsd -56(%rsp), %xmm5
+ movsd %xmm3, -72(%rsp)
+ addsd %xmm6, %xmm5
+ movsd -72(%rsp), %xmm9
+ subsd %xmm12, %xmm9
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm2
+ subsd %xmm2, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ divsd %xmm9, %xmm14
+ mulsd %xmm14, %xmm13
+ movsd -64(%rsp), %xmm10
+ movsd %xmm13, -64(%rsp)
+ addsd %xmm10, %xmm5
+ movsd -64(%rsp), %xmm15
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm12
+ subsd %xmm14, %xmm15
+ movsd %xmm15, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm4
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movsd -56(%rsp), %xmm3
+ mulsd %xmm3, %xmm9
+ movsd -56(%rsp), %xmm11
+ subsd %xmm9, %xmm12
+ mulsd %xmm11, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -64(%rsp), %xmm5
+ subsd %xmm5, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -64(%rsp), %xmm2
+ movq -56(%rsp), %r10
+ movsd -64(%rsp), %xmm6
+ movsd -56(%rsp), %xmm4
+ movq %r10, -40(%rsp)
+ movsd -40(%rsp), %xmm3
+ movaps %xmm3, %xmm5
+ addsd 1888+__satan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm5
+ mulsd %xmm6, %xmm2
+ mulsd %xmm4, %xmm2
+ mulsd %xmm2, %xmm7
+ mulsd %xmm8, %xmm2
+ mulsd %xmm3, %xmm8
+ addsd %xmm2, %xmm7
+ movsd 1872+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm8, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movaps %xmm5, %xmm7
+ movsd -72(%rsp), %xmm4
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm6
+ addsd %xmm4, %xmm7
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ subsd %xmm8, %xmm5
+ addsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ movaps %xmm11, %xmm2
+ mulsd %xmm11, %xmm2
+ mulsd %xmm11, %xmm6
+ mulsd %xmm2, %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ addsd 1864+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm11, %xmm7
+ mulsd %xmm2, %xmm3
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm9
+ movsd -64(%rsp), %xmm8
+ addsd 1856+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm8, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ addsd 1848+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm10, %xmm11
+ mulsd %xmm2, %xmm3
+ movsd %xmm11, -64(%rsp)
+ addsd 1840+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1832+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ addsd 1824+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm3, %xmm13
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %r11
+ movsd -56(%rsp), %xmm15
+ movq %r11, -40(%rsp)
+ addsd %xmm15, %xmm4
+ movsd -40(%rsp), %xmm8
+ addsd %xmm5, %xmm4
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm8, %xmm4
+ movaps %xmm8, %xmm2
+ addsd (%rsi,%rax,8), %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd (%rsi,%rax,8), %xmm6
+ movsd %xmm6, -64(%rsp)
+ movsd -56(%rsp), %xmm7
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movq -72(%rsp), %rdi
+ movq %rdi, -40(%rsp)
+ movsd -56(%rsp), %xmm2
+ movaps %xmm1, %xmm3
+ shrq $56, %rdi
+ addsd -32(%rsp), %xmm2
+ shlb $7, %cl
+ addsd 8(%rsi,%rax,8), %xmm2
+ movb %dl, %al
+ andb $127, %dil
+ shlb $7, %al
+ movsd %xmm2, -32(%rsp)
+ orb %al, %dil
+ movb %dil, -33(%rsp)
+ movsd -40(%rsp), %xmm9
+ movaps %xmm9, %xmm5
+ addsd %xmm9, %xmm3
+ movsd %xmm3, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %sil
+ movb %sil, %r9b
+ shrb $7, %sil
+ subsd %xmm4, %xmm5
+ movsd %xmm5, -64(%rsp)
+ movsd -72(%rsp), %xmm7
+ movsd -64(%rsp), %xmm6
+ xorb %sil, %dl
+ andb $127, %r9b
+ shlb $7, %dl
+ addsd %xmm6, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm8
+ addsd %xmm8, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %dl, %r9b
+ movsd -56(%rsp), %xmm1
+ movb %r9b, -25(%rsp)
+ subsd %xmm1, %xmm9
+ movsd %xmm9, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ movsd -56(%rsp), %xmm10
+ addsd %xmm10, %xmm11
+ movsd %xmm11, -56(%rsp)
+ movq -72(%rsp), %rdx
+ movsd -56(%rsp), %xmm12
+ movq %rdx, -40(%rsp)
+ addsd %xmm12, %xmm0
+ movsd -40(%rsp), %xmm13
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm13
+ movsd %xmm13, -24(%rsp)
+ movb -17(%rsp), %r10b
+ andb $127, %r10b
+ orb %cl, %r10b
+ movb %r10b, -17(%rsp)
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ movss %xmm0, (%r8)
+ jmp L(23)
+
+L(14):
+ movsd -48(%rsp), %xmm12
+ movb %dl, %dil
+ movaps %xmm12, %xmm7
+ mulsd 2000+__satan2_la_CoutTab(%rip), %xmm7
+ shlb $7, %dil
+ shlb $7, %cl
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm2, %xmm13
+ subsd -48(%rsp), %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -72(%rsp)
+ movsd -72(%rsp), %xmm11
+ subsd %xmm11, %xmm12
+ movsd %xmm12, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movsd %xmm13, -72(%rsp)
+ movsd -72(%rsp), %xmm14
+ subsd %xmm2, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm4
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm4
+ subsd %xmm3, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm12
+ divsd %xmm12, %xmm7
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm2
+ mulsd %xmm7, %xmm2
+ movsd -64(%rsp), %xmm14
+ movsd %xmm2, -64(%rsp)
+ movsd -64(%rsp), %xmm8
+ subsd %xmm7, %xmm8
+ movsd %xmm8, -56(%rsp)
+ movsd -64(%rsp), %xmm10
+ movsd -56(%rsp), %xmm9
+ subsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -56(%rsp), %xmm11
+ mulsd %xmm11, %xmm12
+ movsd -56(%rsp), %xmm13
+ subsd %xmm12, %xmm4
+ mulsd %xmm13, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -64(%rsp), %xmm15
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm13
+ subsd %xmm15, %xmm4
+ movsd %xmm4, -64(%rsp)
+ movsd -64(%rsp), %xmm7
+ movq -56(%rsp), %rax
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm3
+ movq %rax, -40(%rsp)
+ movsd -40(%rsp), %xmm8
+ movaps %xmm8, %xmm9
+ addsd 1888+__satan2_la_CoutTab(%rip), %xmm7
+ mulsd %xmm6, %xmm9
+ mulsd %xmm5, %xmm8
+ mulsd %xmm2, %xmm7
+ movsd -16(%rsp), %xmm2
+ mulsd %xmm2, %xmm2
+ mulsd %xmm3, %xmm7
+ movsd 1872+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ mulsd %xmm7, %xmm6
+ mulsd %xmm5, %xmm7
+ addsd 1864+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm7, %xmm6
+ mulsd %xmm2, %xmm3
+ addsd %xmm8, %xmm6
+ addsd 1856+__satan2_la_CoutTab(%rip), %xmm3
+ mulsd %xmm2, %xmm3
+ movaps %xmm9, %xmm5
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ addsd 1848+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm5
+ mulsd %xmm2, %xmm3
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd 2000+__satan2_la_CoutTab(%rip), %xmm5
+ subsd %xmm6, %xmm9
+ addsd 1840+__satan2_la_CoutTab(%rip), %xmm3
+ addsd %xmm4, %xmm9
+ mulsd %xmm2, %xmm3
+ movsd %xmm9, -64(%rsp)
+ movsd -72(%rsp), %xmm11
+ mulsd %xmm11, %xmm5
+ addsd 1832+__satan2_la_CoutTab(%rip), %xmm3
+ movsd -64(%rsp), %xmm4
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm7
+ mulsd %xmm2, %xmm3
+ subsd %xmm11, %xmm7
+ movsd %xmm7, -64(%rsp)
+ movsd -72(%rsp), %xmm8
+ movsd -64(%rsp), %xmm6
+ addsd 1824+__satan2_la_CoutTab(%rip), %xmm3
+ subsd %xmm6, %xmm8
+ mulsd %xmm2, %xmm3
+ movsd %xmm8, -72(%rsp)
+ movsd -72(%rsp), %xmm10
+ mulsd %xmm3, %xmm13
+ subsd %xmm10, %xmm11
+ movsd %xmm11, -64(%rsp)
+ movsd -72(%rsp), %xmm2
+ movsd -64(%rsp), %xmm12
+ movsd %xmm13, -72(%rsp)
+ addsd %xmm12, %xmm4
+ movsd -72(%rsp), %xmm14
+ subsd %xmm3, %xmm14
+ movsd %xmm14, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm15
+ subsd %xmm15, %xmm5
+ movsd %xmm5, -72(%rsp)
+ movsd -72(%rsp), %xmm6
+ subsd %xmm6, %xmm3
+ movsd %xmm3, -64(%rsp)
+ movsd -72(%rsp), %xmm6
+ movsd -64(%rsp), %xmm5
+ movaps %xmm6, %xmm12
+ movaps %xmm5, %xmm3
+ mulsd %xmm4, %xmm6
+ mulsd %xmm4, %xmm3
+ mulsd %xmm2, %xmm5
+ mulsd %xmm2, %xmm12
+ addsd %xmm3, %xmm6
+ movaps %xmm12, %xmm7
+ movaps %xmm12, %xmm8
+ addsd %xmm5, %xmm6
+ addsd %xmm2, %xmm7
+ movsd %xmm6, -72(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd %xmm7, -72(%rsp)
+ movsd -72(%rsp), %xmm3
+ subsd %xmm3, %xmm8
+ movsd %xmm8, -64(%rsp)
+ movsd -72(%rsp), %xmm10
+ movsd -64(%rsp), %xmm9
+ addsd %xmm9, %xmm10
+ movsd %xmm10, -56(%rsp)
+ movsd -64(%rsp), %xmm11
+ addsd %xmm11, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -56(%rsp), %xmm2
+ subsd %xmm2, %xmm12
+ movsd %xmm12, -56(%rsp)
+ movsd -64(%rsp), %xmm14
+ movsd -56(%rsp), %xmm13
+ addsd %xmm13, %xmm14
+ movsd %xmm14, -56(%rsp)
+ movq -72(%rsp), %rsi
+ movsd -56(%rsp), %xmm15
+ movq %rsi, -40(%rsp)
+ addsd %xmm15, %xmm4
+ shrq $56, %rsi
+ addsd %xmm5, %xmm4
+ andb $127, %sil
+ orb %dil, %sil
+ movb %sil, -33(%rsp)
+ movsd %xmm4, -32(%rsp)
+ movaps %xmm1, %xmm4
+ movsd -40(%rsp), %xmm7
+ movaps %xmm7, %xmm2
+ addsd %xmm7, %xmm4
+ movsd %xmm4, -72(%rsp)
+ movsd -72(%rsp), %xmm4
+ movb -25(%rsp), %r9b
+ movb %r9b, %r10b
+ shrb $7, %r9b
+ subsd %xmm4, %xmm2
+ movsd %xmm2, -64(%rsp)
+ movsd -72(%rsp), %xmm5
+ movsd -64(%rsp), %xmm3
+ xorb %r9b, %dl
+ andb $127, %r10b
+ shlb $7, %dl
+ addsd %xmm3, %xmm5
+ movsd %xmm5, -56(%rsp)
+ movsd -64(%rsp), %xmm6
+ addsd %xmm6, %xmm1
+ movsd %xmm1, -64(%rsp)
+ orb %dl, %r10b
+ movsd -56(%rsp), %xmm1
+ movb %r10b, -25(%rsp)
+ subsd %xmm1, %xmm7
+ movsd %xmm7, -56(%rsp)
+ movsd -64(%rsp), %xmm2
+ movsd -56(%rsp), %xmm1
+ addsd %xmm1, %xmm2
+ movsd %xmm2, -56(%rsp)
+ movq -72(%rsp), %rdx
+ movsd -56(%rsp), %xmm3
+ movq %rdx, -40(%rsp)
+ addsd %xmm3, %xmm0
+ movsd -40(%rsp), %xmm4
+ addsd -32(%rsp), %xmm0
+ movsd %xmm0, -32(%rsp)
+ addsd %xmm0, %xmm4
+ movsd %xmm4, -24(%rsp)
+ movb -17(%rsp), %r11b
+ andb $127, %r11b
+ orb %cl, %r11b
+ movb %r11b, -17(%rsp)
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ movss %xmm0, (%r8)
+ jmp L(23)
+
+L(15):
+ cmpl $74, %r9d
+ jge L(16)
+ movb %dil, -41(%rsp)
+ divsd -48(%rsp), %xmm1
+ movsd 1928+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ subsd %xmm1, %xmm0
+ addsd 1920+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(16):
+ movsd 1920+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1928+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(17):
+ testb %dl, %dl
+ jne L(22)
+ movb %dil, -41(%rsp)
+ pxor %xmm0, %xmm0
+ movb %sil, -33(%rsp)
+ movsd -48(%rsp), %xmm2
+ divsd -40(%rsp), %xmm2
+ cvtsd2ss %xmm2, %xmm0
+ movss %xmm0, -8(%rsp)
+ movzwl -6(%rsp), %eax
+ movsd %xmm2, -24(%rsp)
+ testl $32640, %eax
+ je L(18)
+ movsd 1888+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd %xmm2, %xmm0
+ movsd %xmm0, -72(%rsp)
+ movsd -72(%rsp), %xmm1
+ mulsd %xmm1, %xmm2
+ movsd %xmm2, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm2
+ cvtsd2ss %xmm2, %xmm2
+ movss %xmm2, (%r8)
+ jmp L(23)
+
+L(18):
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ shlb $7, %cl
+ movss %xmm0, -8(%rsp)
+ movss -8(%rsp), %xmm2
+ movss -8(%rsp), %xmm1
+ mulss %xmm1, %xmm2
+ movss %xmm2, -8(%rsp)
+ movss -8(%rsp), %xmm3
+ cvtss2sd %xmm3, %xmm3
+ addsd -24(%rsp), %xmm3
+ movsd %xmm3, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm4
+ cvtsd2ss %xmm4, %xmm4
+ movss %xmm4, (%r8)
+ jmp L(23)
+
+L(19):
+ testl %eax, %eax
+ jne L(16)
+ testl $8388607, -32(%rsp)
+ jne L(16)
+
+L(20):
+ testb %dl, %dl
+ jne L(22)
+
+L(21):
+ shlb $7, %cl
+ movq 1976+__satan2_la_CoutTab(%rip), %rax
+ movq %rax, -24(%rsp)
+ shrq $56, %rax
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm0
+ cvtsd2ss %xmm0, %xmm0
+ movss %xmm0, (%r8)
+ jmp L(23)
+
+L(22):
+ movsd 1936+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1944+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+
+L(23):
+ xorl %eax, %eax
+ ret
+
+L(24):
+ movsd 1984+__satan2_la_CoutTab(%rip), %xmm3
+ movl $-1022, %eax
+ mulsd %xmm3, %xmm4
+ movsd %xmm4, -48(%rsp)
+ jmp L(13)
+
+L(25):
+ cmpl $2047, %eax
+ je L(32)
+
+L(26):
+ cmpl $2047, %r9d
+ je L(30)
+
+L(27):
+ movzwl -26(%rsp), %eax
+ andl $32640, %eax
+ cmpl $32640, %eax
+ jne L(16)
+ cmpl $255, %edi
+ je L(28)
+ testb %dl, %dl
+ je L(21)
+ jmp L(22)
+
+L(28):
+ testb %dl, %dl
+ jne L(29)
+ movsd 1904+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1912+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(29):
+ movsd 1952+__satan2_la_CoutTab(%rip), %xmm0
+ shlb $7, %cl
+ addsd 1960+__satan2_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, -24(%rsp)
+ movb -17(%rsp), %al
+ andb $127, %al
+ orb %cl, %al
+ movb %al, -17(%rsp)
+ movsd -24(%rsp), %xmm1
+ cvtsd2ss %xmm1, %xmm1
+ movss %xmm1, (%r8)
+ jmp L(23)
+
+L(30):
+ testl $8388607, -28(%rsp)
+ je L(27)
+
+L(31):
+ addss %xmm2, %xmm3
+ movss %xmm3, (%r8)
+ jmp L(23)
+
+L(32):
+ testl $8388607, -32(%rsp)
+ jne L(31)
+ jmp L(26)
+
+ cfi_endproc
+
+ .type __svml_satan2_cout_rare_internal,@function
+ .size __svml_satan2_cout_rare_internal,.-__svml_satan2_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_satan2_data_internal:
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 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 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .long 1073741824
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 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 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 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .long 1070141403
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .long 1078530011
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .long 993144000
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .long 3162449457
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .long 1026278276
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .long 3180885545
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .long 1037657204
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .long 3188810232
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .long 1045215135
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .long 3198855753
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 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 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .long 2164260864
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 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 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .long 4227858432
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .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_satan2_data_internal,@object
+ .size __svml_satan2_data_internal,1152
+ .align 32
+
+__satan2_la_CoutTab:
+ .long 3892314112
+ .long 1069799150
+ .long 2332892550
+ .long 1039715405
+ .long 1342177280
+ .long 1070305495
+ .long 270726690
+ .long 1041535749
+ .long 939524096
+ .long 1070817911
+ .long 2253973841
+ .long 3188654726
+ .long 3221225472
+ .long 1071277294
+ .long 3853927037
+ .long 1043226911
+ .long 2818572288
+ .long 1071767563
+ .long 2677759107
+ .long 1044314101
+ .long 3355443200
+ .long 1072103591
+ .long 1636578514
+ .long 3191094734
+ .long 1476395008
+ .long 1072475260
+ .long 1864703685
+ .long 3188646936
+ .long 805306368
+ .long 1072747407
+ .long 192551812
+ .long 3192726267
+ .long 2013265920
+ .long 1072892781
+ .long 2240369452
+ .long 1043768538
+ .long 0
+ .long 1072999953
+ .long 3665168337
+ .long 3192705970
+ .long 402653184
+ .long 1073084787
+ .long 1227953434
+ .long 3192313277
+ .long 2013265920
+ .long 1073142981
+ .long 3853283127
+ .long 1045277487
+ .long 805306368
+ .long 1073187261
+ .long 1676192264
+ .long 3192868861
+ .long 134217728
+ .long 1073217000
+ .long 4290763938
+ .long 1042034855
+ .long 671088640
+ .long 1073239386
+ .long 994303084
+ .long 3189643768
+ .long 402653184
+ .long 1073254338
+ .long 1878067156
+ .long 1042652475
+ .long 1610612736
+ .long 1073265562
+ .long 670314820
+ .long 1045138554
+ .long 3221225472
+ .long 1073273048
+ .long 691126919
+ .long 3189987794
+ .long 3489660928
+ .long 1073278664
+ .long 1618990832
+ .long 3188194509
+ .long 1207959552
+ .long 1073282409
+ .long 2198872939
+ .long 1044806069
+ .long 3489660928
+ .long 1073285217
+ .long 2633982383
+ .long 1042307894
+ .long 939524096
+ .long 1073287090
+ .long 1059367786
+ .long 3189114230
+ .long 2281701376
+ .long 1073288494
+ .long 3158525533
+ .long 1044484961
+ .long 3221225472
+ .long 1073289430
+ .long 286581777
+ .long 1044893263
+ .long 4026531840
+ .long 1073290132
+ .long 2000245215
+ .long 3191647611
+ .long 134217728
+ .long 1073290601
+ .long 4205071590
+ .long 1045035927
+ .long 536870912
+ .long 1073290952
+ .long 2334392229
+ .long 1043447393
+ .long 805306368
+ .long 1073291186
+ .long 2281458177
+ .long 3188885569
+ .long 3087007744
+ .long 1073291361
+ .long 691611507
+ .long 1044733832
+ .long 3221225472
+ .long 1073291478
+ .long 1816229550
+ .long 1044363390
+ .long 2281701376
+ .long 1073291566
+ .long 1993843750
+ .long 3189837440
+ .long 134217728
+ .long 1073291625
+ .long 3654754496
+ .long 1044970837
+ .long 4026531840
+ .long 1073291668
+ .long 3224300229
+ .long 3191935390
+ .long 805306368
+ .long 1073291698
+ .long 2988777976
+ .long 3188950659
+ .long 536870912
+ .long 1073291720
+ .long 1030371341
+ .long 1043402665
+ .long 3221225472
+ .long 1073291734
+ .long 1524463765
+ .long 1044361356
+ .long 3087007744
+ .long 1073291745
+ .long 2754295320
+ .long 1044731036
+ .long 134217728
+ .long 1073291753
+ .long 3099629057
+ .long 1044970710
+ .long 2281701376
+ .long 1073291758
+ .long 962914160
+ .long 3189838838
+ .long 805306368
+ .long 1073291762
+ .long 3543908206
+ .long 3188950786
+ .long 4026531840
+ .long 1073291764
+ .long 1849909620
+ .long 3191935434
+ .long 3221225472
+ .long 1073291766
+ .long 1641333636
+ .long 1044361352
+ .long 536870912
+ .long 1073291768
+ .long 1373968792
+ .long 1043402654
+ .long 134217728
+ .long 1073291769
+ .long 2033191599
+ .long 1044970710
+ .long 3087007744
+ .long 1073291769
+ .long 4117947437
+ .long 1044731035
+ .long 805306368
+ .long 1073291770
+ .long 315378368
+ .long 3188950787
+ .long 2281701376
+ .long 1073291770
+ .long 2428571750
+ .long 3189838838
+ .long 3221225472
+ .long 1073291770
+ .long 1608007466
+ .long 1044361352
+ .long 4026531840
+ .long 1073291770
+ .long 1895711420
+ .long 3191935434
+ .long 134217728
+ .long 1073291771
+ .long 2031108713
+ .long 1044970710
+ .long 536870912
+ .long 1073291771
+ .long 1362518342
+ .long 1043402654
+ .long 805306368
+ .long 1073291771
+ .long 317461253
+ .long 3188950787
+ .long 939524096
+ .long 1073291771
+ .long 4117231784
+ .long 1044731035
+ .long 1073741824
+ .long 1073291771
+ .long 1607942376
+ .long 1044361352
+ .long 1207959552
+ .long 1073291771
+ .long 2428929577
+ .long 3189838838
+ .long 1207959552
+ .long 1073291771
+ .long 2031104645
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1895722602
+ .long 3191935434
+ .long 1342177280
+ .long 1073291771
+ .long 317465322
+ .long 3188950787
+ .long 1342177280
+ .long 1073291771
+ .long 1362515546
+ .long 1043402654
+ .long 1342177280
+ .long 1073291771
+ .long 1607942248
+ .long 1044361352
+ .long 1342177280
+ .long 1073291771
+ .long 4117231610
+ .long 1044731035
+ .long 1342177280
+ .long 1073291771
+ .long 2031104637
+ .long 1044970710
+ .long 1342177280
+ .long 1073291771
+ .long 1540251232
+ .long 1045150466
+ .long 1342177280
+ .long 1073291771
+ .long 2644671394
+ .long 1045270303
+ .long 1342177280
+ .long 1073291771
+ .long 2399244691
+ .long 1045360181
+ .long 1342177280
+ .long 1073291771
+ .long 803971124
+ .long 1045420100
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192879152
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192849193
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192826724
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192811744
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192800509
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192793019
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192787402
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192783657
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192780848
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192778976
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192777572
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192776635
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192775933
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192775465
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192775114
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774880
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774704
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774587
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774500
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774441
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774397
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774368
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774346
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774331
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774320
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774313
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774308
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774304
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774301
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774299
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774298
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774297
+ .long 1476395008
+ .long 1073291771
+ .long 3613709523
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 177735686
+ .long 3192774296
+ .long 1476395008
+ .long 1073291771
+ .long 3490996172
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2754716064
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 2263862659
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1895722605
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1650295902
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1466225875
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1343512524
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1251477510
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1190120835
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1144103328
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1113424990
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1090416237
+ .long 3192774295
+ .long 1476395008
+ .long 1073291771
+ .long 1075077068
+ .long 3192774295
+ .long 1431655765
+ .long 3218429269
+ .long 2576978363
+ .long 1070176665
+ .long 2453154343
+ .long 3217180964
+ .long 4189149139
+ .long 1069314502
+ .long 1775019125
+ .long 3216459198
+ .long 273199057
+ .long 1068739452
+ .long 874748308
+ .long 3215993277
+ .long 0
+ .long 1069547520
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1073741824
+ .long 1413754136
+ .long 1072243195
+ .long 856972295
+ .long 1015129638
+ .long 1413754136
+ .long 1073291771
+ .long 856972295
+ .long 1016178214
+ .long 1413754136
+ .long 1074340347
+ .long 856972295
+ .long 1017226790
+ .long 2134057426
+ .long 1073928572
+ .long 1285458442
+ .long 1016756537
+ .long 0
+ .long 3220176896
+ .long 0
+ .long 0
+ .long 0
+ .long 2144337920
+ .long 0
+ .long 1048576
+ .long 33554432
+ .long 1101004800
+ .type __satan2_la_CoutTab,@object
+ .size __satan2_la_CoutTab,2008
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function atan2 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 (_ZGVbN2vv_atan2)
+WRAPPER_IMPL_SSE2_ff atan2
+END (_ZGVbN2vv_atan2)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN2vv_atan2)
+#endif
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function atan2 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 (_ZGVdN4vv_atan2)
+WRAPPER_IMPL_AVX_ff _ZGVbN2vv_atan2
+END (_ZGVdN4vv_atan2)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN4vv_atan2)
+#endif
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function atan2 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 (_ZGVcN4vv_atan2)
+WRAPPER_IMPL_AVX_ff _ZGVbN2vv_atan2
+END (_ZGVcN4vv_atan2)
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function atan2 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_d_wrapper_impl.h"
+
+ .text
+ENTRY (_ZGVeN8vv_atan2)
+WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_atan2
+END (_ZGVeN8vv_atan2)
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function atan2f 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 (_ZGVeN16vv_atan2f)
+WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_atan2f
+END (_ZGVeN16vv_atan2f)
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function atan2f 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_s_wrapper_impl.h"
+
+ .text
+ENTRY (_ZGVbN4vv_atan2f)
+WRAPPER_IMPL_SSE2_ff atan2f
+END (_ZGVbN4vv_atan2f)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN4vv_atan2f)
+#endif
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function atan2f 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 (_ZGVdN8vv_atan2f)
+WRAPPER_IMPL_AVX_ff _ZGVbN4vv_atan2f
+END (_ZGVdN8vv_atan2f)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN8vv_atan2f)
+#endif
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function atan2f 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(_ZGVcN8vv_atan2f)
+WRAPPER_IMPL_AVX_ff _ZGVbN4vv_atan2f
+END(_ZGVcN8vv_atan2f)
new file mode 100644
@@ -0,0 +1 @@
+#include "test-double-libmvec-atan2.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-double-libmvec-atan2.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-double-libmvec-atan2.c"
new file mode 100644
@@ -0,0 +1,3 @@
+#define LIBMVEC_TYPE double
+#define LIBMVEC_FUNC atan2
+#include "test-vector-abi-arg2.h"
@@ -32,6 +32,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVbN2v_acosh)
VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVbN2v_asin)
VECTOR_WRAPPER (WRAPPER_NAME (asinh), _ZGVbN2v_asinh)
VECTOR_WRAPPER (WRAPPER_NAME (atan), _ZGVbN2v_atan)
+VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2), _ZGVbN2vv_atan2)
#define VEC_INT_TYPE __m128i
@@ -35,6 +35,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVdN4v_acosh)
VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVdN4v_asin)
VECTOR_WRAPPER (WRAPPER_NAME (asinh), _ZGVdN4v_asinh)
VECTOR_WRAPPER (WRAPPER_NAME (atan), _ZGVdN4v_atan)
+VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2), _ZGVdN4vv_atan2)
#ifndef __ILP32__
# define VEC_INT_TYPE __m256i
@@ -32,6 +32,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVcN4v_acosh)
VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVcN4v_asin)
VECTOR_WRAPPER (WRAPPER_NAME (asinh), _ZGVcN4v_asinh)
VECTOR_WRAPPER (WRAPPER_NAME (atan), _ZGVcN4v_atan)
+VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2), _ZGVcN4vv_atan2)
#define VEC_INT_TYPE __m128i
@@ -32,6 +32,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVeN8v_acosh)
VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVeN8v_asin)
VECTOR_WRAPPER (WRAPPER_NAME (asinh), _ZGVeN8v_asinh)
VECTOR_WRAPPER (WRAPPER_NAME (atan), _ZGVeN8v_atan)
+VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2), _ZGVeN8vv_atan2)
#ifndef __ILP32__
# define VEC_INT_TYPE __m512i
new file mode 100644
@@ -0,0 +1 @@
+#include "test-float-libmvec-atan2f.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-float-libmvec-atan2f.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-float-libmvec-atan2f.c"
new file mode 100644
@@ -0,0 +1,3 @@
+#define LIBMVEC_TYPE float
+#define LIBMVEC_FUNC atan2f
+#include "test-vector-abi-arg2.h"
@@ -32,6 +32,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVeN16v_acoshf)
VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVeN16v_asinf)
VECTOR_WRAPPER (WRAPPER_NAME (asinhf), _ZGVeN16v_asinhf)
VECTOR_WRAPPER (WRAPPER_NAME (atanf), _ZGVeN16v_atanf)
+VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2f), _ZGVeN16vv_atan2f)
#define VEC_INT_TYPE __m512i
@@ -32,6 +32,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVbN4v_acoshf)
VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVbN4v_asinf)
VECTOR_WRAPPER (WRAPPER_NAME (asinhf), _ZGVbN4v_asinhf)
VECTOR_WRAPPER (WRAPPER_NAME (atanf), _ZGVbN4v_atanf)
+VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2f), _ZGVbN4vv_atan2f)
#define VEC_INT_TYPE __m128i
@@ -35,6 +35,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVdN8v_acoshf)
VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVdN8v_asinf)
VECTOR_WRAPPER (WRAPPER_NAME (asinhf), _ZGVdN8v_asinhf)
VECTOR_WRAPPER (WRAPPER_NAME (atanf), _ZGVdN8v_atanf)
+VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2f), _ZGVdN8vv_atan2f)
/* Redefinition of wrapper to be compatible with _ZGVdN8vvv_sincosf. */
#undef VECTOR_WRAPPER_fFF
@@ -32,6 +32,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVcN8v_acoshf)
VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVcN8v_asinf)
VECTOR_WRAPPER (WRAPPER_NAME (asinhf), _ZGVcN8v_asinhf)
VECTOR_WRAPPER (WRAPPER_NAME (atanf), _ZGVcN8v_atanf)
+VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2f), _ZGVcN8vv_atan2f)
#define VEC_INT_TYPE __m128i