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

source code of glibc/sysdeps/x86_64/fpu/multiarch/svml_d_log104_core_avx2.S