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