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