e_sinh.S revision 5d4f0e6a26b66f1dab8d20a65af4469c6dd7370d
1/*
2Copyright (c) 2014, Intel Corporation
3All rights reserved.
4
5Redistribution and use in source and binary forms, with or without
6modification, are permitted provided that the following conditions are met:
7
8    * Redistributions of source code must retain the above copyright notice,
9    * this list of conditions and the following disclaimer.
10
11    * Redistributions in binary form must reproduce the above copyright notice,
12    * this list of conditions and the following disclaimer in the documentation
13    * and/or other materials provided with the distribution.
14
15    * Neither the name of Intel Corporation nor the names of its contributors
16    * may be used to endorse or promote products derived from this software
17    * without specific prior written permission.
18
19THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
23ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29*/
30
31/******************************************************************************/
32/******************************************************************************/
33//                     ALGORITHM DESCRIPTION
34//                     ---------------------
35//
36//  sinh(x)=(exp(x)-exp(-x))/2
37//
38//  Let |x|=xH+xL (upper 26 bits, lower 27 bits)
39//  log2(e) rounded to 26 bits (high part) plus a double precision low part is
40//          L2EH+L2EL (upper 26, lower 53 bits)
41//
42//  Let xH*L2EH=k+f+r`, where (k+f)*2^7=int(xH*L2EH*2^7),
43//                              f=0.b1 b2 ... b7, k integer
44//  2^f is approximated as Tp[f]+Dp[f], and 2^{-f} as Tn[f]+Dn[f]
45//  Tp stores the high 53 bits, Dp stores (2^f-Tp[f]) rounded to double precision
46//
47//  e^|x|=2^{k+f}*2^r, r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-8}+2^{-14},
48//                       for |x| in [23/64,3*2^7)
49//  e^{-|x|}=2^{-k-f}*2^{-r}
50//
51//  e^|x| is approximated as 2^k*Tp+2^k*Tp*c1*r(1+c2*r+..+c5*r^4)+2^k*Dp=
52//                           =2^k*Tp+2^k*Tp*P15+2^k*Dp
53//  e^{-|x|} approximated as 2^{-k}*Tn-2^{-k}*Tn*c1*r(1-c2*r+..+c5*r^4)+2^{-k}*Dn
54//
55//  For |x| in [1/8, 3*2^7), sinh(x) is formed as
56//      RN(2^k*Tp-2^{-k}*Tn)+2^k*Tp*P15-2^{-k}*Tn*P`15-2^{-k}*TnL-2^{-k}*Dn+2^k*Dp
57//
58//  For x in (3*2^7, 3*2^8), sign(x)*(e^|x|)/2 is returned, and
59//  the result is checked for overflow.
60//
61//  For |x|<23/64, a Taylor polynomial expansion is used (degree 13)
62//  To reduce rounding errors, the p3*x^3 term is computed as
63//     (p3*xh^3)_high+[(p3*xl*(3*x*xh+xl^2))+(p3*xh^3)_low],
64//  where x=xh+xl, (xh are the leading 17 bits of x), and
65//     (p3*xh^3)_high=RN(x+p3*xh^3)-x
66//  (error bound for polynomial expansion is below 0.51 ulp)
67//
68// Special cases:
69//  sinh(NaN) = quiet NaN, and raise invalid exception
70//  sinh(+/-INF) = +/-INF
71//  sinh(x) = x for subnormals
72//  for finite argument, only sinh(0)=0 is exact
73//  For IEEE double
74//    sinh(x) overflows  for x >
75//    710.47586007394386342639336362481117248535156250 = MAXLOG+log(2)
76//
77/******************************************************************************/
78
79#include <private/bionic_asm.h>
80# -- Begin  static_func
81        .text
82        .align __bionic_asm_align
83        .type static_func, @function
84static_func:
85..B1.1:
86        call      ..L2
87..L2:
88        popl      %eax
89        lea       _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
90        lea       static_const_table@GOTOFF(%eax), %eax
91        ret
92        .size   static_func,.-static_func
93# -- End  static_func
94
95# -- Begin  sinh
96ENTRY(sinh)
97# parameter 1: 8 + %ebp
98..B2.1:
99..B2.2:
100        pushl     %ebp
101        movl      %esp, %ebp
102        subl      $104, %esp
103        movl      %ebx, 40(%esp)
104        call      static_func
105        movl      %eax, %ebx
106        movsd     112(%esp), %xmm0
107        movsd     4272(%ebx), %xmm3
108        xorpd     %xmm4, %xmm4
109        movsd     4192(%ebx), %xmm1
110        movsd     4200(%ebx), %xmm2
111        movl      $32768, %eax
112        pinsrw    $3, %eax, %xmm4
113        movsd     4096(%ebx), %xmm6
114        pextrw    $3, %xmm0, %ecx
115        andpd     %xmm0, %xmm3
116        andnpd    %xmm0, %xmm4
117        pshufd    $68, %xmm4, %xmm5
118        movl      $32768, %edx
119        andl      %ecx, %edx
120        andl      $32767, %ecx
121        subl      $16343, %ecx
122        cmpl      $177, %ecx
123        jae       .L_2TAG_PACKET_0.0.2
124        subsd     %xmm3, %xmm4
125        mulsd     %xmm1, %xmm3
126        mulsd     %xmm5, %xmm2
127        cvtsd2si  %xmm3, %eax
128        shll      $3, %edx
129        orl       %edx, %eax
130        movapd    %xmm3, %xmm7
131        addsd     %xmm6, %xmm3
132        mulsd     %xmm4, %xmm1
133        xorpd     %xmm5, %xmm5
134        subsd     %xmm6, %xmm3
135        movapd    4112(%ebx), %xmm4
136        addsd     %xmm1, %xmm2
137        movapd    4128(%ebx), %xmm6
138        subsd     %xmm3, %xmm7
139        movl      $32704, %edx
140        pinsrw    $3, %edx, %xmm5
141        movapd    4144(%ebx), %xmm1
142        addsd     %xmm7, %xmm2
143        movl      $127, %edx
144        andl      %eax, %edx
145        addl      %edx, %edx
146        shrl      $3, %eax
147        andl      $65520, %eax
148        addl      $16352, %eax
149        xorpd     %xmm0, %xmm0
150        cmpl      $161, %ecx
151        jae       .L_2TAG_PACKET_1.0.2
152        pshufd    $68, %xmm5, %xmm5
153        pinsrw    $3, %eax, %xmm0
154        pshufd    $68, %xmm0, %xmm0
155        psubw     %xmm0, %xmm5
156        mulpd     (%ebx,%edx,8), %xmm0
157        mulpd     2048(%ebx,%edx,8), %xmm5
158        pshufd    $68, %xmm2, %xmm3
159        movapd    4160(%ebx), %xmm7
160        pshufd    $68, %xmm2, %xmm2
161        mulpd     %xmm3, %xmm3
162        mulpd     %xmm2, %xmm4
163        mulpd     %xmm2, %xmm6
164        mulpd     4176(%ebx), %xmm2
165        mulpd     %xmm3, %xmm1
166        mulpd     %xmm3, %xmm7
167        mulpd     %xmm3, %xmm4
168        mulpd     %xmm3, %xmm1
169        addpd     %xmm7, %xmm6
170        movapd    %xmm0, %xmm7
171        addpd     %xmm1, %xmm4
172        shufpd    $0, %xmm5, %xmm7
173        subpd     %xmm5, %xmm0
174        mulpd     %xmm7, %xmm2
175        addpd     %xmm6, %xmm4
176        subsd     %xmm0, %xmm7
177        mulpd     %xmm2, %xmm4
178        pshufd    $238, %xmm0, %xmm6
179        subsd     %xmm5, %xmm7
180        addpd     %xmm2, %xmm4
181        addsd     %xmm6, %xmm7
182        pshufd    $238, %xmm4, %xmm2
183        addsd     %xmm7, %xmm2
184        addsd     %xmm4, %xmm2
185        addsd     %xmm2, %xmm0
186        jmp       .L_2TAG_PACKET_2.0.2
187.L_2TAG_PACKET_1.0.2:
188        subl      $16352, %eax
189        movl      %eax, %ecx
190        andl      $32752, %eax
191        shrl      $1, %eax
192        andl      $65520, %eax
193        subl      %eax, %ecx
194        addl      $16352, %eax
195        pinsrw    $3, %eax, %xmm0
196        pshufd    $68, %xmm0, %xmm0
197        mulpd     (%ebx,%edx,8), %xmm0
198        pshufd    $68, %xmm2, %xmm3
199        movsd     4160(%ebx), %xmm7
200        mulsd     %xmm3, %xmm3
201        mulsd     %xmm2, %xmm4
202        mulsd     %xmm2, %xmm6
203        mulsd     4176(%ebx), %xmm2
204        mulsd     %xmm3, %xmm1
205        mulsd     %xmm3, %xmm7
206        mulsd     %xmm3, %xmm4
207        addl      $16368, %ecx
208        pinsrw    $3, %ecx, %xmm5
209        mulsd     %xmm3, %xmm1
210        addsd     %xmm7, %xmm6
211        addsd     %xmm1, %xmm4
212        mulsd     %xmm0, %xmm2
213        addsd     %xmm6, %xmm4
214        mulsd     %xmm2, %xmm4
215        pshufd    $238, %xmm0, %xmm6
216        addsd     %xmm6, %xmm4
217        addsd     %xmm4, %xmm2
218        addsd     %xmm2, %xmm0
219        mulsd     %xmm5, %xmm0
220        pextrw    $3, %xmm0, %eax
221        andl      $32752, %eax
222        movl      $127, %edx
223        cmpl      $32752, %eax
224        je        .L_2TAG_PACKET_3.0.2
225        jmp       .L_2TAG_PACKET_2.0.2
226.L_2TAG_PACKET_0.0.2:
227        addl      $16343, %ecx
228        cmpl      $16343, %ecx
229        ja        .L_2TAG_PACKET_4.0.2
230        cmpl      $15856, %ecx
231        jb        .L_2TAG_PACKET_5.0.2
232        movapd    4208(%ebx), %xmm1
233        pshufd    $68, %xmm0, %xmm6
234        mulpd     %xmm5, %xmm5
235        movapd    4224(%ebx), %xmm2
236        pshufd    $68, %xmm0, %xmm7
237        movapd    4240(%ebx), %xmm3
238        pshufd    $68, %xmm0, %xmm4
239        andpd     4256(%ebx), %xmm6
240        mulpd     %xmm5, %xmm1
241        mulsd     %xmm5, %xmm2
242        subpd     %xmm6, %xmm4
243        mulpd     %xmm5, %xmm7
244        addpd     %xmm3, %xmm1
245        pshufd    $68, %xmm6, %xmm3
246        mulpd     %xmm5, %xmm5
247        mulsd     %xmm7, %xmm2
248        mulpd     %xmm7, %xmm1
249        pshufd    $68, %xmm0, %xmm7
250        mulsd     %xmm6, %xmm6
251        addsd     %xmm7, %xmm7
252        mulsd     %xmm4, %xmm4
253        mulpd     %xmm5, %xmm1
254        addsd     %xmm0, %xmm7
255        mulsd     %xmm3, %xmm6
256        mulsd     %xmm3, %xmm7
257        pshufd    $238, %xmm1, %xmm3
258        mulsd     %xmm5, %xmm1
259        pshufd    $238, %xmm4, %xmm5
260        addsd     %xmm2, %xmm3
261        pshufd    $238, %xmm2, %xmm2
262        addsd     %xmm4, %xmm7
263        movapd    %xmm0, %xmm4
264        mulsd     %xmm2, %xmm6
265        mulsd     %xmm5, %xmm7
266        addsd     %xmm6, %xmm0
267        mulsd     %xmm2, %xmm7
268        subsd     %xmm0, %xmm4
269        addsd     %xmm7, %xmm1
270        addsd     %xmm4, %xmm6
271        addsd     %xmm3, %xmm1
272        addsd     %xmm6, %xmm1
273        addsd     %xmm1, %xmm0
274        jmp       .L_2TAG_PACKET_2.0.2
275.L_2TAG_PACKET_5.0.2:
276        cmpl      $16, %ecx
277        jae       .L_2TAG_PACKET_6.0.2
278        movapd    %xmm0, %xmm1
279        mulsd     %xmm1, %xmm1
280        jmp       .L_2TAG_PACKET_2.0.2
281.L_2TAG_PACKET_6.0.2:
282        xorpd     %xmm2, %xmm2
283        movl      $17392, %ecx
284        pinsrw    $3, %ecx, %xmm2
285        xorpd     %xmm3, %xmm3
286        movl      $15344, %edx
287        pinsrw    $3, %edx, %xmm3
288        mulsd     %xmm0, %xmm2
289        addsd     %xmm2, %xmm0
290        mulsd     %xmm3, %xmm0
291        jmp       .L_2TAG_PACKET_2.0.2
292.L_2TAG_PACKET_4.0.2:
293        cmpl      $32752, %ecx
294        jae       .L_2TAG_PACKET_7.0.2
295        xorpd     %xmm0, %xmm0
296        movl      $32736, %eax
297        pinsrw    $3, %eax, %xmm0
298        orl       %edx, %eax
299        pinsrw    $3, %eax, %xmm1
300        mulsd     %xmm1, %xmm0
301        movl      $127, %edx
302.L_2TAG_PACKET_3.0.2:
303        movsd     %xmm0, (%esp)
304        movsd     112(%esp), %xmm0
305        fldl      (%esp)
306        jmp       .L_2TAG_PACKET_8.0.2
307.L_2TAG_PACKET_7.0.2:
308        xorpd     %xmm1, %xmm1
309        movl      $32768, %eax
310        pinsrw    $3, %eax, %xmm1
311        andnpd    %xmm0, %xmm1
312        mulsd     %xmm1, %xmm0
313        jmp       .L_2TAG_PACKET_2.0.2
314.L_2TAG_PACKET_2.0.2:
315        movsd     %xmm0, 24(%esp)
316        fldl      24(%esp)
317.L_2TAG_PACKET_8.0.2:
318        movl      40(%esp), %ebx
319        movl      %ebp, %esp
320        popl      %ebp
321        ret
322..B2.3:
323END(sinh)
324# -- End  sinh
325
326# Start file scope ASM
327.weak sinhl
328.equ sinhl, sinh
329# End file scope ASM
330	.section .rodata, "a"
331	.align 16
332	.align 16
333static_const_table:
334	.long	0
335	.long	1072693248
336	.long	0
337	.long	0
338	.long	2851812149
339	.long	1072698941
340	.long	2595802551
341	.long	1016815913
342	.long	1048019041
343	.long	1072704666
344	.long	1398474845
345	.long	3161559171
346	.long	3899555717
347	.long	1072710421
348	.long	427280750
349	.long	3163595548
350	.long	3541402996
351	.long	1072716208
352	.long	2759177317
353	.long	1015903202
354	.long	702412510
355	.long	1072722027
356	.long	3803266087
357	.long	3163328991
358	.long	410360776
359	.long	1072727877
360	.long	1269990655
361	.long	1013024446
362	.long	3402036099
363	.long	1072733758
364	.long	405889334
365	.long	1016154232
366	.long	1828292879
367	.long	1072739672
368	.long	1255956747
369	.long	1016636974
370	.long	728909815
371	.long	1072745618
372	.long	383930225
373	.long	1016078044
374	.long	852742562
375	.long	1072751596
376	.long	667253586
377	.long	1010842135
378	.long	2952712987
379	.long	1072757606
380	.long	3293494651
381	.long	3161168877
382	.long	3490863953
383	.long	1072763649
384	.long	960797498
385	.long	3163997456
386	.long	3228316108
387	.long	1072769725
388	.long	3010241991
389	.long	3159471380
390	.long	2930322912
391	.long	1072775834
392	.long	2599499422
393	.long	3163762623
394	.long	3366293073
395	.long	1072781976
396	.long	3119426314
397	.long	1015169130
398	.long	1014845819
399	.long	1072788152
400	.long	3117910646
401	.long	3162607681
402	.long	948735466
403	.long	1072794361
404	.long	3516338028
405	.long	3163623459
406	.long	3949972341
407	.long	1072800603
408	.long	2068408548
409	.long	1015962444
410	.long	2214878420
411	.long	1072806880
412	.long	892270087
413	.long	3164164998
414	.long	828946858
415	.long	1072813191
416	.long	10642492
417	.long	1016988014
418	.long	586995997
419	.long	1072819536
420	.long	41662348
421	.long	3163676568
422	.long	2288159958
423	.long	1072825915
424	.long	2169144469
425	.long	1015924597
426	.long	2440944790
427	.long	1072832329
428	.long	2492769774
429	.long	1015196030
430	.long	1853186616
431	.long	1072838778
432	.long	3066496371
433	.long	1016705150
434	.long	1337108031
435	.long	1072845262
436	.long	3203724452
437	.long	1015726421
438	.long	1709341917
439	.long	1072851781
440	.long	2571168217
441	.long	1015201075
442	.long	3790955393
443	.long	1072858335
444	.long	2352942462
445	.long	3164228666
446	.long	4112506593
447	.long	1072864925
448	.long	2947355221
449	.long	1015419624
450	.long	3504003472
451	.long	1072871551
452	.long	3594001060
453	.long	3158379228
454	.long	2799960843
455	.long	1072878213
456	.long	1423655381
457	.long	1016070727
458	.long	2839424854
459	.long	1072884911
460	.long	1171596163
461	.long	1014090255
462	.long	171030293
463	.long	1072891646
464	.long	3526460132
465	.long	1015477354
466	.long	4232894513
467	.long	1072898416
468	.long	2383938684
469	.long	1015717095
470	.long	2992903935
471	.long	1072905224
472	.long	2218154406
473	.long	1016276769
474	.long	1603444721
475	.long	1072912069
476	.long	1548633640
477	.long	3163249902
478	.long	926591435
479	.long	1072918951
480	.long	3208833762
481	.long	3163962090
482	.long	1829099622
483	.long	1072925870
484	.long	1016661181
485	.long	3164509581
486	.long	887463927
487	.long	1072932827
488	.long	3596744163
489	.long	3161842742
490	.long	3272845541
491	.long	1072939821
492	.long	928852419
493	.long	3164536824
494	.long	1276261410
495	.long	1072946854
496	.long	300981948
497	.long	1015732745
498	.long	78413852
499	.long	1072953925
500	.long	4183226867
501	.long	3164065827
502	.long	569847338
503	.long	1072961034
504	.long	472945272
505	.long	3160339305
506	.long	3645941911
507	.long	1072968181
508	.long	3814685081
509	.long	3162621917
510	.long	1617004845
511	.long	1072975368
512	.long	82804944
513	.long	1011391354
514	.long	3978100823
515	.long	1072982593
516	.long	3513027190
517	.long	1016894539
518	.long	3049340112
519	.long	1072989858
520	.long	3062915824
521	.long	1014219171
522	.long	4040676318
523	.long	1072997162
524	.long	4090609238
525	.long	1016712034
526	.long	3577096743
527	.long	1073004506
528	.long	2951496418
529	.long	1014842263
530	.long	2583551245
531	.long	1073011890
532	.long	3161094195
533	.long	1016655067
534	.long	1990012071
535	.long	1073019314
536	.long	3529070563
537	.long	3163861769
538	.long	2731501122
539	.long	1073026778
540	.long	1774031855
541	.long	3163518597
542	.long	1453150082
543	.long	1073034283
544	.long	498154669
545	.long	3162536638
546	.long	3395129871
547	.long	1073041828
548	.long	4025345435
549	.long	3163383964
550	.long	917841882
551	.long	1073049415
552	.long	18715565
553	.long	1016707884
554	.long	3566716925
555	.long	1073057042
556	.long	1536826856
557	.long	1015191009
558	.long	3712504873
559	.long	1073064711
560	.long	88491949
561	.long	1016476236
562	.long	2321106615
563	.long	1073072422
564	.long	2171176610
565	.long	1010584347
566	.long	363667784
567	.long	1073080175
568	.long	813753950
569	.long	1016833785
570	.long	3111574537
571	.long	1073087969
572	.long	2606161479
573	.long	3163808322
574	.long	2956612997
575	.long	1073095806
576	.long	2118169751
577	.long	3163784129
578	.long	885834528
579	.long	1073103686
580	.long	1973258547
581	.long	3163310140
582	.long	2186617381
583	.long	1073111608
584	.long	2270764084
585	.long	3164321289
586	.long	3561793907
587	.long	1073119573
588	.long	1157054053
589	.long	1012938926
590	.long	1719614413
591	.long	1073127582
592	.long	330458198
593	.long	3164331316
594	.long	1963711167
595	.long	1073135634
596	.long	1744767757
597	.long	3161622870
598	.long	1013258799
599	.long	1073143730
600	.long	1748797611
601	.long	3161177658
602	.long	4182873220
603	.long	1073151869
604	.long	629542646
605	.long	3163044879
606	.long	3907805044
607	.long	1073160053
608	.long	2257091225
609	.long	3162598983
610	.long	1218806132
611	.long	1073168282
612	.long	1818613052
613	.long	3163597017
614	.long	1447192521
615	.long	1073176555
616	.long	1462857171
617	.long	3163563097
618	.long	1339972927
619	.long	1073184873
620	.long	167908909
621	.long	1016620728
622	.long	1944781191
623	.long	1073193236
624	.long	3993278767
625	.long	3162772855
626	.long	19972402
627	.long	1073201645
628	.long	3507899862
629	.long	1017057868
630	.long	919555682
631	.long	1073210099
632	.long	3121969534
633	.long	1013996802
634	.long	1413356050
635	.long	1073218599
636	.long	1651349291
637	.long	3163716742
638	.long	2571947539
639	.long	1073227145
640	.long	3558159064
641	.long	3164425245
642	.long	1176749997
643	.long	1073235738
644	.long	2738998779
645	.long	3163084420
646	.long	2604962541
647	.long	1073244377
648	.long	2614425274
649	.long	3164587768
650	.long	3649726105
651	.long	1073253063
652	.long	4085036346
653	.long	1016698050
654	.long	1110089947
655	.long	1073261797
656	.long	1451641639
657	.long	1016523249
658	.long	380978316
659	.long	1073270578
660	.long	854188970
661	.long	3161511262
662	.long	2568320822
663	.long	1073279406
664	.long	2732824428
665	.long	1015401491
666	.long	194117574
667	.long	1073288283
668	.long	777528612
669	.long	3164460665
670	.long	2966275557
671	.long	1073297207
672	.long	2176155324
673	.long	3160891335
674	.long	3418903055
675	.long	1073306180
676	.long	2527457337
677	.long	3161869180
678	.long	2682146384
679	.long	1073315202
680	.long	2082178513
681	.long	3164411995
682	.long	1892288442
683	.long	1073324273
684	.long	2446255666
685	.long	3163648957
686	.long	2191782032
687	.long	1073333393
688	.long	2960257726
689	.long	1014791238
690	.long	434316067
691	.long	1073342563
692	.long	2028358766
693	.long	1014506698
694	.long	2069751141
695	.long	1073351782
696	.long	1562170675
697	.long	3163773257
698	.long	3964284211
699	.long	1073361051
700	.long	2111583915
701	.long	1016475740
702	.long	2990417245
703	.long	1073370371
704	.long	3683467745
705	.long	3164417902
706	.long	321958744
707	.long	1073379742
708	.long	3401933767
709	.long	1016843134
710	.long	1434058175
711	.long	1073389163
712	.long	251133233
713	.long	1016134345
714	.long	3218338682
715	.long	1073398635
716	.long	3404164304
717	.long	3163525684
718	.long	2572866477
719	.long	1073408159
720	.long	878562433
721	.long	1016570317
722	.long	697153126
723	.long	1073417735
724	.long	1283515429
725	.long	3164331765
726	.long	3092190715
727	.long	1073427362
728	.long	814012168
729	.long	3160571998
730	.long	2380618042
731	.long	1073437042
732	.long	3149557219
733	.long	3164369375
734	.long	4076559943
735	.long	1073446774
736	.long	2119478331
737	.long	3161806927
738	.long	815859274
739	.long	1073456560
740	.long	240396590
741	.long	3164536019
742	.long	2420883922
743	.long	1073466398
744	.long	2049810052
745	.long	1015168464
746	.long	1540824585
747	.long	1073476290
748	.long	1064017011
749	.long	3164536266
750	.long	3716502172
751	.long	1073486235
752	.long	2303740125
753	.long	1015091301
754	.long	1610600570
755	.long	1073496235
756	.long	3766732298
757	.long	1016808759
758	.long	777507147
759	.long	1073506289
760	.long	4282924205
761	.long	1016236109
762	.long	2483480501
763	.long	1073516397
764	.long	1216371780
765	.long	1014082748
766	.long	3706687593
767	.long	1073526560
768	.long	3521726940
769	.long	1014301643
770	.long	1432208378
771	.long	1073536779
772	.long	1401068914
773	.long	3163412539
774	.long	1242007932
775	.long	1073547053
776	.long	1132034716
777	.long	3164388407
778	.long	135105010
779	.long	1073557383
780	.long	1906148728
781	.long	3164424315
782	.long	3707479175
783	.long	1073567768
784	.long	3613079303
785	.long	1015213314
786	.long	382305176
787	.long	1073578211
788	.long	2347622376
789	.long	3163627201
790	.long	64696965
791	.long	1073588710
792	.long	1768797490
793	.long	1016865536
794	.long	4076975200
795	.long	1073599265
796	.long	2029000899
797	.long	1016257111
798	.long	863738719
799	.long	1073609879
800	.long	1326992220
801	.long	3163661773
802	.long	351641897
803	.long	1073620550
804	.long	2172261526
805	.long	3164059175
806	.long	3884662774
807	.long	1073631278
808	.long	2158611599
809	.long	1015258761
810	.long	4224142467
811	.long	1073642065
812	.long	3389820386
813	.long	1016255778
814	.long	2728693978
815	.long	1073652911
816	.long	396109971
817	.long	3164511267
818	.long	764307441
819	.long	1073663816
820	.long	3021057420
821	.long	3164378099
822	.long	3999357479
823	.long	1073674779
824	.long	2258941616
825	.long	1016973300
826	.long	929806999
827	.long	1073685803
828	.long	3205336643
829	.long	1016308133
830	.long	1533953344
831	.long	1073696886
832	.long	769171851
833	.long	1016714209
834	.long	2912730644
835	.long	1073708029
836	.long	3490067722
837	.long	3164453650
838	.long	2174652632
839	.long	1073719233
840	.long	4087714590
841	.long	1015498835
842	.long	730821105
843	.long	1073730498
844	.long	2523232743
845	.long	1013115764
846	.long	0
847	.long	1072693248
848	.long	0
849	.long	0
850	.long	730821105
851	.long	1072681922
852	.long	2523232743
853	.long	1012067188
854	.long	2174652632
855	.long	1072670657
856	.long	4087714590
857	.long	1014450259
858	.long	2912730644
859	.long	1072659453
860	.long	3490067722
861	.long	3163405074
862	.long	1533953344
863	.long	1072648310
864	.long	769171851
865	.long	1015665633
866	.long	929806999
867	.long	1072637227
868	.long	3205336643
869	.long	1015259557
870	.long	3999357479
871	.long	1072626203
872	.long	2258941616
873	.long	1015924724
874	.long	764307441
875	.long	1072615240
876	.long	3021057420
877	.long	3163329523
878	.long	2728693978
879	.long	1072604335
880	.long	396109971
881	.long	3163462691
882	.long	4224142467
883	.long	1072593489
884	.long	3389820386
885	.long	1015207202
886	.long	3884662774
887	.long	1072582702
888	.long	2158611599
889	.long	1014210185
890	.long	351641897
891	.long	1072571974
892	.long	2172261526
893	.long	3163010599
894	.long	863738719
895	.long	1072561303
896	.long	1326992220
897	.long	3162613197
898	.long	4076975200
899	.long	1072550689
900	.long	2029000899
901	.long	1015208535
902	.long	64696965
903	.long	1072540134
904	.long	1768797490
905	.long	1015816960
906	.long	382305176
907	.long	1072529635
908	.long	2347622376
909	.long	3162578625
910	.long	3707479175
911	.long	1072519192
912	.long	3613079303
913	.long	1014164738
914	.long	135105010
915	.long	1072508807
916	.long	1906148728
917	.long	3163375739
918	.long	1242007932
919	.long	1072498477
920	.long	1132034716
921	.long	3163339831
922	.long	1432208378
923	.long	1072488203
924	.long	1401068914
925	.long	3162363963
926	.long	3706687593
927	.long	1072477984
928	.long	3521726940
929	.long	1013253067
930	.long	2483480501
931	.long	1072467821
932	.long	1216371780
933	.long	1013034172
934	.long	777507147
935	.long	1072457713
936	.long	4282924205
937	.long	1015187533
938	.long	1610600570
939	.long	1072447659
940	.long	3766732298
941	.long	1015760183
942	.long	3716502172
943	.long	1072437659
944	.long	2303740125
945	.long	1014042725
946	.long	1540824585
947	.long	1072427714
948	.long	1064017011
949	.long	3163487690
950	.long	2420883922
951	.long	1072417822
952	.long	2049810052
953	.long	1014119888
954	.long	815859274
955	.long	1072407984
956	.long	240396590
957	.long	3163487443
958	.long	4076559943
959	.long	1072398198
960	.long	2119478331
961	.long	3160758351
962	.long	2380618042
963	.long	1072388466
964	.long	3149557219
965	.long	3163320799
966	.long	3092190715
967	.long	1072378786
968	.long	814012168
969	.long	3159523422
970	.long	697153126
971	.long	1072369159
972	.long	1283515429
973	.long	3163283189
974	.long	2572866477
975	.long	1072359583
976	.long	878562433
977	.long	1015521741
978	.long	3218338682
979	.long	1072350059
980	.long	3404164304
981	.long	3162477108
982	.long	1434058175
983	.long	1072340587
984	.long	251133233
985	.long	1015085769
986	.long	321958744
987	.long	1072331166
988	.long	3401933767
989	.long	1015794558
990	.long	2990417245
991	.long	1072321795
992	.long	3683467745
993	.long	3163369326
994	.long	3964284211
995	.long	1072312475
996	.long	2111583915
997	.long	1015427164
998	.long	2069751141
999	.long	1072303206
1000	.long	1562170675
1001	.long	3162724681
1002	.long	434316067
1003	.long	1072293987
1004	.long	2028358766
1005	.long	1013458122
1006	.long	2191782032
1007	.long	1072284817
1008	.long	2960257726
1009	.long	1013742662
1010	.long	1892288442
1011	.long	1072275697
1012	.long	2446255666
1013	.long	3162600381
1014	.long	2682146384
1015	.long	1072266626
1016	.long	2082178513
1017	.long	3163363419
1018	.long	3418903055
1019	.long	1072257604
1020	.long	2527457337
1021	.long	3160820604
1022	.long	2966275557
1023	.long	1072248631
1024	.long	2176155324
1025	.long	3159842759
1026	.long	194117574
1027	.long	1072239707
1028	.long	777528612
1029	.long	3163412089
1030	.long	2568320822
1031	.long	1072230830
1032	.long	2732824428
1033	.long	1014352915
1034	.long	380978316
1035	.long	1072222002
1036	.long	854188970
1037	.long	3160462686
1038	.long	1110089947
1039	.long	1072213221
1040	.long	1451641639
1041	.long	1015474673
1042	.long	3649726105
1043	.long	1072204487
1044	.long	4085036346
1045	.long	1015649474
1046	.long	2604962541
1047	.long	1072195801
1048	.long	2614425274
1049	.long	3163539192
1050	.long	1176749997
1051	.long	1072187162
1052	.long	2738998779
1053	.long	3162035844
1054	.long	2571947539
1055	.long	1072178569
1056	.long	3558159064
1057	.long	3163376669
1058	.long	1413356050
1059	.long	1072170023
1060	.long	1651349291
1061	.long	3162668166
1062	.long	919555682
1063	.long	1072161523
1064	.long	3121969534
1065	.long	1012948226
1066	.long	19972402
1067	.long	1072153069
1068	.long	3507899862
1069	.long	1016009292
1070	.long	1944781191
1071	.long	1072144660
1072	.long	3993278767
1073	.long	3161724279
1074	.long	1339972927
1075	.long	1072136297
1076	.long	167908909
1077	.long	1015572152
1078	.long	1447192521
1079	.long	1072127979
1080	.long	1462857171
1081	.long	3162514521
1082	.long	1218806132
1083	.long	1072119706
1084	.long	1818613052
1085	.long	3162548441
1086	.long	3907805044
1087	.long	1072111477
1088	.long	2257091225
1089	.long	3161550407
1090	.long	4182873220
1091	.long	1072103293
1092	.long	629542646
1093	.long	3161996303
1094	.long	1013258799
1095	.long	1072095154
1096	.long	1748797611
1097	.long	3160129082
1098	.long	1963711167
1099	.long	1072087058
1100	.long	1744767757
1101	.long	3160574294
1102	.long	1719614413
1103	.long	1072079006
1104	.long	330458198
1105	.long	3163282740
1106	.long	3561793907
1107	.long	1072070997
1108	.long	1157054053
1109	.long	1011890350
1110	.long	2186617381
1111	.long	1072063032
1112	.long	2270764084
1113	.long	3163272713
1114	.long	885834528
1115	.long	1072055110
1116	.long	1973258547
1117	.long	3162261564
1118	.long	2956612997
1119	.long	1072047230
1120	.long	2118169751
1121	.long	3162735553
1122	.long	3111574537
1123	.long	1072039393
1124	.long	2606161479
1125	.long	3162759746
1126	.long	363667784
1127	.long	1072031599
1128	.long	813753950
1129	.long	1015785209
1130	.long	2321106615
1131	.long	1072023846
1132	.long	2171176610
1133	.long	1009535771
1134	.long	3712504873
1135	.long	1072016135
1136	.long	88491949
1137	.long	1015427660
1138	.long	3566716925
1139	.long	1072008466
1140	.long	1536826856
1141	.long	1014142433
1142	.long	917841882
1143	.long	1072000839
1144	.long	18715565
1145	.long	1015659308
1146	.long	3395129871
1147	.long	1071993252
1148	.long	4025345435
1149	.long	3162335388
1150	.long	1453150082
1151	.long	1071985707
1152	.long	498154669
1153	.long	3161488062
1154	.long	2731501122
1155	.long	1071978202
1156	.long	1774031855
1157	.long	3162470021
1158	.long	1990012071
1159	.long	1071970738
1160	.long	3529070563
1161	.long	3162813193
1162	.long	2583551245
1163	.long	1071963314
1164	.long	3161094195
1165	.long	1015606491
1166	.long	3577096743
1167	.long	1071955930
1168	.long	2951496418
1169	.long	1013793687
1170	.long	4040676318
1171	.long	1071948586
1172	.long	4090609238
1173	.long	1015663458
1174	.long	3049340112
1175	.long	1071941282
1176	.long	3062915824
1177	.long	1013170595
1178	.long	3978100823
1179	.long	1071934017
1180	.long	3513027190
1181	.long	1015845963
1182	.long	1617004845
1183	.long	1071926792
1184	.long	82804944
1185	.long	1010342778
1186	.long	3645941911
1187	.long	1071919605
1188	.long	3814685081
1189	.long	3161573341
1190	.long	569847338
1191	.long	1071912458
1192	.long	472945272
1193	.long	3159290729
1194	.long	78413852
1195	.long	1071905349
1196	.long	4183226867
1197	.long	3163017251
1198	.long	1276261410
1199	.long	1071898278
1200	.long	300981948
1201	.long	1014684169
1202	.long	3272845541
1203	.long	1071891245
1204	.long	928852419
1205	.long	3163488248
1206	.long	887463927
1207	.long	1071884251
1208	.long	3596744163
1209	.long	3160794166
1210	.long	1829099622
1211	.long	1071877294
1212	.long	1016661181
1213	.long	3163461005
1214	.long	926591435
1215	.long	1071870375
1216	.long	3208833762
1217	.long	3162913514
1218	.long	1603444721
1219	.long	1071863493
1220	.long	1548633640
1221	.long	3162201326
1222	.long	2992903935
1223	.long	1071856648
1224	.long	2218154406
1225	.long	1015228193
1226	.long	4232894513
1227	.long	1071849840
1228	.long	2383938684
1229	.long	1014668519
1230	.long	171030293
1231	.long	1071843070
1232	.long	3526460132
1233	.long	1014428778
1234	.long	2839424854
1235	.long	1071836335
1236	.long	1171596163
1237	.long	1013041679
1238	.long	2799960843
1239	.long	1071829637
1240	.long	1423655381
1241	.long	1015022151
1242	.long	3504003472
1243	.long	1071822975
1244	.long	3594001060
1245	.long	3157330652
1246	.long	4112506593
1247	.long	1071816349
1248	.long	2947355221
1249	.long	1014371048
1250	.long	3790955393
1251	.long	1071809759
1252	.long	2352942462
1253	.long	3163180090
1254	.long	1709341917
1255	.long	1071803205
1256	.long	2571168217
1257	.long	1014152499
1258	.long	1337108031
1259	.long	1071796686
1260	.long	3203724452
1261	.long	1014677845
1262	.long	1853186616
1263	.long	1071790202
1264	.long	3066496371
1265	.long	1015656574
1266	.long	2440944790
1267	.long	1071783753
1268	.long	2492769774
1269	.long	1014147454
1270	.long	2288159958
1271	.long	1071777339
1272	.long	2169144469
1273	.long	1014876021
1274	.long	586995997
1275	.long	1071770960
1276	.long	41662348
1277	.long	3162627992
1278	.long	828946858
1279	.long	1071764615
1280	.long	10642492
1281	.long	1015939438
1282	.long	2214878420
1283	.long	1071758304
1284	.long	892270087
1285	.long	3163116422
1286	.long	3949972341
1287	.long	1071752027
1288	.long	2068408548
1289	.long	1014913868
1290	.long	948735466
1291	.long	1071745785
1292	.long	3516338028
1293	.long	3162574883
1294	.long	1014845819
1295	.long	1071739576
1296	.long	3117910646
1297	.long	3161559105
1298	.long	3366293073
1299	.long	1071733400
1300	.long	3119426314
1301	.long	1014120554
1302	.long	2930322912
1303	.long	1071727258
1304	.long	2599499422
1305	.long	3162714047
1306	.long	3228316108
1307	.long	1071721149
1308	.long	3010241991
1309	.long	3158422804
1310	.long	3490863953
1311	.long	1071715073
1312	.long	960797498
1313	.long	3162948880
1314	.long	2952712987
1315	.long	1071709030
1316	.long	3293494651
1317	.long	3160120301
1318	.long	852742562
1319	.long	1071703020
1320	.long	667253586
1321	.long	1009793559
1322	.long	728909815
1323	.long	1071697042
1324	.long	383930225
1325	.long	1015029468
1326	.long	1828292879
1327	.long	1071691096
1328	.long	1255956747
1329	.long	1015588398
1330	.long	3402036099
1331	.long	1071685182
1332	.long	405889334
1333	.long	1015105656
1334	.long	410360776
1335	.long	1071679301
1336	.long	1269990655
1337	.long	1011975870
1338	.long	702412510
1339	.long	1071673451
1340	.long	3803266087
1341	.long	3162280415
1342	.long	3541402996
1343	.long	1071667632
1344	.long	2759177317
1345	.long	1014854626
1346	.long	3899555717
1347	.long	1071661845
1348	.long	427280750
1349	.long	3162546972
1350	.long	1048019041
1351	.long	1071656090
1352	.long	1398474845
1353	.long	3160510595
1354	.long	2851812149
1355	.long	1071650365
1356	.long	2595802551
1357	.long	1015767337
1358	.long	0
1359	.long	1127743488
1360	.long	0
1361	.long	3275227136
1362	.long	3607404736
1363	.long	1044146952
1364	.long	3607404736
1365	.long	3191630600
1366	.long	4277811695
1367	.long	1063661122
1368	.long	4277811695
1369	.long	3211144770
1370	.long	2140175755
1371	.long	1033864261
1372	.long	2140175755
1373	.long	1033864261
1374	.long	4289495988
1375	.long	1054113747
1376	.long	4289495988
1377	.long	1054113747
1378	.long	4277811695
1379	.long	1064709698
1380	.long	4277811695
1381	.long	1064709698
1382	.long	1610612736
1383	.long	1080497479
1384	.long	4166901572
1385	.long	1053077003
1386	.long	329805064
1387	.long	1038488134
1388	.long	2773927730
1389	.long	1053236707
1390	.long	286331153
1391	.long	1065423121
1392	.long	1431655765
1393	.long	1069897045
1394	.long	1744127201
1395	.long	1046144581
1396	.long	436314137
1397	.long	1059717536
1398	.long	0
1399	.long	4294967280
1400	.long	0
1401	.long	4294967280
1402	.long	4160749568
1403	.long	2147483647
1404	.type	static_const_table,@object
1405	.size	static_const_table,4280
1406	.data
1407	.section .note.GNU-stack, ""
1408# End
1409