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