brintos

brintos / llvm-project-archived public Read only

0
0
Text · 89.5 KiB · f13d1b2 Raw
2635 lines · plain
1public _llvm_blake3_hash_many_avx5122public llvm_blake3_hash_many_avx5123public llvm_blake3_compress_in_place_avx5124public _llvm_blake3_compress_in_place_avx5125public llvm_blake3_compress_xof_avx5126public _llvm_blake3_compress_xof_avx5127 8_TEXT   SEGMENT ALIGN(16) 'CODE'9 10ALIGN   1611llvm_blake3_hash_many_avx512 PROC12_llvm_blake3_hash_many_avx512 PROC13        push    r1514        push    r1415        push    r1316        push    r1217        push    rdi18        push    rsi19        push    rbx20        push    rbp21        mov     rbp, rsp22        sub     rsp, 30423        and     rsp, 0FFFFFFFFFFFFFFC0H24        vmovdqa xmmword ptr [rsp+90H], xmm625        vmovdqa xmmword ptr [rsp+0A0H], xmm726        vmovdqa xmmword ptr [rsp+0B0H], xmm827        vmovdqa xmmword ptr [rsp+0C0H], xmm928        vmovdqa xmmword ptr [rsp+0D0H], xmm1029        vmovdqa xmmword ptr [rsp+0E0H], xmm1130        vmovdqa xmmword ptr [rsp+0F0H], xmm1231        vmovdqa xmmword ptr [rsp+100H], xmm1332        vmovdqa xmmword ptr [rsp+110H], xmm1433        vmovdqa xmmword ptr [rsp+120H], xmm1534        mov     rdi, rcx35        mov     rsi, rdx36        mov     rdx, r837        mov     rcx, r938        mov     r8, qword ptr [rbp+68H]39        movzx   r9, byte ptr [rbp+70H]40        neg     r941        kmovw   k1, r9d42        vmovd   xmm0, r8d43        vpbroadcastd ymm0, xmm044        shr     r8, 3245        vmovd   xmm1, r8d46        vpbroadcastd ymm1, xmm147        vmovdqa ymm4, ymm148        vmovdqa ymm5, ymm149        vpaddd  ymm2, ymm0, ymmword ptr [ADD0]50        vpaddd  ymm3, ymm0, ymmword ptr [ADD0+32]51        vpcmpud k2, ymm2, ymm0, 152        vpcmpud k3, ymm3, ymm0, 153        ; XXX: ml64.exe does not currently understand the syntax. We use a workaround.54        vpbroadcastd ymm6, dword ptr [ADD1]55        vpaddd  ymm4 {k2}, ymm4, ymm656        vpaddd  ymm5 {k3}, ymm5, ymm657        ; vpaddd  ymm4 {k2}, ymm4, dword ptr [ADD1] {1to8}58        ; vpaddd  ymm5 {k3}, ymm5, dword ptr [ADD1] {1to8}59        knotw   k2, k160        vmovdqa32 ymm2 {k2}, ymm061        vmovdqa32 ymm3 {k2}, ymm062        vmovdqa32 ymm4 {k2}, ymm163        vmovdqa32 ymm5 {k2}, ymm164        vmovdqa ymmword ptr [rsp], ymm265        vmovdqa ymmword ptr [rsp+20H], ymm366        vmovdqa ymmword ptr [rsp+40H], ymm467        vmovdqa ymmword ptr [rsp+60H], ymm568        shl     rdx, 669        mov     qword ptr [rsp+80H], rdx70        cmp     rsi, 1671        jc      final15blocks72outerloop16:73        vpbroadcastd zmm0, dword ptr [rcx]74        vpbroadcastd zmm1, dword ptr [rcx+1H*4H]75        vpbroadcastd zmm2, dword ptr [rcx+2H*4H]76        vpbroadcastd zmm3, dword ptr [rcx+3H*4H]77        vpbroadcastd zmm4, dword ptr [rcx+4H*4H]78        vpbroadcastd zmm5, dword ptr [rcx+5H*4H]79        vpbroadcastd zmm6, dword ptr [rcx+6H*4H]80        vpbroadcastd zmm7, dword ptr [rcx+7H*4H]81        movzx   eax, byte ptr [rbp+78H]82        movzx   ebx, byte ptr [rbp+80H]83        or      eax, ebx84        xor     edx, edx85ALIGN   1686innerloop16:87        movzx   ebx, byte ptr [rbp+88H]88        or      ebx, eax89        add     rdx, 6490        cmp     rdx, qword ptr [rsp+80H]91        cmove   eax, ebx92        mov     dword ptr [rsp+88H], eax93        mov     r8, qword ptr [rdi]94        mov     r9, qword ptr [rdi+8H]95        mov     r10, qword ptr [rdi+10H]96        mov     r11, qword ptr [rdi+18H]97        mov     r12, qword ptr [rdi+40H]98        mov     r13, qword ptr [rdi+48H]99        mov     r14, qword ptr [rdi+50H]100        mov     r15, qword ptr [rdi+58H]101        vmovdqu32 ymm16, ymmword ptr [rdx+r8-2H*20H]102        vinserti64x4 zmm16, zmm16, ymmword ptr [rdx+r12-2H*20H], 01H103        vmovdqu32 ymm17, ymmword ptr [rdx+r9-2H*20H]104        vinserti64x4 zmm17, zmm17, ymmword ptr [rdx+r13-2H*20H], 01H105        vpunpcklqdq zmm8, zmm16, zmm17106        vpunpckhqdq zmm9, zmm16, zmm17107        vmovdqu32 ymm18, ymmword ptr [rdx+r10-2H*20H]108        vinserti64x4 zmm18, zmm18, ymmword ptr [rdx+r14-2H*20H], 01H109        vmovdqu32 ymm19, ymmword ptr [rdx+r11-2H*20H]110        vinserti64x4 zmm19, zmm19, ymmword ptr [rdx+r15-2H*20H], 01H111        vpunpcklqdq zmm10, zmm18, zmm19112        vpunpckhqdq zmm11, zmm18, zmm19113        mov     r8, qword ptr [rdi+20H]114        mov     r9, qword ptr [rdi+28H]115        mov     r10, qword ptr [rdi+30H]116        mov     r11, qword ptr [rdi+38H]117        mov     r12, qword ptr [rdi+60H]118        mov     r13, qword ptr [rdi+68H]119        mov     r14, qword ptr [rdi+70H]120        mov     r15, qword ptr [rdi+78H]121        vmovdqu32 ymm16, ymmword ptr [rdx+r8-2H*20H]122        vinserti64x4 zmm16, zmm16, ymmword ptr [rdx+r12-2H*20H], 01H123        vmovdqu32 ymm17, ymmword ptr [rdx+r9-2H*20H]124        vinserti64x4 zmm17, zmm17, ymmword ptr [rdx+r13-2H*20H], 01H125        vpunpcklqdq zmm12, zmm16, zmm17126        vpunpckhqdq zmm13, zmm16, zmm17127        vmovdqu32 ymm18, ymmword ptr [rdx+r10-2H*20H]128        vinserti64x4 zmm18, zmm18, ymmword ptr [rdx+r14-2H*20H], 01H129        vmovdqu32 ymm19, ymmword ptr [rdx+r11-2H*20H]130        vinserti64x4 zmm19, zmm19, ymmword ptr [rdx+r15-2H*20H], 01H131        vpunpcklqdq zmm14, zmm18, zmm19132        vpunpckhqdq zmm15, zmm18, zmm19133        vmovdqa32 zmm27, zmmword ptr [INDEX0]134        vmovdqa32 zmm31, zmmword ptr [INDEX1]135        vshufps zmm16, zmm8, zmm10, 136136        vshufps zmm17, zmm12, zmm14, 136137        vmovdqa32 zmm20, zmm16138        vpermt2d zmm16, zmm27, zmm17139        vpermt2d zmm20, zmm31, zmm17140        vshufps zmm17, zmm8, zmm10, 221141        vshufps zmm30, zmm12, zmm14, 221142        vmovdqa32 zmm21, zmm17143        vpermt2d zmm17, zmm27, zmm30144        vpermt2d zmm21, zmm31, zmm30145        vshufps zmm18, zmm9, zmm11, 136146        vshufps zmm8, zmm13, zmm15, 136147        vmovdqa32 zmm22, zmm18148        vpermt2d zmm18, zmm27, zmm8149        vpermt2d zmm22, zmm31, zmm8150        vshufps zmm19, zmm9, zmm11, 221151        vshufps zmm8, zmm13, zmm15, 221152        vmovdqa32 zmm23, zmm19153        vpermt2d zmm19, zmm27, zmm8154        vpermt2d zmm23, zmm31, zmm8155        mov     r8, qword ptr [rdi]156        mov     r9, qword ptr [rdi+8H]157        mov     r10, qword ptr [rdi+10H]158        mov     r11, qword ptr [rdi+18H]159        mov     r12, qword ptr [rdi+40H]160        mov     r13, qword ptr [rdi+48H]161        mov     r14, qword ptr [rdi+50H]162        mov     r15, qword ptr [rdi+58H]163        vmovdqu32 ymm24, ymmword ptr [r8+rdx-1H*20H]164        vinserti64x4 zmm24, zmm24, ymmword ptr [r12+rdx-1H*20H], 01H165        vmovdqu32 ymm25, ymmword ptr [r9+rdx-1H*20H]166        vinserti64x4 zmm25, zmm25, ymmword ptr [r13+rdx-1H*20H], 01H167        vpunpcklqdq zmm8, zmm24, zmm25168        vpunpckhqdq zmm9, zmm24, zmm25169        vmovdqu32 ymm24, ymmword ptr [r10+rdx-1H*20H]170        vinserti64x4 zmm24, zmm24, ymmword ptr [r14+rdx-1H*20H], 01H171        vmovdqu32 ymm25, ymmword ptr [r11+rdx-1H*20H]172        vinserti64x4 zmm25, zmm25, ymmword ptr [r15+rdx-1H*20H], 01H173        vpunpcklqdq zmm10, zmm24, zmm25174        vpunpckhqdq zmm11, zmm24, zmm25175        prefetcht0 byte ptr [r8+rdx+80H]176        prefetcht0 byte ptr [r12+rdx+80H]177        prefetcht0 byte ptr [r9+rdx+80H]178        prefetcht0 byte ptr [r13+rdx+80H]179        prefetcht0 byte ptr [r10+rdx+80H]180        prefetcht0 byte ptr [r14+rdx+80H]181        prefetcht0 byte ptr [r11+rdx+80H]182        prefetcht0 byte ptr [r15+rdx+80H]183        mov     r8, qword ptr [rdi+20H]184        mov     r9, qword ptr [rdi+28H]185        mov     r10, qword ptr [rdi+30H]186        mov     r11, qword ptr [rdi+38H]187        mov     r12, qword ptr [rdi+60H]188        mov     r13, qword ptr [rdi+68H]189        mov     r14, qword ptr [rdi+70H]190        mov     r15, qword ptr [rdi+78H]191        vmovdqu32 ymm24, ymmword ptr [r8+rdx-1H*20H]192        vinserti64x4 zmm24, zmm24, ymmword ptr [r12+rdx-1H*20H], 01H193        vmovdqu32 ymm25, ymmword ptr [r9+rdx-1H*20H]194        vinserti64x4 zmm25, zmm25, ymmword ptr [r13+rdx-1H*20H], 01H195        vpunpcklqdq zmm12, zmm24, zmm25196        vpunpckhqdq zmm13, zmm24, zmm25197        vmovdqu32 ymm24, ymmword ptr [r10+rdx-1H*20H]198        vinserti64x4 zmm24, zmm24, ymmword ptr [r14+rdx-1H*20H], 01H199        vmovdqu32 ymm25, ymmword ptr [r11+rdx-1H*20H]200        vinserti64x4 zmm25, zmm25, ymmword ptr [r15+rdx-1H*20H], 01H201        vpunpcklqdq zmm14, zmm24, zmm25202        vpunpckhqdq zmm15, zmm24, zmm25203        prefetcht0 byte  ptr [r8+rdx+80H]204        prefetcht0 byte ptr [r12+rdx+80H]205        prefetcht0 byte ptr [r9+rdx+80H]206        prefetcht0 byte ptr [r13+rdx+80H]207        prefetcht0 byte ptr [r10+rdx+80H]208        prefetcht0 byte ptr [r14+rdx+80H]209        prefetcht0 byte ptr [r11+rdx+80H]210        prefetcht0 byte ptr [r15+rdx+80H]211        vshufps zmm24, zmm8, zmm10, 136212        vshufps zmm30, zmm12, zmm14, 136213        vmovdqa32 zmm28, zmm24214        vpermt2d zmm24, zmm27, zmm30215        vpermt2d zmm28, zmm31, zmm30216        vshufps zmm25, zmm8, zmm10, 221217        vshufps zmm30, zmm12, zmm14, 221218        vmovdqa32 zmm29, zmm25219        vpermt2d zmm25, zmm27, zmm30220        vpermt2d zmm29, zmm31, zmm30221        vshufps zmm26, zmm9, zmm11, 136222        vshufps zmm8, zmm13, zmm15, 136223        vmovdqa32 zmm30, zmm26224        vpermt2d zmm26, zmm27, zmm8225        vpermt2d zmm30, zmm31, zmm8226        vshufps zmm8, zmm9, zmm11, 221227        vshufps zmm10, zmm13, zmm15, 221228        vpermi2d zmm27, zmm8, zmm10229        vpermi2d zmm31, zmm8, zmm10230        vpbroadcastd zmm8, dword ptr [BLAKE3_IV_0]231        vpbroadcastd zmm9, dword ptr [BLAKE3_IV_1]232        vpbroadcastd zmm10, dword ptr [BLAKE3_IV_2]233        vpbroadcastd zmm11, dword ptr [BLAKE3_IV_3]234        vmovdqa32 zmm12, zmmword ptr [rsp]235        vmovdqa32 zmm13, zmmword ptr [rsp+1H*40H]236        vpbroadcastd zmm14, dword ptr [BLAKE3_BLOCK_LEN]237        vpbroadcastd zmm15, dword ptr [rsp+22H*4H]238        vpaddd  zmm0, zmm0, zmm16239        vpaddd  zmm1, zmm1, zmm18240        vpaddd  zmm2, zmm2, zmm20241        vpaddd  zmm3, zmm3, zmm22242        vpaddd  zmm0, zmm0, zmm4243        vpaddd  zmm1, zmm1, zmm5244        vpaddd  zmm2, zmm2, zmm6245        vpaddd  zmm3, zmm3, zmm7246        vpxord  zmm12, zmm12, zmm0247        vpxord  zmm13, zmm13, zmm1248        vpxord  zmm14, zmm14, zmm2249        vpxord  zmm15, zmm15, zmm3250        vprord  zmm12, zmm12, 16251        vprord  zmm13, zmm13, 16252        vprord  zmm14, zmm14, 16253        vprord  zmm15, zmm15, 16254        vpaddd  zmm8, zmm8, zmm12255        vpaddd  zmm9, zmm9, zmm13256        vpaddd  zmm10, zmm10, zmm14257        vpaddd  zmm11, zmm11, zmm15258        vpxord  zmm4, zmm4, zmm8259        vpxord  zmm5, zmm5, zmm9260        vpxord  zmm6, zmm6, zmm10261        vpxord  zmm7, zmm7, zmm11262        vprord  zmm4, zmm4, 12263        vprord  zmm5, zmm5, 12264        vprord  zmm6, zmm6, 12265        vprord  zmm7, zmm7, 12266        vpaddd  zmm0, zmm0, zmm17267        vpaddd  zmm1, zmm1, zmm19268        vpaddd  zmm2, zmm2, zmm21269        vpaddd  zmm3, zmm3, zmm23270        vpaddd  zmm0, zmm0, zmm4271        vpaddd  zmm1, zmm1, zmm5272        vpaddd  zmm2, zmm2, zmm6273        vpaddd  zmm3, zmm3, zmm7274        vpxord  zmm12, zmm12, zmm0275        vpxord  zmm13, zmm13, zmm1276        vpxord  zmm14, zmm14, zmm2277        vpxord  zmm15, zmm15, zmm3278        vprord  zmm12, zmm12, 8279        vprord  zmm13, zmm13, 8280        vprord  zmm14, zmm14, 8281        vprord  zmm15, zmm15, 8282        vpaddd  zmm8, zmm8, zmm12283        vpaddd  zmm9, zmm9, zmm13284        vpaddd  zmm10, zmm10, zmm14285        vpaddd  zmm11, zmm11, zmm15286        vpxord  zmm4, zmm4, zmm8287        vpxord  zmm5, zmm5, zmm9288        vpxord  zmm6, zmm6, zmm10289        vpxord  zmm7, zmm7, zmm11290        vprord  zmm4, zmm4, 7291        vprord  zmm5, zmm5, 7292        vprord  zmm6, zmm6, 7293        vprord  zmm7, zmm7, 7294        vpaddd  zmm0, zmm0, zmm24295        vpaddd  zmm1, zmm1, zmm26296        vpaddd  zmm2, zmm2, zmm28297        vpaddd  zmm3, zmm3, zmm30298        vpaddd  zmm0, zmm0, zmm5299        vpaddd  zmm1, zmm1, zmm6300        vpaddd  zmm2, zmm2, zmm7301        vpaddd  zmm3, zmm3, zmm4302        vpxord  zmm15, zmm15, zmm0303        vpxord  zmm12, zmm12, zmm1304        vpxord  zmm13, zmm13, zmm2305        vpxord  zmm14, zmm14, zmm3306        vprord  zmm15, zmm15, 16307        vprord  zmm12, zmm12, 16308        vprord  zmm13, zmm13, 16309        vprord  zmm14, zmm14, 16310        vpaddd  zmm10, zmm10, zmm15311        vpaddd  zmm11, zmm11, zmm12312        vpaddd  zmm8, zmm8, zmm13313        vpaddd  zmm9, zmm9, zmm14314        vpxord  zmm5, zmm5, zmm10315        vpxord  zmm6, zmm6, zmm11316        vpxord  zmm7, zmm7, zmm8317        vpxord  zmm4, zmm4, zmm9318        vprord  zmm5, zmm5, 12319        vprord  zmm6, zmm6, 12320        vprord  zmm7, zmm7, 12321        vprord  zmm4, zmm4, 12322        vpaddd  zmm0, zmm0, zmm25323        vpaddd  zmm1, zmm1, zmm27324        vpaddd  zmm2, zmm2, zmm29325        vpaddd  zmm3, zmm3, zmm31326        vpaddd  zmm0, zmm0, zmm5327        vpaddd  zmm1, zmm1, zmm6328        vpaddd  zmm2, zmm2, zmm7329        vpaddd  zmm3, zmm3, zmm4330        vpxord  zmm15, zmm15, zmm0331        vpxord  zmm12, zmm12, zmm1332        vpxord  zmm13, zmm13, zmm2333        vpxord  zmm14, zmm14, zmm3334        vprord  zmm15, zmm15, 8335        vprord  zmm12, zmm12, 8336        vprord  zmm13, zmm13, 8337        vprord  zmm14, zmm14, 8338        vpaddd  zmm10, zmm10, zmm15339        vpaddd  zmm11, zmm11, zmm12340        vpaddd  zmm8, zmm8, zmm13341        vpaddd  zmm9, zmm9, zmm14342        vpxord  zmm5, zmm5, zmm10343        vpxord  zmm6, zmm6, zmm11344        vpxord  zmm7, zmm7, zmm8345        vpxord  zmm4, zmm4, zmm9346        vprord  zmm5, zmm5, 7347        vprord  zmm6, zmm6, 7348        vprord  zmm7, zmm7, 7349        vprord  zmm4, zmm4, 7350        vpaddd  zmm0, zmm0, zmm18351        vpaddd  zmm1, zmm1, zmm19352        vpaddd  zmm2, zmm2, zmm23353        vpaddd  zmm3, zmm3, zmm20354        vpaddd  zmm0, zmm0, zmm4355        vpaddd  zmm1, zmm1, zmm5356        vpaddd  zmm2, zmm2, zmm6357        vpaddd  zmm3, zmm3, zmm7358        vpxord  zmm12, zmm12, zmm0359        vpxord  zmm13, zmm13, zmm1360        vpxord  zmm14, zmm14, zmm2361        vpxord  zmm15, zmm15, zmm3362        vprord  zmm12, zmm12, 16363        vprord  zmm13, zmm13, 16364        vprord  zmm14, zmm14, 16365        vprord  zmm15, zmm15, 16366        vpaddd  zmm8, zmm8, zmm12367        vpaddd  zmm9, zmm9, zmm13368        vpaddd  zmm10, zmm10, zmm14369        vpaddd  zmm11, zmm11, zmm15370        vpxord  zmm4, zmm4, zmm8371        vpxord  zmm5, zmm5, zmm9372        vpxord  zmm6, zmm6, zmm10373        vpxord  zmm7, zmm7, zmm11374        vprord  zmm4, zmm4, 12375        vprord  zmm5, zmm5, 12376        vprord  zmm6, zmm6, 12377        vprord  zmm7, zmm7, 12378        vpaddd  zmm0, zmm0, zmm22379        vpaddd  zmm1, zmm1, zmm26380        vpaddd  zmm2, zmm2, zmm16381        vpaddd  zmm3, zmm3, zmm29382        vpaddd  zmm0, zmm0, zmm4383        vpaddd  zmm1, zmm1, zmm5384        vpaddd  zmm2, zmm2, zmm6385        vpaddd  zmm3, zmm3, zmm7386        vpxord  zmm12, zmm12, zmm0387        vpxord  zmm13, zmm13, zmm1388        vpxord  zmm14, zmm14, zmm2389        vpxord  zmm15, zmm15, zmm3390        vprord  zmm12, zmm12, 8391        vprord  zmm13, zmm13, 8392        vprord  zmm14, zmm14, 8393        vprord  zmm15, zmm15, 8394        vpaddd  zmm8, zmm8, zmm12395        vpaddd  zmm9, zmm9, zmm13396        vpaddd  zmm10, zmm10, zmm14397        vpaddd  zmm11, zmm11, zmm15398        vpxord  zmm4, zmm4, zmm8399        vpxord  zmm5, zmm5, zmm9400        vpxord  zmm6, zmm6, zmm10401        vpxord  zmm7, zmm7, zmm11402        vprord  zmm4, zmm4, 7403        vprord  zmm5, zmm5, 7404        vprord  zmm6, zmm6, 7405        vprord  zmm7, zmm7, 7406        vpaddd  zmm0, zmm0, zmm17407        vpaddd  zmm1, zmm1, zmm28408        vpaddd  zmm2, zmm2, zmm25409        vpaddd  zmm3, zmm3, zmm31410        vpaddd  zmm0, zmm0, zmm5411        vpaddd  zmm1, zmm1, zmm6412        vpaddd  zmm2, zmm2, zmm7413        vpaddd  zmm3, zmm3, zmm4414        vpxord  zmm15, zmm15, zmm0415        vpxord  zmm12, zmm12, zmm1416        vpxord  zmm13, zmm13, zmm2417        vpxord  zmm14, zmm14, zmm3418        vprord  zmm15, zmm15, 16419        vprord  zmm12, zmm12, 16420        vprord  zmm13, zmm13, 16421        vprord  zmm14, zmm14, 16422        vpaddd  zmm10, zmm10, zmm15423        vpaddd  zmm11, zmm11, zmm12424        vpaddd  zmm8, zmm8, zmm13425        vpaddd  zmm9, zmm9, zmm14426        vpxord  zmm5, zmm5, zmm10427        vpxord  zmm6, zmm6, zmm11428        vpxord  zmm7, zmm7, zmm8429        vpxord  zmm4, zmm4, zmm9430        vprord  zmm5, zmm5, 12431        vprord  zmm6, zmm6, 12432        vprord  zmm7, zmm7, 12433        vprord  zmm4, zmm4, 12434        vpaddd  zmm0, zmm0, zmm27435        vpaddd  zmm1, zmm1, zmm21436        vpaddd  zmm2, zmm2, zmm30437        vpaddd  zmm3, zmm3, zmm24438        vpaddd  zmm0, zmm0, zmm5439        vpaddd  zmm1, zmm1, zmm6440        vpaddd  zmm2, zmm2, zmm7441        vpaddd  zmm3, zmm3, zmm4442        vpxord  zmm15, zmm15, zmm0443        vpxord  zmm12, zmm12, zmm1444        vpxord  zmm13, zmm13, zmm2445        vpxord  zmm14, zmm14, zmm3446        vprord  zmm15, zmm15, 8447        vprord  zmm12, zmm12, 8448        vprord  zmm13, zmm13, 8449        vprord  zmm14, zmm14, 8450        vpaddd  zmm10, zmm10, zmm15451        vpaddd  zmm11, zmm11, zmm12452        vpaddd  zmm8, zmm8, zmm13453        vpaddd  zmm9, zmm9, zmm14454        vpxord  zmm5, zmm5, zmm10455        vpxord  zmm6, zmm6, zmm11456        vpxord  zmm7, zmm7, zmm8457        vpxord  zmm4, zmm4, zmm9458        vprord  zmm5, zmm5, 7459        vprord  zmm6, zmm6, 7460        vprord  zmm7, zmm7, 7461        vprord  zmm4, zmm4, 7462        vpaddd  zmm0, zmm0, zmm19463        vpaddd  zmm1, zmm1, zmm26464        vpaddd  zmm2, zmm2, zmm29465        vpaddd  zmm3, zmm3, zmm23466        vpaddd  zmm0, zmm0, zmm4467        vpaddd  zmm1, zmm1, zmm5468        vpaddd  zmm2, zmm2, zmm6469        vpaddd  zmm3, zmm3, zmm7470        vpxord  zmm12, zmm12, zmm0471        vpxord  zmm13, zmm13, zmm1472        vpxord  zmm14, zmm14, zmm2473        vpxord  zmm15, zmm15, zmm3474        vprord  zmm12, zmm12, 16475        vprord  zmm13, zmm13, 16476        vprord  zmm14, zmm14, 16477        vprord  zmm15, zmm15, 16478        vpaddd  zmm8, zmm8, zmm12479        vpaddd  zmm9, zmm9, zmm13480        vpaddd  zmm10, zmm10, zmm14481        vpaddd  zmm11, zmm11, zmm15482        vpxord  zmm4, zmm4, zmm8483        vpxord  zmm5, zmm5, zmm9484        vpxord  zmm6, zmm6, zmm10485        vpxord  zmm7, zmm7, zmm11486        vprord  zmm4, zmm4, 12487        vprord  zmm5, zmm5, 12488        vprord  zmm6, zmm6, 12489        vprord  zmm7, zmm7, 12490        vpaddd  zmm0, zmm0, zmm20491        vpaddd  zmm1, zmm1, zmm28492        vpaddd  zmm2, zmm2, zmm18493        vpaddd  zmm3, zmm3, zmm30494        vpaddd  zmm0, zmm0, zmm4495        vpaddd  zmm1, zmm1, zmm5496        vpaddd  zmm2, zmm2, zmm6497        vpaddd  zmm3, zmm3, zmm7498        vpxord  zmm12, zmm12, zmm0499        vpxord  zmm13, zmm13, zmm1500        vpxord  zmm14, zmm14, zmm2501        vpxord  zmm15, zmm15, zmm3502        vprord  zmm12, zmm12, 8503        vprord  zmm13, zmm13, 8504        vprord  zmm14, zmm14, 8505        vprord  zmm15, zmm15, 8506        vpaddd  zmm8, zmm8, zmm12507        vpaddd  zmm9, zmm9, zmm13508        vpaddd  zmm10, zmm10, zmm14509        vpaddd  zmm11, zmm11, zmm15510        vpxord  zmm4, zmm4, zmm8511        vpxord  zmm5, zmm5, zmm9512        vpxord  zmm6, zmm6, zmm10513        vpxord  zmm7, zmm7, zmm11514        vprord  zmm4, zmm4, 7515        vprord  zmm5, zmm5, 7516        vprord  zmm6, zmm6, 7517        vprord  zmm7, zmm7, 7518        vpaddd  zmm0, zmm0, zmm22519        vpaddd  zmm1, zmm1, zmm25520        vpaddd  zmm2, zmm2, zmm27521        vpaddd  zmm3, zmm3, zmm24522        vpaddd  zmm0, zmm0, zmm5523        vpaddd  zmm1, zmm1, zmm6524        vpaddd  zmm2, zmm2, zmm7525        vpaddd  zmm3, zmm3, zmm4526        vpxord  zmm15, zmm15, zmm0527        vpxord  zmm12, zmm12, zmm1528        vpxord  zmm13, zmm13, zmm2529        vpxord  zmm14, zmm14, zmm3530        vprord  zmm15, zmm15, 16531        vprord  zmm12, zmm12, 16532        vprord  zmm13, zmm13, 16533        vprord  zmm14, zmm14, 16534        vpaddd  zmm10, zmm10, zmm15535        vpaddd  zmm11, zmm11, zmm12536        vpaddd  zmm8, zmm8, zmm13537        vpaddd  zmm9, zmm9, zmm14538        vpxord  zmm5, zmm5, zmm10539        vpxord  zmm6, zmm6, zmm11540        vpxord  zmm7, zmm7, zmm8541        vpxord  zmm4, zmm4, zmm9542        vprord  zmm5, zmm5, 12543        vprord  zmm6, zmm6, 12544        vprord  zmm7, zmm7, 12545        vprord  zmm4, zmm4, 12546        vpaddd  zmm0, zmm0, zmm21547        vpaddd  zmm1, zmm1, zmm16548        vpaddd  zmm2, zmm2, zmm31549        vpaddd  zmm3, zmm3, zmm17550        vpaddd  zmm0, zmm0, zmm5551        vpaddd  zmm1, zmm1, zmm6552        vpaddd  zmm2, zmm2, zmm7553        vpaddd  zmm3, zmm3, zmm4554        vpxord  zmm15, zmm15, zmm0555        vpxord  zmm12, zmm12, zmm1556        vpxord  zmm13, zmm13, zmm2557        vpxord  zmm14, zmm14, zmm3558        vprord  zmm15, zmm15, 8559        vprord  zmm12, zmm12, 8560        vprord  zmm13, zmm13, 8561        vprord  zmm14, zmm14, 8562        vpaddd  zmm10, zmm10, zmm15563        vpaddd  zmm11, zmm11, zmm12564        vpaddd  zmm8, zmm8, zmm13565        vpaddd  zmm9, zmm9, zmm14566        vpxord  zmm5, zmm5, zmm10567        vpxord  zmm6, zmm6, zmm11568        vpxord  zmm7, zmm7, zmm8569        vpxord  zmm4, zmm4, zmm9570        vprord  zmm5, zmm5, 7571        vprord  zmm6, zmm6, 7572        vprord  zmm7, zmm7, 7573        vprord  zmm4, zmm4, 7574        vpaddd  zmm0, zmm0, zmm26575        vpaddd  zmm1, zmm1, zmm28576        vpaddd  zmm2, zmm2, zmm30577        vpaddd  zmm3, zmm3, zmm29578        vpaddd  zmm0, zmm0, zmm4579        vpaddd  zmm1, zmm1, zmm5580        vpaddd  zmm2, zmm2, zmm6581        vpaddd  zmm3, zmm3, zmm7582        vpxord  zmm12, zmm12, zmm0583        vpxord  zmm13, zmm13, zmm1584        vpxord  zmm14, zmm14, zmm2585        vpxord  zmm15, zmm15, zmm3586        vprord  zmm12, zmm12, 16587        vprord  zmm13, zmm13, 16588        vprord  zmm14, zmm14, 16589        vprord  zmm15, zmm15, 16590        vpaddd  zmm8, zmm8, zmm12591        vpaddd  zmm9, zmm9, zmm13592        vpaddd  zmm10, zmm10, zmm14593        vpaddd  zmm11, zmm11, zmm15594        vpxord  zmm4, zmm4, zmm8595        vpxord  zmm5, zmm5, zmm9596        vpxord  zmm6, zmm6, zmm10597        vpxord  zmm7, zmm7, zmm11598        vprord  zmm4, zmm4, 12599        vprord  zmm5, zmm5, 12600        vprord  zmm6, zmm6, 12601        vprord  zmm7, zmm7, 12602        vpaddd  zmm0, zmm0, zmm23603        vpaddd  zmm1, zmm1, zmm25604        vpaddd  zmm2, zmm2, zmm19605        vpaddd  zmm3, zmm3, zmm31606        vpaddd  zmm0, zmm0, zmm4607        vpaddd  zmm1, zmm1, zmm5608        vpaddd  zmm2, zmm2, zmm6609        vpaddd  zmm3, zmm3, zmm7610        vpxord  zmm12, zmm12, zmm0611        vpxord  zmm13, zmm13, zmm1612        vpxord  zmm14, zmm14, zmm2613        vpxord  zmm15, zmm15, zmm3614        vprord  zmm12, zmm12, 8615        vprord  zmm13, zmm13, 8616        vprord  zmm14, zmm14, 8617        vprord  zmm15, zmm15, 8618        vpaddd  zmm8, zmm8, zmm12619        vpaddd  zmm9, zmm9, zmm13620        vpaddd  zmm10, zmm10, zmm14621        vpaddd  zmm11, zmm11, zmm15622        vpxord  zmm4, zmm4, zmm8623        vpxord  zmm5, zmm5, zmm9624        vpxord  zmm6, zmm6, zmm10625        vpxord  zmm7, zmm7, zmm11626        vprord  zmm4, zmm4, 7627        vprord  zmm5, zmm5, 7628        vprord  zmm6, zmm6, 7629        vprord  zmm7, zmm7, 7630        vpaddd  zmm0, zmm0, zmm20631        vpaddd  zmm1, zmm1, zmm27632        vpaddd  zmm2, zmm2, zmm21633        vpaddd  zmm3, zmm3, zmm17634        vpaddd  zmm0, zmm0, zmm5635        vpaddd  zmm1, zmm1, zmm6636        vpaddd  zmm2, zmm2, zmm7637        vpaddd  zmm3, zmm3, zmm4638        vpxord  zmm15, zmm15, zmm0639        vpxord  zmm12, zmm12, zmm1640        vpxord  zmm13, zmm13, zmm2641        vpxord  zmm14, zmm14, zmm3642        vprord  zmm15, zmm15, 16643        vprord  zmm12, zmm12, 16644        vprord  zmm13, zmm13, 16645        vprord  zmm14, zmm14, 16646        vpaddd  zmm10, zmm10, zmm15647        vpaddd  zmm11, zmm11, zmm12648        vpaddd  zmm8, zmm8, zmm13649        vpaddd  zmm9, zmm9, zmm14650        vpxord  zmm5, zmm5, zmm10651        vpxord  zmm6, zmm6, zmm11652        vpxord  zmm7, zmm7, zmm8653        vpxord  zmm4, zmm4, zmm9654        vprord  zmm5, zmm5, 12655        vprord  zmm6, zmm6, 12656        vprord  zmm7, zmm7, 12657        vprord  zmm4, zmm4, 12658        vpaddd  zmm0, zmm0, zmm16659        vpaddd  zmm1, zmm1, zmm18660        vpaddd  zmm2, zmm2, zmm24661        vpaddd  zmm3, zmm3, zmm22662        vpaddd  zmm0, zmm0, zmm5663        vpaddd  zmm1, zmm1, zmm6664        vpaddd  zmm2, zmm2, zmm7665        vpaddd  zmm3, zmm3, zmm4666        vpxord  zmm15, zmm15, zmm0667        vpxord  zmm12, zmm12, zmm1668        vpxord  zmm13, zmm13, zmm2669        vpxord  zmm14, zmm14, zmm3670        vprord  zmm15, zmm15, 8671        vprord  zmm12, zmm12, 8672        vprord  zmm13, zmm13, 8673        vprord  zmm14, zmm14, 8674        vpaddd  zmm10, zmm10, zmm15675        vpaddd  zmm11, zmm11, zmm12676        vpaddd  zmm8, zmm8, zmm13677        vpaddd  zmm9, zmm9, zmm14678        vpxord  zmm5, zmm5, zmm10679        vpxord  zmm6, zmm6, zmm11680        vpxord  zmm7, zmm7, zmm8681        vpxord  zmm4, zmm4, zmm9682        vprord  zmm5, zmm5, 7683        vprord  zmm6, zmm6, 7684        vprord  zmm7, zmm7, 7685        vprord  zmm4, zmm4, 7686        vpaddd  zmm0, zmm0, zmm28687        vpaddd  zmm1, zmm1, zmm25688        vpaddd  zmm2, zmm2, zmm31689        vpaddd  zmm3, zmm3, zmm30690        vpaddd  zmm0, zmm0, zmm4691        vpaddd  zmm1, zmm1, zmm5692        vpaddd  zmm2, zmm2, zmm6693        vpaddd  zmm3, zmm3, zmm7694        vpxord  zmm12, zmm12, zmm0695        vpxord  zmm13, zmm13, zmm1696        vpxord  zmm14, zmm14, zmm2697        vpxord  zmm15, zmm15, zmm3698        vprord  zmm12, zmm12, 16699        vprord  zmm13, zmm13, 16700        vprord  zmm14, zmm14, 16701        vprord  zmm15, zmm15, 16702        vpaddd  zmm8, zmm8, zmm12703        vpaddd  zmm9, zmm9, zmm13704        vpaddd  zmm10, zmm10, zmm14705        vpaddd  zmm11, zmm11, zmm15706        vpxord  zmm4, zmm4, zmm8707        vpxord  zmm5, zmm5, zmm9708        vpxord  zmm6, zmm6, zmm10709        vpxord  zmm7, zmm7, zmm11710        vprord  zmm4, zmm4, 12711        vprord  zmm5, zmm5, 12712        vprord  zmm6, zmm6, 12713        vprord  zmm7, zmm7, 12714        vpaddd  zmm0, zmm0, zmm29715        vpaddd  zmm1, zmm1, zmm27716        vpaddd  zmm2, zmm2, zmm26717        vpaddd  zmm3, zmm3, zmm24718        vpaddd  zmm0, zmm0, zmm4719        vpaddd  zmm1, zmm1, zmm5720        vpaddd  zmm2, zmm2, zmm6721        vpaddd  zmm3, zmm3, zmm7722        vpxord  zmm12, zmm12, zmm0723        vpxord  zmm13, zmm13, zmm1724        vpxord  zmm14, zmm14, zmm2725        vpxord  zmm15, zmm15, zmm3726        vprord  zmm12, zmm12, 8727        vprord  zmm13, zmm13, 8728        vprord  zmm14, zmm14, 8729        vprord  zmm15, zmm15, 8730        vpaddd  zmm8, zmm8, zmm12731        vpaddd  zmm9, zmm9, zmm13732        vpaddd  zmm10, zmm10, zmm14733        vpaddd  zmm11, zmm11, zmm15734        vpxord  zmm4, zmm4, zmm8735        vpxord  zmm5, zmm5, zmm9736        vpxord  zmm6, zmm6, zmm10737        vpxord  zmm7, zmm7, zmm11738        vprord  zmm4, zmm4, 7739        vprord  zmm5, zmm5, 7740        vprord  zmm6, zmm6, 7741        vprord  zmm7, zmm7, 7742        vpaddd  zmm0, zmm0, zmm23743        vpaddd  zmm1, zmm1, zmm21744        vpaddd  zmm2, zmm2, zmm16745        vpaddd  zmm3, zmm3, zmm22746        vpaddd  zmm0, zmm0, zmm5747        vpaddd  zmm1, zmm1, zmm6748        vpaddd  zmm2, zmm2, zmm7749        vpaddd  zmm3, zmm3, zmm4750        vpxord  zmm15, zmm15, zmm0751        vpxord  zmm12, zmm12, zmm1752        vpxord  zmm13, zmm13, zmm2753        vpxord  zmm14, zmm14, zmm3754        vprord  zmm15, zmm15, 16755        vprord  zmm12, zmm12, 16756        vprord  zmm13, zmm13, 16757        vprord  zmm14, zmm14, 16758        vpaddd  zmm10, zmm10, zmm15759        vpaddd  zmm11, zmm11, zmm12760        vpaddd  zmm8, zmm8, zmm13761        vpaddd  zmm9, zmm9, zmm14762        vpxord  zmm5, zmm5, zmm10763        vpxord  zmm6, zmm6, zmm11764        vpxord  zmm7, zmm7, zmm8765        vpxord  zmm4, zmm4, zmm9766        vprord  zmm5, zmm5, 12767        vprord  zmm6, zmm6, 12768        vprord  zmm7, zmm7, 12769        vprord  zmm4, zmm4, 12770        vpaddd  zmm0, zmm0, zmm18771        vpaddd  zmm1, zmm1, zmm19772        vpaddd  zmm2, zmm2, zmm17773        vpaddd  zmm3, zmm3, zmm20774        vpaddd  zmm0, zmm0, zmm5775        vpaddd  zmm1, zmm1, zmm6776        vpaddd  zmm2, zmm2, zmm7777        vpaddd  zmm3, zmm3, zmm4778        vpxord  zmm15, zmm15, zmm0779        vpxord  zmm12, zmm12, zmm1780        vpxord  zmm13, zmm13, zmm2781        vpxord  zmm14, zmm14, zmm3782        vprord  zmm15, zmm15, 8783        vprord  zmm12, zmm12, 8784        vprord  zmm13, zmm13, 8785        vprord  zmm14, zmm14, 8786        vpaddd  zmm10, zmm10, zmm15787        vpaddd  zmm11, zmm11, zmm12788        vpaddd  zmm8, zmm8, zmm13789        vpaddd  zmm9, zmm9, zmm14790        vpxord  zmm5, zmm5, zmm10791        vpxord  zmm6, zmm6, zmm11792        vpxord  zmm7, zmm7, zmm8793        vpxord  zmm4, zmm4, zmm9794        vprord  zmm5, zmm5, 7795        vprord  zmm6, zmm6, 7796        vprord  zmm7, zmm7, 7797        vprord  zmm4, zmm4, 7798        vpaddd  zmm0, zmm0, zmm25799        vpaddd  zmm1, zmm1, zmm27800        vpaddd  zmm2, zmm2, zmm24801        vpaddd  zmm3, zmm3, zmm31802        vpaddd  zmm0, zmm0, zmm4803        vpaddd  zmm1, zmm1, zmm5804        vpaddd  zmm2, zmm2, zmm6805        vpaddd  zmm3, zmm3, zmm7806        vpxord  zmm12, zmm12, zmm0807        vpxord  zmm13, zmm13, zmm1808        vpxord  zmm14, zmm14, zmm2809        vpxord  zmm15, zmm15, zmm3810        vprord  zmm12, zmm12, 16811        vprord  zmm13, zmm13, 16812        vprord  zmm14, zmm14, 16813        vprord  zmm15, zmm15, 16814        vpaddd  zmm8, zmm8, zmm12815        vpaddd  zmm9, zmm9, zmm13816        vpaddd  zmm10, zmm10, zmm14817        vpaddd  zmm11, zmm11, zmm15818        vpxord  zmm4, zmm4, zmm8819        vpxord  zmm5, zmm5, zmm9820        vpxord  zmm6, zmm6, zmm10821        vpxord  zmm7, zmm7, zmm11822        vprord  zmm4, zmm4, 12823        vprord  zmm5, zmm5, 12824        vprord  zmm6, zmm6, 12825        vprord  zmm7, zmm7, 12826        vpaddd  zmm0, zmm0, zmm30827        vpaddd  zmm1, zmm1, zmm21828        vpaddd  zmm2, zmm2, zmm28829        vpaddd  zmm3, zmm3, zmm17830        vpaddd  zmm0, zmm0, zmm4831        vpaddd  zmm1, zmm1, zmm5832        vpaddd  zmm2, zmm2, zmm6833        vpaddd  zmm3, zmm3, zmm7834        vpxord  zmm12, zmm12, zmm0835        vpxord  zmm13, zmm13, zmm1836        vpxord  zmm14, zmm14, zmm2837        vpxord  zmm15, zmm15, zmm3838        vprord  zmm12, zmm12, 8839        vprord  zmm13, zmm13, 8840        vprord  zmm14, zmm14, 8841        vprord  zmm15, zmm15, 8842        vpaddd  zmm8, zmm8, zmm12843        vpaddd  zmm9, zmm9, zmm13844        vpaddd  zmm10, zmm10, zmm14845        vpaddd  zmm11, zmm11, zmm15846        vpxord  zmm4, zmm4, zmm8847        vpxord  zmm5, zmm5, zmm9848        vpxord  zmm6, zmm6, zmm10849        vpxord  zmm7, zmm7, zmm11850        vprord  zmm4, zmm4, 7851        vprord  zmm5, zmm5, 7852        vprord  zmm6, zmm6, 7853        vprord  zmm7, zmm7, 7854        vpaddd  zmm0, zmm0, zmm29855        vpaddd  zmm1, zmm1, zmm16856        vpaddd  zmm2, zmm2, zmm18857        vpaddd  zmm3, zmm3, zmm20858        vpaddd  zmm0, zmm0, zmm5859        vpaddd  zmm1, zmm1, zmm6860        vpaddd  zmm2, zmm2, zmm7861        vpaddd  zmm3, zmm3, zmm4862        vpxord  zmm15, zmm15, zmm0863        vpxord  zmm12, zmm12, zmm1864        vpxord  zmm13, zmm13, zmm2865        vpxord  zmm14, zmm14, zmm3866        vprord  zmm15, zmm15, 16867        vprord  zmm12, zmm12, 16868        vprord  zmm13, zmm13, 16869        vprord  zmm14, zmm14, 16870        vpaddd  zmm10, zmm10, zmm15871        vpaddd  zmm11, zmm11, zmm12872        vpaddd  zmm8, zmm8, zmm13873        vpaddd  zmm9, zmm9, zmm14874        vpxord  zmm5, zmm5, zmm10875        vpxord  zmm6, zmm6, zmm11876        vpxord  zmm7, zmm7, zmm8877        vpxord  zmm4, zmm4, zmm9878        vprord  zmm5, zmm5, 12879        vprord  zmm6, zmm6, 12880        vprord  zmm7, zmm7, 12881        vprord  zmm4, zmm4, 12882        vpaddd  zmm0, zmm0, zmm19883        vpaddd  zmm1, zmm1, zmm26884        vpaddd  zmm2, zmm2, zmm22885        vpaddd  zmm3, zmm3, zmm23886        vpaddd  zmm0, zmm0, zmm5887        vpaddd  zmm1, zmm1, zmm6888        vpaddd  zmm2, zmm2, zmm7889        vpaddd  zmm3, zmm3, zmm4890        vpxord  zmm15, zmm15, zmm0891        vpxord  zmm12, zmm12, zmm1892        vpxord  zmm13, zmm13, zmm2893        vpxord  zmm14, zmm14, zmm3894        vprord  zmm15, zmm15, 8895        vprord  zmm12, zmm12, 8896        vprord  zmm13, zmm13, 8897        vprord  zmm14, zmm14, 8898        vpaddd  zmm10, zmm10, zmm15899        vpaddd  zmm11, zmm11, zmm12900        vpaddd  zmm8, zmm8, zmm13901        vpaddd  zmm9, zmm9, zmm14902        vpxord  zmm5, zmm5, zmm10903        vpxord  zmm6, zmm6, zmm11904        vpxord  zmm7, zmm7, zmm8905        vpxord  zmm4, zmm4, zmm9906        vprord  zmm5, zmm5, 7907        vprord  zmm6, zmm6, 7908        vprord  zmm7, zmm7, 7909        vprord  zmm4, zmm4, 7910        vpaddd  zmm0, zmm0, zmm27911        vpaddd  zmm1, zmm1, zmm21912        vpaddd  zmm2, zmm2, zmm17913        vpaddd  zmm3, zmm3, zmm24914        vpaddd  zmm0, zmm0, zmm4915        vpaddd  zmm1, zmm1, zmm5916        vpaddd  zmm2, zmm2, zmm6917        vpaddd  zmm3, zmm3, zmm7918        vpxord  zmm12, zmm12, zmm0919        vpxord  zmm13, zmm13, zmm1920        vpxord  zmm14, zmm14, zmm2921        vpxord  zmm15, zmm15, zmm3922        vprord  zmm12, zmm12, 16923        vprord  zmm13, zmm13, 16924        vprord  zmm14, zmm14, 16925        vprord  zmm15, zmm15, 16926        vpaddd  zmm8, zmm8, zmm12927        vpaddd  zmm9, zmm9, zmm13928        vpaddd  zmm10, zmm10, zmm14929        vpaddd  zmm11, zmm11, zmm15930        vpxord  zmm4, zmm4, zmm8931        vpxord  zmm5, zmm5, zmm9932        vpxord  zmm6, zmm6, zmm10933        vpxord  zmm7, zmm7, zmm11934        vprord  zmm4, zmm4, 12935        vprord  zmm5, zmm5, 12936        vprord  zmm6, zmm6, 12937        vprord  zmm7, zmm7, 12938        vpaddd  zmm0, zmm0, zmm31939        vpaddd  zmm1, zmm1, zmm16940        vpaddd  zmm2, zmm2, zmm25941        vpaddd  zmm3, zmm3, zmm22942        vpaddd  zmm0, zmm0, zmm4943        vpaddd  zmm1, zmm1, zmm5944        vpaddd  zmm2, zmm2, zmm6945        vpaddd  zmm3, zmm3, zmm7946        vpxord  zmm12, zmm12, zmm0947        vpxord  zmm13, zmm13, zmm1948        vpxord  zmm14, zmm14, zmm2949        vpxord  zmm15, zmm15, zmm3950        vprord  zmm12, zmm12, 8951        vprord  zmm13, zmm13, 8952        vprord  zmm14, zmm14, 8953        vprord  zmm15, zmm15, 8954        vpaddd  zmm8, zmm8, zmm12955        vpaddd  zmm9, zmm9, zmm13956        vpaddd  zmm10, zmm10, zmm14957        vpaddd  zmm11, zmm11, zmm15958        vpxord  zmm4, zmm4, zmm8959        vpxord  zmm5, zmm5, zmm9960        vpxord  zmm6, zmm6, zmm10961        vpxord  zmm7, zmm7, zmm11962        vprord  zmm4, zmm4, 7963        vprord  zmm5, zmm5, 7964        vprord  zmm6, zmm6, 7965        vprord  zmm7, zmm7, 7966        vpaddd  zmm0, zmm0, zmm30967        vpaddd  zmm1, zmm1, zmm18968        vpaddd  zmm2, zmm2, zmm19969        vpaddd  zmm3, zmm3, zmm23970        vpaddd  zmm0, zmm0, zmm5971        vpaddd  zmm1, zmm1, zmm6972        vpaddd  zmm2, zmm2, zmm7973        vpaddd  zmm3, zmm3, zmm4974        vpxord  zmm15, zmm15, zmm0975        vpxord  zmm12, zmm12, zmm1976        vpxord  zmm13, zmm13, zmm2977        vpxord  zmm14, zmm14, zmm3978        vprord  zmm15, zmm15, 16979        vprord  zmm12, zmm12, 16980        vprord  zmm13, zmm13, 16981        vprord  zmm14, zmm14, 16982        vpaddd  zmm10, zmm10, zmm15983        vpaddd  zmm11, zmm11, zmm12984        vpaddd  zmm8, zmm8, zmm13985        vpaddd  zmm9, zmm9, zmm14986        vpxord  zmm5, zmm5, zmm10987        vpxord  zmm6, zmm6, zmm11988        vpxord  zmm7, zmm7, zmm8989        vpxord  zmm4, zmm4, zmm9990        vprord  zmm5, zmm5, 12991        vprord  zmm6, zmm6, 12992        vprord  zmm7, zmm7, 12993        vprord  zmm4, zmm4, 12994        vpaddd  zmm0, zmm0, zmm26995        vpaddd  zmm1, zmm1, zmm28996        vpaddd  zmm2, zmm2, zmm20997        vpaddd  zmm3, zmm3, zmm29998        vpaddd  zmm0, zmm0, zmm5999        vpaddd  zmm1, zmm1, zmm61000        vpaddd  zmm2, zmm2, zmm71001        vpaddd  zmm3, zmm3, zmm41002        vpxord  zmm15, zmm15, zmm01003        vpxord  zmm12, zmm12, zmm11004        vpxord  zmm13, zmm13, zmm21005        vpxord  zmm14, zmm14, zmm31006        vprord  zmm15, zmm15, 81007        vprord  zmm12, zmm12, 81008        vprord  zmm13, zmm13, 81009        vprord  zmm14, zmm14, 81010        vpaddd  zmm10, zmm10, zmm151011        vpaddd  zmm11, zmm11, zmm121012        vpaddd  zmm8, zmm8, zmm131013        vpaddd  zmm9, zmm9, zmm141014        vpxord  zmm5, zmm5, zmm101015        vpxord  zmm6, zmm6, zmm111016        vpxord  zmm7, zmm7, zmm81017        vpxord  zmm4, zmm4, zmm91018        vprord  zmm5, zmm5, 71019        vprord  zmm6, zmm6, 71020        vprord  zmm7, zmm7, 71021        vprord  zmm4, zmm4, 71022        vpxord  zmm0, zmm0, zmm81023        vpxord  zmm1, zmm1, zmm91024        vpxord  zmm2, zmm2, zmm101025        vpxord  zmm3, zmm3, zmm111026        vpxord  zmm4, zmm4, zmm121027        vpxord  zmm5, zmm5, zmm131028        vpxord  zmm6, zmm6, zmm141029        vpxord  zmm7, zmm7, zmm151030        movzx   eax, byte ptr [rbp+78H]1031        jne     innerloop161032        mov     rbx, qword ptr [rbp+90H]1033        vpunpckldq zmm16, zmm0, zmm11034        vpunpckhdq zmm17, zmm0, zmm11035        vpunpckldq zmm18, zmm2, zmm31036        vpunpckhdq zmm19, zmm2, zmm31037        vpunpckldq zmm20, zmm4, zmm51038        vpunpckhdq zmm21, zmm4, zmm51039        vpunpckldq zmm22, zmm6, zmm71040        vpunpckhdq zmm23, zmm6, zmm71041        vpunpcklqdq zmm0, zmm16, zmm181042        vpunpckhqdq zmm1, zmm16, zmm181043        vpunpcklqdq zmm2, zmm17, zmm191044        vpunpckhqdq zmm3, zmm17, zmm191045        vpunpcklqdq zmm4, zmm20, zmm221046        vpunpckhqdq zmm5, zmm20, zmm221047        vpunpcklqdq zmm6, zmm21, zmm231048        vpunpckhqdq zmm7, zmm21, zmm231049        vshufi32x4 zmm16, zmm0, zmm4, 88H1050        vshufi32x4 zmm17, zmm1, zmm5, 88H1051        vshufi32x4 zmm18, zmm2, zmm6, 88H1052        vshufi32x4 zmm19, zmm3, zmm7, 88H1053        vshufi32x4 zmm20, zmm0, zmm4, 0DDH1054        vshufi32x4 zmm21, zmm1, zmm5, 0DDH1055        vshufi32x4 zmm22, zmm2, zmm6, 0DDH1056        vshufi32x4 zmm23, zmm3, zmm7, 0DDH1057        vshufi32x4 zmm0, zmm16, zmm17, 88H1058        vshufi32x4 zmm1, zmm18, zmm19, 88H1059        vshufi32x4 zmm2, zmm20, zmm21, 88H1060        vshufi32x4 zmm3, zmm22, zmm23, 88H1061        vshufi32x4 zmm4, zmm16, zmm17, 0DDH1062        vshufi32x4 zmm5, zmm18, zmm19, 0DDH1063        vshufi32x4 zmm6, zmm20, zmm21, 0DDH1064        vshufi32x4 zmm7, zmm22, zmm23, 0DDH1065        vmovdqu32 zmmword ptr [rbx], zmm01066        vmovdqu32 zmmword ptr [rbx+1H*40H], zmm11067        vmovdqu32 zmmword ptr [rbx+2H*40H], zmm21068        vmovdqu32 zmmword ptr [rbx+3H*40H], zmm31069        vmovdqu32 zmmword ptr [rbx+4H*40H], zmm41070        vmovdqu32 zmmword ptr [rbx+5H*40H], zmm51071        vmovdqu32 zmmword ptr [rbx+6H*40H], zmm61072        vmovdqu32 zmmword ptr [rbx+7H*40H], zmm71073        vmovdqa32 zmm0, zmmword ptr [rsp]1074        vmovdqa32 zmm1, zmmword ptr [rsp+1H*40H]1075        vmovdqa32 zmm2, zmm01076        ; XXX: ml64.exe does not currently understand the syntax. We use a workaround.1077        vpbroadcastd zmm4, dword ptr [ADD16]1078        vpbroadcastd zmm5, dword ptr [ADD1]1079        vpaddd  zmm2{k1}, zmm0, zmm41080        ; vpaddd  zmm2{k1}, zmm0, dword ptr [ADD16] ; {1to16}1081        vpcmpud k2, zmm2, zmm0, 11082        vpaddd  zmm1 {k2}, zmm1, zmm51083        ; vpaddd  zmm1 {k2}, zmm1, dword ptr [ADD1] ; {1to16}1084        vmovdqa32 zmmword ptr [rsp], zmm21085        vmovdqa32 zmmword ptr [rsp+1H*40H], zmm11086        add     rdi, 1281087        add     rbx, 5121088        mov     qword ptr [rbp+90H], rbx1089        sub     rsi, 161090        cmp     rsi, 161091        jnc     outerloop161092        test    rsi, rsi1093        jne     final15blocks1094unwind:1095        vzeroupper1096        vmovdqa xmm6, xmmword ptr [rsp+90H]1097        vmovdqa xmm7, xmmword ptr [rsp+0A0H]1098        vmovdqa xmm8, xmmword ptr [rsp+0B0H]1099        vmovdqa xmm9, xmmword ptr [rsp+0C0H]1100        vmovdqa xmm10, xmmword ptr [rsp+0D0H]1101        vmovdqa xmm11, xmmword ptr [rsp+0E0H]1102        vmovdqa xmm12, xmmword ptr [rsp+0F0H]1103        vmovdqa xmm13, xmmword ptr [rsp+100H]1104        vmovdqa xmm14, xmmword ptr [rsp+110H]1105        vmovdqa xmm15, xmmword ptr [rsp+120H]1106        mov     rsp, rbp1107        pop     rbp1108        pop     rbx1109        pop     rsi1110        pop     rdi1111        pop     r121112        pop     r131113        pop     r141114        pop     r151115        ret1116ALIGN   161117final15blocks:1118        test    esi, 8H1119        je      final7blocks1120        vpbroadcastd ymm0, dword ptr [rcx]1121        vpbroadcastd ymm1, dword ptr [rcx+4H]1122        vpbroadcastd ymm2, dword ptr [rcx+8H]1123        vpbroadcastd ymm3, dword ptr [rcx+0CH]1124        vpbroadcastd ymm4, dword ptr [rcx+10H]1125        vpbroadcastd ymm5, dword ptr [rcx+14H]1126        vpbroadcastd ymm6, dword ptr [rcx+18H]1127        vpbroadcastd ymm7, dword ptr [rcx+1CH]1128        mov     r8, qword ptr [rdi]1129        mov     r9, qword ptr [rdi+8H]1130        mov     r10, qword ptr [rdi+10H]1131        mov     r11, qword ptr [rdi+18H]1132        mov     r12, qword ptr [rdi+20H]1133        mov     r13, qword ptr [rdi+28H]1134        mov     r14, qword ptr [rdi+30H]1135        mov     r15, qword ptr [rdi+38H]1136        movzx   eax, byte ptr [rbp+78H]1137        movzx   ebx, byte ptr [rbp+80H]1138        or      eax, ebx1139        xor     edx, edx1140innerloop8:1141        movzx   ebx, byte ptr [rbp+88H]1142        or      ebx, eax1143        add     rdx, 641144        cmp     rdx, qword ptr [rsp+80H]1145        cmove   eax, ebx1146        mov     dword ptr [rsp+88H], eax1147        vmovups xmm8, xmmword ptr [r8+rdx-40H]1148        vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-40H], 01H1149        vmovups xmm9, xmmword ptr [r9+rdx-40H]1150        vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-40H], 01H1151        vunpcklpd ymm12, ymm8, ymm91152        vunpckhpd ymm13, ymm8, ymm91153        vmovups xmm10, xmmword ptr [r10+rdx-40H]1154        vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-40H], 01H1155        vmovups xmm11, xmmword ptr [r11+rdx-40H]1156        vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-40H], 01H1157        vunpcklpd ymm14, ymm10, ymm111158        vunpckhpd ymm15, ymm10, ymm111159        vshufps ymm16, ymm12, ymm14, 1361160        vshufps ymm17, ymm12, ymm14, 2211161        vshufps ymm18, ymm13, ymm15, 1361162        vshufps ymm19, ymm13, ymm15, 2211163        vmovups xmm8, xmmword ptr [r8+rdx-30H]1164        vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-30H], 01H1165        vmovups xmm9, xmmword ptr [r9+rdx-30H]1166        vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-30H], 01H1167        vunpcklpd ymm12, ymm8, ymm91168        vunpckhpd ymm13, ymm8, ymm91169        vmovups xmm10, xmmword ptr [r10+rdx-30H]1170        vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-30H], 01H1171        vmovups xmm11, xmmword ptr [r11+rdx-30H]1172        vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-30H], 01H1173        vunpcklpd ymm14, ymm10, ymm111174        vunpckhpd ymm15, ymm10, ymm111175        vshufps ymm20, ymm12, ymm14, 1361176        vshufps ymm21, ymm12, ymm14, 2211177        vshufps ymm22, ymm13, ymm15, 1361178        vshufps ymm23, ymm13, ymm15, 2211179        vmovups xmm8, xmmword ptr [r8+rdx-20H]1180        vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-20H], 01H1181        vmovups xmm9, xmmword ptr [r9+rdx-20H]1182        vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-20H], 01H1183        vunpcklpd ymm12, ymm8, ymm91184        vunpckhpd ymm13, ymm8, ymm91185        vmovups xmm10, xmmword ptr [r10+rdx-20H]1186        vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-20H], 01H1187        vmovups xmm11, xmmword ptr [r11+rdx-20H]1188        vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-20H], 01H1189        vunpcklpd ymm14, ymm10, ymm111190        vunpckhpd ymm15, ymm10, ymm111191        vshufps ymm24, ymm12, ymm14, 1361192        vshufps ymm25, ymm12, ymm14, 2211193        vshufps ymm26, ymm13, ymm15, 1361194        vshufps ymm27, ymm13, ymm15, 2211195        vmovups xmm8, xmmword ptr [r8+rdx-10H]1196        vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-10H], 01H1197        vmovups xmm9, xmmword ptr [r9+rdx-10H]1198        vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-10H], 01H1199        vunpcklpd ymm12, ymm8, ymm91200        vunpckhpd ymm13, ymm8, ymm91201        vmovups xmm10, xmmword ptr [r10+rdx-10H]1202        vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-10H], 01H1203        vmovups xmm11, xmmword ptr [r11+rdx-10H]1204        vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-10H], 01H1205        vunpcklpd ymm14, ymm10, ymm111206        vunpckhpd ymm15, ymm10, ymm111207        vshufps ymm28, ymm12, ymm14, 1361208        vshufps ymm29, ymm12, ymm14, 2211209        vshufps ymm30, ymm13, ymm15, 1361210        vshufps ymm31, ymm13, ymm15, 2211211        vpbroadcastd ymm8, dword ptr [BLAKE3_IV_0]1212        vpbroadcastd ymm9, dword ptr [BLAKE3_IV_1]1213        vpbroadcastd ymm10, dword ptr [BLAKE3_IV_2]1214        vpbroadcastd ymm11, dword ptr [BLAKE3_IV_3]1215        vmovdqa ymm12, ymmword ptr [rsp]1216        vmovdqa ymm13, ymmword ptr [rsp+40H]1217        vpbroadcastd ymm14, dword ptr [BLAKE3_BLOCK_LEN]1218        vpbroadcastd ymm15, dword ptr [rsp+88H]1219        vpaddd  ymm0, ymm0, ymm161220        vpaddd  ymm1, ymm1, ymm181221        vpaddd  ymm2, ymm2, ymm201222        vpaddd  ymm3, ymm3, ymm221223        vpaddd  ymm0, ymm0, ymm41224        vpaddd  ymm1, ymm1, ymm51225        vpaddd  ymm2, ymm2, ymm61226        vpaddd  ymm3, ymm3, ymm71227        vpxord  ymm12, ymm12, ymm01228        vpxord  ymm13, ymm13, ymm11229        vpxord  ymm14, ymm14, ymm21230        vpxord  ymm15, ymm15, ymm31231        vprord  ymm12, ymm12, 161232        vprord  ymm13, ymm13, 161233        vprord  ymm14, ymm14, 161234        vprord  ymm15, ymm15, 161235        vpaddd  ymm8, ymm8, ymm121236        vpaddd  ymm9, ymm9, ymm131237        vpaddd  ymm10, ymm10, ymm141238        vpaddd  ymm11, ymm11, ymm151239        vpxord  ymm4, ymm4, ymm81240        vpxord  ymm5, ymm5, ymm91241        vpxord  ymm6, ymm6, ymm101242        vpxord  ymm7, ymm7, ymm111243        vprord  ymm4, ymm4, 121244        vprord  ymm5, ymm5, 121245        vprord  ymm6, ymm6, 121246        vprord  ymm7, ymm7, 121247        vpaddd  ymm0, ymm0, ymm171248        vpaddd  ymm1, ymm1, ymm191249        vpaddd  ymm2, ymm2, ymm211250        vpaddd  ymm3, ymm3, ymm231251        vpaddd  ymm0, ymm0, ymm41252        vpaddd  ymm1, ymm1, ymm51253        vpaddd  ymm2, ymm2, ymm61254        vpaddd  ymm3, ymm3, ymm71255        vpxord  ymm12, ymm12, ymm01256        vpxord  ymm13, ymm13, ymm11257        vpxord  ymm14, ymm14, ymm21258        vpxord  ymm15, ymm15, ymm31259        vprord  ymm12, ymm12, 81260        vprord  ymm13, ymm13, 81261        vprord  ymm14, ymm14, 81262        vprord  ymm15, ymm15, 81263        vpaddd  ymm8, ymm8, ymm121264        vpaddd  ymm9, ymm9, ymm131265        vpaddd  ymm10, ymm10, ymm141266        vpaddd  ymm11, ymm11, ymm151267        vpxord  ymm4, ymm4, ymm81268        vpxord  ymm5, ymm5, ymm91269        vpxord  ymm6, ymm6, ymm101270        vpxord  ymm7, ymm7, ymm111271        vprord  ymm4, ymm4, 71272        vprord  ymm5, ymm5, 71273        vprord  ymm6, ymm6, 71274        vprord  ymm7, ymm7, 71275        vpaddd  ymm0, ymm0, ymm241276        vpaddd  ymm1, ymm1, ymm261277        vpaddd  ymm2, ymm2, ymm281278        vpaddd  ymm3, ymm3, ymm301279        vpaddd  ymm0, ymm0, ymm51280        vpaddd  ymm1, ymm1, ymm61281        vpaddd  ymm2, ymm2, ymm71282        vpaddd  ymm3, ymm3, ymm41283        vpxord  ymm15, ymm15, ymm01284        vpxord  ymm12, ymm12, ymm11285        vpxord  ymm13, ymm13, ymm21286        vpxord  ymm14, ymm14, ymm31287        vprord  ymm15, ymm15, 161288        vprord  ymm12, ymm12, 161289        vprord  ymm13, ymm13, 161290        vprord  ymm14, ymm14, 161291        vpaddd  ymm10, ymm10, ymm151292        vpaddd  ymm11, ymm11, ymm121293        vpaddd  ymm8, ymm8, ymm131294        vpaddd  ymm9, ymm9, ymm141295        vpxord  ymm5, ymm5, ymm101296        vpxord  ymm6, ymm6, ymm111297        vpxord  ymm7, ymm7, ymm81298        vpxord  ymm4, ymm4, ymm91299        vprord  ymm5, ymm5, 121300        vprord  ymm6, ymm6, 121301        vprord  ymm7, ymm7, 121302        vprord  ymm4, ymm4, 121303        vpaddd  ymm0, ymm0, ymm251304        vpaddd  ymm1, ymm1, ymm271305        vpaddd  ymm2, ymm2, ymm291306        vpaddd  ymm3, ymm3, ymm311307        vpaddd  ymm0, ymm0, ymm51308        vpaddd  ymm1, ymm1, ymm61309        vpaddd  ymm2, ymm2, ymm71310        vpaddd  ymm3, ymm3, ymm41311        vpxord  ymm15, ymm15, ymm01312        vpxord  ymm12, ymm12, ymm11313        vpxord  ymm13, ymm13, ymm21314        vpxord  ymm14, ymm14, ymm31315        vprord  ymm15, ymm15, 81316        vprord  ymm12, ymm12, 81317        vprord  ymm13, ymm13, 81318        vprord  ymm14, ymm14, 81319        vpaddd  ymm10, ymm10, ymm151320        vpaddd  ymm11, ymm11, ymm121321        vpaddd  ymm8, ymm8, ymm131322        vpaddd  ymm9, ymm9, ymm141323        vpxord  ymm5, ymm5, ymm101324        vpxord  ymm6, ymm6, ymm111325        vpxord  ymm7, ymm7, ymm81326        vpxord  ymm4, ymm4, ymm91327        vprord  ymm5, ymm5, 71328        vprord  ymm6, ymm6, 71329        vprord  ymm7, ymm7, 71330        vprord  ymm4, ymm4, 71331        vpaddd  ymm0, ymm0, ymm181332        vpaddd  ymm1, ymm1, ymm191333        vpaddd  ymm2, ymm2, ymm231334        vpaddd  ymm3, ymm3, ymm201335        vpaddd  ymm0, ymm0, ymm41336        vpaddd  ymm1, ymm1, ymm51337        vpaddd  ymm2, ymm2, ymm61338        vpaddd  ymm3, ymm3, ymm71339        vpxord  ymm12, ymm12, ymm01340        vpxord  ymm13, ymm13, ymm11341        vpxord  ymm14, ymm14, ymm21342        vpxord  ymm15, ymm15, ymm31343        vprord  ymm12, ymm12, 161344        vprord  ymm13, ymm13, 161345        vprord  ymm14, ymm14, 161346        vprord  ymm15, ymm15, 161347        vpaddd  ymm8, ymm8, ymm121348        vpaddd  ymm9, ymm9, ymm131349        vpaddd  ymm10, ymm10, ymm141350        vpaddd  ymm11, ymm11, ymm151351        vpxord  ymm4, ymm4, ymm81352        vpxord  ymm5, ymm5, ymm91353        vpxord  ymm6, ymm6, ymm101354        vpxord  ymm7, ymm7, ymm111355        vprord  ymm4, ymm4, 121356        vprord  ymm5, ymm5, 121357        vprord  ymm6, ymm6, 121358        vprord  ymm7, ymm7, 121359        vpaddd  ymm0, ymm0, ymm221360        vpaddd  ymm1, ymm1, ymm261361        vpaddd  ymm2, ymm2, ymm161362        vpaddd  ymm3, ymm3, ymm291363        vpaddd  ymm0, ymm0, ymm41364        vpaddd  ymm1, ymm1, ymm51365        vpaddd  ymm2, ymm2, ymm61366        vpaddd  ymm3, ymm3, ymm71367        vpxord  ymm12, ymm12, ymm01368        vpxord  ymm13, ymm13, ymm11369        vpxord  ymm14, ymm14, ymm21370        vpxord  ymm15, ymm15, ymm31371        vprord  ymm12, ymm12, 81372        vprord  ymm13, ymm13, 81373        vprord  ymm14, ymm14, 81374        vprord  ymm15, ymm15, 81375        vpaddd  ymm8, ymm8, ymm121376        vpaddd  ymm9, ymm9, ymm131377        vpaddd  ymm10, ymm10, ymm141378        vpaddd  ymm11, ymm11, ymm151379        vpxord  ymm4, ymm4, ymm81380        vpxord  ymm5, ymm5, ymm91381        vpxord  ymm6, ymm6, ymm101382        vpxord  ymm7, ymm7, ymm111383        vprord  ymm4, ymm4, 71384        vprord  ymm5, ymm5, 71385        vprord  ymm6, ymm6, 71386        vprord  ymm7, ymm7, 71387        vpaddd  ymm0, ymm0, ymm171388        vpaddd  ymm1, ymm1, ymm281389        vpaddd  ymm2, ymm2, ymm251390        vpaddd  ymm3, ymm3, ymm311391        vpaddd  ymm0, ymm0, ymm51392        vpaddd  ymm1, ymm1, ymm61393        vpaddd  ymm2, ymm2, ymm71394        vpaddd  ymm3, ymm3, ymm41395        vpxord  ymm15, ymm15, ymm01396        vpxord  ymm12, ymm12, ymm11397        vpxord  ymm13, ymm13, ymm21398        vpxord  ymm14, ymm14, ymm31399        vprord  ymm15, ymm15, 161400        vprord  ymm12, ymm12, 161401        vprord  ymm13, ymm13, 161402        vprord  ymm14, ymm14, 161403        vpaddd  ymm10, ymm10, ymm151404        vpaddd  ymm11, ymm11, ymm121405        vpaddd  ymm8, ymm8, ymm131406        vpaddd  ymm9, ymm9, ymm141407        vpxord  ymm5, ymm5, ymm101408        vpxord  ymm6, ymm6, ymm111409        vpxord  ymm7, ymm7, ymm81410        vpxord  ymm4, ymm4, ymm91411        vprord  ymm5, ymm5, 121412        vprord  ymm6, ymm6, 121413        vprord  ymm7, ymm7, 121414        vprord  ymm4, ymm4, 121415        vpaddd  ymm0, ymm0, ymm271416        vpaddd  ymm1, ymm1, ymm211417        vpaddd  ymm2, ymm2, ymm301418        vpaddd  ymm3, ymm3, ymm241419        vpaddd  ymm0, ymm0, ymm51420        vpaddd  ymm1, ymm1, ymm61421        vpaddd  ymm2, ymm2, ymm71422        vpaddd  ymm3, ymm3, ymm41423        vpxord  ymm15, ymm15, ymm01424        vpxord  ymm12, ymm12, ymm11425        vpxord  ymm13, ymm13, ymm21426        vpxord  ymm14, ymm14, ymm31427        vprord  ymm15, ymm15, 81428        vprord  ymm12, ymm12, 81429        vprord  ymm13, ymm13, 81430        vprord  ymm14, ymm14, 81431        vpaddd  ymm10, ymm10, ymm151432        vpaddd  ymm11, ymm11, ymm121433        vpaddd  ymm8, ymm8, ymm131434        vpaddd  ymm9, ymm9, ymm141435        vpxord  ymm5, ymm5, ymm101436        vpxord  ymm6, ymm6, ymm111437        vpxord  ymm7, ymm7, ymm81438        vpxord  ymm4, ymm4, ymm91439        vprord  ymm5, ymm5, 71440        vprord  ymm6, ymm6, 71441        vprord  ymm7, ymm7, 71442        vprord  ymm4, ymm4, 71443        vpaddd  ymm0, ymm0, ymm191444        vpaddd  ymm1, ymm1, ymm261445        vpaddd  ymm2, ymm2, ymm291446        vpaddd  ymm3, ymm3, ymm231447        vpaddd  ymm0, ymm0, ymm41448        vpaddd  ymm1, ymm1, ymm51449        vpaddd  ymm2, ymm2, ymm61450        vpaddd  ymm3, ymm3, ymm71451        vpxord  ymm12, ymm12, ymm01452        vpxord  ymm13, ymm13, ymm11453        vpxord  ymm14, ymm14, ymm21454        vpxord  ymm15, ymm15, ymm31455        vprord  ymm12, ymm12, 161456        vprord  ymm13, ymm13, 161457        vprord  ymm14, ymm14, 161458        vprord  ymm15, ymm15, 161459        vpaddd  ymm8, ymm8, ymm121460        vpaddd  ymm9, ymm9, ymm131461        vpaddd  ymm10, ymm10, ymm141462        vpaddd  ymm11, ymm11, ymm151463        vpxord  ymm4, ymm4, ymm81464        vpxord  ymm5, ymm5, ymm91465        vpxord  ymm6, ymm6, ymm101466        vpxord  ymm7, ymm7, ymm111467        vprord  ymm4, ymm4, 121468        vprord  ymm5, ymm5, 121469        vprord  ymm6, ymm6, 121470        vprord  ymm7, ymm7, 121471        vpaddd  ymm0, ymm0, ymm201472        vpaddd  ymm1, ymm1, ymm281473        vpaddd  ymm2, ymm2, ymm181474        vpaddd  ymm3, ymm3, ymm301475        vpaddd  ymm0, ymm0, ymm41476        vpaddd  ymm1, ymm1, ymm51477        vpaddd  ymm2, ymm2, ymm61478        vpaddd  ymm3, ymm3, ymm71479        vpxord  ymm12, ymm12, ymm01480        vpxord  ymm13, ymm13, ymm11481        vpxord  ymm14, ymm14, ymm21482        vpxord  ymm15, ymm15, ymm31483        vprord  ymm12, ymm12, 81484        vprord  ymm13, ymm13, 81485        vprord  ymm14, ymm14, 81486        vprord  ymm15, ymm15, 81487        vpaddd  ymm8, ymm8, ymm121488        vpaddd  ymm9, ymm9, ymm131489        vpaddd  ymm10, ymm10, ymm141490        vpaddd  ymm11, ymm11, ymm151491        vpxord  ymm4, ymm4, ymm81492        vpxord  ymm5, ymm5, ymm91493        vpxord  ymm6, ymm6, ymm101494        vpxord  ymm7, ymm7, ymm111495        vprord  ymm4, ymm4, 71496        vprord  ymm5, ymm5, 71497        vprord  ymm6, ymm6, 71498        vprord  ymm7, ymm7, 71499        vpaddd  ymm0, ymm0, ymm221500        vpaddd  ymm1, ymm1, ymm251501        vpaddd  ymm2, ymm2, ymm271502        vpaddd  ymm3, ymm3, ymm241503        vpaddd  ymm0, ymm0, ymm51504        vpaddd  ymm1, ymm1, ymm61505        vpaddd  ymm2, ymm2, ymm71506        vpaddd  ymm3, ymm3, ymm41507        vpxord  ymm15, ymm15, ymm01508        vpxord  ymm12, ymm12, ymm11509        vpxord  ymm13, ymm13, ymm21510        vpxord  ymm14, ymm14, ymm31511        vprord  ymm15, ymm15, 161512        vprord  ymm12, ymm12, 161513        vprord  ymm13, ymm13, 161514        vprord  ymm14, ymm14, 161515        vpaddd  ymm10, ymm10, ymm151516        vpaddd  ymm11, ymm11, ymm121517        vpaddd  ymm8, ymm8, ymm131518        vpaddd  ymm9, ymm9, ymm141519        vpxord  ymm5, ymm5, ymm101520        vpxord  ymm6, ymm6, ymm111521        vpxord  ymm7, ymm7, ymm81522        vpxord  ymm4, ymm4, ymm91523        vprord  ymm5, ymm5, 121524        vprord  ymm6, ymm6, 121525        vprord  ymm7, ymm7, 121526        vprord  ymm4, ymm4, 121527        vpaddd  ymm0, ymm0, ymm211528        vpaddd  ymm1, ymm1, ymm161529        vpaddd  ymm2, ymm2, ymm311530        vpaddd  ymm3, ymm3, ymm171531        vpaddd  ymm0, ymm0, ymm51532        vpaddd  ymm1, ymm1, ymm61533        vpaddd  ymm2, ymm2, ymm71534        vpaddd  ymm3, ymm3, ymm41535        vpxord  ymm15, ymm15, ymm01536        vpxord  ymm12, ymm12, ymm11537        vpxord  ymm13, ymm13, ymm21538        vpxord  ymm14, ymm14, ymm31539        vprord  ymm15, ymm15, 81540        vprord  ymm12, ymm12, 81541        vprord  ymm13, ymm13, 81542        vprord  ymm14, ymm14, 81543        vpaddd  ymm10, ymm10, ymm151544        vpaddd  ymm11, ymm11, ymm121545        vpaddd  ymm8, ymm8, ymm131546        vpaddd  ymm9, ymm9, ymm141547        vpxord  ymm5, ymm5, ymm101548        vpxord  ymm6, ymm6, ymm111549        vpxord  ymm7, ymm7, ymm81550        vpxord  ymm4, ymm4, ymm91551        vprord  ymm5, ymm5, 71552        vprord  ymm6, ymm6, 71553        vprord  ymm7, ymm7, 71554        vprord  ymm4, ymm4, 71555        vpaddd  ymm0, ymm0, ymm261556        vpaddd  ymm1, ymm1, ymm281557        vpaddd  ymm2, ymm2, ymm301558        vpaddd  ymm3, ymm3, ymm291559        vpaddd  ymm0, ymm0, ymm41560        vpaddd  ymm1, ymm1, ymm51561        vpaddd  ymm2, ymm2, ymm61562        vpaddd  ymm3, ymm3, ymm71563        vpxord  ymm12, ymm12, ymm01564        vpxord  ymm13, ymm13, ymm11565        vpxord  ymm14, ymm14, ymm21566        vpxord  ymm15, ymm15, ymm31567        vprord  ymm12, ymm12, 161568        vprord  ymm13, ymm13, 161569        vprord  ymm14, ymm14, 161570        vprord  ymm15, ymm15, 161571        vpaddd  ymm8, ymm8, ymm121572        vpaddd  ymm9, ymm9, ymm131573        vpaddd  ymm10, ymm10, ymm141574        vpaddd  ymm11, ymm11, ymm151575        vpxord  ymm4, ymm4, ymm81576        vpxord  ymm5, ymm5, ymm91577        vpxord  ymm6, ymm6, ymm101578        vpxord  ymm7, ymm7, ymm111579        vprord  ymm4, ymm4, 121580        vprord  ymm5, ymm5, 121581        vprord  ymm6, ymm6, 121582        vprord  ymm7, ymm7, 121583        vpaddd  ymm0, ymm0, ymm231584        vpaddd  ymm1, ymm1, ymm251585        vpaddd  ymm2, ymm2, ymm191586        vpaddd  ymm3, ymm3, ymm311587        vpaddd  ymm0, ymm0, ymm41588        vpaddd  ymm1, ymm1, ymm51589        vpaddd  ymm2, ymm2, ymm61590        vpaddd  ymm3, ymm3, ymm71591        vpxord  ymm12, ymm12, ymm01592        vpxord  ymm13, ymm13, ymm11593        vpxord  ymm14, ymm14, ymm21594        vpxord  ymm15, ymm15, ymm31595        vprord  ymm12, ymm12, 81596        vprord  ymm13, ymm13, 81597        vprord  ymm14, ymm14, 81598        vprord  ymm15, ymm15, 81599        vpaddd  ymm8, ymm8, ymm121600        vpaddd  ymm9, ymm9, ymm131601        vpaddd  ymm10, ymm10, ymm141602        vpaddd  ymm11, ymm11, ymm151603        vpxord  ymm4, ymm4, ymm81604        vpxord  ymm5, ymm5, ymm91605        vpxord  ymm6, ymm6, ymm101606        vpxord  ymm7, ymm7, ymm111607        vprord  ymm4, ymm4, 71608        vprord  ymm5, ymm5, 71609        vprord  ymm6, ymm6, 71610        vprord  ymm7, ymm7, 71611        vpaddd  ymm0, ymm0, ymm201612        vpaddd  ymm1, ymm1, ymm271613        vpaddd  ymm2, ymm2, ymm211614        vpaddd  ymm3, ymm3, ymm171615        vpaddd  ymm0, ymm0, ymm51616        vpaddd  ymm1, ymm1, ymm61617        vpaddd  ymm2, ymm2, ymm71618        vpaddd  ymm3, ymm3, ymm41619        vpxord  ymm15, ymm15, ymm01620        vpxord  ymm12, ymm12, ymm11621        vpxord  ymm13, ymm13, ymm21622        vpxord  ymm14, ymm14, ymm31623        vprord  ymm15, ymm15, 161624        vprord  ymm12, ymm12, 161625        vprord  ymm13, ymm13, 161626        vprord  ymm14, ymm14, 161627        vpaddd  ymm10, ymm10, ymm151628        vpaddd  ymm11, ymm11, ymm121629        vpaddd  ymm8, ymm8, ymm131630        vpaddd  ymm9, ymm9, ymm141631        vpxord  ymm5, ymm5, ymm101632        vpxord  ymm6, ymm6, ymm111633        vpxord  ymm7, ymm7, ymm81634        vpxord  ymm4, ymm4, ymm91635        vprord  ymm5, ymm5, 121636        vprord  ymm6, ymm6, 121637        vprord  ymm7, ymm7, 121638        vprord  ymm4, ymm4, 121639        vpaddd  ymm0, ymm0, ymm161640        vpaddd  ymm1, ymm1, ymm181641        vpaddd  ymm2, ymm2, ymm241642        vpaddd  ymm3, ymm3, ymm221643        vpaddd  ymm0, ymm0, ymm51644        vpaddd  ymm1, ymm1, ymm61645        vpaddd  ymm2, ymm2, ymm71646        vpaddd  ymm3, ymm3, ymm41647        vpxord  ymm15, ymm15, ymm01648        vpxord  ymm12, ymm12, ymm11649        vpxord  ymm13, ymm13, ymm21650        vpxord  ymm14, ymm14, ymm31651        vprord  ymm15, ymm15, 81652        vprord  ymm12, ymm12, 81653        vprord  ymm13, ymm13, 81654        vprord  ymm14, ymm14, 81655        vpaddd  ymm10, ymm10, ymm151656        vpaddd  ymm11, ymm11, ymm121657        vpaddd  ymm8, ymm8, ymm131658        vpaddd  ymm9, ymm9, ymm141659        vpxord  ymm5, ymm5, ymm101660        vpxord  ymm6, ymm6, ymm111661        vpxord  ymm7, ymm7, ymm81662        vpxord  ymm4, ymm4, ymm91663        vprord  ymm5, ymm5, 71664        vprord  ymm6, ymm6, 71665        vprord  ymm7, ymm7, 71666        vprord  ymm4, ymm4, 71667        vpaddd  ymm0, ymm0, ymm281668        vpaddd  ymm1, ymm1, ymm251669        vpaddd  ymm2, ymm2, ymm311670        vpaddd  ymm3, ymm3, ymm301671        vpaddd  ymm0, ymm0, ymm41672        vpaddd  ymm1, ymm1, ymm51673        vpaddd  ymm2, ymm2, ymm61674        vpaddd  ymm3, ymm3, ymm71675        vpxord  ymm12, ymm12, ymm01676        vpxord  ymm13, ymm13, ymm11677        vpxord  ymm14, ymm14, ymm21678        vpxord  ymm15, ymm15, ymm31679        vprord  ymm12, ymm12, 161680        vprord  ymm13, ymm13, 161681        vprord  ymm14, ymm14, 161682        vprord  ymm15, ymm15, 161683        vpaddd  ymm8, ymm8, ymm121684        vpaddd  ymm9, ymm9, ymm131685        vpaddd  ymm10, ymm10, ymm141686        vpaddd  ymm11, ymm11, ymm151687        vpxord  ymm4, ymm4, ymm81688        vpxord  ymm5, ymm5, ymm91689        vpxord  ymm6, ymm6, ymm101690        vpxord  ymm7, ymm7, ymm111691        vprord  ymm4, ymm4, 121692        vprord  ymm5, ymm5, 121693        vprord  ymm6, ymm6, 121694        vprord  ymm7, ymm7, 121695        vpaddd  ymm0, ymm0, ymm291696        vpaddd  ymm1, ymm1, ymm271697        vpaddd  ymm2, ymm2, ymm261698        vpaddd  ymm3, ymm3, ymm241699        vpaddd  ymm0, ymm0, ymm41700        vpaddd  ymm1, ymm1, ymm51701        vpaddd  ymm2, ymm2, ymm61702        vpaddd  ymm3, ymm3, ymm71703        vpxord  ymm12, ymm12, ymm01704        vpxord  ymm13, ymm13, ymm11705        vpxord  ymm14, ymm14, ymm21706        vpxord  ymm15, ymm15, ymm31707        vprord  ymm12, ymm12, 81708        vprord  ymm13, ymm13, 81709        vprord  ymm14, ymm14, 81710        vprord  ymm15, ymm15, 81711        vpaddd  ymm8, ymm8, ymm121712        vpaddd  ymm9, ymm9, ymm131713        vpaddd  ymm10, ymm10, ymm141714        vpaddd  ymm11, ymm11, ymm151715        vpxord  ymm4, ymm4, ymm81716        vpxord  ymm5, ymm5, ymm91717        vpxord  ymm6, ymm6, ymm101718        vpxord  ymm7, ymm7, ymm111719        vprord  ymm4, ymm4, 71720        vprord  ymm5, ymm5, 71721        vprord  ymm6, ymm6, 71722        vprord  ymm7, ymm7, 71723        vpaddd  ymm0, ymm0, ymm231724        vpaddd  ymm1, ymm1, ymm211725        vpaddd  ymm2, ymm2, ymm161726        vpaddd  ymm3, ymm3, ymm221727        vpaddd  ymm0, ymm0, ymm51728        vpaddd  ymm1, ymm1, ymm61729        vpaddd  ymm2, ymm2, ymm71730        vpaddd  ymm3, ymm3, ymm41731        vpxord  ymm15, ymm15, ymm01732        vpxord  ymm12, ymm12, ymm11733        vpxord  ymm13, ymm13, ymm21734        vpxord  ymm14, ymm14, ymm31735        vprord  ymm15, ymm15, 161736        vprord  ymm12, ymm12, 161737        vprord  ymm13, ymm13, 161738        vprord  ymm14, ymm14, 161739        vpaddd  ymm10, ymm10, ymm151740        vpaddd  ymm11, ymm11, ymm121741        vpaddd  ymm8, ymm8, ymm131742        vpaddd  ymm9, ymm9, ymm141743        vpxord  ymm5, ymm5, ymm101744        vpxord  ymm6, ymm6, ymm111745        vpxord  ymm7, ymm7, ymm81746        vpxord  ymm4, ymm4, ymm91747        vprord  ymm5, ymm5, 121748        vprord  ymm6, ymm6, 121749        vprord  ymm7, ymm7, 121750        vprord  ymm4, ymm4, 121751        vpaddd  ymm0, ymm0, ymm181752        vpaddd  ymm1, ymm1, ymm191753        vpaddd  ymm2, ymm2, ymm171754        vpaddd  ymm3, ymm3, ymm201755        vpaddd  ymm0, ymm0, ymm51756        vpaddd  ymm1, ymm1, ymm61757        vpaddd  ymm2, ymm2, ymm71758        vpaddd  ymm3, ymm3, ymm41759        vpxord  ymm15, ymm15, ymm01760        vpxord  ymm12, ymm12, ymm11761        vpxord  ymm13, ymm13, ymm21762        vpxord  ymm14, ymm14, ymm31763        vprord  ymm15, ymm15, 81764        vprord  ymm12, ymm12, 81765        vprord  ymm13, ymm13, 81766        vprord  ymm14, ymm14, 81767        vpaddd  ymm10, ymm10, ymm151768        vpaddd  ymm11, ymm11, ymm121769        vpaddd  ymm8, ymm8, ymm131770        vpaddd  ymm9, ymm9, ymm141771        vpxord  ymm5, ymm5, ymm101772        vpxord  ymm6, ymm6, ymm111773        vpxord  ymm7, ymm7, ymm81774        vpxord  ymm4, ymm4, ymm91775        vprord  ymm5, ymm5, 71776        vprord  ymm6, ymm6, 71777        vprord  ymm7, ymm7, 71778        vprord  ymm4, ymm4, 71779        vpaddd  ymm0, ymm0, ymm251780        vpaddd  ymm1, ymm1, ymm271781        vpaddd  ymm2, ymm2, ymm241782        vpaddd  ymm3, ymm3, ymm311783        vpaddd  ymm0, ymm0, ymm41784        vpaddd  ymm1, ymm1, ymm51785        vpaddd  ymm2, ymm2, ymm61786        vpaddd  ymm3, ymm3, ymm71787        vpxord  ymm12, ymm12, ymm01788        vpxord  ymm13, ymm13, ymm11789        vpxord  ymm14, ymm14, ymm21790        vpxord  ymm15, ymm15, ymm31791        vprord  ymm12, ymm12, 161792        vprord  ymm13, ymm13, 161793        vprord  ymm14, ymm14, 161794        vprord  ymm15, ymm15, 161795        vpaddd  ymm8, ymm8, ymm121796        vpaddd  ymm9, ymm9, ymm131797        vpaddd  ymm10, ymm10, ymm141798        vpaddd  ymm11, ymm11, ymm151799        vpxord  ymm4, ymm4, ymm81800        vpxord  ymm5, ymm5, ymm91801        vpxord  ymm6, ymm6, ymm101802        vpxord  ymm7, ymm7, ymm111803        vprord  ymm4, ymm4, 121804        vprord  ymm5, ymm5, 121805        vprord  ymm6, ymm6, 121806        vprord  ymm7, ymm7, 121807        vpaddd  ymm0, ymm0, ymm301808        vpaddd  ymm1, ymm1, ymm211809        vpaddd  ymm2, ymm2, ymm281810        vpaddd  ymm3, ymm3, ymm171811        vpaddd  ymm0, ymm0, ymm41812        vpaddd  ymm1, ymm1, ymm51813        vpaddd  ymm2, ymm2, ymm61814        vpaddd  ymm3, ymm3, ymm71815        vpxord  ymm12, ymm12, ymm01816        vpxord  ymm13, ymm13, ymm11817        vpxord  ymm14, ymm14, ymm21818        vpxord  ymm15, ymm15, ymm31819        vprord  ymm12, ymm12, 81820        vprord  ymm13, ymm13, 81821        vprord  ymm14, ymm14, 81822        vprord  ymm15, ymm15, 81823        vpaddd  ymm8, ymm8, ymm121824        vpaddd  ymm9, ymm9, ymm131825        vpaddd  ymm10, ymm10, ymm141826        vpaddd  ymm11, ymm11, ymm151827        vpxord  ymm4, ymm4, ymm81828        vpxord  ymm5, ymm5, ymm91829        vpxord  ymm6, ymm6, ymm101830        vpxord  ymm7, ymm7, ymm111831        vprord  ymm4, ymm4, 71832        vprord  ymm5, ymm5, 71833        vprord  ymm6, ymm6, 71834        vprord  ymm7, ymm7, 71835        vpaddd  ymm0, ymm0, ymm291836        vpaddd  ymm1, ymm1, ymm161837        vpaddd  ymm2, ymm2, ymm181838        vpaddd  ymm3, ymm3, ymm201839        vpaddd  ymm0, ymm0, ymm51840        vpaddd  ymm1, ymm1, ymm61841        vpaddd  ymm2, ymm2, ymm71842        vpaddd  ymm3, ymm3, ymm41843        vpxord  ymm15, ymm15, ymm01844        vpxord  ymm12, ymm12, ymm11845        vpxord  ymm13, ymm13, ymm21846        vpxord  ymm14, ymm14, ymm31847        vprord  ymm15, ymm15, 161848        vprord  ymm12, ymm12, 161849        vprord  ymm13, ymm13, 161850        vprord  ymm14, ymm14, 161851        vpaddd  ymm10, ymm10, ymm151852        vpaddd  ymm11, ymm11, ymm121853        vpaddd  ymm8, ymm8, ymm131854        vpaddd  ymm9, ymm9, ymm141855        vpxord  ymm5, ymm5, ymm101856        vpxord  ymm6, ymm6, ymm111857        vpxord  ymm7, ymm7, ymm81858        vpxord  ymm4, ymm4, ymm91859        vprord  ymm5, ymm5, 121860        vprord  ymm6, ymm6, 121861        vprord  ymm7, ymm7, 121862        vprord  ymm4, ymm4, 121863        vpaddd  ymm0, ymm0, ymm191864        vpaddd  ymm1, ymm1, ymm261865        vpaddd  ymm2, ymm2, ymm221866        vpaddd  ymm3, ymm3, ymm231867        vpaddd  ymm0, ymm0, ymm51868        vpaddd  ymm1, ymm1, ymm61869        vpaddd  ymm2, ymm2, ymm71870        vpaddd  ymm3, ymm3, ymm41871        vpxord  ymm15, ymm15, ymm01872        vpxord  ymm12, ymm12, ymm11873        vpxord  ymm13, ymm13, ymm21874        vpxord  ymm14, ymm14, ymm31875        vprord  ymm15, ymm15, 81876        vprord  ymm12, ymm12, 81877        vprord  ymm13, ymm13, 81878        vprord  ymm14, ymm14, 81879        vpaddd  ymm10, ymm10, ymm151880        vpaddd  ymm11, ymm11, ymm121881        vpaddd  ymm8, ymm8, ymm131882        vpaddd  ymm9, ymm9, ymm141883        vpxord  ymm5, ymm5, ymm101884        vpxord  ymm6, ymm6, ymm111885        vpxord  ymm7, ymm7, ymm81886        vpxord  ymm4, ymm4, ymm91887        vprord  ymm5, ymm5, 71888        vprord  ymm6, ymm6, 71889        vprord  ymm7, ymm7, 71890        vprord  ymm4, ymm4, 71891        vpaddd  ymm0, ymm0, ymm271892        vpaddd  ymm1, ymm1, ymm211893        vpaddd  ymm2, ymm2, ymm171894        vpaddd  ymm3, ymm3, ymm241895        vpaddd  ymm0, ymm0, ymm41896        vpaddd  ymm1, ymm1, ymm51897        vpaddd  ymm2, ymm2, ymm61898        vpaddd  ymm3, ymm3, ymm71899        vpxord  ymm12, ymm12, ymm01900        vpxord  ymm13, ymm13, ymm11901        vpxord  ymm14, ymm14, ymm21902        vpxord  ymm15, ymm15, ymm31903        vprord  ymm12, ymm12, 161904        vprord  ymm13, ymm13, 161905        vprord  ymm14, ymm14, 161906        vprord  ymm15, ymm15, 161907        vpaddd  ymm8, ymm8, ymm121908        vpaddd  ymm9, ymm9, ymm131909        vpaddd  ymm10, ymm10, ymm141910        vpaddd  ymm11, ymm11, ymm151911        vpxord  ymm4, ymm4, ymm81912        vpxord  ymm5, ymm5, ymm91913        vpxord  ymm6, ymm6, ymm101914        vpxord  ymm7, ymm7, ymm111915        vprord  ymm4, ymm4, 121916        vprord  ymm5, ymm5, 121917        vprord  ymm6, ymm6, 121918        vprord  ymm7, ymm7, 121919        vpaddd  ymm0, ymm0, ymm311920        vpaddd  ymm1, ymm1, ymm161921        vpaddd  ymm2, ymm2, ymm251922        vpaddd  ymm3, ymm3, ymm221923        vpaddd  ymm0, ymm0, ymm41924        vpaddd  ymm1, ymm1, ymm51925        vpaddd  ymm2, ymm2, ymm61926        vpaddd  ymm3, ymm3, ymm71927        vpxord  ymm12, ymm12, ymm01928        vpxord  ymm13, ymm13, ymm11929        vpxord  ymm14, ymm14, ymm21930        vpxord  ymm15, ymm15, ymm31931        vprord  ymm12, ymm12, 81932        vprord  ymm13, ymm13, 81933        vprord  ymm14, ymm14, 81934        vprord  ymm15, ymm15, 81935        vpaddd  ymm8, ymm8, ymm121936        vpaddd  ymm9, ymm9, ymm131937        vpaddd  ymm10, ymm10, ymm141938        vpaddd  ymm11, ymm11, ymm151939        vpxord  ymm4, ymm4, ymm81940        vpxord  ymm5, ymm5, ymm91941        vpxord  ymm6, ymm6, ymm101942        vpxord  ymm7, ymm7, ymm111943        vprord  ymm4, ymm4, 71944        vprord  ymm5, ymm5, 71945        vprord  ymm6, ymm6, 71946        vprord  ymm7, ymm7, 71947        vpaddd  ymm0, ymm0, ymm301948        vpaddd  ymm1, ymm1, ymm181949        vpaddd  ymm2, ymm2, ymm191950        vpaddd  ymm3, ymm3, ymm231951        vpaddd  ymm0, ymm0, ymm51952        vpaddd  ymm1, ymm1, ymm61953        vpaddd  ymm2, ymm2, ymm71954        vpaddd  ymm3, ymm3, ymm41955        vpxord  ymm15, ymm15, ymm01956        vpxord  ymm12, ymm12, ymm11957        vpxord  ymm13, ymm13, ymm21958        vpxord  ymm14, ymm14, ymm31959        vprord  ymm15, ymm15, 161960        vprord  ymm12, ymm12, 161961        vprord  ymm13, ymm13, 161962        vprord  ymm14, ymm14, 161963        vpaddd  ymm10, ymm10, ymm151964        vpaddd  ymm11, ymm11, ymm121965        vpaddd  ymm8, ymm8, ymm131966        vpaddd  ymm9, ymm9, ymm141967        vpxord  ymm5, ymm5, ymm101968        vpxord  ymm6, ymm6, ymm111969        vpxord  ymm7, ymm7, ymm81970        vpxord  ymm4, ymm4, ymm91971        vprord  ymm5, ymm5, 121972        vprord  ymm6, ymm6, 121973        vprord  ymm7, ymm7, 121974        vprord  ymm4, ymm4, 121975        vpaddd  ymm0, ymm0, ymm261976        vpaddd  ymm1, ymm1, ymm281977        vpaddd  ymm2, ymm2, ymm201978        vpaddd  ymm3, ymm3, ymm291979        vpaddd  ymm0, ymm0, ymm51980        vpaddd  ymm1, ymm1, ymm61981        vpaddd  ymm2, ymm2, ymm71982        vpaddd  ymm3, ymm3, ymm41983        vpxord  ymm15, ymm15, ymm01984        vpxord  ymm12, ymm12, ymm11985        vpxord  ymm13, ymm13, ymm21986        vpxord  ymm14, ymm14, ymm31987        vprord  ymm15, ymm15, 81988        vprord  ymm12, ymm12, 81989        vprord  ymm13, ymm13, 81990        vprord  ymm14, ymm14, 81991        vpaddd  ymm10, ymm10, ymm151992        vpaddd  ymm11, ymm11, ymm121993        vpaddd  ymm8, ymm8, ymm131994        vpaddd  ymm9, ymm9, ymm141995        vpxord  ymm5, ymm5, ymm101996        vpxord  ymm6, ymm6, ymm111997        vpxord  ymm7, ymm7, ymm81998        vpxord  ymm4, ymm4, ymm91999        vprord  ymm5, ymm5, 72000        vprord  ymm6, ymm6, 72001        vprord  ymm7, ymm7, 72002        vprord  ymm4, ymm4, 72003        vpxor   ymm0, ymm0, ymm82004        vpxor   ymm1, ymm1, ymm92005        vpxor   ymm2, ymm2, ymm102006        vpxor   ymm3, ymm3, ymm112007        vpxor   ymm4, ymm4, ymm122008        vpxor   ymm5, ymm5, ymm132009        vpxor   ymm6, ymm6, ymm142010        vpxor   ymm7, ymm7, ymm152011        movzx   eax, byte ptr [rbp+78H]2012        jne     innerloop82013        mov     rbx, qword ptr [rbp+90H]2014        vunpcklps ymm8, ymm0, ymm12015        vunpcklps ymm9, ymm2, ymm32016        vunpckhps ymm10, ymm0, ymm12017        vunpcklps ymm11, ymm4, ymm52018        vunpcklps ymm0, ymm6, ymm72019        vshufps ymm12, ymm8, ymm9, 782020        vblendps ymm1, ymm8, ymm12, 0CCH2021        vshufps ymm8, ymm11, ymm0, 782022        vunpckhps ymm13, ymm2, ymm32023        vblendps ymm2, ymm11, ymm8, 0CCH2024        vblendps ymm3, ymm12, ymm9, 0CCH2025        vperm2f128 ymm12, ymm1, ymm2, 20H2026        vmovups ymmword ptr [rbx], ymm122027        vunpckhps ymm14, ymm4, ymm52028        vblendps ymm4, ymm8, ymm0, 0CCH2029        vunpckhps ymm15, ymm6, ymm72030        vperm2f128 ymm7, ymm3, ymm4, 20H2031        vmovups ymmword ptr [rbx+20H], ymm72032        vshufps ymm5, ymm10, ymm13, 782033        vblendps ymm6, ymm5, ymm13, 0CCH2034        vshufps ymm13, ymm14, ymm15, 782035        vblendps ymm10, ymm10, ymm5, 0CCH2036        vblendps ymm14, ymm14, ymm13, 0CCH2037        vperm2f128 ymm8, ymm10, ymm14, 20H2038        vmovups ymmword ptr [rbx+40H], ymm82039        vblendps ymm15, ymm13, ymm15, 0CCH2040        vperm2f128 ymm13, ymm6, ymm15, 20H2041        vmovups ymmword ptr [rbx+60H], ymm132042        vperm2f128 ymm9, ymm1, ymm2, 31H2043        vperm2f128 ymm11, ymm3, ymm4, 31H2044        vmovups ymmword ptr [rbx+80H], ymm92045        vperm2f128 ymm14, ymm10, ymm14, 31H2046        vperm2f128 ymm15, ymm6, ymm15, 31H2047        vmovups ymmword ptr [rbx+0A0H], ymm112048        vmovups ymmword ptr [rbx+0C0H], ymm142049        vmovups ymmword ptr [rbx+0E0H], ymm152050        vmovdqa ymm0, ymmword ptr [rsp]2051        vmovdqa ymm2, ymmword ptr [rsp+40H]2052        vmovdqa32 ymm0 {k1}, ymmword ptr [rsp+1H*20H]2053        vmovdqa32 ymm2 {k1}, ymmword ptr [rsp+3H*20H]2054        vmovdqa ymmword ptr [rsp], ymm02055        vmovdqa ymmword ptr [rsp+40H], ymm22056        add     rbx, 2562057        mov     qword ptr [rbp+90H], rbx2058        add     rdi, 642059        sub     rsi, 82060final7blocks:2061        mov     rbx, qword ptr [rbp+90H]2062        mov     r15, qword ptr [rsp+80H]2063        movzx   r13, byte ptr [rbp+78H]2064        movzx   r12, byte ptr [rbp+88H]2065        test    esi, 4H2066        je      final3blocks2067        vbroadcasti32x4 zmm0, xmmword ptr [rcx]2068        vbroadcasti32x4 zmm1, xmmword ptr [rcx+1H*10H]2069        vmovdqa xmm12, xmmword ptr [rsp]2070        vmovdqa xmm13, xmmword ptr [rsp+40H]2071        vpunpckldq xmm14, xmm12, xmm132072        vpunpckhdq xmm15, xmm12, xmm132073        vpermq  ymm14, ymm14, 0DCH2074        vpermq  ymm15, ymm15, 0DCH2075        vpbroadcastd zmm12, dword ptr [BLAKE3_BLOCK_LEN]2076        vinserti64x4 zmm13, zmm14, ymm15, 01H2077        mov     eax, 174762078        kmovw   k2, eax2079        vpblendmd zmm13 {k2}, zmm13, zmm122080        vbroadcasti32x4 zmm15, xmmword ptr [BLAKE3_IV]2081        mov     r8, qword ptr [rdi]2082        mov     r9, qword ptr [rdi+8H]2083        mov     r10, qword ptr [rdi+10H]2084        mov     r11, qword ptr [rdi+18H]2085        mov     eax, 436902086        kmovw   k3, eax2087        mov     eax, 349522088        kmovw   k4, eax2089        movzx   eax, byte ptr [rbp+80H]2090        or      eax, r13d2091        xor     edx, edx2092ALIGN   162093innerloop4:2094        mov     r14d, eax2095        or      eax, r12d2096        add     rdx, 642097        cmp     rdx, r152098        cmovne  eax, r14d2099        mov     dword ptr [rsp+88H], eax2100        vmovdqa32 zmm2, zmm152101        vpbroadcastd zmm8, dword ptr [rsp+22H*4H]2102        vpblendmd zmm3 {k4}, zmm13, zmm82103        vmovups zmm8, zmmword ptr [r8+rdx-1H*40H]2104        vinserti32x4 zmm8, zmm8, xmmword ptr [r9+rdx-4H*10H], 01H2105        vinserti32x4 zmm8, zmm8, xmmword ptr [r10+rdx-4H*10H], 02H2106        vinserti32x4 zmm8, zmm8, xmmword ptr [r11+rdx-4H*10H], 03H2107        vmovups zmm9, zmmword ptr [r8+rdx-30H]2108        vinserti32x4 zmm9, zmm9, xmmword ptr [r9+rdx-3H*10H], 01H2109        vinserti32x4 zmm9, zmm9, xmmword ptr [r10+rdx-3H*10H], 02H2110        vinserti32x4 zmm9, zmm9, xmmword ptr [r11+rdx-3H*10H], 03H2111        vshufps zmm4, zmm8, zmm9, 1362112        vshufps zmm5, zmm8, zmm9, 2212113        vmovups zmm8, zmmword ptr [r8+rdx-20H]2114        vinserti32x4 zmm8, zmm8, xmmword ptr [r9+rdx-2H*10H], 01H2115        vinserti32x4 zmm8, zmm8, xmmword ptr [r10+rdx-2H*10H], 02H2116        vinserti32x4 zmm8, zmm8, xmmword ptr [r11+rdx-2H*10H], 03H2117        vmovups zmm9, zmmword ptr [r8+rdx-10H]2118        vinserti32x4 zmm9, zmm9, xmmword ptr [r9+rdx-1H*10H], 01H2119        vinserti32x4 zmm9, zmm9, xmmword ptr [r10+rdx-1H*10H], 02H2120        vinserti32x4 zmm9, zmm9, xmmword ptr [r11+rdx-1H*10H], 03H2121        vshufps zmm6, zmm8, zmm9, 1362122        vshufps zmm7, zmm8, zmm9, 2212123        vpshufd zmm6, zmm6, 93H2124        vpshufd zmm7, zmm7, 93H2125        mov     al, 72126roundloop4:2127        vpaddd  zmm0, zmm0, zmm42128        vpaddd  zmm0, zmm0, zmm12129        vpxord  zmm3, zmm3, zmm02130        vprord  zmm3, zmm3, 162131        vpaddd  zmm2, zmm2, zmm32132        vpxord  zmm1, zmm1, zmm22133        vprord  zmm1, zmm1, 122134        vpaddd  zmm0, zmm0, zmm52135        vpaddd  zmm0, zmm0, zmm12136        vpxord  zmm3, zmm3, zmm02137        vprord  zmm3, zmm3, 82138        vpaddd  zmm2, zmm2, zmm32139        vpxord  zmm1, zmm1, zmm22140        vprord  zmm1, zmm1, 72141        vpshufd zmm0, zmm0, 93H2142        vpshufd zmm3, zmm3, 4EH2143        vpshufd zmm2, zmm2, 39H2144        vpaddd  zmm0, zmm0, zmm62145        vpaddd  zmm0, zmm0, zmm12146        vpxord  zmm3, zmm3, zmm02147        vprord  zmm3, zmm3, 162148        vpaddd  zmm2, zmm2, zmm32149        vpxord  zmm1, zmm1, zmm22150        vprord  zmm1, zmm1, 122151        vpaddd  zmm0, zmm0, zmm72152        vpaddd  zmm0, zmm0, zmm12153        vpxord  zmm3, zmm3, zmm02154        vprord  zmm3, zmm3, 82155        vpaddd  zmm2, zmm2, zmm32156        vpxord  zmm1, zmm1, zmm22157        vprord  zmm1, zmm1, 72158        vpshufd zmm0, zmm0, 39H2159        vpshufd zmm3, zmm3, 4EH2160        vpshufd zmm2, zmm2, 93H2161        dec     al2162        jz      endroundloop42163        vshufps zmm8, zmm4, zmm5, 2142164        vpshufd zmm9, zmm4, 0FH2165        vpshufd zmm4, zmm8, 39H2166        vshufps zmm8, zmm6, zmm7, 2502167        vpblendmd zmm9 {k3}, zmm9, zmm82168        vpunpcklqdq zmm8, zmm7, zmm52169        vpblendmd zmm8 {k4}, zmm8, zmm62170        vpshufd zmm8, zmm8, 78H2171        vpunpckhdq zmm5, zmm5, zmm72172        vpunpckldq zmm6, zmm6, zmm52173        vpshufd zmm7, zmm6, 1EH2174        vmovdqa32 zmm5, zmm92175        vmovdqa32 zmm6, zmm82176        jmp     roundloop42177endroundloop4:2178        vpxord  zmm0, zmm0, zmm22179        vpxord  zmm1, zmm1, zmm32180        mov     eax, r13d2181        cmp     rdx, r152182        jne     innerloop42183        vmovdqu xmmword ptr [rbx], xmm02184        vmovdqu xmmword ptr [rbx+10H], xmm12185        vextracti128 xmmword ptr [rbx+20H], ymm0, 01H2186        vextracti128 xmmword ptr [rbx+30H], ymm1, 01H2187        vextracti32x4 xmmword ptr [rbx+4H*10H], zmm0, 02H2188        vextracti32x4 xmmword ptr [rbx+5H*10H], zmm1, 02H2189        vextracti32x4 xmmword ptr [rbx+6H*10H], zmm0, 03H2190        vextracti32x4 xmmword ptr [rbx+7H*10H], zmm1, 03H2191        vmovdqa xmm0, xmmword ptr [rsp]2192        vmovdqa xmm2, xmmword ptr [rsp+40H]2193        vmovdqa32 xmm0 {k1}, xmmword ptr [rsp+1H*10H]2194        vmovdqa32 xmm2 {k1}, xmmword ptr [rsp+5H*10H]2195        vmovdqa xmmword ptr [rsp], xmm02196        vmovdqa xmmword ptr [rsp+40H], xmm22197        add     rbx, 1282198        add     rdi, 322199        sub     rsi, 42200final3blocks:2201        test    esi, 2H2202        je      final1block2203        vbroadcasti128 ymm0, xmmword ptr [rcx]2204        vbroadcasti128 ymm1, xmmword ptr [rcx+10H]2205        vmovd   xmm13, dword ptr [rsp]2206        vpinsrd xmm13, xmm13, dword ptr [rsp+40H], 12207        vpinsrd xmm13, xmm13, dword ptr [BLAKE3_BLOCK_LEN], 22208        vmovd   xmm14, dword ptr [rsp+4H]2209        vpinsrd xmm14, xmm14, dword ptr [rsp+44H], 12210        vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN], 22211        vinserti128 ymm13, ymm13, xmm14, 01H2212        mov     r8, qword ptr [rdi]2213        mov     r9, qword ptr [rdi+8H]2214        movzx   eax, byte ptr [rbp+80H]2215        or      eax, r13d2216        xor     edx, edx2217ALIGN   162218innerloop2:2219        mov     r14d, eax2220        or      eax, r12d2221        add     rdx, 642222        cmp     rdx, r152223        cmovne  eax, r14d2224        mov     dword ptr [rsp+88H], eax2225        vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV]2226        vpbroadcastd ymm8, dword ptr [rsp+88H]2227        vpblendd ymm3, ymm13, ymm8, 88H2228        vmovups ymm8, ymmword ptr [r8+rdx-40H]2229        vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-40H], 01H2230        vmovups ymm9, ymmword ptr [r8+rdx-30H]2231        vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-30H], 01H2232        vshufps ymm4, ymm8, ymm9, 1362233        vshufps ymm5, ymm8, ymm9, 2212234        vmovups ymm8, ymmword ptr [r8+rdx-20H]2235        vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-20H], 01H2236        vmovups ymm9, ymmword ptr [r8+rdx-10H]2237        vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-10H], 01H2238        vshufps ymm6, ymm8, ymm9, 1362239        vshufps ymm7, ymm8, ymm9, 2212240        vpshufd ymm6, ymm6, 93H2241        vpshufd ymm7, ymm7, 93H2242        mov     al, 72243roundloop2:2244        vpaddd  ymm0, ymm0, ymm42245        vpaddd  ymm0, ymm0, ymm12246        vpxord  ymm3, ymm3, ymm02247        vprord  ymm3, ymm3, 162248        vpaddd  ymm2, ymm2, ymm32249        vpxord  ymm1, ymm1, ymm22250        vprord  ymm1, ymm1, 122251        vpaddd  ymm0, ymm0, ymm52252        vpaddd  ymm0, ymm0, ymm12253        vpxord  ymm3, ymm3, ymm02254        vprord  ymm3, ymm3, 82255        vpaddd  ymm2, ymm2, ymm32256        vpxord  ymm1, ymm1, ymm22257        vprord  ymm1, ymm1, 72258        vpshufd ymm0, ymm0, 93H2259        vpshufd ymm3, ymm3, 4EH2260        vpshufd ymm2, ymm2, 39H2261        vpaddd  ymm0, ymm0, ymm62262        vpaddd  ymm0, ymm0, ymm12263        vpxord  ymm3, ymm3, ymm02264        vprord  ymm3, ymm3, 162265        vpaddd  ymm2, ymm2, ymm32266        vpxord  ymm1, ymm1, ymm22267        vprord  ymm1, ymm1, 122268        vpaddd  ymm0, ymm0, ymm72269        vpaddd  ymm0, ymm0, ymm12270        vpxord  ymm3, ymm3, ymm02271        vprord  ymm3, ymm3, 82272        vpaddd  ymm2, ymm2, ymm32273        vpxord  ymm1, ymm1, ymm22274        vprord  ymm1, ymm1, 72275        vpshufd ymm0, ymm0, 39H2276        vpshufd ymm3, ymm3, 4EH2277        vpshufd ymm2, ymm2, 93H2278        dec     al2279        jz      endroundloop22280        vshufps ymm8, ymm4, ymm5, 2142281        vpshufd ymm9, ymm4, 0FH2282        vpshufd ymm4, ymm8, 39H2283        vshufps ymm8, ymm6, ymm7, 2502284        vpblendd ymm9, ymm9, ymm8, 0AAH2285        vpunpcklqdq ymm8, ymm7, ymm52286        vpblendd ymm8, ymm8, ymm6, 88H2287        vpshufd ymm8, ymm8, 78H2288        vpunpckhdq ymm5, ymm5, ymm72289        vpunpckldq ymm6, ymm6, ymm52290        vpshufd ymm7, ymm6, 1EH2291        vmovdqa ymm5, ymm92292        vmovdqa ymm6, ymm82293        jmp     roundloop22294endroundloop2:2295        vpxor   ymm0, ymm0, ymm22296        vpxor   ymm1, ymm1, ymm32297        mov     eax, r13d2298        cmp     rdx, r152299        jne     innerloop22300        vmovdqu xmmword ptr [rbx], xmm02301        vmovdqu xmmword ptr [rbx+10H], xmm12302        vextracti128 xmmword ptr [rbx+20H], ymm0, 01H2303        vextracti128 xmmword ptr [rbx+30H], ymm1, 01H2304        vmovdqa xmm0, xmmword ptr [rsp]2305        vmovdqa xmm2, xmmword ptr [rsp+40H]2306        vmovdqu32 xmm0 {k1}, xmmword ptr [rsp+8H]2307        vmovdqu32 xmm2 {k1}, xmmword ptr [rsp+48H]2308        vmovdqa xmmword ptr [rsp], xmm02309        vmovdqa xmmword ptr [rsp+40H], xmm22310        add     rbx, 642311        add     rdi, 162312        sub     rsi, 22313final1block:2314        test    esi, 1H2315        je      unwind2316        vmovdqu xmm0, xmmword ptr [rcx]2317        vmovdqu xmm1, xmmword ptr [rcx+10H]2318        vmovd   xmm14, dword ptr [rsp]2319        vpinsrd xmm14, xmm14, dword ptr [rsp+40H], 12320        vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN], 22321        vmovdqa xmm15, xmmword ptr [BLAKE3_IV]2322        mov     r8, qword ptr [rdi]2323        movzx   eax, byte ptr [rbp+80H]2324        or      eax, r13d2325        xor     edx, edx2326ALIGN   162327innerloop1:2328        mov     r14d, eax2329        or      eax, r12d2330        add     rdx, 642331        cmp     rdx, r152332        cmovne  eax, r14d2333        vpinsrd xmm3, xmm14, eax, 32334        vmovdqa xmm2, xmm152335        vmovups xmm8, xmmword ptr [r8+rdx-40H]2336        vmovups xmm9, xmmword ptr [r8+rdx-30H]2337        vshufps xmm4, xmm8, xmm9, 1362338        vshufps xmm5, xmm8, xmm9, 2212339        vmovups xmm8, xmmword ptr [r8+rdx-20H]2340        vmovups xmm9, xmmword ptr [r8+rdx-10H]2341        vshufps xmm6, xmm8, xmm9, 1362342        vshufps xmm7, xmm8, xmm9, 2212343        vpshufd xmm6, xmm6, 93H2344        vpshufd xmm7, xmm7, 93H2345        mov     al, 72346roundloop1:2347        vpaddd  xmm0, xmm0, xmm42348        vpaddd  xmm0, xmm0, xmm12349        vpxord  xmm3, xmm3, xmm02350        vprord  xmm3, xmm3, 162351        vpaddd  xmm2, xmm2, xmm32352        vpxord  xmm1, xmm1, xmm22353        vprord  xmm1, xmm1, 122354        vpaddd  xmm0, xmm0, xmm52355        vpaddd  xmm0, xmm0, xmm12356        vpxord  xmm3, xmm3, xmm02357        vprord  xmm3, xmm3, 82358        vpaddd  xmm2, xmm2, xmm32359        vpxord  xmm1, xmm1, xmm22360        vprord  xmm1, xmm1, 72361        vpshufd xmm0, xmm0, 93H2362        vpshufd xmm3, xmm3, 4EH2363        vpshufd xmm2, xmm2, 39H2364        vpaddd  xmm0, xmm0, xmm62365        vpaddd  xmm0, xmm0, xmm12366        vpxord  xmm3, xmm3, xmm02367        vprord  xmm3, xmm3, 162368        vpaddd  xmm2, xmm2, xmm32369        vpxord  xmm1, xmm1, xmm22370        vprord  xmm1, xmm1, 122371        vpaddd  xmm0, xmm0, xmm72372        vpaddd  xmm0, xmm0, xmm12373        vpxord  xmm3, xmm3, xmm02374        vprord  xmm3, xmm3, 82375        vpaddd  xmm2, xmm2, xmm32376        vpxord  xmm1, xmm1, xmm22377        vprord  xmm1, xmm1, 72378        vpshufd xmm0, xmm0, 39H2379        vpshufd xmm3, xmm3, 4EH2380        vpshufd xmm2, xmm2, 93H2381        dec     al2382        jz      endroundloop12383        vshufps xmm8, xmm4, xmm5, 2142384        vpshufd xmm9, xmm4, 0FH2385        vpshufd xmm4, xmm8, 39H2386        vshufps xmm8, xmm6, xmm7, 2502387        vpblendd xmm9, xmm9, xmm8, 0AAH2388        vpunpcklqdq xmm8, xmm7, xmm52389        vpblendd xmm8, xmm8, xmm6, 88H2390        vpshufd xmm8, xmm8, 78H2391        vpunpckhdq xmm5, xmm5, xmm72392        vpunpckldq xmm6, xmm6, xmm52393        vpshufd xmm7, xmm6, 1EH2394        vmovdqa xmm5, xmm92395        vmovdqa xmm6, xmm82396        jmp     roundloop12397endroundloop1:2398        vpxor   xmm0, xmm0, xmm22399        vpxor   xmm1, xmm1, xmm32400        mov     eax, r13d2401        cmp     rdx, r152402        jne     innerloop12403        vmovdqu xmmword ptr [rbx], xmm02404        vmovdqu xmmword ptr [rbx+10H], xmm12405        jmp     unwind2406 2407_llvm_blake3_hash_many_avx512 ENDP2408llvm_blake3_hash_many_avx512 ENDP2409 2410ALIGN 162411llvm_blake3_compress_in_place_avx512 PROC2412_llvm_blake3_compress_in_place_avx512 PROC2413        sub     rsp, 722414        vmovdqa xmmword ptr [rsp], xmm62415        vmovdqa xmmword ptr [rsp+10H], xmm72416        vmovdqa xmmword ptr [rsp+20H], xmm82417        vmovdqa xmmword ptr [rsp+30H], xmm92418        vmovdqu xmm0, xmmword ptr [rcx]2419        vmovdqu xmm1, xmmword ptr [rcx+10H]2420        movzx   eax, byte ptr [rsp+70H]2421        movzx   r8d, r8b2422        shl     rax, 322423        add     r8, rax2424        vmovq   xmm3, r92425        vmovq   xmm4, r82426        vpunpcklqdq xmm3, xmm3, xmm42427        vmovaps xmm2, xmmword ptr [BLAKE3_IV]2428        vmovups xmm8, xmmword ptr [rdx]2429        vmovups xmm9, xmmword ptr [rdx+10H]2430        vshufps xmm4, xmm8, xmm9, 1362431        vshufps xmm5, xmm8, xmm9, 2212432        vmovups xmm8, xmmword ptr [rdx+20H]2433        vmovups xmm9, xmmword ptr [rdx+30H]2434        vshufps xmm6, xmm8, xmm9, 1362435        vshufps xmm7, xmm8, xmm9, 2212436        vpshufd xmm6, xmm6, 93H2437        vpshufd xmm7, xmm7, 93H2438        mov     al, 72439@@:2440        vpaddd  xmm0, xmm0, xmm42441        vpaddd  xmm0, xmm0, xmm12442        vpxord  xmm3, xmm3, xmm02443        vprord  xmm3, xmm3, 162444        vpaddd  xmm2, xmm2, xmm32445        vpxord  xmm1, xmm1, xmm22446        vprord  xmm1, xmm1, 122447        vpaddd  xmm0, xmm0, xmm52448        vpaddd  xmm0, xmm0, xmm12449        vpxord  xmm3, xmm3, xmm02450        vprord  xmm3, xmm3, 82451        vpaddd  xmm2, xmm2, xmm32452        vpxord  xmm1, xmm1, xmm22453        vprord  xmm1, xmm1, 72454        vpshufd xmm0, xmm0, 93H2455        vpshufd xmm3, xmm3, 4EH2456        vpshufd xmm2, xmm2, 39H2457        vpaddd  xmm0, xmm0, xmm62458        vpaddd  xmm0, xmm0, xmm12459        vpxord  xmm3, xmm3, xmm02460        vprord  xmm3, xmm3, 162461        vpaddd  xmm2, xmm2, xmm32462        vpxord  xmm1, xmm1, xmm22463        vprord  xmm1, xmm1, 122464        vpaddd  xmm0, xmm0, xmm72465        vpaddd  xmm0, xmm0, xmm12466        vpxord  xmm3, xmm3, xmm02467        vprord  xmm3, xmm3, 82468        vpaddd  xmm2, xmm2, xmm32469        vpxord  xmm1, xmm1, xmm22470        vprord  xmm1, xmm1, 72471        vpshufd xmm0, xmm0, 39H2472        vpshufd xmm3, xmm3, 4EH2473        vpshufd xmm2, xmm2, 93H2474        dec     al2475        jz      @F2476        vshufps xmm8, xmm4, xmm5, 2142477        vpshufd xmm9, xmm4, 0FH2478        vpshufd xmm4, xmm8, 39H2479        vshufps xmm8, xmm6, xmm7, 2502480        vpblendd xmm9, xmm9, xmm8, 0AAH2481        vpunpcklqdq xmm8, xmm7, xmm52482        vpblendd xmm8, xmm8, xmm6, 88H2483        vpshufd xmm8, xmm8, 78H2484        vpunpckhdq xmm5, xmm5, xmm72485        vpunpckldq xmm6, xmm6, xmm52486        vpshufd xmm7, xmm6, 1EH2487        vmovdqa xmm5, xmm92488        vmovdqa xmm6, xmm82489        jmp     @B2490@@:2491        vpxor   xmm0, xmm0, xmm22492        vpxor   xmm1, xmm1, xmm32493        vmovdqu xmmword ptr [rcx], xmm02494        vmovdqu xmmword ptr [rcx+10H], xmm12495        vmovdqa xmm6, xmmword ptr [rsp]2496        vmovdqa xmm7, xmmword ptr [rsp+10H]2497        vmovdqa xmm8, xmmword ptr [rsp+20H]2498        vmovdqa xmm9, xmmword ptr [rsp+30H]2499        add     rsp, 722500        ret2501_llvm_blake3_compress_in_place_avx512 ENDP2502llvm_blake3_compress_in_place_avx512 ENDP2503 2504ALIGN 162505llvm_blake3_compress_xof_avx512 PROC2506_llvm_blake3_compress_xof_avx512 PROC2507        sub     rsp, 722508        vmovdqa xmmword ptr [rsp], xmm62509        vmovdqa xmmword ptr [rsp+10H], xmm72510        vmovdqa xmmword ptr [rsp+20H], xmm82511        vmovdqa xmmword ptr [rsp+30H], xmm92512        vmovdqu xmm0, xmmword ptr [rcx]2513        vmovdqu xmm1, xmmword ptr [rcx+10H]2514        movzx   eax, byte ptr [rsp+70H]2515        movzx   r8d, r8b2516        mov     r10, qword ptr [rsp+78H]2517        shl     rax, 322518        add     r8, rax2519        vmovq   xmm3, r92520        vmovq   xmm4, r82521        vpunpcklqdq xmm3, xmm3, xmm42522        vmovaps xmm2, xmmword ptr [BLAKE3_IV]2523        vmovups xmm8, xmmword ptr [rdx]2524        vmovups xmm9, xmmword ptr [rdx+10H]2525        vshufps xmm4, xmm8, xmm9, 1362526        vshufps xmm5, xmm8, xmm9, 2212527        vmovups xmm8, xmmword ptr [rdx+20H]2528        vmovups xmm9, xmmword ptr [rdx+30H]2529        vshufps xmm6, xmm8, xmm9, 1362530        vshufps xmm7, xmm8, xmm9, 2212531        vpshufd xmm6, xmm6, 93H2532        vpshufd xmm7, xmm7, 93H2533        mov     al, 72534@@:2535        vpaddd  xmm0, xmm0, xmm42536        vpaddd  xmm0, xmm0, xmm12537        vpxord  xmm3, xmm3, xmm02538        vprord  xmm3, xmm3, 162539        vpaddd  xmm2, xmm2, xmm32540        vpxord  xmm1, xmm1, xmm22541        vprord  xmm1, xmm1, 122542        vpaddd  xmm0, xmm0, xmm52543        vpaddd  xmm0, xmm0, xmm12544        vpxord  xmm3, xmm3, xmm02545        vprord  xmm3, xmm3, 82546        vpaddd  xmm2, xmm2, xmm32547        vpxord  xmm1, xmm1, xmm22548        vprord  xmm1, xmm1, 72549        vpshufd xmm0, xmm0, 93H2550        vpshufd xmm3, xmm3, 4EH2551        vpshufd xmm2, xmm2, 39H2552        vpaddd  xmm0, xmm0, xmm62553        vpaddd  xmm0, xmm0, xmm12554        vpxord  xmm3, xmm3, xmm02555        vprord  xmm3, xmm3, 162556        vpaddd  xmm2, xmm2, xmm32557        vpxord  xmm1, xmm1, xmm22558        vprord  xmm1, xmm1, 122559        vpaddd  xmm0, xmm0, xmm72560        vpaddd  xmm0, xmm0, xmm12561        vpxord  xmm3, xmm3, xmm02562        vprord  xmm3, xmm3, 82563        vpaddd  xmm2, xmm2, xmm32564        vpxord  xmm1, xmm1, xmm22565        vprord  xmm1, xmm1, 72566        vpshufd xmm0, xmm0, 39H2567        vpshufd xmm3, xmm3, 4EH2568        vpshufd xmm2, xmm2, 93H2569        dec     al2570        jz      @F2571        vshufps xmm8, xmm4, xmm5, 2142572        vpshufd xmm9, xmm4, 0FH2573        vpshufd xmm4, xmm8, 39H2574        vshufps xmm8, xmm6, xmm7, 2502575        vpblendd xmm9, xmm9, xmm8, 0AAH2576        vpunpcklqdq xmm8, xmm7, xmm52577        vpblendd xmm8, xmm8, xmm6, 88H2578        vpshufd xmm8, xmm8, 78H2579        vpunpckhdq xmm5, xmm5, xmm72580        vpunpckldq xmm6, xmm6, xmm52581        vpshufd xmm7, xmm6, 1EH2582        vmovdqa xmm5, xmm92583        vmovdqa xmm6, xmm82584        jmp     @B2585@@:2586        vpxor   xmm0, xmm0, xmm22587        vpxor   xmm1, xmm1, xmm32588        vpxor   xmm2, xmm2, xmmword ptr [rcx]2589        vpxor   xmm3, xmm3, xmmword ptr [rcx+10H]2590        vmovdqu xmmword ptr [r10], xmm02591        vmovdqu xmmword ptr [r10+10H], xmm12592        vmovdqu xmmword ptr [r10+20H], xmm22593        vmovdqu xmmword ptr [r10+30H], xmm32594        vmovdqa xmm6, xmmword ptr [rsp]2595        vmovdqa xmm7, xmmword ptr [rsp+10H]2596        vmovdqa xmm8, xmmword ptr [rsp+20H]2597        vmovdqa xmm9, xmmword ptr [rsp+30H]2598        add     rsp, 722599        ret2600_llvm_blake3_compress_xof_avx512 ENDP2601llvm_blake3_compress_xof_avx512 ENDP2602 2603_TEXT ENDS2604 2605_RDATA SEGMENT READONLY PAGE ALIAS(".rdata") 'CONST'2606ALIGN   642607INDEX0:2608        dd    0,  1,  2,  3, 16, 17, 18, 192609        dd    8,  9, 10, 11, 24, 25, 26, 272610INDEX1:2611        dd    4,  5,  6,  7, 20, 21, 22, 232612        dd   12, 13, 14, 15, 28, 29, 30, 312613ADD0:2614        dd    0,  1,  2,  3,  4,  5,  6,  72615        dd    8,  9, 10, 11, 12, 13, 14, 152616ADD1:   2617        dd    12618ADD16:  2619        dd   162620BLAKE3_BLOCK_LEN:2621        dd   642622ALIGN   642623BLAKE3_IV:2624BLAKE3_IV_0:2625        dd   06A09E667H2626BLAKE3_IV_1:2627        dd   0BB67AE85H2628BLAKE3_IV_2:2629        dd   03C6EF372H2630BLAKE3_IV_3:2631        dd   0A54FF53AH2632 2633_RDATA ENDS2634END2635