blob: 2c8f9bfd594cdc066f02db23dfecf71ed098d8a3 [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// tanh(x)=(exp(x)-exp(-x))/(exp(x)+exp(-x))=(1-exp(-2*x))/(1+exp(-2*x))
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^8*2=int(xH*L2EH*2^9),
42// f=0.b1 b2 ... b8, k integer
43// 2^{-f} is approximated as Tn[f]+Dn[f]
44// Tn stores the high 53 bits, Dn stores (2^{-f}-Tn[f]) rounded to double precision
45//
46// r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-9}+2^{-14},
47// for |x| in [23/64,3*2^7)
48// e^{-2*|x|}=2^{-k-f}*2^{-r} ~ 2^{-k}*(Tn+Dn)*(1+p)=(T0+D0)*(1+p)
49//
50// For |x| in [2^{-4},2^5):
51// 2^{-r}-1 ~ p=c1*r+c2*r^2+..+c5*r^5
52// Let R=1/(1+T0+p*T0), truncated to 35 significant bits
53// R=1/(1+T0+D0+p*(T0+D0))*(1+eps), |eps|<2^{-33}
54// 1+T0+D0+p*(T0+D0)=KH+KL, where
55// KH=(1+T0+c1*r*T0)_high (leading 17 bits)
56// KL=T0_low+D0+(c1*r*T0)_low+c1*r*D0+(c2*r^2+..c5*r^5)*T0
57// eps ~ (R*KH-1)+R*KL
58// 1/(1+T0+D0+p*(T0+D0)) ~ R-R*eps
59// The result is approximated as (1-T0-D0-(T0+D0)*p)*(R-R*eps)
60// 1-T0-D0-(T0+D0)*p=-((KH-2)+KL)
61// The result is formed as
62// (KH-2)*R+(-(KH-2)*R*eps+(KL*R-KL*R*eps)), with the correct sign
63// set at the end
64//
65// For |x| in [2^{-64},2^{-4}):
66// A Taylor series expansion is used (x+p3*x^3+..+p13*x^{13})
67//
68// For |x|<2^{-64}: x is returned
69//
70// For |x|>=2^32: return +/-1
71//
72// Special cases:
73// tanh(NaN) = quiet NaN, and raise invalid exception
74// tanh(INF) = that INF
75// tanh(+/-0) = +/-0
76//
77/******************************************************************************/
78
79#include <private/bionic_asm.h>
80# -- Begin tanh
81ENTRY(tanh)
82# parameter 1: %xmm0
83..B1.1:
84..___tag_value_tanh.1:
85 pushq %rsi
86..___tag_value_tanh.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 $16304, %ecx
103 cmpl $144, %ecx
104 jae .L_2TAG_PACKET_0.0.1
105 subsd %xmm3, %xmm4
106 mulsd %xmm1, %xmm3
107 mulsd %xmm5, %xmm2
108 cvtsd2si %xmm3, %eax
109 movq %xmm3, %xmm7
110 addsd %xmm6, %xmm3
111 mulsd %xmm4, %xmm1
112 movsd ONEMASK(%rip), %xmm4
113 subsd %xmm6, %xmm3
114 xorpd %xmm0, %xmm0
115 addsd %xmm1, %xmm2
116 subsd %xmm3, %xmm7
117 movapd cv(%rip), %xmm6
118 addsd %xmm7, %xmm2
119 movl $255, %ecx
120 andl %eax, %ecx
121 addl %ecx, %ecx
122 lea T2_neg_f(%rip), %r8
123 movapd (%r8,%rcx,8), %xmm5
124 shrl $4, %eax
125 andl $65520, %eax
126 subl $16368, %eax
127 negl %eax
128 pinsrw $3, %eax, %xmm0
129 movapd 16+cv(%rip), %xmm1
130 pshufd $68, %xmm0, %xmm0
131 mulpd %xmm5, %xmm0
132 movsd 32+cv(%rip), %xmm7
133 pshufd $68, %xmm2, %xmm2
134 movq %xmm4, %xmm5
135 addsd %xmm0, %xmm4
136 mulpd %xmm2, %xmm6
137 mulsd %xmm2, %xmm7
138 mulpd %xmm2, %xmm2
139 addpd %xmm6, %xmm1
140 mulsd %xmm2, %xmm2
141 movsd ONEMASK(%rip), %xmm3
142 mulpd %xmm2, %xmm1
143 pshufd $78, %xmm1, %xmm6
144 addsd %xmm6, %xmm1
145 movq %xmm1, %xmm6
146 addsd %xmm7, %xmm1
147 mulsd %xmm0, %xmm1
148 addsd %xmm4, %xmm1
149 andpd MASK3(%rip), %xmm4
150 divsd %xmm1, %xmm5
151 subsd %xmm4, %xmm3
152 pshufd $238, %xmm0, %xmm1
153 addsd %xmm0, %xmm3
154 movq %xmm4, %xmm2
155 addsd %xmm1, %xmm3
156 mulsd %xmm7, %xmm1
157 mulsd %xmm0, %xmm7
158 addsd %xmm1, %xmm3
159 addsd %xmm7, %xmm4
160 movsd RMASK(%rip), %xmm1
161 mulsd %xmm0, %xmm6
162 andpd MASK3(%rip), %xmm4
163 addsd %xmm6, %xmm3
164 movq %xmm4, %xmm6
165 subsd %xmm4, %xmm2
166 addsd %xmm7, %xmm2
167 movsd ONEMASK(%rip), %xmm7
168 andpd %xmm1, %xmm5
169 addsd %xmm2, %xmm3
170 mulsd %xmm5, %xmm4
171 xorpd %xmm2, %xmm2
172 mulsd %xmm5, %xmm3
173 subsd TWOMASK(%rip), %xmm6
174 subsd %xmm7, %xmm4
175 xorl $32768, %edx
176 pinsrw $3, %edx, %xmm2
177 addsd %xmm3, %xmm4
178 mulsd %xmm5, %xmm6
179 movq %xmm3, %xmm1
180 mulsd %xmm4, %xmm3
181 movq %xmm6, %xmm0
182 mulsd %xmm4, %xmm6
183 subsd %xmm3, %xmm1
184 subsd %xmm6, %xmm1
185 addsd %xmm1, %xmm0
186 xorpd %xmm2, %xmm0
187 jmp ..B1.4
188.L_2TAG_PACKET_0.0.1:
189 addl $960, %ecx
190 cmpl $1104, %ecx
191 jae .L_2TAG_PACKET_1.0.1
192 movapd pv(%rip), %xmm2
193 pshufd $68, %xmm0, %xmm1
194 movapd 16+pv(%rip), %xmm3
195 mulpd %xmm1, %xmm1
196 movapd 32+pv(%rip), %xmm4
197 mulpd %xmm1, %xmm2
198 pshufd $68, %xmm1, %xmm5
199 addpd %xmm3, %xmm2
200 mulsd %xmm5, %xmm5
201 mulpd %xmm1, %xmm2
202 mulsd %xmm5, %xmm5
203 addpd %xmm4, %xmm2
204 mulpd %xmm5, %xmm2
205 pshufd $238, %xmm2, %xmm5
206 addsd %xmm5, %xmm2
207 mulsd %xmm0, %xmm2
208 addsd %xmm2, %xmm0
209 jmp ..B1.4
210.L_2TAG_PACKET_1.0.1:
211 addl $15344, %ecx
212 cmpl $16448, %ecx
213 jae .L_2TAG_PACKET_2.0.1
214 cmpl $16, %ecx
215 jb .L_2TAG_PACKET_3.0.1
216 xorpd %xmm2, %xmm2
217 movl $17392, %eax
218 pinsrw $3, %eax, %xmm2
219 mulsd %xmm0, %xmm2
220 addsd %xmm0, %xmm2
221 jmp ..B1.4
222.L_2TAG_PACKET_3.0.1:
223 movq %xmm0, %xmm2
224 mulsd %xmm2, %xmm2
225 jmp ..B1.4
226.L_2TAG_PACKET_2.0.1:
227 cmpl $32752, %ecx
228 jae .L_2TAG_PACKET_4.0.1
229 xorpd %xmm2, %xmm2
230 movl $15344, %ecx
231 pinsrw $3, %ecx, %xmm2
232 movq %xmm2, %xmm3
233 mulsd %xmm2, %xmm2
234 addsd %xmm3, %xmm2
235.L_2TAG_PACKET_5.0.1:
236 xorpd %xmm0, %xmm0
237 orl $16368, %edx
238 pinsrw $3, %edx, %xmm0
239 jmp ..B1.4
240.L_2TAG_PACKET_4.0.1:
241 movq %xmm0, %xmm2
242 movd %xmm0, %eax
243 psrlq $20, %xmm2
244 movd %xmm2, %ecx
245 orl %eax, %ecx
246 cmpl $0, %ecx
247 je .L_2TAG_PACKET_5.0.1
248 addsd %xmm0, %xmm0
249 movq %xmm0, (%rsp)
250.L_2TAG_PACKET_6.0.1:
251..B1.4:
252 popq %rcx
253..___tag_value_tanh.4:
254 ret
255..___tag_value_tanh.5:
256END(tanh)
257# -- End tanh
258 .section .rodata, "a"
259 .align 16
260 .align 16
261L2E:
262 .long 1610612736
263 .long 1082594631
264 .long 4166901572
265 .long 1055174155
266 .type L2E,@object
267 .size L2E,16
268 .align 16
269Shifter:
270 .long 0
271 .long 1127743488
272 .long 0
273 .long 3275227136
274 .type Shifter,@object
275 .size Shifter,16
276 .align 16
277cv:
278 .long 3884607281
279 .long 3168131199
280 .long 3607404735
281 .long 3190582024
282 .long 1874480759
283 .long 1032041131
284 .long 4286760334
285 .long 1053736893
286 .long 4277811695
287 .long 3211144770
288 .long 0
289 .long 0
290 .type cv,@object
291 .size cv,48
292 .align 16
293T2_neg_f:
294 .long 0
295 .long 1072693248
296 .long 0
297 .long 0
298 .long 1797923801
299 .long 1072687577
300 .long 1950547427
301 .long 1013229059
302 .long 730821105
303 .long 1072681922
304 .long 2523232743
305 .long 1012067188
306 .long 915592468
307 .long 1072676282
308 .long 352947894
309 .long 3161024371
310 .long 2174652632
311 .long 1072670657
312 .long 4087714590
313 .long 1014450259
314 .long 35929225
315 .long 1072665048
316 .long 2809788041
317 .long 3159436968
318 .long 2912730644
319 .long 1072659453
320 .long 3490067722
321 .long 3163405074
322 .long 2038973688
323 .long 1072653874
324 .long 892941374
325 .long 1016046459
326 .long 1533953344
327 .long 1072648310
328 .long 769171851
329 .long 1015665633
330 .long 1222472308
331 .long 1072642761
332 .long 1054357470
333 .long 3161021018
334 .long 929806999
335 .long 1072637227
336 .long 3205336643
337 .long 1015259557
338 .long 481706282
339 .long 1072631708
340 .long 1696079173
341 .long 3162710528
342 .long 3999357479
343 .long 1072626203
344 .long 2258941616
345 .long 1015924724
346 .long 2719515920
347 .long 1072620714
348 .long 2760332941
349 .long 1015137933
350 .long 764307441
351 .long 1072615240
352 .long 3021057420
353 .long 3163329523
354 .long 2256325230
355 .long 1072609780
356 .long 580117746
357 .long 1015317295
358 .long 2728693978
359 .long 1072604335
360 .long 396109971
361 .long 3163462691
362 .long 2009970496
363 .long 1072598905
364 .long 2159039665
365 .long 3162572948
366 .long 4224142467
367 .long 1072593489
368 .long 3389820386
369 .long 1015207202
370 .long 610758006
371 .long 1072588089
372 .long 1965209397
373 .long 3161866232
374 .long 3884662774
375 .long 1072582702
376 .long 2158611599
377 .long 1014210185
378 .long 991358482
379 .long 1072577331
380 .long 838715019
381 .long 3163157668
382 .long 351641897
383 .long 1072571974
384 .long 2172261526
385 .long 3163010599
386 .long 1796832535
387 .long 1072566631
388 .long 3176955716
389 .long 3160585513
390 .long 863738719
391 .long 1072561303
392 .long 1326992220
393 .long 3162613197
394 .long 1679558232
395 .long 1072555989
396 .long 2390342287
397 .long 3163333970
398 .long 4076975200
399 .long 1072550689
400 .long 2029000899
401 .long 1015208535
402 .long 3594158869
403 .long 1072545404
404 .long 2456521700
405 .long 3163256561
406 .long 64696965
407 .long 1072540134
408 .long 1768797490
409 .long 1015816960
410 .long 1912561781
411 .long 1072534877
412 .long 3147495102
413 .long 1015678253
414 .long 382305176
415 .long 1072529635
416 .long 2347622376
417 .long 3162578625
418 .long 3898795731
419 .long 1072524406
420 .long 1249994144
421 .long 1011869818
422 .long 3707479175
423 .long 1072519192
424 .long 3613079303
425 .long 1014164738
426 .long 3939148246
427 .long 1072513992
428 .long 3210352148
429 .long 1015274323
430 .long 135105010
431 .long 1072508807
432 .long 1906148728
433 .long 3163375739
434 .long 721996136
435 .long 1072503635
436 .long 563754734
437 .long 1015371318
438 .long 1242007932
439 .long 1072498477
440 .long 1132034716
441 .long 3163339831
442 .long 1532734324
443 .long 1072493333
444 .long 3094216535
445 .long 3163162857
446 .long 1432208378
447 .long 1072488203
448 .long 1401068914
449 .long 3162363963
450 .long 778901109
451 .long 1072483087
452 .long 2248183955
453 .long 3161268751
454 .long 3706687593
455 .long 1072477984
456 .long 3521726940
457 .long 1013253067
458 .long 1464976603
459 .long 1072472896
460 .long 3507292405
461 .long 3161977534
462 .long 2483480501
463 .long 1072467821
464 .long 1216371780
465 .long 1013034172
466 .long 2307442995
467 .long 1072462760
468 .long 3190117721
469 .long 3162404539
470 .long 777507147
471 .long 1072457713
472 .long 4282924205
473 .long 1015187533
474 .long 2029714210
475 .long 1072452679
476 .long 613660079
477 .long 1015099143
478 .long 1610600570
479 .long 1072447659
480 .long 3766732298
481 .long 1015760183
482 .long 3657065772
483 .long 1072442652
484 .long 399025623
485 .long 3162957078
486 .long 3716502172
487 .long 1072437659
488 .long 2303740125
489 .long 1014042725
490 .long 1631695677
491 .long 1072432680
492 .long 2717633076
493 .long 3162344026
494 .long 1540824585
495 .long 1072427714
496 .long 1064017011
497 .long 3163487690
498 .long 3287523847
499 .long 1072422761
500 .long 1625971539
501 .long 3157009955
502 .long 2420883922
503 .long 1072417822
504 .long 2049810052
505 .long 1014119888
506 .long 3080351519
507 .long 1072412896
508 .long 3379126788
509 .long 3157218001
510 .long 815859274
511 .long 1072407984
512 .long 240396590
513 .long 3163487443
514 .long 4062661092
515 .long 1072403084
516 .long 1422616006
517 .long 3163255318
518 .long 4076559943
519 .long 1072398198
520 .long 2119478331
521 .long 3160758351
522 .long 703710506
523 .long 1072393326
524 .long 1384660846
525 .long 1015195891
526 .long 2380618042
527 .long 1072388466
528 .long 3149557219
529 .long 3163320799
530 .long 364333489
531 .long 1072383620
532 .long 3923737744
533 .long 3161421373
534 .long 3092190715
535 .long 1072378786
536 .long 814012168
537 .long 3159523422
538 .long 1822067026
539 .long 1072373966
540 .long 1241994956
541 .long 1015340290
542 .long 697153126
543 .long 1072369159
544 .long 1283515429
545 .long 3163283189
546 .long 3861050111
547 .long 1072364364
548 .long 254893773
549 .long 3162813180
550 .long 2572866477
551 .long 1072359583
552 .long 878562433
553 .long 1015521741
554 .long 977020788
555 .long 1072354815
556 .long 3065100517
557 .long 1015541563
558 .long 3218338682
559 .long 1072350059
560 .long 3404164304
561 .long 3162477108
562 .long 557149882
563 .long 1072345317
564 .long 3672720709
565 .long 1014537265
566 .long 1434058175
567 .long 1072340587
568 .long 251133233
569 .long 1015085769
570 .long 1405169241
571 .long 1072335870
572 .long 2998539689
573 .long 3162830951
574 .long 321958744
575 .long 1072331166
576 .long 3401933767
577 .long 1015794558
578 .long 2331271250
579 .long 1072326474
580 .long 812057446
581 .long 1012207446
582 .long 2990417245
583 .long 1072321795
584 .long 3683467745
585 .long 3163369326
586 .long 2152073944
587 .long 1072317129
588 .long 1486860576
589 .long 3163203456
590 .long 3964284211
591 .long 1072312475
592 .long 2111583915
593 .long 1015427164
594 .long 3985553595
595 .long 1072307834
596 .long 4002146062
597 .long 1015834136
598 .long 2069751141
599 .long 1072303206
600 .long 1562170675
601 .long 3162724681
602 .long 2366108318
603 .long 1072298590
604 .long 2867985102
605 .long 3161762254
606 .long 434316067
607 .long 1072293987
608 .long 2028358766
609 .long 1013458122
610 .long 424392917
611 .long 1072289396
612 .long 2749202995
613 .long 3162838718
614 .long 2191782032
615 .long 1072284817
616 .long 2960257726
617 .long 1013742662
618 .long 1297350157
619 .long 1072280251
620 .long 1308022040
621 .long 3163412558
622 .long 1892288442
623 .long 1072275697
624 .long 2446255666
625 .long 3162600381
626 .long 3833209506
627 .long 1072271155
628 .long 2722920684
629 .long 1013754842
630 .long 2682146384
631 .long 1072266626
632 .long 2082178513
633 .long 3163363419
634 .long 2591453363
635 .long 1072262109
636 .long 2132396182
637 .long 3159074198
638 .long 3418903055
639 .long 1072257604
640 .long 2527457337
641 .long 3160820604
642 .long 727685349
643 .long 1072253112
644 .long 2038246809
645 .long 3162358742
646 .long 2966275557
647 .long 1072248631
648 .long 2176155324
649 .long 3159842759
650 .long 1403662306
651 .long 1072244163
652 .long 2788809599
653 .long 3161671007
654 .long 194117574
655 .long 1072239707
656 .long 777528612
657 .long 3163412089
658 .long 3492293770
659 .long 1072235262
660 .long 2248032210
661 .long 1015386826
662 .long 2568320822
663 .long 1072230830
664 .long 2732824428
665 .long 1014352915
666 .long 1577608921
667 .long 1072226410
668 .long 1875489510
669 .long 3162968394
670 .long 380978316
671 .long 1072222002
672 .long 854188970
673 .long 3160462686
674 .long 3134592888
675 .long 1072217605
676 .long 4232266862
677 .long 1015991134
678 .long 1110089947
679 .long 1072213221
680 .long 1451641639
681 .long 1015474673
682 .long 2759350287
683 .long 1072208848
684 .long 1148526634
685 .long 1015894933
686 .long 3649726105
687 .long 1072204487
688 .long 4085036346
689 .long 1015649474
690 .long 3643909174
691 .long 1072200138
692 .long 3537586109
693 .long 1014354647
694 .long 2604962541
695 .long 1072195801
696 .long 2614425274
697 .long 3163539192
698 .long 396319521
699 .long 1072191476
700 .long 4172420816
701 .long 3159074632
702 .long 1176749997
703 .long 1072187162
704 .long 2738998779
705 .long 3162035844
706 .long 515457527
707 .long 1072182860
708 .long 836709333
709 .long 1015651226
710 .long 2571947539
711 .long 1072178569
712 .long 3558159064
713 .long 3163376669
714 .long 2916157145
715 .long 1072174290
716 .long 219487565
717 .long 1015309367
718 .long 1413356050
719 .long 1072170023
720 .long 1651349291
721 .long 3162668166
722 .long 2224145553
723 .long 1072165767
724 .long 3482522030
725 .long 3161489169
726 .long 919555682
727 .long 1072161523
728 .long 3121969534
729 .long 1012948226
730 .long 1660913392
731 .long 1072157290
732 .long 4218599604
733 .long 1015135707
734 .long 19972402
735 .long 1072153069
736 .long 3507899862
737 .long 1016009292
738 .long 158781403
739 .long 1072148859
740 .long 2221464712
741 .long 3163286453
742 .long 1944781191
743 .long 1072144660
744 .long 3993278767
745 .long 3161724279
746 .long 950803702
747 .long 1072140473
748 .long 1655364926
749 .long 1015237032
750 .long 1339972927
751 .long 1072136297
752 .long 167908909
753 .long 1015572152
754 .long 2980802057
755 .long 1072132132
756 .long 378619896
757 .long 1015773303
758 .long 1447192521
759 .long 1072127979
760 .long 1462857171
761 .long 3162514521
762 .long 903334909
763 .long 1072123837
764 .long 1636462108
765 .long 1015039997
766 .long 1218806132
767 .long 1072119706
768 .long 1818613052
769 .long 3162548441
770 .long 2263535754
771 .long 1072115586
772 .long 752233586
773 .long 3162639008
774 .long 3907805044
775 .long 1072111477
776 .long 2257091225
777 .long 3161550407
778 .long 1727278727
779 .long 1072107380
780 .long 3562710623
781 .long 1011471940
782 .long 4182873220
783 .long 1072103293
784 .long 629542646
785 .long 3161996303
786 .long 2555984613
787 .long 1072099218
788 .long 2652555442
789 .long 3162552692
790 .long 1013258799
791 .long 1072095154
792 .long 1748797611
793 .long 3160129082
794 .long 3721688645
795 .long 1072091100
796 .long 3069276937
797 .long 1015839401
798 .long 1963711167
799 .long 1072087058
800 .long 1744767757
801 .long 3160574294
802 .long 4201977662
803 .long 1072083026
804 .long 748330254
805 .long 1013594357
806 .long 1719614413
807 .long 1072079006
808 .long 330458198
809 .long 3163282740
810 .long 2979960120
811 .long 1072074996
812 .long 2599109725
813 .long 1014498493
814 .long 3561793907
815 .long 1072070997
816 .long 1157054053
817 .long 1011890350
818 .long 3339203574
819 .long 1072067009
820 .long 1483497780
821 .long 3162408754
822 .long 2186617381
823 .long 1072063032
824 .long 2270764084
825 .long 3163272713
826 .long 4273770423
827 .long 1072059065
828 .long 3383180809
829 .long 3163218901
830 .long 885834528
831 .long 1072055110
832 .long 1973258547
833 .long 3162261564
834 .long 488188413
835 .long 1072051165
836 .long 3199821029
837 .long 1015564048
838 .long 2956612997
839 .long 1072047230
840 .long 2118169751
841 .long 3162735553
842 .long 3872257780
843 .long 1072043306
844 .long 1253592103
845 .long 1015958334
846 .long 3111574537
847 .long 1072039393
848 .long 2606161479
849 .long 3162759746
850 .long 551349105
851 .long 1072035491
852 .long 3821916050
853 .long 3162106589
854 .long 363667784
855 .long 1072031599
856 .long 813753950
857 .long 1015785209
858 .long 2425981843
859 .long 1072027717
860 .long 2830390851
861 .long 3163346599
862 .long 2321106615
863 .long 1072023846
864 .long 2171176610
865 .long 1009535771
866 .long 4222122499
867 .long 1072019985
868 .long 1277378074
869 .long 3163256737
870 .long 3712504873
871 .long 1072016135
872 .long 88491949
873 .long 1015427660
874 .long 671025100
875 .long 1072012296
876 .long 3832014351
877 .long 3163022030
878 .long 3566716925
879 .long 1072008466
880 .long 1536826856
881 .long 1014142433
882 .long 3689071823
883 .long 1072004647
884 .long 2321004996
885 .long 3162552716
886 .long 917841882
887 .long 1072000839
888 .long 18715565
889 .long 1015659308
890 .long 3723038930
891 .long 1071997040
892 .long 378465264
893 .long 3162569582
894 .long 3395129871
895 .long 1071993252
896 .long 4025345435
897 .long 3162335388
898 .long 4109806887
899 .long 1071989474
900 .long 422403966
901 .long 1014469229
902 .long 1453150082
903 .long 1071985707
904 .long 498154669
905 .long 3161488062
906 .long 3896463087
907 .long 1071981949
908 .long 1139797873
909 .long 3161233805
910 .long 2731501122
911 .long 1071978202
912 .long 1774031855
913 .long 3162470021
914 .long 2135241198
915 .long 1071974465
916 .long 1236747871
917 .long 1013589147
918 .long 1990012071
919 .long 1071970738
920 .long 3529070563
921 .long 3162813193
922 .long 2178460671
923 .long 1071967021
924 .long 777878098
925 .long 3162842493
926 .long 2583551245
927 .long 1071963314
928 .long 3161094195
929 .long 1015606491
930 .long 3088564500
931 .long 1071959617
932 .long 1762311517
933 .long 1015045673
934 .long 3577096743
935 .long 1071955930
936 .long 2951496418
937 .long 1013793687
938 .long 3933059031
939 .long 1071952253
940 .long 2133366768
941 .long 3161531832
942 .long 4040676318
943 .long 1071948586
944 .long 4090609238
945 .long 1015663458
946 .long 3784486610
947 .long 1071944929
948 .long 1581883040
949 .long 3161698953
950 .long 3049340112
951 .long 1071941282
952 .long 3062915824
953 .long 1013170595
954 .long 1720398391
955 .long 1071937645
956 .long 3980678963
957 .long 3163300080
958 .long 3978100823
959 .long 1071934017
960 .long 3513027190
961 .long 1015845963
962 .long 1118294578
963 .long 1071930400
964 .long 2197495694
965 .long 3159909401
966 .long 1617004845
967 .long 1071926792
968 .long 82804944
969 .long 1010342778
970 .long 1065662932
971 .long 1071923194
972 .long 2533670915
973 .long 1014530238
974 .long 3645941911
975 .long 1071919605
976 .long 3814685081
977 .long 3161573341
978 .long 654919306
979 .long 1071916027
980 .long 3232961757
981 .long 3163047469
982 .long 569847338
983 .long 1071912458
984 .long 472945272
985 .long 3159290729
986 .long 3278348324
987 .long 1071908898
988 .long 3069497416
989 .long 1014750712
990 .long 78413852
991 .long 1071905349
992 .long 4183226867
993 .long 3163017251
994 .long 3743175029
995 .long 1071901808
996 .long 2072812490
997 .long 3162175075
998 .long 1276261410
999 .long 1071898278
1000 .long 300981948
1001 .long 1014684169
1002 .long 1156440435
1003 .long 1071894757
1004 .long 2351451249
1005 .long 1013967056
1006 .long 3272845541
1007 .long 1071891245
1008 .long 928852419
1009 .long 3163488248
1010 .long 3219942644
1011 .long 1071887743
1012 .long 3798990616
1013 .long 1015368806
1014 .long 887463927
1015 .long 1071884251
1016 .long 3596744163
1017 .long 3160794166
1018 .long 460407023
1019 .long 1071880768
1020 .long 4237175092
1021 .long 3163138469
1022 .long 1829099622
1023 .long 1071877294
1024 .long 1016661181
1025 .long 3163461005
1026 .long 589198666
1027 .long 1071873830
1028 .long 2664346172
1029 .long 3163157962
1030 .long 926591435
1031 .long 1071870375
1032 .long 3208833762
1033 .long 3162913514
1034 .long 2732492859
1035 .long 1071866929
1036 .long 2691479646
1037 .long 3162255684
1038 .long 1603444721
1039 .long 1071863493
1040 .long 1548633640
1041 .long 3162201326
1042 .long 1726216749
1043 .long 1071860066
1044 .long 2466808228
1045 .long 3161676405
1046 .long 2992903935
1047 .long 1071856648
1048 .long 2218154406
1049 .long 1015228193
1050 .long 1000925746
1051 .long 1071853240
1052 .long 1018491672
1053 .long 3163309544
1054 .long 4232894513
1055 .long 1071849840
1056 .long 2383938684
1057 .long 1014668519
1058 .long 3991843581
1059 .long 1071846450
1060 .long 4092853457
1061 .long 1014585763
1062 .long 171030293
1063 .long 1071843070
1064 .long 3526460132
1065 .long 1014428778
1066 .long 1253935211
1067 .long 1071839698
1068 .long 1395382931
1069 .long 3159702613
1070 .long 2839424854
1071 .long 1071836335
1072 .long 1171596163
1073 .long 1013041679
1074 .long 526652809
1075 .long 1071832982
1076 .long 4223459736
1077 .long 1015879375
1078 .long 2799960843
1079 .long 1071829637
1080 .long 1423655381
1081 .long 1015022151
1082 .long 964107055
1083 .long 1071826302
1084 .long 2800439588
1085 .long 3162833221
1086 .long 3504003472
1087 .long 1071822975
1088 .long 3594001060
1089 .long 3157330652
1090 .long 1724976915
1091 .long 1071819658
1092 .long 420909223
1093 .long 3163117379
1094 .long 4112506593
1095 .long 1071816349
1096 .long 2947355221
1097 .long 1014371048
1098 .long 1972484976
1099 .long 1071813050
1100 .long 675290301
1101 .long 3161640050
1102 .long 3790955393
1103 .long 1071809759
1104 .long 2352942462
1105 .long 3163180090
1106 .long 874372905
1107 .long 1071806478
1108 .long 100263788
1109 .long 1015940732
1110 .long 1709341917
1111 .long 1071803205
1112 .long 2571168217
1113 .long 1014152499
1114 .long 1897844341
1115 .long 1071799941
1116 .long 1254300460
1117 .long 1015275938
1118 .long 1337108031
1119 .long 1071796686
1120 .long 3203724452
1121 .long 1014677845
1122 .long 4219606026
1123 .long 1071793439
1124 .long 2434574742
1125 .long 1014681548
1126 .long 1853186616
1127 .long 1071790202
1128 .long 3066496371
1129 .long 1015656574
1130 .long 2725843665
1131 .long 1071786973
1132 .long 1433917087
1133 .long 1014838523
1134 .long 2440944790
1135 .long 1071783753
1136 .long 2492769774
1137 .long 1014147454
1138 .long 897099801
1139 .long 1071780542
1140 .long 754756297
1141 .long 1015241005
1142 .long 2288159958
1143 .long 1071777339
1144 .long 2169144469
1145 .long 1014876021
1146 .long 2218315341
1147 .long 1071774145
1148 .long 2694295388
1149 .long 3163288868
1150 .long 586995997
1151 .long 1071770960
1152 .long 41662348
1153 .long 3162627992
1154 .long 1588871207
1155 .long 1071767783
1156 .long 143439582
1157 .long 3162963416
1158 .long 828946858
1159 .long 1071764615
1160 .long 10642492
1161 .long 1015939438
1162 .long 2502433899
1163 .long 1071761455
1164 .long 2148595913
1165 .long 1015023991
1166 .long 2214878420
1167 .long 1071758304
1168 .long 892270087
1169 .long 3163116422
1170 .long 4162030108
1171 .long 1071755161
1172 .long 2763428480
1173 .long 1015529349
1174 .long 3949972341
1175 .long 1071752027
1176 .long 2068408548
1177 .long 1014913868
1178 .long 1480023343
1179 .long 1071748902
1180 .long 2247196168
1181 .long 1015327453
1182 .long 948735466
1183 .long 1071745785
1184 .long 3516338028
1185 .long 3162574883
1186 .long 2257959872
1187 .long 1071742676
1188 .long 3802946148
1189 .long 1012964927
1190 .long 1014845819
1191 .long 1071739576
1192 .long 3117910646
1193 .long 3161559105
1194 .long 1416741826
1195 .long 1071736484
1196 .long 2196380210
1197 .long 1011413563
1198 .long 3366293073
1199 .long 1071733400
1200 .long 3119426314
1201 .long 1014120554
1202 .long 2471440686
1203 .long 1071730325
1204 .long 968836267
1205 .long 3162214888
1206 .long 2930322912
1207 .long 1071727258
1208 .long 2599499422
1209 .long 3162714047
1210 .long 351405227
1211 .long 1071724200
1212 .long 3125337328
1213 .long 3159822479
1214 .long 3228316108
1215 .long 1071721149
1216 .long 3010241991
1217 .long 3158422804
1218 .long 2875075254
1219 .long 1071718107
1220 .long 4144233330
1221 .long 3163333716
1222 .long 3490863953
1223 .long 1071715073
1224 .long 960797498
1225 .long 3162948880
1226 .long 685187902
1227 .long 1071712048
1228 .long 378731989
1229 .long 1014843115
1230 .long 2952712987
1231 .long 1071709030
1232 .long 3293494651
1233 .long 3160120301
1234 .long 1608493509
1235 .long 1071706021
1236 .long 3159622171
1237 .long 3162807737
1238 .long 852742562
1239 .long 1071703020
1240 .long 667253586
1241 .long 1009793559
1242 .long 590962156
1243 .long 1071700027
1244 .long 3829346666
1245 .long 3163275597
1246 .long 728909815
1247 .long 1071697042
1248 .long 383930225
1249 .long 1015029468
1250 .long 1172597893
1251 .long 1071694065
1252 .long 114433263
1253 .long 1015347593
1254 .long 1828292879
1255 .long 1071691096
1256 .long 1255956747
1257 .long 1015588398
1258 .long 2602514713
1259 .long 1071688135
1260 .long 2268929336
1261 .long 1014354284
1262 .long 3402036099
1263 .long 1071685182
1264 .long 405889334
1265 .long 1015105656
1266 .long 4133881824
1267 .long 1071682237
1268 .long 2148155345
1269 .long 3162931299
1270 .long 410360776
1271 .long 1071679301
1272 .long 1269990655
1273 .long 1011975870
1274 .long 728934454
1275 .long 1071676372
1276 .long 1413842688
1277 .long 1014178612
1278 .long 702412510
1279 .long 1071673451
1280 .long 3803266087
1281 .long 3162280415
1282 .long 238821257
1283 .long 1071670538
1284 .long 1469694871
1285 .long 3162884987
1286 .long 3541402996
1287 .long 1071667632
1288 .long 2759177317
1289 .long 1014854626
1290 .long 1928746161
1291 .long 1071664735
1292 .long 983617676
1293 .long 1014285177
1294 .long 3899555717
1295 .long 1071661845
1296 .long 427280750
1297 .long 3162546972
1298 .long 772914124
1299 .long 1071658964
1300 .long 4004372762
1301 .long 1012230161
1302 .long 1048019041
1303 .long 1071656090
1304 .long 1398474845
1305 .long 3160510595
1306 .long 339411585
1307 .long 1071653224
1308 .long 264588982
1309 .long 3161636657
1310 .long 2851812149
1311 .long 1071650365
1312 .long 2595802551
1313 .long 1015767337
1314 .long 4200250559
1315 .long 1071647514
1316 .long 2808127345
1317 .long 3161781938
1318 .type T2_neg_f,@object
1319 .size T2_neg_f,4096
1320 .space 512, 0x00 # pad
1321 .align 16
1322MASK3:
1323 .long 0
1324 .long 4294967280
1325 .long 0
1326 .long 4294967280
1327 .type MASK3,@object
1328 .size MASK3,16
1329 .align 16
1330RMASK:
1331 .long 4294705152
1332 .long 4294967295
1333 .long 4294705152
1334 .long 4294967295
1335 .type RMASK,@object
1336 .size RMASK,16
1337 .align 16
1338pv:
1339 .long 236289503
1340 .long 1064135997
1341 .long 463583772
1342 .long 3215696314
1343 .long 1441186365
1344 .long 3212977891
1345 .long 286331153
1346 .long 1069617425
1347 .long 2284589306
1348 .long 1066820852
1349 .long 1431655765
1350 .long 3218429269
1351 .type pv,@object
1352 .size pv,48
1353 .align 4
1354HALFMASK:
1355 .long 4160749568
1356 .long 2147483647
1357 .type HALFMASK,@object
1358 .size HALFMASK,8
1359 .align 4
1360ONEMASK:
1361 .long 0
1362 .long 1072693248
1363 .type ONEMASK,@object
1364 .size ONEMASK,8
1365 .align 4
1366TWOMASK:
1367 .long 0
1368 .long 1073741824
1369 .type TWOMASK,@object
1370 .size TWOMASK,8
1371 .data
1372 .section .note.GNU-stack, ""
1373// -- Begin DWARF2 SEGMENT .eh_frame
1374 .section .eh_frame,"a",@progbits
1375.eh_frame_seg:
1376 .align 1
1377 .4byte 0x00000014
1378 .8byte 0x00527a0100000000
1379 .8byte 0x08070c1b01107801
1380 .4byte 0x00000190
1381 .4byte 0x0000001c
1382 .4byte 0x0000001c
1383 .4byte ..___tag_value_tanh.1-.
1384 .4byte ..___tag_value_tanh.5-..___tag_value_tanh.1
1385 .2byte 0x0400
1386 .4byte ..___tag_value_tanh.3-..___tag_value_tanh.1
1387 .2byte 0x100e
1388 .byte 0x04
1389 .4byte ..___tag_value_tanh.4-..___tag_value_tanh.3
1390 .2byte 0x080e
1391 .byte 0x00
1392# End