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