1/* 2Copyright (c) 2014, Intel Corporation 3All rights reserved. 4 5Redistribution and use in source and binary forms, with or without 6modification, are permitted provided that the following conditions are met: 7 8 * Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 11 * Redistributions in binary form must reproduce the above copyright notice, 12 * this list of conditions and the following disclaimer in the documentation 13 * and/or other materials provided with the distribution. 14 15 * Neither the name of Intel Corporation nor the names of its contributors 16 * may be used to endorse or promote products derived from this software 17 * without specific prior written permission. 18 19THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 23ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29*/ 30 31/******************************************************************************/ 32// 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 1393