aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S')
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S927
1 files changed, 927 insertions, 0 deletions
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S
new file mode 100644
index 0000000..52a11a5
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanf16_core_avx512.S
@@ -0,0 +1,927 @@
+/* Function tanf 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:
+ *
+ * ( optimized for throughput, with small table lookup, works when HW FMA is available )
+ *
+ * Implementation reduces argument x to |R|<pi/64
+ * 32-entry tables used to store high and low parts of tan(x0)
+ * Argument x = N*pi + x0 + (R); x0 = k*pi/32, with k in {0, 1, ..., 31}
+ * (very large arguments reduction resolved in _vsreduction_core.i)
+ * Compute result as (tan(x0) + tan(R))/(1-tan(x0)*tan(R))
+ * _HA_ version keeps extra precision for numerator, denominator, and during
+ * final NR-iteration computing quotient.
+ *
+ *
+ */
+
+/* Offsets for data table __svml_stan_data_internal
+ */
+#define _sInvPI_uisa 0
+#define _sPI1_uisa 64
+#define _sPI2_uisa 128
+#define _sPI3_uisa 192
+#define Th_tbl_uisa 256
+#define _sPC3_uisa 384
+#define _sPC5_uisa 448
+#define _sRangeReductionVal_uisa 512
+#define _sAbsMask 576
+#define _sRangeVal 640
+#define _sRShifter 704
+#define _sOne 768
+#define _sRangeReductionVal 832
+#define _sPI1 896
+#define _sPI2 960
+#define _sPI3 1024
+
+#include <sysdep.h>
+
+ .text
+ .section .text.exex512,"ax",@progbits
+ENTRY(_ZGVeN16v_tanf_skx)
+ pushq %rbp
+ cfi_def_cfa_offset(16)
+ movq %rsp, %rbp
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ andq $-64, %rsp
+ subq $192, %rsp
+ xorl %edx, %edx
+
+/* Large values check */
+ vmovups _sRangeReductionVal_uisa+__svml_stan_data_internal(%rip), %zmm10
+
+/*
+ *
+ * Main path
+ *
+ * start arg. reduction
+ */
+ vmovups _sRShifter+__svml_stan_data_internal(%rip), %zmm1
+ vmovups _sPI1_uisa+__svml_stan_data_internal(%rip), %zmm4
+ vmovups _sPI2_uisa+__svml_stan_data_internal(%rip), %zmm2
+ vmovups _sPI3_uisa+__svml_stan_data_internal(%rip), %zmm3
+ vmovaps %zmm0, %zmm11
+ vandps _sAbsMask+__svml_stan_data_internal(%rip), %zmm11, %zmm0
+ vcmpps $22, {sae}, %zmm10, %zmm0, %k6
+ vmovups __svml_stan_data_internal(%rip), %zmm10
+
+/*
+ *
+ * End of main path
+ */
+
+ kortestw %k6, %k6
+ vfmadd213ps {rn-sae}, %zmm1, %zmm11, %zmm10
+ vsubps {rn-sae}, %zmm1, %zmm10, %zmm5
+ vfnmadd213ps {rn-sae}, %zmm11, %zmm5, %zmm4
+ vfnmadd231ps {rn-sae}, %zmm5, %zmm2, %zmm4
+ vfnmadd213ps {rn-sae}, %zmm4, %zmm3, %zmm5
+
+/* Go to auxilary branch */
+ jne L(AUX_BRANCH)
+ # LOE rbx r12 r13 r14 r15 edx zmm0 zmm5 zmm10 zmm11 k6
+
+/* Return from auxilary branch
+ * for out of main path inputs
+ */
+
+L(AUX_BRANCH_RETURN):
+/* Table lookup */
+ vmovups Th_tbl_uisa+__svml_stan_data_internal(%rip), %zmm3
+ vmovups _sPC3_uisa+__svml_stan_data_internal(%rip), %zmm0
+ vmulps {rn-sae}, %zmm5, %zmm5, %zmm1
+ vpermt2ps Th_tbl_uisa+64+__svml_stan_data_internal(%rip), %zmm10, %zmm3
+ vmovups _sPC5_uisa+__svml_stan_data_internal(%rip), %zmm10
+ vfmadd231ps {rn-sae}, %zmm1, %zmm10, %zmm0
+ vmulps {rn-sae}, %zmm5, %zmm0, %zmm4
+ vfmadd213ps {rn-sae}, %zmm5, %zmm1, %zmm4
+
+/*
+ * Computer Denominator:
+ * sDenominator - sDlow ~= 1-(sTh+sTl)*(sP+sPlow)
+ */
+ vmovups _sOne+__svml_stan_data_internal(%rip), %zmm5
+ vmulps {rn-sae}, %zmm4, %zmm3, %zmm7
+
+/*
+ * Compute Numerator:
+ * sNumerator + sNlow ~= sTh+sTl+sP+sPlow
+ */
+ vaddps {rn-sae}, %zmm3, %zmm4, %zmm8
+ vsubps {rn-sae}, %zmm7, %zmm5, %zmm9
+ vsubps {rn-sae}, %zmm3, %zmm8, %zmm2
+
+/*
+ * Now computes (sNumerator + sNlow)/(sDenominator - sDlow)
+ * Choose NR iteration instead of hardware division
+ */
+ vrcp14ps %zmm9, %zmm14
+ vsubps {rn-sae}, %zmm5, %zmm9, %zmm6
+ vsubps {rn-sae}, %zmm2, %zmm4, %zmm13
+ vmulps {rn-sae}, %zmm8, %zmm14, %zmm15
+ vaddps {rn-sae}, %zmm7, %zmm6, %zmm12
+
+/* One NR iteration to refine sQuotient */
+ vfmsub213ps {rn-sae}, %zmm8, %zmm15, %zmm9
+ vfnmadd213ps {rn-sae}, %zmm9, %zmm15, %zmm12
+ vsubps {rn-sae}, %zmm13, %zmm12, %zmm0
+ vfnmadd213ps {rn-sae}, %zmm15, %zmm14, %zmm0
+ testl %edx, %edx
+
+/* Go to special inputs processing branch */
+ jne L(SPECIAL_VALUES_BRANCH)
+ # LOE rbx r12 r13 r14 r15 edx zmm0 zmm11
+
+/* 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)
+
+/* Branch to process
+ * special inputs
+ */
+
+L(SPECIAL_VALUES_BRANCH):
+ vmovups %zmm11, 64(%rsp)
+ vmovups %zmm0, 128(%rsp)
+ # LOE rbx r12 r13 r14 r15 edx zmm0
+
+ 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: -176; DW_OP_plus) */
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 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: -184; DW_OP_plus) */
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 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: -192; DW_OP_plus) */
+ .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ # LOE rbx r15 r12d r13d
+
+/* Range mask
+ * bits check
+ */
+
+L(RANGEMASK_CHECK):
+ btl %r12d, %r13d
+
+/* Call scalar math function */
+ jc L(SCALAR_MATH_CALL)
+ # LOE rbx r15 r12d r13d
+
+/* Special inputs
+ * processing loop
+ */
+
+L(SPECIAL_VALUES_LOOP):
+ incl %r12d
+ cmpl $16, %r12d
+
+/* 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
+
+/* 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: -176; DW_OP_plus) */
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -184; DW_OP_plus) */
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -64; DW_OP_and; DW_OP_const4s: -192; DW_OP_plus) */
+ .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ # LOE rbx r12 r13 r14 r15 zmm0
+
+/* Scalar math fucntion call
+ * to process special input
+ */
+
+L(SCALAR_MATH_CALL):
+ movl %r12d, %r14d
+ movss 64(%rsp,%r14,4), %xmm0
+ call tanf@PLT
+ # LOE rbx r14 r15 r12d r13d xmm0
+
+ movss %xmm0, 128(%rsp,%r14,4)
+
+/* Process special inputs in loop */
+ jmp L(SPECIAL_VALUES_LOOP)
+ cfi_restore(12)
+ cfi_restore(13)
+ cfi_restore(14)
+ # LOE rbx r15 r12d r13d
+
+/* Auxilary branch
+ * for out of main path inputs
+ */
+
+L(AUX_BRANCH):
+ vmovups _sRangeVal+__svml_stan_data_internal(%rip), %zmm6
+
+/*
+ * Get the (2^a / 2pi) mod 1 values from the table.
+ * Because doesn't have I-type gather, we need a trivial cast
+ */
+ lea __svml_stan_reduction_data_internal(%rip), %rax
+ vmovups %zmm5, (%rsp)
+ vandps %zmm0, %zmm6, %zmm14
+ vcmpps $0, {sae}, %zmm6, %zmm14, %k0
+
+/*
+ * Break the P_xxx and m into 16-bit chunks ready for
+ * the long multiplication via 16x16->32 multiplications
+ */
+ vmovups .FLT_15(%rip), %zmm6
+ kxnorw %k0, %k0, %k1
+ kxnorw %k0, %k0, %k2
+ kxnorw %k0, %k0, %k3
+ kmovw %k0, %edx
+ vpandd .FLT_12(%rip), %zmm11, %zmm5
+ vpsrld $23, %zmm5, %zmm7
+ vpslld $1, %zmm7, %zmm8
+ vpaddd %zmm7, %zmm8, %zmm9
+ vpslld $2, %zmm9, %zmm4
+ vpxord %zmm3, %zmm3, %zmm3
+ vpxord %zmm15, %zmm15, %zmm15
+ vpxord %zmm2, %zmm2, %zmm2
+ vgatherdps (%rax,%zmm4), %zmm3{%k1}
+ vgatherdps 4(%rax,%zmm4), %zmm15{%k2}
+ vgatherdps 8(%rax,%zmm4), %zmm2{%k3}
+ vpsrld $16, %zmm3, %zmm5
+ vpsrld $16, %zmm2, %zmm13
+
+/*
+ * Also get the significand as an integer
+ * NB: adding in the integer bit is wrong for denorms!
+ * To make this work for denorms we should do something slightly different
+ */
+ vpandd .FLT_13(%rip), %zmm11, %zmm0
+ vpaddd .FLT_14(%rip), %zmm0, %zmm1
+ vpsrld $16, %zmm15, %zmm0
+ vpsrld $16, %zmm1, %zmm8
+ vpandd %zmm6, %zmm3, %zmm9
+ vpandd %zmm6, %zmm15, %zmm12
+ vpandd %zmm6, %zmm2, %zmm7
+ vpandd %zmm6, %zmm1, %zmm14
+
+/* Now do the big multiplication and carry propagation */
+ vpmulld %zmm9, %zmm8, %zmm4
+ vpmulld %zmm0, %zmm8, %zmm3
+ vpmulld %zmm12, %zmm8, %zmm2
+ vpmulld %zmm13, %zmm8, %zmm1
+ vpmulld %zmm7, %zmm8, %zmm8
+ vpmulld %zmm5, %zmm14, %zmm7
+ vpmulld %zmm9, %zmm14, %zmm5
+ vpmulld %zmm0, %zmm14, %zmm9
+ vpmulld %zmm12, %zmm14, %zmm0
+ vpmulld %zmm13, %zmm14, %zmm12
+ vpsrld $16, %zmm12, %zmm14
+ vpsrld $16, %zmm0, %zmm13
+ vpsrld $16, %zmm9, %zmm15
+ vpsrld $16, %zmm5, %zmm12
+ vpsrld $16, %zmm8, %zmm8
+ vpaddd %zmm14, %zmm1, %zmm1
+ vpaddd %zmm13, %zmm2, %zmm2
+ vpaddd %zmm15, %zmm3, %zmm15
+ vpaddd %zmm12, %zmm4, %zmm3
+ vpandd %zmm6, %zmm0, %zmm13
+ vpaddd %zmm1, %zmm13, %zmm4
+ vpaddd %zmm4, %zmm8, %zmm14
+ vpsrld $16, %zmm14, %zmm0
+ vpandd %zmm6, %zmm9, %zmm9
+ vpaddd %zmm2, %zmm9, %zmm1
+ vpaddd %zmm1, %zmm0, %zmm8
+
+/*
+ * Now round at the 2^-8 bit position for reduction mod pi/2^7
+ * instead of the original 2pi (but still with the same 2pi scaling).
+ * Use a shifter of 2^15 + 2^14.
+ * The N we get is our final version; it has an offset of
+ * 2^8 because of the implicit integer bit, and anyway for negative
+ * starting value it's a 2s complement thing. But we need to mask
+ * off the exponent part anyway so it's fine.
+ */
+ vmovups .FLT_18(%rip), %zmm1
+ vpandd %zmm6, %zmm7, %zmm7
+ vpaddd %zmm3, %zmm7, %zmm13
+ vpsrld $16, %zmm8, %zmm3
+ vpandd %zmm6, %zmm5, %zmm5
+ vpaddd %zmm15, %zmm5, %zmm2
+ vpaddd %zmm2, %zmm3, %zmm15
+ vpsrld $16, %zmm15, %zmm12
+ vpaddd %zmm13, %zmm12, %zmm5
+
+/* Assemble reduced argument from the pieces */
+ vpandd %zmm6, %zmm14, %zmm9
+ vpandd %zmm6, %zmm15, %zmm7
+ vpslld $16, %zmm5, %zmm6
+ vpslld $16, %zmm8, %zmm5
+ vpaddd %zmm7, %zmm6, %zmm4
+ vpaddd %zmm9, %zmm5, %zmm9
+ vpsrld $9, %zmm4, %zmm6
+
+/*
+ * We want to incorporate the original sign now too.
+ * Do it here for convenience in getting the right N value,
+ * though we could wait right to the end if we were prepared
+ * to modify the sign of N later too.
+ * So get the appropriate sign mask now (or sooner).
+ */
+ vpandd .FLT_16(%rip), %zmm11, %zmm0
+ vpandd .FLT_21(%rip), %zmm9, %zmm13
+ vpslld $5, %zmm13, %zmm14
+
+/*
+ * Create floating-point high part, implicitly adding integer bit 1
+ * Incorporate overall sign at this stage too.
+ */
+ vpxord .FLT_17(%rip), %zmm0, %zmm8
+ vpord %zmm8, %zmm6, %zmm2
+ vaddps {rn-sae}, %zmm2, %zmm1, %zmm12
+ vsubps {rn-sae}, %zmm1, %zmm12, %zmm3
+ vsubps {rn-sae}, %zmm3, %zmm2, %zmm7
+
+/*
+ * Create floating-point low and medium parts, respectively
+ * lo_17, ... lo_0, 0, ..., 0
+ * hi_8, ... hi_0, lo_31, ..., lo_18
+ * then subtract off the implicitly added integer bits,
+ * 2^-46 and 2^-23, respectively.
+ * Put the original sign into all of them at this stage.
+ */
+ vpxord .FLT_20(%rip), %zmm0, %zmm6
+ vpord %zmm6, %zmm14, %zmm15
+ vpandd .FLT_23(%rip), %zmm4, %zmm4
+ vsubps {rn-sae}, %zmm6, %zmm15, %zmm8
+ vandps .FLT_26(%rip), %zmm11, %zmm15
+ vpsrld $18, %zmm9, %zmm6
+
+/*
+ * If the magnitude of the input is <= 2^-20, then
+ * just pass through the input, since no reduction will be needed and
+ * the main path will only work accurately if the reduced argument is
+ * about >= 2^-40 (which it is for all large pi multiples)
+ */
+ vmovups .FLT_27(%rip), %zmm14
+ vcmpps $26, {sae}, %zmm14, %zmm15, %k4
+ vcmpps $22, {sae}, %zmm14, %zmm15, %k5
+ vpxord .FLT_22(%rip), %zmm0, %zmm1
+ vpslld $14, %zmm4, %zmm0
+ vpord %zmm6, %zmm0, %zmm0
+ vpord %zmm1, %zmm0, %zmm4
+ vsubps {rn-sae}, %zmm1, %zmm4, %zmm2
+ vpternlogd $255, %zmm6, %zmm6, %zmm6
+
+/* Now add them up into 2 reasonably aligned pieces */
+ vaddps {rn-sae}, %zmm2, %zmm7, %zmm13
+ vsubps {rn-sae}, %zmm13, %zmm7, %zmm7
+ vaddps {rn-sae}, %zmm7, %zmm2, %zmm3
+
+/*
+ * The output is _VRES_R (high) + _VRES_E (low), and the integer part is _VRES_IND
+ * Set sRp2 = _VRES_R^2 and then resume the original code.
+ */
+ vmovups .FLT_28(%rip), %zmm2
+ vaddps {rn-sae}, %zmm8, %zmm3, %zmm1
+ vmovups .FLT_25(%rip), %zmm8
+
+/* Grab our final N value as an integer, appropriately masked mod 2^8 */
+ vpandd .FLT_19(%rip), %zmm12, %zmm5
+
+/*
+ * Now multiply those numbers all by 2 pi, reasonably accurately.
+ * (RHi + RLo) * (pi_lead + pi_trail) ~=
+ * RHi * pi_lead + (RHi * pi_trail + RLo * pi_lead)
+ */
+ vmovups .FLT_24(%rip), %zmm12
+ vmulps {rn-sae}, %zmm12, %zmm13, %zmm0
+ vmovaps %zmm12, %zmm9
+ vfmsub213ps {rn-sae}, %zmm0, %zmm13, %zmm9
+ vfmadd213ps {rn-sae}, %zmm9, %zmm8, %zmm13
+ vmovaps %zmm6, %zmm8
+ vfmadd213ps {rn-sae}, %zmm13, %zmm12, %zmm1
+ vpandnd %zmm15, %zmm15, %zmm8{%k4}
+ vpandnd %zmm15, %zmm15, %zmm6{%k5}
+ vandps %zmm11, %zmm6, %zmm14
+ vandps %zmm0, %zmm8, %zmm15
+ vandps %zmm1, %zmm8, %zmm12
+ vorps %zmm15, %zmm14, %zmm6
+ vpsrld $31, %zmm6, %zmm3
+ vpsubd %zmm3, %zmm2, %zmm4
+ vpaddd %zmm4, %zmm5, %zmm7
+ vpsrld $2, %zmm7, %zmm13
+ vpslld $2, %zmm13, %zmm9
+
+/*
+ *
+ * End of large arguments path
+ *
+ * Merge results from main and large paths:
+ */
+ vblendmps %zmm13, %zmm10, %zmm10{%k6}
+ vpsubd %zmm9, %zmm5, %zmm5
+ vmovups .FLT_29(%rip), %zmm9
+ vcvtdq2ps {rn-sae}, %zmm5, %zmm0
+ vmovups .FLT_30(%rip), %zmm5
+ vfmadd231ps {rn-sae}, %zmm0, %zmm5, %zmm12
+ vmovups (%rsp), %zmm5
+ vaddps {rn-sae}, %zmm6, %zmm12, %zmm6
+ vfmadd213ps {rn-sae}, %zmm6, %zmm9, %zmm0
+ vblendmps %zmm0, %zmm5, %zmm5{%k6}
+
+/* Return to main vector processing path */
+ jmp L(AUX_BRANCH_RETURN)
+ # LOE rbx r12 r13 r14 r15 edx zmm5 zmm10 zmm11
+END(_ZGVeN16v_tanf_skx)
+
+ .section .rodata, "a"
+ .align 64
+
+.FLT_12:
+ .long 0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000,0x7f800000
+ .type .FLT_12,@object
+ .size .FLT_12,64
+ .align 64
+
+.FLT_13:
+ .long 0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff,0x007fffff
+ .type .FLT_13,@object
+ .size .FLT_13,64
+ .align 64
+
+.FLT_14:
+ .long 0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000,0x00800000
+ .type .FLT_14,@object
+ .size .FLT_14,64
+ .align 64
+
+.FLT_15:
+ .long 0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff,0x0000ffff
+ .type .FLT_15,@object
+ .size .FLT_15,64
+ .align 64
+
+.FLT_16:
+ .long 0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000
+ .type .FLT_16,@object
+ .size .FLT_16,64
+ .align 64
+
+.FLT_17:
+ .long 0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000
+ .type .FLT_17,@object
+ .size .FLT_17,64
+ .align 64
+
+.FLT_18:
+ .long 0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000,0x47400000
+ .type .FLT_18,@object
+ .size .FLT_18,64
+ .align 64
+
+.FLT_19:
+ .long 0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff,0x000000ff
+ .type .FLT_19,@object
+ .size .FLT_19,64
+ .align 64
+
+.FLT_20:
+ .long 0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000,0x28800000
+ .type .FLT_20,@object
+ .size .FLT_20,64
+ .align 64
+
+.FLT_21:
+ .long 0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff,0x0003ffff
+ .type .FLT_21,@object
+ .size .FLT_21,64
+ .align 64
+
+.FLT_22:
+ .long 0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000,0x34000000
+ .type .FLT_22,@object
+ .size .FLT_22,64
+ .align 64
+
+.FLT_23:
+ .long 0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff,0x000001ff
+ .type .FLT_23,@object
+ .size .FLT_23,64
+ .align 64
+
+.FLT_24:
+ .long 0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb,0x40c90fdb
+ .type .FLT_24,@object
+ .size .FLT_24,64
+ .align 64
+
+.FLT_25:
+ .long 0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e,0xb43bbd2e
+ .type .FLT_25,@object
+ .size .FLT_25,64
+ .align 64
+
+.FLT_26:
+ .long 0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff
+ .type .FLT_26,@object
+ .size .FLT_26,64
+ .align 64
+
+.FLT_27:
+ .long 0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000,0x35800000
+ .type .FLT_27,@object
+ .size .FLT_27,64
+ .align 64
+
+.FLT_28:
+ .long 0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002,0x00000002
+ .type .FLT_28,@object
+ .size .FLT_28,64
+ .align 64
+
+.FLT_29:
+ .long 0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb,0x3cc90fdb
+ .type .FLT_29,@object
+ .size .FLT_29,64
+ .align 64
+
+.FLT_30:
+ .long 0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e,0xb03bbd2e
+ .type .FLT_30,@object
+ .size .FLT_30,64
+ .align 64
+
+#ifdef __svml_stan_data_internal_typedef
+typedef unsigned int VUINT32;
+ typedef struct
+ {
+ __declspec(align(64)) VUINT32 _sInvPI_uisa[16][1];
+ __declspec(align(64)) VUINT32 _sPI1_uisa[16][1];
+ __declspec(align(64)) VUINT32 _sPI2_uisa[16][1];
+ __declspec(align(64)) VUINT32 _sPI3_uisa[16][1];
+ __declspec(align(64)) VUINT32 Th_tbl_uisa[32][1];
+ __declspec(align(64)) VUINT32 _sPC3_uisa[16][1];
+ __declspec(align(64)) VUINT32 _sPC5_uisa[16][1];
+ __declspec(align(64)) VUINT32 _sRangeReductionVal_uisa[16][1];
+ __declspec(align(64)) VUINT32 _sAbsMask[16][1];
+ __declspec(align(64)) VUINT32 _sRangeVal[16][1];
+ __declspec(align(64)) VUINT32 _sRShifter[16][1];
+ __declspec(align(64)) VUINT32 _sOne[16][1];
+ __declspec(align(64)) VUINT32 _sRangeReductionVal[16][1];
+ __declspec(align(64)) VUINT32 _sPI1[16][1];
+ __declspec(align(64)) VUINT32 _sPI2[16][1];
+ __declspec(align(64)) VUINT32 _sPI3[16][1];
+ } __svml_stan_data_internal;
+#endif
+__svml_stan_data_internal:
+ /* UISA */
+ .long 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983 /* _sInvPI_uisa */
+ .align 64
+ .long 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda /* _sPI1_uisa */
+ .align 64
+ .long 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168 /* _sPI2_uisa */
+ .align 64
+ .long 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5 /* _sPI3_uisa */
+ /* Th_tbl_uisa for i from 0 to 31 do printsingle(tan(i*Pi/32)); */
+ .align 64
+ .long 0x80000000, 0x3dc9b5dc, 0x3e4bafaf, 0x3e9b5042
+ .long 0x3ed413cd, 0x3f08d5b9, 0x3f2b0dc1, 0x3f521801
+ .long 0x3f800000, 0x3f9bf7ec, 0x3fbf90c7, 0x3fef789e
+ .long 0x401a827a, 0x4052facf, 0x40a0dff7, 0x41227363
+ .long 0xff7fffff, 0xc1227363, 0xc0a0dff7, 0xc052facf
+ .long 0xc01a827a, 0xbfef789e, 0xbfbf90c7, 0xbf9bf7ec
+ .long 0xbf800000, 0xbf521801, 0xbf2b0dc1, 0xbf08d5b9
+ .long 0xbed413cd, 0xbe9b5042, 0xbe4bafaf, 0xbdc9b5dc
+ .align 64
+ .long 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6 /* _sPC3_uisa */
+ .align 64
+ .long 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888 /* _sPC5_uisa */
+ .align 64
+ .long 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000 /* _sRangeReductionVal_uisa */
+ .align 64
+ .long 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF /* _sAbsMask */
+ .align 64
+ .long 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 /* _sRangeVal */
+ .align 64
+ .long 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000 /* _sRShifter */
+ .align 64
+ .long 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000 /* _sOne */
+ .align 64
+ .long 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000, 0x46010000 /* _sRangeVal */
+ .align 64
+ .long 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000 /* _sPI1 */
+ .align 64
+ .long 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000 /* _sPI2 */
+ .align 64
+ .long 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000 /* _sPI3 */
+ .align 64
+ .type __svml_stan_data_internal,@object
+ .size __svml_stan_data_internal,.-__svml_stan_data_internal
+ .align 64
+
+#ifdef __svml_stan_reduction_data_internal_typedef
+typedef unsigned int VUINT32;
+typedef struct
+{
+ __declspec(align(64)) VUINT32 _sPtable[256][3][1];
+} __svml_stan_reduction_data_internal;
+#endif
+__svml_stan_reduction_data_internal:
+ /* P_hi P_med P_lo */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 0 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 1 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 2 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 3 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 4 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 5 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 6 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 7 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 8 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 9 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 10 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 11 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 12 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 13 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 14 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 15 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 16 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 17 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 18 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 19 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 20 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 21 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 22 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 23 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 24 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 25 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 26 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 27 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 28 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 29 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 30 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 31 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 32 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 33 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 34 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 35 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 36 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 37 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 38 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 39 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 40 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 41 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 42 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 43 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 44 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 45 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 46 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 47 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 48 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 49 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 50 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 51 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 52 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 53 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 54 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 55 */
+ .long 0x00000000, 0x00000000, 0x00000000 /* 56 */
+ .long 0x00000000, 0x00000000, 0x00000001 /* 57 */
+ .long 0x00000000, 0x00000000, 0x00000002 /* 58 */
+ .long 0x00000000, 0x00000000, 0x00000005 /* 59 */
+ .long 0x00000000, 0x00000000, 0x0000000A /* 60 */
+ .long 0x00000000, 0x00000000, 0x00000014 /* 61 */
+ .long 0x00000000, 0x00000000, 0x00000028 /* 62 */
+ .long 0x00000000, 0x00000000, 0x00000051 /* 63 */
+ .long 0x00000000, 0x00000000, 0x000000A2 /* 64 */
+ .long 0x00000000, 0x00000000, 0x00000145 /* 65 */
+ .long 0x00000000, 0x00000000, 0x0000028B /* 66 */
+ .long 0x00000000, 0x00000000, 0x00000517 /* 67 */
+ .long 0x00000000, 0x00000000, 0x00000A2F /* 68 */
+ .long 0x00000000, 0x00000000, 0x0000145F /* 69 */
+ .long 0x00000000, 0x00000000, 0x000028BE /* 70 */
+ .long 0x00000000, 0x00000000, 0x0000517C /* 71 */
+ .long 0x00000000, 0x00000000, 0x0000A2F9 /* 72 */
+ .long 0x00000000, 0x00000000, 0x000145F3 /* 73 */
+ .long 0x00000000, 0x00000000, 0x00028BE6 /* 74 */
+ .long 0x00000000, 0x00000000, 0x000517CC /* 75 */
+ .long 0x00000000, 0x00000000, 0x000A2F98 /* 76 */
+ .long 0x00000000, 0x00000000, 0x00145F30 /* 77 */
+ .long 0x00000000, 0x00000000, 0x0028BE60 /* 78 */
+ .long 0x00000000, 0x00000000, 0x00517CC1 /* 79 */
+ .long 0x00000000, 0x00000000, 0x00A2F983 /* 80 */
+ .long 0x00000000, 0x00000000, 0x0145F306 /* 81 */
+ .long 0x00000000, 0x00000000, 0x028BE60D /* 82 */
+ .long 0x00000000, 0x00000000, 0x0517CC1B /* 83 */
+ .long 0x00000000, 0x00000000, 0x0A2F9836 /* 84 */
+ .long 0x00000000, 0x00000000, 0x145F306D /* 85 */
+ .long 0x00000000, 0x00000000, 0x28BE60DB /* 86 */
+ .long 0x00000000, 0x00000000, 0x517CC1B7 /* 87 */
+ .long 0x00000000, 0x00000000, 0xA2F9836E /* 88 */
+ .long 0x00000000, 0x00000001, 0x45F306DC /* 89 */
+ .long 0x00000000, 0x00000002, 0x8BE60DB9 /* 90 */
+ .long 0x00000000, 0x00000005, 0x17CC1B72 /* 91 */
+ .long 0x00000000, 0x0000000A, 0x2F9836E4 /* 92 */
+ .long 0x00000000, 0x00000014, 0x5F306DC9 /* 93 */
+ .long 0x00000000, 0x00000028, 0xBE60DB93 /* 94 */
+ .long 0x00000000, 0x00000051, 0x7CC1B727 /* 95 */
+ .long 0x00000000, 0x000000A2, 0xF9836E4E /* 96 */
+ .long 0x00000000, 0x00000145, 0xF306DC9C /* 97 */
+ .long 0x00000000, 0x0000028B, 0xE60DB939 /* 98 */
+ .long 0x00000000, 0x00000517, 0xCC1B7272 /* 99 */
+ .long 0x00000000, 0x00000A2F, 0x9836E4E4 /* 100 */
+ .long 0x00000000, 0x0000145F, 0x306DC9C8 /* 101 */
+ .long 0x00000000, 0x000028BE, 0x60DB9391 /* 102 */
+ .long 0x00000000, 0x0000517C, 0xC1B72722 /* 103 */
+ .long 0x00000000, 0x0000A2F9, 0x836E4E44 /* 104 */
+ .long 0x00000000, 0x000145F3, 0x06DC9C88 /* 105 */
+ .long 0x00000000, 0x00028BE6, 0x0DB93910 /* 106 */
+ .long 0x00000000, 0x000517CC, 0x1B727220 /* 107 */
+ .long 0x00000000, 0x000A2F98, 0x36E4E441 /* 108 */
+ .long 0x00000000, 0x00145F30, 0x6DC9C882 /* 109 */
+ .long 0x00000000, 0x0028BE60, 0xDB939105 /* 110 */
+ .long 0x00000000, 0x00517CC1, 0xB727220A /* 111 */
+ .long 0x00000000, 0x00A2F983, 0x6E4E4415 /* 112 */
+ .long 0x00000000, 0x0145F306, 0xDC9C882A /* 113 */
+ .long 0x00000000, 0x028BE60D, 0xB9391054 /* 114 */
+ .long 0x00000000, 0x0517CC1B, 0x727220A9 /* 115 */
+ .long 0x00000000, 0x0A2F9836, 0xE4E44152 /* 116 */
+ .long 0x00000000, 0x145F306D, 0xC9C882A5 /* 117 */
+ .long 0x00000000, 0x28BE60DB, 0x9391054A /* 118 */
+ .long 0x00000000, 0x517CC1B7, 0x27220A94 /* 119 */
+ .long 0x00000000, 0xA2F9836E, 0x4E441529 /* 120 */
+ .long 0x00000001, 0x45F306DC, 0x9C882A53 /* 121 */
+ .long 0x00000002, 0x8BE60DB9, 0x391054A7 /* 122 */
+ .long 0x00000005, 0x17CC1B72, 0x7220A94F /* 123 */
+ .long 0x0000000A, 0x2F9836E4, 0xE441529F /* 124 */
+ .long 0x00000014, 0x5F306DC9, 0xC882A53F /* 125 */
+ .long 0x00000028, 0xBE60DB93, 0x91054A7F /* 126 */
+ .long 0x00000051, 0x7CC1B727, 0x220A94FE /* 127 */
+ .long 0x000000A2, 0xF9836E4E, 0x441529FC /* 128 */
+ .long 0x00000145, 0xF306DC9C, 0x882A53F8 /* 129 */
+ .long 0x0000028B, 0xE60DB939, 0x1054A7F0 /* 130 */
+ .long 0x00000517, 0xCC1B7272, 0x20A94FE1 /* 131 */
+ .long 0x00000A2F, 0x9836E4E4, 0x41529FC2 /* 132 */
+ .long 0x0000145F, 0x306DC9C8, 0x82A53F84 /* 133 */
+ .long 0x000028BE, 0x60DB9391, 0x054A7F09 /* 134 */
+ .long 0x0000517C, 0xC1B72722, 0x0A94FE13 /* 135 */
+ .long 0x0000A2F9, 0x836E4E44, 0x1529FC27 /* 136 */
+ .long 0x000145F3, 0x06DC9C88, 0x2A53F84E /* 137 */
+ .long 0x00028BE6, 0x0DB93910, 0x54A7F09D /* 138 */
+ .long 0x000517CC, 0x1B727220, 0xA94FE13A /* 139 */
+ .long 0x000A2F98, 0x36E4E441, 0x529FC275 /* 140 */
+ .long 0x00145F30, 0x6DC9C882, 0xA53F84EA /* 141 */
+ .long 0x0028BE60, 0xDB939105, 0x4A7F09D5 /* 142 */
+ .long 0x00517CC1, 0xB727220A, 0x94FE13AB /* 143 */
+ .long 0x00A2F983, 0x6E4E4415, 0x29FC2757 /* 144 */
+ .long 0x0145F306, 0xDC9C882A, 0x53F84EAF /* 145 */
+ .long 0x028BE60D, 0xB9391054, 0xA7F09D5F /* 146 */
+ .long 0x0517CC1B, 0x727220A9, 0x4FE13ABE /* 147 */
+ .long 0x0A2F9836, 0xE4E44152, 0x9FC2757D /* 148 */
+ .long 0x145F306D, 0xC9C882A5, 0x3F84EAFA /* 149 */
+ .long 0x28BE60DB, 0x9391054A, 0x7F09D5F4 /* 150 */
+ .long 0x517CC1B7, 0x27220A94, 0xFE13ABE8 /* 151 */
+ .long 0xA2F9836E, 0x4E441529, 0xFC2757D1 /* 152 */
+ .long 0x45F306DC, 0x9C882A53, 0xF84EAFA3 /* 153 */
+ .long 0x8BE60DB9, 0x391054A7, 0xF09D5F47 /* 154 */
+ .long 0x17CC1B72, 0x7220A94F, 0xE13ABE8F /* 155 */
+ .long 0x2F9836E4, 0xE441529F, 0xC2757D1F /* 156 */
+ .long 0x5F306DC9, 0xC882A53F, 0x84EAFA3E /* 157 */
+ .long 0xBE60DB93, 0x91054A7F, 0x09D5F47D /* 158 */
+ .long 0x7CC1B727, 0x220A94FE, 0x13ABE8FA /* 159 */
+ .long 0xF9836E4E, 0x441529FC, 0x2757D1F5 /* 160 */
+ .long 0xF306DC9C, 0x882A53F8, 0x4EAFA3EA /* 161 */
+ .long 0xE60DB939, 0x1054A7F0, 0x9D5F47D4 /* 162 */
+ .long 0xCC1B7272, 0x20A94FE1, 0x3ABE8FA9 /* 163 */
+ .long 0x9836E4E4, 0x41529FC2, 0x757D1F53 /* 164 */
+ .long 0x306DC9C8, 0x82A53F84, 0xEAFA3EA6 /* 165 */
+ .long 0x60DB9391, 0x054A7F09, 0xD5F47D4D /* 166 */
+ .long 0xC1B72722, 0x0A94FE13, 0xABE8FA9A /* 167 */
+ .long 0x836E4E44, 0x1529FC27, 0x57D1F534 /* 168 */
+ .long 0x06DC9C88, 0x2A53F84E, 0xAFA3EA69 /* 169 */
+ .long 0x0DB93910, 0x54A7F09D, 0x5F47D4D3 /* 170 */
+ .long 0x1B727220, 0xA94FE13A, 0xBE8FA9A6 /* 171 */
+ .long 0x36E4E441, 0x529FC275, 0x7D1F534D /* 172 */
+ .long 0x6DC9C882, 0xA53F84EA, 0xFA3EA69B /* 173 */
+ .long 0xDB939105, 0x4A7F09D5, 0xF47D4D37 /* 174 */
+ .long 0xB727220A, 0x94FE13AB, 0xE8FA9A6E /* 175 */
+ .long 0x6E4E4415, 0x29FC2757, 0xD1F534DD /* 176 */
+ .long 0xDC9C882A, 0x53F84EAF, 0xA3EA69BB /* 177 */
+ .long 0xB9391054, 0xA7F09D5F, 0x47D4D377 /* 178 */
+ .long 0x727220A9, 0x4FE13ABE, 0x8FA9A6EE /* 179 */
+ .long 0xE4E44152, 0x9FC2757D, 0x1F534DDC /* 180 */
+ .long 0xC9C882A5, 0x3F84EAFA, 0x3EA69BB8 /* 181 */
+ .long 0x9391054A, 0x7F09D5F4, 0x7D4D3770 /* 182 */
+ .long 0x27220A94, 0xFE13ABE8, 0xFA9A6EE0 /* 183 */
+ .long 0x4E441529, 0xFC2757D1, 0xF534DDC0 /* 184 */
+ .long 0x9C882A53, 0xF84EAFA3, 0xEA69BB81 /* 185 */
+ .long 0x391054A7, 0xF09D5F47, 0xD4D37703 /* 186 */
+ .long 0x7220A94F, 0xE13ABE8F, 0xA9A6EE06 /* 187 */
+ .long 0xE441529F, 0xC2757D1F, 0x534DDC0D /* 188 */
+ .long 0xC882A53F, 0x84EAFA3E, 0xA69BB81B /* 189 */
+ .long 0x91054A7F, 0x09D5F47D, 0x4D377036 /* 190 */
+ .long 0x220A94FE, 0x13ABE8FA, 0x9A6EE06D /* 191 */
+ .long 0x441529FC, 0x2757D1F5, 0x34DDC0DB /* 192 */
+ .long 0x882A53F8, 0x4EAFA3EA, 0x69BB81B6 /* 193 */
+ .long 0x1054A7F0, 0x9D5F47D4, 0xD377036D /* 194 */
+ .long 0x20A94FE1, 0x3ABE8FA9, 0xA6EE06DB /* 195 */
+ .long 0x41529FC2, 0x757D1F53, 0x4DDC0DB6 /* 196 */
+ .long 0x82A53F84, 0xEAFA3EA6, 0x9BB81B6C /* 197 */
+ .long 0x054A7F09, 0xD5F47D4D, 0x377036D8 /* 198 */
+ .long 0x0A94FE13, 0xABE8FA9A, 0x6EE06DB1 /* 199 */
+ .long 0x1529FC27, 0x57D1F534, 0xDDC0DB62 /* 200 */
+ .long 0x2A53F84E, 0xAFA3EA69, 0xBB81B6C5 /* 201 */
+ .long 0x54A7F09D, 0x5F47D4D3, 0x77036D8A /* 202 */
+ .long 0xA94FE13A, 0xBE8FA9A6, 0xEE06DB14 /* 203 */
+ .long 0x529FC275, 0x7D1F534D, 0xDC0DB629 /* 204 */
+ .long 0xA53F84EA, 0xFA3EA69B, 0xB81B6C52 /* 205 */
+ .long 0x4A7F09D5, 0xF47D4D37, 0x7036D8A5 /* 206 */
+ .long 0x94FE13AB, 0xE8FA9A6E, 0xE06DB14A /* 207 */
+ .long 0x29FC2757, 0xD1F534DD, 0xC0DB6295 /* 208 */
+ .long 0x53F84EAF, 0xA3EA69BB, 0x81B6C52B /* 209 */
+ .long 0xA7F09D5F, 0x47D4D377, 0x036D8A56 /* 210 */
+ .long 0x4FE13ABE, 0x8FA9A6EE, 0x06DB14AC /* 211 */
+ .long 0x9FC2757D, 0x1F534DDC, 0x0DB62959 /* 212 */
+ .long 0x3F84EAFA, 0x3EA69BB8, 0x1B6C52B3 /* 213 */
+ .long 0x7F09D5F4, 0x7D4D3770, 0x36D8A566 /* 214 */
+ .long 0xFE13ABE8, 0xFA9A6EE0, 0x6DB14ACC /* 215 */
+ .long 0xFC2757D1, 0xF534DDC0, 0xDB629599 /* 216 */
+ .long 0xF84EAFA3, 0xEA69BB81, 0xB6C52B32 /* 217 */
+ .long 0xF09D5F47, 0xD4D37703, 0x6D8A5664 /* 218 */
+ .long 0xE13ABE8F, 0xA9A6EE06, 0xDB14ACC9 /* 219 */
+ .long 0xC2757D1F, 0x534DDC0D, 0xB6295993 /* 220 */
+ .long 0x84EAFA3E, 0xA69BB81B, 0x6C52B327 /* 221 */
+ .long 0x09D5F47D, 0x4D377036, 0xD8A5664F /* 222 */
+ .long 0x13ABE8FA, 0x9A6EE06D, 0xB14ACC9E /* 223 */
+ .long 0x2757D1F5, 0x34DDC0DB, 0x6295993C /* 224 */
+ .long 0x4EAFA3EA, 0x69BB81B6, 0xC52B3278 /* 225 */
+ .long 0x9D5F47D4, 0xD377036D, 0x8A5664F1 /* 226 */
+ .long 0x3ABE8FA9, 0xA6EE06DB, 0x14ACC9E2 /* 227 */
+ .long 0x757D1F53, 0x4DDC0DB6, 0x295993C4 /* 228 */
+ .long 0xEAFA3EA6, 0x9BB81B6C, 0x52B32788 /* 229 */
+ .long 0xD5F47D4D, 0x377036D8, 0xA5664F10 /* 230 */
+ .long 0xABE8FA9A, 0x6EE06DB1, 0x4ACC9E21 /* 231 */
+ .long 0x57D1F534, 0xDDC0DB62, 0x95993C43 /* 232 */
+ .long 0xAFA3EA69, 0xBB81B6C5, 0x2B327887 /* 233 */
+ .long 0x5F47D4D3, 0x77036D8A, 0x5664F10E /* 234 */
+ .long 0xBE8FA9A6, 0xEE06DB14, 0xACC9E21C /* 235 */
+ .long 0x7D1F534D, 0xDC0DB629, 0x5993C439 /* 236 */
+ .long 0xFA3EA69B, 0xB81B6C52, 0xB3278872 /* 237 */
+ .long 0xF47D4D37, 0x7036D8A5, 0x664F10E4 /* 238 */
+ .long 0xE8FA9A6E, 0xE06DB14A, 0xCC9E21C8 /* 239 */
+ .long 0xD1F534DD, 0xC0DB6295, 0x993C4390 /* 240 */
+ .long 0xA3EA69BB, 0x81B6C52B, 0x32788720 /* 241 */
+ .long 0x47D4D377, 0x036D8A56, 0x64F10E41 /* 242 */
+ .long 0x8FA9A6EE, 0x06DB14AC, 0xC9E21C82 /* 243 */
+ .long 0x1F534DDC, 0x0DB62959, 0x93C43904 /* 244 */
+ .long 0x3EA69BB8, 0x1B6C52B3, 0x27887208 /* 245 */
+ .long 0x7D4D3770, 0x36D8A566, 0x4F10E410 /* 246 */
+ .long 0xFA9A6EE0, 0x6DB14ACC, 0x9E21C820 /* 247 */
+ .long 0xF534DDC0, 0xDB629599, 0x3C439041 /* 248 */
+ .long 0xEA69BB81, 0xB6C52B32, 0x78872083 /* 249 */
+ .long 0xD4D37703, 0x6D8A5664, 0xF10E4107 /* 250 */
+ .long 0xA9A6EE06, 0xDB14ACC9, 0xE21C820F /* 251 */
+ .long 0x534DDC0D, 0xB6295993, 0xC439041F /* 252 */
+ .long 0xA69BB81B, 0x6C52B327, 0x8872083F /* 253 */
+ .long 0x4D377036, 0xD8A5664F, 0x10E4107F /* 254 */
+ .long 0x9A6EE06D, 0xB14ACC9E, 0x21C820FF /* 255 */
+ .align 64
+ .type __svml_stan_reduction_data_internal,@object
+ .size __svml_stan_reduction_data_internal,.-__svml_stan_reduction_data_internal