You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1393 lines
28 KiB
1393 lines
28 KiB
/*
|
|
Copyright (c) 2014, Intel Corporation
|
|
All rights reserved.
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
modification, are permitted provided that the following conditions are met:
|
|
|
|
* Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
|
|
* Redistributions in binary form must reproduce the above copyright notice,
|
|
* this list of conditions and the following disclaimer in the documentation
|
|
* and/or other materials provided with the distribution.
|
|
|
|
* Neither the name of Intel Corporation nor the names of its contributors
|
|
* may be used to endorse or promote products derived from this software
|
|
* without specific prior written permission.
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
/******************************************************************************/
|
|
// ALGORITHM DESCRIPTION
|
|
// ---------------------
|
|
//
|
|
// tanh(x)=(exp(x)-exp(-x))/(exp(x)+exp(-x))=(1-exp(-2*x))/(1+exp(-2*x))
|
|
//
|
|
// Let |x|=xH+xL (upper 26 bits, lower 27 bits)
|
|
// log2(e) rounded to 26 bits (high part) plus a double precision low part is
|
|
// L2EH+L2EL (upper 26, lower 53 bits)
|
|
//
|
|
// Let xH*L2EH=k+f+r`, where (k+f)*2^8*2=int(xH*L2EH*2^9),
|
|
// f=0.b1 b2 ... b8, k integer
|
|
// 2^{-f} is approximated as Tn[f]+Dn[f]
|
|
// Tn stores the high 53 bits, Dn stores (2^{-f}-Tn[f]) rounded to double precision
|
|
//
|
|
// r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-9}+2^{-14},
|
|
// for |x| in [23/64,3*2^7)
|
|
// e^{-2*|x|}=2^{-k-f}*2^{-r} ~ 2^{-k}*(Tn+Dn)*(1+p)=(T0+D0)*(1+p)
|
|
//
|
|
// For |x| in [2^{-4},2^5):
|
|
// 2^{-r}-1 ~ p=c1*r+c2*r^2+..+c5*r^5
|
|
// Let R=1/(1+T0+p*T0), truncated to 35 significant bits
|
|
// R=1/(1+T0+D0+p*(T0+D0))*(1+eps), |eps|<2^{-33}
|
|
// 1+T0+D0+p*(T0+D0)=KH+KL, where
|
|
// KH=(1+T0+c1*r*T0)_high (leading 17 bits)
|
|
// KL=T0_low+D0+(c1*r*T0)_low+c1*r*D0+(c2*r^2+..c5*r^5)*T0
|
|
// eps ~ (R*KH-1)+R*KL
|
|
// 1/(1+T0+D0+p*(T0+D0)) ~ R-R*eps
|
|
// The result is approximated as (1-T0-D0-(T0+D0)*p)*(R-R*eps)
|
|
// 1-T0-D0-(T0+D0)*p=-((KH-2)+KL)
|
|
// The result is formed as
|
|
// (KH-2)*R+(-(KH-2)*R*eps+(KL*R-KL*R*eps)), with the correct sign
|
|
// set at the end
|
|
//
|
|
// For |x| in [2^{-64},2^{-4}):
|
|
// A Taylor series expansion is used (x+p3*x^3+..+p13*x^{13})
|
|
//
|
|
// For |x|<2^{-64}: x is returned
|
|
//
|
|
// For |x|>=2^32: return +/-1
|
|
//
|
|
// Special cases:
|
|
// tanh(NaN) = quiet NaN, and raise invalid exception
|
|
// tanh(INF) = that INF
|
|
// tanh(+/-0) = +/-0
|
|
//
|
|
/******************************************************************************/
|
|
|
|
#include <private/bionic_asm.h>
|
|
# -- Begin tanh
|
|
ENTRY(tanh)
|
|
# parameter 1: %xmm0
|
|
..B1.1:
|
|
..___tag_value_tanh.1:
|
|
pushq %rsi
|
|
..___tag_value_tanh.3:
|
|
..B1.2:
|
|
movsd HALFMASK(%rip), %xmm3
|
|
xorpd %xmm4, %xmm4
|
|
movsd L2E(%rip), %xmm1
|
|
movsd 8+L2E(%rip), %xmm2
|
|
movl $32768, %eax
|
|
pinsrw $3, %eax, %xmm4
|
|
movsd Shifter(%rip), %xmm6
|
|
pextrw $3, %xmm0, %ecx
|
|
andpd %xmm0, %xmm3
|
|
andnpd %xmm0, %xmm4
|
|
pshufd $68, %xmm4, %xmm5
|
|
movl $32768, %edx
|
|
andl %ecx, %edx
|
|
andl $32767, %ecx
|
|
subl $16304, %ecx
|
|
cmpl $144, %ecx
|
|
jae .L_2TAG_PACKET_0.0.1
|
|
subsd %xmm3, %xmm4
|
|
mulsd %xmm1, %xmm3
|
|
mulsd %xmm5, %xmm2
|
|
cvtsd2si %xmm3, %eax
|
|
movq %xmm3, %xmm7
|
|
addsd %xmm6, %xmm3
|
|
mulsd %xmm4, %xmm1
|
|
movsd ONEMASK(%rip), %xmm4
|
|
subsd %xmm6, %xmm3
|
|
xorpd %xmm0, %xmm0
|
|
addsd %xmm1, %xmm2
|
|
subsd %xmm3, %xmm7
|
|
movapd cv(%rip), %xmm6
|
|
addsd %xmm7, %xmm2
|
|
movl $255, %ecx
|
|
andl %eax, %ecx
|
|
addl %ecx, %ecx
|
|
lea T2_neg_f(%rip), %r8
|
|
movapd (%r8,%rcx,8), %xmm5
|
|
shrl $4, %eax
|
|
andl $65520, %eax
|
|
subl $16368, %eax
|
|
negl %eax
|
|
pinsrw $3, %eax, %xmm0
|
|
movapd 16+cv(%rip), %xmm1
|
|
pshufd $68, %xmm0, %xmm0
|
|
mulpd %xmm5, %xmm0
|
|
movsd 32+cv(%rip), %xmm7
|
|
pshufd $68, %xmm2, %xmm2
|
|
movq %xmm4, %xmm5
|
|
addsd %xmm0, %xmm4
|
|
mulpd %xmm2, %xmm6
|
|
mulsd %xmm2, %xmm7
|
|
mulpd %xmm2, %xmm2
|
|
addpd %xmm6, %xmm1
|
|
mulsd %xmm2, %xmm2
|
|
movsd ONEMASK(%rip), %xmm3
|
|
mulpd %xmm2, %xmm1
|
|
pshufd $78, %xmm1, %xmm6
|
|
addsd %xmm6, %xmm1
|
|
movq %xmm1, %xmm6
|
|
addsd %xmm7, %xmm1
|
|
mulsd %xmm0, %xmm1
|
|
addsd %xmm4, %xmm1
|
|
andpd MASK3(%rip), %xmm4
|
|
divsd %xmm1, %xmm5
|
|
subsd %xmm4, %xmm3
|
|
pshufd $238, %xmm0, %xmm1
|
|
addsd %xmm0, %xmm3
|
|
movq %xmm4, %xmm2
|
|
addsd %xmm1, %xmm3
|
|
mulsd %xmm7, %xmm1
|
|
mulsd %xmm0, %xmm7
|
|
addsd %xmm1, %xmm3
|
|
addsd %xmm7, %xmm4
|
|
movsd RMASK(%rip), %xmm1
|
|
mulsd %xmm0, %xmm6
|
|
andpd MASK3(%rip), %xmm4
|
|
addsd %xmm6, %xmm3
|
|
movq %xmm4, %xmm6
|
|
subsd %xmm4, %xmm2
|
|
addsd %xmm7, %xmm2
|
|
movsd ONEMASK(%rip), %xmm7
|
|
andpd %xmm1, %xmm5
|
|
addsd %xmm2, %xmm3
|
|
mulsd %xmm5, %xmm4
|
|
xorpd %xmm2, %xmm2
|
|
mulsd %xmm5, %xmm3
|
|
subsd TWOMASK(%rip), %xmm6
|
|
subsd %xmm7, %xmm4
|
|
xorl $32768, %edx
|
|
pinsrw $3, %edx, %xmm2
|
|
addsd %xmm3, %xmm4
|
|
mulsd %xmm5, %xmm6
|
|
movq %xmm3, %xmm1
|
|
mulsd %xmm4, %xmm3
|
|
movq %xmm6, %xmm0
|
|
mulsd %xmm4, %xmm6
|
|
subsd %xmm3, %xmm1
|
|
subsd %xmm6, %xmm1
|
|
addsd %xmm1, %xmm0
|
|
xorpd %xmm2, %xmm0
|
|
jmp ..B1.4
|
|
.L_2TAG_PACKET_0.0.1:
|
|
addl $960, %ecx
|
|
cmpl $1104, %ecx
|
|
jae .L_2TAG_PACKET_1.0.1
|
|
movapd pv(%rip), %xmm2
|
|
pshufd $68, %xmm0, %xmm1
|
|
movapd 16+pv(%rip), %xmm3
|
|
mulpd %xmm1, %xmm1
|
|
movapd 32+pv(%rip), %xmm4
|
|
mulpd %xmm1, %xmm2
|
|
pshufd $68, %xmm1, %xmm5
|
|
addpd %xmm3, %xmm2
|
|
mulsd %xmm5, %xmm5
|
|
mulpd %xmm1, %xmm2
|
|
mulsd %xmm5, %xmm5
|
|
addpd %xmm4, %xmm2
|
|
mulpd %xmm5, %xmm2
|
|
pshufd $238, %xmm2, %xmm5
|
|
addsd %xmm5, %xmm2
|
|
mulsd %xmm0, %xmm2
|
|
addsd %xmm2, %xmm0
|
|
jmp ..B1.4
|
|
.L_2TAG_PACKET_1.0.1:
|
|
addl $15344, %ecx
|
|
cmpl $16448, %ecx
|
|
jae .L_2TAG_PACKET_2.0.1
|
|
cmpl $16, %ecx
|
|
jb .L_2TAG_PACKET_3.0.1
|
|
xorpd %xmm2, %xmm2
|
|
movl $17392, %eax
|
|
pinsrw $3, %eax, %xmm2
|
|
mulsd %xmm0, %xmm2
|
|
addsd %xmm0, %xmm2
|
|
jmp ..B1.4
|
|
.L_2TAG_PACKET_3.0.1:
|
|
movq %xmm0, %xmm2
|
|
mulsd %xmm2, %xmm2
|
|
jmp ..B1.4
|
|
.L_2TAG_PACKET_2.0.1:
|
|
cmpl $32752, %ecx
|
|
jae .L_2TAG_PACKET_4.0.1
|
|
xorpd %xmm2, %xmm2
|
|
movl $15344, %ecx
|
|
pinsrw $3, %ecx, %xmm2
|
|
movq %xmm2, %xmm3
|
|
mulsd %xmm2, %xmm2
|
|
addsd %xmm3, %xmm2
|
|
.L_2TAG_PACKET_5.0.1:
|
|
xorpd %xmm0, %xmm0
|
|
orl $16368, %edx
|
|
pinsrw $3, %edx, %xmm0
|
|
jmp ..B1.4
|
|
.L_2TAG_PACKET_4.0.1:
|
|
movq %xmm0, %xmm2
|
|
movd %xmm0, %eax
|
|
psrlq $20, %xmm2
|
|
movd %xmm2, %ecx
|
|
orl %eax, %ecx
|
|
cmpl $0, %ecx
|
|
je .L_2TAG_PACKET_5.0.1
|
|
addsd %xmm0, %xmm0
|
|
movq %xmm0, (%rsp)
|
|
.L_2TAG_PACKET_6.0.1:
|
|
..B1.4:
|
|
popq %rcx
|
|
..___tag_value_tanh.4:
|
|
ret
|
|
..___tag_value_tanh.5:
|
|
END(tanh)
|
|
# -- End tanh
|
|
.section .rodata, "a"
|
|
.align 16
|
|
.align 16
|
|
L2E:
|
|
.long 1610612736
|
|
.long 1082594631
|
|
.long 4166901572
|
|
.long 1055174155
|
|
.type L2E,@object
|
|
.size L2E,16
|
|
.align 16
|
|
Shifter:
|
|
.long 0
|
|
.long 1127743488
|
|
.long 0
|
|
.long 3275227136
|
|
.type Shifter,@object
|
|
.size Shifter,16
|
|
.align 16
|
|
cv:
|
|
.long 3884607281
|
|
.long 3168131199
|
|
.long 3607404735
|
|
.long 3190582024
|
|
.long 1874480759
|
|
.long 1032041131
|
|
.long 4286760334
|
|
.long 1053736893
|
|
.long 4277811695
|
|
.long 3211144770
|
|
.long 0
|
|
.long 0
|
|
.type cv,@object
|
|
.size cv,48
|
|
.align 16
|
|
T2_neg_f:
|
|
.long 0
|
|
.long 1072693248
|
|
.long 0
|
|
.long 0
|
|
.long 1797923801
|
|
.long 1072687577
|
|
.long 1950547427
|
|
.long 1013229059
|
|
.long 730821105
|
|
.long 1072681922
|
|
.long 2523232743
|
|
.long 1012067188
|
|
.long 915592468
|
|
.long 1072676282
|
|
.long 352947894
|
|
.long 3161024371
|
|
.long 2174652632
|
|
.long 1072670657
|
|
.long 4087714590
|
|
.long 1014450259
|
|
.long 35929225
|
|
.long 1072665048
|
|
.long 2809788041
|
|
.long 3159436968
|
|
.long 2912730644
|
|
.long 1072659453
|
|
.long 3490067722
|
|
.long 3163405074
|
|
.long 2038973688
|
|
.long 1072653874
|
|
.long 892941374
|
|
.long 1016046459
|
|
.long 1533953344
|
|
.long 1072648310
|
|
.long 769171851
|
|
.long 1015665633
|
|
.long 1222472308
|
|
.long 1072642761
|
|
.long 1054357470
|
|
.long 3161021018
|
|
.long 929806999
|
|
.long 1072637227
|
|
.long 3205336643
|
|
.long 1015259557
|
|
.long 481706282
|
|
.long 1072631708
|
|
.long 1696079173
|
|
.long 3162710528
|
|
.long 3999357479
|
|
.long 1072626203
|
|
.long 2258941616
|
|
.long 1015924724
|
|
.long 2719515920
|
|
.long 1072620714
|
|
.long 2760332941
|
|
.long 1015137933
|
|
.long 764307441
|
|
.long 1072615240
|
|
.long 3021057420
|
|
.long 3163329523
|
|
.long 2256325230
|
|
.long 1072609780
|
|
.long 580117746
|
|
.long 1015317295
|
|
.long 2728693978
|
|
.long 1072604335
|
|
.long 396109971
|
|
.long 3163462691
|
|
.long 2009970496
|
|
.long 1072598905
|
|
.long 2159039665
|
|
.long 3162572948
|
|
.long 4224142467
|
|
.long 1072593489
|
|
.long 3389820386
|
|
.long 1015207202
|
|
.long 610758006
|
|
.long 1072588089
|
|
.long 1965209397
|
|
.long 3161866232
|
|
.long 3884662774
|
|
.long 1072582702
|
|
.long 2158611599
|
|
.long 1014210185
|
|
.long 991358482
|
|
.long 1072577331
|
|
.long 838715019
|
|
.long 3163157668
|
|
.long 351641897
|
|
.long 1072571974
|
|
.long 2172261526
|
|
.long 3163010599
|
|
.long 1796832535
|
|
.long 1072566631
|
|
.long 3176955716
|
|
.long 3160585513
|
|
.long 863738719
|
|
.long 1072561303
|
|
.long 1326992220
|
|
.long 3162613197
|
|
.long 1679558232
|
|
.long 1072555989
|
|
.long 2390342287
|
|
.long 3163333970
|
|
.long 4076975200
|
|
.long 1072550689
|
|
.long 2029000899
|
|
.long 1015208535
|
|
.long 3594158869
|
|
.long 1072545404
|
|
.long 2456521700
|
|
.long 3163256561
|
|
.long 64696965
|
|
.long 1072540134
|
|
.long 1768797490
|
|
.long 1015816960
|
|
.long 1912561781
|
|
.long 1072534877
|
|
.long 3147495102
|
|
.long 1015678253
|
|
.long 382305176
|
|
.long 1072529635
|
|
.long 2347622376
|
|
.long 3162578625
|
|
.long 3898795731
|
|
.long 1072524406
|
|
.long 1249994144
|
|
.long 1011869818
|
|
.long 3707479175
|
|
.long 1072519192
|
|
.long 3613079303
|
|
.long 1014164738
|
|
.long 3939148246
|
|
.long 1072513992
|
|
.long 3210352148
|
|
.long 1015274323
|
|
.long 135105010
|
|
.long 1072508807
|
|
.long 1906148728
|
|
.long 3163375739
|
|
.long 721996136
|
|
.long 1072503635
|
|
.long 563754734
|
|
.long 1015371318
|
|
.long 1242007932
|
|
.long 1072498477
|
|
.long 1132034716
|
|
.long 3163339831
|
|
.long 1532734324
|
|
.long 1072493333
|
|
.long 3094216535
|
|
.long 3163162857
|
|
.long 1432208378
|
|
.long 1072488203
|
|
.long 1401068914
|
|
.long 3162363963
|
|
.long 778901109
|
|
.long 1072483087
|
|
.long 2248183955
|
|
.long 3161268751
|
|
.long 3706687593
|
|
.long 1072477984
|
|
.long 3521726940
|
|
.long 1013253067
|
|
.long 1464976603
|
|
.long 1072472896
|
|
.long 3507292405
|
|
.long 3161977534
|
|
.long 2483480501
|
|
.long 1072467821
|
|
.long 1216371780
|
|
.long 1013034172
|
|
.long 2307442995
|
|
.long 1072462760
|
|
.long 3190117721
|
|
.long 3162404539
|
|
.long 777507147
|
|
.long 1072457713
|
|
.long 4282924205
|
|
.long 1015187533
|
|
.long 2029714210
|
|
.long 1072452679
|
|
.long 613660079
|
|
.long 1015099143
|
|
.long 1610600570
|
|
.long 1072447659
|
|
.long 3766732298
|
|
.long 1015760183
|
|
.long 3657065772
|
|
.long 1072442652
|
|
.long 399025623
|
|
.long 3162957078
|
|
.long 3716502172
|
|
.long 1072437659
|
|
.long 2303740125
|
|
.long 1014042725
|
|
.long 1631695677
|
|
.long 1072432680
|
|
.long 2717633076
|
|
.long 3162344026
|
|
.long 1540824585
|
|
.long 1072427714
|
|
.long 1064017011
|
|
.long 3163487690
|
|
.long 3287523847
|
|
.long 1072422761
|
|
.long 1625971539
|
|
.long 3157009955
|
|
.long 2420883922
|
|
.long 1072417822
|
|
.long 2049810052
|
|
.long 1014119888
|
|
.long 3080351519
|
|
.long 1072412896
|
|
.long 3379126788
|
|
.long 3157218001
|
|
.long 815859274
|
|
.long 1072407984
|
|
.long 240396590
|
|
.long 3163487443
|
|
.long 4062661092
|
|
.long 1072403084
|
|
.long 1422616006
|
|
.long 3163255318
|
|
.long 4076559943
|
|
.long 1072398198
|
|
.long 2119478331
|
|
.long 3160758351
|
|
.long 703710506
|
|
.long 1072393326
|
|
.long 1384660846
|
|
.long 1015195891
|
|
.long 2380618042
|
|
.long 1072388466
|
|
.long 3149557219
|
|
.long 3163320799
|
|
.long 364333489
|
|
.long 1072383620
|
|
.long 3923737744
|
|
.long 3161421373
|
|
.long 3092190715
|
|
.long 1072378786
|
|
.long 814012168
|
|
.long 3159523422
|
|
.long 1822067026
|
|
.long 1072373966
|
|
.long 1241994956
|
|
.long 1015340290
|
|
.long 697153126
|
|
.long 1072369159
|
|
.long 1283515429
|
|
.long 3163283189
|
|
.long 3861050111
|
|
.long 1072364364
|
|
.long 254893773
|
|
.long 3162813180
|
|
.long 2572866477
|
|
.long 1072359583
|
|
.long 878562433
|
|
.long 1015521741
|
|
.long 977020788
|
|
.long 1072354815
|
|
.long 3065100517
|
|
.long 1015541563
|
|
.long 3218338682
|
|
.long 1072350059
|
|
.long 3404164304
|
|
.long 3162477108
|
|
.long 557149882
|
|
.long 1072345317
|
|
.long 3672720709
|
|
.long 1014537265
|
|
.long 1434058175
|
|
.long 1072340587
|
|
.long 251133233
|
|
.long 1015085769
|
|
.long 1405169241
|
|
.long 1072335870
|
|
.long 2998539689
|
|
.long 3162830951
|
|
.long 321958744
|
|
.long 1072331166
|
|
.long 3401933767
|
|
.long 1015794558
|
|
.long 2331271250
|
|
.long 1072326474
|
|
.long 812057446
|
|
.long 1012207446
|
|
.long 2990417245
|
|
.long 1072321795
|
|
.long 3683467745
|
|
.long 3163369326
|
|
.long 2152073944
|
|
.long 1072317129
|
|
.long 1486860576
|
|
.long 3163203456
|
|
.long 3964284211
|
|
.long 1072312475
|
|
.long 2111583915
|
|
.long 1015427164
|
|
.long 3985553595
|
|
.long 1072307834
|
|
.long 4002146062
|
|
.long 1015834136
|
|
.long 2069751141
|
|
.long 1072303206
|
|
.long 1562170675
|
|
.long 3162724681
|
|
.long 2366108318
|
|
.long 1072298590
|
|
.long 2867985102
|
|
.long 3161762254
|
|
.long 434316067
|
|
.long 1072293987
|
|
.long 2028358766
|
|
.long 1013458122
|
|
.long 424392917
|
|
.long 1072289396
|
|
.long 2749202995
|
|
.long 3162838718
|
|
.long 2191782032
|
|
.long 1072284817
|
|
.long 2960257726
|
|
.long 1013742662
|
|
.long 1297350157
|
|
.long 1072280251
|
|
.long 1308022040
|
|
.long 3163412558
|
|
.long 1892288442
|
|
.long 1072275697
|
|
.long 2446255666
|
|
.long 3162600381
|
|
.long 3833209506
|
|
.long 1072271155
|
|
.long 2722920684
|
|
.long 1013754842
|
|
.long 2682146384
|
|
.long 1072266626
|
|
.long 2082178513
|
|
.long 3163363419
|
|
.long 2591453363
|
|
.long 1072262109
|
|
.long 2132396182
|
|
.long 3159074198
|
|
.long 3418903055
|
|
.long 1072257604
|
|
.long 2527457337
|
|
.long 3160820604
|
|
.long 727685349
|
|
.long 1072253112
|
|
.long 2038246809
|
|
.long 3162358742
|
|
.long 2966275557
|
|
.long 1072248631
|
|
.long 2176155324
|
|
.long 3159842759
|
|
.long 1403662306
|
|
.long 1072244163
|
|
.long 2788809599
|
|
.long 3161671007
|
|
.long 194117574
|
|
.long 1072239707
|
|
.long 777528612
|
|
.long 3163412089
|
|
.long 3492293770
|
|
.long 1072235262
|
|
.long 2248032210
|
|
.long 1015386826
|
|
.long 2568320822
|
|
.long 1072230830
|
|
.long 2732824428
|
|
.long 1014352915
|
|
.long 1577608921
|
|
.long 1072226410
|
|
.long 1875489510
|
|
.long 3162968394
|
|
.long 380978316
|
|
.long 1072222002
|
|
.long 854188970
|
|
.long 3160462686
|
|
.long 3134592888
|
|
.long 1072217605
|
|
.long 4232266862
|
|
.long 1015991134
|
|
.long 1110089947
|
|
.long 1072213221
|
|
.long 1451641639
|
|
.long 1015474673
|
|
.long 2759350287
|
|
.long 1072208848
|
|
.long 1148526634
|
|
.long 1015894933
|
|
.long 3649726105
|
|
.long 1072204487
|
|
.long 4085036346
|
|
.long 1015649474
|
|
.long 3643909174
|
|
.long 1072200138
|
|
.long 3537586109
|
|
.long 1014354647
|
|
.long 2604962541
|
|
.long 1072195801
|
|
.long 2614425274
|
|
.long 3163539192
|
|
.long 396319521
|
|
.long 1072191476
|
|
.long 4172420816
|
|
.long 3159074632
|
|
.long 1176749997
|
|
.long 1072187162
|
|
.long 2738998779
|
|
.long 3162035844
|
|
.long 515457527
|
|
.long 1072182860
|
|
.long 836709333
|
|
.long 1015651226
|
|
.long 2571947539
|
|
.long 1072178569
|
|
.long 3558159064
|
|
.long 3163376669
|
|
.long 2916157145
|
|
.long 1072174290
|
|
.long 219487565
|
|
.long 1015309367
|
|
.long 1413356050
|
|
.long 1072170023
|
|
.long 1651349291
|
|
.long 3162668166
|
|
.long 2224145553
|
|
.long 1072165767
|
|
.long 3482522030
|
|
.long 3161489169
|
|
.long 919555682
|
|
.long 1072161523
|
|
.long 3121969534
|
|
.long 1012948226
|
|
.long 1660913392
|
|
.long 1072157290
|
|
.long 4218599604
|
|
.long 1015135707
|
|
.long 19972402
|
|
.long 1072153069
|
|
.long 3507899862
|
|
.long 1016009292
|
|
.long 158781403
|
|
.long 1072148859
|
|
.long 2221464712
|
|
.long 3163286453
|
|
.long 1944781191
|
|
.long 1072144660
|
|
.long 3993278767
|
|
.long 3161724279
|
|
.long 950803702
|
|
.long 1072140473
|
|
.long 1655364926
|
|
.long 1015237032
|
|
.long 1339972927
|
|
.long 1072136297
|
|
.long 167908909
|
|
.long 1015572152
|
|
.long 2980802057
|
|
.long 1072132132
|
|
.long 378619896
|
|
.long 1015773303
|
|
.long 1447192521
|
|
.long 1072127979
|
|
.long 1462857171
|
|
.long 3162514521
|
|
.long 903334909
|
|
.long 1072123837
|
|
.long 1636462108
|
|
.long 1015039997
|
|
.long 1218806132
|
|
.long 1072119706
|
|
.long 1818613052
|
|
.long 3162548441
|
|
.long 2263535754
|
|
.long 1072115586
|
|
.long 752233586
|
|
.long 3162639008
|
|
.long 3907805044
|
|
.long 1072111477
|
|
.long 2257091225
|
|
.long 3161550407
|
|
.long 1727278727
|
|
.long 1072107380
|
|
.long 3562710623
|
|
.long 1011471940
|
|
.long 4182873220
|
|
.long 1072103293
|
|
.long 629542646
|
|
.long 3161996303
|
|
.long 2555984613
|
|
.long 1072099218
|
|
.long 2652555442
|
|
.long 3162552692
|
|
.long 1013258799
|
|
.long 1072095154
|
|
.long 1748797611
|
|
.long 3160129082
|
|
.long 3721688645
|
|
.long 1072091100
|
|
.long 3069276937
|
|
.long 1015839401
|
|
.long 1963711167
|
|
.long 1072087058
|
|
.long 1744767757
|
|
.long 3160574294
|
|
.long 4201977662
|
|
.long 1072083026
|
|
.long 748330254
|
|
.long 1013594357
|
|
.long 1719614413
|
|
.long 1072079006
|
|
.long 330458198
|
|
.long 3163282740
|
|
.long 2979960120
|
|
.long 1072074996
|
|
.long 2599109725
|
|
.long 1014498493
|
|
.long 3561793907
|
|
.long 1072070997
|
|
.long 1157054053
|
|
.long 1011890350
|
|
.long 3339203574
|
|
.long 1072067009
|
|
.long 1483497780
|
|
.long 3162408754
|
|
.long 2186617381
|
|
.long 1072063032
|
|
.long 2270764084
|
|
.long 3163272713
|
|
.long 4273770423
|
|
.long 1072059065
|
|
.long 3383180809
|
|
.long 3163218901
|
|
.long 885834528
|
|
.long 1072055110
|
|
.long 1973258547
|
|
.long 3162261564
|
|
.long 488188413
|
|
.long 1072051165
|
|
.long 3199821029
|
|
.long 1015564048
|
|
.long 2956612997
|
|
.long 1072047230
|
|
.long 2118169751
|
|
.long 3162735553
|
|
.long 3872257780
|
|
.long 1072043306
|
|
.long 1253592103
|
|
.long 1015958334
|
|
.long 3111574537
|
|
.long 1072039393
|
|
.long 2606161479
|
|
.long 3162759746
|
|
.long 551349105
|
|
.long 1072035491
|
|
.long 3821916050
|
|
.long 3162106589
|
|
.long 363667784
|
|
.long 1072031599
|
|
.long 813753950
|
|
.long 1015785209
|
|
.long 2425981843
|
|
.long 1072027717
|
|
.long 2830390851
|
|
.long 3163346599
|
|
.long 2321106615
|
|
.long 1072023846
|
|
.long 2171176610
|
|
.long 1009535771
|
|
.long 4222122499
|
|
.long 1072019985
|
|
.long 1277378074
|
|
.long 3163256737
|
|
.long 3712504873
|
|
.long 1072016135
|
|
.long 88491949
|
|
.long 1015427660
|
|
.long 671025100
|
|
.long 1072012296
|
|
.long 3832014351
|
|
.long 3163022030
|
|
.long 3566716925
|
|
.long 1072008466
|
|
.long 1536826856
|
|
.long 1014142433
|
|
.long 3689071823
|
|
.long 1072004647
|
|
.long 2321004996
|
|
.long 3162552716
|
|
.long 917841882
|
|
.long 1072000839
|
|
.long 18715565
|
|
.long 1015659308
|
|
.long 3723038930
|
|
.long 1071997040
|
|
.long 378465264
|
|
.long 3162569582
|
|
.long 3395129871
|
|
.long 1071993252
|
|
.long 4025345435
|
|
.long 3162335388
|
|
.long 4109806887
|
|
.long 1071989474
|
|
.long 422403966
|
|
.long 1014469229
|
|
.long 1453150082
|
|
.long 1071985707
|
|
.long 498154669
|
|
.long 3161488062
|
|
.long 3896463087
|
|
.long 1071981949
|
|
.long 1139797873
|
|
.long 3161233805
|
|
.long 2731501122
|
|
.long 1071978202
|
|
.long 1774031855
|
|
.long 3162470021
|
|
.long 2135241198
|
|
.long 1071974465
|
|
.long 1236747871
|
|
.long 1013589147
|
|
.long 1990012071
|
|
.long 1071970738
|
|
.long 3529070563
|
|
.long 3162813193
|
|
.long 2178460671
|
|
.long 1071967021
|
|
.long 777878098
|
|
.long 3162842493
|
|
.long 2583551245
|
|
.long 1071963314
|
|
.long 3161094195
|
|
.long 1015606491
|
|
.long 3088564500
|
|
.long 1071959617
|
|
.long 1762311517
|
|
.long 1015045673
|
|
.long 3577096743
|
|
.long 1071955930
|
|
.long 2951496418
|
|
.long 1013793687
|
|
.long 3933059031
|
|
.long 1071952253
|
|
.long 2133366768
|
|
.long 3161531832
|
|
.long 4040676318
|
|
.long 1071948586
|
|
.long 4090609238
|
|
.long 1015663458
|
|
.long 3784486610
|
|
.long 1071944929
|
|
.long 1581883040
|
|
.long 3161698953
|
|
.long 3049340112
|
|
.long 1071941282
|
|
.long 3062915824
|
|
.long 1013170595
|
|
.long 1720398391
|
|
.long 1071937645
|
|
.long 3980678963
|
|
.long 3163300080
|
|
.long 3978100823
|
|
.long 1071934017
|
|
.long 3513027190
|
|
.long 1015845963
|
|
.long 1118294578
|
|
.long 1071930400
|
|
.long 2197495694
|
|
.long 3159909401
|
|
.long 1617004845
|
|
.long 1071926792
|
|
.long 82804944
|
|
.long 1010342778
|
|
.long 1065662932
|
|
.long 1071923194
|
|
.long 2533670915
|
|
.long 1014530238
|
|
.long 3645941911
|
|
.long 1071919605
|
|
.long 3814685081
|
|
.long 3161573341
|
|
.long 654919306
|
|
.long 1071916027
|
|
.long 3232961757
|
|
.long 3163047469
|
|
.long 569847338
|
|
.long 1071912458
|
|
.long 472945272
|
|
.long 3159290729
|
|
.long 3278348324
|
|
.long 1071908898
|
|
.long 3069497416
|
|
.long 1014750712
|
|
.long 78413852
|
|
.long 1071905349
|
|
.long 4183226867
|
|
.long 3163017251
|
|
.long 3743175029
|
|
.long 1071901808
|
|
.long 2072812490
|
|
.long 3162175075
|
|
.long 1276261410
|
|
.long 1071898278
|
|
.long 300981948
|
|
.long 1014684169
|
|
.long 1156440435
|
|
.long 1071894757
|
|
.long 2351451249
|
|
.long 1013967056
|
|
.long 3272845541
|
|
.long 1071891245
|
|
.long 928852419
|
|
.long 3163488248
|
|
.long 3219942644
|
|
.long 1071887743
|
|
.long 3798990616
|
|
.long 1015368806
|
|
.long 887463927
|
|
.long 1071884251
|
|
.long 3596744163
|
|
.long 3160794166
|
|
.long 460407023
|
|
.long 1071880768
|
|
.long 4237175092
|
|
.long 3163138469
|
|
.long 1829099622
|
|
.long 1071877294
|
|
.long 1016661181
|
|
.long 3163461005
|
|
.long 589198666
|
|
.long 1071873830
|
|
.long 2664346172
|
|
.long 3163157962
|
|
.long 926591435
|
|
.long 1071870375
|
|
.long 3208833762
|
|
.long 3162913514
|
|
.long 2732492859
|
|
.long 1071866929
|
|
.long 2691479646
|
|
.long 3162255684
|
|
.long 1603444721
|
|
.long 1071863493
|
|
.long 1548633640
|
|
.long 3162201326
|
|
.long 1726216749
|
|
.long 1071860066
|
|
.long 2466808228
|
|
.long 3161676405
|
|
.long 2992903935
|
|
.long 1071856648
|
|
.long 2218154406
|
|
.long 1015228193
|
|
.long 1000925746
|
|
.long 1071853240
|
|
.long 1018491672
|
|
.long 3163309544
|
|
.long 4232894513
|
|
.long 1071849840
|
|
.long 2383938684
|
|
.long 1014668519
|
|
.long 3991843581
|
|
.long 1071846450
|
|
.long 4092853457
|
|
.long 1014585763
|
|
.long 171030293
|
|
.long 1071843070
|
|
.long 3526460132
|
|
.long 1014428778
|
|
.long 1253935211
|
|
.long 1071839698
|
|
.long 1395382931
|
|
.long 3159702613
|
|
.long 2839424854
|
|
.long 1071836335
|
|
.long 1171596163
|
|
.long 1013041679
|
|
.long 526652809
|
|
.long 1071832982
|
|
.long 4223459736
|
|
.long 1015879375
|
|
.long 2799960843
|
|
.long 1071829637
|
|
.long 1423655381
|
|
.long 1015022151
|
|
.long 964107055
|
|
.long 1071826302
|
|
.long 2800439588
|
|
.long 3162833221
|
|
.long 3504003472
|
|
.long 1071822975
|
|
.long 3594001060
|
|
.long 3157330652
|
|
.long 1724976915
|
|
.long 1071819658
|
|
.long 420909223
|
|
.long 3163117379
|
|
.long 4112506593
|
|
.long 1071816349
|
|
.long 2947355221
|
|
.long 1014371048
|
|
.long 1972484976
|
|
.long 1071813050
|
|
.long 675290301
|
|
.long 3161640050
|
|
.long 3790955393
|
|
.long 1071809759
|
|
.long 2352942462
|
|
.long 3163180090
|
|
.long 874372905
|
|
.long 1071806478
|
|
.long 100263788
|
|
.long 1015940732
|
|
.long 1709341917
|
|
.long 1071803205
|
|
.long 2571168217
|
|
.long 1014152499
|
|
.long 1897844341
|
|
.long 1071799941
|
|
.long 1254300460
|
|
.long 1015275938
|
|
.long 1337108031
|
|
.long 1071796686
|
|
.long 3203724452
|
|
.long 1014677845
|
|
.long 4219606026
|
|
.long 1071793439
|
|
.long 2434574742
|
|
.long 1014681548
|
|
.long 1853186616
|
|
.long 1071790202
|
|
.long 3066496371
|
|
.long 1015656574
|
|
.long 2725843665
|
|
.long 1071786973
|
|
.long 1433917087
|
|
.long 1014838523
|
|
.long 2440944790
|
|
.long 1071783753
|
|
.long 2492769774
|
|
.long 1014147454
|
|
.long 897099801
|
|
.long 1071780542
|
|
.long 754756297
|
|
.long 1015241005
|
|
.long 2288159958
|
|
.long 1071777339
|
|
.long 2169144469
|
|
.long 1014876021
|
|
.long 2218315341
|
|
.long 1071774145
|
|
.long 2694295388
|
|
.long 3163288868
|
|
.long 586995997
|
|
.long 1071770960
|
|
.long 41662348
|
|
.long 3162627992
|
|
.long 1588871207
|
|
.long 1071767783
|
|
.long 143439582
|
|
.long 3162963416
|
|
.long 828946858
|
|
.long 1071764615
|
|
.long 10642492
|
|
.long 1015939438
|
|
.long 2502433899
|
|
.long 1071761455
|
|
.long 2148595913
|
|
.long 1015023991
|
|
.long 2214878420
|
|
.long 1071758304
|
|
.long 892270087
|
|
.long 3163116422
|
|
.long 4162030108
|
|
.long 1071755161
|
|
.long 2763428480
|
|
.long 1015529349
|
|
.long 3949972341
|
|
.long 1071752027
|
|
.long 2068408548
|
|
.long 1014913868
|
|
.long 1480023343
|
|
.long 1071748902
|
|
.long 2247196168
|
|
.long 1015327453
|
|
.long 948735466
|
|
.long 1071745785
|
|
.long 3516338028
|
|
.long 3162574883
|
|
.long 2257959872
|
|
.long 1071742676
|
|
.long 3802946148
|
|
.long 1012964927
|
|
.long 1014845819
|
|
.long 1071739576
|
|
.long 3117910646
|
|
.long 3161559105
|
|
.long 1416741826
|
|
.long 1071736484
|
|
.long 2196380210
|
|
.long 1011413563
|
|
.long 3366293073
|
|
.long 1071733400
|
|
.long 3119426314
|
|
.long 1014120554
|
|
.long 2471440686
|
|
.long 1071730325
|
|
.long 968836267
|
|
.long 3162214888
|
|
.long 2930322912
|
|
.long 1071727258
|
|
.long 2599499422
|
|
.long 3162714047
|
|
.long 351405227
|
|
.long 1071724200
|
|
.long 3125337328
|
|
.long 3159822479
|
|
.long 3228316108
|
|
.long 1071721149
|
|
.long 3010241991
|
|
.long 3158422804
|
|
.long 2875075254
|
|
.long 1071718107
|
|
.long 4144233330
|
|
.long 3163333716
|
|
.long 3490863953
|
|
.long 1071715073
|
|
.long 960797498
|
|
.long 3162948880
|
|
.long 685187902
|
|
.long 1071712048
|
|
.long 378731989
|
|
.long 1014843115
|
|
.long 2952712987
|
|
.long 1071709030
|
|
.long 3293494651
|
|
.long 3160120301
|
|
.long 1608493509
|
|
.long 1071706021
|
|
.long 3159622171
|
|
.long 3162807737
|
|
.long 852742562
|
|
.long 1071703020
|
|
.long 667253586
|
|
.long 1009793559
|
|
.long 590962156
|
|
.long 1071700027
|
|
.long 3829346666
|
|
.long 3163275597
|
|
.long 728909815
|
|
.long 1071697042
|
|
.long 383930225
|
|
.long 1015029468
|
|
.long 1172597893
|
|
.long 1071694065
|
|
.long 114433263
|
|
.long 1015347593
|
|
.long 1828292879
|
|
.long 1071691096
|
|
.long 1255956747
|
|
.long 1015588398
|
|
.long 2602514713
|
|
.long 1071688135
|
|
.long 2268929336
|
|
.long 1014354284
|
|
.long 3402036099
|
|
.long 1071685182
|
|
.long 405889334
|
|
.long 1015105656
|
|
.long 4133881824
|
|
.long 1071682237
|
|
.long 2148155345
|
|
.long 3162931299
|
|
.long 410360776
|
|
.long 1071679301
|
|
.long 1269990655
|
|
.long 1011975870
|
|
.long 728934454
|
|
.long 1071676372
|
|
.long 1413842688
|
|
.long 1014178612
|
|
.long 702412510
|
|
.long 1071673451
|
|
.long 3803266087
|
|
.long 3162280415
|
|
.long 238821257
|
|
.long 1071670538
|
|
.long 1469694871
|
|
.long 3162884987
|
|
.long 3541402996
|
|
.long 1071667632
|
|
.long 2759177317
|
|
.long 1014854626
|
|
.long 1928746161
|
|
.long 1071664735
|
|
.long 983617676
|
|
.long 1014285177
|
|
.long 3899555717
|
|
.long 1071661845
|
|
.long 427280750
|
|
.long 3162546972
|
|
.long 772914124
|
|
.long 1071658964
|
|
.long 4004372762
|
|
.long 1012230161
|
|
.long 1048019041
|
|
.long 1071656090
|
|
.long 1398474845
|
|
.long 3160510595
|
|
.long 339411585
|
|
.long 1071653224
|
|
.long 264588982
|
|
.long 3161636657
|
|
.long 2851812149
|
|
.long 1071650365
|
|
.long 2595802551
|
|
.long 1015767337
|
|
.long 4200250559
|
|
.long 1071647514
|
|
.long 2808127345
|
|
.long 3161781938
|
|
.type T2_neg_f,@object
|
|
.size T2_neg_f,4096
|
|
.space 512, 0x00 # pad
|
|
.align 16
|
|
MASK3:
|
|
.long 0
|
|
.long 4294967280
|
|
.long 0
|
|
.long 4294967280
|
|
.type MASK3,@object
|
|
.size MASK3,16
|
|
.align 16
|
|
RMASK:
|
|
.long 4294705152
|
|
.long 4294967295
|
|
.long 4294705152
|
|
.long 4294967295
|
|
.type RMASK,@object
|
|
.size RMASK,16
|
|
.align 16
|
|
pv:
|
|
.long 236289503
|
|
.long 1064135997
|
|
.long 463583772
|
|
.long 3215696314
|
|
.long 1441186365
|
|
.long 3212977891
|
|
.long 286331153
|
|
.long 1069617425
|
|
.long 2284589306
|
|
.long 1066820852
|
|
.long 1431655765
|
|
.long 3218429269
|
|
.type pv,@object
|
|
.size pv,48
|
|
.align 4
|
|
HALFMASK:
|
|
.long 4160749568
|
|
.long 2147483647
|
|
.type HALFMASK,@object
|
|
.size HALFMASK,8
|
|
.align 4
|
|
ONEMASK:
|
|
.long 0
|
|
.long 1072693248
|
|
.type ONEMASK,@object
|
|
.size ONEMASK,8
|
|
.align 4
|
|
TWOMASK:
|
|
.long 0
|
|
.long 1073741824
|
|
.type TWOMASK,@object
|
|
.size TWOMASK,8
|
|
.data
|
|
.section .note.GNU-stack, "",@progbits
|
|
// -- Begin DWARF2 SEGMENT .eh_frame
|
|
.section .eh_frame,"a",@progbits
|
|
.eh_frame_seg:
|
|
.align 1
|
|
.4byte 0x00000014
|
|
.8byte 0x00527a0100000000
|
|
.8byte 0x08070c1b01107801
|
|
.4byte 0x00000190
|
|
.4byte 0x0000001c
|
|
.4byte 0x0000001c
|
|
.4byte ..___tag_value_tanh.1-.
|
|
.4byte ..___tag_value_tanh.5-..___tag_value_tanh.1
|
|
.2byte 0x0400
|
|
.4byte ..___tag_value_tanh.3-..___tag_value_tanh.1
|
|
.2byte 0x100e
|
|
.byte 0x04
|
|
.4byte ..___tag_value_tanh.4-..___tag_value_tanh.3
|
|
.2byte 0x080e
|
|
.byte 0x00
|
|
# End
|