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