1/* Function erff 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 * Basic formula is
23 * erf(x) ~ erf(x0) +
24 * + exp(-x0*x0)*D*(1+c0+T*P1(T)+D^2*P3(T)+D^4*p5)
25 * where D=x-x0, T=x0*D
26 * x0 is x rounded to a specified number of fractional bits (in this case 8),
27 * except that x0=0 for |x|<3.5/256.0 (using x0=0 for first 4 table entries)
28 *
29 * Data table packs both erf(x0)_high and a few bits of erf(x0)_low in one
30 * entry (in place of redundant exponent bits)
31 *
32 */
33
34/* Offsets for data table __svml_serf_data_internal
35 */
36#define _erf_tbl 0
37#define _AbsMask 4032
38#define _MaxThreshold 4064
39#define _SRound 4096
40#define _U2Threshold 4128
41#define _poly3_0 4160
42
43/* Lookup bias for data table __svml_serf_data_internal. */
44#define Table_Lookup_Bias -0x3c000000
45
46#include <sysdep.h>
47
48 .section .text.avx2, "ax", @progbits
49ENTRY(_ZGVdN8v_erff_avx2)
50 lea Table_Lookup_Bias+__svml_serf_data_internal(%rip), %rax
51
52 /*
53 * vector gather:
54 * erf(x0), exp(-x0*x0)*2.0/sqrt(pi)
55 */
56 vmovups _SRound+__svml_serf_data_internal(%rip), %ymm7
57 vandps _AbsMask+__svml_serf_data_internal(%rip), %ymm0, %ymm6
58
59 /*
60 * erf(x) rounds to 1.0 for x>_MaxThreshold (3.9375)
61 * can compute all results in the main path
62 */
63 vminps _MaxThreshold+__svml_serf_data_internal(%rip), %ymm6, %ymm8
64 vaddps %ymm7, %ymm8, %ymm10
65 vcmpgt_oqps _U2Threshold+__svml_serf_data_internal(%rip), %ymm8, %ymm9
66 vpslld $3, %ymm10, %ymm11
67 vsubps %ymm7, %ymm10, %ymm4
68 vsubps %ymm4, %ymm8, %ymm3
69 vandps %ymm9, %ymm3, %ymm2
70
71 /* NaN fixup */
72 vminps %ymm6, %ymm3, %ymm3
73
74 /* D2 = Diff^2 */
75 vmulps %ymm2, %ymm2, %ymm2
76
77 /* save sign */
78 vxorps %ymm0, %ymm6, %ymm5
79 vmovd %xmm11, %edx
80 vextractf128 $1, %ymm11, %xmm12
81 vpextrd $2, %xmm11, %esi
82 movslq %edx, %rdx
83 movslq %esi, %rsi
84 vmovd %xmm12, %r8d
85 vmovq (%rax, %rdx), %xmm13
86 vmovq (%rax, %rsi), %xmm14
87 vunpcklps %xmm14, %xmm13, %xmm10
88 vmovups _poly3_0+__svml_serf_data_internal(%rip), %ymm14
89 vpextrd $1, %xmm11, %ecx
90 vpextrd $3, %xmm11, %edi
91 vpextrd $1, %xmm12, %r9d
92 vpextrd $2, %xmm12, %r10d
93 vpextrd $3, %xmm12, %r11d
94
95 /*
96 * Start polynomial evaluation
97 * P1
98 */
99 vfmsub231ps %ymm14, %ymm3, %ymm4
100 movslq %ecx, %rcx
101 movslq %edi, %rdi
102 movslq %r8d, %r8
103 movslq %r9d, %r9
104 movslq %r10d, %r10
105 movslq %r11d, %r11
106 vmovq (%rax, %rcx), %xmm1
107 vmovq (%rax, %rdi), %xmm15
108
109 /*
110 * branch-free
111 * (exp_h(x0) * Diff) * (poly + 1.0)
112 */
113 vfmadd213ps %ymm3, %ymm2, %ymm4
114 vmovq (%rax, %r8), %xmm7
115 vmovq (%rax, %r9), %xmm0
116 vmovq (%rax, %r10), %xmm8
117 vmovq (%rax, %r11), %xmm9
118 vunpcklps %xmm15, %xmm1, %xmm11
119 vunpcklps %xmm8, %xmm7, %xmm1
120 vunpcklps %xmm9, %xmm0, %xmm0
121 vinsertf128 $1, %xmm1, %ymm10, %ymm12
122 vinsertf128 $1, %xmm0, %ymm11, %ymm13
123 vunpcklps %ymm13, %ymm12, %ymm0
124 vunpckhps %ymm13, %ymm12, %ymm15
125
126 /* Final result */
127 vfmadd213ps %ymm0, %ymm15, %ymm4
128
129 /* set sign */
130 vorps %ymm5, %ymm4, %ymm0
131 ret
132
133END(_ZGVdN8v_erff_avx2)
134
135 .section .rodata, "a"
136 .align 32
137
138#ifdef __svml_serf_data_internal_typedef
139typedef unsigned int VUINT32;
140typedef struct {
141 __declspec(align(32)) VUINT32 _erf_tbl[1008][1];
142 __declspec(align(32)) VUINT32 _AbsMask[8][1];
143 __declspec(align(32)) VUINT32 _MaxThreshold[8][1];
144 __declspec(align(32)) VUINT32 _SRound[8][1];
145 __declspec(align(32)) VUINT32 _U2Threshold[8][1];
146 __declspec(align(32)) VUINT32 _poly3_0[8][1];
147} __svml_serf_data_internal;
148#endif
149__svml_serf_data_internal:
150 /* _erf_tbl */
151 .long 0x00000000, 0x3f906ebb
152 .long 0x3c106dfa, 0x3f906c79
153 .long 0x3c906bb8, 0x3f9065b4
154 .long 0x3cd89bf0, 0x3f905a6c
155 .long 0x3d1062b2, 0x3f904aa3
156 .long 0x3d3472ea, 0x3f90365a
157 .long 0x3d587d7f, 0x3f901d93
158 .long 0x3d7c8154, 0x3f900050
159 .long 0x3d903ea4, 0x3f8fde94
160 .long 0x3da2381f, 0x3f8fb862
161 .long 0x3db42c8d, 0x3f8f8dbd
162 .long 0x3dc61b5f, 0x3f8f5eab
163 .long 0x3dd80409, 0x3f8f2b2e
164 .long 0x3de9e5fc, 0x3f8ef34c
165 .long 0x3dfbc0ad, 0x3f8eb70a
166 .long 0x3e06c9c8, 0x3f8e766e
167 .long 0x3e0faf0d, 0x3f8e317d
168 .long 0x3e188fe1, 0x3f8de83e
169 .long 0x3e216bfe, 0x3f8d9ab9
170 .long 0x3e2a4321, 0x3f8d48f3
171 .long 0x3e331506, 0x3f8cf2f5
172 .long 0x3e3be169, 0x3f8c98c6
173 .long 0x3e44a808, 0x3f8c3a6f
174 .long 0x3e4d68a1, 0x3f8bd7f8
175 .long 0x3e5622f2, 0x3f8b716c
176 .long 0x3e5ed6b9, 0x3f8b06d2
177 .long 0x3e6783b7, 0x3f8a9834
178 .long 0x3e7029aa, 0x3f8a259e
179 .long 0x3e78c855, 0x3f89af18
180 .long 0x3e80afbc, 0x3f8934af
181 .long 0x3e84f76b, 0x3f88b66c
182 .long 0x3e893b19, 0x3f88345d
183 .long 0x3e8d7aa7, 0x3f87ae8b
184 .long 0x3e91b5f8, 0x3f872504
185 .long 0x3e95ecee, 0x3f8697d3
186 .long 0x3e9a1f6b, 0x3f860705
187 .long 0x3e9e4d54, 0x3f8572a8
188 .long 0x3ea2768c, 0x3f84dac8
189 .long 0x3ea69af8, 0x3f843f72
190 .long 0x3eaaba7a, 0x3f83a0b6
191 .long 0x3eaed4fa, 0x3f82fe9f
192 .long 0x3eb2ea5c, 0x3f82593e
193 .long 0x3eb6fa85, 0x3f81b0a0
194 .long 0x3ebb055d, 0x3f8104d3
195 .long 0x3ebf0aca, 0x3f8055e8
196 .long 0x3ec30ab3, 0x3f7f47d8
197 .long 0x3ec70501, 0x3f7ddddf
198 .long 0x3ecaf99b, 0x3f7c6e05
199 .long 0x3ecee869, 0x3f7af867
200 .long 0x3ed2d156, 0x3f797d26
201 .long 0x3ed6b44b, 0x3f77fc62
202 .long 0x3eda9132, 0x3f76763c
203 .long 0x3ede67f6, 0x3f74ead4
204 .long 0x3ee23882, 0x3f735a4c
205 .long 0x3ee602c2, 0x3f71c4c4
206 .long 0x3ee9c6a2, 0x3f702a5f
207 .long 0x3eed840e, 0x3f6e8b3e
208 .long 0x3ef13af5, 0x3f6ce783
209 .long 0x3ef4eb45, 0x3f6b3f51
210 .long 0x3ef894ea, 0x3f6992c9
211 .long 0x3efc37d5, 0x3f67e20f
212 .long 0x3effd3f5, 0x3f662d45
213 .long 0x3f01b49d, 0x3f64748e
214 .long 0x3f037bca, 0x3f62b80d
215 .long 0x3f053f7b, 0x3f60f7e5
216 .long 0x3f06ffa8, 0x3f5f3439
217 .long 0x3f08bc4a, 0x3f5d6d2d
218 .long 0x3f0a755a, 0x3f5ba2e3
219 .long 0x3f0c2ad3, 0x3f59d57e
220 .long 0x3f0ddcae, 0x3f580523
221 .long 0x3f0f8ae6, 0x3f5631f4
222 .long 0x3f113574, 0x3f545c14
223 .long 0x3f12dc54, 0x3f5283a7
224 .long 0x3f147f81, 0x3f50a8cf
225 .long 0x3f161ef6, 0x3f4ecbb1
226 .long 0x3f17baae, 0x3f4cec6d
227 .long 0x3f1952a6, 0x3f4b0b28
228 .long 0x3f1ae6da, 0x3f492804
229 .long 0x3f1c7745, 0x3f474323
230 .long 0x3f1e03e5, 0x3f455ca8
231 .long 0x3f1f8cb7, 0x3f4374b5
232 .long 0x3f2111b7, 0x3f418b6b
233 .long 0x3f2292e4, 0x3f3fa0ee
234 .long 0x3f24103a, 0x3f3db55e
235 .long 0x3f2589b9, 0x3f3bc8dc
236 .long 0x3f26ff5d, 0x3f39db8a
237 .long 0x3f287126, 0x3f37ed89
238 .long 0x3f29df13, 0x3f35fef8
239 .long 0x3f2b4922, 0x3f340ff9
240 .long 0x3f2caf53, 0x3f3220ab
241 .long 0x3f2e11a4, 0x3f30312e
242 .long 0x3f2f7017, 0x3f2e41a1
243 .long 0x3f30caab, 0x3f2c5223
244 .long 0x3f322160, 0x3f2a62d3
245 .long 0x3f337437, 0x3f2873cf
246 .long 0x3f34c32f, 0x3f268534
247 .long 0x3f360e4c, 0x3f249721
248 .long 0x3f37558c, 0x3f22a9b3
249 .long 0x3f3898f3, 0x3f20bd06
250 .long 0x3f39d881, 0x3f1ed137
251 .long 0x3f3b1438, 0x3f1ce661
252 .long 0x3f3c4c1b, 0x3f1afca0
253 .long 0x3f3d802c, 0x3f19140f
254 .long 0x3f3eb06c, 0x3f172cc9
255 .long 0x3f3fdce0, 0x3f1546e7
256 .long 0x3f410589, 0x3f136284
257 .long 0x3f422a6b, 0x3f117fb9
258 .long 0x3f434b89, 0x3f0f9e9e
259 .long 0x3f4468e7, 0x3f0dbf4c
260 .long 0x3f458287, 0x3f0be1db
261 .long 0x3f46986f, 0x3f0a0662
262 .long 0x3f47aaa2, 0x3f082cf7
263 .long 0x3f48b925, 0x3f0655b1
264 .long 0x3f49c3fb, 0x3f0480a6
265 .long 0x3f4acb29, 0x3f02adeb
266 .long 0x3f4bceb4, 0x3f00dd96
267 .long 0x3f4ccea1, 0x3efe1f73
268 .long 0x3f4dcaf4, 0x3efa88d5
269 .long 0x3f4ec3b4, 0x3ef6f777
270 .long 0x3f4fb8e5, 0x3ef36b80
271 .long 0x3f50aa8d, 0x3eefe513
272 .long 0x3f5198b1, 0x3eec6455
273 .long 0x3f528358, 0x3ee8e968
274 .long 0x3f536a86, 0x3ee5746d
275 .long 0x3f544e43, 0x3ee20584
276 .long 0x3f552e93, 0x3ede9ccc
277 .long 0x3f560b7e, 0x3edb3a64
278 .long 0x3f56e50a, 0x3ed7de6a
279 .long 0x3f57bb3d, 0x3ed488f8
280 .long 0x3f588e1e, 0x3ed13a2b
281 .long 0x3f595db4, 0x3ecdf21c
282 .long 0x3f5a2a05, 0x3ecab0e4
283 .long 0x3f5af318, 0x3ec7769b
284 .long 0x3f5bb8f4, 0x3ec44359
285 .long 0x3f5c7ba1, 0x3ec11733
286 .long 0x3f5d3b25, 0x3ebdf23d
287 .long 0x3f5df788, 0x3ebad48d
288 .long 0x3f5eb0d1, 0x3eb7be35
289 .long 0x3f5f6707, 0x3eb4af46
290 .long 0x3f601a32, 0x3eb1a7d3
291 .long 0x3f60ca59, 0x3eaea7ea
292 .long 0x3f617784, 0x3eabaf9a
293 .long 0x3f6221bb, 0x3ea8bef3
294 .long 0x3f62c905, 0x3ea5d600
295 .long 0x3f636d69, 0x3ea2f4ce
296 .long 0x3f640ef1, 0x3ea01b68
297 .long 0x3f64ada3, 0x3e9d49d9
298 .long 0x3f654987, 0x3e9a8029
299 .long 0x3f65e2a6, 0x3e97be62
300 .long 0x3f667906, 0x3e95048b
301 .long 0x3f670cb1, 0x3e9252aa
302 .long 0x3f679dae, 0x3e8fa8c5
303 .long 0x3f682c06, 0x3e8d06e3
304 .long 0x3f68b7bf, 0x3e8a6d05
305 .long 0x3f6940e2, 0x3e87db31
306 .long 0x3f69c778, 0x3e855168
307 .long 0x3f6a4b88, 0x3e82cfad
308 .long 0x3f6acd1a, 0x3e805600
309 .long 0x3f6b4c36, 0x3e7bc8c2
310 .long 0x3f6bc8e5, 0x3e76f5a0
311 .long 0x3f6c432f, 0x3e723298
312 .long 0x3f6cbb1b, 0x3e6d7fa5
313 .long 0x3f6d30b1, 0x3e68dcc1
314 .long 0x3f6da3fa, 0x3e6449e7
315 .long 0x3f6e14fe, 0x3e5fc70e
316 .long 0x3f6e83c4, 0x3e5b542b
317 .long 0x3f6ef055, 0x3e56f136
318 .long 0x3f6f5ab8, 0x3e529e21
319 .long 0x3f6fc2f5, 0x3e4e5adf
320 .long 0x3f702915, 0x3e4a2761
321 .long 0x3f708d1f, 0x3e460399
322 .long 0x3f70ef1b, 0x3e41ef75
323 .long 0x3f714f11, 0x3e3deae4
324 .long 0x3f71ad09, 0x3e39f5d2
325 .long 0x3f72090a, 0x3e36102b
326 .long 0x3f72631c, 0x3e3239db
327 .long 0x3f72bb46, 0x3e2e72cb
328 .long 0x3f731191, 0x3e2abae4
329 .long 0x3f736604, 0x3e27120f
330 .long 0x3f73b8a5, 0x3e237833
331 .long 0x3f74097e, 0x3e1fed36
332 .long 0x3f745895, 0x3e1c70fd
333 .long 0x3f74a5f2, 0x3e19036e
334 .long 0x3f74f19b, 0x3e15a46d
335 .long 0x3f753b98, 0x3e1253dc
336 .long 0x3f7583f1, 0x3e0f119f
337 .long 0x3f75caac, 0x3e0bdd96
338 .long 0x3f760fd1, 0x3e08b7a4
339 .long 0x3f765366, 0x3e059fa9
340 .long 0x3f769573, 0x3e029586
341 .long 0x3f76d5fe, 0x3dff3230
342 .long 0x3f77150f, 0x3df95481
343 .long 0x3f7752ab, 0x3df391b9
344 .long 0x3f778eda, 0x3dede995
345 .long 0x3f77c9a2, 0x3de85bd0
346 .long 0x3f78030a, 0x3de2e825
347 .long 0x3f783b18, 0x3ddd8e4c
348 .long 0x3f7871d3, 0x3dd84dfe
349 .long 0x3f78a741, 0x3dd326f3
350 .long 0x3f78db68, 0x3dce18e3
351 .long 0x3f790e50, 0x3dc92385
352 .long 0x3f793ffc, 0x3dc4468f
353 .long 0x3f797075, 0x3dbf81b6
354 .long 0x3f799fbf, 0x3dbad4b0
355 .long 0x3f79cde1, 0x3db63f32
356 .long 0x3f79fae1, 0x3db1c0f1
357 .long 0x3f7a26c4, 0x3dad59a1
358 .long 0x3f7a518f, 0x3da908f6
359 .long 0x3f7a7b4a, 0x3da4cea4
360 .long 0x3f7aa3f9, 0x3da0aa5e
361 .long 0x3f7acba1, 0x3d9c9bd9
362 .long 0x3f7af248, 0x3d98a2c7
363 .long 0x3f7b17f4, 0x3d94bedd
364 .long 0x3f7b3ca9, 0x3d90efcd
365 .long 0x3f7b606e, 0x3d8d354b
366 .long 0x3f7b8346, 0x3d898f0a
367 .long 0x3f7ba537, 0x3d85fcbf
368 .long 0x3f7bc646, 0x3d827e1d
369 .long 0x3f7be677, 0x3d7e25af
370 .long 0x3f7c05d1, 0x3d777546
371 .long 0x3f7c2456, 0x3d70ea68
372 .long 0x3f7c420d, 0x3d6a847d
373 .long 0x3f7c5ef9, 0x3d6442f0
374 .long 0x3f7c7b1f, 0x3d5e252a
375 .long 0x3f7c9684, 0x3d582a98
376 .long 0x3f7cb12b, 0x3d5252a5
377 .long 0x3f7ccb1a, 0x3d4c9cbd
378 .long 0x3f7ce454, 0x3d47084e
379 .long 0x3f7cfcdd, 0x3d4194c7
380 .long 0x3f7d14ba, 0x3d3c4196
381 .long 0x3f7d2bef, 0x3d370e2c
382 .long 0x3f7d427f, 0x3d31f9fb
383 .long 0x3f7d586f, 0x3d2d0474
384 .long 0x3f7d6dc2, 0x3d282d0c
385 .long 0x3f7d827b, 0x3d237336
386 .long 0x3f7d96a0, 0x3d1ed669
387 .long 0x3f7daa32, 0x3d1a561b
388 .long 0x3f7dbd36, 0x3d15f1c6
389 .long 0x3f7dcfb0, 0x3d11a8e1
390 .long 0x3f7de1a2, 0x3d0d7ae9
391 .long 0x3f7df30f, 0x3d09675a
392 .long 0x3f7e03fd, 0x3d056db0
393 .long 0x3f7e146c, 0x3d018d6b
394 .long 0x3f7e2461, 0x3cfb8c15
395 .long 0x3f7e33de, 0x3cf42e22
396 .long 0x3f7e42e8, 0x3ced0003
397 .long 0x3f7e517f, 0x3ce600c0
398 .long 0x3f7e5fa9, 0x3cdf2f67
399 .long 0x3f7e6d66, 0x3cd88b05
400 .long 0x3f7e7abb, 0x3cd212ad
401 .long 0x3f7e87aa, 0x3ccbc574
402 .long 0x3f7e9435, 0x3cc5a273
403 .long 0x3f7ea05f, 0x3cbfa8c4
404 .long 0x3f7eac2b, 0x3cb9d786
405 .long 0x3f7eb79a, 0x3cb42ddb
406 .long 0x3f7ec2b1, 0x3caeaae6
407 .long 0x3f7ecd71, 0x3ca94dcf
408 .long 0x3f7ed7dc, 0x3ca415c2
409 .long 0x3f7ee1f4, 0x3c9f01ec
410 .long 0x3f7eebbd, 0x3c9a117f
411 .long 0x3f7ef537, 0x3c9543ae
412 .long 0x3f7efe66, 0x3c9097b1
413 .long 0x3f7f074b, 0x3c8c0cc2
414 .long 0x3f7f0fe8, 0x3c87a21f
415 .long 0x3f7f1840, 0x3c83570a
416 .long 0x3f7f2053, 0x3c7e558a
417 .long 0x3f7f2826, 0x3c763931
418 .long 0x3f7f2fb8, 0x3c6e579b
419 .long 0x3f7f370c, 0x3c66af65
420 .long 0x3f7f3e23, 0x3c5f3f2d
421 .long 0x3f7f4500, 0x3c58059c
422 .long 0x3f7f4ba4, 0x3c51015f
423 .long 0x3f7f5211, 0x3c4a3127
424 .long 0x3f7f5848, 0x3c4393af
425 .long 0x3f7f5e4b, 0x3c3d27b5
426 .long 0x3f7f641b, 0x3c36ebff
427 .long 0x3f7f69ba, 0x3c30df57
428 .long 0x3f7f6f29, 0x3c2b008e
429 .long 0x3f7f746a, 0x3c254e7b
430 .long 0x3f7f797f, 0x3c1fc7fb
431 .long 0x3f7f7e67, 0x3c1a6bee
432 .long 0x3f7f8326, 0x3c15393d
433 .long 0x3f7f87bb, 0x3c102ed6
434 .long 0x3f7f8c29, 0x3c0b4bab
435 .long 0x3f7f9070, 0x3c068eb5
436 .long 0x3f7f9492, 0x3c01f6f1
437 .long 0x3f7f9890, 0x3bfb06c5
438 .long 0x3f7f9c6b, 0x3bf26625
439 .long 0x3f7fa024, 0x3bea0a1d
440 .long 0x3f7fa3bc, 0x3be1f0d3
441 .long 0x3f7fa734, 0x3bda1876
442 .long 0x3f7faa8d, 0x3bd27f42
443 .long 0x3f7fadc8, 0x3bcb237a
444 .long 0x3f7fb0e6, 0x3bc4036c
445 .long 0x3f7fb3e8, 0x3bbd1d6f
446 .long 0x3f7fb6cf, 0x3bb66fe6
447 .long 0x3f7fb99c, 0x3baff93b
448 .long 0x3f7fbc4f, 0x3ba9b7e1
449 .long 0x3f7fbeea, 0x3ba3aa56
450 .long 0x3f7fc16d, 0x3b9dcf20
451 .long 0x3f7fc3d9, 0x3b9824ce
452 .long 0x3f7fc62e, 0x3b92a9f7
453 .long 0x3f7fc86e, 0x3b8d5d3c
454 .long 0x3f7fca99, 0x3b883d46
455 .long 0x3f7fccb0, 0x3b8348c6
456 .long 0x3f7fceb4, 0x3b7cfce8
457 .long 0x3f7fd0a5, 0x3b73ba24
458 .long 0x3f7fd283, 0x3b6ac6d3
459 .long 0x3f7fd450, 0x3b622096
460 .long 0x3f7fd60c, 0x3b59c51d
461 .long 0x3f7fd7b7, 0x3b51b22a
462 .long 0x3f7fd953, 0x3b49e589
463 .long 0x3f7fdadf, 0x3b425d18
464 .long 0x3f7fdc5c, 0x3b3b16c2
465 .long 0x3f7fddcc, 0x3b341080
466 .long 0x3f7fdf2d, 0x3b2d4858
467 .long 0x3f7fe081, 0x3b26bc5e
468 .long 0x3f7fe1c8, 0x3b206ab2
469 .long 0x3f7fe303, 0x3b1a5183
470 .long 0x3f7fe431, 0x3b146f09
471 .long 0x3f7fe554, 0x3b0ec18c
472 .long 0x3f7fe66c, 0x3b09475d
473 .long 0x3f7fe77a, 0x3b03feda
474 .long 0x3f7fe87d, 0x3afdccdc
475 .long 0x3f7fe975, 0x3af3f919
476 .long 0x3f7fea65, 0x3aea7f6c
477 .long 0x3f7feb4b, 0x3ae15ce8
478 .long 0x3f7fec27, 0x3ad88eb8
479 .long 0x3f7fecfc, 0x3ad0121b
480 .long 0x3f7fedc8, 0x3ac7e464
481 .long 0x3f7fee8c, 0x3ac002f8
482 .long 0x3f7fef48, 0x3ab86b52
483 .long 0x3f7feffd, 0x3ab11afe
484 .long 0x3f7ff0aa, 0x3aaa0f9a
485 .long 0x3f7ff151, 0x3aa346d7
486 .long 0x3f7ff1f1, 0x3a9cbe77
487 .long 0x3f7ff28a, 0x3a96744c
488 .long 0x3f7ff31e, 0x3a90663b
489 .long 0x3f7ff3ab, 0x3a8a9237
490 .long 0x3f7ff433, 0x3a84f643
491 .long 0x3f7ff4b5, 0x3a7f20e7
492 .long 0x3f7ff532, 0x3a74bdd2
493 .long 0x3f7ff5aa, 0x3a6abfa9
494 .long 0x3f7ff61d, 0x3a6122ea
495 .long 0x3f7ff68b, 0x3a57e42f
496 .long 0x3f7ff6f5, 0x3a4f002c
497 .long 0x3f7ff75a, 0x3a4673af
498 .long 0x3f7ff7bb, 0x3a3e3ba2
499 .long 0x3f7ff819, 0x3a365507
500 .long 0x3f7ff872, 0x3a2ebcf6
501 .long 0x3f7ff8c7, 0x3a2770a1
502 .long 0x3f7ff919, 0x3a206d52
503 .long 0x3f7ff968, 0x3a19b066
504 .long 0x3f7ff9b3, 0x3a133754
505 .long 0x3f7ff9fb, 0x3a0cffa3
506 .long 0x3f7ffa40, 0x3a0706f4
507 .long 0x3f7ffa82, 0x3a014af8
508 .long 0x3f7ffac1, 0x39f792ea
509 .long 0x3f7ffafe, 0x39ed0088
510 .long 0x3f7ffb38, 0x39e2daa1
511 .long 0x3f7ffb6f, 0x39d91d2d
512 .long 0x3f7ffba5, 0x39cfc44a
513 .long 0x3f7ffbd7, 0x39c6cc35
514 .long 0x3f7ffc08, 0x39be314d
515 .long 0x3f7ffc36, 0x39b5f011
516 .long 0x3f7ffc63, 0x39ae051c
517 .long 0x3f7ffc8e, 0x39a66d2a
518 .long 0x3f7ffcb6, 0x399f2512
519 .long 0x3f7ffcdd, 0x399829c8
520 .long 0x3f7ffd02, 0x3991785a
521 .long 0x3f7ffd26, 0x398b0df2
522 .long 0x3f7ffd48, 0x3984e7d2
523 .long 0x3f7ffd68, 0x397e06ab
524 .long 0x3f7ffd87, 0x3972bbde
525 .long 0x3f7ffda5, 0x3967ea53
526 .long 0x3f7ffdc1, 0x395d8d4b
527 .long 0x3f7ffddc, 0x3953a034
528 .long 0x3f7ffdf6, 0x394a1ea5
529 .long 0x3f7ffe0f, 0x3941045e
530 .long 0x3f7ffe27, 0x39384d47
531 .long 0x3f7ffe3d, 0x392ff56d
532 .long 0x3f7ffe53, 0x3927f904
533 .long 0x3f7ffe67, 0x39205461
534 .long 0x3f7ffe7b, 0x391903fe
535 .long 0x3f7ffe8d, 0x39120475
536 .long 0x3f7ffe9f, 0x390b5281
537 .long 0x3f7ffeb0, 0x3904eafc
538 .long 0x3f7ffec0, 0x38fd95bd
539 .long 0x3f7ffed0, 0x38f1de7a
540 .long 0x3f7ffedf, 0x38e6aa94
541 .long 0x3f7ffeed, 0x38dbf4a3
542 .long 0x3f7ffefa, 0x38d1b776
543 .long 0x3f7fff07, 0x38c7ee0e
544 .long 0x3f7fff13, 0x38be939c
545 .long 0x3f7fff1f, 0x38b5a381
546 .long 0x3f7fff2a, 0x38ad194e
547 .long 0x3f7fff34, 0x38a4f0bc
548 .long 0x3f7fff3f, 0x389d25b0
549 .long 0x3f7fff48, 0x3895b43b
550 .long 0x3f7fff51, 0x388e9890
551 .long 0x3f7fff5a, 0x3887cf0e
552 .long 0x3f7fff62, 0x38815434
553 .long 0x3f7fff6a, 0x3876494d
554 .long 0x3f7fff72, 0x386a7a5a
555 .long 0x3f7fff79, 0x385f355e
556 .long 0x3f7fff80, 0x38547466
557 .long 0x3f7fff86, 0x384a31bf
558 .long 0x3f7fff8c, 0x384067ee
559 .long 0x3f7fff92, 0x383711b4
560 .long 0x3f7fff98, 0x382e2a06
561 .long 0x3f7fff9d, 0x3825ac0e
562 .long 0x3f7fffa2, 0x381d9329
563 .long 0x3f7fffa7, 0x3815dae6
564 .long 0x3f7fffab, 0x380e7f01
565 .long 0x3f7fffb0, 0x38077b62
566 .long 0x3f7fffb4, 0x3800cc21
567 .long 0x3f7fffb8, 0x37f4daf4
568 .long 0x3f7fffbc, 0x37e8b7ac
569 .long 0x3f7fffbf, 0x37dd2782
570 .long 0x3f7fffc2, 0x37d223dc
571 .long 0x3f7fffc6, 0x37c7a666
572 .long 0x3f7fffc9, 0x37bda912
573 .long 0x3f7fffcc, 0x37b42611
574 .long 0x3f7fffce, 0x37ab17d6
575 .long 0x3f7fffd1, 0x37a2790f
576 .long 0x3f7fffd3, 0x379a44a5
577 .long 0x3f7fffd6, 0x379275b9
578 .long 0x3f7fffd8, 0x378b07a2
579 .long 0x3f7fffda, 0x3783f5e9
580 .long 0x3f7fffdc, 0x377a7897
581 .long 0x3f7fffde, 0x376dad68
582 .long 0x3f7fffe0, 0x37618278
583 .long 0x3f7fffe2, 0x3755f04f
584 .long 0x3f7fffe3, 0x374aefcc
585 .long 0x3f7fffe5, 0x37407a1d
586 .long 0x3f7fffe6, 0x373688bc
587 .long 0x3f7fffe8, 0x372d1570
588 .long 0x3f7fffe9, 0x37241a44
589 .long 0x3f7fffea, 0x371b9188
590 .long 0x3f7fffeb, 0x371375cf
591 .long 0x3f7fffec, 0x370bc1e7
592 .long 0x3f7fffee, 0x370470dd
593 .long 0x3f7fffef, 0x36fafbec
594 .long 0x3f7fffef, 0x36edc95b
595 .long 0x3f7ffff0, 0x36e14167
596 .long 0x3f7ffff1, 0x36d55bd6
597 .long 0x3f7ffff2, 0x36ca10ce
598 .long 0x3f7ffff3, 0x36bf58d1
599 .long 0x3f7ffff4, 0x36b52cb9
600 .long 0x3f7ffff4, 0x36ab85b5
601 .long 0x3f7ffff5, 0x36a25d43
602 .long 0x3f7ffff5, 0x3699ad31
603 .long 0x3f7ffff6, 0x36916f95
604 .long 0x3f7ffff7, 0x36899ecb
605 .long 0x3f7ffff7, 0x36823575
606 .long 0x3f7ffff8, 0x36765ce8
607 .long 0x3f7ffff8, 0x366909cc
608 .long 0x3f7ffff9, 0x365c684a
609 .long 0x3f7ffff9, 0x36506f88
610 .long 0x3f7ffff9, 0x36451713
611 .long 0x3f7ffffa, 0x363a56e4
612 .long 0x3f7ffffa, 0x36302754
613 .long 0x3f7ffffa, 0x36268119
614 .long 0x3f7ffffb, 0x361d5d43
615 .long 0x3f7ffffb, 0x3614b538
616 .long 0x3f7ffffb, 0x360c82b1
617 .long 0x3f7ffffc, 0x3604bfb1
618 .long 0x3f7ffffc, 0x35facd10
619 .long 0x3f7ffffc, 0x35ece39b
620 .long 0x3f7ffffc, 0x35dfb8b6
621 .long 0x3f7ffffd, 0x35d34296
622 .long 0x3f7ffffd, 0x35c777ec
623 .long 0x3f7ffffd, 0x35bc4fdc
624 .long 0x3f7ffffd, 0x35b1c1fc
625 .long 0x3f7ffffd, 0x35a7c64b
626 .long 0x3f7ffffd, 0x359e5531
627 .long 0x3f7ffffe, 0x35956771
628 .long 0x3f7ffffe, 0x358cf630
629 .long 0x3f7ffffe, 0x3584fae8
630 .long 0x3f7ffffe, 0x357adecb
631 .long 0x3f7ffffe, 0x356c9b8f
632 .long 0x3f7ffffe, 0x355f20ef
633 .long 0x3f7ffffe, 0x3552644f
634 .long 0x3f7ffffe, 0x35465b9c
635 .long 0x3f7fffff, 0x353afd47
636 .long 0x3f7fffff, 0x3530403c
637 .long 0x3f7fffff, 0x35261be0
638 .long 0x3f7fffff, 0x351c8807
639 .long 0x3f7fffff, 0x35137cf0
640 .long 0x3f7fffff, 0x350af341
641 .long 0x3f7fffff, 0x3502e402
642 .long 0x3f7fffff, 0x34f6912a
643 .long 0x3f7fffff, 0x34e8356b
644 .long 0x3f7fffff, 0x34daa8e4
645 .long 0x3f7fffff, 0x34cde050
646 .long 0x3f7fffff, 0x34c1d100
647 .long 0x3f7fffff, 0x34b670d5
648 .long 0x3f7fffff, 0x34abb639
649 .long 0x3f7fffff, 0x34a19816
650 .long 0x3f7fffff, 0x34980dd1
651 .long 0x3f7fffff, 0x348f0f43
652 .long 0x3f7fffff, 0x348694b3
653 .long 0x3f800000, 0x347d2da8
654 .long 0x3f800000, 0x346e1d72
655 .align 32
656 .long 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff /* _AbsMask */
657 .align 32
658 .long 0x407b8000, 0x407b8000, 0x407b8000, 0x407b8000, 0x407b8000, 0x407b8000, 0x407b8000, 0x407b8000 /* _MaxThreshold */
659 .align 32
660 .long 0x47800000, 0x47800000, 0x47800000, 0x47800000, 0x47800000, 0x47800000, 0x47800000, 0x47800000 /* _SRound */
661 .align 32
662 .long 0x2f800000, 0x2f800000, 0x2f800000, 0x2f800000, 0x2f800000, 0x2f800000, 0x2f800000, 0x2f800000 /* _U2THreshold */
663 .align 32
664 .long 0xbeaaaade, 0xbeaaaade, 0xbeaaaade, 0xbeaaaade, 0xbeaaaade, 0xbeaaaade, 0xbeaaaade, 0xbeaaaade /* _poly_3_0 */
665 .align 32
666 .type __svml_serf_data_internal, @object
667 .size __svml_serf_data_internal, .-__svml_serf_data_internal
668

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