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