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