]> git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S
x86-64: Add vector log10/log10f implementation to libmvec
[thirdparty/glibc.git] / sysdeps / x86_64 / fpu / multiarch / svml_d_log104_core_avx2.S
1 /* Function log10 vectorized with AVX2.
2 Copyright (C) 2021 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 https://www.gnu.org/licenses/. */
18
19 /*
20 * ALGORITHM DESCRIPTION:
21 *
22 * Get short reciprocal approximation Rcp ~ 1/mantissa(x)
23 * R = Rcp*x - 1.0
24 * log10(x) = k*log10(2.0) - log10(Rcp) + poly_approximation(R)
25 * log10(Rcp) is tabulated
26 *
27 *
28 */
29
30 /* Offsets for data table __svml_dlog10_data_internal
31 */
32 #define Log_HA_table 0
33 #define Log_LA_table 4128
34 #define poly_coeff 8256
35 #define ExpMask 8416
36 #define Two10 8448
37 #define MinNorm 8480
38 #define MaxNorm 8512
39 #define HalfMask 8544
40 #define One 8576
41 #define Threshold 8608
42 #define Bias 8640
43 #define Bias1 8672
44 #define L2 8704
45
46 /* Lookup bias for data table __svml_dlog10_data_internal. */
47 #define Table_Lookup_Bias -0x406fe0
48
49 #include <sysdep.h>
50
51 .text
52 .section .text.avx2,"ax",@progbits
53 ENTRY(_ZGVdN4v_log10_avx2)
54 pushq %rbp
55 cfi_def_cfa_offset(16)
56 movq %rsp, %rbp
57 cfi_def_cfa(6, 16)
58 cfi_offset(6, -16)
59 andq $-32, %rsp
60 subq $96, %rsp
61 lea Table_Lookup_Bias+__svml_dlog10_data_internal(%rip), %r8
62 vmovapd %ymm0, %ymm3
63
64 /* preserve mantissa, set input exponent to 2^(-10) */
65 vandpd ExpMask+__svml_dlog10_data_internal(%rip), %ymm3, %ymm4
66 vorpd Two10+__svml_dlog10_data_internal(%rip), %ymm4, %ymm2
67
68 /* reciprocal approximation good to at least 11 bits */
69 vcvtpd2ps %ymm2, %xmm5
70
71 /* exponent bits */
72 vpsrlq $20, %ymm3, %ymm7
73 vmovupd One+__svml_dlog10_data_internal(%rip), %ymm14
74 vrcpps %xmm5, %xmm6
75
76 /* check range */
77 vcmplt_oqpd MinNorm+__svml_dlog10_data_internal(%rip), %ymm3, %ymm11
78 vcmpnle_uqpd MaxNorm+__svml_dlog10_data_internal(%rip), %ymm3, %ymm12
79 vcvtps2pd %xmm6, %ymm9
80
81 /* round reciprocal to nearest integer, will have 1+9 mantissa bits */
82 vroundpd $0, %ymm9, %ymm1
83
84 /* exponent*log(2.0) */
85 vmovupd Threshold+__svml_dlog10_data_internal(%rip), %ymm9
86
87 /*
88 * prepare table index
89 * table lookup
90 */
91 vpsrlq $40, %ymm1, %ymm15
92
93 /* argument reduction */
94 vfmsub213pd %ymm14, %ymm1, %ymm2
95 vcmplt_oqpd %ymm1, %ymm9, %ymm1
96 vorpd %ymm12, %ymm11, %ymm13
97 vmovupd poly_coeff+64+__svml_dlog10_data_internal(%rip), %ymm12
98 vfmadd213pd poly_coeff+96+__svml_dlog10_data_internal(%rip), %ymm2, %ymm12
99
100 /* combine and get argument value range mask */
101 vmovmskpd %ymm13, %eax
102 vmulpd %ymm2, %ymm2, %ymm13
103 vextractf128 $1, %ymm7, %xmm8
104 vshufps $221, %xmm8, %xmm7, %xmm10
105
106 /* biased exponent in DP format */
107 vcvtdq2pd %xmm10, %ymm0
108 vandpd Bias+__svml_dlog10_data_internal(%rip), %ymm1, %ymm10
109 vorpd Bias1+__svml_dlog10_data_internal(%rip), %ymm10, %ymm11
110 vsubpd %ymm11, %ymm0, %ymm0
111 vmulpd L2+__svml_dlog10_data_internal(%rip), %ymm0, %ymm1
112
113 /* polynomial */
114 vmovupd poly_coeff+__svml_dlog10_data_internal(%rip), %ymm0
115 vfmadd213pd poly_coeff+32+__svml_dlog10_data_internal(%rip), %ymm2, %ymm0
116 vmulpd poly_coeff+128+__svml_dlog10_data_internal(%rip), %ymm2, %ymm2
117 vfmadd213pd %ymm12, %ymm13, %ymm0
118 vfmadd213pd %ymm2, %ymm13, %ymm0
119 vextractf128 $1, %ymm15, %xmm6
120 vmovd %xmm15, %edx
121 vmovd %xmm6, %esi
122 movslq %edx, %rdx
123 vpextrd $2, %xmm15, %ecx
124 movslq %esi, %rsi
125 vpextrd $2, %xmm6, %edi
126 movslq %ecx, %rcx
127 movslq %edi, %rdi
128 vmovsd (%r8,%rdx), %xmm4
129 vmovsd (%r8,%rsi), %xmm7
130 vmovhpd (%r8,%rcx), %xmm4, %xmm5
131 vmovhpd (%r8,%rdi), %xmm7, %xmm8
132 vinsertf128 $1, %xmm8, %ymm5, %ymm14
133
134 /* reconstruction */
135 vaddpd %ymm0, %ymm14, %ymm2
136 vaddpd %ymm2, %ymm1, %ymm0
137 testl %eax, %eax
138
139 /* Go to special inputs processing branch */
140 jne L(SPECIAL_VALUES_BRANCH)
141 # LOE rbx r12 r13 r14 r15 eax ymm0 ymm3
142
143 /* Restore registers
144 * and exit the function
145 */
146
147 L(EXIT):
148 movq %rbp, %rsp
149 popq %rbp
150 cfi_def_cfa(7, 8)
151 cfi_restore(6)
152 ret
153 cfi_def_cfa(6, 16)
154 cfi_offset(6, -16)
155
156 /* Branch to process
157 * special inputs
158 */
159
160 L(SPECIAL_VALUES_BRANCH):
161 vmovupd %ymm3, 32(%rsp)
162 vmovupd %ymm0, 64(%rsp)
163 # LOE rbx r12 r13 r14 r15 eax ymm0
164
165 xorl %edx, %edx
166 # LOE rbx r12 r13 r14 r15 eax edx
167
168 vzeroupper
169 movq %r12, 16(%rsp)
170 /* DW_CFA_expression: r12 (r12) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -80; DW_OP_plus) */
171 .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xb0, 0xff, 0xff, 0xff, 0x22
172 movl %edx, %r12d
173 movq %r13, 8(%rsp)
174 /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -88; DW_OP_plus) */
175 .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa8, 0xff, 0xff, 0xff, 0x22
176 movl %eax, %r13d
177 movq %r14, (%rsp)
178 /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -96; DW_OP_plus) */
179 .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
180 # LOE rbx r15 r12d r13d
181
182 /* Range mask
183 * bits check
184 */
185
186 L(RANGEMASK_CHECK):
187 btl %r12d, %r13d
188
189 /* Call scalar math function */
190 jc L(SCALAR_MATH_CALL)
191 # LOE rbx r15 r12d r13d
192
193 /* Special inputs
194 * processing loop
195 */
196
197 L(SPECIAL_VALUES_LOOP):
198 incl %r12d
199 cmpl $4, %r12d
200
201 /* Check bits in range mask */
202 jl L(RANGEMASK_CHECK)
203 # LOE rbx r15 r12d r13d
204
205 movq 16(%rsp), %r12
206 cfi_restore(12)
207 movq 8(%rsp), %r13
208 cfi_restore(13)
209 movq (%rsp), %r14
210 cfi_restore(14)
211 vmovupd 64(%rsp), %ymm0
212
213 /* Go to exit */
214 jmp L(EXIT)
215 /* DW_CFA_expression: r12 (r12) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -80; DW_OP_plus) */
216 .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xb0, 0xff, 0xff, 0xff, 0x22
217 /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -88; DW_OP_plus) */
218 .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa8, 0xff, 0xff, 0xff, 0x22
219 /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -96; DW_OP_plus) */
220 .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
221 # LOE rbx r12 r13 r14 r15 ymm0
222
223 /* Scalar math fucntion call
224 * to process special input
225 */
226
227 L(SCALAR_MATH_CALL):
228 movl %r12d, %r14d
229 movsd 32(%rsp,%r14,8), %xmm0
230 call log10@PLT
231 # LOE rbx r14 r15 r12d r13d xmm0
232
233 movsd %xmm0, 64(%rsp,%r14,8)
234
235 /* Process special inputs in loop */
236 jmp L(SPECIAL_VALUES_LOOP)
237 # LOE rbx r15 r12d r13d
238 END(_ZGVdN4v_log10_avx2)
239
240 .section .rodata, "a"
241 .align 32
242
243 #ifdef __svml_dlog10_data_internal_typedef
244 typedef unsigned int VUINT32;
245 typedef struct {
246 __declspec(align(32)) VUINT32 Log_HA_table[(1<<9)+2][2];
247 __declspec(align(32)) VUINT32 Log_LA_table[(1<<9)+1][2];
248 __declspec(align(32)) VUINT32 poly_coeff[5][4][2];
249 __declspec(align(32)) VUINT32 ExpMask[4][2];
250 __declspec(align(32)) VUINT32 Two10[4][2];
251 __declspec(align(32)) VUINT32 MinNorm[4][2];
252 __declspec(align(32)) VUINT32 MaxNorm[4][2];
253 __declspec(align(32)) VUINT32 HalfMask[4][2];
254 __declspec(align(32)) VUINT32 One[4][2];
255 __declspec(align(32)) VUINT32 Threshold[4][2];
256 __declspec(align(32)) VUINT32 Bias[4][2];
257 __declspec(align(32)) VUINT32 Bias1[4][2];
258 __declspec(align(32)) VUINT32 L2[4][2];
259 } __svml_dlog10_data_internal;
260 #endif
261 __svml_dlog10_data_internal:
262 /* Log_HA_table */
263 .quad 0xc0733a7146f6b080, 0xbe1e707ce619c200
264 .quad 0xc0733a7547771970, 0xbe1e79c6c06d6f51
265 .quad 0xc0733a7945aacb70, 0xbe1e78e225fad29c
266 .quad 0xc0733a7d41946970, 0xbe1e76d607f9693b
267 .quad 0xc0733a813b3691f0, 0xbe1e7704b3e0685b
268 .quad 0xc0733a853293df00, 0xbe1e79c1216a27fa
269 .quad 0xc0733a8927aee660, 0xbe1e76dce5734a81
270 .quad 0xc0733a8d1a8a3920, 0xbe1e782ee2ca4dba
271 .quad 0xc0733a910b286430, 0xbe1e7812d1a0a61f
272 .quad 0xc0733a94f98bf010, 0xbe1e77e1b5ecbc61
273 .quad 0xc0733a98e5b76100, 0xbe1e76635cac1586
274 .quad 0xc0733a9ccfad36f0, 0xbe1e7638f7968f32
275 .quad 0xc0733aa0b76feda0, 0xbe1e7840ee76e365
276 .quad 0xc0733aa49d01fcb0, 0xbe1e79f3fd01907e
277 .quad 0xc0733aa88065d7a0, 0xbe1e77bbb3a9c38a
278 .quad 0xc0733aac619dedb0, 0xbe1e7742719bf41d
279 .quad 0xc0733ab040acaa20, 0xbe1e79bcedaf79cb
280 .quad 0xc0733ab41d947450, 0xbe1e762d63cb7ca0
281 .quad 0xc0733ab7f857af50, 0xbe1e77a07be83403
282 .quad 0xc0733abbd0f8ba80, 0xbe1e7763ff836ad0
283 .quad 0xc0733abfa779f130, 0xbe1e7737720ead39
284 .quad 0xc0733ac37bddaad0, 0xbe1e7776a08e55e7
285 .quad 0xc0733ac74e263af0, 0xbe1e793e3c52dd36
286 .quad 0xc0733acb1e55f160, 0xbe1e788a94695051
287 .quad 0xc0733aceec6f1a10, 0xbe1e76508114a813
288 .quad 0xc0733ad2b873fd20, 0xbe1e76909457d23e
289 .quad 0xc0733ad68266df10, 0xbe1e7664a24f9ca4
290 .quad 0xc0733ada4a4a0090, 0xbe1e7a07b3d44b18
291 .quad 0xc0733ade101f9ee0, 0xbe1e76d87594704d
292 .quad 0xc0733ae1d3e9f340, 0xbe1e79563595a182
293 .quad 0xc0733ae595ab33b0, 0xbe1e771880c3c6ab
294 .quad 0xc0733ae955659250, 0xbe1e78c171f517d4
295 .quad 0xc0733aed131b3df0, 0xbe1e77eac3874666
296 .quad 0xc0733af0cece61b0, 0xbe1e790db479d8f6
297 .quad 0xc0733af488812550, 0xbe1e7965d1aa5c90
298 .quad 0xc0733af84035ad10, 0xbe1e78ceb398ba47
299 .quad 0xc0733afbf5ee19c0, 0xbe1e779cc0dcb5aa
300 .quad 0xc0733affa9ac88c0, 0xbe1e7871053953ed
301 .quad 0xc0733b035b731420, 0xbe1e7a082cffa71a
302 .quad 0xc0733b070b43d2a0, 0xbe1e7904b4382fad
303 .quad 0xc0733b0ab920d790, 0xbe1e79b458d0b4f3
304 .quad 0xc0733b0e650c3310, 0xbe1e79d0ded414c6
305 .quad 0xc0733b120f07f200, 0xbe1e763c357a1943
306 .quad 0xc0733b15b7161dd0, 0xbe1e78b80ba6daaa
307 .quad 0xc0733b195d38bd00, 0xbe1e7998e23b8ffd
308 .quad 0xc0733b1d0171d2c0, 0xbe1e7974aa65ee8c
309 .quad 0xc0733b20a3c35f20, 0xbe1e76ccfde752ab
310 .quad 0xc0733b24442f5ef0, 0xbe1e77b4ff19debb
311 .quad 0xc0733b27e2b7cc10, 0xbe1e7772ee478542
312 .quad 0xc0733b2b7f5e9d30, 0xbe1e781d81b58b44
313 .quad 0xc0733b2f1a25c600, 0xbe1e78350d967565
314 .quad 0xc0733b32b30f3720, 0xbe1e783888e48152
315 .quad 0xc0733b364a1cde30, 0xbe1e78367bf7c111
316 .quad 0xc0733b39df50a5d0, 0xbe1e7959e57ca47d
317 .quad 0xc0733b3d72ac75c0, 0xbe1e777322423222
318 .quad 0xc0733b41043232b0, 0xbe1e767ce42a60aa
319 .quad 0xc0733b4493e3be70, 0xbe1e781d445aea19
320 .quad 0xc0733b4821c2f800, 0xbe1e7922fca18e18
321 .quad 0xc0733b4badd1bb80, 0xbe1e76fed3d40647
322 .quad 0xc0733b4f3811e210, 0xbe1e793948c9eabc
323 .quad 0xc0733b52c0854240, 0xbe1e76e487656b8c
324 .quad 0xc0733b56472daf90, 0xbe1e780ab2f71223
325 .quad 0xc0733b59cc0cfaf0, 0xbe1e77189120b09c
326 .quad 0xc0733b5d4f24f270, 0xbe1e7644a0343a12
327 .quad 0xc0733b60d0776160, 0xbe1e78f2a3e4733d
328 .quad 0xc0733b6450061080, 0xbe1e7913b2f73ae5
329 .quad 0xc0733b67cdd2c5c0, 0xbe1e7882d08393b5
330 .quad 0xc0733b6b49df4470, 0xbe1e765e1b209979
331 .quad 0xc0733b6ec42d4d20, 0xbe1e785c9c4620d4
332 .quad 0xc0733b75b394f240, 0xbe1e78878cd0e956
333 .quad 0xc0733b7c9c178630, 0xbe1e789a4112d90b
334 .quad 0xc0733b837dc2b0f0, 0xbe1e79050b8a1766
335 .quad 0xc0733b8a58a3f220, 0xbe1e7790dffc47aa
336 .quad 0xc0733b912cc8a180, 0xbe1e77174593b06a
337 .quad 0xc0733b97fa3defb0, 0xbe1e7677de2d2ecc
338 .quad 0xc0733b9ec110e6b0, 0xbe1e76cff477ca18
339 .quad 0xc0733ba5814e6a80, 0xbe1e78f8644dec7b
340 .quad 0xc0733bac3b0339d0, 0xbe1e764e1361788d
341 .quad 0xc0733bb2ee3bee30, 0xbe1e78c913e738de
342 .quad 0xc0733bb99b04fd30, 0xbe1e76666f5bddaa
343 .quad 0xc0733bc0416ab850, 0xbe1e77e87cbd8ab6
344 .quad 0xc0733bc6e1794e10, 0xbe1e76f18ba1c966
345 .quad 0xc0733bcd7b3cca10, 0xbe1e777c9461b8db
346 .quad 0xc0733bd40ec115d0, 0xbe1e78b78526ffac
347 .quad 0xc0733bda9c11f920, 0xbe1e7942abecfede
348 .quad 0xc0733be1233b1aa0, 0xbe1e76d8a684fd8c
349 .quad 0xc0733be7a4480010, 0xbe1e79622b539ac9
350 .quad 0xc0733bee1f440f30, 0xbe1e7978e7cc20ea
351 .quad 0xc0733bf4943a8de0, 0xbe1e765c9c9de825
352 .quad 0xc0733bfb0336a290, 0xbe1e775d8b138ee2
353 .quad 0xc0733c016c435500, 0xbe1e78bf33465c2f
354 .quad 0xc0733c07cf6b8e80, 0xbe1e78164f7cc441
355 .quad 0xc0733c0e2cba1a50, 0xbe1e7824e64d0b23
356 .quad 0xc0733c148439a630, 0xbe1e78373ae7dd81
357 .quad 0xc0733c1ad5f4c2c0, 0xbe1e7704513e0afe
358 .quad 0xc0733c2121f5e3d0, 0xbe1e7914aa84200f
359 .quad 0xc0733c2768476110, 0xbe1e76b1cde25cf6
360 .quad 0xc0733c2da8f37600, 0xbe1e796120e3862d
361 .quad 0xc0733c33e40442e0, 0xbe1e78ec836d7e7b
362 .quad 0xc0733c3a1983cca0, 0xbe1e77fb13b7dabb
363 .quad 0xc0733c40497bfd70, 0xbe1e783c6fcb2404
364 .quad 0xc0733c4673f6a530, 0xbe1e7628bb93dce8
365 .quad 0xc0733c4c98fd7990, 0xbe1e7857a47b5001
366 .quad 0xc0733c52b89a16d0, 0xbe1e76708dc2831f
367 .quad 0xc0733c58d2d5ffa0, 0xbe1e77b6038651f1
368 .quad 0xc0733c5ee7ba9de0, 0xbe1e792e855bb5b2
369 .quad 0xc0733c64f75142d0, 0xbe1e776cacd5c105
370 .quad 0xc0733c6b01a32740, 0xbe1e77f8a8011315
371 .quad 0xc0733c7106b96c30, 0xbe1e765cf3efcfde
372 .quad 0xc0733c77069d1ad0, 0xbe1e78d837d2efac
373 .quad 0xc0733c7d01572530, 0xbe1e78b615cf772c
374 .quad 0xc0733c82f6f06640, 0xbe1e7650bbbd7a25
375 .quad 0xc0733c88e771a220, 0xbe1e78bcf3495872
376 .quad 0xc0733c8ed2e386c0, 0xbe1e792266832e84
377 .quad 0xc0733c94b94eabd0, 0xbe1e79c1c3c2ca52
378 .quad 0xc0733c9a9abb9340, 0xbe1e78aa61e5807d
379 .quad 0xc0733ca07732a970, 0xbe1e7620fc4cf156
380 .quad 0xc0733ca64ebc4570, 0xbe1e76b914a832c5
381 .quad 0xc0733cac2160a970, 0xbe1e79227f72020e
382 .quad 0xc0733cb1ef280300, 0xbe1e77ac972cc008
383 .quad 0xc0733cb7b81a6b10, 0xbe1e798089be41f4
384 .quad 0xc0733cbd7c3fe6a0, 0xbe1e77942ae037fe
385 .quad 0xc0733cc33ba06690, 0xbe1e7956ae6463d9
386 .quad 0xc0733cc8f643c850, 0xbe1e7918a50c7942
387 .quad 0xc0733cceac31d5d0, 0xbe1e78308eeab604
388 .quad 0xc0733cd45d7245e0, 0xbe1e76dd4ea88445
389 .quad 0xc0733cda0a0cbc60, 0xbe1e77e7c1aa5909
390 .quad 0xc0733cdfb208caa0, 0xbe1e7804b9d20e54
391 .quad 0xc0733ce5556def70, 0xbe1e78f88e99d49c
392 .quad 0xc0733ceaf4439780, 0xbe1e787d74682d68
393 .quad 0xc0733cf08e911d80, 0xbe1e76edc24fe6e7
394 .quad 0xc0733cf6245dca50, 0xbe1e79b347ec86d2
395 .quad 0xc0733cfbb5b0d580, 0xbe1e797cceb2c39b
396 .quad 0xc0733d0142916530, 0xbe1e783adbdc6aa1
397 .quad 0xc0733d06cb068e70, 0xbe1e76e4c20e3d9e
398 .quad 0xc0733d0c4f175570, 0xbe1e77070bf3cf61
399 .quad 0xc0733d11cecaadc0, 0xbe1e781c43502734
400 .quad 0xc0733d174a277a80, 0xbe1e78b11268ea72
401 .quad 0xc0733d1cc1348e90, 0xbe1e7754b83bfc7d
402 .quad 0xc0733d2233f8acb0, 0xbe1e7756c29bf5e9
403 .quad 0xc0733d27a27a87d0, 0xbe1e7952fc1d9333
404 .quad 0xc0733d2d0cc0c350, 0xbe1e778c76ae6077
405 .quad 0xc0733d3272d1f2e0, 0xbe1e7a1896ba8f43
406 .quad 0xc0733d37d4b49b30, 0xbe1e76dafdf432d8
407 .quad 0xc0733d3d326f3180, 0xbe1e795330184013
408 .quad 0xc0733d428c081c80, 0xbe1e763cc774d30f
409 .quad 0xc0733d47e185b3d0, 0xbe1e77030a779c0a
410 .quad 0xc0733d4d32ee40b0, 0xbe1e7908af2a2d7e
411 .quad 0xc0733d528047fe00, 0xbe1e78c4953b797d
412 .quad 0xc0733d57c9991850, 0xbe1e78b43b096579
413 .quad 0xc0733d5d0ee7ae30, 0xbe1e7824ae0a4804
414 .quad 0xc0733d625039d040, 0xbe1e79d2b2fbb740
415 .quad 0xc0733d678d958190, 0xbe1e7662de59a1a6
416 .quad 0xc0733d6cc700b760, 0xbe1e76b251d59aaa
417 .quad 0xc0733d71fc8159b0, 0xbe1e7a00cfd1f487
418 .quad 0xc0733d772e1d4360, 0xbe1e77f4d246167e
419 .quad 0xc0733d7c5bda4200, 0xbe1e767a4ee8e6fc
420 .quad 0xc0733d8185be1640, 0xbe1e777ccf0a8aed
421 .quad 0xc0733d86abce7420, 0xbe1e767d7e279ada
422 .quad 0xc0733d8bce1102d0, 0xbe1e7a05cef4bb90
423 .quad 0xc0733d90ec8b5d40, 0xbe1e78f75369be5b
424 .quad 0xc0733d96074311d0, 0xbe1e77b9612e8c8a
425 .quad 0xc0733d9b1e3da2b0, 0xbe1e794518b9adeb
426 .quad 0xc0733da031808620, 0xbe1e7810626fb934
427 .quad 0xc0733da541112650, 0xbe1e76d87223fa6d
428 .quad 0xc0733daa4cf4e1a0, 0xbe1e794c5e7ca3b5
429 .quad 0xc0733daf55310af0, 0xbe1e789856ef816f
430 .quad 0xc0733db459cae970, 0xbe1e77d2004effbd
431 .quad 0xc0733db95ac7b8f0, 0xbe1e78467d31eb9c
432 .quad 0xc0733dbe582caa00, 0xbe1e79aaa4e25787
433 .quad 0xc0733dc351fee220, 0xbe1e762de8f107bf
434 .quad 0xc0733dc848437b90, 0xbe1e7670670a63fe
435 .quad 0xc0733dcd3aff85d0, 0xbe1e795ca237c6cc
436 .quad 0xc0733dd22a3805b0, 0xbe1e77e55c53c1d9
437 .quad 0xc0733dd715f1f520, 0xbe1e78a806213ac4
438 .quad 0xc0733ddbfe3243b0, 0xbe1e77743a2bc615
439 .quad 0xc0733de0e2fdd660, 0xbe1e78b8b45b0b7d
440 .quad 0xc0733de5c4598800, 0xbe1e78d635f2f4b9
441 .quad 0xc0733deaa24a2920, 0xbe1e7758c396a11e
442 .quad 0xc0733def7cd48020, 0xbe1e7a17a8cc454c
443 .quad 0xc0733df453fd49a0, 0xbe1e783caa73f616
444 .quad 0xc0733df927c93820, 0xbe1e7932cfa29664
445 .quad 0xc0733dfdf83cf490, 0xbe1e777d265c72a6
446 .quad 0xc0733e02c55d1e10, 0xbe1e7775e7c03c60
447 .quad 0xc0733e078f2e4a40, 0xbe1e79f65d52d232
448 .quad 0xc0733e0c55b50570, 0xbe1e76e7e7464b4e
449 .quad 0xc0733e1118f5d250, 0xbe1e77be81cad877
450 .quad 0xc0733e15d8f52a80, 0xbe1e79dd25b5fb3a
451 .quad 0xc0733e1a95b77e80, 0xbe1e78e45f1418ef
452 .quad 0xc0733e1f4f4135a0, 0xbe1e78eb7289505b
453 .quad 0xc0733e240596ae50, 0xbe1e78a468c07cad
454 .quad 0xc0733e28b8bc3e20, 0xbe1e776b558a4009
455 .quad 0xc0733e2d68b631d0, 0xbe1e77412eb9941e
456 .quad 0xc0733e321588cd80, 0xbe1e76b2853f845e
457 .quad 0xc0733e36bf384cb0, 0xbe1e76aa7184273c
458 .quad 0xc0733e3b65c8e260, 0xbe1e7832027f78fa
459 .quad 0xc0733e40093eb930, 0xbe1e7a1c7da131f5
460 .quad 0xc0733e44a99df380, 0xbe1e76a0bc2ae4bc
461 .quad 0xc0733e4946eaab30, 0xbe1e78dff13b6f5d
462 .quad 0xc0733e4de128f250, 0xbe1e765a226dea2c
463 .quad 0xc0733e52785cd290, 0xbe1e78509b989111
464 .quad 0xc0733e570c8a4de0, 0xbe1e7916a4e9803d
465 .quad 0xc0733e5b9db55e30, 0xbe1e7950c15758cc
466 .quad 0xc0733e602be1f5a0, 0xbe1e7922ba1ad420
467 .quad 0xc0733e64b713fe90, 0xbe1e794cbaabcef6
468 .quad 0xc0733e693f4f5bc0, 0xbe1e7837bf883fed
469 .quad 0xc0733e6dc497e850, 0xbe1e76f198ddbbdf
470 .quad 0xc0733e7246f177d0, 0xbe1e7a18c1067764
471 .quad 0xc0733e76c65fd6a0, 0xbe1e76b845a8fd9d
472 .quad 0xc0733e7b42e6c970, 0xbe1e7714012df506
473 .quad 0xc0733e7fbc8a0de0, 0xbe1e7765612922cd
474 .quad 0xc0733e84334d5a50, 0xbe1e7688f5424a00
475 .quad 0xc0733e88a7345df0, 0xbe1e769d011f6663
476 .quad 0xc0733e8d1842c0e0, 0xbe1e79914acbfaf7
477 .quad 0xc0733e91867c2460, 0xbe1e79a85e189bd7
478 .quad 0xc0733e95f1e422a0, 0xbe1e79ea7c726432
479 .quad 0xc0733e9a5a7e4f10, 0xbe1e768a6fbb8e6e
480 .quad 0xc0733e9ec04e3620, 0xbe1e793c75bcc9fc
481 .quad 0xc0733ea323575dd0, 0xbe1e797f78da13d4
482 .quad 0xc0733ea7839d4550, 0xbe1e78d8c9cda978
483 .quad 0xc0733eabe1236540, 0xbe1e77028d480fff
484 .quad 0xc0733eb03bed2fa0, 0xbe1e7a0d0f74ff7c
485 .quad 0xc0733eb493fe1040, 0xbe1e76732e8a35fb
486 .quad 0xc0733eb8e9596c30, 0xbe1e77220caeabeb
487 .quad 0xc0733ebd3c02a260, 0xbe1e797438b645ef
488 .quad 0xc0733ec18bfd0b80, 0xbe1e79207c5fd6e8
489 .quad 0xc0733ec5d94bf9f0, 0xbe1e781c7df8f946
490 .quad 0xc0733eca23f2b9f0, 0xbe1e76736284e2db
491 .quad 0xc0733ece6bf49190, 0xbe1e7a109cc0c3f5
492 .quad 0xc0733ed2b154c120, 0xbe1e767f14a16d50
493 .quad 0xc0733ed6f4168290, 0xbe1e789cd22acaf0
494 .quad 0xc0733edb343d0a40, 0xbe1e764355ca28ad
495 .quad 0xc0733edf71cb8660, 0xbe1e79e4c7a81c45
496 .quad 0xc0733ee3acc51fb0, 0xbe1e761e26b644c2
497 .quad 0xc0733ee7e52cf8c0, 0xbe1e793e9f8fbdd3
498 .quad 0xc0733eec1b062ed0, 0xbe1e78c432991c20
499 .quad 0xc0733ef04e53d940, 0xbe1e78cdd025f4d8
500 .quad 0xc0733ef47f1909f0, 0xbe1e778310c6446e
501 .quad 0xc0733ef8ad58cd20, 0xbe1e7871af3d6e17
502 .quad 0xc0733efcd91629b0, 0xbe1e77e0e906f697
503 .quad 0xc0733f01025420f0, 0xbe1e7a1ae9b27892
504 .quad 0xc0733f052915af00, 0xbe1e76ac64c88f9d
505 .quad 0xc0733f094d5dca60, 0xbe1e779a815589c4
506 .quad 0xc0733f0d6f2f6480, 0xbe1e788f39a4864c
507 .quad 0xc0733f118e8d6980, 0xbe1e79fc51263525
508 .quad 0xc0733f15ab7ac060, 0xbe1e783501f19e90
509 .quad 0xc0733f19c5fa4ae0, 0xbe1e767e82c327ab
510 .quad 0xc0733f1dde0ee5a0, 0xbe1e7a1785d66123
511 .quad 0xc0733f21f3bb6870, 0xbe1e7936d07203da
512 .quad 0xc0733f260702a5e0, 0xbe1e7a010a7ac699
513 .quad 0xc0733f2a17e76bb0, 0xbe1e7975e4e16312
514 .quad 0xc0733f2e266c82b0, 0xbe1e7654b5422330
515 .quad 0xc0733f323294aeb0, 0xbe1e77f8a4909d35
516 .quad 0xc0733f363c62aee0, 0xbe1e792c8e30d226
517 .quad 0xc0733f3a43d93da0, 0xbe1e76f6ac67a1ff
518 .quad 0xc0733f3e48fb1070, 0xbe1e775c2e97715a
519 .quad 0xc0733f424bcad840, 0xbe1e781cd54ae100
520 /*== Log_LA_table ==*/
521 .align 32
522 .quad 0x0000000000000000
523 .quad 0xbf4bc48a867884b7
524 .quad 0xbf5bbd9e9482af09
525 .quad 0xbf64c9096b94befd
526 .quad 0xbf6bafd47221ed26
527 .quad 0xbf714999e2ad8ea6
528 .quad 0xbf74b99563d2a1bd
529 .quad 0xbf7827de6b310350
530 .quad 0xbf7b9476a4fcd10f
531 .quad 0xbf7eff5fbaf25781
532 .quad 0xbf81344daa2d7553
533 .quad 0xbf82e8158b08d957
534 .quad 0xbf849b0851443684
535 .quad 0xbf864d26cce610dd
536 .quad 0xbf87fe71ccc4e6b0
537 .quad 0xbf89aeea1e897fdf
538 .quad 0xbf8b5e908eb13790
539 .quad 0xbf8d0d65e890405a
540 .quad 0xbf8ebb6af653e2ee
541 .quad 0xbf90345040825bad
542 .quad 0xbf910a83a8446c78
543 .quad 0xbf91e05015d30a71
544 .quad 0xbf92b5b5ec0209d3
545 .quad 0xbf938ab58d173e91
546 .quad 0xbf945f4f5acb8be0
547 .quad 0xbf953383b64bf13f
548 .quad 0xbf960753003a94ef
549 .quad 0xbf96dabd98afcc05
550 .quad 0xbf97adc3df3b1ff8
551 .quad 0xbf98806632e451d0
552 .quad 0xbf9952a4f22c5ae9
553 .quad 0xbf9a24807b0e6b5c
554 .quad 0xbf9af5f92b00e610
555 .quad 0xbf9bc70f5ef65a77
556 .quad 0xbf9c97c3735e7c0a
557 .quad 0xbf9d6815c4271775
558 .quad 0xbf9e3806acbd058f
559 .quad 0xbf9f0796880d1c19
560 .quad 0xbf9fd6c5b0851c4c
561 .quad 0xbfa052ca400a4f9b
562 .quad 0xbfa0ba01a8170000
563 .quad 0xbfa121093ce3a205
564 .quad 0xbfa187e12aad8077
565 .quad 0xbfa1ee899d74a03e
566 .quad 0xbfa25502c0fc314c
567 .quad 0xbfa2bb4cc0cafe8d
568 .quad 0xbfa32167c82bdcda
569 .quad 0xbfa38754022e18e2
570 .quad 0xbfa3ed1199a5e425
571 .quad 0xbfa452a0b92cc0ec
572 .quad 0xbfa4b8018b21ed4f
573 .quad 0xbfa51d3439aacd4a
574 .quad 0xbfa58238eeb353da
575 .quad 0xbfa5e70fd3ee6b34
576 .quad 0xbfa64bb912d65c07
577 .quad 0xbfa6b034d4ad33df
578 .quad 0xbfa71483427d2a99
579 .quad 0xbfa778a4851906f3
580 .quad 0xbfa7dc98c51c8242
581 .quad 0xbfa840602aecab3d
582 .quad 0xbfa8a3fadeb847f4
583 .quad 0xbfa90769087836e4
584 .quad 0xbfa96aaacfefcf3c
585 .quad 0xbfa9cdc05cad4042
586 .quad 0xbfaa30a9d609efea
587 .quad 0xbfaa9367632ad897
588 .quad 0xbfaaf5f92b00e610
589 .quad 0xbfab585f544951a4
590 .quad 0xbfabba9a058dfd84
591 .quad 0xbfac1ca96525cf56
592 .quad 0xbfac7e8d993509f9
593 .quad 0xbface046c7ada68d
594 .quad 0xbfad41d5164facb4
595 .quad 0xbfada338aaa98a0c
596 .quad 0xbfae0471aa1868f5
597 .quad 0xbfae658039c88690
598 .quad 0xbfaec6647eb58808
599 .quad 0xbfaf271e9daacf20
600 .quad 0xbfaf87aebb43ce06
601 .quad 0xbfafe814fbec5a77
602 .quad 0xbfb02428c1f08016
603 .quad 0xbfb054323b97a948
604 .quad 0xbfb08426fcdb1ee7
605 .quad 0xbfb0b40717932b96
606 .quad 0xbfb0e3d29d81165e
607 .quad 0xbfb11389a04f4a2e
608 .quad 0xbfb1432c31917d08
609 .quad 0xbfb172ba62c4d6de
610 .quad 0xbfb1a23445501816
611 .quad 0xbfb1d199ea83bfbe
612 .quad 0xbfb200eb639a3173
613 .quad 0xbfb23028c1b7daed
614 .quad 0xbfb25f5215eb594a
615 .quad 0xbfb28e67712d9dfc
616 .quad 0xbfb2bd68e4621371
617 .quad 0xbfb2ec568056c16f
618 .quad 0xbfb31b3055c47118
619 .quad 0xbfb349f6754ed0b4
620 .quad 0xbfb378a8ef84971e
621 .quad 0xbfb3a747d4dfa6f5
622 .quad 0xbfb3d5d335c53179
623 .quad 0xbfb4044b2285d925
624 .quad 0xbfb432afab5dd3ff
625 .quad 0xbfb46100e0750da1
626 .quad 0xbfb48f3ed1df48fb
627 .quad 0xbfb4bd698f9c41cf
628 .quad 0xbfb4eb812997cde4
629 .quad 0xbfb51985afa9fdfd
630 .quad 0xbfb5477731973e85
631 .quad 0xbfb57555bf1077f5
632 .quad 0xbfb5a32167b32f02
633 .quad 0xbfb5d0da3b09a47e
634 .quad 0xbfb5fe80488af4fd
635 .quad 0xbfb62c139f9b3837
636 .quad 0xbfb659944f8ba02d
637 .quad 0xbfb68702679a980a
638 .quad 0xbfb6b45df6f3e2c9
639 .quad 0xbfb6e1a70cb0b99a
640 .quad 0xbfb70eddb7d7ea07
641 .quad 0xbfb73c02075df3e5
642 .quad 0xbfb769140a2526fd
643 .quad 0xbfb79613cefdc07d
644 .quad 0xbfb7c30164a60836
645 .quad 0xbfb7efdcd9ca6d8f
646 .quad 0xbfb81ca63d05a44a
647 .quad 0xbfb8495d9ce0c10c
648 .quad 0xbfb8760307d355ab
649 .quad 0xbfb8a2968c438d41
650 .quad 0xbfb8cf183886480d
651 .quad 0xbfb8fb881adf3713
652 .quad 0xbfb927e64180f790
653 .quad 0xbfb95432ba8d2e2f
654 .quad 0xbfb9806d9414a209
655 .quad 0xbfb9ac96dc175776
656 .quad 0xbfb9d8aea084aa9c
657 .quad 0xbfba04b4ef3b69d8
658 .quad 0xbfba30a9d609efea
659 .quad 0xbfba5c8d62ae3dec
660 .quad 0xbfba885fa2d6151e
661 .quad 0xbfbab420a41f1076
662 .quad 0xbfbadfd07416be07
663 .quad 0xbfbb0b6f203ab82c
664 .quad 0xbfbb36fcb5f8be8a
665 .quad 0xbfbb627942aecedd
666 .quad 0xbfbb8de4d3ab3d98
667 .quad 0xbfbbb93f762cce4f
668 .quad 0xbfbbe4893762cbf7
669 .quad 0xbfbc0fc2246d20f5
670 .quad 0xbfbc3aea4a5c6eff
671 .quad 0xbfbc6601b63226cb
672 .quad 0xbfbc910874e09f98
673 .quad 0xbfbcbbfe934b2e81
674 .quad 0xbfbce6e41e463da5
675 .quad 0xbfbd11b92297632b
676 .quad 0xbfbd3c7dacf5780b
677 .quad 0xbfbd6731ca08aeb9
678 .quad 0xbfbd91d5866aa99c
679 .quad 0xbfbdbc68eea6915b
680 .quad 0xbfbde6ec0f392b05
681 .quad 0xbfbe115ef490ee07
682 .quad 0xbfbe3bc1ab0e19fe
683 .quad 0xbfbe66143f02cc5d
684 .quad 0xbfbe9056bcb315e8
685 .quad 0xbfbeba893055100b
686 .quad 0xbfbee4aba610f204
687 .quad 0xbfbf0ebe2a0125eb
688 .quad 0xbfbf38c0c8325d86
689 .quad 0xbfbf62b38ca3a706
690 .quad 0xbfbf8c9683468191
691 .quad 0xbfbfb669b7fef1a8
692 .quad 0xbfbfe02d36a3956d
693 .quad 0xbfc004f0857edc5c
694 .quad 0xbfc019c2a064b486
695 .quad 0xbfc02e8cf1dac4b8
696 .quad 0xbfc0434f7fb1f307
697 .quad 0xbfc0580a4fb4a3df
698 .quad 0xbfc06cbd67a6c3b6
699 .quad 0xbfc08168cd45d0a9
700 .quad 0xbfc0960c8648e406
701 .quad 0xbfc0aaa89860bbcf
702 .quad 0xbfc0bf3d0937c41c
703 .quad 0xbfc0d3c9de722078
704 .quad 0xbfc0e84f1dadb526
705 .quad 0xbfc0fccccc823059
706 .quad 0xbfc11142f0811357
707 .quad 0xbfc125b18f35bb8e
708 .quad 0xbfc13a18ae256b99
709 .quad 0xbfc14e7852cf5430
710 .quad 0xbfc162d082ac9d10
711 .quad 0xbfc1772143306dc6
712 .quad 0xbfc18b6a99c7f679
713 .quad 0xbfc19fac8bda7897
714 .quad 0xbfc1b3e71ec94f7b
715 .quad 0xbfc1c81a57eff8fd
716 .quad 0xbfc1dc463ca41df8
717 .quad 0xbfc1f06ad2359abd
718 .quad 0xbfc204881dee8777
719 .quad 0xbfc2189e25134081
720 .quad 0xbfc22cacece26ead
721 .quad 0xbfc240b47a950f79
722 .quad 0xbfc254b4d35e7d3c
723 .quad 0xbfc268adfc6c773e
724 .quad 0xbfc27c9ffae729c1
725 .quad 0xbfc2908ad3f13603
726 .quad 0xbfc2a46e8ca7ba2a
727 .quad 0xbfc2b84b2a225923
728 .quad 0xbfc2cc20b1734279
729 .quad 0xbfc2dfef27a73a18
730 .quad 0xbfc2f3b691c5a001
731 .quad 0xbfc30776f4d077f7
732 .quad 0xbfc31b3055c47118
733 .quad 0xbfc32ee2b998ed6e
734 .quad 0xbfc3428e2540096d
735 .quad 0x3fc331f403985097
736 .quad 0x3fc31e56798a910a
737 .quad 0x3fc30abfd8f333b6
738 .quad 0x3fc2f7301cf4e87b
739 .quad 0x3fc2e3a740b7800f
740 .quad 0x3fc2d0253f67e4cb
741 .quad 0x3fc2bcaa14381386
742 .quad 0x3fc2a935ba5f1479
743 .quad 0x3fc295c82d18f434
744 .quad 0x3fc2826167a6bc9c
745 .quad 0x3fc26f01654e6df6
746 .quad 0x3fc25ba8215af7fc
747 .quad 0x3fc24855971c3307
748 .quad 0x3fc23509c1e6d937
749 .quad 0x3fc221c49d147fb3
750 .quad 0x3fc20e8624038fed
751 .quad 0x3fc1fb4e521740f4
752 .quad 0x3fc1e81d22b790d4
753 .quad 0x3fc1d4f291513e01
754 .quad 0x3fc1c1ce9955c0c6
755 .quad 0x3fc1aeb1363b44c8
756 .quad 0x3fc19b9a637ca295
757 .quad 0x3fc1888a1c995931
758 .quad 0x3fc175805d1587c1
759 .quad 0x3fc1627d2079e731
760 .quad 0x3fc14f806253c3ed
761 .quad 0x3fc13c8a1e34f7a0
762 .quad 0x3fc1299a4fb3e306
763 .quad 0x3fc116b0f26b67bb
764 .quad 0x3fc103ce01fae223
765 .quad 0x3fc0f0f17a062353
766 .quad 0x3fc0de1b56356b04
767 .quad 0x3fc0cb4b9235619a
768 .quad 0x3fc0b88229b71227
769 .quad 0x3fc0a5bf186fe483
770 .quad 0x3fc093025a19976c
771 .quad 0x3fc0804bea723aa9
772 .quad 0x3fc06d9bc53c2941
773 .quad 0x3fc05af1e63e03b4
774 .quad 0x3fc0484e4942aa43
775 .quad 0x3fc035b0ea19373b
776 .quad 0x3fc02319c494f951
777 .quad 0x3fc01088d48d6e03
778 .quad 0x3fbffbfc2bbc7803
779 .quad 0x3fbfd6f308ce5b52
780 .quad 0x3fbfb1f6381856f4
781 .quad 0x3fbf8d05b16a6d47
782 .quad 0x3fbf68216c9cc727
783 .quad 0x3fbf4349618fa91a
784 .quad 0x3fbf1e7d882b689a
785 .quad 0x3fbef9bdd860616b
786 .quad 0x3fbed50a4a26eafc
787 .quad 0x3fbeb062d57f4de8
788 .quad 0x3fbe8bc77271b97a
789 .quad 0x3fbe6738190e394c
790 .quad 0x3fbe42b4c16caaf3
791 .quad 0x3fbe1e3d63acb3ba
792 .quad 0x3fbdf9d1f7f5b674
793 .quad 0x3fbdd5727676c959
794 .quad 0x3fbdb11ed766abf4
795 .quad 0x3fbd8cd71303bd26
796 .quad 0x3fbd689b2193f133
797 .quad 0x3fbd446afb64c7e5
798 .quad 0x3fbd204698cb42bd
799 .quad 0x3fbcfc2df223db2d
800 .quad 0x3fbcd820ffd278f3
801 .quad 0x3fbcb41fba42686d
802 .quad 0x3fbc902a19e65111
803 .quad 0x3fbc6c4017382bea
804 .quad 0x3fbc4861aab93a23
805 .quad 0x3fbc248eccf1fba6
806 .quad 0x3fbc00c7767225cb
807 .quad 0x3fbbdd0b9fd09a10
808 .quad 0x3fbbb95b41ab5ce6
809 .quad 0x3fbb95b654a78c87
810 .quad 0x3fbb721cd17157e3
811 .quad 0x3fbb4e8eb0bbf58f
812 .quad 0x3fbb2b0beb419ad0
813 .quad 0x3fbb079479c372ad
814 .quad 0x3fbae4285509950b
815 .quad 0x3fbac0c775e2fde6
816 .quad 0x3fba9d71d5258484
817 .quad 0x3fba7a276badd2c8
818 .quad 0x3fba56e8325f5c87
819 .quad 0x3fba33b4222456f1
820 .quad 0x3fba108b33edb005
821 .quad 0x3fb9ed6d60b30612
822 .quad 0x3fb9ca5aa1729f45
823 .quad 0x3fb9a752ef316149
824 .quad 0x3fb9845642fac8f0
825 .quad 0x3fb9616495e0e1e8
826 .quad 0x3fb93e7de0fc3e80
827 .quad 0x3fb91ba21d6bef77
828 .quad 0x3fb8f8d144557bdf
829 .quad 0x3fb8d60b4ee4d901
830 .quad 0x3fb8b350364c6257
831 .quad 0x3fb8909ff3c4d191
832 .quad 0x3fb86dfa808d36a0
833 .quad 0x3fb84b5fd5eaefd8
834 .quad 0x3fb828cfed29a215
835 .quad 0x3fb8064abf9b30f1
836 .quad 0x3fb7e3d04697b704
837 .quad 0x3fb7c1607b7d7e32
838 .quad 0x3fb79efb57b0f803
839 .quad 0x3fb77ca0d49cb608
840 .quad 0x3fb75a50ebb1624a
841 .quad 0x3fb7380b9665b7c8
842 .quad 0x3fb715d0ce367afc
843 .quad 0x3fb6f3a08ca67270
844 .quad 0x3fb6d17acb3e5f5e
845 .quad 0x3fb6af5f838cf654
846 .quad 0x3fb68d4eaf26d7ee
847 .quad 0x3fb66b4847a68997
848 .quad 0x3fb6494c46ac6e4d
849 .quad 0x3fb6275aa5debf81
850 .quad 0x3fb605735ee985f1
851 .quad 0x3fb5e3966b7e9295
852 .quad 0x3fb5c1c3c5557799
853 .quad 0x3fb59ffb662b815c
854 .quad 0x3fb57e3d47c3af7b
855 .quad 0x3fb55c8963e6adeb
856 .quad 0x3fb53adfb462ce16
857 .quad 0x3fb51940330c000b
858 .quad 0x3fb4f7aad9bbcbaf
859 .quad 0x3fb4d61fa2514a00
860 .quad 0x3fb4b49e86b11e5f
861 .quad 0x3fb4932780c56fe2
862 .quad 0x3fb471ba8a7de2b7
863 .quad 0x3fb450579dcf9186
864 .quad 0x3fb42efeb4b506e9
865 .quad 0x3fb40dafc92e36e2
866 .quad 0x3fb3ec6ad5407868
867 .quad 0x3fb3cb2fd2f67ef1
868 .quad 0x3fb3a9febc60540a
869 .quad 0x3fb388d78b9350ff
870 .quad 0x3fb367ba3aaa1883
871 .quad 0x3fb346a6c3c49066
872 .quad 0x3fb3259d2107db54
873 .quad 0x3fb3049d4c9e52a0
874 .quad 0x3fb2e3a740b7800f
875 .quad 0x3fb2c2baf78817b7
876 .quad 0x3fb2a1d86b49f1e2
877 .quad 0x3fb280ff963c04fc
878 .quad 0x3fb2603072a25f82
879 .quad 0x3fb23f6afac6220a
880 .quad 0x3fb21eaf28f57941
881 .quad 0x3fb1fdfcf7839804
882 .quad 0x3fb1dd5460c8b16f
883 .quad 0x3fb1bcb55f21f307
884 .quad 0x3fb19c1fecf17ee0
885 .quad 0x3fb17b94049e65d0
886 .quad 0x3fb15b11a094a1aa
887 .quad 0x3fb13a98bb450f81
888 .quad 0x3fb11a294f2569f6
889 .quad 0x3fb0f9c356b04389
890 .quad 0x3fb0d966cc6500fa
891 .quad 0x3fb0b913aac7d3a7
892 .quad 0x3fb098c9ec61b3ff
893 .quad 0x3fb078898bc05bf4
894 .quad 0x3fb0585283764178
895 .quad 0x3fb03824ce1a9101
896 .quad 0x3fb0180066492817
897 .quad 0x3fafefca8d451fd6
898 .quad 0x3fafafa6d397efdb
899 .quad 0x3faf6f9594de60f0
900 .quad 0x3faf2f96c6754aee
901 .quad 0x3faeefaa5dc2b239
902 .quad 0x3faeafd05035bd3b
903 .quad 0x3fae70089346a9e6
904 .quad 0x3fae30531c76c34a
905 .quad 0x3fadf0afe1505738
906 .quad 0x3fadb11ed766abf4
907 .quad 0x3fad719ff455f5f7
908 .quad 0x3fad32332dc34dbd
909 .quad 0x3facf2d8795ca5a5
910 .quad 0x3facb38fccd8bfdb
911 .quad 0x3fac74591df72456
912 .quad 0x3fac3534628016dd
913 .quad 0x3fabf62190448d22
914 .quad 0x3fabb7209d1e24e5
915 .quad 0x3fab78317eef1a29
916 .quad 0x3fab39542ba23d73
917 .quad 0x3faafa88992aea19
918 .quad 0x3faabbcebd84fca0
919 .quad 0x3faa7d268eb4c924
920 .quad 0x3faa3e9002c711d2
921 .quad 0x3faa000b0fd0fd6b
922 .quad 0x3fa9c197abf00dd7
923 .quad 0x3fa98335cd4a16c3
924 .quad 0x3fa944e56a0d3450
925 .quad 0x3fa906a6786fc1cb
926 .quad 0x3fa8c878eeb05074
927 .quad 0x3fa88a5cc3159e53
928 .quad 0x3fa84c51ebee8d15
929 .quad 0x3fa80e585f9218fc
930 .quad 0x3fa7d070145f4fd7
931 .quad 0x3fa7929900bd4809
932 .quad 0x3fa754d31b1b179c
933 .quad 0x3fa7171e59efcb5f
934 .quad 0x3fa6d97ab3ba5e10
935 .quad 0x3fa69be81f01af99
936 .quad 0x3fa65e6692547c4e
937 .quad 0x3fa620f604495440
938 .quad 0x3fa5e3966b7e9295
939 .quad 0x3fa5a647be9a54f6
940 .quad 0x3fa56909f44a72fe
941 .quad 0x3fa52bdd034475b8
942 .quad 0x3fa4eec0e2458f30
943 .quad 0x3fa4b1b588129203
944 .quad 0x3fa474baeb77e904
945 .quad 0x3fa437d103498eec
946 .quad 0x3fa3faf7c663060e
947 .quad 0x3fa3be2f2ba7501f
948 .quad 0x3fa381772a00e604
949 .quad 0x3fa344cfb861afae
950 .quad 0x3fa30838cdc2fbfd
951 .quad 0x3fa2cbb2612578b4
952 .quad 0x3fa28f3c69912a74
953 .quad 0x3fa252d6de1564c1
954 .quad 0x3fa21681b5c8c213
955 .quad 0x3fa1da3ce7c91bf8
956 .quad 0x3fa19e086b3b8333
957 .quad 0x3fa161e4374c37f4
958 .quad 0x3fa125d0432ea20e
959 .quad 0x3fa0e9cc861d4944
960 .quad 0x3fa0add8f759cd95
961 .quad 0x3fa071f58e2cdf9b
962 .quad 0x3fa0362241e638ec
963 .quad 0x3f9ff4be13b92920
964 .quad 0x3f9f7d57badb4ee8
965 .quad 0x3f9f061167fc31e8
966 .quad 0x3f9e8eeb09f2f6cb
967 .quad 0x3f9e17e48fa48962
968 .quad 0x3f9da0fde8038de9
969 .quad 0x3f9d2a3702105259
970 .quad 0x3f9cb38fccd8bfdb
971 .quad 0x3f9c3d0837784c41
972 .quad 0x3f9bc6a03117eb97
973 .quad 0x3f9b5057a8ee01ce
974 .quad 0x3f9ada2e8e3e546f
975 .quad 0x3f9a6424d059fc68
976 .quad 0x3f99ee3a5e9f57e8
977 .quad 0x3f99786f2879fc53
978 .quad 0x3f9902c31d62a843
979 .quad 0x3f988d362cdf359e
980 .quad 0x3f9817c846828bbd
981 .quad 0x3f97a27959ec91aa
982 .quad 0x3f972d4956ca2067
983 .quad 0x3f96b8382cd4f551
984 .quad 0x3f964345cbd3a491
985 .quad 0x3f95ce7223998b98
986 .quad 0x3f9559bd2406c3ba
987 .quad 0x3f94e526bd0814d1
988 .quad 0x3f9470aede96e7f2
989 .quad 0x3f93fc5578b93a38
990 .quad 0x3f93881a7b818f9e
991 .quad 0x3f9313fdd70ee5e8
992 .quad 0x3f929fff7b8ca79d
993 .quad 0x3f922c1f59329f1b
994 .quad 0x3f91b85d6044e9ae
995 .quad 0x3f9144b98113eac0
996 .quad 0x3f90d133abfc3f1b
997 .quad 0x3f905dcbd166b033
998 .quad 0x3f8fd503c3904f1d
999 .quad 0x3f8eeeab9b43445d
1000 .quad 0x3f8e088f0b004827
1001 .quad 0x3f8d22adf3f9579d
1002 .quad 0x3f8c3d0837784c41
1003 .quad 0x3f8b579db6dec358
1004 .quad 0x3f8a726e53a6056e
1005 .quad 0x3f898d79ef5eedf0
1006 .quad 0x3f88a8c06bb1d2f4
1007 .quad 0x3f87c441aa5e6d15
1008 .quad 0x3f86dffd8d3bbf70
1009 .quad 0x3f85fbf3f637ffc5
1010 .quad 0x3f851824c7587eb0
1011 .quad 0x3f84348fe2b99002
1012 .quad 0x3f8351352a8e733f
1013 .quad 0x3f826e1481213c2e
1014 .quad 0x3f818b2dc8d2bb91
1015 .quad 0x3f80a880e41a67f6
1016 .quad 0x3f7f8c1b6b0c8d4e
1017 .quad 0x3f7dc7a83f75a96d
1018 .quad 0x3f7c03a80ae5e054
1019 .quad 0x3f7a401a92ff827e
1020 .quad 0x3f787cff9d9147a5
1021 .quad 0x3f76ba56f09621bc
1022 .quad 0x3f74f8205235102d
1023 .quad 0x3f73365b88c0f347
1024 .quad 0x3f7175085ab85ff0
1025 .quad 0x3f6f684d1d8ae702
1026 .quad 0x3f6be76bd77b4fc3
1027 .quad 0x3f68676c71434fb9
1028 .quad 0x3f64e84e793a474a
1029 .quad 0x3f616a117e0d4b30
1030 .quad 0x3f5bd96a1d7d9cbc
1031 .quad 0x3f54e071754c98ba
1032 .quad 0x3f4bd27045bfd025
1033 .quad 0x3f3bcef518e29612
1034 .quad 0x8000000000000000
1035 /*== poly_coeff[5] ==*/
1036 .align 32
1037 .quad 0x3fb63C65231FBD16, 0x3fb63C65231FBD16, 0x3fb63C65231FBD16, 0x3fb63C65231FBD16 /* coeff5 */
1038 .quad 0xbfbBCB7D4EFBE80B, 0xbfbBCB7D4EFBE80B, 0xbfbBCB7D4EFBE80B, 0xbfbBCB7D4EFBE80B /* coeff4 */
1039 .quad 0x3fc287A7636F341E, 0x3fc287A7636F341E, 0x3fc287A7636F341E, 0x3fc287A7636F341E /* coeff3 */
1040 .quad 0xbfcBCB7B1526DE36, 0xbfcBCB7B1526DE36, 0xbfcBCB7B1526DE36, 0xbfcBCB7B1526DE36 /* coeff2 */
1041 .quad 0x3fdBCB7B1526E50E, 0x3fdBCB7B1526E50E, 0x3fdBCB7B1526E50E, 0x3fdBCB7B1526E50E /* coeff1 */
1042 /*== ExpMask ==*/
1043 .align 32
1044 .quad 0x000fffffffffffff, 0x000fffffffffffff, 0x000fffffffffffff, 0x000fffffffffffff
1045 /*== Two10 ==*/
1046 .align 32
1047 .quad 0x3f50000000000000, 0x3f50000000000000, 0x3f50000000000000, 0x3f50000000000000
1048 /*== MinNorm ==*/
1049 .align 32
1050 .quad 0x0010000000000000, 0x0010000000000000, 0x0010000000000000, 0x0010000000000000
1051 /*== MaxNorm ==*/
1052 .align 32
1053 .quad 0x7fefffffffffffff, 0x7fefffffffffffff, 0x7fefffffffffffff, 0x7fefffffffffffff
1054 /*== HalfMask ==*/
1055 .align 32
1056 .quad 0xfffffffffc000000, 0xfffffffffc000000, 0xfffffffffc000000, 0xfffffffffc000000
1057 /*== One ==*/
1058 .align 32
1059 .quad 0x3ff0000000000000, 0x3ff0000000000000, 0x3ff0000000000000, 0x3ff0000000000000
1060 /*== Threshold ==*/
1061 .align 32
1062 .quad 0x4086a00000000000, 0x4086a00000000000, 0x4086a00000000000, 0x4086a00000000000
1063 /*== Bias ==*/
1064 .align 32
1065 .quad 0x408ff80000000000, 0x408ff80000000000, 0x408ff80000000000, 0x408ff80000000000
1066 /*== Bias1 ==*/
1067 .align 32
1068 .quad 0x408ff00000000000, 0x408ff00000000000, 0x408ff00000000000, 0x408ff00000000000
1069 /*== L2 ==*/
1070 .align 32
1071 .quad 0x3fd34413509f79ff, 0x3fd34413509f79ff, 0x3fd34413509f79ff, 0x3fd34413509f79ff
1072 .align 32
1073 .type __svml_dlog10_data_internal,@object
1074 .size __svml_dlog10_data_internal,.-__svml_dlog10_data_internal