1# This file is generated from a similarly-named Perl script in the BoringSSL
2# source tree. Do not edit by hand.
3
4#if defined(__has_feature)
5#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM)
6#define OPENSSL_NO_ASM
7#endif
8#endif
9
10#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
11#if defined(BORINGSSL_PREFIX)
12#include <boringssl_prefix_symbols_asm.h>
13#endif
14.text
15
16
17.globl	_sha1_block_data_order
18.private_extern _sha1_block_data_order
19
20.p2align	4
21_sha1_block_data_order:
22
23	leaq	_OPENSSL_ia32cap_P(%rip),%r10
24	movl	0(%r10),%r9d
25	movl	4(%r10),%r8d
26	movl	8(%r10),%r10d
27	testl	$512,%r8d
28	jz	L$ialu
29	testl	$536870912,%r10d
30	jnz	_shaext_shortcut
31	andl	$296,%r10d
32	cmpl	$296,%r10d
33	je	_avx2_shortcut
34	andl	$268435456,%r8d
35	andl	$1073741824,%r9d
36	orl	%r9d,%r8d
37	cmpl	$1342177280,%r8d
38	je	_avx_shortcut
39	jmp	_ssse3_shortcut
40
41.p2align	4
42L$ialu:
43	movq	%rsp,%rax
44
45	pushq	%rbx
46
47	pushq	%rbp
48
49	pushq	%r12
50
51	pushq	%r13
52
53	pushq	%r14
54
55	movq	%rdi,%r8
56	subq	$72,%rsp
57	movq	%rsi,%r9
58	andq	$-64,%rsp
59	movq	%rdx,%r10
60	movq	%rax,64(%rsp)
61
62L$prologue:
63
64	movl	0(%r8),%esi
65	movl	4(%r8),%edi
66	movl	8(%r8),%r11d
67	movl	12(%r8),%r12d
68	movl	16(%r8),%r13d
69	jmp	L$loop
70
71.p2align	4
72L$loop:
73	movl	0(%r9),%edx
74	bswapl	%edx
75	movl	4(%r9),%ebp
76	movl	%r12d,%eax
77	movl	%edx,0(%rsp)
78	movl	%esi,%ecx
79	bswapl	%ebp
80	xorl	%r11d,%eax
81	roll	$5,%ecx
82	andl	%edi,%eax
83	leal	1518500249(%rdx,%r13,1),%r13d
84	addl	%ecx,%r13d
85	xorl	%r12d,%eax
86	roll	$30,%edi
87	addl	%eax,%r13d
88	movl	8(%r9),%r14d
89	movl	%r11d,%eax
90	movl	%ebp,4(%rsp)
91	movl	%r13d,%ecx
92	bswapl	%r14d
93	xorl	%edi,%eax
94	roll	$5,%ecx
95	andl	%esi,%eax
96	leal	1518500249(%rbp,%r12,1),%r12d
97	addl	%ecx,%r12d
98	xorl	%r11d,%eax
99	roll	$30,%esi
100	addl	%eax,%r12d
101	movl	12(%r9),%edx
102	movl	%edi,%eax
103	movl	%r14d,8(%rsp)
104	movl	%r12d,%ecx
105	bswapl	%edx
106	xorl	%esi,%eax
107	roll	$5,%ecx
108	andl	%r13d,%eax
109	leal	1518500249(%r14,%r11,1),%r11d
110	addl	%ecx,%r11d
111	xorl	%edi,%eax
112	roll	$30,%r13d
113	addl	%eax,%r11d
114	movl	16(%r9),%ebp
115	movl	%esi,%eax
116	movl	%edx,12(%rsp)
117	movl	%r11d,%ecx
118	bswapl	%ebp
119	xorl	%r13d,%eax
120	roll	$5,%ecx
121	andl	%r12d,%eax
122	leal	1518500249(%rdx,%rdi,1),%edi
123	addl	%ecx,%edi
124	xorl	%esi,%eax
125	roll	$30,%r12d
126	addl	%eax,%edi
127	movl	20(%r9),%r14d
128	movl	%r13d,%eax
129	movl	%ebp,16(%rsp)
130	movl	%edi,%ecx
131	bswapl	%r14d
132	xorl	%r12d,%eax
133	roll	$5,%ecx
134	andl	%r11d,%eax
135	leal	1518500249(%rbp,%rsi,1),%esi
136	addl	%ecx,%esi
137	xorl	%r13d,%eax
138	roll	$30,%r11d
139	addl	%eax,%esi
140	movl	24(%r9),%edx
141	movl	%r12d,%eax
142	movl	%r14d,20(%rsp)
143	movl	%esi,%ecx
144	bswapl	%edx
145	xorl	%r11d,%eax
146	roll	$5,%ecx
147	andl	%edi,%eax
148	leal	1518500249(%r14,%r13,1),%r13d
149	addl	%ecx,%r13d
150	xorl	%r12d,%eax
151	roll	$30,%edi
152	addl	%eax,%r13d
153	movl	28(%r9),%ebp
154	movl	%r11d,%eax
155	movl	%edx,24(%rsp)
156	movl	%r13d,%ecx
157	bswapl	%ebp
158	xorl	%edi,%eax
159	roll	$5,%ecx
160	andl	%esi,%eax
161	leal	1518500249(%rdx,%r12,1),%r12d
162	addl	%ecx,%r12d
163	xorl	%r11d,%eax
164	roll	$30,%esi
165	addl	%eax,%r12d
166	movl	32(%r9),%r14d
167	movl	%edi,%eax
168	movl	%ebp,28(%rsp)
169	movl	%r12d,%ecx
170	bswapl	%r14d
171	xorl	%esi,%eax
172	roll	$5,%ecx
173	andl	%r13d,%eax
174	leal	1518500249(%rbp,%r11,1),%r11d
175	addl	%ecx,%r11d
176	xorl	%edi,%eax
177	roll	$30,%r13d
178	addl	%eax,%r11d
179	movl	36(%r9),%edx
180	movl	%esi,%eax
181	movl	%r14d,32(%rsp)
182	movl	%r11d,%ecx
183	bswapl	%edx
184	xorl	%r13d,%eax
185	roll	$5,%ecx
186	andl	%r12d,%eax
187	leal	1518500249(%r14,%rdi,1),%edi
188	addl	%ecx,%edi
189	xorl	%esi,%eax
190	roll	$30,%r12d
191	addl	%eax,%edi
192	movl	40(%r9),%ebp
193	movl	%r13d,%eax
194	movl	%edx,36(%rsp)
195	movl	%edi,%ecx
196	bswapl	%ebp
197	xorl	%r12d,%eax
198	roll	$5,%ecx
199	andl	%r11d,%eax
200	leal	1518500249(%rdx,%rsi,1),%esi
201	addl	%ecx,%esi
202	xorl	%r13d,%eax
203	roll	$30,%r11d
204	addl	%eax,%esi
205	movl	44(%r9),%r14d
206	movl	%r12d,%eax
207	movl	%ebp,40(%rsp)
208	movl	%esi,%ecx
209	bswapl	%r14d
210	xorl	%r11d,%eax
211	roll	$5,%ecx
212	andl	%edi,%eax
213	leal	1518500249(%rbp,%r13,1),%r13d
214	addl	%ecx,%r13d
215	xorl	%r12d,%eax
216	roll	$30,%edi
217	addl	%eax,%r13d
218	movl	48(%r9),%edx
219	movl	%r11d,%eax
220	movl	%r14d,44(%rsp)
221	movl	%r13d,%ecx
222	bswapl	%edx
223	xorl	%edi,%eax
224	roll	$5,%ecx
225	andl	%esi,%eax
226	leal	1518500249(%r14,%r12,1),%r12d
227	addl	%ecx,%r12d
228	xorl	%r11d,%eax
229	roll	$30,%esi
230	addl	%eax,%r12d
231	movl	52(%r9),%ebp
232	movl	%edi,%eax
233	movl	%edx,48(%rsp)
234	movl	%r12d,%ecx
235	bswapl	%ebp
236	xorl	%esi,%eax
237	roll	$5,%ecx
238	andl	%r13d,%eax
239	leal	1518500249(%rdx,%r11,1),%r11d
240	addl	%ecx,%r11d
241	xorl	%edi,%eax
242	roll	$30,%r13d
243	addl	%eax,%r11d
244	movl	56(%r9),%r14d
245	movl	%esi,%eax
246	movl	%ebp,52(%rsp)
247	movl	%r11d,%ecx
248	bswapl	%r14d
249	xorl	%r13d,%eax
250	roll	$5,%ecx
251	andl	%r12d,%eax
252	leal	1518500249(%rbp,%rdi,1),%edi
253	addl	%ecx,%edi
254	xorl	%esi,%eax
255	roll	$30,%r12d
256	addl	%eax,%edi
257	movl	60(%r9),%edx
258	movl	%r13d,%eax
259	movl	%r14d,56(%rsp)
260	movl	%edi,%ecx
261	bswapl	%edx
262	xorl	%r12d,%eax
263	roll	$5,%ecx
264	andl	%r11d,%eax
265	leal	1518500249(%r14,%rsi,1),%esi
266	addl	%ecx,%esi
267	xorl	%r13d,%eax
268	roll	$30,%r11d
269	addl	%eax,%esi
270	xorl	0(%rsp),%ebp
271	movl	%r12d,%eax
272	movl	%edx,60(%rsp)
273	movl	%esi,%ecx
274	xorl	8(%rsp),%ebp
275	xorl	%r11d,%eax
276	roll	$5,%ecx
277	xorl	32(%rsp),%ebp
278	andl	%edi,%eax
279	leal	1518500249(%rdx,%r13,1),%r13d
280	roll	$30,%edi
281	xorl	%r12d,%eax
282	addl	%ecx,%r13d
283	roll	$1,%ebp
284	addl	%eax,%r13d
285	xorl	4(%rsp),%r14d
286	movl	%r11d,%eax
287	movl	%ebp,0(%rsp)
288	movl	%r13d,%ecx
289	xorl	12(%rsp),%r14d
290	xorl	%edi,%eax
291	roll	$5,%ecx
292	xorl	36(%rsp),%r14d
293	andl	%esi,%eax
294	leal	1518500249(%rbp,%r12,1),%r12d
295	roll	$30,%esi
296	xorl	%r11d,%eax
297	addl	%ecx,%r12d
298	roll	$1,%r14d
299	addl	%eax,%r12d
300	xorl	8(%rsp),%edx
301	movl	%edi,%eax
302	movl	%r14d,4(%rsp)
303	movl	%r12d,%ecx
304	xorl	16(%rsp),%edx
305	xorl	%esi,%eax
306	roll	$5,%ecx
307	xorl	40(%rsp),%edx
308	andl	%r13d,%eax
309	leal	1518500249(%r14,%r11,1),%r11d
310	roll	$30,%r13d
311	xorl	%edi,%eax
312	addl	%ecx,%r11d
313	roll	$1,%edx
314	addl	%eax,%r11d
315	xorl	12(%rsp),%ebp
316	movl	%esi,%eax
317	movl	%edx,8(%rsp)
318	movl	%r11d,%ecx
319	xorl	20(%rsp),%ebp
320	xorl	%r13d,%eax
321	roll	$5,%ecx
322	xorl	44(%rsp),%ebp
323	andl	%r12d,%eax
324	leal	1518500249(%rdx,%rdi,1),%edi
325	roll	$30,%r12d
326	xorl	%esi,%eax
327	addl	%ecx,%edi
328	roll	$1,%ebp
329	addl	%eax,%edi
330	xorl	16(%rsp),%r14d
331	movl	%r13d,%eax
332	movl	%ebp,12(%rsp)
333	movl	%edi,%ecx
334	xorl	24(%rsp),%r14d
335	xorl	%r12d,%eax
336	roll	$5,%ecx
337	xorl	48(%rsp),%r14d
338	andl	%r11d,%eax
339	leal	1518500249(%rbp,%rsi,1),%esi
340	roll	$30,%r11d
341	xorl	%r13d,%eax
342	addl	%ecx,%esi
343	roll	$1,%r14d
344	addl	%eax,%esi
345	xorl	20(%rsp),%edx
346	movl	%edi,%eax
347	movl	%r14d,16(%rsp)
348	movl	%esi,%ecx
349	xorl	28(%rsp),%edx
350	xorl	%r12d,%eax
351	roll	$5,%ecx
352	xorl	52(%rsp),%edx
353	leal	1859775393(%r14,%r13,1),%r13d
354	xorl	%r11d,%eax
355	addl	%ecx,%r13d
356	roll	$30,%edi
357	addl	%eax,%r13d
358	roll	$1,%edx
359	xorl	24(%rsp),%ebp
360	movl	%esi,%eax
361	movl	%edx,20(%rsp)
362	movl	%r13d,%ecx
363	xorl	32(%rsp),%ebp
364	xorl	%r11d,%eax
365	roll	$5,%ecx
366	xorl	56(%rsp),%ebp
367	leal	1859775393(%rdx,%r12,1),%r12d
368	xorl	%edi,%eax
369	addl	%ecx,%r12d
370	roll	$30,%esi
371	addl	%eax,%r12d
372	roll	$1,%ebp
373	xorl	28(%rsp),%r14d
374	movl	%r13d,%eax
375	movl	%ebp,24(%rsp)
376	movl	%r12d,%ecx
377	xorl	36(%rsp),%r14d
378	xorl	%edi,%eax
379	roll	$5,%ecx
380	xorl	60(%rsp),%r14d
381	leal	1859775393(%rbp,%r11,1),%r11d
382	xorl	%esi,%eax
383	addl	%ecx,%r11d
384	roll	$30,%r13d
385	addl	%eax,%r11d
386	roll	$1,%r14d
387	xorl	32(%rsp),%edx
388	movl	%r12d,%eax
389	movl	%r14d,28(%rsp)
390	movl	%r11d,%ecx
391	xorl	40(%rsp),%edx
392	xorl	%esi,%eax
393	roll	$5,%ecx
394	xorl	0(%rsp),%edx
395	leal	1859775393(%r14,%rdi,1),%edi
396	xorl	%r13d,%eax
397	addl	%ecx,%edi
398	roll	$30,%r12d
399	addl	%eax,%edi
400	roll	$1,%edx
401	xorl	36(%rsp),%ebp
402	movl	%r11d,%eax
403	movl	%edx,32(%rsp)
404	movl	%edi,%ecx
405	xorl	44(%rsp),%ebp
406	xorl	%r13d,%eax
407	roll	$5,%ecx
408	xorl	4(%rsp),%ebp
409	leal	1859775393(%rdx,%rsi,1),%esi
410	xorl	%r12d,%eax
411	addl	%ecx,%esi
412	roll	$30,%r11d
413	addl	%eax,%esi
414	roll	$1,%ebp
415	xorl	40(%rsp),%r14d
416	movl	%edi,%eax
417	movl	%ebp,36(%rsp)
418	movl	%esi,%ecx
419	xorl	48(%rsp),%r14d
420	xorl	%r12d,%eax
421	roll	$5,%ecx
422	xorl	8(%rsp),%r14d
423	leal	1859775393(%rbp,%r13,1),%r13d
424	xorl	%r11d,%eax
425	addl	%ecx,%r13d
426	roll	$30,%edi
427	addl	%eax,%r13d
428	roll	$1,%r14d
429	xorl	44(%rsp),%edx
430	movl	%esi,%eax
431	movl	%r14d,40(%rsp)
432	movl	%r13d,%ecx
433	xorl	52(%rsp),%edx
434	xorl	%r11d,%eax
435	roll	$5,%ecx
436	xorl	12(%rsp),%edx
437	leal	1859775393(%r14,%r12,1),%r12d
438	xorl	%edi,%eax
439	addl	%ecx,%r12d
440	roll	$30,%esi
441	addl	%eax,%r12d
442	roll	$1,%edx
443	xorl	48(%rsp),%ebp
444	movl	%r13d,%eax
445	movl	%edx,44(%rsp)
446	movl	%r12d,%ecx
447	xorl	56(%rsp),%ebp
448	xorl	%edi,%eax
449	roll	$5,%ecx
450	xorl	16(%rsp),%ebp
451	leal	1859775393(%rdx,%r11,1),%r11d
452	xorl	%esi,%eax
453	addl	%ecx,%r11d
454	roll	$30,%r13d
455	addl	%eax,%r11d
456	roll	$1,%ebp
457	xorl	52(%rsp),%r14d
458	movl	%r12d,%eax
459	movl	%ebp,48(%rsp)
460	movl	%r11d,%ecx
461	xorl	60(%rsp),%r14d
462	xorl	%esi,%eax
463	roll	$5,%ecx
464	xorl	20(%rsp),%r14d
465	leal	1859775393(%rbp,%rdi,1),%edi
466	xorl	%r13d,%eax
467	addl	%ecx,%edi
468	roll	$30,%r12d
469	addl	%eax,%edi
470	roll	$1,%r14d
471	xorl	56(%rsp),%edx
472	movl	%r11d,%eax
473	movl	%r14d,52(%rsp)
474	movl	%edi,%ecx
475	xorl	0(%rsp),%edx
476	xorl	%r13d,%eax
477	roll	$5,%ecx
478	xorl	24(%rsp),%edx
479	leal	1859775393(%r14,%rsi,1),%esi
480	xorl	%r12d,%eax
481	addl	%ecx,%esi
482	roll	$30,%r11d
483	addl	%eax,%esi
484	roll	$1,%edx
485	xorl	60(%rsp),%ebp
486	movl	%edi,%eax
487	movl	%edx,56(%rsp)
488	movl	%esi,%ecx
489	xorl	4(%rsp),%ebp
490	xorl	%r12d,%eax
491	roll	$5,%ecx
492	xorl	28(%rsp),%ebp
493	leal	1859775393(%rdx,%r13,1),%r13d
494	xorl	%r11d,%eax
495	addl	%ecx,%r13d
496	roll	$30,%edi
497	addl	%eax,%r13d
498	roll	$1,%ebp
499	xorl	0(%rsp),%r14d
500	movl	%esi,%eax
501	movl	%ebp,60(%rsp)
502	movl	%r13d,%ecx
503	xorl	8(%rsp),%r14d
504	xorl	%r11d,%eax
505	roll	$5,%ecx
506	xorl	32(%rsp),%r14d
507	leal	1859775393(%rbp,%r12,1),%r12d
508	xorl	%edi,%eax
509	addl	%ecx,%r12d
510	roll	$30,%esi
511	addl	%eax,%r12d
512	roll	$1,%r14d
513	xorl	4(%rsp),%edx
514	movl	%r13d,%eax
515	movl	%r14d,0(%rsp)
516	movl	%r12d,%ecx
517	xorl	12(%rsp),%edx
518	xorl	%edi,%eax
519	roll	$5,%ecx
520	xorl	36(%rsp),%edx
521	leal	1859775393(%r14,%r11,1),%r11d
522	xorl	%esi,%eax
523	addl	%ecx,%r11d
524	roll	$30,%r13d
525	addl	%eax,%r11d
526	roll	$1,%edx
527	xorl	8(%rsp),%ebp
528	movl	%r12d,%eax
529	movl	%edx,4(%rsp)
530	movl	%r11d,%ecx
531	xorl	16(%rsp),%ebp
532	xorl	%esi,%eax
533	roll	$5,%ecx
534	xorl	40(%rsp),%ebp
535	leal	1859775393(%rdx,%rdi,1),%edi
536	xorl	%r13d,%eax
537	addl	%ecx,%edi
538	roll	$30,%r12d
539	addl	%eax,%edi
540	roll	$1,%ebp
541	xorl	12(%rsp),%r14d
542	movl	%r11d,%eax
543	movl	%ebp,8(%rsp)
544	movl	%edi,%ecx
545	xorl	20(%rsp),%r14d
546	xorl	%r13d,%eax
547	roll	$5,%ecx
548	xorl	44(%rsp),%r14d
549	leal	1859775393(%rbp,%rsi,1),%esi
550	xorl	%r12d,%eax
551	addl	%ecx,%esi
552	roll	$30,%r11d
553	addl	%eax,%esi
554	roll	$1,%r14d
555	xorl	16(%rsp),%edx
556	movl	%edi,%eax
557	movl	%r14d,12(%rsp)
558	movl	%esi,%ecx
559	xorl	24(%rsp),%edx
560	xorl	%r12d,%eax
561	roll	$5,%ecx
562	xorl	48(%rsp),%edx
563	leal	1859775393(%r14,%r13,1),%r13d
564	xorl	%r11d,%eax
565	addl	%ecx,%r13d
566	roll	$30,%edi
567	addl	%eax,%r13d
568	roll	$1,%edx
569	xorl	20(%rsp),%ebp
570	movl	%esi,%eax
571	movl	%edx,16(%rsp)
572	movl	%r13d,%ecx
573	xorl	28(%rsp),%ebp
574	xorl	%r11d,%eax
575	roll	$5,%ecx
576	xorl	52(%rsp),%ebp
577	leal	1859775393(%rdx,%r12,1),%r12d
578	xorl	%edi,%eax
579	addl	%ecx,%r12d
580	roll	$30,%esi
581	addl	%eax,%r12d
582	roll	$1,%ebp
583	xorl	24(%rsp),%r14d
584	movl	%r13d,%eax
585	movl	%ebp,20(%rsp)
586	movl	%r12d,%ecx
587	xorl	32(%rsp),%r14d
588	xorl	%edi,%eax
589	roll	$5,%ecx
590	xorl	56(%rsp),%r14d
591	leal	1859775393(%rbp,%r11,1),%r11d
592	xorl	%esi,%eax
593	addl	%ecx,%r11d
594	roll	$30,%r13d
595	addl	%eax,%r11d
596	roll	$1,%r14d
597	xorl	28(%rsp),%edx
598	movl	%r12d,%eax
599	movl	%r14d,24(%rsp)
600	movl	%r11d,%ecx
601	xorl	36(%rsp),%edx
602	xorl	%esi,%eax
603	roll	$5,%ecx
604	xorl	60(%rsp),%edx
605	leal	1859775393(%r14,%rdi,1),%edi
606	xorl	%r13d,%eax
607	addl	%ecx,%edi
608	roll	$30,%r12d
609	addl	%eax,%edi
610	roll	$1,%edx
611	xorl	32(%rsp),%ebp
612	movl	%r11d,%eax
613	movl	%edx,28(%rsp)
614	movl	%edi,%ecx
615	xorl	40(%rsp),%ebp
616	xorl	%r13d,%eax
617	roll	$5,%ecx
618	xorl	0(%rsp),%ebp
619	leal	1859775393(%rdx,%rsi,1),%esi
620	xorl	%r12d,%eax
621	addl	%ecx,%esi
622	roll	$30,%r11d
623	addl	%eax,%esi
624	roll	$1,%ebp
625	xorl	36(%rsp),%r14d
626	movl	%r12d,%eax
627	movl	%ebp,32(%rsp)
628	movl	%r12d,%ebx
629	xorl	44(%rsp),%r14d
630	andl	%r11d,%eax
631	movl	%esi,%ecx
632	xorl	4(%rsp),%r14d
633	leal	-1894007588(%rbp,%r13,1),%r13d
634	xorl	%r11d,%ebx
635	roll	$5,%ecx
636	addl	%eax,%r13d
637	roll	$1,%r14d
638	andl	%edi,%ebx
639	addl	%ecx,%r13d
640	roll	$30,%edi
641	addl	%ebx,%r13d
642	xorl	40(%rsp),%edx
643	movl	%r11d,%eax
644	movl	%r14d,36(%rsp)
645	movl	%r11d,%ebx
646	xorl	48(%rsp),%edx
647	andl	%edi,%eax
648	movl	%r13d,%ecx
649	xorl	8(%rsp),%edx
650	leal	-1894007588(%r14,%r12,1),%r12d
651	xorl	%edi,%ebx
652	roll	$5,%ecx
653	addl	%eax,%r12d
654	roll	$1,%edx
655	andl	%esi,%ebx
656	addl	%ecx,%r12d
657	roll	$30,%esi
658	addl	%ebx,%r12d
659	xorl	44(%rsp),%ebp
660	movl	%edi,%eax
661	movl	%edx,40(%rsp)
662	movl	%edi,%ebx
663	xorl	52(%rsp),%ebp
664	andl	%esi,%eax
665	movl	%r12d,%ecx
666	xorl	12(%rsp),%ebp
667	leal	-1894007588(%rdx,%r11,1),%r11d
668	xorl	%esi,%ebx
669	roll	$5,%ecx
670	addl	%eax,%r11d
671	roll	$1,%ebp
672	andl	%r13d,%ebx
673	addl	%ecx,%r11d
674	roll	$30,%r13d
675	addl	%ebx,%r11d
676	xorl	48(%rsp),%r14d
677	movl	%esi,%eax
678	movl	%ebp,44(%rsp)
679	movl	%esi,%ebx
680	xorl	56(%rsp),%r14d
681	andl	%r13d,%eax
682	movl	%r11d,%ecx
683	xorl	16(%rsp),%r14d
684	leal	-1894007588(%rbp,%rdi,1),%edi
685	xorl	%r13d,%ebx
686	roll	$5,%ecx
687	addl	%eax,%edi
688	roll	$1,%r14d
689	andl	%r12d,%ebx
690	addl	%ecx,%edi
691	roll	$30,%r12d
692	addl	%ebx,%edi
693	xorl	52(%rsp),%edx
694	movl	%r13d,%eax
695	movl	%r14d,48(%rsp)
696	movl	%r13d,%ebx
697	xorl	60(%rsp),%edx
698	andl	%r12d,%eax
699	movl	%edi,%ecx
700	xorl	20(%rsp),%edx
701	leal	-1894007588(%r14,%rsi,1),%esi
702	xorl	%r12d,%ebx
703	roll	$5,%ecx
704	addl	%eax,%esi
705	roll	$1,%edx
706	andl	%r11d,%ebx
707	addl	%ecx,%esi
708	roll	$30,%r11d
709	addl	%ebx,%esi
710	xorl	56(%rsp),%ebp
711	movl	%r12d,%eax
712	movl	%edx,52(%rsp)
713	movl	%r12d,%ebx
714	xorl	0(%rsp),%ebp
715	andl	%r11d,%eax
716	movl	%esi,%ecx
717	xorl	24(%rsp),%ebp
718	leal	-1894007588(%rdx,%r13,1),%r13d
719	xorl	%r11d,%ebx
720	roll	$5,%ecx
721	addl	%eax,%r13d
722	roll	$1,%ebp
723	andl	%edi,%ebx
724	addl	%ecx,%r13d
725	roll	$30,%edi
726	addl	%ebx,%r13d
727	xorl	60(%rsp),%r14d
728	movl	%r11d,%eax
729	movl	%ebp,56(%rsp)
730	movl	%r11d,%ebx
731	xorl	4(%rsp),%r14d
732	andl	%edi,%eax
733	movl	%r13d,%ecx
734	xorl	28(%rsp),%r14d
735	leal	-1894007588(%rbp,%r12,1),%r12d
736	xorl	%edi,%ebx
737	roll	$5,%ecx
738	addl	%eax,%r12d
739	roll	$1,%r14d
740	andl	%esi,%ebx
741	addl	%ecx,%r12d
742	roll	$30,%esi
743	addl	%ebx,%r12d
744	xorl	0(%rsp),%edx
745	movl	%edi,%eax
746	movl	%r14d,60(%rsp)
747	movl	%edi,%ebx
748	xorl	8(%rsp),%edx
749	andl	%esi,%eax
750	movl	%r12d,%ecx
751	xorl	32(%rsp),%edx
752	leal	-1894007588(%r14,%r11,1),%r11d
753	xorl	%esi,%ebx
754	roll	$5,%ecx
755	addl	%eax,%r11d
756	roll	$1,%edx
757	andl	%r13d,%ebx
758	addl	%ecx,%r11d
759	roll	$30,%r13d
760	addl	%ebx,%r11d
761	xorl	4(%rsp),%ebp
762	movl	%esi,%eax
763	movl	%edx,0(%rsp)
764	movl	%esi,%ebx
765	xorl	12(%rsp),%ebp
766	andl	%r13d,%eax
767	movl	%r11d,%ecx
768	xorl	36(%rsp),%ebp
769	leal	-1894007588(%rdx,%rdi,1),%edi
770	xorl	%r13d,%ebx
771	roll	$5,%ecx
772	addl	%eax,%edi
773	roll	$1,%ebp
774	andl	%r12d,%ebx
775	addl	%ecx,%edi
776	roll	$30,%r12d
777	addl	%ebx,%edi
778	xorl	8(%rsp),%r14d
779	movl	%r13d,%eax
780	movl	%ebp,4(%rsp)
781	movl	%r13d,%ebx
782	xorl	16(%rsp),%r14d
783	andl	%r12d,%eax
784	movl	%edi,%ecx
785	xorl	40(%rsp),%r14d
786	leal	-1894007588(%rbp,%rsi,1),%esi
787	xorl	%r12d,%ebx
788	roll	$5,%ecx
789	addl	%eax,%esi
790	roll	$1,%r14d
791	andl	%r11d,%ebx
792	addl	%ecx,%esi
793	roll	$30,%r11d
794	addl	%ebx,%esi
795	xorl	12(%rsp),%edx
796	movl	%r12d,%eax
797	movl	%r14d,8(%rsp)
798	movl	%r12d,%ebx
799	xorl	20(%rsp),%edx
800	andl	%r11d,%eax
801	movl	%esi,%ecx
802	xorl	44(%rsp),%edx
803	leal	-1894007588(%r14,%r13,1),%r13d
804	xorl	%r11d,%ebx
805	roll	$5,%ecx
806	addl	%eax,%r13d
807	roll	$1,%edx
808	andl	%edi,%ebx
809	addl	%ecx,%r13d
810	roll	$30,%edi
811	addl	%ebx,%r13d
812	xorl	16(%rsp),%ebp
813	movl	%r11d,%eax
814	movl	%edx,12(%rsp)
815	movl	%r11d,%ebx
816	xorl	24(%rsp),%ebp
817	andl	%edi,%eax
818	movl	%r13d,%ecx
819	xorl	48(%rsp),%ebp
820	leal	-1894007588(%rdx,%r12,1),%r12d
821	xorl	%edi,%ebx
822	roll	$5,%ecx
823	addl	%eax,%r12d
824	roll	$1,%ebp
825	andl	%esi,%ebx
826	addl	%ecx,%r12d
827	roll	$30,%esi
828	addl	%ebx,%r12d
829	xorl	20(%rsp),%r14d
830	movl	%edi,%eax
831	movl	%ebp,16(%rsp)
832	movl	%edi,%ebx
833	xorl	28(%rsp),%r14d
834	andl	%esi,%eax
835	movl	%r12d,%ecx
836	xorl	52(%rsp),%r14d
837	leal	-1894007588(%rbp,%r11,1),%r11d
838	xorl	%esi,%ebx
839	roll	$5,%ecx
840	addl	%eax,%r11d
841	roll	$1,%r14d
842	andl	%r13d,%ebx
843	addl	%ecx,%r11d
844	roll	$30,%r13d
845	addl	%ebx,%r11d
846	xorl	24(%rsp),%edx
847	movl	%esi,%eax
848	movl	%r14d,20(%rsp)
849	movl	%esi,%ebx
850	xorl	32(%rsp),%edx
851	andl	%r13d,%eax
852	movl	%r11d,%ecx
853	xorl	56(%rsp),%edx
854	leal	-1894007588(%r14,%rdi,1),%edi
855	xorl	%r13d,%ebx
856	roll	$5,%ecx
857	addl	%eax,%edi
858	roll	$1,%edx
859	andl	%r12d,%ebx
860	addl	%ecx,%edi
861	roll	$30,%r12d
862	addl	%ebx,%edi
863	xorl	28(%rsp),%ebp
864	movl	%r13d,%eax
865	movl	%edx,24(%rsp)
866	movl	%r13d,%ebx
867	xorl	36(%rsp),%ebp
868	andl	%r12d,%eax
869	movl	%edi,%ecx
870	xorl	60(%rsp),%ebp
871	leal	-1894007588(%rdx,%rsi,1),%esi
872	xorl	%r12d,%ebx
873	roll	$5,%ecx
874	addl	%eax,%esi
875	roll	$1,%ebp
876	andl	%r11d,%ebx
877	addl	%ecx,%esi
878	roll	$30,%r11d
879	addl	%ebx,%esi
880	xorl	32(%rsp),%r14d
881	movl	%r12d,%eax
882	movl	%ebp,28(%rsp)
883	movl	%r12d,%ebx
884	xorl	40(%rsp),%r14d
885	andl	%r11d,%eax
886	movl	%esi,%ecx
887	xorl	0(%rsp),%r14d
888	leal	-1894007588(%rbp,%r13,1),%r13d
889	xorl	%r11d,%ebx
890	roll	$5,%ecx
891	addl	%eax,%r13d
892	roll	$1,%r14d
893	andl	%edi,%ebx
894	addl	%ecx,%r13d
895	roll	$30,%edi
896	addl	%ebx,%r13d
897	xorl	36(%rsp),%edx
898	movl	%r11d,%eax
899	movl	%r14d,32(%rsp)
900	movl	%r11d,%ebx
901	xorl	44(%rsp),%edx
902	andl	%edi,%eax
903	movl	%r13d,%ecx
904	xorl	4(%rsp),%edx
905	leal	-1894007588(%r14,%r12,1),%r12d
906	xorl	%edi,%ebx
907	roll	$5,%ecx
908	addl	%eax,%r12d
909	roll	$1,%edx
910	andl	%esi,%ebx
911	addl	%ecx,%r12d
912	roll	$30,%esi
913	addl	%ebx,%r12d
914	xorl	40(%rsp),%ebp
915	movl	%edi,%eax
916	movl	%edx,36(%rsp)
917	movl	%edi,%ebx
918	xorl	48(%rsp),%ebp
919	andl	%esi,%eax
920	movl	%r12d,%ecx
921	xorl	8(%rsp),%ebp
922	leal	-1894007588(%rdx,%r11,1),%r11d
923	xorl	%esi,%ebx
924	roll	$5,%ecx
925	addl	%eax,%r11d
926	roll	$1,%ebp
927	andl	%r13d,%ebx
928	addl	%ecx,%r11d
929	roll	$30,%r13d
930	addl	%ebx,%r11d
931	xorl	44(%rsp),%r14d
932	movl	%esi,%eax
933	movl	%ebp,40(%rsp)
934	movl	%esi,%ebx
935	xorl	52(%rsp),%r14d
936	andl	%r13d,%eax
937	movl	%r11d,%ecx
938	xorl	12(%rsp),%r14d
939	leal	-1894007588(%rbp,%rdi,1),%edi
940	xorl	%r13d,%ebx
941	roll	$5,%ecx
942	addl	%eax,%edi
943	roll	$1,%r14d
944	andl	%r12d,%ebx
945	addl	%ecx,%edi
946	roll	$30,%r12d
947	addl	%ebx,%edi
948	xorl	48(%rsp),%edx
949	movl	%r13d,%eax
950	movl	%r14d,44(%rsp)
951	movl	%r13d,%ebx
952	xorl	56(%rsp),%edx
953	andl	%r12d,%eax
954	movl	%edi,%ecx
955	xorl	16(%rsp),%edx
956	leal	-1894007588(%r14,%rsi,1),%esi
957	xorl	%r12d,%ebx
958	roll	$5,%ecx
959	addl	%eax,%esi
960	roll	$1,%edx
961	andl	%r11d,%ebx
962	addl	%ecx,%esi
963	roll	$30,%r11d
964	addl	%ebx,%esi
965	xorl	52(%rsp),%ebp
966	movl	%edi,%eax
967	movl	%edx,48(%rsp)
968	movl	%esi,%ecx
969	xorl	60(%rsp),%ebp
970	xorl	%r12d,%eax
971	roll	$5,%ecx
972	xorl	20(%rsp),%ebp
973	leal	-899497514(%rdx,%r13,1),%r13d
974	xorl	%r11d,%eax
975	addl	%ecx,%r13d
976	roll	$30,%edi
977	addl	%eax,%r13d
978	roll	$1,%ebp
979	xorl	56(%rsp),%r14d
980	movl	%esi,%eax
981	movl	%ebp,52(%rsp)
982	movl	%r13d,%ecx
983	xorl	0(%rsp),%r14d
984	xorl	%r11d,%eax
985	roll	$5,%ecx
986	xorl	24(%rsp),%r14d
987	leal	-899497514(%rbp,%r12,1),%r12d
988	xorl	%edi,%eax
989	addl	%ecx,%r12d
990	roll	$30,%esi
991	addl	%eax,%r12d
992	roll	$1,%r14d
993	xorl	60(%rsp),%edx
994	movl	%r13d,%eax
995	movl	%r14d,56(%rsp)
996	movl	%r12d,%ecx
997	xorl	4(%rsp),%edx
998	xorl	%edi,%eax
999	roll	$5,%ecx
1000	xorl	28(%rsp),%edx
1001	leal	-899497514(%r14,%r11,1),%r11d
1002	xorl	%esi,%eax
1003	addl	%ecx,%r11d
1004	roll	$30,%r13d
1005	addl	%eax,%r11d
1006	roll	$1,%edx
1007	xorl	0(%rsp),%ebp
1008	movl	%r12d,%eax
1009	movl	%edx,60(%rsp)
1010	movl	%r11d,%ecx
1011	xorl	8(%rsp),%ebp
1012	xorl	%esi,%eax
1013	roll	$5,%ecx
1014	xorl	32(%rsp),%ebp
1015	leal	-899497514(%rdx,%rdi,1),%edi
1016	xorl	%r13d,%eax
1017	addl	%ecx,%edi
1018	roll	$30,%r12d
1019	addl	%eax,%edi
1020	roll	$1,%ebp
1021	xorl	4(%rsp),%r14d
1022	movl	%r11d,%eax
1023	movl	%ebp,0(%rsp)
1024	movl	%edi,%ecx
1025	xorl	12(%rsp),%r14d
1026	xorl	%r13d,%eax
1027	roll	$5,%ecx
1028	xorl	36(%rsp),%r14d
1029	leal	-899497514(%rbp,%rsi,1),%esi
1030	xorl	%r12d,%eax
1031	addl	%ecx,%esi
1032	roll	$30,%r11d
1033	addl	%eax,%esi
1034	roll	$1,%r14d
1035	xorl	8(%rsp),%edx
1036	movl	%edi,%eax
1037	movl	%r14d,4(%rsp)
1038	movl	%esi,%ecx
1039	xorl	16(%rsp),%edx
1040	xorl	%r12d,%eax
1041	roll	$5,%ecx
1042	xorl	40(%rsp),%edx
1043	leal	-899497514(%r14,%r13,1),%r13d
1044	xorl	%r11d,%eax
1045	addl	%ecx,%r13d
1046	roll	$30,%edi
1047	addl	%eax,%r13d
1048	roll	$1,%edx
1049	xorl	12(%rsp),%ebp
1050	movl	%esi,%eax
1051	movl	%edx,8(%rsp)
1052	movl	%r13d,%ecx
1053	xorl	20(%rsp),%ebp
1054	xorl	%r11d,%eax
1055	roll	$5,%ecx
1056	xorl	44(%rsp),%ebp
1057	leal	-899497514(%rdx,%r12,1),%r12d
1058	xorl	%edi,%eax
1059	addl	%ecx,%r12d
1060	roll	$30,%esi
1061	addl	%eax,%r12d
1062	roll	$1,%ebp
1063	xorl	16(%rsp),%r14d
1064	movl	%r13d,%eax
1065	movl	%ebp,12(%rsp)
1066	movl	%r12d,%ecx
1067	xorl	24(%rsp),%r14d
1068	xorl	%edi,%eax
1069	roll	$5,%ecx
1070	xorl	48(%rsp),%r14d
1071	leal	-899497514(%rbp,%r11,1),%r11d
1072	xorl	%esi,%eax
1073	addl	%ecx,%r11d
1074	roll	$30,%r13d
1075	addl	%eax,%r11d
1076	roll	$1,%r14d
1077	xorl	20(%rsp),%edx
1078	movl	%r12d,%eax
1079	movl	%r14d,16(%rsp)
1080	movl	%r11d,%ecx
1081	xorl	28(%rsp),%edx
1082	xorl	%esi,%eax
1083	roll	$5,%ecx
1084	xorl	52(%rsp),%edx
1085	leal	-899497514(%r14,%rdi,1),%edi
1086	xorl	%r13d,%eax
1087	addl	%ecx,%edi
1088	roll	$30,%r12d
1089	addl	%eax,%edi
1090	roll	$1,%edx
1091	xorl	24(%rsp),%ebp
1092	movl	%r11d,%eax
1093	movl	%edx,20(%rsp)
1094	movl	%edi,%ecx
1095	xorl	32(%rsp),%ebp
1096	xorl	%r13d,%eax
1097	roll	$5,%ecx
1098	xorl	56(%rsp),%ebp
1099	leal	-899497514(%rdx,%rsi,1),%esi
1100	xorl	%r12d,%eax
1101	addl	%ecx,%esi
1102	roll	$30,%r11d
1103	addl	%eax,%esi
1104	roll	$1,%ebp
1105	xorl	28(%rsp),%r14d
1106	movl	%edi,%eax
1107	movl	%ebp,24(%rsp)
1108	movl	%esi,%ecx
1109	xorl	36(%rsp),%r14d
1110	xorl	%r12d,%eax
1111	roll	$5,%ecx
1112	xorl	60(%rsp),%r14d
1113	leal	-899497514(%rbp,%r13,1),%r13d
1114	xorl	%r11d,%eax
1115	addl	%ecx,%r13d
1116	roll	$30,%edi
1117	addl	%eax,%r13d
1118	roll	$1,%r14d
1119	xorl	32(%rsp),%edx
1120	movl	%esi,%eax
1121	movl	%r14d,28(%rsp)
1122	movl	%r13d,%ecx
1123	xorl	40(%rsp),%edx
1124	xorl	%r11d,%eax
1125	roll	$5,%ecx
1126	xorl	0(%rsp),%edx
1127	leal	-899497514(%r14,%r12,1),%r12d
1128	xorl	%edi,%eax
1129	addl	%ecx,%r12d
1130	roll	$30,%esi
1131	addl	%eax,%r12d
1132	roll	$1,%edx
1133	xorl	36(%rsp),%ebp
1134	movl	%r13d,%eax
1135
1136	movl	%r12d,%ecx
1137	xorl	44(%rsp),%ebp
1138	xorl	%edi,%eax
1139	roll	$5,%ecx
1140	xorl	4(%rsp),%ebp
1141	leal	-899497514(%rdx,%r11,1),%r11d
1142	xorl	%esi,%eax
1143	addl	%ecx,%r11d
1144	roll	$30,%r13d
1145	addl	%eax,%r11d
1146	roll	$1,%ebp
1147	xorl	40(%rsp),%r14d
1148	movl	%r12d,%eax
1149
1150	movl	%r11d,%ecx
1151	xorl	48(%rsp),%r14d
1152	xorl	%esi,%eax
1153	roll	$5,%ecx
1154	xorl	8(%rsp),%r14d
1155	leal	-899497514(%rbp,%rdi,1),%edi
1156	xorl	%r13d,%eax
1157	addl	%ecx,%edi
1158	roll	$30,%r12d
1159	addl	%eax,%edi
1160	roll	$1,%r14d
1161	xorl	44(%rsp),%edx
1162	movl	%r11d,%eax
1163
1164	movl	%edi,%ecx
1165	xorl	52(%rsp),%edx
1166	xorl	%r13d,%eax
1167	roll	$5,%ecx
1168	xorl	12(%rsp),%edx
1169	leal	-899497514(%r14,%rsi,1),%esi
1170	xorl	%r12d,%eax
1171	addl	%ecx,%esi
1172	roll	$30,%r11d
1173	addl	%eax,%esi
1174	roll	$1,%edx
1175	xorl	48(%rsp),%ebp
1176	movl	%edi,%eax
1177
1178	movl	%esi,%ecx
1179	xorl	56(%rsp),%ebp
1180	xorl	%r12d,%eax
1181	roll	$5,%ecx
1182	xorl	16(%rsp),%ebp
1183	leal	-899497514(%rdx,%r13,1),%r13d
1184	xorl	%r11d,%eax
1185	addl	%ecx,%r13d
1186	roll	$30,%edi
1187	addl	%eax,%r13d
1188	roll	$1,%ebp
1189	xorl	52(%rsp),%r14d
1190	movl	%esi,%eax
1191
1192	movl	%r13d,%ecx
1193	xorl	60(%rsp),%r14d
1194	xorl	%r11d,%eax
1195	roll	$5,%ecx
1196	xorl	20(%rsp),%r14d
1197	leal	-899497514(%rbp,%r12,1),%r12d
1198	xorl	%edi,%eax
1199	addl	%ecx,%r12d
1200	roll	$30,%esi
1201	addl	%eax,%r12d
1202	roll	$1,%r14d
1203	xorl	56(%rsp),%edx
1204	movl	%r13d,%eax
1205
1206	movl	%r12d,%ecx
1207	xorl	0(%rsp),%edx
1208	xorl	%edi,%eax
1209	roll	$5,%ecx
1210	xorl	24(%rsp),%edx
1211	leal	-899497514(%r14,%r11,1),%r11d
1212	xorl	%esi,%eax
1213	addl	%ecx,%r11d
1214	roll	$30,%r13d
1215	addl	%eax,%r11d
1216	roll	$1,%edx
1217	xorl	60(%rsp),%ebp
1218	movl	%r12d,%eax
1219
1220	movl	%r11d,%ecx
1221	xorl	4(%rsp),%ebp
1222	xorl	%esi,%eax
1223	roll	$5,%ecx
1224	xorl	28(%rsp),%ebp
1225	leal	-899497514(%rdx,%rdi,1),%edi
1226	xorl	%r13d,%eax
1227	addl	%ecx,%edi
1228	roll	$30,%r12d
1229	addl	%eax,%edi
1230	roll	$1,%ebp
1231	movl	%r11d,%eax
1232	movl	%edi,%ecx
1233	xorl	%r13d,%eax
1234	leal	-899497514(%rbp,%rsi,1),%esi
1235	roll	$5,%ecx
1236	xorl	%r12d,%eax
1237	addl	%ecx,%esi
1238	roll	$30,%r11d
1239	addl	%eax,%esi
1240	addl	0(%r8),%esi
1241	addl	4(%r8),%edi
1242	addl	8(%r8),%r11d
1243	addl	12(%r8),%r12d
1244	addl	16(%r8),%r13d
1245	movl	%esi,0(%r8)
1246	movl	%edi,4(%r8)
1247	movl	%r11d,8(%r8)
1248	movl	%r12d,12(%r8)
1249	movl	%r13d,16(%r8)
1250
1251	subq	$1,%r10
1252	leaq	64(%r9),%r9
1253	jnz	L$loop
1254
1255	movq	64(%rsp),%rsi
1256
1257	movq	-40(%rsi),%r14
1258
1259	movq	-32(%rsi),%r13
1260
1261	movq	-24(%rsi),%r12
1262
1263	movq	-16(%rsi),%rbp
1264
1265	movq	-8(%rsi),%rbx
1266
1267	leaq	(%rsi),%rsp
1268
1269L$epilogue:
1270	.byte	0xf3,0xc3
1271
1272
1273
1274.p2align	5
1275sha1_block_data_order_shaext:
1276_shaext_shortcut:
1277
1278	movdqu	(%rdi),%xmm0
1279	movd	16(%rdi),%xmm1
1280	movdqa	K_XX_XX+160(%rip),%xmm3
1281
1282	movdqu	(%rsi),%xmm4
1283	pshufd	$27,%xmm0,%xmm0
1284	movdqu	16(%rsi),%xmm5
1285	pshufd	$27,%xmm1,%xmm1
1286	movdqu	32(%rsi),%xmm6
1287.byte	102,15,56,0,227
1288	movdqu	48(%rsi),%xmm7
1289.byte	102,15,56,0,235
1290.byte	102,15,56,0,243
1291	movdqa	%xmm1,%xmm9
1292.byte	102,15,56,0,251
1293	jmp	L$oop_shaext
1294
1295.p2align	4
1296L$oop_shaext:
1297	decq	%rdx
1298	leaq	64(%rsi),%r8
1299	paddd	%xmm4,%xmm1
1300	cmovneq	%r8,%rsi
1301	movdqa	%xmm0,%xmm8
1302.byte	15,56,201,229
1303	movdqa	%xmm0,%xmm2
1304.byte	15,58,204,193,0
1305.byte	15,56,200,213
1306	pxor	%xmm6,%xmm4
1307.byte	15,56,201,238
1308.byte	15,56,202,231
1309
1310	movdqa	%xmm0,%xmm1
1311.byte	15,58,204,194,0
1312.byte	15,56,200,206
1313	pxor	%xmm7,%xmm5
1314.byte	15,56,202,236
1315.byte	15,56,201,247
1316	movdqa	%xmm0,%xmm2
1317.byte	15,58,204,193,0
1318.byte	15,56,200,215
1319	pxor	%xmm4,%xmm6
1320.byte	15,56,201,252
1321.byte	15,56,202,245
1322
1323	movdqa	%xmm0,%xmm1
1324.byte	15,58,204,194,0
1325.byte	15,56,200,204
1326	pxor	%xmm5,%xmm7
1327.byte	15,56,202,254
1328.byte	15,56,201,229
1329	movdqa	%xmm0,%xmm2
1330.byte	15,58,204,193,0
1331.byte	15,56,200,213
1332	pxor	%xmm6,%xmm4
1333.byte	15,56,201,238
1334.byte	15,56,202,231
1335
1336	movdqa	%xmm0,%xmm1
1337.byte	15,58,204,194,1
1338.byte	15,56,200,206
1339	pxor	%xmm7,%xmm5
1340.byte	15,56,202,236
1341.byte	15,56,201,247
1342	movdqa	%xmm0,%xmm2
1343.byte	15,58,204,193,1
1344.byte	15,56,200,215
1345	pxor	%xmm4,%xmm6
1346.byte	15,56,201,252
1347.byte	15,56,202,245
1348
1349	movdqa	%xmm0,%xmm1
1350.byte	15,58,204,194,1
1351.byte	15,56,200,204
1352	pxor	%xmm5,%xmm7
1353.byte	15,56,202,254
1354.byte	15,56,201,229
1355	movdqa	%xmm0,%xmm2
1356.byte	15,58,204,193,1
1357.byte	15,56,200,213
1358	pxor	%xmm6,%xmm4
1359.byte	15,56,201,238
1360.byte	15,56,202,231
1361
1362	movdqa	%xmm0,%xmm1
1363.byte	15,58,204,194,1
1364.byte	15,56,200,206
1365	pxor	%xmm7,%xmm5
1366.byte	15,56,202,236
1367.byte	15,56,201,247
1368	movdqa	%xmm0,%xmm2
1369.byte	15,58,204,193,2
1370.byte	15,56,200,215
1371	pxor	%xmm4,%xmm6
1372.byte	15,56,201,252
1373.byte	15,56,202,245
1374
1375	movdqa	%xmm0,%xmm1
1376.byte	15,58,204,194,2
1377.byte	15,56,200,204
1378	pxor	%xmm5,%xmm7
1379.byte	15,56,202,254
1380.byte	15,56,201,229
1381	movdqa	%xmm0,%xmm2
1382.byte	15,58,204,193,2
1383.byte	15,56,200,213
1384	pxor	%xmm6,%xmm4
1385.byte	15,56,201,238
1386.byte	15,56,202,231
1387
1388	movdqa	%xmm0,%xmm1
1389.byte	15,58,204,194,2
1390.byte	15,56,200,206
1391	pxor	%xmm7,%xmm5
1392.byte	15,56,202,236
1393.byte	15,56,201,247
1394	movdqa	%xmm0,%xmm2
1395.byte	15,58,204,193,2
1396.byte	15,56,200,215
1397	pxor	%xmm4,%xmm6
1398.byte	15,56,201,252
1399.byte	15,56,202,245
1400
1401	movdqa	%xmm0,%xmm1
1402.byte	15,58,204,194,3
1403.byte	15,56,200,204
1404	pxor	%xmm5,%xmm7
1405.byte	15,56,202,254
1406	movdqu	(%rsi),%xmm4
1407	movdqa	%xmm0,%xmm2
1408.byte	15,58,204,193,3
1409.byte	15,56,200,213
1410	movdqu	16(%rsi),%xmm5
1411.byte	102,15,56,0,227
1412
1413	movdqa	%xmm0,%xmm1
1414.byte	15,58,204,194,3
1415.byte	15,56,200,206
1416	movdqu	32(%rsi),%xmm6
1417.byte	102,15,56,0,235
1418
1419	movdqa	%xmm0,%xmm2
1420.byte	15,58,204,193,3
1421.byte	15,56,200,215
1422	movdqu	48(%rsi),%xmm7
1423.byte	102,15,56,0,243
1424
1425	movdqa	%xmm0,%xmm1
1426.byte	15,58,204,194,3
1427.byte	65,15,56,200,201
1428.byte	102,15,56,0,251
1429
1430	paddd	%xmm8,%xmm0
1431	movdqa	%xmm1,%xmm9
1432
1433	jnz	L$oop_shaext
1434
1435	pshufd	$27,%xmm0,%xmm0
1436	pshufd	$27,%xmm1,%xmm1
1437	movdqu	%xmm0,(%rdi)
1438	movd	%xmm1,16(%rdi)
1439	.byte	0xf3,0xc3
1440
1441
1442
1443.p2align	4
1444sha1_block_data_order_ssse3:
1445_ssse3_shortcut:
1446
1447	movq	%rsp,%r11
1448
1449	pushq	%rbx
1450
1451	pushq	%rbp
1452
1453	pushq	%r12
1454
1455	pushq	%r13
1456
1457	pushq	%r14
1458
1459	leaq	-64(%rsp),%rsp
1460	andq	$-64,%rsp
1461	movq	%rdi,%r8
1462	movq	%rsi,%r9
1463	movq	%rdx,%r10
1464
1465	shlq	$6,%r10
1466	addq	%r9,%r10
1467	leaq	K_XX_XX+64(%rip),%r14
1468
1469	movl	0(%r8),%eax
1470	movl	4(%r8),%ebx
1471	movl	8(%r8),%ecx
1472	movl	12(%r8),%edx
1473	movl	%ebx,%esi
1474	movl	16(%r8),%ebp
1475	movl	%ecx,%edi
1476	xorl	%edx,%edi
1477	andl	%edi,%esi
1478
1479	movdqa	64(%r14),%xmm6
1480	movdqa	-64(%r14),%xmm9
1481	movdqu	0(%r9),%xmm0
1482	movdqu	16(%r9),%xmm1
1483	movdqu	32(%r9),%xmm2
1484	movdqu	48(%r9),%xmm3
1485.byte	102,15,56,0,198
1486.byte	102,15,56,0,206
1487.byte	102,15,56,0,214
1488	addq	$64,%r9
1489	paddd	%xmm9,%xmm0
1490.byte	102,15,56,0,222
1491	paddd	%xmm9,%xmm1
1492	paddd	%xmm9,%xmm2
1493	movdqa	%xmm0,0(%rsp)
1494	psubd	%xmm9,%xmm0
1495	movdqa	%xmm1,16(%rsp)
1496	psubd	%xmm9,%xmm1
1497	movdqa	%xmm2,32(%rsp)
1498	psubd	%xmm9,%xmm2
1499	jmp	L$oop_ssse3
1500.p2align	4
1501L$oop_ssse3:
1502	rorl	$2,%ebx
1503	pshufd	$238,%xmm0,%xmm4
1504	xorl	%edx,%esi
1505	movdqa	%xmm3,%xmm8
1506	paddd	%xmm3,%xmm9
1507	movl	%eax,%edi
1508	addl	0(%rsp),%ebp
1509	punpcklqdq	%xmm1,%xmm4
1510	xorl	%ecx,%ebx
1511	roll	$5,%eax
1512	addl	%esi,%ebp
1513	psrldq	$4,%xmm8
1514	andl	%ebx,%edi
1515	xorl	%ecx,%ebx
1516	pxor	%xmm0,%xmm4
1517	addl	%eax,%ebp
1518	rorl	$7,%eax
1519	pxor	%xmm2,%xmm8
1520	xorl	%ecx,%edi
1521	movl	%ebp,%esi
1522	addl	4(%rsp),%edx
1523	pxor	%xmm8,%xmm4
1524	xorl	%ebx,%eax
1525	roll	$5,%ebp
1526	movdqa	%xmm9,48(%rsp)
1527	addl	%edi,%edx
1528	andl	%eax,%esi
1529	movdqa	%xmm4,%xmm10
1530	xorl	%ebx,%eax
1531	addl	%ebp,%edx
1532	rorl	$7,%ebp
1533	movdqa	%xmm4,%xmm8
1534	xorl	%ebx,%esi
1535	pslldq	$12,%xmm10
1536	paddd	%xmm4,%xmm4
1537	movl	%edx,%edi
1538	addl	8(%rsp),%ecx
1539	psrld	$31,%xmm8
1540	xorl	%eax,%ebp
1541	roll	$5,%edx
1542	addl	%esi,%ecx
1543	movdqa	%xmm10,%xmm9
1544	andl	%ebp,%edi
1545	xorl	%eax,%ebp
1546	psrld	$30,%xmm10
1547	addl	%edx,%ecx
1548	rorl	$7,%edx
1549	por	%xmm8,%xmm4
1550	xorl	%eax,%edi
1551	movl	%ecx,%esi
1552	addl	12(%rsp),%ebx
1553	pslld	$2,%xmm9
1554	pxor	%xmm10,%xmm4
1555	xorl	%ebp,%edx
1556	movdqa	-64(%r14),%xmm10
1557	roll	$5,%ecx
1558	addl	%edi,%ebx
1559	andl	%edx,%esi
1560	pxor	%xmm9,%xmm4
1561	xorl	%ebp,%edx
1562	addl	%ecx,%ebx
1563	rorl	$7,%ecx
1564	pshufd	$238,%xmm1,%xmm5
1565	xorl	%ebp,%esi
1566	movdqa	%xmm4,%xmm9
1567	paddd	%xmm4,%xmm10
1568	movl	%ebx,%edi
1569	addl	16(%rsp),%eax
1570	punpcklqdq	%xmm2,%xmm5
1571	xorl	%edx,%ecx
1572	roll	$5,%ebx
1573	addl	%esi,%eax
1574	psrldq	$4,%xmm9
1575	andl	%ecx,%edi
1576	xorl	%edx,%ecx
1577	pxor	%xmm1,%xmm5
1578	addl	%ebx,%eax
1579	rorl	$7,%ebx
1580	pxor	%xmm3,%xmm9
1581	xorl	%edx,%edi
1582	movl	%eax,%esi
1583	addl	20(%rsp),%ebp
1584	pxor	%xmm9,%xmm5
1585	xorl	%ecx,%ebx
1586	roll	$5,%eax
1587	movdqa	%xmm10,0(%rsp)
1588	addl	%edi,%ebp
1589	andl	%ebx,%esi
1590	movdqa	%xmm5,%xmm8
1591	xorl	%ecx,%ebx
1592	addl	%eax,%ebp
1593	rorl	$7,%eax
1594	movdqa	%xmm5,%xmm9
1595	xorl	%ecx,%esi
1596	pslldq	$12,%xmm8
1597	paddd	%xmm5,%xmm5
1598	movl	%ebp,%edi
1599	addl	24(%rsp),%edx
1600	psrld	$31,%xmm9
1601	xorl	%ebx,%eax
1602	roll	$5,%ebp
1603	addl	%esi,%edx
1604	movdqa	%xmm8,%xmm10
1605	andl	%eax,%edi
1606	xorl	%ebx,%eax
1607	psrld	$30,%xmm8
1608	addl	%ebp,%edx
1609	rorl	$7,%ebp
1610	por	%xmm9,%xmm5
1611	xorl	%ebx,%edi
1612	movl	%edx,%esi
1613	addl	28(%rsp),%ecx
1614	pslld	$2,%xmm10
1615	pxor	%xmm8,%xmm5
1616	xorl	%eax,%ebp
1617	movdqa	-32(%r14),%xmm8
1618	roll	$5,%edx
1619	addl	%edi,%ecx
1620	andl	%ebp,%esi
1621	pxor	%xmm10,%xmm5
1622	xorl	%eax,%ebp
1623	addl	%edx,%ecx
1624	rorl	$7,%edx
1625	pshufd	$238,%xmm2,%xmm6
1626	xorl	%eax,%esi
1627	movdqa	%xmm5,%xmm10
1628	paddd	%xmm5,%xmm8
1629	movl	%ecx,%edi
1630	addl	32(%rsp),%ebx
1631	punpcklqdq	%xmm3,%xmm6
1632	xorl	%ebp,%edx
1633	roll	$5,%ecx
1634	addl	%esi,%ebx
1635	psrldq	$4,%xmm10
1636	andl	%edx,%edi
1637	xorl	%ebp,%edx
1638	pxor	%xmm2,%xmm6
1639	addl	%ecx,%ebx
1640	rorl	$7,%ecx
1641	pxor	%xmm4,%xmm10
1642	xorl	%ebp,%edi
1643	movl	%ebx,%esi
1644	addl	36(%rsp),%eax
1645	pxor	%xmm10,%xmm6
1646	xorl	%edx,%ecx
1647	roll	$5,%ebx
1648	movdqa	%xmm8,16(%rsp)
1649	addl	%edi,%eax
1650	andl	%ecx,%esi
1651	movdqa	%xmm6,%xmm9
1652	xorl	%edx,%ecx
1653	addl	%ebx,%eax
1654	rorl	$7,%ebx
1655	movdqa	%xmm6,%xmm10
1656	xorl	%edx,%esi
1657	pslldq	$12,%xmm9
1658	paddd	%xmm6,%xmm6
1659	movl	%eax,%edi
1660	addl	40(%rsp),%ebp
1661	psrld	$31,%xmm10
1662	xorl	%ecx,%ebx
1663	roll	$5,%eax
1664	addl	%esi,%ebp
1665	movdqa	%xmm9,%xmm8
1666	andl	%ebx,%edi
1667	xorl	%ecx,%ebx
1668	psrld	$30,%xmm9
1669	addl	%eax,%ebp
1670	rorl	$7,%eax
1671	por	%xmm10,%xmm6
1672	xorl	%ecx,%edi
1673	movl	%ebp,%esi
1674	addl	44(%rsp),%edx
1675	pslld	$2,%xmm8
1676	pxor	%xmm9,%xmm6
1677	xorl	%ebx,%eax
1678	movdqa	-32(%r14),%xmm9
1679	roll	$5,%ebp
1680	addl	%edi,%edx
1681	andl	%eax,%esi
1682	pxor	%xmm8,%xmm6
1683	xorl	%ebx,%eax
1684	addl	%ebp,%edx
1685	rorl	$7,%ebp
1686	pshufd	$238,%xmm3,%xmm7
1687	xorl	%ebx,%esi
1688	movdqa	%xmm6,%xmm8
1689	paddd	%xmm6,%xmm9
1690	movl	%edx,%edi
1691	addl	48(%rsp),%ecx
1692	punpcklqdq	%xmm4,%xmm7
1693	xorl	%eax,%ebp
1694	roll	$5,%edx
1695	addl	%esi,%ecx
1696	psrldq	$4,%xmm8
1697	andl	%ebp,%edi
1698	xorl	%eax,%ebp
1699	pxor	%xmm3,%xmm7
1700	addl	%edx,%ecx
1701	rorl	$7,%edx
1702	pxor	%xmm5,%xmm8
1703	xorl	%eax,%edi
1704	movl	%ecx,%esi
1705	addl	52(%rsp),%ebx
1706	pxor	%xmm8,%xmm7
1707	xorl	%ebp,%edx
1708	roll	$5,%ecx
1709	movdqa	%xmm9,32(%rsp)
1710	addl	%edi,%ebx
1711	andl	%edx,%esi
1712	movdqa	%xmm7,%xmm10
1713	xorl	%ebp,%edx
1714	addl	%ecx,%ebx
1715	rorl	$7,%ecx
1716	movdqa	%xmm7,%xmm8
1717	xorl	%ebp,%esi
1718	pslldq	$12,%xmm10
1719	paddd	%xmm7,%xmm7
1720	movl	%ebx,%edi
1721	addl	56(%rsp),%eax
1722	psrld	$31,%xmm8
1723	xorl	%edx,%ecx
1724	roll	$5,%ebx
1725	addl	%esi,%eax
1726	movdqa	%xmm10,%xmm9
1727	andl	%ecx,%edi
1728	xorl	%edx,%ecx
1729	psrld	$30,%xmm10
1730	addl	%ebx,%eax
1731	rorl	$7,%ebx
1732	por	%xmm8,%xmm7
1733	xorl	%edx,%edi
1734	movl	%eax,%esi
1735	addl	60(%rsp),%ebp
1736	pslld	$2,%xmm9
1737	pxor	%xmm10,%xmm7
1738	xorl	%ecx,%ebx
1739	movdqa	-32(%r14),%xmm10
1740	roll	$5,%eax
1741	addl	%edi,%ebp
1742	andl	%ebx,%esi
1743	pxor	%xmm9,%xmm7
1744	pshufd	$238,%xmm6,%xmm9
1745	xorl	%ecx,%ebx
1746	addl	%eax,%ebp
1747	rorl	$7,%eax
1748	pxor	%xmm4,%xmm0
1749	xorl	%ecx,%esi
1750	movl	%ebp,%edi
1751	addl	0(%rsp),%edx
1752	punpcklqdq	%xmm7,%xmm9
1753	xorl	%ebx,%eax
1754	roll	$5,%ebp
1755	pxor	%xmm1,%xmm0
1756	addl	%esi,%edx
1757	andl	%eax,%edi
1758	movdqa	%xmm10,%xmm8
1759	xorl	%ebx,%eax
1760	paddd	%xmm7,%xmm10
1761	addl	%ebp,%edx
1762	pxor	%xmm9,%xmm0
1763	rorl	$7,%ebp
1764	xorl	%ebx,%edi
1765	movl	%edx,%esi
1766	addl	4(%rsp),%ecx
1767	movdqa	%xmm0,%xmm9
1768	xorl	%eax,%ebp
1769	roll	$5,%edx
1770	movdqa	%xmm10,48(%rsp)
1771	addl	%edi,%ecx
1772	andl	%ebp,%esi
1773	xorl	%eax,%ebp
1774	pslld	$2,%xmm0
1775	addl	%edx,%ecx
1776	rorl	$7,%edx
1777	psrld	$30,%xmm9
1778	xorl	%eax,%esi
1779	movl	%ecx,%edi
1780	addl	8(%rsp),%ebx
1781	por	%xmm9,%xmm0
1782	xorl	%ebp,%edx
1783	roll	$5,%ecx
1784	pshufd	$238,%xmm7,%xmm10
1785	addl	%esi,%ebx
1786	andl	%edx,%edi
1787	xorl	%ebp,%edx
1788	addl	%ecx,%ebx
1789	addl	12(%rsp),%eax
1790	xorl	%ebp,%edi
1791	movl	%ebx,%esi
1792	roll	$5,%ebx
1793	addl	%edi,%eax
1794	xorl	%edx,%esi
1795	rorl	$7,%ecx
1796	addl	%ebx,%eax
1797	pxor	%xmm5,%xmm1
1798	addl	16(%rsp),%ebp
1799	xorl	%ecx,%esi
1800	punpcklqdq	%xmm0,%xmm10
1801	movl	%eax,%edi
1802	roll	$5,%eax
1803	pxor	%xmm2,%xmm1
1804	addl	%esi,%ebp
1805	xorl	%ecx,%edi
1806	movdqa	%xmm8,%xmm9
1807	rorl	$7,%ebx
1808	paddd	%xmm0,%xmm8
1809	addl	%eax,%ebp
1810	pxor	%xmm10,%xmm1
1811	addl	20(%rsp),%edx
1812	xorl	%ebx,%edi
1813	movl	%ebp,%esi
1814	roll	$5,%ebp
1815	movdqa	%xmm1,%xmm10
1816	addl	%edi,%edx
1817	xorl	%ebx,%esi
1818	movdqa	%xmm8,0(%rsp)
1819	rorl	$7,%eax
1820	addl	%ebp,%edx
1821	addl	24(%rsp),%ecx
1822	pslld	$2,%xmm1
1823	xorl	%eax,%esi
1824	movl	%edx,%edi
1825	psrld	$30,%xmm10
1826	roll	$5,%edx
1827	addl	%esi,%ecx
1828	xorl	%eax,%edi
1829	rorl	$7,%ebp
1830	por	%xmm10,%xmm1
1831	addl	%edx,%ecx
1832	addl	28(%rsp),%ebx
1833	pshufd	$238,%xmm0,%xmm8
1834	xorl	%ebp,%edi
1835	movl	%ecx,%esi
1836	roll	$5,%ecx
1837	addl	%edi,%ebx
1838	xorl	%ebp,%esi
1839	rorl	$7,%edx
1840	addl	%ecx,%ebx
1841	pxor	%xmm6,%xmm2
1842	addl	32(%rsp),%eax
1843	xorl	%edx,%esi
1844	punpcklqdq	%xmm1,%xmm8
1845	movl	%ebx,%edi
1846	roll	$5,%ebx
1847	pxor	%xmm3,%xmm2
1848	addl	%esi,%eax
1849	xorl	%edx,%edi
1850	movdqa	0(%r14),%xmm10
1851	rorl	$7,%ecx
1852	paddd	%xmm1,%xmm9
1853	addl	%ebx,%eax
1854	pxor	%xmm8,%xmm2
1855	addl	36(%rsp),%ebp
1856	xorl	%ecx,%edi
1857	movl	%eax,%esi
1858	roll	$5,%eax
1859	movdqa	%xmm2,%xmm8
1860	addl	%edi,%ebp
1861	xorl	%ecx,%esi
1862	movdqa	%xmm9,16(%rsp)
1863	rorl	$7,%ebx
1864	addl	%eax,%ebp
1865	addl	40(%rsp),%edx
1866	pslld	$2,%xmm2
1867	xorl	%ebx,%esi
1868	movl	%ebp,%edi
1869	psrld	$30,%xmm8
1870	roll	$5,%ebp
1871	addl	%esi,%edx
1872	xorl	%ebx,%edi
1873	rorl	$7,%eax
1874	por	%xmm8,%xmm2
1875	addl	%ebp,%edx
1876	addl	44(%rsp),%ecx
1877	pshufd	$238,%xmm1,%xmm9
1878	xorl	%eax,%edi
1879	movl	%edx,%esi
1880	roll	$5,%edx
1881	addl	%edi,%ecx
1882	xorl	%eax,%esi
1883	rorl	$7,%ebp
1884	addl	%edx,%ecx
1885	pxor	%xmm7,%xmm3
1886	addl	48(%rsp),%ebx
1887	xorl	%ebp,%esi
1888	punpcklqdq	%xmm2,%xmm9
1889	movl	%ecx,%edi
1890	roll	$5,%ecx
1891	pxor	%xmm4,%xmm3
1892	addl	%esi,%ebx
1893	xorl	%ebp,%edi
1894	movdqa	%xmm10,%xmm8
1895	rorl	$7,%edx
1896	paddd	%xmm2,%xmm10
1897	addl	%ecx,%ebx
1898	pxor	%xmm9,%xmm3
1899	addl	52(%rsp),%eax
1900	xorl	%edx,%edi
1901	movl	%ebx,%esi
1902	roll	$5,%ebx
1903	movdqa	%xmm3,%xmm9
1904	addl	%edi,%eax
1905	xorl	%edx,%esi
1906	movdqa	%xmm10,32(%rsp)
1907	rorl	$7,%ecx
1908	addl	%ebx,%eax
1909	addl	56(%rsp),%ebp
1910	pslld	$2,%xmm3
1911	xorl	%ecx,%esi
1912	movl	%eax,%edi
1913	psrld	$30,%xmm9
1914	roll	$5,%eax
1915	addl	%esi,%ebp
1916	xorl	%ecx,%edi
1917	rorl	$7,%ebx
1918	por	%xmm9,%xmm3
1919	addl	%eax,%ebp
1920	addl	60(%rsp),%edx
1921	pshufd	$238,%xmm2,%xmm10
1922	xorl	%ebx,%edi
1923	movl	%ebp,%esi
1924	roll	$5,%ebp
1925	addl	%edi,%edx
1926	xorl	%ebx,%esi
1927	rorl	$7,%eax
1928	addl	%ebp,%edx
1929	pxor	%xmm0,%xmm4
1930	addl	0(%rsp),%ecx
1931	xorl	%eax,%esi
1932	punpcklqdq	%xmm3,%xmm10
1933	movl	%edx,%edi
1934	roll	$5,%edx
1935	pxor	%xmm5,%xmm4
1936	addl	%esi,%ecx
1937	xorl	%eax,%edi
1938	movdqa	%xmm8,%xmm9
1939	rorl	$7,%ebp
1940	paddd	%xmm3,%xmm8
1941	addl	%edx,%ecx
1942	pxor	%xmm10,%xmm4
1943	addl	4(%rsp),%ebx
1944	xorl	%ebp,%edi
1945	movl	%ecx,%esi
1946	roll	$5,%ecx
1947	movdqa	%xmm4,%xmm10
1948	addl	%edi,%ebx
1949	xorl	%ebp,%esi
1950	movdqa	%xmm8,48(%rsp)
1951	rorl	$7,%edx
1952	addl	%ecx,%ebx
1953	addl	8(%rsp),%eax
1954	pslld	$2,%xmm4
1955	xorl	%edx,%esi
1956	movl	%ebx,%edi
1957	psrld	$30,%xmm10
1958	roll	$5,%ebx
1959	addl	%esi,%eax
1960	xorl	%edx,%edi
1961	rorl	$7,%ecx
1962	por	%xmm10,%xmm4
1963	addl	%ebx,%eax
1964	addl	12(%rsp),%ebp
1965	pshufd	$238,%xmm3,%xmm8
1966	xorl	%ecx,%edi
1967	movl	%eax,%esi
1968	roll	$5,%eax
1969	addl	%edi,%ebp
1970	xorl	%ecx,%esi
1971	rorl	$7,%ebx
1972	addl	%eax,%ebp
1973	pxor	%xmm1,%xmm5
1974	addl	16(%rsp),%edx
1975	xorl	%ebx,%esi
1976	punpcklqdq	%xmm4,%xmm8
1977	movl	%ebp,%edi
1978	roll	$5,%ebp
1979	pxor	%xmm6,%xmm5
1980	addl	%esi,%edx
1981	xorl	%ebx,%edi
1982	movdqa	%xmm9,%xmm10
1983	rorl	$7,%eax
1984	paddd	%xmm4,%xmm9
1985	addl	%ebp,%edx
1986	pxor	%xmm8,%xmm5
1987	addl	20(%rsp),%ecx
1988	xorl	%eax,%edi
1989	movl	%edx,%esi
1990	roll	$5,%edx
1991	movdqa	%xmm5,%xmm8
1992	addl	%edi,%ecx
1993	xorl	%eax,%esi
1994	movdqa	%xmm9,0(%rsp)
1995	rorl	$7,%ebp
1996	addl	%edx,%ecx
1997	addl	24(%rsp),%ebx
1998	pslld	$2,%xmm5
1999	xorl	%ebp,%esi
2000	movl	%ecx,%edi
2001	psrld	$30,%xmm8
2002	roll	$5,%ecx
2003	addl	%esi,%ebx
2004	xorl	%ebp,%edi
2005	rorl	$7,%edx
2006	por	%xmm8,%xmm5
2007	addl	%ecx,%ebx
2008	addl	28(%rsp),%eax
2009	pshufd	$238,%xmm4,%xmm9
2010	rorl	$7,%ecx
2011	movl	%ebx,%esi
2012	xorl	%edx,%edi
2013	roll	$5,%ebx
2014	addl	%edi,%eax
2015	xorl	%ecx,%esi
2016	xorl	%edx,%ecx
2017	addl	%ebx,%eax
2018	pxor	%xmm2,%xmm6
2019	addl	32(%rsp),%ebp
2020	andl	%ecx,%esi
2021	xorl	%edx,%ecx
2022	rorl	$7,%ebx
2023	punpcklqdq	%xmm5,%xmm9
2024	movl	%eax,%edi
2025	xorl	%ecx,%esi
2026	pxor	%xmm7,%xmm6
2027	roll	$5,%eax
2028	addl	%esi,%ebp
2029	movdqa	%xmm10,%xmm8
2030	xorl	%ebx,%edi
2031	paddd	%xmm5,%xmm10
2032	xorl	%ecx,%ebx
2033	pxor	%xmm9,%xmm6
2034	addl	%eax,%ebp
2035	addl	36(%rsp),%edx
2036	andl	%ebx,%edi
2037	xorl	%ecx,%ebx
2038	rorl	$7,%eax
2039	movdqa	%xmm6,%xmm9
2040	movl	%ebp,%esi
2041	xorl	%ebx,%edi
2042	movdqa	%xmm10,16(%rsp)
2043	roll	$5,%ebp
2044	addl	%edi,%edx
2045	xorl	%eax,%esi
2046	pslld	$2,%xmm6
2047	xorl	%ebx,%eax
2048	addl	%ebp,%edx
2049	psrld	$30,%xmm9
2050	addl	40(%rsp),%ecx
2051	andl	%eax,%esi
2052	xorl	%ebx,%eax
2053	por	%xmm9,%xmm6
2054	rorl	$7,%ebp
2055	movl	%edx,%edi
2056	xorl	%eax,%esi
2057	roll	$5,%edx
2058	pshufd	$238,%xmm5,%xmm10
2059	addl	%esi,%ecx
2060	xorl	%ebp,%edi
2061	xorl	%eax,%ebp
2062	addl	%edx,%ecx
2063	addl	44(%rsp),%ebx
2064	andl	%ebp,%edi
2065	xorl	%eax,%ebp
2066	rorl	$7,%edx
2067	movl	%ecx,%esi
2068	xorl	%ebp,%edi
2069	roll	$5,%ecx
2070	addl	%edi,%ebx
2071	xorl	%edx,%esi
2072	xorl	%ebp,%edx
2073	addl	%ecx,%ebx
2074	pxor	%xmm3,%xmm7
2075	addl	48(%rsp),%eax
2076	andl	%edx,%esi
2077	xorl	%ebp,%edx
2078	rorl	$7,%ecx
2079	punpcklqdq	%xmm6,%xmm10
2080	movl	%ebx,%edi
2081	xorl	%edx,%esi
2082	pxor	%xmm0,%xmm7
2083	roll	$5,%ebx
2084	addl	%esi,%eax
2085	movdqa	32(%r14),%xmm9
2086	xorl	%ecx,%edi
2087	paddd	%xmm6,%xmm8
2088	xorl	%edx,%ecx
2089	pxor	%xmm10,%xmm7
2090	addl	%ebx,%eax
2091	addl	52(%rsp),%ebp
2092	andl	%ecx,%edi
2093	xorl	%edx,%ecx
2094	rorl	$7,%ebx
2095	movdqa	%xmm7,%xmm10
2096	movl	%eax,%esi
2097	xorl	%ecx,%edi
2098	movdqa	%xmm8,32(%rsp)
2099	roll	$5,%eax
2100	addl	%edi,%ebp
2101	xorl	%ebx,%esi
2102	pslld	$2,%xmm7
2103	xorl	%ecx,%ebx
2104	addl	%eax,%ebp
2105	psrld	$30,%xmm10
2106	addl	56(%rsp),%edx
2107	andl	%ebx,%esi
2108	xorl	%ecx,%ebx
2109	por	%xmm10,%xmm7
2110	rorl	$7,%eax
2111	movl	%ebp,%edi
2112	xorl	%ebx,%esi
2113	roll	$5,%ebp
2114	pshufd	$238,%xmm6,%xmm8
2115	addl	%esi,%edx
2116	xorl	%eax,%edi
2117	xorl	%ebx,%eax
2118	addl	%ebp,%edx
2119	addl	60(%rsp),%ecx
2120	andl	%eax,%edi
2121	xorl	%ebx,%eax
2122	rorl	$7,%ebp
2123	movl	%edx,%esi
2124	xorl	%eax,%edi
2125	roll	$5,%edx
2126	addl	%edi,%ecx
2127	xorl	%ebp,%esi
2128	xorl	%eax,%ebp
2129	addl	%edx,%ecx
2130	pxor	%xmm4,%xmm0
2131	addl	0(%rsp),%ebx
2132	andl	%ebp,%esi
2133	xorl	%eax,%ebp
2134	rorl	$7,%edx
2135	punpcklqdq	%xmm7,%xmm8
2136	movl	%ecx,%edi
2137	xorl	%ebp,%esi
2138	pxor	%xmm1,%xmm0
2139	roll	$5,%ecx
2140	addl	%esi,%ebx
2141	movdqa	%xmm9,%xmm10
2142	xorl	%edx,%edi
2143	paddd	%xmm7,%xmm9
2144	xorl	%ebp,%edx
2145	pxor	%xmm8,%xmm0
2146	addl	%ecx,%ebx
2147	addl	4(%rsp),%eax
2148	andl	%edx,%edi
2149	xorl	%ebp,%edx
2150	rorl	$7,%ecx
2151	movdqa	%xmm0,%xmm8
2152	movl	%ebx,%esi
2153	xorl	%edx,%edi
2154	movdqa	%xmm9,48(%rsp)
2155	roll	$5,%ebx
2156	addl	%edi,%eax
2157	xorl	%ecx,%esi
2158	pslld	$2,%xmm0
2159	xorl	%edx,%ecx
2160	addl	%ebx,%eax
2161	psrld	$30,%xmm8
2162	addl	8(%rsp),%ebp
2163	andl	%ecx,%esi
2164	xorl	%edx,%ecx
2165	por	%xmm8,%xmm0
2166	rorl	$7,%ebx
2167	movl	%eax,%edi
2168	xorl	%ecx,%esi
2169	roll	$5,%eax
2170	pshufd	$238,%xmm7,%xmm9
2171	addl	%esi,%ebp
2172	xorl	%ebx,%edi
2173	xorl	%ecx,%ebx
2174	addl	%eax,%ebp
2175	addl	12(%rsp),%edx
2176	andl	%ebx,%edi
2177	xorl	%ecx,%ebx
2178	rorl	$7,%eax
2179	movl	%ebp,%esi
2180	xorl	%ebx,%edi
2181	roll	$5,%ebp
2182	addl	%edi,%edx
2183	xorl	%eax,%esi
2184	xorl	%ebx,%eax
2185	addl	%ebp,%edx
2186	pxor	%xmm5,%xmm1
2187	addl	16(%rsp),%ecx
2188	andl	%eax,%esi
2189	xorl	%ebx,%eax
2190	rorl	$7,%ebp
2191	punpcklqdq	%xmm0,%xmm9
2192	movl	%edx,%edi
2193	xorl	%eax,%esi
2194	pxor	%xmm2,%xmm1
2195	roll	$5,%edx
2196	addl	%esi,%ecx
2197	movdqa	%xmm10,%xmm8
2198	xorl	%ebp,%edi
2199	paddd	%xmm0,%xmm10
2200	xorl	%eax,%ebp
2201	pxor	%xmm9,%xmm1
2202	addl	%edx,%ecx
2203	addl	20(%rsp),%ebx
2204	andl	%ebp,%edi
2205	xorl	%eax,%ebp
2206	rorl	$7,%edx
2207	movdqa	%xmm1,%xmm9
2208	movl	%ecx,%esi
2209	xorl	%ebp,%edi
2210	movdqa	%xmm10,0(%rsp)
2211	roll	$5,%ecx
2212	addl	%edi,%ebx
2213	xorl	%edx,%esi
2214	pslld	$2,%xmm1
2215	xorl	%ebp,%edx
2216	addl	%ecx,%ebx
2217	psrld	$30,%xmm9
2218	addl	24(%rsp),%eax
2219	andl	%edx,%esi
2220	xorl	%ebp,%edx
2221	por	%xmm9,%xmm1
2222	rorl	$7,%ecx
2223	movl	%ebx,%edi
2224	xorl	%edx,%esi
2225	roll	$5,%ebx
2226	pshufd	$238,%xmm0,%xmm10
2227	addl	%esi,%eax
2228	xorl	%ecx,%edi
2229	xorl	%edx,%ecx
2230	addl	%ebx,%eax
2231	addl	28(%rsp),%ebp
2232	andl	%ecx,%edi
2233	xorl	%edx,%ecx
2234	rorl	$7,%ebx
2235	movl	%eax,%esi
2236	xorl	%ecx,%edi
2237	roll	$5,%eax
2238	addl	%edi,%ebp
2239	xorl	%ebx,%esi
2240	xorl	%ecx,%ebx
2241	addl	%eax,%ebp
2242	pxor	%xmm6,%xmm2
2243	addl	32(%rsp),%edx
2244	andl	%ebx,%esi
2245	xorl	%ecx,%ebx
2246	rorl	$7,%eax
2247	punpcklqdq	%xmm1,%xmm10
2248	movl	%ebp,%edi
2249	xorl	%ebx,%esi
2250	pxor	%xmm3,%xmm2
2251	roll	$5,%ebp
2252	addl	%esi,%edx
2253	movdqa	%xmm8,%xmm9
2254	xorl	%eax,%edi
2255	paddd	%xmm1,%xmm8
2256	xorl	%ebx,%eax
2257	pxor	%xmm10,%xmm2
2258	addl	%ebp,%edx
2259	addl	36(%rsp),%ecx
2260	andl	%eax,%edi
2261	xorl	%ebx,%eax
2262	rorl	$7,%ebp
2263	movdqa	%xmm2,%xmm10
2264	movl	%edx,%esi
2265	xorl	%eax,%edi
2266	movdqa	%xmm8,16(%rsp)
2267	roll	$5,%edx
2268	addl	%edi,%ecx
2269	xorl	%ebp,%esi
2270	pslld	$2,%xmm2
2271	xorl	%eax,%ebp
2272	addl	%edx,%ecx
2273	psrld	$30,%xmm10
2274	addl	40(%rsp),%ebx
2275	andl	%ebp,%esi
2276	xorl	%eax,%ebp
2277	por	%xmm10,%xmm2
2278	rorl	$7,%edx
2279	movl	%ecx,%edi
2280	xorl	%ebp,%esi
2281	roll	$5,%ecx
2282	pshufd	$238,%xmm1,%xmm8
2283	addl	%esi,%ebx
2284	xorl	%edx,%edi
2285	xorl	%ebp,%edx
2286	addl	%ecx,%ebx
2287	addl	44(%rsp),%eax
2288	andl	%edx,%edi
2289	xorl	%ebp,%edx
2290	rorl	$7,%ecx
2291	movl	%ebx,%esi
2292	xorl	%edx,%edi
2293	roll	$5,%ebx
2294	addl	%edi,%eax
2295	xorl	%edx,%esi
2296	addl	%ebx,%eax
2297	pxor	%xmm7,%xmm3
2298	addl	48(%rsp),%ebp
2299	xorl	%ecx,%esi
2300	punpcklqdq	%xmm2,%xmm8
2301	movl	%eax,%edi
2302	roll	$5,%eax
2303	pxor	%xmm4,%xmm3
2304	addl	%esi,%ebp
2305	xorl	%ecx,%edi
2306	movdqa	%xmm9,%xmm10
2307	rorl	$7,%ebx
2308	paddd	%xmm2,%xmm9
2309	addl	%eax,%ebp
2310	pxor	%xmm8,%xmm3
2311	addl	52(%rsp),%edx
2312	xorl	%ebx,%edi
2313	movl	%ebp,%esi
2314	roll	$5,%ebp
2315	movdqa	%xmm3,%xmm8
2316	addl	%edi,%edx
2317	xorl	%ebx,%esi
2318	movdqa	%xmm9,32(%rsp)
2319	rorl	$7,%eax
2320	addl	%ebp,%edx
2321	addl	56(%rsp),%ecx
2322	pslld	$2,%xmm3
2323	xorl	%eax,%esi
2324	movl	%edx,%edi
2325	psrld	$30,%xmm8
2326	roll	$5,%edx
2327	addl	%esi,%ecx
2328	xorl	%eax,%edi
2329	rorl	$7,%ebp
2330	por	%xmm8,%xmm3
2331	addl	%edx,%ecx
2332	addl	60(%rsp),%ebx
2333	xorl	%ebp,%edi
2334	movl	%ecx,%esi
2335	roll	$5,%ecx
2336	addl	%edi,%ebx
2337	xorl	%ebp,%esi
2338	rorl	$7,%edx
2339	addl	%ecx,%ebx
2340	addl	0(%rsp),%eax
2341	xorl	%edx,%esi
2342	movl	%ebx,%edi
2343	roll	$5,%ebx
2344	paddd	%xmm3,%xmm10
2345	addl	%esi,%eax
2346	xorl	%edx,%edi
2347	movdqa	%xmm10,48(%rsp)
2348	rorl	$7,%ecx
2349	addl	%ebx,%eax
2350	addl	4(%rsp),%ebp
2351	xorl	%ecx,%edi
2352	movl	%eax,%esi
2353	roll	$5,%eax
2354	addl	%edi,%ebp
2355	xorl	%ecx,%esi
2356	rorl	$7,%ebx
2357	addl	%eax,%ebp
2358	addl	8(%rsp),%edx
2359	xorl	%ebx,%esi
2360	movl	%ebp,%edi
2361	roll	$5,%ebp
2362	addl	%esi,%edx
2363	xorl	%ebx,%edi
2364	rorl	$7,%eax
2365	addl	%ebp,%edx
2366	addl	12(%rsp),%ecx
2367	xorl	%eax,%edi
2368	movl	%edx,%esi
2369	roll	$5,%edx
2370	addl	%edi,%ecx
2371	xorl	%eax,%esi
2372	rorl	$7,%ebp
2373	addl	%edx,%ecx
2374	cmpq	%r10,%r9
2375	je	L$done_ssse3
2376	movdqa	64(%r14),%xmm6
2377	movdqa	-64(%r14),%xmm9
2378	movdqu	0(%r9),%xmm0
2379	movdqu	16(%r9),%xmm1
2380	movdqu	32(%r9),%xmm2
2381	movdqu	48(%r9),%xmm3
2382.byte	102,15,56,0,198
2383	addq	$64,%r9
2384	addl	16(%rsp),%ebx
2385	xorl	%ebp,%esi
2386	movl	%ecx,%edi
2387.byte	102,15,56,0,206
2388	roll	$5,%ecx
2389	addl	%esi,%ebx
2390	xorl	%ebp,%edi
2391	rorl	$7,%edx
2392	paddd	%xmm9,%xmm0
2393	addl	%ecx,%ebx
2394	addl	20(%rsp),%eax
2395	xorl	%edx,%edi
2396	movl	%ebx,%esi
2397	movdqa	%xmm0,0(%rsp)
2398	roll	$5,%ebx
2399	addl	%edi,%eax
2400	xorl	%edx,%esi
2401	rorl	$7,%ecx
2402	psubd	%xmm9,%xmm0
2403	addl	%ebx,%eax
2404	addl	24(%rsp),%ebp
2405	xorl	%ecx,%esi
2406	movl	%eax,%edi
2407	roll	$5,%eax
2408	addl	%esi,%ebp
2409	xorl	%ecx,%edi
2410	rorl	$7,%ebx
2411	addl	%eax,%ebp
2412	addl	28(%rsp),%edx
2413	xorl	%ebx,%edi
2414	movl	%ebp,%esi
2415	roll	$5,%ebp
2416	addl	%edi,%edx
2417	xorl	%ebx,%esi
2418	rorl	$7,%eax
2419	addl	%ebp,%edx
2420	addl	32(%rsp),%ecx
2421	xorl	%eax,%esi
2422	movl	%edx,%edi
2423.byte	102,15,56,0,214
2424	roll	$5,%edx
2425	addl	%esi,%ecx
2426	xorl	%eax,%edi
2427	rorl	$7,%ebp
2428	paddd	%xmm9,%xmm1
2429	addl	%edx,%ecx
2430	addl	36(%rsp),%ebx
2431	xorl	%ebp,%edi
2432	movl	%ecx,%esi
2433	movdqa	%xmm1,16(%rsp)
2434	roll	$5,%ecx
2435	addl	%edi,%ebx
2436	xorl	%ebp,%esi
2437	rorl	$7,%edx
2438	psubd	%xmm9,%xmm1
2439	addl	%ecx,%ebx
2440	addl	40(%rsp),%eax
2441	xorl	%edx,%esi
2442	movl	%ebx,%edi
2443	roll	$5,%ebx
2444	addl	%esi,%eax
2445	xorl	%edx,%edi
2446	rorl	$7,%ecx
2447	addl	%ebx,%eax
2448	addl	44(%rsp),%ebp
2449	xorl	%ecx,%edi
2450	movl	%eax,%esi
2451	roll	$5,%eax
2452	addl	%edi,%ebp
2453	xorl	%ecx,%esi
2454	rorl	$7,%ebx
2455	addl	%eax,%ebp
2456	addl	48(%rsp),%edx
2457	xorl	%ebx,%esi
2458	movl	%ebp,%edi
2459.byte	102,15,56,0,222
2460	roll	$5,%ebp
2461	addl	%esi,%edx
2462	xorl	%ebx,%edi
2463	rorl	$7,%eax
2464	paddd	%xmm9,%xmm2
2465	addl	%ebp,%edx
2466	addl	52(%rsp),%ecx
2467	xorl	%eax,%edi
2468	movl	%edx,%esi
2469	movdqa	%xmm2,32(%rsp)
2470	roll	$5,%edx
2471	addl	%edi,%ecx
2472	xorl	%eax,%esi
2473	rorl	$7,%ebp
2474	psubd	%xmm9,%xmm2
2475	addl	%edx,%ecx
2476	addl	56(%rsp),%ebx
2477	xorl	%ebp,%esi
2478	movl	%ecx,%edi
2479	roll	$5,%ecx
2480	addl	%esi,%ebx
2481	xorl	%ebp,%edi
2482	rorl	$7,%edx
2483	addl	%ecx,%ebx
2484	addl	60(%rsp),%eax
2485	xorl	%edx,%edi
2486	movl	%ebx,%esi
2487	roll	$5,%ebx
2488	addl	%edi,%eax
2489	rorl	$7,%ecx
2490	addl	%ebx,%eax
2491	addl	0(%r8),%eax
2492	addl	4(%r8),%esi
2493	addl	8(%r8),%ecx
2494	addl	12(%r8),%edx
2495	movl	%eax,0(%r8)
2496	addl	16(%r8),%ebp
2497	movl	%esi,4(%r8)
2498	movl	%esi,%ebx
2499	movl	%ecx,8(%r8)
2500	movl	%ecx,%edi
2501	movl	%edx,12(%r8)
2502	xorl	%edx,%edi
2503	movl	%ebp,16(%r8)
2504	andl	%edi,%esi
2505	jmp	L$oop_ssse3
2506
2507.p2align	4
2508L$done_ssse3:
2509	addl	16(%rsp),%ebx
2510	xorl	%ebp,%esi
2511	movl	%ecx,%edi
2512	roll	$5,%ecx
2513	addl	%esi,%ebx
2514	xorl	%ebp,%edi
2515	rorl	$7,%edx
2516	addl	%ecx,%ebx
2517	addl	20(%rsp),%eax
2518	xorl	%edx,%edi
2519	movl	%ebx,%esi
2520	roll	$5,%ebx
2521	addl	%edi,%eax
2522	xorl	%edx,%esi
2523	rorl	$7,%ecx
2524	addl	%ebx,%eax
2525	addl	24(%rsp),%ebp
2526	xorl	%ecx,%esi
2527	movl	%eax,%edi
2528	roll	$5,%eax
2529	addl	%esi,%ebp
2530	xorl	%ecx,%edi
2531	rorl	$7,%ebx
2532	addl	%eax,%ebp
2533	addl	28(%rsp),%edx
2534	xorl	%ebx,%edi
2535	movl	%ebp,%esi
2536	roll	$5,%ebp
2537	addl	%edi,%edx
2538	xorl	%ebx,%esi
2539	rorl	$7,%eax
2540	addl	%ebp,%edx
2541	addl	32(%rsp),%ecx
2542	xorl	%eax,%esi
2543	movl	%edx,%edi
2544	roll	$5,%edx
2545	addl	%esi,%ecx
2546	xorl	%eax,%edi
2547	rorl	$7,%ebp
2548	addl	%edx,%ecx
2549	addl	36(%rsp),%ebx
2550	xorl	%ebp,%edi
2551	movl	%ecx,%esi
2552	roll	$5,%ecx
2553	addl	%edi,%ebx
2554	xorl	%ebp,%esi
2555	rorl	$7,%edx
2556	addl	%ecx,%ebx
2557	addl	40(%rsp),%eax
2558	xorl	%edx,%esi
2559	movl	%ebx,%edi
2560	roll	$5,%ebx
2561	addl	%esi,%eax
2562	xorl	%edx,%edi
2563	rorl	$7,%ecx
2564	addl	%ebx,%eax
2565	addl	44(%rsp),%ebp
2566	xorl	%ecx,%edi
2567	movl	%eax,%esi
2568	roll	$5,%eax
2569	addl	%edi,%ebp
2570	xorl	%ecx,%esi
2571	rorl	$7,%ebx
2572	addl	%eax,%ebp
2573	addl	48(%rsp),%edx
2574	xorl	%ebx,%esi
2575	movl	%ebp,%edi
2576	roll	$5,%ebp
2577	addl	%esi,%edx
2578	xorl	%ebx,%edi
2579	rorl	$7,%eax
2580	addl	%ebp,%edx
2581	addl	52(%rsp),%ecx
2582	xorl	%eax,%edi
2583	movl	%edx,%esi
2584	roll	$5,%edx
2585	addl	%edi,%ecx
2586	xorl	%eax,%esi
2587	rorl	$7,%ebp
2588	addl	%edx,%ecx
2589	addl	56(%rsp),%ebx
2590	xorl	%ebp,%esi
2591	movl	%ecx,%edi
2592	roll	$5,%ecx
2593	addl	%esi,%ebx
2594	xorl	%ebp,%edi
2595	rorl	$7,%edx
2596	addl	%ecx,%ebx
2597	addl	60(%rsp),%eax
2598	xorl	%edx,%edi
2599	movl	%ebx,%esi
2600	roll	$5,%ebx
2601	addl	%edi,%eax
2602	rorl	$7,%ecx
2603	addl	%ebx,%eax
2604	addl	0(%r8),%eax
2605	addl	4(%r8),%esi
2606	addl	8(%r8),%ecx
2607	movl	%eax,0(%r8)
2608	addl	12(%r8),%edx
2609	movl	%esi,4(%r8)
2610	addl	16(%r8),%ebp
2611	movl	%ecx,8(%r8)
2612	movl	%edx,12(%r8)
2613	movl	%ebp,16(%r8)
2614	movq	-40(%r11),%r14
2615
2616	movq	-32(%r11),%r13
2617
2618	movq	-24(%r11),%r12
2619
2620	movq	-16(%r11),%rbp
2621
2622	movq	-8(%r11),%rbx
2623
2624	leaq	(%r11),%rsp
2625
2626L$epilogue_ssse3:
2627	.byte	0xf3,0xc3
2628
2629
2630
2631.p2align	4
2632sha1_block_data_order_avx:
2633_avx_shortcut:
2634
2635	movq	%rsp,%r11
2636
2637	pushq	%rbx
2638
2639	pushq	%rbp
2640
2641	pushq	%r12
2642
2643	pushq	%r13
2644
2645	pushq	%r14
2646
2647	leaq	-64(%rsp),%rsp
2648	vzeroupper
2649	andq	$-64,%rsp
2650	movq	%rdi,%r8
2651	movq	%rsi,%r9
2652	movq	%rdx,%r10
2653
2654	shlq	$6,%r10
2655	addq	%r9,%r10
2656	leaq	K_XX_XX+64(%rip),%r14
2657
2658	movl	0(%r8),%eax
2659	movl	4(%r8),%ebx
2660	movl	8(%r8),%ecx
2661	movl	12(%r8),%edx
2662	movl	%ebx,%esi
2663	movl	16(%r8),%ebp
2664	movl	%ecx,%edi
2665	xorl	%edx,%edi
2666	andl	%edi,%esi
2667
2668	vmovdqa	64(%r14),%xmm6
2669	vmovdqa	-64(%r14),%xmm11
2670	vmovdqu	0(%r9),%xmm0
2671	vmovdqu	16(%r9),%xmm1
2672	vmovdqu	32(%r9),%xmm2
2673	vmovdqu	48(%r9),%xmm3
2674	vpshufb	%xmm6,%xmm0,%xmm0
2675	addq	$64,%r9
2676	vpshufb	%xmm6,%xmm1,%xmm1
2677	vpshufb	%xmm6,%xmm2,%xmm2
2678	vpshufb	%xmm6,%xmm3,%xmm3
2679	vpaddd	%xmm11,%xmm0,%xmm4
2680	vpaddd	%xmm11,%xmm1,%xmm5
2681	vpaddd	%xmm11,%xmm2,%xmm6
2682	vmovdqa	%xmm4,0(%rsp)
2683	vmovdqa	%xmm5,16(%rsp)
2684	vmovdqa	%xmm6,32(%rsp)
2685	jmp	L$oop_avx
2686.p2align	4
2687L$oop_avx:
2688	shrdl	$2,%ebx,%ebx
2689	xorl	%edx,%esi
2690	vpalignr	$8,%xmm0,%xmm1,%xmm4
2691	movl	%eax,%edi
2692	addl	0(%rsp),%ebp
2693	vpaddd	%xmm3,%xmm11,%xmm9
2694	xorl	%ecx,%ebx
2695	shldl	$5,%eax,%eax
2696	vpsrldq	$4,%xmm3,%xmm8
2697	addl	%esi,%ebp
2698	andl	%ebx,%edi
2699	vpxor	%xmm0,%xmm4,%xmm4
2700	xorl	%ecx,%ebx
2701	addl	%eax,%ebp
2702	vpxor	%xmm2,%xmm8,%xmm8
2703	shrdl	$7,%eax,%eax
2704	xorl	%ecx,%edi
2705	movl	%ebp,%esi
2706	addl	4(%rsp),%edx
2707	vpxor	%xmm8,%xmm4,%xmm4
2708	xorl	%ebx,%eax
2709	shldl	$5,%ebp,%ebp
2710	vmovdqa	%xmm9,48(%rsp)
2711	addl	%edi,%edx
2712	andl	%eax,%esi
2713	vpsrld	$31,%xmm4,%xmm8
2714	xorl	%ebx,%eax
2715	addl	%ebp,%edx
2716	shrdl	$7,%ebp,%ebp
2717	xorl	%ebx,%esi
2718	vpslldq	$12,%xmm4,%xmm10
2719	vpaddd	%xmm4,%xmm4,%xmm4
2720	movl	%edx,%edi
2721	addl	8(%rsp),%ecx
2722	xorl	%eax,%ebp
2723	shldl	$5,%edx,%edx
2724	vpsrld	$30,%xmm10,%xmm9
2725	vpor	%xmm8,%xmm4,%xmm4
2726	addl	%esi,%ecx
2727	andl	%ebp,%edi
2728	xorl	%eax,%ebp
2729	addl	%edx,%ecx
2730	vpslld	$2,%xmm10,%xmm10
2731	vpxor	%xmm9,%xmm4,%xmm4
2732	shrdl	$7,%edx,%edx
2733	xorl	%eax,%edi
2734	movl	%ecx,%esi
2735	addl	12(%rsp),%ebx
2736	vpxor	%xmm10,%xmm4,%xmm4
2737	xorl	%ebp,%edx
2738	shldl	$5,%ecx,%ecx
2739	addl	%edi,%ebx
2740	andl	%edx,%esi
2741	xorl	%ebp,%edx
2742	addl	%ecx,%ebx
2743	shrdl	$7,%ecx,%ecx
2744	xorl	%ebp,%esi
2745	vpalignr	$8,%xmm1,%xmm2,%xmm5
2746	movl	%ebx,%edi
2747	addl	16(%rsp),%eax
2748	vpaddd	%xmm4,%xmm11,%xmm9
2749	xorl	%edx,%ecx
2750	shldl	$5,%ebx,%ebx
2751	vpsrldq	$4,%xmm4,%xmm8
2752	addl	%esi,%eax
2753	andl	%ecx,%edi
2754	vpxor	%xmm1,%xmm5,%xmm5
2755	xorl	%edx,%ecx
2756	addl	%ebx,%eax
2757	vpxor	%xmm3,%xmm8,%xmm8
2758	shrdl	$7,%ebx,%ebx
2759	xorl	%edx,%edi
2760	movl	%eax,%esi
2761	addl	20(%rsp),%ebp
2762	vpxor	%xmm8,%xmm5,%xmm5
2763	xorl	%ecx,%ebx
2764	shldl	$5,%eax,%eax
2765	vmovdqa	%xmm9,0(%rsp)
2766	addl	%edi,%ebp
2767	andl	%ebx,%esi
2768	vpsrld	$31,%xmm5,%xmm8
2769	xorl	%ecx,%ebx
2770	addl	%eax,%ebp
2771	shrdl	$7,%eax,%eax
2772	xorl	%ecx,%esi
2773	vpslldq	$12,%xmm5,%xmm10
2774	vpaddd	%xmm5,%xmm5,%xmm5
2775	movl	%ebp,%edi
2776	addl	24(%rsp),%edx
2777	xorl	%ebx,%eax
2778	shldl	$5,%ebp,%ebp
2779	vpsrld	$30,%xmm10,%xmm9
2780	vpor	%xmm8,%xmm5,%xmm5
2781	addl	%esi,%edx
2782	andl	%eax,%edi
2783	xorl	%ebx,%eax
2784	addl	%ebp,%edx
2785	vpslld	$2,%xmm10,%xmm10
2786	vpxor	%xmm9,%xmm5,%xmm5
2787	shrdl	$7,%ebp,%ebp
2788	xorl	%ebx,%edi
2789	movl	%edx,%esi
2790	addl	28(%rsp),%ecx
2791	vpxor	%xmm10,%xmm5,%xmm5
2792	xorl	%eax,%ebp
2793	shldl	$5,%edx,%edx
2794	vmovdqa	-32(%r14),%xmm11
2795	addl	%edi,%ecx
2796	andl	%ebp,%esi
2797	xorl	%eax,%ebp
2798	addl	%edx,%ecx
2799	shrdl	$7,%edx,%edx
2800	xorl	%eax,%esi
2801	vpalignr	$8,%xmm2,%xmm3,%xmm6
2802	movl	%ecx,%edi
2803	addl	32(%rsp),%ebx
2804	vpaddd	%xmm5,%xmm11,%xmm9
2805	xorl	%ebp,%edx
2806	shldl	$5,%ecx,%ecx
2807	vpsrldq	$4,%xmm5,%xmm8
2808	addl	%esi,%ebx
2809	andl	%edx,%edi
2810	vpxor	%xmm2,%xmm6,%xmm6
2811	xorl	%ebp,%edx
2812	addl	%ecx,%ebx
2813	vpxor	%xmm4,%xmm8,%xmm8
2814	shrdl	$7,%ecx,%ecx
2815	xorl	%ebp,%edi
2816	movl	%ebx,%esi
2817	addl	36(%rsp),%eax
2818	vpxor	%xmm8,%xmm6,%xmm6
2819	xorl	%edx,%ecx
2820	shldl	$5,%ebx,%ebx
2821	vmovdqa	%xmm9,16(%rsp)
2822	addl	%edi,%eax
2823	andl	%ecx,%esi
2824	vpsrld	$31,%xmm6,%xmm8
2825	xorl	%edx,%ecx
2826	addl	%ebx,%eax
2827	shrdl	$7,%ebx,%ebx
2828	xorl	%edx,%esi
2829	vpslldq	$12,%xmm6,%xmm10
2830	vpaddd	%xmm6,%xmm6,%xmm6
2831	movl	%eax,%edi
2832	addl	40(%rsp),%ebp
2833	xorl	%ecx,%ebx
2834	shldl	$5,%eax,%eax
2835	vpsrld	$30,%xmm10,%xmm9
2836	vpor	%xmm8,%xmm6,%xmm6
2837	addl	%esi,%ebp
2838	andl	%ebx,%edi
2839	xorl	%ecx,%ebx
2840	addl	%eax,%ebp
2841	vpslld	$2,%xmm10,%xmm10
2842	vpxor	%xmm9,%xmm6,%xmm6
2843	shrdl	$7,%eax,%eax
2844	xorl	%ecx,%edi
2845	movl	%ebp,%esi
2846	addl	44(%rsp),%edx
2847	vpxor	%xmm10,%xmm6,%xmm6
2848	xorl	%ebx,%eax
2849	shldl	$5,%ebp,%ebp
2850	addl	%edi,%edx
2851	andl	%eax,%esi
2852	xorl	%ebx,%eax
2853	addl	%ebp,%edx
2854	shrdl	$7,%ebp,%ebp
2855	xorl	%ebx,%esi
2856	vpalignr	$8,%xmm3,%xmm4,%xmm7
2857	movl	%edx,%edi
2858	addl	48(%rsp),%ecx
2859	vpaddd	%xmm6,%xmm11,%xmm9
2860	xorl	%eax,%ebp
2861	shldl	$5,%edx,%edx
2862	vpsrldq	$4,%xmm6,%xmm8
2863	addl	%esi,%ecx
2864	andl	%ebp,%edi
2865	vpxor	%xmm3,%xmm7,%xmm7
2866	xorl	%eax,%ebp
2867	addl	%edx,%ecx
2868	vpxor	%xmm5,%xmm8,%xmm8
2869	shrdl	$7,%edx,%edx
2870	xorl	%eax,%edi
2871	movl	%ecx,%esi
2872	addl	52(%rsp),%ebx
2873	vpxor	%xmm8,%xmm7,%xmm7
2874	xorl	%ebp,%edx
2875	shldl	$5,%ecx,%ecx
2876	vmovdqa	%xmm9,32(%rsp)
2877	addl	%edi,%ebx
2878	andl	%edx,%esi
2879	vpsrld	$31,%xmm7,%xmm8
2880	xorl	%ebp,%edx
2881	addl	%ecx,%ebx
2882	shrdl	$7,%ecx,%ecx
2883	xorl	%ebp,%esi
2884	vpslldq	$12,%xmm7,%xmm10
2885	vpaddd	%xmm7,%xmm7,%xmm7
2886	movl	%ebx,%edi
2887	addl	56(%rsp),%eax
2888	xorl	%edx,%ecx
2889	shldl	$5,%ebx,%ebx
2890	vpsrld	$30,%xmm10,%xmm9
2891	vpor	%xmm8,%xmm7,%xmm7
2892	addl	%esi,%eax
2893	andl	%ecx,%edi
2894	xorl	%edx,%ecx
2895	addl	%ebx,%eax
2896	vpslld	$2,%xmm10,%xmm10
2897	vpxor	%xmm9,%xmm7,%xmm7
2898	shrdl	$7,%ebx,%ebx
2899	xorl	%edx,%edi
2900	movl	%eax,%esi
2901	addl	60(%rsp),%ebp
2902	vpxor	%xmm10,%xmm7,%xmm7
2903	xorl	%ecx,%ebx
2904	shldl	$5,%eax,%eax
2905	addl	%edi,%ebp
2906	andl	%ebx,%esi
2907	xorl	%ecx,%ebx
2908	addl	%eax,%ebp
2909	vpalignr	$8,%xmm6,%xmm7,%xmm8
2910	vpxor	%xmm4,%xmm0,%xmm0
2911	shrdl	$7,%eax,%eax
2912	xorl	%ecx,%esi
2913	movl	%ebp,%edi
2914	addl	0(%rsp),%edx
2915	vpxor	%xmm1,%xmm0,%xmm0
2916	xorl	%ebx,%eax
2917	shldl	$5,%ebp,%ebp
2918	vpaddd	%xmm7,%xmm11,%xmm9
2919	addl	%esi,%edx
2920	andl	%eax,%edi
2921	vpxor	%xmm8,%xmm0,%xmm0
2922	xorl	%ebx,%eax
2923	addl	%ebp,%edx
2924	shrdl	$7,%ebp,%ebp
2925	xorl	%ebx,%edi
2926	vpsrld	$30,%xmm0,%xmm8
2927	vmovdqa	%xmm9,48(%rsp)
2928	movl	%edx,%esi
2929	addl	4(%rsp),%ecx
2930	xorl	%eax,%ebp
2931	shldl	$5,%edx,%edx
2932	vpslld	$2,%xmm0,%xmm0
2933	addl	%edi,%ecx
2934	andl	%ebp,%esi
2935	xorl	%eax,%ebp
2936	addl	%edx,%ecx
2937	shrdl	$7,%edx,%edx
2938	xorl	%eax,%esi
2939	movl	%ecx,%edi
2940	addl	8(%rsp),%ebx
2941	vpor	%xmm8,%xmm0,%xmm0
2942	xorl	%ebp,%edx
2943	shldl	$5,%ecx,%ecx
2944	addl	%esi,%ebx
2945	andl	%edx,%edi
2946	xorl	%ebp,%edx
2947	addl	%ecx,%ebx
2948	addl	12(%rsp),%eax
2949	xorl	%ebp,%edi
2950	movl	%ebx,%esi
2951	shldl	$5,%ebx,%ebx
2952	addl	%edi,%eax
2953	xorl	%edx,%esi
2954	shrdl	$7,%ecx,%ecx
2955	addl	%ebx,%eax
2956	vpalignr	$8,%xmm7,%xmm0,%xmm8
2957	vpxor	%xmm5,%xmm1,%xmm1
2958	addl	16(%rsp),%ebp
2959	xorl	%ecx,%esi
2960	movl	%eax,%edi
2961	shldl	$5,%eax,%eax
2962	vpxor	%xmm2,%xmm1,%xmm1
2963	addl	%esi,%ebp
2964	xorl	%ecx,%edi
2965	vpaddd	%xmm0,%xmm11,%xmm9
2966	shrdl	$7,%ebx,%ebx
2967	addl	%eax,%ebp
2968	vpxor	%xmm8,%xmm1,%xmm1
2969	addl	20(%rsp),%edx
2970	xorl	%ebx,%edi
2971	movl	%ebp,%esi
2972	shldl	$5,%ebp,%ebp
2973	vpsrld	$30,%xmm1,%xmm8
2974	vmovdqa	%xmm9,0(%rsp)
2975	addl	%edi,%edx
2976	xorl	%ebx,%esi
2977	shrdl	$7,%eax,%eax
2978	addl	%ebp,%edx
2979	vpslld	$2,%xmm1,%xmm1
2980	addl	24(%rsp),%ecx
2981	xorl	%eax,%esi
2982	movl	%edx,%edi
2983	shldl	$5,%edx,%edx
2984	addl	%esi,%ecx
2985	xorl	%eax,%edi
2986	shrdl	$7,%ebp,%ebp
2987	addl	%edx,%ecx
2988	vpor	%xmm8,%xmm1,%xmm1
2989	addl	28(%rsp),%ebx
2990	xorl	%ebp,%edi
2991	movl	%ecx,%esi
2992	shldl	$5,%ecx,%ecx
2993	addl	%edi,%ebx
2994	xorl	%ebp,%esi
2995	shrdl	$7,%edx,%edx
2996	addl	%ecx,%ebx
2997	vpalignr	$8,%xmm0,%xmm1,%xmm8
2998	vpxor	%xmm6,%xmm2,%xmm2
2999	addl	32(%rsp),%eax
3000	xorl	%edx,%esi
3001	movl	%ebx,%edi
3002	shldl	$5,%ebx,%ebx
3003	vpxor	%xmm3,%xmm2,%xmm2
3004	addl	%esi,%eax
3005	xorl	%edx,%edi
3006	vpaddd	%xmm1,%xmm11,%xmm9
3007	vmovdqa	0(%r14),%xmm11
3008	shrdl	$7,%ecx,%ecx
3009	addl	%ebx,%eax
3010	vpxor	%xmm8,%xmm2,%xmm2
3011	addl	36(%rsp),%ebp
3012	xorl	%ecx,%edi
3013	movl	%eax,%esi
3014	shldl	$5,%eax,%eax
3015	vpsrld	$30,%xmm2,%xmm8
3016	vmovdqa	%xmm9,16(%rsp)
3017	addl	%edi,%ebp
3018	xorl	%ecx,%esi
3019	shrdl	$7,%ebx,%ebx
3020	addl	%eax,%ebp
3021	vpslld	$2,%xmm2,%xmm2
3022	addl	40(%rsp),%edx
3023	xorl	%ebx,%esi
3024	movl	%ebp,%edi
3025	shldl	$5,%ebp,%ebp
3026	addl	%esi,%edx
3027	xorl	%ebx,%edi
3028	shrdl	$7,%eax,%eax
3029	addl	%ebp,%edx
3030	vpor	%xmm8,%xmm2,%xmm2
3031	addl	44(%rsp),%ecx
3032	xorl	%eax,%edi
3033	movl	%edx,%esi
3034	shldl	$5,%edx,%edx
3035	addl	%edi,%ecx
3036	xorl	%eax,%esi
3037	shrdl	$7,%ebp,%ebp
3038	addl	%edx,%ecx
3039	vpalignr	$8,%xmm1,%xmm2,%xmm8
3040	vpxor	%xmm7,%xmm3,%xmm3
3041	addl	48(%rsp),%ebx
3042	xorl	%ebp,%esi
3043	movl	%ecx,%edi
3044	shldl	$5,%ecx,%ecx
3045	vpxor	%xmm4,%xmm3,%xmm3
3046	addl	%esi,%ebx
3047	xorl	%ebp,%edi
3048	vpaddd	%xmm2,%xmm11,%xmm9
3049	shrdl	$7,%edx,%edx
3050	addl	%ecx,%ebx
3051	vpxor	%xmm8,%xmm3,%xmm3
3052	addl	52(%rsp),%eax
3053	xorl	%edx,%edi
3054	movl	%ebx,%esi
3055	shldl	$5,%ebx,%ebx
3056	vpsrld	$30,%xmm3,%xmm8
3057	vmovdqa	%xmm9,32(%rsp)
3058	addl	%edi,%eax
3059	xorl	%edx,%esi
3060	shrdl	$7,%ecx,%ecx
3061	addl	%ebx,%eax
3062	vpslld	$2,%xmm3,%xmm3
3063	addl	56(%rsp),%ebp
3064	xorl	%ecx,%esi
3065	movl	%eax,%edi
3066	shldl	$5,%eax,%eax
3067	addl	%esi,%ebp
3068	xorl	%ecx,%edi
3069	shrdl	$7,%ebx,%ebx
3070	addl	%eax,%ebp
3071	vpor	%xmm8,%xmm3,%xmm3
3072	addl	60(%rsp),%edx
3073	xorl	%ebx,%edi
3074	movl	%ebp,%esi
3075	shldl	$5,%ebp,%ebp
3076	addl	%edi,%edx
3077	xorl	%ebx,%esi
3078	shrdl	$7,%eax,%eax
3079	addl	%ebp,%edx
3080	vpalignr	$8,%xmm2,%xmm3,%xmm8
3081	vpxor	%xmm0,%xmm4,%xmm4
3082	addl	0(%rsp),%ecx
3083	xorl	%eax,%esi
3084	movl	%edx,%edi
3085	shldl	$5,%edx,%edx
3086	vpxor	%xmm5,%xmm4,%xmm4
3087	addl	%esi,%ecx
3088	xorl	%eax,%edi
3089	vpaddd	%xmm3,%xmm11,%xmm9
3090	shrdl	$7,%ebp,%ebp
3091	addl	%edx,%ecx
3092	vpxor	%xmm8,%xmm4,%xmm4
3093	addl	4(%rsp),%ebx
3094	xorl	%ebp,%edi
3095	movl	%ecx,%esi
3096	shldl	$5,%ecx,%ecx
3097	vpsrld	$30,%xmm4,%xmm8
3098	vmovdqa	%xmm9,48(%rsp)
3099	addl	%edi,%ebx
3100	xorl	%ebp,%esi
3101	shrdl	$7,%edx,%edx
3102	addl	%ecx,%ebx
3103	vpslld	$2,%xmm4,%xmm4
3104	addl	8(%rsp),%eax
3105	xorl	%edx,%esi
3106	movl	%ebx,%edi
3107	shldl	$5,%ebx,%ebx
3108	addl	%esi,%eax
3109	xorl	%edx,%edi
3110	shrdl	$7,%ecx,%ecx
3111	addl	%ebx,%eax
3112	vpor	%xmm8,%xmm4,%xmm4
3113	addl	12(%rsp),%ebp
3114	xorl	%ecx,%edi
3115	movl	%eax,%esi
3116	shldl	$5,%eax,%eax
3117	addl	%edi,%ebp
3118	xorl	%ecx,%esi
3119	shrdl	$7,%ebx,%ebx
3120	addl	%eax,%ebp
3121	vpalignr	$8,%xmm3,%xmm4,%xmm8
3122	vpxor	%xmm1,%xmm5,%xmm5
3123	addl	16(%rsp),%edx
3124	xorl	%ebx,%esi
3125	movl	%ebp,%edi
3126	shldl	$5,%ebp,%ebp
3127	vpxor	%xmm6,%xmm5,%xmm5
3128	addl	%esi,%edx
3129	xorl	%ebx,%edi
3130	vpaddd	%xmm4,%xmm11,%xmm9
3131	shrdl	$7,%eax,%eax
3132	addl	%ebp,%edx
3133	vpxor	%xmm8,%xmm5,%xmm5
3134	addl	20(%rsp),%ecx
3135	xorl	%eax,%edi
3136	movl	%edx,%esi
3137	shldl	$5,%edx,%edx
3138	vpsrld	$30,%xmm5,%xmm8
3139	vmovdqa	%xmm9,0(%rsp)
3140	addl	%edi,%ecx
3141	xorl	%eax,%esi
3142	shrdl	$7,%ebp,%ebp
3143	addl	%edx,%ecx
3144	vpslld	$2,%xmm5,%xmm5
3145	addl	24(%rsp),%ebx
3146	xorl	%ebp,%esi
3147	movl	%ecx,%edi
3148	shldl	$5,%ecx,%ecx
3149	addl	%esi,%ebx
3150	xorl	%ebp,%edi
3151	shrdl	$7,%edx,%edx
3152	addl	%ecx,%ebx
3153	vpor	%xmm8,%xmm5,%xmm5
3154	addl	28(%rsp),%eax
3155	shrdl	$7,%ecx,%ecx
3156	movl	%ebx,%esi
3157	xorl	%edx,%edi
3158	shldl	$5,%ebx,%ebx
3159	addl	%edi,%eax
3160	xorl	%ecx,%esi
3161	xorl	%edx,%ecx
3162	addl	%ebx,%eax
3163	vpalignr	$8,%xmm4,%xmm5,%xmm8
3164	vpxor	%xmm2,%xmm6,%xmm6
3165	addl	32(%rsp),%ebp
3166	andl	%ecx,%esi
3167	xorl	%edx,%ecx
3168	shrdl	$7,%ebx,%ebx
3169	vpxor	%xmm7,%xmm6,%xmm6
3170	movl	%eax,%edi
3171	xorl	%ecx,%esi
3172	vpaddd	%xmm5,%xmm11,%xmm9
3173	shldl	$5,%eax,%eax
3174	addl	%esi,%ebp
3175	vpxor	%xmm8,%xmm6,%xmm6
3176	xorl	%ebx,%edi
3177	xorl	%ecx,%ebx
3178	addl	%eax,%ebp
3179	addl	36(%rsp),%edx
3180	vpsrld	$30,%xmm6,%xmm8
3181	vmovdqa	%xmm9,16(%rsp)
3182	andl	%ebx,%edi
3183	xorl	%ecx,%ebx
3184	shrdl	$7,%eax,%eax
3185	movl	%ebp,%esi
3186	vpslld	$2,%xmm6,%xmm6
3187	xorl	%ebx,%edi
3188	shldl	$5,%ebp,%ebp
3189	addl	%edi,%edx
3190	xorl	%eax,%esi
3191	xorl	%ebx,%eax
3192	addl	%ebp,%edx
3193	addl	40(%rsp),%ecx
3194	andl	%eax,%esi
3195	vpor	%xmm8,%xmm6,%xmm6
3196	xorl	%ebx,%eax
3197	shrdl	$7,%ebp,%ebp
3198	movl	%edx,%edi
3199	xorl	%eax,%esi
3200	shldl	$5,%edx,%edx
3201	addl	%esi,%ecx
3202	xorl	%ebp,%edi
3203	xorl	%eax,%ebp
3204	addl	%edx,%ecx
3205	addl	44(%rsp),%ebx
3206	andl	%ebp,%edi
3207	xorl	%eax,%ebp
3208	shrdl	$7,%edx,%edx
3209	movl	%ecx,%esi
3210	xorl	%ebp,%edi
3211	shldl	$5,%ecx,%ecx
3212	addl	%edi,%ebx
3213	xorl	%edx,%esi
3214	xorl	%ebp,%edx
3215	addl	%ecx,%ebx
3216	vpalignr	$8,%xmm5,%xmm6,%xmm8
3217	vpxor	%xmm3,%xmm7,%xmm7
3218	addl	48(%rsp),%eax
3219	andl	%edx,%esi
3220	xorl	%ebp,%edx
3221	shrdl	$7,%ecx,%ecx
3222	vpxor	%xmm0,%xmm7,%xmm7
3223	movl	%ebx,%edi
3224	xorl	%edx,%esi
3225	vpaddd	%xmm6,%xmm11,%xmm9
3226	vmovdqa	32(%r14),%xmm11
3227	shldl	$5,%ebx,%ebx
3228	addl	%esi,%eax
3229	vpxor	%xmm8,%xmm7,%xmm7
3230	xorl	%ecx,%edi
3231	xorl	%edx,%ecx
3232	addl	%ebx,%eax
3233	addl	52(%rsp),%ebp
3234	vpsrld	$30,%xmm7,%xmm8
3235	vmovdqa	%xmm9,32(%rsp)
3236	andl	%ecx,%edi
3237	xorl	%edx,%ecx
3238	shrdl	$7,%ebx,%ebx
3239	movl	%eax,%esi
3240	vpslld	$2,%xmm7,%xmm7
3241	xorl	%ecx,%edi
3242	shldl	$5,%eax,%eax
3243	addl	%edi,%ebp
3244	xorl	%ebx,%esi
3245	xorl	%ecx,%ebx
3246	addl	%eax,%ebp
3247	addl	56(%rsp),%edx
3248	andl	%ebx,%esi
3249	vpor	%xmm8,%xmm7,%xmm7
3250	xorl	%ecx,%ebx
3251	shrdl	$7,%eax,%eax
3252	movl	%ebp,%edi
3253	xorl	%ebx,%esi
3254	shldl	$5,%ebp,%ebp
3255	addl	%esi,%edx
3256	xorl	%eax,%edi
3257	xorl	%ebx,%eax
3258	addl	%ebp,%edx
3259	addl	60(%rsp),%ecx
3260	andl	%eax,%edi
3261	xorl	%ebx,%eax
3262	shrdl	$7,%ebp,%ebp
3263	movl	%edx,%esi
3264	xorl	%eax,%edi
3265	shldl	$5,%edx,%edx
3266	addl	%edi,%ecx
3267	xorl	%ebp,%esi
3268	xorl	%eax,%ebp
3269	addl	%edx,%ecx
3270	vpalignr	$8,%xmm6,%xmm7,%xmm8
3271	vpxor	%xmm4,%xmm0,%xmm0
3272	addl	0(%rsp),%ebx
3273	andl	%ebp,%esi
3274	xorl	%eax,%ebp
3275	shrdl	$7,%edx,%edx
3276	vpxor	%xmm1,%xmm0,%xmm0
3277	movl	%ecx,%edi
3278	xorl	%ebp,%esi
3279	vpaddd	%xmm7,%xmm11,%xmm9
3280	shldl	$5,%ecx,%ecx
3281	addl	%esi,%ebx
3282	vpxor	%xmm8,%xmm0,%xmm0
3283	xorl	%edx,%edi
3284	xorl	%ebp,%edx
3285	addl	%ecx,%ebx
3286	addl	4(%rsp),%eax
3287	vpsrld	$30,%xmm0,%xmm8
3288	vmovdqa	%xmm9,48(%rsp)
3289	andl	%edx,%edi
3290	xorl	%ebp,%edx
3291	shrdl	$7,%ecx,%ecx
3292	movl	%ebx,%esi
3293	vpslld	$2,%xmm0,%xmm0
3294	xorl	%edx,%edi
3295	shldl	$5,%ebx,%ebx
3296	addl	%edi,%eax
3297	xorl	%ecx,%esi
3298	xorl	%edx,%ecx
3299	addl	%ebx,%eax
3300	addl	8(%rsp),%ebp
3301	andl	%ecx,%esi
3302	vpor	%xmm8,%xmm0,%xmm0
3303	xorl	%edx,%ecx
3304	shrdl	$7,%ebx,%ebx
3305	movl	%eax,%edi
3306	xorl	%ecx,%esi
3307	shldl	$5,%eax,%eax
3308	addl	%esi,%ebp
3309	xorl	%ebx,%edi
3310	xorl	%ecx,%ebx
3311	addl	%eax,%ebp
3312	addl	12(%rsp),%edx
3313	andl	%ebx,%edi
3314	xorl	%ecx,%ebx
3315	shrdl	$7,%eax,%eax
3316	movl	%ebp,%esi
3317	xorl	%ebx,%edi
3318	shldl	$5,%ebp,%ebp
3319	addl	%edi,%edx
3320	xorl	%eax,%esi
3321	xorl	%ebx,%eax
3322	addl	%ebp,%edx
3323	vpalignr	$8,%xmm7,%xmm0,%xmm8
3324	vpxor	%xmm5,%xmm1,%xmm1
3325	addl	16(%rsp),%ecx
3326	andl	%eax,%esi
3327	xorl	%ebx,%eax
3328	shrdl	$7,%ebp,%ebp
3329	vpxor	%xmm2,%xmm1,%xmm1
3330	movl	%edx,%edi
3331	xorl	%eax,%esi
3332	vpaddd	%xmm0,%xmm11,%xmm9
3333	shldl	$5,%edx,%edx
3334	addl	%esi,%ecx
3335	vpxor	%xmm8,%xmm1,%xmm1
3336	xorl	%ebp,%edi
3337	xorl	%eax,%ebp
3338	addl	%edx,%ecx
3339	addl	20(%rsp),%ebx
3340	vpsrld	$30,%xmm1,%xmm8
3341	vmovdqa	%xmm9,0(%rsp)
3342	andl	%ebp,%edi
3343	xorl	%eax,%ebp
3344	shrdl	$7,%edx,%edx
3345	movl	%ecx,%esi
3346	vpslld	$2,%xmm1,%xmm1
3347	xorl	%ebp,%edi
3348	shldl	$5,%ecx,%ecx
3349	addl	%edi,%ebx
3350	xorl	%edx,%esi
3351	xorl	%ebp,%edx
3352	addl	%ecx,%ebx
3353	addl	24(%rsp),%eax
3354	andl	%edx,%esi
3355	vpor	%xmm8,%xmm1,%xmm1
3356	xorl	%ebp,%edx
3357	shrdl	$7,%ecx,%ecx
3358	movl	%ebx,%edi
3359	xorl	%edx,%esi
3360	shldl	$5,%ebx,%ebx
3361	addl	%esi,%eax
3362	xorl	%ecx,%edi
3363	xorl	%edx,%ecx
3364	addl	%ebx,%eax
3365	addl	28(%rsp),%ebp
3366	andl	%ecx,%edi
3367	xorl	%edx,%ecx
3368	shrdl	$7,%ebx,%ebx
3369	movl	%eax,%esi
3370	xorl	%ecx,%edi
3371	shldl	$5,%eax,%eax
3372	addl	%edi,%ebp
3373	xorl	%ebx,%esi
3374	xorl	%ecx,%ebx
3375	addl	%eax,%ebp
3376	vpalignr	$8,%xmm0,%xmm1,%xmm8
3377	vpxor	%xmm6,%xmm2,%xmm2
3378	addl	32(%rsp),%edx
3379	andl	%ebx,%esi
3380	xorl	%ecx,%ebx
3381	shrdl	$7,%eax,%eax
3382	vpxor	%xmm3,%xmm2,%xmm2
3383	movl	%ebp,%edi
3384	xorl	%ebx,%esi
3385	vpaddd	%xmm1,%xmm11,%xmm9
3386	shldl	$5,%ebp,%ebp
3387	addl	%esi,%edx
3388	vpxor	%xmm8,%xmm2,%xmm2
3389	xorl	%eax,%edi
3390	xorl	%ebx,%eax
3391	addl	%ebp,%edx
3392	addl	36(%rsp),%ecx
3393	vpsrld	$30,%xmm2,%xmm8
3394	vmovdqa	%xmm9,16(%rsp)
3395	andl	%eax,%edi
3396	xorl	%ebx,%eax
3397	shrdl	$7,%ebp,%ebp
3398	movl	%edx,%esi
3399	vpslld	$2,%xmm2,%xmm2
3400	xorl	%eax,%edi
3401	shldl	$5,%edx,%edx
3402	addl	%edi,%ecx
3403	xorl	%ebp,%esi
3404	xorl	%eax,%ebp
3405	addl	%edx,%ecx
3406	addl	40(%rsp),%ebx
3407	andl	%ebp,%esi
3408	vpor	%xmm8,%xmm2,%xmm2
3409	xorl	%eax,%ebp
3410	shrdl	$7,%edx,%edx
3411	movl	%ecx,%edi
3412	xorl	%ebp,%esi
3413	shldl	$5,%ecx,%ecx
3414	addl	%esi,%ebx
3415	xorl	%edx,%edi
3416	xorl	%ebp,%edx
3417	addl	%ecx,%ebx
3418	addl	44(%rsp),%eax
3419	andl	%edx,%edi
3420	xorl	%ebp,%edx
3421	shrdl	$7,%ecx,%ecx
3422	movl	%ebx,%esi
3423	xorl	%edx,%edi
3424	shldl	$5,%ebx,%ebx
3425	addl	%edi,%eax
3426	xorl	%edx,%esi
3427	addl	%ebx,%eax
3428	vpalignr	$8,%xmm1,%xmm2,%xmm8
3429	vpxor	%xmm7,%xmm3,%xmm3
3430	addl	48(%rsp),%ebp
3431	xorl	%ecx,%esi
3432	movl	%eax,%edi
3433	shldl	$5,%eax,%eax
3434	vpxor	%xmm4,%xmm3,%xmm3
3435	addl	%esi,%ebp
3436	xorl	%ecx,%edi
3437	vpaddd	%xmm2,%xmm11,%xmm9
3438	shrdl	$7,%ebx,%ebx
3439	addl	%eax,%ebp
3440	vpxor	%xmm8,%xmm3,%xmm3
3441	addl	52(%rsp),%edx
3442	xorl	%ebx,%edi
3443	movl	%ebp,%esi
3444	shldl	$5,%ebp,%ebp
3445	vpsrld	$30,%xmm3,%xmm8
3446	vmovdqa	%xmm9,32(%rsp)
3447	addl	%edi,%edx
3448	xorl	%ebx,%esi
3449	shrdl	$7,%eax,%eax
3450	addl	%ebp,%edx
3451	vpslld	$2,%xmm3,%xmm3
3452	addl	56(%rsp),%ecx
3453	xorl	%eax,%esi
3454	movl	%edx,%edi
3455	shldl	$5,%edx,%edx
3456	addl	%esi,%ecx
3457	xorl	%eax,%edi
3458	shrdl	$7,%ebp,%ebp
3459	addl	%edx,%ecx
3460	vpor	%xmm8,%xmm3,%xmm3
3461	addl	60(%rsp),%ebx
3462	xorl	%ebp,%edi
3463	movl	%ecx,%esi
3464	shldl	$5,%ecx,%ecx
3465	addl	%edi,%ebx
3466	xorl	%ebp,%esi
3467	shrdl	$7,%edx,%edx
3468	addl	%ecx,%ebx
3469	addl	0(%rsp),%eax
3470	vpaddd	%xmm3,%xmm11,%xmm9
3471	xorl	%edx,%esi
3472	movl	%ebx,%edi
3473	shldl	$5,%ebx,%ebx
3474	addl	%esi,%eax
3475	vmovdqa	%xmm9,48(%rsp)
3476	xorl	%edx,%edi
3477	shrdl	$7,%ecx,%ecx
3478	addl	%ebx,%eax
3479	addl	4(%rsp),%ebp
3480	xorl	%ecx,%edi
3481	movl	%eax,%esi
3482	shldl	$5,%eax,%eax
3483	addl	%edi,%ebp
3484	xorl	%ecx,%esi
3485	shrdl	$7,%ebx,%ebx
3486	addl	%eax,%ebp
3487	addl	8(%rsp),%edx
3488	xorl	%ebx,%esi
3489	movl	%ebp,%edi
3490	shldl	$5,%ebp,%ebp
3491	addl	%esi,%edx
3492	xorl	%ebx,%edi
3493	shrdl	$7,%eax,%eax
3494	addl	%ebp,%edx
3495	addl	12(%rsp),%ecx
3496	xorl	%eax,%edi
3497	movl	%edx,%esi
3498	shldl	$5,%edx,%edx
3499	addl	%edi,%ecx
3500	xorl	%eax,%esi
3501	shrdl	$7,%ebp,%ebp
3502	addl	%edx,%ecx
3503	cmpq	%r10,%r9
3504	je	L$done_avx
3505	vmovdqa	64(%r14),%xmm6
3506	vmovdqa	-64(%r14),%xmm11
3507	vmovdqu	0(%r9),%xmm0
3508	vmovdqu	16(%r9),%xmm1
3509	vmovdqu	32(%r9),%xmm2
3510	vmovdqu	48(%r9),%xmm3
3511	vpshufb	%xmm6,%xmm0,%xmm0
3512	addq	$64,%r9
3513	addl	16(%rsp),%ebx
3514	xorl	%ebp,%esi
3515	vpshufb	%xmm6,%xmm1,%xmm1
3516	movl	%ecx,%edi
3517	shldl	$5,%ecx,%ecx
3518	vpaddd	%xmm11,%xmm0,%xmm4
3519	addl	%esi,%ebx
3520	xorl	%ebp,%edi
3521	shrdl	$7,%edx,%edx
3522	addl	%ecx,%ebx
3523	vmovdqa	%xmm4,0(%rsp)
3524	addl	20(%rsp),%eax
3525	xorl	%edx,%edi
3526	movl	%ebx,%esi
3527	shldl	$5,%ebx,%ebx
3528	addl	%edi,%eax
3529	xorl	%edx,%esi
3530	shrdl	$7,%ecx,%ecx
3531	addl	%ebx,%eax
3532	addl	24(%rsp),%ebp
3533	xorl	%ecx,%esi
3534	movl	%eax,%edi
3535	shldl	$5,%eax,%eax
3536	addl	%esi,%ebp
3537	xorl	%ecx,%edi
3538	shrdl	$7,%ebx,%ebx
3539	addl	%eax,%ebp
3540	addl	28(%rsp),%edx
3541	xorl	%ebx,%edi
3542	movl	%ebp,%esi
3543	shldl	$5,%ebp,%ebp
3544	addl	%edi,%edx
3545	xorl	%ebx,%esi
3546	shrdl	$7,%eax,%eax
3547	addl	%ebp,%edx
3548	addl	32(%rsp),%ecx
3549	xorl	%eax,%esi
3550	vpshufb	%xmm6,%xmm2,%xmm2
3551	movl	%edx,%edi
3552	shldl	$5,%edx,%edx
3553	vpaddd	%xmm11,%xmm1,%xmm5
3554	addl	%esi,%ecx
3555	xorl	%eax,%edi
3556	shrdl	$7,%ebp,%ebp
3557	addl	%edx,%ecx
3558	vmovdqa	%xmm5,16(%rsp)
3559	addl	36(%rsp),%ebx
3560	xorl	%ebp,%edi
3561	movl	%ecx,%esi
3562	shldl	$5,%ecx,%ecx
3563	addl	%edi,%ebx
3564	xorl	%ebp,%esi
3565	shrdl	$7,%edx,%edx
3566	addl	%ecx,%ebx
3567	addl	40(%rsp),%eax
3568	xorl	%edx,%esi
3569	movl	%ebx,%edi
3570	shldl	$5,%ebx,%ebx
3571	addl	%esi,%eax
3572	xorl	%edx,%edi
3573	shrdl	$7,%ecx,%ecx
3574	addl	%ebx,%eax
3575	addl	44(%rsp),%ebp
3576	xorl	%ecx,%edi
3577	movl	%eax,%esi
3578	shldl	$5,%eax,%eax
3579	addl	%edi,%ebp
3580	xorl	%ecx,%esi
3581	shrdl	$7,%ebx,%ebx
3582	addl	%eax,%ebp
3583	addl	48(%rsp),%edx
3584	xorl	%ebx,%esi
3585	vpshufb	%xmm6,%xmm3,%xmm3
3586	movl	%ebp,%edi
3587	shldl	$5,%ebp,%ebp
3588	vpaddd	%xmm11,%xmm2,%xmm6
3589	addl	%esi,%edx
3590	xorl	%ebx,%edi
3591	shrdl	$7,%eax,%eax
3592	addl	%ebp,%edx
3593	vmovdqa	%xmm6,32(%rsp)
3594	addl	52(%rsp),%ecx
3595	xorl	%eax,%edi
3596	movl	%edx,%esi
3597	shldl	$5,%edx,%edx
3598	addl	%edi,%ecx
3599	xorl	%eax,%esi
3600	shrdl	$7,%ebp,%ebp
3601	addl	%edx,%ecx
3602	addl	56(%rsp),%ebx
3603	xorl	%ebp,%esi
3604	movl	%ecx,%edi
3605	shldl	$5,%ecx,%ecx
3606	addl	%esi,%ebx
3607	xorl	%ebp,%edi
3608	shrdl	$7,%edx,%edx
3609	addl	%ecx,%ebx
3610	addl	60(%rsp),%eax
3611	xorl	%edx,%edi
3612	movl	%ebx,%esi
3613	shldl	$5,%ebx,%ebx
3614	addl	%edi,%eax
3615	shrdl	$7,%ecx,%ecx
3616	addl	%ebx,%eax
3617	addl	0(%r8),%eax
3618	addl	4(%r8),%esi
3619	addl	8(%r8),%ecx
3620	addl	12(%r8),%edx
3621	movl	%eax,0(%r8)
3622	addl	16(%r8),%ebp
3623	movl	%esi,4(%r8)
3624	movl	%esi,%ebx
3625	movl	%ecx,8(%r8)
3626	movl	%ecx,%edi
3627	movl	%edx,12(%r8)
3628	xorl	%edx,%edi
3629	movl	%ebp,16(%r8)
3630	andl	%edi,%esi
3631	jmp	L$oop_avx
3632
3633.p2align	4
3634L$done_avx:
3635	addl	16(%rsp),%ebx
3636	xorl	%ebp,%esi
3637	movl	%ecx,%edi
3638	shldl	$5,%ecx,%ecx
3639	addl	%esi,%ebx
3640	xorl	%ebp,%edi
3641	shrdl	$7,%edx,%edx
3642	addl	%ecx,%ebx
3643	addl	20(%rsp),%eax
3644	xorl	%edx,%edi
3645	movl	%ebx,%esi
3646	shldl	$5,%ebx,%ebx
3647	addl	%edi,%eax
3648	xorl	%edx,%esi
3649	shrdl	$7,%ecx,%ecx
3650	addl	%ebx,%eax
3651	addl	24(%rsp),%ebp
3652	xorl	%ecx,%esi
3653	movl	%eax,%edi
3654	shldl	$5,%eax,%eax
3655	addl	%esi,%ebp
3656	xorl	%ecx,%edi
3657	shrdl	$7,%ebx,%ebx
3658	addl	%eax,%ebp
3659	addl	28(%rsp),%edx
3660	xorl	%ebx,%edi
3661	movl	%ebp,%esi
3662	shldl	$5,%ebp,%ebp
3663	addl	%edi,%edx
3664	xorl	%ebx,%esi
3665	shrdl	$7,%eax,%eax
3666	addl	%ebp,%edx
3667	addl	32(%rsp),%ecx
3668	xorl	%eax,%esi
3669	movl	%edx,%edi
3670	shldl	$5,%edx,%edx
3671	addl	%esi,%ecx
3672	xorl	%eax,%edi
3673	shrdl	$7,%ebp,%ebp
3674	addl	%edx,%ecx
3675	addl	36(%rsp),%ebx
3676	xorl	%ebp,%edi
3677	movl	%ecx,%esi
3678	shldl	$5,%ecx,%ecx
3679	addl	%edi,%ebx
3680	xorl	%ebp,%esi
3681	shrdl	$7,%edx,%edx
3682	addl	%ecx,%ebx
3683	addl	40(%rsp),%eax
3684	xorl	%edx,%esi
3685	movl	%ebx,%edi
3686	shldl	$5,%ebx,%ebx
3687	addl	%esi,%eax
3688	xorl	%edx,%edi
3689	shrdl	$7,%ecx,%ecx
3690	addl	%ebx,%eax
3691	addl	44(%rsp),%ebp
3692	xorl	%ecx,%edi
3693	movl	%eax,%esi
3694	shldl	$5,%eax,%eax
3695	addl	%edi,%ebp
3696	xorl	%ecx,%esi
3697	shrdl	$7,%ebx,%ebx
3698	addl	%eax,%ebp
3699	addl	48(%rsp),%edx
3700	xorl	%ebx,%esi
3701	movl	%ebp,%edi
3702	shldl	$5,%ebp,%ebp
3703	addl	%esi,%edx
3704	xorl	%ebx,%edi
3705	shrdl	$7,%eax,%eax
3706	addl	%ebp,%edx
3707	addl	52(%rsp),%ecx
3708	xorl	%eax,%edi
3709	movl	%edx,%esi
3710	shldl	$5,%edx,%edx
3711	addl	%edi,%ecx
3712	xorl	%eax,%esi
3713	shrdl	$7,%ebp,%ebp
3714	addl	%edx,%ecx
3715	addl	56(%rsp),%ebx
3716	xorl	%ebp,%esi
3717	movl	%ecx,%edi
3718	shldl	$5,%ecx,%ecx
3719	addl	%esi,%ebx
3720	xorl	%ebp,%edi
3721	shrdl	$7,%edx,%edx
3722	addl	%ecx,%ebx
3723	addl	60(%rsp),%eax
3724	xorl	%edx,%edi
3725	movl	%ebx,%esi
3726	shldl	$5,%ebx,%ebx
3727	addl	%edi,%eax
3728	shrdl	$7,%ecx,%ecx
3729	addl	%ebx,%eax
3730	vzeroupper
3731
3732	addl	0(%r8),%eax
3733	addl	4(%r8),%esi
3734	addl	8(%r8),%ecx
3735	movl	%eax,0(%r8)
3736	addl	12(%r8),%edx
3737	movl	%esi,4(%r8)
3738	addl	16(%r8),%ebp
3739	movl	%ecx,8(%r8)
3740	movl	%edx,12(%r8)
3741	movl	%ebp,16(%r8)
3742	movq	-40(%r11),%r14
3743
3744	movq	-32(%r11),%r13
3745
3746	movq	-24(%r11),%r12
3747
3748	movq	-16(%r11),%rbp
3749
3750	movq	-8(%r11),%rbx
3751
3752	leaq	(%r11),%rsp
3753
3754L$epilogue_avx:
3755	.byte	0xf3,0xc3
3756
3757
3758
3759.p2align	4
3760sha1_block_data_order_avx2:
3761_avx2_shortcut:
3762
3763	movq	%rsp,%r11
3764
3765	pushq	%rbx
3766
3767	pushq	%rbp
3768
3769	pushq	%r12
3770
3771	pushq	%r13
3772
3773	pushq	%r14
3774
3775	vzeroupper
3776	movq	%rdi,%r8
3777	movq	%rsi,%r9
3778	movq	%rdx,%r10
3779
3780	leaq	-640(%rsp),%rsp
3781	shlq	$6,%r10
3782	leaq	64(%r9),%r13
3783	andq	$-128,%rsp
3784	addq	%r9,%r10
3785	leaq	K_XX_XX+64(%rip),%r14
3786
3787	movl	0(%r8),%eax
3788	cmpq	%r10,%r13
3789	cmovaeq	%r9,%r13
3790	movl	4(%r8),%ebp
3791	movl	8(%r8),%ecx
3792	movl	12(%r8),%edx
3793	movl	16(%r8),%esi
3794	vmovdqu	64(%r14),%ymm6
3795
3796	vmovdqu	(%r9),%xmm0
3797	vmovdqu	16(%r9),%xmm1
3798	vmovdqu	32(%r9),%xmm2
3799	vmovdqu	48(%r9),%xmm3
3800	leaq	64(%r9),%r9
3801	vinserti128	$1,(%r13),%ymm0,%ymm0
3802	vinserti128	$1,16(%r13),%ymm1,%ymm1
3803	vpshufb	%ymm6,%ymm0,%ymm0
3804	vinserti128	$1,32(%r13),%ymm2,%ymm2
3805	vpshufb	%ymm6,%ymm1,%ymm1
3806	vinserti128	$1,48(%r13),%ymm3,%ymm3
3807	vpshufb	%ymm6,%ymm2,%ymm2
3808	vmovdqu	-64(%r14),%ymm11
3809	vpshufb	%ymm6,%ymm3,%ymm3
3810
3811	vpaddd	%ymm11,%ymm0,%ymm4
3812	vpaddd	%ymm11,%ymm1,%ymm5
3813	vmovdqu	%ymm4,0(%rsp)
3814	vpaddd	%ymm11,%ymm2,%ymm6
3815	vmovdqu	%ymm5,32(%rsp)
3816	vpaddd	%ymm11,%ymm3,%ymm7
3817	vmovdqu	%ymm6,64(%rsp)
3818	vmovdqu	%ymm7,96(%rsp)
3819	vpalignr	$8,%ymm0,%ymm1,%ymm4
3820	vpsrldq	$4,%ymm3,%ymm8
3821	vpxor	%ymm0,%ymm4,%ymm4
3822	vpxor	%ymm2,%ymm8,%ymm8
3823	vpxor	%ymm8,%ymm4,%ymm4
3824	vpsrld	$31,%ymm4,%ymm8
3825	vpslldq	$12,%ymm4,%ymm10
3826	vpaddd	%ymm4,%ymm4,%ymm4
3827	vpsrld	$30,%ymm10,%ymm9
3828	vpor	%ymm8,%ymm4,%ymm4
3829	vpslld	$2,%ymm10,%ymm10
3830	vpxor	%ymm9,%ymm4,%ymm4
3831	vpxor	%ymm10,%ymm4,%ymm4
3832	vpaddd	%ymm11,%ymm4,%ymm9
3833	vmovdqu	%ymm9,128(%rsp)
3834	vpalignr	$8,%ymm1,%ymm2,%ymm5
3835	vpsrldq	$4,%ymm4,%ymm8
3836	vpxor	%ymm1,%ymm5,%ymm5
3837	vpxor	%ymm3,%ymm8,%ymm8
3838	vpxor	%ymm8,%ymm5,%ymm5
3839	vpsrld	$31,%ymm5,%ymm8
3840	vmovdqu	-32(%r14),%ymm11
3841	vpslldq	$12,%ymm5,%ymm10
3842	vpaddd	%ymm5,%ymm5,%ymm5
3843	vpsrld	$30,%ymm10,%ymm9
3844	vpor	%ymm8,%ymm5,%ymm5
3845	vpslld	$2,%ymm10,%ymm10
3846	vpxor	%ymm9,%ymm5,%ymm5
3847	vpxor	%ymm10,%ymm5,%ymm5
3848	vpaddd	%ymm11,%ymm5,%ymm9
3849	vmovdqu	%ymm9,160(%rsp)
3850	vpalignr	$8,%ymm2,%ymm3,%ymm6
3851	vpsrldq	$4,%ymm5,%ymm8
3852	vpxor	%ymm2,%ymm6,%ymm6
3853	vpxor	%ymm4,%ymm8,%ymm8
3854	vpxor	%ymm8,%ymm6,%ymm6
3855	vpsrld	$31,%ymm6,%ymm8
3856	vpslldq	$12,%ymm6,%ymm10
3857	vpaddd	%ymm6,%ymm6,%ymm6
3858	vpsrld	$30,%ymm10,%ymm9
3859	vpor	%ymm8,%ymm6,%ymm6
3860	vpslld	$2,%ymm10,%ymm10
3861	vpxor	%ymm9,%ymm6,%ymm6
3862	vpxor	%ymm10,%ymm6,%ymm6
3863	vpaddd	%ymm11,%ymm6,%ymm9
3864	vmovdqu	%ymm9,192(%rsp)
3865	vpalignr	$8,%ymm3,%ymm4,%ymm7
3866	vpsrldq	$4,%ymm6,%ymm8
3867	vpxor	%ymm3,%ymm7,%ymm7
3868	vpxor	%ymm5,%ymm8,%ymm8
3869	vpxor	%ymm8,%ymm7,%ymm7
3870	vpsrld	$31,%ymm7,%ymm8
3871	vpslldq	$12,%ymm7,%ymm10
3872	vpaddd	%ymm7,%ymm7,%ymm7
3873	vpsrld	$30,%ymm10,%ymm9
3874	vpor	%ymm8,%ymm7,%ymm7
3875	vpslld	$2,%ymm10,%ymm10
3876	vpxor	%ymm9,%ymm7,%ymm7
3877	vpxor	%ymm10,%ymm7,%ymm7
3878	vpaddd	%ymm11,%ymm7,%ymm9
3879	vmovdqu	%ymm9,224(%rsp)
3880	leaq	128(%rsp),%r13
3881	jmp	L$oop_avx2
3882.p2align	5
3883L$oop_avx2:
3884	rorxl	$2,%ebp,%ebx
3885	andnl	%edx,%ebp,%edi
3886	andl	%ecx,%ebp
3887	xorl	%edi,%ebp
3888	jmp	L$align32_1
3889.p2align	5
3890L$align32_1:
3891	vpalignr	$8,%ymm6,%ymm7,%ymm8
3892	vpxor	%ymm4,%ymm0,%ymm0
3893	addl	-128(%r13),%esi
3894	andnl	%ecx,%eax,%edi
3895	vpxor	%ymm1,%ymm0,%ymm0
3896	addl	%ebp,%esi
3897	rorxl	$27,%eax,%r12d
3898	rorxl	$2,%eax,%ebp
3899	vpxor	%ymm8,%ymm0,%ymm0
3900	andl	%ebx,%eax
3901	addl	%r12d,%esi
3902	xorl	%edi,%eax
3903	vpsrld	$30,%ymm0,%ymm8
3904	vpslld	$2,%ymm0,%ymm0
3905	addl	-124(%r13),%edx
3906	andnl	%ebx,%esi,%edi
3907	addl	%eax,%edx
3908	rorxl	$27,%esi,%r12d
3909	rorxl	$2,%esi,%eax
3910	andl	%ebp,%esi
3911	vpor	%ymm8,%ymm0,%ymm0
3912	addl	%r12d,%edx
3913	xorl	%edi,%esi
3914	addl	-120(%r13),%ecx
3915	andnl	%ebp,%edx,%edi
3916	vpaddd	%ymm11,%ymm0,%ymm9
3917	addl	%esi,%ecx
3918	rorxl	$27,%edx,%r12d
3919	rorxl	$2,%edx,%esi
3920	andl	%eax,%edx
3921	vmovdqu	%ymm9,256(%rsp)
3922	addl	%r12d,%ecx
3923	xorl	%edi,%edx
3924	addl	-116(%r13),%ebx
3925	andnl	%eax,%ecx,%edi
3926	addl	%edx,%ebx
3927	rorxl	$27,%ecx,%r12d
3928	rorxl	$2,%ecx,%edx
3929	andl	%esi,%ecx
3930	addl	%r12d,%ebx
3931	xorl	%edi,%ecx
3932	addl	-96(%r13),%ebp
3933	andnl	%esi,%ebx,%edi
3934	addl	%ecx,%ebp
3935	rorxl	$27,%ebx,%r12d
3936	rorxl	$2,%ebx,%ecx
3937	andl	%edx,%ebx
3938	addl	%r12d,%ebp
3939	xorl	%edi,%ebx
3940	vpalignr	$8,%ymm7,%ymm0,%ymm8
3941	vpxor	%ymm5,%ymm1,%ymm1
3942	addl	-92(%r13),%eax
3943	andnl	%edx,%ebp,%edi
3944	vpxor	%ymm2,%ymm1,%ymm1
3945	addl	%ebx,%eax
3946	rorxl	$27,%ebp,%r12d
3947	rorxl	$2,%ebp,%ebx
3948	vpxor	%ymm8,%ymm1,%ymm1
3949	andl	%ecx,%ebp
3950	addl	%r12d,%eax
3951	xorl	%edi,%ebp
3952	vpsrld	$30,%ymm1,%ymm8
3953	vpslld	$2,%ymm1,%ymm1
3954	addl	-88(%r13),%esi
3955	andnl	%ecx,%eax,%edi
3956	addl	%ebp,%esi
3957	rorxl	$27,%eax,%r12d
3958	rorxl	$2,%eax,%ebp
3959	andl	%ebx,%eax
3960	vpor	%ymm8,%ymm1,%ymm1
3961	addl	%r12d,%esi
3962	xorl	%edi,%eax
3963	addl	-84(%r13),%edx
3964	andnl	%ebx,%esi,%edi
3965	vpaddd	%ymm11,%ymm1,%ymm9
3966	addl	%eax,%edx
3967	rorxl	$27,%esi,%r12d
3968	rorxl	$2,%esi,%eax
3969	andl	%ebp,%esi
3970	vmovdqu	%ymm9,288(%rsp)
3971	addl	%r12d,%edx
3972	xorl	%edi,%esi
3973	addl	-64(%r13),%ecx
3974	andnl	%ebp,%edx,%edi
3975	addl	%esi,%ecx
3976	rorxl	$27,%edx,%r12d
3977	rorxl	$2,%edx,%esi
3978	andl	%eax,%edx
3979	addl	%r12d,%ecx
3980	xorl	%edi,%edx
3981	addl	-60(%r13),%ebx
3982	andnl	%eax,%ecx,%edi
3983	addl	%edx,%ebx
3984	rorxl	$27,%ecx,%r12d
3985	rorxl	$2,%ecx,%edx
3986	andl	%esi,%ecx
3987	addl	%r12d,%ebx
3988	xorl	%edi,%ecx
3989	vpalignr	$8,%ymm0,%ymm1,%ymm8
3990	vpxor	%ymm6,%ymm2,%ymm2
3991	addl	-56(%r13),%ebp
3992	andnl	%esi,%ebx,%edi
3993	vpxor	%ymm3,%ymm2,%ymm2
3994	vmovdqu	0(%r14),%ymm11
3995	addl	%ecx,%ebp
3996	rorxl	$27,%ebx,%r12d
3997	rorxl	$2,%ebx,%ecx
3998	vpxor	%ymm8,%ymm2,%ymm2
3999	andl	%edx,%ebx
4000	addl	%r12d,%ebp
4001	xorl	%edi,%ebx
4002	vpsrld	$30,%ymm2,%ymm8
4003	vpslld	$2,%ymm2,%ymm2
4004	addl	-52(%r13),%eax
4005	andnl	%edx,%ebp,%edi
4006	addl	%ebx,%eax
4007	rorxl	$27,%ebp,%r12d
4008	rorxl	$2,%ebp,%ebx
4009	andl	%ecx,%ebp
4010	vpor	%ymm8,%ymm2,%ymm2
4011	addl	%r12d,%eax
4012	xorl	%edi,%ebp
4013	addl	-32(%r13),%esi
4014	andnl	%ecx,%eax,%edi
4015	vpaddd	%ymm11,%ymm2,%ymm9
4016	addl	%ebp,%esi
4017	rorxl	$27,%eax,%r12d
4018	rorxl	$2,%eax,%ebp
4019	andl	%ebx,%eax
4020	vmovdqu	%ymm9,320(%rsp)
4021	addl	%r12d,%esi
4022	xorl	%edi,%eax
4023	addl	-28(%r13),%edx
4024	andnl	%ebx,%esi,%edi
4025	addl	%eax,%edx
4026	rorxl	$27,%esi,%r12d
4027	rorxl	$2,%esi,%eax
4028	andl	%ebp,%esi
4029	addl	%r12d,%edx
4030	xorl	%edi,%esi
4031	addl	-24(%r13),%ecx
4032	andnl	%ebp,%edx,%edi
4033	addl	%esi,%ecx
4034	rorxl	$27,%edx,%r12d
4035	rorxl	$2,%edx,%esi
4036	andl	%eax,%edx
4037	addl	%r12d,%ecx
4038	xorl	%edi,%edx
4039	vpalignr	$8,%ymm1,%ymm2,%ymm8
4040	vpxor	%ymm7,%ymm3,%ymm3
4041	addl	-20(%r13),%ebx
4042	andnl	%eax,%ecx,%edi
4043	vpxor	%ymm4,%ymm3,%ymm3
4044	addl	%edx,%ebx
4045	rorxl	$27,%ecx,%r12d
4046	rorxl	$2,%ecx,%edx
4047	vpxor	%ymm8,%ymm3,%ymm3
4048	andl	%esi,%ecx
4049	addl	%r12d,%ebx
4050	xorl	%edi,%ecx
4051	vpsrld	$30,%ymm3,%ymm8
4052	vpslld	$2,%ymm3,%ymm3
4053	addl	0(%r13),%ebp
4054	andnl	%esi,%ebx,%edi
4055	addl	%ecx,%ebp
4056	rorxl	$27,%ebx,%r12d
4057	rorxl	$2,%ebx,%ecx
4058	andl	%edx,%ebx
4059	vpor	%ymm8,%ymm3,%ymm3
4060	addl	%r12d,%ebp
4061	xorl	%edi,%ebx
4062	addl	4(%r13),%eax
4063	andnl	%edx,%ebp,%edi
4064	vpaddd	%ymm11,%ymm3,%ymm9
4065	addl	%ebx,%eax
4066	rorxl	$27,%ebp,%r12d
4067	rorxl	$2,%ebp,%ebx
4068	andl	%ecx,%ebp
4069	vmovdqu	%ymm9,352(%rsp)
4070	addl	%r12d,%eax
4071	xorl	%edi,%ebp
4072	addl	8(%r13),%esi
4073	andnl	%ecx,%eax,%edi
4074	addl	%ebp,%esi
4075	rorxl	$27,%eax,%r12d
4076	rorxl	$2,%eax,%ebp
4077	andl	%ebx,%eax
4078	addl	%r12d,%esi
4079	xorl	%edi,%eax
4080	addl	12(%r13),%edx
4081	leal	(%rdx,%rax,1),%edx
4082	rorxl	$27,%esi,%r12d
4083	rorxl	$2,%esi,%eax
4084	xorl	%ebp,%esi
4085	addl	%r12d,%edx
4086	xorl	%ebx,%esi
4087	vpalignr	$8,%ymm2,%ymm3,%ymm8
4088	vpxor	%ymm0,%ymm4,%ymm4
4089	addl	32(%r13),%ecx
4090	leal	(%rcx,%rsi,1),%ecx
4091	vpxor	%ymm5,%ymm4,%ymm4
4092	rorxl	$27,%edx,%r12d
4093	rorxl	$2,%edx,%esi
4094	xorl	%eax,%edx
4095	vpxor	%ymm8,%ymm4,%ymm4
4096	addl	%r12d,%ecx
4097	xorl	%ebp,%edx
4098	addl	36(%r13),%ebx
4099	vpsrld	$30,%ymm4,%ymm8
4100	vpslld	$2,%ymm4,%ymm4
4101	leal	(%rbx,%rdx,1),%ebx
4102	rorxl	$27,%ecx,%r12d
4103	rorxl	$2,%ecx,%edx
4104	xorl	%esi,%ecx
4105	addl	%r12d,%ebx
4106	xorl	%eax,%ecx
4107	vpor	%ymm8,%ymm4,%ymm4
4108	addl	40(%r13),%ebp
4109	leal	(%rcx,%rbp,1),%ebp
4110	rorxl	$27,%ebx,%r12d
4111	rorxl	$2,%ebx,%ecx
4112	vpaddd	%ymm11,%ymm4,%ymm9
4113	xorl	%edx,%ebx
4114	addl	%r12d,%ebp
4115	xorl	%esi,%ebx
4116	addl	44(%r13),%eax
4117	vmovdqu	%ymm9,384(%rsp)
4118	leal	(%rax,%rbx,1),%eax
4119	rorxl	$27,%ebp,%r12d
4120	rorxl	$2,%ebp,%ebx
4121	xorl	%ecx,%ebp
4122	addl	%r12d,%eax
4123	xorl	%edx,%ebp
4124	addl	64(%r13),%esi
4125	leal	(%rsi,%rbp,1),%esi
4126	rorxl	$27,%eax,%r12d
4127	rorxl	$2,%eax,%ebp
4128	xorl	%ebx,%eax
4129	addl	%r12d,%esi
4130	xorl	%ecx,%eax
4131	vpalignr	$8,%ymm3,%ymm4,%ymm8
4132	vpxor	%ymm1,%ymm5,%ymm5
4133	addl	68(%r13),%edx
4134	leal	(%rdx,%rax,1),%edx
4135	vpxor	%ymm6,%ymm5,%ymm5
4136	rorxl	$27,%esi,%r12d
4137	rorxl	$2,%esi,%eax
4138	xorl	%ebp,%esi
4139	vpxor	%ymm8,%ymm5,%ymm5
4140	addl	%r12d,%edx
4141	xorl	%ebx,%esi
4142	addl	72(%r13),%ecx
4143	vpsrld	$30,%ymm5,%ymm8
4144	vpslld	$2,%ymm5,%ymm5
4145	leal	(%rcx,%rsi,1),%ecx
4146	rorxl	$27,%edx,%r12d
4147	rorxl	$2,%edx,%esi
4148	xorl	%eax,%edx
4149	addl	%r12d,%ecx
4150	xorl	%ebp,%edx
4151	vpor	%ymm8,%ymm5,%ymm5
4152	addl	76(%r13),%ebx
4153	leal	(%rbx,%rdx,1),%ebx
4154	rorxl	$27,%ecx,%r12d
4155	rorxl	$2,%ecx,%edx
4156	vpaddd	%ymm11,%ymm5,%ymm9
4157	xorl	%esi,%ecx
4158	addl	%r12d,%ebx
4159	xorl	%eax,%ecx
4160	addl	96(%r13),%ebp
4161	vmovdqu	%ymm9,416(%rsp)
4162	leal	(%rcx,%rbp,1),%ebp
4163	rorxl	$27,%ebx,%r12d
4164	rorxl	$2,%ebx,%ecx
4165	xorl	%edx,%ebx
4166	addl	%r12d,%ebp
4167	xorl	%esi,%ebx
4168	addl	100(%r13),%eax
4169	leal	(%rax,%rbx,1),%eax
4170	rorxl	$27,%ebp,%r12d
4171	rorxl	$2,%ebp,%ebx
4172	xorl	%ecx,%ebp
4173	addl	%r12d,%eax
4174	xorl	%edx,%ebp
4175	vpalignr	$8,%ymm4,%ymm5,%ymm8
4176	vpxor	%ymm2,%ymm6,%ymm6
4177	addl	104(%r13),%esi
4178	leal	(%rsi,%rbp,1),%esi
4179	vpxor	%ymm7,%ymm6,%ymm6
4180	rorxl	$27,%eax,%r12d
4181	rorxl	$2,%eax,%ebp
4182	xorl	%ebx,%eax
4183	vpxor	%ymm8,%ymm6,%ymm6
4184	addl	%r12d,%esi
4185	xorl	%ecx,%eax
4186	addl	108(%r13),%edx
4187	leaq	256(%r13),%r13
4188	vpsrld	$30,%ymm6,%ymm8
4189	vpslld	$2,%ymm6,%ymm6
4190	leal	(%rdx,%rax,1),%edx
4191	rorxl	$27,%esi,%r12d
4192	rorxl	$2,%esi,%eax
4193	xorl	%ebp,%esi
4194	addl	%r12d,%edx
4195	xorl	%ebx,%esi
4196	vpor	%ymm8,%ymm6,%ymm6
4197	addl	-128(%r13),%ecx
4198	leal	(%rcx,%rsi,1),%ecx
4199	rorxl	$27,%edx,%r12d
4200	rorxl	$2,%edx,%esi
4201	vpaddd	%ymm11,%ymm6,%ymm9
4202	xorl	%eax,%edx
4203	addl	%r12d,%ecx
4204	xorl	%ebp,%edx
4205	addl	-124(%r13),%ebx
4206	vmovdqu	%ymm9,448(%rsp)
4207	leal	(%rbx,%rdx,1),%ebx
4208	rorxl	$27,%ecx,%r12d
4209	rorxl	$2,%ecx,%edx
4210	xorl	%esi,%ecx
4211	addl	%r12d,%ebx
4212	xorl	%eax,%ecx
4213	addl	-120(%r13),%ebp
4214	leal	(%rcx,%rbp,1),%ebp
4215	rorxl	$27,%ebx,%r12d
4216	rorxl	$2,%ebx,%ecx
4217	xorl	%edx,%ebx
4218	addl	%r12d,%ebp
4219	xorl	%esi,%ebx
4220	vpalignr	$8,%ymm5,%ymm6,%ymm8
4221	vpxor	%ymm3,%ymm7,%ymm7
4222	addl	-116(%r13),%eax
4223	leal	(%rax,%rbx,1),%eax
4224	vpxor	%ymm0,%ymm7,%ymm7
4225	vmovdqu	32(%r14),%ymm11
4226	rorxl	$27,%ebp,%r12d
4227	rorxl	$2,%ebp,%ebx
4228	xorl	%ecx,%ebp
4229	vpxor	%ymm8,%ymm7,%ymm7
4230	addl	%r12d,%eax
4231	xorl	%edx,%ebp
4232	addl	-96(%r13),%esi
4233	vpsrld	$30,%ymm7,%ymm8
4234	vpslld	$2,%ymm7,%ymm7
4235	leal	(%rsi,%rbp,1),%esi
4236	rorxl	$27,%eax,%r12d
4237	rorxl	$2,%eax,%ebp
4238	xorl	%ebx,%eax
4239	addl	%r12d,%esi
4240	xorl	%ecx,%eax
4241	vpor	%ymm8,%ymm7,%ymm7
4242	addl	-92(%r13),%edx
4243	leal	(%rdx,%rax,1),%edx
4244	rorxl	$27,%esi,%r12d
4245	rorxl	$2,%esi,%eax
4246	vpaddd	%ymm11,%ymm7,%ymm9
4247	xorl	%ebp,%esi
4248	addl	%r12d,%edx
4249	xorl	%ebx,%esi
4250	addl	-88(%r13),%ecx
4251	vmovdqu	%ymm9,480(%rsp)
4252	leal	(%rcx,%rsi,1),%ecx
4253	rorxl	$27,%edx,%r12d
4254	rorxl	$2,%edx,%esi
4255	xorl	%eax,%edx
4256	addl	%r12d,%ecx
4257	xorl	%ebp,%edx
4258	addl	-84(%r13),%ebx
4259	movl	%esi,%edi
4260	xorl	%eax,%edi
4261	leal	(%rbx,%rdx,1),%ebx
4262	rorxl	$27,%ecx,%r12d
4263	rorxl	$2,%ecx,%edx
4264	xorl	%esi,%ecx
4265	addl	%r12d,%ebx
4266	andl	%edi,%ecx
4267	jmp	L$align32_2
4268.p2align	5
4269L$align32_2:
4270	vpalignr	$8,%ymm6,%ymm7,%ymm8
4271	vpxor	%ymm4,%ymm0,%ymm0
4272	addl	-64(%r13),%ebp
4273	xorl	%esi,%ecx
4274	vpxor	%ymm1,%ymm0,%ymm0
4275	movl	%edx,%edi
4276	xorl	%esi,%edi
4277	leal	(%rcx,%rbp,1),%ebp
4278	vpxor	%ymm8,%ymm0,%ymm0
4279	rorxl	$27,%ebx,%r12d
4280	rorxl	$2,%ebx,%ecx
4281	xorl	%edx,%ebx
4282	vpsrld	$30,%ymm0,%ymm8
4283	vpslld	$2,%ymm0,%ymm0
4284	addl	%r12d,%ebp
4285	andl	%edi,%ebx
4286	addl	-60(%r13),%eax
4287	xorl	%edx,%ebx
4288	movl	%ecx,%edi
4289	xorl	%edx,%edi
4290	vpor	%ymm8,%ymm0,%ymm0
4291	leal	(%rax,%rbx,1),%eax
4292	rorxl	$27,%ebp,%r12d
4293	rorxl	$2,%ebp,%ebx
4294	xorl	%ecx,%ebp
4295	vpaddd	%ymm11,%ymm0,%ymm9
4296	addl	%r12d,%eax
4297	andl	%edi,%ebp
4298	addl	-56(%r13),%esi
4299	xorl	%ecx,%ebp
4300	vmovdqu	%ymm9,512(%rsp)
4301	movl	%ebx,%edi
4302	xorl	%ecx,%edi
4303	leal	(%rsi,%rbp,1),%esi
4304	rorxl	$27,%eax,%r12d
4305	rorxl	$2,%eax,%ebp
4306	xorl	%ebx,%eax
4307	addl	%r12d,%esi
4308	andl	%edi,%eax
4309	addl	-52(%r13),%edx
4310	xorl	%ebx,%eax
4311	movl	%ebp,%edi
4312	xorl	%ebx,%edi
4313	leal	(%rdx,%rax,1),%edx
4314	rorxl	$27,%esi,%r12d
4315	rorxl	$2,%esi,%eax
4316	xorl	%ebp,%esi
4317	addl	%r12d,%edx
4318	andl	%edi,%esi
4319	addl	-32(%r13),%ecx
4320	xorl	%ebp,%esi
4321	movl	%eax,%edi
4322	xorl	%ebp,%edi
4323	leal	(%rcx,%rsi,1),%ecx
4324	rorxl	$27,%edx,%r12d
4325	rorxl	$2,%edx,%esi
4326	xorl	%eax,%edx
4327	addl	%r12d,%ecx
4328	andl	%edi,%edx
4329	vpalignr	$8,%ymm7,%ymm0,%ymm8
4330	vpxor	%ymm5,%ymm1,%ymm1
4331	addl	-28(%r13),%ebx
4332	xorl	%eax,%edx
4333	vpxor	%ymm2,%ymm1,%ymm1
4334	movl	%esi,%edi
4335	xorl	%eax,%edi
4336	leal	(%rbx,%rdx,1),%ebx
4337	vpxor	%ymm8,%ymm1,%ymm1
4338	rorxl	$27,%ecx,%r12d
4339	rorxl	$2,%ecx,%edx
4340	xorl	%esi,%ecx
4341	vpsrld	$30,%ymm1,%ymm8
4342	vpslld	$2,%ymm1,%ymm1
4343	addl	%r12d,%ebx
4344	andl	%edi,%ecx
4345	addl	-24(%r13),%ebp
4346	xorl	%esi,%ecx
4347	movl	%edx,%edi
4348	xorl	%esi,%edi
4349	vpor	%ymm8,%ymm1,%ymm1
4350	leal	(%rcx,%rbp,1),%ebp
4351	rorxl	$27,%ebx,%r12d
4352	rorxl	$2,%ebx,%ecx
4353	xorl	%edx,%ebx
4354	vpaddd	%ymm11,%ymm1,%ymm9
4355	addl	%r12d,%ebp
4356	andl	%edi,%ebx
4357	addl	-20(%r13),%eax
4358	xorl	%edx,%ebx
4359	vmovdqu	%ymm9,544(%rsp)
4360	movl	%ecx,%edi
4361	xorl	%edx,%edi
4362	leal	(%rax,%rbx,1),%eax
4363	rorxl	$27,%ebp,%r12d
4364	rorxl	$2,%ebp,%ebx
4365	xorl	%ecx,%ebp
4366	addl	%r12d,%eax
4367	andl	%edi,%ebp
4368	addl	0(%r13),%esi
4369	xorl	%ecx,%ebp
4370	movl	%ebx,%edi
4371	xorl	%ecx,%edi
4372	leal	(%rsi,%rbp,1),%esi
4373	rorxl	$27,%eax,%r12d
4374	rorxl	$2,%eax,%ebp
4375	xorl	%ebx,%eax
4376	addl	%r12d,%esi
4377	andl	%edi,%eax
4378	addl	4(%r13),%edx
4379	xorl	%ebx,%eax
4380	movl	%ebp,%edi
4381	xorl	%ebx,%edi
4382	leal	(%rdx,%rax,1),%edx
4383	rorxl	$27,%esi,%r12d
4384	rorxl	$2,%esi,%eax
4385	xorl	%ebp,%esi
4386	addl	%r12d,%edx
4387	andl	%edi,%esi
4388	vpalignr	$8,%ymm0,%ymm1,%ymm8
4389	vpxor	%ymm6,%ymm2,%ymm2
4390	addl	8(%r13),%ecx
4391	xorl	%ebp,%esi
4392	vpxor	%ymm3,%ymm2,%ymm2
4393	movl	%eax,%edi
4394	xorl	%ebp,%edi
4395	leal	(%rcx,%rsi,1),%ecx
4396	vpxor	%ymm8,%ymm2,%ymm2
4397	rorxl	$27,%edx,%r12d
4398	rorxl	$2,%edx,%esi
4399	xorl	%eax,%edx
4400	vpsrld	$30,%ymm2,%ymm8
4401	vpslld	$2,%ymm2,%ymm2
4402	addl	%r12d,%ecx
4403	andl	%edi,%edx
4404	addl	12(%r13),%ebx
4405	xorl	%eax,%edx
4406	movl	%esi,%edi
4407	xorl	%eax,%edi
4408	vpor	%ymm8,%ymm2,%ymm2
4409	leal	(%rbx,%rdx,1),%ebx
4410	rorxl	$27,%ecx,%r12d
4411	rorxl	$2,%ecx,%edx
4412	xorl	%esi,%ecx
4413	vpaddd	%ymm11,%ymm2,%ymm9
4414	addl	%r12d,%ebx
4415	andl	%edi,%ecx
4416	addl	32(%r13),%ebp
4417	xorl	%esi,%ecx
4418	vmovdqu	%ymm9,576(%rsp)
4419	movl	%edx,%edi
4420	xorl	%esi,%edi
4421	leal	(%rcx,%rbp,1),%ebp
4422	rorxl	$27,%ebx,%r12d
4423	rorxl	$2,%ebx,%ecx
4424	xorl	%edx,%ebx
4425	addl	%r12d,%ebp
4426	andl	%edi,%ebx
4427	addl	36(%r13),%eax
4428	xorl	%edx,%ebx
4429	movl	%ecx,%edi
4430	xorl	%edx,%edi
4431	leal	(%rax,%rbx,1),%eax
4432	rorxl	$27,%ebp,%r12d
4433	rorxl	$2,%ebp,%ebx
4434	xorl	%ecx,%ebp
4435	addl	%r12d,%eax
4436	andl	%edi,%ebp
4437	addl	40(%r13),%esi
4438	xorl	%ecx,%ebp
4439	movl	%ebx,%edi
4440	xorl	%ecx,%edi
4441	leal	(%rsi,%rbp,1),%esi
4442	rorxl	$27,%eax,%r12d
4443	rorxl	$2,%eax,%ebp
4444	xorl	%ebx,%eax
4445	addl	%r12d,%esi
4446	andl	%edi,%eax
4447	vpalignr	$8,%ymm1,%ymm2,%ymm8
4448	vpxor	%ymm7,%ymm3,%ymm3
4449	addl	44(%r13),%edx
4450	xorl	%ebx,%eax
4451	vpxor	%ymm4,%ymm3,%ymm3
4452	movl	%ebp,%edi
4453	xorl	%ebx,%edi
4454	leal	(%rdx,%rax,1),%edx
4455	vpxor	%ymm8,%ymm3,%ymm3
4456	rorxl	$27,%esi,%r12d
4457	rorxl	$2,%esi,%eax
4458	xorl	%ebp,%esi
4459	vpsrld	$30,%ymm3,%ymm8
4460	vpslld	$2,%ymm3,%ymm3
4461	addl	%r12d,%edx
4462	andl	%edi,%esi
4463	addl	64(%r13),%ecx
4464	xorl	%ebp,%esi
4465	movl	%eax,%edi
4466	xorl	%ebp,%edi
4467	vpor	%ymm8,%ymm3,%ymm3
4468	leal	(%rcx,%rsi,1),%ecx
4469	rorxl	$27,%edx,%r12d
4470	rorxl	$2,%edx,%esi
4471	xorl	%eax,%edx
4472	vpaddd	%ymm11,%ymm3,%ymm9
4473	addl	%r12d,%ecx
4474	andl	%edi,%edx
4475	addl	68(%r13),%ebx
4476	xorl	%eax,%edx
4477	vmovdqu	%ymm9,608(%rsp)
4478	movl	%esi,%edi
4479	xorl	%eax,%edi
4480	leal	(%rbx,%rdx,1),%ebx
4481	rorxl	$27,%ecx,%r12d
4482	rorxl	$2,%ecx,%edx
4483	xorl	%esi,%ecx
4484	addl	%r12d,%ebx
4485	andl	%edi,%ecx
4486	addl	72(%r13),%ebp
4487	xorl	%esi,%ecx
4488	movl	%edx,%edi
4489	xorl	%esi,%edi
4490	leal	(%rcx,%rbp,1),%ebp
4491	rorxl	$27,%ebx,%r12d
4492	rorxl	$2,%ebx,%ecx
4493	xorl	%edx,%ebx
4494	addl	%r12d,%ebp
4495	andl	%edi,%ebx
4496	addl	76(%r13),%eax
4497	xorl	%edx,%ebx
4498	leal	(%rax,%rbx,1),%eax
4499	rorxl	$27,%ebp,%r12d
4500	rorxl	$2,%ebp,%ebx
4501	xorl	%ecx,%ebp
4502	addl	%r12d,%eax
4503	xorl	%edx,%ebp
4504	addl	96(%r13),%esi
4505	leal	(%rsi,%rbp,1),%esi
4506	rorxl	$27,%eax,%r12d
4507	rorxl	$2,%eax,%ebp
4508	xorl	%ebx,%eax
4509	addl	%r12d,%esi
4510	xorl	%ecx,%eax
4511	addl	100(%r13),%edx
4512	leal	(%rdx,%rax,1),%edx
4513	rorxl	$27,%esi,%r12d
4514	rorxl	$2,%esi,%eax
4515	xorl	%ebp,%esi
4516	addl	%r12d,%edx
4517	xorl	%ebx,%esi
4518	addl	104(%r13),%ecx
4519	leal	(%rcx,%rsi,1),%ecx
4520	rorxl	$27,%edx,%r12d
4521	rorxl	$2,%edx,%esi
4522	xorl	%eax,%edx
4523	addl	%r12d,%ecx
4524	xorl	%ebp,%edx
4525	addl	108(%r13),%ebx
4526	leaq	256(%r13),%r13
4527	leal	(%rbx,%rdx,1),%ebx
4528	rorxl	$27,%ecx,%r12d
4529	rorxl	$2,%ecx,%edx
4530	xorl	%esi,%ecx
4531	addl	%r12d,%ebx
4532	xorl	%eax,%ecx
4533	addl	-128(%r13),%ebp
4534	leal	(%rcx,%rbp,1),%ebp
4535	rorxl	$27,%ebx,%r12d
4536	rorxl	$2,%ebx,%ecx
4537	xorl	%edx,%ebx
4538	addl	%r12d,%ebp
4539	xorl	%esi,%ebx
4540	addl	-124(%r13),%eax
4541	leal	(%rax,%rbx,1),%eax
4542	rorxl	$27,%ebp,%r12d
4543	rorxl	$2,%ebp,%ebx
4544	xorl	%ecx,%ebp
4545	addl	%r12d,%eax
4546	xorl	%edx,%ebp
4547	addl	-120(%r13),%esi
4548	leal	(%rsi,%rbp,1),%esi
4549	rorxl	$27,%eax,%r12d
4550	rorxl	$2,%eax,%ebp
4551	xorl	%ebx,%eax
4552	addl	%r12d,%esi
4553	xorl	%ecx,%eax
4554	addl	-116(%r13),%edx
4555	leal	(%rdx,%rax,1),%edx
4556	rorxl	$27,%esi,%r12d
4557	rorxl	$2,%esi,%eax
4558	xorl	%ebp,%esi
4559	addl	%r12d,%edx
4560	xorl	%ebx,%esi
4561	addl	-96(%r13),%ecx
4562	leal	(%rcx,%rsi,1),%ecx
4563	rorxl	$27,%edx,%r12d
4564	rorxl	$2,%edx,%esi
4565	xorl	%eax,%edx
4566	addl	%r12d,%ecx
4567	xorl	%ebp,%edx
4568	addl	-92(%r13),%ebx
4569	leal	(%rbx,%rdx,1),%ebx
4570	rorxl	$27,%ecx,%r12d
4571	rorxl	$2,%ecx,%edx
4572	xorl	%esi,%ecx
4573	addl	%r12d,%ebx
4574	xorl	%eax,%ecx
4575	addl	-88(%r13),%ebp
4576	leal	(%rcx,%rbp,1),%ebp
4577	rorxl	$27,%ebx,%r12d
4578	rorxl	$2,%ebx,%ecx
4579	xorl	%edx,%ebx
4580	addl	%r12d,%ebp
4581	xorl	%esi,%ebx
4582	addl	-84(%r13),%eax
4583	leal	(%rax,%rbx,1),%eax
4584	rorxl	$27,%ebp,%r12d
4585	rorxl	$2,%ebp,%ebx
4586	xorl	%ecx,%ebp
4587	addl	%r12d,%eax
4588	xorl	%edx,%ebp
4589	addl	-64(%r13),%esi
4590	leal	(%rsi,%rbp,1),%esi
4591	rorxl	$27,%eax,%r12d
4592	rorxl	$2,%eax,%ebp
4593	xorl	%ebx,%eax
4594	addl	%r12d,%esi
4595	xorl	%ecx,%eax
4596	addl	-60(%r13),%edx
4597	leal	(%rdx,%rax,1),%edx
4598	rorxl	$27,%esi,%r12d
4599	rorxl	$2,%esi,%eax
4600	xorl	%ebp,%esi
4601	addl	%r12d,%edx
4602	xorl	%ebx,%esi
4603	addl	-56(%r13),%ecx
4604	leal	(%rcx,%rsi,1),%ecx
4605	rorxl	$27,%edx,%r12d
4606	rorxl	$2,%edx,%esi
4607	xorl	%eax,%edx
4608	addl	%r12d,%ecx
4609	xorl	%ebp,%edx
4610	addl	-52(%r13),%ebx
4611	leal	(%rbx,%rdx,1),%ebx
4612	rorxl	$27,%ecx,%r12d
4613	rorxl	$2,%ecx,%edx
4614	xorl	%esi,%ecx
4615	addl	%r12d,%ebx
4616	xorl	%eax,%ecx
4617	addl	-32(%r13),%ebp
4618	leal	(%rcx,%rbp,1),%ebp
4619	rorxl	$27,%ebx,%r12d
4620	rorxl	$2,%ebx,%ecx
4621	xorl	%edx,%ebx
4622	addl	%r12d,%ebp
4623	xorl	%esi,%ebx
4624	addl	-28(%r13),%eax
4625	leal	(%rax,%rbx,1),%eax
4626	rorxl	$27,%ebp,%r12d
4627	rorxl	$2,%ebp,%ebx
4628	xorl	%ecx,%ebp
4629	addl	%r12d,%eax
4630	xorl	%edx,%ebp
4631	addl	-24(%r13),%esi
4632	leal	(%rsi,%rbp,1),%esi
4633	rorxl	$27,%eax,%r12d
4634	rorxl	$2,%eax,%ebp
4635	xorl	%ebx,%eax
4636	addl	%r12d,%esi
4637	xorl	%ecx,%eax
4638	addl	-20(%r13),%edx
4639	leal	(%rdx,%rax,1),%edx
4640	rorxl	$27,%esi,%r12d
4641	addl	%r12d,%edx
4642	leaq	128(%r9),%r13
4643	leaq	128(%r9),%rdi
4644	cmpq	%r10,%r13
4645	cmovaeq	%r9,%r13
4646
4647
4648	addl	0(%r8),%edx
4649	addl	4(%r8),%esi
4650	addl	8(%r8),%ebp
4651	movl	%edx,0(%r8)
4652	addl	12(%r8),%ebx
4653	movl	%esi,4(%r8)
4654	movl	%edx,%eax
4655	addl	16(%r8),%ecx
4656	movl	%ebp,%r12d
4657	movl	%ebp,8(%r8)
4658	movl	%ebx,%edx
4659
4660	movl	%ebx,12(%r8)
4661	movl	%esi,%ebp
4662	movl	%ecx,16(%r8)
4663
4664	movl	%ecx,%esi
4665	movl	%r12d,%ecx
4666
4667
4668	cmpq	%r10,%r9
4669	je	L$done_avx2
4670	vmovdqu	64(%r14),%ymm6
4671	cmpq	%r10,%rdi
4672	ja	L$ast_avx2
4673
4674	vmovdqu	-64(%rdi),%xmm0
4675	vmovdqu	-48(%rdi),%xmm1
4676	vmovdqu	-32(%rdi),%xmm2
4677	vmovdqu	-16(%rdi),%xmm3
4678	vinserti128	$1,0(%r13),%ymm0,%ymm0
4679	vinserti128	$1,16(%r13),%ymm1,%ymm1
4680	vinserti128	$1,32(%r13),%ymm2,%ymm2
4681	vinserti128	$1,48(%r13),%ymm3,%ymm3
4682	jmp	L$ast_avx2
4683
4684.p2align	5
4685L$ast_avx2:
4686	leaq	128+16(%rsp),%r13
4687	rorxl	$2,%ebp,%ebx
4688	andnl	%edx,%ebp,%edi
4689	andl	%ecx,%ebp
4690	xorl	%edi,%ebp
4691	subq	$-128,%r9
4692	addl	-128(%r13),%esi
4693	andnl	%ecx,%eax,%edi
4694	addl	%ebp,%esi
4695	rorxl	$27,%eax,%r12d
4696	rorxl	$2,%eax,%ebp
4697	andl	%ebx,%eax
4698	addl	%r12d,%esi
4699	xorl	%edi,%eax
4700	addl	-124(%r13),%edx
4701	andnl	%ebx,%esi,%edi
4702	addl	%eax,%edx
4703	rorxl	$27,%esi,%r12d
4704	rorxl	$2,%esi,%eax
4705	andl	%ebp,%esi
4706	addl	%r12d,%edx
4707	xorl	%edi,%esi
4708	addl	-120(%r13),%ecx
4709	andnl	%ebp,%edx,%edi
4710	addl	%esi,%ecx
4711	rorxl	$27,%edx,%r12d
4712	rorxl	$2,%edx,%esi
4713	andl	%eax,%edx
4714	addl	%r12d,%ecx
4715	xorl	%edi,%edx
4716	addl	-116(%r13),%ebx
4717	andnl	%eax,%ecx,%edi
4718	addl	%edx,%ebx
4719	rorxl	$27,%ecx,%r12d
4720	rorxl	$2,%ecx,%edx
4721	andl	%esi,%ecx
4722	addl	%r12d,%ebx
4723	xorl	%edi,%ecx
4724	addl	-96(%r13),%ebp
4725	andnl	%esi,%ebx,%edi
4726	addl	%ecx,%ebp
4727	rorxl	$27,%ebx,%r12d
4728	rorxl	$2,%ebx,%ecx
4729	andl	%edx,%ebx
4730	addl	%r12d,%ebp
4731	xorl	%edi,%ebx
4732	addl	-92(%r13),%eax
4733	andnl	%edx,%ebp,%edi
4734	addl	%ebx,%eax
4735	rorxl	$27,%ebp,%r12d
4736	rorxl	$2,%ebp,%ebx
4737	andl	%ecx,%ebp
4738	addl	%r12d,%eax
4739	xorl	%edi,%ebp
4740	addl	-88(%r13),%esi
4741	andnl	%ecx,%eax,%edi
4742	addl	%ebp,%esi
4743	rorxl	$27,%eax,%r12d
4744	rorxl	$2,%eax,%ebp
4745	andl	%ebx,%eax
4746	addl	%r12d,%esi
4747	xorl	%edi,%eax
4748	addl	-84(%r13),%edx
4749	andnl	%ebx,%esi,%edi
4750	addl	%eax,%edx
4751	rorxl	$27,%esi,%r12d
4752	rorxl	$2,%esi,%eax
4753	andl	%ebp,%esi
4754	addl	%r12d,%edx
4755	xorl	%edi,%esi
4756	addl	-64(%r13),%ecx
4757	andnl	%ebp,%edx,%edi
4758	addl	%esi,%ecx
4759	rorxl	$27,%edx,%r12d
4760	rorxl	$2,%edx,%esi
4761	andl	%eax,%edx
4762	addl	%r12d,%ecx
4763	xorl	%edi,%edx
4764	addl	-60(%r13),%ebx
4765	andnl	%eax,%ecx,%edi
4766	addl	%edx,%ebx
4767	rorxl	$27,%ecx,%r12d
4768	rorxl	$2,%ecx,%edx
4769	andl	%esi,%ecx
4770	addl	%r12d,%ebx
4771	xorl	%edi,%ecx
4772	addl	-56(%r13),%ebp
4773	andnl	%esi,%ebx,%edi
4774	addl	%ecx,%ebp
4775	rorxl	$27,%ebx,%r12d
4776	rorxl	$2,%ebx,%ecx
4777	andl	%edx,%ebx
4778	addl	%r12d,%ebp
4779	xorl	%edi,%ebx
4780	addl	-52(%r13),%eax
4781	andnl	%edx,%ebp,%edi
4782	addl	%ebx,%eax
4783	rorxl	$27,%ebp,%r12d
4784	rorxl	$2,%ebp,%ebx
4785	andl	%ecx,%ebp
4786	addl	%r12d,%eax
4787	xorl	%edi,%ebp
4788	addl	-32(%r13),%esi
4789	andnl	%ecx,%eax,%edi
4790	addl	%ebp,%esi
4791	rorxl	$27,%eax,%r12d
4792	rorxl	$2,%eax,%ebp
4793	andl	%ebx,%eax
4794	addl	%r12d,%esi
4795	xorl	%edi,%eax
4796	addl	-28(%r13),%edx
4797	andnl	%ebx,%esi,%edi
4798	addl	%eax,%edx
4799	rorxl	$27,%esi,%r12d
4800	rorxl	$2,%esi,%eax
4801	andl	%ebp,%esi
4802	addl	%r12d,%edx
4803	xorl	%edi,%esi
4804	addl	-24(%r13),%ecx
4805	andnl	%ebp,%edx,%edi
4806	addl	%esi,%ecx
4807	rorxl	$27,%edx,%r12d
4808	rorxl	$2,%edx,%esi
4809	andl	%eax,%edx
4810	addl	%r12d,%ecx
4811	xorl	%edi,%edx
4812	addl	-20(%r13),%ebx
4813	andnl	%eax,%ecx,%edi
4814	addl	%edx,%ebx
4815	rorxl	$27,%ecx,%r12d
4816	rorxl	$2,%ecx,%edx
4817	andl	%esi,%ecx
4818	addl	%r12d,%ebx
4819	xorl	%edi,%ecx
4820	addl	0(%r13),%ebp
4821	andnl	%esi,%ebx,%edi
4822	addl	%ecx,%ebp
4823	rorxl	$27,%ebx,%r12d
4824	rorxl	$2,%ebx,%ecx
4825	andl	%edx,%ebx
4826	addl	%r12d,%ebp
4827	xorl	%edi,%ebx
4828	addl	4(%r13),%eax
4829	andnl	%edx,%ebp,%edi
4830	addl	%ebx,%eax
4831	rorxl	$27,%ebp,%r12d
4832	rorxl	$2,%ebp,%ebx
4833	andl	%ecx,%ebp
4834	addl	%r12d,%eax
4835	xorl	%edi,%ebp
4836	addl	8(%r13),%esi
4837	andnl	%ecx,%eax,%edi
4838	addl	%ebp,%esi
4839	rorxl	$27,%eax,%r12d
4840	rorxl	$2,%eax,%ebp
4841	andl	%ebx,%eax
4842	addl	%r12d,%esi
4843	xorl	%edi,%eax
4844	addl	12(%r13),%edx
4845	leal	(%rdx,%rax,1),%edx
4846	rorxl	$27,%esi,%r12d
4847	rorxl	$2,%esi,%eax
4848	xorl	%ebp,%esi
4849	addl	%r12d,%edx
4850	xorl	%ebx,%esi
4851	addl	32(%r13),%ecx
4852	leal	(%rcx,%rsi,1),%ecx
4853	rorxl	$27,%edx,%r12d
4854	rorxl	$2,%edx,%esi
4855	xorl	%eax,%edx
4856	addl	%r12d,%ecx
4857	xorl	%ebp,%edx
4858	addl	36(%r13),%ebx
4859	leal	(%rbx,%rdx,1),%ebx
4860	rorxl	$27,%ecx,%r12d
4861	rorxl	$2,%ecx,%edx
4862	xorl	%esi,%ecx
4863	addl	%r12d,%ebx
4864	xorl	%eax,%ecx
4865	addl	40(%r13),%ebp
4866	leal	(%rcx,%rbp,1),%ebp
4867	rorxl	$27,%ebx,%r12d
4868	rorxl	$2,%ebx,%ecx
4869	xorl	%edx,%ebx
4870	addl	%r12d,%ebp
4871	xorl	%esi,%ebx
4872	addl	44(%r13),%eax
4873	leal	(%rax,%rbx,1),%eax
4874	rorxl	$27,%ebp,%r12d
4875	rorxl	$2,%ebp,%ebx
4876	xorl	%ecx,%ebp
4877	addl	%r12d,%eax
4878	xorl	%edx,%ebp
4879	addl	64(%r13),%esi
4880	leal	(%rsi,%rbp,1),%esi
4881	rorxl	$27,%eax,%r12d
4882	rorxl	$2,%eax,%ebp
4883	xorl	%ebx,%eax
4884	addl	%r12d,%esi
4885	xorl	%ecx,%eax
4886	vmovdqu	-64(%r14),%ymm11
4887	vpshufb	%ymm6,%ymm0,%ymm0
4888	addl	68(%r13),%edx
4889	leal	(%rdx,%rax,1),%edx
4890	rorxl	$27,%esi,%r12d
4891	rorxl	$2,%esi,%eax
4892	xorl	%ebp,%esi
4893	addl	%r12d,%edx
4894	xorl	%ebx,%esi
4895	addl	72(%r13),%ecx
4896	leal	(%rcx,%rsi,1),%ecx
4897	rorxl	$27,%edx,%r12d
4898	rorxl	$2,%edx,%esi
4899	xorl	%eax,%edx
4900	addl	%r12d,%ecx
4901	xorl	%ebp,%edx
4902	addl	76(%r13),%ebx
4903	leal	(%rbx,%rdx,1),%ebx
4904	rorxl	$27,%ecx,%r12d
4905	rorxl	$2,%ecx,%edx
4906	xorl	%esi,%ecx
4907	addl	%r12d,%ebx
4908	xorl	%eax,%ecx
4909	addl	96(%r13),%ebp
4910	leal	(%rcx,%rbp,1),%ebp
4911	rorxl	$27,%ebx,%r12d
4912	rorxl	$2,%ebx,%ecx
4913	xorl	%edx,%ebx
4914	addl	%r12d,%ebp
4915	xorl	%esi,%ebx
4916	addl	100(%r13),%eax
4917	leal	(%rax,%rbx,1),%eax
4918	rorxl	$27,%ebp,%r12d
4919	rorxl	$2,%ebp,%ebx
4920	xorl	%ecx,%ebp
4921	addl	%r12d,%eax
4922	xorl	%edx,%ebp
4923	vpshufb	%ymm6,%ymm1,%ymm1
4924	vpaddd	%ymm11,%ymm0,%ymm8
4925	addl	104(%r13),%esi
4926	leal	(%rsi,%rbp,1),%esi
4927	rorxl	$27,%eax,%r12d
4928	rorxl	$2,%eax,%ebp
4929	xorl	%ebx,%eax
4930	addl	%r12d,%esi
4931	xorl	%ecx,%eax
4932	addl	108(%r13),%edx
4933	leaq	256(%r13),%r13
4934	leal	(%rdx,%rax,1),%edx
4935	rorxl	$27,%esi,%r12d
4936	rorxl	$2,%esi,%eax
4937	xorl	%ebp,%esi
4938	addl	%r12d,%edx
4939	xorl	%ebx,%esi
4940	addl	-128(%r13),%ecx
4941	leal	(%rcx,%rsi,1),%ecx
4942	rorxl	$27,%edx,%r12d
4943	rorxl	$2,%edx,%esi
4944	xorl	%eax,%edx
4945	addl	%r12d,%ecx
4946	xorl	%ebp,%edx
4947	addl	-124(%r13),%ebx
4948	leal	(%rbx,%rdx,1),%ebx
4949	rorxl	$27,%ecx,%r12d
4950	rorxl	$2,%ecx,%edx
4951	xorl	%esi,%ecx
4952	addl	%r12d,%ebx
4953	xorl	%eax,%ecx
4954	addl	-120(%r13),%ebp
4955	leal	(%rcx,%rbp,1),%ebp
4956	rorxl	$27,%ebx,%r12d
4957	rorxl	$2,%ebx,%ecx
4958	xorl	%edx,%ebx
4959	addl	%r12d,%ebp
4960	xorl	%esi,%ebx
4961	vmovdqu	%ymm8,0(%rsp)
4962	vpshufb	%ymm6,%ymm2,%ymm2
4963	vpaddd	%ymm11,%ymm1,%ymm9
4964	addl	-116(%r13),%eax
4965	leal	(%rax,%rbx,1),%eax
4966	rorxl	$27,%ebp,%r12d
4967	rorxl	$2,%ebp,%ebx
4968	xorl	%ecx,%ebp
4969	addl	%r12d,%eax
4970	xorl	%edx,%ebp
4971	addl	-96(%r13),%esi
4972	leal	(%rsi,%rbp,1),%esi
4973	rorxl	$27,%eax,%r12d
4974	rorxl	$2,%eax,%ebp
4975	xorl	%ebx,%eax
4976	addl	%r12d,%esi
4977	xorl	%ecx,%eax
4978	addl	-92(%r13),%edx
4979	leal	(%rdx,%rax,1),%edx
4980	rorxl	$27,%esi,%r12d
4981	rorxl	$2,%esi,%eax
4982	xorl	%ebp,%esi
4983	addl	%r12d,%edx
4984	xorl	%ebx,%esi
4985	addl	-88(%r13),%ecx
4986	leal	(%rcx,%rsi,1),%ecx
4987	rorxl	$27,%edx,%r12d
4988	rorxl	$2,%edx,%esi
4989	xorl	%eax,%edx
4990	addl	%r12d,%ecx
4991	xorl	%ebp,%edx
4992	addl	-84(%r13),%ebx
4993	movl	%esi,%edi
4994	xorl	%eax,%edi
4995	leal	(%rbx,%rdx,1),%ebx
4996	rorxl	$27,%ecx,%r12d
4997	rorxl	$2,%ecx,%edx
4998	xorl	%esi,%ecx
4999	addl	%r12d,%ebx
5000	andl	%edi,%ecx
5001	vmovdqu	%ymm9,32(%rsp)
5002	vpshufb	%ymm6,%ymm3,%ymm3
5003	vpaddd	%ymm11,%ymm2,%ymm6
5004	addl	-64(%r13),%ebp
5005	xorl	%esi,%ecx
5006	movl	%edx,%edi
5007	xorl	%esi,%edi
5008	leal	(%rcx,%rbp,1),%ebp
5009	rorxl	$27,%ebx,%r12d
5010	rorxl	$2,%ebx,%ecx
5011	xorl	%edx,%ebx
5012	addl	%r12d,%ebp
5013	andl	%edi,%ebx
5014	addl	-60(%r13),%eax
5015	xorl	%edx,%ebx
5016	movl	%ecx,%edi
5017	xorl	%edx,%edi
5018	leal	(%rax,%rbx,1),%eax
5019	rorxl	$27,%ebp,%r12d
5020	rorxl	$2,%ebp,%ebx
5021	xorl	%ecx,%ebp
5022	addl	%r12d,%eax
5023	andl	%edi,%ebp
5024	addl	-56(%r13),%esi
5025	xorl	%ecx,%ebp
5026	movl	%ebx,%edi
5027	xorl	%ecx,%edi
5028	leal	(%rsi,%rbp,1),%esi
5029	rorxl	$27,%eax,%r12d
5030	rorxl	$2,%eax,%ebp
5031	xorl	%ebx,%eax
5032	addl	%r12d,%esi
5033	andl	%edi,%eax
5034	addl	-52(%r13),%edx
5035	xorl	%ebx,%eax
5036	movl	%ebp,%edi
5037	xorl	%ebx,%edi
5038	leal	(%rdx,%rax,1),%edx
5039	rorxl	$27,%esi,%r12d
5040	rorxl	$2,%esi,%eax
5041	xorl	%ebp,%esi
5042	addl	%r12d,%edx
5043	andl	%edi,%esi
5044	addl	-32(%r13),%ecx
5045	xorl	%ebp,%esi
5046	movl	%eax,%edi
5047	xorl	%ebp,%edi
5048	leal	(%rcx,%rsi,1),%ecx
5049	rorxl	$27,%edx,%r12d
5050	rorxl	$2,%edx,%esi
5051	xorl	%eax,%edx
5052	addl	%r12d,%ecx
5053	andl	%edi,%edx
5054	jmp	L$align32_3
5055.p2align	5
5056L$align32_3:
5057	vmovdqu	%ymm6,64(%rsp)
5058	vpaddd	%ymm11,%ymm3,%ymm7
5059	addl	-28(%r13),%ebx
5060	xorl	%eax,%edx
5061	movl	%esi,%edi
5062	xorl	%eax,%edi
5063	leal	(%rbx,%rdx,1),%ebx
5064	rorxl	$27,%ecx,%r12d
5065	rorxl	$2,%ecx,%edx
5066	xorl	%esi,%ecx
5067	addl	%r12d,%ebx
5068	andl	%edi,%ecx
5069	addl	-24(%r13),%ebp
5070	xorl	%esi,%ecx
5071	movl	%edx,%edi
5072	xorl	%esi,%edi
5073	leal	(%rcx,%rbp,1),%ebp
5074	rorxl	$27,%ebx,%r12d
5075	rorxl	$2,%ebx,%ecx
5076	xorl	%edx,%ebx
5077	addl	%r12d,%ebp
5078	andl	%edi,%ebx
5079	addl	-20(%r13),%eax
5080	xorl	%edx,%ebx
5081	movl	%ecx,%edi
5082	xorl	%edx,%edi
5083	leal	(%rax,%rbx,1),%eax
5084	rorxl	$27,%ebp,%r12d
5085	rorxl	$2,%ebp,%ebx
5086	xorl	%ecx,%ebp
5087	addl	%r12d,%eax
5088	andl	%edi,%ebp
5089	addl	0(%r13),%esi
5090	xorl	%ecx,%ebp
5091	movl	%ebx,%edi
5092	xorl	%ecx,%edi
5093	leal	(%rsi,%rbp,1),%esi
5094	rorxl	$27,%eax,%r12d
5095	rorxl	$2,%eax,%ebp
5096	xorl	%ebx,%eax
5097	addl	%r12d,%esi
5098	andl	%edi,%eax
5099	addl	4(%r13),%edx
5100	xorl	%ebx,%eax
5101	movl	%ebp,%edi
5102	xorl	%ebx,%edi
5103	leal	(%rdx,%rax,1),%edx
5104	rorxl	$27,%esi,%r12d
5105	rorxl	$2,%esi,%eax
5106	xorl	%ebp,%esi
5107	addl	%r12d,%edx
5108	andl	%edi,%esi
5109	vmovdqu	%ymm7,96(%rsp)
5110	addl	8(%r13),%ecx
5111	xorl	%ebp,%esi
5112	movl	%eax,%edi
5113	xorl	%ebp,%edi
5114	leal	(%rcx,%rsi,1),%ecx
5115	rorxl	$27,%edx,%r12d
5116	rorxl	$2,%edx,%esi
5117	xorl	%eax,%edx
5118	addl	%r12d,%ecx
5119	andl	%edi,%edx
5120	addl	12(%r13),%ebx
5121	xorl	%eax,%edx
5122	movl	%esi,%edi
5123	xorl	%eax,%edi
5124	leal	(%rbx,%rdx,1),%ebx
5125	rorxl	$27,%ecx,%r12d
5126	rorxl	$2,%ecx,%edx
5127	xorl	%esi,%ecx
5128	addl	%r12d,%ebx
5129	andl	%edi,%ecx
5130	addl	32(%r13),%ebp
5131	xorl	%esi,%ecx
5132	movl	%edx,%edi
5133	xorl	%esi,%edi
5134	leal	(%rcx,%rbp,1),%ebp
5135	rorxl	$27,%ebx,%r12d
5136	rorxl	$2,%ebx,%ecx
5137	xorl	%edx,%ebx
5138	addl	%r12d,%ebp
5139	andl	%edi,%ebx
5140	addl	36(%r13),%eax
5141	xorl	%edx,%ebx
5142	movl	%ecx,%edi
5143	xorl	%edx,%edi
5144	leal	(%rax,%rbx,1),%eax
5145	rorxl	$27,%ebp,%r12d
5146	rorxl	$2,%ebp,%ebx
5147	xorl	%ecx,%ebp
5148	addl	%r12d,%eax
5149	andl	%edi,%ebp
5150	addl	40(%r13),%esi
5151	xorl	%ecx,%ebp
5152	movl	%ebx,%edi
5153	xorl	%ecx,%edi
5154	leal	(%rsi,%rbp,1),%esi
5155	rorxl	$27,%eax,%r12d
5156	rorxl	$2,%eax,%ebp
5157	xorl	%ebx,%eax
5158	addl	%r12d,%esi
5159	andl	%edi,%eax
5160	vpalignr	$8,%ymm0,%ymm1,%ymm4
5161	addl	44(%r13),%edx
5162	xorl	%ebx,%eax
5163	movl	%ebp,%edi
5164	xorl	%ebx,%edi
5165	vpsrldq	$4,%ymm3,%ymm8
5166	leal	(%rdx,%rax,1),%edx
5167	rorxl	$27,%esi,%r12d
5168	rorxl	$2,%esi,%eax
5169	vpxor	%ymm0,%ymm4,%ymm4
5170	vpxor	%ymm2,%ymm8,%ymm8
5171	xorl	%ebp,%esi
5172	addl	%r12d,%edx
5173	vpxor	%ymm8,%ymm4,%ymm4
5174	andl	%edi,%esi
5175	addl	64(%r13),%ecx
5176	xorl	%ebp,%esi
5177	movl	%eax,%edi
5178	vpsrld	$31,%ymm4,%ymm8
5179	xorl	%ebp,%edi
5180	leal	(%rcx,%rsi,1),%ecx
5181	rorxl	$27,%edx,%r12d
5182	vpslldq	$12,%ymm4,%ymm10
5183	vpaddd	%ymm4,%ymm4,%ymm4
5184	rorxl	$2,%edx,%esi
5185	xorl	%eax,%edx
5186	vpsrld	$30,%ymm10,%ymm9
5187	vpor	%ymm8,%ymm4,%ymm4
5188	addl	%r12d,%ecx
5189	andl	%edi,%edx
5190	vpslld	$2,%ymm10,%ymm10
5191	vpxor	%ymm9,%ymm4,%ymm4
5192	addl	68(%r13),%ebx
5193	xorl	%eax,%edx
5194	vpxor	%ymm10,%ymm4,%ymm4
5195	movl	%esi,%edi
5196	xorl	%eax,%edi
5197	leal	(%rbx,%rdx,1),%ebx
5198	vpaddd	%ymm11,%ymm4,%ymm9
5199	rorxl	$27,%ecx,%r12d
5200	rorxl	$2,%ecx,%edx
5201	xorl	%esi,%ecx
5202	vmovdqu	%ymm9,128(%rsp)
5203	addl	%r12d,%ebx
5204	andl	%edi,%ecx
5205	addl	72(%r13),%ebp
5206	xorl	%esi,%ecx
5207	movl	%edx,%edi
5208	xorl	%esi,%edi
5209	leal	(%rcx,%rbp,1),%ebp
5210	rorxl	$27,%ebx,%r12d
5211	rorxl	$2,%ebx,%ecx
5212	xorl	%edx,%ebx
5213	addl	%r12d,%ebp
5214	andl	%edi,%ebx
5215	addl	76(%r13),%eax
5216	xorl	%edx,%ebx
5217	leal	(%rax,%rbx,1),%eax
5218	rorxl	$27,%ebp,%r12d
5219	rorxl	$2,%ebp,%ebx
5220	xorl	%ecx,%ebp
5221	addl	%r12d,%eax
5222	xorl	%edx,%ebp
5223	vpalignr	$8,%ymm1,%ymm2,%ymm5
5224	addl	96(%r13),%esi
5225	leal	(%rsi,%rbp,1),%esi
5226	rorxl	$27,%eax,%r12d
5227	rorxl	$2,%eax,%ebp
5228	vpsrldq	$4,%ymm4,%ymm8
5229	xorl	%ebx,%eax
5230	addl	%r12d,%esi
5231	xorl	%ecx,%eax
5232	vpxor	%ymm1,%ymm5,%ymm5
5233	vpxor	%ymm3,%ymm8,%ymm8
5234	addl	100(%r13),%edx
5235	leal	(%rdx,%rax,1),%edx
5236	vpxor	%ymm8,%ymm5,%ymm5
5237	rorxl	$27,%esi,%r12d
5238	rorxl	$2,%esi,%eax
5239	xorl	%ebp,%esi
5240	addl	%r12d,%edx
5241	vpsrld	$31,%ymm5,%ymm8
5242	vmovdqu	-32(%r14),%ymm11
5243	xorl	%ebx,%esi
5244	addl	104(%r13),%ecx
5245	leal	(%rcx,%rsi,1),%ecx
5246	vpslldq	$12,%ymm5,%ymm10
5247	vpaddd	%ymm5,%ymm5,%ymm5
5248	rorxl	$27,%edx,%r12d
5249	rorxl	$2,%edx,%esi
5250	vpsrld	$30,%ymm10,%ymm9
5251	vpor	%ymm8,%ymm5,%ymm5
5252	xorl	%eax,%edx
5253	addl	%r12d,%ecx
5254	vpslld	$2,%ymm10,%ymm10
5255	vpxor	%ymm9,%ymm5,%ymm5
5256	xorl	%ebp,%edx
5257	addl	108(%r13),%ebx
5258	leaq	256(%r13),%r13
5259	vpxor	%ymm10,%ymm5,%ymm5
5260	leal	(%rbx,%rdx,1),%ebx
5261	rorxl	$27,%ecx,%r12d
5262	rorxl	$2,%ecx,%edx
5263	vpaddd	%ymm11,%ymm5,%ymm9
5264	xorl	%esi,%ecx
5265	addl	%r12d,%ebx
5266	xorl	%eax,%ecx
5267	vmovdqu	%ymm9,160(%rsp)
5268	addl	-128(%r13),%ebp
5269	leal	(%rcx,%rbp,1),%ebp
5270	rorxl	$27,%ebx,%r12d
5271	rorxl	$2,%ebx,%ecx
5272	xorl	%edx,%ebx
5273	addl	%r12d,%ebp
5274	xorl	%esi,%ebx
5275	vpalignr	$8,%ymm2,%ymm3,%ymm6
5276	addl	-124(%r13),%eax
5277	leal	(%rax,%rbx,1),%eax
5278	rorxl	$27,%ebp,%r12d
5279	rorxl	$2,%ebp,%ebx
5280	vpsrldq	$4,%ymm5,%ymm8
5281	xorl	%ecx,%ebp
5282	addl	%r12d,%eax
5283	xorl	%edx,%ebp
5284	vpxor	%ymm2,%ymm6,%ymm6
5285	vpxor	%ymm4,%ymm8,%ymm8
5286	addl	-120(%r13),%esi
5287	leal	(%rsi,%rbp,1),%esi
5288	vpxor	%ymm8,%ymm6,%ymm6
5289	rorxl	$27,%eax,%r12d
5290	rorxl	$2,%eax,%ebp
5291	xorl	%ebx,%eax
5292	addl	%r12d,%esi
5293	vpsrld	$31,%ymm6,%ymm8
5294	xorl	%ecx,%eax
5295	addl	-116(%r13),%edx
5296	leal	(%rdx,%rax,1),%edx
5297	vpslldq	$12,%ymm6,%ymm10
5298	vpaddd	%ymm6,%ymm6,%ymm6
5299	rorxl	$27,%esi,%r12d
5300	rorxl	$2,%esi,%eax
5301	vpsrld	$30,%ymm10,%ymm9
5302	vpor	%ymm8,%ymm6,%ymm6
5303	xorl	%ebp,%esi
5304	addl	%r12d,%edx
5305	vpslld	$2,%ymm10,%ymm10
5306	vpxor	%ymm9,%ymm6,%ymm6
5307	xorl	%ebx,%esi
5308	addl	-96(%r13),%ecx
5309	vpxor	%ymm10,%ymm6,%ymm6
5310	leal	(%rcx,%rsi,1),%ecx
5311	rorxl	$27,%edx,%r12d
5312	rorxl	$2,%edx,%esi
5313	vpaddd	%ymm11,%ymm6,%ymm9
5314	xorl	%eax,%edx
5315	addl	%r12d,%ecx
5316	xorl	%ebp,%edx
5317	vmovdqu	%ymm9,192(%rsp)
5318	addl	-92(%r13),%ebx
5319	leal	(%rbx,%rdx,1),%ebx
5320	rorxl	$27,%ecx,%r12d
5321	rorxl	$2,%ecx,%edx
5322	xorl	%esi,%ecx
5323	addl	%r12d,%ebx
5324	xorl	%eax,%ecx
5325	vpalignr	$8,%ymm3,%ymm4,%ymm7
5326	addl	-88(%r13),%ebp
5327	leal	(%rcx,%rbp,1),%ebp
5328	rorxl	$27,%ebx,%r12d
5329	rorxl	$2,%ebx,%ecx
5330	vpsrldq	$4,%ymm6,%ymm8
5331	xorl	%edx,%ebx
5332	addl	%r12d,%ebp
5333	xorl	%esi,%ebx
5334	vpxor	%ymm3,%ymm7,%ymm7
5335	vpxor	%ymm5,%ymm8,%ymm8
5336	addl	-84(%r13),%eax
5337	leal	(%rax,%rbx,1),%eax
5338	vpxor	%ymm8,%ymm7,%ymm7
5339	rorxl	$27,%ebp,%r12d
5340	rorxl	$2,%ebp,%ebx
5341	xorl	%ecx,%ebp
5342	addl	%r12d,%eax
5343	vpsrld	$31,%ymm7,%ymm8
5344	xorl	%edx,%ebp
5345	addl	-64(%r13),%esi
5346	leal	(%rsi,%rbp,1),%esi
5347	vpslldq	$12,%ymm7,%ymm10
5348	vpaddd	%ymm7,%ymm7,%ymm7
5349	rorxl	$27,%eax,%r12d
5350	rorxl	$2,%eax,%ebp
5351	vpsrld	$30,%ymm10,%ymm9
5352	vpor	%ymm8,%ymm7,%ymm7
5353	xorl	%ebx,%eax
5354	addl	%r12d,%esi
5355	vpslld	$2,%ymm10,%ymm10
5356	vpxor	%ymm9,%ymm7,%ymm7
5357	xorl	%ecx,%eax
5358	addl	-60(%r13),%edx
5359	vpxor	%ymm10,%ymm7,%ymm7
5360	leal	(%rdx,%rax,1),%edx
5361	rorxl	$27,%esi,%r12d
5362	rorxl	$2,%esi,%eax
5363	vpaddd	%ymm11,%ymm7,%ymm9
5364	xorl	%ebp,%esi
5365	addl	%r12d,%edx
5366	xorl	%ebx,%esi
5367	vmovdqu	%ymm9,224(%rsp)
5368	addl	-56(%r13),%ecx
5369	leal	(%rcx,%rsi,1),%ecx
5370	rorxl	$27,%edx,%r12d
5371	rorxl	$2,%edx,%esi
5372	xorl	%eax,%edx
5373	addl	%r12d,%ecx
5374	xorl	%ebp,%edx
5375	addl	-52(%r13),%ebx
5376	leal	(%rbx,%rdx,1),%ebx
5377	rorxl	$27,%ecx,%r12d
5378	rorxl	$2,%ecx,%edx
5379	xorl	%esi,%ecx
5380	addl	%r12d,%ebx
5381	xorl	%eax,%ecx
5382	addl	-32(%r13),%ebp
5383	leal	(%rcx,%rbp,1),%ebp
5384	rorxl	$27,%ebx,%r12d
5385	rorxl	$2,%ebx,%ecx
5386	xorl	%edx,%ebx
5387	addl	%r12d,%ebp
5388	xorl	%esi,%ebx
5389	addl	-28(%r13),%eax
5390	leal	(%rax,%rbx,1),%eax
5391	rorxl	$27,%ebp,%r12d
5392	rorxl	$2,%ebp,%ebx
5393	xorl	%ecx,%ebp
5394	addl	%r12d,%eax
5395	xorl	%edx,%ebp
5396	addl	-24(%r13),%esi
5397	leal	(%rsi,%rbp,1),%esi
5398	rorxl	$27,%eax,%r12d
5399	rorxl	$2,%eax,%ebp
5400	xorl	%ebx,%eax
5401	addl	%r12d,%esi
5402	xorl	%ecx,%eax
5403	addl	-20(%r13),%edx
5404	leal	(%rdx,%rax,1),%edx
5405	rorxl	$27,%esi,%r12d
5406	addl	%r12d,%edx
5407	leaq	128(%rsp),%r13
5408
5409
5410	addl	0(%r8),%edx
5411	addl	4(%r8),%esi
5412	addl	8(%r8),%ebp
5413	movl	%edx,0(%r8)
5414	addl	12(%r8),%ebx
5415	movl	%esi,4(%r8)
5416	movl	%edx,%eax
5417	addl	16(%r8),%ecx
5418	movl	%ebp,%r12d
5419	movl	%ebp,8(%r8)
5420	movl	%ebx,%edx
5421
5422	movl	%ebx,12(%r8)
5423	movl	%esi,%ebp
5424	movl	%ecx,16(%r8)
5425
5426	movl	%ecx,%esi
5427	movl	%r12d,%ecx
5428
5429
5430	cmpq	%r10,%r9
5431	jbe	L$oop_avx2
5432
5433L$done_avx2:
5434	vzeroupper
5435	movq	-40(%r11),%r14
5436
5437	movq	-32(%r11),%r13
5438
5439	movq	-24(%r11),%r12
5440
5441	movq	-16(%r11),%rbp
5442
5443	movq	-8(%r11),%rbx
5444
5445	leaq	(%r11),%rsp
5446
5447L$epilogue_avx2:
5448	.byte	0xf3,0xc3
5449
5450
5451.p2align	6
5452K_XX_XX:
5453.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
5454.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
5455.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
5456.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
5457.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
5458.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
5459.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
5460.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
5461.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
5462.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
5463.byte	0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
5464.byte	83,72,65,49,32,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
5465.p2align	6
5466#endif
5467