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