1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or https://opensource.org/licenses/CDDL-1.0. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22/* 23 * Based on BLAKE3 v1.3.1, https://github.com/BLAKE3-team/BLAKE3 24 * Copyright (c) 2019-2022 Samuel Neves 25 * Copyright (c) 2022 Tino Reichardt <milky-zfs@mcmilk.de> 26 * 27 * This is converted assembly: SSE4.1 -> POWER8 PPC64 Little Endian 28 * Used tools: SIMDe https://github.com/simd-everywhere/simde 29 */ 30 31#if (defined(__PPC64__) && defined(__LITTLE_ENDIAN__)) 32 .text 33 .abiversion 2 34 .section .rodata.cst16,"aM",@progbits,16 35 .p2align 4 36.LCPI0_0: 37 .byte 31 38 .byte 14 39 .byte 13 40 .byte 12 41 .byte 30 42 .byte 10 43 .byte 9 44 .byte 8 45 .byte 29 46 .byte 6 47 .byte 5 48 .byte 4 49 .byte 28 50 .byte 2 51 .byte 1 52 .byte 0 53.LCPI0_1: 54 .byte 2 55 .byte 3 56 .byte 0 57 .byte 1 58 .byte 6 59 .byte 7 60 .byte 4 61 .byte 5 62 .byte 10 63 .byte 11 64 .byte 8 65 .byte 9 66 .byte 14 67 .byte 15 68 .byte 12 69 .byte 13 70.LCPI0_2: 71 .byte 29 72 .byte 28 73 .byte 31 74 .byte 30 75 .byte 25 76 .byte 24 77 .byte 27 78 .byte 26 79 .byte 21 80 .byte 20 81 .byte 23 82 .byte 22 83 .byte 17 84 .byte 16 85 .byte 19 86 .byte 18 87.LCPI0_3: 88 .long 1779033703 89 .long 3144134277 90 .long 1013904242 91 .long 2773480762 92.LCPI0_4: 93 .byte 27 94 .byte 26 95 .byte 25 96 .byte 24 97 .byte 19 98 .byte 18 99 .byte 17 100 .byte 16 101 .byte 11 102 .byte 10 103 .byte 9 104 .byte 8 105 .byte 3 106 .byte 2 107 .byte 1 108 .byte 0 109.LCPI0_5: 110 .byte 1 111 .byte 2 112 .byte 3 113 .byte 0 114 .byte 5 115 .byte 6 116 .byte 7 117 .byte 4 118 .byte 9 119 .byte 10 120 .byte 11 121 .byte 8 122 .byte 13 123 .byte 14 124 .byte 15 125 .byte 12 126.LCPI0_6: 127 .byte 30 128 .byte 29 129 .byte 28 130 .byte 31 131 .byte 26 132 .byte 25 133 .byte 24 134 .byte 27 135 .byte 22 136 .byte 21 137 .byte 20 138 .byte 23 139 .byte 18 140 .byte 17 141 .byte 16 142 .byte 19 143.LCPI0_7: 144 .byte 19 145 .byte 18 146 .byte 17 147 .byte 16 148 .byte 11 149 .byte 10 150 .byte 9 151 .byte 8 152 .byte 3 153 .byte 2 154 .byte 1 155 .byte 0 156 .byte 27 157 .byte 26 158 .byte 25 159 .byte 24 160.LCPI0_8: 161 .byte 23 162 .byte 22 163 .byte 21 164 .byte 20 165 .byte 27 166 .byte 26 167 .byte 25 168 .byte 24 169 .byte 11 170 .byte 10 171 .byte 9 172 .byte 8 173 .byte 3 174 .byte 2 175 .byte 1 176 .byte 0 177.LCPI0_9: 178 .byte 31 179 .byte 31 180 .byte 31 181 .byte 31 182 .byte 23 183 .byte 22 184 .byte 21 185 .byte 20 186 .byte 31 187 .byte 31 188 .byte 31 189 .byte 31 190 .byte 3 191 .byte 2 192 .byte 1 193 .byte 0 194.LCPI0_10: 195 .byte 19 196 .byte 18 197 .byte 17 198 .byte 16 199 .byte 31 200 .byte 31 201 .byte 31 202 .byte 31 203 .byte 31 204 .byte 30 205 .byte 29 206 .byte 28 207 .byte 31 208 .byte 31 209 .byte 31 210 .byte 31 211.LCPI0_11: 212 .byte 31 213 .byte 30 214 .byte 29 215 .byte 28 216 .byte 11 217 .byte 10 218 .byte 9 219 .byte 8 220 .byte 23 221 .byte 22 222 .byte 21 223 .byte 20 224 .byte 3 225 .byte 2 226 .byte 1 227 .byte 0 228.LCPI0_12: 229 .byte 31 230 .byte 30 231 .byte 29 232 .byte 28 233 .byte 23 234 .byte 22 235 .byte 21 236 .byte 20 237 .byte 3 238 .byte 2 239 .byte 1 240 .byte 0 241 .byte 27 242 .byte 26 243 .byte 25 244 .byte 24 245.LCPI0_13: 246 .byte 27 247 .byte 26 248 .byte 25 249 .byte 24 250 .byte 11 251 .byte 10 252 .byte 9 253 .byte 8 254 .byte 15 255 .byte 14 256 .byte 13 257 .byte 12 258 .byte 31 259 .byte 30 260 .byte 29 261 .byte 28 262.LCPI0_14: 263 .byte 23 264 .byte 22 265 .byte 21 266 .byte 20 267 .byte 23 268 .byte 22 269 .byte 21 270 .byte 20 271 .byte 3 272 .byte 2 273 .byte 1 274 .byte 0 275 .byte 3 276 .byte 2 277 .byte 1 278 .byte 0 279 .text 280 .globl zfs_blake3_compress_in_place_sse41 281 .p2align 2 282 .type zfs_blake3_compress_in_place_sse41,@function 283zfs_blake3_compress_in_place_sse41: 284.Lfunc_begin0: 285 .cfi_startproc 286.Lfunc_gep0: 287 addis 2, 12, .TOC.-.Lfunc_gep0@ha 288 addi 2, 2, .TOC.-.Lfunc_gep0@l 289.Lfunc_lep0: 290 .localentry zfs_blake3_compress_in_place_sse41, .Lfunc_lep0-.Lfunc_gep0 291 li 8, -64 292 mtvsrd 34, 5 293 li 5, 16 294 lfdx 0, 0, 4 295 vspltisw 13, -16 296 stxvd2x 60, 1, 8 297 li 8, -48 298 mtvsrd 35, 7 299 lfd 2, 16(4) 300 lfd 3, 24(4) 301 addis 7, 2, .LCPI0_0@toc@ha 302 stxvd2x 61, 1, 8 303 li 8, -32 304 mtvsrwz 36, 6 305 rldicl 6, 6, 32, 32 306 stxvd2x 62, 1, 8 307 li 8, -16 308 vmrghb 2, 3, 2 309 stxvd2x 63, 1, 8 310 mtvsrwz 35, 6 311 addi 6, 7, .LCPI0_0@toc@l 312 addis 7, 2, .LCPI0_2@toc@ha 313 lfd 1, 8(4) 314 xxmrghd 32, 3, 2 315 lvx 6, 0, 6 316 xxlxor 33, 33, 33 317 addis 6, 2, .LCPI0_1@toc@ha 318 addi 7, 7, .LCPI0_2@toc@l 319 vmrghw 3, 3, 4 320 addi 6, 6, .LCPI0_1@toc@l 321 vspltisw 14, 9 322 xxmrghd 37, 1, 0 323 lxvd2x 0, 0, 3 324 lxvd2x 1, 3, 5 325 vperm 2, 1, 2, 6 326 vpkudum 9, 0, 5 327 xxswapd 36, 0 328 xxswapd 38, 1 329 xxmrgld 34, 34, 35 330 lvx 3, 0, 7 331 addis 7, 2, .LCPI0_4@toc@ha 332 addi 7, 7, .LCPI0_4@toc@l 333 vadduwm 4, 9, 4 334 lvx 11, 0, 7 335 addis 7, 2, .LCPI0_6@toc@ha 336 addi 7, 7, .LCPI0_6@toc@l 337 vadduwm 7, 4, 6 338 lvx 4, 0, 6 339 addis 6, 2, .LCPI0_3@toc@ha 340 addi 6, 6, .LCPI0_3@toc@l 341 vperm 11, 0, 5, 11 342 lvx 0, 0, 7 343 li 7, 48 344 xxlxor 40, 39, 34 345 lvx 10, 0, 6 346 addis 6, 2, .LCPI0_5@toc@ha 347 lxvd2x 1, 4, 7 348 vcmpgtsb 2, 1, 4 349 addi 6, 6, .LCPI0_5@toc@l 350 vperm 4, 8, 8, 3 351 vspltisw 8, 10 352 xxlandc 44, 36, 34 353 vadduwm 4, 8, 8 354 vadduwm 8, 12, 10 355 xxlxor 37, 40, 38 356 vrlw 6, 5, 4 357 vadduwm 5, 7, 11 358 vadduwm 7, 6, 5 359 lvx 5, 0, 6 360 li 6, 32 361 lxvd2x 0, 4, 6 362 addis 4, 2, .LCPI0_7@toc@ha 363 addis 6, 2, .LCPI0_9@toc@ha 364 xxlxor 42, 39, 44 365 xxswapd 44, 1 366 addi 4, 4, .LCPI0_7@toc@l 367 addi 6, 6, .LCPI0_9@toc@l 368 vcmpgtsb 5, 1, 5 369 vperm 1, 10, 10, 0 370 xxswapd 42, 0 371 vpkudum 16, 12, 10 372 xxlandc 47, 33, 37 373 vsubuwm 1, 14, 13 374 lvx 14, 0, 4 375 addis 4, 2, .LCPI0_8@toc@ha 376 vadduwm 8, 15, 8 377 xxswapd 45, 47 378 addi 4, 4, .LCPI0_8@toc@l 379 vadduwm 7, 7, 16 380 xxsldwi 48, 48, 48, 1 381 xxlxor 38, 40, 38 382 xxsldwi 40, 40, 40, 3 383 xxsldwi 39, 39, 39, 1 384 vperm 14, 10, 12, 14 385 vrlw 6, 6, 1 386 vadduwm 7, 6, 7 387 xxlxor 45, 39, 45 388 vperm 13, 13, 13, 3 389 xxlandc 45, 45, 34 390 vadduwm 8, 13, 8 391 xxlxor 38, 40, 38 392 vrlw 10, 6, 4 393 vadduwm 6, 7, 14 394 vadduwm 7, 10, 6 395 xxlxor 38, 39, 45 396 vperm 12, 6, 6, 0 397 lvx 6, 0, 4 398 addis 4, 2, .LCPI0_10@toc@ha 399 addi 4, 4, .LCPI0_10@toc@l 400 vperm 13, 11, 9, 6 401 xxlandc 44, 44, 37 402 vadduwm 15, 12, 8 403 vadduwm 7, 7, 13 404 xxsldwi 45, 45, 45, 3 405 xxlxor 40, 47, 42 406 xxsldwi 47, 47, 47, 1 407 xxsldwi 39, 39, 39, 3 408 vrlw 10, 8, 1 409 xxswapd 40, 44 410 vadduwm 17, 10, 7 411 lvx 7, 0, 4 412 addis 4, 2, .LCPI0_11@toc@ha 413 addi 4, 4, .LCPI0_11@toc@l 414 xxlxor 44, 49, 40 415 lvx 8, 0, 6 416 vperm 18, 9, 9, 7 417 lvx 9, 0, 4 418 addis 4, 2, .LCPI0_12@toc@ha 419 vperm 12, 12, 12, 3 420 addi 4, 4, .LCPI0_12@toc@l 421 vperm 19, 14, 16, 8 422 xxlandc 63, 44, 34 423 vperm 12, 19, 18, 9 424 vadduwm 15, 31, 15 425 xxlxor 42, 47, 42 426 vrlw 18, 10, 4 427 vadduwm 10, 17, 12 428 vadduwm 17, 18, 10 429 xxlxor 42, 49, 63 430 xxmrgld 63, 43, 46 431 xxsldwi 49, 49, 49, 1 432 vmrghw 14, 14, 11 433 vperm 19, 10, 10, 0 434 lvx 10, 0, 4 435 addis 4, 2, .LCPI0_13@toc@ha 436 addi 4, 4, .LCPI0_13@toc@l 437 lvx 11, 0, 4 438 addis 4, 2, .LCPI0_14@toc@ha 439 vperm 31, 16, 31, 10 440 addi 4, 4, .LCPI0_14@toc@l 441 vperm 14, 14, 16, 11 442 xxlandc 51, 51, 37 443 vadduwm 15, 19, 15 444 xxswapd 51, 51 445 vadduwm 17, 17, 31 446 xxlxor 50, 47, 50 447 xxsldwi 47, 47, 47, 3 448 vperm 30, 14, 31, 8 449 vrlw 18, 18, 1 450 vadduwm 17, 18, 17 451 xxlxor 51, 49, 51 452 vadduwm 17, 17, 14 453 vperm 19, 19, 19, 3 454 xxlandc 51, 51, 34 455 vadduwm 15, 19, 15 456 xxlxor 48, 47, 50 457 vrlw 16, 16, 4 458 vadduwm 17, 16, 17 459 xxlxor 50, 49, 51 460 vperm 19, 12, 13, 6 461 vperm 18, 18, 18, 0 462 vperm 13, 13, 13, 7 463 vadduwm 17, 17, 19 464 xxlandc 50, 50, 37 465 xxsldwi 49, 49, 49, 3 466 vperm 13, 30, 13, 9 467 vadduwm 15, 18, 15 468 xxswapd 50, 50 469 xxmrgld 62, 44, 46 470 vmrghw 12, 14, 12 471 xxlxor 48, 47, 48 472 xxsldwi 47, 47, 47, 1 473 vrlw 16, 16, 1 474 vperm 30, 31, 30, 10 475 vperm 12, 12, 31, 11 476 vadduwm 17, 16, 17 477 xxlxor 50, 49, 50 478 vadduwm 17, 17, 13 479 vperm 18, 18, 18, 3 480 vperm 31, 12, 30, 8 481 xxlandc 50, 50, 34 482 vadduwm 15, 18, 15 483 xxlxor 48, 47, 48 484 vrlw 16, 16, 4 485 vadduwm 17, 16, 17 486 xxlxor 50, 49, 50 487 xxsldwi 49, 49, 49, 1 488 vperm 18, 18, 18, 0 489 vadduwm 17, 17, 30 490 xxlandc 50, 50, 37 491 vadduwm 15, 18, 15 492 xxswapd 50, 50 493 xxlxor 48, 47, 48 494 xxsldwi 46, 47, 47, 3 495 vrlw 16, 16, 1 496 vadduwm 17, 16, 17 497 xxlxor 50, 49, 50 498 vadduwm 17, 17, 12 499 vperm 18, 18, 18, 3 500 xxlandc 47, 50, 34 501 xxsldwi 50, 51, 51, 3 502 vadduwm 14, 15, 14 503 vperm 19, 13, 18, 6 504 xxlxor 48, 46, 48 505 vperm 18, 18, 18, 7 506 vrlw 16, 16, 4 507 vadduwm 17, 16, 17 508 xxlxor 47, 49, 47 509 vadduwm 17, 17, 19 510 vperm 15, 15, 15, 0 511 xxsldwi 49, 49, 49, 3 512 xxlandc 47, 47, 37 513 vadduwm 14, 15, 14 514 xxswapd 47, 47 515 xxlxor 48, 46, 48 516 xxsldwi 46, 46, 46, 1 517 vrlw 16, 16, 1 518 vadduwm 17, 16, 17 519 xxlxor 47, 49, 47 520 vperm 15, 15, 15, 3 521 xxlandc 47, 47, 34 522 vadduwm 29, 15, 14 523 vperm 14, 31, 18, 9 524 xxmrgld 50, 45, 44 525 xxlxor 48, 61, 48 526 vmrghw 12, 12, 13 527 vrlw 16, 16, 4 528 vperm 18, 30, 18, 10 529 vadduwm 17, 17, 14 530 vadduwm 17, 16, 17 531 xxlxor 47, 49, 47 532 xxsldwi 49, 49, 49, 1 533 vperm 15, 15, 15, 0 534 vadduwm 17, 17, 18 535 xxlandc 47, 47, 37 536 vadduwm 31, 15, 29 537 xxswapd 47, 47 538 xxlxor 48, 63, 48 539 xxsldwi 45, 63, 63, 3 540 vperm 31, 12, 30, 11 541 vrlw 16, 16, 1 542 vadduwm 17, 16, 17 543 xxlxor 47, 49, 47 544 vperm 15, 15, 15, 3 545 xxlandc 47, 47, 34 546 vadduwm 13, 15, 13 547 xxlxor 44, 45, 48 548 vadduwm 16, 17, 31 549 xxsldwi 49, 51, 51, 3 550 vrlw 12, 12, 4 551 vperm 19, 14, 17, 6 552 vadduwm 16, 12, 16 553 xxlxor 47, 48, 47 554 vperm 15, 15, 15, 0 555 xxlandc 47, 47, 37 556 vadduwm 13, 15, 13 557 xxswapd 47, 47 558 xxlxor 44, 45, 44 559 xxsldwi 45, 45, 45, 1 560 vrlw 30, 12, 1 561 vadduwm 12, 16, 19 562 xxsldwi 44, 44, 44, 3 563 vadduwm 16, 30, 12 564 xxlxor 44, 48, 47 565 vperm 15, 17, 17, 7 566 vperm 12, 12, 12, 3 567 vperm 17, 31, 18, 8 568 xxlandc 61, 44, 34 569 vperm 12, 17, 15, 9 570 vadduwm 13, 29, 13 571 xxlxor 47, 45, 62 572 xxmrgld 62, 46, 63 573 vmrghw 14, 31, 14 574 vrlw 15, 15, 4 575 vadduwm 16, 16, 12 576 vperm 30, 18, 30, 10 577 vperm 14, 14, 18, 11 578 xxsldwi 50, 51, 51, 3 579 vadduwm 16, 15, 16 580 xxlxor 49, 48, 61 581 xxsldwi 48, 48, 48, 1 582 vperm 19, 12, 18, 6 583 vperm 17, 17, 17, 0 584 vadduwm 16, 16, 30 585 xxmrgld 60, 44, 46 586 vmrghw 12, 14, 12 587 vperm 28, 30, 28, 10 588 xxlandc 49, 49, 37 589 vadduwm 13, 17, 13 590 xxswapd 49, 49 591 vperm 12, 12, 30, 11 592 xxlxor 47, 45, 47 593 xxsldwi 45, 45, 45, 3 594 vrlw 15, 15, 1 595 vperm 8, 12, 28, 8 596 vadduwm 16, 15, 16 597 xxlxor 49, 48, 49 598 vadduwm 16, 16, 14 599 vperm 17, 17, 17, 3 600 xxlandc 49, 49, 34 601 vadduwm 13, 17, 13 602 xxlxor 47, 45, 47 603 vrlw 15, 15, 4 604 vadduwm 16, 15, 16 605 xxlxor 49, 48, 49 606 vperm 17, 17, 17, 0 607 xxlandc 49, 49, 37 608 vadduwm 31, 17, 13 609 xxlxor 45, 63, 47 610 vrlw 15, 13, 1 611 vadduwm 13, 16, 19 612 xxswapd 48, 49 613 xxsldwi 51, 51, 51, 3 614 xxsldwi 45, 45, 45, 3 615 vadduwm 17, 15, 13 616 xxlxor 45, 49, 48 617 lvx 16, 0, 4 618 vperm 29, 13, 13, 3 619 vperm 13, 18, 18, 7 620 xxsldwi 50, 63, 63, 1 621 vperm 16, 14, 30, 16 622 vperm 7, 19, 19, 7 623 xxlandc 63, 61, 34 624 vadduwm 18, 31, 18 625 vperm 29, 16, 13, 9 626 xxlxor 47, 50, 47 627 vperm 6, 16, 19, 6 628 vrlw 15, 15, 4 629 vperm 7, 8, 7, 9 630 vadduwm 17, 17, 29 631 xxmrgld 41, 61, 44 632 vadduwm 17, 15, 17 633 vperm 9, 28, 9, 10 634 xxlxor 63, 49, 63 635 xxsldwi 49, 49, 49, 1 636 vperm 31, 31, 31, 0 637 vadduwm 17, 17, 28 638 xxlandc 63, 63, 37 639 vadduwm 18, 31, 18 640 xxswapd 63, 63 641 xxlxor 47, 50, 47 642 xxsldwi 46, 50, 50, 3 643 vrlw 15, 15, 1 644 vadduwm 17, 15, 17 645 xxlxor 63, 49, 63 646 vadduwm 17, 17, 12 647 vperm 31, 31, 31, 3 648 xxlandc 50, 63, 34 649 vadduwm 14, 18, 14 650 xxlxor 47, 46, 47 651 vrlw 15, 15, 4 652 vadduwm 17, 15, 17 653 xxlxor 50, 49, 50 654 vadduwm 6, 17, 6 655 vperm 18, 18, 18, 0 656 xxsldwi 38, 38, 38, 3 657 xxlandc 50, 50, 37 658 vadduwm 14, 18, 14 659 xxswapd 48, 50 660 xxlxor 47, 46, 47 661 xxsldwi 46, 46, 46, 1 662 vrlw 15, 15, 1 663 vadduwm 6, 15, 6 664 xxlxor 48, 38, 48 665 vadduwm 6, 6, 7 666 vperm 16, 16, 16, 3 667 xxlandc 48, 48, 34 668 vadduwm 14, 16, 14 669 xxlxor 40, 46, 47 670 vrlw 8, 8, 4 671 vadduwm 6, 8, 6 672 xxlxor 39, 38, 48 673 xxsldwi 38, 38, 38, 1 674 vperm 7, 7, 7, 0 675 vadduwm 6, 6, 9 676 xxlandc 39, 39, 37 677 vadduwm 14, 7, 14 678 xxswapd 39, 39 679 xxlxor 40, 46, 40 680 xxsldwi 41, 46, 46, 3 681 vrlw 8, 8, 1 682 vadduwm 6, 8, 6 683 xxlxor 39, 38, 39 684 vperm 3, 7, 7, 3 685 vmrghw 7, 12, 13 686 xxlandc 34, 35, 34 687 vperm 7, 7, 28, 11 688 vadduwm 3, 2, 9 689 xxlxor 40, 35, 40 690 vrlw 4, 8, 4 691 vadduwm 6, 6, 7 692 vadduwm 6, 4, 6 693 xxlxor 34, 38, 34 694 xxsldwi 0, 38, 38, 3 695 vperm 2, 2, 2, 0 696 xxlandc 34, 34, 37 697 vadduwm 3, 2, 3 698 xxswapd 34, 34 699 xxlxor 36, 35, 36 700 xxsldwi 1, 35, 35, 1 701 vrlw 4, 4, 1 702 xxlxor 0, 1, 0 703 xxswapd 0, 0 704 xxlxor 1, 36, 34 705 stxvd2x 0, 0, 3 706 xxswapd 1, 1 707 stxvd2x 1, 3, 5 708 li 3, -16 709 lxvd2x 63, 1, 3 710 li 3, -32 711 lxvd2x 62, 1, 3 712 li 3, -48 713 lxvd2x 61, 1, 3 714 li 3, -64 715 lxvd2x 60, 1, 3 716 blr 717 .long 0 718 .quad 0 719.Lfunc_end0: 720 .size zfs_blake3_compress_in_place_sse41, .Lfunc_end0-.Lfunc_begin0 721 .cfi_endproc 722 723 .section .rodata.cst16,"aM",@progbits,16 724 .p2align 4 725.LCPI1_0: 726 .byte 31 727 .byte 14 728 .byte 13 729 .byte 12 730 .byte 30 731 .byte 10 732 .byte 9 733 .byte 8 734 .byte 29 735 .byte 6 736 .byte 5 737 .byte 4 738 .byte 28 739 .byte 2 740 .byte 1 741 .byte 0 742.LCPI1_1: 743 .byte 2 744 .byte 3 745 .byte 0 746 .byte 1 747 .byte 6 748 .byte 7 749 .byte 4 750 .byte 5 751 .byte 10 752 .byte 11 753 .byte 8 754 .byte 9 755 .byte 14 756 .byte 15 757 .byte 12 758 .byte 13 759.LCPI1_2: 760 .byte 29 761 .byte 28 762 .byte 31 763 .byte 30 764 .byte 25 765 .byte 24 766 .byte 27 767 .byte 26 768 .byte 21 769 .byte 20 770 .byte 23 771 .byte 22 772 .byte 17 773 .byte 16 774 .byte 19 775 .byte 18 776.LCPI1_3: 777 .long 1779033703 778 .long 3144134277 779 .long 1013904242 780 .long 2773480762 781.LCPI1_4: 782 .byte 27 783 .byte 26 784 .byte 25 785 .byte 24 786 .byte 19 787 .byte 18 788 .byte 17 789 .byte 16 790 .byte 11 791 .byte 10 792 .byte 9 793 .byte 8 794 .byte 3 795 .byte 2 796 .byte 1 797 .byte 0 798.LCPI1_5: 799 .byte 1 800 .byte 2 801 .byte 3 802 .byte 0 803 .byte 5 804 .byte 6 805 .byte 7 806 .byte 4 807 .byte 9 808 .byte 10 809 .byte 11 810 .byte 8 811 .byte 13 812 .byte 14 813 .byte 15 814 .byte 12 815.LCPI1_6: 816 .byte 30 817 .byte 29 818 .byte 28 819 .byte 31 820 .byte 26 821 .byte 25 822 .byte 24 823 .byte 27 824 .byte 22 825 .byte 21 826 .byte 20 827 .byte 23 828 .byte 18 829 .byte 17 830 .byte 16 831 .byte 19 832.LCPI1_7: 833 .byte 19 834 .byte 18 835 .byte 17 836 .byte 16 837 .byte 11 838 .byte 10 839 .byte 9 840 .byte 8 841 .byte 3 842 .byte 2 843 .byte 1 844 .byte 0 845 .byte 27 846 .byte 26 847 .byte 25 848 .byte 24 849.LCPI1_8: 850 .byte 23 851 .byte 22 852 .byte 21 853 .byte 20 854 .byte 27 855 .byte 26 856 .byte 25 857 .byte 24 858 .byte 11 859 .byte 10 860 .byte 9 861 .byte 8 862 .byte 3 863 .byte 2 864 .byte 1 865 .byte 0 866.LCPI1_9: 867 .byte 31 868 .byte 31 869 .byte 31 870 .byte 31 871 .byte 23 872 .byte 22 873 .byte 21 874 .byte 20 875 .byte 31 876 .byte 31 877 .byte 31 878 .byte 31 879 .byte 3 880 .byte 2 881 .byte 1 882 .byte 0 883.LCPI1_10: 884 .byte 19 885 .byte 18 886 .byte 17 887 .byte 16 888 .byte 31 889 .byte 31 890 .byte 31 891 .byte 31 892 .byte 31 893 .byte 30 894 .byte 29 895 .byte 28 896 .byte 31 897 .byte 31 898 .byte 31 899 .byte 31 900.LCPI1_11: 901 .byte 31 902 .byte 30 903 .byte 29 904 .byte 28 905 .byte 11 906 .byte 10 907 .byte 9 908 .byte 8 909 .byte 23 910 .byte 22 911 .byte 21 912 .byte 20 913 .byte 3 914 .byte 2 915 .byte 1 916 .byte 0 917.LCPI1_12: 918 .byte 31 919 .byte 30 920 .byte 29 921 .byte 28 922 .byte 23 923 .byte 22 924 .byte 21 925 .byte 20 926 .byte 3 927 .byte 2 928 .byte 1 929 .byte 0 930 .byte 27 931 .byte 26 932 .byte 25 933 .byte 24 934.LCPI1_13: 935 .byte 27 936 .byte 26 937 .byte 25 938 .byte 24 939 .byte 11 940 .byte 10 941 .byte 9 942 .byte 8 943 .byte 15 944 .byte 14 945 .byte 13 946 .byte 12 947 .byte 31 948 .byte 30 949 .byte 29 950 .byte 28 951.LCPI1_14: 952 .byte 23 953 .byte 22 954 .byte 21 955 .byte 20 956 .byte 23 957 .byte 22 958 .byte 21 959 .byte 20 960 .byte 3 961 .byte 2 962 .byte 1 963 .byte 0 964 .byte 3 965 .byte 2 966 .byte 1 967 .byte 0 968 .text 969 .globl zfs_blake3_compress_xof_sse41 970 .p2align 2 971 .type zfs_blake3_compress_xof_sse41,@function 972zfs_blake3_compress_xof_sse41: 973.Lfunc_begin1: 974 .cfi_startproc 975.Lfunc_gep1: 976 addis 2, 12, .TOC.-.Lfunc_gep1@ha 977 addi 2, 2, .TOC.-.Lfunc_gep1@l 978.Lfunc_lep1: 979 .localentry zfs_blake3_compress_xof_sse41, .Lfunc_lep1-.Lfunc_gep1 980 li 9, -64 981 mtvsrd 34, 5 982 li 5, 16 983 lfdx 0, 0, 4 984 vspltisw 13, -16 985 addis 11, 2, .LCPI1_9@toc@ha 986 stxvd2x 60, 1, 9 987 li 9, -48 988 mtvsrd 35, 7 989 lfd 1, 8(4) 990 lfd 2, 16(4) 991 addis 7, 2, .LCPI1_0@toc@ha 992 stxvd2x 61, 1, 9 993 li 9, -32 994 mtvsrwz 36, 6 995 rldicl 6, 6, 32, 32 996 stxvd2x 62, 1, 9 997 li 9, -16 998 vmrghb 2, 3, 2 999 stxvd2x 63, 1, 9 1000 mtvsrwz 35, 6 1001 addi 6, 7, .LCPI1_0@toc@l 1002 addis 7, 2, .LCPI1_2@toc@ha 1003 lfd 3, 24(4) 1004 xxmrghd 37, 1, 0 1005 lvx 6, 0, 6 1006 xxlxor 33, 33, 33 1007 lxvd2x 0, 0, 3 1008 addis 6, 2, .LCPI1_1@toc@ha 1009 addi 7, 7, .LCPI1_2@toc@l 1010 vmrghw 3, 3, 4 1011 lxvd2x 1, 3, 5 1012 addi 6, 6, .LCPI1_1@toc@l 1013 vspltisw 14, 9 1014 xxmrghd 32, 3, 2 1015 xxswapd 36, 0 1016 vperm 2, 1, 2, 6 1017 xxswapd 38, 1 1018 vpkudum 9, 0, 5 1019 xxmrgld 34, 34, 35 1020 lvx 3, 0, 7 1021 addis 7, 2, .LCPI1_4@toc@ha 1022 addi 7, 7, .LCPI1_4@toc@l 1023 vadduwm 4, 9, 4 1024 lvx 11, 0, 7 1025 addis 7, 2, .LCPI1_6@toc@ha 1026 addi 7, 7, .LCPI1_6@toc@l 1027 vadduwm 7, 4, 6 1028 lvx 4, 0, 6 1029 addis 6, 2, .LCPI1_3@toc@ha 1030 addi 6, 6, .LCPI1_3@toc@l 1031 vperm 11, 0, 5, 11 1032 lvx 0, 0, 7 1033 li 7, 32 1034 xxlxor 40, 39, 34 1035 lvx 10, 0, 6 1036 addis 6, 2, .LCPI1_5@toc@ha 1037 lxvd2x 0, 4, 7 1038 vcmpgtsb 2, 1, 4 1039 addi 6, 6, .LCPI1_5@toc@l 1040 vperm 4, 8, 8, 3 1041 vspltisw 8, 10 1042 xxlandc 44, 36, 34 1043 vadduwm 4, 8, 8 1044 vadduwm 8, 12, 10 1045 xxlxor 37, 40, 38 1046 vrlw 6, 5, 4 1047 vadduwm 5, 7, 11 1048 vadduwm 7, 6, 5 1049 lvx 5, 0, 6 1050 li 6, 48 1051 lxvd2x 1, 4, 6 1052 addis 4, 2, .LCPI1_7@toc@ha 1053 xxlxor 42, 39, 44 1054 addi 4, 4, .LCPI1_7@toc@l 1055 vcmpgtsb 5, 1, 5 1056 vperm 1, 10, 10, 0 1057 xxswapd 42, 0 1058 xxswapd 44, 1 1059 vpkudum 16, 12, 10 1060 xxlandc 47, 33, 37 1061 vsubuwm 1, 14, 13 1062 lvx 14, 0, 4 1063 addis 4, 2, .LCPI1_8@toc@ha 1064 vadduwm 8, 15, 8 1065 xxswapd 45, 47 1066 addi 4, 4, .LCPI1_8@toc@l 1067 xxlxor 38, 40, 38 1068 xxsldwi 40, 40, 40, 3 1069 vadduwm 7, 7, 16 1070 xxsldwi 48, 48, 48, 1 1071 vrlw 6, 6, 1 1072 xxsldwi 39, 39, 39, 1 1073 vperm 14, 10, 12, 14 1074 vadduwm 7, 6, 7 1075 xxlxor 45, 39, 45 1076 vperm 13, 13, 13, 3 1077 xxlandc 45, 45, 34 1078 vadduwm 8, 13, 8 1079 xxlxor 38, 40, 38 1080 vrlw 10, 6, 4 1081 vadduwm 6, 7, 14 1082 vadduwm 7, 10, 6 1083 xxlxor 38, 39, 45 1084 vperm 12, 6, 6, 0 1085 lvx 6, 0, 4 1086 addis 4, 2, .LCPI1_10@toc@ha 1087 addi 4, 4, .LCPI1_10@toc@l 1088 vperm 13, 11, 9, 6 1089 xxlandc 44, 44, 37 1090 vadduwm 15, 12, 8 1091 vadduwm 7, 7, 13 1092 xxsldwi 45, 45, 45, 3 1093 xxlxor 40, 47, 42 1094 xxsldwi 47, 47, 47, 1 1095 xxsldwi 39, 39, 39, 3 1096 vrlw 10, 8, 1 1097 xxswapd 40, 44 1098 vadduwm 17, 10, 7 1099 lvx 7, 0, 4 1100 addi 4, 11, .LCPI1_9@toc@l 1101 xxlxor 44, 49, 40 1102 lvx 8, 0, 4 1103 addis 4, 2, .LCPI1_11@toc@ha 1104 vperm 18, 9, 9, 7 1105 addi 4, 4, .LCPI1_11@toc@l 1106 vperm 12, 12, 12, 3 1107 lvx 9, 0, 4 1108 addis 4, 2, .LCPI1_12@toc@ha 1109 vperm 19, 14, 16, 8 1110 addi 4, 4, .LCPI1_12@toc@l 1111 xxlandc 63, 44, 34 1112 vperm 12, 19, 18, 9 1113 vadduwm 15, 31, 15 1114 xxlxor 42, 47, 42 1115 vrlw 18, 10, 4 1116 vadduwm 10, 17, 12 1117 vadduwm 17, 18, 10 1118 xxlxor 42, 49, 63 1119 xxmrgld 63, 43, 46 1120 xxsldwi 49, 49, 49, 1 1121 vmrghw 14, 14, 11 1122 vperm 19, 10, 10, 0 1123 lvx 10, 0, 4 1124 addis 4, 2, .LCPI1_13@toc@ha 1125 addi 4, 4, .LCPI1_13@toc@l 1126 lvx 11, 0, 4 1127 addis 4, 2, .LCPI1_14@toc@ha 1128 vperm 31, 16, 31, 10 1129 addi 4, 4, .LCPI1_14@toc@l 1130 vperm 14, 14, 16, 11 1131 xxlandc 51, 51, 37 1132 vadduwm 15, 19, 15 1133 xxswapd 51, 51 1134 vadduwm 17, 17, 31 1135 xxlxor 50, 47, 50 1136 xxsldwi 47, 47, 47, 3 1137 vperm 30, 14, 31, 8 1138 vrlw 18, 18, 1 1139 vadduwm 17, 18, 17 1140 xxlxor 51, 49, 51 1141 vadduwm 17, 17, 14 1142 vperm 19, 19, 19, 3 1143 xxlandc 51, 51, 34 1144 vadduwm 15, 19, 15 1145 xxlxor 48, 47, 50 1146 vrlw 16, 16, 4 1147 vadduwm 17, 16, 17 1148 xxlxor 50, 49, 51 1149 vperm 19, 12, 13, 6 1150 vperm 18, 18, 18, 0 1151 vperm 13, 13, 13, 7 1152 vadduwm 17, 17, 19 1153 xxlandc 50, 50, 37 1154 xxsldwi 49, 49, 49, 3 1155 vperm 13, 30, 13, 9 1156 vadduwm 15, 18, 15 1157 xxswapd 50, 50 1158 xxmrgld 62, 44, 46 1159 vmrghw 12, 14, 12 1160 xxlxor 48, 47, 48 1161 xxsldwi 47, 47, 47, 1 1162 vrlw 16, 16, 1 1163 vperm 30, 31, 30, 10 1164 vperm 12, 12, 31, 11 1165 vadduwm 17, 16, 17 1166 xxlxor 50, 49, 50 1167 vadduwm 17, 17, 13 1168 vperm 18, 18, 18, 3 1169 vperm 31, 12, 30, 8 1170 xxlandc 50, 50, 34 1171 vadduwm 15, 18, 15 1172 xxlxor 48, 47, 48 1173 vrlw 16, 16, 4 1174 vadduwm 17, 16, 17 1175 xxlxor 50, 49, 50 1176 xxsldwi 49, 49, 49, 1 1177 vperm 18, 18, 18, 0 1178 vadduwm 17, 17, 30 1179 xxlandc 50, 50, 37 1180 vadduwm 15, 18, 15 1181 xxswapd 50, 50 1182 xxlxor 48, 47, 48 1183 xxsldwi 46, 47, 47, 3 1184 vrlw 16, 16, 1 1185 vadduwm 17, 16, 17 1186 xxlxor 50, 49, 50 1187 vadduwm 17, 17, 12 1188 vperm 18, 18, 18, 3 1189 xxlandc 47, 50, 34 1190 xxsldwi 50, 51, 51, 3 1191 vadduwm 14, 15, 14 1192 vperm 19, 13, 18, 6 1193 xxlxor 48, 46, 48 1194 vperm 18, 18, 18, 7 1195 vrlw 16, 16, 4 1196 vadduwm 17, 16, 17 1197 xxlxor 47, 49, 47 1198 vadduwm 17, 17, 19 1199 vperm 15, 15, 15, 0 1200 xxsldwi 49, 49, 49, 3 1201 xxlandc 47, 47, 37 1202 vadduwm 14, 15, 14 1203 xxswapd 47, 47 1204 xxlxor 48, 46, 48 1205 xxsldwi 46, 46, 46, 1 1206 vrlw 16, 16, 1 1207 vadduwm 17, 16, 17 1208 xxlxor 47, 49, 47 1209 vperm 15, 15, 15, 3 1210 xxlandc 47, 47, 34 1211 vadduwm 29, 15, 14 1212 vperm 14, 31, 18, 9 1213 xxmrgld 50, 45, 44 1214 xxlxor 48, 61, 48 1215 vmrghw 12, 12, 13 1216 vrlw 16, 16, 4 1217 vperm 18, 30, 18, 10 1218 vadduwm 17, 17, 14 1219 vadduwm 17, 16, 17 1220 xxlxor 47, 49, 47 1221 xxsldwi 49, 49, 49, 1 1222 vperm 15, 15, 15, 0 1223 vadduwm 17, 17, 18 1224 xxlandc 47, 47, 37 1225 vadduwm 31, 15, 29 1226 xxswapd 47, 47 1227 xxlxor 48, 63, 48 1228 xxsldwi 45, 63, 63, 3 1229 vperm 31, 12, 30, 11 1230 vrlw 16, 16, 1 1231 vadduwm 17, 16, 17 1232 xxlxor 47, 49, 47 1233 vperm 15, 15, 15, 3 1234 xxlandc 47, 47, 34 1235 vadduwm 13, 15, 13 1236 xxlxor 44, 45, 48 1237 vadduwm 16, 17, 31 1238 xxsldwi 49, 51, 51, 3 1239 vrlw 12, 12, 4 1240 vperm 19, 14, 17, 6 1241 vadduwm 16, 12, 16 1242 xxlxor 47, 48, 47 1243 vperm 15, 15, 15, 0 1244 xxlandc 47, 47, 37 1245 vadduwm 13, 15, 13 1246 xxswapd 47, 47 1247 xxlxor 44, 45, 44 1248 xxsldwi 45, 45, 45, 1 1249 vrlw 30, 12, 1 1250 vadduwm 12, 16, 19 1251 xxsldwi 44, 44, 44, 3 1252 vadduwm 16, 30, 12 1253 xxlxor 44, 48, 47 1254 vperm 15, 17, 17, 7 1255 vperm 12, 12, 12, 3 1256 vperm 17, 31, 18, 8 1257 xxlandc 61, 44, 34 1258 vperm 12, 17, 15, 9 1259 vadduwm 13, 29, 13 1260 xxlxor 47, 45, 62 1261 xxmrgld 62, 46, 63 1262 vmrghw 14, 31, 14 1263 vrlw 15, 15, 4 1264 vadduwm 16, 16, 12 1265 vperm 30, 18, 30, 10 1266 vperm 14, 14, 18, 11 1267 xxsldwi 50, 51, 51, 3 1268 vadduwm 16, 15, 16 1269 xxlxor 49, 48, 61 1270 xxsldwi 48, 48, 48, 1 1271 vperm 19, 12, 18, 6 1272 vperm 17, 17, 17, 0 1273 vadduwm 16, 16, 30 1274 xxmrgld 60, 44, 46 1275 vmrghw 12, 14, 12 1276 vperm 28, 30, 28, 10 1277 xxlandc 49, 49, 37 1278 vadduwm 13, 17, 13 1279 xxswapd 49, 49 1280 vperm 12, 12, 30, 11 1281 xxlxor 47, 45, 47 1282 xxsldwi 45, 45, 45, 3 1283 vrlw 15, 15, 1 1284 vperm 8, 12, 28, 8 1285 vadduwm 16, 15, 16 1286 xxlxor 49, 48, 49 1287 vadduwm 16, 16, 14 1288 vperm 17, 17, 17, 3 1289 xxlandc 49, 49, 34 1290 vadduwm 13, 17, 13 1291 xxlxor 47, 45, 47 1292 vrlw 15, 15, 4 1293 vadduwm 16, 15, 16 1294 xxlxor 49, 48, 49 1295 vperm 17, 17, 17, 0 1296 xxlandc 49, 49, 37 1297 vadduwm 31, 17, 13 1298 xxlxor 45, 63, 47 1299 vrlw 15, 13, 1 1300 vadduwm 13, 16, 19 1301 xxswapd 48, 49 1302 xxsldwi 51, 51, 51, 3 1303 xxsldwi 45, 45, 45, 3 1304 vadduwm 17, 15, 13 1305 xxlxor 45, 49, 48 1306 lvx 16, 0, 4 1307 vperm 29, 13, 13, 3 1308 vperm 13, 18, 18, 7 1309 xxsldwi 50, 63, 63, 1 1310 vperm 16, 14, 30, 16 1311 vperm 7, 19, 19, 7 1312 xxlandc 63, 61, 34 1313 vadduwm 18, 31, 18 1314 vperm 29, 16, 13, 9 1315 xxlxor 47, 50, 47 1316 vperm 6, 16, 19, 6 1317 vrlw 15, 15, 4 1318 vperm 7, 8, 7, 9 1319 vadduwm 17, 17, 29 1320 xxmrgld 41, 61, 44 1321 vadduwm 17, 15, 17 1322 vperm 9, 28, 9, 10 1323 xxlxor 63, 49, 63 1324 xxsldwi 49, 49, 49, 1 1325 vperm 31, 31, 31, 0 1326 vadduwm 17, 17, 28 1327 xxlandc 63, 63, 37 1328 vadduwm 18, 31, 18 1329 xxswapd 63, 63 1330 xxlxor 47, 50, 47 1331 xxsldwi 46, 50, 50, 3 1332 vrlw 15, 15, 1 1333 vadduwm 17, 15, 17 1334 xxlxor 63, 49, 63 1335 vadduwm 17, 17, 12 1336 vperm 31, 31, 31, 3 1337 xxlandc 50, 63, 34 1338 vadduwm 14, 18, 14 1339 xxlxor 47, 46, 47 1340 vrlw 15, 15, 4 1341 vadduwm 17, 15, 17 1342 xxlxor 50, 49, 50 1343 vadduwm 6, 17, 6 1344 vperm 18, 18, 18, 0 1345 xxsldwi 38, 38, 38, 3 1346 xxlandc 50, 50, 37 1347 vadduwm 14, 18, 14 1348 xxswapd 48, 50 1349 xxlxor 47, 46, 47 1350 xxsldwi 46, 46, 46, 1 1351 vrlw 15, 15, 1 1352 vadduwm 6, 15, 6 1353 xxlxor 48, 38, 48 1354 vadduwm 6, 6, 7 1355 vperm 16, 16, 16, 3 1356 xxlandc 48, 48, 34 1357 vadduwm 14, 16, 14 1358 xxlxor 40, 46, 47 1359 vrlw 8, 8, 4 1360 vadduwm 6, 8, 6 1361 xxlxor 39, 38, 48 1362 xxsldwi 38, 38, 38, 1 1363 vperm 7, 7, 7, 0 1364 vadduwm 6, 6, 9 1365 xxlandc 39, 39, 37 1366 vadduwm 14, 7, 14 1367 xxswapd 39, 39 1368 xxlxor 40, 46, 40 1369 xxsldwi 41, 46, 46, 3 1370 vrlw 8, 8, 1 1371 vadduwm 6, 8, 6 1372 xxlxor 39, 38, 39 1373 vperm 3, 7, 7, 3 1374 vmrghw 7, 12, 13 1375 xxlandc 34, 35, 34 1376 vperm 7, 7, 28, 11 1377 vadduwm 3, 2, 9 1378 xxlxor 40, 35, 40 1379 vrlw 4, 8, 4 1380 vadduwm 6, 6, 7 1381 vadduwm 6, 4, 6 1382 xxlxor 34, 38, 34 1383 xxsldwi 0, 38, 38, 3 1384 vperm 2, 2, 2, 0 1385 xxlandc 34, 34, 37 1386 vadduwm 3, 2, 3 1387 xxswapd 34, 34 1388 xxlxor 36, 35, 36 1389 xxsldwi 1, 35, 35, 1 1390 vrlw 4, 4, 1 1391 xxlxor 0, 1, 0 1392 xxswapd 0, 0 1393 xxlxor 2, 36, 34 1394 stxvd2x 0, 0, 8 1395 xxswapd 2, 2 1396 stxvd2x 2, 8, 5 1397 lfdx 0, 0, 3 1398 lfd 2, 8(3) 1399 xxmrghd 35, 2, 0 1400 xxlxor 0, 1, 35 1401 xxswapd 0, 0 1402 stxvd2x 0, 8, 7 1403 lfd 0, 16(3) 1404 lfd 1, 24(3) 1405 li 3, -16 1406 xxmrghd 35, 1, 0 1407 xxlxor 0, 34, 35 1408 xxswapd 0, 0 1409 stxvd2x 0, 8, 6 1410 lxvd2x 63, 1, 3 1411 li 3, -32 1412 lxvd2x 62, 1, 3 1413 li 3, -48 1414 lxvd2x 61, 1, 3 1415 li 3, -64 1416 lxvd2x 60, 1, 3 1417 blr 1418 .long 0 1419 .quad 0 1420.Lfunc_end1: 1421 .size zfs_blake3_compress_xof_sse41, .Lfunc_end1-.Lfunc_begin1 1422 .cfi_endproc 1423 1424 .globl zfs_blake3_hash_many_sse41 1425 .p2align 2 1426 .type zfs_blake3_hash_many_sse41,@function 1427zfs_blake3_hash_many_sse41: 1428.Lfunc_begin2: 1429 .cfi_startproc 1430.Lfunc_gep2: 1431 addis 2, 12, .TOC.-.Lfunc_gep2@ha 1432 addi 2, 2, .TOC.-.Lfunc_gep2@l 1433.Lfunc_lep2: 1434 .localentry zfs_blake3_hash_many_sse41, .Lfunc_lep2-.Lfunc_gep2 1435 mfocrf 12, 32 1436 mflr 0 1437 std 0, 16(1) 1438 stw 12, 8(1) 1439 stdu 1, -256(1) 1440 .cfi_def_cfa_offset 256 1441 .cfi_offset lr, 16 1442 .cfi_offset r17, -120 1443 .cfi_offset r18, -112 1444 .cfi_offset r19, -104 1445 .cfi_offset r20, -96 1446 .cfi_offset r21, -88 1447 .cfi_offset r22, -80 1448 .cfi_offset r23, -72 1449 .cfi_offset r24, -64 1450 .cfi_offset r25, -56 1451 .cfi_offset r26, -48 1452 .cfi_offset r27, -40 1453 .cfi_offset r28, -32 1454 .cfi_offset r29, -24 1455 .cfi_offset r30, -16 1456 .cfi_offset cr2, 8 1457 std 26, 208(1) 1458 mr 26, 4 1459 cmpldi 1, 4, 4 1460 andi. 4, 8, 1 1461 std 18, 144(1) 1462 std 19, 152(1) 1463 crmove 8, 1 1464 ld 19, 360(1) 1465 lwz 18, 352(1) 1466 std 24, 192(1) 1467 std 25, 200(1) 1468 std 27, 216(1) 1469 std 28, 224(1) 1470 mr 24, 10 1471 mr 28, 6 1472 mr 27, 5 1473 mr 25, 3 1474 std 29, 232(1) 1475 std 30, 240(1) 1476 mr 30, 9 1477 mr 29, 7 1478 std 17, 136(1) 1479 std 20, 160(1) 1480 std 21, 168(1) 1481 std 22, 176(1) 1482 std 23, 184(1) 1483 blt 1, .LBB2_3 1484 li 3, 0 1485 li 4, 1 1486 clrldi 23, 30, 32 1487 isel 22, 4, 3, 8 1488 clrldi 21, 24, 32 1489 clrldi 20, 18, 32 1490.LBB2_2: 1491 mr 3, 25 1492 mr 4, 27 1493 mr 5, 28 1494 mr 6, 29 1495 mr 7, 22 1496 mr 8, 23 1497 mr 9, 21 1498 mr 10, 20 1499 std 19, 32(1) 1500 bl blake3_hash4_sse41 1501 addi 26, 26, -4 1502 addi 3, 29, 4 1503 addi 25, 25, 32 1504 addi 19, 19, 128 1505 cmpldi 26, 3 1506 isel 29, 3, 29, 8 1507 bgt 0, .LBB2_2 1508.LBB2_3: 1509 cmpldi 26, 0 1510 beq 0, .LBB2_11 1511 li 3, 0 1512 li 4, 1 1513 or 21, 24, 30 1514 li 20, 16 1515 addi 24, 1, 96 1516 isel 22, 4, 3, 8 1517.LBB2_5: 1518 lxvd2x 0, 28, 20 1519 ld 23, 0(25) 1520 mr 17, 27 1521 mr 3, 21 1522 stxvd2x 0, 24, 20 1523 lxvd2x 0, 0, 28 1524 stxvd2x 0, 0, 24 1525.LBB2_6: 1526 cmpldi 17, 1 1527 beq 0, .LBB2_8 1528 cmpldi 17, 0 1529 bne 0, .LBB2_9 1530 b .LBB2_10 1531.LBB2_8: 1532 or 3, 3, 18 1533.LBB2_9: 1534 clrldi 7, 3, 56 1535 mr 3, 24 1536 mr 4, 23 1537 li 5, 64 1538 mr 6, 29 1539 bl zfs_blake3_compress_in_place_sse41 1540 addi 23, 23, 64 1541 addi 17, 17, -1 1542 mr 3, 30 1543 b .LBB2_6 1544.LBB2_10: 1545 lxvd2x 0, 24, 20 1546 addi 26, 26, -1 1547 add 29, 29, 22 1548 addi 25, 25, 8 1549 cmpldi 26, 0 1550 stxvd2x 0, 19, 20 1551 lxvd2x 0, 0, 24 1552 stxvd2x 0, 0, 19 1553 addi 19, 19, 32 1554 bne 0, .LBB2_5 1555.LBB2_11: 1556 ld 30, 240(1) 1557 ld 29, 232(1) 1558 ld 28, 224(1) 1559 ld 27, 216(1) 1560 ld 26, 208(1) 1561 ld 25, 200(1) 1562 ld 24, 192(1) 1563 ld 23, 184(1) 1564 ld 22, 176(1) 1565 ld 21, 168(1) 1566 ld 20, 160(1) 1567 ld 19, 152(1) 1568 ld 18, 144(1) 1569 ld 17, 136(1) 1570 addi 1, 1, 256 1571 ld 0, 16(1) 1572 lwz 12, 8(1) 1573 mtocrf 32, 12 1574 mtlr 0 1575 blr 1576 .long 0 1577 .quad 0 1578.Lfunc_end2: 1579 .size zfs_blake3_hash_many_sse41, .Lfunc_end2-.Lfunc_begin2 1580 .cfi_endproc 1581 1582 .section .rodata.cst16,"aM",@progbits,16 1583 .p2align 4 1584.LCPI3_0: 1585 .quad 4294967296 1586 .quad 12884901890 1587.LCPI3_1: 1588 .byte 2 1589 .byte 3 1590 .byte 0 1591 .byte 1 1592 .byte 6 1593 .byte 7 1594 .byte 4 1595 .byte 5 1596 .byte 10 1597 .byte 11 1598 .byte 8 1599 .byte 9 1600 .byte 14 1601 .byte 15 1602 .byte 12 1603 .byte 13 1604.LCPI3_2: 1605 .byte 1 1606 .byte 2 1607 .byte 3 1608 .byte 0 1609 .byte 5 1610 .byte 6 1611 .byte 7 1612 .byte 4 1613 .byte 9 1614 .byte 10 1615 .byte 11 1616 .byte 8 1617 .byte 13 1618 .byte 14 1619 .byte 15 1620 .byte 12 1621.LCPI3_3: 1622 .byte 29 1623 .byte 28 1624 .byte 31 1625 .byte 30 1626 .byte 25 1627 .byte 24 1628 .byte 27 1629 .byte 26 1630 .byte 21 1631 .byte 20 1632 .byte 23 1633 .byte 22 1634 .byte 17 1635 .byte 16 1636 .byte 19 1637 .byte 18 1638.LCPI3_4: 1639 .long 1779033703 1640 .long 1779033703 1641 .long 1779033703 1642 .long 1779033703 1643.LCPI3_5: 1644 .long 3144134277 1645 .long 3144134277 1646 .long 3144134277 1647 .long 3144134277 1648.LCPI3_6: 1649 .long 1013904242 1650 .long 1013904242 1651 .long 1013904242 1652 .long 1013904242 1653.LCPI3_7: 1654 .long 2773480762 1655 .long 2773480762 1656 .long 2773480762 1657 .long 2773480762 1658.LCPI3_8: 1659 .byte 30 1660 .byte 29 1661 .byte 28 1662 .byte 31 1663 .byte 26 1664 .byte 25 1665 .byte 24 1666 .byte 27 1667 .byte 22 1668 .byte 21 1669 .byte 20 1670 .byte 23 1671 .byte 18 1672 .byte 17 1673 .byte 16 1674 .byte 19 1675 .text 1676 .p2align 2 1677 .type blake3_hash4_sse41,@function 1678blake3_hash4_sse41: 1679.Lfunc_begin3: 1680 .cfi_startproc 1681.Lfunc_gep3: 1682 addis 2, 12, .TOC.-.Lfunc_gep3@ha 1683 addi 2, 2, .TOC.-.Lfunc_gep3@l 1684.Lfunc_lep3: 1685 .localentry blake3_hash4_sse41, .Lfunc_lep3-.Lfunc_gep3 1686 stdu 1, -416(1) 1687 .cfi_def_cfa_offset 416 1688 .cfi_offset r22, -176 1689 .cfi_offset r23, -168 1690 .cfi_offset r24, -160 1691 .cfi_offset r25, -152 1692 .cfi_offset r26, -144 1693 .cfi_offset r27, -136 1694 .cfi_offset r28, -128 1695 .cfi_offset r29, -120 1696 .cfi_offset r30, -112 1697 .cfi_offset f20, -96 1698 .cfi_offset f21, -88 1699 .cfi_offset f22, -80 1700 .cfi_offset f23, -72 1701 .cfi_offset f24, -64 1702 .cfi_offset f25, -56 1703 .cfi_offset f26, -48 1704 .cfi_offset f27, -40 1705 .cfi_offset f28, -32 1706 .cfi_offset f29, -24 1707 .cfi_offset f30, -16 1708 .cfi_offset f31, -8 1709 .cfi_offset v20, -368 1710 .cfi_offset v21, -352 1711 .cfi_offset v22, -336 1712 .cfi_offset v23, -320 1713 .cfi_offset v24, -304 1714 .cfi_offset v25, -288 1715 .cfi_offset v26, -272 1716 .cfi_offset v27, -256 1717 .cfi_offset v28, -240 1718 .cfi_offset v29, -224 1719 .cfi_offset v30, -208 1720 .cfi_offset v31, -192 1721 li 11, 48 1722 li 0, 8 1723 std 30, 304(1) 1724 li 30, 12 1725 li 12, 4 1726 lfiwzx 0, 0, 5 1727 stxvd2x 52, 1, 11 1728 li 11, 64 1729 lfiwzx 2, 5, 0 1730 li 0, 20 1731 lfiwzx 3, 5, 30 1732 stxvd2x 53, 1, 11 1733 li 11, 80 1734 li 30, 24 1735 lfiwzx 4, 5, 0 1736 li 0, 28 1737 stxvd2x 54, 1, 11 1738 li 11, 96 1739 lfiwzx 1, 5, 12 1740 lfiwzx 6, 5, 30 1741 xxspltw 47, 0, 1 1742 cmpldi 4, 0 1743 std 22, 240(1) 1744 stxvd2x 55, 1, 11 1745 li 11, 112 1746 lfiwzx 7, 5, 0 1747 xxspltw 40, 2, 1 1748 std 23, 248(1) 1749 xxspltw 39, 3, 1 1750 std 24, 256(1) 1751 std 25, 264(1) 1752 xxspltw 51, 1, 1 1753 xxspltw 43, 6, 1 1754 std 26, 272(1) 1755 xxspltw 41, 7, 1 1756 std 27, 280(1) 1757 std 28, 288(1) 1758 std 29, 296(1) 1759 stxvd2x 56, 1, 11 1760 li 11, 128 1761 stfd 20, 320(1) 1762 stxvd2x 57, 1, 11 1763 li 11, 144 1764 stfd 21, 328(1) 1765 stxvd2x 58, 1, 11 1766 li 11, 160 1767 stfd 22, 336(1) 1768 stxvd2x 59, 1, 11 1769 li 11, 176 1770 stfd 23, 344(1) 1771 stxvd2x 60, 1, 11 1772 li 11, 192 1773 stfd 24, 352(1) 1774 stxvd2x 61, 1, 11 1775 li 11, 208 1776 stfd 25, 360(1) 1777 stxvd2x 62, 1, 11 1778 li 11, 224 1779 stfd 26, 368(1) 1780 stxvd2x 63, 1, 11 1781 li 11, 16 1782 xxspltw 63, 4, 1 1783 lfiwzx 5, 5, 11 1784 ld 5, 448(1) 1785 stfd 27, 376(1) 1786 stfd 28, 384(1) 1787 stfd 29, 392(1) 1788 stfd 30, 400(1) 1789 stfd 31, 408(1) 1790 xxspltw 50, 5, 1 1791 beq 0, .LBB3_5 1792 addis 30, 2, .LCPI3_0@toc@ha 1793 neg 7, 7 1794 xxleqv 34, 34, 34 1795 addis 28, 2, .LCPI3_5@toc@ha 1796 addis 27, 2, .LCPI3_6@toc@ha 1797 addis 26, 2, .LCPI3_7@toc@ha 1798 addis 29, 2, .LCPI3_4@toc@ha 1799 addis 25, 2, .LCPI3_8@toc@ha 1800 addi 0, 30, .LCPI3_0@toc@l 1801 mtfprwz 2, 7 1802 addis 7, 2, .LCPI3_1@toc@ha 1803 addis 30, 2, .LCPI3_3@toc@ha 1804 addi 24, 29, .LCPI3_4@toc@l 1805 ld 29, 24(3) 1806 lxvd2x 1, 0, 0 1807 mtfprwz 0, 6 1808 rldicl 6, 6, 32, 32 1809 addi 0, 30, .LCPI3_3@toc@l 1810 ld 30, 16(3) 1811 xxspltw 2, 2, 1 1812 vslw 2, 2, 2 1813 xxspltw 37, 0, 1 1814 mtfprwz 0, 6 1815 addi 6, 7, .LCPI3_1@toc@l 1816 addis 7, 2, .LCPI3_2@toc@ha 1817 xxswapd 35, 1 1818 xxlxor 36, 36, 36 1819 xxspltw 33, 0, 1 1820 xxland 35, 2, 35 1821 vadduwm 0, 3, 5 1822 lvx 5, 0, 6 1823 addi 6, 7, .LCPI3_2@toc@l 1824 ld 7, 8(3) 1825 xxlor 35, 35, 34 1826 xxlxor 34, 32, 34 1827 xxlor 9, 32, 32 1828 lvx 0, 0, 6 1829 ld 6, 0(3) 1830 addi 3, 3, -8 1831 vcmpgtsw 2, 3, 2 1832 lvx 3, 0, 0 1833 addi 0, 28, .LCPI3_5@toc@l 1834 addi 28, 27, .LCPI3_6@toc@l 1835 addi 27, 26, .LCPI3_7@toc@l 1836 addi 26, 25, .LCPI3_8@toc@l 1837 or 25, 9, 8 1838 li 9, 0 1839 vcmpgtsb 5, 4, 5 1840 vcmpgtsb 0, 4, 0 1841 xxlor 11, 35, 35 1842 lvx 3, 0, 24 1843 xxlor 12, 35, 35 1844 vsubuwm 2, 1, 2 1845 xxlnor 10, 37, 37 1846 xxlor 13, 34, 34 1847 lvx 2, 0, 0 1848 li 0, 32 1849 xxlnor 31, 32, 32 1850 xxlor 30, 34, 34 1851 lvx 2, 0, 28 1852 li 28, 48 1853 xxlor 29, 34, 34 1854 lvx 2, 0, 27 1855 li 27, 0 1856 xxlor 28, 34, 34 1857 lvx 2, 0, 26 1858 xxlor 27, 34, 34 1859.LBB3_2: 1860 mr 26, 27 1861 addi 27, 27, 1 1862 xxlor 23, 39, 39 1863 cmpld 27, 4 1864 sldi 26, 26, 6 1865 xxlor 24, 40, 40 1866 iseleq 24, 10, 9 1867 add 23, 6, 26 1868 add 22, 30, 26 1869 lxvd2x 0, 6, 26 1870 lxvd2x 1, 7, 26 1871 or 25, 24, 25 1872 add 24, 7, 26 1873 lxvd2x 2, 30, 26 1874 lxvd2x 3, 29, 26 1875 xxlor 26, 47, 47 1876 lxvd2x 4, 23, 11 1877 lxvd2x 6, 24, 11 1878 clrlwi 25, 25, 24 1879 xxlor 25, 51, 51 1880 lxvd2x 7, 22, 11 1881 lxvd2x 8, 23, 0 1882 mtfprd 5, 25 1883 add 25, 29, 26 1884 xxswapd 34, 0 1885 lxvd2x 0, 25, 11 1886 xxswapd 38, 1 1887 xxswapd 32, 2 1888 lxvd2x 1, 24, 0 1889 lxvd2x 2, 22, 0 1890 xxswapd 40, 3 1891 xxswapd 39, 4 1892 lxvd2x 3, 25, 0 1893 lxvd2x 4, 23, 28 1894 xxswapd 60, 6 1895 xxswapd 47, 7 1896 lxvd2x 6, 24, 28 1897 xxswapd 57, 8 1898 lxvd2x 7, 22, 28 1899 lxvd2x 8, 25, 28 1900 xxswapd 58, 0 1901 mr 25, 3 1902 xxswapd 53, 1 1903 xxswapd 56, 2 1904 xxswapd 52, 3 1905 xxswapd 55, 4 1906 xxswapd 54, 6 1907 xxswapd 0, 5 1908 xxswapd 42, 7 1909 xxswapd 48, 8 1910 mtctr 12 1911.LBB3_3: 1912 ldu 24, 8(25) 1913 add 24, 24, 26 1914 addi 24, 24, 256 1915 dcbt 0, 24 1916 bdnz .LBB3_3 1917 vmrgew 4, 28, 7 1918 vspltisw 14, 9 1919 mr 25, 8 1920 vmrgew 27, 6, 2 1921 vspltisw 17, 4 1922 vmrglw 12, 6, 2 1923 vspltisw 19, 10 1924 vmrghw 30, 6, 2 1925 xxspltw 0, 0, 3 1926 vmrglw 2, 8, 0 1927 vmrghw 13, 8, 0 1928 xxlor 7, 36, 36 1929 vmrgew 4, 21, 25 1930 vmrglw 29, 28, 7 1931 vmrghw 1, 28, 7 1932 vmrglw 28, 26, 15 1933 xxmrgld 37, 34, 44 1934 vmrgew 7, 26, 15 1935 vmrghw 15, 26, 15 1936 xxlor 21, 36, 36 1937 vmrglw 4, 21, 25 1938 vmrghw 21, 21, 25 1939 vmrglw 25, 20, 24 1940 xxmrgld 34, 60, 61 1941 vmrghw 26, 20, 24 1942 xxlor 38, 26, 26 1943 vmrgew 3, 8, 0 1944 xxlor 5, 36, 36 1945 vmrgew 4, 20, 24 1946 vspltisw 24, -16 1947 vmrglw 20, 22, 23 1948 xxmrgld 57, 57, 5 1949 vmrglw 8, 16, 10 1950 vmrghw 0, 16, 10 1951 vadduwm 12, 19, 19 1952 xxlor 8, 37, 37 1953 xxlor 20, 36, 36 1954 vmrgew 4, 22, 23 1955 vmrghw 23, 22, 23 1956 xxmrgld 40, 40, 52 1957 vmrgew 22, 16, 10 1958 vsubuwm 10, 14, 24 1959 vslw 14, 17, 17 1960 vadduwm 17, 5, 6 1961 xxmrgld 37, 47, 33 1962 xxlor 22, 36, 36 1963 xxmrgld 36, 45, 62 1964 xxlor 38, 25, 25 1965 xxlor 2, 34, 34 1966 vadduwm 19, 4, 6 1967 xxmrgld 38, 39, 7 1968 xxlor 3, 36, 36 1969 xxmrghd 39, 47, 33 1970 xxlor 36, 24, 24 1971 xxmrgld 33, 58, 53 1972 vadduwm 17, 17, 18 1973 vadduwm 29, 2, 4 1974 xxmrgld 36, 35, 59 1975 xxlor 34, 23, 23 1976 xxmrghd 35, 45, 62 1977 xxlor 1, 9, 9 1978 vadduwm 28, 5, 2 1979 xxlor 1, 13, 13 1980 vadduwm 19, 19, 31 1981 vadduwm 24, 29, 11 1982 vadduwm 28, 28, 9 1983 xxlxor 61, 49, 9 1984 xxlor 1, 41, 41 1985 xxlor 41, 11, 11 1986 xxlxor 34, 51, 13 1987 vperm 29, 29, 29, 9 1988 xxlxor 46, 56, 46 1989 vperm 2, 2, 2, 9 1990 xxlxor 59, 60, 0 1991 vperm 14, 14, 14, 9 1992 vperm 30, 27, 27, 9 1993 vadduwm 19, 19, 3 1994 xxlor 4, 35, 35 1995 xxland 61, 61, 10 1996 xxlor 35, 12, 12 1997 xxland 34, 34, 10 1998 vadduwm 27, 29, 3 1999 xxlor 35, 30, 30 2000 vadduwm 17, 17, 4 2001 xxlor 26, 36, 36 2002 xxland 46, 46, 10 2003 vadduwm 3, 2, 3 2004 xxlor 36, 29, 29 2005 xxland 62, 62, 10 2006 xxlxor 45, 59, 50 2007 xxlxor 50, 35, 63 2008 vadduwm 31, 14, 4 2009 xxlor 36, 28, 28 2010 xxlor 6, 37, 37 2011 vadduwm 16, 30, 4 2012 xxlxor 43, 63, 43 2013 xxlxor 37, 48, 1 2014 vrlw 4, 13, 12 2015 vrlw 18, 18, 12 2016 vrlw 11, 11, 12 2017 vrlw 5, 5, 12 2018 vadduwm 15, 24, 6 2019 vadduwm 28, 28, 7 2020 vadduwm 17, 4, 17 2021 vadduwm 19, 18, 19 2022 vadduwm 15, 11, 15 2023 vadduwm 28, 5, 28 2024 xxlor 25, 38, 38 2025 xxlxor 61, 49, 61 2026 xxlxor 34, 51, 34 2027 xxlxor 46, 47, 46 2028 xxlxor 62, 60, 62 2029 xxlor 38, 27, 27 2030 vadduwm 19, 19, 1 2031 vperm 29, 29, 29, 6 2032 vperm 2, 2, 2, 6 2033 vperm 24, 14, 14, 6 2034 vperm 30, 30, 30, 6 2035 xxlor 5, 33, 33 2036 vadduwm 17, 17, 25 2037 xxland 61, 61, 31 2038 xxland 34, 34, 31 2039 xxland 56, 56, 31 2040 xxland 62, 62, 31 2041 vadduwm 27, 29, 27 2042 vadduwm 3, 2, 3 2043 vadduwm 31, 24, 31 2044 vadduwm 16, 30, 16 2045 xxlxor 36, 59, 36 2046 xxlxor 50, 35, 50 2047 xxlxor 43, 63, 43 2048 xxlxor 37, 48, 37 2049 vrlw 1, 18, 10 2050 xxmrgld 50, 32, 55 2051 vrlw 11, 11, 10 2052 xxmrghd 55, 32, 55 2053 vrlw 5, 5, 10 2054 vrlw 4, 4, 10 2055 vadduwm 15, 15, 8 2056 vadduwm 28, 28, 18 2057 vadduwm 17, 1, 17 2058 vadduwm 19, 11, 19 2059 vadduwm 15, 5, 15 2060 vadduwm 28, 4, 28 2061 xxlor 7, 57, 57 2062 xxlxor 62, 49, 62 2063 xxlxor 61, 51, 61 2064 xxlxor 57, 47, 34 2065 xxlxor 34, 60, 56 2066 vperm 24, 30, 30, 9 2067 xxmrgld 62, 20, 21 2068 vperm 29, 29, 29, 9 2069 vperm 25, 25, 25, 9 2070 vperm 2, 2, 2, 9 2071 vmr 14, 8 2072 xxmrghd 40, 58, 53 2073 xxmrgld 58, 54, 22 2074 vadduwm 17, 17, 30 2075 xxland 56, 56, 10 2076 vadduwm 21, 19, 8 2077 xxland 61, 61, 10 2078 xxland 51, 57, 10 2079 xxland 34, 34, 10 2080 vadduwm 31, 24, 31 2081 vadduwm 16, 29, 16 2082 vadduwm 27, 19, 27 2083 vadduwm 3, 2, 3 2084 xxlxor 33, 63, 33 2085 xxlxor 43, 48, 43 2086 xxlxor 37, 59, 37 2087 xxlxor 36, 35, 36 2088 vrlw 1, 1, 12 2089 vrlw 11, 11, 12 2090 vrlw 5, 5, 12 2091 vrlw 4, 4, 12 2092 vadduwm 0, 15, 26 2093 vadduwm 15, 28, 23 2094 vadduwm 17, 1, 17 2095 vadduwm 28, 11, 21 2096 vadduwm 0, 5, 0 2097 vadduwm 15, 4, 15 2098 xxlxor 56, 49, 56 2099 xxlxor 61, 60, 61 2100 xxlxor 51, 32, 51 2101 xxlxor 34, 47, 34 2102 vperm 24, 24, 24, 6 2103 vperm 29, 29, 29, 6 2104 vperm 19, 19, 19, 6 2105 vperm 2, 2, 2, 6 2106 vmr 13, 8 2107 xxlor 53, 3, 3 2108 xxland 56, 56, 31 2109 xxland 61, 61, 31 2110 xxland 51, 51, 31 2111 xxland 34, 34, 31 2112 vadduwm 31, 24, 31 2113 vadduwm 16, 29, 16 2114 vadduwm 27, 19, 27 2115 vadduwm 3, 2, 3 2116 xxlxor 33, 63, 33 2117 xxlxor 43, 48, 43 2118 xxlxor 36, 35, 36 2119 xxlxor 37, 59, 37 2120 vrlw 4, 4, 10 2121 vrlw 1, 1, 10 2122 vrlw 11, 11, 10 2123 vrlw 5, 5, 10 2124 xxlor 52, 4, 4 2125 xxlor 40, 2, 2 2126 vadduwm 17, 17, 21 2127 vadduwm 28, 28, 20 2128 vadduwm 0, 0, 7 2129 vadduwm 15, 15, 8 2130 vadduwm 17, 4, 17 2131 vadduwm 28, 1, 28 2132 vadduwm 0, 11, 0 2133 vadduwm 15, 5, 15 2134 xxlxor 61, 49, 61 2135 xxlxor 51, 60, 51 2136 xxlxor 34, 32, 34 2137 xxlxor 56, 47, 56 2138 vperm 29, 29, 29, 9 2139 vperm 19, 19, 19, 9 2140 vperm 2, 2, 2, 9 2141 vperm 24, 24, 24, 9 2142 vmr 25, 26 2143 xxlor 3, 39, 39 2144 xxland 61, 61, 10 2145 xxland 51, 51, 10 2146 xxland 34, 34, 10 2147 xxland 56, 56, 10 2148 vadduwm 27, 29, 27 2149 vadduwm 3, 19, 3 2150 vadduwm 31, 2, 31 2151 vadduwm 16, 24, 16 2152 xxlxor 36, 59, 36 2153 xxlxor 33, 35, 33 2154 xxlxor 43, 63, 43 2155 xxlxor 37, 48, 37 2156 vrlw 4, 4, 12 2157 vrlw 1, 1, 12 2158 vrlw 11, 11, 12 2159 vrlw 5, 5, 12 2160 xxlor 54, 6, 6 2161 xxlor 58, 5, 5 2162 xxlor 39, 8, 8 2163 vadduwm 17, 17, 22 2164 vadduwm 28, 28, 26 2165 vadduwm 0, 0, 7 2166 vadduwm 15, 15, 25 2167 vadduwm 17, 4, 17 2168 vadduwm 28, 1, 28 2169 vadduwm 0, 11, 0 2170 vadduwm 15, 5, 15 2171 xxlxor 61, 49, 61 2172 xxlxor 51, 60, 51 2173 xxlxor 34, 32, 34 2174 xxlxor 56, 47, 56 2175 vperm 29, 29, 29, 6 2176 vperm 19, 19, 19, 6 2177 vperm 2, 2, 2, 6 2178 vperm 24, 24, 24, 6 2179 xxlor 39, 26, 26 2180 vadduwm 28, 28, 14 2181 xxland 61, 61, 31 2182 xxland 51, 51, 31 2183 xxland 34, 34, 31 2184 xxland 56, 56, 31 2185 vadduwm 27, 29, 27 2186 vadduwm 3, 19, 3 2187 vadduwm 31, 2, 31 2188 vadduwm 16, 24, 16 2189 xxlxor 36, 59, 36 2190 xxlxor 33, 35, 33 2191 xxlxor 43, 63, 43 2192 xxlxor 37, 48, 37 2193 vrlw 1, 1, 10 2194 vrlw 11, 11, 10 2195 vrlw 5, 5, 10 2196 vrlw 4, 4, 10 2197 vadduwm 17, 17, 7 2198 vadduwm 0, 0, 30 2199 vadduwm 15, 15, 23 2200 vadduwm 17, 1, 17 2201 vadduwm 28, 11, 28 2202 vadduwm 0, 5, 0 2203 vadduwm 15, 4, 15 2204 xxlxor 56, 49, 56 2205 xxlxor 61, 60, 61 2206 xxlxor 51, 32, 51 2207 xxlxor 34, 47, 34 2208 vperm 24, 24, 24, 9 2209 vperm 29, 29, 29, 9 2210 vperm 19, 19, 19, 9 2211 vperm 2, 2, 2, 9 2212 xxlor 24, 55, 55 2213 vadduwm 17, 17, 13 2214 xxland 56, 56, 10 2215 xxland 61, 61, 10 2216 xxland 51, 51, 10 2217 xxland 34, 34, 10 2218 vadduwm 31, 24, 31 2219 vadduwm 16, 29, 16 2220 vadduwm 27, 19, 27 2221 vadduwm 3, 2, 3 2222 xxlxor 33, 63, 33 2223 xxlxor 43, 48, 43 2224 xxlxor 37, 59, 37 2225 xxlxor 36, 35, 36 2226 vrlw 1, 1, 12 2227 vrlw 11, 11, 12 2228 vrlw 5, 5, 12 2229 vrlw 4, 4, 12 2230 vmr 23, 13 2231 xxlor 45, 25, 25 2232 xxlor 39, 7, 7 2233 vadduwm 28, 28, 13 2234 vadduwm 0, 0, 18 2235 vadduwm 15, 15, 7 2236 vadduwm 17, 1, 17 2237 vadduwm 28, 11, 28 2238 vadduwm 0, 5, 0 2239 vadduwm 15, 4, 15 2240 xxlxor 56, 49, 56 2241 xxlxor 61, 60, 61 2242 xxlxor 51, 32, 51 2243 xxlxor 34, 47, 34 2244 vperm 24, 24, 24, 6 2245 vperm 29, 29, 29, 6 2246 vperm 19, 19, 19, 6 2247 vperm 2, 2, 2, 6 2248 xxlor 2, 46, 46 2249 xxlor 46, 3, 3 2250 xxland 56, 56, 31 2251 xxland 61, 61, 31 2252 xxland 51, 51, 31 2253 xxland 34, 34, 31 2254 vadduwm 31, 24, 31 2255 vadduwm 16, 29, 16 2256 vadduwm 27, 19, 27 2257 vadduwm 3, 2, 3 2258 xxlxor 33, 63, 33 2259 xxlxor 43, 48, 43 2260 xxlxor 36, 35, 36 2261 xxlxor 37, 59, 37 2262 vrlw 4, 4, 10 2263 vrlw 1, 1, 10 2264 vrlw 11, 11, 10 2265 vrlw 5, 5, 10 2266 vadduwm 17, 17, 20 2267 vadduwm 28, 28, 26 2268 vadduwm 0, 0, 25 2269 vadduwm 15, 15, 14 2270 vadduwm 17, 4, 17 2271 vadduwm 28, 1, 28 2272 vadduwm 0, 11, 0 2273 vadduwm 15, 5, 15 2274 xxlxor 61, 49, 61 2275 xxlxor 51, 60, 51 2276 xxlxor 34, 32, 34 2277 xxlxor 56, 47, 56 2278 vperm 29, 29, 29, 9 2279 vperm 19, 19, 19, 9 2280 vperm 2, 2, 2, 9 2281 vperm 24, 24, 24, 9 2282 xxlor 52, 2, 2 2283 vadduwm 17, 17, 8 2284 xxland 61, 61, 10 2285 xxland 51, 51, 10 2286 xxland 34, 34, 10 2287 xxland 56, 56, 10 2288 vadduwm 27, 29, 27 2289 vadduwm 3, 19, 3 2290 vadduwm 31, 2, 31 2291 vadduwm 16, 24, 16 2292 xxlxor 36, 59, 36 2293 xxlxor 33, 35, 33 2294 xxlxor 43, 63, 43 2295 xxlxor 37, 48, 37 2296 vrlw 4, 4, 12 2297 vrlw 1, 1, 12 2298 vrlw 11, 11, 12 2299 vrlw 5, 5, 12 2300 vadduwm 28, 28, 20 2301 vadduwm 0, 0, 21 2302 vadduwm 15, 15, 18 2303 vadduwm 17, 4, 17 2304 vadduwm 28, 1, 28 2305 vadduwm 0, 11, 0 2306 vadduwm 15, 5, 15 2307 xxlxor 61, 49, 61 2308 xxlxor 51, 60, 51 2309 xxlxor 34, 32, 34 2310 xxlxor 56, 47, 56 2311 vperm 29, 29, 29, 6 2312 vperm 19, 19, 19, 6 2313 vperm 2, 2, 2, 6 2314 vperm 24, 24, 24, 6 2315 vadduwm 17, 17, 22 2316 vadduwm 28, 28, 30 2317 xxland 61, 61, 31 2318 xxland 51, 51, 31 2319 xxland 34, 34, 31 2320 xxland 56, 56, 31 2321 vadduwm 27, 29, 27 2322 vadduwm 3, 19, 3 2323 vadduwm 31, 2, 31 2324 vadduwm 16, 24, 16 2325 xxlxor 36, 59, 36 2326 xxlxor 33, 35, 33 2327 xxlxor 43, 63, 43 2328 xxlxor 37, 48, 37 2329 vrlw 1, 1, 10 2330 vrlw 11, 11, 10 2331 vrlw 5, 5, 10 2332 vrlw 4, 4, 10 2333 vadduwm 0, 0, 23 2334 vadduwm 15, 15, 7 2335 vadduwm 17, 1, 17 2336 vadduwm 28, 11, 28 2337 vadduwm 0, 5, 0 2338 vadduwm 15, 4, 15 2339 xxlxor 56, 49, 56 2340 xxlxor 61, 60, 61 2341 xxlxor 51, 32, 51 2342 xxlxor 34, 47, 34 2343 vperm 24, 24, 24, 9 2344 vperm 29, 29, 29, 9 2345 vperm 19, 19, 19, 9 2346 vperm 2, 2, 2, 9 2347 xxlor 5, 4, 4 2348 xxlor 4, 58, 58 2349 xxland 56, 56, 10 2350 xxland 61, 61, 10 2351 xxland 51, 51, 10 2352 xxland 34, 34, 10 2353 vadduwm 31, 24, 31 2354 vadduwm 16, 29, 16 2355 vadduwm 27, 19, 27 2356 vadduwm 3, 2, 3 2357 xxlxor 33, 63, 33 2358 xxlxor 43, 48, 43 2359 xxlxor 37, 59, 37 2360 xxlxor 36, 35, 36 2361 vrlw 1, 1, 12 2362 vrlw 11, 11, 12 2363 vrlw 5, 5, 12 2364 vrlw 4, 4, 12 2365 xxlor 39, 8, 8 2366 xxlor 54, 24, 24 2367 xxlor 58, 26, 26 2368 vadduwm 17, 17, 13 2369 vadduwm 28, 28, 7 2370 vadduwm 0, 0, 22 2371 vadduwm 15, 15, 26 2372 vadduwm 17, 1, 17 2373 vadduwm 28, 11, 28 2374 vadduwm 0, 5, 0 2375 vadduwm 15, 4, 15 2376 xxlxor 56, 49, 56 2377 xxlxor 61, 60, 61 2378 xxlxor 51, 32, 51 2379 xxlxor 34, 47, 34 2380 vperm 24, 24, 24, 6 2381 vperm 29, 29, 29, 6 2382 vperm 19, 19, 19, 6 2383 vperm 2, 2, 2, 6 2384 xxlor 3, 53, 53 2385 xxlor 53, 4, 4 2386 xxland 56, 56, 31 2387 xxland 61, 61, 31 2388 xxland 51, 51, 31 2389 xxland 34, 34, 31 2390 vadduwm 31, 24, 31 2391 vadduwm 16, 29, 16 2392 vadduwm 27, 19, 27 2393 vadduwm 3, 2, 3 2394 xxlxor 33, 63, 33 2395 xxlxor 43, 48, 43 2396 xxlxor 36, 35, 36 2397 xxlxor 37, 59, 37 2398 vrlw 4, 4, 10 2399 vrlw 1, 1, 10 2400 vrlw 11, 11, 10 2401 vrlw 5, 5, 10 2402 vadduwm 17, 17, 21 2403 vadduwm 28, 28, 20 2404 vadduwm 0, 0, 18 2405 vadduwm 15, 15, 25 2406 vadduwm 17, 4, 17 2407 vadduwm 28, 1, 28 2408 vadduwm 0, 11, 0 2409 vadduwm 15, 5, 15 2410 xxlxor 61, 49, 61 2411 xxlxor 51, 60, 51 2412 xxlxor 34, 32, 34 2413 xxlxor 56, 47, 56 2414 vperm 29, 29, 29, 9 2415 vperm 19, 19, 19, 9 2416 vperm 2, 2, 2, 9 2417 vperm 24, 24, 24, 9 2418 xxlor 2, 55, 55 2419 vmr 23, 18 2420 xxland 61, 61, 10 2421 xxland 51, 51, 10 2422 xxland 34, 34, 10 2423 xxland 56, 56, 10 2424 vadduwm 27, 29, 27 2425 vadduwm 3, 19, 3 2426 vadduwm 31, 2, 31 2427 vadduwm 16, 24, 16 2428 xxlxor 36, 59, 36 2429 xxlxor 33, 35, 33 2430 xxlxor 43, 63, 43 2431 xxlxor 37, 48, 37 2432 vrlw 4, 4, 12 2433 vrlw 1, 1, 12 2434 vrlw 11, 11, 12 2435 vrlw 5, 5, 12 2436 xxlor 50, 5, 5 2437 vadduwm 17, 17, 14 2438 vadduwm 28, 28, 30 2439 vadduwm 0, 0, 18 2440 vadduwm 15, 15, 22 2441 vadduwm 17, 4, 17 2442 vadduwm 28, 1, 28 2443 vadduwm 0, 11, 0 2444 vadduwm 15, 5, 15 2445 xxlxor 61, 49, 61 2446 xxlxor 51, 60, 51 2447 xxlxor 34, 32, 34 2448 xxlxor 56, 47, 56 2449 vperm 29, 29, 29, 6 2450 vperm 19, 19, 19, 6 2451 vperm 2, 2, 2, 6 2452 vperm 24, 24, 24, 6 2453 xxlor 25, 40, 40 2454 vmr 8, 13 2455 xxland 61, 61, 31 2456 xxland 51, 51, 31 2457 xxland 34, 34, 31 2458 xxland 56, 56, 31 2459 vadduwm 27, 29, 27 2460 vadduwm 3, 19, 3 2461 vadduwm 31, 2, 31 2462 vadduwm 16, 24, 16 2463 xxlxor 36, 59, 36 2464 xxlxor 33, 35, 33 2465 xxlxor 43, 63, 43 2466 xxlxor 37, 48, 37 2467 xxlor 45, 25, 25 2468 vrlw 1, 1, 10 2469 vrlw 11, 11, 10 2470 vrlw 5, 5, 10 2471 vrlw 4, 4, 10 2472 vadduwm 17, 17, 13 2473 xxlor 45, 2, 2 2474 vadduwm 0, 0, 8 2475 vadduwm 28, 28, 13 2476 vadduwm 15, 15, 26 2477 vadduwm 17, 1, 17 2478 vadduwm 28, 11, 28 2479 vadduwm 0, 5, 0 2480 vadduwm 15, 4, 15 2481 xxlxor 56, 49, 56 2482 xxlxor 61, 60, 61 2483 xxlxor 51, 32, 51 2484 xxlxor 34, 47, 34 2485 vperm 24, 24, 24, 9 2486 vperm 29, 29, 29, 9 2487 vperm 19, 19, 19, 9 2488 vperm 2, 2, 2, 9 2489 xxlor 4, 57, 57 2490 xxlor 26, 46, 46 2491 xxland 56, 56, 10 2492 xxland 61, 61, 10 2493 xxland 51, 51, 10 2494 xxland 34, 34, 10 2495 vadduwm 31, 24, 31 2496 vadduwm 16, 29, 16 2497 vadduwm 27, 19, 27 2498 vadduwm 3, 2, 3 2499 xxlxor 33, 63, 33 2500 xxlxor 43, 48, 43 2501 xxlxor 37, 59, 37 2502 xxlxor 36, 35, 36 2503 vrlw 1, 1, 12 2504 vrlw 11, 11, 12 2505 vrlw 5, 5, 12 2506 vrlw 4, 4, 12 2507 xxlor 8, 62, 62 2508 xxlor 57, 3, 3 2509 xxlor 46, 7, 7 2510 xxlor 62, 6, 6 2511 vadduwm 17, 17, 7 2512 vadduwm 28, 28, 25 2513 vadduwm 0, 0, 14 2514 vadduwm 15, 15, 30 2515 vadduwm 17, 1, 17 2516 vadduwm 28, 11, 28 2517 vadduwm 0, 5, 0 2518 vadduwm 15, 4, 15 2519 xxlxor 56, 49, 56 2520 xxlxor 61, 60, 61 2521 xxlxor 51, 32, 51 2522 xxlxor 34, 47, 34 2523 vperm 24, 24, 24, 6 2524 vperm 29, 29, 29, 6 2525 vperm 19, 19, 19, 6 2526 vperm 2, 2, 2, 6 2527 vadduwm 17, 17, 20 2528 xxlor 3, 52, 52 2529 xxland 56, 56, 31 2530 xxland 61, 61, 31 2531 xxland 51, 51, 31 2532 xxland 34, 34, 31 2533 vadduwm 31, 24, 31 2534 vadduwm 16, 29, 16 2535 vadduwm 27, 19, 27 2536 vadduwm 3, 2, 3 2537 xxlxor 33, 63, 33 2538 xxlxor 43, 48, 43 2539 xxlxor 36, 35, 36 2540 xxlxor 37, 59, 37 2541 vrlw 4, 4, 10 2542 vrlw 1, 1, 10 2543 vrlw 11, 11, 10 2544 vrlw 5, 5, 10 2545 xxlor 52, 8, 8 2546 vadduwm 0, 0, 22 2547 vadduwm 28, 28, 20 2548 vadduwm 15, 15, 23 2549 vadduwm 17, 4, 17 2550 vadduwm 28, 1, 28 2551 vadduwm 0, 11, 0 2552 vadduwm 15, 5, 15 2553 xxlxor 61, 49, 61 2554 xxlxor 51, 60, 51 2555 xxlxor 34, 32, 34 2556 xxlxor 56, 47, 56 2557 vperm 29, 29, 29, 9 2558 vperm 19, 19, 19, 9 2559 vperm 2, 2, 2, 9 2560 vperm 24, 24, 24, 9 2561 xxlor 6, 55, 55 2562 xxlor 55, 4, 4 2563 xxland 61, 61, 10 2564 xxland 51, 51, 10 2565 xxland 34, 34, 10 2566 xxland 56, 56, 10 2567 vadduwm 27, 29, 27 2568 vadduwm 3, 19, 3 2569 vadduwm 31, 2, 31 2570 vadduwm 16, 24, 16 2571 xxlxor 36, 59, 36 2572 xxlxor 33, 35, 33 2573 xxlxor 43, 63, 43 2574 xxlxor 37, 48, 37 2575 vrlw 4, 4, 12 2576 vrlw 1, 1, 12 2577 vrlw 11, 11, 12 2578 vrlw 5, 5, 12 2579 vadduwm 17, 17, 23 2580 vadduwm 28, 28, 13 2581 vadduwm 0, 0, 21 2582 vadduwm 15, 15, 14 2583 vadduwm 17, 4, 17 2584 vadduwm 28, 1, 28 2585 vadduwm 0, 11, 0 2586 vadduwm 15, 5, 15 2587 xxlxor 61, 49, 61 2588 xxlxor 51, 60, 51 2589 xxlxor 34, 32, 34 2590 xxlxor 56, 47, 56 2591 vperm 29, 29, 29, 6 2592 vperm 19, 19, 19, 6 2593 vperm 2, 2, 2, 6 2594 vperm 24, 24, 24, 6 2595 xxlor 4, 53, 53 2596 xxlor 53, 26, 26 2597 xxland 61, 61, 31 2598 xxland 51, 51, 31 2599 xxland 34, 34, 31 2600 xxland 56, 56, 31 2601 vadduwm 27, 29, 27 2602 vadduwm 3, 19, 3 2603 vadduwm 31, 2, 31 2604 vadduwm 16, 24, 16 2605 xxlxor 36, 59, 36 2606 xxlxor 33, 35, 33 2607 xxlxor 43, 63, 43 2608 xxlxor 37, 48, 37 2609 vrlw 1, 1, 10 2610 vrlw 11, 11, 10 2611 vrlw 5, 5, 10 2612 vrlw 4, 4, 10 2613 vadduwm 17, 17, 21 2614 vadduwm 28, 28, 8 2615 vadduwm 0, 0, 7 2616 vadduwm 15, 15, 30 2617 vadduwm 17, 1, 17 2618 vadduwm 28, 11, 28 2619 vadduwm 0, 5, 0 2620 vadduwm 15, 4, 15 2621 xxlxor 56, 49, 56 2622 xxlxor 61, 60, 61 2623 xxlxor 51, 32, 51 2624 xxlxor 34, 47, 34 2625 vperm 24, 24, 24, 9 2626 vperm 29, 29, 29, 9 2627 vperm 19, 19, 19, 9 2628 vperm 2, 2, 2, 9 2629 xxlor 5, 25, 25 2630 xxlor 2, 58, 58 2631 xxland 56, 56, 10 2632 xxland 61, 61, 10 2633 xxland 51, 51, 10 2634 xxland 34, 34, 10 2635 vadduwm 31, 24, 31 2636 vadduwm 16, 29, 16 2637 vadduwm 27, 19, 27 2638 vadduwm 3, 2, 3 2639 xxlxor 33, 63, 33 2640 xxlxor 43, 48, 43 2641 xxlxor 37, 59, 37 2642 xxlxor 36, 35, 36 2643 vrlw 1, 1, 12 2644 vrlw 11, 11, 12 2645 vrlw 5, 5, 12 2646 vrlw 4, 4, 12 2647 vmr 22, 26 2648 vadduwm 0, 0, 26 2649 xxlor 58, 5, 5 2650 vadduwm 17, 17, 25 2651 vadduwm 28, 28, 18 2652 vadduwm 15, 15, 26 2653 vadduwm 17, 1, 17 2654 vadduwm 28, 11, 28 2655 vadduwm 0, 5, 0 2656 vadduwm 15, 4, 15 2657 xxlxor 56, 49, 56 2658 xxlxor 61, 60, 61 2659 xxlxor 51, 32, 51 2660 xxlxor 34, 47, 34 2661 vperm 24, 24, 24, 6 2662 vperm 29, 29, 29, 6 2663 vperm 19, 19, 19, 6 2664 vperm 2, 2, 2, 6 2665 xxlor 7, 24, 24 2666 xxlor 8, 57, 57 2667 xxland 56, 56, 31 2668 xxland 61, 61, 31 2669 xxland 51, 51, 31 2670 xxland 34, 34, 31 2671 vadduwm 31, 24, 31 2672 vadduwm 16, 29, 16 2673 vadduwm 27, 19, 27 2674 vadduwm 3, 2, 3 2675 xxlxor 33, 63, 33 2676 xxlxor 43, 48, 43 2677 xxlxor 36, 35, 36 2678 xxlxor 37, 59, 37 2679 vrlw 4, 4, 10 2680 vrlw 1, 1, 10 2681 vrlw 11, 11, 10 2682 vrlw 5, 5, 10 2683 xxlor 57, 7, 7 2684 vadduwm 17, 17, 20 2685 vadduwm 28, 28, 13 2686 vadduwm 0, 0, 14 2687 vadduwm 15, 15, 25 2688 vadduwm 17, 4, 17 2689 vadduwm 28, 1, 28 2690 vadduwm 0, 11, 0 2691 vadduwm 15, 5, 15 2692 xxlxor 61, 49, 61 2693 xxlxor 51, 60, 51 2694 xxlxor 34, 32, 34 2695 xxlxor 56, 47, 56 2696 vperm 29, 29, 29, 9 2697 vperm 19, 19, 19, 9 2698 vperm 2, 2, 2, 9 2699 vperm 24, 24, 24, 9 2700 xxlor 5, 52, 52 2701 xxlor 23, 45, 45 2702 xxland 61, 61, 10 2703 xxland 51, 51, 10 2704 xxland 34, 34, 10 2705 xxland 56, 56, 10 2706 vadduwm 27, 29, 27 2707 vadduwm 3, 19, 3 2708 vadduwm 31, 2, 31 2709 vadduwm 16, 24, 16 2710 xxlxor 36, 59, 36 2711 xxlxor 33, 35, 33 2712 xxlxor 43, 63, 43 2713 xxlxor 37, 48, 37 2714 vrlw 4, 4, 12 2715 vrlw 1, 1, 12 2716 vrlw 11, 11, 12 2717 vrlw 5, 5, 12 2718 xxlor 52, 6, 6 2719 vadduwm 28, 28, 8 2720 vmr 13, 8 2721 xxlor 40, 3, 3 2722 vadduwm 17, 17, 20 2723 vadduwm 0, 0, 8 2724 vadduwm 15, 15, 22 2725 vadduwm 17, 4, 17 2726 vadduwm 28, 1, 28 2727 vadduwm 0, 11, 0 2728 vadduwm 15, 5, 15 2729 xxlxor 61, 49, 61 2730 xxlxor 51, 60, 51 2731 xxlxor 34, 32, 34 2732 xxlxor 56, 47, 56 2733 vperm 29, 29, 29, 6 2734 vperm 19, 19, 19, 6 2735 vperm 2, 2, 2, 6 2736 vperm 24, 24, 24, 6 2737 xxlor 25, 39, 39 2738 vmr 7, 30 2739 xxland 61, 61, 31 2740 xxland 51, 51, 31 2741 xxland 34, 34, 31 2742 xxland 56, 56, 31 2743 vadduwm 27, 29, 27 2744 vadduwm 3, 19, 3 2745 vadduwm 31, 2, 31 2746 vadduwm 16, 24, 16 2747 xxlxor 36, 59, 36 2748 xxlxor 33, 35, 33 2749 xxlxor 43, 63, 43 2750 xxlxor 37, 48, 37 2751 vrlw 1, 1, 10 2752 vrlw 11, 11, 10 2753 vrlw 5, 5, 10 2754 vrlw 4, 4, 10 2755 vmr 30, 18 2756 xxlor 24, 46, 46 2757 xxlor 46, 25, 25 2758 xxlor 50, 8, 8 2759 vadduwm 17, 17, 23 2760 vadduwm 28, 28, 14 2761 vadduwm 0, 0, 18 2762 vadduwm 15, 15, 26 2763 vadduwm 17, 1, 17 2764 vadduwm 28, 11, 28 2765 vadduwm 0, 5, 0 2766 vadduwm 15, 4, 15 2767 xxlxor 56, 49, 56 2768 xxlxor 61, 60, 61 2769 xxlxor 51, 32, 51 2770 xxlxor 34, 47, 34 2771 vperm 24, 24, 24, 9 2772 vperm 29, 29, 29, 9 2773 vperm 19, 19, 19, 9 2774 vperm 2, 2, 2, 9 2775 xxlor 6, 58, 58 2776 xxlor 58, 4, 4 2777 xxland 56, 56, 10 2778 xxland 61, 61, 10 2779 xxland 51, 51, 10 2780 xxland 34, 34, 10 2781 vadduwm 31, 24, 31 2782 vadduwm 16, 29, 16 2783 vadduwm 27, 19, 27 2784 vadduwm 3, 2, 3 2785 xxlxor 33, 63, 33 2786 xxlxor 43, 48, 43 2787 xxlxor 37, 59, 37 2788 xxlxor 36, 35, 36 2789 vrlw 1, 1, 12 2790 vrlw 11, 11, 12 2791 vrlw 5, 5, 12 2792 vrlw 4, 4, 12 2793 vadduwm 17, 17, 30 2794 vadduwm 28, 28, 26 2795 vadduwm 0, 0, 7 2796 vadduwm 15, 15, 21 2797 vadduwm 17, 1, 17 2798 vadduwm 28, 11, 28 2799 vadduwm 0, 5, 0 2800 vadduwm 15, 4, 15 2801 xxlxor 56, 49, 56 2802 xxlxor 61, 60, 61 2803 xxlxor 51, 32, 51 2804 xxlxor 34, 47, 34 2805 vperm 24, 24, 24, 6 2806 vperm 29, 29, 29, 6 2807 vperm 19, 19, 19, 6 2808 vperm 2, 2, 2, 6 2809 xxlor 40, 23, 23 2810 vadduwm 13, 28, 13 2811 vadduwm 8, 17, 8 2812 xxland 49, 56, 31 2813 xxland 61, 61, 31 2814 xxland 51, 51, 31 2815 xxland 34, 34, 31 2816 vadduwm 31, 17, 31 2817 vadduwm 16, 29, 16 2818 vadduwm 28, 19, 27 2819 vadduwm 3, 2, 3 2820 xxlxor 33, 63, 33 2821 xxlxor 43, 48, 43 2822 xxlxor 36, 35, 36 2823 xxlxor 37, 60, 37 2824 vrlw 4, 4, 10 2825 vrlw 1, 1, 10 2826 vrlw 11, 11, 10 2827 vrlw 5, 5, 10 2828 xxlor 2, 55, 55 2829 vmr 23, 30 2830 xxlor 62, 24, 24 2831 vadduwm 0, 0, 22 2832 vadduwm 15, 15, 30 2833 vadduwm 8, 4, 8 2834 vadduwm 13, 1, 13 2835 vadduwm 0, 11, 0 2836 vadduwm 15, 5, 15 2837 xxlxor 61, 40, 61 2838 xxlxor 51, 45, 51 2839 xxlxor 34, 32, 34 2840 xxlxor 49, 47, 49 2841 vperm 29, 29, 29, 9 2842 vperm 19, 19, 19, 9 2843 vperm 2, 2, 2, 9 2844 vperm 17, 17, 17, 9 2845 vadduwm 13, 13, 14 2846 xxlor 46, 5, 5 2847 xxland 61, 61, 10 2848 xxland 51, 51, 10 2849 xxland 34, 34, 10 2850 xxland 49, 49, 10 2851 vadduwm 28, 29, 28 2852 vadduwm 3, 19, 3 2853 vadduwm 31, 2, 31 2854 vadduwm 16, 17, 16 2855 xxlxor 36, 60, 36 2856 xxlxor 33, 35, 33 2857 xxlxor 43, 63, 43 2858 xxlxor 37, 48, 37 2859 vrlw 4, 4, 12 2860 vrlw 1, 1, 12 2861 vrlw 11, 11, 12 2862 vrlw 5, 5, 12 2863 vadduwm 8, 8, 25 2864 vadduwm 0, 0, 14 2865 vadduwm 15, 15, 7 2866 vadduwm 8, 4, 8 2867 vadduwm 13, 1, 13 2868 vadduwm 0, 11, 0 2869 vadduwm 15, 5, 15 2870 xxlxor 62, 40, 61 2871 xxlxor 51, 45, 51 2872 xxlxor 34, 32, 34 2873 xxlxor 49, 47, 49 2874 vperm 30, 30, 30, 6 2875 vperm 19, 19, 19, 6 2876 vperm 2, 2, 2, 6 2877 vperm 17, 17, 17, 6 2878 vadduwm 29, 8, 20 2879 vadduwm 8, 13, 18 2880 xxland 45, 62, 31 2881 xxland 51, 51, 31 2882 xxland 34, 34, 31 2883 xxland 49, 49, 31 2884 vadduwm 30, 13, 28 2885 vadduwm 3, 19, 3 2886 vadduwm 31, 2, 31 2887 vadduwm 16, 17, 16 2888 xxlxor 36, 62, 36 2889 xxlxor 33, 35, 33 2890 xxlxor 43, 63, 43 2891 xxlxor 37, 48, 37 2892 vrlw 1, 1, 10 2893 vrlw 11, 11, 10 2894 vrlw 5, 5, 10 2895 vrlw 4, 4, 10 2896 vadduwm 0, 0, 23 2897 vadduwm 7, 15, 21 2898 vadduwm 29, 1, 29 2899 vadduwm 8, 11, 8 2900 vadduwm 0, 5, 0 2901 vadduwm 7, 4, 7 2902 xxlxor 47, 61, 49 2903 xxlxor 45, 40, 45 2904 xxlxor 49, 32, 51 2905 xxlxor 34, 39, 34 2906 vperm 15, 15, 15, 9 2907 vperm 13, 13, 13, 9 2908 vperm 17, 17, 17, 9 2909 vperm 2, 2, 2, 9 2910 xxlor 46, 3, 3 2911 vadduwm 9, 29, 26 2912 vadduwm 8, 8, 14 2913 xxland 46, 47, 10 2914 xxland 45, 45, 10 2915 xxland 47, 49, 10 2916 xxland 34, 34, 10 2917 vadduwm 17, 14, 31 2918 vadduwm 16, 13, 16 2919 vadduwm 18, 15, 30 2920 vadduwm 3, 2, 3 2921 xxlxor 33, 49, 33 2922 xxlxor 43, 48, 43 2923 xxlxor 37, 50, 37 2924 xxlxor 36, 35, 36 2925 vrlw 1, 1, 12 2926 vrlw 11, 11, 12 2927 vrlw 5, 5, 12 2928 vrlw 4, 4, 12 2929 xxlor 44, 6, 6 2930 xxlor 0, 10, 10 2931 vadduwm 0, 0, 12 2932 xxlor 44, 2, 2 2933 vadduwm 9, 1, 9 2934 vadduwm 7, 7, 12 2935 vadduwm 8, 11, 8 2936 vadduwm 7, 4, 7 2937 vadduwm 0, 5, 0 2938 xxlxor 34, 39, 34 2939 xxlxor 44, 32, 47 2940 vperm 2, 2, 2, 6 2941 xxlxor 46, 41, 46 2942 xxlxor 45, 40, 45 2943 vperm 12, 12, 12, 6 2944 vperm 14, 14, 14, 6 2945 vperm 13, 13, 13, 6 2946 xxland 34, 34, 31 2947 xxlor 1, 31, 31 2948 vadduwm 3, 2, 3 2949 xxland 44, 44, 31 2950 xxlxor 36, 35, 36 2951 xxlxor 51, 35, 40 2952 xxland 35, 46, 31 2953 xxland 38, 45, 31 2954 vadduwm 15, 12, 18 2955 vadduwm 8, 3, 17 2956 vadduwm 13, 6, 16 2957 xxlxor 37, 47, 37 2958 xxlxor 33, 40, 33 2959 xxlxor 43, 45, 43 2960 vrlw 4, 4, 10 2961 vrlw 1, 1, 10 2962 vrlw 11, 11, 10 2963 vrlw 5, 5, 10 2964 xxlxor 47, 47, 41 2965 xxlxor 40, 40, 32 2966 xxlxor 39, 45, 39 2967 xxlxor 50, 36, 38 2968 xxlxor 63, 33, 44 2969 xxlxor 43, 43, 34 2970 xxlxor 41, 37, 35 2971 bne 0, .LBB3_2 2972.LBB3_5: 2973 vmrglw 2, 19, 15 2974 li 3, 32 2975 li 4, 48 2976 vmrglw 4, 7, 8 2977 vmrglw 0, 31, 18 2978 vmrglw 1, 9, 11 2979 vmrghw 3, 19, 15 2980 vmrghw 5, 7, 8 2981 vmrghw 6, 31, 18 2982 vmrghw 7, 9, 11 2983 xxmrgld 40, 36, 34 2984 xxmrghd 34, 36, 34 2985 xxmrgld 41, 33, 32 2986 xxswapd 0, 40 2987 xxmrgld 36, 37, 35 2988 xxmrghd 35, 37, 35 2989 xxmrghd 37, 33, 32 2990 xxswapd 1, 41 2991 xxmrgld 32, 39, 38 2992 xxmrghd 33, 39, 38 2993 xxswapd 2, 34 2994 xxswapd 4, 36 2995 xxswapd 3, 37 2996 stxvd2x 0, 0, 5 2997 xxswapd 5, 32 2998 stxvd2x 1, 5, 11 2999 xxswapd 0, 35 3000 xxswapd 1, 33 3001 stxvd2x 2, 5, 3 3002 li 3, 64 3003 stxvd2x 3, 5, 4 3004 li 4, 80 3005 stxvd2x 4, 5, 3 3006 li 3, 96 3007 stxvd2x 5, 5, 4 3008 li 4, 112 3009 stxvd2x 0, 5, 3 3010 stxvd2x 1, 5, 4 3011 li 3, 224 3012 lxvd2x 63, 1, 3 3013 li 3, 208 3014 lfd 31, 408(1) 3015 ld 30, 304(1) 3016 ld 29, 296(1) 3017 lxvd2x 62, 1, 3 3018 li 3, 192 3019 lfd 30, 400(1) 3020 ld 28, 288(1) 3021 ld 27, 280(1) 3022 lxvd2x 61, 1, 3 3023 li 3, 176 3024 lfd 29, 392(1) 3025 ld 26, 272(1) 3026 ld 25, 264(1) 3027 lxvd2x 60, 1, 3 3028 li 3, 160 3029 lfd 28, 384(1) 3030 ld 24, 256(1) 3031 ld 23, 248(1) 3032 lxvd2x 59, 1, 3 3033 li 3, 144 3034 lfd 27, 376(1) 3035 ld 22, 240(1) 3036 lxvd2x 58, 1, 3 3037 li 3, 128 3038 lfd 26, 368(1) 3039 lxvd2x 57, 1, 3 3040 li 3, 112 3041 lfd 25, 360(1) 3042 lxvd2x 56, 1, 3 3043 li 3, 96 3044 lfd 24, 352(1) 3045 lxvd2x 55, 1, 3 3046 li 3, 80 3047 lfd 23, 344(1) 3048 lxvd2x 54, 1, 3 3049 li 3, 64 3050 lfd 22, 336(1) 3051 lxvd2x 53, 1, 3 3052 li 3, 48 3053 lfd 21, 328(1) 3054 lxvd2x 52, 1, 3 3055 lfd 20, 320(1) 3056 addi 1, 1, 416 3057 blr 3058 .long 0 3059 .quad 0 3060.Lfunc_end3: 3061 .size blake3_hash4_sse41, .Lfunc_end3-.Lfunc_begin3 3062 .cfi_endproc 3063 .section ".note.GNU-stack","",@progbits 3064#endif 3065