if_iwm - Recognize IWM_FW_PAGING_BLOCK_CMD wide cmd response correctly.
[dragonfly.git] / lib / libcrypto / asm / sha256-mb-x86_64.s
1 .text   
2
3
4
5 .globl  sha256_multi_block
6 .type   sha256_multi_block,@function
7 .align  32
8 sha256_multi_block:
9         movq    OPENSSL_ia32cap_P+4(%rip),%rcx
10         btq     $61,%rcx
11         jc      _shaext_shortcut
12         testl   $268435456,%ecx
13         jnz     _avx_shortcut
14         movq    %rsp,%rax
15         pushq   %rbx
16         pushq   %rbp
17         subq    $288,%rsp
18         andq    $-256,%rsp
19         movq    %rax,272(%rsp)
20 .Lbody:
21         leaq    K256+128(%rip),%rbp
22         leaq    256(%rsp),%rbx
23         leaq    128(%rdi),%rdi
24
25 .Loop_grande:
26         movl    %edx,280(%rsp)
27         xorl    %edx,%edx
28         movq    0(%rsi),%r8
29         movl    8(%rsi),%ecx
30         cmpl    %edx,%ecx
31         cmovgl  %ecx,%edx
32         testl   %ecx,%ecx
33         movl    %ecx,0(%rbx)
34         cmovleq %rbp,%r8
35         movq    16(%rsi),%r9
36         movl    24(%rsi),%ecx
37         cmpl    %edx,%ecx
38         cmovgl  %ecx,%edx
39         testl   %ecx,%ecx
40         movl    %ecx,4(%rbx)
41         cmovleq %rbp,%r9
42         movq    32(%rsi),%r10
43         movl    40(%rsi),%ecx
44         cmpl    %edx,%ecx
45         cmovgl  %ecx,%edx
46         testl   %ecx,%ecx
47         movl    %ecx,8(%rbx)
48         cmovleq %rbp,%r10
49         movq    48(%rsi),%r11
50         movl    56(%rsi),%ecx
51         cmpl    %edx,%ecx
52         cmovgl  %ecx,%edx
53         testl   %ecx,%ecx
54         movl    %ecx,12(%rbx)
55         cmovleq %rbp,%r11
56         testl   %edx,%edx
57         jz      .Ldone
58
59         movdqu  0-128(%rdi),%xmm8
60         leaq    128(%rsp),%rax
61         movdqu  32-128(%rdi),%xmm9
62         movdqu  64-128(%rdi),%xmm10
63         movdqu  96-128(%rdi),%xmm11
64         movdqu  128-128(%rdi),%xmm12
65         movdqu  160-128(%rdi),%xmm13
66         movdqu  192-128(%rdi),%xmm14
67         movdqu  224-128(%rdi),%xmm15
68         movdqu  .Lpbswap(%rip),%xmm6
69         jmp     .Loop
70
71 .align  32
72 .Loop:
73         movdqa  %xmm10,%xmm4
74         pxor    %xmm9,%xmm4
75         movd    0(%r8),%xmm5
76         movd    0(%r9),%xmm0
77         movd    0(%r10),%xmm1
78         movd    0(%r11),%xmm2
79         punpckldq       %xmm1,%xmm5
80         punpckldq       %xmm2,%xmm0
81         punpckldq       %xmm0,%xmm5
82         movdqa  %xmm12,%xmm7
83 .byte   102,15,56,0,238
84         movdqa  %xmm12,%xmm2
85
86         psrld   $6,%xmm7
87         movdqa  %xmm12,%xmm1
88         pslld   $7,%xmm2
89         movdqa  %xmm5,0-128(%rax)
90         paddd   %xmm15,%xmm5
91
92         psrld   $11,%xmm1
93         pxor    %xmm2,%xmm7
94         pslld   $21-7,%xmm2
95         paddd   -128(%rbp),%xmm5
96         pxor    %xmm1,%xmm7
97
98         psrld   $25-11,%xmm1
99         movdqa  %xmm12,%xmm0
100
101         pxor    %xmm2,%xmm7
102         movdqa  %xmm12,%xmm3
103         pslld   $26-21,%xmm2
104         pandn   %xmm14,%xmm0
105         pand    %xmm13,%xmm3
106         pxor    %xmm1,%xmm7
107
108
109         movdqa  %xmm8,%xmm1
110         pxor    %xmm2,%xmm7
111         movdqa  %xmm8,%xmm2
112         psrld   $2,%xmm1
113         paddd   %xmm7,%xmm5
114         pxor    %xmm3,%xmm0
115         movdqa  %xmm9,%xmm3
116         movdqa  %xmm8,%xmm7
117         pslld   $10,%xmm2
118         pxor    %xmm8,%xmm3
119
120
121         psrld   $13,%xmm7
122         pxor    %xmm2,%xmm1
123         paddd   %xmm0,%xmm5
124         pslld   $19-10,%xmm2
125         pand    %xmm3,%xmm4
126         pxor    %xmm7,%xmm1
127
128
129         psrld   $22-13,%xmm7
130         pxor    %xmm2,%xmm1
131         movdqa  %xmm9,%xmm15
132         pslld   $30-19,%xmm2
133         pxor    %xmm1,%xmm7
134         pxor    %xmm4,%xmm15
135         paddd   %xmm5,%xmm11
136         pxor    %xmm2,%xmm7
137
138         paddd   %xmm5,%xmm15
139         paddd   %xmm7,%xmm15
140         movd    4(%r8),%xmm5
141         movd    4(%r9),%xmm0
142         movd    4(%r10),%xmm1
143         movd    4(%r11),%xmm2
144         punpckldq       %xmm1,%xmm5
145         punpckldq       %xmm2,%xmm0
146         punpckldq       %xmm0,%xmm5
147         movdqa  %xmm11,%xmm7
148
149         movdqa  %xmm11,%xmm2
150 .byte   102,15,56,0,238
151         psrld   $6,%xmm7
152         movdqa  %xmm11,%xmm1
153         pslld   $7,%xmm2
154         movdqa  %xmm5,16-128(%rax)
155         paddd   %xmm14,%xmm5
156
157         psrld   $11,%xmm1
158         pxor    %xmm2,%xmm7
159         pslld   $21-7,%xmm2
160         paddd   -96(%rbp),%xmm5
161         pxor    %xmm1,%xmm7
162
163         psrld   $25-11,%xmm1
164         movdqa  %xmm11,%xmm0
165
166         pxor    %xmm2,%xmm7
167         movdqa  %xmm11,%xmm4
168         pslld   $26-21,%xmm2
169         pandn   %xmm13,%xmm0
170         pand    %xmm12,%xmm4
171         pxor    %xmm1,%xmm7
172
173
174         movdqa  %xmm15,%xmm1
175         pxor    %xmm2,%xmm7
176         movdqa  %xmm15,%xmm2
177         psrld   $2,%xmm1
178         paddd   %xmm7,%xmm5
179         pxor    %xmm4,%xmm0
180         movdqa  %xmm8,%xmm4
181         movdqa  %xmm15,%xmm7
182         pslld   $10,%xmm2
183         pxor    %xmm15,%xmm4
184
185
186         psrld   $13,%xmm7
187         pxor    %xmm2,%xmm1
188         paddd   %xmm0,%xmm5
189         pslld   $19-10,%xmm2
190         pand    %xmm4,%xmm3
191         pxor    %xmm7,%xmm1
192
193
194         psrld   $22-13,%xmm7
195         pxor    %xmm2,%xmm1
196         movdqa  %xmm8,%xmm14
197         pslld   $30-19,%xmm2
198         pxor    %xmm1,%xmm7
199         pxor    %xmm3,%xmm14
200         paddd   %xmm5,%xmm10
201         pxor    %xmm2,%xmm7
202
203         paddd   %xmm5,%xmm14
204         paddd   %xmm7,%xmm14
205         movd    8(%r8),%xmm5
206         movd    8(%r9),%xmm0
207         movd    8(%r10),%xmm1
208         movd    8(%r11),%xmm2
209         punpckldq       %xmm1,%xmm5
210         punpckldq       %xmm2,%xmm0
211         punpckldq       %xmm0,%xmm5
212         movdqa  %xmm10,%xmm7
213 .byte   102,15,56,0,238
214         movdqa  %xmm10,%xmm2
215
216         psrld   $6,%xmm7
217         movdqa  %xmm10,%xmm1
218         pslld   $7,%xmm2
219         movdqa  %xmm5,32-128(%rax)
220         paddd   %xmm13,%xmm5
221
222         psrld   $11,%xmm1
223         pxor    %xmm2,%xmm7
224         pslld   $21-7,%xmm2
225         paddd   -64(%rbp),%xmm5
226         pxor    %xmm1,%xmm7
227
228         psrld   $25-11,%xmm1
229         movdqa  %xmm10,%xmm0
230
231         pxor    %xmm2,%xmm7
232         movdqa  %xmm10,%xmm3
233         pslld   $26-21,%xmm2
234         pandn   %xmm12,%xmm0
235         pand    %xmm11,%xmm3
236         pxor    %xmm1,%xmm7
237
238
239         movdqa  %xmm14,%xmm1
240         pxor    %xmm2,%xmm7
241         movdqa  %xmm14,%xmm2
242         psrld   $2,%xmm1
243         paddd   %xmm7,%xmm5
244         pxor    %xmm3,%xmm0
245         movdqa  %xmm15,%xmm3
246         movdqa  %xmm14,%xmm7
247         pslld   $10,%xmm2
248         pxor    %xmm14,%xmm3
249
250
251         psrld   $13,%xmm7
252         pxor    %xmm2,%xmm1
253         paddd   %xmm0,%xmm5
254         pslld   $19-10,%xmm2
255         pand    %xmm3,%xmm4
256         pxor    %xmm7,%xmm1
257
258
259         psrld   $22-13,%xmm7
260         pxor    %xmm2,%xmm1
261         movdqa  %xmm15,%xmm13
262         pslld   $30-19,%xmm2
263         pxor    %xmm1,%xmm7
264         pxor    %xmm4,%xmm13
265         paddd   %xmm5,%xmm9
266         pxor    %xmm2,%xmm7
267
268         paddd   %xmm5,%xmm13
269         paddd   %xmm7,%xmm13
270         movd    12(%r8),%xmm5
271         movd    12(%r9),%xmm0
272         movd    12(%r10),%xmm1
273         movd    12(%r11),%xmm2
274         punpckldq       %xmm1,%xmm5
275         punpckldq       %xmm2,%xmm0
276         punpckldq       %xmm0,%xmm5
277         movdqa  %xmm9,%xmm7
278
279         movdqa  %xmm9,%xmm2
280 .byte   102,15,56,0,238
281         psrld   $6,%xmm7
282         movdqa  %xmm9,%xmm1
283         pslld   $7,%xmm2
284         movdqa  %xmm5,48-128(%rax)
285         paddd   %xmm12,%xmm5
286
287         psrld   $11,%xmm1
288         pxor    %xmm2,%xmm7
289         pslld   $21-7,%xmm2
290         paddd   -32(%rbp),%xmm5
291         pxor    %xmm1,%xmm7
292
293         psrld   $25-11,%xmm1
294         movdqa  %xmm9,%xmm0
295
296         pxor    %xmm2,%xmm7
297         movdqa  %xmm9,%xmm4
298         pslld   $26-21,%xmm2
299         pandn   %xmm11,%xmm0
300         pand    %xmm10,%xmm4
301         pxor    %xmm1,%xmm7
302
303
304         movdqa  %xmm13,%xmm1
305         pxor    %xmm2,%xmm7
306         movdqa  %xmm13,%xmm2
307         psrld   $2,%xmm1
308         paddd   %xmm7,%xmm5
309         pxor    %xmm4,%xmm0
310         movdqa  %xmm14,%xmm4
311         movdqa  %xmm13,%xmm7
312         pslld   $10,%xmm2
313         pxor    %xmm13,%xmm4
314
315
316         psrld   $13,%xmm7
317         pxor    %xmm2,%xmm1
318         paddd   %xmm0,%xmm5
319         pslld   $19-10,%xmm2
320         pand    %xmm4,%xmm3
321         pxor    %xmm7,%xmm1
322
323
324         psrld   $22-13,%xmm7
325         pxor    %xmm2,%xmm1
326         movdqa  %xmm14,%xmm12
327         pslld   $30-19,%xmm2
328         pxor    %xmm1,%xmm7
329         pxor    %xmm3,%xmm12
330         paddd   %xmm5,%xmm8
331         pxor    %xmm2,%xmm7
332
333         paddd   %xmm5,%xmm12
334         paddd   %xmm7,%xmm12
335         movd    16(%r8),%xmm5
336         movd    16(%r9),%xmm0
337         movd    16(%r10),%xmm1
338         movd    16(%r11),%xmm2
339         punpckldq       %xmm1,%xmm5
340         punpckldq       %xmm2,%xmm0
341         punpckldq       %xmm0,%xmm5
342         movdqa  %xmm8,%xmm7
343 .byte   102,15,56,0,238
344         movdqa  %xmm8,%xmm2
345
346         psrld   $6,%xmm7
347         movdqa  %xmm8,%xmm1
348         pslld   $7,%xmm2
349         movdqa  %xmm5,64-128(%rax)
350         paddd   %xmm11,%xmm5
351
352         psrld   $11,%xmm1
353         pxor    %xmm2,%xmm7
354         pslld   $21-7,%xmm2
355         paddd   0(%rbp),%xmm5
356         pxor    %xmm1,%xmm7
357
358         psrld   $25-11,%xmm1
359         movdqa  %xmm8,%xmm0
360
361         pxor    %xmm2,%xmm7
362         movdqa  %xmm8,%xmm3
363         pslld   $26-21,%xmm2
364         pandn   %xmm10,%xmm0
365         pand    %xmm9,%xmm3
366         pxor    %xmm1,%xmm7
367
368
369         movdqa  %xmm12,%xmm1
370         pxor    %xmm2,%xmm7
371         movdqa  %xmm12,%xmm2
372         psrld   $2,%xmm1
373         paddd   %xmm7,%xmm5
374         pxor    %xmm3,%xmm0
375         movdqa  %xmm13,%xmm3
376         movdqa  %xmm12,%xmm7
377         pslld   $10,%xmm2
378         pxor    %xmm12,%xmm3
379
380
381         psrld   $13,%xmm7
382         pxor    %xmm2,%xmm1
383         paddd   %xmm0,%xmm5
384         pslld   $19-10,%xmm2
385         pand    %xmm3,%xmm4
386         pxor    %xmm7,%xmm1
387
388
389         psrld   $22-13,%xmm7
390         pxor    %xmm2,%xmm1
391         movdqa  %xmm13,%xmm11
392         pslld   $30-19,%xmm2
393         pxor    %xmm1,%xmm7
394         pxor    %xmm4,%xmm11
395         paddd   %xmm5,%xmm15
396         pxor    %xmm2,%xmm7
397
398         paddd   %xmm5,%xmm11
399         paddd   %xmm7,%xmm11
400         movd    20(%r8),%xmm5
401         movd    20(%r9),%xmm0
402         movd    20(%r10),%xmm1
403         movd    20(%r11),%xmm2
404         punpckldq       %xmm1,%xmm5
405         punpckldq       %xmm2,%xmm0
406         punpckldq       %xmm0,%xmm5
407         movdqa  %xmm15,%xmm7
408
409         movdqa  %xmm15,%xmm2
410 .byte   102,15,56,0,238
411         psrld   $6,%xmm7
412         movdqa  %xmm15,%xmm1
413         pslld   $7,%xmm2
414         movdqa  %xmm5,80-128(%rax)
415         paddd   %xmm10,%xmm5
416
417         psrld   $11,%xmm1
418         pxor    %xmm2,%xmm7
419         pslld   $21-7,%xmm2
420         paddd   32(%rbp),%xmm5
421         pxor    %xmm1,%xmm7
422
423         psrld   $25-11,%xmm1
424         movdqa  %xmm15,%xmm0
425
426         pxor    %xmm2,%xmm7
427         movdqa  %xmm15,%xmm4
428         pslld   $26-21,%xmm2
429         pandn   %xmm9,%xmm0
430         pand    %xmm8,%xmm4
431         pxor    %xmm1,%xmm7
432
433
434         movdqa  %xmm11,%xmm1
435         pxor    %xmm2,%xmm7
436         movdqa  %xmm11,%xmm2
437         psrld   $2,%xmm1
438         paddd   %xmm7,%xmm5
439         pxor    %xmm4,%xmm0
440         movdqa  %xmm12,%xmm4
441         movdqa  %xmm11,%xmm7
442         pslld   $10,%xmm2
443         pxor    %xmm11,%xmm4
444
445
446         psrld   $13,%xmm7
447         pxor    %xmm2,%xmm1
448         paddd   %xmm0,%xmm5
449         pslld   $19-10,%xmm2
450         pand    %xmm4,%xmm3
451         pxor    %xmm7,%xmm1
452
453
454         psrld   $22-13,%xmm7
455         pxor    %xmm2,%xmm1
456         movdqa  %xmm12,%xmm10
457         pslld   $30-19,%xmm2
458         pxor    %xmm1,%xmm7
459         pxor    %xmm3,%xmm10
460         paddd   %xmm5,%xmm14
461         pxor    %xmm2,%xmm7
462
463         paddd   %xmm5,%xmm10
464         paddd   %xmm7,%xmm10
465         movd    24(%r8),%xmm5
466         movd    24(%r9),%xmm0
467         movd    24(%r10),%xmm1
468         movd    24(%r11),%xmm2
469         punpckldq       %xmm1,%xmm5
470         punpckldq       %xmm2,%xmm0
471         punpckldq       %xmm0,%xmm5
472         movdqa  %xmm14,%xmm7
473 .byte   102,15,56,0,238
474         movdqa  %xmm14,%xmm2
475
476         psrld   $6,%xmm7
477         movdqa  %xmm14,%xmm1
478         pslld   $7,%xmm2
479         movdqa  %xmm5,96-128(%rax)
480         paddd   %xmm9,%xmm5
481
482         psrld   $11,%xmm1
483         pxor    %xmm2,%xmm7
484         pslld   $21-7,%xmm2
485         paddd   64(%rbp),%xmm5
486         pxor    %xmm1,%xmm7
487
488         psrld   $25-11,%xmm1
489         movdqa  %xmm14,%xmm0
490
491         pxor    %xmm2,%xmm7
492         movdqa  %xmm14,%xmm3
493         pslld   $26-21,%xmm2
494         pandn   %xmm8,%xmm0
495         pand    %xmm15,%xmm3
496         pxor    %xmm1,%xmm7
497
498
499         movdqa  %xmm10,%xmm1
500         pxor    %xmm2,%xmm7
501         movdqa  %xmm10,%xmm2
502         psrld   $2,%xmm1
503         paddd   %xmm7,%xmm5
504         pxor    %xmm3,%xmm0
505         movdqa  %xmm11,%xmm3
506         movdqa  %xmm10,%xmm7
507         pslld   $10,%xmm2
508         pxor    %xmm10,%xmm3
509
510
511         psrld   $13,%xmm7
512         pxor    %xmm2,%xmm1
513         paddd   %xmm0,%xmm5
514         pslld   $19-10,%xmm2
515         pand    %xmm3,%xmm4
516         pxor    %xmm7,%xmm1
517
518
519         psrld   $22-13,%xmm7
520         pxor    %xmm2,%xmm1
521         movdqa  %xmm11,%xmm9
522         pslld   $30-19,%xmm2
523         pxor    %xmm1,%xmm7
524         pxor    %xmm4,%xmm9
525         paddd   %xmm5,%xmm13
526         pxor    %xmm2,%xmm7
527
528         paddd   %xmm5,%xmm9
529         paddd   %xmm7,%xmm9
530         movd    28(%r8),%xmm5
531         movd    28(%r9),%xmm0
532         movd    28(%r10),%xmm1
533         movd    28(%r11),%xmm2
534         punpckldq       %xmm1,%xmm5
535         punpckldq       %xmm2,%xmm0
536         punpckldq       %xmm0,%xmm5
537         movdqa  %xmm13,%xmm7
538
539         movdqa  %xmm13,%xmm2
540 .byte   102,15,56,0,238
541         psrld   $6,%xmm7
542         movdqa  %xmm13,%xmm1
543         pslld   $7,%xmm2
544         movdqa  %xmm5,112-128(%rax)
545         paddd   %xmm8,%xmm5
546
547         psrld   $11,%xmm1
548         pxor    %xmm2,%xmm7
549         pslld   $21-7,%xmm2
550         paddd   96(%rbp),%xmm5
551         pxor    %xmm1,%xmm7
552
553         psrld   $25-11,%xmm1
554         movdqa  %xmm13,%xmm0
555
556         pxor    %xmm2,%xmm7
557         movdqa  %xmm13,%xmm4
558         pslld   $26-21,%xmm2
559         pandn   %xmm15,%xmm0
560         pand    %xmm14,%xmm4
561         pxor    %xmm1,%xmm7
562
563
564         movdqa  %xmm9,%xmm1
565         pxor    %xmm2,%xmm7
566         movdqa  %xmm9,%xmm2
567         psrld   $2,%xmm1
568         paddd   %xmm7,%xmm5
569         pxor    %xmm4,%xmm0
570         movdqa  %xmm10,%xmm4
571         movdqa  %xmm9,%xmm7
572         pslld   $10,%xmm2
573         pxor    %xmm9,%xmm4
574
575
576         psrld   $13,%xmm7
577         pxor    %xmm2,%xmm1
578         paddd   %xmm0,%xmm5
579         pslld   $19-10,%xmm2
580         pand    %xmm4,%xmm3
581         pxor    %xmm7,%xmm1
582
583
584         psrld   $22-13,%xmm7
585         pxor    %xmm2,%xmm1
586         movdqa  %xmm10,%xmm8
587         pslld   $30-19,%xmm2
588         pxor    %xmm1,%xmm7
589         pxor    %xmm3,%xmm8
590         paddd   %xmm5,%xmm12
591         pxor    %xmm2,%xmm7
592
593         paddd   %xmm5,%xmm8
594         paddd   %xmm7,%xmm8
595         leaq    256(%rbp),%rbp
596         movd    32(%r8),%xmm5
597         movd    32(%r9),%xmm0
598         movd    32(%r10),%xmm1
599         movd    32(%r11),%xmm2
600         punpckldq       %xmm1,%xmm5
601         punpckldq       %xmm2,%xmm0
602         punpckldq       %xmm0,%xmm5
603         movdqa  %xmm12,%xmm7
604 .byte   102,15,56,0,238
605         movdqa  %xmm12,%xmm2
606
607         psrld   $6,%xmm7
608         movdqa  %xmm12,%xmm1
609         pslld   $7,%xmm2
610         movdqa  %xmm5,128-128(%rax)
611         paddd   %xmm15,%xmm5
612
613         psrld   $11,%xmm1
614         pxor    %xmm2,%xmm7
615         pslld   $21-7,%xmm2
616         paddd   -128(%rbp),%xmm5
617         pxor    %xmm1,%xmm7
618
619         psrld   $25-11,%xmm1
620         movdqa  %xmm12,%xmm0
621
622         pxor    %xmm2,%xmm7
623         movdqa  %xmm12,%xmm3
624         pslld   $26-21,%xmm2
625         pandn   %xmm14,%xmm0
626         pand    %xmm13,%xmm3
627         pxor    %xmm1,%xmm7
628
629
630         movdqa  %xmm8,%xmm1
631         pxor    %xmm2,%xmm7
632         movdqa  %xmm8,%xmm2
633         psrld   $2,%xmm1
634         paddd   %xmm7,%xmm5
635         pxor    %xmm3,%xmm0
636         movdqa  %xmm9,%xmm3
637         movdqa  %xmm8,%xmm7
638         pslld   $10,%xmm2
639         pxor    %xmm8,%xmm3
640
641
642         psrld   $13,%xmm7
643         pxor    %xmm2,%xmm1
644         paddd   %xmm0,%xmm5
645         pslld   $19-10,%xmm2
646         pand    %xmm3,%xmm4
647         pxor    %xmm7,%xmm1
648
649
650         psrld   $22-13,%xmm7
651         pxor    %xmm2,%xmm1
652         movdqa  %xmm9,%xmm15
653         pslld   $30-19,%xmm2
654         pxor    %xmm1,%xmm7
655         pxor    %xmm4,%xmm15
656         paddd   %xmm5,%xmm11
657         pxor    %xmm2,%xmm7
658
659         paddd   %xmm5,%xmm15
660         paddd   %xmm7,%xmm15
661         movd    36(%r8),%xmm5
662         movd    36(%r9),%xmm0
663         movd    36(%r10),%xmm1
664         movd    36(%r11),%xmm2
665         punpckldq       %xmm1,%xmm5
666         punpckldq       %xmm2,%xmm0
667         punpckldq       %xmm0,%xmm5
668         movdqa  %xmm11,%xmm7
669
670         movdqa  %xmm11,%xmm2
671 .byte   102,15,56,0,238
672         psrld   $6,%xmm7
673         movdqa  %xmm11,%xmm1
674         pslld   $7,%xmm2
675         movdqa  %xmm5,144-128(%rax)
676         paddd   %xmm14,%xmm5
677
678         psrld   $11,%xmm1
679         pxor    %xmm2,%xmm7
680         pslld   $21-7,%xmm2
681         paddd   -96(%rbp),%xmm5
682         pxor    %xmm1,%xmm7
683
684         psrld   $25-11,%xmm1
685         movdqa  %xmm11,%xmm0
686
687         pxor    %xmm2,%xmm7
688         movdqa  %xmm11,%xmm4
689         pslld   $26-21,%xmm2
690         pandn   %xmm13,%xmm0
691         pand    %xmm12,%xmm4
692         pxor    %xmm1,%xmm7
693
694
695         movdqa  %xmm15,%xmm1
696         pxor    %xmm2,%xmm7
697         movdqa  %xmm15,%xmm2
698         psrld   $2,%xmm1
699         paddd   %xmm7,%xmm5
700         pxor    %xmm4,%xmm0
701         movdqa  %xmm8,%xmm4
702         movdqa  %xmm15,%xmm7
703         pslld   $10,%xmm2
704         pxor    %xmm15,%xmm4
705
706
707         psrld   $13,%xmm7
708         pxor    %xmm2,%xmm1
709         paddd   %xmm0,%xmm5
710         pslld   $19-10,%xmm2
711         pand    %xmm4,%xmm3
712         pxor    %xmm7,%xmm1
713
714
715         psrld   $22-13,%xmm7
716         pxor    %xmm2,%xmm1
717         movdqa  %xmm8,%xmm14
718         pslld   $30-19,%xmm2
719         pxor    %xmm1,%xmm7
720         pxor    %xmm3,%xmm14
721         paddd   %xmm5,%xmm10
722         pxor    %xmm2,%xmm7
723
724         paddd   %xmm5,%xmm14
725         paddd   %xmm7,%xmm14
726         movd    40(%r8),%xmm5
727         movd    40(%r9),%xmm0
728         movd    40(%r10),%xmm1
729         movd    40(%r11),%xmm2
730         punpckldq       %xmm1,%xmm5
731         punpckldq       %xmm2,%xmm0
732         punpckldq       %xmm0,%xmm5
733         movdqa  %xmm10,%xmm7
734 .byte   102,15,56,0,238
735         movdqa  %xmm10,%xmm2
736
737         psrld   $6,%xmm7
738         movdqa  %xmm10,%xmm1
739         pslld   $7,%xmm2
740         movdqa  %xmm5,160-128(%rax)
741         paddd   %xmm13,%xmm5
742
743         psrld   $11,%xmm1
744         pxor    %xmm2,%xmm7
745         pslld   $21-7,%xmm2
746         paddd   -64(%rbp),%xmm5
747         pxor    %xmm1,%xmm7
748
749         psrld   $25-11,%xmm1
750         movdqa  %xmm10,%xmm0
751
752         pxor    %xmm2,%xmm7
753         movdqa  %xmm10,%xmm3
754         pslld   $26-21,%xmm2
755         pandn   %xmm12,%xmm0
756         pand    %xmm11,%xmm3
757         pxor    %xmm1,%xmm7
758
759
760         movdqa  %xmm14,%xmm1
761         pxor    %xmm2,%xmm7
762         movdqa  %xmm14,%xmm2
763         psrld   $2,%xmm1
764         paddd   %xmm7,%xmm5
765         pxor    %xmm3,%xmm0
766         movdqa  %xmm15,%xmm3
767         movdqa  %xmm14,%xmm7
768         pslld   $10,%xmm2
769         pxor    %xmm14,%xmm3
770
771
772         psrld   $13,%xmm7
773         pxor    %xmm2,%xmm1
774         paddd   %xmm0,%xmm5
775         pslld   $19-10,%xmm2
776         pand    %xmm3,%xmm4
777         pxor    %xmm7,%xmm1
778
779
780         psrld   $22-13,%xmm7
781         pxor    %xmm2,%xmm1
782         movdqa  %xmm15,%xmm13
783         pslld   $30-19,%xmm2
784         pxor    %xmm1,%xmm7
785         pxor    %xmm4,%xmm13
786         paddd   %xmm5,%xmm9
787         pxor    %xmm2,%xmm7
788
789         paddd   %xmm5,%xmm13
790         paddd   %xmm7,%xmm13
791         movd    44(%r8),%xmm5
792         movd    44(%r9),%xmm0
793         movd    44(%r10),%xmm1
794         movd    44(%r11),%xmm2
795         punpckldq       %xmm1,%xmm5
796         punpckldq       %xmm2,%xmm0
797         punpckldq       %xmm0,%xmm5
798         movdqa  %xmm9,%xmm7
799
800         movdqa  %xmm9,%xmm2
801 .byte   102,15,56,0,238
802         psrld   $6,%xmm7
803         movdqa  %xmm9,%xmm1
804         pslld   $7,%xmm2
805         movdqa  %xmm5,176-128(%rax)
806         paddd   %xmm12,%xmm5
807
808         psrld   $11,%xmm1
809         pxor    %xmm2,%xmm7
810         pslld   $21-7,%xmm2
811         paddd   -32(%rbp),%xmm5
812         pxor    %xmm1,%xmm7
813
814         psrld   $25-11,%xmm1
815         movdqa  %xmm9,%xmm0
816
817         pxor    %xmm2,%xmm7
818         movdqa  %xmm9,%xmm4
819         pslld   $26-21,%xmm2
820         pandn   %xmm11,%xmm0
821         pand    %xmm10,%xmm4
822         pxor    %xmm1,%xmm7
823
824
825         movdqa  %xmm13,%xmm1
826         pxor    %xmm2,%xmm7
827         movdqa  %xmm13,%xmm2
828         psrld   $2,%xmm1
829         paddd   %xmm7,%xmm5
830         pxor    %xmm4,%xmm0
831         movdqa  %xmm14,%xmm4
832         movdqa  %xmm13,%xmm7
833         pslld   $10,%xmm2
834         pxor    %xmm13,%xmm4
835
836
837         psrld   $13,%xmm7
838         pxor    %xmm2,%xmm1
839         paddd   %xmm0,%xmm5
840         pslld   $19-10,%xmm2
841         pand    %xmm4,%xmm3
842         pxor    %xmm7,%xmm1
843
844
845         psrld   $22-13,%xmm7
846         pxor    %xmm2,%xmm1
847         movdqa  %xmm14,%xmm12
848         pslld   $30-19,%xmm2
849         pxor    %xmm1,%xmm7
850         pxor    %xmm3,%xmm12
851         paddd   %xmm5,%xmm8
852         pxor    %xmm2,%xmm7
853
854         paddd   %xmm5,%xmm12
855         paddd   %xmm7,%xmm12
856         movd    48(%r8),%xmm5
857         movd    48(%r9),%xmm0
858         movd    48(%r10),%xmm1
859         movd    48(%r11),%xmm2
860         punpckldq       %xmm1,%xmm5
861         punpckldq       %xmm2,%xmm0
862         punpckldq       %xmm0,%xmm5
863         movdqa  %xmm8,%xmm7
864 .byte   102,15,56,0,238
865         movdqa  %xmm8,%xmm2
866
867         psrld   $6,%xmm7
868         movdqa  %xmm8,%xmm1
869         pslld   $7,%xmm2
870         movdqa  %xmm5,192-128(%rax)
871         paddd   %xmm11,%xmm5
872
873         psrld   $11,%xmm1
874         pxor    %xmm2,%xmm7
875         pslld   $21-7,%xmm2
876         paddd   0(%rbp),%xmm5
877         pxor    %xmm1,%xmm7
878
879         psrld   $25-11,%xmm1
880         movdqa  %xmm8,%xmm0
881
882         pxor    %xmm2,%xmm7
883         movdqa  %xmm8,%xmm3
884         pslld   $26-21,%xmm2
885         pandn   %xmm10,%xmm0
886         pand    %xmm9,%xmm3
887         pxor    %xmm1,%xmm7
888
889
890         movdqa  %xmm12,%xmm1
891         pxor    %xmm2,%xmm7
892         movdqa  %xmm12,%xmm2
893         psrld   $2,%xmm1
894         paddd   %xmm7,%xmm5
895         pxor    %xmm3,%xmm0
896         movdqa  %xmm13,%xmm3
897         movdqa  %xmm12,%xmm7
898         pslld   $10,%xmm2
899         pxor    %xmm12,%xmm3
900
901
902         psrld   $13,%xmm7
903         pxor    %xmm2,%xmm1
904         paddd   %xmm0,%xmm5
905         pslld   $19-10,%xmm2
906         pand    %xmm3,%xmm4
907         pxor    %xmm7,%xmm1
908
909
910         psrld   $22-13,%xmm7
911         pxor    %xmm2,%xmm1
912         movdqa  %xmm13,%xmm11
913         pslld   $30-19,%xmm2
914         pxor    %xmm1,%xmm7
915         pxor    %xmm4,%xmm11
916         paddd   %xmm5,%xmm15
917         pxor    %xmm2,%xmm7
918
919         paddd   %xmm5,%xmm11
920         paddd   %xmm7,%xmm11
921         movd    52(%r8),%xmm5
922         movd    52(%r9),%xmm0
923         movd    52(%r10),%xmm1
924         movd    52(%r11),%xmm2
925         punpckldq       %xmm1,%xmm5
926         punpckldq       %xmm2,%xmm0
927         punpckldq       %xmm0,%xmm5
928         movdqa  %xmm15,%xmm7
929
930         movdqa  %xmm15,%xmm2
931 .byte   102,15,56,0,238
932         psrld   $6,%xmm7
933         movdqa  %xmm15,%xmm1
934         pslld   $7,%xmm2
935         movdqa  %xmm5,208-128(%rax)
936         paddd   %xmm10,%xmm5
937
938         psrld   $11,%xmm1
939         pxor    %xmm2,%xmm7
940         pslld   $21-7,%xmm2
941         paddd   32(%rbp),%xmm5
942         pxor    %xmm1,%xmm7
943
944         psrld   $25-11,%xmm1
945         movdqa  %xmm15,%xmm0
946
947         pxor    %xmm2,%xmm7
948         movdqa  %xmm15,%xmm4
949         pslld   $26-21,%xmm2
950         pandn   %xmm9,%xmm0
951         pand    %xmm8,%xmm4
952         pxor    %xmm1,%xmm7
953
954
955         movdqa  %xmm11,%xmm1
956         pxor    %xmm2,%xmm7
957         movdqa  %xmm11,%xmm2
958         psrld   $2,%xmm1
959         paddd   %xmm7,%xmm5
960         pxor    %xmm4,%xmm0
961         movdqa  %xmm12,%xmm4
962         movdqa  %xmm11,%xmm7
963         pslld   $10,%xmm2
964         pxor    %xmm11,%xmm4
965
966
967         psrld   $13,%xmm7
968         pxor    %xmm2,%xmm1
969         paddd   %xmm0,%xmm5
970         pslld   $19-10,%xmm2
971         pand    %xmm4,%xmm3
972         pxor    %xmm7,%xmm1
973
974
975         psrld   $22-13,%xmm7
976         pxor    %xmm2,%xmm1
977         movdqa  %xmm12,%xmm10
978         pslld   $30-19,%xmm2
979         pxor    %xmm1,%xmm7
980         pxor    %xmm3,%xmm10
981         paddd   %xmm5,%xmm14
982         pxor    %xmm2,%xmm7
983
984         paddd   %xmm5,%xmm10
985         paddd   %xmm7,%xmm10
986         movd    56(%r8),%xmm5
987         movd    56(%r9),%xmm0
988         movd    56(%r10),%xmm1
989         movd    56(%r11),%xmm2
990         punpckldq       %xmm1,%xmm5
991         punpckldq       %xmm2,%xmm0
992         punpckldq       %xmm0,%xmm5
993         movdqa  %xmm14,%xmm7
994 .byte   102,15,56,0,238
995         movdqa  %xmm14,%xmm2
996
997         psrld   $6,%xmm7
998         movdqa  %xmm14,%xmm1
999         pslld   $7,%xmm2
1000         movdqa  %xmm5,224-128(%rax)
1001         paddd   %xmm9,%xmm5
1002
1003         psrld   $11,%xmm1
1004         pxor    %xmm2,%xmm7
1005         pslld   $21-7,%xmm2
1006         paddd   64(%rbp),%xmm5
1007         pxor    %xmm1,%xmm7
1008
1009         psrld   $25-11,%xmm1
1010         movdqa  %xmm14,%xmm0
1011
1012         pxor    %xmm2,%xmm7
1013         movdqa  %xmm14,%xmm3
1014         pslld   $26-21,%xmm2
1015         pandn   %xmm8,%xmm0
1016         pand    %xmm15,%xmm3
1017         pxor    %xmm1,%xmm7
1018
1019
1020         movdqa  %xmm10,%xmm1
1021         pxor    %xmm2,%xmm7
1022         movdqa  %xmm10,%xmm2
1023         psrld   $2,%xmm1
1024         paddd   %xmm7,%xmm5
1025         pxor    %xmm3,%xmm0
1026         movdqa  %xmm11,%xmm3
1027         movdqa  %xmm10,%xmm7
1028         pslld   $10,%xmm2
1029         pxor    %xmm10,%xmm3
1030
1031
1032         psrld   $13,%xmm7
1033         pxor    %xmm2,%xmm1
1034         paddd   %xmm0,%xmm5
1035         pslld   $19-10,%xmm2
1036         pand    %xmm3,%xmm4
1037         pxor    %xmm7,%xmm1
1038
1039
1040         psrld   $22-13,%xmm7
1041         pxor    %xmm2,%xmm1
1042         movdqa  %xmm11,%xmm9
1043         pslld   $30-19,%xmm2
1044         pxor    %xmm1,%xmm7
1045         pxor    %xmm4,%xmm9
1046         paddd   %xmm5,%xmm13
1047         pxor    %xmm2,%xmm7
1048
1049         paddd   %xmm5,%xmm9
1050         paddd   %xmm7,%xmm9
1051         movd    60(%r8),%xmm5
1052         leaq    64(%r8),%r8
1053         movd    60(%r9),%xmm0
1054         leaq    64(%r9),%r9
1055         movd    60(%r10),%xmm1
1056         leaq    64(%r10),%r10
1057         movd    60(%r11),%xmm2
1058         leaq    64(%r11),%r11
1059         punpckldq       %xmm1,%xmm5
1060         punpckldq       %xmm2,%xmm0
1061         punpckldq       %xmm0,%xmm5
1062         movdqa  %xmm13,%xmm7
1063
1064         movdqa  %xmm13,%xmm2
1065 .byte   102,15,56,0,238
1066         psrld   $6,%xmm7
1067         movdqa  %xmm13,%xmm1
1068         pslld   $7,%xmm2
1069         movdqa  %xmm5,240-128(%rax)
1070         paddd   %xmm8,%xmm5
1071
1072         psrld   $11,%xmm1
1073         pxor    %xmm2,%xmm7
1074         pslld   $21-7,%xmm2
1075         paddd   96(%rbp),%xmm5
1076         pxor    %xmm1,%xmm7
1077
1078         psrld   $25-11,%xmm1
1079         movdqa  %xmm13,%xmm0
1080         prefetcht0      63(%r8)
1081         pxor    %xmm2,%xmm7
1082         movdqa  %xmm13,%xmm4
1083         pslld   $26-21,%xmm2
1084         pandn   %xmm15,%xmm0
1085         pand    %xmm14,%xmm4
1086         pxor    %xmm1,%xmm7
1087
1088         prefetcht0      63(%r9)
1089         movdqa  %xmm9,%xmm1
1090         pxor    %xmm2,%xmm7
1091         movdqa  %xmm9,%xmm2
1092         psrld   $2,%xmm1
1093         paddd   %xmm7,%xmm5
1094         pxor    %xmm4,%xmm0
1095         movdqa  %xmm10,%xmm4
1096         movdqa  %xmm9,%xmm7
1097         pslld   $10,%xmm2
1098         pxor    %xmm9,%xmm4
1099
1100         prefetcht0      63(%r10)
1101         psrld   $13,%xmm7
1102         pxor    %xmm2,%xmm1
1103         paddd   %xmm0,%xmm5
1104         pslld   $19-10,%xmm2
1105         pand    %xmm4,%xmm3
1106         pxor    %xmm7,%xmm1
1107
1108         prefetcht0      63(%r11)
1109         psrld   $22-13,%xmm7
1110         pxor    %xmm2,%xmm1
1111         movdqa  %xmm10,%xmm8
1112         pslld   $30-19,%xmm2
1113         pxor    %xmm1,%xmm7
1114         pxor    %xmm3,%xmm8
1115         paddd   %xmm5,%xmm12
1116         pxor    %xmm2,%xmm7
1117
1118         paddd   %xmm5,%xmm8
1119         paddd   %xmm7,%xmm8
1120         leaq    256(%rbp),%rbp
1121         movdqu  0-128(%rax),%xmm5
1122         movl    $3,%ecx
1123         jmp     .Loop_16_xx
1124 .align  32
1125 .Loop_16_xx:
1126         movdqa  16-128(%rax),%xmm6
1127         paddd   144-128(%rax),%xmm5
1128
1129         movdqa  %xmm6,%xmm7
1130         movdqa  %xmm6,%xmm1
1131         psrld   $3,%xmm7
1132         movdqa  %xmm6,%xmm2
1133
1134         psrld   $7,%xmm1
1135         movdqa  224-128(%rax),%xmm0
1136         pslld   $14,%xmm2
1137         pxor    %xmm1,%xmm7
1138         psrld   $18-7,%xmm1
1139         movdqa  %xmm0,%xmm3
1140         pxor    %xmm2,%xmm7
1141         pslld   $25-14,%xmm2
1142         pxor    %xmm1,%xmm7
1143         psrld   $10,%xmm0
1144         movdqa  %xmm3,%xmm1
1145
1146         psrld   $17,%xmm3
1147         pxor    %xmm2,%xmm7
1148         pslld   $13,%xmm1
1149         paddd   %xmm7,%xmm5
1150         pxor    %xmm3,%xmm0
1151         psrld   $19-17,%xmm3
1152         pxor    %xmm1,%xmm0
1153         pslld   $15-13,%xmm1
1154         pxor    %xmm3,%xmm0
1155         pxor    %xmm1,%xmm0
1156         paddd   %xmm0,%xmm5
1157         movdqa  %xmm12,%xmm7
1158
1159         movdqa  %xmm12,%xmm2
1160
1161         psrld   $6,%xmm7
1162         movdqa  %xmm12,%xmm1
1163         pslld   $7,%xmm2
1164         movdqa  %xmm5,0-128(%rax)
1165         paddd   %xmm15,%xmm5
1166
1167         psrld   $11,%xmm1
1168         pxor    %xmm2,%xmm7
1169         pslld   $21-7,%xmm2
1170         paddd   -128(%rbp),%xmm5
1171         pxor    %xmm1,%xmm7
1172
1173         psrld   $25-11,%xmm1
1174         movdqa  %xmm12,%xmm0
1175
1176         pxor    %xmm2,%xmm7
1177         movdqa  %xmm12,%xmm3
1178         pslld   $26-21,%xmm2
1179         pandn   %xmm14,%xmm0
1180         pand    %xmm13,%xmm3
1181         pxor    %xmm1,%xmm7
1182
1183
1184         movdqa  %xmm8,%xmm1
1185         pxor    %xmm2,%xmm7
1186         movdqa  %xmm8,%xmm2
1187         psrld   $2,%xmm1
1188         paddd   %xmm7,%xmm5
1189         pxor    %xmm3,%xmm0
1190         movdqa  %xmm9,%xmm3
1191         movdqa  %xmm8,%xmm7
1192         pslld   $10,%xmm2
1193         pxor    %xmm8,%xmm3
1194
1195
1196         psrld   $13,%xmm7
1197         pxor    %xmm2,%xmm1
1198         paddd   %xmm0,%xmm5
1199         pslld   $19-10,%xmm2
1200         pand    %xmm3,%xmm4
1201         pxor    %xmm7,%xmm1
1202
1203
1204         psrld   $22-13,%xmm7
1205         pxor    %xmm2,%xmm1
1206         movdqa  %xmm9,%xmm15
1207         pslld   $30-19,%xmm2
1208         pxor    %xmm1,%xmm7
1209         pxor    %xmm4,%xmm15
1210         paddd   %xmm5,%xmm11
1211         pxor    %xmm2,%xmm7
1212
1213         paddd   %xmm5,%xmm15
1214         paddd   %xmm7,%xmm15
1215         movdqa  32-128(%rax),%xmm5
1216         paddd   160-128(%rax),%xmm6
1217
1218         movdqa  %xmm5,%xmm7
1219         movdqa  %xmm5,%xmm1
1220         psrld   $3,%xmm7
1221         movdqa  %xmm5,%xmm2
1222
1223         psrld   $7,%xmm1
1224         movdqa  240-128(%rax),%xmm0
1225         pslld   $14,%xmm2
1226         pxor    %xmm1,%xmm7
1227         psrld   $18-7,%xmm1
1228         movdqa  %xmm0,%xmm4
1229         pxor    %xmm2,%xmm7
1230         pslld   $25-14,%xmm2
1231         pxor    %xmm1,%xmm7
1232         psrld   $10,%xmm0
1233         movdqa  %xmm4,%xmm1
1234
1235         psrld   $17,%xmm4
1236         pxor    %xmm2,%xmm7
1237         pslld   $13,%xmm1
1238         paddd   %xmm7,%xmm6
1239         pxor    %xmm4,%xmm0
1240         psrld   $19-17,%xmm4
1241         pxor    %xmm1,%xmm0
1242         pslld   $15-13,%xmm1
1243         pxor    %xmm4,%xmm0
1244         pxor    %xmm1,%xmm0
1245         paddd   %xmm0,%xmm6
1246         movdqa  %xmm11,%xmm7
1247
1248         movdqa  %xmm11,%xmm2
1249
1250         psrld   $6,%xmm7
1251         movdqa  %xmm11,%xmm1
1252         pslld   $7,%xmm2
1253         movdqa  %xmm6,16-128(%rax)
1254         paddd   %xmm14,%xmm6
1255
1256         psrld   $11,%xmm1
1257         pxor    %xmm2,%xmm7
1258         pslld   $21-7,%xmm2
1259         paddd   -96(%rbp),%xmm6
1260         pxor    %xmm1,%xmm7
1261
1262         psrld   $25-11,%xmm1
1263         movdqa  %xmm11,%xmm0
1264
1265         pxor    %xmm2,%xmm7
1266         movdqa  %xmm11,%xmm4
1267         pslld   $26-21,%xmm2
1268         pandn   %xmm13,%xmm0
1269         pand    %xmm12,%xmm4
1270         pxor    %xmm1,%xmm7
1271
1272
1273         movdqa  %xmm15,%xmm1
1274         pxor    %xmm2,%xmm7
1275         movdqa  %xmm15,%xmm2
1276         psrld   $2,%xmm1
1277         paddd   %xmm7,%xmm6
1278         pxor    %xmm4,%xmm0
1279         movdqa  %xmm8,%xmm4
1280         movdqa  %xmm15,%xmm7
1281         pslld   $10,%xmm2
1282         pxor    %xmm15,%xmm4
1283
1284
1285         psrld   $13,%xmm7
1286         pxor    %xmm2,%xmm1
1287         paddd   %xmm0,%xmm6
1288         pslld   $19-10,%xmm2
1289         pand    %xmm4,%xmm3
1290         pxor    %xmm7,%xmm1
1291
1292
1293         psrld   $22-13,%xmm7
1294         pxor    %xmm2,%xmm1
1295         movdqa  %xmm8,%xmm14
1296         pslld   $30-19,%xmm2
1297         pxor    %xmm1,%xmm7
1298         pxor    %xmm3,%xmm14
1299         paddd   %xmm6,%xmm10
1300         pxor    %xmm2,%xmm7
1301
1302         paddd   %xmm6,%xmm14
1303         paddd   %xmm7,%xmm14
1304         movdqa  48-128(%rax),%xmm6
1305         paddd   176-128(%rax),%xmm5
1306
1307         movdqa  %xmm6,%xmm7
1308         movdqa  %xmm6,%xmm1
1309         psrld   $3,%xmm7
1310         movdqa  %xmm6,%xmm2
1311
1312         psrld   $7,%xmm1
1313         movdqa  0-128(%rax),%xmm0
1314         pslld   $14,%xmm2
1315         pxor    %xmm1,%xmm7
1316         psrld   $18-7,%xmm1
1317         movdqa  %xmm0,%xmm3
1318         pxor    %xmm2,%xmm7
1319         pslld   $25-14,%xmm2
1320         pxor    %xmm1,%xmm7
1321         psrld   $10,%xmm0
1322         movdqa  %xmm3,%xmm1
1323
1324         psrld   $17,%xmm3
1325         pxor    %xmm2,%xmm7
1326         pslld   $13,%xmm1
1327         paddd   %xmm7,%xmm5
1328         pxor    %xmm3,%xmm0
1329         psrld   $19-17,%xmm3
1330         pxor    %xmm1,%xmm0
1331         pslld   $15-13,%xmm1
1332         pxor    %xmm3,%xmm0
1333         pxor    %xmm1,%xmm0
1334         paddd   %xmm0,%xmm5
1335         movdqa  %xmm10,%xmm7
1336
1337         movdqa  %xmm10,%xmm2
1338
1339         psrld   $6,%xmm7
1340         movdqa  %xmm10,%xmm1
1341         pslld   $7,%xmm2
1342         movdqa  %xmm5,32-128(%rax)
1343         paddd   %xmm13,%xmm5
1344
1345         psrld   $11,%xmm1
1346         pxor    %xmm2,%xmm7
1347         pslld   $21-7,%xmm2
1348         paddd   -64(%rbp),%xmm5
1349         pxor    %xmm1,%xmm7
1350
1351         psrld   $25-11,%xmm1
1352         movdqa  %xmm10,%xmm0
1353
1354         pxor    %xmm2,%xmm7
1355         movdqa  %xmm10,%xmm3
1356         pslld   $26-21,%xmm2
1357         pandn   %xmm12,%xmm0
1358         pand    %xmm11,%xmm3
1359         pxor    %xmm1,%xmm7
1360
1361
1362         movdqa  %xmm14,%xmm1
1363         pxor    %xmm2,%xmm7
1364         movdqa  %xmm14,%xmm2
1365         psrld   $2,%xmm1
1366         paddd   %xmm7,%xmm5
1367         pxor    %xmm3,%xmm0
1368         movdqa  %xmm15,%xmm3
1369         movdqa  %xmm14,%xmm7
1370         pslld   $10,%xmm2
1371         pxor    %xmm14,%xmm3
1372
1373
1374         psrld   $13,%xmm7
1375         pxor    %xmm2,%xmm1
1376         paddd   %xmm0,%xmm5
1377         pslld   $19-10,%xmm2
1378         pand    %xmm3,%xmm4
1379         pxor    %xmm7,%xmm1
1380
1381
1382         psrld   $22-13,%xmm7
1383         pxor    %xmm2,%xmm1
1384         movdqa  %xmm15,%xmm13
1385         pslld   $30-19,%xmm2
1386         pxor    %xmm1,%xmm7
1387         pxor    %xmm4,%xmm13
1388         paddd   %xmm5,%xmm9
1389         pxor    %xmm2,%xmm7
1390
1391         paddd   %xmm5,%xmm13
1392         paddd   %xmm7,%xmm13
1393         movdqa  64-128(%rax),%xmm5
1394         paddd   192-128(%rax),%xmm6
1395
1396         movdqa  %xmm5,%xmm7
1397         movdqa  %xmm5,%xmm1
1398         psrld   $3,%xmm7
1399         movdqa  %xmm5,%xmm2
1400
1401         psrld   $7,%xmm1
1402         movdqa  16-128(%rax),%xmm0
1403         pslld   $14,%xmm2
1404         pxor    %xmm1,%xmm7
1405         psrld   $18-7,%xmm1
1406         movdqa  %xmm0,%xmm4
1407         pxor    %xmm2,%xmm7
1408         pslld   $25-14,%xmm2
1409         pxor    %xmm1,%xmm7
1410         psrld   $10,%xmm0
1411         movdqa  %xmm4,%xmm1
1412
1413         psrld   $17,%xmm4
1414         pxor    %xmm2,%xmm7
1415         pslld   $13,%xmm1
1416         paddd   %xmm7,%xmm6
1417         pxor    %xmm4,%xmm0
1418         psrld   $19-17,%xmm4
1419         pxor    %xmm1,%xmm0
1420         pslld   $15-13,%xmm1
1421         pxor    %xmm4,%xmm0
1422         pxor    %xmm1,%xmm0
1423         paddd   %xmm0,%xmm6
1424         movdqa  %xmm9,%xmm7
1425
1426         movdqa  %xmm9,%xmm2
1427
1428         psrld   $6,%xmm7
1429         movdqa  %xmm9,%xmm1
1430         pslld   $7,%xmm2
1431         movdqa  %xmm6,48-128(%rax)
1432         paddd   %xmm12,%xmm6
1433
1434         psrld   $11,%xmm1
1435         pxor    %xmm2,%xmm7
1436         pslld   $21-7,%xmm2
1437         paddd   -32(%rbp),%xmm6
1438         pxor    %xmm1,%xmm7
1439
1440         psrld   $25-11,%xmm1
1441         movdqa  %xmm9,%xmm0
1442
1443         pxor    %xmm2,%xmm7
1444         movdqa  %xmm9,%xmm4
1445         pslld   $26-21,%xmm2
1446         pandn   %xmm11,%xmm0
1447         pand    %xmm10,%xmm4
1448         pxor    %xmm1,%xmm7
1449
1450
1451         movdqa  %xmm13,%xmm1
1452         pxor    %xmm2,%xmm7
1453         movdqa  %xmm13,%xmm2
1454         psrld   $2,%xmm1
1455         paddd   %xmm7,%xmm6
1456         pxor    %xmm4,%xmm0
1457         movdqa  %xmm14,%xmm4
1458         movdqa  %xmm13,%xmm7
1459         pslld   $10,%xmm2
1460         pxor    %xmm13,%xmm4
1461
1462
1463         psrld   $13,%xmm7
1464         pxor    %xmm2,%xmm1
1465         paddd   %xmm0,%xmm6
1466         pslld   $19-10,%xmm2
1467         pand    %xmm4,%xmm3
1468         pxor    %xmm7,%xmm1
1469
1470
1471         psrld   $22-13,%xmm7
1472         pxor    %xmm2,%xmm1
1473         movdqa  %xmm14,%xmm12
1474         pslld   $30-19,%xmm2
1475         pxor    %xmm1,%xmm7
1476         pxor    %xmm3,%xmm12
1477         paddd   %xmm6,%xmm8
1478         pxor    %xmm2,%xmm7
1479
1480         paddd   %xmm6,%xmm12
1481         paddd   %xmm7,%xmm12
1482         movdqa  80-128(%rax),%xmm6
1483         paddd   208-128(%rax),%xmm5
1484
1485         movdqa  %xmm6,%xmm7
1486         movdqa  %xmm6,%xmm1
1487         psrld   $3,%xmm7
1488         movdqa  %xmm6,%xmm2
1489
1490         psrld   $7,%xmm1
1491         movdqa  32-128(%rax),%xmm0
1492         pslld   $14,%xmm2
1493         pxor    %xmm1,%xmm7
1494         psrld   $18-7,%xmm1
1495         movdqa  %xmm0,%xmm3
1496         pxor    %xmm2,%xmm7
1497         pslld   $25-14,%xmm2
1498         pxor    %xmm1,%xmm7
1499         psrld   $10,%xmm0
1500         movdqa  %xmm3,%xmm1
1501
1502         psrld   $17,%xmm3
1503         pxor    %xmm2,%xmm7
1504         pslld   $13,%xmm1
1505         paddd   %xmm7,%xmm5
1506         pxor    %xmm3,%xmm0
1507         psrld   $19-17,%xmm3
1508         pxor    %xmm1,%xmm0
1509         pslld   $15-13,%xmm1
1510         pxor    %xmm3,%xmm0
1511         pxor    %xmm1,%xmm0
1512         paddd   %xmm0,%xmm5
1513         movdqa  %xmm8,%xmm7
1514
1515         movdqa  %xmm8,%xmm2
1516
1517         psrld   $6,%xmm7
1518         movdqa  %xmm8,%xmm1
1519         pslld   $7,%xmm2
1520         movdqa  %xmm5,64-128(%rax)
1521         paddd   %xmm11,%xmm5
1522
1523         psrld   $11,%xmm1
1524         pxor    %xmm2,%xmm7
1525         pslld   $21-7,%xmm2
1526         paddd   0(%rbp),%xmm5
1527         pxor    %xmm1,%xmm7
1528
1529         psrld   $25-11,%xmm1
1530         movdqa  %xmm8,%xmm0
1531
1532         pxor    %xmm2,%xmm7
1533         movdqa  %xmm8,%xmm3
1534         pslld   $26-21,%xmm2
1535         pandn   %xmm10,%xmm0
1536         pand    %xmm9,%xmm3
1537         pxor    %xmm1,%xmm7
1538
1539
1540         movdqa  %xmm12,%xmm1
1541         pxor    %xmm2,%xmm7
1542         movdqa  %xmm12,%xmm2
1543         psrld   $2,%xmm1
1544         paddd   %xmm7,%xmm5
1545         pxor    %xmm3,%xmm0
1546         movdqa  %xmm13,%xmm3
1547         movdqa  %xmm12,%xmm7
1548         pslld   $10,%xmm2
1549         pxor    %xmm12,%xmm3
1550
1551
1552         psrld   $13,%xmm7
1553         pxor    %xmm2,%xmm1
1554         paddd   %xmm0,%xmm5
1555         pslld   $19-10,%xmm2
1556         pand    %xmm3,%xmm4
1557         pxor    %xmm7,%xmm1
1558
1559
1560         psrld   $22-13,%xmm7
1561         pxor    %xmm2,%xmm1
1562         movdqa  %xmm13,%xmm11
1563         pslld   $30-19,%xmm2
1564         pxor    %xmm1,%xmm7
1565         pxor    %xmm4,%xmm11
1566         paddd   %xmm5,%xmm15
1567         pxor    %xmm2,%xmm7
1568
1569         paddd   %xmm5,%xmm11
1570         paddd   %xmm7,%xmm11
1571         movdqa  96-128(%rax),%xmm5
1572         paddd   224-128(%rax),%xmm6
1573
1574         movdqa  %xmm5,%xmm7
1575         movdqa  %xmm5,%xmm1
1576         psrld   $3,%xmm7
1577         movdqa  %xmm5,%xmm2
1578
1579         psrld   $7,%xmm1
1580         movdqa  48-128(%rax),%xmm0
1581         pslld   $14,%xmm2
1582         pxor    %xmm1,%xmm7
1583         psrld   $18-7,%xmm1
1584         movdqa  %xmm0,%xmm4
1585         pxor    %xmm2,%xmm7
1586         pslld   $25-14,%xmm2
1587         pxor    %xmm1,%xmm7
1588         psrld   $10,%xmm0
1589         movdqa  %xmm4,%xmm1
1590
1591         psrld   $17,%xmm4
1592         pxor    %xmm2,%xmm7
1593         pslld   $13,%xmm1
1594         paddd   %xmm7,%xmm6
1595         pxor    %xmm4,%xmm0
1596         psrld   $19-17,%xmm4
1597         pxor    %xmm1,%xmm0
1598         pslld   $15-13,%xmm1
1599         pxor    %xmm4,%xmm0
1600         pxor    %xmm1,%xmm0
1601         paddd   %xmm0,%xmm6
1602         movdqa  %xmm15,%xmm7
1603
1604         movdqa  %xmm15,%xmm2
1605
1606         psrld   $6,%xmm7
1607         movdqa  %xmm15,%xmm1
1608         pslld   $7,%xmm2
1609         movdqa  %xmm6,80-128(%rax)
1610         paddd   %xmm10,%xmm6
1611
1612         psrld   $11,%xmm1
1613         pxor    %xmm2,%xmm7
1614         pslld   $21-7,%xmm2
1615         paddd   32(%rbp),%xmm6
1616         pxor    %xmm1,%xmm7
1617
1618         psrld   $25-11,%xmm1
1619         movdqa  %xmm15,%xmm0
1620
1621         pxor    %xmm2,%xmm7
1622         movdqa  %xmm15,%xmm4
1623         pslld   $26-21,%xmm2
1624         pandn   %xmm9,%xmm0
1625         pand    %xmm8,%xmm4
1626         pxor    %xmm1,%xmm7
1627
1628
1629         movdqa  %xmm11,%xmm1
1630         pxor    %xmm2,%xmm7
1631         movdqa  %xmm11,%xmm2
1632         psrld   $2,%xmm1
1633         paddd   %xmm7,%xmm6
1634         pxor    %xmm4,%xmm0
1635         movdqa  %xmm12,%xmm4
1636         movdqa  %xmm11,%xmm7
1637         pslld   $10,%xmm2
1638         pxor    %xmm11,%xmm4
1639
1640
1641         psrld   $13,%xmm7
1642         pxor    %xmm2,%xmm1
1643         paddd   %xmm0,%xmm6
1644         pslld   $19-10,%xmm2
1645         pand    %xmm4,%xmm3
1646         pxor    %xmm7,%xmm1
1647
1648
1649         psrld   $22-13,%xmm7
1650         pxor    %xmm2,%xmm1
1651         movdqa  %xmm12,%xmm10
1652         pslld   $30-19,%xmm2
1653         pxor    %xmm1,%xmm7
1654         pxor    %xmm3,%xmm10
1655         paddd   %xmm6,%xmm14
1656         pxor    %xmm2,%xmm7
1657
1658         paddd   %xmm6,%xmm10
1659         paddd   %xmm7,%xmm10
1660         movdqa  112-128(%rax),%xmm6
1661         paddd   240-128(%rax),%xmm5
1662
1663         movdqa  %xmm6,%xmm7
1664         movdqa  %xmm6,%xmm1
1665         psrld   $3,%xmm7
1666         movdqa  %xmm6,%xmm2
1667
1668         psrld   $7,%xmm1
1669         movdqa  64-128(%rax),%xmm0
1670         pslld   $14,%xmm2
1671         pxor    %xmm1,%xmm7
1672         psrld   $18-7,%xmm1
1673         movdqa  %xmm0,%xmm3
1674         pxor    %xmm2,%xmm7
1675         pslld   $25-14,%xmm2
1676         pxor    %xmm1,%xmm7
1677         psrld   $10,%xmm0
1678         movdqa  %xmm3,%xmm1
1679
1680         psrld   $17,%xmm3
1681         pxor    %xmm2,%xmm7
1682         pslld   $13,%xmm1
1683         paddd   %xmm7,%xmm5
1684         pxor    %xmm3,%xmm0
1685         psrld   $19-17,%xmm3
1686         pxor    %xmm1,%xmm0
1687         pslld   $15-13,%xmm1
1688         pxor    %xmm3,%xmm0
1689         pxor    %xmm1,%xmm0
1690         paddd   %xmm0,%xmm5
1691         movdqa  %xmm14,%xmm7
1692
1693         movdqa  %xmm14,%xmm2
1694
1695         psrld   $6,%xmm7
1696         movdqa  %xmm14,%xmm1
1697         pslld   $7,%xmm2
1698         movdqa  %xmm5,96-128(%rax)
1699         paddd   %xmm9,%xmm5
1700
1701         psrld   $11,%xmm1
1702         pxor    %xmm2,%xmm7
1703         pslld   $21-7,%xmm2
1704         paddd   64(%rbp),%xmm5
1705         pxor    %xmm1,%xmm7
1706
1707         psrld   $25-11,%xmm1
1708         movdqa  %xmm14,%xmm0
1709
1710         pxor    %xmm2,%xmm7
1711         movdqa  %xmm14,%xmm3
1712         pslld   $26-21,%xmm2
1713         pandn   %xmm8,%xmm0
1714         pand    %xmm15,%xmm3
1715         pxor    %xmm1,%xmm7
1716
1717
1718         movdqa  %xmm10,%xmm1
1719         pxor    %xmm2,%xmm7
1720         movdqa  %xmm10,%xmm2
1721         psrld   $2,%xmm1
1722         paddd   %xmm7,%xmm5
1723         pxor    %xmm3,%xmm0
1724         movdqa  %xmm11,%xmm3
1725         movdqa  %xmm10,%xmm7
1726         pslld   $10,%xmm2
1727         pxor    %xmm10,%xmm3
1728
1729
1730         psrld   $13,%xmm7
1731         pxor    %xmm2,%xmm1
1732         paddd   %xmm0,%xmm5
1733         pslld   $19-10,%xmm2
1734         pand    %xmm3,%xmm4
1735         pxor    %xmm7,%xmm1
1736
1737
1738         psrld   $22-13,%xmm7
1739         pxor    %xmm2,%xmm1
1740         movdqa  %xmm11,%xmm9
1741         pslld   $30-19,%xmm2
1742         pxor    %xmm1,%xmm7
1743         pxor    %xmm4,%xmm9
1744         paddd   %xmm5,%xmm13
1745         pxor    %xmm2,%xmm7
1746
1747         paddd   %xmm5,%xmm9
1748         paddd   %xmm7,%xmm9
1749         movdqa  128-128(%rax),%xmm5
1750         paddd   0-128(%rax),%xmm6
1751
1752         movdqa  %xmm5,%xmm7
1753         movdqa  %xmm5,%xmm1
1754         psrld   $3,%xmm7
1755         movdqa  %xmm5,%xmm2
1756
1757         psrld   $7,%xmm1
1758         movdqa  80-128(%rax),%xmm0
1759         pslld   $14,%xmm2
1760         pxor    %xmm1,%xmm7
1761         psrld   $18-7,%xmm1
1762         movdqa  %xmm0,%xmm4
1763         pxor    %xmm2,%xmm7
1764         pslld   $25-14,%xmm2
1765         pxor    %xmm1,%xmm7
1766         psrld   $10,%xmm0
1767         movdqa  %xmm4,%xmm1
1768
1769         psrld   $17,%xmm4
1770         pxor    %xmm2,%xmm7
1771         pslld   $13,%xmm1
1772         paddd   %xmm7,%xmm6
1773         pxor    %xmm4,%xmm0
1774         psrld   $19-17,%xmm4
1775         pxor    %xmm1,%xmm0
1776         pslld   $15-13,%xmm1
1777         pxor    %xmm4,%xmm0
1778         pxor    %xmm1,%xmm0
1779         paddd   %xmm0,%xmm6
1780         movdqa  %xmm13,%xmm7
1781
1782         movdqa  %xmm13,%xmm2
1783
1784         psrld   $6,%xmm7
1785         movdqa  %xmm13,%xmm1
1786         pslld   $7,%xmm2
1787         movdqa  %xmm6,112-128(%rax)
1788         paddd   %xmm8,%xmm6
1789
1790         psrld   $11,%xmm1
1791         pxor    %xmm2,%xmm7
1792         pslld   $21-7,%xmm2
1793         paddd   96(%rbp),%xmm6
1794         pxor    %xmm1,%xmm7
1795
1796         psrld   $25-11,%xmm1
1797         movdqa  %xmm13,%xmm0
1798
1799         pxor    %xmm2,%xmm7
1800         movdqa  %xmm13,%xmm4
1801         pslld   $26-21,%xmm2
1802         pandn   %xmm15,%xmm0
1803         pand    %xmm14,%xmm4
1804         pxor    %xmm1,%xmm7
1805
1806
1807         movdqa  %xmm9,%xmm1
1808         pxor    %xmm2,%xmm7
1809         movdqa  %xmm9,%xmm2
1810         psrld   $2,%xmm1
1811         paddd   %xmm7,%xmm6
1812         pxor    %xmm4,%xmm0
1813         movdqa  %xmm10,%xmm4
1814         movdqa  %xmm9,%xmm7
1815         pslld   $10,%xmm2
1816         pxor    %xmm9,%xmm4
1817
1818
1819         psrld   $13,%xmm7
1820         pxor    %xmm2,%xmm1
1821         paddd   %xmm0,%xmm6
1822         pslld   $19-10,%xmm2
1823         pand    %xmm4,%xmm3
1824         pxor    %xmm7,%xmm1
1825
1826
1827         psrld   $22-13,%xmm7
1828         pxor    %xmm2,%xmm1
1829         movdqa  %xmm10,%xmm8
1830         pslld   $30-19,%xmm2
1831         pxor    %xmm1,%xmm7
1832         pxor    %xmm3,%xmm8
1833         paddd   %xmm6,%xmm12
1834         pxor    %xmm2,%xmm7
1835
1836         paddd   %xmm6,%xmm8
1837         paddd   %xmm7,%xmm8
1838         leaq    256(%rbp),%rbp
1839         movdqa  144-128(%rax),%xmm6
1840         paddd   16-128(%rax),%xmm5
1841
1842         movdqa  %xmm6,%xmm7
1843         movdqa  %xmm6,%xmm1
1844         psrld   $3,%xmm7
1845         movdqa  %xmm6,%xmm2
1846
1847         psrld   $7,%xmm1
1848         movdqa  96-128(%rax),%xmm0
1849         pslld   $14,%xmm2
1850         pxor    %xmm1,%xmm7
1851         psrld   $18-7,%xmm1
1852         movdqa  %xmm0,%xmm3
1853         pxor    %xmm2,%xmm7
1854         pslld   $25-14,%xmm2
1855         pxor    %xmm1,%xmm7
1856         psrld   $10,%xmm0
1857         movdqa  %xmm3,%xmm1
1858
1859         psrld   $17,%xmm3
1860         pxor    %xmm2,%xmm7
1861         pslld   $13,%xmm1
1862         paddd   %xmm7,%xmm5
1863         pxor    %xmm3,%xmm0
1864         psrld   $19-17,%xmm3
1865         pxor    %xmm1,%xmm0
1866         pslld   $15-13,%xmm1
1867         pxor    %xmm3,%xmm0
1868         pxor    %xmm1,%xmm0
1869         paddd   %xmm0,%xmm5
1870         movdqa  %xmm12,%xmm7
1871
1872         movdqa  %xmm12,%xmm2
1873
1874         psrld   $6,%xmm7
1875         movdqa  %xmm12,%xmm1
1876         pslld   $7,%xmm2
1877         movdqa  %xmm5,128-128(%rax)
1878         paddd   %xmm15,%xmm5
1879
1880         psrld   $11,%xmm1
1881         pxor    %xmm2,%xmm7
1882         pslld   $21-7,%xmm2
1883         paddd   -128(%rbp),%xmm5
1884         pxor    %xmm1,%xmm7
1885
1886         psrld   $25-11,%xmm1
1887         movdqa  %xmm12,%xmm0
1888
1889         pxor    %xmm2,%xmm7
1890         movdqa  %xmm12,%xmm3
1891         pslld   $26-21,%xmm2
1892         pandn   %xmm14,%xmm0
1893         pand    %xmm13,%xmm3
1894         pxor    %xmm1,%xmm7
1895
1896
1897         movdqa  %xmm8,%xmm1
1898         pxor    %xmm2,%xmm7
1899         movdqa  %xmm8,%xmm2
1900         psrld   $2,%xmm1
1901         paddd   %xmm7,%xmm5
1902         pxor    %xmm3,%xmm0
1903         movdqa  %xmm9,%xmm3
1904         movdqa  %xmm8,%xmm7
1905         pslld   $10,%xmm2
1906         pxor    %xmm8,%xmm3
1907
1908
1909         psrld   $13,%xmm7
1910         pxor    %xmm2,%xmm1
1911         paddd   %xmm0,%xmm5
1912         pslld   $19-10,%xmm2
1913         pand    %xmm3,%xmm4
1914         pxor    %xmm7,%xmm1
1915
1916
1917         psrld   $22-13,%xmm7
1918         pxor    %xmm2,%xmm1
1919         movdqa  %xmm9,%xmm15
1920         pslld   $30-19,%xmm2
1921         pxor    %xmm1,%xmm7
1922         pxor    %xmm4,%xmm15
1923         paddd   %xmm5,%xmm11
1924         pxor    %xmm2,%xmm7
1925
1926         paddd   %xmm5,%xmm15
1927         paddd   %xmm7,%xmm15
1928         movdqa  160-128(%rax),%xmm5
1929         paddd   32-128(%rax),%xmm6
1930
1931         movdqa  %xmm5,%xmm7
1932         movdqa  %xmm5,%xmm1
1933         psrld   $3,%xmm7
1934         movdqa  %xmm5,%xmm2
1935
1936         psrld   $7,%xmm1
1937         movdqa  112-128(%rax),%xmm0
1938         pslld   $14,%xmm2
1939         pxor    %xmm1,%xmm7
1940         psrld   $18-7,%xmm1
1941         movdqa  %xmm0,%xmm4
1942         pxor    %xmm2,%xmm7
1943         pslld   $25-14,%xmm2
1944         pxor    %xmm1,%xmm7
1945         psrld   $10,%xmm0
1946         movdqa  %xmm4,%xmm1
1947
1948         psrld   $17,%xmm4
1949         pxor    %xmm2,%xmm7
1950         pslld   $13,%xmm1
1951         paddd   %xmm7,%xmm6
1952         pxor    %xmm4,%xmm0
1953         psrld   $19-17,%xmm4
1954         pxor    %xmm1,%xmm0
1955         pslld   $15-13,%xmm1
1956         pxor    %xmm4,%xmm0
1957         pxor    %xmm1,%xmm0
1958         paddd   %xmm0,%xmm6
1959         movdqa  %xmm11,%xmm7
1960
1961         movdqa  %xmm11,%xmm2
1962
1963         psrld   $6,%xmm7
1964         movdqa  %xmm11,%xmm1
1965         pslld   $7,%xmm2
1966         movdqa  %xmm6,144-128(%rax)
1967         paddd   %xmm14,%xmm6
1968
1969         psrld   $11,%xmm1
1970         pxor    %xmm2,%xmm7
1971         pslld   $21-7,%xmm2
1972         paddd   -96(%rbp),%xmm6
1973         pxor    %xmm1,%xmm7
1974
1975         psrld   $25-11,%xmm1
1976         movdqa  %xmm11,%xmm0
1977
1978         pxor    %xmm2,%xmm7
1979         movdqa  %xmm11,%xmm4
1980         pslld   $26-21,%xmm2
1981         pandn   %xmm13,%xmm0
1982         pand    %xmm12,%xmm4
1983         pxor    %xmm1,%xmm7
1984
1985
1986         movdqa  %xmm15,%xmm1
1987         pxor    %xmm2,%xmm7
1988         movdqa  %xmm15,%xmm2
1989         psrld   $2,%xmm1
1990         paddd   %xmm7,%xmm6
1991         pxor    %xmm4,%xmm0
1992         movdqa  %xmm8,%xmm4
1993         movdqa  %xmm15,%xmm7
1994         pslld   $10,%xmm2
1995         pxor    %xmm15,%xmm4
1996
1997
1998         psrld   $13,%xmm7
1999         pxor    %xmm2,%xmm1
2000         paddd   %xmm0,%xmm6
2001         pslld   $19-10,%xmm2
2002         pand    %xmm4,%xmm3
2003         pxor    %xmm7,%xmm1
2004
2005
2006         psrld   $22-13,%xmm7
2007         pxor    %xmm2,%xmm1
2008         movdqa  %xmm8,%xmm14
2009         pslld   $30-19,%xmm2
2010         pxor    %xmm1,%xmm7
2011         pxor    %xmm3,%xmm14
2012         paddd   %xmm6,%xmm10
2013         pxor    %xmm2,%xmm7
2014
2015         paddd   %xmm6,%xmm14
2016         paddd   %xmm7,%xmm14
2017         movdqa  176-128(%rax),%xmm6
2018         paddd   48-128(%rax),%xmm5
2019
2020         movdqa  %xmm6,%xmm7
2021         movdqa  %xmm6,%xmm1
2022         psrld   $3,%xmm7
2023         movdqa  %xmm6,%xmm2
2024
2025         psrld   $7,%xmm1
2026         movdqa  128-128(%rax),%xmm0
2027         pslld   $14,%xmm2
2028         pxor    %xmm1,%xmm7
2029         psrld   $18-7,%xmm1
2030         movdqa  %xmm0,%xmm3
2031         pxor    %xmm2,%xmm7
2032         pslld   $25-14,%xmm2
2033         pxor    %xmm1,%xmm7
2034         psrld   $10,%xmm0
2035         movdqa  %xmm3,%xmm1
2036
2037         psrld   $17,%xmm3
2038         pxor    %xmm2,%xmm7
2039         pslld   $13,%xmm1
2040         paddd   %xmm7,%xmm5
2041         pxor    %xmm3,%xmm0
2042         psrld   $19-17,%xmm3
2043         pxor    %xmm1,%xmm0
2044         pslld   $15-13,%xmm1
2045         pxor    %xmm3,%xmm0
2046         pxor    %xmm1,%xmm0
2047         paddd   %xmm0,%xmm5
2048         movdqa  %xmm10,%xmm7
2049
2050         movdqa  %xmm10,%xmm2
2051
2052         psrld   $6,%xmm7
2053         movdqa  %xmm10,%xmm1
2054         pslld   $7,%xmm2
2055         movdqa  %xmm5,160-128(%rax)
2056         paddd   %xmm13,%xmm5
2057
2058         psrld   $11,%xmm1
2059         pxor    %xmm2,%xmm7
2060         pslld   $21-7,%xmm2
2061         paddd   -64(%rbp),%xmm5
2062         pxor    %xmm1,%xmm7
2063
2064         psrld   $25-11,%xmm1
2065         movdqa  %xmm10,%xmm0
2066
2067         pxor    %xmm2,%xmm7
2068         movdqa  %xmm10,%xmm3
2069         pslld   $26-21,%xmm2
2070         pandn   %xmm12,%xmm0
2071         pand    %xmm11,%xmm3
2072         pxor    %xmm1,%xmm7
2073
2074
2075         movdqa  %xmm14,%xmm1
2076         pxor    %xmm2,%xmm7
2077         movdqa  %xmm14,%xmm2
2078         psrld   $2,%xmm1
2079         paddd   %xmm7,%xmm5
2080         pxor    %xmm3,%xmm0
2081         movdqa  %xmm15,%xmm3
2082         movdqa  %xmm14,%xmm7
2083         pslld   $10,%xmm2
2084         pxor    %xmm14,%xmm3
2085
2086
2087         psrld   $13,%xmm7
2088         pxor    %xmm2,%xmm1
2089         paddd   %xmm0,%xmm5
2090         pslld   $19-10,%xmm2
2091         pand    %xmm3,%xmm4
2092         pxor    %xmm7,%xmm1
2093
2094
2095         psrld   $22-13,%xmm7
2096         pxor    %xmm2,%xmm1
2097         movdqa  %xmm15,%xmm13
2098         pslld   $30-19,%xmm2
2099         pxor    %xmm1,%xmm7
2100         pxor    %xmm4,%xmm13
2101         paddd   %xmm5,%xmm9
2102         pxor    %xmm2,%xmm7
2103
2104         paddd   %xmm5,%xmm13
2105         paddd   %xmm7,%xmm13
2106         movdqa  192-128(%rax),%xmm5
2107         paddd   64-128(%rax),%xmm6
2108
2109         movdqa  %xmm5,%xmm7
2110         movdqa  %xmm5,%xmm1
2111         psrld   $3,%xmm7
2112         movdqa  %xmm5,%xmm2
2113
2114         psrld   $7,%xmm1
2115         movdqa  144-128(%rax),%xmm0
2116         pslld   $14,%xmm2
2117         pxor    %xmm1,%xmm7
2118         psrld   $18-7,%xmm1
2119         movdqa  %xmm0,%xmm4
2120         pxor    %xmm2,%xmm7
2121         pslld   $25-14,%xmm2
2122         pxor    %xmm1,%xmm7
2123         psrld   $10,%xmm0
2124         movdqa  %xmm4,%xmm1
2125
2126         psrld   $17,%xmm4
2127         pxor    %xmm2,%xmm7
2128         pslld   $13,%xmm1
2129         paddd   %xmm7,%xmm6
2130         pxor    %xmm4,%xmm0
2131         psrld   $19-17,%xmm4
2132         pxor    %xmm1,%xmm0
2133         pslld   $15-13,%xmm1
2134         pxor    %xmm4,%xmm0
2135         pxor    %xmm1,%xmm0
2136         paddd   %xmm0,%xmm6
2137         movdqa  %xmm9,%xmm7
2138
2139         movdqa  %xmm9,%xmm2
2140
2141         psrld   $6,%xmm7
2142         movdqa  %xmm9,%xmm1
2143         pslld   $7,%xmm2
2144         movdqa  %xmm6,176-128(%rax)
2145         paddd   %xmm12,%xmm6
2146
2147         psrld   $11,%xmm1
2148         pxor    %xmm2,%xmm7
2149         pslld   $21-7,%xmm2
2150         paddd   -32(%rbp),%xmm6
2151         pxor    %xmm1,%xmm7
2152
2153         psrld   $25-11,%xmm1
2154         movdqa  %xmm9,%xmm0
2155
2156         pxor    %xmm2,%xmm7
2157         movdqa  %xmm9,%xmm4
2158         pslld   $26-21,%xmm2
2159         pandn   %xmm11,%xmm0
2160         pand    %xmm10,%xmm4
2161         pxor    %xmm1,%xmm7
2162
2163
2164         movdqa  %xmm13,%xmm1
2165         pxor    %xmm2,%xmm7
2166         movdqa  %xmm13,%xmm2
2167         psrld   $2,%xmm1
2168         paddd   %xmm7,%xmm6
2169         pxor    %xmm4,%xmm0
2170         movdqa  %xmm14,%xmm4
2171         movdqa  %xmm13,%xmm7
2172         pslld   $10,%xmm2
2173         pxor    %xmm13,%xmm4
2174
2175
2176         psrld   $13,%xmm7
2177         pxor    %xmm2,%xmm1
2178         paddd   %xmm0,%xmm6
2179         pslld   $19-10,%xmm2
2180         pand    %xmm4,%xmm3
2181         pxor    %xmm7,%xmm1
2182
2183
2184         psrld   $22-13,%xmm7
2185         pxor    %xmm2,%xmm1
2186         movdqa  %xmm14,%xmm12
2187         pslld   $30-19,%xmm2
2188         pxor    %xmm1,%xmm7
2189         pxor    %xmm3,%xmm12
2190         paddd   %xmm6,%xmm8
2191         pxor    %xmm2,%xmm7
2192
2193         paddd   %xmm6,%xmm12
2194         paddd   %xmm7,%xmm12
2195         movdqa  208-128(%rax),%xmm6
2196         paddd   80-128(%rax),%xmm5
2197
2198         movdqa  %xmm6,%xmm7
2199         movdqa  %xmm6,%xmm1
2200         psrld   $3,%xmm7
2201         movdqa  %xmm6,%xmm2
2202
2203         psrld   $7,%xmm1
2204         movdqa  160-128(%rax),%xmm0
2205         pslld   $14,%xmm2
2206         pxor    %xmm1,%xmm7
2207         psrld   $18-7,%xmm1
2208         movdqa  %xmm0,%xmm3
2209         pxor    %xmm2,%xmm7
2210         pslld   $25-14,%xmm2
2211         pxor    %xmm1,%xmm7
2212         psrld   $10,%xmm0
2213         movdqa  %xmm3,%xmm1
2214
2215         psrld   $17,%xmm3
2216         pxor    %xmm2,%xmm7
2217         pslld   $13,%xmm1
2218         paddd   %xmm7,%xmm5
2219         pxor    %xmm3,%xmm0
2220         psrld   $19-17,%xmm3
2221         pxor    %xmm1,%xmm0
2222         pslld   $15-13,%xmm1
2223         pxor    %xmm3,%xmm0
2224         pxor    %xmm1,%xmm0
2225         paddd   %xmm0,%xmm5
2226         movdqa  %xmm8,%xmm7
2227
2228         movdqa  %xmm8,%xmm2
2229
2230         psrld   $6,%xmm7
2231         movdqa  %xmm8,%xmm1
2232         pslld   $7,%xmm2
2233         movdqa  %xmm5,192-128(%rax)
2234         paddd   %xmm11,%xmm5
2235
2236         psrld   $11,%xmm1
2237         pxor    %xmm2,%xmm7
2238         pslld   $21-7,%xmm2
2239         paddd   0(%rbp),%xmm5
2240         pxor    %xmm1,%xmm7
2241
2242         psrld   $25-11,%xmm1
2243         movdqa  %xmm8,%xmm0
2244
2245         pxor    %xmm2,%xmm7
2246         movdqa  %xmm8,%xmm3
2247         pslld   $26-21,%xmm2
2248         pandn   %xmm10,%xmm0
2249         pand    %xmm9,%xmm3
2250         pxor    %xmm1,%xmm7
2251
2252
2253         movdqa  %xmm12,%xmm1
2254         pxor    %xmm2,%xmm7
2255         movdqa  %xmm12,%xmm2
2256         psrld   $2,%xmm1
2257         paddd   %xmm7,%xmm5
2258         pxor    %xmm3,%xmm0
2259         movdqa  %xmm13,%xmm3
2260         movdqa  %xmm12,%xmm7
2261         pslld   $10,%xmm2
2262         pxor    %xmm12,%xmm3
2263
2264
2265         psrld   $13,%xmm7
2266         pxor    %xmm2,%xmm1
2267         paddd   %xmm0,%xmm5
2268         pslld   $19-10,%xmm2
2269         pand    %xmm3,%xmm4
2270         pxor    %xmm7,%xmm1
2271
2272
2273         psrld   $22-13,%xmm7
2274         pxor    %xmm2,%xmm1
2275         movdqa  %xmm13,%xmm11
2276         pslld   $30-19,%xmm2
2277         pxor    %xmm1,%xmm7
2278         pxor    %xmm4,%xmm11
2279         paddd   %xmm5,%xmm15
2280         pxor    %xmm2,%xmm7
2281
2282         paddd   %xmm5,%xmm11
2283         paddd   %xmm7,%xmm11
2284         movdqa  224-128(%rax),%xmm5
2285         paddd   96-128(%rax),%xmm6
2286
2287         movdqa  %xmm5,%xmm7
2288         movdqa  %xmm5,%xmm1
2289         psrld   $3,%xmm7
2290         movdqa  %xmm5,%xmm2
2291
2292         psrld   $7,%xmm1
2293         movdqa  176-128(%rax),%xmm0
2294         pslld   $14,%xmm2
2295         pxor    %xmm1,%xmm7
2296         psrld   $18-7,%xmm1
2297         movdqa  %xmm0,%xmm4
2298         pxor    %xmm2,%xmm7
2299         pslld   $25-14,%xmm2
2300         pxor    %xmm1,%xmm7
2301         psrld   $10,%xmm0
2302         movdqa  %xmm4,%xmm1
2303
2304         psrld   $17,%xmm4
2305         pxor    %xmm2,%xmm7
2306         pslld   $13,%xmm1
2307         paddd   %xmm7,%xmm6
2308         pxor    %xmm4,%xmm0
2309         psrld   $19-17,%xmm4
2310         pxor    %xmm1,%xmm0
2311         pslld   $15-13,%xmm1
2312         pxor    %xmm4,%xmm0
2313         pxor    %xmm1,%xmm0
2314         paddd   %xmm0,%xmm6
2315         movdqa  %xmm15,%xmm7
2316
2317         movdqa  %xmm15,%xmm2
2318
2319         psrld   $6,%xmm7
2320         movdqa  %xmm15,%xmm1
2321         pslld   $7,%xmm2
2322         movdqa  %xmm6,208-128(%rax)
2323         paddd   %xmm10,%xmm6
2324
2325         psrld   $11,%xmm1
2326         pxor    %xmm2,%xmm7
2327         pslld   $21-7,%xmm2
2328         paddd   32(%rbp),%xmm6
2329         pxor    %xmm1,%xmm7
2330
2331         psrld   $25-11,%xmm1
2332         movdqa  %xmm15,%xmm0
2333
2334         pxor    %xmm2,%xmm7
2335         movdqa  %xmm15,%xmm4
2336         pslld   $26-21,%xmm2
2337         pandn   %xmm9,%xmm0
2338         pand    %xmm8,%xmm4
2339         pxor    %xmm1,%xmm7
2340
2341
2342         movdqa  %xmm11,%xmm1
2343         pxor    %xmm2,%xmm7
2344         movdqa  %xmm11,%xmm2
2345         psrld   $2,%xmm1
2346         paddd   %xmm7,%xmm6
2347         pxor    %xmm4,%xmm0
2348         movdqa  %xmm12,%xmm4
2349         movdqa  %xmm11,%xmm7
2350         pslld   $10,%xmm2
2351         pxor    %xmm11,%xmm4
2352
2353
2354         psrld   $13,%xmm7
2355         pxor    %xmm2,%xmm1
2356         paddd   %xmm0,%xmm6
2357         pslld   $19-10,%xmm2
2358         pand    %xmm4,%xmm3
2359         pxor    %xmm7,%xmm1
2360
2361
2362         psrld   $22-13,%xmm7
2363         pxor    %xmm2,%xmm1
2364         movdqa  %xmm12,%xmm10
2365         pslld   $30-19,%xmm2
2366         pxor    %xmm1,%xmm7
2367         pxor    %xmm3,%xmm10
2368         paddd   %xmm6,%xmm14
2369         pxor    %xmm2,%xmm7
2370
2371         paddd   %xmm6,%xmm10
2372         paddd   %xmm7,%xmm10
2373         movdqa  240-128(%rax),%xmm6
2374         paddd   112-128(%rax),%xmm5
2375
2376         movdqa  %xmm6,%xmm7
2377         movdqa  %xmm6,%xmm1
2378         psrld   $3,%xmm7
2379         movdqa  %xmm6,%xmm2
2380
2381         psrld   $7,%xmm1
2382         movdqa  192-128(%rax),%xmm0
2383         pslld   $14,%xmm2
2384         pxor    %xmm1,%xmm7
2385         psrld   $18-7,%xmm1
2386         movdqa  %xmm0,%xmm3
2387         pxor    %xmm2,%xmm7
2388         pslld   $25-14,%xmm2
2389         pxor    %xmm1,%xmm7
2390         psrld   $10,%xmm0
2391         movdqa  %xmm3,%xmm1
2392
2393         psrld   $17,%xmm3
2394         pxor    %xmm2,%xmm7
2395         pslld   $13,%xmm1
2396         paddd   %xmm7,%xmm5
2397         pxor    %xmm3,%xmm0
2398         psrld   $19-17,%xmm3
2399         pxor    %xmm1,%xmm0
2400         pslld   $15-13,%xmm1
2401         pxor    %xmm3,%xmm0
2402         pxor    %xmm1,%xmm0
2403         paddd   %xmm0,%xmm5
2404         movdqa  %xmm14,%xmm7
2405
2406         movdqa  %xmm14,%xmm2
2407
2408         psrld   $6,%xmm7
2409         movdqa  %xmm14,%xmm1
2410         pslld   $7,%xmm2
2411         movdqa  %xmm5,224-128(%rax)
2412         paddd   %xmm9,%xmm5
2413
2414         psrld   $11,%xmm1
2415         pxor    %xmm2,%xmm7
2416         pslld   $21-7,%xmm2
2417         paddd   64(%rbp),%xmm5
2418         pxor    %xmm1,%xmm7
2419
2420         psrld   $25-11,%xmm1
2421         movdqa  %xmm14,%xmm0
2422
2423         pxor    %xmm2,%xmm7
2424         movdqa  %xmm14,%xmm3
2425         pslld   $26-21,%xmm2
2426         pandn   %xmm8,%xmm0
2427         pand    %xmm15,%xmm3
2428         pxor    %xmm1,%xmm7
2429
2430
2431         movdqa  %xmm10,%xmm1
2432         pxor    %xmm2,%xmm7
2433         movdqa  %xmm10,%xmm2
2434         psrld   $2,%xmm1
2435         paddd   %xmm7,%xmm5
2436         pxor    %xmm3,%xmm0
2437         movdqa  %xmm11,%xmm3
2438         movdqa  %xmm10,%xmm7
2439         pslld   $10,%xmm2
2440         pxor    %xmm10,%xmm3
2441
2442
2443         psrld   $13,%xmm7
2444         pxor    %xmm2,%xmm1
2445         paddd   %xmm0,%xmm5
2446         pslld   $19-10,%xmm2
2447         pand    %xmm3,%xmm4
2448         pxor    %xmm7,%xmm1
2449
2450
2451         psrld   $22-13,%xmm7
2452         pxor    %xmm2,%xmm1
2453         movdqa  %xmm11,%xmm9
2454         pslld   $30-19,%xmm2
2455         pxor    %xmm1,%xmm7
2456         pxor    %xmm4,%xmm9
2457         paddd   %xmm5,%xmm13
2458         pxor    %xmm2,%xmm7
2459
2460         paddd   %xmm5,%xmm9
2461         paddd   %xmm7,%xmm9
2462         movdqa  0-128(%rax),%xmm5
2463         paddd   128-128(%rax),%xmm6
2464
2465         movdqa  %xmm5,%xmm7
2466         movdqa  %xmm5,%xmm1
2467         psrld   $3,%xmm7
2468         movdqa  %xmm5,%xmm2
2469
2470         psrld   $7,%xmm1
2471         movdqa  208-128(%rax),%xmm0
2472         pslld   $14,%xmm2
2473         pxor    %xmm1,%xmm7
2474         psrld   $18-7,%xmm1
2475         movdqa  %xmm0,%xmm4
2476         pxor    %xmm2,%xmm7
2477         pslld   $25-14,%xmm2
2478         pxor    %xmm1,%xmm7
2479         psrld   $10,%xmm0
2480         movdqa  %xmm4,%xmm1
2481
2482         psrld   $17,%xmm4
2483         pxor    %xmm2,%xmm7
2484         pslld   $13,%xmm1
2485         paddd   %xmm7,%xmm6
2486         pxor    %xmm4,%xmm0
2487         psrld   $19-17,%xmm4
2488         pxor    %xmm1,%xmm0
2489         pslld   $15-13,%xmm1
2490         pxor    %xmm4,%xmm0
2491         pxor    %xmm1,%xmm0
2492         paddd   %xmm0,%xmm6
2493         movdqa  %xmm13,%xmm7
2494
2495         movdqa  %xmm13,%xmm2
2496
2497         psrld   $6,%xmm7
2498         movdqa  %xmm13,%xmm1
2499         pslld   $7,%xmm2
2500         movdqa  %xmm6,240-128(%rax)
2501         paddd   %xmm8,%xmm6
2502
2503         psrld   $11,%xmm1
2504         pxor    %xmm2,%xmm7
2505         pslld   $21-7,%xmm2
2506         paddd   96(%rbp),%xmm6
2507         pxor    %xmm1,%xmm7
2508
2509         psrld   $25-11,%xmm1
2510         movdqa  %xmm13,%xmm0
2511
2512         pxor    %xmm2,%xmm7
2513         movdqa  %xmm13,%xmm4
2514         pslld   $26-21,%xmm2
2515         pandn   %xmm15,%xmm0
2516         pand    %xmm14,%xmm4
2517         pxor    %xmm1,%xmm7
2518
2519
2520         movdqa  %xmm9,%xmm1
2521         pxor    %xmm2,%xmm7
2522         movdqa  %xmm9,%xmm2
2523         psrld   $2,%xmm1
2524         paddd   %xmm7,%xmm6
2525         pxor    %xmm4,%xmm0
2526         movdqa  %xmm10,%xmm4
2527         movdqa  %xmm9,%xmm7
2528         pslld   $10,%xmm2
2529         pxor    %xmm9,%xmm4
2530
2531
2532         psrld   $13,%xmm7
2533         pxor    %xmm2,%xmm1
2534         paddd   %xmm0,%xmm6
2535         pslld   $19-10,%xmm2
2536         pand    %xmm4,%xmm3
2537         pxor    %xmm7,%xmm1
2538
2539
2540         psrld   $22-13,%xmm7
2541         pxor    %xmm2,%xmm1
2542         movdqa  %xmm10,%xmm8
2543         pslld   $30-19,%xmm2
2544         pxor    %xmm1,%xmm7
2545         pxor    %xmm3,%xmm8
2546         paddd   %xmm6,%xmm12
2547         pxor    %xmm2,%xmm7
2548
2549         paddd   %xmm6,%xmm8
2550         paddd   %xmm7,%xmm8
2551         leaq    256(%rbp),%rbp
2552         decl    %ecx
2553         jnz     .Loop_16_xx
2554
2555         movl    $1,%ecx
2556         leaq    K256+128(%rip),%rbp
2557
2558         movdqa  (%rbx),%xmm7
2559         cmpl    0(%rbx),%ecx
2560         pxor    %xmm0,%xmm0
2561         cmovgeq %rbp,%r8
2562         cmpl    4(%rbx),%ecx
2563         movdqa  %xmm7,%xmm6
2564         cmovgeq %rbp,%r9
2565         cmpl    8(%rbx),%ecx
2566         pcmpgtd %xmm0,%xmm6
2567         cmovgeq %rbp,%r10
2568         cmpl    12(%rbx),%ecx
2569         paddd   %xmm6,%xmm7
2570         cmovgeq %rbp,%r11
2571
2572         movdqu  0-128(%rdi),%xmm0
2573         pand    %xmm6,%xmm8
2574         movdqu  32-128(%rdi),%xmm1
2575         pand    %xmm6,%xmm9
2576         movdqu  64-128(%rdi),%xmm2
2577         pand    %xmm6,%xmm10
2578         movdqu  96-128(%rdi),%xmm5
2579         pand    %xmm6,%xmm11
2580         paddd   %xmm0,%xmm8
2581         movdqu  128-128(%rdi),%xmm0
2582         pand    %xmm6,%xmm12
2583         paddd   %xmm1,%xmm9
2584         movdqu  160-128(%rdi),%xmm1
2585         pand    %xmm6,%xmm13
2586         paddd   %xmm2,%xmm10
2587         movdqu  192-128(%rdi),%xmm2
2588         pand    %xmm6,%xmm14
2589         paddd   %xmm5,%xmm11
2590         movdqu  224-128(%rdi),%xmm5
2591         pand    %xmm6,%xmm15
2592         paddd   %xmm0,%xmm12
2593         paddd   %xmm1,%xmm13
2594         movdqu  %xmm8,0-128(%rdi)
2595         paddd   %xmm2,%xmm14
2596         movdqu  %xmm9,32-128(%rdi)
2597         paddd   %xmm5,%xmm15
2598         movdqu  %xmm10,64-128(%rdi)
2599         movdqu  %xmm11,96-128(%rdi)
2600         movdqu  %xmm12,128-128(%rdi)
2601         movdqu  %xmm13,160-128(%rdi)
2602         movdqu  %xmm14,192-128(%rdi)
2603         movdqu  %xmm15,224-128(%rdi)
2604
2605         movdqa  %xmm7,(%rbx)
2606         movdqa  .Lpbswap(%rip),%xmm6
2607         decl    %edx
2608         jnz     .Loop
2609
2610         movl    280(%rsp),%edx
2611         leaq    16(%rdi),%rdi
2612         leaq    64(%rsi),%rsi
2613         decl    %edx
2614         jnz     .Loop_grande
2615
2616 .Ldone:
2617         movq    272(%rsp),%rax
2618         movq    -16(%rax),%rbp
2619         movq    -8(%rax),%rbx
2620         leaq    (%rax),%rsp
2621 .Lepilogue:
2622         .byte   0xf3,0xc3
2623 .size   sha256_multi_block,.-sha256_multi_block
2624 .type   sha256_multi_block_shaext,@function
2625 .align  32
2626 sha256_multi_block_shaext:
2627 _shaext_shortcut:
2628         movq    %rsp,%rax
2629         pushq   %rbx
2630         pushq   %rbp
2631         subq    $288,%rsp
2632         shll    $1,%edx
2633         andq    $-256,%rsp
2634         leaq    128(%rdi),%rdi
2635         movq    %rax,272(%rsp)
2636 .Lbody_shaext:
2637         leaq    256(%rsp),%rbx
2638         leaq    K256_shaext+128(%rip),%rbp
2639
2640 .Loop_grande_shaext:
2641         movl    %edx,280(%rsp)
2642         xorl    %edx,%edx
2643         movq    0(%rsi),%r8
2644         movl    8(%rsi),%ecx
2645         cmpl    %edx,%ecx
2646         cmovgl  %ecx,%edx
2647         testl   %ecx,%ecx
2648         movl    %ecx,0(%rbx)
2649         cmovleq %rsp,%r8
2650         movq    16(%rsi),%r9
2651         movl    24(%rsi),%ecx
2652         cmpl    %edx,%ecx
2653         cmovgl  %ecx,%edx
2654         testl   %ecx,%ecx
2655         movl    %ecx,4(%rbx)
2656         cmovleq %rsp,%r9
2657         testl   %edx,%edx
2658         jz      .Ldone_shaext
2659
2660         movq    0-128(%rdi),%xmm12
2661         movq    32-128(%rdi),%xmm4
2662         movq    64-128(%rdi),%xmm13
2663         movq    96-128(%rdi),%xmm5
2664         movq    128-128(%rdi),%xmm8
2665         movq    160-128(%rdi),%xmm9
2666         movq    192-128(%rdi),%xmm10
2667         movq    224-128(%rdi),%xmm11
2668
2669         punpckldq       %xmm4,%xmm12
2670         punpckldq       %xmm5,%xmm13
2671         punpckldq       %xmm9,%xmm8
2672         punpckldq       %xmm11,%xmm10
2673         movdqa  K256_shaext-16(%rip),%xmm3
2674
2675         movdqa  %xmm12,%xmm14
2676         movdqa  %xmm13,%xmm15
2677         punpcklqdq      %xmm8,%xmm12
2678         punpcklqdq      %xmm10,%xmm13
2679         punpckhqdq      %xmm8,%xmm14
2680         punpckhqdq      %xmm10,%xmm15
2681
2682         pshufd  $27,%xmm12,%xmm12
2683         pshufd  $27,%xmm13,%xmm13
2684         pshufd  $27,%xmm14,%xmm14
2685         pshufd  $27,%xmm15,%xmm15
2686         jmp     .Loop_shaext
2687
2688 .align  32
2689 .Loop_shaext:
2690         movdqu  0(%r8),%xmm4
2691         movdqu  0(%r9),%xmm8
2692         movdqu  16(%r8),%xmm5
2693         movdqu  16(%r9),%xmm9
2694         movdqu  32(%r8),%xmm6
2695 .byte   102,15,56,0,227
2696         movdqu  32(%r9),%xmm10
2697 .byte   102,68,15,56,0,195
2698         movdqu  48(%r8),%xmm7
2699         leaq    64(%r8),%r8
2700         movdqu  48(%r9),%xmm11
2701         leaq    64(%r9),%r9
2702
2703         movdqa  0-128(%rbp),%xmm0
2704 .byte   102,15,56,0,235
2705         paddd   %xmm4,%xmm0
2706         pxor    %xmm12,%xmm4
2707         movdqa  %xmm0,%xmm1
2708         movdqa  0-128(%rbp),%xmm2
2709 .byte   102,68,15,56,0,203
2710         paddd   %xmm8,%xmm2
2711         movdqa  %xmm13,80(%rsp)
2712 .byte   69,15,56,203,236
2713         pxor    %xmm14,%xmm8
2714         movdqa  %xmm2,%xmm0
2715         movdqa  %xmm15,112(%rsp)
2716 .byte   69,15,56,203,254
2717         pshufd  $0x0e,%xmm1,%xmm0
2718         pxor    %xmm12,%xmm4
2719         movdqa  %xmm12,64(%rsp)
2720 .byte   69,15,56,203,229
2721         pshufd  $0x0e,%xmm2,%xmm0
2722         pxor    %xmm14,%xmm8
2723         movdqa  %xmm14,96(%rsp)
2724         movdqa  16-128(%rbp),%xmm1
2725         paddd   %xmm5,%xmm1
2726 .byte   102,15,56,0,243
2727 .byte   69,15,56,203,247
2728
2729         movdqa  %xmm1,%xmm0
2730         movdqa  16-128(%rbp),%xmm2
2731         paddd   %xmm9,%xmm2
2732 .byte   69,15,56,203,236
2733         movdqa  %xmm2,%xmm0
2734         prefetcht0      127(%r8)
2735 .byte   102,15,56,0,251
2736 .byte   102,68,15,56,0,211
2737         prefetcht0      127(%r9)
2738 .byte   69,15,56,203,254
2739         pshufd  $0x0e,%xmm1,%xmm0
2740 .byte   102,68,15,56,0,219
2741 .byte   15,56,204,229
2742 .byte   69,15,56,203,229
2743         pshufd  $0x0e,%xmm2,%xmm0
2744         movdqa  32-128(%rbp),%xmm1
2745         paddd   %xmm6,%xmm1
2746 .byte   69,15,56,203,247
2747
2748         movdqa  %xmm1,%xmm0
2749         movdqa  32-128(%rbp),%xmm2
2750         paddd   %xmm10,%xmm2
2751 .byte   69,15,56,203,236
2752 .byte   69,15,56,204,193
2753         movdqa  %xmm2,%xmm0
2754         movdqa  %xmm7,%xmm3
2755 .byte   69,15,56,203,254
2756         pshufd  $0x0e,%xmm1,%xmm0
2757 .byte   102,15,58,15,222,4
2758         paddd   %xmm3,%xmm4
2759         movdqa  %xmm11,%xmm3
2760 .byte   102,65,15,58,15,218,4
2761 .byte   15,56,204,238
2762 .byte   69,15,56,203,229
2763         pshufd  $0x0e,%xmm2,%xmm0
2764         movdqa  48-128(%rbp),%xmm1
2765         paddd   %xmm7,%xmm1
2766 .byte   69,15,56,203,247
2767 .byte   69,15,56,204,202
2768
2769         movdqa  %xmm1,%xmm0
2770         movdqa  48-128(%rbp),%xmm2
2771         paddd   %xmm3,%xmm8
2772         paddd   %xmm11,%xmm2
2773 .byte   15,56,205,231
2774 .byte   69,15,56,203,236
2775         movdqa  %xmm2,%xmm0
2776         movdqa  %xmm4,%xmm3
2777 .byte   102,15,58,15,223,4
2778 .byte   69,15,56,203,254
2779 .byte   69,15,56,205,195
2780         pshufd  $0x0e,%xmm1,%xmm0
2781         paddd   %xmm3,%xmm5
2782         movdqa  %xmm8,%xmm3
2783 .byte   102,65,15,58,15,219,4
2784 .byte   15,56,204,247
2785 .byte   69,15,56,203,229
2786         pshufd  $0x0e,%xmm2,%xmm0
2787         movdqa  64-128(%rbp),%xmm1
2788         paddd   %xmm4,%xmm1
2789 .byte   69,15,56,203,247
2790 .byte   69,15,56,204,211
2791         movdqa  %xmm1,%xmm0
2792         movdqa  64-128(%rbp),%xmm2
2793         paddd   %xmm3,%xmm9
2794         paddd   %xmm8,%xmm2
2795 .byte   15,56,205,236
2796 .byte   69,15,56,203,236
2797         movdqa  %xmm2,%xmm0
2798         movdqa  %xmm5,%xmm3
2799 .byte   102,15,58,15,220,4
2800 .byte   69,15,56,203,254
2801 .byte   69,15,56,205,200
2802         pshufd  $0x0e,%xmm1,%xmm0
2803         paddd   %xmm3,%xmm6
2804         movdqa  %xmm9,%xmm3
2805 .byte   102,65,15,58,15,216,4
2806 .byte   15,56,204,252
2807 .byte   69,15,56,203,229
2808         pshufd  $0x0e,%xmm2,%xmm0
2809         movdqa  80-128(%rbp),%xmm1
2810         paddd   %xmm5,%xmm1
2811 .byte   69,15,56,203,247
2812 .byte   69,15,56,204,216
2813         movdqa  %xmm1,%xmm0
2814         movdqa  80-128(%rbp),%xmm2
2815         paddd   %xmm3,%xmm10
2816         paddd   %xmm9,%xmm2
2817 .byte   15,56,205,245
2818 .byte   69,15,56,203,236
2819         movdqa  %xmm2,%xmm0
2820         movdqa  %xmm6,%xmm3
2821 .byte   102,15,58,15,221,4
2822 .byte   69,15,56,203,254
2823 .byte   69,15,56,205,209
2824         pshufd  $0x0e,%xmm1,%xmm0
2825         paddd   %xmm3,%xmm7
2826         movdqa  %xmm10,%xmm3
2827 .byte   102,65,15,58,15,217,4
2828 .byte   15,56,204,229
2829 .byte   69,15,56,203,229
2830         pshufd  $0x0e,%xmm2,%xmm0
2831         movdqa  96-128(%rbp),%xmm1
2832         paddd   %xmm6,%xmm1
2833 .byte   69,15,56,203,247
2834 .byte   69,15,56,204,193
2835         movdqa  %xmm1,%xmm0
2836         movdqa  96-128(%rbp),%xmm2
2837         paddd   %xmm3,%xmm11
2838         paddd   %xmm10,%xmm2
2839 .byte   15,56,205,254
2840 .byte   69,15,56,203,236
2841         movdqa  %xmm2,%xmm0
2842         movdqa  %xmm7,%xmm3
2843 .byte   102,15,58,15,222,4
2844 .byte   69,15,56,203,254
2845 .byte   69,15,56,205,218
2846         pshufd  $0x0e,%xmm1,%xmm0
2847         paddd   %xmm3,%xmm4
2848         movdqa  %xmm11,%xmm3
2849 .byte   102,65,15,58,15,218,4
2850 .byte   15,56,204,238
2851 .byte   69,15,56,203,229
2852         pshufd  $0x0e,%xmm2,%xmm0
2853         movdqa  112-128(%rbp),%xmm1
2854         paddd   %xmm7,%xmm1
2855 .byte   69,15,56,203,247
2856 .byte   69,15,56,204,202
2857         movdqa  %xmm1,%xmm0
2858         movdqa  112-128(%rbp),%xmm2
2859         paddd   %xmm3,%xmm8
2860         paddd   %xmm11,%xmm2
2861 .byte   15,56,205,231
2862 .byte   69,15,56,203,236
2863         movdqa  %xmm2,%xmm0
2864         movdqa  %xmm4,%xmm3
2865 .byte   102,15,58,15,223,4
2866 .byte   69,15,56,203,254
2867 .byte   69,15,56,205,195
2868         pshufd  $0x0e,%xmm1,%xmm0
2869         paddd   %xmm3,%xmm5
2870         movdqa  %xmm8,%xmm3
2871 .byte   102,65,15,58,15,219,4
2872 .byte   15,56,204,247
2873 .byte   69,15,56,203,229
2874         pshufd  $0x0e,%xmm2,%xmm0
2875         movdqa  128-128(%rbp),%xmm1
2876         paddd   %xmm4,%xmm1
2877 .byte   69,15,56,203,247
2878 .byte   69,15,56,204,211
2879         movdqa  %xmm1,%xmm0
2880         movdqa  128-128(%rbp),%xmm2
2881         paddd   %xmm3,%xmm9
2882         paddd   %xmm8,%xmm2
2883 .byte   15,56,205,236
2884 .byte   69,15,56,203,236
2885         movdqa  %xmm2,%xmm0
2886         movdqa  %xmm5,%xmm3
2887 .byte   102,15,58,15,220,4
2888 .byte   69,15,56,203,254
2889 .byte   69,15,56,205,200
2890         pshufd  $0x0e,%xmm1,%xmm0
2891         paddd   %xmm3,%xmm6
2892         movdqa  %xmm9,%xmm3
2893 .byte   102,65,15,58,15,216,4
2894 .byte   15,56,204,252
2895 .byte   69,15,56,203,229
2896         pshufd  $0x0e,%xmm2,%xmm0
2897         movdqa  144-128(%rbp),%xmm1
2898         paddd   %xmm5,%xmm1
2899 .byte   69,15,56,203,247
2900 .byte   69,15,56,204,216
2901         movdqa  %xmm1,%xmm0
2902         movdqa  144-128(%rbp),%xmm2
2903         paddd   %xmm3,%xmm10
2904         paddd   %xmm9,%xmm2
2905 .byte   15,56,205,245
2906 .byte   69,15,56,203,236
2907         movdqa  %xmm2,%xmm0
2908         movdqa  %xmm6,%xmm3
2909 .byte   102,15,58,15,221,4
2910 .byte   69,15,56,203,254
2911 .byte   69,15,56,205,209
2912         pshufd  $0x0e,%xmm1,%xmm0
2913         paddd   %xmm3,%xmm7
2914         movdqa  %xmm10,%xmm3
2915 .byte   102,65,15,58,15,217,4
2916 .byte   15,56,204,229
2917 .byte   69,15,56,203,229
2918         pshufd  $0x0e,%xmm2,%xmm0
2919         movdqa  160-128(%rbp),%xmm1
2920         paddd   %xmm6,%xmm1
2921 .byte   69,15,56,203,247
2922 .byte   69,15,56,204,193
2923         movdqa  %xmm1,%xmm0
2924         movdqa  160-128(%rbp),%xmm2
2925         paddd   %xmm3,%xmm11
2926         paddd   %xmm10,%xmm2
2927 .byte   15,56,205,254
2928 .byte   69,15,56,203,236
2929         movdqa  %xmm2,%xmm0
2930         movdqa  %xmm7,%xmm3
2931 .byte   102,15,58,15,222,4
2932 .byte   69,15,56,203,254
2933 .byte   69,15,56,205,218
2934         pshufd  $0x0e,%xmm1,%xmm0
2935         paddd   %xmm3,%xmm4
2936         movdqa  %xmm11,%xmm3
2937 .byte   102,65,15,58,15,218,4
2938 .byte   15,56,204,238
2939 .byte   69,15,56,203,229
2940         pshufd  $0x0e,%xmm2,%xmm0
2941         movdqa  176-128(%rbp),%xmm1
2942         paddd   %xmm7,%xmm1
2943 .byte   69,15,56,203,247
2944 .byte   69,15,56,204,202
2945         movdqa  %xmm1,%xmm0
2946         movdqa  176-128(%rbp),%xmm2
2947         paddd   %xmm3,%xmm8
2948         paddd   %xmm11,%xmm2
2949 .byte   15,56,205,231
2950 .byte   69,15,56,203,236
2951         movdqa  %xmm2,%xmm0
2952         movdqa  %xmm4,%xmm3
2953 .byte   102,15,58,15,223,4
2954 .byte   69,15,56,203,254
2955 .byte   69,15,56,205,195
2956         pshufd  $0x0e,%xmm1,%xmm0
2957         paddd   %xmm3,%xmm5
2958         movdqa  %xmm8,%xmm3
2959 .byte   102,65,15,58,15,219,4
2960 .byte   15,56,204,247
2961 .byte   69,15,56,203,229
2962         pshufd  $0x0e,%xmm2,%xmm0
2963         movdqa  192-128(%rbp),%xmm1
2964         paddd   %xmm4,%xmm1
2965 .byte   69,15,56,203,247
2966 .byte   69,15,56,204,211
2967         movdqa  %xmm1,%xmm0
2968         movdqa  192-128(%rbp),%xmm2
2969         paddd   %xmm3,%xmm9
2970         paddd   %xmm8,%xmm2
2971 .byte   15,56,205,236
2972 .byte   69,15,56,203,236
2973         movdqa  %xmm2,%xmm0
2974         movdqa  %xmm5,%xmm3
2975 .byte   102,15,58,15,220,4
2976 .byte   69,15,56,203,254
2977 .byte   69,15,56,205,200
2978         pshufd  $0x0e,%xmm1,%xmm0
2979         paddd   %xmm3,%xmm6
2980         movdqa  %xmm9,%xmm3
2981 .byte   102,65,15,58,15,216,4
2982 .byte   15,56,204,252
2983 .byte   69,15,56,203,229
2984         pshufd  $0x0e,%xmm2,%xmm0
2985         movdqa  208-128(%rbp),%xmm1
2986         paddd   %xmm5,%xmm1
2987 .byte   69,15,56,203,247
2988 .byte   69,15,56,204,216
2989         movdqa  %xmm1,%xmm0
2990         movdqa  208-128(%rbp),%xmm2
2991         paddd   %xmm3,%xmm10
2992         paddd   %xmm9,%xmm2
2993 .byte   15,56,205,245
2994 .byte   69,15,56,203,236
2995         movdqa  %xmm2,%xmm0
2996         movdqa  %xmm6,%xmm3
2997 .byte   102,15,58,15,221,4
2998 .byte   69,15,56,203,254
2999 .byte   69,15,56,205,209
3000         pshufd  $0x0e,%xmm1,%xmm0
3001         paddd   %xmm3,%xmm7
3002         movdqa  %xmm10,%xmm3
3003 .byte   102,65,15,58,15,217,4
3004         nop
3005 .byte   69,15,56,203,229
3006         pshufd  $0x0e,%xmm2,%xmm0
3007         movdqa  224-128(%rbp),%xmm1
3008         paddd   %xmm6,%xmm1
3009 .byte   69,15,56,203,247
3010
3011         movdqa  %xmm1,%xmm0
3012         movdqa  224-128(%rbp),%xmm2
3013         paddd   %xmm3,%xmm11
3014         paddd   %xmm10,%xmm2
3015 .byte   15,56,205,254
3016         nop
3017 .byte   69,15,56,203,236
3018         movdqa  %xmm2,%xmm0
3019         movl    $1,%ecx
3020         pxor    %xmm6,%xmm6
3021 .byte   69,15,56,203,254
3022 .byte   69,15,56,205,218
3023         pshufd  $0x0e,%xmm1,%xmm0
3024         movdqa  240-128(%rbp),%xmm1
3025         paddd   %xmm7,%xmm1
3026         movq    (%rbx),%xmm7
3027         nop
3028 .byte   69,15,56,203,229
3029         pshufd  $0x0e,%xmm2,%xmm0
3030         movdqa  240-128(%rbp),%xmm2
3031         paddd   %xmm11,%xmm2
3032 .byte   69,15,56,203,247
3033
3034         movdqa  %xmm1,%xmm0
3035         cmpl    0(%rbx),%ecx
3036         cmovgeq %rsp,%r8
3037         cmpl    4(%rbx),%ecx
3038         cmovgeq %rsp,%r9
3039         pshufd  $0x00,%xmm7,%xmm9
3040 .byte   69,15,56,203,236
3041         movdqa  %xmm2,%xmm0
3042         pshufd  $0x55,%xmm7,%xmm10
3043         movdqa  %xmm7,%xmm11
3044 .byte   69,15,56,203,254
3045         pshufd  $0x0e,%xmm1,%xmm0
3046         pcmpgtd %xmm6,%xmm9
3047         pcmpgtd %xmm6,%xmm10
3048 .byte   69,15,56,203,229
3049         pshufd  $0x0e,%xmm2,%xmm0
3050         pcmpgtd %xmm6,%xmm11
3051         movdqa  K256_shaext-16(%rip),%xmm3
3052 .byte   69,15,56,203,247
3053
3054         pand    %xmm9,%xmm13
3055         pand    %xmm10,%xmm15
3056         pand    %xmm9,%xmm12
3057         pand    %xmm10,%xmm14
3058         paddd   %xmm7,%xmm11
3059
3060         paddd   80(%rsp),%xmm13
3061         paddd   112(%rsp),%xmm15
3062         paddd   64(%rsp),%xmm12
3063         paddd   96(%rsp),%xmm14
3064
3065         movq    %xmm11,(%rbx)
3066         decl    %edx
3067         jnz     .Loop_shaext
3068
3069         movl    280(%rsp),%edx
3070
3071         pshufd  $27,%xmm12,%xmm12
3072         pshufd  $27,%xmm13,%xmm13
3073         pshufd  $27,%xmm14,%xmm14
3074         pshufd  $27,%xmm15,%xmm15
3075
3076         movdqa  %xmm12,%xmm5
3077         movdqa  %xmm13,%xmm6
3078         punpckldq       %xmm14,%xmm12
3079         punpckhdq       %xmm14,%xmm5
3080         punpckldq       %xmm15,%xmm13
3081         punpckhdq       %xmm15,%xmm6
3082
3083         movq    %xmm12,0-128(%rdi)
3084         psrldq  $8,%xmm12
3085         movq    %xmm5,128-128(%rdi)
3086         psrldq  $8,%xmm5
3087         movq    %xmm12,32-128(%rdi)
3088         movq    %xmm5,160-128(%rdi)
3089
3090         movq    %xmm13,64-128(%rdi)
3091         psrldq  $8,%xmm13
3092         movq    %xmm6,192-128(%rdi)
3093         psrldq  $8,%xmm6
3094         movq    %xmm13,96-128(%rdi)
3095         movq    %xmm6,224-128(%rdi)
3096
3097         leaq    8(%rdi),%rdi
3098         leaq    32(%rsi),%rsi
3099         decl    %edx
3100         jnz     .Loop_grande_shaext
3101
3102 .Ldone_shaext:
3103
3104         movq    -16(%rax),%rbp
3105         movq    -8(%rax),%rbx
3106         leaq    (%rax),%rsp
3107 .Lepilogue_shaext:
3108         .byte   0xf3,0xc3
3109 .size   sha256_multi_block_shaext,.-sha256_multi_block_shaext
3110 .type   sha256_multi_block_avx,@function
3111 .align  32
3112 sha256_multi_block_avx:
3113 _avx_shortcut:
3114         shrq    $32,%rcx
3115         cmpl    $2,%edx
3116         jb      .Lavx
3117         testl   $32,%ecx
3118         jnz     _avx2_shortcut
3119         jmp     .Lavx
3120 .align  32
3121 .Lavx:
3122         movq    %rsp,%rax
3123         pushq   %rbx
3124         pushq   %rbp
3125         subq    $288,%rsp
3126         andq    $-256,%rsp
3127         movq    %rax,272(%rsp)
3128 .Lbody_avx:
3129         leaq    K256+128(%rip),%rbp
3130         leaq    256(%rsp),%rbx
3131         leaq    128(%rdi),%rdi
3132
3133 .Loop_grande_avx:
3134         movl    %edx,280(%rsp)
3135         xorl    %edx,%edx
3136         movq    0(%rsi),%r8
3137         movl    8(%rsi),%ecx
3138         cmpl    %edx,%ecx
3139         cmovgl  %ecx,%edx
3140         testl   %ecx,%ecx
3141         movl    %ecx,0(%rbx)
3142         cmovleq %rbp,%r8
3143         movq    16(%rsi),%r9
3144         movl    24(%rsi),%ecx
3145         cmpl    %edx,%ecx
3146         cmovgl  %ecx,%edx
3147         testl   %ecx,%ecx
3148         movl    %ecx,4(%rbx)
3149         cmovleq %rbp,%r9
3150         movq    32(%rsi),%r10
3151         movl    40(%rsi),%ecx
3152         cmpl    %edx,%ecx
3153         cmovgl  %ecx,%edx
3154         testl   %ecx,%ecx
3155         movl    %ecx,8(%rbx)
3156         cmovleq %rbp,%r10
3157         movq    48(%rsi),%r11
3158         movl    56(%rsi),%ecx
3159         cmpl    %edx,%ecx
3160         cmovgl  %ecx,%edx
3161         testl   %ecx,%ecx
3162         movl    %ecx,12(%rbx)
3163         cmovleq %rbp,%r11
3164         testl   %edx,%edx
3165         jz      .Ldone_avx
3166
3167         vmovdqu 0-128(%rdi),%xmm8
3168         leaq    128(%rsp),%rax
3169         vmovdqu 32-128(%rdi),%xmm9
3170         vmovdqu 64-128(%rdi),%xmm10
3171         vmovdqu 96-128(%rdi),%xmm11
3172         vmovdqu 128-128(%rdi),%xmm12
3173         vmovdqu 160-128(%rdi),%xmm13
3174         vmovdqu 192-128(%rdi),%xmm14
3175         vmovdqu 224-128(%rdi),%xmm15
3176         vmovdqu .Lpbswap(%rip),%xmm6
3177         jmp     .Loop_avx
3178
3179 .align  32
3180 .Loop_avx:
3181         vpxor   %xmm9,%xmm10,%xmm4
3182         vmovd   0(%r8),%xmm5
3183         vmovd   0(%r9),%xmm0
3184         vpinsrd $1,0(%r10),%xmm5,%xmm5
3185         vpinsrd $1,0(%r11),%xmm0,%xmm0
3186         vpunpckldq      %xmm0,%xmm5,%xmm5
3187         vpshufb %xmm6,%xmm5,%xmm5
3188         vpsrld  $6,%xmm12,%xmm7
3189         vpslld  $26,%xmm12,%xmm2
3190         vmovdqu %xmm5,0-128(%rax)
3191         vpaddd  %xmm15,%xmm5,%xmm5
3192
3193         vpsrld  $11,%xmm12,%xmm1
3194         vpxor   %xmm2,%xmm7,%xmm7
3195         vpslld  $21,%xmm12,%xmm2
3196         vpaddd  -128(%rbp),%xmm5,%xmm5
3197         vpxor   %xmm1,%xmm7,%xmm7
3198
3199         vpsrld  $25,%xmm12,%xmm1
3200         vpxor   %xmm2,%xmm7,%xmm7
3201
3202         vpslld  $7,%xmm12,%xmm2
3203         vpandn  %xmm14,%xmm12,%xmm0
3204         vpand   %xmm13,%xmm12,%xmm3
3205
3206         vpxor   %xmm1,%xmm7,%xmm7
3207
3208         vpsrld  $2,%xmm8,%xmm15
3209         vpxor   %xmm2,%xmm7,%xmm7
3210
3211         vpslld  $30,%xmm8,%xmm1
3212         vpxor   %xmm3,%xmm0,%xmm0
3213         vpxor   %xmm8,%xmm9,%xmm3
3214
3215         vpxor   %xmm1,%xmm15,%xmm15
3216         vpaddd  %xmm7,%xmm5,%xmm5
3217
3218         vpsrld  $13,%xmm8,%xmm1
3219
3220         vpslld  $19,%xmm8,%xmm2
3221         vpaddd  %xmm0,%xmm5,%xmm5
3222         vpand   %xmm3,%xmm4,%xmm4
3223
3224         vpxor   %xmm1,%xmm15,%xmm7
3225
3226         vpsrld  $22,%xmm8,%xmm1
3227         vpxor   %xmm2,%xmm7,%xmm7
3228
3229         vpslld  $10,%xmm8,%xmm2
3230         vpxor   %xmm4,%xmm9,%xmm15
3231         vpaddd  %xmm5,%xmm11,%xmm11
3232
3233         vpxor   %xmm1,%xmm7,%xmm7
3234         vpxor   %xmm2,%xmm7,%xmm7
3235
3236         vpaddd  %xmm5,%xmm15,%xmm15
3237         vpaddd  %xmm7,%xmm15,%xmm15
3238         vmovd   4(%r8),%xmm5
3239         vmovd   4(%r9),%xmm0
3240         vpinsrd $1,4(%r10),%xmm5,%xmm5
3241         vpinsrd $1,4(%r11),%xmm0,%xmm0
3242         vpunpckldq      %xmm0,%xmm5,%xmm5
3243         vpshufb %xmm6,%xmm5,%xmm5
3244         vpsrld  $6,%xmm11,%xmm7
3245         vpslld  $26,%xmm11,%xmm2
3246         vmovdqu %xmm5,16-128(%rax)
3247         vpaddd  %xmm14,%xmm5,%xmm5
3248
3249         vpsrld  $11,%xmm11,%xmm1
3250         vpxor   %xmm2,%xmm7,%xmm7
3251         vpslld  $21,%xmm11,%xmm2
3252         vpaddd  -96(%rbp),%xmm5,%xmm5
3253         vpxor   %xmm1,%xmm7,%xmm7
3254
3255         vpsrld  $25,%xmm11,%xmm1
3256         vpxor   %xmm2,%xmm7,%xmm7
3257
3258         vpslld  $7,%xmm11,%xmm2
3259         vpandn  %xmm13,%xmm11,%xmm0
3260         vpand   %xmm12,%xmm11,%xmm4
3261
3262         vpxor   %xmm1,%xmm7,%xmm7
3263
3264         vpsrld  $2,%xmm15,%xmm14
3265         vpxor   %xmm2,%xmm7,%xmm7
3266
3267         vpslld  $30,%xmm15,%xmm1
3268         vpxor   %xmm4,%xmm0,%xmm0
3269         vpxor   %xmm15,%xmm8,%xmm4
3270
3271         vpxor   %xmm1,%xmm14,%xmm14
3272         vpaddd  %xmm7,%xmm5,%xmm5
3273
3274         vpsrld  $13,%xmm15,%xmm1
3275
3276         vpslld  $19,%xmm15,%xmm2
3277         vpaddd  %xmm0,%xmm5,%xmm5
3278         vpand   %xmm4,%xmm3,%xmm3
3279
3280         vpxor   %xmm1,%xmm14,%xmm7
3281
3282         vpsrld  $22,%xmm15,%xmm1
3283         vpxor   %xmm2,%xmm7,%xmm7
3284
3285         vpslld  $10,%xmm15,%xmm2
3286         vpxor   %xmm3,%xmm8,%xmm14
3287         vpaddd  %xmm5,%xmm10,%xmm10
3288
3289         vpxor   %xmm1,%xmm7,%xmm7
3290         vpxor   %xmm2,%xmm7,%xmm7
3291
3292         vpaddd  %xmm5,%xmm14,%xmm14
3293         vpaddd  %xmm7,%xmm14,%xmm14
3294         vmovd   8(%r8),%xmm5
3295         vmovd   8(%r9),%xmm0
3296         vpinsrd $1,8(%r10),%xmm5,%xmm5
3297         vpinsrd $1,8(%r11),%xmm0,%xmm0
3298         vpunpckldq      %xmm0,%xmm5,%xmm5
3299         vpshufb %xmm6,%xmm5,%xmm5
3300         vpsrld  $6,%xmm10,%xmm7
3301         vpslld  $26,%xmm10,%xmm2
3302         vmovdqu %xmm5,32-128(%rax)
3303         vpaddd  %xmm13,%xmm5,%xmm5
3304
3305         vpsrld  $11,%xmm10,%xmm1
3306         vpxor   %xmm2,%xmm7,%xmm7
3307         vpslld  $21,%xmm10,%xmm2
3308         vpaddd  -64(%rbp),%xmm5,%xmm5
3309         vpxor   %xmm1,%xmm7,%xmm7
3310
3311         vpsrld  $25,%xmm10,%xmm1
3312         vpxor   %xmm2,%xmm7,%xmm7
3313
3314         vpslld  $7,%xmm10,%xmm2
3315         vpandn  %xmm12,%xmm10,%xmm0
3316         vpand   %xmm11,%xmm10,%xmm3
3317
3318         vpxor   %xmm1,%xmm7,%xmm7
3319
3320         vpsrld  $2,%xmm14,%xmm13
3321         vpxor   %xmm2,%xmm7,%xmm7
3322
3323         vpslld  $30,%xmm14,%xmm1
3324         vpxor   %xmm3,%xmm0,%xmm0
3325         vpxor   %xmm14,%xmm15,%xmm3
3326
3327         vpxor   %xmm1,%xmm13,%xmm13
3328         vpaddd  %xmm7,%xmm5,%xmm5
3329
3330         vpsrld  $13,%xmm14,%xmm1
3331
3332         vpslld  $19,%xmm14,%xmm2
3333         vpaddd  %xmm0,%xmm5,%xmm5
3334         vpand   %xmm3,%xmm4,%xmm4
3335
3336         vpxor   %xmm1,%xmm13,%xmm7
3337
3338         vpsrld  $22,%xmm14,%xmm1
3339         vpxor   %xmm2,%xmm7,%xmm7
3340
3341         vpslld  $10,%xmm14,%xmm2
3342         vpxor   %xmm4,%xmm15,%xmm13
3343         vpaddd  %xmm5,%xmm9,%xmm9
3344
3345         vpxor   %xmm1,%xmm7,%xmm7
3346         vpxor   %xmm2,%xmm7,%xmm7
3347
3348         vpaddd  %xmm5,%xmm13,%xmm13
3349         vpaddd  %xmm7,%xmm13,%xmm13
3350         vmovd   12(%r8),%xmm5
3351         vmovd   12(%r9),%xmm0
3352         vpinsrd $1,12(%r10),%xmm5,%xmm5
3353         vpinsrd $1,12(%r11),%xmm0,%xmm0
3354         vpunpckldq      %xmm0,%xmm5,%xmm5
3355         vpshufb %xmm6,%xmm5,%xmm5
3356         vpsrld  $6,%xmm9,%xmm7
3357         vpslld  $26,%xmm9,%xmm2
3358         vmovdqu %xmm5,48-128(%rax)
3359         vpaddd  %xmm12,%xmm5,%xmm5
3360
3361         vpsrld  $11,%xmm9,%xmm1
3362         vpxor   %xmm2,%xmm7,%xmm7
3363         vpslld  $21,%xmm9,%xmm2
3364         vpaddd  -32(%rbp),%xmm5,%xmm5
3365         vpxor   %xmm1,%xmm7,%xmm7
3366
3367         vpsrld  $25,%xmm9,%xmm1
3368         vpxor   %xmm2,%xmm7,%xmm7
3369
3370         vpslld  $7,%xmm9,%xmm2
3371         vpandn  %xmm11,%xmm9,%xmm0
3372         vpand   %xmm10,%xmm9,%xmm4
3373
3374         vpxor   %xmm1,%xmm7,%xmm7
3375
3376         vpsrld  $2,%xmm13,%xmm12
3377         vpxor   %xmm2,%xmm7,%xmm7
3378
3379         vpslld  $30,%xmm13,%xmm1
3380         vpxor   %xmm4,%xmm0,%xmm0
3381         vpxor   %xmm13,%xmm14,%xmm4
3382
3383         vpxor   %xmm1,%xmm12,%xmm12
3384         vpaddd  %xmm7,%xmm5,%xmm5
3385
3386         vpsrld  $13,%xmm13,%xmm1
3387
3388         vpslld  $19,%xmm13,%xmm2
3389         vpaddd  %xmm0,%xmm5,%xmm5
3390         vpand   %xmm4,%xmm3,%xmm3
3391
3392         vpxor   %xmm1,%xmm12,%xmm7
3393
3394         vpsrld  $22,%xmm13,%xmm1
3395         vpxor   %xmm2,%xmm7,%xmm7
3396
3397         vpslld  $10,%xmm13,%xmm2
3398         vpxor   %xmm3,%xmm14,%xmm12
3399         vpaddd  %xmm5,%xmm8,%xmm8
3400
3401         vpxor   %xmm1,%xmm7,%xmm7
3402         vpxor   %xmm2,%xmm7,%xmm7
3403
3404         vpaddd  %xmm5,%xmm12,%xmm12
3405         vpaddd  %xmm7,%xmm12,%xmm12
3406         vmovd   16(%r8),%xmm5
3407         vmovd   16(%r9),%xmm0
3408         vpinsrd $1,16(%r10),%xmm5,%xmm5
3409         vpinsrd $1,16(%r11),%xmm0,%xmm0
3410         vpunpckldq      %xmm0,%xmm5,%xmm5
3411         vpshufb %xmm6,%xmm5,%xmm5
3412         vpsrld  $6,%xmm8,%xmm7
3413         vpslld  $26,%xmm8,%xmm2
3414         vmovdqu %xmm5,64-128(%rax)
3415         vpaddd  %xmm11,%xmm5,%xmm5
3416
3417         vpsrld  $11,%xmm8,%xmm1
3418         vpxor   %xmm2,%xmm7,%xmm7
3419         vpslld  $21,%xmm8,%xmm2
3420         vpaddd  0(%rbp),%xmm5,%xmm5
3421         vpxor   %xmm1,%xmm7,%xmm7
3422
3423         vpsrld  $25,%xmm8,%xmm1
3424         vpxor   %xmm2,%xmm7,%xmm7
3425
3426         vpslld  $7,%xmm8,%xmm2
3427         vpandn  %xmm10,%xmm8,%xmm0
3428         vpand   %xmm9,%xmm8,%xmm3
3429
3430         vpxor   %xmm1,%xmm7,%xmm7
3431
3432         vpsrld  $2,%xmm12,%xmm11
3433         vpxor   %xmm2,%xmm7,%xmm7
3434
3435         vpslld  $30,%xmm12,%xmm1
3436         vpxor   %xmm3,%xmm0,%xmm0
3437         vpxor   %xmm12,%xmm13,%xmm3
3438
3439         vpxor   %xmm1,%xmm11,%xmm11
3440         vpaddd  %xmm7,%xmm5,%xmm5
3441
3442         vpsrld  $13,%xmm12,%xmm1
3443
3444         vpslld  $19,%xmm12,%xmm2
3445         vpaddd  %xmm0,%xmm5,%xmm5
3446         vpand   %xmm3,%xmm4,%xmm4
3447
3448         vpxor   %xmm1,%xmm11,%xmm7
3449
3450         vpsrld  $22,%xmm12,%xmm1
3451         vpxor   %xmm2,%xmm7,%xmm7
3452
3453         vpslld  $10,%xmm12,%xmm2
3454         vpxor   %xmm4,%xmm13,%xmm11
3455         vpaddd  %xmm5,%xmm15,%xmm15
3456
3457         vpxor   %xmm1,%xmm7,%xmm7
3458         vpxor   %xmm2,%xmm7,%xmm7
3459
3460         vpaddd  %xmm5,%xmm11,%xmm11
3461         vpaddd  %xmm7,%xmm11,%xmm11
3462         vmovd   20(%r8),%xmm5
3463         vmovd   20(%r9),%xmm0
3464         vpinsrd $1,20(%r10),%xmm5,%xmm5
3465         vpinsrd $1,20(%r11),%xmm0,%xmm0
3466         vpunpckldq      %xmm0,%xmm5,%xmm5
3467         vpshufb %xmm6,%xmm5,%xmm5
3468         vpsrld  $6,%xmm15,%xmm7
3469         vpslld  $26,%xmm15,%xmm2
3470         vmovdqu %xmm5,80-128(%rax)
3471         vpaddd  %xmm10,%xmm5,%xmm5
3472
3473         vpsrld  $11,%xmm15,%xmm1
3474         vpxor   %xmm2,%xmm7,%xmm7
3475         vpslld  $21,%xmm15,%xmm2
3476         vpaddd  32(%rbp),%xmm5,%xmm5
3477         vpxor   %xmm1,%xmm7,%xmm7
3478
3479         vpsrld  $25,%xmm15,%xmm1
3480         vpxor   %xmm2,%xmm7,%xmm7
3481
3482         vpslld  $7,%xmm15,%xmm2
3483         vpandn  %xmm9,%xmm15,%xmm0
3484         vpand   %xmm8,%xmm15,%xmm4
3485
3486         vpxor   %xmm1,%xmm7,%xmm7
3487
3488         vpsrld  $2,%xmm11,%xmm10
3489         vpxor   %xmm2,%xmm7,%xmm7
3490
3491         vpslld  $30,%xmm11,%xmm1
3492         vpxor   %xmm4,%xmm0,%xmm0
3493         vpxor   %xmm11,%xmm12,%xmm4
3494
3495         vpxor   %xmm1,%xmm10,%xmm10
3496         vpaddd  %xmm7,%xmm5,%xmm5
3497
3498         vpsrld  $13,%xmm11,%xmm1
3499
3500         vpslld  $19,%xmm11,%xmm2
3501         vpaddd  %xmm0,%xmm5,%xmm5
3502         vpand   %xmm4,%xmm3,%xmm3
3503
3504         vpxor   %xmm1,%xmm10,%xmm7
3505
3506         vpsrld  $22,%xmm11,%xmm1
3507         vpxor   %xmm2,%xmm7,%xmm7
3508
3509         vpslld  $10,%xmm11,%xmm2
3510         vpxor   %xmm3,%xmm12,%xmm10
3511         vpaddd  %xmm5,%xmm14,%xmm14
3512
3513         vpxor   %xmm1,%xmm7,%xmm7
3514         vpxor   %xmm2,%xmm7,%xmm7
3515
3516         vpaddd  %xmm5,%xmm10,%xmm10
3517         vpaddd  %xmm7,%xmm10,%xmm10
3518         vmovd   24(%r8),%xmm5
3519         vmovd   24(%r9),%xmm0
3520         vpinsrd $1,24(%r10),%xmm5,%xmm5
3521         vpinsrd $1,24(%r11),%xmm0,%xmm0
3522         vpunpckldq      %xmm0,%xmm5,%xmm5
3523         vpshufb %xmm6,%xmm5,%xmm5
3524         vpsrld  $6,%xmm14,%xmm7
3525         vpslld  $26,%xmm14,%xmm2
3526         vmovdqu %xmm5,96-128(%rax)
3527         vpaddd  %xmm9,%xmm5,%xmm5
3528
3529         vpsrld  $11,%xmm14,%xmm1
3530         vpxor   %xmm2,%xmm7,%xmm7
3531         vpslld  $21,%xmm14,%xmm2
3532         vpaddd  64(%rbp),%xmm5,%xmm5
3533         vpxor   %xmm1,%xmm7,%xmm7
3534
3535         vpsrld  $25,%xmm14,%xmm1
3536         vpxor   %xmm2,%xmm7,%xmm7
3537
3538         vpslld  $7,%xmm14,%xmm2
3539         vpandn  %xmm8,%xmm14,%xmm0
3540         vpand   %xmm15,%xmm14,%xmm3
3541
3542         vpxor   %xmm1,%xmm7,%xmm7
3543
3544         vpsrld  $2,%xmm10,%xmm9
3545         vpxor   %xmm2,%xmm7,%xmm7
3546
3547         vpslld  $30,%xmm10,%xmm1
3548         vpxor   %xmm3,%xmm0,%xmm0
3549         vpxor   %xmm10,%xmm11,%xmm3
3550
3551         vpxor   %xmm1,%xmm9,%xmm9
3552         vpaddd  %xmm7,%xmm5,%xmm5
3553
3554         vpsrld  $13,%xmm10,%xmm1
3555
3556         vpslld  $19,%xmm10,%xmm2
3557         vpaddd  %xmm0,%xmm5,%xmm5
3558         vpand   %xmm3,%xmm4,%xmm4
3559
3560         vpxor   %xmm1,%xmm9,%xmm7
3561
3562         vpsrld  $22,%xmm10,%xmm1
3563         vpxor   %xmm2,%xmm7,%xmm7
3564
3565         vpslld  $10,%xmm10,%xmm2
3566         vpxor   %xmm4,%xmm11,%xmm9
3567         vpaddd  %xmm5,%xmm13,%xmm13
3568
3569         vpxor   %xmm1,%xmm7,%xmm7
3570         vpxor   %xmm2,%xmm7,%xmm7
3571
3572         vpaddd  %xmm5,%xmm9,%xmm9
3573         vpaddd  %xmm7,%xmm9,%xmm9
3574         vmovd   28(%r8),%xmm5
3575         vmovd   28(%r9),%xmm0
3576         vpinsrd $1,28(%r10),%xmm5,%xmm5
3577         vpinsrd $1,28(%r11),%xmm0,%xmm0
3578         vpunpckldq      %xmm0,%xmm5,%xmm5
3579         vpshufb %xmm6,%xmm5,%xmm5
3580         vpsrld  $6,%xmm13,%xmm7
3581         vpslld  $26,%xmm13,%xmm2
3582         vmovdqu %xmm5,112-128(%rax)
3583         vpaddd  %xmm8,%xmm5,%xmm5
3584
3585         vpsrld  $11,%xmm13,%xmm1
3586         vpxor   %xmm2,%xmm7,%xmm7
3587         vpslld  $21,%xmm13,%xmm2
3588         vpaddd  96(%rbp),%xmm5,%xmm5
3589         vpxor   %xmm1,%xmm7,%xmm7
3590
3591         vpsrld  $25,%xmm13,%xmm1
3592         vpxor   %xmm2,%xmm7,%xmm7
3593
3594         vpslld  $7,%xmm13,%xmm2
3595         vpandn  %xmm15,%xmm13,%xmm0
3596         vpand   %xmm14,%xmm13,%xmm4
3597
3598         vpxor   %xmm1,%xmm7,%xmm7
3599
3600         vpsrld  $2,%xmm9,%xmm8
3601         vpxor   %xmm2,%xmm7,%xmm7
3602
3603         vpslld  $30,%xmm9,%xmm1
3604         vpxor   %xmm4,%xmm0,%xmm0
3605         vpxor   %xmm9,%xmm10,%xmm4
3606
3607         vpxor   %xmm1,%xmm8,%xmm8
3608         vpaddd  %xmm7,%xmm5,%xmm5
3609
3610         vpsrld  $13,%xmm9,%xmm1
3611
3612         vpslld  $19,%xmm9,%xmm2
3613         vpaddd  %xmm0,%xmm5,%xmm5
3614         vpand   %xmm4,%xmm3,%xmm3
3615
3616         vpxor   %xmm1,%xmm8,%xmm7
3617
3618         vpsrld  $22,%xmm9,%xmm1
3619         vpxor   %xmm2,%xmm7,%xmm7
3620
3621         vpslld  $10,%xmm9,%xmm2
3622         vpxor   %xmm3,%xmm10,%xmm8
3623         vpaddd  %xmm5,%xmm12,%xmm12
3624
3625         vpxor   %xmm1,%xmm7,%xmm7
3626         vpxor   %xmm2,%xmm7,%xmm7
3627
3628         vpaddd  %xmm5,%xmm8,%xmm8
3629         vpaddd  %xmm7,%xmm8,%xmm8
3630         addq    $256,%rbp
3631         vmovd   32(%r8),%xmm5
3632         vmovd   32(%r9),%xmm0
3633         vpinsrd $1,32(%r10),%xmm5,%xmm5
3634         vpinsrd $1,32(%r11),%xmm0,%xmm0
3635         vpunpckldq      %xmm0,%xmm5,%xmm5
3636         vpshufb %xmm6,%xmm5,%xmm5
3637         vpsrld  $6,%xmm12,%xmm7
3638         vpslld  $26,%xmm12,%xmm2
3639         vmovdqu %xmm5,128-128(%rax)
3640         vpaddd  %xmm15,%xmm5,%xmm5
3641
3642         vpsrld  $11,%xmm12,%xmm1
3643         vpxor   %xmm2,%xmm7,%xmm7
3644         vpslld  $21,%xmm12,%xmm2
3645         vpaddd  -128(%rbp),%xmm5,%xmm5
3646         vpxor   %xmm1,%xmm7,%xmm7
3647
3648         vpsrld  $25,%xmm12,%xmm1
3649         vpxor   %xmm2,%xmm7,%xmm7
3650
3651         vpslld  $7,%xmm12,%xmm2
3652         vpandn  %xmm14,%xmm12,%xmm0
3653         vpand   %xmm13,%xmm12,%xmm3
3654
3655         vpxor   %xmm1,%xmm7,%xmm7
3656
3657         vpsrld  $2,%xmm8,%xmm15
3658         vpxor   %xmm2,%xmm7,%xmm7
3659
3660         vpslld  $30,%xmm8,%xmm1
3661         vpxor   %xmm3,%xmm0,%xmm0
3662         vpxor   %xmm8,%xmm9,%xmm3
3663
3664         vpxor   %xmm1,%xmm15,%xmm15
3665         vpaddd  %xmm7,%xmm5,%xmm5
3666
3667         vpsrld  $13,%xmm8,%xmm1
3668
3669         vpslld  $19,%xmm8,%xmm2
3670         vpaddd  %xmm0,%xmm5,%xmm5
3671         vpand   %xmm3,%xmm4,%xmm4
3672
3673         vpxor   %xmm1,%xmm15,%xmm7
3674
3675         vpsrld  $22,%xmm8,%xmm1
3676         vpxor   %xmm2,%xmm7,%xmm7
3677
3678         vpslld  $10,%xmm8,%xmm2
3679         vpxor   %xmm4,%xmm9,%xmm15
3680         vpaddd  %xmm5,%xmm11,%xmm11
3681
3682         vpxor   %xmm1,%xmm7,%xmm7
3683         vpxor   %xmm2,%xmm7,%xmm7
3684
3685         vpaddd  %xmm5,%xmm15,%xmm15
3686         vpaddd  %xmm7,%xmm15,%xmm15
3687         vmovd   36(%r8),%xmm5
3688         vmovd   36(%r9),%xmm0
3689         vpinsrd $1,36(%r10),%xmm5,%xmm5
3690         vpinsrd $1,36(%r11),%xmm0,%xmm0
3691         vpunpckldq      %xmm0,%xmm5,%xmm5
3692         vpshufb %xmm6,%xmm5,%xmm5
3693         vpsrld  $6,%xmm11,%xmm7
3694         vpslld  $26,%xmm11,%xmm2
3695         vmovdqu %xmm5,144-128(%rax)
3696         vpaddd  %xmm14,%xmm5,%xmm5
3697
3698         vpsrld  $11,%xmm11,%xmm1
3699         vpxor   %xmm2,%xmm7,%xmm7
3700         vpslld  $21,%xmm11,%xmm2
3701         vpaddd  -96(%rbp),%xmm5,%xmm5
3702         vpxor   %xmm1,%xmm7,%xmm7
3703
3704         vpsrld  $25,%xmm11,%xmm1
3705         vpxor   %xmm2,%xmm7,%xmm7
3706
3707         vpslld  $7,%xmm11,%xmm2
3708         vpandn  %xmm13,%xmm11,%xmm0
3709         vpand   %xmm12,%xmm11,%xmm4
3710
3711         vpxor   %xmm1,%xmm7,%xmm7
3712
3713         vpsrld  $2,%xmm15,%xmm14
3714         vpxor   %xmm2,%xmm7,%xmm7
3715
3716         vpslld  $30,%xmm15,%xmm1
3717         vpxor   %xmm4,%xmm0,%xmm0
3718         vpxor   %xmm15,%xmm8,%xmm4
3719
3720         vpxor   %xmm1,%xmm14,%xmm14
3721         vpaddd  %xmm7,%xmm5,%xmm5
3722
3723         vpsrld  $13,%xmm15,%xmm1
3724
3725         vpslld  $19,%xmm15,%xmm2
3726         vpaddd  %xmm0,%xmm5,%xmm5
3727         vpand   %xmm4,%xmm3,%xmm3
3728
3729         vpxor   %xmm1,%xmm14,%xmm7
3730
3731         vpsrld  $22,%xmm15,%xmm1
3732         vpxor   %xmm2,%xmm7,%xmm7
3733
3734         vpslld  $10,%xmm15,%xmm2
3735         vpxor   %xmm3,%xmm8,%xmm14
3736         vpaddd  %xmm5,%xmm10,%xmm10
3737
3738         vpxor   %xmm1,%xmm7,%xmm7
3739         vpxor   %xmm2,%xmm7,%xmm7
3740
3741         vpaddd  %xmm5,%xmm14,%xmm14
3742         vpaddd  %xmm7,%xmm14,%xmm14
3743         vmovd   40(%r8),%xmm5
3744         vmovd   40(%r9),%xmm0
3745         vpinsrd $1,40(%r10),%xmm5,%xmm5
3746         vpinsrd $1,40(%r11),%xmm0,%xmm0
3747         vpunpckldq      %xmm0,%xmm5,%xmm5
3748         vpshufb %xmm6,%xmm5,%xmm5
3749         vpsrld  $6,%xmm10,%xmm7
3750         vpslld  $26,%xmm10,%xmm2
3751         vmovdqu %xmm5,160-128(%rax)
3752         vpaddd  %xmm13,%xmm5,%xmm5
3753
3754         vpsrld  $11,%xmm10,%xmm1
3755         vpxor   %xmm2,%xmm7,%xmm7
3756         vpslld  $21,%xmm10,%xmm2
3757         vpaddd  -64(%rbp),%xmm5,%xmm5
3758         vpxor   %xmm1,%xmm7,%xmm7
3759
3760         vpsrld  $25,%xmm10,%xmm1
3761         vpxor   %xmm2,%xmm7,%xmm7
3762
3763         vpslld  $7,%xmm10,%xmm2
3764         vpandn  %xmm12,%xmm10,%xmm0
3765         vpand   %xmm11,%xmm10,%xmm3
3766
3767         vpxor   %xmm1,%xmm7,%xmm7
3768
3769         vpsrld  $2,%xmm14,%xmm13
3770         vpxor   %xmm2,%xmm7,%xmm7
3771
3772         vpslld  $30,%xmm14,%xmm1
3773         vpxor   %xmm3,%xmm0,%xmm0
3774         vpxor   %xmm14,%xmm15,%xmm3
3775
3776         vpxor   %xmm1,%xmm13,%xmm13
3777         vpaddd  %xmm7,%xmm5,%xmm5
3778
3779         vpsrld  $13,%xmm14,%xmm1
3780
3781         vpslld  $19,%xmm14,%xmm2
3782         vpaddd  %xmm0,%xmm5,%xmm5
3783         vpand   %xmm3,%xmm4,%xmm4
3784
3785         vpxor   %xmm1,%xmm13,%xmm7
3786
3787         vpsrld  $22,%xmm14,%xmm1
3788         vpxor   %xmm2,%xmm7,%xmm7
3789
3790         vpslld  $10,%xmm14,%xmm2
3791         vpxor   %xmm4,%xmm15,%xmm13
3792         vpaddd  %xmm5,%xmm9,%xmm9
3793
3794         vpxor   %xmm1,%xmm7,%xmm7
3795         vpxor   %xmm2,%xmm7,%xmm7
3796
3797         vpaddd  %xmm5,%xmm13,%xmm13
3798         vpaddd  %xmm7,%xmm13,%xmm13
3799         vmovd   44(%r8),%xmm5
3800         vmovd   44(%r9),%xmm0
3801         vpinsrd $1,44(%r10),%xmm5,%xmm5
3802         vpinsrd $1,44(%r11),%xmm0,%xmm0
3803         vpunpckldq      %xmm0,%xmm5,%xmm5
3804         vpshufb %xmm6,%xmm5,%xmm5
3805         vpsrld  $6,%xmm9,%xmm7
3806         vpslld  $26,%xmm9,%xmm2
3807         vmovdqu %xmm5,176-128(%rax)
3808         vpaddd  %xmm12,%xmm5,%xmm5
3809
3810         vpsrld  $11,%xmm9,%xmm1
3811         vpxor   %xmm2,%xmm7,%xmm7
3812         vpslld  $21,%xmm9,%xmm2
3813         vpaddd  -32(%rbp),%xmm5,%xmm5
3814         vpxor   %xmm1,%xmm7,%xmm7
3815
3816         vpsrld  $25,%xmm9,%xmm1
3817         vpxor   %xmm2,%xmm7,%xmm7
3818
3819         vpslld  $7,%xmm9,%xmm2
3820         vpandn  %xmm11,%xmm9,%xmm0
3821         vpand   %xmm10,%xmm9,%xmm4
3822
3823         vpxor   %xmm1,%xmm7,%xmm7
3824
3825         vpsrld  $2,%xmm13,%xmm12
3826         vpxor   %xmm2,%xmm7,%xmm7
3827
3828         vpslld  $30,%xmm13,%xmm1
3829         vpxor   %xmm4,%xmm0,%xmm0
3830         vpxor   %xmm13,%xmm14,%xmm4
3831
3832         vpxor   %xmm1,%xmm12,%xmm12
3833         vpaddd  %xmm7,%xmm5,%xmm5
3834
3835         vpsrld  $13,%xmm13,%xmm1
3836
3837         vpslld  $19,%xmm13,%xmm2
3838         vpaddd  %xmm0,%xmm5,%xmm5
3839         vpand   %xmm4,%xmm3,%xmm3
3840
3841         vpxor   %xmm1,%xmm12,%xmm7
3842
3843         vpsrld  $22,%xmm13,%xmm1
3844         vpxor   %xmm2,%xmm7,%xmm7
3845
3846         vpslld  $10,%xmm13,%xmm2
3847         vpxor   %xmm3,%xmm14,%xmm12
3848         vpaddd  %xmm5,%xmm8,%xmm8
3849
3850         vpxor   %xmm1,%xmm7,%xmm7
3851         vpxor   %xmm2,%xmm7,%xmm7
3852
3853         vpaddd  %xmm5,%xmm12,%xmm12
3854         vpaddd  %xmm7,%xmm12,%xmm12
3855         vmovd   48(%r8),%xmm5
3856         vmovd   48(%r9),%xmm0
3857         vpinsrd $1,48(%r10),%xmm5,%xmm5
3858         vpinsrd $1,48(%r11),%xmm0,%xmm0
3859         vpunpckldq      %xmm0,%xmm5,%xmm5
3860         vpshufb %xmm6,%xmm5,%xmm5
3861         vpsrld  $6,%xmm8,%xmm7
3862         vpslld  $26,%xmm8,%xmm2
3863         vmovdqu %xmm5,192-128(%rax)
3864         vpaddd  %xmm11,%xmm5,%xmm5
3865
3866         vpsrld  $11,%xmm8,%xmm1
3867         vpxor   %xmm2,%xmm7,%xmm7
3868         vpslld  $21,%xmm8,%xmm2
3869         vpaddd  0(%rbp),%xmm5,%xmm5
3870         vpxor   %xmm1,%xmm7,%xmm7
3871
3872         vpsrld  $25,%xmm8,%xmm1
3873         vpxor   %xmm2,%xmm7,%xmm7
3874
3875         vpslld  $7,%xmm8,%xmm2
3876         vpandn  %xmm10,%xmm8,%xmm0
3877         vpand   %xmm9,%xmm8,%xmm3
3878
3879         vpxor   %xmm1,%xmm7,%xmm7
3880
3881         vpsrld  $2,%xmm12,%xmm11
3882         vpxor   %xmm2,%xmm7,%xmm7
3883
3884         vpslld  $30,%xmm12,%xmm1
3885         vpxor   %xmm3,%xmm0,%xmm0
3886         vpxor   %xmm12,%xmm13,%xmm3
3887
3888         vpxor   %xmm1,%xmm11,%xmm11
3889         vpaddd  %xmm7,%xmm5,%xmm5
3890
3891         vpsrld  $13,%xmm12,%xmm1
3892
3893         vpslld  $19,%xmm12,%xmm2
3894         vpaddd  %xmm0,%xmm5,%xmm5
3895         vpand   %xmm3,%xmm4,%xmm4
3896
3897         vpxor   %xmm1,%xmm11,%xmm7
3898
3899         vpsrld  $22,%xmm12,%xmm1
3900         vpxor   %xmm2,%xmm7,%xmm7
3901
3902         vpslld  $10,%xmm12,%xmm2
3903         vpxor   %xmm4,%xmm13,%xmm11
3904         vpaddd  %xmm5,%xmm15,%xmm15
3905
3906         vpxor   %xmm1,%xmm7,%xmm7
3907         vpxor   %xmm2,%xmm7,%xmm7
3908
3909         vpaddd  %xmm5,%xmm11,%xmm11
3910         vpaddd  %xmm7,%xmm11,%xmm11
3911         vmovd   52(%r8),%xmm5
3912         vmovd   52(%r9),%xmm0
3913         vpinsrd $1,52(%r10),%xmm5,%xmm5
3914         vpinsrd $1,52(%r11),%xmm0,%xmm0
3915         vpunpckldq      %xmm0,%xmm5,%xmm5
3916         vpshufb %xmm6,%xmm5,%xmm5
3917         vpsrld  $6,%xmm15,%xmm7
3918         vpslld  $26,%xmm15,%xmm2
3919         vmovdqu %xmm5,208-128(%rax)
3920         vpaddd  %xmm10,%xmm5,%xmm5
3921
3922         vpsrld  $11,%xmm15,%xmm1
3923         vpxor   %xmm2,%xmm7,%xmm7
3924         vpslld  $21,%xmm15,%xmm2
3925         vpaddd  32(%rbp),%xmm5,%xmm5
3926         vpxor   %xmm1,%xmm7,%xmm7
3927
3928         vpsrld  $25,%xmm15,%xmm1
3929         vpxor   %xmm2,%xmm7,%xmm7
3930
3931         vpslld  $7,%xmm15,%xmm2
3932         vpandn  %xmm9,%xmm15,%xmm0
3933         vpand   %xmm8,%xmm15,%xmm4
3934
3935         vpxor   %xmm1,%xmm7,%xmm7
3936
3937         vpsrld  $2,%xmm11,%xmm10
3938         vpxor   %xmm2,%xmm7,%xmm7
3939
3940         vpslld  $30,%xmm11,%xmm1
3941         vpxor   %xmm4,%xmm0,%xmm0
3942         vpxor   %xmm11,%xmm12,%xmm4
3943
3944         vpxor   %xmm1,%xmm10,%xmm10
3945         vpaddd  %xmm7,%xmm5,%xmm5
3946
3947         vpsrld  $13,%xmm11,%xmm1
3948
3949         vpslld  $19,%xmm11,%xmm2
3950         vpaddd  %xmm0,%xmm5,%xmm5
3951         vpand   %xmm4,%xmm3,%xmm3
3952
3953         vpxor   %xmm1,%xmm10,%xmm7
3954
3955         vpsrld  $22,%xmm11,%xmm1
3956         vpxor   %xmm2,%xmm7,%xmm7
3957
3958         vpslld  $10,%xmm11,%xmm2
3959         vpxor   %xmm3,%xmm12,%xmm10
3960         vpaddd  %xmm5,%xmm14,%xmm14
3961
3962         vpxor   %xmm1,%xmm7,%xmm7
3963         vpxor   %xmm2,%xmm7,%xmm7
3964
3965         vpaddd  %xmm5,%xmm10,%xmm10
3966         vpaddd  %xmm7,%xmm10,%xmm10
3967         vmovd   56(%r8),%xmm5
3968         vmovd   56(%r9),%xmm0
3969         vpinsrd $1,56(%r10),%xmm5,%xmm5
3970         vpinsrd $1,56(%r11),%xmm0,%xmm0
3971         vpunpckldq      %xmm0,%xmm5,%xmm5
3972         vpshufb %xmm6,%xmm5,%xmm5
3973         vpsrld  $6,%xmm14,%xmm7
3974         vpslld  $26,%xmm14,%xmm2
3975         vmovdqu %xmm5,224-128(%rax)
3976         vpaddd  %xmm9,%xmm5,%xmm5
3977
3978         vpsrld  $11,%xmm14,%xmm1
3979         vpxor   %xmm2,%xmm7,%xmm7
3980         vpslld  $21,%xmm14,%xmm2
3981         vpaddd  64(%rbp),%xmm5,%xmm5
3982         vpxor   %xmm1,%xmm7,%xmm7
3983
3984         vpsrld  $25,%xmm14,%xmm1
3985         vpxor   %xmm2,%xmm7,%xmm7
3986
3987         vpslld  $7,%xmm14,%xmm2
3988         vpandn  %xmm8,%xmm14,%xmm0
3989         vpand   %xmm15,%xmm14,%xmm3
3990
3991         vpxor   %xmm1,%xmm7,%xmm7
3992
3993         vpsrld  $2,%xmm10,%xmm9
3994         vpxor   %xmm2,%xmm7,%xmm7
3995
3996         vpslld  $30,%xmm10,%xmm1
3997         vpxor   %xmm3,%xmm0,%xmm0
3998         vpxor   %xmm10,%xmm11,%xmm3
3999
4000         vpxor   %xmm1,%xmm9,%xmm9
4001         vpaddd  %xmm7,%xmm5,%xmm5
4002
4003         vpsrld  $13,%xmm10,%xmm1
4004
4005         vpslld  $19,%xmm10,%xmm2
4006         vpaddd  %xmm0,%xmm5,%xmm5
4007         vpand   %xmm3,%xmm4,%xmm4
4008
4009         vpxor   %xmm1,%xmm9,%xmm7
4010
4011         vpsrld  $22,%xmm10,%xmm1
4012         vpxor   %xmm2,%xmm7,%xmm7
4013
4014         vpslld  $10,%xmm10,%xmm2
4015         vpxor   %xmm4,%xmm11,%xmm9
4016         vpaddd  %xmm5,%xmm13,%xmm13
4017
4018         vpxor   %xmm1,%xmm7,%xmm7
4019         vpxor   %xmm2,%xmm7,%xmm7
4020
4021         vpaddd  %xmm5,%xmm9,%xmm9
4022         vpaddd  %xmm7,%xmm9,%xmm9
4023         vmovd   60(%r8),%xmm5
4024         leaq    64(%r8),%r8
4025         vmovd   60(%r9),%xmm0
4026         leaq    64(%r9),%r9
4027         vpinsrd $1,60(%r10),%xmm5,%xmm5
4028         leaq    64(%r10),%r10
4029         vpinsrd $1,60(%r11),%xmm0,%xmm0
4030         leaq    64(%r11),%r11
4031         vpunpckldq      %xmm0,%xmm5,%xmm5
4032         vpshufb %xmm6,%xmm5,%xmm5
4033         vpsrld  $6,%xmm13,%xmm7
4034         vpslld  $26,%xmm13,%xmm2
4035         vmovdqu %xmm5,240-128(%rax)
4036         vpaddd  %xmm8,%xmm5,%xmm5
4037
4038         vpsrld  $11,%xmm13,%xmm1
4039         vpxor   %xmm2,%xmm7,%xmm7
4040         vpslld  $21,%xmm13,%xmm2
4041         vpaddd  96(%rbp),%xmm5,%xmm5
4042         vpxor   %xmm1,%xmm7,%xmm7
4043
4044         vpsrld  $25,%xmm13,%xmm1
4045         vpxor   %xmm2,%xmm7,%xmm7
4046         prefetcht0      63(%r8)
4047         vpslld  $7,%xmm13,%xmm2
4048         vpandn  %xmm15,%xmm13,%xmm0
4049         vpand   %xmm14,%xmm13,%xmm4
4050         prefetcht0      63(%r9)
4051         vpxor   %xmm1,%xmm7,%xmm7
4052
4053         vpsrld  $2,%xmm9,%xmm8
4054         vpxor   %xmm2,%xmm7,%xmm7
4055         prefetcht0      63(%r10)
4056         vpslld  $30,%xmm9,%xmm1
4057         vpxor   %xmm4,%xmm0,%xmm0
4058         vpxor   %xmm9,%xmm10,%xmm4
4059         prefetcht0      63(%r11)
4060         vpxor   %xmm1,%xmm8,%xmm8
4061         vpaddd  %xmm7,%xmm5,%xmm5
4062
4063         vpsrld  $13,%xmm9,%xmm1
4064
4065         vpslld  $19,%xmm9,%xmm2
4066         vpaddd  %xmm0,%xmm5,%xmm5
4067         vpand   %xmm4,%xmm3,%xmm3
4068
4069         vpxor   %xmm1,%xmm8,%xmm7
4070
4071         vpsrld  $22,%xmm9,%xmm1
4072         vpxor   %xmm2,%xmm7,%xmm7
4073
4074         vpslld  $10,%xmm9,%xmm2
4075         vpxor   %xmm3,%xmm10,%xmm8
4076         vpaddd  %xmm5,%xmm12,%xmm12
4077
4078         vpxor   %xmm1,%xmm7,%xmm7
4079         vpxor   %xmm2,%xmm7,%xmm7
4080
4081         vpaddd  %xmm5,%xmm8,%xmm8
4082         vpaddd  %xmm7,%xmm8,%xmm8
4083         addq    $256,%rbp
4084         vmovdqu 0-128(%rax),%xmm5
4085         movl    $3,%ecx
4086         jmp     .Loop_16_xx_avx
4087 .align  32
4088 .Loop_16_xx_avx:
4089         vmovdqu 16-128(%rax),%xmm6
4090         vpaddd  144-128(%rax),%xmm5,%xmm5
4091
4092         vpsrld  $3,%xmm6,%xmm7
4093         vpsrld  $7,%xmm6,%xmm1
4094         vpslld  $25,%xmm6,%xmm2
4095         vpxor   %xmm1,%xmm7,%xmm7
4096         vpsrld  $18,%xmm6,%xmm1
4097         vpxor   %xmm2,%xmm7,%xmm7
4098         vpslld  $14,%xmm6,%xmm2
4099         vmovdqu 224-128(%rax),%xmm0
4100         vpsrld  $10,%xmm0,%xmm3
4101
4102         vpxor   %xmm1,%xmm7,%xmm7
4103         vpsrld  $17,%xmm0,%xmm1
4104         vpxor   %xmm2,%xmm7,%xmm7
4105         vpslld  $15,%xmm0,%xmm2
4106         vpaddd  %xmm7,%xmm5,%xmm5
4107         vpxor   %xmm1,%xmm3,%xmm7
4108         vpsrld  $19,%xmm0,%xmm1
4109         vpxor   %xmm2,%xmm7,%xmm7
4110         vpslld  $13,%xmm0,%xmm2
4111         vpxor   %xmm1,%xmm7,%xmm7
4112         vpxor   %xmm2,%xmm7,%xmm7
4113         vpaddd  %xmm7,%xmm5,%xmm5
4114         vpsrld  $6,%xmm12,%xmm7
4115         vpslld  $26,%xmm12,%xmm2
4116         vmovdqu %xmm5,0-128(%rax)
4117         vpaddd  %xmm15,%xmm5,%xmm5
4118
4119         vpsrld  $11,%xmm12,%xmm1
4120         vpxor   %xmm2,%xmm7,%xmm7
4121         vpslld  $21,%xmm12,%xmm2
4122         vpaddd  -128(%rbp),%xmm5,%xmm5
4123         vpxor   %xmm1,%xmm7,%xmm7
4124
4125         vpsrld  $25,%xmm12,%xmm1
4126         vpxor   %xmm2,%xmm7,%xmm7
4127
4128         vpslld  $7,%xmm12,%xmm2
4129         vpandn  %xmm14,%xmm12,%xmm0
4130         vpand   %xmm13,%xmm12,%xmm3
4131
4132         vpxor   %xmm1,%xmm7,%xmm7
4133
4134         vpsrld  $2,%xmm8,%xmm15
4135         vpxor   %xmm2,%xmm7,%xmm7
4136
4137         vpslld  $30,%xmm8,%xmm1
4138         vpxor   %xmm3,%xmm0,%xmm0
4139         vpxor   %xmm8,%xmm9,%xmm3
4140
4141         vpxor   %xmm1,%xmm15,%xmm15
4142         vpaddd  %xmm7,%xmm5,%xmm5
4143
4144         vpsrld  $13,%xmm8,%xmm1
4145
4146         vpslld  $19,%xmm8,%xmm2
4147         vpaddd  %xmm0,%xmm5,%xmm5
4148         vpand   %xmm3,%xmm4,%xmm4
4149
4150         vpxor   %xmm1,%xmm15,%xmm7
4151
4152         vpsrld  $22,%xmm8,%xmm1
4153         vpxor   %xmm2,%xmm7,%xmm7
4154
4155         vpslld  $10,%xmm8,%xmm2
4156         vpxor   %xmm4,%xmm9,%xmm15
4157         vpaddd  %xmm5,%xmm11,%xmm11
4158
4159         vpxor   %xmm1,%xmm7,%xmm7
4160         vpxor   %xmm2,%xmm7,%xmm7
4161
4162         vpaddd  %xmm5,%xmm15,%xmm15
4163         vpaddd  %xmm7,%xmm15,%xmm15
4164         vmovdqu 32-128(%rax),%xmm5
4165         vpaddd  160-128(%rax),%xmm6,%xmm6
4166
4167         vpsrld  $3,%xmm5,%xmm7
4168         vpsrld  $7,%xmm5,%xmm1
4169         vpslld  $25,%xmm5,%xmm2
4170         vpxor   %xmm1,%xmm7,%xmm7
4171         vpsrld  $18,%xmm5,%xmm1
4172         vpxor   %xmm2,%xmm7,%xmm7
4173         vpslld  $14,%xmm5,%xmm2
4174         vmovdqu 240-128(%rax),%xmm0
4175         vpsrld  $10,%xmm0,%xmm4
4176
4177         vpxor   %xmm1,%xmm7,%xmm7
4178         vpsrld  $17,%xmm0,%xmm1
4179         vpxor   %xmm2,%xmm7,%xmm7
4180         vpslld  $15,%xmm0,%xmm2
4181         vpaddd  %xmm7,%xmm6,%xmm6
4182         vpxor   %xmm1,%xmm4,%xmm7
4183         vpsrld  $19,%xmm0,%xmm1
4184         vpxor   %xmm2,%xmm7,%xmm7
4185         vpslld  $13,%xmm0,%xmm2
4186         vpxor   %xmm1,%xmm7,%xmm7
4187         vpxor   %xmm2,%xmm7,%xmm7
4188         vpaddd  %xmm7,%xmm6,%xmm6
4189         vpsrld  $6,%xmm11,%xmm7
4190         vpslld  $26,%xmm11,%xmm2
4191         vmovdqu %xmm6,16-128(%rax)
4192         vpaddd  %xmm14,%xmm6,%xmm6
4193
4194         vpsrld  $11,%xmm11,%xmm1
4195         vpxor   %xmm2,%xmm7,%xmm7
4196         vpslld  $21,%xmm11,%xmm2
4197         vpaddd  -96(%rbp),%xmm6,%xmm6
4198         vpxor   %xmm1,%xmm7,%xmm7
4199
4200         vpsrld  $25,%xmm11,%xmm1
4201         vpxor   %xmm2,%xmm7,%xmm7
4202
4203         vpslld  $7,%xmm11,%xmm2
4204         vpandn  %xmm13,%xmm11,%xmm0
4205         vpand   %xmm12,%xmm11,%xmm4
4206
4207         vpxor   %xmm1,%xmm7,%xmm7
4208
4209         vpsrld  $2,%xmm15,%xmm14
4210         vpxor   %xmm2,%xmm7,%xmm7
4211
4212         vpslld  $30,%xmm15,%xmm1
4213         vpxor   %xmm4,%xmm0,%xmm0
4214         vpxor   %xmm15,%xmm8,%xmm4
4215
4216         vpxor   %xmm1,%xmm14,%xmm14
4217         vpaddd  %xmm7,%xmm6,%xmm6
4218
4219         vpsrld  $13,%xmm15,%xmm1
4220
4221         vpslld  $19,%xmm15,%xmm2
4222         vpaddd  %xmm0,%xmm6,%xmm6
4223         vpand   %xmm4,%xmm3,%xmm3
4224
4225         vpxor   %xmm1,%xmm14,%xmm7
4226
4227         vpsrld  $22,%xmm15,%xmm1
4228         vpxor   %xmm2,%xmm7,%xmm7
4229
4230         vpslld  $10,%xmm15,%xmm2
4231         vpxor   %xmm3,%xmm8,%xmm14
4232         vpaddd  %xmm6,%xmm10,%xmm10
4233
4234         vpxor   %xmm1,%xmm7,%xmm7
4235         vpxor   %xmm2,%xmm7,%xmm7
4236
4237         vpaddd  %xmm6,%xmm14,%xmm14
4238         vpaddd  %xmm7,%xmm14,%xmm14
4239         vmovdqu 48-128(%rax),%xmm6
4240         vpaddd  176-128(%rax),%xmm5,%xmm5
4241
4242         vpsrld  $3,%xmm6,%xmm7
4243         vpsrld  $7,%xmm6,%xmm1
4244         vpslld  $25,%xmm6,%xmm2
4245         vpxor   %xmm1,%xmm7,%xmm7
4246         vpsrld  $18,%xmm6,%xmm1
4247         vpxor   %xmm2,%xmm7,%xmm7
4248         vpslld  $14,%xmm6,%xmm2
4249         vmovdqu 0-128(%rax),%xmm0
4250         vpsrld  $10,%xmm0,%xmm3
4251
4252         vpxor   %xmm1,%xmm7,%xmm7
4253         vpsrld  $17,%xmm0,%xmm1
4254         vpxor   %xmm2,%xmm7,%xmm7
4255         vpslld  $15,%xmm0,%xmm2
4256         vpaddd  %xmm7,%xmm5,%xmm5
4257         vpxor   %xmm1,%xmm3,%xmm7
4258         vpsrld  $19,%xmm0,%xmm1
4259         vpxor   %xmm2,%xmm7,%xmm7
4260         vpslld  $13,%xmm0,%xmm2
4261         vpxor   %xmm1,%xmm7,%xmm7
4262         vpxor   %xmm2,%xmm7,%xmm7
4263         vpaddd  %xmm7,%xmm5,%xmm5
4264         vpsrld  $6,%xmm10,%xmm7
4265         vpslld  $26,%xmm10,%xmm2
4266         vmovdqu %xmm5,32-128(%rax)
4267         vpaddd  %xmm13,%xmm5,%xmm5
4268
4269         vpsrld  $11,%xmm10,%xmm1
4270         vpxor   %xmm2,%xmm7,%xmm7
4271         vpslld  $21,%xmm10,%xmm2
4272         vpaddd  -64(%rbp),%xmm5,%xmm5
4273         vpxor   %xmm1,%xmm7,%xmm7
4274
4275         vpsrld  $25,%xmm10,%xmm1
4276         vpxor   %xmm2,%xmm7,%xmm7
4277
4278         vpslld  $7,%xmm10,%xmm2
4279         vpandn  %xmm12,%xmm10,%xmm0
4280         vpand   %xmm11,%xmm10,%xmm3
4281
4282         vpxor   %xmm1,%xmm7,%xmm7
4283
4284         vpsrld  $2,%xmm14,%xmm13
4285         vpxor   %xmm2,%xmm7,%xmm7
4286
4287         vpslld  $30,%xmm14,%xmm1
4288         vpxor   %xmm3,%xmm0,%xmm0
4289         vpxor   %xmm14,%xmm15,%xmm3
4290
4291         vpxor   %xmm1,%xmm13,%xmm13
4292         vpaddd  %xmm7,%xmm5,%xmm5
4293
4294         vpsrld  $13,%xmm14,%xmm1
4295
4296         vpslld  $19,%xmm14,%xmm2
4297         vpaddd  %xmm0,%xmm5,%xmm5
4298         vpand   %xmm3,%xmm4,%xmm4
4299
4300         vpxor   %xmm1,%xmm13,%xmm7
4301
4302         vpsrld  $22,%xmm14,%xmm1
4303         vpxor   %xmm2,%xmm7,%xmm7
4304
4305         vpslld  $10,%xmm14,%xmm2
4306         vpxor   %xmm4,%xmm15,%xmm13
4307         vpaddd  %xmm5,%xmm9,%xmm9
4308
4309         vpxor   %xmm1,%xmm7,%xmm7
4310         vpxor   %xmm2,%xmm7,%xmm7
4311
4312         vpaddd  %xmm5,%xmm13,%xmm13
4313         vpaddd  %xmm7,%xmm13,%xmm13
4314         vmovdqu 64-128(%rax),%xmm5
4315         vpaddd  192-128(%rax),%xmm6,%xmm6
4316
4317         vpsrld  $3,%xmm5,%xmm7
4318         vpsrld  $7,%xmm5,%xmm1
4319         vpslld  $25,%xmm5,%xmm2
4320         vpxor   %xmm1,%xmm7,%xmm7
4321         vpsrld  $18,%xmm5,%xmm1
4322         vpxor   %xmm2,%xmm7,%xmm7
4323         vpslld  $14,%xmm5,%xmm2
4324         vmovdqu 16-128(%rax),%xmm0
4325         vpsrld  $10,%xmm0,%xmm4
4326
4327         vpxor   %xmm1,%xmm7,%xmm7
4328         vpsrld  $17,%xmm0,%xmm1
4329         vpxor   %xmm2,%xmm7,%xmm7
4330         vpslld  $15,%xmm0,%xmm2
4331         vpaddd  %xmm7,%xmm6,%xmm6
4332         vpxor   %xmm1,%xmm4,%xmm7
4333         vpsrld  $19,%xmm0,%xmm1
4334         vpxor   %xmm2,%xmm7,%xmm7
4335         vpslld  $13,%xmm0,%xmm2
4336         vpxor   %xmm1,%xmm7,%xmm7
4337         vpxor   %xmm2,%xmm7,%xmm7
4338         vpaddd  %xmm7,%xmm6,%xmm6
4339         vpsrld  $6,%xmm9,%xmm7
4340         vpslld  $26,%xmm9,%xmm2
4341         vmovdqu %xmm6,48-128(%rax)
4342         vpaddd  %xmm12,%xmm6,%xmm6
4343
4344         vpsrld  $11,%xmm9,%xmm1
4345         vpxor   %xmm2,%xmm7,%xmm7
4346         vpslld  $21,%xmm9,%xmm2
4347         vpaddd  -32(%rbp),%xmm6,%xmm6
4348         vpxor   %xmm1,%xmm7,%xmm7
4349
4350         vpsrld  $25,%xmm9,%xmm1
4351         vpxor   %xmm2,%xmm7,%xmm7
4352
4353         vpslld  $7,%xmm9,%xmm2
4354         vpandn  %xmm11,%xmm9,%xmm0
4355         vpand   %xmm10,%xmm9,%xmm4
4356
4357         vpxor   %xmm1,%xmm7,%xmm7
4358
4359         vpsrld  $2,%xmm13,%xmm12
4360         vpxor   %xmm2,%xmm7,%xmm7
4361
4362         vpslld  $30,%xmm13,%xmm1
4363         vpxor   %xmm4,%xmm0,%xmm0
4364         vpxor   %xmm13,%xmm14,%xmm4
4365
4366         vpxor   %xmm1,%xmm12,%xmm12
4367         vpaddd  %xmm7,%xmm6,%xmm6
4368
4369         vpsrld  $13,%xmm13,%xmm1
4370
4371         vpslld  $19,%xmm13,%xmm2
4372         vpaddd  %xmm0,%xmm6,%xmm6
4373         vpand   %xmm4,%xmm3,%xmm3
4374
4375         vpxor   %xmm1,%xmm12,%xmm7
4376
4377         vpsrld  $22,%xmm13,%xmm1
4378         vpxor   %xmm2,%xmm7,%xmm7
4379
4380         vpslld  $10,%xmm13,%xmm2
4381         vpxor   %xmm3,%xmm14,%xmm12
4382         vpaddd  %xmm6,%xmm8,%xmm8
4383
4384         vpxor   %xmm1,%xmm7,%xmm7
4385         vpxor   %xmm2,%xmm7,%xmm7
4386
4387         vpaddd  %xmm6,%xmm12,%xmm12
4388         vpaddd  %xmm7,%xmm12,%xmm12
4389         vmovdqu 80-128(%rax),%xmm6
4390         vpaddd  208-128(%rax),%xmm5,%xmm5
4391
4392         vpsrld  $3,%xmm6,%xmm7
4393         vpsrld  $7,%xmm6,%xmm1
4394         vpslld  $25,%xmm6,%xmm2
4395         vpxor   %xmm1,%xmm7,%xmm7
4396         vpsrld  $18,%xmm6,%xmm1
4397         vpxor   %xmm2,%xmm7,%xmm7
4398         vpslld  $14,%xmm6,%xmm2
4399         vmovdqu 32-128(%rax),%xmm0
4400         vpsrld  $10,%xmm0,%xmm3
4401
4402         vpxor   %xmm1,%xmm7,%xmm7
4403         vpsrld  $17,%xmm0,%xmm1
4404         vpxor   %xmm2,%xmm7,%xmm7
4405         vpslld  $15,%xmm0,%xmm2
4406         vpaddd  %xmm7,%xmm5,%xmm5
4407         vpxor   %xmm1,%xmm3,%xmm7
4408         vpsrld  $19,%xmm0,%xmm1
4409         vpxor   %xmm2,%xmm7,%xmm7
4410         vpslld  $13,%xmm0,%xmm2
4411         vpxor   %xmm1,%xmm7,%xmm7
4412         vpxor   %xmm2,%xmm7,%xmm7
4413         vpaddd  %xmm7,%xmm5,%xmm5
4414         vpsrld  $6,%xmm8,%xmm7
4415         vpslld  $26,%xmm8,%xmm2
4416         vmovdqu %xmm5,64-128(%rax)
4417         vpaddd  %xmm11,%xmm5,%xmm5
4418
4419         vpsrld  $11,%xmm8,%xmm1
4420         vpxor   %xmm2,%xmm7,%xmm7
4421         vpslld  $21,%xmm8,%xmm2
4422         vpaddd  0(%rbp),%xmm5,%xmm5
4423         vpxor   %xmm1,%xmm7,%xmm7
4424
4425         vpsrld  $25,%xmm8,%xmm1
4426         vpxor   %xmm2,%xmm7,%xmm7
4427
4428         vpslld  $7,%xmm8,%xmm2
4429         vpandn  %xmm10,%xmm8,%xmm0
4430         vpand   %xmm9,%xmm8,%xmm3
4431
4432         vpxor   %xmm1,%xmm7,%xmm7
4433
4434         vpsrld  $2,%xmm12,%xmm11
4435         vpxor   %xmm2,%xmm7,%xmm7
4436
4437         vpslld  $30,%xmm12,%xmm1
4438         vpxor   %xmm3,%xmm0,%xmm0
4439         vpxor   %xmm12,%xmm13,%xmm3
4440
4441         vpxor   %xmm1,%xmm11,%xmm11
4442         vpaddd  %xmm7,%xmm5,%xmm5
4443
4444         vpsrld  $13,%xmm12,%xmm1
4445
4446         vpslld  $19,%xmm12,%xmm2
4447         vpaddd  %xmm0,%xmm5,%xmm5
4448         vpand   %xmm3,%xmm4,%xmm4
4449
4450         vpxor   %xmm1,%xmm11,%xmm7
4451
4452         vpsrld  $22,%xmm12,%xmm1
4453         vpxor   %xmm2,%xmm7,%xmm7
4454
4455         vpslld  $10,%xmm12,%xmm2
4456         vpxor   %xmm4,%xmm13,%xmm11
4457         vpaddd  %xmm5,%xmm15,%xmm15
4458
4459         vpxor   %xmm1,%xmm7,%xmm7
4460         vpxor   %xmm2,%xmm7,%xmm7
4461
4462         vpaddd  %xmm5,%xmm11,%xmm11
4463         vpaddd  %xmm7,%xmm11,%xmm11
4464         vmovdqu 96-128(%rax),%xmm5
4465         vpaddd  224-128(%rax),%xmm6,%xmm6
4466
4467         vpsrld  $3,%xmm5,%xmm7
4468         vpsrld  $7,%xmm5,%xmm1
4469         vpslld  $25,%xmm5,%xmm2
4470         vpxor   %xmm1,%xmm7,%xmm7
4471         vpsrld  $18,%xmm5,%xmm1
4472         vpxor   %xmm2,%xmm7,%xmm7
4473         vpslld  $14,%xmm5,%xmm2
4474         vmovdqu 48-128(%rax),%xmm0
4475         vpsrld  $10,%xmm0,%xmm4
4476
4477         vpxor   %xmm1,%xmm7,%xmm7
4478         vpsrld  $17,%xmm0,%xmm1
4479         vpxor   %xmm2,%xmm7,%xmm7
4480         vpslld  $15,%xmm0,%xmm2
4481         vpaddd  %xmm7,%xmm6,%xmm6
4482         vpxor   %xmm1,%xmm4,%xmm7
4483         vpsrld  $19,%xmm0,%xmm1
4484         vpxor   %xmm2,%xmm7,%xmm7
4485         vpslld  $13,%xmm0,%xmm2
4486         vpxor   %xmm1,%xmm7,%xmm7
4487         vpxor   %xmm2,%xmm7,%xmm7
4488         vpaddd  %xmm7,%xmm6,%xmm6
4489         vpsrld  $6,%xmm15,%xmm7
4490         vpslld  $26,%xmm15,%xmm2
4491         vmovdqu %xmm6,80-128(%rax)
4492         vpaddd  %xmm10,%xmm6,%xmm6
4493
4494         vpsrld  $11,%xmm15,%xmm1
4495         vpxor   %xmm2,%xmm7,%xmm7
4496         vpslld  $21,%xmm15,%xmm2
4497         vpaddd  32(%rbp),%xmm6,%xmm6
4498         vpxor   %xmm1,%xmm7,%xmm7
4499
4500         vpsrld  $25,%xmm15,%xmm1
4501         vpxor   %xmm2,%xmm7,%xmm7
4502
4503         vpslld  $7,%xmm15,%xmm2
4504         vpandn  %xmm9,%xmm15,%xmm0
4505         vpand   %xmm8,%xmm15,%xmm4
4506
4507         vpxor   %xmm1,%xmm7,%xmm7
4508
4509         vpsrld  $2,%xmm11,%xmm10
4510         vpxor   %xmm2,%xmm7,%xmm7
4511
4512         vpslld  $30,%xmm11,%xmm1
4513         vpxor   %xmm4,%xmm0,%xmm0
4514         vpxor   %xmm11,%xmm12,%xmm4
4515
4516         vpxor   %xmm1,%xmm10,%xmm10
4517         vpaddd  %xmm7,%xmm6,%xmm6
4518
4519         vpsrld  $13,%xmm11,%xmm1
4520
4521         vpslld  $19,%xmm11,%xmm2
4522         vpaddd  %xmm0,%xmm6,%xmm6
4523         vpand   %xmm4,%xmm3,%xmm3
4524
4525         vpxor   %xmm1,%xmm10,%xmm7
4526
4527         vpsrld  $22,%xmm11,%xmm1
4528         vpxor   %xmm2,%xmm7,%xmm7
4529
4530         vpslld  $10,%xmm11,%xmm2
4531         vpxor   %xmm3,%xmm12,%xmm10
4532         vpaddd  %xmm6,%xmm14,%xmm14
4533
4534         vpxor   %xmm1,%xmm7,%xmm7
4535         vpxor   %xmm2,%xmm7,%xmm7
4536
4537         vpaddd  %xmm6,%xmm10,%xmm10
4538         vpaddd  %xmm7,%xmm10,%xmm10
4539         vmovdqu 112-128(%rax),%xmm6
4540         vpaddd  240-128(%rax),%xmm5,%xmm5
4541
4542         vpsrld  $3,%xmm6,%xmm7
4543         vpsrld  $7,%xmm6,%xmm1
4544         vpslld  $25,%xmm6,%xmm2
4545         vpxor   %xmm1,%xmm7,%xmm7
4546         vpsrld  $18,%xmm6,%xmm1
4547         vpxor   %xmm2,%xmm7,%xmm7
4548         vpslld  $14,%xmm6,%xmm2
4549         vmovdqu 64-128(%rax),%xmm0
4550         vpsrld  $10,%xmm0,%xmm3
4551
4552         vpxor   %xmm1,%xmm7,%xmm7
4553         vpsrld  $17,%xmm0,%xmm1
4554         vpxor   %xmm2,%xmm7,%xmm7
4555         vpslld  $15,%xmm0,%xmm2
4556         vpaddd  %xmm7,%xmm5,%xmm5
4557         vpxor   %xmm1,%xmm3,%xmm7
4558         vpsrld  $19,%xmm0,%xmm1
4559         vpxor   %xmm2,%xmm7,%xmm7
4560         vpslld  $13,%xmm0,%xmm2
4561         vpxor   %xmm1,%xmm7,%xmm7
4562         vpxor   %xmm2,%xmm7,%xmm7
4563         vpaddd  %xmm7,%xmm5,%xmm5
4564         vpsrld  $6,%xmm14,%xmm7
4565         vpslld  $26,%xmm14,%xmm2
4566         vmovdqu %xmm5,96-128(%rax)
4567         vpaddd  %xmm9,%xmm5,%xmm5
4568
4569         vpsrld  $11,%xmm14,%xmm1
4570         vpxor   %xmm2,%xmm7,%xmm7
4571         vpslld  $21,%xmm14,%xmm2
4572         vpaddd  64(%rbp),%xmm5,%xmm5
4573         vpxor   %xmm1,%xmm7,%xmm7
4574
4575         vpsrld  $25,%xmm14,%xmm1
4576         vpxor   %xmm2,%xmm7,%xmm7
4577
4578         vpslld  $7,%xmm14,%xmm2
4579         vpandn  %xmm8,%xmm14,%xmm0
4580         vpand   %xmm15,%xmm14,%xmm3
4581
4582         vpxor   %xmm1,%xmm7,%xmm7
4583
4584         vpsrld  $2,%xmm10,%xmm9
4585         vpxor   %xmm2,%xmm7,%xmm7
4586
4587         vpslld  $30,%xmm10,%xmm1
4588         vpxor   %xmm3,%xmm0,%xmm0
4589         vpxor   %xmm10,%xmm11,%xmm3
4590
4591         vpxor   %xmm1,%xmm9,%xmm9
4592         vpaddd  %xmm7,%xmm5,%xmm5
4593
4594         vpsrld  $13,%xmm10,%xmm1
4595
4596         vpslld  $19,%xmm10,%xmm2
4597         vpaddd  %xmm0,%xmm5,%xmm5
4598         vpand   %xmm3,%xmm4,%xmm4
4599
4600         vpxor   %xmm1,%xmm9,%xmm7
4601
4602         vpsrld  $22,%xmm10,%xmm1
4603         vpxor   %xmm2,%xmm7,%xmm7
4604
4605         vpslld  $10,%xmm10,%xmm2
4606         vpxor   %xmm4,%xmm11,%xmm9
4607         vpaddd  %xmm5,%xmm13,%xmm13
4608
4609         vpxor   %xmm1,%xmm7,%xmm7
4610         vpxor   %xmm2,%xmm7,%xmm7
4611
4612         vpaddd  %xmm5,%xmm9,%xmm9
4613         vpaddd  %xmm7,%xmm9,%xmm9
4614         vmovdqu 128-128(%rax),%xmm5
4615         vpaddd  0-128(%rax),%xmm6,%xmm6
4616
4617         vpsrld  $3,%xmm5,%xmm7
4618         vpsrld  $7,%xmm5,%xmm1
4619         vpslld  $25,%xmm5,%xmm2
4620         vpxor   %xmm1,%xmm7,%xmm7
4621         vpsrld  $18,%xmm5,%xmm1
4622         vpxor   %xmm2,%xmm7,%xmm7
4623         vpslld  $14,%xmm5,%xmm2
4624         vmovdqu 80-128(%rax),%xmm0
4625         vpsrld  $10,%xmm0,%xmm4
4626
4627         vpxor   %xmm1,%xmm7,%xmm7
4628         vpsrld  $17,%xmm0,%xmm1
4629         vpxor   %xmm2,%xmm7,%xmm7
4630         vpslld  $15,%xmm0,%xmm2
4631         vpaddd  %xmm7,%xmm6,%xmm6
4632         vpxor   %xmm1,%xmm4,%xmm7
4633         vpsrld  $19,%xmm0,%xmm1
4634         vpxor   %xmm2,%xmm7,%xmm7
4635         vpslld  $13,%xmm0,%xmm2
4636         vpxor   %xmm1,%xmm7,%xmm7
4637         vpxor   %xmm2,%xmm7,%xmm7
4638         vpaddd  %xmm7,%xmm6,%xmm6
4639         vpsrld  $6,%xmm13,%xmm7
4640         vpslld  $26,%xmm13,%xmm2
4641         vmovdqu %xmm6,112-128(%rax)
4642         vpaddd  %xmm8,%xmm6,%xmm6
4643
4644         vpsrld  $11,%xmm13,%xmm1
4645         vpxor   %xmm2,%xmm7,%xmm7
4646         vpslld  $21,%xmm13,%xmm2
4647         vpaddd  96(%rbp),%xmm6,%xmm6
4648         vpxor   %xmm1,%xmm7,%xmm7
4649
4650         vpsrld  $25,%xmm13,%xmm1
4651         vpxor   %xmm2,%xmm7,%xmm7
4652
4653         vpslld  $7,%xmm13,%xmm2
4654         vpandn  %xmm15,%xmm13,%xmm0
4655         vpand   %xmm14,%xmm13,%xmm4
4656
4657         vpxor   %xmm1,%xmm7,%xmm7
4658
4659         vpsrld  $2,%xmm9,%xmm8
4660         vpxor   %xmm2,%xmm7,%xmm7
4661
4662         vpslld  $30,%xmm9,%xmm1
4663         vpxor   %xmm4,%xmm0,%xmm0
4664         vpxor   %xmm9,%xmm10,%xmm4
4665
4666         vpxor   %xmm1,%xmm8,%xmm8
4667         vpaddd  %xmm7,%xmm6,%xmm6
4668
4669         vpsrld  $13,%xmm9,%xmm1
4670
4671         vpslld  $19,%xmm9,%xmm2
4672         vpaddd  %xmm0,%xmm6,%xmm6
4673         vpand   %xmm4,%xmm3,%xmm3
4674
4675         vpxor   %xmm1,%xmm8,%xmm7
4676
4677         vpsrld  $22,%xmm9,%xmm1
4678         vpxor   %xmm2,%xmm7,%xmm7
4679
4680         vpslld  $10,%xmm9,%xmm2
4681         vpxor   %xmm3,%xmm10,%xmm8
4682         vpaddd  %xmm6,%xmm12,%xmm12
4683
4684         vpxor   %xmm1,%xmm7,%xmm7
4685         vpxor   %xmm2,%xmm7,%xmm7
4686
4687         vpaddd  %xmm6,%xmm8,%xmm8
4688         vpaddd  %xmm7,%xmm8,%xmm8
4689         addq    $256,%rbp
4690         vmovdqu 144-128(%rax),%xmm6
4691         vpaddd  16-128(%rax),%xmm5,%xmm5
4692
4693         vpsrld  $3,%xmm6,%xmm7
4694         vpsrld  $7,%xmm6,%xmm1
4695         vpslld  $25,%xmm6,%xmm2
4696         vpxor   %xmm1,%xmm7,%xmm7
4697         vpsrld  $18,%xmm6,%xmm1
4698         vpxor   %xmm2,%xmm7,%xmm7
4699         vpslld  $14,%xmm6,%xmm2
4700         vmovdqu 96-128(%rax),%xmm0
4701         vpsrld  $10,%xmm0,%xmm3
4702
4703         vpxor   %xmm1,%xmm7,%xmm7
4704         vpsrld  $17,%xmm0,%xmm1
4705         vpxor   %xmm2,%xmm7,%xmm7
4706         vpslld  $15,%xmm0,%xmm2
4707         vpaddd  %xmm7,%xmm5,%xmm5
4708         vpxor   %xmm1,%xmm3,%xmm7
4709         vpsrld  $19,%xmm0,%xmm1
4710         vpxor   %xmm2,%xmm7,%xmm7
4711         vpslld  $13,%xmm0,%xmm2
4712         vpxor   %xmm1,%xmm7,%xmm7
4713         vpxor   %xmm2,%xmm7,%xmm7
4714         vpaddd  %xmm7,%xmm5,%xmm5
4715         vpsrld  $6,%xmm12,%xmm7
4716         vpslld  $26,%xmm12,%xmm2
4717         vmovdqu %xmm5,128-128(%rax)
4718         vpaddd  %xmm15,%xmm5,%xmm5
4719
4720         vpsrld  $11,%xmm12,%xmm1
4721         vpxor   %xmm2,%xmm7,%xmm7
4722         vpslld  $21,%xmm12,%xmm2
4723         vpaddd  -128(%rbp),%xmm5,%xmm5
4724         vpxor   %xmm1,%xmm7,%xmm7
4725
4726         vpsrld  $25,%xmm12,%xmm1
4727         vpxor   %xmm2,%xmm7,%xmm7
4728
4729         vpslld  $7,%xmm12,%xmm2
4730         vpandn  %xmm14,%xmm12,%xmm0
4731         vpand   %xmm13,%xmm12,%xmm3
4732
4733         vpxor   %xmm1,%xmm7,%xmm7
4734
4735         vpsrld  $2,%xmm8,%xmm15
4736         vpxor   %xmm2,%xmm7,%xmm7
4737
4738         vpslld  $30,%xmm8,%xmm1
4739         vpxor   %xmm3,%xmm0,%xmm0
4740         vpxor   %xmm8,%xmm9,%xmm3
4741
4742         vpxor   %xmm1,%xmm15,%xmm15
4743         vpaddd  %xmm7,%xmm5,%xmm5
4744
4745         vpsrld  $13,%xmm8,%xmm1
4746
4747         vpslld  $19,%xmm8,%xmm2
4748         vpaddd  %xmm0,%xmm5,%xmm5
4749         vpand   %xmm3,%xmm4,%xmm4
4750
4751         vpxor   %xmm1,%xmm15,%xmm7
4752
4753         vpsrld  $22,%xmm8,%xmm1
4754         vpxor   %xmm2,%xmm7,%xmm7
4755
4756         vpslld  $10,%xmm8,%xmm2
4757         vpxor   %xmm4,%xmm9,%xmm15
4758         vpaddd  %xmm5,%xmm11,%xmm11
4759
4760         vpxor   %xmm1,%xmm7,%xmm7
4761         vpxor   %xmm2,%xmm7,%xmm7
4762
4763         vpaddd  %xmm5,%xmm15,%xmm15
4764         vpaddd  %xmm7,%xmm15,%xmm15
4765         vmovdqu 160-128(%rax),%xmm5
4766         vpaddd  32-128(%rax),%xmm6,%xmm6
4767
4768         vpsrld  $3,%xmm5,%xmm7
4769         vpsrld  $7,%xmm5,%xmm1
4770         vpslld  $25,%xmm5,%xmm2
4771         vpxor   %xmm1,%xmm7,%xmm7
4772         vpsrld  $18,%xmm5,%xmm1
4773         vpxor   %xmm2,%xmm7,%xmm7
4774         vpslld  $14,%xmm5,%xmm2
4775         vmovdqu 112-128(%rax),%xmm0
4776         vpsrld  $10,%xmm0,%xmm4
4777
4778         vpxor   %xmm1,%xmm7,%xmm7
4779         vpsrld  $17,%xmm0,%xmm1
4780         vpxor   %xmm2,%xmm7,%xmm7
4781         vpslld  $15,%xmm0,%xmm2
4782         vpaddd  %xmm7,%xmm6,%xmm6
4783         vpxor   %xmm1,%xmm4,%xmm7
4784         vpsrld  $19,%xmm0,%xmm1
4785         vpxor   %xmm2,%xmm7,%xmm7
4786         vpslld  $13,%xmm0,%xmm2
4787         vpxor   %xmm1,%xmm7,%xmm7
4788         vpxor   %xmm2,%xmm7,%xmm7
4789         vpaddd  %xmm7,%xmm6,%xmm6
4790         vpsrld  $6,%xmm11,%xmm7
4791         vpslld  $26,%xmm11,%xmm2
4792         vmovdqu %xmm6,144-128(%rax)
4793         vpaddd  %xmm14,%xmm6,%xmm6
4794
4795         vpsrld  $11,%xmm11,%xmm1
4796         vpxor   %xmm2,%xmm7,%xmm7
4797         vpslld  $21,%xmm11,%xmm2
4798         vpaddd  -96(%rbp),%xmm6,%xmm6
4799         vpxor   %xmm1,%xmm7,%xmm7
4800
4801         vpsrld  $25,%xmm11,%xmm1
4802         vpxor   %xmm2,%xmm7,%xmm7
4803
4804         vpslld  $7,%xmm11,%xmm2
4805         vpandn  %xmm13,%xmm11,%xmm0
4806         vpand   %xmm12,%xmm11,%xmm4
4807
4808         vpxor   %xmm1,%xmm7,%xmm7
4809
4810         vpsrld  $2,%xmm15,%xmm14
4811         vpxor   %xmm2,%xmm7,%xmm7
4812
4813         vpslld  $30,%xmm15,%xmm1
4814         vpxor   %xmm4,%xmm0,%xmm0
4815         vpxor   %xmm15,%xmm8,%xmm4
4816
4817         vpxor   %xmm1,%xmm14,%xmm14
4818         vpaddd  %xmm7,%xmm6,%xmm6
4819
4820         vpsrld  $13,%xmm15,%xmm1
4821
4822         vpslld  $19,%xmm15,%xmm2
4823         vpaddd  %xmm0,%xmm6,%xmm6
4824         vpand   %xmm4,%xmm3,%xmm3
4825
4826         vpxor   %xmm1,%xmm14,%xmm7
4827
4828         vpsrld  $22,%xmm15,%xmm1
4829         vpxor   %xmm2,%xmm7,%xmm7
4830
4831         vpslld  $10,%xmm15,%xmm2
4832         vpxor   %xmm3,%xmm8,%xmm14
4833         vpaddd  %xmm6,%xmm10,%xmm10
4834
4835         vpxor   %xmm1,%xmm7,%xmm7
4836         vpxor   %xmm2,%xmm7,%xmm7
4837
4838         vpaddd  %xmm6,%xmm14,%xmm14
4839         vpaddd  %xmm7,%xmm14,%xmm14
4840         vmovdqu 176-128(%rax),%xmm6
4841         vpaddd  48-128(%rax),%xmm5,%xmm5
4842
4843         vpsrld  $3,%xmm6,%xmm7
4844         vpsrld  $7,%xmm6,%xmm1
4845         vpslld  $25,%xmm6,%xmm2
4846         vpxor   %xmm1,%xmm7,%xmm7
4847         vpsrld  $18,%xmm6,%xmm1
4848         vpxor   %xmm2,%xmm7,%xmm7
4849         vpslld  $14,%xmm6,%xmm2
4850         vmovdqu 128-128(%rax),%xmm0
4851         vpsrld  $10,%xmm0,%xmm3
4852
4853         vpxor   %xmm1,%xmm7,%xmm7
4854         vpsrld  $17,%xmm0,%xmm1
4855         vpxor   %xmm2,%xmm7,%xmm7
4856         vpslld  $15,%xmm0,%xmm2
4857         vpaddd  %xmm7,%xmm5,%xmm5
4858         vpxor   %xmm1,%xmm3,%xmm7
4859         vpsrld  $19,%xmm0,%xmm1
4860         vpxor   %xmm2,%xmm7,%xmm7
4861         vpslld  $13,%xmm0,%xmm2
4862         vpxor   %xmm1,%xmm7,%xmm7
4863         vpxor   %xmm2,%xmm7,%xmm7
4864         vpaddd  %xmm7,%xmm5,%xmm5
4865         vpsrld  $6,%xmm10,%xmm7
4866         vpslld  $26,%xmm10,%xmm2
4867         vmovdqu %xmm5,160-128(%rax)
4868         vpaddd  %xmm13,%xmm5,%xmm5
4869
4870         vpsrld  $11,%xmm10,%xmm1
4871         vpxor   %xmm2,%xmm7,%xmm7
4872         vpslld  $21,%xmm10,%xmm2
4873         vpaddd  -64(%rbp),%xmm5,%xmm5
4874         vpxor   %xmm1,%xmm7,%xmm7
4875
4876         vpsrld  $25,%xmm10,%xmm1
4877         vpxor   %xmm2,%xmm7,%xmm7
4878
4879         vpslld  $7,%xmm10,%xmm2
4880         vpandn  %xmm12,%xmm10,%xmm0
4881         vpand   %xmm11,%xmm10,%xmm3
4882
4883         vpxor   %xmm1,%xmm7,%xmm7
4884
4885         vpsrld  $2,%xmm14,%xmm13
4886         vpxor   %xmm2,%xmm7,%xmm7
4887
4888         vpslld  $30,%xmm14,%xmm1
4889         vpxor   %xmm3,%xmm0,%xmm0
4890         vpxor   %xmm14,%xmm15,%xmm3
4891
4892         vpxor   %xmm1,%xmm13,%xmm13
4893         vpaddd  %xmm7,%xmm5,%xmm5
4894
4895         vpsrld  $13,%xmm14,%xmm1
4896
4897         vpslld  $19,%xmm14,%xmm2
4898         vpaddd  %xmm0,%xmm5,%xmm5
4899         vpand   %xmm3,%xmm4,%xmm4
4900
4901         vpxor   %xmm1,%xmm13,%xmm7
4902
4903         vpsrld  $22,%xmm14,%xmm1
4904         vpxor   %xmm2,%xmm7,%xmm7
4905
4906         vpslld  $10,%xmm14,%xmm2
4907         vpxor   %xmm4,%xmm15,%xmm13
4908         vpaddd  %xmm5,%xmm9,%xmm9
4909
4910         vpxor   %xmm1,%xmm7,%xmm7
4911         vpxor   %xmm2,%xmm7,%xmm7
4912
4913         vpaddd  %xmm5,%xmm13,%xmm13
4914         vpaddd  %xmm7,%xmm13,%xmm13
4915         vmovdqu 192-128(%rax),%xmm5
4916         vpaddd  64-128(%rax),%xmm6,%xmm6
4917
4918         vpsrld  $3,%xmm5,%xmm7
4919         vpsrld  $7,%xmm5,%xmm1
4920         vpslld  $25,%xmm5,%xmm2
4921         vpxor   %xmm1,%xmm7,%xmm7
4922         vpsrld  $18,%xmm5,%xmm1
4923         vpxor   %xmm2,%xmm7,%xmm7
4924         vpslld  $14,%xmm5,%xmm2
4925         vmovdqu 144-128(%rax),%xmm0
4926         vpsrld  $10,%xmm0,%xmm4
4927
4928         vpxor   %xmm1,%xmm7,%xmm7
4929         vpsrld  $17,%xmm0,%xmm1
4930         vpxor   %xmm2,%xmm7,%xmm7
4931         vpslld  $15,%xmm0,%xmm2
4932         vpaddd  %xmm7,%xmm6,%xmm6
4933         vpxor   %xmm1,%xmm4,%xmm7
4934         vpsrld  $19,%xmm0,%xmm1
4935         vpxor   %xmm2,%xmm7,%xmm7
4936         vpslld  $13,%xmm0,%xmm2
4937         vpxor   %xmm1,%xmm7,%xmm7
4938         vpxor   %xmm2,%xmm7,%xmm7
4939         vpaddd  %xmm7,%xmm6,%xmm6
4940         vpsrld  $6,%xmm9,%xmm7
4941         vpslld  $26,%xmm9,%xmm2
4942         vmovdqu %xmm6,176-128(%rax)
4943         vpaddd  %xmm12,%xmm6,%xmm6
4944
4945         vpsrld  $11,%xmm9,%xmm1
4946         vpxor   %xmm2,%xmm7,%xmm7
4947         vpslld  $21,%xmm9,%xmm2
4948         vpaddd  -32(%rbp),%xmm6,%xmm6
4949         vpxor   %xmm1,%xmm7,%xmm7
4950
4951         vpsrld  $25,%xmm9,%xmm1
4952         vpxor   %xmm2,%xmm7,%xmm7
4953
4954         vpslld  $7,%xmm9,%xmm2
4955         vpandn  %xmm11,%xmm9,%xmm0
4956         vpand   %xmm10,%xmm9,%xmm4
4957
4958         vpxor   %xmm1,%xmm7,%xmm7
4959
4960         vpsrld  $2,%xmm13,%xmm12
4961         vpxor   %xmm2,%xmm7,%xmm7
4962
4963         vpslld  $30,%xmm13,%xmm1
4964         vpxor   %xmm4,%xmm0,%xmm0
4965         vpxor   %xmm13,%xmm14,%xmm4
4966
4967         vpxor   %xmm1,%xmm12,%xmm12
4968         vpaddd  %xmm7,%xmm6,%xmm6
4969
4970         vpsrld  $13,%xmm13,%xmm1
4971
4972         vpslld  $19,%xmm13,%xmm2
4973         vpaddd  %xmm0,%xmm6,%xmm6
4974         vpand   %xmm4,%xmm3,%xmm3
4975
4976         vpxor   %xmm1,%xmm12,%xmm7
4977
4978         vpsrld  $22,%xmm13,%xmm1
4979         vpxor   %xmm2,%xmm7,%xmm7
4980
4981         vpslld  $10,%xmm13,%xmm2
4982         vpxor   %xmm3,%xmm14,%xmm12
4983         vpaddd  %xmm6,%xmm8,%xmm8
4984
4985         vpxor   %xmm1,%xmm7,%xmm7
4986         vpxor   %xmm2,%xmm7,%xmm7
4987
4988         vpaddd  %xmm6,%xmm12,%xmm12
4989         vpaddd  %xmm7,%xmm12,%xmm12
4990         vmovdqu 208-128(%rax),%xmm6
4991         vpaddd  80-128(%rax),%xmm5,%xmm5
4992
4993         vpsrld  $3,%xmm6,%xmm7
4994         vpsrld  $7,%xmm6,%xmm1
4995         vpslld  $25,%xmm6,%xmm2
4996         vpxor   %xmm1,%xmm7,%xmm7
4997         vpsrld  $18,%xmm6,%xmm1
4998         vpxor   %xmm2,%xmm7,%xmm7
4999         vpslld  $14,%xmm6,%xmm2
5000         vmovdqu 160-128(%rax),%xmm0
5001         vpsrld  $10,%xmm0,%xmm3
5002
5003         vpxor   %xmm1,%xmm7,%xmm7
5004         vpsrld  $17,%xmm0,%xmm1
5005         vpxor   %xmm2,%xmm7,%xmm7
5006         vpslld  $15,%xmm0,%xmm2
5007         vpaddd  %xmm7,%xmm5,%xmm5
5008         vpxor   %xmm1,%xmm3,%xmm7
5009         vpsrld  $19,%xmm0,%xmm1
5010         vpxor   %xmm2,%xmm7,%xmm7
5011         vpslld  $13,%xmm0,%xmm2
5012         vpxor   %xmm1,%xmm7,%xmm7
5013         vpxor   %xmm2,%xmm7,%xmm7
5014         vpaddd  %xmm7,%xmm5,%xmm5
5015         vpsrld  $6,%xmm8,%xmm7
5016         vpslld  $26,%xmm8,%xmm2
5017         vmovdqu %xmm5,192-128(%rax)
5018         vpaddd  %xmm11,%xmm5,%xmm5
5019
5020         vpsrld  $11,%xmm8,%xmm1
5021         vpxor   %xmm2,%xmm7,%xmm7
5022         vpslld  $21,%xmm8,%xmm2
5023         vpaddd  0(%rbp),%xmm5,%xmm5
5024         vpxor   %xmm1,%xmm7,%xmm7
5025
5026         vpsrld  $25,%xmm8,%xmm1
5027         vpxor   %xmm2,%xmm7,%xmm7
5028
5029         vpslld  $7,%xmm8,%xmm2
5030         vpandn  %xmm10,%xmm8,%xmm0
5031         vpand   %xmm9,%xmm8,%xmm3
5032
5033         vpxor   %xmm1,%xmm7,%xmm7
5034
5035         vpsrld  $2,%xmm12,%xmm11
5036         vpxor   %xmm2,%xmm7,%xmm7
5037
5038         vpslld  $30,%xmm12,%xmm1
5039         vpxor   %xmm3,%xmm0,%xmm0
5040         vpxor   %xmm12,%xmm13,%xmm3
5041
5042         vpxor   %xmm1,%xmm11,%xmm11
5043         vpaddd  %xmm7,%xmm5,%xmm5
5044
5045         vpsrld  $13,%xmm12,%xmm1
5046
5047         vpslld  $19,%xmm12,%xmm2
5048         vpaddd  %xmm0,%xmm5,%xmm5
5049         vpand   %xmm3,%xmm4,%xmm4
5050
5051         vpxor   %xmm1,%xmm11,%xmm7
5052
5053         vpsrld  $22,%xmm12,%xmm1
5054         vpxor   %xmm2,%xmm7,%xmm7
5055
5056         vpslld  $10,%xmm12,%xmm2
5057         vpxor   %xmm4,%xmm13,%xmm11
5058         vpaddd  %xmm5,%xmm15,%xmm15
5059
5060         vpxor   %xmm1,%xmm7,%xmm7
5061         vpxor   %xmm2,%xmm7,%xmm7
5062
5063         vpaddd  %xmm5,%xmm11,%xmm11
5064         vpaddd  %xmm7,%xmm11,%xmm11
5065         vmovdqu 224-128(%rax),%xmm5
5066         vpaddd  96-128(%rax),%xmm6,%xmm6
5067
5068         vpsrld  $3,%xmm5,%xmm7
5069         vpsrld  $7,%xmm5,%xmm1
5070         vpslld  $25,%xmm5,%xmm2
5071         vpxor   %xmm1,%xmm7,%xmm7
5072         vpsrld  $18,%xmm5,%xmm1
5073         vpxor   %xmm2,%xmm7,%xmm7
5074         vpslld  $14,%xmm5,%xmm2
5075         vmovdqu 176-128(%rax),%xmm0
5076         vpsrld  $10,%xmm0,%xmm4
5077
5078         vpxor   %xmm1,%xmm7,%xmm7
5079         vpsrld  $17,%xmm0,%xmm1
5080         vpxor   %xmm2,%xmm7,%xmm7
5081         vpslld  $15,%xmm0,%xmm2
5082         vpaddd  %xmm7,%xmm6,%xmm6
5083         vpxor   %xmm1,%xmm4,%xmm7
5084         vpsrld  $19,%xmm0,%xmm1
5085         vpxor   %xmm2,%xmm7,%xmm7
5086         vpslld  $13,%xmm0,%xmm2
5087         vpxor   %xmm1,%xmm7,%xmm7
5088         vpxor   %xmm2,%xmm7,%xmm7
5089         vpaddd  %xmm7,%xmm6,%xmm6
5090         vpsrld  $6,%xmm15,%xmm7
5091         vpslld  $26,%xmm15,%xmm2
5092         vmovdqu %xmm6,208-128(%rax)
5093         vpaddd  %xmm10,%xmm6,%xmm6
5094
5095         vpsrld  $11,%xmm15,%xmm1
5096         vpxor   %xmm2,%xmm7,%xmm7
5097         vpslld  $21,%xmm15,%xmm2
5098         vpaddd  32(%rbp),%xmm6,%xmm6
5099         vpxor   %xmm1,%xmm7,%xmm7
5100
5101         vpsrld  $25,%xmm15,%xmm1
5102         vpxor   %xmm2,%xmm7,%xmm7
5103
5104         vpslld  $7,%xmm15,%xmm2
5105         vpandn  %xmm9,%xmm15,%xmm0
5106         vpand   %xmm8,%xmm15,%xmm4
5107
5108         vpxor   %xmm1,%xmm7,%xmm7
5109
5110         vpsrld  $2,%xmm11,%xmm10
5111         vpxor   %xmm2,%xmm7,%xmm7
5112
5113         vpslld  $30,%xmm11,%xmm1
5114         vpxor   %xmm4,%xmm0,%xmm0
5115         vpxor   %xmm11,%xmm12,%xmm4
5116
5117         vpxor   %xmm1,%xmm10,%xmm10
5118         vpaddd  %xmm7,%xmm6,%xmm6
5119
5120         vpsrld  $13,%xmm11,%xmm1
5121
5122         vpslld  $19,%xmm11,%xmm2
5123         vpaddd  %xmm0,%xmm6,%xmm6
5124         vpand   %xmm4,%xmm3,%xmm3
5125
5126         vpxor   %xmm1,%xmm10,%xmm7
5127
5128         vpsrld  $22,%xmm11,%xmm1
5129         vpxor   %xmm2,%xmm7,%xmm7
5130
5131         vpslld  $10,%xmm11,%xmm2
5132         vpxor   %xmm3,%xmm12,%xmm10
5133         vpaddd  %xmm6,%xmm14,%xmm14
5134
5135         vpxor   %xmm1,%xmm7,%xmm7
5136         vpxor   %xmm2,%xmm7,%xmm7
5137
5138         vpaddd  %xmm6,%xmm10,%xmm10
5139         vpaddd  %xmm7,%xmm10,%xmm10
5140         vmovdqu 240-128(%rax),%xmm6
5141         vpaddd  112-128(%rax),%xmm5,%xmm5
5142
5143         vpsrld  $3,%xmm6,%xmm7
5144         vpsrld  $7,%xmm6,%xmm1
5145         vpslld  $25,%xmm6,%xmm2
5146         vpxor   %xmm1,%xmm7,%xmm7
5147         vpsrld  $18,%xmm6,%xmm1
5148         vpxor   %xmm2,%xmm7,%xmm7
5149         vpslld  $14,%xmm6,%xmm2
5150         vmovdqu 192-128(%rax),%xmm0
5151         vpsrld  $10,%xmm0,%xmm3
5152
5153         vpxor   %xmm1,%xmm7,%xmm7
5154         vpsrld  $17,%xmm0,%xmm1
5155         vpxor   %xmm2,%xmm7,%xmm7
5156         vpslld  $15,%xmm0,%xmm2
5157         vpaddd  %xmm7,%xmm5,%xmm5
5158         vpxor   %xmm1,%xmm3,%xmm7
5159         vpsrld  $19,%xmm0,%xmm1
5160         vpxor   %xmm2,%xmm7,%xmm7
5161         vpslld  $13,%xmm0,%xmm2
5162         vpxor   %xmm1,%xmm7,%xmm7
5163         vpxor   %xmm2,%xmm7,%xmm7
5164         vpaddd  %xmm7,%xmm5,%xmm5
5165         vpsrld  $6,%xmm14,%xmm7
5166         vpslld  $26,%xmm14,%xmm2
5167         vmovdqu %xmm5,224-128(%rax)
5168         vpaddd  %xmm9,%xmm5,%xmm5
5169
5170         vpsrld  $11,%xmm14,%xmm1
5171         vpxor   %xmm2,%xmm7,%xmm7
5172         vpslld  $21,%xmm14,%xmm2
5173         vpaddd  64(%rbp),%xmm5,%xmm5
5174         vpxor   %xmm1,%xmm7,%xmm7
5175
5176         vpsrld  $25,%xmm14,%xmm1
5177         vpxor   %xmm2,%xmm7,%xmm7
5178
5179         vpslld  $7,%xmm14,%xmm2
5180         vpandn  %xmm8,%xmm14,%xmm0
5181         vpand   %xmm15,%xmm14,%xmm3
5182
5183         vpxor   %xmm1,%xmm7,%xmm7
5184
5185         vpsrld  $2,%xmm10,%xmm9
5186         vpxor   %xmm2,%xmm7,%xmm7
5187
5188         vpslld  $30,%xmm10,%xmm1
5189         vpxor   %xmm3,%xmm0,%xmm0
5190         vpxor   %xmm10,%xmm11,%xmm3
5191
5192         vpxor   %xmm1,%xmm9,%xmm9
5193         vpaddd  %xmm7,%xmm5,%xmm5
5194
5195         vpsrld  $13,%xmm10,%xmm1
5196
5197         vpslld  $19,%xmm10,%xmm2
5198         vpaddd  %xmm0,%xmm5,%xmm5
5199         vpand   %xmm3,%xmm4,%xmm4
5200
5201         vpxor   %xmm1,%xmm9,%xmm7
5202
5203         vpsrld  $22,%xmm10,%xmm1
5204         vpxor   %xmm2,%xmm7,%xmm7
5205
5206         vpslld  $10,%xmm10,%xmm2
5207         vpxor   %xmm4,%xmm11,%xmm9
5208         vpaddd  %xmm5,%xmm13,%xmm13
5209
5210         vpxor   %xmm1,%xmm7,%xmm7
5211         vpxor   %xmm2,%xmm7,%xmm7
5212
5213         vpaddd  %xmm5,%xmm9,%xmm9
5214         vpaddd  %xmm7,%xmm9,%xmm9
5215         vmovdqu 0-128(%rax),%xmm5
5216         vpaddd  128-128(%rax),%xmm6,%xmm6
5217
5218         vpsrld  $3,%xmm5,%xmm7
5219         vpsrld  $7,%xmm5,%xmm1
5220         vpslld  $25,%xmm5,%xmm2
5221         vpxor   %xmm1,%xmm7,%xmm7
5222         vpsrld  $18,%xmm5,%xmm1
5223         vpxor   %xmm2,%xmm7,%xmm7
5224         vpslld  $14,%xmm5,%xmm2
5225         vmovdqu 208-128(%rax),%xmm0
5226         vpsrld  $10,%xmm0,%xmm4
5227
5228         vpxor   %xmm1,%xmm7,%xmm7
5229         vpsrld  $17,%xmm0,%xmm1
5230         vpxor   %xmm2,%xmm7,%xmm7
5231         vpslld  $15,%xmm0,%xmm2
5232         vpaddd  %xmm7,%xmm6,%xmm6
5233         vpxor   %xmm1,%xmm4,%xmm7
5234         vpsrld  $19,%xmm0,%xmm1
5235         vpxor   %xmm2,%xmm7,%xmm7
5236         vpslld  $13,%xmm0,%xmm2
5237         vpxor   %xmm1,%xmm7,%xmm7
5238         vpxor   %xmm2,%xmm7,%xmm7
5239         vpaddd  %xmm7,%xmm6,%xmm6
5240         vpsrld  $6,%xmm13,%xmm7
5241         vpslld  $26,%xmm13,%xmm2
5242         vmovdqu %xmm6,240-128(%rax)
5243         vpaddd  %xmm8,%xmm6,%xmm6
5244
5245         vpsrld  $11,%xmm13,%xmm1
5246         vpxor   %xmm2,%xmm7,%xmm7
5247         vpslld  $21,%xmm13,%xmm2
5248         vpaddd  96(%rbp),%xmm6,%xmm6
5249         vpxor   %xmm1,%xmm7,%xmm7
5250
5251         vpsrld  $25,%xmm13,%xmm1
5252         vpxor   %xmm2,%xmm7,%xmm7
5253
5254         vpslld  $7,%xmm13,%xmm2
5255         vpandn  %xmm15,%xmm13,%xmm0
5256         vpand   %xmm14,%xmm13,%xmm4
5257
5258         vpxor   %xmm1,%xmm7,%xmm7
5259
5260         vpsrld  $2,%xmm9,%xmm8
5261         vpxor   %xmm2,%xmm7,%xmm7
5262
5263         vpslld  $30,%xmm9,%xmm1
5264         vpxor   %xmm4,%xmm0,%xmm0
5265         vpxor   %xmm9,%xmm10,%xmm4
5266
5267         vpxor   %xmm1,%xmm8,%xmm8
5268         vpaddd  %xmm7,%xmm6,%xmm6
5269
5270         vpsrld  $13,%xmm9,%xmm1
5271
5272         vpslld  $19,%xmm9,%xmm2
5273         vpaddd  %xmm0,%xmm6,%xmm6
5274         vpand   %xmm4,%xmm3,%xmm3
5275
5276         vpxor   %xmm1,%xmm8,%xmm7
5277
5278         vpsrld  $22,%xmm9,%xmm1
5279         vpxor   %xmm2,%xmm7,%xmm7
5280
5281         vpslld  $10,%xmm9,%xmm2
5282         vpxor   %xmm3,%xmm10,%xmm8
5283         vpaddd  %xmm6,%xmm12,%xmm12
5284
5285         vpxor   %xmm1,%xmm7,%xmm7
5286         vpxor   %xmm2,%xmm7,%xmm7
5287
5288         vpaddd  %xmm6,%xmm8,%xmm8
5289         vpaddd  %xmm7,%xmm8,%xmm8
5290         addq    $256,%rbp
5291         decl    %ecx
5292         jnz     .Loop_16_xx_avx
5293
5294         movl    $1,%ecx
5295         leaq    K256+128(%rip),%rbp
5296         cmpl    0(%rbx),%ecx
5297         cmovgeq %rbp,%r8
5298         cmpl    4(%rbx),%ecx
5299         cmovgeq %rbp,%r9
5300         cmpl    8(%rbx),%ecx
5301         cmovgeq %rbp,%r10
5302         cmpl    12(%rbx),%ecx
5303         cmovgeq %rbp,%r11
5304         vmovdqa (%rbx),%xmm7
5305         vpxor   %xmm0,%xmm0,%xmm0
5306         vmovdqa %xmm7,%xmm6
5307         vpcmpgtd        %xmm0,%xmm6,%xmm6
5308         vpaddd  %xmm6,%xmm7,%xmm7
5309
5310         vmovdqu 0-128(%rdi),%xmm0
5311         vpand   %xmm6,%xmm8,%xmm8
5312         vmovdqu 32-128(%rdi),%xmm1
5313         vpand   %xmm6,%xmm9,%xmm9
5314         vmovdqu 64-128(%rdi),%xmm2
5315         vpand   %xmm6,%xmm10,%xmm10
5316         vmovdqu 96-128(%rdi),%xmm5
5317         vpand   %xmm6,%xmm11,%xmm11
5318         vpaddd  %xmm0,%xmm8,%xmm8
5319         vmovdqu 128-128(%rdi),%xmm0
5320         vpand   %xmm6,%xmm12,%xmm12
5321         vpaddd  %xmm1,%xmm9,%xmm9
5322         vmovdqu 160-128(%rdi),%xmm1
5323         vpand   %xmm6,%xmm13,%xmm13
5324         vpaddd  %xmm2,%xmm10,%xmm10
5325         vmovdqu 192-128(%rdi),%xmm2
5326         vpand   %xmm6,%xmm14,%xmm14
5327         vpaddd  %xmm5,%xmm11,%xmm11
5328         vmovdqu 224-128(%rdi),%xmm5
5329         vpand   %xmm6,%xmm15,%xmm15
5330         vpaddd  %xmm0,%xmm12,%xmm12
5331         vpaddd  %xmm1,%xmm13,%xmm13
5332         vmovdqu %xmm8,0-128(%rdi)
5333         vpaddd  %xmm2,%xmm14,%xmm14
5334         vmovdqu %xmm9,32-128(%rdi)
5335         vpaddd  %xmm5,%xmm15,%xmm15
5336         vmovdqu %xmm10,64-128(%rdi)
5337         vmovdqu %xmm11,96-128(%rdi)
5338         vmovdqu %xmm12,128-128(%rdi)
5339         vmovdqu %xmm13,160-128(%rdi)
5340         vmovdqu %xmm14,192-128(%rdi)
5341         vmovdqu %xmm15,224-128(%rdi)
5342
5343         vmovdqu %xmm7,(%rbx)
5344         vmovdqu .Lpbswap(%rip),%xmm6
5345         decl    %edx
5346         jnz     .Loop_avx
5347
5348         movl    280(%rsp),%edx
5349         leaq    16(%rdi),%rdi
5350         leaq    64(%rsi),%rsi
5351         decl    %edx
5352         jnz     .Loop_grande_avx
5353
5354 .Ldone_avx:
5355         movq    272(%rsp),%rax
5356         vzeroupper
5357         movq    -16(%rax),%rbp
5358         movq    -8(%rax),%rbx
5359         leaq    (%rax),%rsp
5360 .Lepilogue_avx:
5361         .byte   0xf3,0xc3
5362 .size   sha256_multi_block_avx,.-sha256_multi_block_avx
5363 .type   sha256_multi_block_avx2,@function
5364 .align  32
5365 sha256_multi_block_avx2:
5366 _avx2_shortcut:
5367         movq    %rsp,%rax
5368         pushq   %rbx
5369         pushq   %rbp
5370         pushq   %r12
5371         pushq   %r13
5372         pushq   %r14
5373         pushq   %r15
5374         subq    $576,%rsp
5375         andq    $-256,%rsp
5376         movq    %rax,544(%rsp)
5377 .Lbody_avx2:
5378         leaq    K256+128(%rip),%rbp
5379         leaq    128(%rdi),%rdi
5380
5381 .Loop_grande_avx2:
5382         movl    %edx,552(%rsp)
5383         xorl    %edx,%edx
5384         leaq    512(%rsp),%rbx
5385         movq    0(%rsi),%r12
5386         movl    8(%rsi),%ecx
5387         cmpl    %edx,%ecx
5388         cmovgl  %ecx,%edx
5389         testl   %ecx,%ecx
5390         movl    %ecx,0(%rbx)
5391         cmovleq %rbp,%r12
5392         movq    16(%rsi),%r13
5393         movl    24(%rsi),%ecx
5394         cmpl    %edx,%ecx
5395         cmovgl  %ecx,%edx
5396         testl   %ecx,%ecx
5397         movl    %ecx,4(%rbx)
5398         cmovleq %rbp,%r13
5399         movq    32(%rsi),%r14
5400         movl    40(%rsi),%ecx
5401         cmpl    %edx,%ecx
5402         cmovgl  %ecx,%edx
5403         testl   %ecx,%ecx
5404         movl    %ecx,8(%rbx)
5405         cmovleq %rbp,%r14
5406         movq    48(%rsi),%r15
5407         movl    56(%rsi),%ecx
5408         cmpl    %edx,%ecx
5409         cmovgl  %ecx,%edx
5410         testl   %ecx,%ecx
5411         movl    %ecx,12(%rbx)
5412         cmovleq %rbp,%r15
5413         movq    64(%rsi),%r8
5414         movl    72(%rsi),%ecx
5415         cmpl    %edx,%ecx
5416         cmovgl  %ecx,%edx
5417         testl   %ecx,%ecx
5418         movl    %ecx,16(%rbx)
5419         cmovleq %rbp,%r8
5420         movq    80(%rsi),%r9
5421         movl    88(%rsi),%ecx
5422         cmpl    %edx,%ecx
5423         cmovgl  %ecx,%edx
5424         testl   %ecx,%ecx
5425         movl    %ecx,20(%rbx)
5426         cmovleq %rbp,%r9
5427         movq    96(%rsi),%r10
5428         movl    104(%rsi),%ecx
5429         cmpl    %edx,%ecx
5430         cmovgl  %ecx,%edx
5431         testl   %ecx,%ecx
5432         movl    %ecx,24(%rbx)
5433         cmovleq %rbp,%r10
5434         movq    112(%rsi),%r11
5435         movl    120(%rsi),%ecx
5436         cmpl    %edx,%ecx
5437         cmovgl  %ecx,%edx
5438         testl   %ecx,%ecx
5439         movl    %ecx,28(%rbx)
5440         cmovleq %rbp,%r11
5441         vmovdqu 0-128(%rdi),%ymm8
5442         leaq    128(%rsp),%rax
5443         vmovdqu 32-128(%rdi),%ymm9
5444         leaq    256+128(%rsp),%rbx
5445         vmovdqu 64-128(%rdi),%ymm10
5446         vmovdqu 96-128(%rdi),%ymm11
5447         vmovdqu 128-128(%rdi),%ymm12
5448         vmovdqu 160-128(%rdi),%ymm13
5449         vmovdqu 192-128(%rdi),%ymm14
5450         vmovdqu 224-128(%rdi),%ymm15
5451         vmovdqu .Lpbswap(%rip),%ymm6
5452         jmp     .Loop_avx2
5453
5454 .align  32
5455 .Loop_avx2:
5456         vpxor   %ymm9,%ymm10,%ymm4
5457         vmovd   0(%r12),%xmm5
5458         vmovd   0(%r8),%xmm0
5459         vmovd   0(%r13),%xmm1
5460         vmovd   0(%r9),%xmm2
5461         vpinsrd $1,0(%r14),%xmm5,%xmm5
5462         vpinsrd $1,0(%r10),%xmm0,%xmm0
5463         vpinsrd $1,0(%r15),%xmm1,%xmm1
5464         vpunpckldq      %ymm1,%ymm5,%ymm5
5465         vpinsrd $1,0(%r11),%xmm2,%xmm2
5466         vpunpckldq      %ymm2,%ymm0,%ymm0
5467         vinserti128     $1,%xmm0,%ymm5,%ymm5
5468         vpshufb %ymm6,%ymm5,%ymm5
5469         vpsrld  $6,%ymm12,%ymm7
5470         vpslld  $26,%ymm12,%ymm2
5471         vmovdqu %ymm5,0-128(%rax)
5472         vpaddd  %ymm15,%ymm5,%ymm5
5473
5474         vpsrld  $11,%ymm12,%ymm1
5475         vpxor   %ymm2,%ymm7,%ymm7
5476         vpslld  $21,%ymm12,%ymm2
5477         vpaddd  -128(%rbp),%ymm5,%ymm5
5478         vpxor   %ymm1,%ymm7,%ymm7
5479
5480         vpsrld  $25,%ymm12,%ymm1
5481         vpxor   %ymm2,%ymm7,%ymm7
5482
5483         vpslld  $7,%ymm12,%ymm2
5484         vpandn  %ymm14,%ymm12,%ymm0
5485         vpand   %ymm13,%ymm12,%ymm3
5486
5487         vpxor   %ymm1,%ymm7,%ymm7
5488
5489         vpsrld  $2,%ymm8,%ymm15
5490         vpxor   %ymm2,%ymm7,%ymm7
5491
5492         vpslld  $30,%ymm8,%ymm1
5493         vpxor   %ymm3,%ymm0,%ymm0
5494         vpxor   %ymm8,%ymm9,%ymm3
5495
5496         vpxor   %ymm1,%ymm15,%ymm15
5497         vpaddd  %ymm7,%ymm5,%ymm5
5498
5499         vpsrld  $13,%ymm8,%ymm1
5500
5501         vpslld  $19,%ymm8,%ymm2
5502         vpaddd  %ymm0,%ymm5,%ymm5
5503         vpand   %ymm3,%ymm4,%ymm4
5504
5505         vpxor   %ymm1,%ymm15,%ymm7
5506
5507         vpsrld  $22,%ymm8,%ymm1
5508         vpxor   %ymm2,%ymm7,%ymm7
5509
5510         vpslld  $10,%ymm8,%ymm2
5511         vpxor   %ymm4,%ymm9,%ymm15
5512         vpaddd  %ymm5,%ymm11,%ymm11
5513
5514         vpxor   %ymm1,%ymm7,%ymm7
5515         vpxor   %ymm2,%ymm7,%ymm7
5516
5517         vpaddd  %ymm5,%ymm15,%ymm15
5518         vpaddd  %ymm7,%ymm15,%ymm15
5519         vmovd   4(%r12),%xmm5
5520         vmovd   4(%r8),%xmm0
5521         vmovd   4(%r13),%xmm1
5522         vmovd   4(%r9),%xmm2
5523         vpinsrd $1,4(%r14),%xmm5,%xmm5
5524         vpinsrd $1,4(%r10),%xmm0,%xmm0
5525         vpinsrd $1,4(%r15),%xmm1,%xmm1
5526         vpunpckldq      %ymm1,%ymm5,%ymm5
5527         vpinsrd $1,4(%r11),%xmm2,%xmm2
5528         vpunpckldq      %ymm2,%ymm0,%ymm0
5529         vinserti128     $1,%xmm0,%ymm5,%ymm5
5530         vpshufb %ymm6,%ymm5,%ymm5
5531         vpsrld  $6,%ymm11,%ymm7
5532         vpslld  $26,%ymm11,%ymm2
5533         vmovdqu %ymm5,32-128(%rax)
5534         vpaddd  %ymm14,%ymm5,%ymm5
5535
5536         vpsrld  $11,%ymm11,%ymm1
5537         vpxor   %ymm2,%ymm7,%ymm7
5538         vpslld  $21,%ymm11,%ymm2
5539         vpaddd  -96(%rbp),%ymm5,%ymm5
5540         vpxor   %ymm1,%ymm7,%ymm7
5541
5542         vpsrld  $25,%ymm11,%ymm1
5543         vpxor   %ymm2,%ymm7,%ymm7
5544
5545         vpslld  $7,%ymm11,%ymm2
5546         vpandn  %ymm13,%ymm11,%ymm0
5547         vpand   %ymm12,%ymm11,%ymm4
5548
5549         vpxor   %ymm1,%ymm7,%ymm7
5550
5551         vpsrld  $2,%ymm15,%ymm14
5552         vpxor   %ymm2,%ymm7,%ymm7
5553
5554         vpslld  $30,%ymm15,%ymm1
5555         vpxor   %ymm4,%ymm0,%ymm0
5556         vpxor   %ymm15,%ymm8,%ymm4
5557
5558         vpxor   %ymm1,%ymm14,%ymm14
5559         vpaddd  %ymm7,%ymm5,%ymm5
5560
5561         vpsrld  $13,%ymm15,%ymm1
5562
5563         vpslld  $19,%ymm15,%ymm2
5564         vpaddd  %ymm0,%ymm5,%ymm5
5565         vpand   %ymm4,%ymm3,%ymm3
5566
5567         vpxor   %ymm1,%ymm14,%ymm7
5568
5569         vpsrld  $22,%ymm15,%ymm1
5570         vpxor   %ymm2,%ymm7,%ymm7
5571
5572         vpslld  $10,%ymm15,%ymm2
5573         vpxor   %ymm3,%ymm8,%ymm14
5574         vpaddd  %ymm5,%ymm10,%ymm10
5575
5576         vpxor   %ymm1,%ymm7,%ymm7
5577         vpxor   %ymm2,%ymm7,%ymm7
5578
5579         vpaddd  %ymm5,%ymm14,%ymm14
5580         vpaddd  %ymm7,%ymm14,%ymm14
5581         vmovd   8(%r12),%xmm5
5582         vmovd   8(%r8),%xmm0
5583         vmovd   8(%r13),%xmm1
5584         vmovd   8(%r9),%xmm2
5585         vpinsrd $1,8(%r14),%xmm5,%xmm5
5586         vpinsrd $1,8(%r10),%xmm0,%xmm0
5587         vpinsrd $1,8(%r15),%xmm1,%xmm1
5588         vpunpckldq      %ymm1,%ymm5,%ymm5
5589         vpinsrd $1,8(%r11),%xmm2,%xmm2
5590         vpunpckldq      %ymm2,%ymm0,%ymm0
5591         vinserti128     $1,%xmm0,%ymm5,%ymm5
5592         vpshufb %ymm6,%ymm5,%ymm5
5593         vpsrld  $6,%ymm10,%ymm7
5594         vpslld  $26,%ymm10,%ymm2
5595         vmovdqu %ymm5,64-128(%rax)
5596         vpaddd  %ymm13,%ymm5,%ymm5
5597
5598         vpsrld  $11,%ymm10,%ymm1
5599         vpxor   %ymm2,%ymm7,%ymm7
5600         vpslld  $21,%ymm10,%ymm2
5601         vpaddd  -64(%rbp),%ymm5,%ymm5
5602         vpxor   %ymm1,%ymm7,%ymm7
5603
5604         vpsrld  $25,%ymm10,%ymm1
5605         vpxor   %ymm2,%ymm7,%ymm7
5606
5607         vpslld  $7,%ymm10,%ymm2
5608         vpandn  %ymm12,%ymm10,%ymm0
5609         vpand   %ymm11,%ymm10,%ymm3
5610
5611         vpxor   %ymm1,%ymm7,%ymm7
5612
5613         vpsrld  $2,%ymm14,%ymm13
5614         vpxor   %ymm2,%ymm7,%ymm7
5615
5616         vpslld  $30,%ymm14,%ymm1
5617         vpxor   %ymm3,%ymm0,%ymm0
5618         vpxor   %ymm14,%ymm15,%ymm3
5619
5620         vpxor   %ymm1,%ymm13,%ymm13
5621         vpaddd  %ymm7,%ymm5,%ymm5
5622
5623         vpsrld  $13,%ymm14,%ymm1
5624
5625         vpslld  $19,%ymm14,%ymm2
5626         vpaddd  %ymm0,%ymm5,%ymm5
5627         vpand   %ymm3,%ymm4,%ymm4
5628
5629         vpxor   %ymm1,%ymm13,%ymm7
5630
5631         vpsrld  $22,%ymm14,%ymm1
5632         vpxor   %ymm2,%ymm7,%ymm7
5633
5634         vpslld  $10,%ymm14,%ymm2
5635         vpxor   %ymm4,%ymm15,%ymm13
5636         vpaddd  %ymm5,%ymm9,%ymm9
5637
5638         vpxor   %ymm1,%ymm7,%ymm7
5639         vpxor   %ymm2,%ymm7,%ymm7
5640
5641         vpaddd  %ymm5,%ymm13,%ymm13
5642         vpaddd  %ymm7,%ymm13,%ymm13
5643         vmovd   12(%r12),%xmm5
5644         vmovd   12(%r8),%xmm0
5645         vmovd   12(%r13),%xmm1
5646         vmovd   12(%r9),%xmm2
5647         vpinsrd $1,12(%r14),%xmm5,%xmm5
5648         vpinsrd $1,12(%r10),%xmm0,%xmm0
5649         vpinsrd $1,12(%r15),%xmm1,%xmm1
5650         vpunpckldq      %ymm1,%ymm5,%ymm5
5651         vpinsrd $1,12(%r11),%xmm2,%xmm2
5652         vpunpckldq      %ymm2,%ymm0,%ymm0
5653         vinserti128     $1,%xmm0,%ymm5,%ymm5
5654         vpshufb %ymm6,%ymm5,%ymm5
5655         vpsrld  $6,%ymm9,%ymm7
5656         vpslld  $26,%ymm9,%ymm2
5657         vmovdqu %ymm5,96-128(%rax)
5658         vpaddd  %ymm12,%ymm5,%ymm5
5659
5660         vpsrld  $11,%ymm9,%ymm1
5661         vpxor   %ymm2,%ymm7,%ymm7
5662         vpslld  $21,%ymm9,%ymm2
5663         vpaddd  -32(%rbp),%ymm5,%ymm5
5664         vpxor   %ymm1,%ymm7,%ymm7
5665
5666         vpsrld  $25,%ymm9,%ymm1
5667         vpxor   %ymm2,%ymm7,%ymm7
5668
5669         vpslld  $7,%ymm9,%ymm2
5670         vpandn  %ymm11,%ymm9,%ymm0
5671         vpand   %ymm10,%ymm9,%ymm4
5672
5673         vpxor   %ymm1,%ymm7,%ymm7
5674
5675         vpsrld  $2,%ymm13,%ymm12
5676         vpxor   %ymm2,%ymm7,%ymm7
5677
5678         vpslld  $30,%ymm13,%ymm1
5679         vpxor   %ymm4,%ymm0,%ymm0
5680         vpxor   %ymm13,%ymm14,%ymm4
5681
5682         vpxor   %ymm1,%ymm12,%ymm12
5683         vpaddd  %ymm7,%ymm5,%ymm5
5684
5685         vpsrld  $13,%ymm13,%ymm1
5686
5687         vpslld  $19,%ymm13,%ymm2
5688         vpaddd  %ymm0,%ymm5,%ymm5
5689         vpand   %ymm4,%ymm3,%ymm3
5690
5691         vpxor   %ymm1,%ymm12,%ymm7
5692
5693         vpsrld  $22,%ymm13,%ymm1
5694         vpxor   %ymm2,%ymm7,%ymm7
5695
5696         vpslld  $10,%ymm13,%ymm2
5697         vpxor   %ymm3,%ymm14,%ymm12
5698         vpaddd  %ymm5,%ymm8,%ymm8
5699
5700         vpxor   %ymm1,%ymm7,%ymm7
5701         vpxor   %ymm2,%ymm7,%ymm7
5702
5703         vpaddd  %ymm5,%ymm12,%ymm12
5704         vpaddd  %ymm7,%ymm12,%ymm12
5705         vmovd   16(%r12),%xmm5
5706         vmovd   16(%r8),%xmm0
5707         vmovd   16(%r13),%xmm1
5708         vmovd   16(%r9),%xmm2
5709         vpinsrd $1,16(%r14),%xmm5,%xmm5
5710         vpinsrd $1,16(%r10),%xmm0,%xmm0
5711         vpinsrd $1,16(%r15),%xmm1,%xmm1
5712         vpunpckldq      %ymm1,%ymm5,%ymm5
5713         vpinsrd $1,16(%r11),%xmm2,%xmm2
5714         vpunpckldq      %ymm2,%ymm0,%ymm0
5715         vinserti128     $1,%xmm0,%ymm5,%ymm5
5716         vpshufb %ymm6,%ymm5,%ymm5
5717         vpsrld  $6,%ymm8,%ymm7
5718         vpslld  $26,%ymm8,%ymm2
5719         vmovdqu %ymm5,128-128(%rax)
5720         vpaddd  %ymm11,%ymm5,%ymm5
5721
5722         vpsrld  $11,%ymm8,%ymm1
5723         vpxor   %ymm2,%ymm7,%ymm7
5724         vpslld  $21,%ymm8,%ymm2
5725         vpaddd  0(%rbp),%ymm5,%ymm5
5726         vpxor   %ymm1,%ymm7,%ymm7
5727
5728         vpsrld  $25,%ymm8,%ymm1
5729         vpxor   %ymm2,%ymm7,%ymm7
5730
5731         vpslld  $7,%ymm8,%ymm2
5732         vpandn  %ymm10,%ymm8,%ymm0
5733         vpand   %ymm9,%ymm8,%ymm3
5734
5735         vpxor   %ymm1,%ymm7,%ymm7
5736
5737         vpsrld  $2,%ymm12,%ymm11
5738         vpxor   %ymm2,%ymm7,%ymm7
5739
5740         vpslld  $30,%ymm12,%ymm1
5741         vpxor   %ymm3,%ymm0,%ymm0
5742         vpxor   %ymm12,%ymm13,%ymm3
5743
5744         vpxor   %ymm1,%ymm11,%ymm11
5745         vpaddd  %ymm7,%ymm5,%ymm5
5746
5747         vpsrld  $13,%ymm12,%ymm1
5748
5749         vpslld  $19,%ymm12,%ymm2
5750         vpaddd  %ymm0,%ymm5,%ymm5
5751         vpand   %ymm3,%ymm4,%ymm4
5752
5753         vpxor   %ymm1,%ymm11,%ymm7
5754
5755         vpsrld  $22,%ymm12,%ymm1
5756         vpxor   %ymm2,%ymm7,%ymm7
5757
5758         vpslld  $10,%ymm12,%ymm2
5759         vpxor   %ymm4,%ymm13,%ymm11
5760         vpaddd  %ymm5,%ymm15,%ymm15
5761
5762         vpxor   %ymm1,%ymm7,%ymm7
5763         vpxor   %ymm2,%ymm7,%ymm7
5764
5765         vpaddd  %ymm5,%ymm11,%ymm11
5766         vpaddd  %ymm7,%ymm11,%ymm11
5767         vmovd   20(%r12),%xmm5
5768         vmovd   20(%r8),%xmm0
5769         vmovd   20(%r13),%xmm1
5770         vmovd   20(%r9),%xmm2
5771         vpinsrd $1,20(%r14),%xmm5,%xmm5
5772         vpinsrd $1,20(%r10),%xmm0,%xmm0
5773         vpinsrd $1,20(%r15),%xmm1,%xmm1
5774         vpunpckldq      %ymm1,%ymm5,%ymm5
5775         vpinsrd $1,20(%r11),%xmm2,%xmm2
5776         vpunpckldq      %ymm2,%ymm0,%ymm0
5777         vinserti128     $1,%xmm0,%ymm5,%ymm5
5778         vpshufb %ymm6,%ymm5,%ymm5
5779         vpsrld  $6,%ymm15,%ymm7
5780         vpslld  $26,%ymm15,%ymm2
5781         vmovdqu %ymm5,160-128(%rax)
5782         vpaddd  %ymm10,%ymm5,%ymm5
5783
5784         vpsrld  $11,%ymm15,%ymm1
5785         vpxor   %ymm2,%ymm7,%ymm7
5786         vpslld  $21,%ymm15,%ymm2
5787         vpaddd  32(%rbp),%ymm5,%ymm5
5788         vpxor   %ymm1,%ymm7,%ymm7
5789
5790         vpsrld  $25,%ymm15,%ymm1
5791         vpxor   %ymm2,%ymm7,%ymm7
5792
5793         vpslld  $7,%ymm15,%ymm2
5794         vpandn  %ymm9,%ymm15,%ymm0
5795         vpand   %ymm8,%ymm15,%ymm4
5796
5797         vpxor   %ymm1,%ymm7,%ymm7
5798
5799         vpsrld  $2,%ymm11,%ymm10
5800         vpxor   %ymm2,%ymm7,%ymm7
5801
5802         vpslld  $30,%ymm11,%ymm1
5803         vpxor   %ymm4,%ymm0,%ymm0
5804         vpxor   %ymm11,%ymm12,%ymm4
5805
5806         vpxor   %ymm1,%ymm10,%ymm10
5807         vpaddd  %ymm7,%ymm5,%ymm5
5808
5809         vpsrld  $13,%ymm11,%ymm1
5810
5811         vpslld  $19,%ymm11,%ymm2
5812         vpaddd  %ymm0,%ymm5,%ymm5
5813         vpand   %ymm4,%ymm3,%ymm3
5814
5815         vpxor   %ymm1,%ymm10,%ymm7
5816
5817         vpsrld  $22,%ymm11,%ymm1
5818         vpxor   %ymm2,%ymm7,%ymm7
5819
5820         vpslld  $10,%ymm11,%ymm2
5821         vpxor   %ymm3,%ymm12,%ymm10
5822         vpaddd  %ymm5,%ymm14,%ymm14
5823
5824         vpxor   %ymm1,%ymm7,%ymm7
5825         vpxor   %ymm2,%ymm7,%ymm7
5826
5827         vpaddd  %ymm5,%ymm10,%ymm10
5828         vpaddd  %ymm7,%ymm10,%ymm10
5829         vmovd   24(%r12),%xmm5
5830         vmovd   24(%r8),%xmm0
5831         vmovd   24(%r13),%xmm1
5832         vmovd   24(%r9),%xmm2
5833         vpinsrd $1,24(%r14),%xmm5,%xmm5
5834         vpinsrd $1,24(%r10),%xmm0,%xmm0
5835         vpinsrd $1,24(%r15),%xmm1,%xmm1
5836         vpunpckldq      %ymm1,%ymm5,%ymm5
5837         vpinsrd $1,24(%r11),%xmm2,%xmm2
5838         vpunpckldq      %ymm2,%ymm0,%ymm0
5839         vinserti128     $1,%xmm0,%ymm5,%ymm5
5840         vpshufb %ymm6,%ymm5,%ymm5
5841         vpsrld  $6,%ymm14,%ymm7
5842         vpslld  $26,%ymm14,%ymm2
5843         vmovdqu %ymm5,192-128(%rax)
5844         vpaddd  %ymm9,%ymm5,%ymm5
5845
5846         vpsrld  $11,%ymm14,%ymm1
5847         vpxor   %ymm2,%ymm7,%ymm7
5848         vpslld  $21,%ymm14,%ymm2
5849         vpaddd  64(%rbp),%ymm5,%ymm5
5850         vpxor   %ymm1,%ymm7,%ymm7
5851
5852         vpsrld  $25,%ymm14,%ymm1
5853         vpxor   %ymm2,%ymm7,%ymm7
5854
5855         vpslld  $7,%ymm14,%ymm2
5856         vpandn  %ymm8,%ymm14,%ymm0
5857         vpand   %ymm15,%ymm14,%ymm3
5858
5859         vpxor   %ymm1,%ymm7,%ymm7
5860
5861         vpsrld  $2,%ymm10,%ymm9
5862         vpxor   %ymm2,%ymm7,%ymm7
5863
5864         vpslld  $30,%ymm10,%ymm1
5865         vpxor   %ymm3,%ymm0,%ymm0
5866         vpxor   %ymm10,%ymm11,%ymm3
5867
5868         vpxor   %ymm1,%ymm9,%ymm9
5869         vpaddd  %ymm7,%ymm5,%ymm5
5870
5871         vpsrld  $13,%ymm10,%ymm1
5872
5873         vpslld  $19,%ymm10,%ymm2
5874         vpaddd  %ymm0,%ymm5,%ymm5
5875         vpand   %ymm3,%ymm4,%ymm4
5876
5877         vpxor   %ymm1,%ymm9,%ymm7
5878
5879         vpsrld  $22,%ymm10,%ymm1
5880         vpxor   %ymm2,%ymm7,%ymm7
5881
5882         vpslld  $10,%ymm10,%ymm2
5883         vpxor   %ymm4,%ymm11,%ymm9
5884         vpaddd  %ymm5,%ymm13,%ymm13
5885
5886         vpxor   %ymm1,%ymm7,%ymm7
5887         vpxor   %ymm2,%ymm7,%ymm7
5888
5889         vpaddd  %ymm5,%ymm9,%ymm9
5890         vpaddd  %ymm7,%ymm9,%ymm9
5891         vmovd   28(%r12),%xmm5
5892         vmovd   28(%r8),%xmm0
5893         vmovd   28(%r13),%xmm1
5894         vmovd   28(%r9),%xmm2
5895         vpinsrd $1,28(%r14),%xmm5,%xmm5
5896         vpinsrd $1,28(%r10),%xmm0,%xmm0
5897         vpinsrd $1,28(%r15),%xmm1,%xmm1
5898         vpunpckldq      %ymm1,%ymm5,%ymm5
5899         vpinsrd $1,28(%r11),%xmm2,%xmm2
5900         vpunpckldq      %ymm2,%ymm0,%ymm0
5901         vinserti128     $1,%xmm0,%ymm5,%ymm5
5902         vpshufb %ymm6,%ymm5,%ymm5
5903         vpsrld  $6,%ymm13,%ymm7
5904         vpslld  $26,%ymm13,%ymm2
5905         vmovdqu %ymm5,224-128(%rax)
5906         vpaddd  %ymm8,%ymm5,%ymm5
5907
5908         vpsrld  $11,%ymm13,%ymm1
5909         vpxor   %ymm2,%ymm7,%ymm7
5910         vpslld  $21,%ymm13,%ymm2
5911         vpaddd  96(%rbp),%ymm5,%ymm5
5912         vpxor   %ymm1,%ymm7,%ymm7
5913
5914         vpsrld  $25,%ymm13,%ymm1
5915         vpxor   %ymm2,%ymm7,%ymm7
5916
5917         vpslld  $7,%ymm13,%ymm2
5918         vpandn  %ymm15,%ymm13,%ymm0
5919         vpand   %ymm14,%ymm13,%ymm4
5920
5921         vpxor   %ymm1,%ymm7,%ymm7
5922
5923         vpsrld  $2,%ymm9,%ymm8
5924         vpxor   %ymm2,%ymm7,%ymm7
5925
5926         vpslld  $30,%ymm9,%ymm1
5927         vpxor   %ymm4,%ymm0,%ymm0
5928         vpxor   %ymm9,%ymm10,%ymm4
5929
5930         vpxor   %ymm1,%ymm8,%ymm8
5931         vpaddd  %ymm7,%ymm5,%ymm5
5932
5933         vpsrld  $13,%ymm9,%ymm1
5934
5935         vpslld  $19,%ymm9,%ymm2
5936         vpaddd  %ymm0,%ymm5,%ymm5
5937         vpand   %ymm4,%ymm3,%ymm3
5938
5939         vpxor   %ymm1,%ymm8,%ymm7
5940
5941         vpsrld  $22,%ymm9,%ymm1
5942         vpxor   %ymm2,%ymm7,%ymm7
5943
5944         vpslld  $10,%ymm9,%ymm2
5945         vpxor   %ymm3,%ymm10,%ymm8
5946         vpaddd  %ymm5,%ymm12,%ymm12
5947
5948         vpxor   %ymm1,%ymm7,%ymm7
5949         vpxor   %ymm2,%ymm7,%ymm7
5950
5951         vpaddd  %ymm5,%ymm8,%ymm8
5952         vpaddd  %ymm7,%ymm8,%ymm8
5953         addq    $256,%rbp
5954         vmovd   32(%r12),%xmm5
5955         vmovd   32(%r8),%xmm0
5956         vmovd   32(%r13),%xmm1
5957         vmovd   32(%r9),%xmm2
5958         vpinsrd $1,32(%r14),%xmm5,%xmm5
5959         vpinsrd $1,32(%r10),%xmm0,%xmm0
5960         vpinsrd $1,32(%r15),%xmm1,%xmm1
5961         vpunpckldq      %ymm1,%ymm5,%ymm5
5962         vpinsrd $1,32(%r11),%xmm2,%xmm2
5963         vpunpckldq      %ymm2,%ymm0,%ymm0
5964         vinserti128     $1,%xmm0,%ymm5,%ymm5
5965         vpshufb %ymm6,%ymm5,%ymm5
5966         vpsrld  $6,%ymm12,%ymm7
5967         vpslld  $26,%ymm12,%ymm2
5968         vmovdqu %ymm5,256-256-128(%rbx)
5969         vpaddd  %ymm15,%ymm5,%ymm5
5970
5971         vpsrld  $11,%ymm12,%ymm1
5972         vpxor   %ymm2,%ymm7,%ymm7
5973         vpslld  $21,%ymm12,%ymm2
5974         vpaddd  -128(%rbp),%ymm5,%ymm5
5975         vpxor   %ymm1,%ymm7,%ymm7
5976
5977         vpsrld  $25,%ymm12,%ymm1
5978         vpxor   %ymm2,%ymm7,%ymm7
5979
5980         vpslld  $7,%ymm12,%ymm2
5981         vpandn  %ymm14,%ymm12,%ymm0
5982         vpand   %ymm13,%ymm12,%ymm3
5983
5984         vpxor   %ymm1,%ymm7,%ymm7
5985
5986         vpsrld  $2,%ymm8,%ymm15
5987         vpxor   %ymm2,%ymm7,%ymm7
5988
5989         vpslld  $30,%ymm8,%ymm1
5990         vpxor   %ymm3,%ymm0,%ymm0
5991         vpxor   %ymm8,%ymm9,%ymm3
5992
5993         vpxor   %ymm1,%ymm15,%ymm15
5994         vpaddd  %ymm7,%ymm5,%ymm5
5995
5996         vpsrld  $13,%ymm8,%ymm1
5997
5998         vpslld  $19,%ymm8,%ymm2
5999         vpaddd  %ymm0,%ymm5,%ymm5
6000         vpand   %ymm3,%ymm4,%ymm4
6001
6002         vpxor   %ymm1,%ymm15,%ymm7
6003
6004         vpsrld  $22,%ymm8,%ymm1
6005         vpxor   %ymm2,%ymm7,%ymm7
6006
6007         vpslld  $10,%ymm8,%ymm2
6008         vpxor   %ymm4,%ymm9,%ymm15
6009         vpaddd  %ymm5,%ymm11,%ymm11
6010
6011         vpxor   %ymm1,%ymm7,%ymm7
6012         vpxor   %ymm2,%ymm7,%ymm7
6013
6014         vpaddd  %ymm5,%ymm15,%ymm15
6015         vpaddd  %ymm7,%ymm15,%ymm15
6016         vmovd   36(%r12),%xmm5
6017         vmovd   36(%r8),%xmm0
6018         vmovd   36(%r13),%xmm1
6019         vmovd   36(%r9),%xmm2
6020         vpinsrd $1,36(%r14),%xmm5,%xmm5
6021         vpinsrd $1,36(%r10),%xmm0,%xmm0
6022         vpinsrd $1,36(%r15),%xmm1,%xmm1
6023         vpunpckldq      %ymm1,%ymm5,%ymm5
6024         vpinsrd $1,36(%r11),%xmm2,%xmm2
6025         vpunpckldq      %ymm2,%ymm0,%ymm0
6026         vinserti128     $1,%xmm0,%ymm5,%ymm5
6027         vpshufb %ymm6,%ymm5,%ymm5
6028         vpsrld  $6,%ymm11,%ymm7
6029         vpslld  $26,%ymm11,%ymm2
6030         vmovdqu %ymm5,288-256-128(%rbx)
6031         vpaddd  %ymm14,%ymm5,%ymm5
6032
6033         vpsrld  $11,%ymm11,%ymm1
6034         vpxor   %ymm2,%ymm7,%ymm7
6035         vpslld  $21,%ymm11,%ymm2
6036         vpaddd  -96(%rbp),%ymm5,%ymm5
6037         vpxor   %ymm1,%ymm7,%ymm7
6038
6039         vpsrld  $25,%ymm11,%ymm1
6040         vpxor   %ymm2,%ymm7,%ymm7
6041
6042         vpslld  $7,%ymm11,%ymm2
6043         vpandn  %ymm13,%ymm11,%ymm0
6044         vpand   %ymm12,%ymm11,%ymm4
6045
6046         vpxor   %ymm1,%ymm7,%ymm7
6047
6048         vpsrld  $2,%ymm15,%ymm14
6049         vpxor   %ymm2,%ymm7,%ymm7
6050
6051         vpslld  $30,%ymm15,%ymm1
6052         vpxor   %ymm4,%ymm0,%ymm0
6053         vpxor   %ymm15,%ymm8,%ymm4
6054
6055         vpxor   %ymm1,%ymm14,%ymm14
6056         vpaddd  %ymm7,%ymm5,%ymm5
6057
6058         vpsrld  $13,%ymm15,%ymm1
6059
6060         vpslld  $19,%ymm15,%ymm2
6061         vpaddd  %ymm0,%ymm5,%ymm5
6062         vpand   %ymm4,%ymm3,%ymm3
6063
6064         vpxor   %ymm1,%ymm14,%ymm7
6065
6066         vpsrld  $22,%ymm15,%ymm1
6067         vpxor   %ymm2,%ymm7,%ymm7
6068
6069         vpslld  $10,%ymm15,%ymm2
6070         vpxor   %ymm3,%ymm8,%ymm14
6071         vpaddd  %ymm5,%ymm10,%ymm10
6072
6073         vpxor   %ymm1,%ymm7,%ymm7
6074         vpxor   %ymm2,%ymm7,%ymm7
6075
6076         vpaddd  %ymm5,%ymm14,%ymm14
6077         vpaddd  %ymm7,%ymm14,%ymm14
6078         vmovd   40(%r12),%xmm5
6079         vmovd   40(%r8),%xmm0
6080         vmovd   40(%r13),%xmm1
6081         vmovd   40(%r9),%xmm2
6082         vpinsrd $1,40(%r14),%xmm5,%xmm5
6083         vpinsrd $1,40(%r10),%xmm0,%xmm0
6084         vpinsrd $1,40(%r15),%xmm1,%xmm1
6085         vpunpckldq      %ymm1,%ymm5,%ymm5
6086         vpinsrd $1,40(%r11),%xmm2,%xmm2
6087         vpunpckldq      %ymm2,%ymm0,%ymm0
6088         vinserti128     $1,%xmm0,%ymm5,%ymm5
6089         vpshufb %ymm6,%ymm5,%ymm5
6090         vpsrld  $6,%ymm10,%ymm7
6091         vpslld  $26,%ymm10,%ymm2
6092         vmovdqu %ymm5,320-256-128(%rbx)
6093         vpaddd  %ymm13,%ymm5,%ymm5
6094
6095         vpsrld  $11,%ymm10,%ymm1
6096         vpxor   %ymm2,%ymm7,%ymm7
6097         vpslld  $21,%ymm10,%ymm2
6098         vpaddd  -64(%rbp),%ymm5,%ymm5
6099         vpxor   %ymm1,%ymm7,%ymm7
6100
6101         vpsrld  $25,%ymm10,%ymm1
6102         vpxor   %ymm2,%ymm7,%ymm7
6103
6104         vpslld  $7,%ymm10,%ymm2
6105         vpandn  %ymm12,%ymm10,%ymm0
6106         vpand   %ymm11,%ymm10,%ymm3
6107
6108         vpxor   %ymm1,%ymm7,%ymm7
6109
6110         vpsrld  $2,%ymm14,%ymm13
6111         vpxor   %ymm2,%ymm7,%ymm7
6112
6113         vpslld  $30,%ymm14,%ymm1
6114         vpxor   %ymm3,%ymm0,%ymm0
6115         vpxor   %ymm14,%ymm15,%ymm3
6116
6117         vpxor   %ymm1,%ymm13,%ymm13
6118         vpaddd  %ymm7,%ymm5,%ymm5
6119
6120         vpsrld  $13,%ymm14,%ymm1
6121
6122         vpslld  $19,%ymm14,%ymm2
6123         vpaddd  %ymm0,%ymm5,%ymm5
6124         vpand   %ymm3,%ymm4,%ymm4
6125
6126         vpxor   %ymm1,%ymm13,%ymm7
6127
6128         vpsrld  $22,%ymm14,%ymm1
6129         vpxor   %ymm2,%ymm7,%ymm7
6130
6131         vpslld  $10,%ymm14,%ymm2
6132         vpxor   %ymm4,%ymm15,%ymm13
6133         vpaddd  %ymm5,%ymm9,%ymm9
6134
6135         vpxor   %ymm1,%ymm7,%ymm7
6136         vpxor   %ymm2,%ymm7,%ymm7
6137
6138         vpaddd  %ymm5,%ymm13,%ymm13
6139         vpaddd  %ymm7,%ymm13,%ymm13
6140         vmovd   44(%r12),%xmm5
6141         vmovd   44(%r8),%xmm0
6142         vmovd   44(%r13),%xmm1
6143         vmovd   44(%r9),%xmm2
6144         vpinsrd $1,44(%r14),%xmm5,%xmm5
6145         vpinsrd $1,44(%r10),%xmm0,%xmm0
6146         vpinsrd $1,44(%r15),%xmm1,%xmm1
6147         vpunpckldq      %ymm1,%ymm5,%ymm5
6148         vpinsrd $1,44(%r11),%xmm2,%xmm2
6149         vpunpckldq      %ymm2,%ymm0,%ymm0
6150         vinserti128     $1,%xmm0,%ymm5,%ymm5
6151         vpshufb %ymm6,%ymm5,%ymm5
6152         vpsrld  $6,%ymm9,%ymm7
6153         vpslld  $26,%ymm9,%ymm2
6154         vmovdqu %ymm5,352-256-128(%rbx)
6155         vpaddd  %ymm12,%ymm5,%ymm5
6156
6157         vpsrld  $11,%ymm9,%ymm1
6158         vpxor   %ymm2,%ymm7,%ymm7
6159         vpslld  $21,%ymm9,%ymm2
6160         vpaddd  -32(%rbp),%ymm5,%ymm5
6161         vpxor   %ymm1,%ymm7,%ymm7
6162
6163         vpsrld  $25,%ymm9,%ymm1
6164         vpxor   %ymm2,%ymm7,%ymm7
6165
6166         vpslld  $7,%ymm9,%ymm2
6167         vpandn  %ymm11,%ymm9,%ymm0
6168         vpand   %ymm10,%ymm9,%ymm4
6169
6170         vpxor   %ymm1,%ymm7,%ymm7
6171
6172         vpsrld  $2,%ymm13,%ymm12
6173         vpxor   %ymm2,%ymm7,%ymm7
6174
6175         vpslld  $30,%ymm13,%ymm1
6176         vpxor   %ymm4,%ymm0,%ymm0
6177         vpxor   %ymm13,%ymm14,%ymm4
6178
6179         vpxor   %ymm1,%ymm12,%ymm12
6180         vpaddd  %ymm7,%ymm5,%ymm5
6181
6182         vpsrld  $13,%ymm13,%ymm1
6183
6184         vpslld  $19,%ymm13,%ymm2
6185         vpaddd  %ymm0,%ymm5,%ymm5
6186         vpand   %ymm4,%ymm3,%ymm3
6187
6188         vpxor   %ymm1,%ymm12,%ymm7
6189
6190         vpsrld  $22,%ymm13,%ymm1
6191         vpxor   %ymm2,%ymm7,%ymm7
6192
6193         vpslld  $10,%ymm13,%ymm2
6194         vpxor   %ymm3,%ymm14,%ymm12
6195         vpaddd  %ymm5,%ymm8,%ymm8
6196
6197         vpxor   %ymm1,%ymm7,%ymm7
6198         vpxor   %ymm2,%ymm7,%ymm7
6199
6200         vpaddd  %ymm5,%ymm12,%ymm12
6201         vpaddd  %ymm7,%ymm12,%ymm12
6202         vmovd   48(%r12),%xmm5
6203         vmovd   48(%r8),%xmm0
6204         vmovd   48(%r13),%xmm1
6205         vmovd   48(%r9),%xmm2
6206         vpinsrd $1,48(%r14),%xmm5,%xmm5
6207         vpinsrd $1,48(%r10),%xmm0,%xmm0
6208         vpinsrd $1,48(%r15),%xmm1,%xmm1
6209         vpunpckldq      %ymm1,%ymm5,%ymm5
6210         vpinsrd $1,48(%r11),%xmm2,%xmm2
6211         vpunpckldq      %ymm2,%ymm0,%ymm0
6212         vinserti128     $1,%xmm0,%ymm5,%ymm5
6213         vpshufb %ymm6,%ymm5,%ymm5
6214         vpsrld  $6,%ymm8,%ymm7
6215         vpslld  $26,%ymm8,%ymm2
6216         vmovdqu %ymm5,384-256-128(%rbx)
6217         vpaddd  %ymm11,%ymm5,%ymm5
6218
6219         vpsrld  $11,%ymm8,%ymm1
6220         vpxor   %ymm2,%ymm7,%ymm7
6221         vpslld  $21,%ymm8,%ymm2
6222         vpaddd  0(%rbp),%ymm5,%ymm5
6223         vpxor   %ymm1,%ymm7,%ymm7
6224
6225         vpsrld  $25,%ymm8,%ymm1
6226         vpxor   %ymm2,%ymm7,%ymm7
6227
6228         vpslld  $7,%ymm8,%ymm2
6229         vpandn  %ymm10,%ymm8,%ymm0
6230         vpand   %ymm9,%ymm8,%ymm3
6231
6232         vpxor   %ymm1,%ymm7,%ymm7
6233
6234         vpsrld  $2,%ymm12,%ymm11
6235         vpxor   %ymm2,%ymm7,%ymm7
6236
6237         vpslld  $30,%ymm12,%ymm1
6238         vpxor   %ymm3,%ymm0,%ymm0
6239         vpxor   %ymm12,%ymm13,%ymm3
6240
6241         vpxor   %ymm1,%ymm11,%ymm11
6242         vpaddd  %ymm7,%ymm5,%ymm5
6243
6244         vpsrld  $13,%ymm12,%ymm1
6245
6246         vpslld  $19,%ymm12,%ymm2
6247         vpaddd  %ymm0,%ymm5,%ymm5
6248         vpand   %ymm3,%ymm4,%ymm4
6249
6250         vpxor   %ymm1,%ymm11,%ymm7
6251
6252         vpsrld  $22,%ymm12,%ymm1
6253         vpxor   %ymm2,%ymm7,%ymm7
6254
6255         vpslld  $10,%ymm12,%ymm2
6256         vpxor   %ymm4,%ymm13,%ymm11
6257         vpaddd  %ymm5,%ymm15,%ymm15
6258
6259         vpxor   %ymm1,%ymm7,%ymm7
6260         vpxor   %ymm2,%ymm7,%ymm7
6261
6262         vpaddd  %ymm5,%ymm11,%ymm11
6263         vpaddd  %ymm7,%ymm11,%ymm11
6264         vmovd   52(%r12),%xmm5
6265         vmovd   52(%r8),%xmm0
6266         vmovd   52(%r13),%xmm1
6267         vmovd   52(%r9),%xmm2
6268         vpinsrd $1,52(%r14),%xmm5,%xmm5
6269         vpinsrd $1,52(%r10),%xmm0,%xmm0
6270         vpinsrd $1,52(%r15),%xmm1,%xmm1
6271         vpunpckldq      %ymm1,%ymm5,%ymm5
6272         vpinsrd $1,52(%r11),%xmm2,%xmm2
6273         vpunpckldq      %ymm2,%ymm0,%ymm0
6274         vinserti128     $1,%xmm0,%ymm5,%ymm5
6275         vpshufb %ymm6,%ymm5,%ymm5
6276         vpsrld  $6,%ymm15,%ymm7
6277         vpslld  $26,%ymm15,%ymm2
6278         vmovdqu %ymm5,416-256-128(%rbx)
6279         vpaddd  %ymm10,%ymm5,%ymm5
6280
6281         vpsrld  $11,%ymm15,%ymm1
6282         vpxor   %ymm2,%ymm7,%ymm7
6283         vpslld  $21,%ymm15,%ymm2
6284         vpaddd  32(%rbp),%ymm5,%ymm5
6285         vpxor   %ymm1,%ymm7,%ymm7
6286
6287         vpsrld  $25,%ymm15,%ymm1
6288         vpxor   %ymm2,%ymm7,%ymm7
6289
6290         vpslld  $7,%ymm15,%ymm2
6291         vpandn  %ymm9,%ymm15,%ymm0
6292         vpand   %ymm8,%ymm15,%ymm4
6293
6294         vpxor   %ymm1,%ymm7,%ymm7
6295
6296         vpsrld  $2,%ymm11,%ymm10
6297         vpxor   %ymm2,%ymm7,%ymm7
6298
6299         vpslld  $30,%ymm11,%ymm1
6300         vpxor   %ymm4,%ymm0,%ymm0
6301         vpxor   %ymm11,%ymm12,%ymm4
6302
6303         vpxor   %ymm1,%ymm10,%ymm10
6304         vpaddd  %ymm7,%ymm5,%ymm5
6305
6306         vpsrld  $13,%ymm11,%ymm1
6307
6308         vpslld  $19,%ymm11,%ymm2
6309         vpaddd  %ymm0,%ymm5,%ymm5
6310         vpand   %ymm4,%ymm3,%ymm3
6311
6312         vpxor   %ymm1,%ymm10,%ymm7
6313
6314         vpsrld  $22,%ymm11,%ymm1
6315         vpxor   %ymm2,%ymm7,%ymm7
6316
6317         vpslld  $10,%ymm11,%ymm2
6318         vpxor   %ymm3,%ymm12,%ymm10
6319         vpaddd  %ymm5,%ymm14,%ymm14
6320
6321         vpxor   %ymm1,%ymm7,%ymm7
6322         vpxor   %ymm2,%ymm7,%ymm7
6323
6324         vpaddd  %ymm5,%ymm10,%ymm10
6325         vpaddd  %ymm7,%ymm10,%ymm10
6326         vmovd   56(%r12),%xmm5
6327         vmovd   56(%r8),%xmm0
6328         vmovd   56(%r13),%xmm1
6329         vmovd   56(%r9),%xmm2
6330         vpinsrd $1,56(%r14),%xmm5,%xmm5
6331         vpinsrd $1,56(%r10),%xmm0,%xmm0
6332         vpinsrd $1,56(%r15),%xmm1,%xmm1
6333         vpunpckldq      %ymm1,%ymm5,%ymm5
6334         vpinsrd $1,56(%r11),%xmm2,%xmm2
6335         vpunpckldq      %ymm2,%ymm0,%ymm0
6336         vinserti128     $1,%xmm0,%ymm5,%ymm5
6337         vpshufb %ymm6,%ymm5,%ymm5
6338         vpsrld  $6,%ymm14,%ymm7
6339         vpslld  $26,%ymm14,%ymm2
6340         vmovdqu %ymm5,448-256-128(%rbx)
6341         vpaddd  %ymm9,%ymm5,%ymm5
6342
6343         vpsrld  $11,%ymm14,%ymm1
6344         vpxor   %ymm2,%ymm7,%ymm7
6345         vpslld  $21,%ymm14,%ymm2
6346         vpaddd  64(%rbp),%ymm5,%ymm5
6347         vpxor   %ymm1,%ymm7,%ymm7
6348
6349         vpsrld  $25,%ymm14,%ymm1
6350         vpxor   %ymm2,%ymm7,%ymm7
6351
6352         vpslld  $7,%ymm14,%ymm2
6353         vpandn  %ymm8,%ymm14,%ymm0
6354         vpand   %ymm15,%ymm14,%ymm3
6355
6356         vpxor   %ymm1,%ymm7,%ymm7
6357
6358         vpsrld  $2,%ymm10,%ymm9
6359         vpxor   %ymm2,%ymm7,%ymm7
6360
6361         vpslld  $30,%ymm10,%ymm1
6362         vpxor   %ymm3,%ymm0,%ymm0
6363         vpxor   %ymm10,%ymm11,%ymm3
6364
6365         vpxor   %ymm1,%ymm9,%ymm9
6366         vpaddd  %ymm7,%ymm5,%ymm5
6367
6368         vpsrld  $13,%ymm10,%ymm1
6369
6370         vpslld  $19,%ymm10,%ymm2
6371         vpaddd  %ymm0,%ymm5,%ymm5
6372         vpand   %ymm3,%ymm4,%ymm4
6373
6374         vpxor   %ymm1,%ymm9,%ymm7
6375
6376         vpsrld  $22,%ymm10,%ymm1
6377         vpxor   %ymm2,%ymm7,%ymm7
6378
6379         vpslld  $10,%ymm10,%ymm2
6380         vpxor   %ymm4,%ymm11,%ymm9
6381         vpaddd  %ymm5,%ymm13,%ymm13
6382
6383         vpxor   %ymm1,%ymm7,%ymm7
6384         vpxor   %ymm2,%ymm7,%ymm7
6385
6386         vpaddd  %ymm5,%ymm9,%ymm9
6387         vpaddd  %ymm7,%ymm9,%ymm9
6388         vmovd   60(%r12),%xmm5
6389         leaq    64(%r12),%r12
6390         vmovd   60(%r8),%xmm0
6391         leaq    64(%r8),%r8
6392         vmovd   60(%r13),%xmm1
6393         leaq    64(%r13),%r13
6394         vmovd   60(%r9),%xmm2
6395         leaq    64(%r9),%r9
6396         vpinsrd $1,60(%r14),%xmm5,%xmm5
6397         leaq    64(%r14),%r14
6398         vpinsrd $1,60(%r10),%xmm0,%xmm0
6399         leaq    64(%r10),%r10
6400         vpinsrd $1,60(%r15),%xmm1,%xmm1
6401         leaq    64(%r15),%r15
6402         vpunpckldq      %ymm1,%ymm5,%ymm5
6403         vpinsrd $1,60(%r11),%xmm2,%xmm2
6404         leaq    64(%r11),%r11
6405         vpunpckldq      %ymm2,%ymm0,%ymm0
6406         vinserti128     $1,%xmm0,%ymm5,%ymm5
6407         vpshufb %ymm6,%ymm5,%ymm5
6408         vpsrld  $6,%ymm13,%ymm7
6409         vpslld  $26,%ymm13,%ymm2
6410         vmovdqu %ymm5,480-256-128(%rbx)
6411         vpaddd  %ymm8,%ymm5,%ymm5
6412
6413         vpsrld  $11,%ymm13,%ymm1
6414         vpxor   %ymm2,%ymm7,%ymm7
6415         vpslld  $21,%ymm13,%ymm2
6416         vpaddd  96(%rbp),%ymm5,%ymm5
6417         vpxor   %ymm1,%ymm7,%ymm7
6418
6419         vpsrld  $25,%ymm13,%ymm1
6420         vpxor   %ymm2,%ymm7,%ymm7
6421         prefetcht0      63(%r12)
6422         vpslld  $7,%ymm13,%ymm2
6423         vpandn  %ymm15,%ymm13,%ymm0
6424         vpand   %ymm14,%ymm13,%ymm4
6425         prefetcht0      63(%r13)
6426         vpxor   %ymm1,%ymm7,%ymm7
6427
6428         vpsrld  $2,%ymm9,%ymm8
6429         vpxor   %ymm2,%ymm7,%ymm7
6430         prefetcht0      63(%r14)
6431         vpslld  $30,%ymm9,%ymm1
6432         vpxor   %ymm4,%ymm0,%ymm0
6433         vpxor   %ymm9,%ymm10,%ymm4
6434         prefetcht0      63(%r15)
6435         vpxor   %ymm1,%ymm8,%ymm8
6436         vpaddd  %ymm7,%ymm5,%ymm5
6437
6438         vpsrld  $13,%ymm9,%ymm1
6439         prefetcht0      63(%r8)
6440         vpslld  $19,%ymm9,%ymm2
6441         vpaddd  %ymm0,%ymm5,%ymm5
6442         vpand   %ymm4,%ymm3,%ymm3
6443         prefetcht0      63(%r9)
6444         vpxor   %ymm1,%ymm8,%ymm7
6445
6446         vpsrld  $22,%ymm9,%ymm1
6447         vpxor   %ymm2,%ymm7,%ymm7
6448         prefetcht0      63(%r10)
6449         vpslld  $10,%ymm9,%ymm2
6450         vpxor   %ymm3,%ymm10,%ymm8
6451         vpaddd  %ymm5,%ymm12,%ymm12
6452         prefetcht0      63(%r11)
6453         vpxor   %ymm1,%ymm7,%ymm7
6454         vpxor   %ymm2,%ymm7,%ymm7
6455
6456         vpaddd  %ymm5,%ymm8,%ymm8
6457         vpaddd  %ymm7,%ymm8,%ymm8
6458         addq    $256,%rbp
6459         vmovdqu 0-128(%rax),%ymm5
6460         movl    $3,%ecx
6461         jmp     .Loop_16_xx_avx2
6462 .align  32
6463 .Loop_16_xx_avx2:
6464         vmovdqu 32-128(%rax),%ymm6
6465         vpaddd  288-256-128(%rbx),%ymm5,%ymm5
6466
6467         vpsrld  $3,%ymm6,%ymm7
6468         vpsrld  $7,%ymm6,%ymm1
6469         vpslld  $25,%ymm6,%ymm2
6470         vpxor   %ymm1,%ymm7,%ymm7
6471         vpsrld  $18,%ymm6,%ymm1
6472         vpxor   %ymm2,%ymm7,%ymm7
6473         vpslld  $14,%ymm6,%ymm2
6474         vmovdqu 448-256-128(%rbx),%ymm0
6475         vpsrld  $10,%ymm0,%ymm3
6476
6477         vpxor   %ymm1,%ymm7,%ymm7
6478         vpsrld  $17,%ymm0,%ymm1
6479         vpxor   %ymm2,%ymm7,%ymm7
6480         vpslld  $15,%ymm0,%ymm2
6481         vpaddd  %ymm7,%ymm5,%ymm5
6482         vpxor   %ymm1,%ymm3,%ymm7
6483         vpsrld  $19,%ymm0,%ymm1
6484         vpxor   %ymm2,%ymm7,%ymm7
6485         vpslld  $13,%ymm0,%ymm2
6486         vpxor   %ymm1,%ymm7,%ymm7
6487         vpxor   %ymm2,%ymm7,%ymm7
6488         vpaddd  %ymm7,%ymm5,%ymm5
6489         vpsrld  $6,%ymm12,%ymm7
6490         vpslld  $26,%ymm12,%ymm2
6491         vmovdqu %ymm5,0-128(%rax)
6492         vpaddd  %ymm15,%ymm5,%ymm5
6493
6494         vpsrld  $11,%ymm12,%ymm1
6495         vpxor   %ymm2,%ymm7,%ymm7
6496         vpslld  $21,%ymm12,%ymm2
6497         vpaddd  -128(%rbp),%ymm5,%ymm5
6498         vpxor   %ymm1,%ymm7,%ymm7
6499
6500         vpsrld  $25,%ymm12,%ymm1
6501         vpxor   %ymm2,%ymm7,%ymm7
6502
6503         vpslld  $7,%ymm12,%ymm2
6504         vpandn  %ymm14,%ymm12,%ymm0
6505         vpand   %ymm13,%ymm12,%ymm3
6506
6507         vpxor   %ymm1,%ymm7,%ymm7
6508
6509         vpsrld  $2,%ymm8,%ymm15
6510         vpxor   %ymm2,%ymm7,%ymm7
6511
6512         vpslld  $30,%ymm8,%ymm1
6513         vpxor   %ymm3,%ymm0,%ymm0
6514         vpxor   %ymm8,%ymm9,%ymm3
6515
6516         vpxor   %ymm1,%ymm15,%ymm15
6517         vpaddd  %ymm7,%ymm5,%ymm5
6518
6519         vpsrld  $13,%ymm8,%ymm1
6520
6521         vpslld  $19,%ymm8,%ymm2
6522         vpaddd  %ymm0,%ymm5,%ymm5
6523         vpand   %ymm3,%ymm4,%ymm4
6524
6525         vpxor   %ymm1,%ymm15,%ymm7
6526
6527         vpsrld  $22,%ymm8,%ymm1
6528         vpxor   %ymm2,%ymm7,%ymm7
6529
6530         vpslld  $10,%ymm8,%ymm2
6531         vpxor   %ymm4,%ymm9,%ymm15
6532         vpaddd  %ymm5,%ymm11,%ymm11
6533
6534         vpxor   %ymm1,%ymm7,%ymm7
6535         vpxor   %ymm2,%ymm7,%ymm7
6536
6537         vpaddd  %ymm5,%ymm15,%ymm15
6538         vpaddd  %ymm7,%ymm15,%ymm15
6539         vmovdqu 64-128(%rax),%ymm5
6540         vpaddd  320-256-128(%rbx),%ymm6,%ymm6
6541
6542         vpsrld  $3,%ymm5,%ymm7
6543         vpsrld  $7,%ymm5,%ymm1
6544         vpslld  $25,%ymm5,%ymm2
6545         vpxor   %ymm1,%ymm7,%ymm7
6546         vpsrld  $18,%ymm5,%ymm1
6547         vpxor   %ymm2,%ymm7,%ymm7
6548         vpslld  $14,%ymm5,%ymm2
6549         vmovdqu 480-256-128(%rbx),%ymm0
6550         vpsrld  $10,%ymm0,%ymm4
6551
6552         vpxor   %ymm1,%ymm7,%ymm7
6553         vpsrld  $17,%ymm0,%ymm1
6554         vpxor   %ymm2,%ymm7,%ymm7
6555         vpslld  $15,%ymm0,%ymm2
6556         vpaddd  %ymm7,%ymm6,%ymm6
6557         vpxor   %ymm1,%ymm4,%ymm7
6558         vpsrld  $19,%ymm0,%ymm1
6559         vpxor   %ymm2,%ymm7,%ymm7
6560         vpslld  $13,%ymm0,%ymm2
6561         vpxor   %ymm1,%ymm7,%ymm7
6562         vpxor   %ymm2,%ymm7,%ymm7
6563         vpaddd  %ymm7,%ymm6,%ymm6
6564         vpsrld  $6,%ymm11,%ymm7
6565         vpslld  $26,%ymm11,%ymm2
6566         vmovdqu %ymm6,32-128(%rax)
6567         vpaddd  %ymm14,%ymm6,%ymm6
6568
6569         vpsrld  $11,%ymm11,%ymm1
6570         vpxor   %ymm2,%ymm7,%ymm7
6571         vpslld  $21,%ymm11,%ymm2
6572         vpaddd  -96(%rbp),%ymm6,%ymm6
6573         vpxor   %ymm1,%ymm7,%ymm7
6574
6575         vpsrld  $25,%ymm11,%ymm1
6576         vpxor   %ymm2,%ymm7,%ymm7
6577
6578         vpslld  $7,%ymm11,%ymm2
6579         vpandn  %ymm13,%ymm11,%ymm0
6580         vpand   %ymm12,%ymm11,%ymm4
6581
6582         vpxor   %ymm1,%ymm7,%ymm7
6583
6584         vpsrld  $2,%ymm15,%ymm14
6585         vpxor   %ymm2,%ymm7,%ymm7
6586
6587         vpslld  $30,%ymm15,%ymm1
6588         vpxor   %ymm4,%ymm0,%ymm0
6589         vpxor   %ymm15,%ymm8,%ymm4
6590
6591         vpxor   %ymm1,%ymm14,%ymm14
6592         vpaddd  %ymm7,%ymm6,%ymm6
6593
6594         vpsrld  $13,%ymm15,%ymm1
6595
6596         vpslld  $19,%ymm15,%ymm2
6597         vpaddd  %ymm0,%ymm6,%ymm6
6598         vpand   %ymm4,%ymm3,%ymm3
6599
6600         vpxor   %ymm1,%ymm14,%ymm7
6601
6602         vpsrld  $22,%ymm15,%ymm1
6603         vpxor   %ymm2,%ymm7,%ymm7
6604
6605         vpslld  $10,%ymm15,%ymm2
6606         vpxor   %ymm3,%ymm8,%ymm14
6607         vpaddd  %ymm6,%ymm10,%ymm10
6608
6609         vpxor   %ymm1,%ymm7,%ymm7
6610         vpxor   %ymm2,%ymm7,%ymm7
6611
6612         vpaddd  %ymm6,%ymm14,%ymm14
6613         vpaddd  %ymm7,%ymm14,%ymm14
6614         vmovdqu 96-128(%rax),%ymm6
6615         vpaddd  352-256-128(%rbx),%ymm5,%ymm5
6616
6617         vpsrld  $3,%ymm6,%ymm7
6618         vpsrld  $7,%ymm6,%ymm1
6619         vpslld  $25,%ymm6,%ymm2
6620         vpxor   %ymm1,%ymm7,%ymm7
6621         vpsrld  $18,%ymm6,%ymm1
6622         vpxor   %ymm2,%ymm7,%ymm7
6623         vpslld  $14,%ymm6,%ymm2
6624         vmovdqu 0-128(%rax),%ymm0
6625         vpsrld  $10,%ymm0,%ymm3
6626
6627         vpxor   %ymm1,%ymm7,%ymm7
6628         vpsrld  $17,%ymm0,%ymm1
6629         vpxor   %ymm2,%ymm7,%ymm7
6630         vpslld  $15,%ymm0,%ymm2
6631         vpaddd  %ymm7,%ymm5,%ymm5
6632         vpxor   %ymm1,%ymm3,%ymm7
6633         vpsrld  $19,%ymm0,%ymm1
6634         vpxor   %ymm2,%ymm7,%ymm7
6635         vpslld  $13,%ymm0,%ymm2
6636         vpxor   %ymm1,%ymm7,%ymm7
6637         vpxor   %ymm2,%ymm7,%ymm7
6638         vpaddd  %ymm7,%ymm5,%ymm5
6639         vpsrld  $6,%ymm10,%ymm7
6640         vpslld  $26,%ymm10,%ymm2
6641         vmovdqu %ymm5,64-128(%rax)
6642         vpaddd  %ymm13,%ymm5,%ymm5
6643
6644         vpsrld  $11,%ymm10,%ymm1
6645         vpxor   %ymm2,%ymm7,%ymm7
6646         vpslld  $21,%ymm10,%ymm2
6647         vpaddd  -64(%rbp),%ymm5,%ymm5
6648         vpxor   %ymm1,%ymm7,%ymm7
6649
6650         vpsrld  $25,%ymm10,%ymm1
6651         vpxor   %ymm2,%ymm7,%ymm7
6652
6653         vpslld  $7,%ymm10,%ymm2
6654         vpandn  %ymm12,%ymm10,%ymm0
6655         vpand   %ymm11,%ymm10,%ymm3
6656
6657         vpxor   %ymm1,%ymm7,%ymm7
6658
6659         vpsrld  $2,%ymm14,%ymm13
6660         vpxor   %ymm2,%ymm7,%ymm7
6661
6662         vpslld  $30,%ymm14,%ymm1
6663         vpxor   %ymm3,%ymm0,%ymm0
6664         vpxor   %ymm14,%ymm15,%ymm3
6665
6666         vpxor   %ymm1,%ymm13,%ymm13
6667         vpaddd  %ymm7,%ymm5,%ymm5
6668
6669         vpsrld  $13,%ymm14,%ymm1
6670
6671         vpslld  $19,%ymm14,%ymm2
6672         vpaddd  %ymm0,%ymm5,%ymm5
6673         vpand   %ymm3,%ymm4,%ymm4
6674
6675         vpxor   %ymm1,%ymm13,%ymm7
6676
6677         vpsrld  $22,%ymm14,%ymm1
6678         vpxor   %ymm2,%ymm7,%ymm7
6679
6680         vpslld  $10,%ymm14,%ymm2
6681         vpxor   %ymm4,%ymm15,%ymm13
6682         vpaddd  %ymm5,%ymm9,%ymm9
6683
6684         vpxor   %ymm1,%ymm7,%ymm7
6685         vpxor   %ymm2,%ymm7,%ymm7
6686
6687         vpaddd  %ymm5,%ymm13,%ymm13
6688         vpaddd  %ymm7,%ymm13,%ymm13
6689         vmovdqu 128-128(%rax),%ymm5
6690         vpaddd  384-256-128(%rbx),%ymm6,%ymm6
6691
6692         vpsrld  $3,%ymm5,%ymm7
6693         vpsrld  $7,%ymm5,%ymm1
6694         vpslld  $25,%ymm5,%ymm2
6695         vpxor   %ymm1,%ymm7,%ymm7
6696         vpsrld  $18,%ymm5,%ymm1
6697         vpxor   %ymm2,%ymm7,%ymm7
6698         vpslld  $14,%ymm5,%ymm2
6699         vmovdqu 32-128(%rax),%ymm0
6700         vpsrld  $10,%ymm0,%ymm4
6701
6702         vpxor   %ymm1,%ymm7,%ymm7
6703         vpsrld  $17,%ymm0,%ymm1
6704         vpxor   %ymm2,%ymm7,%ymm7
6705         vpslld  $15,%ymm0,%ymm2
6706         vpaddd  %ymm7,%ymm6,%ymm6
6707         vpxor   %ymm1,%ymm4,%ymm7
6708         vpsrld  $19,%ymm0,%ymm1
6709         vpxor   %ymm2,%ymm7,%ymm7
6710         vpslld  $13,%ymm0,%ymm2
6711         vpxor   %ymm1,%ymm7,%ymm7
6712         vpxor   %ymm2,%ymm7,%ymm7
6713         vpaddd  %ymm7,%ymm6,%ymm6
6714         vpsrld  $6,%ymm9,%ymm7
6715         vpslld  $26,%ymm9,%ymm2
6716         vmovdqu %ymm6,96-128(%rax)
6717         vpaddd  %ymm12,%ymm6,%ymm6
6718
6719         vpsrld  $11,%ymm9,%ymm1
6720         vpxor   %ymm2,%ymm7,%ymm7
6721         vpslld  $21,%ymm9,%ymm2
6722         vpaddd  -32(%rbp),%ymm6,%ymm6
6723         vpxor   %ymm1,%ymm7,%ymm7
6724
6725         vpsrld  $25,%ymm9,%ymm1
6726         vpxor   %ymm2,%ymm7,%ymm7
6727
6728         vpslld  $7,%ymm9,%ymm2
6729         vpandn  %ymm11,%ymm9,%ymm0
6730         vpand   %ymm10,%ymm9,%ymm4
6731
6732         vpxor   %ymm1,%ymm7,%ymm7
6733
6734         vpsrld  $2,%ymm13,%ymm12
6735         vpxor   %ymm2,%ymm7,%ymm7
6736
6737         vpslld  $30,%ymm13,%ymm1
6738         vpxor   %ymm4,%ymm0,%ymm0
6739         vpxor   %ymm13,%ymm14,%ymm4
6740
6741         vpxor   %ymm1,%ymm12,%ymm12
6742         vpaddd  %ymm7,%ymm6,%ymm6
6743
6744         vpsrld  $13,%ymm13,%ymm1
6745
6746         vpslld  $19,%ymm13,%ymm2
6747         vpaddd  %ymm0,%ymm6,%ymm6
6748         vpand   %ymm4,%ymm3,%ymm3
6749
6750         vpxor   %ymm1,%ymm12,%ymm7
6751
6752         vpsrld  $22,%ymm13,%ymm1
6753         vpxor   %ymm2,%ymm7,%ymm7
6754
6755         vpslld  $10,%ymm13,%ymm2
6756         vpxor   %ymm3,%ymm14,%ymm12
6757         vpaddd  %ymm6,%ymm8,%ymm8
6758
6759         vpxor   %ymm1,%ymm7,%ymm7
6760         vpxor   %ymm2,%ymm7,%ymm7
6761
6762         vpaddd  %ymm6,%ymm12,%ymm12
6763         vpaddd  %ymm7,%ymm12,%ymm12
6764         vmovdqu 160-128(%rax),%ymm6
6765         vpaddd  416-256-128(%rbx),%ymm5,%ymm5
6766
6767         vpsrld  $3,%ymm6,%ymm7
6768         vpsrld  $7,%ymm6,%ymm1
6769         vpslld  $25,%ymm6,%ymm2
6770         vpxor   %ymm1,%ymm7,%ymm7
6771         vpsrld  $18,%ymm6,%ymm1
6772         vpxor   %ymm2,%ymm7,%ymm7
6773         vpslld  $14,%ymm6,%ymm2
6774         vmovdqu 64-128(%rax),%ymm0
6775         vpsrld  $10,%ymm0,%ymm3
6776
6777         vpxor   %ymm1,%ymm7,%ymm7
6778         vpsrld  $17,%ymm0,%ymm1
6779         vpxor   %ymm2,%ymm7,%ymm7
6780         vpslld  $15,%ymm0,%ymm2
6781         vpaddd  %ymm7,%ymm5,%ymm5
6782         vpxor   %ymm1,%ymm3,%ymm7
6783         vpsrld  $19,%ymm0,%ymm1
6784         vpxor   %ymm2,%ymm7,%ymm7
6785         vpslld  $13,%ymm0,%ymm2
6786         vpxor   %ymm1,%ymm7,%ymm7
6787         vpxor   %ymm2,%ymm7,%ymm7
6788         vpaddd  %ymm7,%ymm5,%ymm5
6789         vpsrld  $6,%ymm8,%ymm7
6790         vpslld  $26,%ymm8,%ymm2
6791         vmovdqu %ymm5,128-128(%rax)
6792         vpaddd  %ymm11,%ymm5,%ymm5
6793
6794         vpsrld  $11,%ymm8,%ymm1
6795         vpxor   %ymm2,%ymm7,%ymm7
6796         vpslld  $21,%ymm8,%ymm2
6797         vpaddd  0(%rbp),%ymm5,%ymm5
6798         vpxor   %ymm1,%ymm7,%ymm7
6799
6800         vpsrld  $25,%ymm8,%ymm1
6801         vpxor   %ymm2,%ymm7,%ymm7
6802
6803         vpslld  $7,%ymm8,%ymm2
6804         vpandn  %ymm10,%ymm8,%ymm0
6805         vpand   %ymm9,%ymm8,%ymm3
6806
6807         vpxor   %ymm1,%ymm7,%ymm7
6808
6809         vpsrld  $2,%ymm12,%ymm11
6810         vpxor   %ymm2,%ymm7,%ymm7
6811
6812         vpslld  $30,%ymm12,%ymm1
6813         vpxor   %ymm3,%ymm0,%ymm0
6814         vpxor   %ymm12,%ymm13,%ymm3
6815
6816         vpxor   %ymm1,%ymm11,%ymm11
6817         vpaddd  %ymm7,%ymm5,%ymm5
6818
6819         vpsrld  $13,%ymm12,%ymm1
6820
6821         vpslld  $19,%ymm12,%ymm2
6822         vpaddd  %ymm0,%ymm5,%ymm5
6823         vpand   %ymm3,%ymm4,%ymm4
6824
6825         vpxor   %ymm1,%ymm11,%ymm7
6826
6827         vpsrld  $22,%ymm12,%ymm1
6828         vpxor   %ymm2,%ymm7,%ymm7
6829
6830         vpslld  $10,%ymm12,%ymm2
6831         vpxor   %ymm4,%ymm13,%ymm11
6832         vpaddd  %ymm5,%ymm15,%ymm15
6833
6834         vpxor   %ymm1,%ymm7,%ymm7
6835         vpxor   %ymm2,%ymm7,%ymm7
6836
6837         vpaddd  %ymm5,%ymm11,%ymm11
6838         vpaddd  %ymm7,%ymm11,%ymm11
6839         vmovdqu 192-128(%rax),%ymm5
6840         vpaddd  448-256-128(%rbx),%ymm6,%ymm6
6841
6842         vpsrld  $3,%ymm5,%ymm7
6843         vpsrld  $7,%ymm5,%ymm1
6844         vpslld  $25,%ymm5,%ymm2
6845         vpxor   %ymm1,%ymm7,%ymm7
6846         vpsrld  $18,%ymm5,%ymm1
6847         vpxor   %ymm2,%ymm7,%ymm7
6848         vpslld  $14,%ymm5,%ymm2
6849         vmovdqu 96-128(%rax),%ymm0
6850         vpsrld  $10,%ymm0,%ymm4
6851
6852         vpxor   %ymm1,%ymm7,%ymm7
6853         vpsrld  $17,%ymm0,%ymm1
6854         vpxor   %ymm2,%ymm7,%ymm7
6855         vpslld  $15,%ymm0,%ymm2
6856         vpaddd  %ymm7,%ymm6,%ymm6
6857         vpxor   %ymm1,%ymm4,%ymm7
6858         vpsrld  $19,%ymm0,%ymm1
6859         vpxor   %ymm2,%ymm7,%ymm7
6860         vpslld  $13,%ymm0,%ymm2
6861         vpxor   %ymm1,%ymm7,%ymm7
6862         vpxor   %ymm2,%ymm7,%ymm7
6863         vpaddd  %ymm7,%ymm6,%ymm6
6864         vpsrld  $6,%ymm15,%ymm7
6865         vpslld  $26,%ymm15,%ymm2
6866         vmovdqu %ymm6,160-128(%rax)
6867         vpaddd  %ymm10,%ymm6,%ymm6
6868
6869         vpsrld  $11,%ymm15,%ymm1
6870         vpxor   %ymm2,%ymm7,%ymm7
6871         vpslld  $21,%ymm15,%ymm2
6872         vpaddd  32(%rbp),%ymm6,%ymm6
6873         vpxor   %ymm1,%ymm7,%ymm7
6874
6875         vpsrld  $25,%ymm15,%ymm1
6876         vpxor   %ymm2,%ymm7,%ymm7
6877
6878         vpslld  $7,%ymm15,%ymm2
6879         vpandn  %ymm9,%ymm15,%ymm0
6880         vpand   %ymm8,%ymm15,%ymm4
6881
6882         vpxor   %ymm1,%ymm7,%ymm7
6883
6884         vpsrld  $2,%ymm11,%ymm10
6885         vpxor   %ymm2,%ymm7,%ymm7
6886
6887         vpslld  $30,%ymm11,%ymm1
6888         vpxor   %ymm4,%ymm0,%ymm0
6889         vpxor   %ymm11,%ymm12,%ymm4
6890
6891         vpxor   %ymm1,%ymm10,%ymm10
6892         vpaddd  %ymm7,%ymm6,%ymm6
6893
6894         vpsrld  $13,%ymm11,%ymm1
6895
6896         vpslld  $19,%ymm11,%ymm2
6897         vpaddd  %ymm0,%ymm6,%ymm6
6898         vpand   %ymm4,%ymm3,%ymm3
6899
6900         vpxor   %ymm1,%ymm10,%ymm7
6901
6902         vpsrld  $22,%ymm11,%ymm1
6903         vpxor   %ymm2,%ymm7,%ymm7
6904
6905         vpslld  $10,%ymm11,%ymm2
6906         vpxor   %ymm3,%ymm12,%ymm10
6907         vpaddd  %ymm6,%ymm14,%ymm14
6908
6909         vpxor   %ymm1,%ymm7,%ymm7
6910         vpxor   %ymm2,%ymm7,%ymm7
6911
6912         vpaddd  %ymm6,%ymm10,%ymm10
6913         vpaddd  %ymm7,%ymm10,%ymm10
6914         vmovdqu 224-128(%rax),%ymm6
6915         vpaddd  480-256-128(%rbx),%ymm5,%ymm5
6916
6917         vpsrld  $3,%ymm6,%ymm7
6918         vpsrld  $7,%ymm6,%ymm1
6919         vpslld  $25,%ymm6,%ymm2
6920         vpxor   %ymm1,%ymm7,%ymm7
6921         vpsrld  $18,%ymm6,%ymm1
6922         vpxor   %ymm2,%ymm7,%ymm7
6923         vpslld  $14,%ymm6,%ymm2
6924         vmovdqu 128-128(%rax),%ymm0
6925         vpsrld  $10,%ymm0,%ymm3
6926
6927         vpxor   %ymm1,%ymm7,%ymm7
6928         vpsrld  $17,%ymm0,%ymm1
6929         vpxor   %ymm2,%ymm7,%ymm7
6930         vpslld  $15,%ymm0,%ymm2
6931         vpaddd  %ymm7,%ymm5,%ymm5
6932         vpxor   %ymm1,%ymm3,%ymm7
6933         vpsrld  $19,%ymm0,%ymm1
6934         vpxor   %ymm2,%ymm7,%ymm7
6935         vpslld  $13,%ymm0,%ymm2
6936         vpxor   %ymm1,%ymm7,%ymm7
6937         vpxor   %ymm2,%ymm7,%ymm7
6938         vpaddd  %ymm7,%ymm5,%ymm5
6939         vpsrld  $6,%ymm14,%ymm7
6940         vpslld  $26,%ymm14,%ymm2
6941         vmovdqu %ymm5,192-128(%rax)
6942         vpaddd  %ymm9,%ymm5,%ymm5
6943
6944         vpsrld  $11,%ymm14,%ymm1
6945         vpxor   %ymm2,%ymm7,%ymm7
6946         vpslld  $21,%ymm14,%ymm2
6947         vpaddd  64(%rbp),%ymm5,%ymm5
6948         vpxor   %ymm1,%ymm7,%ymm7
6949
6950         vpsrld  $25,%ymm14,%ymm1
6951         vpxor   %ymm2,%ymm7,%ymm7
6952
6953         vpslld  $7,%ymm14,%ymm2
6954         vpandn  %ymm8,%ymm14,%ymm0
6955         vpand   %ymm15,%ymm14,%ymm3
6956
6957         vpxor   %ymm1,%ymm7,%ymm7
6958
6959         vpsrld  $2,%ymm10,%ymm9
6960         vpxor   %ymm2,%ymm7,%ymm7
6961
6962         vpslld  $30,%ymm10,%ymm1
6963         vpxor   %ymm3,%ymm0,%ymm0
6964         vpxor   %ymm10,%ymm11,%ymm3
6965
6966         vpxor   %ymm1,%ymm9,%ymm9
6967         vpaddd  %ymm7,%ymm5,%ymm5
6968
6969         vpsrld  $13,%ymm10,%ymm1
6970
6971         vpslld  $19,%ymm10,%ymm2
6972         vpaddd  %ymm0,%ymm5,%ymm5
6973         vpand   %ymm3,%ymm4,%ymm4
6974
6975         vpxor   %ymm1,%ymm9,%ymm7
6976
6977         vpsrld  $22,%ymm10,%ymm1
6978         vpxor   %ymm2,%ymm7,%ymm7
6979
6980         vpslld  $10,%ymm10,%ymm2
6981         vpxor   %ymm4,%ymm11,%ymm9
6982         vpaddd  %ymm5,%ymm13,%ymm13
6983
6984         vpxor   %ymm1,%ymm7,%ymm7
6985         vpxor   %ymm2,%ymm7,%ymm7
6986
6987         vpaddd  %ymm5,%ymm9,%ymm9
6988         vpaddd  %ymm7,%ymm9,%ymm9
6989         vmovdqu 256-256-128(%rbx),%ymm5
6990         vpaddd  0-128(%rax),%ymm6,%ymm6
6991
6992         vpsrld  $3,%ymm5,%ymm7
6993         vpsrld  $7,%ymm5,%ymm1
6994         vpslld  $25,%ymm5,%ymm2
6995         vpxor   %ymm1,%ymm7,%ymm7
6996         vpsrld  $18,%ymm5,%ymm1
6997         vpxor   %ymm2,%ymm7,%ymm7
6998         vpslld  $14,%ymm5,%ymm2
6999         vmovdqu 160-128(%rax),%ymm0
7000         vpsrld  $10,%ymm0,%ymm4
7001
7002         vpxor   %ymm1,%ymm7,%ymm7
7003         vpsrld  $17,%ymm0,%ymm1
7004         vpxor   %ymm2,%ymm7,%ymm7
7005         vpslld  $15,%ymm0,%ymm2
7006         vpaddd  %ymm7,%ymm6,%ymm6
7007         vpxor   %ymm1,%ymm4,%ymm7
7008         vpsrld  $19,%ymm0,%ymm1
7009         vpxor   %ymm2,%ymm7,%ymm7
7010         vpslld  $13,%ymm0,%ymm2
7011         vpxor   %ymm1,%ymm7,%ymm7
7012         vpxor   %ymm2,%ymm7,%ymm7
7013         vpaddd  %ymm7,%ymm6,%ymm6
7014         vpsrld  $6,%ymm13,%ymm7
7015         vpslld  $26,%ymm13,%ymm2
7016         vmovdqu %ymm6,224-128(%rax)
7017         vpaddd  %ymm8,%ymm6,%ymm6
7018
7019         vpsrld  $11,%ymm13,%ymm1
7020         vpxor   %ymm2,%ymm7,%ymm7
7021         vpslld  $21,%ymm13,%ymm2
7022         vpaddd  96(%rbp),%ymm6,%ymm6
7023         vpxor   %ymm1,%ymm7,%ymm7
7024
7025         vpsrld  $25,%ymm13,%ymm1
7026         vpxor   %ymm2,%ymm7,%ymm7
7027
7028         vpslld  $7,%ymm13,%ymm2
7029         vpandn  %ymm15,%ymm13,%ymm0
7030         vpand   %ymm14,%ymm13,%ymm4
7031
7032         vpxor   %ymm1,%ymm7,%ymm7
7033
7034         vpsrld  $2,%ymm9,%ymm8
7035         vpxor   %ymm2,%ymm7,%ymm7
7036
7037         vpslld  $30,%ymm9,%ymm1
7038         vpxor   %ymm4,%ymm0,%ymm0
7039         vpxor   %ymm9,%ymm10,%ymm4
7040
7041         vpxor   %ymm1,%ymm8,%ymm8
7042         vpaddd  %ymm7,%ymm6,%ymm6
7043
7044         vpsrld  $13,%ymm9,%ymm1
7045
7046         vpslld  $19,%ymm9,%ymm2
7047         vpaddd  %ymm0,%ymm6,%ymm6
7048         vpand   %ymm4,%ymm3,%ymm3
7049
7050         vpxor   %ymm1,%ymm8,%ymm7
7051
7052         vpsrld  $22,%ymm9,%ymm1
7053         vpxor   %ymm2,%ymm7,%ymm7
7054
7055         vpslld  $10,%ymm9,%ymm2
7056         vpxor   %ymm3,%ymm10,%ymm8
7057         vpaddd  %ymm6,%ymm12,%ymm12
7058
7059         vpxor   %ymm1,%ymm7,%ymm7
7060         vpxor   %ymm2,%ymm7,%ymm7
7061
7062         vpaddd  %ymm6,%ymm8,%ymm8
7063         vpaddd  %ymm7,%ymm8,%ymm8
7064         addq    $256,%rbp
7065         vmovdqu 288-256-128(%rbx),%ymm6
7066         vpaddd  32-128(%rax),%ymm5,%ymm5
7067
7068         vpsrld  $3,%ymm6,%ymm7
7069         vpsrld  $7,%ymm6,%ymm1
7070         vpslld  $25,%ymm6,%ymm2
7071         vpxor   %ymm1,%ymm7,%ymm7
7072         vpsrld  $18,%ymm6,%ymm1
7073         vpxor   %ymm2,%ymm7,%ymm7
7074         vpslld  $14,%ymm6,%ymm2
7075         vmovdqu 192-128(%rax),%ymm0
7076         vpsrld  $10,%ymm0,%ymm3
7077
7078         vpxor   %ymm1,%ymm7,%ymm7
7079         vpsrld  $17,%ymm0,%ymm1
7080         vpxor   %ymm2,%ymm7,%ymm7
7081         vpslld  $15,%ymm0,%ymm2
7082         vpaddd  %ymm7,%ymm5,%ymm5
7083         vpxor   %ymm1,%ymm3,%ymm7
7084         vpsrld  $19,%ymm0,%ymm1
7085         vpxor   %ymm2,%ymm7,%ymm7
7086         vpslld  $13,%ymm0,%ymm2
7087         vpxor   %ymm1,%ymm7,%ymm7
7088         vpxor   %ymm2,%ymm7,%ymm7
7089         vpaddd  %ymm7,%ymm5,%ymm5
7090         vpsrld  $6,%ymm12,%ymm7
7091         vpslld  $26,%ymm12,%ymm2
7092         vmovdqu %ymm5,256-256-128(%rbx)
7093         vpaddd  %ymm15,%ymm5,%ymm5
7094
7095         vpsrld  $11,%ymm12,%ymm1
7096         vpxor   %ymm2,%ymm7,%ymm7
7097         vpslld  $21,%ymm12,%ymm2
7098         vpaddd  -128(%rbp),%ymm5,%ymm5
7099         vpxor   %ymm1,%ymm7,%ymm7
7100
7101         vpsrld  $25,%ymm12,%ymm1
7102         vpxor   %ymm2,%ymm7,%ymm7
7103
7104         vpslld  $7,%ymm12,%ymm2
7105         vpandn  %ymm14,%ymm12,%ymm0
7106         vpand   %ymm13,%ymm12,%ymm3
7107
7108         vpxor   %ymm1,%ymm7,%ymm7
7109
7110         vpsrld  $2,%ymm8,%ymm15
7111         vpxor   %ymm2,%ymm7,%ymm7
7112
7113         vpslld  $30,%ymm8,%ymm1
7114         vpxor   %ymm3,%ymm0,%ymm0
7115         vpxor   %ymm8,%ymm9,%ymm3
7116
7117         vpxor   %ymm1,%ymm15,%ymm15
7118         vpaddd  %ymm7,%ymm5,%ymm5
7119
7120         vpsrld  $13,%ymm8,%ymm1
7121
7122         vpslld  $19,%ymm8,%ymm2
7123         vpaddd  %ymm0,%ymm5,%ymm5
7124         vpand   %ymm3,%ymm4,%ymm4
7125
7126         vpxor   %ymm1,%ymm15,%ymm7
7127
7128         vpsrld  $22,%ymm8,%ymm1
7129         vpxor   %ymm2,%ymm7,%ymm7
7130
7131         vpslld  $10,%ymm8,%ymm2
7132         vpxor   %ymm4,%ymm9,%ymm15
7133         vpaddd  %ymm5,%ymm11,%ymm11
7134
7135         vpxor   %ymm1,%ymm7,%ymm7
7136         vpxor   %ymm2,%ymm7,%ymm7
7137
7138         vpaddd  %ymm5,%ymm15,%ymm15
7139         vpaddd  %ymm7,%ymm15,%ymm15
7140         vmovdqu 320-256-128(%rbx),%ymm5
7141         vpaddd  64-128(%rax),%ymm6,%ymm6
7142
7143         vpsrld  $3,%ymm5,%ymm7
7144         vpsrld  $7,%ymm5,%ymm1
7145         vpslld  $25,%ymm5,%ymm2
7146         vpxor   %ymm1,%ymm7,%ymm7
7147         vpsrld  $18,%ymm5,%ymm1
7148         vpxor   %ymm2,%ymm7,%ymm7
7149         vpslld  $14,%ymm5,%ymm2
7150         vmovdqu 224-128(%rax),%ymm0
7151         vpsrld  $10,%ymm0,%ymm4
7152
7153         vpxor   %ymm1,%ymm7,%ymm7
7154         vpsrld  $17,%ymm0,%ymm1
7155         vpxor   %ymm2,%ymm7,%ymm7
7156         vpslld  $15,%ymm0,%ymm2
7157         vpaddd  %ymm7,%ymm6,%ymm6
7158         vpxor   %ymm1,%ymm4,%ymm7
7159         vpsrld  $19,%ymm0,%ymm1
7160         vpxor   %ymm2,%ymm7,%ymm7
7161         vpslld  $13,%ymm0,%ymm2
7162         vpxor   %ymm1,%ymm7,%ymm7
7163         vpxor   %ymm2,%ymm7,%ymm7
7164         vpaddd  %ymm7,%ymm6,%ymm6
7165         vpsrld  $6,%ymm11,%ymm7
7166         vpslld  $26,%ymm11,%ymm2
7167         vmovdqu %ymm6,288-256-128(%rbx)
7168         vpaddd  %ymm14,%ymm6,%ymm6
7169
7170         vpsrld  $11,%ymm11,%ymm1
7171         vpxor   %ymm2,%ymm7,%ymm7
7172         vpslld  $21,%ymm11,%ymm2
7173         vpaddd  -96(%rbp),%ymm6,%ymm6
7174         vpxor   %ymm1,%ymm7,%ymm7
7175
7176         vpsrld  $25,%ymm11,%ymm1
7177         vpxor   %ymm2,%ymm7,%ymm7
7178
7179         vpslld  $7,%ymm11,%ymm2
7180         vpandn  %ymm13,%ymm11,%ymm0
7181         vpand   %ymm12,%ymm11,%ymm4
7182
7183         vpxor   %ymm1,%ymm7,%ymm7
7184
7185         vpsrld  $2,%ymm15,%ymm14
7186         vpxor   %ymm2,%ymm7,%ymm7
7187
7188         vpslld  $30,%ymm15,%ymm1
7189         vpxor   %ymm4,%ymm0,%ymm0
7190         vpxor   %ymm15,%ymm8,%ymm4
7191
7192         vpxor   %ymm1,%ymm14,%ymm14
7193         vpaddd  %ymm7,%ymm6,%ymm6
7194
7195         vpsrld  $13,%ymm15,%ymm1
7196
7197         vpslld  $19,%ymm15,%ymm2
7198         vpaddd  %ymm0,%ymm6,%ymm6
7199         vpand   %ymm4,%ymm3,%ymm3
7200
7201         vpxor   %ymm1,%ymm14,%ymm7
7202
7203         vpsrld  $22,%ymm15,%ymm1
7204         vpxor   %ymm2,%ymm7,%ymm7
7205
7206         vpslld  $10,%ymm15,%ymm2
7207         vpxor   %ymm3,%ymm8,%ymm14
7208         vpaddd  %ymm6,%ymm10,%ymm10
7209
7210         vpxor   %ymm1,%ymm7,%ymm7
7211         vpxor   %ymm2,%ymm7,%ymm7
7212
7213         vpaddd  %ymm6,%ymm14,%ymm14
7214         vpaddd  %ymm7,%ymm14,%ymm14
7215         vmovdqu 352-256-128(%rbx),%ymm6
7216         vpaddd  96-128(%rax),%ymm5,%ymm5
7217
7218         vpsrld  $3,%ymm6,%ymm7
7219         vpsrld  $7,%ymm6,%ymm1
7220         vpslld  $25,%ymm6,%ymm2
7221         vpxor   %ymm1,%ymm7,%ymm7
7222         vpsrld  $18,%ymm6,%ymm1
7223         vpxor   %ymm2,%ymm7,%ymm7
7224         vpslld  $14,%ymm6,%ymm2
7225         vmovdqu 256-256-128(%rbx),%ymm0
7226         vpsrld  $10,%ymm0,%ymm3
7227
7228         vpxor   %ymm1,%ymm7,%ymm7
7229         vpsrld  $17,%ymm0,%ymm1
7230         vpxor   %ymm2,%ymm7,%ymm7
7231         vpslld  $15,%ymm0,%ymm2
7232         vpaddd  %ymm7,%ymm5,%ymm5
7233         vpxor   %ymm1,%ymm3,%ymm7
7234         vpsrld  $19,%ymm0,%ymm1
7235         vpxor   %ymm2,%ymm7,%ymm7
7236         vpslld  $13,%ymm0,%ymm2
7237         vpxor   %ymm1,%ymm7,%ymm7
7238         vpxor   %ymm2,%ymm7,%ymm7
7239         vpaddd  %ymm7,%ymm5,%ymm5
7240         vpsrld  $6,%ymm10,%ymm7
7241         vpslld  $26,%ymm10,%ymm2
7242         vmovdqu %ymm5,320-256-128(%rbx)
7243         vpaddd  %ymm13,%ymm5,%ymm5
7244
7245         vpsrld  $11,%ymm10,%ymm1
7246         vpxor   %ymm2,%ymm7,%ymm7
7247         vpslld  $21,%ymm10,%ymm2
7248         vpaddd  -64(%rbp),%ymm5,%ymm5
7249         vpxor   %ymm1,%ymm7,%ymm7
7250
7251         vpsrld  $25,%ymm10,%ymm1
7252         vpxor   %ymm2,%ymm7,%ymm7
7253
7254         vpslld  $7,%ymm10,%ymm2
7255         vpandn  %ymm12,%ymm10,%ymm0
7256         vpand   %ymm11,%ymm10,%ymm3
7257
7258         vpxor   %ymm1,%ymm7,%ymm7
7259
7260         vpsrld  $2,%ymm14,%ymm13
7261         vpxor   %ymm2,%ymm7,%ymm7
7262
7263         vpslld  $30,%ymm14,%ymm1
7264         vpxor   %ymm3,%ymm0,%ymm0
7265         vpxor   %ymm14,%ymm15,%ymm3
7266
7267         vpxor   %ymm1,%ymm13,%ymm13
7268         vpaddd  %ymm7,%ymm5,%ymm5
7269
7270         vpsrld  $13,%ymm14,%ymm1
7271
7272         vpslld  $19,%ymm14,%ymm2
7273         vpaddd  %ymm0,%ymm5,%ymm5
7274         vpand   %ymm3,%ymm4,%ymm4
7275
7276         vpxor   %ymm1,%ymm13,%ymm7
7277
7278         vpsrld  $22,%ymm14,%ymm1
7279         vpxor   %ymm2,%ymm7,%ymm7
7280
7281         vpslld  $10,%ymm14,%ymm2
7282         vpxor   %ymm4,%ymm15,%ymm13
7283         vpaddd  %ymm5,%ymm9,%ymm9
7284
7285         vpxor   %ymm1,%ymm7,%ymm7
7286         vpxor   %ymm2,%ymm7,%ymm7
7287
7288         vpaddd  %ymm5,%ymm13,%ymm13
7289         vpaddd  %ymm7,%ymm13,%ymm13
7290         vmovdqu 384-256-128(%rbx),%ymm5
7291         vpaddd  128-128(%rax),%ymm6,%ymm6
7292
7293         vpsrld  $3,%ymm5,%ymm7
7294         vpsrld  $7,%ymm5,%ymm1
7295         vpslld  $25,%ymm5,%ymm2
7296         vpxor   %ymm1,%ymm7,%ymm7
7297         vpsrld  $18,%ymm5,%ymm1
7298         vpxor   %ymm2,%ymm7,%ymm7
7299         vpslld  $14,%ymm5,%ymm2
7300         vmovdqu 288-256-128(%rbx),%ymm0
7301         vpsrld  $10,%ymm0,%ymm4
7302
7303         vpxor   %ymm1,%ymm7,%ymm7
7304         vpsrld  $17,%ymm0,%ymm1
7305         vpxor   %ymm2,%ymm7,%ymm7
7306         vpslld  $15,%ymm0,%ymm2
7307         vpaddd  %ymm7,%ymm6,%ymm6
7308         vpxor   %ymm1,%ymm4,%ymm7
7309         vpsrld  $19,%ymm0,%ymm1
7310         vpxor   %ymm2,%ymm7,%ymm7
7311         vpslld  $13,%ymm0,%ymm2
7312         vpxor   %ymm1,%ymm7,%ymm7
7313         vpxor   %ymm2,%ymm7,%ymm7
7314         vpaddd  %ymm7,%ymm6,%ymm6
7315         vpsrld  $6,%ymm9,%ymm7
7316         vpslld  $26,%ymm9,%ymm2
7317         vmovdqu %ymm6,352-256-128(%rbx)
7318         vpaddd  %ymm12,%ymm6,%ymm6
7319
7320         vpsrld  $11,%ymm9,%ymm1
7321         vpxor   %ymm2,%ymm7,%ymm7
7322         vpslld  $21,%ymm9,%ymm2
7323         vpaddd  -32(%rbp),%ymm6,%ymm6
7324         vpxor   %ymm1,%ymm7,%ymm7
7325
7326         vpsrld  $25,%ymm9,%ymm1
7327         vpxor   %ymm2,%ymm7,%ymm7
7328
7329         vpslld  $7,%ymm9,%ymm2
7330         vpandn  %ymm11,%ymm9,%ymm0
7331         vpand   %ymm10,%ymm9,%ymm4
7332
7333         vpxor   %ymm1,%ymm7,%ymm7
7334
7335         vpsrld  $2,%ymm13,%ymm12
7336         vpxor   %ymm2,%ymm7,%ymm7
7337
7338         vpslld  $30,%ymm13,%ymm1
7339         vpxor   %ymm4,%ymm0,%ymm0
7340         vpxor   %ymm13,%ymm14,%ymm4
7341
7342         vpxor   %ymm1,%ymm12,%ymm12
7343         vpaddd  %ymm7,%ymm6,%ymm6
7344
7345         vpsrld  $13,%ymm13,%ymm1
7346
7347         vpslld  $19,%ymm13,%ymm2
7348         vpaddd  %ymm0,%ymm6,%ymm6
7349         vpand   %ymm4,%ymm3,%ymm3
7350
7351         vpxor   %ymm1,%ymm12,%ymm7
7352
7353         vpsrld  $22,%ymm13,%ymm1
7354         vpxor   %ymm2,%ymm7,%ymm7
7355
7356         vpslld  $10,%ymm13,%ymm2
7357         vpxor   %ymm3,%ymm14,%ymm12
7358         vpaddd  %ymm6,%ymm8,%ymm8
7359
7360         vpxor   %ymm1,%ymm7,%ymm7
7361         vpxor   %ymm2,%ymm7,%ymm7
7362
7363         vpaddd  %ymm6,%ymm12,%ymm12
7364         vpaddd  %ymm7,%ymm12,%ymm12
7365         vmovdqu 416-256-128(%rbx),%ymm6
7366         vpaddd  160-128(%rax),%ymm5,%ymm5
7367
7368         vpsrld  $3,%ymm6,%ymm7
7369         vpsrld  $7,%ymm6,%ymm1
7370         vpslld  $25,%ymm6,%ymm2
7371         vpxor   %ymm1,%ymm7,%ymm7
7372         vpsrld  $18,%ymm6,%ymm1
7373         vpxor   %ymm2,%ymm7,%ymm7
7374         vpslld  $14,%ymm6,%ymm2
7375         vmovdqu 320-256-128(%rbx),%ymm0
7376         vpsrld  $10,%ymm0,%ymm3
7377
7378         vpxor   %ymm1,%ymm7,%ymm7
7379         vpsrld  $17,%ymm0,%ymm1
7380         vpxor   %ymm2,%ymm7,%ymm7
7381         vpslld  $15,%ymm0,%ymm2
7382         vpaddd  %ymm7,%ymm5,%ymm5
7383         vpxor   %ymm1,%ymm3,%ymm7
7384         vpsrld  $19,%ymm0,%ymm1
7385         vpxor   %ymm2,%ymm7,%ymm7
7386         vpslld  $13,%ymm0,%ymm2
7387         vpxor   %ymm1,%ymm7,%ymm7
7388         vpxor   %ymm2,%ymm7,%ymm7
7389         vpaddd  %ymm7,%ymm5,%ymm5
7390         vpsrld  $6,%ymm8,%ymm7
7391         vpslld  $26,%ymm8,%ymm2
7392         vmovdqu %ymm5,384-256-128(%rbx)
7393         vpaddd  %ymm11,%ymm5,%ymm5
7394
7395         vpsrld  $11,%ymm8,%ymm1
7396         vpxor   %ymm2,%ymm7,%ymm7
7397         vpslld  $21,%ymm8,%ymm2
7398         vpaddd  0(%rbp),%ymm5,%ymm5
7399         vpxor   %ymm1,%ymm7,%ymm7
7400
7401         vpsrld  $25,%ymm8,%ymm1
7402         vpxor   %ymm2,%ymm7,%ymm7
7403
7404         vpslld  $7,%ymm8,%ymm2
7405         vpandn  %ymm10,%ymm8,%ymm0
7406         vpand   %ymm9,%ymm8,%ymm3
7407
7408         vpxor   %ymm1,%ymm7,%ymm7
7409
7410         vpsrld  $2,%ymm12,%ymm11
7411         vpxor   %ymm2,%ymm7,%ymm7
7412
7413         vpslld  $30,%ymm12,%ymm1
7414         vpxor   %ymm3,%ymm0,%ymm0
7415         vpxor   %ymm12,%ymm13,%ymm3
7416
7417         vpxor   %ymm1,%ymm11,%ymm11
7418         vpaddd  %ymm7,%ymm5,%ymm5
7419
7420         vpsrld  $13,%ymm12,%ymm1
7421
7422         vpslld  $19,%ymm12,%ymm2
7423         vpaddd  %ymm0,%ymm5,%ymm5
7424         vpand   %ymm3,%ymm4,%ymm4
7425
7426         vpxor   %ymm1,%ymm11,%ymm7
7427
7428         vpsrld  $22,%ymm12,%ymm1
7429         vpxor   %ymm2,%ymm7,%ymm7
7430
7431         vpslld  $10,%ymm12,%ymm2
7432         vpxor   %ymm4,%ymm13,%ymm11
7433         vpaddd  %ymm5,%ymm15,%ymm15
7434
7435         vpxor   %ymm1,%ymm7,%ymm7
7436         vpxor   %ymm2,%ymm7,%ymm7
7437
7438         vpaddd  %ymm5,%ymm11,%ymm11
7439         vpaddd  %ymm7,%ymm11,%ymm11
7440         vmovdqu 448-256-128(%rbx),%ymm5
7441         vpaddd  192-128(%rax),%ymm6,%ymm6
7442
7443         vpsrld  $3,%ymm5,%ymm7
7444         vpsrld  $7,%ymm5,%ymm1
7445         vpslld  $25,%ymm5,%ymm2
7446         vpxor   %ymm1,%ymm7,%ymm7
7447         vpsrld  $18,%ymm5,%ymm1
7448         vpxor   %ymm2,%ymm7,%ymm7
7449         vpslld  $14,%ymm5,%ymm2
7450         vmovdqu 352-256-128(%rbx),%ymm0
7451         vpsrld  $10,%ymm0,%ymm4
7452
7453         vpxor   %ymm1,%ymm7,%ymm7
7454         vpsrld  $17,%ymm0,%ymm1
7455         vpxor   %ymm2,%ymm7,%ymm7
7456         vpslld  $15,%ymm0,%ymm2
7457         vpaddd  %ymm7,%ymm6,%ymm6
7458         vpxor   %ymm1,%ymm4,%ymm7
7459         vpsrld  $19,%ymm0,%ymm1
7460         vpxor   %ymm2,%ymm7,%ymm7
7461         vpslld  $13,%ymm0,%ymm2
7462         vpxor   %ymm1,%ymm7,%ymm7
7463         vpxor   %ymm2,%ymm7,%ymm7
7464         vpaddd  %ymm7,%ymm6,%ymm6
7465         vpsrld  $6,%ymm15,%ymm7
7466         vpslld  $26,%ymm15,%ymm2
7467         vmovdqu %ymm6,416-256-128(%rbx)
7468         vpaddd  %ymm10,%ymm6,%ymm6
7469
7470         vpsrld  $11,%ymm15,%ymm1
7471         vpxor   %ymm2,%ymm7,%ymm7
7472         vpslld  $21,%ymm15,%ymm2
7473         vpaddd  32(%rbp),%ymm6,%ymm6
7474         vpxor   %ymm1,%ymm7,%ymm7
7475
7476         vpsrld  $25,%ymm15,%ymm1
7477         vpxor   %ymm2,%ymm7,%ymm7
7478
7479         vpslld  $7,%ymm15,%ymm2
7480         vpandn  %ymm9,%ymm15,%ymm0
7481         vpand   %ymm8,%ymm15,%ymm4
7482
7483         vpxor   %ymm1,%ymm7,%ymm7
7484
7485         vpsrld  $2,%ymm11,%ymm10
7486         vpxor   %ymm2,%ymm7,%ymm7
7487
7488         vpslld  $30,%ymm11,%ymm1
7489         vpxor   %ymm4,%ymm0,%ymm0
7490         vpxor   %ymm11,%ymm12,%ymm4
7491
7492         vpxor   %ymm1,%ymm10,%ymm10
7493         vpaddd  %ymm7,%ymm6,%ymm6
7494
7495         vpsrld  $13,%ymm11,%ymm1
7496
7497         vpslld  $19,%ymm11,%ymm2
7498         vpaddd  %ymm0,%ymm6,%ymm6
7499         vpand   %ymm4,%ymm3,%ymm3
7500
7501         vpxor   %ymm1,%ymm10,%ymm7
7502
7503         vpsrld  $22,%ymm11,%ymm1
7504         vpxor   %ymm2,%ymm7,%ymm7
7505
7506         vpslld  $10,%ymm11,%ymm2
7507         vpxor   %ymm3,%ymm12,%ymm10
7508         vpaddd  %ymm6,%ymm14,%ymm14
7509
7510         vpxor   %ymm1,%ymm7,%ymm7
7511         vpxor   %ymm2,%ymm7,%ymm7
7512
7513         vpaddd  %ymm6,%ymm10,%ymm10
7514         vpaddd  %ymm7,%ymm10,%ymm10
7515         vmovdqu 480-256-128(%rbx),%ymm6
7516         vpaddd  224-128(%rax),%ymm5,%ymm5
7517
7518         vpsrld  $3,%ymm6,%ymm7
7519         vpsrld  $7,%ymm6,%ymm1
7520         vpslld  $25,%ymm6,%ymm2
7521         vpxor   %ymm1,%ymm7,%ymm7
7522         vpsrld  $18,%ymm6,%ymm1
7523         vpxor   %ymm2,%ymm7,%ymm7
7524         vpslld  $14,%ymm6,%ymm2
7525         vmovdqu 384-256-128(%rbx),%ymm0
7526         vpsrld  $10,%ymm0,%ymm3
7527
7528         vpxor   %ymm1,%ymm7,%ymm7
7529         vpsrld  $17,%ymm0,%ymm1
7530         vpxor   %ymm2,%ymm7,%ymm7
7531         vpslld  $15,%ymm0,%ymm2
7532         vpaddd  %ymm7,%ymm5,%ymm5
7533         vpxor   %ymm1,%ymm3,%ymm7
7534         vpsrld  $19,%ymm0,%ymm1
7535         vpxor   %ymm2,%ymm7,%ymm7
7536         vpslld  $13,%ymm0,%ymm2
7537         vpxor   %ymm1,%ymm7,%ymm7
7538         vpxor   %ymm2,%ymm7,%ymm7
7539         vpaddd  %ymm7,%ymm5,%ymm5
7540         vpsrld  $6,%ymm14,%ymm7
7541         vpslld  $26,%ymm14,%ymm2
7542         vmovdqu %ymm5,448-256-128(%rbx)
7543         vpaddd  %ymm9,%ymm5,%ymm5
7544
7545         vpsrld  $11,%ymm14,%ymm1
7546         vpxor   %ymm2,%ymm7,%ymm7
7547         vpslld  $21,%ymm14,%ymm2
7548         vpaddd  64(%rbp),%ymm5,%ymm5
7549         vpxor   %ymm1,%ymm7,%ymm7
7550
7551         vpsrld  $25,%ymm14,%ymm1
7552         vpxor   %ymm2,%ymm7,%ymm7
7553
7554         vpslld  $7,%ymm14,%ymm2
7555         vpandn  %ymm8,%ymm14,%ymm0
7556         vpand   %ymm15,%ymm14,%ymm3
7557
7558         vpxor   %ymm1,%ymm7,%ymm7
7559
7560         vpsrld  $2,%ymm10,%ymm9
7561         vpxor   %ymm2,%ymm7,%ymm7
7562
7563         vpslld  $30,%ymm10,%ymm1
7564         vpxor   %ymm3,%ymm0,%ymm0
7565         vpxor   %ymm10,%ymm11,%ymm3
7566
7567         vpxor   %ymm1,%ymm9,%ymm9
7568         vpaddd  %ymm7,%ymm5,%ymm5
7569
7570         vpsrld  $13,%ymm10,%ymm1
7571
7572         vpslld  $19,%ymm10,%ymm2
7573         vpaddd  %ymm0,%ymm5,%ymm5
7574         vpand   %ymm3,%ymm4,%ymm4
7575
7576         vpxor   %ymm1,%ymm9,%ymm7
7577
7578         vpsrld  $22,%ymm10,%ymm1
7579         vpxor   %ymm2,%ymm7,%ymm7
7580
7581         vpslld  $10,%ymm10,%ymm2
7582         vpxor   %ymm4,%ymm11,%ymm9
7583         vpaddd  %ymm5,%ymm13,%ymm13
7584
7585         vpxor   %ymm1,%ymm7,%ymm7
7586         vpxor   %ymm2,%ymm7,%ymm7
7587
7588         vpaddd  %ymm5,%ymm9,%ymm9
7589         vpaddd  %ymm7,%ymm9,%ymm9
7590         vmovdqu 0-128(%rax),%ymm5
7591         vpaddd  256-256-128(%rbx),%ymm6,%ymm6
7592
7593         vpsrld  $3,%ymm5,%ymm7
7594         vpsrld  $7,%ymm5,%ymm1
7595         vpslld  $25,%ymm5,%ymm2
7596         vpxor   %ymm1,%ymm7,%ymm7
7597         vpsrld  $18,%ymm5,%ymm1
7598         vpxor   %ymm2,%ymm7,%ymm7
7599         vpslld  $14,%ymm5,%ymm2
7600         vmovdqu 416-256-128(%rbx),%ymm0
7601         vpsrld  $10,%ymm0,%ymm4
7602
7603         vpxor   %ymm1,%ymm7,%ymm7
7604         vpsrld  $17,%ymm0,%ymm1
7605         vpxor   %ymm2,%ymm7,%ymm7
7606         vpslld  $15,%ymm0,%ymm2
7607         vpaddd  %ymm7,%ymm6,%ymm6
7608         vpxor   %ymm1,%ymm4,%ymm7
7609         vpsrld  $19,%ymm0,%ymm1
7610         vpxor   %ymm2,%ymm7,%ymm7
7611         vpslld  $13,%ymm0,%ymm2
7612         vpxor   %ymm1,%ymm7,%ymm7
7613         vpxor   %ymm2,%ymm7,%ymm7
7614         vpaddd  %ymm7,%ymm6,%ymm6
7615         vpsrld  $6,%ymm13,%ymm7
7616         vpslld  $26,%ymm13,%ymm2
7617         vmovdqu %ymm6,480-256-128(%rbx)
7618         vpaddd  %ymm8,%ymm6,%ymm6
7619
7620         vpsrld  $11,%ymm13,%ymm1
7621         vpxor   %ymm2,%ymm7,%ymm7
7622         vpslld  $21,%ymm13,%ymm2
7623         vpaddd  96(%rbp),%ymm6,%ymm6
7624         vpxor   %ymm1,%ymm7,%ymm7
7625
7626         vpsrld  $25,%ymm13,%ymm1
7627         vpxor   %ymm2,%ymm7,%ymm7
7628
7629         vpslld  $7,%ymm13,%ymm2
7630         vpandn  %ymm15,%ymm13,%ymm0
7631         vpand   %ymm14,%ymm13,%ymm4
7632
7633         vpxor   %ymm1,%ymm7,%ymm7
7634
7635         vpsrld  $2,%ymm9,%ymm8
7636         vpxor   %ymm2,%ymm7,%ymm7
7637
7638         vpslld  $30,%ymm9,%ymm1
7639         vpxor   %ymm4,%ymm0,%ymm0
7640         vpxor   %ymm9,%ymm10,%ymm4
7641
7642         vpxor   %ymm1,%ymm8,%ymm8
7643         vpaddd  %ymm7,%ymm6,%ymm6
7644
7645         vpsrld  $13,%ymm9,%ymm1
7646
7647         vpslld  $19,%ymm9,%ymm2
7648         vpaddd  %ymm0,%ymm6,%ymm6
7649         vpand   %ymm4,%ymm3,%ymm3
7650
7651         vpxor   %ymm1,%ymm8,%ymm7
7652
7653         vpsrld  $22,%ymm9,%ymm1
7654         vpxor   %ymm2,%ymm7,%ymm7
7655
7656         vpslld  $10,%ymm9,%ymm2
7657         vpxor   %ymm3,%ymm10,%ymm8
7658         vpaddd  %ymm6,%ymm12,%ymm12
7659
7660         vpxor   %ymm1,%ymm7,%ymm7
7661         vpxor   %ymm2,%ymm7,%ymm7
7662
7663         vpaddd  %ymm6,%ymm8,%ymm8
7664         vpaddd  %ymm7,%ymm8,%ymm8
7665         addq    $256,%rbp
7666         decl    %ecx
7667         jnz     .Loop_16_xx_avx2
7668
7669         movl    $1,%ecx
7670         leaq    512(%rsp),%rbx
7671         leaq    K256+128(%rip),%rbp
7672         cmpl    0(%rbx),%ecx
7673         cmovgeq %rbp,%r12
7674         cmpl    4(%rbx),%ecx
7675         cmovgeq %rbp,%r13
7676         cmpl    8(%rbx),%ecx
7677         cmovgeq %rbp,%r14
7678         cmpl    12(%rbx),%ecx
7679         cmovgeq %rbp,%r15
7680         cmpl    16(%rbx),%ecx
7681         cmovgeq %rbp,%r8
7682         cmpl    20(%rbx),%ecx
7683         cmovgeq %rbp,%r9
7684         cmpl    24(%rbx),%ecx
7685         cmovgeq %rbp,%r10
7686         cmpl    28(%rbx),%ecx
7687         cmovgeq %rbp,%r11
7688         vmovdqa (%rbx),%ymm7
7689         vpxor   %ymm0,%ymm0,%ymm0
7690         vmovdqa %ymm7,%ymm6
7691         vpcmpgtd        %ymm0,%ymm6,%ymm6
7692         vpaddd  %ymm6,%ymm7,%ymm7
7693
7694         vmovdqu 0-128(%rdi),%ymm0
7695         vpand   %ymm6,%ymm8,%ymm8
7696         vmovdqu 32-128(%rdi),%ymm1
7697         vpand   %ymm6,%ymm9,%ymm9
7698         vmovdqu 64-128(%rdi),%ymm2
7699         vpand   %ymm6,%ymm10,%ymm10
7700         vmovdqu 96-128(%rdi),%ymm5
7701         vpand   %ymm6,%ymm11,%ymm11
7702         vpaddd  %ymm0,%ymm8,%ymm8
7703         vmovdqu 128-128(%rdi),%ymm0
7704         vpand   %ymm6,%ymm12,%ymm12
7705         vpaddd  %ymm1,%ymm9,%ymm9
7706         vmovdqu 160-128(%rdi),%ymm1
7707         vpand   %ymm6,%ymm13,%ymm13
7708         vpaddd  %ymm2,%ymm10,%ymm10
7709         vmovdqu 192-128(%rdi),%ymm2
7710         vpand   %ymm6,%ymm14,%ymm14
7711         vpaddd  %ymm5,%ymm11,%ymm11
7712         vmovdqu 224-128(%rdi),%ymm5
7713         vpand   %ymm6,%ymm15,%ymm15
7714         vpaddd  %ymm0,%ymm12,%ymm12
7715         vpaddd  %ymm1,%ymm13,%ymm13
7716         vmovdqu %ymm8,0-128(%rdi)
7717         vpaddd  %ymm2,%ymm14,%ymm14
7718         vmovdqu %ymm9,32-128(%rdi)
7719         vpaddd  %ymm5,%ymm15,%ymm15
7720         vmovdqu %ymm10,64-128(%rdi)
7721         vmovdqu %ymm11,96-128(%rdi)
7722         vmovdqu %ymm12,128-128(%rdi)
7723         vmovdqu %ymm13,160-128(%rdi)
7724         vmovdqu %ymm14,192-128(%rdi)
7725         vmovdqu %ymm15,224-128(%rdi)
7726
7727         vmovdqu %ymm7,(%rbx)
7728         leaq    256+128(%rsp),%rbx
7729         vmovdqu .Lpbswap(%rip),%ymm6
7730         decl    %edx
7731         jnz     .Loop_avx2
7732
7733
7734
7735
7736
7737
7738
7739 .Ldone_avx2:
7740         movq    544(%rsp),%rax
7741         vzeroupper
7742         movq    -48(%rax),%r15
7743         movq    -40(%rax),%r14
7744         movq    -32(%rax),%r13
7745         movq    -24(%rax),%r12
7746         movq    -16(%rax),%rbp
7747         movq    -8(%rax),%rbx
7748         leaq    (%rax),%rsp
7749 .Lepilogue_avx2:
7750         .byte   0xf3,0xc3
7751 .size   sha256_multi_block_avx2,.-sha256_multi_block_avx2
7752 .align  256
7753 K256:
7754 .long   1116352408,1116352408,1116352408,1116352408
7755 .long   1116352408,1116352408,1116352408,1116352408
7756 .long   1899447441,1899447441,1899447441,1899447441
7757 .long   1899447441,1899447441,1899447441,1899447441
7758 .long   3049323471,3049323471,3049323471,3049323471
7759 .long   3049323471,3049323471,3049323471,3049323471
7760 .long   3921009573,3921009573,3921009573,3921009573
7761 .long   3921009573,3921009573,3921009573,3921009573
7762 .long   961987163,961987163,961987163,961987163
7763 .long   961987163,961987163,961987163,961987163
7764 .long   1508970993,1508970993,1508970993,1508970993
7765 .long   1508970993,1508970993,1508970993,1508970993
7766 .long   2453635748,2453635748,2453635748,2453635748
7767 .long   2453635748,2453635748,2453635748,2453635748
7768 .long   2870763221,2870763221,2870763221,2870763221
7769 .long   2870763221,2870763221,2870763221,2870763221
7770 .long   3624381080,3624381080,3624381080,3624381080
7771 .long   3624381080,3624381080,3624381080,3624381080
7772 .long   310598401,310598401,310598401,310598401
7773 .long   310598401,310598401,310598401,310598401
7774 .long   607225278,607225278,607225278,607225278
7775 .long   607225278,607225278,607225278,607225278
7776 .long   1426881987,1426881987,1426881987,1426881987
7777 .long   1426881987,1426881987,1426881987,1426881987
7778 .long   1925078388,1925078388,1925078388,1925078388
7779 .long   1925078388,1925078388,1925078388,1925078388
7780 .long   2162078206,2162078206,2162078206,2162078206
7781 .long   2162078206,2162078206,2162078206,2162078206
7782 .long   2614888103,2614888103,2614888103,2614888103
7783 .long   2614888103,2614888103,2614888103,2614888103
7784 .long   3248222580,3248222580,3248222580,3248222580
7785 .long   3248222580,3248222580,3248222580,3248222580
7786 .long   3835390401,3835390401,3835390401,3835390401
7787 .long   3835390401,3835390401,3835390401,3835390401
7788 .long   4022224774,4022224774,4022224774,4022224774
7789 .long   4022224774,4022224774,4022224774,4022224774
7790 .long   264347078,264347078,264347078,264347078
7791 .long   264347078,264347078,264347078,264347078
7792 .long   604807628,604807628,604807628,604807628
7793 .long   604807628,604807628,604807628,604807628
7794 .long   770255983,770255983,770255983,770255983
7795 .long   770255983,770255983,770255983,770255983
7796 .long   1249150122,1249150122,1249150122,1249150122
7797 .long   1249150122,1249150122,1249150122,1249150122
7798 .long   1555081692,1555081692,1555081692,1555081692
7799 .long   1555081692,1555081692,1555081692,1555081692
7800 .long   1996064986,1996064986,1996064986,1996064986
7801 .long   1996064986,1996064986,1996064986,1996064986
7802 .long   2554220882,2554220882,2554220882,2554220882
7803 .long   2554220882,2554220882,2554220882,2554220882
7804 .long   2821834349,2821834349,2821834349,2821834349
7805 .long   2821834349,2821834349,2821834349,2821834349
7806 .long   2952996808,2952996808,2952996808,2952996808
7807 .long   2952996808,2952996808,2952996808,2952996808
7808 .long   3210313671,3210313671,3210313671,3210313671
7809 .long   3210313671,3210313671,3210313671,3210313671
7810 .long   3336571891,3336571891,3336571891,3336571891
7811 .long   3336571891,3336571891,3336571891,3336571891
7812 .long   3584528711,3584528711,3584528711,3584528711
7813 .long   3584528711,3584528711,3584528711,3584528711
7814 .long   113926993,113926993,113926993,113926993
7815 .long   113926993,113926993,113926993,113926993
7816 .long   338241895,338241895,338241895,338241895
7817 .long   338241895,338241895,338241895,338241895
7818 .long   666307205,666307205,666307205,666307205
7819 .long   666307205,666307205,666307205,666307205
7820 .long   773529912,773529912,773529912,773529912
7821 .long   773529912,773529912,773529912,773529912
7822 .long   1294757372,1294757372,1294757372,1294757372
7823 .long   1294757372,1294757372,1294757372,1294757372
7824 .long   1396182291,1396182291,1396182291,1396182291
7825 .long   1396182291,1396182291,1396182291,1396182291
7826 .long   1695183700,1695183700,1695183700,1695183700
7827 .long   1695183700,1695183700,1695183700,1695183700
7828 .long   1986661051,1986661051,1986661051,1986661051
7829 .long   1986661051,1986661051,1986661051,1986661051
7830 .long   2177026350,2177026350,2177026350,2177026350
7831 .long   2177026350,2177026350,2177026350,2177026350
7832 .long   2456956037,2456956037,2456956037,2456956037
7833 .long   2456956037,2456956037,2456956037,2456956037
7834 .long   2730485921,2730485921,2730485921,2730485921
7835 .long   2730485921,2730485921,2730485921,2730485921
7836 .long   2820302411,2820302411,2820302411,2820302411
7837 .long   2820302411,2820302411,2820302411,2820302411
7838 .long   3259730800,3259730800,3259730800,3259730800
7839 .long   3259730800,3259730800,3259730800,3259730800
7840 .long   3345764771,3345764771,3345764771,3345764771
7841 .long   3345764771,3345764771,3345764771,3345764771
7842 .long   3516065817,3516065817,3516065817,3516065817
7843 .long   3516065817,3516065817,3516065817,3516065817
7844 .long   3600352804,3600352804,3600352804,3600352804
7845 .long   3600352804,3600352804,3600352804,3600352804
7846 .long   4094571909,4094571909,4094571909,4094571909
7847 .long   4094571909,4094571909,4094571909,4094571909
7848 .long   275423344,275423344,275423344,275423344
7849 .long   275423344,275423344,275423344,275423344
7850 .long   430227734,430227734,430227734,430227734
7851 .long   430227734,430227734,430227734,430227734
7852 .long   506948616,506948616,506948616,506948616
7853 .long   506948616,506948616,506948616,506948616
7854 .long   659060556,659060556,659060556,659060556
7855 .long   659060556,659060556,659060556,659060556
7856 .long   883997877,883997877,883997877,883997877
7857 .long   883997877,883997877,883997877,883997877
7858 .long   958139571,958139571,958139571,958139571
7859 .long   958139571,958139571,958139571,958139571
7860 .long   1322822218,1322822218,1322822218,1322822218
7861 .long   1322822218,1322822218,1322822218,1322822218
7862 .long   1537002063,1537002063,1537002063,1537002063
7863 .long   1537002063,1537002063,1537002063,1537002063
7864 .long   1747873779,1747873779,1747873779,1747873779
7865 .long   1747873779,1747873779,1747873779,1747873779
7866 .long   1955562222,1955562222,1955562222,1955562222
7867 .long   1955562222,1955562222,1955562222,1955562222
7868 .long   2024104815,2024104815,2024104815,2024104815
7869 .long   2024104815,2024104815,2024104815,2024104815
7870 .long   2227730452,2227730452,2227730452,2227730452
7871 .long   2227730452,2227730452,2227730452,2227730452
7872 .long   2361852424,2361852424,2361852424,2361852424
7873 .long   2361852424,2361852424,2361852424,2361852424
7874 .long   2428436474,2428436474,2428436474,2428436474
7875 .long   2428436474,2428436474,2428436474,2428436474
7876 .long   2756734187,2756734187,2756734187,2756734187
7877 .long   2756734187,2756734187,2756734187,2756734187
7878 .long   3204031479,3204031479,3204031479,3204031479
7879 .long   3204031479,3204031479,3204031479,3204031479
7880 .long   3329325298,3329325298,3329325298,3329325298
7881 .long   3329325298,3329325298,3329325298,3329325298
7882 .Lpbswap:
7883 .long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
7884 .long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
7885 K256_shaext:
7886 .long   0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
7887 .long   0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
7888 .long   0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
7889 .long   0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
7890 .long   0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
7891 .long   0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
7892 .long   0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
7893 .long   0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
7894 .long   0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
7895 .long   0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
7896 .long   0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
7897 .long   0xd192e819,0xd6990624,0xf40e3585,0x106aa070
7898 .long   0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
7899 .long   0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
7900 .long   0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
7901 .long   0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
7902 .byte   83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
7903 .section .note.GNU-stack,"",%progbits