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