1#if defined(__x86_64__)
2
3#include "llvm_blake3_prefix.h"
4
5#if defined(__ELF__) && !(defined(__sun__) && defined(__svr4__))
6.section .note.GNU-stack,"",%progbits
7#endif
8
9#if defined(__ELF__) && defined(__CET__) && defined(__has_include)
10#if __has_include(<cet.h>)
11#include <cet.h>
12#endif
13#endif
14
15#if !defined(_CET_ENDBR)
16#define _CET_ENDBR
17#endif
18
19#ifdef __APPLE__
20#define HIDDEN .private_extern
21#else
22#define HIDDEN .hidden
23#endif
24
25.intel_syntax noprefix
26HIDDEN _blake3_hash_many_avx512
27HIDDEN blake3_hash_many_avx512
28HIDDEN blake3_compress_in_place_avx512
29HIDDEN _blake3_compress_in_place_avx512
30HIDDEN blake3_compress_xof_avx512
31HIDDEN _blake3_compress_xof_avx512
32HIDDEN blake3_xof_many_avx512
33HIDDEN _blake3_xof_many_avx512
34.global _blake3_hash_many_avx512
35.global blake3_hash_many_avx512
36.global blake3_compress_in_place_avx512
37.global _blake3_compress_in_place_avx512
38.global blake3_compress_xof_avx512
39.global _blake3_compress_xof_avx512
40.global blake3_xof_many_avx512
41.global _blake3_xof_many_avx512
42
43#ifdef __APPLE__
44.text
45#else
46.section .text
47#endif
48.p2align 6
49_blake3_hash_many_avx512:
50blake3_hash_many_avx512:
51 _CET_ENDBR
52 push r15
53 push r14
54 push r13
55 push r12
56 push rbx
57 push rbp
58 mov rbp, rsp
59 sub rsp, 144
60 and rsp, 0xFFFFFFFFFFFFFFC0
61 neg r9
62 kmovw k1, r9d
63 vmovd xmm0, r8d
64 vpbroadcastd ymm0, xmm0
65 shr r8, 32
66 vmovd xmm1, r8d
67 vpbroadcastd ymm1, xmm1
68 vmovdqa ymm4, ymm1
69 vmovdqa ymm5, ymm1
70 vpaddd ymm2, ymm0, ymmword ptr [ADD0+rip]
71 vpaddd ymm3, ymm0, ymmword ptr [ADD0+32+rip]
72 vpcmpltud k2, ymm2, ymm0
73 vpcmpltud k3, ymm3, ymm0
74 vpaddd ymm4 {k2}, ymm4, dword ptr [ADD1+rip] {1to8}
75 vpaddd ymm5 {k3}, ymm5, dword ptr [ADD1+rip] {1to8}
76 knotw k2, k1
77 vmovdqa32 ymm2 {k2}, ymm0
78 vmovdqa32 ymm3 {k2}, ymm0
79 vmovdqa32 ymm4 {k2}, ymm1
80 vmovdqa32 ymm5 {k2}, ymm1
81 vmovdqa ymmword ptr [rsp], ymm2
82 vmovdqa ymmword ptr [rsp+0x1*0x20], ymm3
83 vmovdqa ymmword ptr [rsp+0x2*0x20], ymm4
84 vmovdqa ymmword ptr [rsp+0x3*0x20], ymm5
85 shl rdx, 6
86 mov qword ptr [rsp+0x80], rdx
87 cmp rsi, 16
88 jc 3f
892:
90 vpbroadcastd zmm0, dword ptr [rcx]
91 vpbroadcastd zmm1, dword ptr [rcx+0x1*0x4]
92 vpbroadcastd zmm2, dword ptr [rcx+0x2*0x4]
93 vpbroadcastd zmm3, dword ptr [rcx+0x3*0x4]
94 vpbroadcastd zmm4, dword ptr [rcx+0x4*0x4]
95 vpbroadcastd zmm5, dword ptr [rcx+0x5*0x4]
96 vpbroadcastd zmm6, dword ptr [rcx+0x6*0x4]
97 vpbroadcastd zmm7, dword ptr [rcx+0x7*0x4]
98 movzx eax, byte ptr [rbp+0x38]
99 movzx ebx, byte ptr [rbp+0x40]
100 or eax, ebx
101 xor edx, edx
102.p2align 5
1039:
104 movzx ebx, byte ptr [rbp+0x48]
105 or ebx, eax
106 add rdx, 64
107 cmp rdx, qword ptr [rsp+0x80]
108 cmove eax, ebx
109 mov dword ptr [rsp+0x88], eax
110 mov r8, qword ptr [rdi]
111 mov r9, qword ptr [rdi+0x8]
112 mov r10, qword ptr [rdi+0x10]
113 mov r11, qword ptr [rdi+0x18]
114 mov r12, qword ptr [rdi+0x40]
115 mov r13, qword ptr [rdi+0x48]
116 mov r14, qword ptr [rdi+0x50]
117 mov r15, qword ptr [rdi+0x58]
118 vmovdqu32 ymm16, ymmword ptr [rdx+r8-0x2*0x20]
119 vinserti64x4 zmm16, zmm16, ymmword ptr [rdx+r12-0x2*0x20], 0x01
120 vmovdqu32 ymm17, ymmword ptr [rdx+r9-0x2*0x20]
121 vinserti64x4 zmm17, zmm17, ymmword ptr [rdx+r13-0x2*0x20], 0x01
122 vpunpcklqdq zmm8, zmm16, zmm17
123 vpunpckhqdq zmm9, zmm16, zmm17
124 vmovdqu32 ymm18, ymmword ptr [rdx+r10-0x2*0x20]
125 vinserti64x4 zmm18, zmm18, ymmword ptr [rdx+r14-0x2*0x20], 0x01
126 vmovdqu32 ymm19, ymmword ptr [rdx+r11-0x2*0x20]
127 vinserti64x4 zmm19, zmm19, ymmword ptr [rdx+r15-0x2*0x20], 0x01
128 vpunpcklqdq zmm10, zmm18, zmm19
129 vpunpckhqdq zmm11, zmm18, zmm19
130 mov r8, qword ptr [rdi+0x20]
131 mov r9, qword ptr [rdi+0x28]
132 mov r10, qword ptr [rdi+0x30]
133 mov r11, qword ptr [rdi+0x38]
134 mov r12, qword ptr [rdi+0x60]
135 mov r13, qword ptr [rdi+0x68]
136 mov r14, qword ptr [rdi+0x70]
137 mov r15, qword ptr [rdi+0x78]
138 vmovdqu32 ymm16, ymmword ptr [rdx+r8-0x2*0x20]
139 vinserti64x4 zmm16, zmm16, ymmword ptr [rdx+r12-0x2*0x20], 0x01
140 vmovdqu32 ymm17, ymmword ptr [rdx+r9-0x2*0x20]
141 vinserti64x4 zmm17, zmm17, ymmword ptr [rdx+r13-0x2*0x20], 0x01
142 vpunpcklqdq zmm12, zmm16, zmm17
143 vpunpckhqdq zmm13, zmm16, zmm17
144 vmovdqu32 ymm18, ymmword ptr [rdx+r10-0x2*0x20]
145 vinserti64x4 zmm18, zmm18, ymmword ptr [rdx+r14-0x2*0x20], 0x01
146 vmovdqu32 ymm19, ymmword ptr [rdx+r11-0x2*0x20]
147 vinserti64x4 zmm19, zmm19, ymmword ptr [rdx+r15-0x2*0x20], 0x01
148 vpunpcklqdq zmm14, zmm18, zmm19
149 vpunpckhqdq zmm15, zmm18, zmm19
150 vmovdqa32 zmm27, zmmword ptr [INDEX0+rip]
151 vmovdqa32 zmm31, zmmword ptr [INDEX1+rip]
152 vshufps zmm16, zmm8, zmm10, 136
153 vshufps zmm17, zmm12, zmm14, 136
154 vmovdqa32 zmm20, zmm16
155 vpermt2d zmm16, zmm27, zmm17
156 vpermt2d zmm20, zmm31, zmm17
157 vshufps zmm17, zmm8, zmm10, 221
158 vshufps zmm30, zmm12, zmm14, 221
159 vmovdqa32 zmm21, zmm17
160 vpermt2d zmm17, zmm27, zmm30
161 vpermt2d zmm21, zmm31, zmm30
162 vshufps zmm18, zmm9, zmm11, 136
163 vshufps zmm8, zmm13, zmm15, 136
164 vmovdqa32 zmm22, zmm18
165 vpermt2d zmm18, zmm27, zmm8
166 vpermt2d zmm22, zmm31, zmm8
167 vshufps zmm19, zmm9, zmm11, 221
168 vshufps zmm8, zmm13, zmm15, 221
169 vmovdqa32 zmm23, zmm19
170 vpermt2d zmm19, zmm27, zmm8
171 vpermt2d zmm23, zmm31, zmm8
172 mov r8, qword ptr [rdi]
173 mov r9, qword ptr [rdi+0x8]
174 mov r10, qword ptr [rdi+0x10]
175 mov r11, qword ptr [rdi+0x18]
176 mov r12, qword ptr [rdi+0x40]
177 mov r13, qword ptr [rdi+0x48]
178 mov r14, qword ptr [rdi+0x50]
179 mov r15, qword ptr [rdi+0x58]
180 vmovdqu32 ymm24, ymmword ptr [r8+rdx-0x1*0x20]
181 vinserti64x4 zmm24, zmm24, ymmword ptr [r12+rdx-0x1*0x20], 0x01
182 vmovdqu32 ymm25, ymmword ptr [r9+rdx-0x1*0x20]
183 vinserti64x4 zmm25, zmm25, ymmword ptr [r13+rdx-0x1*0x20], 0x01
184 vpunpcklqdq zmm8, zmm24, zmm25
185 vpunpckhqdq zmm9, zmm24, zmm25
186 vmovdqu32 ymm24, ymmword ptr [r10+rdx-0x1*0x20]
187 vinserti64x4 zmm24, zmm24, ymmword ptr [r14+rdx-0x1*0x20], 0x01
188 vmovdqu32 ymm25, ymmword ptr [r11+rdx-0x1*0x20]
189 vinserti64x4 zmm25, zmm25, ymmword ptr [r15+rdx-0x1*0x20], 0x01
190 vpunpcklqdq zmm10, zmm24, zmm25
191 vpunpckhqdq zmm11, zmm24, zmm25
192 prefetcht0 [r8+rdx+0x80]
193 prefetcht0 [r12+rdx+0x80]
194 prefetcht0 [r9+rdx+0x80]
195 prefetcht0 [r13+rdx+0x80]
196 prefetcht0 [r10+rdx+0x80]
197 prefetcht0 [r14+rdx+0x80]
198 prefetcht0 [r11+rdx+0x80]
199 prefetcht0 [r15+rdx+0x80]
200 mov r8, qword ptr [rdi+0x20]
201 mov r9, qword ptr [rdi+0x28]
202 mov r10, qword ptr [rdi+0x30]
203 mov r11, qword ptr [rdi+0x38]
204 mov r12, qword ptr [rdi+0x60]
205 mov r13, qword ptr [rdi+0x68]
206 mov r14, qword ptr [rdi+0x70]
207 mov r15, qword ptr [rdi+0x78]
208 vmovdqu32 ymm24, ymmword ptr [r8+rdx-0x1*0x20]
209 vinserti64x4 zmm24, zmm24, ymmword ptr [r12+rdx-0x1*0x20], 0x01
210 vmovdqu32 ymm25, ymmword ptr [r9+rdx-0x1*0x20]
211 vinserti64x4 zmm25, zmm25, ymmword ptr [r13+rdx-0x1*0x20], 0x01
212 vpunpcklqdq zmm12, zmm24, zmm25
213 vpunpckhqdq zmm13, zmm24, zmm25
214 vmovdqu32 ymm24, ymmword ptr [r10+rdx-0x1*0x20]
215 vinserti64x4 zmm24, zmm24, ymmword ptr [r14+rdx-0x1*0x20], 0x01
216 vmovdqu32 ymm25, ymmword ptr [r11+rdx-0x1*0x20]
217 vinserti64x4 zmm25, zmm25, ymmword ptr [r15+rdx-0x1*0x20], 0x01
218 vpunpcklqdq zmm14, zmm24, zmm25
219 vpunpckhqdq zmm15, zmm24, zmm25
220 prefetcht0 [r8+rdx+0x80]
221 prefetcht0 [r12+rdx+0x80]
222 prefetcht0 [r9+rdx+0x80]
223 prefetcht0 [r13+rdx+0x80]
224 prefetcht0 [r10+rdx+0x80]
225 prefetcht0 [r14+rdx+0x80]
226 prefetcht0 [r11+rdx+0x80]
227 prefetcht0 [r15+rdx+0x80]
228 vshufps zmm24, zmm8, zmm10, 136
229 vshufps zmm30, zmm12, zmm14, 136
230 vmovdqa32 zmm28, zmm24
231 vpermt2d zmm24, zmm27, zmm30
232 vpermt2d zmm28, zmm31, zmm30
233 vshufps zmm25, zmm8, zmm10, 221
234 vshufps zmm30, zmm12, zmm14, 221
235 vmovdqa32 zmm29, zmm25
236 vpermt2d zmm25, zmm27, zmm30
237 vpermt2d zmm29, zmm31, zmm30
238 vshufps zmm26, zmm9, zmm11, 136
239 vshufps zmm8, zmm13, zmm15, 136
240 vmovdqa32 zmm30, zmm26
241 vpermt2d zmm26, zmm27, zmm8
242 vpermt2d zmm30, zmm31, zmm8
243 vshufps zmm8, zmm9, zmm11, 221
244 vshufps zmm10, zmm13, zmm15, 221
245 vpermi2d zmm27, zmm8, zmm10
246 vpermi2d zmm31, zmm8, zmm10
247 vpbroadcastd zmm8, dword ptr [BLAKE3_IV_0+rip]
248 vpbroadcastd zmm9, dword ptr [BLAKE3_IV_1+rip]
249 vpbroadcastd zmm10, dword ptr [BLAKE3_IV_2+rip]
250 vpbroadcastd zmm11, dword ptr [BLAKE3_IV_3+rip]
251 vmovdqa32 zmm12, zmmword ptr [rsp]
252 vmovdqa32 zmm13, zmmword ptr [rsp+0x1*0x40]
253 vpbroadcastd zmm14, dword ptr [BLAKE3_BLOCK_LEN+rip]
254 vpbroadcastd zmm15, dword ptr [rsp+0x22*0x4]
255 vpaddd zmm0, zmm0, zmm16
256 vpaddd zmm1, zmm1, zmm18
257 vpaddd zmm2, zmm2, zmm20
258 vpaddd zmm3, zmm3, zmm22
259 vpaddd zmm0, zmm0, zmm4
260 vpaddd zmm1, zmm1, zmm5
261 vpaddd zmm2, zmm2, zmm6
262 vpaddd zmm3, zmm3, zmm7
263 vpxord zmm12, zmm12, zmm0
264 vpxord zmm13, zmm13, zmm1
265 vpxord zmm14, zmm14, zmm2
266 vpxord zmm15, zmm15, zmm3
267 vprord zmm12, zmm12, 16
268 vprord zmm13, zmm13, 16
269 vprord zmm14, zmm14, 16
270 vprord zmm15, zmm15, 16
271 vpaddd zmm8, zmm8, zmm12
272 vpaddd zmm9, zmm9, zmm13
273 vpaddd zmm10, zmm10, zmm14
274 vpaddd zmm11, zmm11, zmm15
275 vpxord zmm4, zmm4, zmm8
276 vpxord zmm5, zmm5, zmm9
277 vpxord zmm6, zmm6, zmm10
278 vpxord zmm7, zmm7, zmm11
279 vprord zmm4, zmm4, 12
280 vprord zmm5, zmm5, 12
281 vprord zmm6, zmm6, 12
282 vprord zmm7, zmm7, 12
283 vpaddd zmm0, zmm0, zmm17
284 vpaddd zmm1, zmm1, zmm19
285 vpaddd zmm2, zmm2, zmm21
286 vpaddd zmm3, zmm3, zmm23
287 vpaddd zmm0, zmm0, zmm4
288 vpaddd zmm1, zmm1, zmm5
289 vpaddd zmm2, zmm2, zmm6
290 vpaddd zmm3, zmm3, zmm7
291 vpxord zmm12, zmm12, zmm0
292 vpxord zmm13, zmm13, zmm1
293 vpxord zmm14, zmm14, zmm2
294 vpxord zmm15, zmm15, zmm3
295 vprord zmm12, zmm12, 8
296 vprord zmm13, zmm13, 8
297 vprord zmm14, zmm14, 8
298 vprord zmm15, zmm15, 8
299 vpaddd zmm8, zmm8, zmm12
300 vpaddd zmm9, zmm9, zmm13
301 vpaddd zmm10, zmm10, zmm14
302 vpaddd zmm11, zmm11, zmm15
303 vpxord zmm4, zmm4, zmm8
304 vpxord zmm5, zmm5, zmm9
305 vpxord zmm6, zmm6, zmm10
306 vpxord zmm7, zmm7, zmm11
307 vprord zmm4, zmm4, 7
308 vprord zmm5, zmm5, 7
309 vprord zmm6, zmm6, 7
310 vprord zmm7, zmm7, 7
311 vpaddd zmm0, zmm0, zmm24
312 vpaddd zmm1, zmm1, zmm26
313 vpaddd zmm2, zmm2, zmm28
314 vpaddd zmm3, zmm3, zmm30
315 vpaddd zmm0, zmm0, zmm5
316 vpaddd zmm1, zmm1, zmm6
317 vpaddd zmm2, zmm2, zmm7
318 vpaddd zmm3, zmm3, zmm4
319 vpxord zmm15, zmm15, zmm0
320 vpxord zmm12, zmm12, zmm1
321 vpxord zmm13, zmm13, zmm2
322 vpxord zmm14, zmm14, zmm3
323 vprord zmm15, zmm15, 16
324 vprord zmm12, zmm12, 16
325 vprord zmm13, zmm13, 16
326 vprord zmm14, zmm14, 16
327 vpaddd zmm10, zmm10, zmm15
328 vpaddd zmm11, zmm11, zmm12
329 vpaddd zmm8, zmm8, zmm13
330 vpaddd zmm9, zmm9, zmm14
331 vpxord zmm5, zmm5, zmm10
332 vpxord zmm6, zmm6, zmm11
333 vpxord zmm7, zmm7, zmm8
334 vpxord zmm4, zmm4, zmm9
335 vprord zmm5, zmm5, 12
336 vprord zmm6, zmm6, 12
337 vprord zmm7, zmm7, 12
338 vprord zmm4, zmm4, 12
339 vpaddd zmm0, zmm0, zmm25
340 vpaddd zmm1, zmm1, zmm27
341 vpaddd zmm2, zmm2, zmm29
342 vpaddd zmm3, zmm3, zmm31
343 vpaddd zmm0, zmm0, zmm5
344 vpaddd zmm1, zmm1, zmm6
345 vpaddd zmm2, zmm2, zmm7
346 vpaddd zmm3, zmm3, zmm4
347 vpxord zmm15, zmm15, zmm0
348 vpxord zmm12, zmm12, zmm1
349 vpxord zmm13, zmm13, zmm2
350 vpxord zmm14, zmm14, zmm3
351 vprord zmm15, zmm15, 8
352 vprord zmm12, zmm12, 8
353 vprord zmm13, zmm13, 8
354 vprord zmm14, zmm14, 8
355 vpaddd zmm10, zmm10, zmm15
356 vpaddd zmm11, zmm11, zmm12
357 vpaddd zmm8, zmm8, zmm13
358 vpaddd zmm9, zmm9, zmm14
359 vpxord zmm5, zmm5, zmm10
360 vpxord zmm6, zmm6, zmm11
361 vpxord zmm7, zmm7, zmm8
362 vpxord zmm4, zmm4, zmm9
363 vprord zmm5, zmm5, 7
364 vprord zmm6, zmm6, 7
365 vprord zmm7, zmm7, 7
366 vprord zmm4, zmm4, 7
367 vpaddd zmm0, zmm0, zmm18
368 vpaddd zmm1, zmm1, zmm19
369 vpaddd zmm2, zmm2, zmm23
370 vpaddd zmm3, zmm3, zmm20
371 vpaddd zmm0, zmm0, zmm4
372 vpaddd zmm1, zmm1, zmm5
373 vpaddd zmm2, zmm2, zmm6
374 vpaddd zmm3, zmm3, zmm7
375 vpxord zmm12, zmm12, zmm0
376 vpxord zmm13, zmm13, zmm1
377 vpxord zmm14, zmm14, zmm2
378 vpxord zmm15, zmm15, zmm3
379 vprord zmm12, zmm12, 16
380 vprord zmm13, zmm13, 16
381 vprord zmm14, zmm14, 16
382 vprord zmm15, zmm15, 16
383 vpaddd zmm8, zmm8, zmm12
384 vpaddd zmm9, zmm9, zmm13
385 vpaddd zmm10, zmm10, zmm14
386 vpaddd zmm11, zmm11, zmm15
387 vpxord zmm4, zmm4, zmm8
388 vpxord zmm5, zmm5, zmm9
389 vpxord zmm6, zmm6, zmm10
390 vpxord zmm7, zmm7, zmm11
391 vprord zmm4, zmm4, 12
392 vprord zmm5, zmm5, 12
393 vprord zmm6, zmm6, 12
394 vprord zmm7, zmm7, 12
395 vpaddd zmm0, zmm0, zmm22
396 vpaddd zmm1, zmm1, zmm26
397 vpaddd zmm2, zmm2, zmm16
398 vpaddd zmm3, zmm3, zmm29
399 vpaddd zmm0, zmm0, zmm4
400 vpaddd zmm1, zmm1, zmm5
401 vpaddd zmm2, zmm2, zmm6
402 vpaddd zmm3, zmm3, zmm7
403 vpxord zmm12, zmm12, zmm0
404 vpxord zmm13, zmm13, zmm1
405 vpxord zmm14, zmm14, zmm2
406 vpxord zmm15, zmm15, zmm3
407 vprord zmm12, zmm12, 8
408 vprord zmm13, zmm13, 8
409 vprord zmm14, zmm14, 8
410 vprord zmm15, zmm15, 8
411 vpaddd zmm8, zmm8, zmm12
412 vpaddd zmm9, zmm9, zmm13
413 vpaddd zmm10, zmm10, zmm14
414 vpaddd zmm11, zmm11, zmm15
415 vpxord zmm4, zmm4, zmm8
416 vpxord zmm5, zmm5, zmm9
417 vpxord zmm6, zmm6, zmm10
418 vpxord zmm7, zmm7, zmm11
419 vprord zmm4, zmm4, 7
420 vprord zmm5, zmm5, 7
421 vprord zmm6, zmm6, 7
422 vprord zmm7, zmm7, 7
423 vpaddd zmm0, zmm0, zmm17
424 vpaddd zmm1, zmm1, zmm28
425 vpaddd zmm2, zmm2, zmm25
426 vpaddd zmm3, zmm3, zmm31
427 vpaddd zmm0, zmm0, zmm5
428 vpaddd zmm1, zmm1, zmm6
429 vpaddd zmm2, zmm2, zmm7
430 vpaddd zmm3, zmm3, zmm4
431 vpxord zmm15, zmm15, zmm0
432 vpxord zmm12, zmm12, zmm1
433 vpxord zmm13, zmm13, zmm2
434 vpxord zmm14, zmm14, zmm3
435 vprord zmm15, zmm15, 16
436 vprord zmm12, zmm12, 16
437 vprord zmm13, zmm13, 16
438 vprord zmm14, zmm14, 16
439 vpaddd zmm10, zmm10, zmm15
440 vpaddd zmm11, zmm11, zmm12
441 vpaddd zmm8, zmm8, zmm13
442 vpaddd zmm9, zmm9, zmm14
443 vpxord zmm5, zmm5, zmm10
444 vpxord zmm6, zmm6, zmm11
445 vpxord zmm7, zmm7, zmm8
446 vpxord zmm4, zmm4, zmm9
447 vprord zmm5, zmm5, 12
448 vprord zmm6, zmm6, 12
449 vprord zmm7, zmm7, 12
450 vprord zmm4, zmm4, 12
451 vpaddd zmm0, zmm0, zmm27
452 vpaddd zmm1, zmm1, zmm21
453 vpaddd zmm2, zmm2, zmm30
454 vpaddd zmm3, zmm3, zmm24
455 vpaddd zmm0, zmm0, zmm5
456 vpaddd zmm1, zmm1, zmm6
457 vpaddd zmm2, zmm2, zmm7
458 vpaddd zmm3, zmm3, zmm4
459 vpxord zmm15, zmm15, zmm0
460 vpxord zmm12, zmm12, zmm1
461 vpxord zmm13, zmm13, zmm2
462 vpxord zmm14, zmm14, zmm3
463 vprord zmm15, zmm15, 8
464 vprord zmm12, zmm12, 8
465 vprord zmm13, zmm13, 8
466 vprord zmm14, zmm14, 8
467 vpaddd zmm10, zmm10, zmm15
468 vpaddd zmm11, zmm11, zmm12
469 vpaddd zmm8, zmm8, zmm13
470 vpaddd zmm9, zmm9, zmm14
471 vpxord zmm5, zmm5, zmm10
472 vpxord zmm6, zmm6, zmm11
473 vpxord zmm7, zmm7, zmm8
474 vpxord zmm4, zmm4, zmm9
475 vprord zmm5, zmm5, 7
476 vprord zmm6, zmm6, 7
477 vprord zmm7, zmm7, 7
478 vprord zmm4, zmm4, 7
479 vpaddd zmm0, zmm0, zmm19
480 vpaddd zmm1, zmm1, zmm26
481 vpaddd zmm2, zmm2, zmm29
482 vpaddd zmm3, zmm3, zmm23
483 vpaddd zmm0, zmm0, zmm4
484 vpaddd zmm1, zmm1, zmm5
485 vpaddd zmm2, zmm2, zmm6
486 vpaddd zmm3, zmm3, zmm7
487 vpxord zmm12, zmm12, zmm0
488 vpxord zmm13, zmm13, zmm1
489 vpxord zmm14, zmm14, zmm2
490 vpxord zmm15, zmm15, zmm3
491 vprord zmm12, zmm12, 16
492 vprord zmm13, zmm13, 16
493 vprord zmm14, zmm14, 16
494 vprord zmm15, zmm15, 16
495 vpaddd zmm8, zmm8, zmm12
496 vpaddd zmm9, zmm9, zmm13
497 vpaddd zmm10, zmm10, zmm14
498 vpaddd zmm11, zmm11, zmm15
499 vpxord zmm4, zmm4, zmm8
500 vpxord zmm5, zmm5, zmm9
501 vpxord zmm6, zmm6, zmm10
502 vpxord zmm7, zmm7, zmm11
503 vprord zmm4, zmm4, 12
504 vprord zmm5, zmm5, 12
505 vprord zmm6, zmm6, 12
506 vprord zmm7, zmm7, 12
507 vpaddd zmm0, zmm0, zmm20
508 vpaddd zmm1, zmm1, zmm28
509 vpaddd zmm2, zmm2, zmm18
510 vpaddd zmm3, zmm3, zmm30
511 vpaddd zmm0, zmm0, zmm4
512 vpaddd zmm1, zmm1, zmm5
513 vpaddd zmm2, zmm2, zmm6
514 vpaddd zmm3, zmm3, zmm7
515 vpxord zmm12, zmm12, zmm0
516 vpxord zmm13, zmm13, zmm1
517 vpxord zmm14, zmm14, zmm2
518 vpxord zmm15, zmm15, zmm3
519 vprord zmm12, zmm12, 8
520 vprord zmm13, zmm13, 8
521 vprord zmm14, zmm14, 8
522 vprord zmm15, zmm15, 8
523 vpaddd zmm8, zmm8, zmm12
524 vpaddd zmm9, zmm9, zmm13
525 vpaddd zmm10, zmm10, zmm14
526 vpaddd zmm11, zmm11, zmm15
527 vpxord zmm4, zmm4, zmm8
528 vpxord zmm5, zmm5, zmm9
529 vpxord zmm6, zmm6, zmm10
530 vpxord zmm7, zmm7, zmm11
531 vprord zmm4, zmm4, 7
532 vprord zmm5, zmm5, 7
533 vprord zmm6, zmm6, 7
534 vprord zmm7, zmm7, 7
535 vpaddd zmm0, zmm0, zmm22
536 vpaddd zmm1, zmm1, zmm25
537 vpaddd zmm2, zmm2, zmm27
538 vpaddd zmm3, zmm3, zmm24
539 vpaddd zmm0, zmm0, zmm5
540 vpaddd zmm1, zmm1, zmm6
541 vpaddd zmm2, zmm2, zmm7
542 vpaddd zmm3, zmm3, zmm4
543 vpxord zmm15, zmm15, zmm0
544 vpxord zmm12, zmm12, zmm1
545 vpxord zmm13, zmm13, zmm2
546 vpxord zmm14, zmm14, zmm3
547 vprord zmm15, zmm15, 16
548 vprord zmm12, zmm12, 16
549 vprord zmm13, zmm13, 16
550 vprord zmm14, zmm14, 16
551 vpaddd zmm10, zmm10, zmm15
552 vpaddd zmm11, zmm11, zmm12
553 vpaddd zmm8, zmm8, zmm13
554 vpaddd zmm9, zmm9, zmm14
555 vpxord zmm5, zmm5, zmm10
556 vpxord zmm6, zmm6, zmm11
557 vpxord zmm7, zmm7, zmm8
558 vpxord zmm4, zmm4, zmm9
559 vprord zmm5, zmm5, 12
560 vprord zmm6, zmm6, 12
561 vprord zmm7, zmm7, 12
562 vprord zmm4, zmm4, 12
563 vpaddd zmm0, zmm0, zmm21
564 vpaddd zmm1, zmm1, zmm16
565 vpaddd zmm2, zmm2, zmm31
566 vpaddd zmm3, zmm3, zmm17
567 vpaddd zmm0, zmm0, zmm5
568 vpaddd zmm1, zmm1, zmm6
569 vpaddd zmm2, zmm2, zmm7
570 vpaddd zmm3, zmm3, zmm4
571 vpxord zmm15, zmm15, zmm0
572 vpxord zmm12, zmm12, zmm1
573 vpxord zmm13, zmm13, zmm2
574 vpxord zmm14, zmm14, zmm3
575 vprord zmm15, zmm15, 8
576 vprord zmm12, zmm12, 8
577 vprord zmm13, zmm13, 8
578 vprord zmm14, zmm14, 8
579 vpaddd zmm10, zmm10, zmm15
580 vpaddd zmm11, zmm11, zmm12
581 vpaddd zmm8, zmm8, zmm13
582 vpaddd zmm9, zmm9, zmm14
583 vpxord zmm5, zmm5, zmm10
584 vpxord zmm6, zmm6, zmm11
585 vpxord zmm7, zmm7, zmm8
586 vpxord zmm4, zmm4, zmm9
587 vprord zmm5, zmm5, 7
588 vprord zmm6, zmm6, 7
589 vprord zmm7, zmm7, 7
590 vprord zmm4, zmm4, 7
591 vpaddd zmm0, zmm0, zmm26
592 vpaddd zmm1, zmm1, zmm28
593 vpaddd zmm2, zmm2, zmm30
594 vpaddd zmm3, zmm3, zmm29
595 vpaddd zmm0, zmm0, zmm4
596 vpaddd zmm1, zmm1, zmm5
597 vpaddd zmm2, zmm2, zmm6
598 vpaddd zmm3, zmm3, zmm7
599 vpxord zmm12, zmm12, zmm0
600 vpxord zmm13, zmm13, zmm1
601 vpxord zmm14, zmm14, zmm2
602 vpxord zmm15, zmm15, zmm3
603 vprord zmm12, zmm12, 16
604 vprord zmm13, zmm13, 16
605 vprord zmm14, zmm14, 16
606 vprord zmm15, zmm15, 16
607 vpaddd zmm8, zmm8, zmm12
608 vpaddd zmm9, zmm9, zmm13
609 vpaddd zmm10, zmm10, zmm14
610 vpaddd zmm11, zmm11, zmm15
611 vpxord zmm4, zmm4, zmm8
612 vpxord zmm5, zmm5, zmm9
613 vpxord zmm6, zmm6, zmm10
614 vpxord zmm7, zmm7, zmm11
615 vprord zmm4, zmm4, 12
616 vprord zmm5, zmm5, 12
617 vprord zmm6, zmm6, 12
618 vprord zmm7, zmm7, 12
619 vpaddd zmm0, zmm0, zmm23
620 vpaddd zmm1, zmm1, zmm25
621 vpaddd zmm2, zmm2, zmm19
622 vpaddd zmm3, zmm3, zmm31
623 vpaddd zmm0, zmm0, zmm4
624 vpaddd zmm1, zmm1, zmm5
625 vpaddd zmm2, zmm2, zmm6
626 vpaddd zmm3, zmm3, zmm7
627 vpxord zmm12, zmm12, zmm0
628 vpxord zmm13, zmm13, zmm1
629 vpxord zmm14, zmm14, zmm2
630 vpxord zmm15, zmm15, zmm3
631 vprord zmm12, zmm12, 8
632 vprord zmm13, zmm13, 8
633 vprord zmm14, zmm14, 8
634 vprord zmm15, zmm15, 8
635 vpaddd zmm8, zmm8, zmm12
636 vpaddd zmm9, zmm9, zmm13
637 vpaddd zmm10, zmm10, zmm14
638 vpaddd zmm11, zmm11, zmm15
639 vpxord zmm4, zmm4, zmm8
640 vpxord zmm5, zmm5, zmm9
641 vpxord zmm6, zmm6, zmm10
642 vpxord zmm7, zmm7, zmm11
643 vprord zmm4, zmm4, 7
644 vprord zmm5, zmm5, 7
645 vprord zmm6, zmm6, 7
646 vprord zmm7, zmm7, 7
647 vpaddd zmm0, zmm0, zmm20
648 vpaddd zmm1, zmm1, zmm27
649 vpaddd zmm2, zmm2, zmm21
650 vpaddd zmm3, zmm3, zmm17
651 vpaddd zmm0, zmm0, zmm5
652 vpaddd zmm1, zmm1, zmm6
653 vpaddd zmm2, zmm2, zmm7
654 vpaddd zmm3, zmm3, zmm4
655 vpxord zmm15, zmm15, zmm0
656 vpxord zmm12, zmm12, zmm1
657 vpxord zmm13, zmm13, zmm2
658 vpxord zmm14, zmm14, zmm3
659 vprord zmm15, zmm15, 16
660 vprord zmm12, zmm12, 16
661 vprord zmm13, zmm13, 16
662 vprord zmm14, zmm14, 16
663 vpaddd zmm10, zmm10, zmm15
664 vpaddd zmm11, zmm11, zmm12
665 vpaddd zmm8, zmm8, zmm13
666 vpaddd zmm9, zmm9, zmm14
667 vpxord zmm5, zmm5, zmm10
668 vpxord zmm6, zmm6, zmm11
669 vpxord zmm7, zmm7, zmm8
670 vpxord zmm4, zmm4, zmm9
671 vprord zmm5, zmm5, 12
672 vprord zmm6, zmm6, 12
673 vprord zmm7, zmm7, 12
674 vprord zmm4, zmm4, 12
675 vpaddd zmm0, zmm0, zmm16
676 vpaddd zmm1, zmm1, zmm18
677 vpaddd zmm2, zmm2, zmm24
678 vpaddd zmm3, zmm3, zmm22
679 vpaddd zmm0, zmm0, zmm5
680 vpaddd zmm1, zmm1, zmm6
681 vpaddd zmm2, zmm2, zmm7
682 vpaddd zmm3, zmm3, zmm4
683 vpxord zmm15, zmm15, zmm0
684 vpxord zmm12, zmm12, zmm1
685 vpxord zmm13, zmm13, zmm2
686 vpxord zmm14, zmm14, zmm3
687 vprord zmm15, zmm15, 8
688 vprord zmm12, zmm12, 8
689 vprord zmm13, zmm13, 8
690 vprord zmm14, zmm14, 8
691 vpaddd zmm10, zmm10, zmm15
692 vpaddd zmm11, zmm11, zmm12
693 vpaddd zmm8, zmm8, zmm13
694 vpaddd zmm9, zmm9, zmm14
695 vpxord zmm5, zmm5, zmm10
696 vpxord zmm6, zmm6, zmm11
697 vpxord zmm7, zmm7, zmm8
698 vpxord zmm4, zmm4, zmm9
699 vprord zmm5, zmm5, 7
700 vprord zmm6, zmm6, 7
701 vprord zmm7, zmm7, 7
702 vprord zmm4, zmm4, 7
703 vpaddd zmm0, zmm0, zmm28
704 vpaddd zmm1, zmm1, zmm25
705 vpaddd zmm2, zmm2, zmm31
706 vpaddd zmm3, zmm3, zmm30
707 vpaddd zmm0, zmm0, zmm4
708 vpaddd zmm1, zmm1, zmm5
709 vpaddd zmm2, zmm2, zmm6
710 vpaddd zmm3, zmm3, zmm7
711 vpxord zmm12, zmm12, zmm0
712 vpxord zmm13, zmm13, zmm1
713 vpxord zmm14, zmm14, zmm2
714 vpxord zmm15, zmm15, zmm3
715 vprord zmm12, zmm12, 16
716 vprord zmm13, zmm13, 16
717 vprord zmm14, zmm14, 16
718 vprord zmm15, zmm15, 16
719 vpaddd zmm8, zmm8, zmm12
720 vpaddd zmm9, zmm9, zmm13
721 vpaddd zmm10, zmm10, zmm14
722 vpaddd zmm11, zmm11, zmm15
723 vpxord zmm4, zmm4, zmm8
724 vpxord zmm5, zmm5, zmm9
725 vpxord zmm6, zmm6, zmm10
726 vpxord zmm7, zmm7, zmm11
727 vprord zmm4, zmm4, 12
728 vprord zmm5, zmm5, 12
729 vprord zmm6, zmm6, 12
730 vprord zmm7, zmm7, 12
731 vpaddd zmm0, zmm0, zmm29
732 vpaddd zmm1, zmm1, zmm27
733 vpaddd zmm2, zmm2, zmm26
734 vpaddd zmm3, zmm3, zmm24
735 vpaddd zmm0, zmm0, zmm4
736 vpaddd zmm1, zmm1, zmm5
737 vpaddd zmm2, zmm2, zmm6
738 vpaddd zmm3, zmm3, zmm7
739 vpxord zmm12, zmm12, zmm0
740 vpxord zmm13, zmm13, zmm1
741 vpxord zmm14, zmm14, zmm2
742 vpxord zmm15, zmm15, zmm3
743 vprord zmm12, zmm12, 8
744 vprord zmm13, zmm13, 8
745 vprord zmm14, zmm14, 8
746 vprord zmm15, zmm15, 8
747 vpaddd zmm8, zmm8, zmm12
748 vpaddd zmm9, zmm9, zmm13
749 vpaddd zmm10, zmm10, zmm14
750 vpaddd zmm11, zmm11, zmm15
751 vpxord zmm4, zmm4, zmm8
752 vpxord zmm5, zmm5, zmm9
753 vpxord zmm6, zmm6, zmm10
754 vpxord zmm7, zmm7, zmm11
755 vprord zmm4, zmm4, 7
756 vprord zmm5, zmm5, 7
757 vprord zmm6, zmm6, 7
758 vprord zmm7, zmm7, 7
759 vpaddd zmm0, zmm0, zmm23
760 vpaddd zmm1, zmm1, zmm21
761 vpaddd zmm2, zmm2, zmm16
762 vpaddd zmm3, zmm3, zmm22
763 vpaddd zmm0, zmm0, zmm5
764 vpaddd zmm1, zmm1, zmm6
765 vpaddd zmm2, zmm2, zmm7
766 vpaddd zmm3, zmm3, zmm4
767 vpxord zmm15, zmm15, zmm0
768 vpxord zmm12, zmm12, zmm1
769 vpxord zmm13, zmm13, zmm2
770 vpxord zmm14, zmm14, zmm3
771 vprord zmm15, zmm15, 16
772 vprord zmm12, zmm12, 16
773 vprord zmm13, zmm13, 16
774 vprord zmm14, zmm14, 16
775 vpaddd zmm10, zmm10, zmm15
776 vpaddd zmm11, zmm11, zmm12
777 vpaddd zmm8, zmm8, zmm13
778 vpaddd zmm9, zmm9, zmm14
779 vpxord zmm5, zmm5, zmm10
780 vpxord zmm6, zmm6, zmm11
781 vpxord zmm7, zmm7, zmm8
782 vpxord zmm4, zmm4, zmm9
783 vprord zmm5, zmm5, 12
784 vprord zmm6, zmm6, 12
785 vprord zmm7, zmm7, 12
786 vprord zmm4, zmm4, 12
787 vpaddd zmm0, zmm0, zmm18
788 vpaddd zmm1, zmm1, zmm19
789 vpaddd zmm2, zmm2, zmm17
790 vpaddd zmm3, zmm3, zmm20
791 vpaddd zmm0, zmm0, zmm5
792 vpaddd zmm1, zmm1, zmm6
793 vpaddd zmm2, zmm2, zmm7
794 vpaddd zmm3, zmm3, zmm4
795 vpxord zmm15, zmm15, zmm0
796 vpxord zmm12, zmm12, zmm1
797 vpxord zmm13, zmm13, zmm2
798 vpxord zmm14, zmm14, zmm3
799 vprord zmm15, zmm15, 8
800 vprord zmm12, zmm12, 8
801 vprord zmm13, zmm13, 8
802 vprord zmm14, zmm14, 8
803 vpaddd zmm10, zmm10, zmm15
804 vpaddd zmm11, zmm11, zmm12
805 vpaddd zmm8, zmm8, zmm13
806 vpaddd zmm9, zmm9, zmm14
807 vpxord zmm5, zmm5, zmm10
808 vpxord zmm6, zmm6, zmm11
809 vpxord zmm7, zmm7, zmm8
810 vpxord zmm4, zmm4, zmm9
811 vprord zmm5, zmm5, 7
812 vprord zmm6, zmm6, 7
813 vprord zmm7, zmm7, 7
814 vprord zmm4, zmm4, 7
815 vpaddd zmm0, zmm0, zmm25
816 vpaddd zmm1, zmm1, zmm27
817 vpaddd zmm2, zmm2, zmm24
818 vpaddd zmm3, zmm3, zmm31
819 vpaddd zmm0, zmm0, zmm4
820 vpaddd zmm1, zmm1, zmm5
821 vpaddd zmm2, zmm2, zmm6
822 vpaddd zmm3, zmm3, zmm7
823 vpxord zmm12, zmm12, zmm0
824 vpxord zmm13, zmm13, zmm1
825 vpxord zmm14, zmm14, zmm2
826 vpxord zmm15, zmm15, zmm3
827 vprord zmm12, zmm12, 16
828 vprord zmm13, zmm13, 16
829 vprord zmm14, zmm14, 16
830 vprord zmm15, zmm15, 16
831 vpaddd zmm8, zmm8, zmm12
832 vpaddd zmm9, zmm9, zmm13
833 vpaddd zmm10, zmm10, zmm14
834 vpaddd zmm11, zmm11, zmm15
835 vpxord zmm4, zmm4, zmm8
836 vpxord zmm5, zmm5, zmm9
837 vpxord zmm6, zmm6, zmm10
838 vpxord zmm7, zmm7, zmm11
839 vprord zmm4, zmm4, 12
840 vprord zmm5, zmm5, 12
841 vprord zmm6, zmm6, 12
842 vprord zmm7, zmm7, 12
843 vpaddd zmm0, zmm0, zmm30
844 vpaddd zmm1, zmm1, zmm21
845 vpaddd zmm2, zmm2, zmm28
846 vpaddd zmm3, zmm3, zmm17
847 vpaddd zmm0, zmm0, zmm4
848 vpaddd zmm1, zmm1, zmm5
849 vpaddd zmm2, zmm2, zmm6
850 vpaddd zmm3, zmm3, zmm7
851 vpxord zmm12, zmm12, zmm0
852 vpxord zmm13, zmm13, zmm1
853 vpxord zmm14, zmm14, zmm2
854 vpxord zmm15, zmm15, zmm3
855 vprord zmm12, zmm12, 8
856 vprord zmm13, zmm13, 8
857 vprord zmm14, zmm14, 8
858 vprord zmm15, zmm15, 8
859 vpaddd zmm8, zmm8, zmm12
860 vpaddd zmm9, zmm9, zmm13
861 vpaddd zmm10, zmm10, zmm14
862 vpaddd zmm11, zmm11, zmm15
863 vpxord zmm4, zmm4, zmm8
864 vpxord zmm5, zmm5, zmm9
865 vpxord zmm6, zmm6, zmm10
866 vpxord zmm7, zmm7, zmm11
867 vprord zmm4, zmm4, 7
868 vprord zmm5, zmm5, 7
869 vprord zmm6, zmm6, 7
870 vprord zmm7, zmm7, 7
871 vpaddd zmm0, zmm0, zmm29
872 vpaddd zmm1, zmm1, zmm16
873 vpaddd zmm2, zmm2, zmm18
874 vpaddd zmm3, zmm3, zmm20
875 vpaddd zmm0, zmm0, zmm5
876 vpaddd zmm1, zmm1, zmm6
877 vpaddd zmm2, zmm2, zmm7
878 vpaddd zmm3, zmm3, zmm4
879 vpxord zmm15, zmm15, zmm0
880 vpxord zmm12, zmm12, zmm1
881 vpxord zmm13, zmm13, zmm2
882 vpxord zmm14, zmm14, zmm3
883 vprord zmm15, zmm15, 16
884 vprord zmm12, zmm12, 16
885 vprord zmm13, zmm13, 16
886 vprord zmm14, zmm14, 16
887 vpaddd zmm10, zmm10, zmm15
888 vpaddd zmm11, zmm11, zmm12
889 vpaddd zmm8, zmm8, zmm13
890 vpaddd zmm9, zmm9, zmm14
891 vpxord zmm5, zmm5, zmm10
892 vpxord zmm6, zmm6, zmm11
893 vpxord zmm7, zmm7, zmm8
894 vpxord zmm4, zmm4, zmm9
895 vprord zmm5, zmm5, 12
896 vprord zmm6, zmm6, 12
897 vprord zmm7, zmm7, 12
898 vprord zmm4, zmm4, 12
899 vpaddd zmm0, zmm0, zmm19
900 vpaddd zmm1, zmm1, zmm26
901 vpaddd zmm2, zmm2, zmm22
902 vpaddd zmm3, zmm3, zmm23
903 vpaddd zmm0, zmm0, zmm5
904 vpaddd zmm1, zmm1, zmm6
905 vpaddd zmm2, zmm2, zmm7
906 vpaddd zmm3, zmm3, zmm4
907 vpxord zmm15, zmm15, zmm0
908 vpxord zmm12, zmm12, zmm1
909 vpxord zmm13, zmm13, zmm2
910 vpxord zmm14, zmm14, zmm3
911 vprord zmm15, zmm15, 8
912 vprord zmm12, zmm12, 8
913 vprord zmm13, zmm13, 8
914 vprord zmm14, zmm14, 8
915 vpaddd zmm10, zmm10, zmm15
916 vpaddd zmm11, zmm11, zmm12
917 vpaddd zmm8, zmm8, zmm13
918 vpaddd zmm9, zmm9, zmm14
919 vpxord zmm5, zmm5, zmm10
920 vpxord zmm6, zmm6, zmm11
921 vpxord zmm7, zmm7, zmm8
922 vpxord zmm4, zmm4, zmm9
923 vprord zmm5, zmm5, 7
924 vprord zmm6, zmm6, 7
925 vprord zmm7, zmm7, 7
926 vprord zmm4, zmm4, 7
927 vpaddd zmm0, zmm0, zmm27
928 vpaddd zmm1, zmm1, zmm21
929 vpaddd zmm2, zmm2, zmm17
930 vpaddd zmm3, zmm3, zmm24
931 vpaddd zmm0, zmm0, zmm4
932 vpaddd zmm1, zmm1, zmm5
933 vpaddd zmm2, zmm2, zmm6
934 vpaddd zmm3, zmm3, zmm7
935 vpxord zmm12, zmm12, zmm0
936 vpxord zmm13, zmm13, zmm1
937 vpxord zmm14, zmm14, zmm2
938 vpxord zmm15, zmm15, zmm3
939 vprord zmm12, zmm12, 16
940 vprord zmm13, zmm13, 16
941 vprord zmm14, zmm14, 16
942 vprord zmm15, zmm15, 16
943 vpaddd zmm8, zmm8, zmm12
944 vpaddd zmm9, zmm9, zmm13
945 vpaddd zmm10, zmm10, zmm14
946 vpaddd zmm11, zmm11, zmm15
947 vpxord zmm4, zmm4, zmm8
948 vpxord zmm5, zmm5, zmm9
949 vpxord zmm6, zmm6, zmm10
950 vpxord zmm7, zmm7, zmm11
951 vprord zmm4, zmm4, 12
952 vprord zmm5, zmm5, 12
953 vprord zmm6, zmm6, 12
954 vprord zmm7, zmm7, 12
955 vpaddd zmm0, zmm0, zmm31
956 vpaddd zmm1, zmm1, zmm16
957 vpaddd zmm2, zmm2, zmm25
958 vpaddd zmm3, zmm3, zmm22
959 vpaddd zmm0, zmm0, zmm4
960 vpaddd zmm1, zmm1, zmm5
961 vpaddd zmm2, zmm2, zmm6
962 vpaddd zmm3, zmm3, zmm7
963 vpxord zmm12, zmm12, zmm0
964 vpxord zmm13, zmm13, zmm1
965 vpxord zmm14, zmm14, zmm2
966 vpxord zmm15, zmm15, zmm3
967 vprord zmm12, zmm12, 8
968 vprord zmm13, zmm13, 8
969 vprord zmm14, zmm14, 8
970 vprord zmm15, zmm15, 8
971 vpaddd zmm8, zmm8, zmm12
972 vpaddd zmm9, zmm9, zmm13
973 vpaddd zmm10, zmm10, zmm14
974 vpaddd zmm11, zmm11, zmm15
975 vpxord zmm4, zmm4, zmm8
976 vpxord zmm5, zmm5, zmm9
977 vpxord zmm6, zmm6, zmm10
978 vpxord zmm7, zmm7, zmm11
979 vprord zmm4, zmm4, 7
980 vprord zmm5, zmm5, 7
981 vprord zmm6, zmm6, 7
982 vprord zmm7, zmm7, 7
983 vpaddd zmm0, zmm0, zmm30
984 vpaddd zmm1, zmm1, zmm18
985 vpaddd zmm2, zmm2, zmm19
986 vpaddd zmm3, zmm3, zmm23
987 vpaddd zmm0, zmm0, zmm5
988 vpaddd zmm1, zmm1, zmm6
989 vpaddd zmm2, zmm2, zmm7
990 vpaddd zmm3, zmm3, zmm4
991 vpxord zmm15, zmm15, zmm0
992 vpxord zmm12, zmm12, zmm1
993 vpxord zmm13, zmm13, zmm2
994 vpxord zmm14, zmm14, zmm3
995 vprord zmm15, zmm15, 16
996 vprord zmm12, zmm12, 16
997 vprord zmm13, zmm13, 16
998 vprord zmm14, zmm14, 16
999 vpaddd zmm10, zmm10, zmm15
1000 vpaddd zmm11, zmm11, zmm12
1001 vpaddd zmm8, zmm8, zmm13
1002 vpaddd zmm9, zmm9, zmm14
1003 vpxord zmm5, zmm5, zmm10
1004 vpxord zmm6, zmm6, zmm11
1005 vpxord zmm7, zmm7, zmm8
1006 vpxord zmm4, zmm4, zmm9
1007 vprord zmm5, zmm5, 12
1008 vprord zmm6, zmm6, 12
1009 vprord zmm7, zmm7, 12
1010 vprord zmm4, zmm4, 12
1011 vpaddd zmm0, zmm0, zmm26
1012 vpaddd zmm1, zmm1, zmm28
1013 vpaddd zmm2, zmm2, zmm20
1014 vpaddd zmm3, zmm3, zmm29
1015 vpaddd zmm0, zmm0, zmm5
1016 vpaddd zmm1, zmm1, zmm6
1017 vpaddd zmm2, zmm2, zmm7
1018 vpaddd zmm3, zmm3, zmm4
1019 vpxord zmm15, zmm15, zmm0
1020 vpxord zmm12, zmm12, zmm1
1021 vpxord zmm13, zmm13, zmm2
1022 vpxord zmm14, zmm14, zmm3
1023 vprord zmm15, zmm15, 8
1024 vprord zmm12, zmm12, 8
1025 vprord zmm13, zmm13, 8
1026 vprord zmm14, zmm14, 8
1027 vpaddd zmm10, zmm10, zmm15
1028 vpaddd zmm11, zmm11, zmm12
1029 vpaddd zmm8, zmm8, zmm13
1030 vpaddd zmm9, zmm9, zmm14
1031 vpxord zmm5, zmm5, zmm10
1032 vpxord zmm6, zmm6, zmm11
1033 vpxord zmm7, zmm7, zmm8
1034 vpxord zmm4, zmm4, zmm9
1035 vprord zmm5, zmm5, 7
1036 vprord zmm6, zmm6, 7
1037 vprord zmm7, zmm7, 7
1038 vprord zmm4, zmm4, 7
1039 vpxord zmm0, zmm0, zmm8
1040 vpxord zmm1, zmm1, zmm9
1041 vpxord zmm2, zmm2, zmm10
1042 vpxord zmm3, zmm3, zmm11
1043 vpxord zmm4, zmm4, zmm12
1044 vpxord zmm5, zmm5, zmm13
1045 vpxord zmm6, zmm6, zmm14
1046 vpxord zmm7, zmm7, zmm15
1047 movzx eax, byte ptr [rbp+0x38]
1048 jne 9b
1049 mov rbx, qword ptr [rbp+0x50]
1050 vpunpckldq zmm16, zmm0, zmm1
1051 vpunpckhdq zmm17, zmm0, zmm1
1052 vpunpckldq zmm18, zmm2, zmm3
1053 vpunpckhdq zmm19, zmm2, zmm3
1054 vpunpckldq zmm20, zmm4, zmm5
1055 vpunpckhdq zmm21, zmm4, zmm5
1056 vpunpckldq zmm22, zmm6, zmm7
1057 vpunpckhdq zmm23, zmm6, zmm7
1058 vpunpcklqdq zmm0, zmm16, zmm18
1059 vpunpckhqdq zmm1, zmm16, zmm18
1060 vpunpcklqdq zmm2, zmm17, zmm19
1061 vpunpckhqdq zmm3, zmm17, zmm19
1062 vpunpcklqdq zmm4, zmm20, zmm22
1063 vpunpckhqdq zmm5, zmm20, zmm22
1064 vpunpcklqdq zmm6, zmm21, zmm23
1065 vpunpckhqdq zmm7, zmm21, zmm23
1066 vshufi32x4 zmm16, zmm0, zmm4, 0x88
1067 vshufi32x4 zmm17, zmm1, zmm5, 0x88
1068 vshufi32x4 zmm18, zmm2, zmm6, 0x88
1069 vshufi32x4 zmm19, zmm3, zmm7, 0x88
1070 vshufi32x4 zmm20, zmm0, zmm4, 0xDD
1071 vshufi32x4 zmm21, zmm1, zmm5, 0xDD
1072 vshufi32x4 zmm22, zmm2, zmm6, 0xDD
1073 vshufi32x4 zmm23, zmm3, zmm7, 0xDD
1074 vshufi32x4 zmm0, zmm16, zmm17, 0x88
1075 vshufi32x4 zmm1, zmm18, zmm19, 0x88
1076 vshufi32x4 zmm2, zmm20, zmm21, 0x88
1077 vshufi32x4 zmm3, zmm22, zmm23, 0x88
1078 vshufi32x4 zmm4, zmm16, zmm17, 0xDD
1079 vshufi32x4 zmm5, zmm18, zmm19, 0xDD
1080 vshufi32x4 zmm6, zmm20, zmm21, 0xDD
1081 vshufi32x4 zmm7, zmm22, zmm23, 0xDD
1082 vmovdqu32 zmmword ptr [rbx], zmm0
1083 vmovdqu32 zmmword ptr [rbx+0x1*0x40], zmm1
1084 vmovdqu32 zmmword ptr [rbx+0x2*0x40], zmm2
1085 vmovdqu32 zmmword ptr [rbx+0x3*0x40], zmm3
1086 vmovdqu32 zmmword ptr [rbx+0x4*0x40], zmm4
1087 vmovdqu32 zmmword ptr [rbx+0x5*0x40], zmm5
1088 vmovdqu32 zmmword ptr [rbx+0x6*0x40], zmm6
1089 vmovdqu32 zmmword ptr [rbx+0x7*0x40], zmm7
1090 vmovdqa32 zmm0, zmmword ptr [rsp]
1091 vmovdqa32 zmm1, zmmword ptr [rsp+0x1*0x40]
1092 vmovdqa32 zmm2, zmm0
1093 vpaddd zmm2{k1}, zmm0, dword ptr [ADD16+rip] {1to16}
1094 vpcmpltud k2, zmm2, zmm0
1095 vpaddd zmm1 {k2}, zmm1, dword ptr [ADD1+rip] {1to16}
1096 vmovdqa32 zmmword ptr [rsp], zmm2
1097 vmovdqa32 zmmword ptr [rsp+0x1*0x40], zmm1
1098 add rdi, 128
1099 add rbx, 512
1100 mov qword ptr [rbp+0x50], rbx
1101 sub rsi, 16
1102 cmp rsi, 16
1103 jnc 2b
1104 test rsi, rsi
1105 jnz 3f
11064:
1107 vzeroupper
1108 mov rsp, rbp
1109 pop rbp
1110 pop rbx
1111 pop r12
1112 pop r13
1113 pop r14
1114 pop r15
1115 ret
1116.p2align 6
11173:
1118 test esi, 0x8
1119 je 3f
1120 vpbroadcastd ymm0, dword ptr [rcx]
1121 vpbroadcastd ymm1, dword ptr [rcx+0x4]
1122 vpbroadcastd ymm2, dword ptr [rcx+0x8]
1123 vpbroadcastd ymm3, dword ptr [rcx+0xC]
1124 vpbroadcastd ymm4, dword ptr [rcx+0x10]
1125 vpbroadcastd ymm5, dword ptr [rcx+0x14]
1126 vpbroadcastd ymm6, dword ptr [rcx+0x18]
1127 vpbroadcastd ymm7, dword ptr [rcx+0x1C]
1128 mov r8, qword ptr [rdi]
1129 mov r9, qword ptr [rdi+0x8]
1130 mov r10, qword ptr [rdi+0x10]
1131 mov r11, qword ptr [rdi+0x18]
1132 mov r12, qword ptr [rdi+0x20]
1133 mov r13, qword ptr [rdi+0x28]
1134 mov r14, qword ptr [rdi+0x30]
1135 mov r15, qword ptr [rdi+0x38]
1136 movzx eax, byte ptr [rbp+0x38]
1137 movzx ebx, byte ptr [rbp+0x40]
1138 or eax, ebx
1139 xor edx, edx
11402:
1141 movzx ebx, byte ptr [rbp+0x48]
1142 or ebx, eax
1143 add rdx, 64
1144 cmp rdx, qword ptr [rsp+0x80]
1145 cmove eax, ebx
1146 mov dword ptr [rsp+0x88], eax
1147 vmovups xmm8, xmmword ptr [r8+rdx-0x40]
1148 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x40], 0x01
1149 vmovups xmm9, xmmword ptr [r9+rdx-0x40]
1150 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x40], 0x01
1151 vunpcklpd ymm12, ymm8, ymm9
1152 vunpckhpd ymm13, ymm8, ymm9
1153 vmovups xmm10, xmmword ptr [r10+rdx-0x40]
1154 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x40], 0x01
1155 vmovups xmm11, xmmword ptr [r11+rdx-0x40]
1156 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x40], 0x01
1157 vunpcklpd ymm14, ymm10, ymm11
1158 vunpckhpd ymm15, ymm10, ymm11
1159 vshufps ymm16, ymm12, ymm14, 136
1160 vshufps ymm17, ymm12, ymm14, 221
1161 vshufps ymm18, ymm13, ymm15, 136
1162 vshufps ymm19, ymm13, ymm15, 221
1163 vmovups xmm8, xmmword ptr [r8+rdx-0x30]
1164 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x30], 0x01
1165 vmovups xmm9, xmmword ptr [r9+rdx-0x30]
1166 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x30], 0x01
1167 vunpcklpd ymm12, ymm8, ymm9
1168 vunpckhpd ymm13, ymm8, ymm9
1169 vmovups xmm10, xmmword ptr [r10+rdx-0x30]
1170 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x30], 0x01
1171 vmovups xmm11, xmmword ptr [r11+rdx-0x30]
1172 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x30], 0x01
1173 vunpcklpd ymm14, ymm10, ymm11
1174 vunpckhpd ymm15, ymm10, ymm11
1175 vshufps ymm20, ymm12, ymm14, 136
1176 vshufps ymm21, ymm12, ymm14, 221
1177 vshufps ymm22, ymm13, ymm15, 136
1178 vshufps ymm23, ymm13, ymm15, 221
1179 vmovups xmm8, xmmword ptr [r8+rdx-0x20]
1180 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x20], 0x01
1181 vmovups xmm9, xmmword ptr [r9+rdx-0x20]
1182 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x20], 0x01
1183 vunpcklpd ymm12, ymm8, ymm9
1184 vunpckhpd ymm13, ymm8, ymm9
1185 vmovups xmm10, xmmword ptr [r10+rdx-0x20]
1186 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x20], 0x01
1187 vmovups xmm11, xmmword ptr [r11+rdx-0x20]
1188 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x20], 0x01
1189 vunpcklpd ymm14, ymm10, ymm11
1190 vunpckhpd ymm15, ymm10, ymm11
1191 vshufps ymm24, ymm12, ymm14, 136
1192 vshufps ymm25, ymm12, ymm14, 221
1193 vshufps ymm26, ymm13, ymm15, 136
1194 vshufps ymm27, ymm13, ymm15, 221
1195 vmovups xmm8, xmmword ptr [r8+rdx-0x10]
1196 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x10], 0x01
1197 vmovups xmm9, xmmword ptr [r9+rdx-0x10]
1198 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x10], 0x01
1199 vunpcklpd ymm12, ymm8, ymm9
1200 vunpckhpd ymm13, ymm8, ymm9
1201 vmovups xmm10, xmmword ptr [r10+rdx-0x10]
1202 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x10], 0x01
1203 vmovups xmm11, xmmword ptr [r11+rdx-0x10]
1204 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x10], 0x01
1205 vunpcklpd ymm14, ymm10, ymm11
1206 vunpckhpd ymm15, ymm10, ymm11
1207 vshufps ymm28, ymm12, ymm14, 136
1208 vshufps ymm29, ymm12, ymm14, 221
1209 vshufps ymm30, ymm13, ymm15, 136
1210 vshufps ymm31, ymm13, ymm15, 221
1211 vpbroadcastd ymm8, dword ptr [BLAKE3_IV_0+rip]
1212 vpbroadcastd ymm9, dword ptr [BLAKE3_IV_1+rip]
1213 vpbroadcastd ymm10, dword ptr [BLAKE3_IV_2+rip]
1214 vpbroadcastd ymm11, dword ptr [BLAKE3_IV_3+rip]
1215 vmovdqa ymm12, ymmword ptr [rsp]
1216 vmovdqa ymm13, ymmword ptr [rsp+0x40]
1217 vpbroadcastd ymm14, dword ptr [BLAKE3_BLOCK_LEN+rip]
1218 vpbroadcastd ymm15, dword ptr [rsp+0x88]
1219 vpaddd ymm0, ymm0, ymm16
1220 vpaddd ymm1, ymm1, ymm18
1221 vpaddd ymm2, ymm2, ymm20
1222 vpaddd ymm3, ymm3, ymm22
1223 vpaddd ymm0, ymm0, ymm4
1224 vpaddd ymm1, ymm1, ymm5
1225 vpaddd ymm2, ymm2, ymm6
1226 vpaddd ymm3, ymm3, ymm7
1227 vpxord ymm12, ymm12, ymm0
1228 vpxord ymm13, ymm13, ymm1
1229 vpxord ymm14, ymm14, ymm2
1230 vpxord ymm15, ymm15, ymm3
1231 vprord ymm12, ymm12, 16
1232 vprord ymm13, ymm13, 16
1233 vprord ymm14, ymm14, 16
1234 vprord ymm15, ymm15, 16
1235 vpaddd ymm8, ymm8, ymm12
1236 vpaddd ymm9, ymm9, ymm13
1237 vpaddd ymm10, ymm10, ymm14
1238 vpaddd ymm11, ymm11, ymm15
1239 vpxord ymm4, ymm4, ymm8
1240 vpxord ymm5, ymm5, ymm9
1241 vpxord ymm6, ymm6, ymm10
1242 vpxord ymm7, ymm7, ymm11
1243 vprord ymm4, ymm4, 12
1244 vprord ymm5, ymm5, 12
1245 vprord ymm6, ymm6, 12
1246 vprord ymm7, ymm7, 12
1247 vpaddd ymm0, ymm0, ymm17
1248 vpaddd ymm1, ymm1, ymm19
1249 vpaddd ymm2, ymm2, ymm21
1250 vpaddd ymm3, ymm3, ymm23
1251 vpaddd ymm0, ymm0, ymm4
1252 vpaddd ymm1, ymm1, ymm5
1253 vpaddd ymm2, ymm2, ymm6
1254 vpaddd ymm3, ymm3, ymm7
1255 vpxord ymm12, ymm12, ymm0
1256 vpxord ymm13, ymm13, ymm1
1257 vpxord ymm14, ymm14, ymm2
1258 vpxord ymm15, ymm15, ymm3
1259 vprord ymm12, ymm12, 8
1260 vprord ymm13, ymm13, 8
1261 vprord ymm14, ymm14, 8
1262 vprord ymm15, ymm15, 8
1263 vpaddd ymm8, ymm8, ymm12
1264 vpaddd ymm9, ymm9, ymm13
1265 vpaddd ymm10, ymm10, ymm14
1266 vpaddd ymm11, ymm11, ymm15
1267 vpxord ymm4, ymm4, ymm8
1268 vpxord ymm5, ymm5, ymm9
1269 vpxord ymm6, ymm6, ymm10
1270 vpxord ymm7, ymm7, ymm11
1271 vprord ymm4, ymm4, 7
1272 vprord ymm5, ymm5, 7
1273 vprord ymm6, ymm6, 7
1274 vprord ymm7, ymm7, 7
1275 vpaddd ymm0, ymm0, ymm24
1276 vpaddd ymm1, ymm1, ymm26
1277 vpaddd ymm2, ymm2, ymm28
1278 vpaddd ymm3, ymm3, ymm30
1279 vpaddd ymm0, ymm0, ymm5
1280 vpaddd ymm1, ymm1, ymm6
1281 vpaddd ymm2, ymm2, ymm7
1282 vpaddd ymm3, ymm3, ymm4
1283 vpxord ymm15, ymm15, ymm0
1284 vpxord ymm12, ymm12, ymm1
1285 vpxord ymm13, ymm13, ymm2
1286 vpxord ymm14, ymm14, ymm3
1287 vprord ymm15, ymm15, 16
1288 vprord ymm12, ymm12, 16
1289 vprord ymm13, ymm13, 16
1290 vprord ymm14, ymm14, 16
1291 vpaddd ymm10, ymm10, ymm15
1292 vpaddd ymm11, ymm11, ymm12
1293 vpaddd ymm8, ymm8, ymm13
1294 vpaddd ymm9, ymm9, ymm14
1295 vpxord ymm5, ymm5, ymm10
1296 vpxord ymm6, ymm6, ymm11
1297 vpxord ymm7, ymm7, ymm8
1298 vpxord ymm4, ymm4, ymm9
1299 vprord ymm5, ymm5, 12
1300 vprord ymm6, ymm6, 12
1301 vprord ymm7, ymm7, 12
1302 vprord ymm4, ymm4, 12
1303 vpaddd ymm0, ymm0, ymm25
1304 vpaddd ymm1, ymm1, ymm27
1305 vpaddd ymm2, ymm2, ymm29
1306 vpaddd ymm3, ymm3, ymm31
1307 vpaddd ymm0, ymm0, ymm5
1308 vpaddd ymm1, ymm1, ymm6
1309 vpaddd ymm2, ymm2, ymm7
1310 vpaddd ymm3, ymm3, ymm4
1311 vpxord ymm15, ymm15, ymm0
1312 vpxord ymm12, ymm12, ymm1
1313 vpxord ymm13, ymm13, ymm2
1314 vpxord ymm14, ymm14, ymm3
1315 vprord ymm15, ymm15, 8
1316 vprord ymm12, ymm12, 8
1317 vprord ymm13, ymm13, 8
1318 vprord ymm14, ymm14, 8
1319 vpaddd ymm10, ymm10, ymm15
1320 vpaddd ymm11, ymm11, ymm12
1321 vpaddd ymm8, ymm8, ymm13
1322 vpaddd ymm9, ymm9, ymm14
1323 vpxord ymm5, ymm5, ymm10
1324 vpxord ymm6, ymm6, ymm11
1325 vpxord ymm7, ymm7, ymm8
1326 vpxord ymm4, ymm4, ymm9
1327 vprord ymm5, ymm5, 7
1328 vprord ymm6, ymm6, 7
1329 vprord ymm7, ymm7, 7
1330 vprord ymm4, ymm4, 7
1331 vpaddd ymm0, ymm0, ymm18
1332 vpaddd ymm1, ymm1, ymm19
1333 vpaddd ymm2, ymm2, ymm23
1334 vpaddd ymm3, ymm3, ymm20
1335 vpaddd ymm0, ymm0, ymm4
1336 vpaddd ymm1, ymm1, ymm5
1337 vpaddd ymm2, ymm2, ymm6
1338 vpaddd ymm3, ymm3, ymm7
1339 vpxord ymm12, ymm12, ymm0
1340 vpxord ymm13, ymm13, ymm1
1341 vpxord ymm14, ymm14, ymm2
1342 vpxord ymm15, ymm15, ymm3
1343 vprord ymm12, ymm12, 16
1344 vprord ymm13, ymm13, 16
1345 vprord ymm14, ymm14, 16
1346 vprord ymm15, ymm15, 16
1347 vpaddd ymm8, ymm8, ymm12
1348 vpaddd ymm9, ymm9, ymm13
1349 vpaddd ymm10, ymm10, ymm14
1350 vpaddd ymm11, ymm11, ymm15
1351 vpxord ymm4, ymm4, ymm8
1352 vpxord ymm5, ymm5, ymm9
1353 vpxord ymm6, ymm6, ymm10
1354 vpxord ymm7, ymm7, ymm11
1355 vprord ymm4, ymm4, 12
1356 vprord ymm5, ymm5, 12
1357 vprord ymm6, ymm6, 12
1358 vprord ymm7, ymm7, 12
1359 vpaddd ymm0, ymm0, ymm22
1360 vpaddd ymm1, ymm1, ymm26
1361 vpaddd ymm2, ymm2, ymm16
1362 vpaddd ymm3, ymm3, ymm29
1363 vpaddd ymm0, ymm0, ymm4
1364 vpaddd ymm1, ymm1, ymm5
1365 vpaddd ymm2, ymm2, ymm6
1366 vpaddd ymm3, ymm3, ymm7
1367 vpxord ymm12, ymm12, ymm0
1368 vpxord ymm13, ymm13, ymm1
1369 vpxord ymm14, ymm14, ymm2
1370 vpxord ymm15, ymm15, ymm3
1371 vprord ymm12, ymm12, 8
1372 vprord ymm13, ymm13, 8
1373 vprord ymm14, ymm14, 8
1374 vprord ymm15, ymm15, 8
1375 vpaddd ymm8, ymm8, ymm12
1376 vpaddd ymm9, ymm9, ymm13
1377 vpaddd ymm10, ymm10, ymm14
1378 vpaddd ymm11, ymm11, ymm15
1379 vpxord ymm4, ymm4, ymm8
1380 vpxord ymm5, ymm5, ymm9
1381 vpxord ymm6, ymm6, ymm10
1382 vpxord ymm7, ymm7, ymm11
1383 vprord ymm4, ymm4, 7
1384 vprord ymm5, ymm5, 7
1385 vprord ymm6, ymm6, 7
1386 vprord ymm7, ymm7, 7
1387 vpaddd ymm0, ymm0, ymm17
1388 vpaddd ymm1, ymm1, ymm28
1389 vpaddd ymm2, ymm2, ymm25
1390 vpaddd ymm3, ymm3, ymm31
1391 vpaddd ymm0, ymm0, ymm5
1392 vpaddd ymm1, ymm1, ymm6
1393 vpaddd ymm2, ymm2, ymm7
1394 vpaddd ymm3, ymm3, ymm4
1395 vpxord ymm15, ymm15, ymm0
1396 vpxord ymm12, ymm12, ymm1
1397 vpxord ymm13, ymm13, ymm2
1398 vpxord ymm14, ymm14, ymm3
1399 vprord ymm15, ymm15, 16
1400 vprord ymm12, ymm12, 16
1401 vprord ymm13, ymm13, 16
1402 vprord ymm14, ymm14, 16
1403 vpaddd ymm10, ymm10, ymm15
1404 vpaddd ymm11, ymm11, ymm12
1405 vpaddd ymm8, ymm8, ymm13
1406 vpaddd ymm9, ymm9, ymm14
1407 vpxord ymm5, ymm5, ymm10
1408 vpxord ymm6, ymm6, ymm11
1409 vpxord ymm7, ymm7, ymm8
1410 vpxord ymm4, ymm4, ymm9
1411 vprord ymm5, ymm5, 12
1412 vprord ymm6, ymm6, 12
1413 vprord ymm7, ymm7, 12
1414 vprord ymm4, ymm4, 12
1415 vpaddd ymm0, ymm0, ymm27
1416 vpaddd ymm1, ymm1, ymm21
1417 vpaddd ymm2, ymm2, ymm30
1418 vpaddd ymm3, ymm3, ymm24
1419 vpaddd ymm0, ymm0, ymm5
1420 vpaddd ymm1, ymm1, ymm6
1421 vpaddd ymm2, ymm2, ymm7
1422 vpaddd ymm3, ymm3, ymm4
1423 vpxord ymm15, ymm15, ymm0
1424 vpxord ymm12, ymm12, ymm1
1425 vpxord ymm13, ymm13, ymm2
1426 vpxord ymm14, ymm14, ymm3
1427 vprord ymm15, ymm15, 8
1428 vprord ymm12, ymm12, 8
1429 vprord ymm13, ymm13, 8
1430 vprord ymm14, ymm14, 8
1431 vpaddd ymm10, ymm10, ymm15
1432 vpaddd ymm11, ymm11, ymm12
1433 vpaddd ymm8, ymm8, ymm13
1434 vpaddd ymm9, ymm9, ymm14
1435 vpxord ymm5, ymm5, ymm10
1436 vpxord ymm6, ymm6, ymm11
1437 vpxord ymm7, ymm7, ymm8
1438 vpxord ymm4, ymm4, ymm9
1439 vprord ymm5, ymm5, 7
1440 vprord ymm6, ymm6, 7
1441 vprord ymm7, ymm7, 7
1442 vprord ymm4, ymm4, 7
1443 vpaddd ymm0, ymm0, ymm19
1444 vpaddd ymm1, ymm1, ymm26
1445 vpaddd ymm2, ymm2, ymm29
1446 vpaddd ymm3, ymm3, ymm23
1447 vpaddd ymm0, ymm0, ymm4
1448 vpaddd ymm1, ymm1, ymm5
1449 vpaddd ymm2, ymm2, ymm6
1450 vpaddd ymm3, ymm3, ymm7
1451 vpxord ymm12, ymm12, ymm0
1452 vpxord ymm13, ymm13, ymm1
1453 vpxord ymm14, ymm14, ymm2
1454 vpxord ymm15, ymm15, ymm3
1455 vprord ymm12, ymm12, 16
1456 vprord ymm13, ymm13, 16
1457 vprord ymm14, ymm14, 16
1458 vprord ymm15, ymm15, 16
1459 vpaddd ymm8, ymm8, ymm12
1460 vpaddd ymm9, ymm9, ymm13
1461 vpaddd ymm10, ymm10, ymm14
1462 vpaddd ymm11, ymm11, ymm15
1463 vpxord ymm4, ymm4, ymm8
1464 vpxord ymm5, ymm5, ymm9
1465 vpxord ymm6, ymm6, ymm10
1466 vpxord ymm7, ymm7, ymm11
1467 vprord ymm4, ymm4, 12
1468 vprord ymm5, ymm5, 12
1469 vprord ymm6, ymm6, 12
1470 vprord ymm7, ymm7, 12
1471 vpaddd ymm0, ymm0, ymm20
1472 vpaddd ymm1, ymm1, ymm28
1473 vpaddd ymm2, ymm2, ymm18
1474 vpaddd ymm3, ymm3, ymm30
1475 vpaddd ymm0, ymm0, ymm4
1476 vpaddd ymm1, ymm1, ymm5
1477 vpaddd ymm2, ymm2, ymm6
1478 vpaddd ymm3, ymm3, ymm7
1479 vpxord ymm12, ymm12, ymm0
1480 vpxord ymm13, ymm13, ymm1
1481 vpxord ymm14, ymm14, ymm2
1482 vpxord ymm15, ymm15, ymm3
1483 vprord ymm12, ymm12, 8
1484 vprord ymm13, ymm13, 8
1485 vprord ymm14, ymm14, 8
1486 vprord ymm15, ymm15, 8
1487 vpaddd ymm8, ymm8, ymm12
1488 vpaddd ymm9, ymm9, ymm13
1489 vpaddd ymm10, ymm10, ymm14
1490 vpaddd ymm11, ymm11, ymm15
1491 vpxord ymm4, ymm4, ymm8
1492 vpxord ymm5, ymm5, ymm9
1493 vpxord ymm6, ymm6, ymm10
1494 vpxord ymm7, ymm7, ymm11
1495 vprord ymm4, ymm4, 7
1496 vprord ymm5, ymm5, 7
1497 vprord ymm6, ymm6, 7
1498 vprord ymm7, ymm7, 7
1499 vpaddd ymm0, ymm0, ymm22
1500 vpaddd ymm1, ymm1, ymm25
1501 vpaddd ymm2, ymm2, ymm27
1502 vpaddd ymm3, ymm3, ymm24
1503 vpaddd ymm0, ymm0, ymm5
1504 vpaddd ymm1, ymm1, ymm6
1505 vpaddd ymm2, ymm2, ymm7
1506 vpaddd ymm3, ymm3, ymm4
1507 vpxord ymm15, ymm15, ymm0
1508 vpxord ymm12, ymm12, ymm1
1509 vpxord ymm13, ymm13, ymm2
1510 vpxord ymm14, ymm14, ymm3
1511 vprord ymm15, ymm15, 16
1512 vprord ymm12, ymm12, 16
1513 vprord ymm13, ymm13, 16
1514 vprord ymm14, ymm14, 16
1515 vpaddd ymm10, ymm10, ymm15
1516 vpaddd ymm11, ymm11, ymm12
1517 vpaddd ymm8, ymm8, ymm13
1518 vpaddd ymm9, ymm9, ymm14
1519 vpxord ymm5, ymm5, ymm10
1520 vpxord ymm6, ymm6, ymm11
1521 vpxord ymm7, ymm7, ymm8
1522 vpxord ymm4, ymm4, ymm9
1523 vprord ymm5, ymm5, 12
1524 vprord ymm6, ymm6, 12
1525 vprord ymm7, ymm7, 12
1526 vprord ymm4, ymm4, 12
1527 vpaddd ymm0, ymm0, ymm21
1528 vpaddd ymm1, ymm1, ymm16
1529 vpaddd ymm2, ymm2, ymm31
1530 vpaddd ymm3, ymm3, ymm17
1531 vpaddd ymm0, ymm0, ymm5
1532 vpaddd ymm1, ymm1, ymm6
1533 vpaddd ymm2, ymm2, ymm7
1534 vpaddd ymm3, ymm3, ymm4
1535 vpxord ymm15, ymm15, ymm0
1536 vpxord ymm12, ymm12, ymm1
1537 vpxord ymm13, ymm13, ymm2
1538 vpxord ymm14, ymm14, ymm3
1539 vprord ymm15, ymm15, 8
1540 vprord ymm12, ymm12, 8
1541 vprord ymm13, ymm13, 8
1542 vprord ymm14, ymm14, 8
1543 vpaddd ymm10, ymm10, ymm15
1544 vpaddd ymm11, ymm11, ymm12
1545 vpaddd ymm8, ymm8, ymm13
1546 vpaddd ymm9, ymm9, ymm14
1547 vpxord ymm5, ymm5, ymm10
1548 vpxord ymm6, ymm6, ymm11
1549 vpxord ymm7, ymm7, ymm8
1550 vpxord ymm4, ymm4, ymm9
1551 vprord ymm5, ymm5, 7
1552 vprord ymm6, ymm6, 7
1553 vprord ymm7, ymm7, 7
1554 vprord ymm4, ymm4, 7
1555 vpaddd ymm0, ymm0, ymm26
1556 vpaddd ymm1, ymm1, ymm28
1557 vpaddd ymm2, ymm2, ymm30
1558 vpaddd ymm3, ymm3, ymm29
1559 vpaddd ymm0, ymm0, ymm4
1560 vpaddd ymm1, ymm1, ymm5
1561 vpaddd ymm2, ymm2, ymm6
1562 vpaddd ymm3, ymm3, ymm7
1563 vpxord ymm12, ymm12, ymm0
1564 vpxord ymm13, ymm13, ymm1
1565 vpxord ymm14, ymm14, ymm2
1566 vpxord ymm15, ymm15, ymm3
1567 vprord ymm12, ymm12, 16
1568 vprord ymm13, ymm13, 16
1569 vprord ymm14, ymm14, 16
1570 vprord ymm15, ymm15, 16
1571 vpaddd ymm8, ymm8, ymm12
1572 vpaddd ymm9, ymm9, ymm13
1573 vpaddd ymm10, ymm10, ymm14
1574 vpaddd ymm11, ymm11, ymm15
1575 vpxord ymm4, ymm4, ymm8
1576 vpxord ymm5, ymm5, ymm9
1577 vpxord ymm6, ymm6, ymm10
1578 vpxord ymm7, ymm7, ymm11
1579 vprord ymm4, ymm4, 12
1580 vprord ymm5, ymm5, 12
1581 vprord ymm6, ymm6, 12
1582 vprord ymm7, ymm7, 12
1583 vpaddd ymm0, ymm0, ymm23
1584 vpaddd ymm1, ymm1, ymm25
1585 vpaddd ymm2, ymm2, ymm19
1586 vpaddd ymm3, ymm3, ymm31
1587 vpaddd ymm0, ymm0, ymm4
1588 vpaddd ymm1, ymm1, ymm5
1589 vpaddd ymm2, ymm2, ymm6
1590 vpaddd ymm3, ymm3, ymm7
1591 vpxord ymm12, ymm12, ymm0
1592 vpxord ymm13, ymm13, ymm1
1593 vpxord ymm14, ymm14, ymm2
1594 vpxord ymm15, ymm15, ymm3
1595 vprord ymm12, ymm12, 8
1596 vprord ymm13, ymm13, 8
1597 vprord ymm14, ymm14, 8
1598 vprord ymm15, ymm15, 8
1599 vpaddd ymm8, ymm8, ymm12
1600 vpaddd ymm9, ymm9, ymm13
1601 vpaddd ymm10, ymm10, ymm14
1602 vpaddd ymm11, ymm11, ymm15
1603 vpxord ymm4, ymm4, ymm8
1604 vpxord ymm5, ymm5, ymm9
1605 vpxord ymm6, ymm6, ymm10
1606 vpxord ymm7, ymm7, ymm11
1607 vprord ymm4, ymm4, 7
1608 vprord ymm5, ymm5, 7
1609 vprord ymm6, ymm6, 7
1610 vprord ymm7, ymm7, 7
1611 vpaddd ymm0, ymm0, ymm20
1612 vpaddd ymm1, ymm1, ymm27
1613 vpaddd ymm2, ymm2, ymm21
1614 vpaddd ymm3, ymm3, ymm17
1615 vpaddd ymm0, ymm0, ymm5
1616 vpaddd ymm1, ymm1, ymm6
1617 vpaddd ymm2, ymm2, ymm7
1618 vpaddd ymm3, ymm3, ymm4
1619 vpxord ymm15, ymm15, ymm0
1620 vpxord ymm12, ymm12, ymm1
1621 vpxord ymm13, ymm13, ymm2
1622 vpxord ymm14, ymm14, ymm3
1623 vprord ymm15, ymm15, 16
1624 vprord ymm12, ymm12, 16
1625 vprord ymm13, ymm13, 16
1626 vprord ymm14, ymm14, 16
1627 vpaddd ymm10, ymm10, ymm15
1628 vpaddd ymm11, ymm11, ymm12
1629 vpaddd ymm8, ymm8, ymm13
1630 vpaddd ymm9, ymm9, ymm14
1631 vpxord ymm5, ymm5, ymm10
1632 vpxord ymm6, ymm6, ymm11
1633 vpxord ymm7, ymm7, ymm8
1634 vpxord ymm4, ymm4, ymm9
1635 vprord ymm5, ymm5, 12
1636 vprord ymm6, ymm6, 12
1637 vprord ymm7, ymm7, 12
1638 vprord ymm4, ymm4, 12
1639 vpaddd ymm0, ymm0, ymm16
1640 vpaddd ymm1, ymm1, ymm18
1641 vpaddd ymm2, ymm2, ymm24
1642 vpaddd ymm3, ymm3, ymm22
1643 vpaddd ymm0, ymm0, ymm5
1644 vpaddd ymm1, ymm1, ymm6
1645 vpaddd ymm2, ymm2, ymm7
1646 vpaddd ymm3, ymm3, ymm4
1647 vpxord ymm15, ymm15, ymm0
1648 vpxord ymm12, ymm12, ymm1
1649 vpxord ymm13, ymm13, ymm2
1650 vpxord ymm14, ymm14, ymm3
1651 vprord ymm15, ymm15, 8
1652 vprord ymm12, ymm12, 8
1653 vprord ymm13, ymm13, 8
1654 vprord ymm14, ymm14, 8
1655 vpaddd ymm10, ymm10, ymm15
1656 vpaddd ymm11, ymm11, ymm12
1657 vpaddd ymm8, ymm8, ymm13
1658 vpaddd ymm9, ymm9, ymm14
1659 vpxord ymm5, ymm5, ymm10
1660 vpxord ymm6, ymm6, ymm11
1661 vpxord ymm7, ymm7, ymm8
1662 vpxord ymm4, ymm4, ymm9
1663 vprord ymm5, ymm5, 7
1664 vprord ymm6, ymm6, 7
1665 vprord ymm7, ymm7, 7
1666 vprord ymm4, ymm4, 7
1667 vpaddd ymm0, ymm0, ymm28
1668 vpaddd ymm1, ymm1, ymm25
1669 vpaddd ymm2, ymm2, ymm31
1670 vpaddd ymm3, ymm3, ymm30
1671 vpaddd ymm0, ymm0, ymm4
1672 vpaddd ymm1, ymm1, ymm5
1673 vpaddd ymm2, ymm2, ymm6
1674 vpaddd ymm3, ymm3, ymm7
1675 vpxord ymm12, ymm12, ymm0
1676 vpxord ymm13, ymm13, ymm1
1677 vpxord ymm14, ymm14, ymm2
1678 vpxord ymm15, ymm15, ymm3
1679 vprord ymm12, ymm12, 16
1680 vprord ymm13, ymm13, 16
1681 vprord ymm14, ymm14, 16
1682 vprord ymm15, ymm15, 16
1683 vpaddd ymm8, ymm8, ymm12
1684 vpaddd ymm9, ymm9, ymm13
1685 vpaddd ymm10, ymm10, ymm14
1686 vpaddd ymm11, ymm11, ymm15
1687 vpxord ymm4, ymm4, ymm8
1688 vpxord ymm5, ymm5, ymm9
1689 vpxord ymm6, ymm6, ymm10
1690 vpxord ymm7, ymm7, ymm11
1691 vprord ymm4, ymm4, 12
1692 vprord ymm5, ymm5, 12
1693 vprord ymm6, ymm6, 12
1694 vprord ymm7, ymm7, 12
1695 vpaddd ymm0, ymm0, ymm29
1696 vpaddd ymm1, ymm1, ymm27
1697 vpaddd ymm2, ymm2, ymm26
1698 vpaddd ymm3, ymm3, ymm24
1699 vpaddd ymm0, ymm0, ymm4
1700 vpaddd ymm1, ymm1, ymm5
1701 vpaddd ymm2, ymm2, ymm6
1702 vpaddd ymm3, ymm3, ymm7
1703 vpxord ymm12, ymm12, ymm0
1704 vpxord ymm13, ymm13, ymm1
1705 vpxord ymm14, ymm14, ymm2
1706 vpxord ymm15, ymm15, ymm3
1707 vprord ymm12, ymm12, 8
1708 vprord ymm13, ymm13, 8
1709 vprord ymm14, ymm14, 8
1710 vprord ymm15, ymm15, 8
1711 vpaddd ymm8, ymm8, ymm12
1712 vpaddd ymm9, ymm9, ymm13
1713 vpaddd ymm10, ymm10, ymm14
1714 vpaddd ymm11, ymm11, ymm15
1715 vpxord ymm4, ymm4, ymm8
1716 vpxord ymm5, ymm5, ymm9
1717 vpxord ymm6, ymm6, ymm10
1718 vpxord ymm7, ymm7, ymm11
1719 vprord ymm4, ymm4, 7
1720 vprord ymm5, ymm5, 7
1721 vprord ymm6, ymm6, 7
1722 vprord ymm7, ymm7, 7
1723 vpaddd ymm0, ymm0, ymm23
1724 vpaddd ymm1, ymm1, ymm21
1725 vpaddd ymm2, ymm2, ymm16
1726 vpaddd ymm3, ymm3, ymm22
1727 vpaddd ymm0, ymm0, ymm5
1728 vpaddd ymm1, ymm1, ymm6
1729 vpaddd ymm2, ymm2, ymm7
1730 vpaddd ymm3, ymm3, ymm4
1731 vpxord ymm15, ymm15, ymm0
1732 vpxord ymm12, ymm12, ymm1
1733 vpxord ymm13, ymm13, ymm2
1734 vpxord ymm14, ymm14, ymm3
1735 vprord ymm15, ymm15, 16
1736 vprord ymm12, ymm12, 16
1737 vprord ymm13, ymm13, 16
1738 vprord ymm14, ymm14, 16
1739 vpaddd ymm10, ymm10, ymm15
1740 vpaddd ymm11, ymm11, ymm12
1741 vpaddd ymm8, ymm8, ymm13
1742 vpaddd ymm9, ymm9, ymm14
1743 vpxord ymm5, ymm5, ymm10
1744 vpxord ymm6, ymm6, ymm11
1745 vpxord ymm7, ymm7, ymm8
1746 vpxord ymm4, ymm4, ymm9
1747 vprord ymm5, ymm5, 12
1748 vprord ymm6, ymm6, 12
1749 vprord ymm7, ymm7, 12
1750 vprord ymm4, ymm4, 12
1751 vpaddd ymm0, ymm0, ymm18
1752 vpaddd ymm1, ymm1, ymm19
1753 vpaddd ymm2, ymm2, ymm17
1754 vpaddd ymm3, ymm3, ymm20
1755 vpaddd ymm0, ymm0, ymm5
1756 vpaddd ymm1, ymm1, ymm6
1757 vpaddd ymm2, ymm2, ymm7
1758 vpaddd ymm3, ymm3, ymm4
1759 vpxord ymm15, ymm15, ymm0
1760 vpxord ymm12, ymm12, ymm1
1761 vpxord ymm13, ymm13, ymm2
1762 vpxord ymm14, ymm14, ymm3
1763 vprord ymm15, ymm15, 8
1764 vprord ymm12, ymm12, 8
1765 vprord ymm13, ymm13, 8
1766 vprord ymm14, ymm14, 8
1767 vpaddd ymm10, ymm10, ymm15
1768 vpaddd ymm11, ymm11, ymm12
1769 vpaddd ymm8, ymm8, ymm13
1770 vpaddd ymm9, ymm9, ymm14
1771 vpxord ymm5, ymm5, ymm10
1772 vpxord ymm6, ymm6, ymm11
1773 vpxord ymm7, ymm7, ymm8
1774 vpxord ymm4, ymm4, ymm9
1775 vprord ymm5, ymm5, 7
1776 vprord ymm6, ymm6, 7
1777 vprord ymm7, ymm7, 7
1778 vprord ymm4, ymm4, 7
1779 vpaddd ymm0, ymm0, ymm25
1780 vpaddd ymm1, ymm1, ymm27
1781 vpaddd ymm2, ymm2, ymm24
1782 vpaddd ymm3, ymm3, ymm31
1783 vpaddd ymm0, ymm0, ymm4
1784 vpaddd ymm1, ymm1, ymm5
1785 vpaddd ymm2, ymm2, ymm6
1786 vpaddd ymm3, ymm3, ymm7
1787 vpxord ymm12, ymm12, ymm0
1788 vpxord ymm13, ymm13, ymm1
1789 vpxord ymm14, ymm14, ymm2
1790 vpxord ymm15, ymm15, ymm3
1791 vprord ymm12, ymm12, 16
1792 vprord ymm13, ymm13, 16
1793 vprord ymm14, ymm14, 16
1794 vprord ymm15, ymm15, 16
1795 vpaddd ymm8, ymm8, ymm12
1796 vpaddd ymm9, ymm9, ymm13
1797 vpaddd ymm10, ymm10, ymm14
1798 vpaddd ymm11, ymm11, ymm15
1799 vpxord ymm4, ymm4, ymm8
1800 vpxord ymm5, ymm5, ymm9
1801 vpxord ymm6, ymm6, ymm10
1802 vpxord ymm7, ymm7, ymm11
1803 vprord ymm4, ymm4, 12
1804 vprord ymm5, ymm5, 12
1805 vprord ymm6, ymm6, 12
1806 vprord ymm7, ymm7, 12
1807 vpaddd ymm0, ymm0, ymm30
1808 vpaddd ymm1, ymm1, ymm21
1809 vpaddd ymm2, ymm2, ymm28
1810 vpaddd ymm3, ymm3, ymm17
1811 vpaddd ymm0, ymm0, ymm4
1812 vpaddd ymm1, ymm1, ymm5
1813 vpaddd ymm2, ymm2, ymm6
1814 vpaddd ymm3, ymm3, ymm7
1815 vpxord ymm12, ymm12, ymm0
1816 vpxord ymm13, ymm13, ymm1
1817 vpxord ymm14, ymm14, ymm2
1818 vpxord ymm15, ymm15, ymm3
1819 vprord ymm12, ymm12, 8
1820 vprord ymm13, ymm13, 8
1821 vprord ymm14, ymm14, 8
1822 vprord ymm15, ymm15, 8
1823 vpaddd ymm8, ymm8, ymm12
1824 vpaddd ymm9, ymm9, ymm13
1825 vpaddd ymm10, ymm10, ymm14
1826 vpaddd ymm11, ymm11, ymm15
1827 vpxord ymm4, ymm4, ymm8
1828 vpxord ymm5, ymm5, ymm9
1829 vpxord ymm6, ymm6, ymm10
1830 vpxord ymm7, ymm7, ymm11
1831 vprord ymm4, ymm4, 7
1832 vprord ymm5, ymm5, 7
1833 vprord ymm6, ymm6, 7
1834 vprord ymm7, ymm7, 7
1835 vpaddd ymm0, ymm0, ymm29
1836 vpaddd ymm1, ymm1, ymm16
1837 vpaddd ymm2, ymm2, ymm18
1838 vpaddd ymm3, ymm3, ymm20
1839 vpaddd ymm0, ymm0, ymm5
1840 vpaddd ymm1, ymm1, ymm6
1841 vpaddd ymm2, ymm2, ymm7
1842 vpaddd ymm3, ymm3, ymm4
1843 vpxord ymm15, ymm15, ymm0
1844 vpxord ymm12, ymm12, ymm1
1845 vpxord ymm13, ymm13, ymm2
1846 vpxord ymm14, ymm14, ymm3
1847 vprord ymm15, ymm15, 16
1848 vprord ymm12, ymm12, 16
1849 vprord ymm13, ymm13, 16
1850 vprord ymm14, ymm14, 16
1851 vpaddd ymm10, ymm10, ymm15
1852 vpaddd ymm11, ymm11, ymm12
1853 vpaddd ymm8, ymm8, ymm13
1854 vpaddd ymm9, ymm9, ymm14
1855 vpxord ymm5, ymm5, ymm10
1856 vpxord ymm6, ymm6, ymm11
1857 vpxord ymm7, ymm7, ymm8
1858 vpxord ymm4, ymm4, ymm9
1859 vprord ymm5, ymm5, 12
1860 vprord ymm6, ymm6, 12
1861 vprord ymm7, ymm7, 12
1862 vprord ymm4, ymm4, 12
1863 vpaddd ymm0, ymm0, ymm19
1864 vpaddd ymm1, ymm1, ymm26
1865 vpaddd ymm2, ymm2, ymm22
1866 vpaddd ymm3, ymm3, ymm23
1867 vpaddd ymm0, ymm0, ymm5
1868 vpaddd ymm1, ymm1, ymm6
1869 vpaddd ymm2, ymm2, ymm7
1870 vpaddd ymm3, ymm3, ymm4
1871 vpxord ymm15, ymm15, ymm0
1872 vpxord ymm12, ymm12, ymm1
1873 vpxord ymm13, ymm13, ymm2
1874 vpxord ymm14, ymm14, ymm3
1875 vprord ymm15, ymm15, 8
1876 vprord ymm12, ymm12, 8
1877 vprord ymm13, ymm13, 8
1878 vprord ymm14, ymm14, 8
1879 vpaddd ymm10, ymm10, ymm15
1880 vpaddd ymm11, ymm11, ymm12
1881 vpaddd ymm8, ymm8, ymm13
1882 vpaddd ymm9, ymm9, ymm14
1883 vpxord ymm5, ymm5, ymm10
1884 vpxord ymm6, ymm6, ymm11
1885 vpxord ymm7, ymm7, ymm8
1886 vpxord ymm4, ymm4, ymm9
1887 vprord ymm5, ymm5, 7
1888 vprord ymm6, ymm6, 7
1889 vprord ymm7, ymm7, 7
1890 vprord ymm4, ymm4, 7
1891 vpaddd ymm0, ymm0, ymm27
1892 vpaddd ymm1, ymm1, ymm21
1893 vpaddd ymm2, ymm2, ymm17
1894 vpaddd ymm3, ymm3, ymm24
1895 vpaddd ymm0, ymm0, ymm4
1896 vpaddd ymm1, ymm1, ymm5
1897 vpaddd ymm2, ymm2, ymm6
1898 vpaddd ymm3, ymm3, ymm7
1899 vpxord ymm12, ymm12, ymm0
1900 vpxord ymm13, ymm13, ymm1
1901 vpxord ymm14, ymm14, ymm2
1902 vpxord ymm15, ymm15, ymm3
1903 vprord ymm12, ymm12, 16
1904 vprord ymm13, ymm13, 16
1905 vprord ymm14, ymm14, 16
1906 vprord ymm15, ymm15, 16
1907 vpaddd ymm8, ymm8, ymm12
1908 vpaddd ymm9, ymm9, ymm13
1909 vpaddd ymm10, ymm10, ymm14
1910 vpaddd ymm11, ymm11, ymm15
1911 vpxord ymm4, ymm4, ymm8
1912 vpxord ymm5, ymm5, ymm9
1913 vpxord ymm6, ymm6, ymm10
1914 vpxord ymm7, ymm7, ymm11
1915 vprord ymm4, ymm4, 12
1916 vprord ymm5, ymm5, 12
1917 vprord ymm6, ymm6, 12
1918 vprord ymm7, ymm7, 12
1919 vpaddd ymm0, ymm0, ymm31
1920 vpaddd ymm1, ymm1, ymm16
1921 vpaddd ymm2, ymm2, ymm25
1922 vpaddd ymm3, ymm3, ymm22
1923 vpaddd ymm0, ymm0, ymm4
1924 vpaddd ymm1, ymm1, ymm5
1925 vpaddd ymm2, ymm2, ymm6
1926 vpaddd ymm3, ymm3, ymm7
1927 vpxord ymm12, ymm12, ymm0
1928 vpxord ymm13, ymm13, ymm1
1929 vpxord ymm14, ymm14, ymm2
1930 vpxord ymm15, ymm15, ymm3
1931 vprord ymm12, ymm12, 8
1932 vprord ymm13, ymm13, 8
1933 vprord ymm14, ymm14, 8
1934 vprord ymm15, ymm15, 8
1935 vpaddd ymm8, ymm8, ymm12
1936 vpaddd ymm9, ymm9, ymm13
1937 vpaddd ymm10, ymm10, ymm14
1938 vpaddd ymm11, ymm11, ymm15
1939 vpxord ymm4, ymm4, ymm8
1940 vpxord ymm5, ymm5, ymm9
1941 vpxord ymm6, ymm6, ymm10
1942 vpxord ymm7, ymm7, ymm11
1943 vprord ymm4, ymm4, 7
1944 vprord ymm5, ymm5, 7
1945 vprord ymm6, ymm6, 7
1946 vprord ymm7, ymm7, 7
1947 vpaddd ymm0, ymm0, ymm30
1948 vpaddd ymm1, ymm1, ymm18
1949 vpaddd ymm2, ymm2, ymm19
1950 vpaddd ymm3, ymm3, ymm23
1951 vpaddd ymm0, ymm0, ymm5
1952 vpaddd ymm1, ymm1, ymm6
1953 vpaddd ymm2, ymm2, ymm7
1954 vpaddd ymm3, ymm3, ymm4
1955 vpxord ymm15, ymm15, ymm0
1956 vpxord ymm12, ymm12, ymm1
1957 vpxord ymm13, ymm13, ymm2
1958 vpxord ymm14, ymm14, ymm3
1959 vprord ymm15, ymm15, 16
1960 vprord ymm12, ymm12, 16
1961 vprord ymm13, ymm13, 16
1962 vprord ymm14, ymm14, 16
1963 vpaddd ymm10, ymm10, ymm15
1964 vpaddd ymm11, ymm11, ymm12
1965 vpaddd ymm8, ymm8, ymm13
1966 vpaddd ymm9, ymm9, ymm14
1967 vpxord ymm5, ymm5, ymm10
1968 vpxord ymm6, ymm6, ymm11
1969 vpxord ymm7, ymm7, ymm8
1970 vpxord ymm4, ymm4, ymm9
1971 vprord ymm5, ymm5, 12
1972 vprord ymm6, ymm6, 12
1973 vprord ymm7, ymm7, 12
1974 vprord ymm4, ymm4, 12
1975 vpaddd ymm0, ymm0, ymm26
1976 vpaddd ymm1, ymm1, ymm28
1977 vpaddd ymm2, ymm2, ymm20
1978 vpaddd ymm3, ymm3, ymm29
1979 vpaddd ymm0, ymm0, ymm5
1980 vpaddd ymm1, ymm1, ymm6
1981 vpaddd ymm2, ymm2, ymm7
1982 vpaddd ymm3, ymm3, ymm4
1983 vpxord ymm15, ymm15, ymm0
1984 vpxord ymm12, ymm12, ymm1
1985 vpxord ymm13, ymm13, ymm2
1986 vpxord ymm14, ymm14, ymm3
1987 vprord ymm15, ymm15, 8
1988 vprord ymm12, ymm12, 8
1989 vprord ymm13, ymm13, 8
1990 vprord ymm14, ymm14, 8
1991 vpaddd ymm10, ymm10, ymm15
1992 vpaddd ymm11, ymm11, ymm12
1993 vpaddd ymm8, ymm8, ymm13
1994 vpaddd ymm9, ymm9, ymm14
1995 vpxord ymm5, ymm5, ymm10
1996 vpxord ymm6, ymm6, ymm11
1997 vpxord ymm7, ymm7, ymm8
1998 vpxord ymm4, ymm4, ymm9
1999 vprord ymm5, ymm5, 7
2000 vprord ymm6, ymm6, 7
2001 vprord ymm7, ymm7, 7
2002 vprord ymm4, ymm4, 7
2003 vpxor ymm0, ymm0, ymm8
2004 vpxor ymm1, ymm1, ymm9
2005 vpxor ymm2, ymm2, ymm10
2006 vpxor ymm3, ymm3, ymm11
2007 vpxor ymm4, ymm4, ymm12
2008 vpxor ymm5, ymm5, ymm13
2009 vpxor ymm6, ymm6, ymm14
2010 vpxor ymm7, ymm7, ymm15
2011 movzx eax, byte ptr [rbp+0x38]
2012 jne 2b
2013 mov rbx, qword ptr [rbp+0x50]
2014 vunpcklps ymm8, ymm0, ymm1
2015 vunpcklps ymm9, ymm2, ymm3
2016 vunpckhps ymm10, ymm0, ymm1
2017 vunpcklps ymm11, ymm4, ymm5
2018 vunpcklps ymm0, ymm6, ymm7
2019 vshufps ymm12, ymm8, ymm9, 78
2020 vblendps ymm1, ymm8, ymm12, 0xCC
2021 vshufps ymm8, ymm11, ymm0, 78
2022 vunpckhps ymm13, ymm2, ymm3
2023 vblendps ymm2, ymm11, ymm8, 0xCC
2024 vblendps ymm3, ymm12, ymm9, 0xCC
2025 vperm2f128 ymm12, ymm1, ymm2, 0x20
2026 vmovups ymmword ptr [rbx], ymm12
2027 vunpckhps ymm14, ymm4, ymm5
2028 vblendps ymm4, ymm8, ymm0, 0xCC
2029 vunpckhps ymm15, ymm6, ymm7
2030 vperm2f128 ymm7, ymm3, ymm4, 0x20
2031 vmovups ymmword ptr [rbx+0x20], ymm7
2032 vshufps ymm5, ymm10, ymm13, 78
2033 vblendps ymm6, ymm5, ymm13, 0xCC
2034 vshufps ymm13, ymm14, ymm15, 78
2035 vblendps ymm10, ymm10, ymm5, 0xCC
2036 vblendps ymm14, ymm14, ymm13, 0xCC
2037 vperm2f128 ymm8, ymm10, ymm14, 0x20
2038 vmovups ymmword ptr [rbx+0x40], ymm8
2039 vblendps ymm15, ymm13, ymm15, 0xCC
2040 vperm2f128 ymm13, ymm6, ymm15, 0x20
2041 vmovups ymmword ptr [rbx+0x60], ymm13
2042 vperm2f128 ymm9, ymm1, ymm2, 0x31
2043 vperm2f128 ymm11, ymm3, ymm4, 0x31
2044 vmovups ymmword ptr [rbx+0x80], ymm9
2045 vperm2f128 ymm14, ymm10, ymm14, 0x31
2046 vperm2f128 ymm15, ymm6, ymm15, 0x31
2047 vmovups ymmword ptr [rbx+0xA0], ymm11
2048 vmovups ymmword ptr [rbx+0xC0], ymm14
2049 vmovups ymmword ptr [rbx+0xE0], ymm15
2050 vmovdqa ymm0, ymmword ptr [rsp]
2051 vmovdqa ymm2, ymmword ptr [rsp+0x2*0x20]
2052 vmovdqa32 ymm0 {k1}, ymmword ptr [rsp+0x1*0x20]
2053 vmovdqa32 ymm2 {k1}, ymmword ptr [rsp+0x3*0x20]
2054 vmovdqa ymmword ptr [rsp], ymm0
2055 vmovdqa ymmword ptr [rsp+0x2*0x20], ymm2
2056 add rbx, 256
2057 mov qword ptr [rbp+0x50], rbx
2058 add rdi, 64
2059 sub rsi, 8
20603:
2061 mov rbx, qword ptr [rbp+0x50]
2062 mov r15, qword ptr [rsp+0x80]
2063 movzx r13, byte ptr [rbp+0x38]
2064 movzx r12, byte ptr [rbp+0x48]
2065 test esi, 0x4
2066 je 3f
2067 vbroadcasti32x4 zmm0, xmmword ptr [rcx]
2068 vbroadcasti32x4 zmm1, xmmword ptr [rcx+0x1*0x10]
2069 vmovdqa xmm12, xmmword ptr [rsp]
2070 vmovdqa xmm13, xmmword ptr [rsp+0x4*0x10]
2071 vpunpckldq xmm14, xmm12, xmm13
2072 vpunpckhdq xmm15, xmm12, xmm13
2073 vpermq ymm14, ymm14, 0xDC
2074 vpermq ymm15, ymm15, 0xDC
2075 vpbroadcastd zmm12, dword ptr [BLAKE3_BLOCK_LEN+rip]
2076 vinserti64x4 zmm13, zmm14, ymm15, 0x01
2077 mov eax, 17476
2078 kmovw k2, eax
2079 vpblendmd zmm13 {k2}, zmm13, zmm12
2080 vbroadcasti32x4 zmm15, xmmword ptr [BLAKE3_IV+rip]
2081 mov r8, qword ptr [rdi]
2082 mov r9, qword ptr [rdi+0x8]
2083 mov r10, qword ptr [rdi+0x10]
2084 mov r11, qword ptr [rdi+0x18]
2085 mov eax, 43690
2086 kmovw k3, eax
2087 mov eax, 34952
2088 kmovw k4, eax
2089 movzx eax, byte ptr [rbp+0x40]
2090 or eax, r13d
2091 xor edx, edx
2092.p2align 5
20932:
2094 mov r14d, eax
2095 or eax, r12d
2096 add rdx, 64
2097 cmp rdx, r15
2098 cmovne eax, r14d
2099 mov dword ptr [rsp+0x88], eax
2100 vmovdqa32 zmm2, zmm15
2101 vpbroadcastd zmm8, dword ptr [rsp+0x22*0x4]
2102 vpblendmd zmm3 {k4}, zmm13, zmm8
2103 vmovups zmm8, zmmword ptr [r8+rdx-0x1*0x40]
2104 vinserti32x4 zmm8, zmm8, xmmword ptr [r9+rdx-0x4*0x10], 0x01
2105 vinserti32x4 zmm8, zmm8, xmmword ptr [r10+rdx-0x4*0x10], 0x02
2106 vinserti32x4 zmm8, zmm8, xmmword ptr [r11+rdx-0x4*0x10], 0x03
2107 vmovups zmm9, zmmword ptr [r8+rdx-0x30]
2108 vinserti32x4 zmm9, zmm9, xmmword ptr [r9+rdx-0x3*0x10], 0x01
2109 vinserti32x4 zmm9, zmm9, xmmword ptr [r10+rdx-0x3*0x10], 0x02
2110 vinserti32x4 zmm9, zmm9, xmmword ptr [r11+rdx-0x3*0x10], 0x03
2111 vshufps zmm4, zmm8, zmm9, 136
2112 vshufps zmm5, zmm8, zmm9, 221
2113 vmovups zmm8, zmmword ptr [r8+rdx-0x20]
2114 vinserti32x4 zmm8, zmm8, xmmword ptr [r9+rdx-0x2*0x10], 0x01
2115 vinserti32x4 zmm8, zmm8, xmmword ptr [r10+rdx-0x2*0x10], 0x02
2116 vinserti32x4 zmm8, zmm8, xmmword ptr [r11+rdx-0x2*0x10], 0x03
2117 vmovups zmm9, zmmword ptr [r8+rdx-0x10]
2118 vinserti32x4 zmm9, zmm9, xmmword ptr [r9+rdx-0x1*0x10], 0x01
2119 vinserti32x4 zmm9, zmm9, xmmword ptr [r10+rdx-0x1*0x10], 0x02
2120 vinserti32x4 zmm9, zmm9, xmmword ptr [r11+rdx-0x1*0x10], 0x03
2121 vshufps zmm6, zmm8, zmm9, 136
2122 vshufps zmm7, zmm8, zmm9, 221
2123 vpshufd zmm6, zmm6, 0x93
2124 vpshufd zmm7, zmm7, 0x93
2125 mov al, 7
21269:
2127 vpaddd zmm0, zmm0, zmm4
2128 vpaddd zmm0, zmm0, zmm1
2129 vpxord zmm3, zmm3, zmm0
2130 vprord zmm3, zmm3, 16
2131 vpaddd zmm2, zmm2, zmm3
2132 vpxord zmm1, zmm1, zmm2
2133 vprord zmm1, zmm1, 12
2134 vpaddd zmm0, zmm0, zmm5
2135 vpaddd zmm0, zmm0, zmm1
2136 vpxord zmm3, zmm3, zmm0
2137 vprord zmm3, zmm3, 8
2138 vpaddd zmm2, zmm2, zmm3
2139 vpxord zmm1, zmm1, zmm2
2140 vprord zmm1, zmm1, 7
2141 vpshufd zmm0, zmm0, 0x93
2142 vpshufd zmm3, zmm3, 0x4E
2143 vpshufd zmm2, zmm2, 0x39
2144 vpaddd zmm0, zmm0, zmm6
2145 vpaddd zmm0, zmm0, zmm1
2146 vpxord zmm3, zmm3, zmm0
2147 vprord zmm3, zmm3, 16
2148 vpaddd zmm2, zmm2, zmm3
2149 vpxord zmm1, zmm1, zmm2
2150 vprord zmm1, zmm1, 12
2151 vpaddd zmm0, zmm0, zmm7
2152 vpaddd zmm0, zmm0, zmm1
2153 vpxord zmm3, zmm3, zmm0
2154 vprord zmm3, zmm3, 8
2155 vpaddd zmm2, zmm2, zmm3
2156 vpxord zmm1, zmm1, zmm2
2157 vprord zmm1, zmm1, 7
2158 vpshufd zmm0, zmm0, 0x39
2159 vpshufd zmm3, zmm3, 0x4E
2160 vpshufd zmm2, zmm2, 0x93
2161 dec al
2162 jz 9f
2163 vshufps zmm8, zmm4, zmm5, 214
2164 vpshufd zmm9, zmm4, 0x0F
2165 vpshufd zmm4, zmm8, 0x39
2166 vshufps zmm8, zmm6, zmm7, 250
2167 vpblendmd zmm9 {k3}, zmm9, zmm8
2168 vpunpcklqdq zmm8, zmm7, zmm5
2169 vpblendmd zmm8 {k4}, zmm8, zmm6
2170 vpshufd zmm8, zmm8, 0x78
2171 vpunpckhdq zmm5, zmm5, zmm7
2172 vpunpckldq zmm6, zmm6, zmm5
2173 vpshufd zmm7, zmm6, 0x1E
2174 vmovdqa32 zmm5, zmm9
2175 vmovdqa32 zmm6, zmm8
2176 jmp 9b
21779:
2178 vpxord zmm0, zmm0, zmm2
2179 vpxord zmm1, zmm1, zmm3
2180 mov eax, r13d
2181 cmp rdx, r15
2182 jne 2b
2183 vmovdqu xmmword ptr [rbx], xmm0
2184 vmovdqu xmmword ptr [rbx+0x10], xmm1
2185 vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x01
2186 vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x01
2187 vextracti32x4 xmmword ptr [rbx+0x4*0x10], zmm0, 0x02
2188 vextracti32x4 xmmword ptr [rbx+0x5*0x10], zmm1, 0x02
2189 vextracti32x4 xmmword ptr [rbx+0x6*0x10], zmm0, 0x03
2190 vextracti32x4 xmmword ptr [rbx+0x7*0x10], zmm1, 0x03
2191 vmovdqa xmm0, xmmword ptr [rsp]
2192 vmovdqa xmm2, xmmword ptr [rsp+0x40]
2193 vmovdqa32 xmm0 {k1}, xmmword ptr [rsp+0x1*0x10]
2194 vmovdqa32 xmm2 {k1}, xmmword ptr [rsp+0x5*0x10]
2195 vmovdqa xmmword ptr [rsp], xmm0
2196 vmovdqa xmmword ptr [rsp+0x40], xmm2
2197 add rbx, 128
2198 add rdi, 32
2199 sub rsi, 4
22003:
2201 test esi, 0x2
2202 je 3f
2203 vbroadcasti128 ymm0, xmmword ptr [rcx]
2204 vbroadcasti128 ymm1, xmmword ptr [rcx+0x10]
2205 vmovd xmm13, dword ptr [rsp]
2206 vpinsrd xmm13, xmm13, dword ptr [rsp+0x40], 1
2207 vpinsrd xmm13, xmm13, dword ptr [BLAKE3_BLOCK_LEN+rip], 2
2208 vmovd xmm14, dword ptr [rsp+0x4]
2209 vpinsrd xmm14, xmm14, dword ptr [rsp+0x44], 1
2210 vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN+rip], 2
2211 vinserti128 ymm13, ymm13, xmm14, 0x01
2212 mov r8, qword ptr [rdi]
2213 mov r9, qword ptr [rdi+0x8]
2214 movzx eax, byte ptr [rbp+0x40]
2215 or eax, r13d
2216 xor edx, edx
2217.p2align 5
22182:
2219 mov r14d, eax
2220 or eax, r12d
2221 add rdx, 64
2222 cmp rdx, r15
2223 cmovne eax, r14d
2224 mov dword ptr [rsp+0x88], eax
2225 vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV+rip]
2226 vpbroadcastd ymm8, dword ptr [rsp+0x88]
2227 vpblendd ymm3, ymm13, ymm8, 0x88
2228 vmovups ymm8, ymmword ptr [r8+rdx-0x40]
2229 vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x40], 0x01
2230 vmovups ymm9, ymmword ptr [r8+rdx-0x30]
2231 vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x30], 0x01
2232 vshufps ymm4, ymm8, ymm9, 136
2233 vshufps ymm5, ymm8, ymm9, 221
2234 vmovups ymm8, ymmword ptr [r8+rdx-0x20]
2235 vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x20], 0x01
2236 vmovups ymm9, ymmword ptr [r8+rdx-0x10]
2237 vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x10], 0x01
2238 vshufps ymm6, ymm8, ymm9, 136
2239 vshufps ymm7, ymm8, ymm9, 221
2240 vpshufd ymm6, ymm6, 0x93
2241 vpshufd ymm7, ymm7, 0x93
2242 mov al, 7
22439:
2244 vpaddd ymm0, ymm0, ymm4
2245 vpaddd ymm0, ymm0, ymm1
2246 vpxord ymm3, ymm3, ymm0
2247 vprord ymm3, ymm3, 16
2248 vpaddd ymm2, ymm2, ymm3
2249 vpxord ymm1, ymm1, ymm2
2250 vprord ymm1, ymm1, 12
2251 vpaddd ymm0, ymm0, ymm5
2252 vpaddd ymm0, ymm0, ymm1
2253 vpxord ymm3, ymm3, ymm0
2254 vprord ymm3, ymm3, 8
2255 vpaddd ymm2, ymm2, ymm3
2256 vpxord ymm1, ymm1, ymm2
2257 vprord ymm1, ymm1, 7
2258 vpshufd ymm0, ymm0, 0x93
2259 vpshufd ymm3, ymm3, 0x4E
2260 vpshufd ymm2, ymm2, 0x39
2261 vpaddd ymm0, ymm0, ymm6
2262 vpaddd ymm0, ymm0, ymm1
2263 vpxord ymm3, ymm3, ymm0
2264 vprord ymm3, ymm3, 16
2265 vpaddd ymm2, ymm2, ymm3
2266 vpxord ymm1, ymm1, ymm2
2267 vprord ymm1, ymm1, 12
2268 vpaddd ymm0, ymm0, ymm7
2269 vpaddd ymm0, ymm0, ymm1
2270 vpxord ymm3, ymm3, ymm0
2271 vprord ymm3, ymm3, 8
2272 vpaddd ymm2, ymm2, ymm3
2273 vpxord ymm1, ymm1, ymm2
2274 vprord ymm1, ymm1, 7
2275 vpshufd ymm0, ymm0, 0x39
2276 vpshufd ymm3, ymm3, 0x4E
2277 vpshufd ymm2, ymm2, 0x93
2278 dec al
2279 jz 9f
2280 vshufps ymm8, ymm4, ymm5, 214
2281 vpshufd ymm9, ymm4, 0x0F
2282 vpshufd ymm4, ymm8, 0x39
2283 vshufps ymm8, ymm6, ymm7, 250
2284 vpblendd ymm9, ymm9, ymm8, 0xAA
2285 vpunpcklqdq ymm8, ymm7, ymm5
2286 vpblendd ymm8, ymm8, ymm6, 0x88
2287 vpshufd ymm8, ymm8, 0x78
2288 vpunpckhdq ymm5, ymm5, ymm7
2289 vpunpckldq ymm6, ymm6, ymm5
2290 vpshufd ymm7, ymm6, 0x1E
2291 vmovdqa ymm5, ymm9
2292 vmovdqa ymm6, ymm8
2293 jmp 9b
22949:
2295 vpxor ymm0, ymm0, ymm2
2296 vpxor ymm1, ymm1, ymm3
2297 mov eax, r13d
2298 cmp rdx, r15
2299 jne 2b
2300 vmovdqu xmmword ptr [rbx], xmm0
2301 vmovdqu xmmword ptr [rbx+0x10], xmm1
2302 vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x01
2303 vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x01
2304 vmovdqa xmm0, xmmword ptr [rsp]
2305 vmovdqa xmm2, xmmword ptr [rsp+0x4*0x10]
2306 vmovdqu32 xmm0 {k1}, xmmword ptr [rsp+0x8]
2307 vmovdqu32 xmm2 {k1}, xmmword ptr [rsp+0x48]
2308 vmovdqa xmmword ptr [rsp], xmm0
2309 vmovdqa xmmword ptr [rsp+0x4*0x10], xmm2
2310 add rbx, 64
2311 add rdi, 16
2312 sub rsi, 2
23133:
2314 test esi, 0x1
2315 je 4b
2316 vmovdqu xmm0, xmmword ptr [rcx]
2317 vmovdqu xmm1, xmmword ptr [rcx+0x10]
2318 vmovd xmm14, dword ptr [rsp]
2319 vpinsrd xmm14, xmm14, dword ptr [rsp+0x40], 1
2320 vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN+rip], 2
2321 vmovdqa xmm15, xmmword ptr [BLAKE3_IV+rip]
2322 mov r8, qword ptr [rdi]
2323 movzx eax, byte ptr [rbp+0x40]
2324 or eax, r13d
2325 xor edx, edx
2326.p2align 5
23272:
2328 mov r14d, eax
2329 or eax, r12d
2330 add rdx, 64
2331 cmp rdx, r15
2332 cmovne eax, r14d
2333 vpinsrd xmm3, xmm14, eax, 3
2334 vmovdqa xmm2, xmm15
2335 vmovups xmm8, xmmword ptr [r8+rdx-0x40]
2336 vmovups xmm9, xmmword ptr [r8+rdx-0x30]
2337 vshufps xmm4, xmm8, xmm9, 136
2338 vshufps xmm5, xmm8, xmm9, 221
2339 vmovups xmm8, xmmword ptr [r8+rdx-0x20]
2340 vmovups xmm9, xmmword ptr [r8+rdx-0x10]
2341 vshufps xmm6, xmm8, xmm9, 136
2342 vshufps xmm7, xmm8, xmm9, 221
2343 vpshufd xmm6, xmm6, 0x93
2344 vpshufd xmm7, xmm7, 0x93
2345 mov al, 7
23469:
2347 vpaddd xmm0, xmm0, xmm4
2348 vpaddd xmm0, xmm0, xmm1
2349 vpxord xmm3, xmm3, xmm0
2350 vprord xmm3, xmm3, 16
2351 vpaddd xmm2, xmm2, xmm3
2352 vpxord xmm1, xmm1, xmm2
2353 vprord xmm1, xmm1, 12
2354 vpaddd xmm0, xmm0, xmm5
2355 vpaddd xmm0, xmm0, xmm1
2356 vpxord xmm3, xmm3, xmm0
2357 vprord xmm3, xmm3, 8
2358 vpaddd xmm2, xmm2, xmm3
2359 vpxord xmm1, xmm1, xmm2
2360 vprord xmm1, xmm1, 7
2361 vpshufd xmm0, xmm0, 0x93
2362 vpshufd xmm3, xmm3, 0x4E
2363 vpshufd xmm2, xmm2, 0x39
2364 vpaddd xmm0, xmm0, xmm6
2365 vpaddd xmm0, xmm0, xmm1
2366 vpxord xmm3, xmm3, xmm0
2367 vprord xmm3, xmm3, 16
2368 vpaddd xmm2, xmm2, xmm3
2369 vpxord xmm1, xmm1, xmm2
2370 vprord xmm1, xmm1, 12
2371 vpaddd xmm0, xmm0, xmm7
2372 vpaddd xmm0, xmm0, xmm1
2373 vpxord xmm3, xmm3, xmm0
2374 vprord xmm3, xmm3, 8
2375 vpaddd xmm2, xmm2, xmm3
2376 vpxord xmm1, xmm1, xmm2
2377 vprord xmm1, xmm1, 7
2378 vpshufd xmm0, xmm0, 0x39
2379 vpshufd xmm3, xmm3, 0x4E
2380 vpshufd xmm2, xmm2, 0x93
2381 dec al
2382 jz 9f
2383 vshufps xmm8, xmm4, xmm5, 214
2384 vpshufd xmm9, xmm4, 0x0F
2385 vpshufd xmm4, xmm8, 0x39
2386 vshufps xmm8, xmm6, xmm7, 250
2387 vpblendd xmm9, xmm9, xmm8, 0xAA
2388 vpunpcklqdq xmm8, xmm7, xmm5
2389 vpblendd xmm8, xmm8, xmm6, 0x88
2390 vpshufd xmm8, xmm8, 0x78
2391 vpunpckhdq xmm5, xmm5, xmm7
2392 vpunpckldq xmm6, xmm6, xmm5
2393 vpshufd xmm7, xmm6, 0x1E
2394 vmovdqa xmm5, xmm9
2395 vmovdqa xmm6, xmm8
2396 jmp 9b
23979:
2398 vpxor xmm0, xmm0, xmm2
2399 vpxor xmm1, xmm1, xmm3
2400 mov eax, r13d
2401 cmp rdx, r15
2402 jne 2b
2403 vmovdqu xmmword ptr [rbx], xmm0
2404 vmovdqu xmmword ptr [rbx+0x10], xmm1
2405 jmp 4b
2406.p2align 6
2407_blake3_compress_in_place_avx512:
2408blake3_compress_in_place_avx512:
2409 _CET_ENDBR
2410 vmovdqu xmm0, xmmword ptr [rdi]
2411 vmovdqu xmm1, xmmword ptr [rdi+0x10]
2412 movzx eax, r8b
2413 movzx edx, dl
2414 shl rax, 32
2415 add rdx, rax
2416 vmovq xmm3, rcx
2417 vmovq xmm4, rdx
2418 vpunpcklqdq xmm3, xmm3, xmm4
2419 vmovaps xmm2, xmmword ptr [BLAKE3_IV+rip]
2420 vmovups xmm8, xmmword ptr [rsi]
2421 vmovups xmm9, xmmword ptr [rsi+0x10]
2422 vshufps xmm4, xmm8, xmm9, 136
2423 vshufps xmm5, xmm8, xmm9, 221
2424 vmovups xmm8, xmmword ptr [rsi+0x20]
2425 vmovups xmm9, xmmword ptr [rsi+0x30]
2426 vshufps xmm6, xmm8, xmm9, 136
2427 vshufps xmm7, xmm8, xmm9, 221
2428 vpshufd xmm6, xmm6, 0x93
2429 vpshufd xmm7, xmm7, 0x93
2430 mov al, 7
24319:
2432 vpaddd xmm0, xmm0, xmm4
2433 vpaddd xmm0, xmm0, xmm1
2434 vpxord xmm3, xmm3, xmm0
2435 vprord xmm3, xmm3, 16
2436 vpaddd xmm2, xmm2, xmm3
2437 vpxord xmm1, xmm1, xmm2
2438 vprord xmm1, xmm1, 12
2439 vpaddd xmm0, xmm0, xmm5
2440 vpaddd xmm0, xmm0, xmm1
2441 vpxord xmm3, xmm3, xmm0
2442 vprord xmm3, xmm3, 8
2443 vpaddd xmm2, xmm2, xmm3
2444 vpxord xmm1, xmm1, xmm2
2445 vprord xmm1, xmm1, 7
2446 vpshufd xmm0, xmm0, 0x93
2447 vpshufd xmm3, xmm3, 0x4E
2448 vpshufd xmm2, xmm2, 0x39
2449 vpaddd xmm0, xmm0, xmm6
2450 vpaddd xmm0, xmm0, xmm1
2451 vpxord xmm3, xmm3, xmm0
2452 vprord xmm3, xmm3, 16
2453 vpaddd xmm2, xmm2, xmm3
2454 vpxord xmm1, xmm1, xmm2
2455 vprord xmm1, xmm1, 12
2456 vpaddd xmm0, xmm0, xmm7
2457 vpaddd xmm0, xmm0, xmm1
2458 vpxord xmm3, xmm3, xmm0
2459 vprord xmm3, xmm3, 8
2460 vpaddd xmm2, xmm2, xmm3
2461 vpxord xmm1, xmm1, xmm2
2462 vprord xmm1, xmm1, 7
2463 vpshufd xmm0, xmm0, 0x39
2464 vpshufd xmm3, xmm3, 0x4E
2465 vpshufd xmm2, xmm2, 0x93
2466 dec al
2467 jz 9f
2468 vshufps xmm8, xmm4, xmm5, 214
2469 vpshufd xmm9, xmm4, 0x0F
2470 vpshufd xmm4, xmm8, 0x39
2471 vshufps xmm8, xmm6, xmm7, 250
2472 vpblendd xmm9, xmm9, xmm8, 0xAA
2473 vpunpcklqdq xmm8, xmm7, xmm5
2474 vpblendd xmm8, xmm8, xmm6, 0x88
2475 vpshufd xmm8, xmm8, 0x78
2476 vpunpckhdq xmm5, xmm5, xmm7
2477 vpunpckldq xmm6, xmm6, xmm5
2478 vpshufd xmm7, xmm6, 0x1E
2479 vmovdqa xmm5, xmm9
2480 vmovdqa xmm6, xmm8
2481 jmp 9b
24829:
2483 vpxor xmm0, xmm0, xmm2
2484 vpxor xmm1, xmm1, xmm3
2485 vmovdqu xmmword ptr [rdi], xmm0
2486 vmovdqu xmmword ptr [rdi+0x10], xmm1
2487 ret
2488
2489.p2align 6
2490_blake3_compress_xof_avx512:
2491blake3_compress_xof_avx512:
2492 _CET_ENDBR
2493 vmovdqu xmm0, xmmword ptr [rdi]
2494 vmovdqu xmm1, xmmword ptr [rdi+0x10]
2495 movzx eax, r8b
2496 movzx edx, dl
2497 shl rax, 32
2498 add rdx, rax
2499 vmovq xmm3, rcx
2500 vmovq xmm4, rdx
2501 vpunpcklqdq xmm3, xmm3, xmm4
2502 vmovaps xmm2, xmmword ptr [BLAKE3_IV+rip]
2503 vmovups xmm8, xmmword ptr [rsi]
2504 vmovups xmm9, xmmword ptr [rsi+0x10]
2505 vshufps xmm4, xmm8, xmm9, 136
2506 vshufps xmm5, xmm8, xmm9, 221
2507 vmovups xmm8, xmmword ptr [rsi+0x20]
2508 vmovups xmm9, xmmword ptr [rsi+0x30]
2509 vshufps xmm6, xmm8, xmm9, 136
2510 vshufps xmm7, xmm8, xmm9, 221
2511 vpshufd xmm6, xmm6, 0x93
2512 vpshufd xmm7, xmm7, 0x93
2513 mov al, 7
25149:
2515 vpaddd xmm0, xmm0, xmm4
2516 vpaddd xmm0, xmm0, xmm1
2517 vpxord xmm3, xmm3, xmm0
2518 vprord xmm3, xmm3, 16
2519 vpaddd xmm2, xmm2, xmm3
2520 vpxord xmm1, xmm1, xmm2
2521 vprord xmm1, xmm1, 12
2522 vpaddd xmm0, xmm0, xmm5
2523 vpaddd xmm0, xmm0, xmm1
2524 vpxord xmm3, xmm3, xmm0
2525 vprord xmm3, xmm3, 8
2526 vpaddd xmm2, xmm2, xmm3
2527 vpxord xmm1, xmm1, xmm2
2528 vprord xmm1, xmm1, 7
2529 vpshufd xmm0, xmm0, 0x93
2530 vpshufd xmm3, xmm3, 0x4E
2531 vpshufd xmm2, xmm2, 0x39
2532 vpaddd xmm0, xmm0, xmm6
2533 vpaddd xmm0, xmm0, xmm1
2534 vpxord xmm3, xmm3, xmm0
2535 vprord xmm3, xmm3, 16
2536 vpaddd xmm2, xmm2, xmm3
2537 vpxord xmm1, xmm1, xmm2
2538 vprord xmm1, xmm1, 12
2539 vpaddd xmm0, xmm0, xmm7
2540 vpaddd xmm0, xmm0, xmm1
2541 vpxord xmm3, xmm3, xmm0
2542 vprord xmm3, xmm3, 8
2543 vpaddd xmm2, xmm2, xmm3
2544 vpxord xmm1, xmm1, xmm2
2545 vprord xmm1, xmm1, 7
2546 vpshufd xmm0, xmm0, 0x39
2547 vpshufd xmm3, xmm3, 0x4E
2548 vpshufd xmm2, xmm2, 0x93
2549 dec al
2550 jz 9f
2551 vshufps xmm8, xmm4, xmm5, 214
2552 vpshufd xmm9, xmm4, 0x0F
2553 vpshufd xmm4, xmm8, 0x39
2554 vshufps xmm8, xmm6, xmm7, 250
2555 vpblendd xmm9, xmm9, xmm8, 0xAA
2556 vpunpcklqdq xmm8, xmm7, xmm5
2557 vpblendd xmm8, xmm8, xmm6, 0x88
2558 vpshufd xmm8, xmm8, 0x78
2559 vpunpckhdq xmm5, xmm5, xmm7
2560 vpunpckldq xmm6, xmm6, xmm5
2561 vpshufd xmm7, xmm6, 0x1E
2562 vmovdqa xmm5, xmm9
2563 vmovdqa xmm6, xmm8
2564 jmp 9b
25659:
2566 vpxor xmm0, xmm0, xmm2
2567 vpxor xmm1, xmm1, xmm3
2568 vpxor xmm2, xmm2, [rdi]
2569 vpxor xmm3, xmm3, [rdi+0x10]
2570 vmovdqu xmmword ptr [r9], xmm0
2571 vmovdqu xmmword ptr [r9+0x10], xmm1
2572 vmovdqu xmmword ptr [r9+0x20], xmm2
2573 vmovdqu xmmword ptr [r9+0x30], xmm3
2574 ret
2575
2576.p2align 6
2577blake3_xof_many_avx512:
2578_blake3_xof_many_avx512:
2579 _CET_ENDBR
2580 mov r10,QWORD PTR [rsp+0x8]
2581 cmp r10,0x1
2582 ja 2f
2583 vmovdqu xmm0,XMMWORD PTR [rdi]
2584 vmovdqu xmm1,XMMWORD PTR [rdi+0x10]
2585 movzx eax,r8b
2586 movzx edx,dl
2587 shl rax,0x20
2588 add rdx,rax
2589 vmovq xmm3,rcx
2590 vmovq xmm4,rdx
2591 vpunpcklqdq xmm3,xmm3,xmm4
2592 vmovaps xmm2,XMMWORD PTR [BLAKE3_IV+rip]
2593 vmovups xmm8,XMMWORD PTR [rsi]
2594 vmovups xmm9,XMMWORD PTR [rsi+0x10]
2595 vshufps xmm4,xmm8,xmm9,0x88
2596 vshufps xmm5,xmm8,xmm9,0xdd
2597 vmovups xmm8,XMMWORD PTR [rsi+0x20]
2598 vmovups xmm9,XMMWORD PTR [rsi+0x30]
2599 vshufps xmm6,xmm8,xmm9,0x88
2600 vshufps xmm7,xmm8,xmm9,0xdd
2601 vpshufd xmm6,xmm6,0x93
2602 vpshufd xmm7,xmm7,0x93
2603 mov al,0x7
26043:
2605 vpaddd xmm0,xmm0,xmm4
2606 vpaddd xmm0,xmm0,xmm1
2607 vpxord xmm3,xmm3,xmm0
2608 vprord xmm3,xmm3,0x10
2609 vpaddd xmm2,xmm2,xmm3
2610 vpxord xmm1,xmm1,xmm2
2611 vprord xmm1,xmm1,0xc
2612 vpaddd xmm0,xmm0,xmm5
2613 vpaddd xmm0,xmm0,xmm1
2614 vpxord xmm3,xmm3,xmm0
2615 vprord xmm3,xmm3,0x8
2616 vpaddd xmm2,xmm2,xmm3
2617 vpxord xmm1,xmm1,xmm2
2618 vprord xmm1,xmm1,0x7
2619 vpshufd xmm0,xmm0,0x93
2620 vpshufd xmm3,xmm3,0x4e
2621 vpshufd xmm2,xmm2,0x39
2622 vpaddd xmm0,xmm0,xmm6
2623 vpaddd xmm0,xmm0,xmm1
2624 vpxord xmm3,xmm3,xmm0
2625 vprord xmm3,xmm3,0x10
2626 vpaddd xmm2,xmm2,xmm3
2627 vpxord xmm1,xmm1,xmm2
2628 vprord xmm1,xmm1,0xc
2629 vpaddd xmm0,xmm0,xmm7
2630 vpaddd xmm0,xmm0,xmm1
2631 vpxord xmm3,xmm3,xmm0
2632 vprord xmm3,xmm3,0x8
2633 vpaddd xmm2,xmm2,xmm3
2634 vpxord xmm1,xmm1,xmm2
2635 vprord xmm1,xmm1,0x7
2636 vpshufd xmm0,xmm0,0x39
2637 vpshufd xmm3,xmm3,0x4e
2638 vpshufd xmm2,xmm2,0x93
2639 dec al
2640 je 3f
2641 vshufps xmm8,xmm4,xmm5,0xd6
2642 vpshufd xmm9,xmm4,0xf
2643 vpshufd xmm4,xmm8,0x39
2644 vshufps xmm8,xmm6,xmm7,0xfa
2645 vpblendd xmm9,xmm9,xmm8,0xaa
2646 vpunpcklqdq xmm8,xmm7,xmm5
2647 vpblendd xmm8,xmm8,xmm6,0x88
2648 vpshufd xmm8,xmm8,0x78
2649 vpunpckhdq xmm5,xmm5,xmm7
2650 vpunpckldq xmm6,xmm6,xmm5
2651 vpshufd xmm7,xmm6,0x1e
2652 vmovdqa xmm5,xmm9
2653 vmovdqa xmm6,xmm8
2654 jmp 3b
26553:
2656 vpxor xmm0,xmm0,xmm2
2657 vpxor xmm1,xmm1,xmm3
2658 vpxor xmm2,xmm2,XMMWORD PTR [rdi]
2659 vpxor xmm3,xmm3,XMMWORD PTR [rdi+0x10]
2660 vmovdqu XMMWORD PTR [r9],xmm0
2661 vmovdqu XMMWORD PTR [r9+0x10],xmm1
2662 vmovdqu XMMWORD PTR [r9+0x20],xmm2
2663 vmovdqu XMMWORD PTR [r9+0x30],xmm3
2664 ret
2665.p2align 6
26662:
2667 push rbp
2668 mov rbp,rsp
2669 sub rsp,0x90
2670 and rsp,0xffffffffffffffc0
2671 vpbroadcastd zmm0,ecx
2672 shr rcx,0x20
2673 vpbroadcastd zmm1,ecx
2674 vpaddd zmm2,zmm0,ZMMWORD PTR [ADD0+rip]
2675 vpcmpltud k1,zmm2,zmm0
2676 vpaddd zmm1{k1},zmm1,DWORD PTR [ADD1+rip]{1to16}
2677 vmovdqa32 ZMMWORD PTR [rsp],zmm2
2678 vmovdqa32 ZMMWORD PTR [rsp+0x40],zmm1
2679 cmp r10,0x10
2680 jb 2f
26813:
2682 vpbroadcastd zmm16,DWORD PTR [rsi]
2683 vpbroadcastd zmm17,DWORD PTR [rsi+0x4]
2684 vpbroadcastd zmm18,DWORD PTR [rsi+0x8]
2685 vpbroadcastd zmm19,DWORD PTR [rsi+0xc]
2686 vpbroadcastd zmm20,DWORD PTR [rsi+0x10]
2687 vpbroadcastd zmm21,DWORD PTR [rsi+0x14]
2688 vpbroadcastd zmm22,DWORD PTR [rsi+0x18]
2689 vpbroadcastd zmm23,DWORD PTR [rsi+0x1c]
2690 vpbroadcastd zmm24,DWORD PTR [rsi+0x20]
2691 vpbroadcastd zmm25,DWORD PTR [rsi+0x24]
2692 vpbroadcastd zmm26,DWORD PTR [rsi+0x28]
2693 vpbroadcastd zmm27,DWORD PTR [rsi+0x2c]
2694 vpbroadcastd zmm28,DWORD PTR [rsi+0x30]
2695 vpbroadcastd zmm29,DWORD PTR [rsi+0x34]
2696 vpbroadcastd zmm30,DWORD PTR [rsi+0x38]
2697 vpbroadcastd zmm31,DWORD PTR [rsi+0x3c]
2698 vpbroadcastd zmm0,DWORD PTR [rdi]
2699 vpbroadcastd zmm1,DWORD PTR [rdi+0x4]
2700 vpbroadcastd zmm2,DWORD PTR [rdi+0x8]
2701 vpbroadcastd zmm3,DWORD PTR [rdi+0xc]
2702 vpbroadcastd zmm4,DWORD PTR [rdi+0x10]
2703 vpbroadcastd zmm5,DWORD PTR [rdi+0x14]
2704 vpbroadcastd zmm6,DWORD PTR [rdi+0x18]
2705 vpbroadcastd zmm7,DWORD PTR [rdi+0x1c]
2706 vpbroadcastd zmm8,DWORD PTR [BLAKE3_IV_0+rip]
2707 vpbroadcastd zmm9,DWORD PTR [BLAKE3_IV_1+rip]
2708 vpbroadcastd zmm10,DWORD PTR [BLAKE3_IV_2+rip]
2709 vpbroadcastd zmm11,DWORD PTR [BLAKE3_IV_3+rip]
2710 vmovdqa32 zmm12,ZMMWORD PTR [rsp]
2711 vmovdqa32 zmm13,ZMMWORD PTR [rsp+0x40]
2712 vpbroadcastd zmm14,edx
2713 vpbroadcastd zmm15,r8d
2714 vpaddd zmm0,zmm0,zmm16
2715 vpaddd zmm1,zmm1,zmm18
2716 vpaddd zmm2,zmm2,zmm20
2717 vpaddd zmm3,zmm3,zmm22
2718 vpaddd zmm0,zmm0,zmm4
2719 vpaddd zmm1,zmm1,zmm5
2720 vpaddd zmm2,zmm2,zmm6
2721 vpaddd zmm3,zmm3,zmm7
2722 vpxord zmm12,zmm12,zmm0
2723 vpxord zmm13,zmm13,zmm1
2724 vpxord zmm14,zmm14,zmm2
2725 vpxord zmm15,zmm15,zmm3
2726 vprord zmm12,zmm12,0x10
2727 vprord zmm13,zmm13,0x10
2728 vprord zmm14,zmm14,0x10
2729 vprord zmm15,zmm15,0x10
2730 vpaddd zmm8,zmm8,zmm12
2731 vpaddd zmm9,zmm9,zmm13
2732 vpaddd zmm10,zmm10,zmm14
2733 vpaddd zmm11,zmm11,zmm15
2734 vpxord zmm4,zmm4,zmm8
2735 vpxord zmm5,zmm5,zmm9
2736 vpxord zmm6,zmm6,zmm10
2737 vpxord zmm7,zmm7,zmm11
2738 vprord zmm4,zmm4,0xc
2739 vprord zmm5,zmm5,0xc
2740 vprord zmm6,zmm6,0xc
2741 vprord zmm7,zmm7,0xc
2742 vpaddd zmm0,zmm0,zmm17
2743 vpaddd zmm1,zmm1,zmm19
2744 vpaddd zmm2,zmm2,zmm21
2745 vpaddd zmm3,zmm3,zmm23
2746 vpaddd zmm0,zmm0,zmm4
2747 vpaddd zmm1,zmm1,zmm5
2748 vpaddd zmm2,zmm2,zmm6
2749 vpaddd zmm3,zmm3,zmm7
2750 vpxord zmm12,zmm12,zmm0
2751 vpxord zmm13,zmm13,zmm1
2752 vpxord zmm14,zmm14,zmm2
2753 vpxord zmm15,zmm15,zmm3
2754 vprord zmm12,zmm12,0x8
2755 vprord zmm13,zmm13,0x8
2756 vprord zmm14,zmm14,0x8
2757 vprord zmm15,zmm15,0x8
2758 vpaddd zmm8,zmm8,zmm12
2759 vpaddd zmm9,zmm9,zmm13
2760 vpaddd zmm10,zmm10,zmm14
2761 vpaddd zmm11,zmm11,zmm15
2762 vpxord zmm4,zmm4,zmm8
2763 vpxord zmm5,zmm5,zmm9
2764 vpxord zmm6,zmm6,zmm10
2765 vpxord zmm7,zmm7,zmm11
2766 vprord zmm4,zmm4,0x7
2767 vprord zmm5,zmm5,0x7
2768 vprord zmm6,zmm6,0x7
2769 vprord zmm7,zmm7,0x7
2770 vpaddd zmm0,zmm0,zmm24
2771 vpaddd zmm1,zmm1,zmm26
2772 vpaddd zmm2,zmm2,zmm28
2773 vpaddd zmm3,zmm3,zmm30
2774 vpaddd zmm0,zmm0,zmm5
2775 vpaddd zmm1,zmm1,zmm6
2776 vpaddd zmm2,zmm2,zmm7
2777 vpaddd zmm3,zmm3,zmm4
2778 vpxord zmm15,zmm15,zmm0
2779 vpxord zmm12,zmm12,zmm1
2780 vpxord zmm13,zmm13,zmm2
2781 vpxord zmm14,zmm14,zmm3
2782 vprord zmm15,zmm15,0x10
2783 vprord zmm12,zmm12,0x10
2784 vprord zmm13,zmm13,0x10
2785 vprord zmm14,zmm14,0x10
2786 vpaddd zmm10,zmm10,zmm15
2787 vpaddd zmm11,zmm11,zmm12
2788 vpaddd zmm8,zmm8,zmm13
2789 vpaddd zmm9,zmm9,zmm14
2790 vpxord zmm5,zmm5,zmm10
2791 vpxord zmm6,zmm6,zmm11
2792 vpxord zmm7,zmm7,zmm8
2793 vpxord zmm4,zmm4,zmm9
2794 vprord zmm5,zmm5,0xc
2795 vprord zmm6,zmm6,0xc
2796 vprord zmm7,zmm7,0xc
2797 vprord zmm4,zmm4,0xc
2798 vpaddd zmm0,zmm0,zmm25
2799 vpaddd zmm1,zmm1,zmm27
2800 vpaddd zmm2,zmm2,zmm29
2801 vpaddd zmm3,zmm3,zmm31
2802 vpaddd zmm0,zmm0,zmm5
2803 vpaddd zmm1,zmm1,zmm6
2804 vpaddd zmm2,zmm2,zmm7
2805 vpaddd zmm3,zmm3,zmm4
2806 vpxord zmm15,zmm15,zmm0
2807 vpxord zmm12,zmm12,zmm1
2808 vpxord zmm13,zmm13,zmm2
2809 vpxord zmm14,zmm14,zmm3
2810 vprord zmm15,zmm15,0x8
2811 vprord zmm12,zmm12,0x8
2812 vprord zmm13,zmm13,0x8
2813 vprord zmm14,zmm14,0x8
2814 vpaddd zmm10,zmm10,zmm15
2815 vpaddd zmm11,zmm11,zmm12
2816 vpaddd zmm8,zmm8,zmm13
2817 vpaddd zmm9,zmm9,zmm14
2818 vpxord zmm5,zmm5,zmm10
2819 vpxord zmm6,zmm6,zmm11
2820 vpxord zmm7,zmm7,zmm8
2821 vpxord zmm4,zmm4,zmm9
2822 vprord zmm5,zmm5,0x7
2823 vprord zmm6,zmm6,0x7
2824 vprord zmm7,zmm7,0x7
2825 vprord zmm4,zmm4,0x7
2826 vpaddd zmm0,zmm0,zmm18
2827 vpaddd zmm1,zmm1,zmm19
2828 vpaddd zmm2,zmm2,zmm23
2829 vpaddd zmm3,zmm3,zmm20
2830 vpaddd zmm0,zmm0,zmm4
2831 vpaddd zmm1,zmm1,zmm5
2832 vpaddd zmm2,zmm2,zmm6
2833 vpaddd zmm3,zmm3,zmm7
2834 vpxord zmm12,zmm12,zmm0
2835 vpxord zmm13,zmm13,zmm1
2836 vpxord zmm14,zmm14,zmm2
2837 vpxord zmm15,zmm15,zmm3
2838 vprord zmm12,zmm12,0x10
2839 vprord zmm13,zmm13,0x10
2840 vprord zmm14,zmm14,0x10
2841 vprord zmm15,zmm15,0x10
2842 vpaddd zmm8,zmm8,zmm12
2843 vpaddd zmm9,zmm9,zmm13
2844 vpaddd zmm10,zmm10,zmm14
2845 vpaddd zmm11,zmm11,zmm15
2846 vpxord zmm4,zmm4,zmm8
2847 vpxord zmm5,zmm5,zmm9
2848 vpxord zmm6,zmm6,zmm10
2849 vpxord zmm7,zmm7,zmm11
2850 vprord zmm4,zmm4,0xc
2851 vprord zmm5,zmm5,0xc
2852 vprord zmm6,zmm6,0xc
2853 vprord zmm7,zmm7,0xc
2854 vpaddd zmm0,zmm0,zmm22
2855 vpaddd zmm1,zmm1,zmm26
2856 vpaddd zmm2,zmm2,zmm16
2857 vpaddd zmm3,zmm3,zmm29
2858 vpaddd zmm0,zmm0,zmm4
2859 vpaddd zmm1,zmm1,zmm5
2860 vpaddd zmm2,zmm2,zmm6
2861 vpaddd zmm3,zmm3,zmm7
2862 vpxord zmm12,zmm12,zmm0
2863 vpxord zmm13,zmm13,zmm1
2864 vpxord zmm14,zmm14,zmm2
2865 vpxord zmm15,zmm15,zmm3
2866 vprord zmm12,zmm12,0x8
2867 vprord zmm13,zmm13,0x8
2868 vprord zmm14,zmm14,0x8
2869 vprord zmm15,zmm15,0x8
2870 vpaddd zmm8,zmm8,zmm12
2871 vpaddd zmm9,zmm9,zmm13
2872 vpaddd zmm10,zmm10,zmm14
2873 vpaddd zmm11,zmm11,zmm15
2874 vpxord zmm4,zmm4,zmm8
2875 vpxord zmm5,zmm5,zmm9
2876 vpxord zmm6,zmm6,zmm10
2877 vpxord zmm7,zmm7,zmm11
2878 vprord zmm4,zmm4,0x7
2879 vprord zmm5,zmm5,0x7
2880 vprord zmm6,zmm6,0x7
2881 vprord zmm7,zmm7,0x7
2882 vpaddd zmm0,zmm0,zmm17
2883 vpaddd zmm1,zmm1,zmm28
2884 vpaddd zmm2,zmm2,zmm25
2885 vpaddd zmm3,zmm3,zmm31
2886 vpaddd zmm0,zmm0,zmm5
2887 vpaddd zmm1,zmm1,zmm6
2888 vpaddd zmm2,zmm2,zmm7
2889 vpaddd zmm3,zmm3,zmm4
2890 vpxord zmm15,zmm15,zmm0
2891 vpxord zmm12,zmm12,zmm1
2892 vpxord zmm13,zmm13,zmm2
2893 vpxord zmm14,zmm14,zmm3
2894 vprord zmm15,zmm15,0x10
2895 vprord zmm12,zmm12,0x10
2896 vprord zmm13,zmm13,0x10
2897 vprord zmm14,zmm14,0x10
2898 vpaddd zmm10,zmm10,zmm15
2899 vpaddd zmm11,zmm11,zmm12
2900 vpaddd zmm8,zmm8,zmm13
2901 vpaddd zmm9,zmm9,zmm14
2902 vpxord zmm5,zmm5,zmm10
2903 vpxord zmm6,zmm6,zmm11
2904 vpxord zmm7,zmm7,zmm8
2905 vpxord zmm4,zmm4,zmm9
2906 vprord zmm5,zmm5,0xc
2907 vprord zmm6,zmm6,0xc
2908 vprord zmm7,zmm7,0xc
2909 vprord zmm4,zmm4,0xc
2910 vpaddd zmm0,zmm0,zmm27
2911 vpaddd zmm1,zmm1,zmm21
2912 vpaddd zmm2,zmm2,zmm30
2913 vpaddd zmm3,zmm3,zmm24
2914 vpaddd zmm0,zmm0,zmm5
2915 vpaddd zmm1,zmm1,zmm6
2916 vpaddd zmm2,zmm2,zmm7
2917 vpaddd zmm3,zmm3,zmm4
2918 vpxord zmm15,zmm15,zmm0
2919 vpxord zmm12,zmm12,zmm1
2920 vpxord zmm13,zmm13,zmm2
2921 vpxord zmm14,zmm14,zmm3
2922 vprord zmm15,zmm15,0x8
2923 vprord zmm12,zmm12,0x8
2924 vprord zmm13,zmm13,0x8
2925 vprord zmm14,zmm14,0x8
2926 vpaddd zmm10,zmm10,zmm15
2927 vpaddd zmm11,zmm11,zmm12
2928 vpaddd zmm8,zmm8,zmm13
2929 vpaddd zmm9,zmm9,zmm14
2930 vpxord zmm5,zmm5,zmm10
2931 vpxord zmm6,zmm6,zmm11
2932 vpxord zmm7,zmm7,zmm8
2933 vpxord zmm4,zmm4,zmm9
2934 vprord zmm5,zmm5,0x7
2935 vprord zmm6,zmm6,0x7
2936 vprord zmm7,zmm7,0x7
2937 vprord zmm4,zmm4,0x7
2938 vpaddd zmm0,zmm0,zmm19
2939 vpaddd zmm1,zmm1,zmm26
2940 vpaddd zmm2,zmm2,zmm29
2941 vpaddd zmm3,zmm3,zmm23
2942 vpaddd zmm0,zmm0,zmm4
2943 vpaddd zmm1,zmm1,zmm5
2944 vpaddd zmm2,zmm2,zmm6
2945 vpaddd zmm3,zmm3,zmm7
2946 vpxord zmm12,zmm12,zmm0
2947 vpxord zmm13,zmm13,zmm1
2948 vpxord zmm14,zmm14,zmm2
2949 vpxord zmm15,zmm15,zmm3
2950 vprord zmm12,zmm12,0x10
2951 vprord zmm13,zmm13,0x10
2952 vprord zmm14,zmm14,0x10
2953 vprord zmm15,zmm15,0x10
2954 vpaddd zmm8,zmm8,zmm12
2955 vpaddd zmm9,zmm9,zmm13
2956 vpaddd zmm10,zmm10,zmm14
2957 vpaddd zmm11,zmm11,zmm15
2958 vpxord zmm4,zmm4,zmm8
2959 vpxord zmm5,zmm5,zmm9
2960 vpxord zmm6,zmm6,zmm10
2961 vpxord zmm7,zmm7,zmm11
2962 vprord zmm4,zmm4,0xc
2963 vprord zmm5,zmm5,0xc
2964 vprord zmm6,zmm6,0xc
2965 vprord zmm7,zmm7,0xc
2966 vpaddd zmm0,zmm0,zmm20
2967 vpaddd zmm1,zmm1,zmm28
2968 vpaddd zmm2,zmm2,zmm18
2969 vpaddd zmm3,zmm3,zmm30
2970 vpaddd zmm0,zmm0,zmm4
2971 vpaddd zmm1,zmm1,zmm5
2972 vpaddd zmm2,zmm2,zmm6
2973 vpaddd zmm3,zmm3,zmm7
2974 vpxord zmm12,zmm12,zmm0
2975 vpxord zmm13,zmm13,zmm1
2976 vpxord zmm14,zmm14,zmm2
2977 vpxord zmm15,zmm15,zmm3
2978 vprord zmm12,zmm12,0x8
2979 vprord zmm13,zmm13,0x8
2980 vprord zmm14,zmm14,0x8
2981 vprord zmm15,zmm15,0x8
2982 vpaddd zmm8,zmm8,zmm12
2983 vpaddd zmm9,zmm9,zmm13
2984 vpaddd zmm10,zmm10,zmm14
2985 vpaddd zmm11,zmm11,zmm15
2986 vpxord zmm4,zmm4,zmm8
2987 vpxord zmm5,zmm5,zmm9
2988 vpxord zmm6,zmm6,zmm10
2989 vpxord zmm7,zmm7,zmm11
2990 vprord zmm4,zmm4,0x7
2991 vprord zmm5,zmm5,0x7
2992 vprord zmm6,zmm6,0x7
2993 vprord zmm7,zmm7,0x7
2994 vpaddd zmm0,zmm0,zmm22
2995 vpaddd zmm1,zmm1,zmm25
2996 vpaddd zmm2,zmm2,zmm27
2997 vpaddd zmm3,zmm3,zmm24
2998 vpaddd zmm0,zmm0,zmm5
2999 vpaddd zmm1,zmm1,zmm6
3000 vpaddd zmm2,zmm2,zmm7
3001 vpaddd zmm3,zmm3,zmm4
3002 vpxord zmm15,zmm15,zmm0
3003 vpxord zmm12,zmm12,zmm1
3004 vpxord zmm13,zmm13,zmm2
3005 vpxord zmm14,zmm14,zmm3
3006 vprord zmm15,zmm15,0x10
3007 vprord zmm12,zmm12,0x10
3008 vprord zmm13,zmm13,0x10
3009 vprord zmm14,zmm14,0x10
3010 vpaddd zmm10,zmm10,zmm15
3011 vpaddd zmm11,zmm11,zmm12
3012 vpaddd zmm8,zmm8,zmm13
3013 vpaddd zmm9,zmm9,zmm14
3014 vpxord zmm5,zmm5,zmm10
3015 vpxord zmm6,zmm6,zmm11
3016 vpxord zmm7,zmm7,zmm8
3017 vpxord zmm4,zmm4,zmm9
3018 vprord zmm5,zmm5,0xc
3019 vprord zmm6,zmm6,0xc
3020 vprord zmm7,zmm7,0xc
3021 vprord zmm4,zmm4,0xc
3022 vpaddd zmm0,zmm0,zmm21
3023 vpaddd zmm1,zmm1,zmm16
3024 vpaddd zmm2,zmm2,zmm31
3025 vpaddd zmm3,zmm3,zmm17
3026 vpaddd zmm0,zmm0,zmm5
3027 vpaddd zmm1,zmm1,zmm6
3028 vpaddd zmm2,zmm2,zmm7
3029 vpaddd zmm3,zmm3,zmm4
3030 vpxord zmm15,zmm15,zmm0
3031 vpxord zmm12,zmm12,zmm1
3032 vpxord zmm13,zmm13,zmm2
3033 vpxord zmm14,zmm14,zmm3
3034 vprord zmm15,zmm15,0x8
3035 vprord zmm12,zmm12,0x8
3036 vprord zmm13,zmm13,0x8
3037 vprord zmm14,zmm14,0x8
3038 vpaddd zmm10,zmm10,zmm15
3039 vpaddd zmm11,zmm11,zmm12
3040 vpaddd zmm8,zmm8,zmm13
3041 vpaddd zmm9,zmm9,zmm14
3042 vpxord zmm5,zmm5,zmm10
3043 vpxord zmm6,zmm6,zmm11
3044 vpxord zmm7,zmm7,zmm8
3045 vpxord zmm4,zmm4,zmm9
3046 vprord zmm5,zmm5,0x7
3047 vprord zmm6,zmm6,0x7
3048 vprord zmm7,zmm7,0x7
3049 vprord zmm4,zmm4,0x7
3050 vpaddd zmm0,zmm0,zmm26
3051 vpaddd zmm1,zmm1,zmm28
3052 vpaddd zmm2,zmm2,zmm30
3053 vpaddd zmm3,zmm3,zmm29
3054 vpaddd zmm0,zmm0,zmm4
3055 vpaddd zmm1,zmm1,zmm5
3056 vpaddd zmm2,zmm2,zmm6
3057 vpaddd zmm3,zmm3,zmm7
3058 vpxord zmm12,zmm12,zmm0
3059 vpxord zmm13,zmm13,zmm1
3060 vpxord zmm14,zmm14,zmm2
3061 vpxord zmm15,zmm15,zmm3
3062 vprord zmm12,zmm12,0x10
3063 vprord zmm13,zmm13,0x10
3064 vprord zmm14,zmm14,0x10
3065 vprord zmm15,zmm15,0x10
3066 vpaddd zmm8,zmm8,zmm12
3067 vpaddd zmm9,zmm9,zmm13
3068 vpaddd zmm10,zmm10,zmm14
3069 vpaddd zmm11,zmm11,zmm15
3070 vpxord zmm4,zmm4,zmm8
3071 vpxord zmm5,zmm5,zmm9
3072 vpxord zmm6,zmm6,zmm10
3073 vpxord zmm7,zmm7,zmm11
3074 vprord zmm4,zmm4,0xc
3075 vprord zmm5,zmm5,0xc
3076 vprord zmm6,zmm6,0xc
3077 vprord zmm7,zmm7,0xc
3078 vpaddd zmm0,zmm0,zmm23
3079 vpaddd zmm1,zmm1,zmm25
3080 vpaddd zmm2,zmm2,zmm19
3081 vpaddd zmm3,zmm3,zmm31
3082 vpaddd zmm0,zmm0,zmm4
3083 vpaddd zmm1,zmm1,zmm5
3084 vpaddd zmm2,zmm2,zmm6
3085 vpaddd zmm3,zmm3,zmm7
3086 vpxord zmm12,zmm12,zmm0
3087 vpxord zmm13,zmm13,zmm1
3088 vpxord zmm14,zmm14,zmm2
3089 vpxord zmm15,zmm15,zmm3
3090 vprord zmm12,zmm12,0x8
3091 vprord zmm13,zmm13,0x8
3092 vprord zmm14,zmm14,0x8
3093 vprord zmm15,zmm15,0x8
3094 vpaddd zmm8,zmm8,zmm12
3095 vpaddd zmm9,zmm9,zmm13
3096 vpaddd zmm10,zmm10,zmm14
3097 vpaddd zmm11,zmm11,zmm15
3098 vpxord zmm4,zmm4,zmm8
3099 vpxord zmm5,zmm5,zmm9
3100 vpxord zmm6,zmm6,zmm10
3101 vpxord zmm7,zmm7,zmm11
3102 vprord zmm4,zmm4,0x7
3103 vprord zmm5,zmm5,0x7
3104 vprord zmm6,zmm6,0x7
3105 vprord zmm7,zmm7,0x7
3106 vpaddd zmm0,zmm0,zmm20
3107 vpaddd zmm1,zmm1,zmm27
3108 vpaddd zmm2,zmm2,zmm21
3109 vpaddd zmm3,zmm3,zmm17
3110 vpaddd zmm0,zmm0,zmm5
3111 vpaddd zmm1,zmm1,zmm6
3112 vpaddd zmm2,zmm2,zmm7
3113 vpaddd zmm3,zmm3,zmm4
3114 vpxord zmm15,zmm15,zmm0
3115 vpxord zmm12,zmm12,zmm1
3116 vpxord zmm13,zmm13,zmm2
3117 vpxord zmm14,zmm14,zmm3
3118 vprord zmm15,zmm15,0x10
3119 vprord zmm12,zmm12,0x10
3120 vprord zmm13,zmm13,0x10
3121 vprord zmm14,zmm14,0x10
3122 vpaddd zmm10,zmm10,zmm15
3123 vpaddd zmm11,zmm11,zmm12
3124 vpaddd zmm8,zmm8,zmm13
3125 vpaddd zmm9,zmm9,zmm14
3126 vpxord zmm5,zmm5,zmm10
3127 vpxord zmm6,zmm6,zmm11
3128 vpxord zmm7,zmm7,zmm8
3129 vpxord zmm4,zmm4,zmm9
3130 vprord zmm5,zmm5,0xc
3131 vprord zmm6,zmm6,0xc
3132 vprord zmm7,zmm7,0xc
3133 vprord zmm4,zmm4,0xc
3134 vpaddd zmm0,zmm0,zmm16
3135 vpaddd zmm1,zmm1,zmm18
3136 vpaddd zmm2,zmm2,zmm24
3137 vpaddd zmm3,zmm3,zmm22
3138 vpaddd zmm0,zmm0,zmm5
3139 vpaddd zmm1,zmm1,zmm6
3140 vpaddd zmm2,zmm2,zmm7
3141 vpaddd zmm3,zmm3,zmm4
3142 vpxord zmm15,zmm15,zmm0
3143 vpxord zmm12,zmm12,zmm1
3144 vpxord zmm13,zmm13,zmm2
3145 vpxord zmm14,zmm14,zmm3
3146 vprord zmm15,zmm15,0x8
3147 vprord zmm12,zmm12,0x8
3148 vprord zmm13,zmm13,0x8
3149 vprord zmm14,zmm14,0x8
3150 vpaddd zmm10,zmm10,zmm15
3151 vpaddd zmm11,zmm11,zmm12
3152 vpaddd zmm8,zmm8,zmm13
3153 vpaddd zmm9,zmm9,zmm14
3154 vpxord zmm5,zmm5,zmm10
3155 vpxord zmm6,zmm6,zmm11
3156 vpxord zmm7,zmm7,zmm8
3157 vpxord zmm4,zmm4,zmm9
3158 vprord zmm5,zmm5,0x7
3159 vprord zmm6,zmm6,0x7
3160 vprord zmm7,zmm7,0x7
3161 vprord zmm4,zmm4,0x7
3162 vpaddd zmm0,zmm0,zmm28
3163 vpaddd zmm1,zmm1,zmm25
3164 vpaddd zmm2,zmm2,zmm31
3165 vpaddd zmm3,zmm3,zmm30
3166 vpaddd zmm0,zmm0,zmm4
3167 vpaddd zmm1,zmm1,zmm5
3168 vpaddd zmm2,zmm2,zmm6
3169 vpaddd zmm3,zmm3,zmm7
3170 vpxord zmm12,zmm12,zmm0
3171 vpxord zmm13,zmm13,zmm1
3172 vpxord zmm14,zmm14,zmm2
3173 vpxord zmm15,zmm15,zmm3
3174 vprord zmm12,zmm12,0x10
3175 vprord zmm13,zmm13,0x10
3176 vprord zmm14,zmm14,0x10
3177 vprord zmm15,zmm15,0x10
3178 vpaddd zmm8,zmm8,zmm12
3179 vpaddd zmm9,zmm9,zmm13
3180 vpaddd zmm10,zmm10,zmm14
3181 vpaddd zmm11,zmm11,zmm15
3182 vpxord zmm4,zmm4,zmm8
3183 vpxord zmm5,zmm5,zmm9
3184 vpxord zmm6,zmm6,zmm10
3185 vpxord zmm7,zmm7,zmm11
3186 vprord zmm4,zmm4,0xc
3187 vprord zmm5,zmm5,0xc
3188 vprord zmm6,zmm6,0xc
3189 vprord zmm7,zmm7,0xc
3190 vpaddd zmm0,zmm0,zmm29
3191 vpaddd zmm1,zmm1,zmm27
3192 vpaddd zmm2,zmm2,zmm26
3193 vpaddd zmm3,zmm3,zmm24
3194 vpaddd zmm0,zmm0,zmm4
3195 vpaddd zmm1,zmm1,zmm5
3196 vpaddd zmm2,zmm2,zmm6
3197 vpaddd zmm3,zmm3,zmm7
3198 vpxord zmm12,zmm12,zmm0
3199 vpxord zmm13,zmm13,zmm1
3200 vpxord zmm14,zmm14,zmm2
3201 vpxord zmm15,zmm15,zmm3
3202 vprord zmm12,zmm12,0x8
3203 vprord zmm13,zmm13,0x8
3204 vprord zmm14,zmm14,0x8
3205 vprord zmm15,zmm15,0x8
3206 vpaddd zmm8,zmm8,zmm12
3207 vpaddd zmm9,zmm9,zmm13
3208 vpaddd zmm10,zmm10,zmm14
3209 vpaddd zmm11,zmm11,zmm15
3210 vpxord zmm4,zmm4,zmm8
3211 vpxord zmm5,zmm5,zmm9
3212 vpxord zmm6,zmm6,zmm10
3213 vpxord zmm7,zmm7,zmm11
3214 vprord zmm4,zmm4,0x7
3215 vprord zmm5,zmm5,0x7
3216 vprord zmm6,zmm6,0x7
3217 vprord zmm7,zmm7,0x7
3218 vpaddd zmm0,zmm0,zmm23
3219 vpaddd zmm1,zmm1,zmm21
3220 vpaddd zmm2,zmm2,zmm16
3221 vpaddd zmm3,zmm3,zmm22
3222 vpaddd zmm0,zmm0,zmm5
3223 vpaddd zmm1,zmm1,zmm6
3224 vpaddd zmm2,zmm2,zmm7
3225 vpaddd zmm3,zmm3,zmm4
3226 vpxord zmm15,zmm15,zmm0
3227 vpxord zmm12,zmm12,zmm1
3228 vpxord zmm13,zmm13,zmm2
3229 vpxord zmm14,zmm14,zmm3
3230 vprord zmm15,zmm15,0x10
3231 vprord zmm12,zmm12,0x10
3232 vprord zmm13,zmm13,0x10
3233 vprord zmm14,zmm14,0x10
3234 vpaddd zmm10,zmm10,zmm15
3235 vpaddd zmm11,zmm11,zmm12
3236 vpaddd zmm8,zmm8,zmm13
3237 vpaddd zmm9,zmm9,zmm14
3238 vpxord zmm5,zmm5,zmm10
3239 vpxord zmm6,zmm6,zmm11
3240 vpxord zmm7,zmm7,zmm8
3241 vpxord zmm4,zmm4,zmm9
3242 vprord zmm5,zmm5,0xc
3243 vprord zmm6,zmm6,0xc
3244 vprord zmm7,zmm7,0xc
3245 vprord zmm4,zmm4,0xc
3246 vpaddd zmm0,zmm0,zmm18
3247 vpaddd zmm1,zmm1,zmm19
3248 vpaddd zmm2,zmm2,zmm17
3249 vpaddd zmm3,zmm3,zmm20
3250 vpaddd zmm0,zmm0,zmm5
3251 vpaddd zmm1,zmm1,zmm6
3252 vpaddd zmm2,zmm2,zmm7
3253 vpaddd zmm3,zmm3,zmm4
3254 vpxord zmm15,zmm15,zmm0
3255 vpxord zmm12,zmm12,zmm1
3256 vpxord zmm13,zmm13,zmm2
3257 vpxord zmm14,zmm14,zmm3
3258 vprord zmm15,zmm15,0x8
3259 vprord zmm12,zmm12,0x8
3260 vprord zmm13,zmm13,0x8
3261 vprord zmm14,zmm14,0x8
3262 vpaddd zmm10,zmm10,zmm15
3263 vpaddd zmm11,zmm11,zmm12
3264 vpaddd zmm8,zmm8,zmm13
3265 vpaddd zmm9,zmm9,zmm14
3266 vpxord zmm5,zmm5,zmm10
3267 vpxord zmm6,zmm6,zmm11
3268 vpxord zmm7,zmm7,zmm8
3269 vpxord zmm4,zmm4,zmm9
3270 vprord zmm5,zmm5,0x7
3271 vprord zmm6,zmm6,0x7
3272 vprord zmm7,zmm7,0x7
3273 vprord zmm4,zmm4,0x7
3274 vpaddd zmm0,zmm0,zmm25
3275 vpaddd zmm1,zmm1,zmm27
3276 vpaddd zmm2,zmm2,zmm24
3277 vpaddd zmm3,zmm3,zmm31
3278 vpaddd zmm0,zmm0,zmm4
3279 vpaddd zmm1,zmm1,zmm5
3280 vpaddd zmm2,zmm2,zmm6
3281 vpaddd zmm3,zmm3,zmm7
3282 vpxord zmm12,zmm12,zmm0
3283 vpxord zmm13,zmm13,zmm1
3284 vpxord zmm14,zmm14,zmm2
3285 vpxord zmm15,zmm15,zmm3
3286 vprord zmm12,zmm12,0x10
3287 vprord zmm13,zmm13,0x10
3288 vprord zmm14,zmm14,0x10
3289 vprord zmm15,zmm15,0x10
3290 vpaddd zmm8,zmm8,zmm12
3291 vpaddd zmm9,zmm9,zmm13
3292 vpaddd zmm10,zmm10,zmm14
3293 vpaddd zmm11,zmm11,zmm15
3294 vpxord zmm4,zmm4,zmm8
3295 vpxord zmm5,zmm5,zmm9
3296 vpxord zmm6,zmm6,zmm10
3297 vpxord zmm7,zmm7,zmm11
3298 vprord zmm4,zmm4,0xc
3299 vprord zmm5,zmm5,0xc
3300 vprord zmm6,zmm6,0xc
3301 vprord zmm7,zmm7,0xc
3302 vpaddd zmm0,zmm0,zmm30
3303 vpaddd zmm1,zmm1,zmm21
3304 vpaddd zmm2,zmm2,zmm28
3305 vpaddd zmm3,zmm3,zmm17
3306 vpaddd zmm0,zmm0,zmm4
3307 vpaddd zmm1,zmm1,zmm5
3308 vpaddd zmm2,zmm2,zmm6
3309 vpaddd zmm3,zmm3,zmm7
3310 vpxord zmm12,zmm12,zmm0
3311 vpxord zmm13,zmm13,zmm1
3312 vpxord zmm14,zmm14,zmm2
3313 vpxord zmm15,zmm15,zmm3
3314 vprord zmm12,zmm12,0x8
3315 vprord zmm13,zmm13,0x8
3316 vprord zmm14,zmm14,0x8
3317 vprord zmm15,zmm15,0x8
3318 vpaddd zmm8,zmm8,zmm12
3319 vpaddd zmm9,zmm9,zmm13
3320 vpaddd zmm10,zmm10,zmm14
3321 vpaddd zmm11,zmm11,zmm15
3322 vpxord zmm4,zmm4,zmm8
3323 vpxord zmm5,zmm5,zmm9
3324 vpxord zmm6,zmm6,zmm10
3325 vpxord zmm7,zmm7,zmm11
3326 vprord zmm4,zmm4,0x7
3327 vprord zmm5,zmm5,0x7
3328 vprord zmm6,zmm6,0x7
3329 vprord zmm7,zmm7,0x7
3330 vpaddd zmm0,zmm0,zmm29
3331 vpaddd zmm1,zmm1,zmm16
3332 vpaddd zmm2,zmm2,zmm18
3333 vpaddd zmm3,zmm3,zmm20
3334 vpaddd zmm0,zmm0,zmm5
3335 vpaddd zmm1,zmm1,zmm6
3336 vpaddd zmm2,zmm2,zmm7
3337 vpaddd zmm3,zmm3,zmm4
3338 vpxord zmm15,zmm15,zmm0
3339 vpxord zmm12,zmm12,zmm1
3340 vpxord zmm13,zmm13,zmm2
3341 vpxord zmm14,zmm14,zmm3
3342 vprord zmm15,zmm15,0x10
3343 vprord zmm12,zmm12,0x10
3344 vprord zmm13,zmm13,0x10
3345 vprord zmm14,zmm14,0x10
3346 vpaddd zmm10,zmm10,zmm15
3347 vpaddd zmm11,zmm11,zmm12
3348 vpaddd zmm8,zmm8,zmm13
3349 vpaddd zmm9,zmm9,zmm14
3350 vpxord zmm5,zmm5,zmm10
3351 vpxord zmm6,zmm6,zmm11
3352 vpxord zmm7,zmm7,zmm8
3353 vpxord zmm4,zmm4,zmm9
3354 vprord zmm5,zmm5,0xc
3355 vprord zmm6,zmm6,0xc
3356 vprord zmm7,zmm7,0xc
3357 vprord zmm4,zmm4,0xc
3358 vpaddd zmm0,zmm0,zmm19
3359 vpaddd zmm1,zmm1,zmm26
3360 vpaddd zmm2,zmm2,zmm22
3361 vpaddd zmm3,zmm3,zmm23
3362 vpaddd zmm0,zmm0,zmm5
3363 vpaddd zmm1,zmm1,zmm6
3364 vpaddd zmm2,zmm2,zmm7
3365 vpaddd zmm3,zmm3,zmm4
3366 vpxord zmm15,zmm15,zmm0
3367 vpxord zmm12,zmm12,zmm1
3368 vpxord zmm13,zmm13,zmm2
3369 vpxord zmm14,zmm14,zmm3
3370 vprord zmm15,zmm15,0x8
3371 vprord zmm12,zmm12,0x8
3372 vprord zmm13,zmm13,0x8
3373 vprord zmm14,zmm14,0x8
3374 vpaddd zmm10,zmm10,zmm15
3375 vpaddd zmm11,zmm11,zmm12
3376 vpaddd zmm8,zmm8,zmm13
3377 vpaddd zmm9,zmm9,zmm14
3378 vpxord zmm5,zmm5,zmm10
3379 vpxord zmm6,zmm6,zmm11
3380 vpxord zmm7,zmm7,zmm8
3381 vpxord zmm4,zmm4,zmm9
3382 vprord zmm5,zmm5,0x7
3383 vprord zmm6,zmm6,0x7
3384 vprord zmm7,zmm7,0x7
3385 vprord zmm4,zmm4,0x7
3386 vpaddd zmm0,zmm0,zmm27
3387 vpaddd zmm1,zmm1,zmm21
3388 vpaddd zmm2,zmm2,zmm17
3389 vpaddd zmm3,zmm3,zmm24
3390 vpaddd zmm0,zmm0,zmm4
3391 vpaddd zmm1,zmm1,zmm5
3392 vpaddd zmm2,zmm2,zmm6
3393 vpaddd zmm3,zmm3,zmm7
3394 vpxord zmm12,zmm12,zmm0
3395 vpxord zmm13,zmm13,zmm1
3396 vpxord zmm14,zmm14,zmm2
3397 vpxord zmm15,zmm15,zmm3
3398 vprord zmm12,zmm12,0x10
3399 vprord zmm13,zmm13,0x10
3400 vprord zmm14,zmm14,0x10
3401 vprord zmm15,zmm15,0x10
3402 vpaddd zmm8,zmm8,zmm12
3403 vpaddd zmm9,zmm9,zmm13
3404 vpaddd zmm10,zmm10,zmm14
3405 vpaddd zmm11,zmm11,zmm15
3406 vpxord zmm4,zmm4,zmm8
3407 vpxord zmm5,zmm5,zmm9
3408 vpxord zmm6,zmm6,zmm10
3409 vpxord zmm7,zmm7,zmm11
3410 vprord zmm4,zmm4,0xc
3411 vprord zmm5,zmm5,0xc
3412 vprord zmm6,zmm6,0xc
3413 vprord zmm7,zmm7,0xc
3414 vpaddd zmm0,zmm0,zmm31
3415 vpaddd zmm1,zmm1,zmm16
3416 vpaddd zmm2,zmm2,zmm25
3417 vpaddd zmm3,zmm3,zmm22
3418 vpaddd zmm0,zmm0,zmm4
3419 vpaddd zmm1,zmm1,zmm5
3420 vpaddd zmm2,zmm2,zmm6
3421 vpaddd zmm3,zmm3,zmm7
3422 vpxord zmm12,zmm12,zmm0
3423 vpxord zmm13,zmm13,zmm1
3424 vpxord zmm14,zmm14,zmm2
3425 vpxord zmm15,zmm15,zmm3
3426 vprord zmm12,zmm12,0x8
3427 vprord zmm13,zmm13,0x8
3428 vprord zmm14,zmm14,0x8
3429 vprord zmm15,zmm15,0x8
3430 vpaddd zmm8,zmm8,zmm12
3431 vpaddd zmm9,zmm9,zmm13
3432 vpaddd zmm10,zmm10,zmm14
3433 vpaddd zmm11,zmm11,zmm15
3434 vpxord zmm4,zmm4,zmm8
3435 vpxord zmm5,zmm5,zmm9
3436 vpxord zmm6,zmm6,zmm10
3437 vpxord zmm7,zmm7,zmm11
3438 vprord zmm4,zmm4,0x7
3439 vprord zmm5,zmm5,0x7
3440 vprord zmm6,zmm6,0x7
3441 vprord zmm7,zmm7,0x7
3442 vpaddd zmm0,zmm0,zmm30
3443 vpaddd zmm1,zmm1,zmm18
3444 vpaddd zmm2,zmm2,zmm19
3445 vpaddd zmm3,zmm3,zmm23
3446 vpaddd zmm0,zmm0,zmm5
3447 vpaddd zmm1,zmm1,zmm6
3448 vpaddd zmm2,zmm2,zmm7
3449 vpaddd zmm3,zmm3,zmm4
3450 vpxord zmm15,zmm15,zmm0
3451 vpxord zmm12,zmm12,zmm1
3452 vpxord zmm13,zmm13,zmm2
3453 vpxord zmm14,zmm14,zmm3
3454 vprord zmm15,zmm15,0x10
3455 vprord zmm12,zmm12,0x10
3456 vprord zmm13,zmm13,0x10
3457 vprord zmm14,zmm14,0x10
3458 vpaddd zmm10,zmm10,zmm15
3459 vpaddd zmm11,zmm11,zmm12
3460 vpaddd zmm8,zmm8,zmm13
3461 vpaddd zmm9,zmm9,zmm14
3462 vpxord zmm5,zmm5,zmm10
3463 vpxord zmm6,zmm6,zmm11
3464 vpxord zmm7,zmm7,zmm8
3465 vpxord zmm4,zmm4,zmm9
3466 vprord zmm5,zmm5,0xc
3467 vprord zmm6,zmm6,0xc
3468 vprord zmm7,zmm7,0xc
3469 vprord zmm4,zmm4,0xc
3470 vpaddd zmm0,zmm0,zmm26
3471 vpaddd zmm1,zmm1,zmm28
3472 vpaddd zmm2,zmm2,zmm20
3473 vpaddd zmm3,zmm3,zmm29
3474 vpaddd zmm0,zmm0,zmm5
3475 vpaddd zmm1,zmm1,zmm6
3476 vpaddd zmm2,zmm2,zmm7
3477 vpaddd zmm3,zmm3,zmm4
3478 vpxord zmm15,zmm15,zmm0
3479 vpxord zmm12,zmm12,zmm1
3480 vpxord zmm13,zmm13,zmm2
3481 vpxord zmm14,zmm14,zmm3
3482 vprord zmm15,zmm15,0x8
3483 vprord zmm12,zmm12,0x8
3484 vprord zmm13,zmm13,0x8
3485 vprord zmm14,zmm14,0x8
3486 vpaddd zmm10,zmm10,zmm15
3487 vpaddd zmm11,zmm11,zmm12
3488 vpaddd zmm8,zmm8,zmm13
3489 vpaddd zmm9,zmm9,zmm14
3490 vpxord zmm5,zmm5,zmm10
3491 vpxord zmm6,zmm6,zmm11
3492 vpxord zmm7,zmm7,zmm8
3493 vpxord zmm4,zmm4,zmm9
3494 vprord zmm5,zmm5,0x7
3495 vprord zmm6,zmm6,0x7
3496 vprord zmm7,zmm7,0x7
3497 vprord zmm4,zmm4,0x7
3498 vpxord zmm0,zmm0,zmm8
3499 vpxord zmm1,zmm1,zmm9
3500 vpxord zmm2,zmm2,zmm10
3501 vpxord zmm3,zmm3,zmm11
3502 vpxord zmm4,zmm4,zmm12
3503 vpxord zmm5,zmm5,zmm13
3504 vpxord zmm6,zmm6,zmm14
3505 vpxord zmm7,zmm7,zmm15
3506 vpxord zmm8,zmm8,DWORD PTR [rdi]{1to16}
3507 vpxord zmm9,zmm9,DWORD PTR [rdi+0x4]{1to16}
3508 vpxord zmm10,zmm10,DWORD PTR [rdi+0x8]{1to16}
3509 vpxord zmm11,zmm11,DWORD PTR [rdi+0xc]{1to16}
3510 vpxord zmm12,zmm12,DWORD PTR [rdi+0x10]{1to16}
3511 vpxord zmm13,zmm13,DWORD PTR [rdi+0x14]{1to16}
3512 vpxord zmm14,zmm14,DWORD PTR [rdi+0x18]{1to16}
3513 vpxord zmm15,zmm15,DWORD PTR [rdi+0x1c]{1to16}
3514 vpunpckldq zmm16,zmm0,zmm1
3515 vpunpckhdq zmm17,zmm0,zmm1
3516 vpunpckldq zmm18,zmm2,zmm3
3517 vpunpckhdq zmm19,zmm2,zmm3
3518 vpunpckldq zmm20,zmm4,zmm5
3519 vpunpckhdq zmm21,zmm4,zmm5
3520 vpunpckldq zmm22,zmm6,zmm7
3521 vpunpckhdq zmm23,zmm6,zmm7
3522 vpunpckldq zmm24,zmm8,zmm9
3523 vpunpckhdq zmm25,zmm8,zmm9
3524 vpunpckldq zmm26,zmm10,zmm11
3525 vpunpckhdq zmm27,zmm10,zmm11
3526 vpunpckldq zmm28,zmm12,zmm13
3527 vpunpckhdq zmm29,zmm12,zmm13
3528 vpunpckldq zmm30,zmm14,zmm15
3529 vpunpckhdq zmm31,zmm14,zmm15
3530 vpunpcklqdq zmm0,zmm16,zmm18
3531 vpunpckhqdq zmm1,zmm16,zmm18
3532 vpunpcklqdq zmm2,zmm17,zmm19
3533 vpunpckhqdq zmm3,zmm17,zmm19
3534 vpunpcklqdq zmm4,zmm20,zmm22
3535 vpunpckhqdq zmm5,zmm20,zmm22
3536 vpunpcklqdq zmm6,zmm21,zmm23
3537 vpunpckhqdq zmm7,zmm21,zmm23
3538 vpunpcklqdq zmm8,zmm24,zmm26
3539 vpunpckhqdq zmm9,zmm24,zmm26
3540 vpunpcklqdq zmm10,zmm25,zmm27
3541 vpunpckhqdq zmm11,zmm25,zmm27
3542 vpunpcklqdq zmm12,zmm28,zmm30
3543 vpunpckhqdq zmm13,zmm28,zmm30
3544 vpunpcklqdq zmm14,zmm29,zmm31
3545 vpunpckhqdq zmm15,zmm29,zmm31
3546 vshufi32x4 zmm16,zmm0,zmm4,0x88
3547 vshufi32x4 zmm17,zmm1,zmm5,0x88
3548 vshufi32x4 zmm18,zmm2,zmm6,0x88
3549 vshufi32x4 zmm19,zmm3,zmm7,0x88
3550 vshufi32x4 zmm20,zmm0,zmm4,0xdd
3551 vshufi32x4 zmm21,zmm1,zmm5,0xdd
3552 vshufi32x4 zmm22,zmm2,zmm6,0xdd
3553 vshufi32x4 zmm23,zmm3,zmm7,0xdd
3554 vshufi32x4 zmm24,zmm8,zmm12,0x88
3555 vshufi32x4 zmm25,zmm9,zmm13,0x88
3556 vshufi32x4 zmm26,zmm10,zmm14,0x88
3557 vshufi32x4 zmm27,zmm11,zmm15,0x88
3558 vshufi32x4 zmm28,zmm8,zmm12,0xdd
3559 vshufi32x4 zmm29,zmm9,zmm13,0xdd
3560 vshufi32x4 zmm30,zmm10,zmm14,0xdd
3561 vshufi32x4 zmm31,zmm11,zmm15,0xdd
3562 vshufi32x4 zmm0,zmm16,zmm24,0x88
3563 vshufi32x4 zmm1,zmm17,zmm25,0x88
3564 vshufi32x4 zmm2,zmm18,zmm26,0x88
3565 vshufi32x4 zmm3,zmm19,zmm27,0x88
3566 vshufi32x4 zmm4,zmm20,zmm28,0x88
3567 vshufi32x4 zmm5,zmm21,zmm29,0x88
3568 vshufi32x4 zmm6,zmm22,zmm30,0x88
3569 vshufi32x4 zmm7,zmm23,zmm31,0x88
3570 vshufi32x4 zmm8,zmm16,zmm24,0xdd
3571 vshufi32x4 zmm9,zmm17,zmm25,0xdd
3572 vshufi32x4 zmm10,zmm18,zmm26,0xdd
3573 vshufi32x4 zmm11,zmm19,zmm27,0xdd
3574 vshufi32x4 zmm12,zmm20,zmm28,0xdd
3575 vshufi32x4 zmm13,zmm21,zmm29,0xdd
3576 vshufi32x4 zmm14,zmm22,zmm30,0xdd
3577 vshufi32x4 zmm15,zmm23,zmm31,0xdd
3578 vmovdqu32 ZMMWORD PTR [r9],zmm0
3579 vmovdqu32 ZMMWORD PTR [r9+0x40],zmm1
3580 vmovdqu32 ZMMWORD PTR [r9+0x80],zmm2
3581 vmovdqu32 ZMMWORD PTR [r9+0xc0],zmm3
3582 vmovdqu32 ZMMWORD PTR [r9+0x100],zmm4
3583 vmovdqu32 ZMMWORD PTR [r9+0x140],zmm5
3584 vmovdqu32 ZMMWORD PTR [r9+0x180],zmm6
3585 vmovdqu32 ZMMWORD PTR [r9+0x1c0],zmm7
3586 vmovdqu32 ZMMWORD PTR [r9+0x200],zmm8
3587 vmovdqu32 ZMMWORD PTR [r9+0x240],zmm9
3588 vmovdqu32 ZMMWORD PTR [r9+0x280],zmm10
3589 vmovdqu32 ZMMWORD PTR [r9+0x2c0],zmm11
3590 vmovdqu32 ZMMWORD PTR [r9+0x300],zmm12
3591 vmovdqu32 ZMMWORD PTR [r9+0x340],zmm13
3592 vmovdqu32 ZMMWORD PTR [r9+0x380],zmm14
3593 vmovdqu32 ZMMWORD PTR [r9+0x3c0],zmm15
3594 vmovdqa32 zmm0,ZMMWORD PTR [rsp]
3595 vmovdqa32 zmm1,ZMMWORD PTR [rsp+0x40]
3596 vpaddd zmm2,zmm0,DWORD PTR [ADD16+rip]{1to16}
3597 vpcmpltud k1,zmm2,zmm0
3598 vpaddd zmm1{k1},zmm1,DWORD PTR [ADD1+rip]{1to16}
3599 vmovdqa32 ZMMWORD PTR [rsp],zmm2
3600 vmovdqa32 ZMMWORD PTR [rsp+0x40],zmm1
3601 add r9,0x400
3602 sub r10,0x10
3603 cmp r10,0x10
3604 jae 3b
3605 test r10,r10
3606 jne 2f
36079:
3608 vzeroupper
3609 mov rsp,rbp
3610 pop rbp
3611 ret
36122:
3613 test r10,0x8
3614 je 2f
3615 vpbroadcastd ymm16,DWORD PTR [rsi]
3616 vpbroadcastd ymm17,DWORD PTR [rsi+0x4]
3617 vpbroadcastd ymm18,DWORD PTR [rsi+0x8]
3618 vpbroadcastd ymm19,DWORD PTR [rsi+0xc]
3619 vpbroadcastd ymm20,DWORD PTR [rsi+0x10]
3620 vpbroadcastd ymm21,DWORD PTR [rsi+0x14]
3621 vpbroadcastd ymm22,DWORD PTR [rsi+0x18]
3622 vpbroadcastd ymm23,DWORD PTR [rsi+0x1c]
3623 vpbroadcastd ymm24,DWORD PTR [rsi+0x20]
3624 vpbroadcastd ymm25,DWORD PTR [rsi+0x24]
3625 vpbroadcastd ymm26,DWORD PTR [rsi+0x28]
3626 vpbroadcastd ymm27,DWORD PTR [rsi+0x2c]
3627 vpbroadcastd ymm28,DWORD PTR [rsi+0x30]
3628 vpbroadcastd ymm29,DWORD PTR [rsi+0x34]
3629 vpbroadcastd ymm30,DWORD PTR [rsi+0x38]
3630 vpbroadcastd ymm31,DWORD PTR [rsi+0x3c]
3631 vpbroadcastd ymm0,DWORD PTR [rdi]
3632 vpbroadcastd ymm1,DWORD PTR [rdi+0x4]
3633 vpbroadcastd ymm2,DWORD PTR [rdi+0x8]
3634 vpbroadcastd ymm3,DWORD PTR [rdi+0xc]
3635 vpbroadcastd ymm4,DWORD PTR [rdi+0x10]
3636 vpbroadcastd ymm5,DWORD PTR [rdi+0x14]
3637 vpbroadcastd ymm6,DWORD PTR [rdi+0x18]
3638 vpbroadcastd ymm7,DWORD PTR [rdi+0x1c]
3639 vpbroadcastd ymm8,DWORD PTR [BLAKE3_IV_0+rip]
3640 vpbroadcastd ymm9,DWORD PTR [BLAKE3_IV_1+rip]
3641 vpbroadcastd ymm10,DWORD PTR [BLAKE3_IV_2+rip]
3642 vpbroadcastd ymm11,DWORD PTR [BLAKE3_IV_3+rip]
3643 vmovdqa ymm12,YMMWORD PTR [rsp]
3644 vmovdqa ymm13,YMMWORD PTR [rsp+0x40]
3645 vpbroadcastd ymm14,edx
3646 vpbroadcastd ymm15,r8d
3647 vpaddd ymm0,ymm0,ymm16
3648 vpaddd ymm1,ymm1,ymm18
3649 vpaddd ymm2,ymm2,ymm20
3650 vpaddd ymm3,ymm3,ymm22
3651 vpaddd ymm0,ymm0,ymm4
3652 vpaddd ymm1,ymm1,ymm5
3653 vpaddd ymm2,ymm2,ymm6
3654 vpaddd ymm3,ymm3,ymm7
3655 vpxord ymm12,ymm12,ymm0
3656 vpxord ymm13,ymm13,ymm1
3657 vpxord ymm14,ymm14,ymm2
3658 vpxord ymm15,ymm15,ymm3
3659 vprord ymm12,ymm12,0x10
3660 vprord ymm13,ymm13,0x10
3661 vprord ymm14,ymm14,0x10
3662 vprord ymm15,ymm15,0x10
3663 vpaddd ymm8,ymm8,ymm12
3664 vpaddd ymm9,ymm9,ymm13
3665 vpaddd ymm10,ymm10,ymm14
3666 vpaddd ymm11,ymm11,ymm15
3667 vpxord ymm4,ymm4,ymm8
3668 vpxord ymm5,ymm5,ymm9
3669 vpxord ymm6,ymm6,ymm10
3670 vpxord ymm7,ymm7,ymm11
3671 vprord ymm4,ymm4,0xc
3672 vprord ymm5,ymm5,0xc
3673 vprord ymm6,ymm6,0xc
3674 vprord ymm7,ymm7,0xc
3675 vpaddd ymm0,ymm0,ymm17
3676 vpaddd ymm1,ymm1,ymm19
3677 vpaddd ymm2,ymm2,ymm21
3678 vpaddd ymm3,ymm3,ymm23
3679 vpaddd ymm0,ymm0,ymm4
3680 vpaddd ymm1,ymm1,ymm5
3681 vpaddd ymm2,ymm2,ymm6
3682 vpaddd ymm3,ymm3,ymm7
3683 vpxord ymm12,ymm12,ymm0
3684 vpxord ymm13,ymm13,ymm1
3685 vpxord ymm14,ymm14,ymm2
3686 vpxord ymm15,ymm15,ymm3
3687 vprord ymm12,ymm12,0x8
3688 vprord ymm13,ymm13,0x8
3689 vprord ymm14,ymm14,0x8
3690 vprord ymm15,ymm15,0x8
3691 vpaddd ymm8,ymm8,ymm12
3692 vpaddd ymm9,ymm9,ymm13
3693 vpaddd ymm10,ymm10,ymm14
3694 vpaddd ymm11,ymm11,ymm15
3695 vpxord ymm4,ymm4,ymm8
3696 vpxord ymm5,ymm5,ymm9
3697 vpxord ymm6,ymm6,ymm10
3698 vpxord ymm7,ymm7,ymm11
3699 vprord ymm4,ymm4,0x7
3700 vprord ymm5,ymm5,0x7
3701 vprord ymm6,ymm6,0x7
3702 vprord ymm7,ymm7,0x7
3703 vpaddd ymm0,ymm0,ymm24
3704 vpaddd ymm1,ymm1,ymm26
3705 vpaddd ymm2,ymm2,ymm28
3706 vpaddd ymm3,ymm3,ymm30
3707 vpaddd ymm0,ymm0,ymm5
3708 vpaddd ymm1,ymm1,ymm6
3709 vpaddd ymm2,ymm2,ymm7
3710 vpaddd ymm3,ymm3,ymm4
3711 vpxord ymm15,ymm15,ymm0
3712 vpxord ymm12,ymm12,ymm1
3713 vpxord ymm13,ymm13,ymm2
3714 vpxord ymm14,ymm14,ymm3
3715 vprord ymm15,ymm15,0x10
3716 vprord ymm12,ymm12,0x10
3717 vprord ymm13,ymm13,0x10
3718 vprord ymm14,ymm14,0x10
3719 vpaddd ymm10,ymm10,ymm15
3720 vpaddd ymm11,ymm11,ymm12
3721 vpaddd ymm8,ymm8,ymm13
3722 vpaddd ymm9,ymm9,ymm14
3723 vpxord ymm5,ymm5,ymm10
3724 vpxord ymm6,ymm6,ymm11
3725 vpxord ymm7,ymm7,ymm8
3726 vpxord ymm4,ymm4,ymm9
3727 vprord ymm5,ymm5,0xc
3728 vprord ymm6,ymm6,0xc
3729 vprord ymm7,ymm7,0xc
3730 vprord ymm4,ymm4,0xc
3731 vpaddd ymm0,ymm0,ymm25
3732 vpaddd ymm1,ymm1,ymm27
3733 vpaddd ymm2,ymm2,ymm29
3734 vpaddd ymm3,ymm3,ymm31
3735 vpaddd ymm0,ymm0,ymm5
3736 vpaddd ymm1,ymm1,ymm6
3737 vpaddd ymm2,ymm2,ymm7
3738 vpaddd ymm3,ymm3,ymm4
3739 vpxord ymm15,ymm15,ymm0
3740 vpxord ymm12,ymm12,ymm1
3741 vpxord ymm13,ymm13,ymm2
3742 vpxord ymm14,ymm14,ymm3
3743 vprord ymm15,ymm15,0x8
3744 vprord ymm12,ymm12,0x8
3745 vprord ymm13,ymm13,0x8
3746 vprord ymm14,ymm14,0x8
3747 vpaddd ymm10,ymm10,ymm15
3748 vpaddd ymm11,ymm11,ymm12
3749 vpaddd ymm8,ymm8,ymm13
3750 vpaddd ymm9,ymm9,ymm14
3751 vpxord ymm5,ymm5,ymm10
3752 vpxord ymm6,ymm6,ymm11
3753 vpxord ymm7,ymm7,ymm8
3754 vpxord ymm4,ymm4,ymm9
3755 vprord ymm5,ymm5,0x7
3756 vprord ymm6,ymm6,0x7
3757 vprord ymm7,ymm7,0x7
3758 vprord ymm4,ymm4,0x7
3759 vpaddd ymm0,ymm0,ymm18
3760 vpaddd ymm1,ymm1,ymm19
3761 vpaddd ymm2,ymm2,ymm23
3762 vpaddd ymm3,ymm3,ymm20
3763 vpaddd ymm0,ymm0,ymm4
3764 vpaddd ymm1,ymm1,ymm5
3765 vpaddd ymm2,ymm2,ymm6
3766 vpaddd ymm3,ymm3,ymm7
3767 vpxord ymm12,ymm12,ymm0
3768 vpxord ymm13,ymm13,ymm1
3769 vpxord ymm14,ymm14,ymm2
3770 vpxord ymm15,ymm15,ymm3
3771 vprord ymm12,ymm12,0x10
3772 vprord ymm13,ymm13,0x10
3773 vprord ymm14,ymm14,0x10
3774 vprord ymm15,ymm15,0x10
3775 vpaddd ymm8,ymm8,ymm12
3776 vpaddd ymm9,ymm9,ymm13
3777 vpaddd ymm10,ymm10,ymm14
3778 vpaddd ymm11,ymm11,ymm15
3779 vpxord ymm4,ymm4,ymm8
3780 vpxord ymm5,ymm5,ymm9
3781 vpxord ymm6,ymm6,ymm10
3782 vpxord ymm7,ymm7,ymm11
3783 vprord ymm4,ymm4,0xc
3784 vprord ymm5,ymm5,0xc
3785 vprord ymm6,ymm6,0xc
3786 vprord ymm7,ymm7,0xc
3787 vpaddd ymm0,ymm0,ymm22
3788 vpaddd ymm1,ymm1,ymm26
3789 vpaddd ymm2,ymm2,ymm16
3790 vpaddd ymm3,ymm3,ymm29
3791 vpaddd ymm0,ymm0,ymm4
3792 vpaddd ymm1,ymm1,ymm5
3793 vpaddd ymm2,ymm2,ymm6
3794 vpaddd ymm3,ymm3,ymm7
3795 vpxord ymm12,ymm12,ymm0
3796 vpxord ymm13,ymm13,ymm1
3797 vpxord ymm14,ymm14,ymm2
3798 vpxord ymm15,ymm15,ymm3
3799 vprord ymm12,ymm12,0x8
3800 vprord ymm13,ymm13,0x8
3801 vprord ymm14,ymm14,0x8
3802 vprord ymm15,ymm15,0x8
3803 vpaddd ymm8,ymm8,ymm12
3804 vpaddd ymm9,ymm9,ymm13
3805 vpaddd ymm10,ymm10,ymm14
3806 vpaddd ymm11,ymm11,ymm15
3807 vpxord ymm4,ymm4,ymm8
3808 vpxord ymm5,ymm5,ymm9
3809 vpxord ymm6,ymm6,ymm10
3810 vpxord ymm7,ymm7,ymm11
3811 vprord ymm4,ymm4,0x7
3812 vprord ymm5,ymm5,0x7
3813 vprord ymm6,ymm6,0x7
3814 vprord ymm7,ymm7,0x7
3815 vpaddd ymm0,ymm0,ymm17
3816 vpaddd ymm1,ymm1,ymm28
3817 vpaddd ymm2,ymm2,ymm25
3818 vpaddd ymm3,ymm3,ymm31
3819 vpaddd ymm0,ymm0,ymm5
3820 vpaddd ymm1,ymm1,ymm6
3821 vpaddd ymm2,ymm2,ymm7
3822 vpaddd ymm3,ymm3,ymm4
3823 vpxord ymm15,ymm15,ymm0
3824 vpxord ymm12,ymm12,ymm1
3825 vpxord ymm13,ymm13,ymm2
3826 vpxord ymm14,ymm14,ymm3
3827 vprord ymm15,ymm15,0x10
3828 vprord ymm12,ymm12,0x10
3829 vprord ymm13,ymm13,0x10
3830 vprord ymm14,ymm14,0x10
3831 vpaddd ymm10,ymm10,ymm15
3832 vpaddd ymm11,ymm11,ymm12
3833 vpaddd ymm8,ymm8,ymm13
3834 vpaddd ymm9,ymm9,ymm14
3835 vpxord ymm5,ymm5,ymm10
3836 vpxord ymm6,ymm6,ymm11
3837 vpxord ymm7,ymm7,ymm8
3838 vpxord ymm4,ymm4,ymm9
3839 vprord ymm5,ymm5,0xc
3840 vprord ymm6,ymm6,0xc
3841 vprord ymm7,ymm7,0xc
3842 vprord ymm4,ymm4,0xc
3843 vpaddd ymm0,ymm0,ymm27
3844 vpaddd ymm1,ymm1,ymm21
3845 vpaddd ymm2,ymm2,ymm30
3846 vpaddd ymm3,ymm3,ymm24
3847 vpaddd ymm0,ymm0,ymm5
3848 vpaddd ymm1,ymm1,ymm6
3849 vpaddd ymm2,ymm2,ymm7
3850 vpaddd ymm3,ymm3,ymm4
3851 vpxord ymm15,ymm15,ymm0
3852 vpxord ymm12,ymm12,ymm1
3853 vpxord ymm13,ymm13,ymm2
3854 vpxord ymm14,ymm14,ymm3
3855 vprord ymm15,ymm15,0x8
3856 vprord ymm12,ymm12,0x8
3857 vprord ymm13,ymm13,0x8
3858 vprord ymm14,ymm14,0x8
3859 vpaddd ymm10,ymm10,ymm15
3860 vpaddd ymm11,ymm11,ymm12
3861 vpaddd ymm8,ymm8,ymm13
3862 vpaddd ymm9,ymm9,ymm14
3863 vpxord ymm5,ymm5,ymm10
3864 vpxord ymm6,ymm6,ymm11
3865 vpxord ymm7,ymm7,ymm8
3866 vpxord ymm4,ymm4,ymm9
3867 vprord ymm5,ymm5,0x7
3868 vprord ymm6,ymm6,0x7
3869 vprord ymm7,ymm7,0x7
3870 vprord ymm4,ymm4,0x7
3871 vpaddd ymm0,ymm0,ymm19
3872 vpaddd ymm1,ymm1,ymm26
3873 vpaddd ymm2,ymm2,ymm29
3874 vpaddd ymm3,ymm3,ymm23
3875 vpaddd ymm0,ymm0,ymm4
3876 vpaddd ymm1,ymm1,ymm5
3877 vpaddd ymm2,ymm2,ymm6
3878 vpaddd ymm3,ymm3,ymm7
3879 vpxord ymm12,ymm12,ymm0
3880 vpxord ymm13,ymm13,ymm1
3881 vpxord ymm14,ymm14,ymm2
3882 vpxord ymm15,ymm15,ymm3
3883 vprord ymm12,ymm12,0x10
3884 vprord ymm13,ymm13,0x10
3885 vprord ymm14,ymm14,0x10
3886 vprord ymm15,ymm15,0x10
3887 vpaddd ymm8,ymm8,ymm12
3888 vpaddd ymm9,ymm9,ymm13
3889 vpaddd ymm10,ymm10,ymm14
3890 vpaddd ymm11,ymm11,ymm15
3891 vpxord ymm4,ymm4,ymm8
3892 vpxord ymm5,ymm5,ymm9
3893 vpxord ymm6,ymm6,ymm10
3894 vpxord ymm7,ymm7,ymm11
3895 vprord ymm4,ymm4,0xc
3896 vprord ymm5,ymm5,0xc
3897 vprord ymm6,ymm6,0xc
3898 vprord ymm7,ymm7,0xc
3899 vpaddd ymm0,ymm0,ymm20
3900 vpaddd ymm1,ymm1,ymm28
3901 vpaddd ymm2,ymm2,ymm18
3902 vpaddd ymm3,ymm3,ymm30
3903 vpaddd ymm0,ymm0,ymm4
3904 vpaddd ymm1,ymm1,ymm5
3905 vpaddd ymm2,ymm2,ymm6
3906 vpaddd ymm3,ymm3,ymm7
3907 vpxord ymm12,ymm12,ymm0
3908 vpxord ymm13,ymm13,ymm1
3909 vpxord ymm14,ymm14,ymm2
3910 vpxord ymm15,ymm15,ymm3
3911 vprord ymm12,ymm12,0x8
3912 vprord ymm13,ymm13,0x8
3913 vprord ymm14,ymm14,0x8
3914 vprord ymm15,ymm15,0x8
3915 vpaddd ymm8,ymm8,ymm12
3916 vpaddd ymm9,ymm9,ymm13
3917 vpaddd ymm10,ymm10,ymm14
3918 vpaddd ymm11,ymm11,ymm15
3919 vpxord ymm4,ymm4,ymm8
3920 vpxord ymm5,ymm5,ymm9
3921 vpxord ymm6,ymm6,ymm10
3922 vpxord ymm7,ymm7,ymm11
3923 vprord ymm4,ymm4,0x7
3924 vprord ymm5,ymm5,0x7
3925 vprord ymm6,ymm6,0x7
3926 vprord ymm7,ymm7,0x7
3927 vpaddd ymm0,ymm0,ymm22
3928 vpaddd ymm1,ymm1,ymm25
3929 vpaddd ymm2,ymm2,ymm27
3930 vpaddd ymm3,ymm3,ymm24
3931 vpaddd ymm0,ymm0,ymm5
3932 vpaddd ymm1,ymm1,ymm6
3933 vpaddd ymm2,ymm2,ymm7
3934 vpaddd ymm3,ymm3,ymm4
3935 vpxord ymm15,ymm15,ymm0
3936 vpxord ymm12,ymm12,ymm1
3937 vpxord ymm13,ymm13,ymm2
3938 vpxord ymm14,ymm14,ymm3
3939 vprord ymm15,ymm15,0x10
3940 vprord ymm12,ymm12,0x10
3941 vprord ymm13,ymm13,0x10
3942 vprord ymm14,ymm14,0x10
3943 vpaddd ymm10,ymm10,ymm15
3944 vpaddd ymm11,ymm11,ymm12
3945 vpaddd ymm8,ymm8,ymm13
3946 vpaddd ymm9,ymm9,ymm14
3947 vpxord ymm5,ymm5,ymm10
3948 vpxord ymm6,ymm6,ymm11
3949 vpxord ymm7,ymm7,ymm8
3950 vpxord ymm4,ymm4,ymm9
3951 vprord ymm5,ymm5,0xc
3952 vprord ymm6,ymm6,0xc
3953 vprord ymm7,ymm7,0xc
3954 vprord ymm4,ymm4,0xc
3955 vpaddd ymm0,ymm0,ymm21
3956 vpaddd ymm1,ymm1,ymm16
3957 vpaddd ymm2,ymm2,ymm31
3958 vpaddd ymm3,ymm3,ymm17
3959 vpaddd ymm0,ymm0,ymm5
3960 vpaddd ymm1,ymm1,ymm6
3961 vpaddd ymm2,ymm2,ymm7
3962 vpaddd ymm3,ymm3,ymm4
3963 vpxord ymm15,ymm15,ymm0
3964 vpxord ymm12,ymm12,ymm1
3965 vpxord ymm13,ymm13,ymm2
3966 vpxord ymm14,ymm14,ymm3
3967 vprord ymm15,ymm15,0x8
3968 vprord ymm12,ymm12,0x8
3969 vprord ymm13,ymm13,0x8
3970 vprord ymm14,ymm14,0x8
3971 vpaddd ymm10,ymm10,ymm15
3972 vpaddd ymm11,ymm11,ymm12
3973 vpaddd ymm8,ymm8,ymm13
3974 vpaddd ymm9,ymm9,ymm14
3975 vpxord ymm5,ymm5,ymm10
3976 vpxord ymm6,ymm6,ymm11
3977 vpxord ymm7,ymm7,ymm8
3978 vpxord ymm4,ymm4,ymm9
3979 vprord ymm5,ymm5,0x7
3980 vprord ymm6,ymm6,0x7
3981 vprord ymm7,ymm7,0x7
3982 vprord ymm4,ymm4,0x7
3983 vpaddd ymm0,ymm0,ymm26
3984 vpaddd ymm1,ymm1,ymm28
3985 vpaddd ymm2,ymm2,ymm30
3986 vpaddd ymm3,ymm3,ymm29
3987 vpaddd ymm0,ymm0,ymm4
3988 vpaddd ymm1,ymm1,ymm5
3989 vpaddd ymm2,ymm2,ymm6
3990 vpaddd ymm3,ymm3,ymm7
3991 vpxord ymm12,ymm12,ymm0
3992 vpxord ymm13,ymm13,ymm1
3993 vpxord ymm14,ymm14,ymm2
3994 vpxord ymm15,ymm15,ymm3
3995 vprord ymm12,ymm12,0x10
3996 vprord ymm13,ymm13,0x10
3997 vprord ymm14,ymm14,0x10
3998 vprord ymm15,ymm15,0x10
3999 vpaddd ymm8,ymm8,ymm12
4000 vpaddd ymm9,ymm9,ymm13
4001 vpaddd ymm10,ymm10,ymm14
4002 vpaddd ymm11,ymm11,ymm15
4003 vpxord ymm4,ymm4,ymm8
4004 vpxord ymm5,ymm5,ymm9
4005 vpxord ymm6,ymm6,ymm10
4006 vpxord ymm7,ymm7,ymm11
4007 vprord ymm4,ymm4,0xc
4008 vprord ymm5,ymm5,0xc
4009 vprord ymm6,ymm6,0xc
4010 vprord ymm7,ymm7,0xc
4011 vpaddd ymm0,ymm0,ymm23
4012 vpaddd ymm1,ymm1,ymm25
4013 vpaddd ymm2,ymm2,ymm19
4014 vpaddd ymm3,ymm3,ymm31
4015 vpaddd ymm0,ymm0,ymm4
4016 vpaddd ymm1,ymm1,ymm5
4017 vpaddd ymm2,ymm2,ymm6
4018 vpaddd ymm3,ymm3,ymm7
4019 vpxord ymm12,ymm12,ymm0
4020 vpxord ymm13,ymm13,ymm1
4021 vpxord ymm14,ymm14,ymm2
4022 vpxord ymm15,ymm15,ymm3
4023 vprord ymm12,ymm12,0x8
4024 vprord ymm13,ymm13,0x8
4025 vprord ymm14,ymm14,0x8
4026 vprord ymm15,ymm15,0x8
4027 vpaddd ymm8,ymm8,ymm12
4028 vpaddd ymm9,ymm9,ymm13
4029 vpaddd ymm10,ymm10,ymm14
4030 vpaddd ymm11,ymm11,ymm15
4031 vpxord ymm4,ymm4,ymm8
4032 vpxord ymm5,ymm5,ymm9
4033 vpxord ymm6,ymm6,ymm10
4034 vpxord ymm7,ymm7,ymm11
4035 vprord ymm4,ymm4,0x7
4036 vprord ymm5,ymm5,0x7
4037 vprord ymm6,ymm6,0x7
4038 vprord ymm7,ymm7,0x7
4039 vpaddd ymm0,ymm0,ymm20
4040 vpaddd ymm1,ymm1,ymm27
4041 vpaddd ymm2,ymm2,ymm21
4042 vpaddd ymm3,ymm3,ymm17
4043 vpaddd ymm0,ymm0,ymm5
4044 vpaddd ymm1,ymm1,ymm6
4045 vpaddd ymm2,ymm2,ymm7
4046 vpaddd ymm3,ymm3,ymm4
4047 vpxord ymm15,ymm15,ymm0
4048 vpxord ymm12,ymm12,ymm1
4049 vpxord ymm13,ymm13,ymm2
4050 vpxord ymm14,ymm14,ymm3
4051 vprord ymm15,ymm15,0x10
4052 vprord ymm12,ymm12,0x10
4053 vprord ymm13,ymm13,0x10
4054 vprord ymm14,ymm14,0x10
4055 vpaddd ymm10,ymm10,ymm15
4056 vpaddd ymm11,ymm11,ymm12
4057 vpaddd ymm8,ymm8,ymm13
4058 vpaddd ymm9,ymm9,ymm14
4059 vpxord ymm5,ymm5,ymm10
4060 vpxord ymm6,ymm6,ymm11
4061 vpxord ymm7,ymm7,ymm8
4062 vpxord ymm4,ymm4,ymm9
4063 vprord ymm5,ymm5,0xc
4064 vprord ymm6,ymm6,0xc
4065 vprord ymm7,ymm7,0xc
4066 vprord ymm4,ymm4,0xc
4067 vpaddd ymm0,ymm0,ymm16
4068 vpaddd ymm1,ymm1,ymm18
4069 vpaddd ymm2,ymm2,ymm24
4070 vpaddd ymm3,ymm3,ymm22
4071 vpaddd ymm0,ymm0,ymm5
4072 vpaddd ymm1,ymm1,ymm6
4073 vpaddd ymm2,ymm2,ymm7
4074 vpaddd ymm3,ymm3,ymm4
4075 vpxord ymm15,ymm15,ymm0
4076 vpxord ymm12,ymm12,ymm1
4077 vpxord ymm13,ymm13,ymm2
4078 vpxord ymm14,ymm14,ymm3
4079 vprord ymm15,ymm15,0x8
4080 vprord ymm12,ymm12,0x8
4081 vprord ymm13,ymm13,0x8
4082 vprord ymm14,ymm14,0x8
4083 vpaddd ymm10,ymm10,ymm15
4084 vpaddd ymm11,ymm11,ymm12
4085 vpaddd ymm8,ymm8,ymm13
4086 vpaddd ymm9,ymm9,ymm14
4087 vpxord ymm5,ymm5,ymm10
4088 vpxord ymm6,ymm6,ymm11
4089 vpxord ymm7,ymm7,ymm8
4090 vpxord ymm4,ymm4,ymm9
4091 vprord ymm5,ymm5,0x7
4092 vprord ymm6,ymm6,0x7
4093 vprord ymm7,ymm7,0x7
4094 vprord ymm4,ymm4,0x7
4095 vpaddd ymm0,ymm0,ymm28
4096 vpaddd ymm1,ymm1,ymm25
4097 vpaddd ymm2,ymm2,ymm31
4098 vpaddd ymm3,ymm3,ymm30
4099 vpaddd ymm0,ymm0,ymm4
4100 vpaddd ymm1,ymm1,ymm5
4101 vpaddd ymm2,ymm2,ymm6
4102 vpaddd ymm3,ymm3,ymm7
4103 vpxord ymm12,ymm12,ymm0
4104 vpxord ymm13,ymm13,ymm1
4105 vpxord ymm14,ymm14,ymm2
4106 vpxord ymm15,ymm15,ymm3
4107 vprord ymm12,ymm12,0x10
4108 vprord ymm13,ymm13,0x10
4109 vprord ymm14,ymm14,0x10
4110 vprord ymm15,ymm15,0x10
4111 vpaddd ymm8,ymm8,ymm12
4112 vpaddd ymm9,ymm9,ymm13
4113 vpaddd ymm10,ymm10,ymm14
4114 vpaddd ymm11,ymm11,ymm15
4115 vpxord ymm4,ymm4,ymm8
4116 vpxord ymm5,ymm5,ymm9
4117 vpxord ymm6,ymm6,ymm10
4118 vpxord ymm7,ymm7,ymm11
4119 vprord ymm4,ymm4,0xc
4120 vprord ymm5,ymm5,0xc
4121 vprord ymm6,ymm6,0xc
4122 vprord ymm7,ymm7,0xc
4123 vpaddd ymm0,ymm0,ymm29
4124 vpaddd ymm1,ymm1,ymm27
4125 vpaddd ymm2,ymm2,ymm26
4126 vpaddd ymm3,ymm3,ymm24
4127 vpaddd ymm0,ymm0,ymm4
4128 vpaddd ymm1,ymm1,ymm5
4129 vpaddd ymm2,ymm2,ymm6
4130 vpaddd ymm3,ymm3,ymm7
4131 vpxord ymm12,ymm12,ymm0
4132 vpxord ymm13,ymm13,ymm1
4133 vpxord ymm14,ymm14,ymm2
4134 vpxord ymm15,ymm15,ymm3
4135 vprord ymm12,ymm12,0x8
4136 vprord ymm13,ymm13,0x8
4137 vprord ymm14,ymm14,0x8
4138 vprord ymm15,ymm15,0x8
4139 vpaddd ymm8,ymm8,ymm12
4140 vpaddd ymm9,ymm9,ymm13
4141 vpaddd ymm10,ymm10,ymm14
4142 vpaddd ymm11,ymm11,ymm15
4143 vpxord ymm4,ymm4,ymm8
4144 vpxord ymm5,ymm5,ymm9
4145 vpxord ymm6,ymm6,ymm10
4146 vpxord ymm7,ymm7,ymm11
4147 vprord ymm4,ymm4,0x7
4148 vprord ymm5,ymm5,0x7
4149 vprord ymm6,ymm6,0x7
4150 vprord ymm7,ymm7,0x7
4151 vpaddd ymm0,ymm0,ymm23
4152 vpaddd ymm1,ymm1,ymm21
4153 vpaddd ymm2,ymm2,ymm16
4154 vpaddd ymm3,ymm3,ymm22
4155 vpaddd ymm0,ymm0,ymm5
4156 vpaddd ymm1,ymm1,ymm6
4157 vpaddd ymm2,ymm2,ymm7
4158 vpaddd ymm3,ymm3,ymm4
4159 vpxord ymm15,ymm15,ymm0
4160 vpxord ymm12,ymm12,ymm1
4161 vpxord ymm13,ymm13,ymm2
4162 vpxord ymm14,ymm14,ymm3
4163 vprord ymm15,ymm15,0x10
4164 vprord ymm12,ymm12,0x10
4165 vprord ymm13,ymm13,0x10
4166 vprord ymm14,ymm14,0x10
4167 vpaddd ymm10,ymm10,ymm15
4168 vpaddd ymm11,ymm11,ymm12
4169 vpaddd ymm8,ymm8,ymm13
4170 vpaddd ymm9,ymm9,ymm14
4171 vpxord ymm5,ymm5,ymm10
4172 vpxord ymm6,ymm6,ymm11
4173 vpxord ymm7,ymm7,ymm8
4174 vpxord ymm4,ymm4,ymm9
4175 vprord ymm5,ymm5,0xc
4176 vprord ymm6,ymm6,0xc
4177 vprord ymm7,ymm7,0xc
4178 vprord ymm4,ymm4,0xc
4179 vpaddd ymm0,ymm0,ymm18
4180 vpaddd ymm1,ymm1,ymm19
4181 vpaddd ymm2,ymm2,ymm17
4182 vpaddd ymm3,ymm3,ymm20
4183 vpaddd ymm0,ymm0,ymm5
4184 vpaddd ymm1,ymm1,ymm6
4185 vpaddd ymm2,ymm2,ymm7
4186 vpaddd ymm3,ymm3,ymm4
4187 vpxord ymm15,ymm15,ymm0
4188 vpxord ymm12,ymm12,ymm1
4189 vpxord ymm13,ymm13,ymm2
4190 vpxord ymm14,ymm14,ymm3
4191 vprord ymm15,ymm15,0x8
4192 vprord ymm12,ymm12,0x8
4193 vprord ymm13,ymm13,0x8
4194 vprord ymm14,ymm14,0x8
4195 vpaddd ymm10,ymm10,ymm15
4196 vpaddd ymm11,ymm11,ymm12
4197 vpaddd ymm8,ymm8,ymm13
4198 vpaddd ymm9,ymm9,ymm14
4199 vpxord ymm5,ymm5,ymm10
4200 vpxord ymm6,ymm6,ymm11
4201 vpxord ymm7,ymm7,ymm8
4202 vpxord ymm4,ymm4,ymm9
4203 vprord ymm5,ymm5,0x7
4204 vprord ymm6,ymm6,0x7
4205 vprord ymm7,ymm7,0x7
4206 vprord ymm4,ymm4,0x7
4207 vpaddd ymm0,ymm0,ymm25
4208 vpaddd ymm1,ymm1,ymm27
4209 vpaddd ymm2,ymm2,ymm24
4210 vpaddd ymm3,ymm3,ymm31
4211 vpaddd ymm0,ymm0,ymm4
4212 vpaddd ymm1,ymm1,ymm5
4213 vpaddd ymm2,ymm2,ymm6
4214 vpaddd ymm3,ymm3,ymm7
4215 vpxord ymm12,ymm12,ymm0
4216 vpxord ymm13,ymm13,ymm1
4217 vpxord ymm14,ymm14,ymm2
4218 vpxord ymm15,ymm15,ymm3
4219 vprord ymm12,ymm12,0x10
4220 vprord ymm13,ymm13,0x10
4221 vprord ymm14,ymm14,0x10
4222 vprord ymm15,ymm15,0x10
4223 vpaddd ymm8,ymm8,ymm12
4224 vpaddd ymm9,ymm9,ymm13
4225 vpaddd ymm10,ymm10,ymm14
4226 vpaddd ymm11,ymm11,ymm15
4227 vpxord ymm4,ymm4,ymm8
4228 vpxord ymm5,ymm5,ymm9
4229 vpxord ymm6,ymm6,ymm10
4230 vpxord ymm7,ymm7,ymm11
4231 vprord ymm4,ymm4,0xc
4232 vprord ymm5,ymm5,0xc
4233 vprord ymm6,ymm6,0xc
4234 vprord ymm7,ymm7,0xc
4235 vpaddd ymm0,ymm0,ymm30
4236 vpaddd ymm1,ymm1,ymm21
4237 vpaddd ymm2,ymm2,ymm28
4238 vpaddd ymm3,ymm3,ymm17
4239 vpaddd ymm0,ymm0,ymm4
4240 vpaddd ymm1,ymm1,ymm5
4241 vpaddd ymm2,ymm2,ymm6
4242 vpaddd ymm3,ymm3,ymm7
4243 vpxord ymm12,ymm12,ymm0
4244 vpxord ymm13,ymm13,ymm1
4245 vpxord ymm14,ymm14,ymm2
4246 vpxord ymm15,ymm15,ymm3
4247 vprord ymm12,ymm12,0x8
4248 vprord ymm13,ymm13,0x8
4249 vprord ymm14,ymm14,0x8
4250 vprord ymm15,ymm15,0x8
4251 vpaddd ymm8,ymm8,ymm12
4252 vpaddd ymm9,ymm9,ymm13
4253 vpaddd ymm10,ymm10,ymm14
4254 vpaddd ymm11,ymm11,ymm15
4255 vpxord ymm4,ymm4,ymm8
4256 vpxord ymm5,ymm5,ymm9
4257 vpxord ymm6,ymm6,ymm10
4258 vpxord ymm7,ymm7,ymm11
4259 vprord ymm4,ymm4,0x7
4260 vprord ymm5,ymm5,0x7
4261 vprord ymm6,ymm6,0x7
4262 vprord ymm7,ymm7,0x7
4263 vpaddd ymm0,ymm0,ymm29
4264 vpaddd ymm1,ymm1,ymm16
4265 vpaddd ymm2,ymm2,ymm18
4266 vpaddd ymm3,ymm3,ymm20
4267 vpaddd ymm0,ymm0,ymm5
4268 vpaddd ymm1,ymm1,ymm6
4269 vpaddd ymm2,ymm2,ymm7
4270 vpaddd ymm3,ymm3,ymm4
4271 vpxord ymm15,ymm15,ymm0
4272 vpxord ymm12,ymm12,ymm1
4273 vpxord ymm13,ymm13,ymm2
4274 vpxord ymm14,ymm14,ymm3
4275 vprord ymm15,ymm15,0x10
4276 vprord ymm12,ymm12,0x10
4277 vprord ymm13,ymm13,0x10
4278 vprord ymm14,ymm14,0x10
4279 vpaddd ymm10,ymm10,ymm15
4280 vpaddd ymm11,ymm11,ymm12
4281 vpaddd ymm8,ymm8,ymm13
4282 vpaddd ymm9,ymm9,ymm14
4283 vpxord ymm5,ymm5,ymm10
4284 vpxord ymm6,ymm6,ymm11
4285 vpxord ymm7,ymm7,ymm8
4286 vpxord ymm4,ymm4,ymm9
4287 vprord ymm5,ymm5,0xc
4288 vprord ymm6,ymm6,0xc
4289 vprord ymm7,ymm7,0xc
4290 vprord ymm4,ymm4,0xc
4291 vpaddd ymm0,ymm0,ymm19
4292 vpaddd ymm1,ymm1,ymm26
4293 vpaddd ymm2,ymm2,ymm22
4294 vpaddd ymm3,ymm3,ymm23
4295 vpaddd ymm0,ymm0,ymm5
4296 vpaddd ymm1,ymm1,ymm6
4297 vpaddd ymm2,ymm2,ymm7
4298 vpaddd ymm3,ymm3,ymm4
4299 vpxord ymm15,ymm15,ymm0
4300 vpxord ymm12,ymm12,ymm1
4301 vpxord ymm13,ymm13,ymm2
4302 vpxord ymm14,ymm14,ymm3
4303 vprord ymm15,ymm15,0x8
4304 vprord ymm12,ymm12,0x8
4305 vprord ymm13,ymm13,0x8
4306 vprord ymm14,ymm14,0x8
4307 vpaddd ymm10,ymm10,ymm15
4308 vpaddd ymm11,ymm11,ymm12
4309 vpaddd ymm8,ymm8,ymm13
4310 vpaddd ymm9,ymm9,ymm14
4311 vpxord ymm5,ymm5,ymm10
4312 vpxord ymm6,ymm6,ymm11
4313 vpxord ymm7,ymm7,ymm8
4314 vpxord ymm4,ymm4,ymm9
4315 vprord ymm5,ymm5,0x7
4316 vprord ymm6,ymm6,0x7
4317 vprord ymm7,ymm7,0x7
4318 vprord ymm4,ymm4,0x7
4319 vpaddd ymm0,ymm0,ymm27
4320 vpaddd ymm1,ymm1,ymm21
4321 vpaddd ymm2,ymm2,ymm17
4322 vpaddd ymm3,ymm3,ymm24
4323 vpaddd ymm0,ymm0,ymm4
4324 vpaddd ymm1,ymm1,ymm5
4325 vpaddd ymm2,ymm2,ymm6
4326 vpaddd ymm3,ymm3,ymm7
4327 vpxord ymm12,ymm12,ymm0
4328 vpxord ymm13,ymm13,ymm1
4329 vpxord ymm14,ymm14,ymm2
4330 vpxord ymm15,ymm15,ymm3
4331 vprord ymm12,ymm12,0x10
4332 vprord ymm13,ymm13,0x10
4333 vprord ymm14,ymm14,0x10
4334 vprord ymm15,ymm15,0x10
4335 vpaddd ymm8,ymm8,ymm12
4336 vpaddd ymm9,ymm9,ymm13
4337 vpaddd ymm10,ymm10,ymm14
4338 vpaddd ymm11,ymm11,ymm15
4339 vpxord ymm4,ymm4,ymm8
4340 vpxord ymm5,ymm5,ymm9
4341 vpxord ymm6,ymm6,ymm10
4342 vpxord ymm7,ymm7,ymm11
4343 vprord ymm4,ymm4,0xc
4344 vprord ymm5,ymm5,0xc
4345 vprord ymm6,ymm6,0xc
4346 vprord ymm7,ymm7,0xc
4347 vpaddd ymm0,ymm0,ymm31
4348 vpaddd ymm1,ymm1,ymm16
4349 vpaddd ymm2,ymm2,ymm25
4350 vpaddd ymm3,ymm3,ymm22
4351 vpaddd ymm0,ymm0,ymm4
4352 vpaddd ymm1,ymm1,ymm5
4353 vpaddd ymm2,ymm2,ymm6
4354 vpaddd ymm3,ymm3,ymm7
4355 vpxord ymm12,ymm12,ymm0
4356 vpxord ymm13,ymm13,ymm1
4357 vpxord ymm14,ymm14,ymm2
4358 vpxord ymm15,ymm15,ymm3
4359 vprord ymm12,ymm12,0x8
4360 vprord ymm13,ymm13,0x8
4361 vprord ymm14,ymm14,0x8
4362 vprord ymm15,ymm15,0x8
4363 vpaddd ymm8,ymm8,ymm12
4364 vpaddd ymm9,ymm9,ymm13
4365 vpaddd ymm10,ymm10,ymm14
4366 vpaddd ymm11,ymm11,ymm15
4367 vpxord ymm4,ymm4,ymm8
4368 vpxord ymm5,ymm5,ymm9
4369 vpxord ymm6,ymm6,ymm10
4370 vpxord ymm7,ymm7,ymm11
4371 vprord ymm4,ymm4,0x7
4372 vprord ymm5,ymm5,0x7
4373 vprord ymm6,ymm6,0x7
4374 vprord ymm7,ymm7,0x7
4375 vpaddd ymm0,ymm0,ymm30
4376 vpaddd ymm1,ymm1,ymm18
4377 vpaddd ymm2,ymm2,ymm19
4378 vpaddd ymm3,ymm3,ymm23
4379 vpaddd ymm0,ymm0,ymm5
4380 vpaddd ymm1,ymm1,ymm6
4381 vpaddd ymm2,ymm2,ymm7
4382 vpaddd ymm3,ymm3,ymm4
4383 vpxord ymm15,ymm15,ymm0
4384 vpxord ymm12,ymm12,ymm1
4385 vpxord ymm13,ymm13,ymm2
4386 vpxord ymm14,ymm14,ymm3
4387 vprord ymm15,ymm15,0x10
4388 vprord ymm12,ymm12,0x10
4389 vprord ymm13,ymm13,0x10
4390 vprord ymm14,ymm14,0x10
4391 vpaddd ymm10,ymm10,ymm15
4392 vpaddd ymm11,ymm11,ymm12
4393 vpaddd ymm8,ymm8,ymm13
4394 vpaddd ymm9,ymm9,ymm14
4395 vpxord ymm5,ymm5,ymm10
4396 vpxord ymm6,ymm6,ymm11
4397 vpxord ymm7,ymm7,ymm8
4398 vpxord ymm4,ymm4,ymm9
4399 vprord ymm5,ymm5,0xc
4400 vprord ymm6,ymm6,0xc
4401 vprord ymm7,ymm7,0xc
4402 vprord ymm4,ymm4,0xc
4403 vpaddd ymm0,ymm0,ymm26
4404 vpaddd ymm1,ymm1,ymm28
4405 vpaddd ymm2,ymm2,ymm20
4406 vpaddd ymm3,ymm3,ymm29
4407 vpaddd ymm0,ymm0,ymm5
4408 vpaddd ymm1,ymm1,ymm6
4409 vpaddd ymm2,ymm2,ymm7
4410 vpaddd ymm3,ymm3,ymm4
4411 vpxord ymm15,ymm15,ymm0
4412 vpxord ymm12,ymm12,ymm1
4413 vpxord ymm13,ymm13,ymm2
4414 vpxord ymm14,ymm14,ymm3
4415 vprord ymm15,ymm15,0x8
4416 vprord ymm12,ymm12,0x8
4417 vprord ymm13,ymm13,0x8
4418 vprord ymm14,ymm14,0x8
4419 vpaddd ymm10,ymm10,ymm15
4420 vpaddd ymm11,ymm11,ymm12
4421 vpaddd ymm8,ymm8,ymm13
4422 vpaddd ymm9,ymm9,ymm14
4423 vpxord ymm5,ymm5,ymm10
4424 vpxord ymm6,ymm6,ymm11
4425 vpxord ymm7,ymm7,ymm8
4426 vpxord ymm4,ymm4,ymm9
4427 vprord ymm5,ymm5,0x7
4428 vprord ymm6,ymm6,0x7
4429 vprord ymm7,ymm7,0x7
4430 vprord ymm4,ymm4,0x7
4431 vpxor ymm0,ymm0,ymm8
4432 vpxor ymm1,ymm1,ymm9
4433 vpxor ymm2,ymm2,ymm10
4434 vpxor ymm3,ymm3,ymm11
4435 vpxor ymm4,ymm4,ymm12
4436 vpxor ymm5,ymm5,ymm13
4437 vpxor ymm6,ymm6,ymm14
4438 vpxor ymm7,ymm7,ymm15
4439 vpxord ymm8,ymm8,DWORD PTR [rdi]{1to8}
4440 vpxord ymm9,ymm9,DWORD PTR [rdi+0x4]{1to8}
4441 vpxord ymm10,ymm10,DWORD PTR [rdi+0x8]{1to8}
4442 vpxord ymm11,ymm11,DWORD PTR [rdi+0xc]{1to8}
4443 vpxord ymm12,ymm12,DWORD PTR [rdi+0x10]{1to8}
4444 vpxord ymm13,ymm13,DWORD PTR [rdi+0x14]{1to8}
4445 vpxord ymm14,ymm14,DWORD PTR [rdi+0x18]{1to8}
4446 vpxord ymm15,ymm15,DWORD PTR [rdi+0x1c]{1to8}
4447 vpunpckldq ymm16,ymm0,ymm1
4448 vpunpckhdq ymm17,ymm0,ymm1
4449 vpunpckldq ymm18,ymm2,ymm3
4450 vpunpckhdq ymm19,ymm2,ymm3
4451 vpunpckldq ymm20,ymm4,ymm5
4452 vpunpckhdq ymm21,ymm4,ymm5
4453 vpunpckldq ymm22,ymm6,ymm7
4454 vpunpckhdq ymm23,ymm6,ymm7
4455 vpunpckldq ymm24,ymm8,ymm9
4456 vpunpckhdq ymm25,ymm8,ymm9
4457 vpunpckldq ymm26,ymm10,ymm11
4458 vpunpckhdq ymm27,ymm10,ymm11
4459 vpunpckldq ymm28,ymm12,ymm13
4460 vpunpckhdq ymm29,ymm12,ymm13
4461 vpunpckldq ymm30,ymm14,ymm15
4462 vpunpckhdq ymm31,ymm14,ymm15
4463 vpunpcklqdq ymm0,ymm16,ymm18
4464 vpunpckhqdq ymm1,ymm16,ymm18
4465 vpunpcklqdq ymm2,ymm17,ymm19
4466 vpunpckhqdq ymm3,ymm17,ymm19
4467 vpunpcklqdq ymm4,ymm20,ymm22
4468 vpunpckhqdq ymm5,ymm20,ymm22
4469 vpunpcklqdq ymm6,ymm21,ymm23
4470 vpunpckhqdq ymm7,ymm21,ymm23
4471 vpunpcklqdq ymm8,ymm24,ymm26
4472 vpunpckhqdq ymm9,ymm24,ymm26
4473 vpunpcklqdq ymm10,ymm25,ymm27
4474 vpunpckhqdq ymm11,ymm25,ymm27
4475 vpunpcklqdq ymm12,ymm28,ymm30
4476 vpunpckhqdq ymm13,ymm28,ymm30
4477 vpunpcklqdq ymm14,ymm29,ymm31
4478 vpunpckhqdq ymm15,ymm29,ymm31
4479 vshufi32x4 ymm16,ymm0,ymm4,0x0
4480 vshufi32x4 ymm17,ymm8,ymm12,0x0
4481 vshufi32x4 ymm18,ymm1,ymm5,0x0
4482 vshufi32x4 ymm19,ymm9,ymm13,0x0
4483 vshufi32x4 ymm20,ymm2,ymm6,0x0
4484 vshufi32x4 ymm21,ymm10,ymm14,0x0
4485 vshufi32x4 ymm22,ymm3,ymm7,0x0
4486 vshufi32x4 ymm23,ymm11,ymm15,0x0
4487 vshufi32x4 ymm24,ymm0,ymm4,0x3
4488 vshufi32x4 ymm25,ymm8,ymm12,0x3
4489 vshufi32x4 ymm26,ymm1,ymm5,0x3
4490 vshufi32x4 ymm27,ymm9,ymm13,0x3
4491 vshufi32x4 ymm28,ymm2,ymm6,0x3
4492 vshufi32x4 ymm29,ymm10,ymm14,0x3
4493 vshufi32x4 ymm30,ymm3,ymm7,0x3
4494 vshufi32x4 ymm31,ymm11,ymm15,0x3
4495 vmovdqu32 YMMWORD PTR [r9],ymm16
4496 vmovdqu32 YMMWORD PTR [r9+0x20],ymm17
4497 vmovdqu32 YMMWORD PTR [r9+0x40],ymm18
4498 vmovdqu32 YMMWORD PTR [r9+0x60],ymm19
4499 vmovdqu32 YMMWORD PTR [r9+0x80],ymm20
4500 vmovdqu32 YMMWORD PTR [r9+0xa0],ymm21
4501 vmovdqu32 YMMWORD PTR [r9+0xc0],ymm22
4502 vmovdqu32 YMMWORD PTR [r9+0xe0],ymm23
4503 vmovdqu32 YMMWORD PTR [r9+0x100],ymm24
4504 vmovdqu32 YMMWORD PTR [r9+0x120],ymm25
4505 vmovdqu32 YMMWORD PTR [r9+0x140],ymm26
4506 vmovdqu32 YMMWORD PTR [r9+0x160],ymm27
4507 vmovdqu32 YMMWORD PTR [r9+0x180],ymm28
4508 vmovdqu32 YMMWORD PTR [r9+0x1a0],ymm29
4509 vmovdqu32 YMMWORD PTR [r9+0x1c0],ymm30
4510 vmovdqu32 YMMWORD PTR [r9+0x1e0],ymm31
4511 vmovdqa ymm0,YMMWORD PTR [rsp+0x20]
4512 vmovdqa ymm1,YMMWORD PTR [rsp+0x60]
4513 vmovdqa YMMWORD PTR [rsp],ymm0
4514 vmovdqa YMMWORD PTR [rsp+0x40],ymm1
4515 add r9,0x200
4516 sub r10,0x8
45172:
4518 test r10,0x4
4519 je 2f
4520 vbroadcasti32x4 zmm0,XMMWORD PTR [rdi]
4521 vbroadcasti32x4 zmm1,XMMWORD PTR [rdi+0x10]
4522 vbroadcasti32x4 zmm2,XMMWORD PTR [BLAKE3_IV+rip]
4523 vmovdqa xmm12,XMMWORD PTR [rsp]
4524 vmovdqa xmm13,XMMWORD PTR [rsp+0x40]
4525 vpunpckldq xmm14,xmm12,xmm13
4526 vpunpckhdq xmm15,xmm12,xmm13
4527 vpermq ymm14,ymm14,0xdc
4528 vpermq ymm15,ymm15,0xdc
4529 vpbroadcastd zmm12,edx
4530 vinserti64x4 zmm13,zmm14,ymm15,0x1
4531 mov eax,0x4444
4532 kmovw k2,eax
4533 vpblendmd zmm13{k2},zmm13,zmm12
4534 vpbroadcastd zmm15,r8d
4535 mov eax,0x8888
4536 kmovw k4,eax
4537 vpblendmd zmm3{k4},zmm13,zmm15
4538 mov eax,0xaaaa
4539 kmovw k3,eax
4540 vbroadcasti32x4 zmm8,XMMWORD PTR [rsi]
4541 vbroadcasti32x4 zmm9,XMMWORD PTR [rsi+0x10]
4542 vshufps zmm4,zmm8,zmm9,0x88
4543 vshufps zmm5,zmm8,zmm9,0xdd
4544 vbroadcasti32x4 zmm8,XMMWORD PTR [rsi+0x20]
4545 vbroadcasti32x4 zmm9,XMMWORD PTR [rsi+0x30]
4546 vshufps zmm6,zmm8,zmm9,0x88
4547 vshufps zmm7,zmm8,zmm9,0xdd
4548 vpshufd zmm6,zmm6,0x93
4549 vpshufd zmm7,zmm7,0x93
4550 mov al,0x7
45513:
4552 vpaddd zmm0,zmm0,zmm4
4553 vpaddd zmm0,zmm0,zmm1
4554 vpxord zmm3,zmm3,zmm0
4555 vprord zmm3,zmm3,0x10
4556 vpaddd zmm2,zmm2,zmm3
4557 vpxord zmm1,zmm1,zmm2
4558 vprord zmm1,zmm1,0xc
4559 vpaddd zmm0,zmm0,zmm5
4560 vpaddd zmm0,zmm0,zmm1
4561 vpxord zmm3,zmm3,zmm0
4562 vprord zmm3,zmm3,0x8
4563 vpaddd zmm2,zmm2,zmm3
4564 vpxord zmm1,zmm1,zmm2
4565 vprord zmm1,zmm1,0x7
4566 vpshufd zmm0,zmm0,0x93
4567 vpshufd zmm3,zmm3,0x4e
4568 vpshufd zmm2,zmm2,0x39
4569 vpaddd zmm0,zmm0,zmm6
4570 vpaddd zmm0,zmm0,zmm1
4571 vpxord zmm3,zmm3,zmm0
4572 vprord zmm3,zmm3,0x10
4573 vpaddd zmm2,zmm2,zmm3
4574 vpxord zmm1,zmm1,zmm2
4575 vprord zmm1,zmm1,0xc
4576 vpaddd zmm0,zmm0,zmm7
4577 vpaddd zmm0,zmm0,zmm1
4578 vpxord zmm3,zmm3,zmm0
4579 vprord zmm3,zmm3,0x8
4580 vpaddd zmm2,zmm2,zmm3
4581 vpxord zmm1,zmm1,zmm2
4582 vprord zmm1,zmm1,0x7
4583 vpshufd zmm0,zmm0,0x39
4584 vpshufd zmm3,zmm3,0x4e
4585 vpshufd zmm2,zmm2,0x93
4586 dec al
4587 je 3f
4588 vshufps zmm8,zmm4,zmm5,0xd6
4589 vpshufd zmm9,zmm4,0xf
4590 vpshufd zmm4,zmm8,0x39
4591 vshufps zmm8,zmm6,zmm7,0xfa
4592 vpblendmd zmm9{k3},zmm9,zmm8
4593 vpunpcklqdq zmm8,zmm7,zmm5
4594 vpblendmd zmm8{k4},zmm8,zmm6
4595 vpshufd zmm8,zmm8,0x78
4596 vpunpckhdq zmm5,zmm5,zmm7
4597 vpunpckldq zmm6,zmm6,zmm5
4598 vpshufd zmm7,zmm6,0x1e
4599 vmovdqa32 zmm5,zmm9
4600 vmovdqa32 zmm6,zmm8
4601 jmp 3b
46023:
4603 vpxord zmm0,zmm0,zmm2
4604 vpxord zmm1,zmm1,zmm3
4605 vbroadcasti32x4 zmm8,XMMWORD PTR [rdi]
4606 vbroadcasti32x4 zmm9,XMMWORD PTR [rdi+0x10]
4607 vpxord zmm2,zmm2,zmm8
4608 vpxord zmm3,zmm3,zmm9
4609 vmovdqu XMMWORD PTR [r9],xmm0
4610 vmovdqu XMMWORD PTR [r9+0x10],xmm1
4611 vmovdqu XMMWORD PTR [r9+0x20],xmm2
4612 vmovdqu XMMWORD PTR [r9+0x30],xmm3
4613 vextracti128 XMMWORD PTR [r9+0x40],ymm0,0x1
4614 vextracti128 XMMWORD PTR [r9+0x50],ymm1,0x1
4615 vextracti128 XMMWORD PTR [r9+0x60],ymm2,0x1
4616 vextracti128 XMMWORD PTR [r9+0x70],ymm3,0x1
4617 vextracti32x4 XMMWORD PTR [r9+0x80],zmm0,0x2
4618 vextracti32x4 XMMWORD PTR [r9+0x90],zmm1,0x2
4619 vextracti32x4 XMMWORD PTR [r9+0xa0],zmm2,0x2
4620 vextracti32x4 XMMWORD PTR [r9+0xb0],zmm3,0x2
4621 vextracti32x4 XMMWORD PTR [r9+0xc0],zmm0,0x3
4622 vextracti32x4 XMMWORD PTR [r9+0xd0],zmm1,0x3
4623 vextracti32x4 XMMWORD PTR [r9+0xe0],zmm2,0x3
4624 vextracti32x4 XMMWORD PTR [r9+0xf0],zmm3,0x3
4625 vmovdqa xmm0,XMMWORD PTR [rsp+0x10]
4626 vmovdqa xmm1,XMMWORD PTR [rsp+0x50]
4627 vmovdqa XMMWORD PTR [rsp],xmm0
4628 vmovdqa XMMWORD PTR [rsp+0x40],xmm1
4629 add r9,0x100
4630 sub r10,0x4
46312:
4632 test r10,0x2
4633 je 2f
4634 vbroadcasti128 ymm0,XMMWORD PTR [rdi]
4635 vbroadcasti128 ymm1,XMMWORD PTR [rdi+0x10]
4636 vmovd xmm13,DWORD PTR [rsp]
4637 vpinsrd xmm13,xmm13,DWORD PTR [rsp+0x40],0x1
4638 vpinsrd xmm13,xmm13,edx,0x2
4639 vmovd xmm14,DWORD PTR [rsp+0x4]
4640 vpinsrd xmm14,xmm14,DWORD PTR [rsp+0x44],0x1
4641 vpinsrd xmm14,xmm14,edx,0x2
4642 vinserti128 ymm13,ymm13,xmm14,0x1
4643 vbroadcasti128 ymm2,XMMWORD PTR [BLAKE3_IV+rip]
4644 vpbroadcastd ymm8,r8d
4645 vpblendd ymm3,ymm13,ymm8,0x88
4646 vbroadcasti128 ymm8,XMMWORD PTR [rsi]
4647 vbroadcasti128 ymm9,XMMWORD PTR [rsi+0x10]
4648 vshufps ymm4,ymm8,ymm9,0x88
4649 vshufps ymm5,ymm8,ymm9,0xdd
4650 vbroadcasti128 ymm8,XMMWORD PTR [rsi+0x20]
4651 vbroadcasti128 ymm9,XMMWORD PTR [rsi+0x30]
4652 vshufps ymm6,ymm8,ymm9,0x88
4653 vshufps ymm7,ymm8,ymm9,0xdd
4654 vpshufd ymm6,ymm6,0x93
4655 vpshufd ymm7,ymm7,0x93
4656 mov al,0x7
46573:
4658 vpaddd ymm0,ymm0,ymm4
4659 vpaddd ymm0,ymm0,ymm1
4660 vpxord ymm3,ymm3,ymm0
4661 vprord ymm3,ymm3,0x10
4662 vpaddd ymm2,ymm2,ymm3
4663 vpxord ymm1,ymm1,ymm2
4664 vprord ymm1,ymm1,0xc
4665 vpaddd ymm0,ymm0,ymm5
4666 vpaddd ymm0,ymm0,ymm1
4667 vpxord ymm3,ymm3,ymm0
4668 vprord ymm3,ymm3,0x8
4669 vpaddd ymm2,ymm2,ymm3
4670 vpxord ymm1,ymm1,ymm2
4671 vprord ymm1,ymm1,0x7
4672 vpshufd ymm0,ymm0,0x93
4673 vpshufd ymm3,ymm3,0x4e
4674 vpshufd ymm2,ymm2,0x39
4675 vpaddd ymm0,ymm0,ymm6
4676 vpaddd ymm0,ymm0,ymm1
4677 vpxord ymm3,ymm3,ymm0
4678 vprord ymm3,ymm3,0x10
4679 vpaddd ymm2,ymm2,ymm3
4680 vpxord ymm1,ymm1,ymm2
4681 vprord ymm1,ymm1,0xc
4682 vpaddd ymm0,ymm0,ymm7
4683 vpaddd ymm0,ymm0,ymm1
4684 vpxord ymm3,ymm3,ymm0
4685 vprord ymm3,ymm3,0x8
4686 vpaddd ymm2,ymm2,ymm3
4687 vpxord ymm1,ymm1,ymm2
4688 vprord ymm1,ymm1,0x7
4689 vpshufd ymm0,ymm0,0x39
4690 vpshufd ymm3,ymm3,0x4e
4691 vpshufd ymm2,ymm2,0x93
4692 dec al
4693 je 3f
4694 vshufps ymm8,ymm4,ymm5,0xd6
4695 vpshufd ymm9,ymm4,0xf
4696 vpshufd ymm4,ymm8,0x39
4697 vshufps ymm8,ymm6,ymm7,0xfa
4698 vpblendd ymm9,ymm9,ymm8,0xaa
4699 vpunpcklqdq ymm8,ymm7,ymm5
4700 vpblendd ymm8,ymm8,ymm6,0x88
4701 vpshufd ymm8,ymm8,0x78
4702 vpunpckhdq ymm5,ymm5,ymm7
4703 vpunpckldq ymm6,ymm6,ymm5
4704 vpshufd ymm7,ymm6,0x1e
4705 vmovdqa ymm5,ymm9
4706 vmovdqa ymm6,ymm8
4707 jmp 3b
47083:
4709 vpxor ymm0,ymm0,ymm2
4710 vpxor ymm1,ymm1,ymm3
4711 vbroadcasti128 ymm8,XMMWORD PTR [rdi]
4712 vbroadcasti128 ymm9,XMMWORD PTR [rdi+0x10]
4713 vpxor ymm2,ymm2,ymm8
4714 vpxor ymm3,ymm3,ymm9
4715 vmovdqu XMMWORD PTR [r9],xmm0
4716 vmovdqu XMMWORD PTR [r9+0x10],xmm1
4717 vmovdqu XMMWORD PTR [r9+0x20],xmm2
4718 vmovdqu XMMWORD PTR [r9+0x30],xmm3
4719 vextracti128 XMMWORD PTR [r9+0x40],ymm0,0x1
4720 vextracti128 XMMWORD PTR [r9+0x50],ymm1,0x1
4721 vextracti128 XMMWORD PTR [r9+0x60],ymm2,0x1
4722 vextracti128 XMMWORD PTR [r9+0x70],ymm3,0x1
4723 vmovdqu xmm0,XMMWORD PTR [rsp+0x8]
4724 vmovdqu xmm1,XMMWORD PTR [rsp+0x48]
4725 vmovdqa XMMWORD PTR [rsp],xmm0
4726 vmovdqa XMMWORD PTR [rsp+0x40],xmm1
4727 add r9,0x80
4728 sub r10,0x2
47292:
4730 test r10,0x1
4731 je 9b
4732 vmovdqu xmm0,XMMWORD PTR [rdi]
4733 vmovdqu xmm1,XMMWORD PTR [rdi+0x10]
4734 vmovd xmm14,DWORD PTR [rsp]
4735 vpinsrd xmm14,xmm14,DWORD PTR [rsp+0x40],0x1
4736 vpinsrd xmm14,xmm14,edx,0x2
4737 vmovdqa xmm2,XMMWORD PTR [BLAKE3_IV+rip]
4738 vpinsrd xmm3,xmm14,r8d,0x3
4739 vmovups xmm8,XMMWORD PTR [rsi]
4740 vmovups xmm9,XMMWORD PTR [rsi+0x10]
4741 vshufps xmm4,xmm8,xmm9,0x88
4742 vshufps xmm5,xmm8,xmm9,0xdd
4743 vmovups xmm8,XMMWORD PTR [rsi+0x20]
4744 vmovups xmm9,XMMWORD PTR [rsi+0x30]
4745 vshufps xmm6,xmm8,xmm9,0x88
4746 vshufps xmm7,xmm8,xmm9,0xdd
4747 vpshufd xmm6,xmm6,0x93
4748 vpshufd xmm7,xmm7,0x93
4749 mov al,0x7
47503:
4751 vpaddd xmm0,xmm0,xmm4
4752 vpaddd xmm0,xmm0,xmm1
4753 vpxord xmm3,xmm3,xmm0
4754 vprord xmm3,xmm3,0x10
4755 vpaddd xmm2,xmm2,xmm3
4756 vpxord xmm1,xmm1,xmm2
4757 vprord xmm1,xmm1,0xc
4758 vpaddd xmm0,xmm0,xmm5
4759 vpaddd xmm0,xmm0,xmm1
4760 vpxord xmm3,xmm3,xmm0
4761 vprord xmm3,xmm3,0x8
4762 vpaddd xmm2,xmm2,xmm3
4763 vpxord xmm1,xmm1,xmm2
4764 vprord xmm1,xmm1,0x7
4765 vpshufd xmm0,xmm0,0x93
4766 vpshufd xmm3,xmm3,0x4e
4767 vpshufd xmm2,xmm2,0x39
4768 vpaddd xmm0,xmm0,xmm6
4769 vpaddd xmm0,xmm0,xmm1
4770 vpxord xmm3,xmm3,xmm0
4771 vprord xmm3,xmm3,0x10
4772 vpaddd xmm2,xmm2,xmm3
4773 vpxord xmm1,xmm1,xmm2
4774 vprord xmm1,xmm1,0xc
4775 vpaddd xmm0,xmm0,xmm7
4776 vpaddd xmm0,xmm0,xmm1
4777 vpxord xmm3,xmm3,xmm0
4778 vprord xmm3,xmm3,0x8
4779 vpaddd xmm2,xmm2,xmm3
4780 vpxord xmm1,xmm1,xmm2
4781 vprord xmm1,xmm1,0x7
4782 vpshufd xmm0,xmm0,0x39
4783 vpshufd xmm3,xmm3,0x4e
4784 vpshufd xmm2,xmm2,0x93
4785 dec al
4786 je 3f
4787 vshufps xmm8,xmm4,xmm5,0xd6
4788 vpshufd xmm9,xmm4,0xf
4789 vpshufd xmm4,xmm8,0x39
4790 vshufps xmm8,xmm6,xmm7,0xfa
4791 vpblendd xmm9,xmm9,xmm8,0xaa
4792 vpunpcklqdq xmm8,xmm7,xmm5
4793 vpblendd xmm8,xmm8,xmm6,0x88
4794 vpshufd xmm8,xmm8,0x78
4795 vpunpckhdq xmm5,xmm5,xmm7
4796 vpunpckldq xmm6,xmm6,xmm5
4797 vpshufd xmm7,xmm6,0x1e
4798 vmovdqa xmm5,xmm9
4799 vmovdqa xmm6,xmm8
4800 jmp 3b
48013:
4802 vpxor xmm0,xmm0,xmm2
4803 vpxor xmm1,xmm1,xmm3
4804 vpxor xmm2,xmm2,XMMWORD PTR [rdi]
4805 vpxor xmm3,xmm3,XMMWORD PTR [rdi+0x10]
4806 vmovdqu XMMWORD PTR [r9],xmm0
4807 vmovdqu XMMWORD PTR [r9+0x10],xmm1
4808 vmovdqu XMMWORD PTR [r9+0x20],xmm2
4809 vmovdqu XMMWORD PTR [r9+0x30],xmm3
4810 jmp 9b
4811
4812
4813#ifdef __APPLE__
4814.static_data
4815#else
4816.section .rodata
4817#endif
4818.p2align 6
4819INDEX0:
4820 .long 0, 1, 2, 3, 16, 17, 18, 19
4821 .long 8, 9, 10, 11, 24, 25, 26, 27
4822INDEX1:
4823 .long 4, 5, 6, 7, 20, 21, 22, 23
4824 .long 12, 13, 14, 15, 28, 29, 30, 31
4825ADD0:
4826 .long 0, 1, 2, 3, 4, 5, 6, 7
4827 .long 8, 9, 10, 11, 12, 13, 14, 15
4828ADD1: .long 1
4829
4830ADD16: .long 16
4831BLAKE3_BLOCK_LEN:
4832 .long 64
4833.p2align 6
4834BLAKE3_IV:
4835BLAKE3_IV_0:
4836 .long 0x6A09E667
4837BLAKE3_IV_1:
4838 .long 0xBB67AE85
4839BLAKE3_IV_2:
4840 .long 0x3C6EF372
4841BLAKE3_IV_3:
4842 .long 0xA54FF53A
4843
4844#endif
4845