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