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