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