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