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