diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core_avx512.S index c96f6e5960..82c0119500 100644 --- a/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core_avx512.S +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_tanh8_core_avx512.S @@ -28,7 +28,7 @@ * and to approximate tanh(.) with a polynomial on each of them. * * IEEE SPECIAL CONDITIONS: - * x = [+,-]0, r = [+,-]0 + * x = [+, -]0, r = [+, -]0 * x = +Inf, r = +1 * x = -Inf, r = -1 * x = QNaN, r = QNaN @@ -72,401 +72,399 @@ /* Offsets for data table __svml_dtanh_data_internal */ -#define _dC 0 -#define _dP0 128 -#define _dP1 256 -#define _dP2 384 -#define _dP3 512 -#define _dP4 640 -#define _dP5 768 -#define _dP6 896 -#define _dP7 1024 -#define _dP8 1152 -#define _dP9 1280 -#define _dP10 1408 -#define _dP11 1536 -#define _dP12 1664 -#define _dP13 1792 -#define _dP14 1920 -#define _dP15 2048 -#define _dP16 2176 -#define _dP17 2304 -#define _iExpMantMask_UISA 2432 -#define _iMinIdxOfsMask_UISA 2496 -#define _iMaxIdxMask_UISA 2560 -#define _dbSignMask 2624 -#define _dbAbsMask 2688 -#define _iExpMantMask 2752 -#define _iExpMask 2816 -#define _iMinIdxOfsMask 2880 -#define _iMaxIdxMask 2944 +#define _dC 0 +#define _dP0 128 +#define _dP1 256 +#define _dP2 384 +#define _dP3 512 +#define _dP4 640 +#define _dP5 768 +#define _dP6 896 +#define _dP7 1024 +#define _dP8 1152 +#define _dP9 1280 +#define _dP10 1408 +#define _dP11 1536 +#define _dP12 1664 +#define _dP13 1792 +#define _dP14 1920 +#define _dP15 2048 +#define _dP16 2176 +#define _dP17 2304 +#define _iExpMantMask_UISA 2432 +#define _iMinIdxOfsMask_UISA 2496 +#define _iMaxIdxMask_UISA 2560 +#define _dbSignMask 2624 +#define _dbAbsMask 2688 +#define _iExpMantMask 2752 +#define _iExpMask 2816 +#define _iMinIdxOfsMask 2880 +#define _iMaxIdxMask 2944 #include - .text - .section .text.evex512,"ax",@progbits + .section .text.evex512, "ax", @progbits ENTRY(_ZGVeN8v_tanh_skx) - pushq %rbp - cfi_def_cfa_offset(16) - movq %rsp, %rbp - cfi_def_cfa(6, 16) - cfi_offset(6, -16) - andq $-64, %rsp - subq $320, %rsp - vpsrlq $32, %zmm0, %zmm4 - vmovups %zmm0, (%rsp) - vmovups __svml_dtanh_data_internal(%rip), %zmm14 - vmovups _dP0+__svml_dtanh_data_internal(%rip), %zmm15 - vpmovqd %zmm4, %ymm5 + pushq %rbp + cfi_def_cfa_offset(16) + movq %rsp, %rbp + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + andq $-64, %rsp + subq $320, %rsp + vpsrlq $32, %zmm0, %zmm4 + vmovups %zmm0, (%rsp) + vmovups __svml_dtanh_data_internal(%rip), %zmm14 + vmovups _dP0+__svml_dtanh_data_internal(%rip), %zmm15 + vpmovqd %zmm4, %ymm5 -/* Constant loading */ - vandpd _dbAbsMask+__svml_dtanh_data_internal(%rip), %zmm0, %zmm13 - vandpd _dbSignMask+__svml_dtanh_data_internal(%rip), %zmm0, %zmm3 + /* Constant loading */ + vandpd _dbAbsMask+__svml_dtanh_data_internal(%rip), %zmm0, %zmm13 + vandpd _dbSignMask+__svml_dtanh_data_internal(%rip), %zmm0, %zmm3 -/* Here huge arguments, INF and NaNs are filtered out to callout. */ - vpand _iExpMantMask_UISA+__svml_dtanh_data_internal(%rip), %ymm5, %ymm7 - vmovups _dP2+__svml_dtanh_data_internal(%rip), %zmm0 - vmovups _dP16+__svml_dtanh_data_internal(%rip), %zmm4 - vmovups _dP15+__svml_dtanh_data_internal(%rip), %zmm5 - vmovups %zmm3, 64(%rsp) - vmovups _dP3+__svml_dtanh_data_internal(%rip), %zmm3 - vpsubd _iMinIdxOfsMask_UISA+__svml_dtanh_data_internal(%rip), %ymm7, %ymm8 + /* Here huge arguments, INF and NaNs are filtered out to callout. */ + vpand _iExpMantMask_UISA+__svml_dtanh_data_internal(%rip), %ymm5, %ymm7 + vmovups _dP2+__svml_dtanh_data_internal(%rip), %zmm0 + vmovups _dP16+__svml_dtanh_data_internal(%rip), %zmm4 + vmovups _dP15+__svml_dtanh_data_internal(%rip), %zmm5 + vmovups %zmm3, 64(%rsp) + vmovups _dP3+__svml_dtanh_data_internal(%rip), %zmm3 + vpsubd _iMinIdxOfsMask_UISA+__svml_dtanh_data_internal(%rip), %ymm7, %ymm8 -/* if VMIN, VMAX is defined for I type */ - vxorps %ymm9, %ymm9, %ymm9 - vpmaxsd %ymm9, %ymm8, %ymm10 - vpminsd _iMaxIdxMask_UISA+__svml_dtanh_data_internal(%rip), %ymm10, %ymm11 - vpsrld $19, %ymm11, %ymm12 - vmovups _dP12+__svml_dtanh_data_internal(%rip), %zmm8 - vmovups _dP11+__svml_dtanh_data_internal(%rip), %zmm9 - vmovups _dP10+__svml_dtanh_data_internal(%rip), %zmm10 - vmovups _dP9+__svml_dtanh_data_internal(%rip), %zmm11 - vpmovzxdq %ymm12, %zmm2 - vmovups _dP8+__svml_dtanh_data_internal(%rip), %zmm12 - vpermt2pd _dP2+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm0 - vpermt2pd _dC+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm14 - vpermt2pd _dP16+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm4 - vpermt2pd _dP15+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm5 - vsubpd {rn-sae}, %zmm14, %zmm13, %zmm1 - vpermt2pd _dP12+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm8 - vpermt2pd _dP11+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm9 - vpermt2pd _dP10+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm10 - vpermt2pd _dP9+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm11 - vpermt2pd _dP8+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm12 - vpermt2pd _dP3+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm3 - vpermt2pd _dP0+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm15 - vmovups %zmm0, 192(%rsp) - vmovups _dP17+__svml_dtanh_data_internal(%rip), %zmm0 - vmovups _dP7+__svml_dtanh_data_internal(%rip), %zmm13 - vmovups _dP6+__svml_dtanh_data_internal(%rip), %zmm14 - vmovups %zmm3, 256(%rsp) - vmovups _dP5+__svml_dtanh_data_internal(%rip), %zmm3 - vmovups %zmm15, 128(%rsp) - vmovups _dP4+__svml_dtanh_data_internal(%rip), %zmm15 - vpermt2pd _dP17+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm0 - vpermt2pd _dP7+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm13 - vpermt2pd _dP6+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm14 - vpermt2pd _dP5+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm3 - vpermt2pd _dP4+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm15 - vfmadd213pd {rn-sae}, %zmm4, %zmm1, %zmm0 - vpcmpgtd _iExpMask+__svml_dtanh_data_internal(%rip), %ymm7, %ymm6 - vmovmskps %ymm6, %edx - vmovups _dP14+__svml_dtanh_data_internal(%rip), %zmm6 - vfmadd213pd {rn-sae}, %zmm5, %zmm1, %zmm0 - vmovups _dP13+__svml_dtanh_data_internal(%rip), %zmm7 - vpermt2pd _dP14+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm6 - vpermt2pd _dP13+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm7 - vfmadd213pd {rn-sae}, %zmm6, %zmm1, %zmm0 - vmovups 256(%rsp), %zmm2 - vfmadd213pd {rn-sae}, %zmm7, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm8, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm9, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm10, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm11, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm12, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm13, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm14, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm3, %zmm1, %zmm0 - vmovups 128(%rsp), %zmm3 - vfmadd213pd {rn-sae}, %zmm15, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 - vmovups 192(%rsp), %zmm2 - vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 - vfmadd213pd {rn-sae}, %zmm3, %zmm1, %zmm0 - vorpd 64(%rsp), %zmm0, %zmm0 - testl %edx, %edx + /* if VMIN, VMAX is defined for I type */ + vxorps %ymm9, %ymm9, %ymm9 + vpmaxsd %ymm9, %ymm8, %ymm10 + vpminsd _iMaxIdxMask_UISA+__svml_dtanh_data_internal(%rip), %ymm10, %ymm11 + vpsrld $19, %ymm11, %ymm12 + vmovups _dP12+__svml_dtanh_data_internal(%rip), %zmm8 + vmovups _dP11+__svml_dtanh_data_internal(%rip), %zmm9 + vmovups _dP10+__svml_dtanh_data_internal(%rip), %zmm10 + vmovups _dP9+__svml_dtanh_data_internal(%rip), %zmm11 + vpmovzxdq %ymm12, %zmm2 + vmovups _dP8+__svml_dtanh_data_internal(%rip), %zmm12 + vpermt2pd _dP2+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm0 + vpermt2pd _dC+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm14 + vpermt2pd _dP16+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm4 + vpermt2pd _dP15+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm5 + vsubpd {rn-sae}, %zmm14, %zmm13, %zmm1 + vpermt2pd _dP12+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm8 + vpermt2pd _dP11+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm9 + vpermt2pd _dP10+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm10 + vpermt2pd _dP9+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm11 + vpermt2pd _dP8+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm12 + vpermt2pd _dP3+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm3 + vpermt2pd _dP0+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm15 + vmovups %zmm0, 192(%rsp) + vmovups _dP17+__svml_dtanh_data_internal(%rip), %zmm0 + vmovups _dP7+__svml_dtanh_data_internal(%rip), %zmm13 + vmovups _dP6+__svml_dtanh_data_internal(%rip), %zmm14 + vmovups %zmm3, 256(%rsp) + vmovups _dP5+__svml_dtanh_data_internal(%rip), %zmm3 + vmovups %zmm15, 128(%rsp) + vmovups _dP4+__svml_dtanh_data_internal(%rip), %zmm15 + vpermt2pd _dP17+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm0 + vpermt2pd _dP7+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm13 + vpermt2pd _dP6+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm14 + vpermt2pd _dP5+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm3 + vpermt2pd _dP4+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm15 + vfmadd213pd {rn-sae}, %zmm4, %zmm1, %zmm0 + vpcmpgtd _iExpMask+__svml_dtanh_data_internal(%rip), %ymm7, %ymm6 + vmovmskps %ymm6, %edx + vmovups _dP14+__svml_dtanh_data_internal(%rip), %zmm6 + vfmadd213pd {rn-sae}, %zmm5, %zmm1, %zmm0 + vmovups _dP13+__svml_dtanh_data_internal(%rip), %zmm7 + vpermt2pd _dP14+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm6 + vpermt2pd _dP13+64+__svml_dtanh_data_internal(%rip), %zmm2, %zmm7 + vfmadd213pd {rn-sae}, %zmm6, %zmm1, %zmm0 + vmovups 256(%rsp), %zmm2 + vfmadd213pd {rn-sae}, %zmm7, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm8, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm9, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm10, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm11, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm12, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm13, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm14, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm3, %zmm1, %zmm0 + vmovups 128(%rsp), %zmm3 + vfmadd213pd {rn-sae}, %zmm15, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 + vmovups 192(%rsp), %zmm2 + vfmadd213pd {rn-sae}, %zmm2, %zmm1, %zmm0 + vfmadd213pd {rn-sae}, %zmm3, %zmm1, %zmm0 + vorpd 64(%rsp), %zmm0, %zmm0 + testl %edx, %edx -/* Go to special inputs processing branch */ - jne L(SPECIAL_VALUES_BRANCH) - # LOE rbx r12 r13 r14 r15 edx zmm0 + /* Go to special inputs processing branch */ + jne L(SPECIAL_VALUES_BRANCH) + # LOE rbx r12 r13 r14 r15 edx zmm0 -/* Restore registers - * and exit the function - */ + /* Restore registers + * and exit the function + */ L(EXIT): - movq %rbp, %rsp - popq %rbp - cfi_def_cfa(7, 8) - cfi_restore(6) - ret - cfi_def_cfa(6, 16) - cfi_offset(6, -16) + movq %rbp, %rsp + popq %rbp + cfi_def_cfa(7, 8) + cfi_restore(6) + ret + cfi_def_cfa(6, 16) + cfi_offset(6, -16) -/* Branch to process - * special inputs - */ + /* Branch to process + * special inputs + */ L(SPECIAL_VALUES_BRANCH): - vmovups (%rsp), %zmm1 - vmovups %zmm0, 128(%rsp) - vmovups %zmm1, 64(%rsp) - # LOE rbx r12 r13 r14 r15 edx zmm0 + vmovups (%rsp), %zmm1 + vmovups %zmm0, 128(%rsp) + vmovups %zmm1, 64(%rsp) + # LOE rbx r12 r13 r14 r15 edx zmm0 - xorl %eax, %eax - # LOE rbx r12 r13 r14 r15 eax edx + xorl %eax, %eax + # LOE rbx r12 r13 r14 r15 eax edx - vzeroupper - movq %r12, 16(%rsp) - /* DW_CFA_expression: r12 (r12) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -304; DW_OP_plus) */ - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 8(%rsp) - /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -312; DW_OP_plus) */ - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xfe, 0xff, 0xff, 0x22 - movl %edx, %r13d - movq %r14, (%rsp) - /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -320; DW_OP_plus) */ - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22 - # LOE rbx r15 r12d r13d + vzeroupper + movq %r12, 16(%rsp) + /* DW_CFA_expression: r12 (r12) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -304; DW_OP_plus) */ + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 8(%rsp) + /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -312; DW_OP_plus) */ + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xfe, 0xff, 0xff, 0x22 + movl %edx, %r13d + movq %r14, (%rsp) + /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -320; DW_OP_plus) */ + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22 + # LOE rbx r15 r12d r13d -/* Range mask - * bits check - */ + /* Range mask + * bits check + */ L(RANGEMASK_CHECK): - btl %r12d, %r13d + btl %r12d, %r13d -/* Call scalar math function */ - jc L(SCALAR_MATH_CALL) - # LOE rbx r15 r12d r13d + /* Call scalar math function */ + jc L(SCALAR_MATH_CALL) + # LOE rbx r15 r12d r13d -/* Special inputs - * processing loop - */ + /* Special inputs + * processing loop + */ L(SPECIAL_VALUES_LOOP): - incl %r12d - cmpl $8, %r12d + incl %r12d + cmpl $8, %r12d -/* Check bits in range mask */ - jl L(RANGEMASK_CHECK) - # LOE rbx r15 r12d r13d + /* Check bits in range mask */ + jl L(RANGEMASK_CHECK) + # LOE rbx r15 r12d r13d - movq 16(%rsp), %r12 - cfi_restore(12) - movq 8(%rsp), %r13 - cfi_restore(13) - movq (%rsp), %r14 - cfi_restore(14) - vmovups 128(%rsp), %zmm0 + movq 16(%rsp), %r12 + cfi_restore(12) + movq 8(%rsp), %r13 + cfi_restore(13) + movq (%rsp), %r14 + cfi_restore(14) + vmovups 128(%rsp), %zmm0 -/* Go to exit */ - jmp L(EXIT) - /* DW_CFA_expression: r12 (r12) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -304; DW_OP_plus) */ - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22 - /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -312; DW_OP_plus) */ - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xfe, 0xff, 0xff, 0x22 - /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -320; DW_OP_plus) */ - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22 - # LOE rbx r12 r13 r14 r15 zmm0 + /* Go to exit */ + jmp L(EXIT) + /* DW_CFA_expression: r12 (r12) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -304; DW_OP_plus) */ + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22 + /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -312; DW_OP_plus) */ + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xfe, 0xff, 0xff, 0x22 + /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -320; DW_OP_plus) */ + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22 + # LOE rbx r12 r13 r14 r15 zmm0 -/* Scalar math fucntion call - * to process special input - */ + /* Scalar math fucntion call + * to process special input + */ L(SCALAR_MATH_CALL): - movl %r12d, %r14d - movsd 64(%rsp,%r14,8), %xmm0 - call tanh@PLT - # LOE rbx r14 r15 r12d r13d xmm0 + movl %r12d, %r14d + movsd 64(%rsp, %r14, 8), %xmm0 + call tanh@PLT + # LOE rbx r14 r15 r12d r13d xmm0 - movsd %xmm0, 128(%rsp,%r14,8) + movsd %xmm0, 128(%rsp, %r14, 8) -/* Process special inputs in loop */ - jmp L(SPECIAL_VALUES_LOOP) - # LOE rbx r15 r12d r13d + /* Process special inputs in loop */ + jmp L(SPECIAL_VALUES_LOOP) + # LOE rbx r15 r12d r13d END(_ZGVeN8v_tanh_skx) - .section .rodata, "a" - .align 64 + .section .rodata, "a" + .align 64 #ifdef __svml_dtanh_data_internal_typedef typedef unsigned int VUINT32; -typedef struct -{ - __declspec(align(64)) VUINT32 _dC[16][2]; - __declspec(align(64)) VUINT32 _dP0[16][2]; - __declspec(align(64)) VUINT32 _dP1[16][2]; - __declspec(align(64)) VUINT32 _dP2[16][2]; - __declspec(align(64)) VUINT32 _dP3[16][2]; - __declspec(align(64)) VUINT32 _dP4[16][2]; - __declspec(align(64)) VUINT32 _dP5[16][2]; - __declspec(align(64)) VUINT32 _dP6[16][2]; - __declspec(align(64)) VUINT32 _dP7[16][2]; - __declspec(align(64)) VUINT32 _dP8[16][2]; - __declspec(align(64)) VUINT32 _dP9[16][2]; - __declspec(align(64)) VUINT32 _dP10[16][2]; - __declspec(align(64)) VUINT32 _dP11[16][2]; - __declspec(align(64)) VUINT32 _dP12[16][2]; - __declspec(align(64)) VUINT32 _dP13[16][2]; - __declspec(align(64)) VUINT32 _dP14[16][2]; - __declspec(align(64)) VUINT32 _dP15[16][2]; - __declspec(align(64)) VUINT32 _dP16[16][2]; - __declspec(align(64)) VUINT32 _dP17[16][2]; - __declspec(align(64)) VUINT32 _iExpMantMask_UISA[16][1]; - __declspec(align(64)) VUINT32 _iMinIdxOfsMask_UISA[16][1]; - __declspec(align(64)) VUINT32 _iMaxIdxMask_UISA[16][1]; - __declspec(align(64)) VUINT32 _dbSignMask[8][2]; - __declspec(align(64)) VUINT32 _dbAbsMask[8][2]; - __declspec(align(64)) VUINT32 _iExpMantMask[16][1]; - __declspec(align(64)) VUINT32 _iExpMask[16][1]; - __declspec(align(64)) VUINT32 _iMinIdxOfsMask[16][1]; - __declspec(align(64)) VUINT32 _iMaxIdxMask[16][1]; +typedef struct { + __declspec(align(64)) VUINT32 _dC[16][2]; + __declspec(align(64)) VUINT32 _dP0[16][2]; + __declspec(align(64)) VUINT32 _dP1[16][2]; + __declspec(align(64)) VUINT32 _dP2[16][2]; + __declspec(align(64)) VUINT32 _dP3[16][2]; + __declspec(align(64)) VUINT32 _dP4[16][2]; + __declspec(align(64)) VUINT32 _dP5[16][2]; + __declspec(align(64)) VUINT32 _dP6[16][2]; + __declspec(align(64)) VUINT32 _dP7[16][2]; + __declspec(align(64)) VUINT32 _dP8[16][2]; + __declspec(align(64)) VUINT32 _dP9[16][2]; + __declspec(align(64)) VUINT32 _dP10[16][2]; + __declspec(align(64)) VUINT32 _dP11[16][2]; + __declspec(align(64)) VUINT32 _dP12[16][2]; + __declspec(align(64)) VUINT32 _dP13[16][2]; + __declspec(align(64)) VUINT32 _dP14[16][2]; + __declspec(align(64)) VUINT32 _dP15[16][2]; + __declspec(align(64)) VUINT32 _dP16[16][2]; + __declspec(align(64)) VUINT32 _dP17[16][2]; + __declspec(align(64)) VUINT32 _iExpMantMask_UISA[16][1]; + __declspec(align(64)) VUINT32 _iMinIdxOfsMask_UISA[16][1]; + __declspec(align(64)) VUINT32 _iMaxIdxMask_UISA[16][1]; + __declspec(align(64)) VUINT32 _dbSignMask[8][2]; + __declspec(align(64)) VUINT32 _dbAbsMask[8][2]; + __declspec(align(64)) VUINT32 _iExpMantMask[16][1]; + __declspec(align(64)) VUINT32 _iExpMask[16][1]; + __declspec(align(64)) VUINT32 _iMinIdxOfsMask[16][1]; + __declspec(align(64)) VUINT32 _iMaxIdxMask[16][1]; } __svml_dtanh_data_internal; #endif __svml_dtanh_data_internal: - /*== _dC ==*/ - .quad 0x0000000000000000, 0x3fcc000000000000, 0x3fd4000000000000, 0x3fdc000000000000 - .quad 0x3fe4000000000000, 0x3fec000000000000, 0x3ff4000000000000, 0x3ffc000000000000 - .quad 0x4004000000000000, 0x400c000000000000, 0x4014000000000000, 0x401c000000000000 - .quad 0x4024000000000000, 0x402c000000000000, 0x4034000000000000, 0x0000000000000000 - /*== p0 ==*/ - .align 64 - .quad 0x0000000000000000, 0x3fcb8fd0416a7c92, 0x3fd35f98a0ea650e, 0x3fda5729ee488037 - .quad 0x3fe1bf47eabb8f95, 0x3fe686650b8c2015, 0x3feb2523bb6b2dee, 0x3fee1fbf97e33527 - .quad 0x3fef9258260a71c2, 0x3feff112c63a9077, 0x3fefff419668df11, 0x3feffffc832750f2 - .quad 0x3feffffffdc96f35, 0x3fefffffffffcf58, 0x3ff0000000000000, 0x3ff0000000000000 - /*== p1 ==*/ - .align 64 - .quad 0x0000000000000000, 0x3c65e23ebcd3bcbe, 0xbc4c600bac3adf00, 0x3c6c44091785d040 - .quad 0x3c8221d7a6e3674b, 0x3c69f89d2cf6b85c, 0x3c73b3e9ec0b8f1c, 0xbc7f8d4b0428aada - .quad 0xbc7c52d880cf43c0, 0x3c7dd36e37096480, 0x3c7b4f6380c442ca, 0xbc729755de470096 - .quad 0x3c84cf852845efbd, 0x3c6fc4fb440a5378, 0xbc63981083b55870, 0x0000000000000000 - /*== p2 ==*/ - .align 64 - .quad 0x3ff0000000000000, 0x3fee842ca3f08532, 0x3fed11574af58f1b, 0x3fea945b9c24e4f9 - .quad 0x3fe6284c3374f815, 0x3fe02500a09f8d6e, 0x3fd1f25131e3a8c0, 0x3fbd22ca1c24a139 - .quad 0x3f9b3afe1fba5c76, 0x3f6dd37d19b22b21, 0x3f27ccec13a9ef96, 0x3ecbe6c3f33250ae - .quad 0x3e41b4865394f75f, 0x3d8853f01bda5f28, 0x3c73953c0197ef58, 0x0000000000000000 - /*== p3 ==*/ - .align 64 - .quad 0xbbf0b3ea3fdfaa19, 0xbfca48aaeb53bc21, 0xbfd19921f4329916, 0xbfd5e0f09bef8011 - .quad 0xbfd893b59c35c882, 0xbfd6ba7cb7576538, 0xbfce7291743d7555, 0xbfbb6d85a01efb80 - .quad 0xbf9addae58c7141a, 0xbf6dc59376c7aa19, 0xbf27cc5e74677410, 0xbecbe6c0e8b4cc87 - .quad 0xbe41b486526b0565, 0xbd8853f01bef63a4, 0xbc73955be519be31, 0x0000000000000000 - /*== p4 ==*/ - .align 64 - .quad 0xbfd5555555555555, 0xbfd183afc292ba11, 0xbfcc1a4b039c9bfa, 0xbfc16e1e6d8d0be6 - .quad 0xbf92426c751e48a2, 0x3fb4f152b2bad124, 0x3fbbba40cbef72be, 0x3fb01ba038be6a3d - .quad 0x3f916df44871efc8, 0x3f63c6869dfc8870, 0x3f1fb9aef915d828, 0x3ec299d1e27c6e11 - .quad 0x3e379b5ddcca334c, 0x3d8037f57bc62c9a, 0x3c6a2d4b50a2cff7, 0x0000000000000000 - /*== p5 ==*/ - .align 64 - .quad 0xbce6863ee44ed636, 0x3fc04dcd0476c75e, 0x3fc43d3449a80f08, 0x3fc5c26f3699b7e7 - .quad 0x3fc1a686f6ab2533, 0x3faf203c316ce730, 0xbf89c7a02788557c, 0xbf98157e26e0d541 - .quad 0xbf807b55c1c7d278, 0xbf53a18d5843190f, 0xbf0fb6bbc89b1a5b, 0xbeb299c9c684a963 - .quad 0xbe279b5dd4fb3d01, 0xbd7037f57ae72aa6, 0xbc5a2ca2bba78e86, 0x0000000000000000 - /*== p6 ==*/ - .align 64 - .quad 0x3fc1111111112ab5, 0x3fb5c19efdfc08ad, 0x3fa74c98dc34fbac, 0xbf790d6a8eff0a77 - .quad 0xbfac3c021789a786, 0xbfae2196b7326859, 0xbf93a7a011ff8c2a, 0x3f6e4709c7e8430e - .quad 0x3f67682afa611151, 0x3f3ef2ee77717cbf, 0x3ef95a4482f180b7, 0x3e9dc2c27da3b603 - .quad 0x3e12e2afd9f7433e, 0x3d59f320348679ba, 0x3c44b61d9bbcc940, 0x0000000000000000 - /*== p7 ==*/ - .align 64 - .quad 0xbda1ea19ddddb3b4, 0xbfb0b8df995ce4df, 0xbfb2955cf41e8164, 0xbfaf9d05c309f7c6 - .quad 0xbf987d27ccff4291, 0x3f8b2ca62572b098, 0x3f8f1cf6c7f5b00a, 0x3f60379811e43dd5 - .quad 0xbf4793826f78537e, 0xbf2405695e36240f, 0xbee0e08de39ce756, 0xbe83d709ba5f714e - .quad 0xbdf92e3fc5ee63e0, 0xbd414cc030f2110e, 0xbc2ba022e8d82a87, 0x0000000000000000 - /*== p8 ==*/ - .align 64 - .quad 0xbfaba1ba1990520b, 0xbf96e37bba52f6fc, 0x3ecff7df18455399, 0x3f97362834d33a4e - .quad 0x3f9e7f8380184b45, 0x3f869543e7c420d4, 0xbf7326bd4914222a, 0xbf5fc15b0a9d98fa - .quad 0x3f14cffcfa69fbb6, 0x3f057e48e5b79d10, 0x3ec33b66d7d77264, 0x3e66ac4e578b9b10 - .quad 0x3ddcc74b8d3d5c42, 0x3d23c589137f92b4, 0x3c107f8e2c8707a1, 0x0000000000000000 - /*== p9 ==*/ - .align 64 - .quad 0xbe351ca7f096011f, 0x3f9eaaf3320c3851, 0x3f9cf823fe761fc1, 0x3f9022271754ff1f - .quad 0xbf731fe77c9c60af, 0xbf84a6046865ec7d, 0xbf4ca3f1f2b9192b, 0x3f4c77dee0afd227 - .quad 0x3f04055bce68597a, 0xbee2bf0cb4a71647, 0xbea31eaafe73efd5, 0xbe46abb02c4368ed - .quad 0xbdbcc749ca8079dd, 0xbd03c5883836b9d2, 0xbbf07a5416264aec, 0x0000000000000000 - /*== p10 ==*/ - .align 64 - .quad 0x3f9664f94e6ac14e, 0xbf94d3343bae39dd, 0xbf7bc748e60df843, 0xbf8c89372b43ba85 - .quad 0xbf8129a092de747a, 0x3f60c85b4d538746, 0x3f5be9392199ec18, 0xbf2a0c68a4489f10 - .quad 0xbf00462601dc2faa, 0x3eb7b6a219dea9f4, 0x3e80cbcc8d4c5c8a, 0x3e2425bb231a5e29 - .quad 0x3d9992a4beac8662, 0x3ce191ba5ed3fb67, 0x3bc892450bad44c4, 0x0000000000000000 - /*== p11 ==*/ - .align 64 - .quad 0xbea8c4c1fd7852fe, 0xbfccce16b1046f13, 0xbf81a16f224bb7b6, 0xbf62cbf00406bc09 - .quad 0x3f75b29bb02cf69b, 0x3f607df0f9f90c17, 0xbf4b852a6e0758d5, 0xbf0078c63d1b8445 - .quad 0x3eec12eadd55be7a, 0xbe6fa600f593181b, 0xbe5a3c935dce3f7d, 0xbe001c6d95e3ae96 - .quad 0xbd74755a00ea1fd3, 0xbcbc1c6c063bb7ac, 0xbba3be9a4460fe00, 0x0000000000000000 - /*== p12 ==*/ - .align 64 - .quad 0xbf822404577aa9dd, 0x403d8b07f7a82aa3, 0xbf9f44ab92fbab0a, 0x3fb2eac604473d6a - .quad 0x3f45f87d903aaac8, 0xbf5e104671036300, 0x3f19bc98ddf0f340, 0x3f0d4304bc9246e8 - .quad 0xbed13c415f7b9d41, 0xbe722b8d9720cdb0, 0x3e322666d739bec0, 0x3dd76a553d7e7918 - .quad 0x3d4de0fa59416a39, 0x3c948716cf3681b4, 0x3b873f9f2d2fda99, 0x0000000000000000 - /*== p13 ==*/ - .align 64 - .quad 0xbefdd99a221ed573, 0x4070593a3735bab4, 0xbfccab654e44835e, 0x3fd13ed80037dbac - .quad 0xbf6045b9076cc487, 0x3f2085ee7e8ac170, 0x3f23524622610430, 0xbeff12a6626911b4 - .quad 0x3eab9008bca408af, 0x3e634df71865f620, 0xbe05bb1bcf83ca73, 0xbdaf2ac143fb6762 - .quad 0xbd23eae52a3dbf57, 0xbc6b5e3e9ca0955e, 0xbb5eca68e2c1ba2e, 0x0000000000000000 - /*== p14 ==*/ - .align 64 - .quad 0x3f6e3be689423841, 0xc0d263511f5baac1, 0x40169f73b15ebe5c, 0xc025c1dd41cd6cb5 - .quad 0xbf58fd89fe05e0d1, 0x3f73f7af01d5af7a, 0xbf1e40bdead17e6b, 0x3ee224cd6c4513e5 - .quad 0xbe24b645e68eeaa3, 0xbe4abfebfb72bc83, 0x3dd51c38f8695ed3, 0x3d8313ac38c6832b - .quad 0x3cf7787935626685, 0x3c401ffc49c6bc29, 0xbabf0b21acfa52ab, 0x0000000000000000 - /*== p15 ==*/ - .align 64 - .quad 0xbf2a1306713a4f3a, 0xc1045e509116b066, 0x4041fab9250984ce, 0xc0458d090ec3de95 - .quad 0xbf74949d60113d63, 0x3f7c9fd6200d0ade, 0x3f02cd40e0ad0a9f, 0xbe858ab8e019f311 - .quad 0xbe792fa6323b7cf8, 0x3e2df04d67876402, 0xbd95c72be95e4d2c, 0xbd55a89c30203106 - .quad 0xbccad6b3bb9eff65, 0xbc12705ccd3dd884, 0xba8e0a4c47ae75f5, 0x0000000000000000 - /*== p16 ==*/ - .align 64 - .quad 0xbf55d7e76dc56871, 0x41528c38809c90c7, 0xc076d57fb5190b02, 0x4085f09f888f8ada - .quad 0x3fa246332a2fcba5, 0xbfb29d851a896fcd, 0x3ed9065ae369b212, 0xbeb8e1ba4c98a030 - .quad 0x3e6ffd0766ad4016, 0xbe0c63c29f505f5b, 0xbd7fab216b9e0e49, 0x3d2826b62056aa27 - .quad 0x3ca313e31762f523, 0x3bea37aa21895319, 0x3ae5c7f1fd871496, 0x0000000000000000 - /*== p17 ==*/ - .align 64 - .quad 0x3f35e67ab76a26e7, 0x41848ee0627d8206, 0xc0a216d618b489ec, 0x40a5b89107c8af4f - .quad 0x3fb69d8374520eda, 0xbfbded519f981716, 0xbef02d288b5b3371, 0x3eb290981209c1a6 - .quad 0xbe567e924bf5ff6e, 0x3de3f7f7de6b0eb6, 0x3d69ed18bae3ebbc, 0xbcf7534c4f3dfa71 - .quad 0xbc730b73f1eaff20, 0xbbba2cff8135d462, 0xbab5a71b5f7d9035, 0x0000000000000000 - .align 64 - .long 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000 /* _iExpMantMask_UISA */ - .align 64 - .long 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000 /* _iMinIdxOfsMask_UISA */ - .align 64 - .long 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000 /* _iMaxIdxMask_UISA */ - .align 64 - .quad 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000 /* _dbSignMask */ - .align 64 - .quad 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff /* _dbAbsMask */ - .align 64 - .long 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000 /* _iExpMantMask */ - .align 64 - .long 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000 /* _iExpMask */ - .align 64 - .long 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000 /* _iMinIdxOfsMask */ - .align 64 - .long 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000 /* _iMaxIdxMask */ - .align 64 - .type __svml_dtanh_data_internal,@object - .size __svml_dtanh_data_internal,.-__svml_dtanh_data_internal + /* _dC */ + .quad 0x0000000000000000, 0x3fcc000000000000, 0x3fd4000000000000, 0x3fdc000000000000 + .quad 0x3fe4000000000000, 0x3fec000000000000, 0x3ff4000000000000, 0x3ffc000000000000 + .quad 0x4004000000000000, 0x400c000000000000, 0x4014000000000000, 0x401c000000000000 + .quad 0x4024000000000000, 0x402c000000000000, 0x4034000000000000, 0x0000000000000000 + /* p0 */ + .align 64 + .quad 0x0000000000000000, 0x3fcb8fd0416a7c92, 0x3fd35f98a0ea650e, 0x3fda5729ee488037 + .quad 0x3fe1bf47eabb8f95, 0x3fe686650b8c2015, 0x3feb2523bb6b2dee, 0x3fee1fbf97e33527 + .quad 0x3fef9258260a71c2, 0x3feff112c63a9077, 0x3fefff419668df11, 0x3feffffc832750f2 + .quad 0x3feffffffdc96f35, 0x3fefffffffffcf58, 0x3ff0000000000000, 0x3ff0000000000000 + /* p1 */ + .align 64 + .quad 0x0000000000000000, 0x3c65e23ebcd3bcbe, 0xbc4c600bac3adf00, 0x3c6c44091785d040 + .quad 0x3c8221d7a6e3674b, 0x3c69f89d2cf6b85c, 0x3c73b3e9ec0b8f1c, 0xbc7f8d4b0428aada + .quad 0xbc7c52d880cf43c0, 0x3c7dd36e37096480, 0x3c7b4f6380c442ca, 0xbc729755de470096 + .quad 0x3c84cf852845efbd, 0x3c6fc4fb440a5378, 0xbc63981083b55870, 0x0000000000000000 + /* p2 */ + .align 64 + .quad 0x3ff0000000000000, 0x3fee842ca3f08532, 0x3fed11574af58f1b, 0x3fea945b9c24e4f9 + .quad 0x3fe6284c3374f815, 0x3fe02500a09f8d6e, 0x3fd1f25131e3a8c0, 0x3fbd22ca1c24a139 + .quad 0x3f9b3afe1fba5c76, 0x3f6dd37d19b22b21, 0x3f27ccec13a9ef96, 0x3ecbe6c3f33250ae + .quad 0x3e41b4865394f75f, 0x3d8853f01bda5f28, 0x3c73953c0197ef58, 0x0000000000000000 + /* p3 */ + .align 64 + .quad 0xbbf0b3ea3fdfaa19, 0xbfca48aaeb53bc21, 0xbfd19921f4329916, 0xbfd5e0f09bef8011 + .quad 0xbfd893b59c35c882, 0xbfd6ba7cb7576538, 0xbfce7291743d7555, 0xbfbb6d85a01efb80 + .quad 0xbf9addae58c7141a, 0xbf6dc59376c7aa19, 0xbf27cc5e74677410, 0xbecbe6c0e8b4cc87 + .quad 0xbe41b486526b0565, 0xbd8853f01bef63a4, 0xbc73955be519be31, 0x0000000000000000 + /* p4 */ + .align 64 + .quad 0xbfd5555555555555, 0xbfd183afc292ba11, 0xbfcc1a4b039c9bfa, 0xbfc16e1e6d8d0be6 + .quad 0xbf92426c751e48a2, 0x3fb4f152b2bad124, 0x3fbbba40cbef72be, 0x3fb01ba038be6a3d + .quad 0x3f916df44871efc8, 0x3f63c6869dfc8870, 0x3f1fb9aef915d828, 0x3ec299d1e27c6e11 + .quad 0x3e379b5ddcca334c, 0x3d8037f57bc62c9a, 0x3c6a2d4b50a2cff7, 0x0000000000000000 + /* p5 */ + .align 64 + .quad 0xbce6863ee44ed636, 0x3fc04dcd0476c75e, 0x3fc43d3449a80f08, 0x3fc5c26f3699b7e7 + .quad 0x3fc1a686f6ab2533, 0x3faf203c316ce730, 0xbf89c7a02788557c, 0xbf98157e26e0d541 + .quad 0xbf807b55c1c7d278, 0xbf53a18d5843190f, 0xbf0fb6bbc89b1a5b, 0xbeb299c9c684a963 + .quad 0xbe279b5dd4fb3d01, 0xbd7037f57ae72aa6, 0xbc5a2ca2bba78e86, 0x0000000000000000 + /* p6 */ + .align 64 + .quad 0x3fc1111111112ab5, 0x3fb5c19efdfc08ad, 0x3fa74c98dc34fbac, 0xbf790d6a8eff0a77 + .quad 0xbfac3c021789a786, 0xbfae2196b7326859, 0xbf93a7a011ff8c2a, 0x3f6e4709c7e8430e + .quad 0x3f67682afa611151, 0x3f3ef2ee77717cbf, 0x3ef95a4482f180b7, 0x3e9dc2c27da3b603 + .quad 0x3e12e2afd9f7433e, 0x3d59f320348679ba, 0x3c44b61d9bbcc940, 0x0000000000000000 + /* p7 */ + .align 64 + .quad 0xbda1ea19ddddb3b4, 0xbfb0b8df995ce4df, 0xbfb2955cf41e8164, 0xbfaf9d05c309f7c6 + .quad 0xbf987d27ccff4291, 0x3f8b2ca62572b098, 0x3f8f1cf6c7f5b00a, 0x3f60379811e43dd5 + .quad 0xbf4793826f78537e, 0xbf2405695e36240f, 0xbee0e08de39ce756, 0xbe83d709ba5f714e + .quad 0xbdf92e3fc5ee63e0, 0xbd414cc030f2110e, 0xbc2ba022e8d82a87, 0x0000000000000000 + /* p8 */ + .align 64 + .quad 0xbfaba1ba1990520b, 0xbf96e37bba52f6fc, 0x3ecff7df18455399, 0x3f97362834d33a4e + .quad 0x3f9e7f8380184b45, 0x3f869543e7c420d4, 0xbf7326bd4914222a, 0xbf5fc15b0a9d98fa + .quad 0x3f14cffcfa69fbb6, 0x3f057e48e5b79d10, 0x3ec33b66d7d77264, 0x3e66ac4e578b9b10 + .quad 0x3ddcc74b8d3d5c42, 0x3d23c589137f92b4, 0x3c107f8e2c8707a1, 0x0000000000000000 + /* p9 */ + .align 64 + .quad 0xbe351ca7f096011f, 0x3f9eaaf3320c3851, 0x3f9cf823fe761fc1, 0x3f9022271754ff1f + .quad 0xbf731fe77c9c60af, 0xbf84a6046865ec7d, 0xbf4ca3f1f2b9192b, 0x3f4c77dee0afd227 + .quad 0x3f04055bce68597a, 0xbee2bf0cb4a71647, 0xbea31eaafe73efd5, 0xbe46abb02c4368ed + .quad 0xbdbcc749ca8079dd, 0xbd03c5883836b9d2, 0xbbf07a5416264aec, 0x0000000000000000 + /* p10 */ + .align 64 + .quad 0x3f9664f94e6ac14e, 0xbf94d3343bae39dd, 0xbf7bc748e60df843, 0xbf8c89372b43ba85 + .quad 0xbf8129a092de747a, 0x3f60c85b4d538746, 0x3f5be9392199ec18, 0xbf2a0c68a4489f10 + .quad 0xbf00462601dc2faa, 0x3eb7b6a219dea9f4, 0x3e80cbcc8d4c5c8a, 0x3e2425bb231a5e29 + .quad 0x3d9992a4beac8662, 0x3ce191ba5ed3fb67, 0x3bc892450bad44c4, 0x0000000000000000 + /* p11 */ + .align 64 + .quad 0xbea8c4c1fd7852fe, 0xbfccce16b1046f13, 0xbf81a16f224bb7b6, 0xbf62cbf00406bc09 + .quad 0x3f75b29bb02cf69b, 0x3f607df0f9f90c17, 0xbf4b852a6e0758d5, 0xbf0078c63d1b8445 + .quad 0x3eec12eadd55be7a, 0xbe6fa600f593181b, 0xbe5a3c935dce3f7d, 0xbe001c6d95e3ae96 + .quad 0xbd74755a00ea1fd3, 0xbcbc1c6c063bb7ac, 0xbba3be9a4460fe00, 0x0000000000000000 + /* p12 */ + .align 64 + .quad 0xbf822404577aa9dd, 0x403d8b07f7a82aa3, 0xbf9f44ab92fbab0a, 0x3fb2eac604473d6a + .quad 0x3f45f87d903aaac8, 0xbf5e104671036300, 0x3f19bc98ddf0f340, 0x3f0d4304bc9246e8 + .quad 0xbed13c415f7b9d41, 0xbe722b8d9720cdb0, 0x3e322666d739bec0, 0x3dd76a553d7e7918 + .quad 0x3d4de0fa59416a39, 0x3c948716cf3681b4, 0x3b873f9f2d2fda99, 0x0000000000000000 + /* p13 */ + .align 64 + .quad 0xbefdd99a221ed573, 0x4070593a3735bab4, 0xbfccab654e44835e, 0x3fd13ed80037dbac + .quad 0xbf6045b9076cc487, 0x3f2085ee7e8ac170, 0x3f23524622610430, 0xbeff12a6626911b4 + .quad 0x3eab9008bca408af, 0x3e634df71865f620, 0xbe05bb1bcf83ca73, 0xbdaf2ac143fb6762 + .quad 0xbd23eae52a3dbf57, 0xbc6b5e3e9ca0955e, 0xbb5eca68e2c1ba2e, 0x0000000000000000 + /* p14 */ + .align 64 + .quad 0x3f6e3be689423841, 0xc0d263511f5baac1, 0x40169f73b15ebe5c, 0xc025c1dd41cd6cb5 + .quad 0xbf58fd89fe05e0d1, 0x3f73f7af01d5af7a, 0xbf1e40bdead17e6b, 0x3ee224cd6c4513e5 + .quad 0xbe24b645e68eeaa3, 0xbe4abfebfb72bc83, 0x3dd51c38f8695ed3, 0x3d8313ac38c6832b + .quad 0x3cf7787935626685, 0x3c401ffc49c6bc29, 0xbabf0b21acfa52ab, 0x0000000000000000 + /* p15 */ + .align 64 + .quad 0xbf2a1306713a4f3a, 0xc1045e509116b066, 0x4041fab9250984ce, 0xc0458d090ec3de95 + .quad 0xbf74949d60113d63, 0x3f7c9fd6200d0ade, 0x3f02cd40e0ad0a9f, 0xbe858ab8e019f311 + .quad 0xbe792fa6323b7cf8, 0x3e2df04d67876402, 0xbd95c72be95e4d2c, 0xbd55a89c30203106 + .quad 0xbccad6b3bb9eff65, 0xbc12705ccd3dd884, 0xba8e0a4c47ae75f5, 0x0000000000000000 + /* p16 */ + .align 64 + .quad 0xbf55d7e76dc56871, 0x41528c38809c90c7, 0xc076d57fb5190b02, 0x4085f09f888f8ada + .quad 0x3fa246332a2fcba5, 0xbfb29d851a896fcd, 0x3ed9065ae369b212, 0xbeb8e1ba4c98a030 + .quad 0x3e6ffd0766ad4016, 0xbe0c63c29f505f5b, 0xbd7fab216b9e0e49, 0x3d2826b62056aa27 + .quad 0x3ca313e31762f523, 0x3bea37aa21895319, 0x3ae5c7f1fd871496, 0x0000000000000000 + /* p17 */ + .align 64 + .quad 0x3f35e67ab76a26e7, 0x41848ee0627d8206, 0xc0a216d618b489ec, 0x40a5b89107c8af4f + .quad 0x3fb69d8374520eda, 0xbfbded519f981716, 0xbef02d288b5b3371, 0x3eb290981209c1a6 + .quad 0xbe567e924bf5ff6e, 0x3de3f7f7de6b0eb6, 0x3d69ed18bae3ebbc, 0xbcf7534c4f3dfa71 + .quad 0xbc730b73f1eaff20, 0xbbba2cff8135d462, 0xbab5a71b5f7d9035, 0x0000000000000000 + .align 64 + .long 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000, 0x7ff80000 /* _iExpMantMask_UISA */ + .align 64 + .long 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000, 0x3fc00000 /* _iMinIdxOfsMask_UISA */ + .align 64 + .long 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000, 0x00780000 /* _iMaxIdxMask_UISA */ + .align 64 + .quad 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000 /* _dbSignMask */ + .align 64 + .quad 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff /* _dbAbsMask */ + .align 64 + .long 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000, 0x7ffe0000 /* _iExpMantMask */ + .align 64 + .long 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000, 0x7fe00000 /* _iExpMask */ + .align 64 + .long 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000, 0x3fbe0000 /* _iMinIdxOfsMask */ + .align 64 + .long 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000, 0x00760000 /* _iMaxIdxMask */ + .align 64 + .type __svml_dtanh_data_internal, @object + .size __svml_dtanh_data_internal, .-__svml_dtanh_data_internal