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