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