chibipub

experimental activitypub node in C
git clone git://jb55.com/chibipub
Log | Files | Refs | README | LICENSE

blake3_avx512_x86-64_unix.S (89364B)


      1 #if defined(__ELF__) && defined(__linux__)
      2 .section .note.GNU-stack,"",%progbits
      3 #endif
      4 
      5 #if defined(__ELF__) && defined(__CET__) && defined(__has_include)
      6 #if __has_include(<cet.h>)
      7 #include <cet.h>
      8 #endif
      9 #endif
     10 
     11 #if !defined(_CET_ENDBR)
     12 #define _CET_ENDBR
     13 #endif
     14 
     15 .intel_syntax noprefix
     16 .global _blake3_hash_many_avx512
     17 .global blake3_hash_many_avx512
     18 .global blake3_compress_in_place_avx512
     19 .global _blake3_compress_in_place_avx512
     20 .global blake3_compress_xof_avx512
     21 .global _blake3_compress_xof_avx512
     22 
     23 #ifdef __APPLE__
     24 .text
     25 #else
     26 .section .text
     27 #endif
     28 .p2align  6
     29 _blake3_hash_many_avx512:
     30 blake3_hash_many_avx512:
     31         _CET_ENDBR
     32         push    r15
     33         push    r14
     34         push    r13
     35         push    r12
     36         push    rbx
     37         push    rbp
     38         mov     rbp, rsp
     39         sub     rsp, 144
     40         and     rsp, 0xFFFFFFFFFFFFFFC0
     41         neg     r9
     42         kmovw   k1, r9d
     43         vmovd   xmm0, r8d
     44         vpbroadcastd ymm0, xmm0
     45         shr     r8, 32
     46         vmovd   xmm1, r8d
     47         vpbroadcastd ymm1, xmm1
     48         vmovdqa ymm4, ymm1
     49         vmovdqa ymm5, ymm1
     50         vpaddd  ymm2, ymm0, ymmword ptr [ADD0+rip]
     51         vpaddd  ymm3, ymm0, ymmword ptr [ADD0+32+rip]
     52         vpcmpltud k2, ymm2, ymm0
     53         vpcmpltud k3, ymm3, ymm0
     54         vpaddd  ymm4 {k2}, ymm4, dword ptr [ADD1+rip] {1to8}
     55         vpaddd  ymm5 {k3}, ymm5, dword ptr [ADD1+rip] {1to8}
     56         knotw   k2, k1
     57         vmovdqa32 ymm2 {k2}, ymm0
     58         vmovdqa32 ymm3 {k2}, ymm0
     59         vmovdqa32 ymm4 {k2}, ymm1
     60         vmovdqa32 ymm5 {k2}, ymm1
     61         vmovdqa ymmword ptr [rsp], ymm2
     62         vmovdqa ymmword ptr [rsp+0x1*0x20], ymm3
     63         vmovdqa ymmword ptr [rsp+0x2*0x20], ymm4
     64         vmovdqa ymmword ptr [rsp+0x3*0x20], ymm5
     65         shl     rdx, 6
     66         mov     qword ptr [rsp+0x80], rdx
     67         cmp     rsi, 16
     68         jc      3f
     69 2:
     70         vpbroadcastd zmm0, dword ptr [rcx]
     71         vpbroadcastd zmm1, dword ptr [rcx+0x1*0x4]
     72         vpbroadcastd zmm2, dword ptr [rcx+0x2*0x4]
     73         vpbroadcastd zmm3, dword ptr [rcx+0x3*0x4]
     74         vpbroadcastd zmm4, dword ptr [rcx+0x4*0x4]
     75         vpbroadcastd zmm5, dword ptr [rcx+0x5*0x4]
     76         vpbroadcastd zmm6, dword ptr [rcx+0x6*0x4]
     77         vpbroadcastd zmm7, dword ptr [rcx+0x7*0x4]
     78         movzx   eax, byte ptr [rbp+0x38]
     79         movzx   ebx, byte ptr [rbp+0x40]
     80         or      eax, ebx
     81         xor     edx, edx
     82 .p2align 5
     83 9:
     84         movzx   ebx, byte ptr [rbp+0x48]
     85         or      ebx, eax
     86         add     rdx, 64
     87         cmp     rdx, qword ptr [rsp+0x80]
     88         cmove   eax, ebx
     89         mov     dword ptr [rsp+0x88], eax
     90         mov     r8, qword ptr [rdi]
     91         mov     r9, qword ptr [rdi+0x8]
     92         mov     r10, qword ptr [rdi+0x10]
     93         mov     r11, qword ptr [rdi+0x18]
     94         mov     r12, qword ptr [rdi+0x40]
     95         mov     r13, qword ptr [rdi+0x48]
     96         mov     r14, qword ptr [rdi+0x50]
     97         mov     r15, qword ptr [rdi+0x58]
     98         vmovdqu32 ymm16, ymmword ptr [rdx+r8-0x2*0x20]
     99         vinserti64x4 zmm16, zmm16, ymmword ptr [rdx+r12-0x2*0x20], 0x01
    100         vmovdqu32 ymm17, ymmword ptr [rdx+r9-0x2*0x20]
    101         vinserti64x4 zmm17, zmm17, ymmword ptr [rdx+r13-0x2*0x20], 0x01
    102         vpunpcklqdq zmm8, zmm16, zmm17
    103         vpunpckhqdq zmm9, zmm16, zmm17
    104         vmovdqu32 ymm18, ymmword ptr [rdx+r10-0x2*0x20]
    105         vinserti64x4 zmm18, zmm18, ymmword ptr [rdx+r14-0x2*0x20], 0x01
    106         vmovdqu32 ymm19, ymmword ptr [rdx+r11-0x2*0x20]
    107         vinserti64x4 zmm19, zmm19, ymmword ptr [rdx+r15-0x2*0x20], 0x01
    108         vpunpcklqdq zmm10, zmm18, zmm19
    109         vpunpckhqdq zmm11, zmm18, zmm19
    110         mov     r8, qword ptr [rdi+0x20]
    111         mov     r9, qword ptr [rdi+0x28]
    112         mov     r10, qword ptr [rdi+0x30]
    113         mov     r11, qword ptr [rdi+0x38]
    114         mov     r12, qword ptr [rdi+0x60]
    115         mov     r13, qword ptr [rdi+0x68]
    116         mov     r14, qword ptr [rdi+0x70]
    117         mov     r15, qword ptr [rdi+0x78]
    118         vmovdqu32 ymm16, ymmword ptr [rdx+r8-0x2*0x20]
    119         vinserti64x4 zmm16, zmm16, ymmword ptr [rdx+r12-0x2*0x20], 0x01
    120         vmovdqu32 ymm17, ymmword ptr [rdx+r9-0x2*0x20]
    121         vinserti64x4 zmm17, zmm17, ymmword ptr [rdx+r13-0x2*0x20], 0x01
    122         vpunpcklqdq zmm12, zmm16, zmm17
    123         vpunpckhqdq zmm13, zmm16, zmm17
    124         vmovdqu32 ymm18, ymmword ptr [rdx+r10-0x2*0x20]
    125         vinserti64x4 zmm18, zmm18, ymmword ptr [rdx+r14-0x2*0x20], 0x01
    126         vmovdqu32 ymm19, ymmword ptr [rdx+r11-0x2*0x20]
    127         vinserti64x4 zmm19, zmm19, ymmword ptr [rdx+r15-0x2*0x20], 0x01
    128         vpunpcklqdq zmm14, zmm18, zmm19
    129         vpunpckhqdq zmm15, zmm18, zmm19
    130         vmovdqa32 zmm27, zmmword ptr [INDEX0+rip]
    131         vmovdqa32 zmm31, zmmword ptr [INDEX1+rip]
    132         vshufps zmm16, zmm8, zmm10, 136
    133         vshufps zmm17, zmm12, zmm14, 136
    134         vmovdqa32 zmm20, zmm16
    135         vpermt2d zmm16, zmm27, zmm17
    136         vpermt2d zmm20, zmm31, zmm17
    137         vshufps zmm17, zmm8, zmm10, 221
    138         vshufps zmm30, zmm12, zmm14, 221
    139         vmovdqa32 zmm21, zmm17
    140         vpermt2d zmm17, zmm27, zmm30
    141         vpermt2d zmm21, zmm31, zmm30
    142         vshufps zmm18, zmm9, zmm11, 136
    143         vshufps zmm8, zmm13, zmm15, 136
    144         vmovdqa32 zmm22, zmm18
    145         vpermt2d zmm18, zmm27, zmm8
    146         vpermt2d zmm22, zmm31, zmm8
    147         vshufps zmm19, zmm9, zmm11, 221
    148         vshufps zmm8, zmm13, zmm15, 221
    149         vmovdqa32 zmm23, zmm19
    150         vpermt2d zmm19, zmm27, zmm8
    151         vpermt2d zmm23, zmm31, zmm8
    152         mov     r8, qword ptr [rdi]
    153         mov     r9, qword ptr [rdi+0x8]
    154         mov     r10, qword ptr [rdi+0x10]
    155         mov     r11, qword ptr [rdi+0x18]
    156         mov     r12, qword ptr [rdi+0x40]
    157         mov     r13, qword ptr [rdi+0x48]
    158         mov     r14, qword ptr [rdi+0x50]
    159         mov     r15, qword ptr [rdi+0x58]
    160         vmovdqu32 ymm24, ymmword ptr [r8+rdx-0x1*0x20]
    161         vinserti64x4 zmm24, zmm24, ymmword ptr [r12+rdx-0x1*0x20], 0x01
    162         vmovdqu32 ymm25, ymmword ptr [r9+rdx-0x1*0x20]
    163         vinserti64x4 zmm25, zmm25, ymmword ptr [r13+rdx-0x1*0x20], 0x01
    164         vpunpcklqdq zmm8, zmm24, zmm25
    165         vpunpckhqdq zmm9, zmm24, zmm25
    166         vmovdqu32 ymm24, ymmword ptr [r10+rdx-0x1*0x20]
    167         vinserti64x4 zmm24, zmm24, ymmword ptr [r14+rdx-0x1*0x20], 0x01
    168         vmovdqu32 ymm25, ymmword ptr [r11+rdx-0x1*0x20]
    169         vinserti64x4 zmm25, zmm25, ymmword ptr [r15+rdx-0x1*0x20], 0x01
    170         vpunpcklqdq zmm10, zmm24, zmm25
    171         vpunpckhqdq zmm11, zmm24, zmm25
    172         prefetcht0 [r8+rdx+0x80]
    173         prefetcht0 [r12+rdx+0x80]
    174         prefetcht0 [r9+rdx+0x80]
    175         prefetcht0 [r13+rdx+0x80]
    176         prefetcht0 [r10+rdx+0x80]
    177         prefetcht0 [r14+rdx+0x80]
    178         prefetcht0 [r11+rdx+0x80]
    179         prefetcht0 [r15+rdx+0x80]
    180         mov     r8, qword ptr [rdi+0x20]
    181         mov     r9, qword ptr [rdi+0x28]
    182         mov     r10, qword ptr [rdi+0x30]
    183         mov     r11, qword ptr [rdi+0x38]
    184         mov     r12, qword ptr [rdi+0x60]
    185         mov     r13, qword ptr [rdi+0x68]
    186         mov     r14, qword ptr [rdi+0x70]
    187         mov     r15, qword ptr [rdi+0x78]
    188         vmovdqu32 ymm24, ymmword ptr [r8+rdx-0x1*0x20]
    189         vinserti64x4 zmm24, zmm24, ymmword ptr [r12+rdx-0x1*0x20], 0x01
    190         vmovdqu32 ymm25, ymmword ptr [r9+rdx-0x1*0x20]
    191         vinserti64x4 zmm25, zmm25, ymmword ptr [r13+rdx-0x1*0x20], 0x01
    192         vpunpcklqdq zmm12, zmm24, zmm25
    193         vpunpckhqdq zmm13, zmm24, zmm25
    194         vmovdqu32 ymm24, ymmword ptr [r10+rdx-0x1*0x20]
    195         vinserti64x4 zmm24, zmm24, ymmword ptr [r14+rdx-0x1*0x20], 0x01
    196         vmovdqu32 ymm25, ymmword ptr [r11+rdx-0x1*0x20]
    197         vinserti64x4 zmm25, zmm25, ymmword ptr [r15+rdx-0x1*0x20], 0x01
    198         vpunpcklqdq zmm14, zmm24, zmm25
    199         vpunpckhqdq zmm15, zmm24, zmm25
    200         prefetcht0 [r8+rdx+0x80]
    201         prefetcht0 [r12+rdx+0x80]
    202         prefetcht0 [r9+rdx+0x80]
    203         prefetcht0 [r13+rdx+0x80]
    204         prefetcht0 [r10+rdx+0x80]
    205         prefetcht0 [r14+rdx+0x80]
    206         prefetcht0 [r11+rdx+0x80]
    207         prefetcht0 [r15+rdx+0x80]
    208         vshufps zmm24, zmm8, zmm10, 136
    209         vshufps zmm30, zmm12, zmm14, 136
    210         vmovdqa32 zmm28, zmm24
    211         vpermt2d zmm24, zmm27, zmm30
    212         vpermt2d zmm28, zmm31, zmm30
    213         vshufps zmm25, zmm8, zmm10, 221
    214         vshufps zmm30, zmm12, zmm14, 221
    215         vmovdqa32 zmm29, zmm25
    216         vpermt2d zmm25, zmm27, zmm30
    217         vpermt2d zmm29, zmm31, zmm30
    218         vshufps zmm26, zmm9, zmm11, 136
    219         vshufps zmm8, zmm13, zmm15, 136
    220         vmovdqa32 zmm30, zmm26
    221         vpermt2d zmm26, zmm27, zmm8
    222         vpermt2d zmm30, zmm31, zmm8
    223         vshufps zmm8, zmm9, zmm11, 221
    224         vshufps zmm10, zmm13, zmm15, 221
    225         vpermi2d zmm27, zmm8, zmm10
    226         vpermi2d zmm31, zmm8, zmm10
    227         vpbroadcastd zmm8, dword ptr [BLAKE3_IV_0+rip]
    228         vpbroadcastd zmm9, dword ptr [BLAKE3_IV_1+rip]
    229         vpbroadcastd zmm10, dword ptr [BLAKE3_IV_2+rip]
    230         vpbroadcastd zmm11, dword ptr [BLAKE3_IV_3+rip]
    231         vmovdqa32 zmm12, zmmword ptr [rsp]
    232         vmovdqa32 zmm13, zmmword ptr [rsp+0x1*0x40]
    233         vpbroadcastd zmm14, dword ptr [BLAKE3_BLOCK_LEN+rip]
    234         vpbroadcastd zmm15, dword ptr [rsp+0x22*0x4]
    235         vpaddd  zmm0, zmm0, zmm16
    236         vpaddd  zmm1, zmm1, zmm18
    237         vpaddd  zmm2, zmm2, zmm20
    238         vpaddd  zmm3, zmm3, zmm22
    239         vpaddd  zmm0, zmm0, zmm4
    240         vpaddd  zmm1, zmm1, zmm5
    241         vpaddd  zmm2, zmm2, zmm6
    242         vpaddd  zmm3, zmm3, zmm7
    243         vpxord  zmm12, zmm12, zmm0
    244         vpxord  zmm13, zmm13, zmm1
    245         vpxord  zmm14, zmm14, zmm2
    246         vpxord  zmm15, zmm15, zmm3
    247         vprord  zmm12, zmm12, 16
    248         vprord  zmm13, zmm13, 16
    249         vprord  zmm14, zmm14, 16
    250         vprord  zmm15, zmm15, 16
    251         vpaddd  zmm8, zmm8, zmm12
    252         vpaddd  zmm9, zmm9, zmm13
    253         vpaddd  zmm10, zmm10, zmm14
    254         vpaddd  zmm11, zmm11, zmm15
    255         vpxord  zmm4, zmm4, zmm8
    256         vpxord  zmm5, zmm5, zmm9
    257         vpxord  zmm6, zmm6, zmm10
    258         vpxord  zmm7, zmm7, zmm11
    259         vprord  zmm4, zmm4, 12
    260         vprord  zmm5, zmm5, 12
    261         vprord  zmm6, zmm6, 12
    262         vprord  zmm7, zmm7, 12
    263         vpaddd  zmm0, zmm0, zmm17
    264         vpaddd  zmm1, zmm1, zmm19
    265         vpaddd  zmm2, zmm2, zmm21
    266         vpaddd  zmm3, zmm3, zmm23
    267         vpaddd  zmm0, zmm0, zmm4
    268         vpaddd  zmm1, zmm1, zmm5
    269         vpaddd  zmm2, zmm2, zmm6
    270         vpaddd  zmm3, zmm3, zmm7
    271         vpxord  zmm12, zmm12, zmm0
    272         vpxord  zmm13, zmm13, zmm1
    273         vpxord  zmm14, zmm14, zmm2
    274         vpxord  zmm15, zmm15, zmm3
    275         vprord  zmm12, zmm12, 8
    276         vprord  zmm13, zmm13, 8
    277         vprord  zmm14, zmm14, 8
    278         vprord  zmm15, zmm15, 8
    279         vpaddd  zmm8, zmm8, zmm12
    280         vpaddd  zmm9, zmm9, zmm13
    281         vpaddd  zmm10, zmm10, zmm14
    282         vpaddd  zmm11, zmm11, zmm15
    283         vpxord  zmm4, zmm4, zmm8
    284         vpxord  zmm5, zmm5, zmm9
    285         vpxord  zmm6, zmm6, zmm10
    286         vpxord  zmm7, zmm7, zmm11
    287         vprord  zmm4, zmm4, 7
    288         vprord  zmm5, zmm5, 7
    289         vprord  zmm6, zmm6, 7
    290         vprord  zmm7, zmm7, 7
    291         vpaddd  zmm0, zmm0, zmm24
    292         vpaddd  zmm1, zmm1, zmm26
    293         vpaddd  zmm2, zmm2, zmm28
    294         vpaddd  zmm3, zmm3, zmm30
    295         vpaddd  zmm0, zmm0, zmm5
    296         vpaddd  zmm1, zmm1, zmm6
    297         vpaddd  zmm2, zmm2, zmm7
    298         vpaddd  zmm3, zmm3, zmm4
    299         vpxord  zmm15, zmm15, zmm0
    300         vpxord  zmm12, zmm12, zmm1
    301         vpxord  zmm13, zmm13, zmm2
    302         vpxord  zmm14, zmm14, zmm3
    303         vprord  zmm15, zmm15, 16
    304         vprord  zmm12, zmm12, 16
    305         vprord  zmm13, zmm13, 16
    306         vprord  zmm14, zmm14, 16
    307         vpaddd  zmm10, zmm10, zmm15
    308         vpaddd  zmm11, zmm11, zmm12
    309         vpaddd  zmm8, zmm8, zmm13
    310         vpaddd  zmm9, zmm9, zmm14
    311         vpxord  zmm5, zmm5, zmm10
    312         vpxord  zmm6, zmm6, zmm11
    313         vpxord  zmm7, zmm7, zmm8
    314         vpxord  zmm4, zmm4, zmm9
    315         vprord  zmm5, zmm5, 12
    316         vprord  zmm6, zmm6, 12
    317         vprord  zmm7, zmm7, 12
    318         vprord  zmm4, zmm4, 12
    319         vpaddd  zmm0, zmm0, zmm25
    320         vpaddd  zmm1, zmm1, zmm27
    321         vpaddd  zmm2, zmm2, zmm29
    322         vpaddd  zmm3, zmm3, zmm31
    323         vpaddd  zmm0, zmm0, zmm5
    324         vpaddd  zmm1, zmm1, zmm6
    325         vpaddd  zmm2, zmm2, zmm7
    326         vpaddd  zmm3, zmm3, zmm4
    327         vpxord  zmm15, zmm15, zmm0
    328         vpxord  zmm12, zmm12, zmm1
    329         vpxord  zmm13, zmm13, zmm2
    330         vpxord  zmm14, zmm14, zmm3
    331         vprord  zmm15, zmm15, 8
    332         vprord  zmm12, zmm12, 8
    333         vprord  zmm13, zmm13, 8
    334         vprord  zmm14, zmm14, 8
    335         vpaddd  zmm10, zmm10, zmm15
    336         vpaddd  zmm11, zmm11, zmm12
    337         vpaddd  zmm8, zmm8, zmm13
    338         vpaddd  zmm9, zmm9, zmm14
    339         vpxord  zmm5, zmm5, zmm10
    340         vpxord  zmm6, zmm6, zmm11
    341         vpxord  zmm7, zmm7, zmm8
    342         vpxord  zmm4, zmm4, zmm9
    343         vprord  zmm5, zmm5, 7
    344         vprord  zmm6, zmm6, 7
    345         vprord  zmm7, zmm7, 7
    346         vprord  zmm4, zmm4, 7
    347         vpaddd  zmm0, zmm0, zmm18
    348         vpaddd  zmm1, zmm1, zmm19
    349         vpaddd  zmm2, zmm2, zmm23
    350         vpaddd  zmm3, zmm3, zmm20
    351         vpaddd  zmm0, zmm0, zmm4
    352         vpaddd  zmm1, zmm1, zmm5
    353         vpaddd  zmm2, zmm2, zmm6
    354         vpaddd  zmm3, zmm3, zmm7
    355         vpxord  zmm12, zmm12, zmm0
    356         vpxord  zmm13, zmm13, zmm1
    357         vpxord  zmm14, zmm14, zmm2
    358         vpxord  zmm15, zmm15, zmm3
    359         vprord  zmm12, zmm12, 16
    360         vprord  zmm13, zmm13, 16
    361         vprord  zmm14, zmm14, 16
    362         vprord  zmm15, zmm15, 16
    363         vpaddd  zmm8, zmm8, zmm12
    364         vpaddd  zmm9, zmm9, zmm13
    365         vpaddd  zmm10, zmm10, zmm14
    366         vpaddd  zmm11, zmm11, zmm15
    367         vpxord  zmm4, zmm4, zmm8
    368         vpxord  zmm5, zmm5, zmm9
    369         vpxord  zmm6, zmm6, zmm10
    370         vpxord  zmm7, zmm7, zmm11
    371         vprord  zmm4, zmm4, 12
    372         vprord  zmm5, zmm5, 12
    373         vprord  zmm6, zmm6, 12
    374         vprord  zmm7, zmm7, 12
    375         vpaddd  zmm0, zmm0, zmm22
    376         vpaddd  zmm1, zmm1, zmm26
    377         vpaddd  zmm2, zmm2, zmm16
    378         vpaddd  zmm3, zmm3, zmm29
    379         vpaddd  zmm0, zmm0, zmm4
    380         vpaddd  zmm1, zmm1, zmm5
    381         vpaddd  zmm2, zmm2, zmm6
    382         vpaddd  zmm3, zmm3, zmm7
    383         vpxord  zmm12, zmm12, zmm0
    384         vpxord  zmm13, zmm13, zmm1
    385         vpxord  zmm14, zmm14, zmm2
    386         vpxord  zmm15, zmm15, zmm3
    387         vprord  zmm12, zmm12, 8
    388         vprord  zmm13, zmm13, 8
    389         vprord  zmm14, zmm14, 8
    390         vprord  zmm15, zmm15, 8
    391         vpaddd  zmm8, zmm8, zmm12
    392         vpaddd  zmm9, zmm9, zmm13
    393         vpaddd  zmm10, zmm10, zmm14
    394         vpaddd  zmm11, zmm11, zmm15
    395         vpxord  zmm4, zmm4, zmm8
    396         vpxord  zmm5, zmm5, zmm9
    397         vpxord  zmm6, zmm6, zmm10
    398         vpxord  zmm7, zmm7, zmm11
    399         vprord  zmm4, zmm4, 7
    400         vprord  zmm5, zmm5, 7
    401         vprord  zmm6, zmm6, 7
    402         vprord  zmm7, zmm7, 7
    403         vpaddd  zmm0, zmm0, zmm17
    404         vpaddd  zmm1, zmm1, zmm28
    405         vpaddd  zmm2, zmm2, zmm25
    406         vpaddd  zmm3, zmm3, zmm31
    407         vpaddd  zmm0, zmm0, zmm5
    408         vpaddd  zmm1, zmm1, zmm6
    409         vpaddd  zmm2, zmm2, zmm7
    410         vpaddd  zmm3, zmm3, zmm4
    411         vpxord  zmm15, zmm15, zmm0
    412         vpxord  zmm12, zmm12, zmm1
    413         vpxord  zmm13, zmm13, zmm2
    414         vpxord  zmm14, zmm14, zmm3
    415         vprord  zmm15, zmm15, 16
    416         vprord  zmm12, zmm12, 16
    417         vprord  zmm13, zmm13, 16
    418         vprord  zmm14, zmm14, 16
    419         vpaddd  zmm10, zmm10, zmm15
    420         vpaddd  zmm11, zmm11, zmm12
    421         vpaddd  zmm8, zmm8, zmm13
    422         vpaddd  zmm9, zmm9, zmm14
    423         vpxord  zmm5, zmm5, zmm10
    424         vpxord  zmm6, zmm6, zmm11
    425         vpxord  zmm7, zmm7, zmm8
    426         vpxord  zmm4, zmm4, zmm9
    427         vprord  zmm5, zmm5, 12
    428         vprord  zmm6, zmm6, 12
    429         vprord  zmm7, zmm7, 12
    430         vprord  zmm4, zmm4, 12
    431         vpaddd  zmm0, zmm0, zmm27
    432         vpaddd  zmm1, zmm1, zmm21
    433         vpaddd  zmm2, zmm2, zmm30
    434         vpaddd  zmm3, zmm3, zmm24
    435         vpaddd  zmm0, zmm0, zmm5
    436         vpaddd  zmm1, zmm1, zmm6
    437         vpaddd  zmm2, zmm2, zmm7
    438         vpaddd  zmm3, zmm3, zmm4
    439         vpxord  zmm15, zmm15, zmm0
    440         vpxord  zmm12, zmm12, zmm1
    441         vpxord  zmm13, zmm13, zmm2
    442         vpxord  zmm14, zmm14, zmm3
    443         vprord  zmm15, zmm15, 8
    444         vprord  zmm12, zmm12, 8
    445         vprord  zmm13, zmm13, 8
    446         vprord  zmm14, zmm14, 8
    447         vpaddd  zmm10, zmm10, zmm15
    448         vpaddd  zmm11, zmm11, zmm12
    449         vpaddd  zmm8, zmm8, zmm13
    450         vpaddd  zmm9, zmm9, zmm14
    451         vpxord  zmm5, zmm5, zmm10
    452         vpxord  zmm6, zmm6, zmm11
    453         vpxord  zmm7, zmm7, zmm8
    454         vpxord  zmm4, zmm4, zmm9
    455         vprord  zmm5, zmm5, 7
    456         vprord  zmm6, zmm6, 7
    457         vprord  zmm7, zmm7, 7
    458         vprord  zmm4, zmm4, 7
    459         vpaddd  zmm0, zmm0, zmm19
    460         vpaddd  zmm1, zmm1, zmm26
    461         vpaddd  zmm2, zmm2, zmm29
    462         vpaddd  zmm3, zmm3, zmm23
    463         vpaddd  zmm0, zmm0, zmm4
    464         vpaddd  zmm1, zmm1, zmm5
    465         vpaddd  zmm2, zmm2, zmm6
    466         vpaddd  zmm3, zmm3, zmm7
    467         vpxord  zmm12, zmm12, zmm0
    468         vpxord  zmm13, zmm13, zmm1
    469         vpxord  zmm14, zmm14, zmm2
    470         vpxord  zmm15, zmm15, zmm3
    471         vprord  zmm12, zmm12, 16
    472         vprord  zmm13, zmm13, 16
    473         vprord  zmm14, zmm14, 16
    474         vprord  zmm15, zmm15, 16
    475         vpaddd  zmm8, zmm8, zmm12
    476         vpaddd  zmm9, zmm9, zmm13
    477         vpaddd  zmm10, zmm10, zmm14
    478         vpaddd  zmm11, zmm11, zmm15
    479         vpxord  zmm4, zmm4, zmm8
    480         vpxord  zmm5, zmm5, zmm9
    481         vpxord  zmm6, zmm6, zmm10
    482         vpxord  zmm7, zmm7, zmm11
    483         vprord  zmm4, zmm4, 12
    484         vprord  zmm5, zmm5, 12
    485         vprord  zmm6, zmm6, 12
    486         vprord  zmm7, zmm7, 12
    487         vpaddd  zmm0, zmm0, zmm20
    488         vpaddd  zmm1, zmm1, zmm28
    489         vpaddd  zmm2, zmm2, zmm18
    490         vpaddd  zmm3, zmm3, zmm30
    491         vpaddd  zmm0, zmm0, zmm4
    492         vpaddd  zmm1, zmm1, zmm5
    493         vpaddd  zmm2, zmm2, zmm6
    494         vpaddd  zmm3, zmm3, zmm7
    495         vpxord  zmm12, zmm12, zmm0
    496         vpxord  zmm13, zmm13, zmm1
    497         vpxord  zmm14, zmm14, zmm2
    498         vpxord  zmm15, zmm15, zmm3
    499         vprord  zmm12, zmm12, 8
    500         vprord  zmm13, zmm13, 8
    501         vprord  zmm14, zmm14, 8
    502         vprord  zmm15, zmm15, 8
    503         vpaddd  zmm8, zmm8, zmm12
    504         vpaddd  zmm9, zmm9, zmm13
    505         vpaddd  zmm10, zmm10, zmm14
    506         vpaddd  zmm11, zmm11, zmm15
    507         vpxord  zmm4, zmm4, zmm8
    508         vpxord  zmm5, zmm5, zmm9
    509         vpxord  zmm6, zmm6, zmm10
    510         vpxord  zmm7, zmm7, zmm11
    511         vprord  zmm4, zmm4, 7
    512         vprord  zmm5, zmm5, 7
    513         vprord  zmm6, zmm6, 7
    514         vprord  zmm7, zmm7, 7
    515         vpaddd  zmm0, zmm0, zmm22
    516         vpaddd  zmm1, zmm1, zmm25
    517         vpaddd  zmm2, zmm2, zmm27
    518         vpaddd  zmm3, zmm3, zmm24
    519         vpaddd  zmm0, zmm0, zmm5
    520         vpaddd  zmm1, zmm1, zmm6
    521         vpaddd  zmm2, zmm2, zmm7
    522         vpaddd  zmm3, zmm3, zmm4
    523         vpxord  zmm15, zmm15, zmm0
    524         vpxord  zmm12, zmm12, zmm1
    525         vpxord  zmm13, zmm13, zmm2
    526         vpxord  zmm14, zmm14, zmm3
    527         vprord  zmm15, zmm15, 16
    528         vprord  zmm12, zmm12, 16
    529         vprord  zmm13, zmm13, 16
    530         vprord  zmm14, zmm14, 16
    531         vpaddd  zmm10, zmm10, zmm15
    532         vpaddd  zmm11, zmm11, zmm12
    533         vpaddd  zmm8, zmm8, zmm13
    534         vpaddd  zmm9, zmm9, zmm14
    535         vpxord  zmm5, zmm5, zmm10
    536         vpxord  zmm6, zmm6, zmm11
    537         vpxord  zmm7, zmm7, zmm8
    538         vpxord  zmm4, zmm4, zmm9
    539         vprord  zmm5, zmm5, 12
    540         vprord  zmm6, zmm6, 12
    541         vprord  zmm7, zmm7, 12
    542         vprord  zmm4, zmm4, 12
    543         vpaddd  zmm0, zmm0, zmm21
    544         vpaddd  zmm1, zmm1, zmm16
    545         vpaddd  zmm2, zmm2, zmm31
    546         vpaddd  zmm3, zmm3, zmm17
    547         vpaddd  zmm0, zmm0, zmm5
    548         vpaddd  zmm1, zmm1, zmm6
    549         vpaddd  zmm2, zmm2, zmm7
    550         vpaddd  zmm3, zmm3, zmm4
    551         vpxord  zmm15, zmm15, zmm0
    552         vpxord  zmm12, zmm12, zmm1
    553         vpxord  zmm13, zmm13, zmm2
    554         vpxord  zmm14, zmm14, zmm3
    555         vprord  zmm15, zmm15, 8
    556         vprord  zmm12, zmm12, 8
    557         vprord  zmm13, zmm13, 8
    558         vprord  zmm14, zmm14, 8
    559         vpaddd  zmm10, zmm10, zmm15
    560         vpaddd  zmm11, zmm11, zmm12
    561         vpaddd  zmm8, zmm8, zmm13
    562         vpaddd  zmm9, zmm9, zmm14
    563         vpxord  zmm5, zmm5, zmm10
    564         vpxord  zmm6, zmm6, zmm11
    565         vpxord  zmm7, zmm7, zmm8
    566         vpxord  zmm4, zmm4, zmm9
    567         vprord  zmm5, zmm5, 7
    568         vprord  zmm6, zmm6, 7
    569         vprord  zmm7, zmm7, 7
    570         vprord  zmm4, zmm4, 7
    571         vpaddd  zmm0, zmm0, zmm26
    572         vpaddd  zmm1, zmm1, zmm28
    573         vpaddd  zmm2, zmm2, zmm30
    574         vpaddd  zmm3, zmm3, zmm29
    575         vpaddd  zmm0, zmm0, zmm4
    576         vpaddd  zmm1, zmm1, zmm5
    577         vpaddd  zmm2, zmm2, zmm6
    578         vpaddd  zmm3, zmm3, zmm7
    579         vpxord  zmm12, zmm12, zmm0
    580         vpxord  zmm13, zmm13, zmm1
    581         vpxord  zmm14, zmm14, zmm2
    582         vpxord  zmm15, zmm15, zmm3
    583         vprord  zmm12, zmm12, 16
    584         vprord  zmm13, zmm13, 16
    585         vprord  zmm14, zmm14, 16
    586         vprord  zmm15, zmm15, 16
    587         vpaddd  zmm8, zmm8, zmm12
    588         vpaddd  zmm9, zmm9, zmm13
    589         vpaddd  zmm10, zmm10, zmm14
    590         vpaddd  zmm11, zmm11, zmm15
    591         vpxord  zmm4, zmm4, zmm8
    592         vpxord  zmm5, zmm5, zmm9
    593         vpxord  zmm6, zmm6, zmm10
    594         vpxord  zmm7, zmm7, zmm11
    595         vprord  zmm4, zmm4, 12
    596         vprord  zmm5, zmm5, 12
    597         vprord  zmm6, zmm6, 12
    598         vprord  zmm7, zmm7, 12
    599         vpaddd  zmm0, zmm0, zmm23
    600         vpaddd  zmm1, zmm1, zmm25
    601         vpaddd  zmm2, zmm2, zmm19
    602         vpaddd  zmm3, zmm3, zmm31
    603         vpaddd  zmm0, zmm0, zmm4
    604         vpaddd  zmm1, zmm1, zmm5
    605         vpaddd  zmm2, zmm2, zmm6
    606         vpaddd  zmm3, zmm3, zmm7
    607         vpxord  zmm12, zmm12, zmm0
    608         vpxord  zmm13, zmm13, zmm1
    609         vpxord  zmm14, zmm14, zmm2
    610         vpxord  zmm15, zmm15, zmm3
    611         vprord  zmm12, zmm12, 8
    612         vprord  zmm13, zmm13, 8
    613         vprord  zmm14, zmm14, 8
    614         vprord  zmm15, zmm15, 8
    615         vpaddd  zmm8, zmm8, zmm12
    616         vpaddd  zmm9, zmm9, zmm13
    617         vpaddd  zmm10, zmm10, zmm14
    618         vpaddd  zmm11, zmm11, zmm15
    619         vpxord  zmm4, zmm4, zmm8
    620         vpxord  zmm5, zmm5, zmm9
    621         vpxord  zmm6, zmm6, zmm10
    622         vpxord  zmm7, zmm7, zmm11
    623         vprord  zmm4, zmm4, 7
    624         vprord  zmm5, zmm5, 7
    625         vprord  zmm6, zmm6, 7
    626         vprord  zmm7, zmm7, 7
    627         vpaddd  zmm0, zmm0, zmm20
    628         vpaddd  zmm1, zmm1, zmm27
    629         vpaddd  zmm2, zmm2, zmm21
    630         vpaddd  zmm3, zmm3, zmm17
    631         vpaddd  zmm0, zmm0, zmm5
    632         vpaddd  zmm1, zmm1, zmm6
    633         vpaddd  zmm2, zmm2, zmm7
    634         vpaddd  zmm3, zmm3, zmm4
    635         vpxord  zmm15, zmm15, zmm0
    636         vpxord  zmm12, zmm12, zmm1
    637         vpxord  zmm13, zmm13, zmm2
    638         vpxord  zmm14, zmm14, zmm3
    639         vprord  zmm15, zmm15, 16
    640         vprord  zmm12, zmm12, 16
    641         vprord  zmm13, zmm13, 16
    642         vprord  zmm14, zmm14, 16
    643         vpaddd  zmm10, zmm10, zmm15
    644         vpaddd  zmm11, zmm11, zmm12
    645         vpaddd  zmm8, zmm8, zmm13
    646         vpaddd  zmm9, zmm9, zmm14
    647         vpxord  zmm5, zmm5, zmm10
    648         vpxord  zmm6, zmm6, zmm11
    649         vpxord  zmm7, zmm7, zmm8
    650         vpxord  zmm4, zmm4, zmm9
    651         vprord  zmm5, zmm5, 12
    652         vprord  zmm6, zmm6, 12
    653         vprord  zmm7, zmm7, 12
    654         vprord  zmm4, zmm4, 12
    655         vpaddd  zmm0, zmm0, zmm16
    656         vpaddd  zmm1, zmm1, zmm18
    657         vpaddd  zmm2, zmm2, zmm24
    658         vpaddd  zmm3, zmm3, zmm22
    659         vpaddd  zmm0, zmm0, zmm5
    660         vpaddd  zmm1, zmm1, zmm6
    661         vpaddd  zmm2, zmm2, zmm7
    662         vpaddd  zmm3, zmm3, zmm4
    663         vpxord  zmm15, zmm15, zmm0
    664         vpxord  zmm12, zmm12, zmm1
    665         vpxord  zmm13, zmm13, zmm2
    666         vpxord  zmm14, zmm14, zmm3
    667         vprord  zmm15, zmm15, 8
    668         vprord  zmm12, zmm12, 8
    669         vprord  zmm13, zmm13, 8
    670         vprord  zmm14, zmm14, 8
    671         vpaddd  zmm10, zmm10, zmm15
    672         vpaddd  zmm11, zmm11, zmm12
    673         vpaddd  zmm8, zmm8, zmm13
    674         vpaddd  zmm9, zmm9, zmm14
    675         vpxord  zmm5, zmm5, zmm10
    676         vpxord  zmm6, zmm6, zmm11
    677         vpxord  zmm7, zmm7, zmm8
    678         vpxord  zmm4, zmm4, zmm9
    679         vprord  zmm5, zmm5, 7
    680         vprord  zmm6, zmm6, 7
    681         vprord  zmm7, zmm7, 7
    682         vprord  zmm4, zmm4, 7
    683         vpaddd  zmm0, zmm0, zmm28
    684         vpaddd  zmm1, zmm1, zmm25
    685         vpaddd  zmm2, zmm2, zmm31
    686         vpaddd  zmm3, zmm3, zmm30
    687         vpaddd  zmm0, zmm0, zmm4
    688         vpaddd  zmm1, zmm1, zmm5
    689         vpaddd  zmm2, zmm2, zmm6
    690         vpaddd  zmm3, zmm3, zmm7
    691         vpxord  zmm12, zmm12, zmm0
    692         vpxord  zmm13, zmm13, zmm1
    693         vpxord  zmm14, zmm14, zmm2
    694         vpxord  zmm15, zmm15, zmm3
    695         vprord  zmm12, zmm12, 16
    696         vprord  zmm13, zmm13, 16
    697         vprord  zmm14, zmm14, 16
    698         vprord  zmm15, zmm15, 16
    699         vpaddd  zmm8, zmm8, zmm12
    700         vpaddd  zmm9, zmm9, zmm13
    701         vpaddd  zmm10, zmm10, zmm14
    702         vpaddd  zmm11, zmm11, zmm15
    703         vpxord  zmm4, zmm4, zmm8
    704         vpxord  zmm5, zmm5, zmm9
    705         vpxord  zmm6, zmm6, zmm10
    706         vpxord  zmm7, zmm7, zmm11
    707         vprord  zmm4, zmm4, 12
    708         vprord  zmm5, zmm5, 12
    709         vprord  zmm6, zmm6, 12
    710         vprord  zmm7, zmm7, 12
    711         vpaddd  zmm0, zmm0, zmm29
    712         vpaddd  zmm1, zmm1, zmm27
    713         vpaddd  zmm2, zmm2, zmm26
    714         vpaddd  zmm3, zmm3, zmm24
    715         vpaddd  zmm0, zmm0, zmm4
    716         vpaddd  zmm1, zmm1, zmm5
    717         vpaddd  zmm2, zmm2, zmm6
    718         vpaddd  zmm3, zmm3, zmm7
    719         vpxord  zmm12, zmm12, zmm0
    720         vpxord  zmm13, zmm13, zmm1
    721         vpxord  zmm14, zmm14, zmm2
    722         vpxord  zmm15, zmm15, zmm3
    723         vprord  zmm12, zmm12, 8
    724         vprord  zmm13, zmm13, 8
    725         vprord  zmm14, zmm14, 8
    726         vprord  zmm15, zmm15, 8
    727         vpaddd  zmm8, zmm8, zmm12
    728         vpaddd  zmm9, zmm9, zmm13
    729         vpaddd  zmm10, zmm10, zmm14
    730         vpaddd  zmm11, zmm11, zmm15
    731         vpxord  zmm4, zmm4, zmm8
    732         vpxord  zmm5, zmm5, zmm9
    733         vpxord  zmm6, zmm6, zmm10
    734         vpxord  zmm7, zmm7, zmm11
    735         vprord  zmm4, zmm4, 7
    736         vprord  zmm5, zmm5, 7
    737         vprord  zmm6, zmm6, 7
    738         vprord  zmm7, zmm7, 7
    739         vpaddd  zmm0, zmm0, zmm23
    740         vpaddd  zmm1, zmm1, zmm21
    741         vpaddd  zmm2, zmm2, zmm16
    742         vpaddd  zmm3, zmm3, zmm22
    743         vpaddd  zmm0, zmm0, zmm5
    744         vpaddd  zmm1, zmm1, zmm6
    745         vpaddd  zmm2, zmm2, zmm7
    746         vpaddd  zmm3, zmm3, zmm4
    747         vpxord  zmm15, zmm15, zmm0
    748         vpxord  zmm12, zmm12, zmm1
    749         vpxord  zmm13, zmm13, zmm2
    750         vpxord  zmm14, zmm14, zmm3
    751         vprord  zmm15, zmm15, 16
    752         vprord  zmm12, zmm12, 16
    753         vprord  zmm13, zmm13, 16
    754         vprord  zmm14, zmm14, 16
    755         vpaddd  zmm10, zmm10, zmm15
    756         vpaddd  zmm11, zmm11, zmm12
    757         vpaddd  zmm8, zmm8, zmm13
    758         vpaddd  zmm9, zmm9, zmm14
    759         vpxord  zmm5, zmm5, zmm10
    760         vpxord  zmm6, zmm6, zmm11
    761         vpxord  zmm7, zmm7, zmm8
    762         vpxord  zmm4, zmm4, zmm9
    763         vprord  zmm5, zmm5, 12
    764         vprord  zmm6, zmm6, 12
    765         vprord  zmm7, zmm7, 12
    766         vprord  zmm4, zmm4, 12
    767         vpaddd  zmm0, zmm0, zmm18
    768         vpaddd  zmm1, zmm1, zmm19
    769         vpaddd  zmm2, zmm2, zmm17
    770         vpaddd  zmm3, zmm3, zmm20
    771         vpaddd  zmm0, zmm0, zmm5
    772         vpaddd  zmm1, zmm1, zmm6
    773         vpaddd  zmm2, zmm2, zmm7
    774         vpaddd  zmm3, zmm3, zmm4
    775         vpxord  zmm15, zmm15, zmm0
    776         vpxord  zmm12, zmm12, zmm1
    777         vpxord  zmm13, zmm13, zmm2
    778         vpxord  zmm14, zmm14, zmm3
    779         vprord  zmm15, zmm15, 8
    780         vprord  zmm12, zmm12, 8
    781         vprord  zmm13, zmm13, 8
    782         vprord  zmm14, zmm14, 8
    783         vpaddd  zmm10, zmm10, zmm15
    784         vpaddd  zmm11, zmm11, zmm12
    785         vpaddd  zmm8, zmm8, zmm13
    786         vpaddd  zmm9, zmm9, zmm14
    787         vpxord  zmm5, zmm5, zmm10
    788         vpxord  zmm6, zmm6, zmm11
    789         vpxord  zmm7, zmm7, zmm8
    790         vpxord  zmm4, zmm4, zmm9
    791         vprord  zmm5, zmm5, 7
    792         vprord  zmm6, zmm6, 7
    793         vprord  zmm7, zmm7, 7
    794         vprord  zmm4, zmm4, 7
    795         vpaddd  zmm0, zmm0, zmm25
    796         vpaddd  zmm1, zmm1, zmm27
    797         vpaddd  zmm2, zmm2, zmm24
    798         vpaddd  zmm3, zmm3, zmm31
    799         vpaddd  zmm0, zmm0, zmm4
    800         vpaddd  zmm1, zmm1, zmm5
    801         vpaddd  zmm2, zmm2, zmm6
    802         vpaddd  zmm3, zmm3, zmm7
    803         vpxord  zmm12, zmm12, zmm0
    804         vpxord  zmm13, zmm13, zmm1
    805         vpxord  zmm14, zmm14, zmm2
    806         vpxord  zmm15, zmm15, zmm3
    807         vprord  zmm12, zmm12, 16
    808         vprord  zmm13, zmm13, 16
    809         vprord  zmm14, zmm14, 16
    810         vprord  zmm15, zmm15, 16
    811         vpaddd  zmm8, zmm8, zmm12
    812         vpaddd  zmm9, zmm9, zmm13
    813         vpaddd  zmm10, zmm10, zmm14
    814         vpaddd  zmm11, zmm11, zmm15
    815         vpxord  zmm4, zmm4, zmm8
    816         vpxord  zmm5, zmm5, zmm9
    817         vpxord  zmm6, zmm6, zmm10
    818         vpxord  zmm7, zmm7, zmm11
    819         vprord  zmm4, zmm4, 12
    820         vprord  zmm5, zmm5, 12
    821         vprord  zmm6, zmm6, 12
    822         vprord  zmm7, zmm7, 12
    823         vpaddd  zmm0, zmm0, zmm30
    824         vpaddd  zmm1, zmm1, zmm21
    825         vpaddd  zmm2, zmm2, zmm28
    826         vpaddd  zmm3, zmm3, zmm17
    827         vpaddd  zmm0, zmm0, zmm4
    828         vpaddd  zmm1, zmm1, zmm5
    829         vpaddd  zmm2, zmm2, zmm6
    830         vpaddd  zmm3, zmm3, zmm7
    831         vpxord  zmm12, zmm12, zmm0
    832         vpxord  zmm13, zmm13, zmm1
    833         vpxord  zmm14, zmm14, zmm2
    834         vpxord  zmm15, zmm15, zmm3
    835         vprord  zmm12, zmm12, 8
    836         vprord  zmm13, zmm13, 8
    837         vprord  zmm14, zmm14, 8
    838         vprord  zmm15, zmm15, 8
    839         vpaddd  zmm8, zmm8, zmm12
    840         vpaddd  zmm9, zmm9, zmm13
    841         vpaddd  zmm10, zmm10, zmm14
    842         vpaddd  zmm11, zmm11, zmm15
    843         vpxord  zmm4, zmm4, zmm8
    844         vpxord  zmm5, zmm5, zmm9
    845         vpxord  zmm6, zmm6, zmm10
    846         vpxord  zmm7, zmm7, zmm11
    847         vprord  zmm4, zmm4, 7
    848         vprord  zmm5, zmm5, 7
    849         vprord  zmm6, zmm6, 7
    850         vprord  zmm7, zmm7, 7
    851         vpaddd  zmm0, zmm0, zmm29
    852         vpaddd  zmm1, zmm1, zmm16
    853         vpaddd  zmm2, zmm2, zmm18
    854         vpaddd  zmm3, zmm3, zmm20
    855         vpaddd  zmm0, zmm0, zmm5
    856         vpaddd  zmm1, zmm1, zmm6
    857         vpaddd  zmm2, zmm2, zmm7
    858         vpaddd  zmm3, zmm3, zmm4
    859         vpxord  zmm15, zmm15, zmm0
    860         vpxord  zmm12, zmm12, zmm1
    861         vpxord  zmm13, zmm13, zmm2
    862         vpxord  zmm14, zmm14, zmm3
    863         vprord  zmm15, zmm15, 16
    864         vprord  zmm12, zmm12, 16
    865         vprord  zmm13, zmm13, 16
    866         vprord  zmm14, zmm14, 16
    867         vpaddd  zmm10, zmm10, zmm15
    868         vpaddd  zmm11, zmm11, zmm12
    869         vpaddd  zmm8, zmm8, zmm13
    870         vpaddd  zmm9, zmm9, zmm14
    871         vpxord  zmm5, zmm5, zmm10
    872         vpxord  zmm6, zmm6, zmm11
    873         vpxord  zmm7, zmm7, zmm8
    874         vpxord  zmm4, zmm4, zmm9
    875         vprord  zmm5, zmm5, 12
    876         vprord  zmm6, zmm6, 12
    877         vprord  zmm7, zmm7, 12
    878         vprord  zmm4, zmm4, 12
    879         vpaddd  zmm0, zmm0, zmm19
    880         vpaddd  zmm1, zmm1, zmm26
    881         vpaddd  zmm2, zmm2, zmm22
    882         vpaddd  zmm3, zmm3, zmm23
    883         vpaddd  zmm0, zmm0, zmm5
    884         vpaddd  zmm1, zmm1, zmm6
    885         vpaddd  zmm2, zmm2, zmm7
    886         vpaddd  zmm3, zmm3, zmm4
    887         vpxord  zmm15, zmm15, zmm0
    888         vpxord  zmm12, zmm12, zmm1
    889         vpxord  zmm13, zmm13, zmm2
    890         vpxord  zmm14, zmm14, zmm3
    891         vprord  zmm15, zmm15, 8
    892         vprord  zmm12, zmm12, 8
    893         vprord  zmm13, zmm13, 8
    894         vprord  zmm14, zmm14, 8
    895         vpaddd  zmm10, zmm10, zmm15
    896         vpaddd  zmm11, zmm11, zmm12
    897         vpaddd  zmm8, zmm8, zmm13
    898         vpaddd  zmm9, zmm9, zmm14
    899         vpxord  zmm5, zmm5, zmm10
    900         vpxord  zmm6, zmm6, zmm11
    901         vpxord  zmm7, zmm7, zmm8
    902         vpxord  zmm4, zmm4, zmm9
    903         vprord  zmm5, zmm5, 7
    904         vprord  zmm6, zmm6, 7
    905         vprord  zmm7, zmm7, 7
    906         vprord  zmm4, zmm4, 7
    907         vpaddd  zmm0, zmm0, zmm27
    908         vpaddd  zmm1, zmm1, zmm21
    909         vpaddd  zmm2, zmm2, zmm17
    910         vpaddd  zmm3, zmm3, zmm24
    911         vpaddd  zmm0, zmm0, zmm4
    912         vpaddd  zmm1, zmm1, zmm5
    913         vpaddd  zmm2, zmm2, zmm6
    914         vpaddd  zmm3, zmm3, zmm7
    915         vpxord  zmm12, zmm12, zmm0
    916         vpxord  zmm13, zmm13, zmm1
    917         vpxord  zmm14, zmm14, zmm2
    918         vpxord  zmm15, zmm15, zmm3
    919         vprord  zmm12, zmm12, 16
    920         vprord  zmm13, zmm13, 16
    921         vprord  zmm14, zmm14, 16
    922         vprord  zmm15, zmm15, 16
    923         vpaddd  zmm8, zmm8, zmm12
    924         vpaddd  zmm9, zmm9, zmm13
    925         vpaddd  zmm10, zmm10, zmm14
    926         vpaddd  zmm11, zmm11, zmm15
    927         vpxord  zmm4, zmm4, zmm8
    928         vpxord  zmm5, zmm5, zmm9
    929         vpxord  zmm6, zmm6, zmm10
    930         vpxord  zmm7, zmm7, zmm11
    931         vprord  zmm4, zmm4, 12
    932         vprord  zmm5, zmm5, 12
    933         vprord  zmm6, zmm6, 12
    934         vprord  zmm7, zmm7, 12
    935         vpaddd  zmm0, zmm0, zmm31
    936         vpaddd  zmm1, zmm1, zmm16
    937         vpaddd  zmm2, zmm2, zmm25
    938         vpaddd  zmm3, zmm3, zmm22
    939         vpaddd  zmm0, zmm0, zmm4
    940         vpaddd  zmm1, zmm1, zmm5
    941         vpaddd  zmm2, zmm2, zmm6
    942         vpaddd  zmm3, zmm3, zmm7
    943         vpxord  zmm12, zmm12, zmm0
    944         vpxord  zmm13, zmm13, zmm1
    945         vpxord  zmm14, zmm14, zmm2
    946         vpxord  zmm15, zmm15, zmm3
    947         vprord  zmm12, zmm12, 8
    948         vprord  zmm13, zmm13, 8
    949         vprord  zmm14, zmm14, 8
    950         vprord  zmm15, zmm15, 8
    951         vpaddd  zmm8, zmm8, zmm12
    952         vpaddd  zmm9, zmm9, zmm13
    953         vpaddd  zmm10, zmm10, zmm14
    954         vpaddd  zmm11, zmm11, zmm15
    955         vpxord  zmm4, zmm4, zmm8
    956         vpxord  zmm5, zmm5, zmm9
    957         vpxord  zmm6, zmm6, zmm10
    958         vpxord  zmm7, zmm7, zmm11
    959         vprord  zmm4, zmm4, 7
    960         vprord  zmm5, zmm5, 7
    961         vprord  zmm6, zmm6, 7
    962         vprord  zmm7, zmm7, 7
    963         vpaddd  zmm0, zmm0, zmm30
    964         vpaddd  zmm1, zmm1, zmm18
    965         vpaddd  zmm2, zmm2, zmm19
    966         vpaddd  zmm3, zmm3, zmm23
    967         vpaddd  zmm0, zmm0, zmm5
    968         vpaddd  zmm1, zmm1, zmm6
    969         vpaddd  zmm2, zmm2, zmm7
    970         vpaddd  zmm3, zmm3, zmm4
    971         vpxord  zmm15, zmm15, zmm0
    972         vpxord  zmm12, zmm12, zmm1
    973         vpxord  zmm13, zmm13, zmm2
    974         vpxord  zmm14, zmm14, zmm3
    975         vprord  zmm15, zmm15, 16
    976         vprord  zmm12, zmm12, 16
    977         vprord  zmm13, zmm13, 16
    978         vprord  zmm14, zmm14, 16
    979         vpaddd  zmm10, zmm10, zmm15
    980         vpaddd  zmm11, zmm11, zmm12
    981         vpaddd  zmm8, zmm8, zmm13
    982         vpaddd  zmm9, zmm9, zmm14
    983         vpxord  zmm5, zmm5, zmm10
    984         vpxord  zmm6, zmm6, zmm11
    985         vpxord  zmm7, zmm7, zmm8
    986         vpxord  zmm4, zmm4, zmm9
    987         vprord  zmm5, zmm5, 12
    988         vprord  zmm6, zmm6, 12
    989         vprord  zmm7, zmm7, 12
    990         vprord  zmm4, zmm4, 12
    991         vpaddd  zmm0, zmm0, zmm26
    992         vpaddd  zmm1, zmm1, zmm28
    993         vpaddd  zmm2, zmm2, zmm20
    994         vpaddd  zmm3, zmm3, zmm29
    995         vpaddd  zmm0, zmm0, zmm5
    996         vpaddd  zmm1, zmm1, zmm6
    997         vpaddd  zmm2, zmm2, zmm7
    998         vpaddd  zmm3, zmm3, zmm4
    999         vpxord  zmm15, zmm15, zmm0
   1000         vpxord  zmm12, zmm12, zmm1
   1001         vpxord  zmm13, zmm13, zmm2
   1002         vpxord  zmm14, zmm14, zmm3
   1003         vprord  zmm15, zmm15, 8
   1004         vprord  zmm12, zmm12, 8
   1005         vprord  zmm13, zmm13, 8
   1006         vprord  zmm14, zmm14, 8
   1007         vpaddd  zmm10, zmm10, zmm15
   1008         vpaddd  zmm11, zmm11, zmm12
   1009         vpaddd  zmm8, zmm8, zmm13
   1010         vpaddd  zmm9, zmm9, zmm14
   1011         vpxord  zmm5, zmm5, zmm10
   1012         vpxord  zmm6, zmm6, zmm11
   1013         vpxord  zmm7, zmm7, zmm8
   1014         vpxord  zmm4, zmm4, zmm9
   1015         vprord  zmm5, zmm5, 7
   1016         vprord  zmm6, zmm6, 7
   1017         vprord  zmm7, zmm7, 7
   1018         vprord  zmm4, zmm4, 7
   1019         vpxord  zmm0, zmm0, zmm8
   1020         vpxord  zmm1, zmm1, zmm9
   1021         vpxord  zmm2, zmm2, zmm10
   1022         vpxord  zmm3, zmm3, zmm11
   1023         vpxord  zmm4, zmm4, zmm12
   1024         vpxord  zmm5, zmm5, zmm13
   1025         vpxord  zmm6, zmm6, zmm14
   1026         vpxord  zmm7, zmm7, zmm15
   1027         movzx   eax, byte ptr [rbp+0x38]
   1028         jne     9b
   1029         mov     rbx, qword ptr [rbp+0x50]
   1030         vpunpckldq zmm16, zmm0, zmm1
   1031         vpunpckhdq zmm17, zmm0, zmm1
   1032         vpunpckldq zmm18, zmm2, zmm3
   1033         vpunpckhdq zmm19, zmm2, zmm3
   1034         vpunpckldq zmm20, zmm4, zmm5
   1035         vpunpckhdq zmm21, zmm4, zmm5
   1036         vpunpckldq zmm22, zmm6, zmm7
   1037         vpunpckhdq zmm23, zmm6, zmm7
   1038         vpunpcklqdq zmm0, zmm16, zmm18
   1039         vpunpckhqdq zmm1, zmm16, zmm18
   1040         vpunpcklqdq zmm2, zmm17, zmm19
   1041         vpunpckhqdq zmm3, zmm17, zmm19
   1042         vpunpcklqdq zmm4, zmm20, zmm22
   1043         vpunpckhqdq zmm5, zmm20, zmm22
   1044         vpunpcklqdq zmm6, zmm21, zmm23
   1045         vpunpckhqdq zmm7, zmm21, zmm23
   1046         vshufi32x4 zmm16, zmm0, zmm4, 0x88
   1047         vshufi32x4 zmm17, zmm1, zmm5, 0x88
   1048         vshufi32x4 zmm18, zmm2, zmm6, 0x88
   1049         vshufi32x4 zmm19, zmm3, zmm7, 0x88
   1050         vshufi32x4 zmm20, zmm0, zmm4, 0xDD
   1051         vshufi32x4 zmm21, zmm1, zmm5, 0xDD
   1052         vshufi32x4 zmm22, zmm2, zmm6, 0xDD
   1053         vshufi32x4 zmm23, zmm3, zmm7, 0xDD
   1054         vshufi32x4 zmm0, zmm16, zmm17, 0x88
   1055         vshufi32x4 zmm1, zmm18, zmm19, 0x88
   1056         vshufi32x4 zmm2, zmm20, zmm21, 0x88
   1057         vshufi32x4 zmm3, zmm22, zmm23, 0x88
   1058         vshufi32x4 zmm4, zmm16, zmm17, 0xDD
   1059         vshufi32x4 zmm5, zmm18, zmm19, 0xDD
   1060         vshufi32x4 zmm6, zmm20, zmm21, 0xDD
   1061         vshufi32x4 zmm7, zmm22, zmm23, 0xDD
   1062         vmovdqu32 zmmword ptr [rbx], zmm0
   1063         vmovdqu32 zmmword ptr [rbx+0x1*0x40], zmm1
   1064         vmovdqu32 zmmword ptr [rbx+0x2*0x40], zmm2
   1065         vmovdqu32 zmmword ptr [rbx+0x3*0x40], zmm3
   1066         vmovdqu32 zmmword ptr [rbx+0x4*0x40], zmm4
   1067         vmovdqu32 zmmword ptr [rbx+0x5*0x40], zmm5
   1068         vmovdqu32 zmmword ptr [rbx+0x6*0x40], zmm6
   1069         vmovdqu32 zmmword ptr [rbx+0x7*0x40], zmm7
   1070         vmovdqa32 zmm0, zmmword ptr [rsp]
   1071         vmovdqa32 zmm1, zmmword ptr [rsp+0x1*0x40]
   1072         vmovdqa32 zmm2, zmm0
   1073         vpaddd  zmm2{k1}, zmm0, dword ptr [ADD16+rip] {1to16}
   1074         vpcmpltud k2, zmm2, zmm0
   1075         vpaddd  zmm1 {k2}, zmm1, dword ptr [ADD1+rip] {1to16}
   1076         vmovdqa32 zmmword ptr [rsp], zmm2
   1077         vmovdqa32 zmmword ptr [rsp+0x1*0x40], zmm1
   1078         add     rdi, 128
   1079         add     rbx, 512
   1080         mov     qword ptr [rbp+0x50], rbx
   1081         sub     rsi, 16
   1082         cmp     rsi, 16
   1083         jnc     2b
   1084         test    rsi, rsi
   1085         jnz     3f
   1086 4:
   1087         vzeroupper
   1088         mov     rsp, rbp
   1089         pop     rbp
   1090         pop     rbx
   1091         pop     r12
   1092         pop     r13
   1093         pop     r14
   1094         pop     r15
   1095         ret
   1096 .p2align 6
   1097 3:
   1098         test    esi, 0x8
   1099         je      3f
   1100         vpbroadcastd ymm0, dword ptr [rcx]
   1101         vpbroadcastd ymm1, dword ptr [rcx+0x4]
   1102         vpbroadcastd ymm2, dword ptr [rcx+0x8]
   1103         vpbroadcastd ymm3, dword ptr [rcx+0xC]
   1104         vpbroadcastd ymm4, dword ptr [rcx+0x10]
   1105         vpbroadcastd ymm5, dword ptr [rcx+0x14]
   1106         vpbroadcastd ymm6, dword ptr [rcx+0x18]
   1107         vpbroadcastd ymm7, dword ptr [rcx+0x1C]
   1108         mov     r8, qword ptr [rdi]
   1109         mov     r9, qword ptr [rdi+0x8]
   1110         mov     r10, qword ptr [rdi+0x10]
   1111         mov     r11, qword ptr [rdi+0x18]
   1112         mov     r12, qword ptr [rdi+0x20]
   1113         mov     r13, qword ptr [rdi+0x28]
   1114         mov     r14, qword ptr [rdi+0x30]
   1115         mov     r15, qword ptr [rdi+0x38]
   1116         movzx   eax, byte ptr [rbp+0x38]
   1117         movzx   ebx, byte ptr [rbp+0x40]
   1118         or      eax, ebx
   1119         xor     edx, edx
   1120 2:
   1121         movzx   ebx, byte ptr [rbp+0x48]
   1122         or      ebx, eax
   1123         add     rdx, 64
   1124         cmp     rdx, qword ptr [rsp+0x80]
   1125         cmove   eax, ebx
   1126         mov     dword ptr [rsp+0x88], eax
   1127         vmovups xmm8, xmmword ptr [r8+rdx-0x40]
   1128         vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x40], 0x01
   1129         vmovups xmm9, xmmword ptr [r9+rdx-0x40]
   1130         vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x40], 0x01
   1131         vunpcklpd ymm12, ymm8, ymm9
   1132         vunpckhpd ymm13, ymm8, ymm9
   1133         vmovups xmm10, xmmword ptr [r10+rdx-0x40]
   1134         vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x40], 0x01
   1135         vmovups xmm11, xmmword ptr [r11+rdx-0x40]
   1136         vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x40], 0x01
   1137         vunpcklpd ymm14, ymm10, ymm11
   1138         vunpckhpd ymm15, ymm10, ymm11
   1139         vshufps ymm16, ymm12, ymm14, 136
   1140         vshufps ymm17, ymm12, ymm14, 221
   1141         vshufps ymm18, ymm13, ymm15, 136
   1142         vshufps ymm19, ymm13, ymm15, 221
   1143         vmovups xmm8, xmmword ptr [r8+rdx-0x30]
   1144         vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x30], 0x01
   1145         vmovups xmm9, xmmword ptr [r9+rdx-0x30]
   1146         vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x30], 0x01
   1147         vunpcklpd ymm12, ymm8, ymm9
   1148         vunpckhpd ymm13, ymm8, ymm9
   1149         vmovups xmm10, xmmword ptr [r10+rdx-0x30]
   1150         vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x30], 0x01
   1151         vmovups xmm11, xmmword ptr [r11+rdx-0x30]
   1152         vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x30], 0x01
   1153         vunpcklpd ymm14, ymm10, ymm11
   1154         vunpckhpd ymm15, ymm10, ymm11
   1155         vshufps ymm20, ymm12, ymm14, 136
   1156         vshufps ymm21, ymm12, ymm14, 221
   1157         vshufps ymm22, ymm13, ymm15, 136
   1158         vshufps ymm23, ymm13, ymm15, 221
   1159         vmovups xmm8, xmmword ptr [r8+rdx-0x20]
   1160         vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x20], 0x01
   1161         vmovups xmm9, xmmword ptr [r9+rdx-0x20]
   1162         vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x20], 0x01
   1163         vunpcklpd ymm12, ymm8, ymm9
   1164         vunpckhpd ymm13, ymm8, ymm9
   1165         vmovups xmm10, xmmword ptr [r10+rdx-0x20]
   1166         vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x20], 0x01
   1167         vmovups xmm11, xmmword ptr [r11+rdx-0x20]
   1168         vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x20], 0x01
   1169         vunpcklpd ymm14, ymm10, ymm11
   1170         vunpckhpd ymm15, ymm10, ymm11
   1171         vshufps ymm24, ymm12, ymm14, 136
   1172         vshufps ymm25, ymm12, ymm14, 221
   1173         vshufps ymm26, ymm13, ymm15, 136
   1174         vshufps ymm27, ymm13, ymm15, 221
   1175         vmovups xmm8, xmmword ptr [r8+rdx-0x10]
   1176         vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x10], 0x01
   1177         vmovups xmm9, xmmword ptr [r9+rdx-0x10]
   1178         vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x10], 0x01
   1179         vunpcklpd ymm12, ymm8, ymm9
   1180         vunpckhpd ymm13, ymm8, ymm9
   1181         vmovups xmm10, xmmword ptr [r10+rdx-0x10]
   1182         vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x10], 0x01
   1183         vmovups xmm11, xmmword ptr [r11+rdx-0x10]
   1184         vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x10], 0x01
   1185         vunpcklpd ymm14, ymm10, ymm11
   1186         vunpckhpd ymm15, ymm10, ymm11
   1187         vshufps ymm28, ymm12, ymm14, 136
   1188         vshufps ymm29, ymm12, ymm14, 221
   1189         vshufps ymm30, ymm13, ymm15, 136
   1190         vshufps ymm31, ymm13, ymm15, 221
   1191         vpbroadcastd ymm8, dword ptr [BLAKE3_IV_0+rip]
   1192         vpbroadcastd ymm9, dword ptr [BLAKE3_IV_1+rip]
   1193         vpbroadcastd ymm10, dword ptr [BLAKE3_IV_2+rip]
   1194         vpbroadcastd ymm11, dword ptr [BLAKE3_IV_3+rip]
   1195         vmovdqa ymm12, ymmword ptr [rsp]
   1196         vmovdqa ymm13, ymmword ptr [rsp+0x40]
   1197         vpbroadcastd ymm14, dword ptr [BLAKE3_BLOCK_LEN+rip]
   1198         vpbroadcastd ymm15, dword ptr [rsp+0x88]
   1199         vpaddd  ymm0, ymm0, ymm16
   1200         vpaddd  ymm1, ymm1, ymm18
   1201         vpaddd  ymm2, ymm2, ymm20
   1202         vpaddd  ymm3, ymm3, ymm22
   1203         vpaddd  ymm0, ymm0, ymm4
   1204         vpaddd  ymm1, ymm1, ymm5
   1205         vpaddd  ymm2, ymm2, ymm6
   1206         vpaddd  ymm3, ymm3, ymm7
   1207         vpxord  ymm12, ymm12, ymm0
   1208         vpxord  ymm13, ymm13, ymm1
   1209         vpxord  ymm14, ymm14, ymm2
   1210         vpxord  ymm15, ymm15, ymm3
   1211         vprord  ymm12, ymm12, 16
   1212         vprord  ymm13, ymm13, 16
   1213         vprord  ymm14, ymm14, 16
   1214         vprord  ymm15, ymm15, 16
   1215         vpaddd  ymm8, ymm8, ymm12
   1216         vpaddd  ymm9, ymm9, ymm13
   1217         vpaddd  ymm10, ymm10, ymm14
   1218         vpaddd  ymm11, ymm11, ymm15
   1219         vpxord  ymm4, ymm4, ymm8
   1220         vpxord  ymm5, ymm5, ymm9
   1221         vpxord  ymm6, ymm6, ymm10
   1222         vpxord  ymm7, ymm7, ymm11
   1223         vprord  ymm4, ymm4, 12
   1224         vprord  ymm5, ymm5, 12
   1225         vprord  ymm6, ymm6, 12
   1226         vprord  ymm7, ymm7, 12
   1227         vpaddd  ymm0, ymm0, ymm17
   1228         vpaddd  ymm1, ymm1, ymm19
   1229         vpaddd  ymm2, ymm2, ymm21
   1230         vpaddd  ymm3, ymm3, ymm23
   1231         vpaddd  ymm0, ymm0, ymm4
   1232         vpaddd  ymm1, ymm1, ymm5
   1233         vpaddd  ymm2, ymm2, ymm6
   1234         vpaddd  ymm3, ymm3, ymm7
   1235         vpxord  ymm12, ymm12, ymm0
   1236         vpxord  ymm13, ymm13, ymm1
   1237         vpxord  ymm14, ymm14, ymm2
   1238         vpxord  ymm15, ymm15, ymm3
   1239         vprord  ymm12, ymm12, 8
   1240         vprord  ymm13, ymm13, 8
   1241         vprord  ymm14, ymm14, 8
   1242         vprord  ymm15, ymm15, 8
   1243         vpaddd  ymm8, ymm8, ymm12
   1244         vpaddd  ymm9, ymm9, ymm13
   1245         vpaddd  ymm10, ymm10, ymm14
   1246         vpaddd  ymm11, ymm11, ymm15
   1247         vpxord  ymm4, ymm4, ymm8
   1248         vpxord  ymm5, ymm5, ymm9
   1249         vpxord  ymm6, ymm6, ymm10
   1250         vpxord  ymm7, ymm7, ymm11
   1251         vprord  ymm4, ymm4, 7
   1252         vprord  ymm5, ymm5, 7
   1253         vprord  ymm6, ymm6, 7
   1254         vprord  ymm7, ymm7, 7
   1255         vpaddd  ymm0, ymm0, ymm24
   1256         vpaddd  ymm1, ymm1, ymm26
   1257         vpaddd  ymm2, ymm2, ymm28
   1258         vpaddd  ymm3, ymm3, ymm30
   1259         vpaddd  ymm0, ymm0, ymm5
   1260         vpaddd  ymm1, ymm1, ymm6
   1261         vpaddd  ymm2, ymm2, ymm7
   1262         vpaddd  ymm3, ymm3, ymm4
   1263         vpxord  ymm15, ymm15, ymm0
   1264         vpxord  ymm12, ymm12, ymm1
   1265         vpxord  ymm13, ymm13, ymm2
   1266         vpxord  ymm14, ymm14, ymm3
   1267         vprord  ymm15, ymm15, 16
   1268         vprord  ymm12, ymm12, 16
   1269         vprord  ymm13, ymm13, 16
   1270         vprord  ymm14, ymm14, 16
   1271         vpaddd  ymm10, ymm10, ymm15
   1272         vpaddd  ymm11, ymm11, ymm12
   1273         vpaddd  ymm8, ymm8, ymm13
   1274         vpaddd  ymm9, ymm9, ymm14
   1275         vpxord  ymm5, ymm5, ymm10
   1276         vpxord  ymm6, ymm6, ymm11
   1277         vpxord  ymm7, ymm7, ymm8
   1278         vpxord  ymm4, ymm4, ymm9
   1279         vprord  ymm5, ymm5, 12
   1280         vprord  ymm6, ymm6, 12
   1281         vprord  ymm7, ymm7, 12
   1282         vprord  ymm4, ymm4, 12
   1283         vpaddd  ymm0, ymm0, ymm25
   1284         vpaddd  ymm1, ymm1, ymm27
   1285         vpaddd  ymm2, ymm2, ymm29
   1286         vpaddd  ymm3, ymm3, ymm31
   1287         vpaddd  ymm0, ymm0, ymm5
   1288         vpaddd  ymm1, ymm1, ymm6
   1289         vpaddd  ymm2, ymm2, ymm7
   1290         vpaddd  ymm3, ymm3, ymm4
   1291         vpxord  ymm15, ymm15, ymm0
   1292         vpxord  ymm12, ymm12, ymm1
   1293         vpxord  ymm13, ymm13, ymm2
   1294         vpxord  ymm14, ymm14, ymm3
   1295         vprord  ymm15, ymm15, 8
   1296         vprord  ymm12, ymm12, 8
   1297         vprord  ymm13, ymm13, 8
   1298         vprord  ymm14, ymm14, 8
   1299         vpaddd  ymm10, ymm10, ymm15
   1300         vpaddd  ymm11, ymm11, ymm12
   1301         vpaddd  ymm8, ymm8, ymm13
   1302         vpaddd  ymm9, ymm9, ymm14
   1303         vpxord  ymm5, ymm5, ymm10
   1304         vpxord  ymm6, ymm6, ymm11
   1305         vpxord  ymm7, ymm7, ymm8
   1306         vpxord  ymm4, ymm4, ymm9
   1307         vprord  ymm5, ymm5, 7
   1308         vprord  ymm6, ymm6, 7
   1309         vprord  ymm7, ymm7, 7
   1310         vprord  ymm4, ymm4, 7
   1311         vpaddd  ymm0, ymm0, ymm18
   1312         vpaddd  ymm1, ymm1, ymm19
   1313         vpaddd  ymm2, ymm2, ymm23
   1314         vpaddd  ymm3, ymm3, ymm20
   1315         vpaddd  ymm0, ymm0, ymm4
   1316         vpaddd  ymm1, ymm1, ymm5
   1317         vpaddd  ymm2, ymm2, ymm6
   1318         vpaddd  ymm3, ymm3, ymm7
   1319         vpxord  ymm12, ymm12, ymm0
   1320         vpxord  ymm13, ymm13, ymm1
   1321         vpxord  ymm14, ymm14, ymm2
   1322         vpxord  ymm15, ymm15, ymm3
   1323         vprord  ymm12, ymm12, 16
   1324         vprord  ymm13, ymm13, 16
   1325         vprord  ymm14, ymm14, 16
   1326         vprord  ymm15, ymm15, 16
   1327         vpaddd  ymm8, ymm8, ymm12
   1328         vpaddd  ymm9, ymm9, ymm13
   1329         vpaddd  ymm10, ymm10, ymm14
   1330         vpaddd  ymm11, ymm11, ymm15
   1331         vpxord  ymm4, ymm4, ymm8
   1332         vpxord  ymm5, ymm5, ymm9
   1333         vpxord  ymm6, ymm6, ymm10
   1334         vpxord  ymm7, ymm7, ymm11
   1335         vprord  ymm4, ymm4, 12
   1336         vprord  ymm5, ymm5, 12
   1337         vprord  ymm6, ymm6, 12
   1338         vprord  ymm7, ymm7, 12
   1339         vpaddd  ymm0, ymm0, ymm22
   1340         vpaddd  ymm1, ymm1, ymm26
   1341         vpaddd  ymm2, ymm2, ymm16
   1342         vpaddd  ymm3, ymm3, ymm29
   1343         vpaddd  ymm0, ymm0, ymm4
   1344         vpaddd  ymm1, ymm1, ymm5
   1345         vpaddd  ymm2, ymm2, ymm6
   1346         vpaddd  ymm3, ymm3, ymm7
   1347         vpxord  ymm12, ymm12, ymm0
   1348         vpxord  ymm13, ymm13, ymm1
   1349         vpxord  ymm14, ymm14, ymm2
   1350         vpxord  ymm15, ymm15, ymm3
   1351         vprord  ymm12, ymm12, 8
   1352         vprord  ymm13, ymm13, 8
   1353         vprord  ymm14, ymm14, 8
   1354         vprord  ymm15, ymm15, 8
   1355         vpaddd  ymm8, ymm8, ymm12
   1356         vpaddd  ymm9, ymm9, ymm13
   1357         vpaddd  ymm10, ymm10, ymm14
   1358         vpaddd  ymm11, ymm11, ymm15
   1359         vpxord  ymm4, ymm4, ymm8
   1360         vpxord  ymm5, ymm5, ymm9
   1361         vpxord  ymm6, ymm6, ymm10
   1362         vpxord  ymm7, ymm7, ymm11
   1363         vprord  ymm4, ymm4, 7
   1364         vprord  ymm5, ymm5, 7
   1365         vprord  ymm6, ymm6, 7
   1366         vprord  ymm7, ymm7, 7
   1367         vpaddd  ymm0, ymm0, ymm17
   1368         vpaddd  ymm1, ymm1, ymm28
   1369         vpaddd  ymm2, ymm2, ymm25
   1370         vpaddd  ymm3, ymm3, ymm31
   1371         vpaddd  ymm0, ymm0, ymm5
   1372         vpaddd  ymm1, ymm1, ymm6
   1373         vpaddd  ymm2, ymm2, ymm7
   1374         vpaddd  ymm3, ymm3, ymm4
   1375         vpxord  ymm15, ymm15, ymm0
   1376         vpxord  ymm12, ymm12, ymm1
   1377         vpxord  ymm13, ymm13, ymm2
   1378         vpxord  ymm14, ymm14, ymm3
   1379         vprord  ymm15, ymm15, 16
   1380         vprord  ymm12, ymm12, 16
   1381         vprord  ymm13, ymm13, 16
   1382         vprord  ymm14, ymm14, 16
   1383         vpaddd  ymm10, ymm10, ymm15
   1384         vpaddd  ymm11, ymm11, ymm12
   1385         vpaddd  ymm8, ymm8, ymm13
   1386         vpaddd  ymm9, ymm9, ymm14
   1387         vpxord  ymm5, ymm5, ymm10
   1388         vpxord  ymm6, ymm6, ymm11
   1389         vpxord  ymm7, ymm7, ymm8
   1390         vpxord  ymm4, ymm4, ymm9
   1391         vprord  ymm5, ymm5, 12
   1392         vprord  ymm6, ymm6, 12
   1393         vprord  ymm7, ymm7, 12
   1394         vprord  ymm4, ymm4, 12
   1395         vpaddd  ymm0, ymm0, ymm27
   1396         vpaddd  ymm1, ymm1, ymm21
   1397         vpaddd  ymm2, ymm2, ymm30
   1398         vpaddd  ymm3, ymm3, ymm24
   1399         vpaddd  ymm0, ymm0, ymm5
   1400         vpaddd  ymm1, ymm1, ymm6
   1401         vpaddd  ymm2, ymm2, ymm7
   1402         vpaddd  ymm3, ymm3, ymm4
   1403         vpxord  ymm15, ymm15, ymm0
   1404         vpxord  ymm12, ymm12, ymm1
   1405         vpxord  ymm13, ymm13, ymm2
   1406         vpxord  ymm14, ymm14, ymm3
   1407         vprord  ymm15, ymm15, 8
   1408         vprord  ymm12, ymm12, 8
   1409         vprord  ymm13, ymm13, 8
   1410         vprord  ymm14, ymm14, 8
   1411         vpaddd  ymm10, ymm10, ymm15
   1412         vpaddd  ymm11, ymm11, ymm12
   1413         vpaddd  ymm8, ymm8, ymm13
   1414         vpaddd  ymm9, ymm9, ymm14
   1415         vpxord  ymm5, ymm5, ymm10
   1416         vpxord  ymm6, ymm6, ymm11
   1417         vpxord  ymm7, ymm7, ymm8
   1418         vpxord  ymm4, ymm4, ymm9
   1419         vprord  ymm5, ymm5, 7
   1420         vprord  ymm6, ymm6, 7
   1421         vprord  ymm7, ymm7, 7
   1422         vprord  ymm4, ymm4, 7
   1423         vpaddd  ymm0, ymm0, ymm19
   1424         vpaddd  ymm1, ymm1, ymm26
   1425         vpaddd  ymm2, ymm2, ymm29
   1426         vpaddd  ymm3, ymm3, ymm23
   1427         vpaddd  ymm0, ymm0, ymm4
   1428         vpaddd  ymm1, ymm1, ymm5
   1429         vpaddd  ymm2, ymm2, ymm6
   1430         vpaddd  ymm3, ymm3, ymm7
   1431         vpxord  ymm12, ymm12, ymm0
   1432         vpxord  ymm13, ymm13, ymm1
   1433         vpxord  ymm14, ymm14, ymm2
   1434         vpxord  ymm15, ymm15, ymm3
   1435         vprord  ymm12, ymm12, 16
   1436         vprord  ymm13, ymm13, 16
   1437         vprord  ymm14, ymm14, 16
   1438         vprord  ymm15, ymm15, 16
   1439         vpaddd  ymm8, ymm8, ymm12
   1440         vpaddd  ymm9, ymm9, ymm13
   1441         vpaddd  ymm10, ymm10, ymm14
   1442         vpaddd  ymm11, ymm11, ymm15
   1443         vpxord  ymm4, ymm4, ymm8
   1444         vpxord  ymm5, ymm5, ymm9
   1445         vpxord  ymm6, ymm6, ymm10
   1446         vpxord  ymm7, ymm7, ymm11
   1447         vprord  ymm4, ymm4, 12
   1448         vprord  ymm5, ymm5, 12
   1449         vprord  ymm6, ymm6, 12
   1450         vprord  ymm7, ymm7, 12
   1451         vpaddd  ymm0, ymm0, ymm20
   1452         vpaddd  ymm1, ymm1, ymm28
   1453         vpaddd  ymm2, ymm2, ymm18
   1454         vpaddd  ymm3, ymm3, ymm30
   1455         vpaddd  ymm0, ymm0, ymm4
   1456         vpaddd  ymm1, ymm1, ymm5
   1457         vpaddd  ymm2, ymm2, ymm6
   1458         vpaddd  ymm3, ymm3, ymm7
   1459         vpxord  ymm12, ymm12, ymm0
   1460         vpxord  ymm13, ymm13, ymm1
   1461         vpxord  ymm14, ymm14, ymm2
   1462         vpxord  ymm15, ymm15, ymm3
   1463         vprord  ymm12, ymm12, 8
   1464         vprord  ymm13, ymm13, 8
   1465         vprord  ymm14, ymm14, 8
   1466         vprord  ymm15, ymm15, 8
   1467         vpaddd  ymm8, ymm8, ymm12
   1468         vpaddd  ymm9, ymm9, ymm13
   1469         vpaddd  ymm10, ymm10, ymm14
   1470         vpaddd  ymm11, ymm11, ymm15
   1471         vpxord  ymm4, ymm4, ymm8
   1472         vpxord  ymm5, ymm5, ymm9
   1473         vpxord  ymm6, ymm6, ymm10
   1474         vpxord  ymm7, ymm7, ymm11
   1475         vprord  ymm4, ymm4, 7
   1476         vprord  ymm5, ymm5, 7
   1477         vprord  ymm6, ymm6, 7
   1478         vprord  ymm7, ymm7, 7
   1479         vpaddd  ymm0, ymm0, ymm22
   1480         vpaddd  ymm1, ymm1, ymm25
   1481         vpaddd  ymm2, ymm2, ymm27
   1482         vpaddd  ymm3, ymm3, ymm24
   1483         vpaddd  ymm0, ymm0, ymm5
   1484         vpaddd  ymm1, ymm1, ymm6
   1485         vpaddd  ymm2, ymm2, ymm7
   1486         vpaddd  ymm3, ymm3, ymm4
   1487         vpxord  ymm15, ymm15, ymm0
   1488         vpxord  ymm12, ymm12, ymm1
   1489         vpxord  ymm13, ymm13, ymm2
   1490         vpxord  ymm14, ymm14, ymm3
   1491         vprord  ymm15, ymm15, 16
   1492         vprord  ymm12, ymm12, 16
   1493         vprord  ymm13, ymm13, 16
   1494         vprord  ymm14, ymm14, 16
   1495         vpaddd  ymm10, ymm10, ymm15
   1496         vpaddd  ymm11, ymm11, ymm12
   1497         vpaddd  ymm8, ymm8, ymm13
   1498         vpaddd  ymm9, ymm9, ymm14
   1499         vpxord  ymm5, ymm5, ymm10
   1500         vpxord  ymm6, ymm6, ymm11
   1501         vpxord  ymm7, ymm7, ymm8
   1502         vpxord  ymm4, ymm4, ymm9
   1503         vprord  ymm5, ymm5, 12
   1504         vprord  ymm6, ymm6, 12
   1505         vprord  ymm7, ymm7, 12
   1506         vprord  ymm4, ymm4, 12
   1507         vpaddd  ymm0, ymm0, ymm21
   1508         vpaddd  ymm1, ymm1, ymm16
   1509         vpaddd  ymm2, ymm2, ymm31
   1510         vpaddd  ymm3, ymm3, ymm17
   1511         vpaddd  ymm0, ymm0, ymm5
   1512         vpaddd  ymm1, ymm1, ymm6
   1513         vpaddd  ymm2, ymm2, ymm7
   1514         vpaddd  ymm3, ymm3, ymm4
   1515         vpxord  ymm15, ymm15, ymm0
   1516         vpxord  ymm12, ymm12, ymm1
   1517         vpxord  ymm13, ymm13, ymm2
   1518         vpxord  ymm14, ymm14, ymm3
   1519         vprord  ymm15, ymm15, 8
   1520         vprord  ymm12, ymm12, 8
   1521         vprord  ymm13, ymm13, 8
   1522         vprord  ymm14, ymm14, 8
   1523         vpaddd  ymm10, ymm10, ymm15
   1524         vpaddd  ymm11, ymm11, ymm12
   1525         vpaddd  ymm8, ymm8, ymm13
   1526         vpaddd  ymm9, ymm9, ymm14
   1527         vpxord  ymm5, ymm5, ymm10
   1528         vpxord  ymm6, ymm6, ymm11
   1529         vpxord  ymm7, ymm7, ymm8
   1530         vpxord  ymm4, ymm4, ymm9
   1531         vprord  ymm5, ymm5, 7
   1532         vprord  ymm6, ymm6, 7
   1533         vprord  ymm7, ymm7, 7
   1534         vprord  ymm4, ymm4, 7
   1535         vpaddd  ymm0, ymm0, ymm26
   1536         vpaddd  ymm1, ymm1, ymm28
   1537         vpaddd  ymm2, ymm2, ymm30
   1538         vpaddd  ymm3, ymm3, ymm29
   1539         vpaddd  ymm0, ymm0, ymm4
   1540         vpaddd  ymm1, ymm1, ymm5
   1541         vpaddd  ymm2, ymm2, ymm6
   1542         vpaddd  ymm3, ymm3, ymm7
   1543         vpxord  ymm12, ymm12, ymm0
   1544         vpxord  ymm13, ymm13, ymm1
   1545         vpxord  ymm14, ymm14, ymm2
   1546         vpxord  ymm15, ymm15, ymm3
   1547         vprord  ymm12, ymm12, 16
   1548         vprord  ymm13, ymm13, 16
   1549         vprord  ymm14, ymm14, 16
   1550         vprord  ymm15, ymm15, 16
   1551         vpaddd  ymm8, ymm8, ymm12
   1552         vpaddd  ymm9, ymm9, ymm13
   1553         vpaddd  ymm10, ymm10, ymm14
   1554         vpaddd  ymm11, ymm11, ymm15
   1555         vpxord  ymm4, ymm4, ymm8
   1556         vpxord  ymm5, ymm5, ymm9
   1557         vpxord  ymm6, ymm6, ymm10
   1558         vpxord  ymm7, ymm7, ymm11
   1559         vprord  ymm4, ymm4, 12
   1560         vprord  ymm5, ymm5, 12
   1561         vprord  ymm6, ymm6, 12
   1562         vprord  ymm7, ymm7, 12
   1563         vpaddd  ymm0, ymm0, ymm23
   1564         vpaddd  ymm1, ymm1, ymm25
   1565         vpaddd  ymm2, ymm2, ymm19
   1566         vpaddd  ymm3, ymm3, ymm31
   1567         vpaddd  ymm0, ymm0, ymm4
   1568         vpaddd  ymm1, ymm1, ymm5
   1569         vpaddd  ymm2, ymm2, ymm6
   1570         vpaddd  ymm3, ymm3, ymm7
   1571         vpxord  ymm12, ymm12, ymm0
   1572         vpxord  ymm13, ymm13, ymm1
   1573         vpxord  ymm14, ymm14, ymm2
   1574         vpxord  ymm15, ymm15, ymm3
   1575         vprord  ymm12, ymm12, 8
   1576         vprord  ymm13, ymm13, 8
   1577         vprord  ymm14, ymm14, 8
   1578         vprord  ymm15, ymm15, 8
   1579         vpaddd  ymm8, ymm8, ymm12
   1580         vpaddd  ymm9, ymm9, ymm13
   1581         vpaddd  ymm10, ymm10, ymm14
   1582         vpaddd  ymm11, ymm11, ymm15
   1583         vpxord  ymm4, ymm4, ymm8
   1584         vpxord  ymm5, ymm5, ymm9
   1585         vpxord  ymm6, ymm6, ymm10
   1586         vpxord  ymm7, ymm7, ymm11
   1587         vprord  ymm4, ymm4, 7
   1588         vprord  ymm5, ymm5, 7
   1589         vprord  ymm6, ymm6, 7
   1590         vprord  ymm7, ymm7, 7
   1591         vpaddd  ymm0, ymm0, ymm20
   1592         vpaddd  ymm1, ymm1, ymm27
   1593         vpaddd  ymm2, ymm2, ymm21
   1594         vpaddd  ymm3, ymm3, ymm17
   1595         vpaddd  ymm0, ymm0, ymm5
   1596         vpaddd  ymm1, ymm1, ymm6
   1597         vpaddd  ymm2, ymm2, ymm7
   1598         vpaddd  ymm3, ymm3, ymm4
   1599         vpxord  ymm15, ymm15, ymm0
   1600         vpxord  ymm12, ymm12, ymm1
   1601         vpxord  ymm13, ymm13, ymm2
   1602         vpxord  ymm14, ymm14, ymm3
   1603         vprord  ymm15, ymm15, 16
   1604         vprord  ymm12, ymm12, 16
   1605         vprord  ymm13, ymm13, 16
   1606         vprord  ymm14, ymm14, 16
   1607         vpaddd  ymm10, ymm10, ymm15
   1608         vpaddd  ymm11, ymm11, ymm12
   1609         vpaddd  ymm8, ymm8, ymm13
   1610         vpaddd  ymm9, ymm9, ymm14
   1611         vpxord  ymm5, ymm5, ymm10
   1612         vpxord  ymm6, ymm6, ymm11
   1613         vpxord  ymm7, ymm7, ymm8
   1614         vpxord  ymm4, ymm4, ymm9
   1615         vprord  ymm5, ymm5, 12
   1616         vprord  ymm6, ymm6, 12
   1617         vprord  ymm7, ymm7, 12
   1618         vprord  ymm4, ymm4, 12
   1619         vpaddd  ymm0, ymm0, ymm16
   1620         vpaddd  ymm1, ymm1, ymm18
   1621         vpaddd  ymm2, ymm2, ymm24
   1622         vpaddd  ymm3, ymm3, ymm22
   1623         vpaddd  ymm0, ymm0, ymm5
   1624         vpaddd  ymm1, ymm1, ymm6
   1625         vpaddd  ymm2, ymm2, ymm7
   1626         vpaddd  ymm3, ymm3, ymm4
   1627         vpxord  ymm15, ymm15, ymm0
   1628         vpxord  ymm12, ymm12, ymm1
   1629         vpxord  ymm13, ymm13, ymm2
   1630         vpxord  ymm14, ymm14, ymm3
   1631         vprord  ymm15, ymm15, 8
   1632         vprord  ymm12, ymm12, 8
   1633         vprord  ymm13, ymm13, 8
   1634         vprord  ymm14, ymm14, 8
   1635         vpaddd  ymm10, ymm10, ymm15
   1636         vpaddd  ymm11, ymm11, ymm12
   1637         vpaddd  ymm8, ymm8, ymm13
   1638         vpaddd  ymm9, ymm9, ymm14
   1639         vpxord  ymm5, ymm5, ymm10
   1640         vpxord  ymm6, ymm6, ymm11
   1641         vpxord  ymm7, ymm7, ymm8
   1642         vpxord  ymm4, ymm4, ymm9
   1643         vprord  ymm5, ymm5, 7
   1644         vprord  ymm6, ymm6, 7
   1645         vprord  ymm7, ymm7, 7
   1646         vprord  ymm4, ymm4, 7
   1647         vpaddd  ymm0, ymm0, ymm28
   1648         vpaddd  ymm1, ymm1, ymm25
   1649         vpaddd  ymm2, ymm2, ymm31
   1650         vpaddd  ymm3, ymm3, ymm30
   1651         vpaddd  ymm0, ymm0, ymm4
   1652         vpaddd  ymm1, ymm1, ymm5
   1653         vpaddd  ymm2, ymm2, ymm6
   1654         vpaddd  ymm3, ymm3, ymm7
   1655         vpxord  ymm12, ymm12, ymm0
   1656         vpxord  ymm13, ymm13, ymm1
   1657         vpxord  ymm14, ymm14, ymm2
   1658         vpxord  ymm15, ymm15, ymm3
   1659         vprord  ymm12, ymm12, 16
   1660         vprord  ymm13, ymm13, 16
   1661         vprord  ymm14, ymm14, 16
   1662         vprord  ymm15, ymm15, 16
   1663         vpaddd  ymm8, ymm8, ymm12
   1664         vpaddd  ymm9, ymm9, ymm13
   1665         vpaddd  ymm10, ymm10, ymm14
   1666         vpaddd  ymm11, ymm11, ymm15
   1667         vpxord  ymm4, ymm4, ymm8
   1668         vpxord  ymm5, ymm5, ymm9
   1669         vpxord  ymm6, ymm6, ymm10
   1670         vpxord  ymm7, ymm7, ymm11
   1671         vprord  ymm4, ymm4, 12
   1672         vprord  ymm5, ymm5, 12
   1673         vprord  ymm6, ymm6, 12
   1674         vprord  ymm7, ymm7, 12
   1675         vpaddd  ymm0, ymm0, ymm29
   1676         vpaddd  ymm1, ymm1, ymm27
   1677         vpaddd  ymm2, ymm2, ymm26
   1678         vpaddd  ymm3, ymm3, ymm24
   1679         vpaddd  ymm0, ymm0, ymm4
   1680         vpaddd  ymm1, ymm1, ymm5
   1681         vpaddd  ymm2, ymm2, ymm6
   1682         vpaddd  ymm3, ymm3, ymm7
   1683         vpxord  ymm12, ymm12, ymm0
   1684         vpxord  ymm13, ymm13, ymm1
   1685         vpxord  ymm14, ymm14, ymm2
   1686         vpxord  ymm15, ymm15, ymm3
   1687         vprord  ymm12, ymm12, 8
   1688         vprord  ymm13, ymm13, 8
   1689         vprord  ymm14, ymm14, 8
   1690         vprord  ymm15, ymm15, 8
   1691         vpaddd  ymm8, ymm8, ymm12
   1692         vpaddd  ymm9, ymm9, ymm13
   1693         vpaddd  ymm10, ymm10, ymm14
   1694         vpaddd  ymm11, ymm11, ymm15
   1695         vpxord  ymm4, ymm4, ymm8
   1696         vpxord  ymm5, ymm5, ymm9
   1697         vpxord  ymm6, ymm6, ymm10
   1698         vpxord  ymm7, ymm7, ymm11
   1699         vprord  ymm4, ymm4, 7
   1700         vprord  ymm5, ymm5, 7
   1701         vprord  ymm6, ymm6, 7
   1702         vprord  ymm7, ymm7, 7
   1703         vpaddd  ymm0, ymm0, ymm23
   1704         vpaddd  ymm1, ymm1, ymm21
   1705         vpaddd  ymm2, ymm2, ymm16
   1706         vpaddd  ymm3, ymm3, ymm22
   1707         vpaddd  ymm0, ymm0, ymm5
   1708         vpaddd  ymm1, ymm1, ymm6
   1709         vpaddd  ymm2, ymm2, ymm7
   1710         vpaddd  ymm3, ymm3, ymm4
   1711         vpxord  ymm15, ymm15, ymm0
   1712         vpxord  ymm12, ymm12, ymm1
   1713         vpxord  ymm13, ymm13, ymm2
   1714         vpxord  ymm14, ymm14, ymm3
   1715         vprord  ymm15, ymm15, 16
   1716         vprord  ymm12, ymm12, 16
   1717         vprord  ymm13, ymm13, 16
   1718         vprord  ymm14, ymm14, 16
   1719         vpaddd  ymm10, ymm10, ymm15
   1720         vpaddd  ymm11, ymm11, ymm12
   1721         vpaddd  ymm8, ymm8, ymm13
   1722         vpaddd  ymm9, ymm9, ymm14
   1723         vpxord  ymm5, ymm5, ymm10
   1724         vpxord  ymm6, ymm6, ymm11
   1725         vpxord  ymm7, ymm7, ymm8
   1726         vpxord  ymm4, ymm4, ymm9
   1727         vprord  ymm5, ymm5, 12
   1728         vprord  ymm6, ymm6, 12
   1729         vprord  ymm7, ymm7, 12
   1730         vprord  ymm4, ymm4, 12
   1731         vpaddd  ymm0, ymm0, ymm18
   1732         vpaddd  ymm1, ymm1, ymm19
   1733         vpaddd  ymm2, ymm2, ymm17
   1734         vpaddd  ymm3, ymm3, ymm20
   1735         vpaddd  ymm0, ymm0, ymm5
   1736         vpaddd  ymm1, ymm1, ymm6
   1737         vpaddd  ymm2, ymm2, ymm7
   1738         vpaddd  ymm3, ymm3, ymm4
   1739         vpxord  ymm15, ymm15, ymm0
   1740         vpxord  ymm12, ymm12, ymm1
   1741         vpxord  ymm13, ymm13, ymm2
   1742         vpxord  ymm14, ymm14, ymm3
   1743         vprord  ymm15, ymm15, 8
   1744         vprord  ymm12, ymm12, 8
   1745         vprord  ymm13, ymm13, 8
   1746         vprord  ymm14, ymm14, 8
   1747         vpaddd  ymm10, ymm10, ymm15
   1748         vpaddd  ymm11, ymm11, ymm12
   1749         vpaddd  ymm8, ymm8, ymm13
   1750         vpaddd  ymm9, ymm9, ymm14
   1751         vpxord  ymm5, ymm5, ymm10
   1752         vpxord  ymm6, ymm6, ymm11
   1753         vpxord  ymm7, ymm7, ymm8
   1754         vpxord  ymm4, ymm4, ymm9
   1755         vprord  ymm5, ymm5, 7
   1756         vprord  ymm6, ymm6, 7
   1757         vprord  ymm7, ymm7, 7
   1758         vprord  ymm4, ymm4, 7
   1759         vpaddd  ymm0, ymm0, ymm25
   1760         vpaddd  ymm1, ymm1, ymm27
   1761         vpaddd  ymm2, ymm2, ymm24
   1762         vpaddd  ymm3, ymm3, ymm31
   1763         vpaddd  ymm0, ymm0, ymm4
   1764         vpaddd  ymm1, ymm1, ymm5
   1765         vpaddd  ymm2, ymm2, ymm6
   1766         vpaddd  ymm3, ymm3, ymm7
   1767         vpxord  ymm12, ymm12, ymm0
   1768         vpxord  ymm13, ymm13, ymm1
   1769         vpxord  ymm14, ymm14, ymm2
   1770         vpxord  ymm15, ymm15, ymm3
   1771         vprord  ymm12, ymm12, 16
   1772         vprord  ymm13, ymm13, 16
   1773         vprord  ymm14, ymm14, 16
   1774         vprord  ymm15, ymm15, 16
   1775         vpaddd  ymm8, ymm8, ymm12
   1776         vpaddd  ymm9, ymm9, ymm13
   1777         vpaddd  ymm10, ymm10, ymm14
   1778         vpaddd  ymm11, ymm11, ymm15
   1779         vpxord  ymm4, ymm4, ymm8
   1780         vpxord  ymm5, ymm5, ymm9
   1781         vpxord  ymm6, ymm6, ymm10
   1782         vpxord  ymm7, ymm7, ymm11
   1783         vprord  ymm4, ymm4, 12
   1784         vprord  ymm5, ymm5, 12
   1785         vprord  ymm6, ymm6, 12
   1786         vprord  ymm7, ymm7, 12
   1787         vpaddd  ymm0, ymm0, ymm30
   1788         vpaddd  ymm1, ymm1, ymm21
   1789         vpaddd  ymm2, ymm2, ymm28
   1790         vpaddd  ymm3, ymm3, ymm17
   1791         vpaddd  ymm0, ymm0, ymm4
   1792         vpaddd  ymm1, ymm1, ymm5
   1793         vpaddd  ymm2, ymm2, ymm6
   1794         vpaddd  ymm3, ymm3, ymm7
   1795         vpxord  ymm12, ymm12, ymm0
   1796         vpxord  ymm13, ymm13, ymm1
   1797         vpxord  ymm14, ymm14, ymm2
   1798         vpxord  ymm15, ymm15, ymm3
   1799         vprord  ymm12, ymm12, 8
   1800         vprord  ymm13, ymm13, 8
   1801         vprord  ymm14, ymm14, 8
   1802         vprord  ymm15, ymm15, 8
   1803         vpaddd  ymm8, ymm8, ymm12
   1804         vpaddd  ymm9, ymm9, ymm13
   1805         vpaddd  ymm10, ymm10, ymm14
   1806         vpaddd  ymm11, ymm11, ymm15
   1807         vpxord  ymm4, ymm4, ymm8
   1808         vpxord  ymm5, ymm5, ymm9
   1809         vpxord  ymm6, ymm6, ymm10
   1810         vpxord  ymm7, ymm7, ymm11
   1811         vprord  ymm4, ymm4, 7
   1812         vprord  ymm5, ymm5, 7
   1813         vprord  ymm6, ymm6, 7
   1814         vprord  ymm7, ymm7, 7
   1815         vpaddd  ymm0, ymm0, ymm29
   1816         vpaddd  ymm1, ymm1, ymm16
   1817         vpaddd  ymm2, ymm2, ymm18
   1818         vpaddd  ymm3, ymm3, ymm20
   1819         vpaddd  ymm0, ymm0, ymm5
   1820         vpaddd  ymm1, ymm1, ymm6
   1821         vpaddd  ymm2, ymm2, ymm7
   1822         vpaddd  ymm3, ymm3, ymm4
   1823         vpxord  ymm15, ymm15, ymm0
   1824         vpxord  ymm12, ymm12, ymm1
   1825         vpxord  ymm13, ymm13, ymm2
   1826         vpxord  ymm14, ymm14, ymm3
   1827         vprord  ymm15, ymm15, 16
   1828         vprord  ymm12, ymm12, 16
   1829         vprord  ymm13, ymm13, 16
   1830         vprord  ymm14, ymm14, 16
   1831         vpaddd  ymm10, ymm10, ymm15
   1832         vpaddd  ymm11, ymm11, ymm12
   1833         vpaddd  ymm8, ymm8, ymm13
   1834         vpaddd  ymm9, ymm9, ymm14
   1835         vpxord  ymm5, ymm5, ymm10
   1836         vpxord  ymm6, ymm6, ymm11
   1837         vpxord  ymm7, ymm7, ymm8
   1838         vpxord  ymm4, ymm4, ymm9
   1839         vprord  ymm5, ymm5, 12
   1840         vprord  ymm6, ymm6, 12
   1841         vprord  ymm7, ymm7, 12
   1842         vprord  ymm4, ymm4, 12
   1843         vpaddd  ymm0, ymm0, ymm19
   1844         vpaddd  ymm1, ymm1, ymm26
   1845         vpaddd  ymm2, ymm2, ymm22
   1846         vpaddd  ymm3, ymm3, ymm23
   1847         vpaddd  ymm0, ymm0, ymm5
   1848         vpaddd  ymm1, ymm1, ymm6
   1849         vpaddd  ymm2, ymm2, ymm7
   1850         vpaddd  ymm3, ymm3, ymm4
   1851         vpxord  ymm15, ymm15, ymm0
   1852         vpxord  ymm12, ymm12, ymm1
   1853         vpxord  ymm13, ymm13, ymm2
   1854         vpxord  ymm14, ymm14, ymm3
   1855         vprord  ymm15, ymm15, 8
   1856         vprord  ymm12, ymm12, 8
   1857         vprord  ymm13, ymm13, 8
   1858         vprord  ymm14, ymm14, 8
   1859         vpaddd  ymm10, ymm10, ymm15
   1860         vpaddd  ymm11, ymm11, ymm12
   1861         vpaddd  ymm8, ymm8, ymm13
   1862         vpaddd  ymm9, ymm9, ymm14
   1863         vpxord  ymm5, ymm5, ymm10
   1864         vpxord  ymm6, ymm6, ymm11
   1865         vpxord  ymm7, ymm7, ymm8
   1866         vpxord  ymm4, ymm4, ymm9
   1867         vprord  ymm5, ymm5, 7
   1868         vprord  ymm6, ymm6, 7
   1869         vprord  ymm7, ymm7, 7
   1870         vprord  ymm4, ymm4, 7
   1871         vpaddd  ymm0, ymm0, ymm27
   1872         vpaddd  ymm1, ymm1, ymm21
   1873         vpaddd  ymm2, ymm2, ymm17
   1874         vpaddd  ymm3, ymm3, ymm24
   1875         vpaddd  ymm0, ymm0, ymm4
   1876         vpaddd  ymm1, ymm1, ymm5
   1877         vpaddd  ymm2, ymm2, ymm6
   1878         vpaddd  ymm3, ymm3, ymm7
   1879         vpxord  ymm12, ymm12, ymm0
   1880         vpxord  ymm13, ymm13, ymm1
   1881         vpxord  ymm14, ymm14, ymm2
   1882         vpxord  ymm15, ymm15, ymm3
   1883         vprord  ymm12, ymm12, 16
   1884         vprord  ymm13, ymm13, 16
   1885         vprord  ymm14, ymm14, 16
   1886         vprord  ymm15, ymm15, 16
   1887         vpaddd  ymm8, ymm8, ymm12
   1888         vpaddd  ymm9, ymm9, ymm13
   1889         vpaddd  ymm10, ymm10, ymm14
   1890         vpaddd  ymm11, ymm11, ymm15
   1891         vpxord  ymm4, ymm4, ymm8
   1892         vpxord  ymm5, ymm5, ymm9
   1893         vpxord  ymm6, ymm6, ymm10
   1894         vpxord  ymm7, ymm7, ymm11
   1895         vprord  ymm4, ymm4, 12
   1896         vprord  ymm5, ymm5, 12
   1897         vprord  ymm6, ymm6, 12
   1898         vprord  ymm7, ymm7, 12
   1899         vpaddd  ymm0, ymm0, ymm31
   1900         vpaddd  ymm1, ymm1, ymm16
   1901         vpaddd  ymm2, ymm2, ymm25
   1902         vpaddd  ymm3, ymm3, ymm22
   1903         vpaddd  ymm0, ymm0, ymm4
   1904         vpaddd  ymm1, ymm1, ymm5
   1905         vpaddd  ymm2, ymm2, ymm6
   1906         vpaddd  ymm3, ymm3, ymm7
   1907         vpxord  ymm12, ymm12, ymm0
   1908         vpxord  ymm13, ymm13, ymm1
   1909         vpxord  ymm14, ymm14, ymm2
   1910         vpxord  ymm15, ymm15, ymm3
   1911         vprord  ymm12, ymm12, 8
   1912         vprord  ymm13, ymm13, 8
   1913         vprord  ymm14, ymm14, 8
   1914         vprord  ymm15, ymm15, 8
   1915         vpaddd  ymm8, ymm8, ymm12
   1916         vpaddd  ymm9, ymm9, ymm13
   1917         vpaddd  ymm10, ymm10, ymm14
   1918         vpaddd  ymm11, ymm11, ymm15
   1919         vpxord  ymm4, ymm4, ymm8
   1920         vpxord  ymm5, ymm5, ymm9
   1921         vpxord  ymm6, ymm6, ymm10
   1922         vpxord  ymm7, ymm7, ymm11
   1923         vprord  ymm4, ymm4, 7
   1924         vprord  ymm5, ymm5, 7
   1925         vprord  ymm6, ymm6, 7
   1926         vprord  ymm7, ymm7, 7
   1927         vpaddd  ymm0, ymm0, ymm30
   1928         vpaddd  ymm1, ymm1, ymm18
   1929         vpaddd  ymm2, ymm2, ymm19
   1930         vpaddd  ymm3, ymm3, ymm23
   1931         vpaddd  ymm0, ymm0, ymm5
   1932         vpaddd  ymm1, ymm1, ymm6
   1933         vpaddd  ymm2, ymm2, ymm7
   1934         vpaddd  ymm3, ymm3, ymm4
   1935         vpxord  ymm15, ymm15, ymm0
   1936         vpxord  ymm12, ymm12, ymm1
   1937         vpxord  ymm13, ymm13, ymm2
   1938         vpxord  ymm14, ymm14, ymm3
   1939         vprord  ymm15, ymm15, 16
   1940         vprord  ymm12, ymm12, 16
   1941         vprord  ymm13, ymm13, 16
   1942         vprord  ymm14, ymm14, 16
   1943         vpaddd  ymm10, ymm10, ymm15
   1944         vpaddd  ymm11, ymm11, ymm12
   1945         vpaddd  ymm8, ymm8, ymm13
   1946         vpaddd  ymm9, ymm9, ymm14
   1947         vpxord  ymm5, ymm5, ymm10
   1948         vpxord  ymm6, ymm6, ymm11
   1949         vpxord  ymm7, ymm7, ymm8
   1950         vpxord  ymm4, ymm4, ymm9
   1951         vprord  ymm5, ymm5, 12
   1952         vprord  ymm6, ymm6, 12
   1953         vprord  ymm7, ymm7, 12
   1954         vprord  ymm4, ymm4, 12
   1955         vpaddd  ymm0, ymm0, ymm26
   1956         vpaddd  ymm1, ymm1, ymm28
   1957         vpaddd  ymm2, ymm2, ymm20
   1958         vpaddd  ymm3, ymm3, ymm29
   1959         vpaddd  ymm0, ymm0, ymm5
   1960         vpaddd  ymm1, ymm1, ymm6
   1961         vpaddd  ymm2, ymm2, ymm7
   1962         vpaddd  ymm3, ymm3, ymm4
   1963         vpxord  ymm15, ymm15, ymm0
   1964         vpxord  ymm12, ymm12, ymm1
   1965         vpxord  ymm13, ymm13, ymm2
   1966         vpxord  ymm14, ymm14, ymm3
   1967         vprord  ymm15, ymm15, 8
   1968         vprord  ymm12, ymm12, 8
   1969         vprord  ymm13, ymm13, 8
   1970         vprord  ymm14, ymm14, 8
   1971         vpaddd  ymm10, ymm10, ymm15
   1972         vpaddd  ymm11, ymm11, ymm12
   1973         vpaddd  ymm8, ymm8, ymm13
   1974         vpaddd  ymm9, ymm9, ymm14
   1975         vpxord  ymm5, ymm5, ymm10
   1976         vpxord  ymm6, ymm6, ymm11
   1977         vpxord  ymm7, ymm7, ymm8
   1978         vpxord  ymm4, ymm4, ymm9
   1979         vprord  ymm5, ymm5, 7
   1980         vprord  ymm6, ymm6, 7
   1981         vprord  ymm7, ymm7, 7
   1982         vprord  ymm4, ymm4, 7
   1983         vpxor   ymm0, ymm0, ymm8
   1984         vpxor   ymm1, ymm1, ymm9
   1985         vpxor   ymm2, ymm2, ymm10
   1986         vpxor   ymm3, ymm3, ymm11
   1987         vpxor   ymm4, ymm4, ymm12
   1988         vpxor   ymm5, ymm5, ymm13
   1989         vpxor   ymm6, ymm6, ymm14
   1990         vpxor   ymm7, ymm7, ymm15
   1991         movzx   eax, byte ptr [rbp+0x38]
   1992         jne     2b
   1993         mov     rbx, qword ptr [rbp+0x50]
   1994         vunpcklps ymm8, ymm0, ymm1
   1995         vunpcklps ymm9, ymm2, ymm3
   1996         vunpckhps ymm10, ymm0, ymm1
   1997         vunpcklps ymm11, ymm4, ymm5
   1998         vunpcklps ymm0, ymm6, ymm7
   1999         vshufps ymm12, ymm8, ymm9, 78
   2000         vblendps ymm1, ymm8, ymm12, 0xCC
   2001         vshufps ymm8, ymm11, ymm0, 78
   2002         vunpckhps ymm13, ymm2, ymm3
   2003         vblendps ymm2, ymm11, ymm8, 0xCC
   2004         vblendps ymm3, ymm12, ymm9, 0xCC
   2005         vperm2f128 ymm12, ymm1, ymm2, 0x20
   2006         vmovups ymmword ptr [rbx], ymm12
   2007         vunpckhps ymm14, ymm4, ymm5
   2008         vblendps ymm4, ymm8, ymm0, 0xCC
   2009         vunpckhps ymm15, ymm6, ymm7
   2010         vperm2f128 ymm7, ymm3, ymm4, 0x20
   2011         vmovups ymmword ptr [rbx+0x20], ymm7
   2012         vshufps ymm5, ymm10, ymm13, 78
   2013         vblendps ymm6, ymm5, ymm13, 0xCC
   2014         vshufps ymm13, ymm14, ymm15, 78
   2015         vblendps ymm10, ymm10, ymm5, 0xCC
   2016         vblendps ymm14, ymm14, ymm13, 0xCC
   2017         vperm2f128 ymm8, ymm10, ymm14, 0x20
   2018         vmovups ymmword ptr [rbx+0x40], ymm8
   2019         vblendps ymm15, ymm13, ymm15, 0xCC
   2020         vperm2f128 ymm13, ymm6, ymm15, 0x20
   2021         vmovups ymmword ptr [rbx+0x60], ymm13
   2022         vperm2f128 ymm9, ymm1, ymm2, 0x31
   2023         vperm2f128 ymm11, ymm3, ymm4, 0x31
   2024         vmovups ymmword ptr [rbx+0x80], ymm9
   2025         vperm2f128 ymm14, ymm10, ymm14, 0x31
   2026         vperm2f128 ymm15, ymm6, ymm15, 0x31
   2027         vmovups ymmword ptr [rbx+0xA0], ymm11
   2028         vmovups ymmword ptr [rbx+0xC0], ymm14
   2029         vmovups ymmword ptr [rbx+0xE0], ymm15
   2030         vmovdqa ymm0, ymmword ptr [rsp]
   2031         vmovdqa ymm2, ymmword ptr [rsp+0x2*0x20]
   2032         vmovdqa32 ymm0 {k1}, ymmword ptr [rsp+0x1*0x20]
   2033         vmovdqa32 ymm2 {k1}, ymmword ptr [rsp+0x3*0x20]
   2034         vmovdqa ymmword ptr [rsp], ymm0
   2035         vmovdqa ymmword ptr [rsp+0x2*0x20], ymm2
   2036         add     rbx, 256
   2037         mov     qword ptr [rbp+0x50], rbx
   2038         add     rdi, 64
   2039         sub     rsi, 8
   2040 3:
   2041         mov     rbx, qword ptr [rbp+0x50]
   2042         mov     r15, qword ptr [rsp+0x80]
   2043         movzx   r13, byte ptr [rbp+0x38]
   2044         movzx   r12, byte ptr [rbp+0x48]
   2045         test    esi, 0x4
   2046         je      3f
   2047         vbroadcasti32x4 zmm0, xmmword ptr [rcx]
   2048         vbroadcasti32x4 zmm1, xmmword ptr [rcx+0x1*0x10]
   2049         vmovdqa xmm12, xmmword ptr [rsp]
   2050         vmovdqa xmm13, xmmword ptr [rsp+0x4*0x10]
   2051         vpunpckldq xmm14, xmm12, xmm13
   2052         vpunpckhdq xmm15, xmm12, xmm13
   2053         vpermq  ymm14, ymm14, 0xDC
   2054         vpermq  ymm15, ymm15, 0xDC
   2055         vpbroadcastd zmm12, dword ptr [BLAKE3_BLOCK_LEN+rip]
   2056         vinserti64x4 zmm13, zmm14, ymm15, 0x01
   2057         mov     eax, 17476
   2058         kmovw   k2, eax
   2059         vpblendmd zmm13 {k2}, zmm13, zmm12
   2060         vbroadcasti32x4 zmm15, xmmword ptr [BLAKE3_IV+rip]
   2061         mov     r8, qword ptr [rdi]
   2062         mov     r9, qword ptr [rdi+0x8]
   2063         mov     r10, qword ptr [rdi+0x10]
   2064         mov     r11, qword ptr [rdi+0x18]
   2065         mov     eax, 43690
   2066         kmovw   k3, eax
   2067         mov     eax, 34952
   2068         kmovw   k4, eax
   2069         movzx   eax, byte ptr [rbp+0x40]
   2070         or      eax, r13d
   2071         xor     edx, edx
   2072 .p2align 5
   2073 2:
   2074         mov     r14d, eax
   2075         or      eax, r12d
   2076         add     rdx, 64
   2077         cmp     rdx, r15
   2078         cmovne  eax, r14d
   2079         mov     dword ptr [rsp+0x88], eax
   2080         vmovdqa32 zmm2, zmm15
   2081         vpbroadcastd zmm8, dword ptr [rsp+0x22*0x4]
   2082         vpblendmd zmm3 {k4}, zmm13, zmm8
   2083         vmovups zmm8, zmmword ptr [r8+rdx-0x1*0x40]
   2084         vinserti32x4 zmm8, zmm8, xmmword ptr [r9+rdx-0x4*0x10], 0x01
   2085         vinserti32x4 zmm8, zmm8, xmmword ptr [r10+rdx-0x4*0x10], 0x02
   2086         vinserti32x4 zmm8, zmm8, xmmword ptr [r11+rdx-0x4*0x10], 0x03
   2087         vmovups zmm9, zmmword ptr [r8+rdx-0x30]
   2088         vinserti32x4 zmm9, zmm9, xmmword ptr [r9+rdx-0x3*0x10], 0x01
   2089         vinserti32x4 zmm9, zmm9, xmmword ptr [r10+rdx-0x3*0x10], 0x02
   2090         vinserti32x4 zmm9, zmm9, xmmword ptr [r11+rdx-0x3*0x10], 0x03
   2091         vshufps zmm4, zmm8, zmm9, 136
   2092         vshufps zmm5, zmm8, zmm9, 221
   2093         vmovups zmm8, zmmword ptr [r8+rdx-0x20]
   2094         vinserti32x4 zmm8, zmm8, xmmword ptr [r9+rdx-0x2*0x10], 0x01
   2095         vinserti32x4 zmm8, zmm8, xmmword ptr [r10+rdx-0x2*0x10], 0x02
   2096         vinserti32x4 zmm8, zmm8, xmmword ptr [r11+rdx-0x2*0x10], 0x03
   2097         vmovups zmm9, zmmword ptr [r8+rdx-0x10]
   2098         vinserti32x4 zmm9, zmm9, xmmword ptr [r9+rdx-0x1*0x10], 0x01
   2099         vinserti32x4 zmm9, zmm9, xmmword ptr [r10+rdx-0x1*0x10], 0x02
   2100         vinserti32x4 zmm9, zmm9, xmmword ptr [r11+rdx-0x1*0x10], 0x03
   2101         vshufps zmm6, zmm8, zmm9, 136
   2102         vshufps zmm7, zmm8, zmm9, 221
   2103         vpshufd zmm6, zmm6, 0x93
   2104         vpshufd zmm7, zmm7, 0x93
   2105         mov     al, 7
   2106 9:
   2107         vpaddd  zmm0, zmm0, zmm4
   2108         vpaddd  zmm0, zmm0, zmm1
   2109         vpxord  zmm3, zmm3, zmm0
   2110         vprord  zmm3, zmm3, 16
   2111         vpaddd  zmm2, zmm2, zmm3
   2112         vpxord  zmm1, zmm1, zmm2
   2113         vprord  zmm1, zmm1, 12
   2114         vpaddd  zmm0, zmm0, zmm5
   2115         vpaddd  zmm0, zmm0, zmm1
   2116         vpxord  zmm3, zmm3, zmm0
   2117         vprord  zmm3, zmm3, 8
   2118         vpaddd  zmm2, zmm2, zmm3
   2119         vpxord  zmm1, zmm1, zmm2
   2120         vprord  zmm1, zmm1, 7
   2121         vpshufd zmm0, zmm0, 0x93
   2122         vpshufd zmm3, zmm3, 0x4E
   2123         vpshufd zmm2, zmm2, 0x39
   2124         vpaddd  zmm0, zmm0, zmm6
   2125         vpaddd  zmm0, zmm0, zmm1
   2126         vpxord  zmm3, zmm3, zmm0
   2127         vprord  zmm3, zmm3, 16
   2128         vpaddd  zmm2, zmm2, zmm3
   2129         vpxord  zmm1, zmm1, zmm2
   2130         vprord  zmm1, zmm1, 12
   2131         vpaddd  zmm0, zmm0, zmm7
   2132         vpaddd  zmm0, zmm0, zmm1
   2133         vpxord  zmm3, zmm3, zmm0
   2134         vprord  zmm3, zmm3, 8
   2135         vpaddd  zmm2, zmm2, zmm3
   2136         vpxord  zmm1, zmm1, zmm2
   2137         vprord  zmm1, zmm1, 7
   2138         vpshufd zmm0, zmm0, 0x39
   2139         vpshufd zmm3, zmm3, 0x4E
   2140         vpshufd zmm2, zmm2, 0x93
   2141         dec     al
   2142         jz      9f
   2143         vshufps zmm8, zmm4, zmm5, 214
   2144         vpshufd zmm9, zmm4, 0x0F
   2145         vpshufd zmm4, zmm8, 0x39
   2146         vshufps zmm8, zmm6, zmm7, 250
   2147         vpblendmd zmm9 {k3}, zmm9, zmm8
   2148         vpunpcklqdq zmm8, zmm7, zmm5
   2149         vpblendmd zmm8 {k4}, zmm8, zmm6
   2150         vpshufd zmm8, zmm8, 0x78
   2151         vpunpckhdq zmm5, zmm5, zmm7
   2152         vpunpckldq zmm6, zmm6, zmm5
   2153         vpshufd zmm7, zmm6, 0x1E
   2154         vmovdqa32 zmm5, zmm9
   2155         vmovdqa32 zmm6, zmm8
   2156         jmp     9b
   2157 9:
   2158         vpxord  zmm0, zmm0, zmm2
   2159         vpxord  zmm1, zmm1, zmm3
   2160         mov     eax, r13d
   2161         cmp     rdx, r15
   2162         jne     2b
   2163         vmovdqu xmmword ptr [rbx], xmm0
   2164         vmovdqu xmmword ptr [rbx+0x10], xmm1
   2165         vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x01
   2166         vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x01
   2167         vextracti32x4 xmmword ptr [rbx+0x4*0x10], zmm0, 0x02
   2168         vextracti32x4 xmmword ptr [rbx+0x5*0x10], zmm1, 0x02
   2169         vextracti32x4 xmmword ptr [rbx+0x6*0x10], zmm0, 0x03
   2170         vextracti32x4 xmmword ptr [rbx+0x7*0x10], zmm1, 0x03
   2171         vmovdqa xmm0, xmmword ptr [rsp]
   2172         vmovdqa xmm2, xmmword ptr [rsp+0x40]
   2173         vmovdqa32 xmm0 {k1}, xmmword ptr [rsp+0x1*0x10]
   2174         vmovdqa32 xmm2 {k1}, xmmword ptr [rsp+0x5*0x10]
   2175         vmovdqa xmmword ptr [rsp], xmm0
   2176         vmovdqa xmmword ptr [rsp+0x40], xmm2
   2177         add     rbx, 128
   2178         add     rdi, 32
   2179         sub     rsi, 4
   2180 3:
   2181         test    esi, 0x2
   2182         je      3f
   2183         vbroadcasti128 ymm0, xmmword ptr [rcx]
   2184         vbroadcasti128 ymm1, xmmword ptr [rcx+0x10]
   2185         vmovd   xmm13, dword ptr [rsp]
   2186         vpinsrd xmm13, xmm13, dword ptr [rsp+0x40], 1
   2187         vpinsrd xmm13, xmm13, dword ptr [BLAKE3_BLOCK_LEN+rip], 2
   2188         vmovd   xmm14, dword ptr [rsp+0x4]
   2189         vpinsrd xmm14, xmm14, dword ptr [rsp+0x44], 1
   2190         vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN+rip], 2
   2191         vinserti128 ymm13, ymm13, xmm14, 0x01
   2192         mov     r8, qword ptr [rdi]
   2193         mov     r9, qword ptr [rdi+0x8]
   2194         movzx   eax, byte ptr [rbp+0x40]
   2195         or      eax, r13d
   2196         xor     edx, edx
   2197 .p2align 5
   2198 2:
   2199         mov     r14d, eax
   2200         or      eax, r12d
   2201         add     rdx, 64
   2202         cmp     rdx, r15
   2203         cmovne  eax, r14d
   2204         mov     dword ptr [rsp+0x88], eax
   2205         vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV+rip]
   2206         vpbroadcastd ymm8, dword ptr [rsp+0x88]
   2207         vpblendd ymm3, ymm13, ymm8, 0x88
   2208         vmovups ymm8, ymmword ptr [r8+rdx-0x40]
   2209         vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x40], 0x01
   2210         vmovups ymm9, ymmword ptr [r8+rdx-0x30]
   2211         vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x30], 0x01
   2212         vshufps ymm4, ymm8, ymm9, 136
   2213         vshufps ymm5, ymm8, ymm9, 221
   2214         vmovups ymm8, ymmword ptr [r8+rdx-0x20]
   2215         vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x20], 0x01
   2216         vmovups ymm9, ymmword ptr [r8+rdx-0x10]
   2217         vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x10], 0x01
   2218         vshufps ymm6, ymm8, ymm9, 136
   2219         vshufps ymm7, ymm8, ymm9, 221
   2220         vpshufd ymm6, ymm6, 0x93
   2221         vpshufd ymm7, ymm7, 0x93
   2222         mov     al, 7
   2223 9:
   2224         vpaddd  ymm0, ymm0, ymm4
   2225         vpaddd  ymm0, ymm0, ymm1
   2226         vpxord  ymm3, ymm3, ymm0
   2227         vprord  ymm3, ymm3, 16
   2228         vpaddd  ymm2, ymm2, ymm3
   2229         vpxord  ymm1, ymm1, ymm2
   2230         vprord  ymm1, ymm1, 12
   2231         vpaddd  ymm0, ymm0, ymm5
   2232         vpaddd  ymm0, ymm0, ymm1
   2233         vpxord  ymm3, ymm3, ymm0
   2234         vprord  ymm3, ymm3, 8
   2235         vpaddd  ymm2, ymm2, ymm3
   2236         vpxord  ymm1, ymm1, ymm2
   2237         vprord  ymm1, ymm1, 7
   2238         vpshufd ymm0, ymm0, 0x93
   2239         vpshufd ymm3, ymm3, 0x4E
   2240         vpshufd ymm2, ymm2, 0x39
   2241         vpaddd  ymm0, ymm0, ymm6
   2242         vpaddd  ymm0, ymm0, ymm1
   2243         vpxord  ymm3, ymm3, ymm0
   2244         vprord  ymm3, ymm3, 16
   2245         vpaddd  ymm2, ymm2, ymm3
   2246         vpxord  ymm1, ymm1, ymm2
   2247         vprord  ymm1, ymm1, 12
   2248         vpaddd  ymm0, ymm0, ymm7
   2249         vpaddd  ymm0, ymm0, ymm1
   2250         vpxord  ymm3, ymm3, ymm0
   2251         vprord  ymm3, ymm3, 8
   2252         vpaddd  ymm2, ymm2, ymm3
   2253         vpxord  ymm1, ymm1, ymm2
   2254         vprord  ymm1, ymm1, 7
   2255         vpshufd ymm0, ymm0, 0x39
   2256         vpshufd ymm3, ymm3, 0x4E
   2257         vpshufd ymm2, ymm2, 0x93
   2258         dec     al
   2259         jz      9f
   2260         vshufps ymm8, ymm4, ymm5, 214
   2261         vpshufd ymm9, ymm4, 0x0F
   2262         vpshufd ymm4, ymm8, 0x39
   2263         vshufps ymm8, ymm6, ymm7, 250
   2264         vpblendd ymm9, ymm9, ymm8, 0xAA
   2265         vpunpcklqdq ymm8, ymm7, ymm5
   2266         vpblendd ymm8, ymm8, ymm6, 0x88
   2267         vpshufd ymm8, ymm8, 0x78
   2268         vpunpckhdq ymm5, ymm5, ymm7
   2269         vpunpckldq ymm6, ymm6, ymm5
   2270         vpshufd ymm7, ymm6, 0x1E
   2271         vmovdqa ymm5, ymm9
   2272         vmovdqa ymm6, ymm8
   2273         jmp     9b
   2274 9:
   2275         vpxor   ymm0, ymm0, ymm2
   2276         vpxor   ymm1, ymm1, ymm3
   2277         mov     eax, r13d
   2278         cmp     rdx, r15
   2279         jne     2b
   2280         vmovdqu xmmword ptr [rbx], xmm0
   2281         vmovdqu xmmword ptr [rbx+0x10], xmm1
   2282         vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x01
   2283         vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x01
   2284         vmovdqa xmm0, xmmword ptr [rsp]
   2285         vmovdqa xmm2, xmmword ptr [rsp+0x4*0x10]
   2286         vmovdqu32 xmm0 {k1}, xmmword ptr [rsp+0x8]
   2287         vmovdqu32 xmm2 {k1}, xmmword ptr [rsp+0x48]
   2288         vmovdqa xmmword ptr [rsp], xmm0
   2289         vmovdqa xmmword ptr [rsp+0x4*0x10], xmm2
   2290         add     rbx, 64
   2291         add     rdi, 16
   2292         sub     rsi, 2
   2293 3:
   2294         test    esi, 0x1
   2295         je      4b
   2296         vmovdqu xmm0, xmmword ptr [rcx]
   2297         vmovdqu xmm1, xmmword ptr [rcx+0x10]
   2298         vmovd   xmm14, dword ptr [rsp]
   2299         vpinsrd xmm14, xmm14, dword ptr [rsp+0x40], 1
   2300         vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN+rip], 2
   2301         vmovdqa xmm15, xmmword ptr [BLAKE3_IV+rip]
   2302         mov     r8, qword ptr [rdi]
   2303         movzx   eax, byte ptr [rbp+0x40]
   2304         or      eax, r13d
   2305         xor     edx, edx
   2306 .p2align 5
   2307 2:
   2308         mov     r14d, eax
   2309         or      eax, r12d
   2310         add     rdx, 64
   2311         cmp     rdx, r15
   2312         cmovne  eax, r14d
   2313         vpinsrd xmm3, xmm14, eax, 3
   2314         vmovdqa xmm2, xmm15
   2315         vmovups xmm8, xmmword ptr [r8+rdx-0x40]
   2316         vmovups xmm9, xmmword ptr [r8+rdx-0x30]
   2317         vshufps xmm4, xmm8, xmm9, 136
   2318         vshufps xmm5, xmm8, xmm9, 221
   2319         vmovups xmm8, xmmword ptr [r8+rdx-0x20]
   2320         vmovups xmm9, xmmword ptr [r8+rdx-0x10]
   2321         vshufps xmm6, xmm8, xmm9, 136
   2322         vshufps xmm7, xmm8, xmm9, 221
   2323         vpshufd xmm6, xmm6, 0x93
   2324         vpshufd xmm7, xmm7, 0x93
   2325         mov     al, 7
   2326 9:
   2327         vpaddd  xmm0, xmm0, xmm4
   2328         vpaddd  xmm0, xmm0, xmm1
   2329         vpxord  xmm3, xmm3, xmm0
   2330         vprord  xmm3, xmm3, 16
   2331         vpaddd  xmm2, xmm2, xmm3
   2332         vpxord  xmm1, xmm1, xmm2
   2333         vprord  xmm1, xmm1, 12
   2334         vpaddd  xmm0, xmm0, xmm5
   2335         vpaddd  xmm0, xmm0, xmm1
   2336         vpxord  xmm3, xmm3, xmm0
   2337         vprord  xmm3, xmm3, 8
   2338         vpaddd  xmm2, xmm2, xmm3
   2339         vpxord  xmm1, xmm1, xmm2
   2340         vprord  xmm1, xmm1, 7
   2341         vpshufd xmm0, xmm0, 0x93
   2342         vpshufd xmm3, xmm3, 0x4E
   2343         vpshufd xmm2, xmm2, 0x39
   2344         vpaddd  xmm0, xmm0, xmm6
   2345         vpaddd  xmm0, xmm0, xmm1
   2346         vpxord  xmm3, xmm3, xmm0
   2347         vprord  xmm3, xmm3, 16
   2348         vpaddd  xmm2, xmm2, xmm3
   2349         vpxord  xmm1, xmm1, xmm2
   2350         vprord  xmm1, xmm1, 12
   2351         vpaddd  xmm0, xmm0, xmm7
   2352         vpaddd  xmm0, xmm0, xmm1
   2353         vpxord  xmm3, xmm3, xmm0
   2354         vprord  xmm3, xmm3, 8
   2355         vpaddd  xmm2, xmm2, xmm3
   2356         vpxord  xmm1, xmm1, xmm2
   2357         vprord  xmm1, xmm1, 7
   2358         vpshufd xmm0, xmm0, 0x39
   2359         vpshufd xmm3, xmm3, 0x4E
   2360         vpshufd xmm2, xmm2, 0x93
   2361         dec     al
   2362         jz      9f
   2363         vshufps xmm8, xmm4, xmm5, 214
   2364         vpshufd xmm9, xmm4, 0x0F
   2365         vpshufd xmm4, xmm8, 0x39
   2366         vshufps xmm8, xmm6, xmm7, 250
   2367         vpblendd xmm9, xmm9, xmm8, 0xAA
   2368         vpunpcklqdq xmm8, xmm7, xmm5
   2369         vpblendd xmm8, xmm8, xmm6, 0x88
   2370         vpshufd xmm8, xmm8, 0x78
   2371         vpunpckhdq xmm5, xmm5, xmm7
   2372         vpunpckldq xmm6, xmm6, xmm5
   2373         vpshufd xmm7, xmm6, 0x1E
   2374         vmovdqa xmm5, xmm9
   2375         vmovdqa xmm6, xmm8
   2376         jmp     9b
   2377 9:
   2378         vpxor   xmm0, xmm0, xmm2
   2379         vpxor   xmm1, xmm1, xmm3
   2380         mov     eax, r13d
   2381         cmp     rdx, r15
   2382         jne     2b
   2383         vmovdqu xmmword ptr [rbx], xmm0
   2384         vmovdqu xmmword ptr [rbx+0x10], xmm1
   2385         jmp     4b
   2386 .p2align 6
   2387 _blake3_compress_in_place_avx512:
   2388 blake3_compress_in_place_avx512:
   2389         _CET_ENDBR
   2390         vmovdqu xmm0, xmmword ptr [rdi]
   2391         vmovdqu xmm1, xmmword ptr [rdi+0x10]
   2392         movzx   eax, r8b
   2393         movzx   edx, dl
   2394         shl     rax, 32
   2395         add     rdx, rax
   2396         vmovq   xmm3, rcx
   2397         vmovq   xmm4, rdx
   2398         vpunpcklqdq xmm3, xmm3, xmm4
   2399         vmovaps xmm2, xmmword ptr [BLAKE3_IV+rip]
   2400         vmovups xmm8, xmmword ptr [rsi]
   2401         vmovups xmm9, xmmword ptr [rsi+0x10]
   2402         vshufps xmm4, xmm8, xmm9, 136
   2403         vshufps xmm5, xmm8, xmm9, 221
   2404         vmovups xmm8, xmmword ptr [rsi+0x20]
   2405         vmovups xmm9, xmmword ptr [rsi+0x30]
   2406         vshufps xmm6, xmm8, xmm9, 136
   2407         vshufps xmm7, xmm8, xmm9, 221
   2408         vpshufd xmm6, xmm6, 0x93
   2409         vpshufd xmm7, xmm7, 0x93
   2410         mov     al, 7
   2411 9:
   2412         vpaddd  xmm0, xmm0, xmm4
   2413         vpaddd  xmm0, xmm0, xmm1
   2414         vpxord  xmm3, xmm3, xmm0
   2415         vprord  xmm3, xmm3, 16
   2416         vpaddd  xmm2, xmm2, xmm3
   2417         vpxord  xmm1, xmm1, xmm2
   2418         vprord  xmm1, xmm1, 12
   2419         vpaddd  xmm0, xmm0, xmm5
   2420         vpaddd  xmm0, xmm0, xmm1
   2421         vpxord  xmm3, xmm3, xmm0
   2422         vprord  xmm3, xmm3, 8
   2423         vpaddd  xmm2, xmm2, xmm3
   2424         vpxord  xmm1, xmm1, xmm2
   2425         vprord  xmm1, xmm1, 7
   2426         vpshufd xmm0, xmm0, 0x93
   2427         vpshufd xmm3, xmm3, 0x4E
   2428         vpshufd xmm2, xmm2, 0x39
   2429         vpaddd  xmm0, xmm0, xmm6
   2430         vpaddd  xmm0, xmm0, xmm1
   2431         vpxord  xmm3, xmm3, xmm0
   2432         vprord  xmm3, xmm3, 16
   2433         vpaddd  xmm2, xmm2, xmm3
   2434         vpxord  xmm1, xmm1, xmm2
   2435         vprord  xmm1, xmm1, 12
   2436         vpaddd  xmm0, xmm0, xmm7
   2437         vpaddd  xmm0, xmm0, xmm1
   2438         vpxord  xmm3, xmm3, xmm0
   2439         vprord  xmm3, xmm3, 8
   2440         vpaddd  xmm2, xmm2, xmm3
   2441         vpxord  xmm1, xmm1, xmm2
   2442         vprord  xmm1, xmm1, 7
   2443         vpshufd xmm0, xmm0, 0x39
   2444         vpshufd xmm3, xmm3, 0x4E
   2445         vpshufd xmm2, xmm2, 0x93
   2446         dec     al
   2447         jz      9f
   2448         vshufps xmm8, xmm4, xmm5, 214
   2449         vpshufd xmm9, xmm4, 0x0F
   2450         vpshufd xmm4, xmm8, 0x39
   2451         vshufps xmm8, xmm6, xmm7, 250
   2452         vpblendd xmm9, xmm9, xmm8, 0xAA
   2453         vpunpcklqdq xmm8, xmm7, xmm5
   2454         vpblendd xmm8, xmm8, xmm6, 0x88
   2455         vpshufd xmm8, xmm8, 0x78
   2456         vpunpckhdq xmm5, xmm5, xmm7
   2457         vpunpckldq xmm6, xmm6, xmm5
   2458         vpshufd xmm7, xmm6, 0x1E
   2459         vmovdqa xmm5, xmm9
   2460         vmovdqa xmm6, xmm8
   2461         jmp     9b
   2462 9:
   2463         vpxor   xmm0, xmm0, xmm2
   2464         vpxor   xmm1, xmm1, xmm3
   2465         vmovdqu xmmword ptr [rdi], xmm0
   2466         vmovdqu xmmword ptr [rdi+0x10], xmm1
   2467         ret
   2468 
   2469 .p2align 6
   2470 _blake3_compress_xof_avx512:
   2471 blake3_compress_xof_avx512:
   2472         _CET_ENDBR
   2473         vmovdqu xmm0, xmmword ptr [rdi]
   2474         vmovdqu xmm1, xmmword ptr [rdi+0x10]
   2475         movzx   eax, r8b
   2476         movzx   edx, dl
   2477         shl     rax, 32
   2478         add     rdx, rax
   2479         vmovq   xmm3, rcx
   2480         vmovq   xmm4, rdx
   2481         vpunpcklqdq xmm3, xmm3, xmm4
   2482         vmovaps xmm2, xmmword ptr [BLAKE3_IV+rip]
   2483         vmovups xmm8, xmmword ptr [rsi]
   2484         vmovups xmm9, xmmword ptr [rsi+0x10]
   2485         vshufps xmm4, xmm8, xmm9, 136
   2486         vshufps xmm5, xmm8, xmm9, 221
   2487         vmovups xmm8, xmmword ptr [rsi+0x20]
   2488         vmovups xmm9, xmmword ptr [rsi+0x30]
   2489         vshufps xmm6, xmm8, xmm9, 136
   2490         vshufps xmm7, xmm8, xmm9, 221
   2491         vpshufd xmm6, xmm6, 0x93
   2492         vpshufd xmm7, xmm7, 0x93
   2493         mov     al, 7
   2494 9:
   2495         vpaddd  xmm0, xmm0, xmm4
   2496         vpaddd  xmm0, xmm0, xmm1
   2497         vpxord  xmm3, xmm3, xmm0
   2498         vprord  xmm3, xmm3, 16
   2499         vpaddd  xmm2, xmm2, xmm3
   2500         vpxord  xmm1, xmm1, xmm2
   2501         vprord  xmm1, xmm1, 12
   2502         vpaddd  xmm0, xmm0, xmm5
   2503         vpaddd  xmm0, xmm0, xmm1
   2504         vpxord  xmm3, xmm3, xmm0
   2505         vprord  xmm3, xmm3, 8
   2506         vpaddd  xmm2, xmm2, xmm3
   2507         vpxord  xmm1, xmm1, xmm2
   2508         vprord  xmm1, xmm1, 7
   2509         vpshufd xmm0, xmm0, 0x93
   2510         vpshufd xmm3, xmm3, 0x4E
   2511         vpshufd xmm2, xmm2, 0x39
   2512         vpaddd  xmm0, xmm0, xmm6
   2513         vpaddd  xmm0, xmm0, xmm1
   2514         vpxord  xmm3, xmm3, xmm0
   2515         vprord  xmm3, xmm3, 16
   2516         vpaddd  xmm2, xmm2, xmm3
   2517         vpxord  xmm1, xmm1, xmm2
   2518         vprord  xmm1, xmm1, 12
   2519         vpaddd  xmm0, xmm0, xmm7
   2520         vpaddd  xmm0, xmm0, xmm1
   2521         vpxord  xmm3, xmm3, xmm0
   2522         vprord  xmm3, xmm3, 8
   2523         vpaddd  xmm2, xmm2, xmm3
   2524         vpxord  xmm1, xmm1, xmm2
   2525         vprord  xmm1, xmm1, 7
   2526         vpshufd xmm0, xmm0, 0x39
   2527         vpshufd xmm3, xmm3, 0x4E
   2528         vpshufd xmm2, xmm2, 0x93
   2529         dec     al
   2530         jz      9f
   2531         vshufps xmm8, xmm4, xmm5, 214
   2532         vpshufd xmm9, xmm4, 0x0F
   2533         vpshufd xmm4, xmm8, 0x39
   2534         vshufps xmm8, xmm6, xmm7, 250
   2535         vpblendd xmm9, xmm9, xmm8, 0xAA
   2536         vpunpcklqdq xmm8, xmm7, xmm5
   2537         vpblendd xmm8, xmm8, xmm6, 0x88
   2538         vpshufd xmm8, xmm8, 0x78
   2539         vpunpckhdq xmm5, xmm5, xmm7
   2540         vpunpckldq xmm6, xmm6, xmm5
   2541         vpshufd xmm7, xmm6, 0x1E
   2542         vmovdqa xmm5, xmm9
   2543         vmovdqa xmm6, xmm8
   2544         jmp     9b
   2545 9:
   2546         vpxor   xmm0, xmm0, xmm2
   2547         vpxor   xmm1, xmm1, xmm3
   2548         vpxor   xmm2, xmm2, [rdi]
   2549         vpxor   xmm3, xmm3, [rdi+0x10]
   2550         vmovdqu xmmword ptr [r9], xmm0
   2551         vmovdqu xmmword ptr [r9+0x10], xmm1
   2552         vmovdqu xmmword ptr [r9+0x20], xmm2
   2553         vmovdqu xmmword ptr [r9+0x30], xmm3
   2554         ret
   2555 
   2556 #ifdef __APPLE__
   2557 .static_data
   2558 #else
   2559 .section .rodata
   2560 #endif
   2561 .p2align  6
   2562 INDEX0:
   2563         .long    0,  1,  2,  3, 16, 17, 18, 19
   2564         .long    8,  9, 10, 11, 24, 25, 26, 27
   2565 INDEX1:
   2566         .long    4,  5,  6,  7, 20, 21, 22, 23
   2567         .long   12, 13, 14, 15, 28, 29, 30, 31
   2568 ADD0:
   2569         .long    0,  1,  2,  3,  4,  5,  6,  7
   2570         .long    8,  9, 10, 11, 12, 13, 14, 15
   2571 ADD1:   .long    1
   2572 
   2573 ADD16:  .long   16
   2574 BLAKE3_BLOCK_LEN:
   2575         .long   64
   2576 .p2align 6
   2577 BLAKE3_IV:
   2578 BLAKE3_IV_0:
   2579         .long   0x6A09E667
   2580 BLAKE3_IV_1:
   2581         .long   0xBB67AE85
   2582 BLAKE3_IV_2:
   2583         .long   0x3C6EF372
   2584 BLAKE3_IV_3:
   2585         .long   0xA54FF53A