xref: /freebsd/sys/crypto/openssl/amd64/sha512-x86_64.S (revision 59c8e88e72633afbc47a4ace0d2170d00d51f7dc)
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.align	64
1731.type	K512,@object
1732K512:
1733.quad	0x428a2f98d728ae22,0x7137449123ef65cd
1734.quad	0x428a2f98d728ae22,0x7137449123ef65cd
1735.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
1736.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
1737.quad	0x3956c25bf348b538,0x59f111f1b605d019
1738.quad	0x3956c25bf348b538,0x59f111f1b605d019
1739.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
1740.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
1741.quad	0xd807aa98a3030242,0x12835b0145706fbe
1742.quad	0xd807aa98a3030242,0x12835b0145706fbe
1743.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
1744.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
1745.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
1746.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
1747.quad	0x9bdc06a725c71235,0xc19bf174cf692694
1748.quad	0x9bdc06a725c71235,0xc19bf174cf692694
1749.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
1750.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
1751.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
1752.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
1753.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
1754.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
1755.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
1756.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
1757.quad	0x983e5152ee66dfab,0xa831c66d2db43210
1758.quad	0x983e5152ee66dfab,0xa831c66d2db43210
1759.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
1760.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
1761.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
1762.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
1763.quad	0x06ca6351e003826f,0x142929670a0e6e70
1764.quad	0x06ca6351e003826f,0x142929670a0e6e70
1765.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
1766.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
1767.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
1768.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
1769.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
1770.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
1771.quad	0x81c2c92e47edaee6,0x92722c851482353b
1772.quad	0x81c2c92e47edaee6,0x92722c851482353b
1773.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
1774.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
1775.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
1776.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
1777.quad	0xd192e819d6ef5218,0xd69906245565a910
1778.quad	0xd192e819d6ef5218,0xd69906245565a910
1779.quad	0xf40e35855771202a,0x106aa07032bbd1b8
1780.quad	0xf40e35855771202a,0x106aa07032bbd1b8
1781.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
1782.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
1783.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
1784.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
1785.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
1786.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
1787.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
1788.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
1789.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
1790.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
1791.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
1792.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
1793.quad	0x90befffa23631e28,0xa4506cebde82bde9
1794.quad	0x90befffa23631e28,0xa4506cebde82bde9
1795.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
1796.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
1797.quad	0xca273eceea26619c,0xd186b8c721c0c207
1798.quad	0xca273eceea26619c,0xd186b8c721c0c207
1799.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
1800.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
1801.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
1802.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
1803.quad	0x113f9804bef90dae,0x1b710b35131c471b
1804.quad	0x113f9804bef90dae,0x1b710b35131c471b
1805.quad	0x28db77f523047d84,0x32caab7b40c72493
1806.quad	0x28db77f523047d84,0x32caab7b40c72493
1807.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
1808.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
1809.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
1810.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
1811.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
1812.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
1813
1814.quad	0x0001020304050607,0x08090a0b0c0d0e0f
1815.quad	0x0001020304050607,0x08090a0b0c0d0e0f
1816.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
1817.type	sha512_block_data_order_xop,@function
1818.align	64
1819sha512_block_data_order_xop:
1820.cfi_startproc
1821.Lxop_shortcut:
1822	movq	%rsp,%rax
1823.cfi_def_cfa_register	%rax
1824	pushq	%rbx
1825.cfi_offset	%rbx,-16
1826	pushq	%rbp
1827.cfi_offset	%rbp,-24
1828	pushq	%r12
1829.cfi_offset	%r12,-32
1830	pushq	%r13
1831.cfi_offset	%r13,-40
1832	pushq	%r14
1833.cfi_offset	%r14,-48
1834	pushq	%r15
1835.cfi_offset	%r15,-56
1836	shlq	$4,%rdx
1837	subq	$160,%rsp
1838	leaq	(%rsi,%rdx,8),%rdx
1839	andq	$-64,%rsp
1840	movq	%rdi,128+0(%rsp)
1841	movq	%rsi,128+8(%rsp)
1842	movq	%rdx,128+16(%rsp)
1843	movq	%rax,152(%rsp)
1844.cfi_escape	0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
1845.Lprologue_xop:
1846
1847	vzeroupper
1848	movq	0(%rdi),%rax
1849	movq	8(%rdi),%rbx
1850	movq	16(%rdi),%rcx
1851	movq	24(%rdi),%rdx
1852	movq	32(%rdi),%r8
1853	movq	40(%rdi),%r9
1854	movq	48(%rdi),%r10
1855	movq	56(%rdi),%r11
1856	jmp	.Lloop_xop
1857.align	16
1858.Lloop_xop:
1859	vmovdqa	K512+1280(%rip),%xmm11
1860	vmovdqu	0(%rsi),%xmm0
1861	leaq	K512+128(%rip),%rbp
1862	vmovdqu	16(%rsi),%xmm1
1863	vmovdqu	32(%rsi),%xmm2
1864	vpshufb	%xmm11,%xmm0,%xmm0
1865	vmovdqu	48(%rsi),%xmm3
1866	vpshufb	%xmm11,%xmm1,%xmm1
1867	vmovdqu	64(%rsi),%xmm4
1868	vpshufb	%xmm11,%xmm2,%xmm2
1869	vmovdqu	80(%rsi),%xmm5
1870	vpshufb	%xmm11,%xmm3,%xmm3
1871	vmovdqu	96(%rsi),%xmm6
1872	vpshufb	%xmm11,%xmm4,%xmm4
1873	vmovdqu	112(%rsi),%xmm7
1874	vpshufb	%xmm11,%xmm5,%xmm5
1875	vpaddq	-128(%rbp),%xmm0,%xmm8
1876	vpshufb	%xmm11,%xmm6,%xmm6
1877	vpaddq	-96(%rbp),%xmm1,%xmm9
1878	vpshufb	%xmm11,%xmm7,%xmm7
1879	vpaddq	-64(%rbp),%xmm2,%xmm10
1880	vpaddq	-32(%rbp),%xmm3,%xmm11
1881	vmovdqa	%xmm8,0(%rsp)
1882	vpaddq	0(%rbp),%xmm4,%xmm8
1883	vmovdqa	%xmm9,16(%rsp)
1884	vpaddq	32(%rbp),%xmm5,%xmm9
1885	vmovdqa	%xmm10,32(%rsp)
1886	vpaddq	64(%rbp),%xmm6,%xmm10
1887	vmovdqa	%xmm11,48(%rsp)
1888	vpaddq	96(%rbp),%xmm7,%xmm11
1889	vmovdqa	%xmm8,64(%rsp)
1890	movq	%rax,%r14
1891	vmovdqa	%xmm9,80(%rsp)
1892	movq	%rbx,%rdi
1893	vmovdqa	%xmm10,96(%rsp)
1894	xorq	%rcx,%rdi
1895	vmovdqa	%xmm11,112(%rsp)
1896	movq	%r8,%r13
1897	jmp	.Lxop_00_47
1898
1899.align	16
1900.Lxop_00_47:
1901	addq	$256,%rbp
1902	vpalignr	$8,%xmm0,%xmm1,%xmm8
1903	rorq	$23,%r13
1904	movq	%r14,%rax
1905	vpalignr	$8,%xmm4,%xmm5,%xmm11
1906	movq	%r9,%r12
1907	rorq	$5,%r14
1908.byte	143,72,120,195,200,56
1909	xorq	%r8,%r13
1910	xorq	%r10,%r12
1911	vpsrlq	$7,%xmm8,%xmm8
1912	rorq	$4,%r13
1913	xorq	%rax,%r14
1914	vpaddq	%xmm11,%xmm0,%xmm0
1915	andq	%r8,%r12
1916	xorq	%r8,%r13
1917	addq	0(%rsp),%r11
1918	movq	%rax,%r15
1919.byte	143,72,120,195,209,7
1920	xorq	%r10,%r12
1921	rorq	$6,%r14
1922	vpxor	%xmm9,%xmm8,%xmm8
1923	xorq	%rbx,%r15
1924	addq	%r12,%r11
1925	rorq	$14,%r13
1926	andq	%r15,%rdi
1927.byte	143,104,120,195,223,3
1928	xorq	%rax,%r14
1929	addq	%r13,%r11
1930	vpxor	%xmm10,%xmm8,%xmm8
1931	xorq	%rbx,%rdi
1932	rorq	$28,%r14
1933	vpsrlq	$6,%xmm7,%xmm10
1934	addq	%r11,%rdx
1935	addq	%rdi,%r11
1936	vpaddq	%xmm8,%xmm0,%xmm0
1937	movq	%rdx,%r13
1938	addq	%r11,%r14
1939.byte	143,72,120,195,203,42
1940	rorq	$23,%r13
1941	movq	%r14,%r11
1942	vpxor	%xmm10,%xmm11,%xmm11
1943	movq	%r8,%r12
1944	rorq	$5,%r14
1945	xorq	%rdx,%r13
1946	xorq	%r9,%r12
1947	vpxor	%xmm9,%xmm11,%xmm11
1948	rorq	$4,%r13
1949	xorq	%r11,%r14
1950	andq	%rdx,%r12
1951	xorq	%rdx,%r13
1952	vpaddq	%xmm11,%xmm0,%xmm0
1953	addq	8(%rsp),%r10
1954	movq	%r11,%rdi
1955	xorq	%r9,%r12
1956	rorq	$6,%r14
1957	vpaddq	-128(%rbp),%xmm0,%xmm10
1958	xorq	%rax,%rdi
1959	addq	%r12,%r10
1960	rorq	$14,%r13
1961	andq	%rdi,%r15
1962	xorq	%r11,%r14
1963	addq	%r13,%r10
1964	xorq	%rax,%r15
1965	rorq	$28,%r14
1966	addq	%r10,%rcx
1967	addq	%r15,%r10
1968	movq	%rcx,%r13
1969	addq	%r10,%r14
1970	vmovdqa	%xmm10,0(%rsp)
1971	vpalignr	$8,%xmm1,%xmm2,%xmm8
1972	rorq	$23,%r13
1973	movq	%r14,%r10
1974	vpalignr	$8,%xmm5,%xmm6,%xmm11
1975	movq	%rdx,%r12
1976	rorq	$5,%r14
1977.byte	143,72,120,195,200,56
1978	xorq	%rcx,%r13
1979	xorq	%r8,%r12
1980	vpsrlq	$7,%xmm8,%xmm8
1981	rorq	$4,%r13
1982	xorq	%r10,%r14
1983	vpaddq	%xmm11,%xmm1,%xmm1
1984	andq	%rcx,%r12
1985	xorq	%rcx,%r13
1986	addq	16(%rsp),%r9
1987	movq	%r10,%r15
1988.byte	143,72,120,195,209,7
1989	xorq	%r8,%r12
1990	rorq	$6,%r14
1991	vpxor	%xmm9,%xmm8,%xmm8
1992	xorq	%r11,%r15
1993	addq	%r12,%r9
1994	rorq	$14,%r13
1995	andq	%r15,%rdi
1996.byte	143,104,120,195,216,3
1997	xorq	%r10,%r14
1998	addq	%r13,%r9
1999	vpxor	%xmm10,%xmm8,%xmm8
2000	xorq	%r11,%rdi
2001	rorq	$28,%r14
2002	vpsrlq	$6,%xmm0,%xmm10
2003	addq	%r9,%rbx
2004	addq	%rdi,%r9
2005	vpaddq	%xmm8,%xmm1,%xmm1
2006	movq	%rbx,%r13
2007	addq	%r9,%r14
2008.byte	143,72,120,195,203,42
2009	rorq	$23,%r13
2010	movq	%r14,%r9
2011	vpxor	%xmm10,%xmm11,%xmm11
2012	movq	%rcx,%r12
2013	rorq	$5,%r14
2014	xorq	%rbx,%r13
2015	xorq	%rdx,%r12
2016	vpxor	%xmm9,%xmm11,%xmm11
2017	rorq	$4,%r13
2018	xorq	%r9,%r14
2019	andq	%rbx,%r12
2020	xorq	%rbx,%r13
2021	vpaddq	%xmm11,%xmm1,%xmm1
2022	addq	24(%rsp),%r8
2023	movq	%r9,%rdi
2024	xorq	%rdx,%r12
2025	rorq	$6,%r14
2026	vpaddq	-96(%rbp),%xmm1,%xmm10
2027	xorq	%r10,%rdi
2028	addq	%r12,%r8
2029	rorq	$14,%r13
2030	andq	%rdi,%r15
2031	xorq	%r9,%r14
2032	addq	%r13,%r8
2033	xorq	%r10,%r15
2034	rorq	$28,%r14
2035	addq	%r8,%rax
2036	addq	%r15,%r8
2037	movq	%rax,%r13
2038	addq	%r8,%r14
2039	vmovdqa	%xmm10,16(%rsp)
2040	vpalignr	$8,%xmm2,%xmm3,%xmm8
2041	rorq	$23,%r13
2042	movq	%r14,%r8
2043	vpalignr	$8,%xmm6,%xmm7,%xmm11
2044	movq	%rbx,%r12
2045	rorq	$5,%r14
2046.byte	143,72,120,195,200,56
2047	xorq	%rax,%r13
2048	xorq	%rcx,%r12
2049	vpsrlq	$7,%xmm8,%xmm8
2050	rorq	$4,%r13
2051	xorq	%r8,%r14
2052	vpaddq	%xmm11,%xmm2,%xmm2
2053	andq	%rax,%r12
2054	xorq	%rax,%r13
2055	addq	32(%rsp),%rdx
2056	movq	%r8,%r15
2057.byte	143,72,120,195,209,7
2058	xorq	%rcx,%r12
2059	rorq	$6,%r14
2060	vpxor	%xmm9,%xmm8,%xmm8
2061	xorq	%r9,%r15
2062	addq	%r12,%rdx
2063	rorq	$14,%r13
2064	andq	%r15,%rdi
2065.byte	143,104,120,195,217,3
2066	xorq	%r8,%r14
2067	addq	%r13,%rdx
2068	vpxor	%xmm10,%xmm8,%xmm8
2069	xorq	%r9,%rdi
2070	rorq	$28,%r14
2071	vpsrlq	$6,%xmm1,%xmm10
2072	addq	%rdx,%r11
2073	addq	%rdi,%rdx
2074	vpaddq	%xmm8,%xmm2,%xmm2
2075	movq	%r11,%r13
2076	addq	%rdx,%r14
2077.byte	143,72,120,195,203,42
2078	rorq	$23,%r13
2079	movq	%r14,%rdx
2080	vpxor	%xmm10,%xmm11,%xmm11
2081	movq	%rax,%r12
2082	rorq	$5,%r14
2083	xorq	%r11,%r13
2084	xorq	%rbx,%r12
2085	vpxor	%xmm9,%xmm11,%xmm11
2086	rorq	$4,%r13
2087	xorq	%rdx,%r14
2088	andq	%r11,%r12
2089	xorq	%r11,%r13
2090	vpaddq	%xmm11,%xmm2,%xmm2
2091	addq	40(%rsp),%rcx
2092	movq	%rdx,%rdi
2093	xorq	%rbx,%r12
2094	rorq	$6,%r14
2095	vpaddq	-64(%rbp),%xmm2,%xmm10
2096	xorq	%r8,%rdi
2097	addq	%r12,%rcx
2098	rorq	$14,%r13
2099	andq	%rdi,%r15
2100	xorq	%rdx,%r14
2101	addq	%r13,%rcx
2102	xorq	%r8,%r15
2103	rorq	$28,%r14
2104	addq	%rcx,%r10
2105	addq	%r15,%rcx
2106	movq	%r10,%r13
2107	addq	%rcx,%r14
2108	vmovdqa	%xmm10,32(%rsp)
2109	vpalignr	$8,%xmm3,%xmm4,%xmm8
2110	rorq	$23,%r13
2111	movq	%r14,%rcx
2112	vpalignr	$8,%xmm7,%xmm0,%xmm11
2113	movq	%r11,%r12
2114	rorq	$5,%r14
2115.byte	143,72,120,195,200,56
2116	xorq	%r10,%r13
2117	xorq	%rax,%r12
2118	vpsrlq	$7,%xmm8,%xmm8
2119	rorq	$4,%r13
2120	xorq	%rcx,%r14
2121	vpaddq	%xmm11,%xmm3,%xmm3
2122	andq	%r10,%r12
2123	xorq	%r10,%r13
2124	addq	48(%rsp),%rbx
2125	movq	%rcx,%r15
2126.byte	143,72,120,195,209,7
2127	xorq	%rax,%r12
2128	rorq	$6,%r14
2129	vpxor	%xmm9,%xmm8,%xmm8
2130	xorq	%rdx,%r15
2131	addq	%r12,%rbx
2132	rorq	$14,%r13
2133	andq	%r15,%rdi
2134.byte	143,104,120,195,218,3
2135	xorq	%rcx,%r14
2136	addq	%r13,%rbx
2137	vpxor	%xmm10,%xmm8,%xmm8
2138	xorq	%rdx,%rdi
2139	rorq	$28,%r14
2140	vpsrlq	$6,%xmm2,%xmm10
2141	addq	%rbx,%r9
2142	addq	%rdi,%rbx
2143	vpaddq	%xmm8,%xmm3,%xmm3
2144	movq	%r9,%r13
2145	addq	%rbx,%r14
2146.byte	143,72,120,195,203,42
2147	rorq	$23,%r13
2148	movq	%r14,%rbx
2149	vpxor	%xmm10,%xmm11,%xmm11
2150	movq	%r10,%r12
2151	rorq	$5,%r14
2152	xorq	%r9,%r13
2153	xorq	%r11,%r12
2154	vpxor	%xmm9,%xmm11,%xmm11
2155	rorq	$4,%r13
2156	xorq	%rbx,%r14
2157	andq	%r9,%r12
2158	xorq	%r9,%r13
2159	vpaddq	%xmm11,%xmm3,%xmm3
2160	addq	56(%rsp),%rax
2161	movq	%rbx,%rdi
2162	xorq	%r11,%r12
2163	rorq	$6,%r14
2164	vpaddq	-32(%rbp),%xmm3,%xmm10
2165	xorq	%rcx,%rdi
2166	addq	%r12,%rax
2167	rorq	$14,%r13
2168	andq	%rdi,%r15
2169	xorq	%rbx,%r14
2170	addq	%r13,%rax
2171	xorq	%rcx,%r15
2172	rorq	$28,%r14
2173	addq	%rax,%r8
2174	addq	%r15,%rax
2175	movq	%r8,%r13
2176	addq	%rax,%r14
2177	vmovdqa	%xmm10,48(%rsp)
2178	vpalignr	$8,%xmm4,%xmm5,%xmm8
2179	rorq	$23,%r13
2180	movq	%r14,%rax
2181	vpalignr	$8,%xmm0,%xmm1,%xmm11
2182	movq	%r9,%r12
2183	rorq	$5,%r14
2184.byte	143,72,120,195,200,56
2185	xorq	%r8,%r13
2186	xorq	%r10,%r12
2187	vpsrlq	$7,%xmm8,%xmm8
2188	rorq	$4,%r13
2189	xorq	%rax,%r14
2190	vpaddq	%xmm11,%xmm4,%xmm4
2191	andq	%r8,%r12
2192	xorq	%r8,%r13
2193	addq	64(%rsp),%r11
2194	movq	%rax,%r15
2195.byte	143,72,120,195,209,7
2196	xorq	%r10,%r12
2197	rorq	$6,%r14
2198	vpxor	%xmm9,%xmm8,%xmm8
2199	xorq	%rbx,%r15
2200	addq	%r12,%r11
2201	rorq	$14,%r13
2202	andq	%r15,%rdi
2203.byte	143,104,120,195,219,3
2204	xorq	%rax,%r14
2205	addq	%r13,%r11
2206	vpxor	%xmm10,%xmm8,%xmm8
2207	xorq	%rbx,%rdi
2208	rorq	$28,%r14
2209	vpsrlq	$6,%xmm3,%xmm10
2210	addq	%r11,%rdx
2211	addq	%rdi,%r11
2212	vpaddq	%xmm8,%xmm4,%xmm4
2213	movq	%rdx,%r13
2214	addq	%r11,%r14
2215.byte	143,72,120,195,203,42
2216	rorq	$23,%r13
2217	movq	%r14,%r11
2218	vpxor	%xmm10,%xmm11,%xmm11
2219	movq	%r8,%r12
2220	rorq	$5,%r14
2221	xorq	%rdx,%r13
2222	xorq	%r9,%r12
2223	vpxor	%xmm9,%xmm11,%xmm11
2224	rorq	$4,%r13
2225	xorq	%r11,%r14
2226	andq	%rdx,%r12
2227	xorq	%rdx,%r13
2228	vpaddq	%xmm11,%xmm4,%xmm4
2229	addq	72(%rsp),%r10
2230	movq	%r11,%rdi
2231	xorq	%r9,%r12
2232	rorq	$6,%r14
2233	vpaddq	0(%rbp),%xmm4,%xmm10
2234	xorq	%rax,%rdi
2235	addq	%r12,%r10
2236	rorq	$14,%r13
2237	andq	%rdi,%r15
2238	xorq	%r11,%r14
2239	addq	%r13,%r10
2240	xorq	%rax,%r15
2241	rorq	$28,%r14
2242	addq	%r10,%rcx
2243	addq	%r15,%r10
2244	movq	%rcx,%r13
2245	addq	%r10,%r14
2246	vmovdqa	%xmm10,64(%rsp)
2247	vpalignr	$8,%xmm5,%xmm6,%xmm8
2248	rorq	$23,%r13
2249	movq	%r14,%r10
2250	vpalignr	$8,%xmm1,%xmm2,%xmm11
2251	movq	%rdx,%r12
2252	rorq	$5,%r14
2253.byte	143,72,120,195,200,56
2254	xorq	%rcx,%r13
2255	xorq	%r8,%r12
2256	vpsrlq	$7,%xmm8,%xmm8
2257	rorq	$4,%r13
2258	xorq	%r10,%r14
2259	vpaddq	%xmm11,%xmm5,%xmm5
2260	andq	%rcx,%r12
2261	xorq	%rcx,%r13
2262	addq	80(%rsp),%r9
2263	movq	%r10,%r15
2264.byte	143,72,120,195,209,7
2265	xorq	%r8,%r12
2266	rorq	$6,%r14
2267	vpxor	%xmm9,%xmm8,%xmm8
2268	xorq	%r11,%r15
2269	addq	%r12,%r9
2270	rorq	$14,%r13
2271	andq	%r15,%rdi
2272.byte	143,104,120,195,220,3
2273	xorq	%r10,%r14
2274	addq	%r13,%r9
2275	vpxor	%xmm10,%xmm8,%xmm8
2276	xorq	%r11,%rdi
2277	rorq	$28,%r14
2278	vpsrlq	$6,%xmm4,%xmm10
2279	addq	%r9,%rbx
2280	addq	%rdi,%r9
2281	vpaddq	%xmm8,%xmm5,%xmm5
2282	movq	%rbx,%r13
2283	addq	%r9,%r14
2284.byte	143,72,120,195,203,42
2285	rorq	$23,%r13
2286	movq	%r14,%r9
2287	vpxor	%xmm10,%xmm11,%xmm11
2288	movq	%rcx,%r12
2289	rorq	$5,%r14
2290	xorq	%rbx,%r13
2291	xorq	%rdx,%r12
2292	vpxor	%xmm9,%xmm11,%xmm11
2293	rorq	$4,%r13
2294	xorq	%r9,%r14
2295	andq	%rbx,%r12
2296	xorq	%rbx,%r13
2297	vpaddq	%xmm11,%xmm5,%xmm5
2298	addq	88(%rsp),%r8
2299	movq	%r9,%rdi
2300	xorq	%rdx,%r12
2301	rorq	$6,%r14
2302	vpaddq	32(%rbp),%xmm5,%xmm10
2303	xorq	%r10,%rdi
2304	addq	%r12,%r8
2305	rorq	$14,%r13
2306	andq	%rdi,%r15
2307	xorq	%r9,%r14
2308	addq	%r13,%r8
2309	xorq	%r10,%r15
2310	rorq	$28,%r14
2311	addq	%r8,%rax
2312	addq	%r15,%r8
2313	movq	%rax,%r13
2314	addq	%r8,%r14
2315	vmovdqa	%xmm10,80(%rsp)
2316	vpalignr	$8,%xmm6,%xmm7,%xmm8
2317	rorq	$23,%r13
2318	movq	%r14,%r8
2319	vpalignr	$8,%xmm2,%xmm3,%xmm11
2320	movq	%rbx,%r12
2321	rorq	$5,%r14
2322.byte	143,72,120,195,200,56
2323	xorq	%rax,%r13
2324	xorq	%rcx,%r12
2325	vpsrlq	$7,%xmm8,%xmm8
2326	rorq	$4,%r13
2327	xorq	%r8,%r14
2328	vpaddq	%xmm11,%xmm6,%xmm6
2329	andq	%rax,%r12
2330	xorq	%rax,%r13
2331	addq	96(%rsp),%rdx
2332	movq	%r8,%r15
2333.byte	143,72,120,195,209,7
2334	xorq	%rcx,%r12
2335	rorq	$6,%r14
2336	vpxor	%xmm9,%xmm8,%xmm8
2337	xorq	%r9,%r15
2338	addq	%r12,%rdx
2339	rorq	$14,%r13
2340	andq	%r15,%rdi
2341.byte	143,104,120,195,221,3
2342	xorq	%r8,%r14
2343	addq	%r13,%rdx
2344	vpxor	%xmm10,%xmm8,%xmm8
2345	xorq	%r9,%rdi
2346	rorq	$28,%r14
2347	vpsrlq	$6,%xmm5,%xmm10
2348	addq	%rdx,%r11
2349	addq	%rdi,%rdx
2350	vpaddq	%xmm8,%xmm6,%xmm6
2351	movq	%r11,%r13
2352	addq	%rdx,%r14
2353.byte	143,72,120,195,203,42
2354	rorq	$23,%r13
2355	movq	%r14,%rdx
2356	vpxor	%xmm10,%xmm11,%xmm11
2357	movq	%rax,%r12
2358	rorq	$5,%r14
2359	xorq	%r11,%r13
2360	xorq	%rbx,%r12
2361	vpxor	%xmm9,%xmm11,%xmm11
2362	rorq	$4,%r13
2363	xorq	%rdx,%r14
2364	andq	%r11,%r12
2365	xorq	%r11,%r13
2366	vpaddq	%xmm11,%xmm6,%xmm6
2367	addq	104(%rsp),%rcx
2368	movq	%rdx,%rdi
2369	xorq	%rbx,%r12
2370	rorq	$6,%r14
2371	vpaddq	64(%rbp),%xmm6,%xmm10
2372	xorq	%r8,%rdi
2373	addq	%r12,%rcx
2374	rorq	$14,%r13
2375	andq	%rdi,%r15
2376	xorq	%rdx,%r14
2377	addq	%r13,%rcx
2378	xorq	%r8,%r15
2379	rorq	$28,%r14
2380	addq	%rcx,%r10
2381	addq	%r15,%rcx
2382	movq	%r10,%r13
2383	addq	%rcx,%r14
2384	vmovdqa	%xmm10,96(%rsp)
2385	vpalignr	$8,%xmm7,%xmm0,%xmm8
2386	rorq	$23,%r13
2387	movq	%r14,%rcx
2388	vpalignr	$8,%xmm3,%xmm4,%xmm11
2389	movq	%r11,%r12
2390	rorq	$5,%r14
2391.byte	143,72,120,195,200,56
2392	xorq	%r10,%r13
2393	xorq	%rax,%r12
2394	vpsrlq	$7,%xmm8,%xmm8
2395	rorq	$4,%r13
2396	xorq	%rcx,%r14
2397	vpaddq	%xmm11,%xmm7,%xmm7
2398	andq	%r10,%r12
2399	xorq	%r10,%r13
2400	addq	112(%rsp),%rbx
2401	movq	%rcx,%r15
2402.byte	143,72,120,195,209,7
2403	xorq	%rax,%r12
2404	rorq	$6,%r14
2405	vpxor	%xmm9,%xmm8,%xmm8
2406	xorq	%rdx,%r15
2407	addq	%r12,%rbx
2408	rorq	$14,%r13
2409	andq	%r15,%rdi
2410.byte	143,104,120,195,222,3
2411	xorq	%rcx,%r14
2412	addq	%r13,%rbx
2413	vpxor	%xmm10,%xmm8,%xmm8
2414	xorq	%rdx,%rdi
2415	rorq	$28,%r14
2416	vpsrlq	$6,%xmm6,%xmm10
2417	addq	%rbx,%r9
2418	addq	%rdi,%rbx
2419	vpaddq	%xmm8,%xmm7,%xmm7
2420	movq	%r9,%r13
2421	addq	%rbx,%r14
2422.byte	143,72,120,195,203,42
2423	rorq	$23,%r13
2424	movq	%r14,%rbx
2425	vpxor	%xmm10,%xmm11,%xmm11
2426	movq	%r10,%r12
2427	rorq	$5,%r14
2428	xorq	%r9,%r13
2429	xorq	%r11,%r12
2430	vpxor	%xmm9,%xmm11,%xmm11
2431	rorq	$4,%r13
2432	xorq	%rbx,%r14
2433	andq	%r9,%r12
2434	xorq	%r9,%r13
2435	vpaddq	%xmm11,%xmm7,%xmm7
2436	addq	120(%rsp),%rax
2437	movq	%rbx,%rdi
2438	xorq	%r11,%r12
2439	rorq	$6,%r14
2440	vpaddq	96(%rbp),%xmm7,%xmm10
2441	xorq	%rcx,%rdi
2442	addq	%r12,%rax
2443	rorq	$14,%r13
2444	andq	%rdi,%r15
2445	xorq	%rbx,%r14
2446	addq	%r13,%rax
2447	xorq	%rcx,%r15
2448	rorq	$28,%r14
2449	addq	%rax,%r8
2450	addq	%r15,%rax
2451	movq	%r8,%r13
2452	addq	%rax,%r14
2453	vmovdqa	%xmm10,112(%rsp)
2454	cmpb	$0,135(%rbp)
2455	jne	.Lxop_00_47
2456	rorq	$23,%r13
2457	movq	%r14,%rax
2458	movq	%r9,%r12
2459	rorq	$5,%r14
2460	xorq	%r8,%r13
2461	xorq	%r10,%r12
2462	rorq	$4,%r13
2463	xorq	%rax,%r14
2464	andq	%r8,%r12
2465	xorq	%r8,%r13
2466	addq	0(%rsp),%r11
2467	movq	%rax,%r15
2468	xorq	%r10,%r12
2469	rorq	$6,%r14
2470	xorq	%rbx,%r15
2471	addq	%r12,%r11
2472	rorq	$14,%r13
2473	andq	%r15,%rdi
2474	xorq	%rax,%r14
2475	addq	%r13,%r11
2476	xorq	%rbx,%rdi
2477	rorq	$28,%r14
2478	addq	%r11,%rdx
2479	addq	%rdi,%r11
2480	movq	%rdx,%r13
2481	addq	%r11,%r14
2482	rorq	$23,%r13
2483	movq	%r14,%r11
2484	movq	%r8,%r12
2485	rorq	$5,%r14
2486	xorq	%rdx,%r13
2487	xorq	%r9,%r12
2488	rorq	$4,%r13
2489	xorq	%r11,%r14
2490	andq	%rdx,%r12
2491	xorq	%rdx,%r13
2492	addq	8(%rsp),%r10
2493	movq	%r11,%rdi
2494	xorq	%r9,%r12
2495	rorq	$6,%r14
2496	xorq	%rax,%rdi
2497	addq	%r12,%r10
2498	rorq	$14,%r13
2499	andq	%rdi,%r15
2500	xorq	%r11,%r14
2501	addq	%r13,%r10
2502	xorq	%rax,%r15
2503	rorq	$28,%r14
2504	addq	%r10,%rcx
2505	addq	%r15,%r10
2506	movq	%rcx,%r13
2507	addq	%r10,%r14
2508	rorq	$23,%r13
2509	movq	%r14,%r10
2510	movq	%rdx,%r12
2511	rorq	$5,%r14
2512	xorq	%rcx,%r13
2513	xorq	%r8,%r12
2514	rorq	$4,%r13
2515	xorq	%r10,%r14
2516	andq	%rcx,%r12
2517	xorq	%rcx,%r13
2518	addq	16(%rsp),%r9
2519	movq	%r10,%r15
2520	xorq	%r8,%r12
2521	rorq	$6,%r14
2522	xorq	%r11,%r15
2523	addq	%r12,%r9
2524	rorq	$14,%r13
2525	andq	%r15,%rdi
2526	xorq	%r10,%r14
2527	addq	%r13,%r9
2528	xorq	%r11,%rdi
2529	rorq	$28,%r14
2530	addq	%r9,%rbx
2531	addq	%rdi,%r9
2532	movq	%rbx,%r13
2533	addq	%r9,%r14
2534	rorq	$23,%r13
2535	movq	%r14,%r9
2536	movq	%rcx,%r12
2537	rorq	$5,%r14
2538	xorq	%rbx,%r13
2539	xorq	%rdx,%r12
2540	rorq	$4,%r13
2541	xorq	%r9,%r14
2542	andq	%rbx,%r12
2543	xorq	%rbx,%r13
2544	addq	24(%rsp),%r8
2545	movq	%r9,%rdi
2546	xorq	%rdx,%r12
2547	rorq	$6,%r14
2548	xorq	%r10,%rdi
2549	addq	%r12,%r8
2550	rorq	$14,%r13
2551	andq	%rdi,%r15
2552	xorq	%r9,%r14
2553	addq	%r13,%r8
2554	xorq	%r10,%r15
2555	rorq	$28,%r14
2556	addq	%r8,%rax
2557	addq	%r15,%r8
2558	movq	%rax,%r13
2559	addq	%r8,%r14
2560	rorq	$23,%r13
2561	movq	%r14,%r8
2562	movq	%rbx,%r12
2563	rorq	$5,%r14
2564	xorq	%rax,%r13
2565	xorq	%rcx,%r12
2566	rorq	$4,%r13
2567	xorq	%r8,%r14
2568	andq	%rax,%r12
2569	xorq	%rax,%r13
2570	addq	32(%rsp),%rdx
2571	movq	%r8,%r15
2572	xorq	%rcx,%r12
2573	rorq	$6,%r14
2574	xorq	%r9,%r15
2575	addq	%r12,%rdx
2576	rorq	$14,%r13
2577	andq	%r15,%rdi
2578	xorq	%r8,%r14
2579	addq	%r13,%rdx
2580	xorq	%r9,%rdi
2581	rorq	$28,%r14
2582	addq	%rdx,%r11
2583	addq	%rdi,%rdx
2584	movq	%r11,%r13
2585	addq	%rdx,%r14
2586	rorq	$23,%r13
2587	movq	%r14,%rdx
2588	movq	%rax,%r12
2589	rorq	$5,%r14
2590	xorq	%r11,%r13
2591	xorq	%rbx,%r12
2592	rorq	$4,%r13
2593	xorq	%rdx,%r14
2594	andq	%r11,%r12
2595	xorq	%r11,%r13
2596	addq	40(%rsp),%rcx
2597	movq	%rdx,%rdi
2598	xorq	%rbx,%r12
2599	rorq	$6,%r14
2600	xorq	%r8,%rdi
2601	addq	%r12,%rcx
2602	rorq	$14,%r13
2603	andq	%rdi,%r15
2604	xorq	%rdx,%r14
2605	addq	%r13,%rcx
2606	xorq	%r8,%r15
2607	rorq	$28,%r14
2608	addq	%rcx,%r10
2609	addq	%r15,%rcx
2610	movq	%r10,%r13
2611	addq	%rcx,%r14
2612	rorq	$23,%r13
2613	movq	%r14,%rcx
2614	movq	%r11,%r12
2615	rorq	$5,%r14
2616	xorq	%r10,%r13
2617	xorq	%rax,%r12
2618	rorq	$4,%r13
2619	xorq	%rcx,%r14
2620	andq	%r10,%r12
2621	xorq	%r10,%r13
2622	addq	48(%rsp),%rbx
2623	movq	%rcx,%r15
2624	xorq	%rax,%r12
2625	rorq	$6,%r14
2626	xorq	%rdx,%r15
2627	addq	%r12,%rbx
2628	rorq	$14,%r13
2629	andq	%r15,%rdi
2630	xorq	%rcx,%r14
2631	addq	%r13,%rbx
2632	xorq	%rdx,%rdi
2633	rorq	$28,%r14
2634	addq	%rbx,%r9
2635	addq	%rdi,%rbx
2636	movq	%r9,%r13
2637	addq	%rbx,%r14
2638	rorq	$23,%r13
2639	movq	%r14,%rbx
2640	movq	%r10,%r12
2641	rorq	$5,%r14
2642	xorq	%r9,%r13
2643	xorq	%r11,%r12
2644	rorq	$4,%r13
2645	xorq	%rbx,%r14
2646	andq	%r9,%r12
2647	xorq	%r9,%r13
2648	addq	56(%rsp),%rax
2649	movq	%rbx,%rdi
2650	xorq	%r11,%r12
2651	rorq	$6,%r14
2652	xorq	%rcx,%rdi
2653	addq	%r12,%rax
2654	rorq	$14,%r13
2655	andq	%rdi,%r15
2656	xorq	%rbx,%r14
2657	addq	%r13,%rax
2658	xorq	%rcx,%r15
2659	rorq	$28,%r14
2660	addq	%rax,%r8
2661	addq	%r15,%rax
2662	movq	%r8,%r13
2663	addq	%rax,%r14
2664	rorq	$23,%r13
2665	movq	%r14,%rax
2666	movq	%r9,%r12
2667	rorq	$5,%r14
2668	xorq	%r8,%r13
2669	xorq	%r10,%r12
2670	rorq	$4,%r13
2671	xorq	%rax,%r14
2672	andq	%r8,%r12
2673	xorq	%r8,%r13
2674	addq	64(%rsp),%r11
2675	movq	%rax,%r15
2676	xorq	%r10,%r12
2677	rorq	$6,%r14
2678	xorq	%rbx,%r15
2679	addq	%r12,%r11
2680	rorq	$14,%r13
2681	andq	%r15,%rdi
2682	xorq	%rax,%r14
2683	addq	%r13,%r11
2684	xorq	%rbx,%rdi
2685	rorq	$28,%r14
2686	addq	%r11,%rdx
2687	addq	%rdi,%r11
2688	movq	%rdx,%r13
2689	addq	%r11,%r14
2690	rorq	$23,%r13
2691	movq	%r14,%r11
2692	movq	%r8,%r12
2693	rorq	$5,%r14
2694	xorq	%rdx,%r13
2695	xorq	%r9,%r12
2696	rorq	$4,%r13
2697	xorq	%r11,%r14
2698	andq	%rdx,%r12
2699	xorq	%rdx,%r13
2700	addq	72(%rsp),%r10
2701	movq	%r11,%rdi
2702	xorq	%r9,%r12
2703	rorq	$6,%r14
2704	xorq	%rax,%rdi
2705	addq	%r12,%r10
2706	rorq	$14,%r13
2707	andq	%rdi,%r15
2708	xorq	%r11,%r14
2709	addq	%r13,%r10
2710	xorq	%rax,%r15
2711	rorq	$28,%r14
2712	addq	%r10,%rcx
2713	addq	%r15,%r10
2714	movq	%rcx,%r13
2715	addq	%r10,%r14
2716	rorq	$23,%r13
2717	movq	%r14,%r10
2718	movq	%rdx,%r12
2719	rorq	$5,%r14
2720	xorq	%rcx,%r13
2721	xorq	%r8,%r12
2722	rorq	$4,%r13
2723	xorq	%r10,%r14
2724	andq	%rcx,%r12
2725	xorq	%rcx,%r13
2726	addq	80(%rsp),%r9
2727	movq	%r10,%r15
2728	xorq	%r8,%r12
2729	rorq	$6,%r14
2730	xorq	%r11,%r15
2731	addq	%r12,%r9
2732	rorq	$14,%r13
2733	andq	%r15,%rdi
2734	xorq	%r10,%r14
2735	addq	%r13,%r9
2736	xorq	%r11,%rdi
2737	rorq	$28,%r14
2738	addq	%r9,%rbx
2739	addq	%rdi,%r9
2740	movq	%rbx,%r13
2741	addq	%r9,%r14
2742	rorq	$23,%r13
2743	movq	%r14,%r9
2744	movq	%rcx,%r12
2745	rorq	$5,%r14
2746	xorq	%rbx,%r13
2747	xorq	%rdx,%r12
2748	rorq	$4,%r13
2749	xorq	%r9,%r14
2750	andq	%rbx,%r12
2751	xorq	%rbx,%r13
2752	addq	88(%rsp),%r8
2753	movq	%r9,%rdi
2754	xorq	%rdx,%r12
2755	rorq	$6,%r14
2756	xorq	%r10,%rdi
2757	addq	%r12,%r8
2758	rorq	$14,%r13
2759	andq	%rdi,%r15
2760	xorq	%r9,%r14
2761	addq	%r13,%r8
2762	xorq	%r10,%r15
2763	rorq	$28,%r14
2764	addq	%r8,%rax
2765	addq	%r15,%r8
2766	movq	%rax,%r13
2767	addq	%r8,%r14
2768	rorq	$23,%r13
2769	movq	%r14,%r8
2770	movq	%rbx,%r12
2771	rorq	$5,%r14
2772	xorq	%rax,%r13
2773	xorq	%rcx,%r12
2774	rorq	$4,%r13
2775	xorq	%r8,%r14
2776	andq	%rax,%r12
2777	xorq	%rax,%r13
2778	addq	96(%rsp),%rdx
2779	movq	%r8,%r15
2780	xorq	%rcx,%r12
2781	rorq	$6,%r14
2782	xorq	%r9,%r15
2783	addq	%r12,%rdx
2784	rorq	$14,%r13
2785	andq	%r15,%rdi
2786	xorq	%r8,%r14
2787	addq	%r13,%rdx
2788	xorq	%r9,%rdi
2789	rorq	$28,%r14
2790	addq	%rdx,%r11
2791	addq	%rdi,%rdx
2792	movq	%r11,%r13
2793	addq	%rdx,%r14
2794	rorq	$23,%r13
2795	movq	%r14,%rdx
2796	movq	%rax,%r12
2797	rorq	$5,%r14
2798	xorq	%r11,%r13
2799	xorq	%rbx,%r12
2800	rorq	$4,%r13
2801	xorq	%rdx,%r14
2802	andq	%r11,%r12
2803	xorq	%r11,%r13
2804	addq	104(%rsp),%rcx
2805	movq	%rdx,%rdi
2806	xorq	%rbx,%r12
2807	rorq	$6,%r14
2808	xorq	%r8,%rdi
2809	addq	%r12,%rcx
2810	rorq	$14,%r13
2811	andq	%rdi,%r15
2812	xorq	%rdx,%r14
2813	addq	%r13,%rcx
2814	xorq	%r8,%r15
2815	rorq	$28,%r14
2816	addq	%rcx,%r10
2817	addq	%r15,%rcx
2818	movq	%r10,%r13
2819	addq	%rcx,%r14
2820	rorq	$23,%r13
2821	movq	%r14,%rcx
2822	movq	%r11,%r12
2823	rorq	$5,%r14
2824	xorq	%r10,%r13
2825	xorq	%rax,%r12
2826	rorq	$4,%r13
2827	xorq	%rcx,%r14
2828	andq	%r10,%r12
2829	xorq	%r10,%r13
2830	addq	112(%rsp),%rbx
2831	movq	%rcx,%r15
2832	xorq	%rax,%r12
2833	rorq	$6,%r14
2834	xorq	%rdx,%r15
2835	addq	%r12,%rbx
2836	rorq	$14,%r13
2837	andq	%r15,%rdi
2838	xorq	%rcx,%r14
2839	addq	%r13,%rbx
2840	xorq	%rdx,%rdi
2841	rorq	$28,%r14
2842	addq	%rbx,%r9
2843	addq	%rdi,%rbx
2844	movq	%r9,%r13
2845	addq	%rbx,%r14
2846	rorq	$23,%r13
2847	movq	%r14,%rbx
2848	movq	%r10,%r12
2849	rorq	$5,%r14
2850	xorq	%r9,%r13
2851	xorq	%r11,%r12
2852	rorq	$4,%r13
2853	xorq	%rbx,%r14
2854	andq	%r9,%r12
2855	xorq	%r9,%r13
2856	addq	120(%rsp),%rax
2857	movq	%rbx,%rdi
2858	xorq	%r11,%r12
2859	rorq	$6,%r14
2860	xorq	%rcx,%rdi
2861	addq	%r12,%rax
2862	rorq	$14,%r13
2863	andq	%rdi,%r15
2864	xorq	%rbx,%r14
2865	addq	%r13,%rax
2866	xorq	%rcx,%r15
2867	rorq	$28,%r14
2868	addq	%rax,%r8
2869	addq	%r15,%rax
2870	movq	%r8,%r13
2871	addq	%rax,%r14
2872	movq	128+0(%rsp),%rdi
2873	movq	%r14,%rax
2874
2875	addq	0(%rdi),%rax
2876	leaq	128(%rsi),%rsi
2877	addq	8(%rdi),%rbx
2878	addq	16(%rdi),%rcx
2879	addq	24(%rdi),%rdx
2880	addq	32(%rdi),%r8
2881	addq	40(%rdi),%r9
2882	addq	48(%rdi),%r10
2883	addq	56(%rdi),%r11
2884
2885	cmpq	128+16(%rsp),%rsi
2886
2887	movq	%rax,0(%rdi)
2888	movq	%rbx,8(%rdi)
2889	movq	%rcx,16(%rdi)
2890	movq	%rdx,24(%rdi)
2891	movq	%r8,32(%rdi)
2892	movq	%r9,40(%rdi)
2893	movq	%r10,48(%rdi)
2894	movq	%r11,56(%rdi)
2895	jb	.Lloop_xop
2896
2897	movq	152(%rsp),%rsi
2898.cfi_def_cfa	%rsi,8
2899	vzeroupper
2900	movq	-48(%rsi),%r15
2901.cfi_restore	%r15
2902	movq	-40(%rsi),%r14
2903.cfi_restore	%r14
2904	movq	-32(%rsi),%r13
2905.cfi_restore	%r13
2906	movq	-24(%rsi),%r12
2907.cfi_restore	%r12
2908	movq	-16(%rsi),%rbp
2909.cfi_restore	%rbp
2910	movq	-8(%rsi),%rbx
2911.cfi_restore	%rbx
2912	leaq	(%rsi),%rsp
2913.cfi_def_cfa_register	%rsp
2914.Lepilogue_xop:
2915	.byte	0xf3,0xc3
2916.cfi_endproc
2917.size	sha512_block_data_order_xop,.-sha512_block_data_order_xop
2918.type	sha512_block_data_order_avx,@function
2919.align	64
2920sha512_block_data_order_avx:
2921.cfi_startproc
2922.Lavx_shortcut:
2923	movq	%rsp,%rax
2924.cfi_def_cfa_register	%rax
2925	pushq	%rbx
2926.cfi_offset	%rbx,-16
2927	pushq	%rbp
2928.cfi_offset	%rbp,-24
2929	pushq	%r12
2930.cfi_offset	%r12,-32
2931	pushq	%r13
2932.cfi_offset	%r13,-40
2933	pushq	%r14
2934.cfi_offset	%r14,-48
2935	pushq	%r15
2936.cfi_offset	%r15,-56
2937	shlq	$4,%rdx
2938	subq	$160,%rsp
2939	leaq	(%rsi,%rdx,8),%rdx
2940	andq	$-64,%rsp
2941	movq	%rdi,128+0(%rsp)
2942	movq	%rsi,128+8(%rsp)
2943	movq	%rdx,128+16(%rsp)
2944	movq	%rax,152(%rsp)
2945.cfi_escape	0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
2946.Lprologue_avx:
2947
2948	vzeroupper
2949	movq	0(%rdi),%rax
2950	movq	8(%rdi),%rbx
2951	movq	16(%rdi),%rcx
2952	movq	24(%rdi),%rdx
2953	movq	32(%rdi),%r8
2954	movq	40(%rdi),%r9
2955	movq	48(%rdi),%r10
2956	movq	56(%rdi),%r11
2957	jmp	.Lloop_avx
2958.align	16
2959.Lloop_avx:
2960	vmovdqa	K512+1280(%rip),%xmm11
2961	vmovdqu	0(%rsi),%xmm0
2962	leaq	K512+128(%rip),%rbp
2963	vmovdqu	16(%rsi),%xmm1
2964	vmovdqu	32(%rsi),%xmm2
2965	vpshufb	%xmm11,%xmm0,%xmm0
2966	vmovdqu	48(%rsi),%xmm3
2967	vpshufb	%xmm11,%xmm1,%xmm1
2968	vmovdqu	64(%rsi),%xmm4
2969	vpshufb	%xmm11,%xmm2,%xmm2
2970	vmovdqu	80(%rsi),%xmm5
2971	vpshufb	%xmm11,%xmm3,%xmm3
2972	vmovdqu	96(%rsi),%xmm6
2973	vpshufb	%xmm11,%xmm4,%xmm4
2974	vmovdqu	112(%rsi),%xmm7
2975	vpshufb	%xmm11,%xmm5,%xmm5
2976	vpaddq	-128(%rbp),%xmm0,%xmm8
2977	vpshufb	%xmm11,%xmm6,%xmm6
2978	vpaddq	-96(%rbp),%xmm1,%xmm9
2979	vpshufb	%xmm11,%xmm7,%xmm7
2980	vpaddq	-64(%rbp),%xmm2,%xmm10
2981	vpaddq	-32(%rbp),%xmm3,%xmm11
2982	vmovdqa	%xmm8,0(%rsp)
2983	vpaddq	0(%rbp),%xmm4,%xmm8
2984	vmovdqa	%xmm9,16(%rsp)
2985	vpaddq	32(%rbp),%xmm5,%xmm9
2986	vmovdqa	%xmm10,32(%rsp)
2987	vpaddq	64(%rbp),%xmm6,%xmm10
2988	vmovdqa	%xmm11,48(%rsp)
2989	vpaddq	96(%rbp),%xmm7,%xmm11
2990	vmovdqa	%xmm8,64(%rsp)
2991	movq	%rax,%r14
2992	vmovdqa	%xmm9,80(%rsp)
2993	movq	%rbx,%rdi
2994	vmovdqa	%xmm10,96(%rsp)
2995	xorq	%rcx,%rdi
2996	vmovdqa	%xmm11,112(%rsp)
2997	movq	%r8,%r13
2998	jmp	.Lavx_00_47
2999
3000.align	16
3001.Lavx_00_47:
3002	addq	$256,%rbp
3003	vpalignr	$8,%xmm0,%xmm1,%xmm8
3004	shrdq	$23,%r13,%r13
3005	movq	%r14,%rax
3006	vpalignr	$8,%xmm4,%xmm5,%xmm11
3007	movq	%r9,%r12
3008	shrdq	$5,%r14,%r14
3009	vpsrlq	$1,%xmm8,%xmm10
3010	xorq	%r8,%r13
3011	xorq	%r10,%r12
3012	vpaddq	%xmm11,%xmm0,%xmm0
3013	shrdq	$4,%r13,%r13
3014	xorq	%rax,%r14
3015	vpsrlq	$7,%xmm8,%xmm11
3016	andq	%r8,%r12
3017	xorq	%r8,%r13
3018	vpsllq	$56,%xmm8,%xmm9
3019	addq	0(%rsp),%r11
3020	movq	%rax,%r15
3021	vpxor	%xmm10,%xmm11,%xmm8
3022	xorq	%r10,%r12
3023	shrdq	$6,%r14,%r14
3024	vpsrlq	$7,%xmm10,%xmm10
3025	xorq	%rbx,%r15
3026	addq	%r12,%r11
3027	vpxor	%xmm9,%xmm8,%xmm8
3028	shrdq	$14,%r13,%r13
3029	andq	%r15,%rdi
3030	vpsllq	$7,%xmm9,%xmm9
3031	xorq	%rax,%r14
3032	addq	%r13,%r11
3033	vpxor	%xmm10,%xmm8,%xmm8
3034	xorq	%rbx,%rdi
3035	shrdq	$28,%r14,%r14
3036	vpsrlq	$6,%xmm7,%xmm11
3037	addq	%r11,%rdx
3038	addq	%rdi,%r11
3039	vpxor	%xmm9,%xmm8,%xmm8
3040	movq	%rdx,%r13
3041	addq	%r11,%r14
3042	vpsllq	$3,%xmm7,%xmm10
3043	shrdq	$23,%r13,%r13
3044	movq	%r14,%r11
3045	vpaddq	%xmm8,%xmm0,%xmm0
3046	movq	%r8,%r12
3047	shrdq	$5,%r14,%r14
3048	vpsrlq	$19,%xmm7,%xmm9
3049	xorq	%rdx,%r13
3050	xorq	%r9,%r12
3051	vpxor	%xmm10,%xmm11,%xmm11
3052	shrdq	$4,%r13,%r13
3053	xorq	%r11,%r14
3054	vpsllq	$42,%xmm10,%xmm10
3055	andq	%rdx,%r12
3056	xorq	%rdx,%r13
3057	vpxor	%xmm9,%xmm11,%xmm11
3058	addq	8(%rsp),%r10
3059	movq	%r11,%rdi
3060	vpsrlq	$42,%xmm9,%xmm9
3061	xorq	%r9,%r12
3062	shrdq	$6,%r14,%r14
3063	vpxor	%xmm10,%xmm11,%xmm11
3064	xorq	%rax,%rdi
3065	addq	%r12,%r10
3066	vpxor	%xmm9,%xmm11,%xmm11
3067	shrdq	$14,%r13,%r13
3068	andq	%rdi,%r15
3069	vpaddq	%xmm11,%xmm0,%xmm0
3070	xorq	%r11,%r14
3071	addq	%r13,%r10
3072	vpaddq	-128(%rbp),%xmm0,%xmm10
3073	xorq	%rax,%r15
3074	shrdq	$28,%r14,%r14
3075	addq	%r10,%rcx
3076	addq	%r15,%r10
3077	movq	%rcx,%r13
3078	addq	%r10,%r14
3079	vmovdqa	%xmm10,0(%rsp)
3080	vpalignr	$8,%xmm1,%xmm2,%xmm8
3081	shrdq	$23,%r13,%r13
3082	movq	%r14,%r10
3083	vpalignr	$8,%xmm5,%xmm6,%xmm11
3084	movq	%rdx,%r12
3085	shrdq	$5,%r14,%r14
3086	vpsrlq	$1,%xmm8,%xmm10
3087	xorq	%rcx,%r13
3088	xorq	%r8,%r12
3089	vpaddq	%xmm11,%xmm1,%xmm1
3090	shrdq	$4,%r13,%r13
3091	xorq	%r10,%r14
3092	vpsrlq	$7,%xmm8,%xmm11
3093	andq	%rcx,%r12
3094	xorq	%rcx,%r13
3095	vpsllq	$56,%xmm8,%xmm9
3096	addq	16(%rsp),%r9
3097	movq	%r10,%r15
3098	vpxor	%xmm10,%xmm11,%xmm8
3099	xorq	%r8,%r12
3100	shrdq	$6,%r14,%r14
3101	vpsrlq	$7,%xmm10,%xmm10
3102	xorq	%r11,%r15
3103	addq	%r12,%r9
3104	vpxor	%xmm9,%xmm8,%xmm8
3105	shrdq	$14,%r13,%r13
3106	andq	%r15,%rdi
3107	vpsllq	$7,%xmm9,%xmm9
3108	xorq	%r10,%r14
3109	addq	%r13,%r9
3110	vpxor	%xmm10,%xmm8,%xmm8
3111	xorq	%r11,%rdi
3112	shrdq	$28,%r14,%r14
3113	vpsrlq	$6,%xmm0,%xmm11
3114	addq	%r9,%rbx
3115	addq	%rdi,%r9
3116	vpxor	%xmm9,%xmm8,%xmm8
3117	movq	%rbx,%r13
3118	addq	%r9,%r14
3119	vpsllq	$3,%xmm0,%xmm10
3120	shrdq	$23,%r13,%r13
3121	movq	%r14,%r9
3122	vpaddq	%xmm8,%xmm1,%xmm1
3123	movq	%rcx,%r12
3124	shrdq	$5,%r14,%r14
3125	vpsrlq	$19,%xmm0,%xmm9
3126	xorq	%rbx,%r13
3127	xorq	%rdx,%r12
3128	vpxor	%xmm10,%xmm11,%xmm11
3129	shrdq	$4,%r13,%r13
3130	xorq	%r9,%r14
3131	vpsllq	$42,%xmm10,%xmm10
3132	andq	%rbx,%r12
3133	xorq	%rbx,%r13
3134	vpxor	%xmm9,%xmm11,%xmm11
3135	addq	24(%rsp),%r8
3136	movq	%r9,%rdi
3137	vpsrlq	$42,%xmm9,%xmm9
3138	xorq	%rdx,%r12
3139	shrdq	$6,%r14,%r14
3140	vpxor	%xmm10,%xmm11,%xmm11
3141	xorq	%r10,%rdi
3142	addq	%r12,%r8
3143	vpxor	%xmm9,%xmm11,%xmm11
3144	shrdq	$14,%r13,%r13
3145	andq	%rdi,%r15
3146	vpaddq	%xmm11,%xmm1,%xmm1
3147	xorq	%r9,%r14
3148	addq	%r13,%r8
3149	vpaddq	-96(%rbp),%xmm1,%xmm10
3150	xorq	%r10,%r15
3151	shrdq	$28,%r14,%r14
3152	addq	%r8,%rax
3153	addq	%r15,%r8
3154	movq	%rax,%r13
3155	addq	%r8,%r14
3156	vmovdqa	%xmm10,16(%rsp)
3157	vpalignr	$8,%xmm2,%xmm3,%xmm8
3158	shrdq	$23,%r13,%r13
3159	movq	%r14,%r8
3160	vpalignr	$8,%xmm6,%xmm7,%xmm11
3161	movq	%rbx,%r12
3162	shrdq	$5,%r14,%r14
3163	vpsrlq	$1,%xmm8,%xmm10
3164	xorq	%rax,%r13
3165	xorq	%rcx,%r12
3166	vpaddq	%xmm11,%xmm2,%xmm2
3167	shrdq	$4,%r13,%r13
3168	xorq	%r8,%r14
3169	vpsrlq	$7,%xmm8,%xmm11
3170	andq	%rax,%r12
3171	xorq	%rax,%r13
3172	vpsllq	$56,%xmm8,%xmm9
3173	addq	32(%rsp),%rdx
3174	movq	%r8,%r15
3175	vpxor	%xmm10,%xmm11,%xmm8
3176	xorq	%rcx,%r12
3177	shrdq	$6,%r14,%r14
3178	vpsrlq	$7,%xmm10,%xmm10
3179	xorq	%r9,%r15
3180	addq	%r12,%rdx
3181	vpxor	%xmm9,%xmm8,%xmm8
3182	shrdq	$14,%r13,%r13
3183	andq	%r15,%rdi
3184	vpsllq	$7,%xmm9,%xmm9
3185	xorq	%r8,%r14
3186	addq	%r13,%rdx
3187	vpxor	%xmm10,%xmm8,%xmm8
3188	xorq	%r9,%rdi
3189	shrdq	$28,%r14,%r14
3190	vpsrlq	$6,%xmm1,%xmm11
3191	addq	%rdx,%r11
3192	addq	%rdi,%rdx
3193	vpxor	%xmm9,%xmm8,%xmm8
3194	movq	%r11,%r13
3195	addq	%rdx,%r14
3196	vpsllq	$3,%xmm1,%xmm10
3197	shrdq	$23,%r13,%r13
3198	movq	%r14,%rdx
3199	vpaddq	%xmm8,%xmm2,%xmm2
3200	movq	%rax,%r12
3201	shrdq	$5,%r14,%r14
3202	vpsrlq	$19,%xmm1,%xmm9
3203	xorq	%r11,%r13
3204	xorq	%rbx,%r12
3205	vpxor	%xmm10,%xmm11,%xmm11
3206	shrdq	$4,%r13,%r13
3207	xorq	%rdx,%r14
3208	vpsllq	$42,%xmm10,%xmm10
3209	andq	%r11,%r12
3210	xorq	%r11,%r13
3211	vpxor	%xmm9,%xmm11,%xmm11
3212	addq	40(%rsp),%rcx
3213	movq	%rdx,%rdi
3214	vpsrlq	$42,%xmm9,%xmm9
3215	xorq	%rbx,%r12
3216	shrdq	$6,%r14,%r14
3217	vpxor	%xmm10,%xmm11,%xmm11
3218	xorq	%r8,%rdi
3219	addq	%r12,%rcx
3220	vpxor	%xmm9,%xmm11,%xmm11
3221	shrdq	$14,%r13,%r13
3222	andq	%rdi,%r15
3223	vpaddq	%xmm11,%xmm2,%xmm2
3224	xorq	%rdx,%r14
3225	addq	%r13,%rcx
3226	vpaddq	-64(%rbp),%xmm2,%xmm10
3227	xorq	%r8,%r15
3228	shrdq	$28,%r14,%r14
3229	addq	%rcx,%r10
3230	addq	%r15,%rcx
3231	movq	%r10,%r13
3232	addq	%rcx,%r14
3233	vmovdqa	%xmm10,32(%rsp)
3234	vpalignr	$8,%xmm3,%xmm4,%xmm8
3235	shrdq	$23,%r13,%r13
3236	movq	%r14,%rcx
3237	vpalignr	$8,%xmm7,%xmm0,%xmm11
3238	movq	%r11,%r12
3239	shrdq	$5,%r14,%r14
3240	vpsrlq	$1,%xmm8,%xmm10
3241	xorq	%r10,%r13
3242	xorq	%rax,%r12
3243	vpaddq	%xmm11,%xmm3,%xmm3
3244	shrdq	$4,%r13,%r13
3245	xorq	%rcx,%r14
3246	vpsrlq	$7,%xmm8,%xmm11
3247	andq	%r10,%r12
3248	xorq	%r10,%r13
3249	vpsllq	$56,%xmm8,%xmm9
3250	addq	48(%rsp),%rbx
3251	movq	%rcx,%r15
3252	vpxor	%xmm10,%xmm11,%xmm8
3253	xorq	%rax,%r12
3254	shrdq	$6,%r14,%r14
3255	vpsrlq	$7,%xmm10,%xmm10
3256	xorq	%rdx,%r15
3257	addq	%r12,%rbx
3258	vpxor	%xmm9,%xmm8,%xmm8
3259	shrdq	$14,%r13,%r13
3260	andq	%r15,%rdi
3261	vpsllq	$7,%xmm9,%xmm9
3262	xorq	%rcx,%r14
3263	addq	%r13,%rbx
3264	vpxor	%xmm10,%xmm8,%xmm8
3265	xorq	%rdx,%rdi
3266	shrdq	$28,%r14,%r14
3267	vpsrlq	$6,%xmm2,%xmm11
3268	addq	%rbx,%r9
3269	addq	%rdi,%rbx
3270	vpxor	%xmm9,%xmm8,%xmm8
3271	movq	%r9,%r13
3272	addq	%rbx,%r14
3273	vpsllq	$3,%xmm2,%xmm10
3274	shrdq	$23,%r13,%r13
3275	movq	%r14,%rbx
3276	vpaddq	%xmm8,%xmm3,%xmm3
3277	movq	%r10,%r12
3278	shrdq	$5,%r14,%r14
3279	vpsrlq	$19,%xmm2,%xmm9
3280	xorq	%r9,%r13
3281	xorq	%r11,%r12
3282	vpxor	%xmm10,%xmm11,%xmm11
3283	shrdq	$4,%r13,%r13
3284	xorq	%rbx,%r14
3285	vpsllq	$42,%xmm10,%xmm10
3286	andq	%r9,%r12
3287	xorq	%r9,%r13
3288	vpxor	%xmm9,%xmm11,%xmm11
3289	addq	56(%rsp),%rax
3290	movq	%rbx,%rdi
3291	vpsrlq	$42,%xmm9,%xmm9
3292	xorq	%r11,%r12
3293	shrdq	$6,%r14,%r14
3294	vpxor	%xmm10,%xmm11,%xmm11
3295	xorq	%rcx,%rdi
3296	addq	%r12,%rax
3297	vpxor	%xmm9,%xmm11,%xmm11
3298	shrdq	$14,%r13,%r13
3299	andq	%rdi,%r15
3300	vpaddq	%xmm11,%xmm3,%xmm3
3301	xorq	%rbx,%r14
3302	addq	%r13,%rax
3303	vpaddq	-32(%rbp),%xmm3,%xmm10
3304	xorq	%rcx,%r15
3305	shrdq	$28,%r14,%r14
3306	addq	%rax,%r8
3307	addq	%r15,%rax
3308	movq	%r8,%r13
3309	addq	%rax,%r14
3310	vmovdqa	%xmm10,48(%rsp)
3311	vpalignr	$8,%xmm4,%xmm5,%xmm8
3312	shrdq	$23,%r13,%r13
3313	movq	%r14,%rax
3314	vpalignr	$8,%xmm0,%xmm1,%xmm11
3315	movq	%r9,%r12
3316	shrdq	$5,%r14,%r14
3317	vpsrlq	$1,%xmm8,%xmm10
3318	xorq	%r8,%r13
3319	xorq	%r10,%r12
3320	vpaddq	%xmm11,%xmm4,%xmm4
3321	shrdq	$4,%r13,%r13
3322	xorq	%rax,%r14
3323	vpsrlq	$7,%xmm8,%xmm11
3324	andq	%r8,%r12
3325	xorq	%r8,%r13
3326	vpsllq	$56,%xmm8,%xmm9
3327	addq	64(%rsp),%r11
3328	movq	%rax,%r15
3329	vpxor	%xmm10,%xmm11,%xmm8
3330	xorq	%r10,%r12
3331	shrdq	$6,%r14,%r14
3332	vpsrlq	$7,%xmm10,%xmm10
3333	xorq	%rbx,%r15
3334	addq	%r12,%r11
3335	vpxor	%xmm9,%xmm8,%xmm8
3336	shrdq	$14,%r13,%r13
3337	andq	%r15,%rdi
3338	vpsllq	$7,%xmm9,%xmm9
3339	xorq	%rax,%r14
3340	addq	%r13,%r11
3341	vpxor	%xmm10,%xmm8,%xmm8
3342	xorq	%rbx,%rdi
3343	shrdq	$28,%r14,%r14
3344	vpsrlq	$6,%xmm3,%xmm11
3345	addq	%r11,%rdx
3346	addq	%rdi,%r11
3347	vpxor	%xmm9,%xmm8,%xmm8
3348	movq	%rdx,%r13
3349	addq	%r11,%r14
3350	vpsllq	$3,%xmm3,%xmm10
3351	shrdq	$23,%r13,%r13
3352	movq	%r14,%r11
3353	vpaddq	%xmm8,%xmm4,%xmm4
3354	movq	%r8,%r12
3355	shrdq	$5,%r14,%r14
3356	vpsrlq	$19,%xmm3,%xmm9
3357	xorq	%rdx,%r13
3358	xorq	%r9,%r12
3359	vpxor	%xmm10,%xmm11,%xmm11
3360	shrdq	$4,%r13,%r13
3361	xorq	%r11,%r14
3362	vpsllq	$42,%xmm10,%xmm10
3363	andq	%rdx,%r12
3364	xorq	%rdx,%r13
3365	vpxor	%xmm9,%xmm11,%xmm11
3366	addq	72(%rsp),%r10
3367	movq	%r11,%rdi
3368	vpsrlq	$42,%xmm9,%xmm9
3369	xorq	%r9,%r12
3370	shrdq	$6,%r14,%r14
3371	vpxor	%xmm10,%xmm11,%xmm11
3372	xorq	%rax,%rdi
3373	addq	%r12,%r10
3374	vpxor	%xmm9,%xmm11,%xmm11
3375	shrdq	$14,%r13,%r13
3376	andq	%rdi,%r15
3377	vpaddq	%xmm11,%xmm4,%xmm4
3378	xorq	%r11,%r14
3379	addq	%r13,%r10
3380	vpaddq	0(%rbp),%xmm4,%xmm10
3381	xorq	%rax,%r15
3382	shrdq	$28,%r14,%r14
3383	addq	%r10,%rcx
3384	addq	%r15,%r10
3385	movq	%rcx,%r13
3386	addq	%r10,%r14
3387	vmovdqa	%xmm10,64(%rsp)
3388	vpalignr	$8,%xmm5,%xmm6,%xmm8
3389	shrdq	$23,%r13,%r13
3390	movq	%r14,%r10
3391	vpalignr	$8,%xmm1,%xmm2,%xmm11
3392	movq	%rdx,%r12
3393	shrdq	$5,%r14,%r14
3394	vpsrlq	$1,%xmm8,%xmm10
3395	xorq	%rcx,%r13
3396	xorq	%r8,%r12
3397	vpaddq	%xmm11,%xmm5,%xmm5
3398	shrdq	$4,%r13,%r13
3399	xorq	%r10,%r14
3400	vpsrlq	$7,%xmm8,%xmm11
3401	andq	%rcx,%r12
3402	xorq	%rcx,%r13
3403	vpsllq	$56,%xmm8,%xmm9
3404	addq	80(%rsp),%r9
3405	movq	%r10,%r15
3406	vpxor	%xmm10,%xmm11,%xmm8
3407	xorq	%r8,%r12
3408	shrdq	$6,%r14,%r14
3409	vpsrlq	$7,%xmm10,%xmm10
3410	xorq	%r11,%r15
3411	addq	%r12,%r9
3412	vpxor	%xmm9,%xmm8,%xmm8
3413	shrdq	$14,%r13,%r13
3414	andq	%r15,%rdi
3415	vpsllq	$7,%xmm9,%xmm9
3416	xorq	%r10,%r14
3417	addq	%r13,%r9
3418	vpxor	%xmm10,%xmm8,%xmm8
3419	xorq	%r11,%rdi
3420	shrdq	$28,%r14,%r14
3421	vpsrlq	$6,%xmm4,%xmm11
3422	addq	%r9,%rbx
3423	addq	%rdi,%r9
3424	vpxor	%xmm9,%xmm8,%xmm8
3425	movq	%rbx,%r13
3426	addq	%r9,%r14
3427	vpsllq	$3,%xmm4,%xmm10
3428	shrdq	$23,%r13,%r13
3429	movq	%r14,%r9
3430	vpaddq	%xmm8,%xmm5,%xmm5
3431	movq	%rcx,%r12
3432	shrdq	$5,%r14,%r14
3433	vpsrlq	$19,%xmm4,%xmm9
3434	xorq	%rbx,%r13
3435	xorq	%rdx,%r12
3436	vpxor	%xmm10,%xmm11,%xmm11
3437	shrdq	$4,%r13,%r13
3438	xorq	%r9,%r14
3439	vpsllq	$42,%xmm10,%xmm10
3440	andq	%rbx,%r12
3441	xorq	%rbx,%r13
3442	vpxor	%xmm9,%xmm11,%xmm11
3443	addq	88(%rsp),%r8
3444	movq	%r9,%rdi
3445	vpsrlq	$42,%xmm9,%xmm9
3446	xorq	%rdx,%r12
3447	shrdq	$6,%r14,%r14
3448	vpxor	%xmm10,%xmm11,%xmm11
3449	xorq	%r10,%rdi
3450	addq	%r12,%r8
3451	vpxor	%xmm9,%xmm11,%xmm11
3452	shrdq	$14,%r13,%r13
3453	andq	%rdi,%r15
3454	vpaddq	%xmm11,%xmm5,%xmm5
3455	xorq	%r9,%r14
3456	addq	%r13,%r8
3457	vpaddq	32(%rbp),%xmm5,%xmm10
3458	xorq	%r10,%r15
3459	shrdq	$28,%r14,%r14
3460	addq	%r8,%rax
3461	addq	%r15,%r8
3462	movq	%rax,%r13
3463	addq	%r8,%r14
3464	vmovdqa	%xmm10,80(%rsp)
3465	vpalignr	$8,%xmm6,%xmm7,%xmm8
3466	shrdq	$23,%r13,%r13
3467	movq	%r14,%r8
3468	vpalignr	$8,%xmm2,%xmm3,%xmm11
3469	movq	%rbx,%r12
3470	shrdq	$5,%r14,%r14
3471	vpsrlq	$1,%xmm8,%xmm10
3472	xorq	%rax,%r13
3473	xorq	%rcx,%r12
3474	vpaddq	%xmm11,%xmm6,%xmm6
3475	shrdq	$4,%r13,%r13
3476	xorq	%r8,%r14
3477	vpsrlq	$7,%xmm8,%xmm11
3478	andq	%rax,%r12
3479	xorq	%rax,%r13
3480	vpsllq	$56,%xmm8,%xmm9
3481	addq	96(%rsp),%rdx
3482	movq	%r8,%r15
3483	vpxor	%xmm10,%xmm11,%xmm8
3484	xorq	%rcx,%r12
3485	shrdq	$6,%r14,%r14
3486	vpsrlq	$7,%xmm10,%xmm10
3487	xorq	%r9,%r15
3488	addq	%r12,%rdx
3489	vpxor	%xmm9,%xmm8,%xmm8
3490	shrdq	$14,%r13,%r13
3491	andq	%r15,%rdi
3492	vpsllq	$7,%xmm9,%xmm9
3493	xorq	%r8,%r14
3494	addq	%r13,%rdx
3495	vpxor	%xmm10,%xmm8,%xmm8
3496	xorq	%r9,%rdi
3497	shrdq	$28,%r14,%r14
3498	vpsrlq	$6,%xmm5,%xmm11
3499	addq	%rdx,%r11
3500	addq	%rdi,%rdx
3501	vpxor	%xmm9,%xmm8,%xmm8
3502	movq	%r11,%r13
3503	addq	%rdx,%r14
3504	vpsllq	$3,%xmm5,%xmm10
3505	shrdq	$23,%r13,%r13
3506	movq	%r14,%rdx
3507	vpaddq	%xmm8,%xmm6,%xmm6
3508	movq	%rax,%r12
3509	shrdq	$5,%r14,%r14
3510	vpsrlq	$19,%xmm5,%xmm9
3511	xorq	%r11,%r13
3512	xorq	%rbx,%r12
3513	vpxor	%xmm10,%xmm11,%xmm11
3514	shrdq	$4,%r13,%r13
3515	xorq	%rdx,%r14
3516	vpsllq	$42,%xmm10,%xmm10
3517	andq	%r11,%r12
3518	xorq	%r11,%r13
3519	vpxor	%xmm9,%xmm11,%xmm11
3520	addq	104(%rsp),%rcx
3521	movq	%rdx,%rdi
3522	vpsrlq	$42,%xmm9,%xmm9
3523	xorq	%rbx,%r12
3524	shrdq	$6,%r14,%r14
3525	vpxor	%xmm10,%xmm11,%xmm11
3526	xorq	%r8,%rdi
3527	addq	%r12,%rcx
3528	vpxor	%xmm9,%xmm11,%xmm11
3529	shrdq	$14,%r13,%r13
3530	andq	%rdi,%r15
3531	vpaddq	%xmm11,%xmm6,%xmm6
3532	xorq	%rdx,%r14
3533	addq	%r13,%rcx
3534	vpaddq	64(%rbp),%xmm6,%xmm10
3535	xorq	%r8,%r15
3536	shrdq	$28,%r14,%r14
3537	addq	%rcx,%r10
3538	addq	%r15,%rcx
3539	movq	%r10,%r13
3540	addq	%rcx,%r14
3541	vmovdqa	%xmm10,96(%rsp)
3542	vpalignr	$8,%xmm7,%xmm0,%xmm8
3543	shrdq	$23,%r13,%r13
3544	movq	%r14,%rcx
3545	vpalignr	$8,%xmm3,%xmm4,%xmm11
3546	movq	%r11,%r12
3547	shrdq	$5,%r14,%r14
3548	vpsrlq	$1,%xmm8,%xmm10
3549	xorq	%r10,%r13
3550	xorq	%rax,%r12
3551	vpaddq	%xmm11,%xmm7,%xmm7
3552	shrdq	$4,%r13,%r13
3553	xorq	%rcx,%r14
3554	vpsrlq	$7,%xmm8,%xmm11
3555	andq	%r10,%r12
3556	xorq	%r10,%r13
3557	vpsllq	$56,%xmm8,%xmm9
3558	addq	112(%rsp),%rbx
3559	movq	%rcx,%r15
3560	vpxor	%xmm10,%xmm11,%xmm8
3561	xorq	%rax,%r12
3562	shrdq	$6,%r14,%r14
3563	vpsrlq	$7,%xmm10,%xmm10
3564	xorq	%rdx,%r15
3565	addq	%r12,%rbx
3566	vpxor	%xmm9,%xmm8,%xmm8
3567	shrdq	$14,%r13,%r13
3568	andq	%r15,%rdi
3569	vpsllq	$7,%xmm9,%xmm9
3570	xorq	%rcx,%r14
3571	addq	%r13,%rbx
3572	vpxor	%xmm10,%xmm8,%xmm8
3573	xorq	%rdx,%rdi
3574	shrdq	$28,%r14,%r14
3575	vpsrlq	$6,%xmm6,%xmm11
3576	addq	%rbx,%r9
3577	addq	%rdi,%rbx
3578	vpxor	%xmm9,%xmm8,%xmm8
3579	movq	%r9,%r13
3580	addq	%rbx,%r14
3581	vpsllq	$3,%xmm6,%xmm10
3582	shrdq	$23,%r13,%r13
3583	movq	%r14,%rbx
3584	vpaddq	%xmm8,%xmm7,%xmm7
3585	movq	%r10,%r12
3586	shrdq	$5,%r14,%r14
3587	vpsrlq	$19,%xmm6,%xmm9
3588	xorq	%r9,%r13
3589	xorq	%r11,%r12
3590	vpxor	%xmm10,%xmm11,%xmm11
3591	shrdq	$4,%r13,%r13
3592	xorq	%rbx,%r14
3593	vpsllq	$42,%xmm10,%xmm10
3594	andq	%r9,%r12
3595	xorq	%r9,%r13
3596	vpxor	%xmm9,%xmm11,%xmm11
3597	addq	120(%rsp),%rax
3598	movq	%rbx,%rdi
3599	vpsrlq	$42,%xmm9,%xmm9
3600	xorq	%r11,%r12
3601	shrdq	$6,%r14,%r14
3602	vpxor	%xmm10,%xmm11,%xmm11
3603	xorq	%rcx,%rdi
3604	addq	%r12,%rax
3605	vpxor	%xmm9,%xmm11,%xmm11
3606	shrdq	$14,%r13,%r13
3607	andq	%rdi,%r15
3608	vpaddq	%xmm11,%xmm7,%xmm7
3609	xorq	%rbx,%r14
3610	addq	%r13,%rax
3611	vpaddq	96(%rbp),%xmm7,%xmm10
3612	xorq	%rcx,%r15
3613	shrdq	$28,%r14,%r14
3614	addq	%rax,%r8
3615	addq	%r15,%rax
3616	movq	%r8,%r13
3617	addq	%rax,%r14
3618	vmovdqa	%xmm10,112(%rsp)
3619	cmpb	$0,135(%rbp)
3620	jne	.Lavx_00_47
3621	shrdq	$23,%r13,%r13
3622	movq	%r14,%rax
3623	movq	%r9,%r12
3624	shrdq	$5,%r14,%r14
3625	xorq	%r8,%r13
3626	xorq	%r10,%r12
3627	shrdq	$4,%r13,%r13
3628	xorq	%rax,%r14
3629	andq	%r8,%r12
3630	xorq	%r8,%r13
3631	addq	0(%rsp),%r11
3632	movq	%rax,%r15
3633	xorq	%r10,%r12
3634	shrdq	$6,%r14,%r14
3635	xorq	%rbx,%r15
3636	addq	%r12,%r11
3637	shrdq	$14,%r13,%r13
3638	andq	%r15,%rdi
3639	xorq	%rax,%r14
3640	addq	%r13,%r11
3641	xorq	%rbx,%rdi
3642	shrdq	$28,%r14,%r14
3643	addq	%r11,%rdx
3644	addq	%rdi,%r11
3645	movq	%rdx,%r13
3646	addq	%r11,%r14
3647	shrdq	$23,%r13,%r13
3648	movq	%r14,%r11
3649	movq	%r8,%r12
3650	shrdq	$5,%r14,%r14
3651	xorq	%rdx,%r13
3652	xorq	%r9,%r12
3653	shrdq	$4,%r13,%r13
3654	xorq	%r11,%r14
3655	andq	%rdx,%r12
3656	xorq	%rdx,%r13
3657	addq	8(%rsp),%r10
3658	movq	%r11,%rdi
3659	xorq	%r9,%r12
3660	shrdq	$6,%r14,%r14
3661	xorq	%rax,%rdi
3662	addq	%r12,%r10
3663	shrdq	$14,%r13,%r13
3664	andq	%rdi,%r15
3665	xorq	%r11,%r14
3666	addq	%r13,%r10
3667	xorq	%rax,%r15
3668	shrdq	$28,%r14,%r14
3669	addq	%r10,%rcx
3670	addq	%r15,%r10
3671	movq	%rcx,%r13
3672	addq	%r10,%r14
3673	shrdq	$23,%r13,%r13
3674	movq	%r14,%r10
3675	movq	%rdx,%r12
3676	shrdq	$5,%r14,%r14
3677	xorq	%rcx,%r13
3678	xorq	%r8,%r12
3679	shrdq	$4,%r13,%r13
3680	xorq	%r10,%r14
3681	andq	%rcx,%r12
3682	xorq	%rcx,%r13
3683	addq	16(%rsp),%r9
3684	movq	%r10,%r15
3685	xorq	%r8,%r12
3686	shrdq	$6,%r14,%r14
3687	xorq	%r11,%r15
3688	addq	%r12,%r9
3689	shrdq	$14,%r13,%r13
3690	andq	%r15,%rdi
3691	xorq	%r10,%r14
3692	addq	%r13,%r9
3693	xorq	%r11,%rdi
3694	shrdq	$28,%r14,%r14
3695	addq	%r9,%rbx
3696	addq	%rdi,%r9
3697	movq	%rbx,%r13
3698	addq	%r9,%r14
3699	shrdq	$23,%r13,%r13
3700	movq	%r14,%r9
3701	movq	%rcx,%r12
3702	shrdq	$5,%r14,%r14
3703	xorq	%rbx,%r13
3704	xorq	%rdx,%r12
3705	shrdq	$4,%r13,%r13
3706	xorq	%r9,%r14
3707	andq	%rbx,%r12
3708	xorq	%rbx,%r13
3709	addq	24(%rsp),%r8
3710	movq	%r9,%rdi
3711	xorq	%rdx,%r12
3712	shrdq	$6,%r14,%r14
3713	xorq	%r10,%rdi
3714	addq	%r12,%r8
3715	shrdq	$14,%r13,%r13
3716	andq	%rdi,%r15
3717	xorq	%r9,%r14
3718	addq	%r13,%r8
3719	xorq	%r10,%r15
3720	shrdq	$28,%r14,%r14
3721	addq	%r8,%rax
3722	addq	%r15,%r8
3723	movq	%rax,%r13
3724	addq	%r8,%r14
3725	shrdq	$23,%r13,%r13
3726	movq	%r14,%r8
3727	movq	%rbx,%r12
3728	shrdq	$5,%r14,%r14
3729	xorq	%rax,%r13
3730	xorq	%rcx,%r12
3731	shrdq	$4,%r13,%r13
3732	xorq	%r8,%r14
3733	andq	%rax,%r12
3734	xorq	%rax,%r13
3735	addq	32(%rsp),%rdx
3736	movq	%r8,%r15
3737	xorq	%rcx,%r12
3738	shrdq	$6,%r14,%r14
3739	xorq	%r9,%r15
3740	addq	%r12,%rdx
3741	shrdq	$14,%r13,%r13
3742	andq	%r15,%rdi
3743	xorq	%r8,%r14
3744	addq	%r13,%rdx
3745	xorq	%r9,%rdi
3746	shrdq	$28,%r14,%r14
3747	addq	%rdx,%r11
3748	addq	%rdi,%rdx
3749	movq	%r11,%r13
3750	addq	%rdx,%r14
3751	shrdq	$23,%r13,%r13
3752	movq	%r14,%rdx
3753	movq	%rax,%r12
3754	shrdq	$5,%r14,%r14
3755	xorq	%r11,%r13
3756	xorq	%rbx,%r12
3757	shrdq	$4,%r13,%r13
3758	xorq	%rdx,%r14
3759	andq	%r11,%r12
3760	xorq	%r11,%r13
3761	addq	40(%rsp),%rcx
3762	movq	%rdx,%rdi
3763	xorq	%rbx,%r12
3764	shrdq	$6,%r14,%r14
3765	xorq	%r8,%rdi
3766	addq	%r12,%rcx
3767	shrdq	$14,%r13,%r13
3768	andq	%rdi,%r15
3769	xorq	%rdx,%r14
3770	addq	%r13,%rcx
3771	xorq	%r8,%r15
3772	shrdq	$28,%r14,%r14
3773	addq	%rcx,%r10
3774	addq	%r15,%rcx
3775	movq	%r10,%r13
3776	addq	%rcx,%r14
3777	shrdq	$23,%r13,%r13
3778	movq	%r14,%rcx
3779	movq	%r11,%r12
3780	shrdq	$5,%r14,%r14
3781	xorq	%r10,%r13
3782	xorq	%rax,%r12
3783	shrdq	$4,%r13,%r13
3784	xorq	%rcx,%r14
3785	andq	%r10,%r12
3786	xorq	%r10,%r13
3787	addq	48(%rsp),%rbx
3788	movq	%rcx,%r15
3789	xorq	%rax,%r12
3790	shrdq	$6,%r14,%r14
3791	xorq	%rdx,%r15
3792	addq	%r12,%rbx
3793	shrdq	$14,%r13,%r13
3794	andq	%r15,%rdi
3795	xorq	%rcx,%r14
3796	addq	%r13,%rbx
3797	xorq	%rdx,%rdi
3798	shrdq	$28,%r14,%r14
3799	addq	%rbx,%r9
3800	addq	%rdi,%rbx
3801	movq	%r9,%r13
3802	addq	%rbx,%r14
3803	shrdq	$23,%r13,%r13
3804	movq	%r14,%rbx
3805	movq	%r10,%r12
3806	shrdq	$5,%r14,%r14
3807	xorq	%r9,%r13
3808	xorq	%r11,%r12
3809	shrdq	$4,%r13,%r13
3810	xorq	%rbx,%r14
3811	andq	%r9,%r12
3812	xorq	%r9,%r13
3813	addq	56(%rsp),%rax
3814	movq	%rbx,%rdi
3815	xorq	%r11,%r12
3816	shrdq	$6,%r14,%r14
3817	xorq	%rcx,%rdi
3818	addq	%r12,%rax
3819	shrdq	$14,%r13,%r13
3820	andq	%rdi,%r15
3821	xorq	%rbx,%r14
3822	addq	%r13,%rax
3823	xorq	%rcx,%r15
3824	shrdq	$28,%r14,%r14
3825	addq	%rax,%r8
3826	addq	%r15,%rax
3827	movq	%r8,%r13
3828	addq	%rax,%r14
3829	shrdq	$23,%r13,%r13
3830	movq	%r14,%rax
3831	movq	%r9,%r12
3832	shrdq	$5,%r14,%r14
3833	xorq	%r8,%r13
3834	xorq	%r10,%r12
3835	shrdq	$4,%r13,%r13
3836	xorq	%rax,%r14
3837	andq	%r8,%r12
3838	xorq	%r8,%r13
3839	addq	64(%rsp),%r11
3840	movq	%rax,%r15
3841	xorq	%r10,%r12
3842	shrdq	$6,%r14,%r14
3843	xorq	%rbx,%r15
3844	addq	%r12,%r11
3845	shrdq	$14,%r13,%r13
3846	andq	%r15,%rdi
3847	xorq	%rax,%r14
3848	addq	%r13,%r11
3849	xorq	%rbx,%rdi
3850	shrdq	$28,%r14,%r14
3851	addq	%r11,%rdx
3852	addq	%rdi,%r11
3853	movq	%rdx,%r13
3854	addq	%r11,%r14
3855	shrdq	$23,%r13,%r13
3856	movq	%r14,%r11
3857	movq	%r8,%r12
3858	shrdq	$5,%r14,%r14
3859	xorq	%rdx,%r13
3860	xorq	%r9,%r12
3861	shrdq	$4,%r13,%r13
3862	xorq	%r11,%r14
3863	andq	%rdx,%r12
3864	xorq	%rdx,%r13
3865	addq	72(%rsp),%r10
3866	movq	%r11,%rdi
3867	xorq	%r9,%r12
3868	shrdq	$6,%r14,%r14
3869	xorq	%rax,%rdi
3870	addq	%r12,%r10
3871	shrdq	$14,%r13,%r13
3872	andq	%rdi,%r15
3873	xorq	%r11,%r14
3874	addq	%r13,%r10
3875	xorq	%rax,%r15
3876	shrdq	$28,%r14,%r14
3877	addq	%r10,%rcx
3878	addq	%r15,%r10
3879	movq	%rcx,%r13
3880	addq	%r10,%r14
3881	shrdq	$23,%r13,%r13
3882	movq	%r14,%r10
3883	movq	%rdx,%r12
3884	shrdq	$5,%r14,%r14
3885	xorq	%rcx,%r13
3886	xorq	%r8,%r12
3887	shrdq	$4,%r13,%r13
3888	xorq	%r10,%r14
3889	andq	%rcx,%r12
3890	xorq	%rcx,%r13
3891	addq	80(%rsp),%r9
3892	movq	%r10,%r15
3893	xorq	%r8,%r12
3894	shrdq	$6,%r14,%r14
3895	xorq	%r11,%r15
3896	addq	%r12,%r9
3897	shrdq	$14,%r13,%r13
3898	andq	%r15,%rdi
3899	xorq	%r10,%r14
3900	addq	%r13,%r9
3901	xorq	%r11,%rdi
3902	shrdq	$28,%r14,%r14
3903	addq	%r9,%rbx
3904	addq	%rdi,%r9
3905	movq	%rbx,%r13
3906	addq	%r9,%r14
3907	shrdq	$23,%r13,%r13
3908	movq	%r14,%r9
3909	movq	%rcx,%r12
3910	shrdq	$5,%r14,%r14
3911	xorq	%rbx,%r13
3912	xorq	%rdx,%r12
3913	shrdq	$4,%r13,%r13
3914	xorq	%r9,%r14
3915	andq	%rbx,%r12
3916	xorq	%rbx,%r13
3917	addq	88(%rsp),%r8
3918	movq	%r9,%rdi
3919	xorq	%rdx,%r12
3920	shrdq	$6,%r14,%r14
3921	xorq	%r10,%rdi
3922	addq	%r12,%r8
3923	shrdq	$14,%r13,%r13
3924	andq	%rdi,%r15
3925	xorq	%r9,%r14
3926	addq	%r13,%r8
3927	xorq	%r10,%r15
3928	shrdq	$28,%r14,%r14
3929	addq	%r8,%rax
3930	addq	%r15,%r8
3931	movq	%rax,%r13
3932	addq	%r8,%r14
3933	shrdq	$23,%r13,%r13
3934	movq	%r14,%r8
3935	movq	%rbx,%r12
3936	shrdq	$5,%r14,%r14
3937	xorq	%rax,%r13
3938	xorq	%rcx,%r12
3939	shrdq	$4,%r13,%r13
3940	xorq	%r8,%r14
3941	andq	%rax,%r12
3942	xorq	%rax,%r13
3943	addq	96(%rsp),%rdx
3944	movq	%r8,%r15
3945	xorq	%rcx,%r12
3946	shrdq	$6,%r14,%r14
3947	xorq	%r9,%r15
3948	addq	%r12,%rdx
3949	shrdq	$14,%r13,%r13
3950	andq	%r15,%rdi
3951	xorq	%r8,%r14
3952	addq	%r13,%rdx
3953	xorq	%r9,%rdi
3954	shrdq	$28,%r14,%r14
3955	addq	%rdx,%r11
3956	addq	%rdi,%rdx
3957	movq	%r11,%r13
3958	addq	%rdx,%r14
3959	shrdq	$23,%r13,%r13
3960	movq	%r14,%rdx
3961	movq	%rax,%r12
3962	shrdq	$5,%r14,%r14
3963	xorq	%r11,%r13
3964	xorq	%rbx,%r12
3965	shrdq	$4,%r13,%r13
3966	xorq	%rdx,%r14
3967	andq	%r11,%r12
3968	xorq	%r11,%r13
3969	addq	104(%rsp),%rcx
3970	movq	%rdx,%rdi
3971	xorq	%rbx,%r12
3972	shrdq	$6,%r14,%r14
3973	xorq	%r8,%rdi
3974	addq	%r12,%rcx
3975	shrdq	$14,%r13,%r13
3976	andq	%rdi,%r15
3977	xorq	%rdx,%r14
3978	addq	%r13,%rcx
3979	xorq	%r8,%r15
3980	shrdq	$28,%r14,%r14
3981	addq	%rcx,%r10
3982	addq	%r15,%rcx
3983	movq	%r10,%r13
3984	addq	%rcx,%r14
3985	shrdq	$23,%r13,%r13
3986	movq	%r14,%rcx
3987	movq	%r11,%r12
3988	shrdq	$5,%r14,%r14
3989	xorq	%r10,%r13
3990	xorq	%rax,%r12
3991	shrdq	$4,%r13,%r13
3992	xorq	%rcx,%r14
3993	andq	%r10,%r12
3994	xorq	%r10,%r13
3995	addq	112(%rsp),%rbx
3996	movq	%rcx,%r15
3997	xorq	%rax,%r12
3998	shrdq	$6,%r14,%r14
3999	xorq	%rdx,%r15
4000	addq	%r12,%rbx
4001	shrdq	$14,%r13,%r13
4002	andq	%r15,%rdi
4003	xorq	%rcx,%r14
4004	addq	%r13,%rbx
4005	xorq	%rdx,%rdi
4006	shrdq	$28,%r14,%r14
4007	addq	%rbx,%r9
4008	addq	%rdi,%rbx
4009	movq	%r9,%r13
4010	addq	%rbx,%r14
4011	shrdq	$23,%r13,%r13
4012	movq	%r14,%rbx
4013	movq	%r10,%r12
4014	shrdq	$5,%r14,%r14
4015	xorq	%r9,%r13
4016	xorq	%r11,%r12
4017	shrdq	$4,%r13,%r13
4018	xorq	%rbx,%r14
4019	andq	%r9,%r12
4020	xorq	%r9,%r13
4021	addq	120(%rsp),%rax
4022	movq	%rbx,%rdi
4023	xorq	%r11,%r12
4024	shrdq	$6,%r14,%r14
4025	xorq	%rcx,%rdi
4026	addq	%r12,%rax
4027	shrdq	$14,%r13,%r13
4028	andq	%rdi,%r15
4029	xorq	%rbx,%r14
4030	addq	%r13,%rax
4031	xorq	%rcx,%r15
4032	shrdq	$28,%r14,%r14
4033	addq	%rax,%r8
4034	addq	%r15,%rax
4035	movq	%r8,%r13
4036	addq	%rax,%r14
4037	movq	128+0(%rsp),%rdi
4038	movq	%r14,%rax
4039
4040	addq	0(%rdi),%rax
4041	leaq	128(%rsi),%rsi
4042	addq	8(%rdi),%rbx
4043	addq	16(%rdi),%rcx
4044	addq	24(%rdi),%rdx
4045	addq	32(%rdi),%r8
4046	addq	40(%rdi),%r9
4047	addq	48(%rdi),%r10
4048	addq	56(%rdi),%r11
4049
4050	cmpq	128+16(%rsp),%rsi
4051
4052	movq	%rax,0(%rdi)
4053	movq	%rbx,8(%rdi)
4054	movq	%rcx,16(%rdi)
4055	movq	%rdx,24(%rdi)
4056	movq	%r8,32(%rdi)
4057	movq	%r9,40(%rdi)
4058	movq	%r10,48(%rdi)
4059	movq	%r11,56(%rdi)
4060	jb	.Lloop_avx
4061
4062	movq	152(%rsp),%rsi
4063.cfi_def_cfa	%rsi,8
4064	vzeroupper
4065	movq	-48(%rsi),%r15
4066.cfi_restore	%r15
4067	movq	-40(%rsi),%r14
4068.cfi_restore	%r14
4069	movq	-32(%rsi),%r13
4070.cfi_restore	%r13
4071	movq	-24(%rsi),%r12
4072.cfi_restore	%r12
4073	movq	-16(%rsi),%rbp
4074.cfi_restore	%rbp
4075	movq	-8(%rsi),%rbx
4076.cfi_restore	%rbx
4077	leaq	(%rsi),%rsp
4078.cfi_def_cfa_register	%rsp
4079.Lepilogue_avx:
4080	.byte	0xf3,0xc3
4081.cfi_endproc
4082.size	sha512_block_data_order_avx,.-sha512_block_data_order_avx
4083.type	sha512_block_data_order_avx2,@function
4084.align	64
4085sha512_block_data_order_avx2:
4086.cfi_startproc
4087.Lavx2_shortcut:
4088	movq	%rsp,%rax
4089.cfi_def_cfa_register	%rax
4090	pushq	%rbx
4091.cfi_offset	%rbx,-16
4092	pushq	%rbp
4093.cfi_offset	%rbp,-24
4094	pushq	%r12
4095.cfi_offset	%r12,-32
4096	pushq	%r13
4097.cfi_offset	%r13,-40
4098	pushq	%r14
4099.cfi_offset	%r14,-48
4100	pushq	%r15
4101.cfi_offset	%r15,-56
4102	subq	$1312,%rsp
4103	shlq	$4,%rdx
4104	andq	$-2048,%rsp
4105	leaq	(%rsi,%rdx,8),%rdx
4106	addq	$1152,%rsp
4107	movq	%rdi,128+0(%rsp)
4108	movq	%rsi,128+8(%rsp)
4109	movq	%rdx,128+16(%rsp)
4110	movq	%rax,152(%rsp)
4111.cfi_escape	0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
4112.Lprologue_avx2:
4113
4114	vzeroupper
4115	subq	$-128,%rsi
4116	movq	0(%rdi),%rax
4117	movq	%rsi,%r12
4118	movq	8(%rdi),%rbx
4119	cmpq	%rdx,%rsi
4120	movq	16(%rdi),%rcx
4121	cmoveq	%rsp,%r12
4122	movq	24(%rdi),%rdx
4123	movq	32(%rdi),%r8
4124	movq	40(%rdi),%r9
4125	movq	48(%rdi),%r10
4126	movq	56(%rdi),%r11
4127	jmp	.Loop_avx2
4128.align	16
4129.Loop_avx2:
4130	vmovdqu	-128(%rsi),%xmm0
4131	vmovdqu	-128+16(%rsi),%xmm1
4132	vmovdqu	-128+32(%rsi),%xmm2
4133	leaq	K512+128(%rip),%rbp
4134	vmovdqu	-128+48(%rsi),%xmm3
4135	vmovdqu	-128+64(%rsi),%xmm4
4136	vmovdqu	-128+80(%rsi),%xmm5
4137	vmovdqu	-128+96(%rsi),%xmm6
4138	vmovdqu	-128+112(%rsi),%xmm7
4139
4140	vmovdqa	1152(%rbp),%ymm10
4141	vinserti128	$1,(%r12),%ymm0,%ymm0
4142	vinserti128	$1,16(%r12),%ymm1,%ymm1
4143	vpshufb	%ymm10,%ymm0,%ymm0
4144	vinserti128	$1,32(%r12),%ymm2,%ymm2
4145	vpshufb	%ymm10,%ymm1,%ymm1
4146	vinserti128	$1,48(%r12),%ymm3,%ymm3
4147	vpshufb	%ymm10,%ymm2,%ymm2
4148	vinserti128	$1,64(%r12),%ymm4,%ymm4
4149	vpshufb	%ymm10,%ymm3,%ymm3
4150	vinserti128	$1,80(%r12),%ymm5,%ymm5
4151	vpshufb	%ymm10,%ymm4,%ymm4
4152	vinserti128	$1,96(%r12),%ymm6,%ymm6
4153	vpshufb	%ymm10,%ymm5,%ymm5
4154	vinserti128	$1,112(%r12),%ymm7,%ymm7
4155
4156	vpaddq	-128(%rbp),%ymm0,%ymm8
4157	vpshufb	%ymm10,%ymm6,%ymm6
4158	vpaddq	-96(%rbp),%ymm1,%ymm9
4159	vpshufb	%ymm10,%ymm7,%ymm7
4160	vpaddq	-64(%rbp),%ymm2,%ymm10
4161	vpaddq	-32(%rbp),%ymm3,%ymm11
4162	vmovdqa	%ymm8,0(%rsp)
4163	vpaddq	0(%rbp),%ymm4,%ymm8
4164	vmovdqa	%ymm9,32(%rsp)
4165	vpaddq	32(%rbp),%ymm5,%ymm9
4166	vmovdqa	%ymm10,64(%rsp)
4167	vpaddq	64(%rbp),%ymm6,%ymm10
4168	vmovdqa	%ymm11,96(%rsp)
4169
4170	movq	152(%rsp),%rdi
4171.cfi_def_cfa	%rdi,8
4172	leaq	-128(%rsp),%rsp
4173
4174
4175
4176	movq	%rdi,-8(%rsp)
4177.cfi_escape	0x0f,0x05,0x77,0x78,0x06,0x23,0x08
4178	vpaddq	96(%rbp),%ymm7,%ymm11
4179	vmovdqa	%ymm8,0(%rsp)
4180	xorq	%r14,%r14
4181	vmovdqa	%ymm9,32(%rsp)
4182	movq	%rbx,%rdi
4183	vmovdqa	%ymm10,64(%rsp)
4184	xorq	%rcx,%rdi
4185	vmovdqa	%ymm11,96(%rsp)
4186	movq	%r9,%r12
4187	addq	$32*8,%rbp
4188	jmp	.Lavx2_00_47
4189
4190.align	16
4191.Lavx2_00_47:
4192	leaq	-128(%rsp),%rsp
4193.cfi_escape	0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08
4194
4195	pushq	128-8(%rsp)
4196.cfi_escape	0x0f,0x05,0x77,0x00,0x06,0x23,0x08
4197	leaq	8(%rsp),%rsp
4198.cfi_escape	0x0f,0x05,0x77,0x78,0x06,0x23,0x08
4199	vpalignr	$8,%ymm0,%ymm1,%ymm8
4200	addq	0+256(%rsp),%r11
4201	andq	%r8,%r12
4202	rorxq	$41,%r8,%r13
4203	vpalignr	$8,%ymm4,%ymm5,%ymm11
4204	rorxq	$18,%r8,%r15
4205	leaq	(%rax,%r14,1),%rax
4206	leaq	(%r11,%r12,1),%r11
4207	vpsrlq	$1,%ymm8,%ymm10
4208	andnq	%r10,%r8,%r12
4209	xorq	%r15,%r13
4210	rorxq	$14,%r8,%r14
4211	vpaddq	%ymm11,%ymm0,%ymm0
4212	vpsrlq	$7,%ymm8,%ymm11
4213	leaq	(%r11,%r12,1),%r11
4214	xorq	%r14,%r13
4215	movq	%rax,%r15
4216	vpsllq	$56,%ymm8,%ymm9
4217	vpxor	%ymm10,%ymm11,%ymm8
4218	rorxq	$39,%rax,%r12
4219	leaq	(%r11,%r13,1),%r11
4220	xorq	%rbx,%r15
4221	vpsrlq	$7,%ymm10,%ymm10
4222	vpxor	%ymm9,%ymm8,%ymm8
4223	rorxq	$34,%rax,%r14
4224	rorxq	$28,%rax,%r13
4225	leaq	(%rdx,%r11,1),%rdx
4226	vpsllq	$7,%ymm9,%ymm9
4227	vpxor	%ymm10,%ymm8,%ymm8
4228	andq	%r15,%rdi
4229	xorq	%r12,%r14
4230	xorq	%rbx,%rdi
4231	vpsrlq	$6,%ymm7,%ymm11
4232	vpxor	%ymm9,%ymm8,%ymm8
4233	xorq	%r13,%r14
4234	leaq	(%r11,%rdi,1),%r11
4235	movq	%r8,%r12
4236	vpsllq	$3,%ymm7,%ymm10
4237	vpaddq	%ymm8,%ymm0,%ymm0
4238	addq	8+256(%rsp),%r10
4239	andq	%rdx,%r12
4240	rorxq	$41,%rdx,%r13
4241	vpsrlq	$19,%ymm7,%ymm9
4242	vpxor	%ymm10,%ymm11,%ymm11
4243	rorxq	$18,%rdx,%rdi
4244	leaq	(%r11,%r14,1),%r11
4245	leaq	(%r10,%r12,1),%r10
4246	vpsllq	$42,%ymm10,%ymm10
4247	vpxor	%ymm9,%ymm11,%ymm11
4248	andnq	%r9,%rdx,%r12
4249	xorq	%rdi,%r13
4250	rorxq	$14,%rdx,%r14
4251	vpsrlq	$42,%ymm9,%ymm9
4252	vpxor	%ymm10,%ymm11,%ymm11
4253	leaq	(%r10,%r12,1),%r10
4254	xorq	%r14,%r13
4255	movq	%r11,%rdi
4256	vpxor	%ymm9,%ymm11,%ymm11
4257	rorxq	$39,%r11,%r12
4258	leaq	(%r10,%r13,1),%r10
4259	xorq	%rax,%rdi
4260	vpaddq	%ymm11,%ymm0,%ymm0
4261	rorxq	$34,%r11,%r14
4262	rorxq	$28,%r11,%r13
4263	leaq	(%rcx,%r10,1),%rcx
4264	vpaddq	-128(%rbp),%ymm0,%ymm10
4265	andq	%rdi,%r15
4266	xorq	%r12,%r14
4267	xorq	%rax,%r15
4268	xorq	%r13,%r14
4269	leaq	(%r10,%r15,1),%r10
4270	movq	%rdx,%r12
4271	vmovdqa	%ymm10,0(%rsp)
4272	vpalignr	$8,%ymm1,%ymm2,%ymm8
4273	addq	32+256(%rsp),%r9
4274	andq	%rcx,%r12
4275	rorxq	$41,%rcx,%r13
4276	vpalignr	$8,%ymm5,%ymm6,%ymm11
4277	rorxq	$18,%rcx,%r15
4278	leaq	(%r10,%r14,1),%r10
4279	leaq	(%r9,%r12,1),%r9
4280	vpsrlq	$1,%ymm8,%ymm10
4281	andnq	%r8,%rcx,%r12
4282	xorq	%r15,%r13
4283	rorxq	$14,%rcx,%r14
4284	vpaddq	%ymm11,%ymm1,%ymm1
4285	vpsrlq	$7,%ymm8,%ymm11
4286	leaq	(%r9,%r12,1),%r9
4287	xorq	%r14,%r13
4288	movq	%r10,%r15
4289	vpsllq	$56,%ymm8,%ymm9
4290	vpxor	%ymm10,%ymm11,%ymm8
4291	rorxq	$39,%r10,%r12
4292	leaq	(%r9,%r13,1),%r9
4293	xorq	%r11,%r15
4294	vpsrlq	$7,%ymm10,%ymm10
4295	vpxor	%ymm9,%ymm8,%ymm8
4296	rorxq	$34,%r10,%r14
4297	rorxq	$28,%r10,%r13
4298	leaq	(%rbx,%r9,1),%rbx
4299	vpsllq	$7,%ymm9,%ymm9
4300	vpxor	%ymm10,%ymm8,%ymm8
4301	andq	%r15,%rdi
4302	xorq	%r12,%r14
4303	xorq	%r11,%rdi
4304	vpsrlq	$6,%ymm0,%ymm11
4305	vpxor	%ymm9,%ymm8,%ymm8
4306	xorq	%r13,%r14
4307	leaq	(%r9,%rdi,1),%r9
4308	movq	%rcx,%r12
4309	vpsllq	$3,%ymm0,%ymm10
4310	vpaddq	%ymm8,%ymm1,%ymm1
4311	addq	40+256(%rsp),%r8
4312	andq	%rbx,%r12
4313	rorxq	$41,%rbx,%r13
4314	vpsrlq	$19,%ymm0,%ymm9
4315	vpxor	%ymm10,%ymm11,%ymm11
4316	rorxq	$18,%rbx,%rdi
4317	leaq	(%r9,%r14,1),%r9
4318	leaq	(%r8,%r12,1),%r8
4319	vpsllq	$42,%ymm10,%ymm10
4320	vpxor	%ymm9,%ymm11,%ymm11
4321	andnq	%rdx,%rbx,%r12
4322	xorq	%rdi,%r13
4323	rorxq	$14,%rbx,%r14
4324	vpsrlq	$42,%ymm9,%ymm9
4325	vpxor	%ymm10,%ymm11,%ymm11
4326	leaq	(%r8,%r12,1),%r8
4327	xorq	%r14,%r13
4328	movq	%r9,%rdi
4329	vpxor	%ymm9,%ymm11,%ymm11
4330	rorxq	$39,%r9,%r12
4331	leaq	(%r8,%r13,1),%r8
4332	xorq	%r10,%rdi
4333	vpaddq	%ymm11,%ymm1,%ymm1
4334	rorxq	$34,%r9,%r14
4335	rorxq	$28,%r9,%r13
4336	leaq	(%rax,%r8,1),%rax
4337	vpaddq	-96(%rbp),%ymm1,%ymm10
4338	andq	%rdi,%r15
4339	xorq	%r12,%r14
4340	xorq	%r10,%r15
4341	xorq	%r13,%r14
4342	leaq	(%r8,%r15,1),%r8
4343	movq	%rbx,%r12
4344	vmovdqa	%ymm10,32(%rsp)
4345	vpalignr	$8,%ymm2,%ymm3,%ymm8
4346	addq	64+256(%rsp),%rdx
4347	andq	%rax,%r12
4348	rorxq	$41,%rax,%r13
4349	vpalignr	$8,%ymm6,%ymm7,%ymm11
4350	rorxq	$18,%rax,%r15
4351	leaq	(%r8,%r14,1),%r8
4352	leaq	(%rdx,%r12,1),%rdx
4353	vpsrlq	$1,%ymm8,%ymm10
4354	andnq	%rcx,%rax,%r12
4355	xorq	%r15,%r13
4356	rorxq	$14,%rax,%r14
4357	vpaddq	%ymm11,%ymm2,%ymm2
4358	vpsrlq	$7,%ymm8,%ymm11
4359	leaq	(%rdx,%r12,1),%rdx
4360	xorq	%r14,%r13
4361	movq	%r8,%r15
4362	vpsllq	$56,%ymm8,%ymm9
4363	vpxor	%ymm10,%ymm11,%ymm8
4364	rorxq	$39,%r8,%r12
4365	leaq	(%rdx,%r13,1),%rdx
4366	xorq	%r9,%r15
4367	vpsrlq	$7,%ymm10,%ymm10
4368	vpxor	%ymm9,%ymm8,%ymm8
4369	rorxq	$34,%r8,%r14
4370	rorxq	$28,%r8,%r13
4371	leaq	(%r11,%rdx,1),%r11
4372	vpsllq	$7,%ymm9,%ymm9
4373	vpxor	%ymm10,%ymm8,%ymm8
4374	andq	%r15,%rdi
4375	xorq	%r12,%r14
4376	xorq	%r9,%rdi
4377	vpsrlq	$6,%ymm1,%ymm11
4378	vpxor	%ymm9,%ymm8,%ymm8
4379	xorq	%r13,%r14
4380	leaq	(%rdx,%rdi,1),%rdx
4381	movq	%rax,%r12
4382	vpsllq	$3,%ymm1,%ymm10
4383	vpaddq	%ymm8,%ymm2,%ymm2
4384	addq	72+256(%rsp),%rcx
4385	andq	%r11,%r12
4386	rorxq	$41,%r11,%r13
4387	vpsrlq	$19,%ymm1,%ymm9
4388	vpxor	%ymm10,%ymm11,%ymm11
4389	rorxq	$18,%r11,%rdi
4390	leaq	(%rdx,%r14,1),%rdx
4391	leaq	(%rcx,%r12,1),%rcx
4392	vpsllq	$42,%ymm10,%ymm10
4393	vpxor	%ymm9,%ymm11,%ymm11
4394	andnq	%rbx,%r11,%r12
4395	xorq	%rdi,%r13
4396	rorxq	$14,%r11,%r14
4397	vpsrlq	$42,%ymm9,%ymm9
4398	vpxor	%ymm10,%ymm11,%ymm11
4399	leaq	(%rcx,%r12,1),%rcx
4400	xorq	%r14,%r13
4401	movq	%rdx,%rdi
4402	vpxor	%ymm9,%ymm11,%ymm11
4403	rorxq	$39,%rdx,%r12
4404	leaq	(%rcx,%r13,1),%rcx
4405	xorq	%r8,%rdi
4406	vpaddq	%ymm11,%ymm2,%ymm2
4407	rorxq	$34,%rdx,%r14
4408	rorxq	$28,%rdx,%r13
4409	leaq	(%r10,%rcx,1),%r10
4410	vpaddq	-64(%rbp),%ymm2,%ymm10
4411	andq	%rdi,%r15
4412	xorq	%r12,%r14
4413	xorq	%r8,%r15
4414	xorq	%r13,%r14
4415	leaq	(%rcx,%r15,1),%rcx
4416	movq	%r11,%r12
4417	vmovdqa	%ymm10,64(%rsp)
4418	vpalignr	$8,%ymm3,%ymm4,%ymm8
4419	addq	96+256(%rsp),%rbx
4420	andq	%r10,%r12
4421	rorxq	$41,%r10,%r13
4422	vpalignr	$8,%ymm7,%ymm0,%ymm11
4423	rorxq	$18,%r10,%r15
4424	leaq	(%rcx,%r14,1),%rcx
4425	leaq	(%rbx,%r12,1),%rbx
4426	vpsrlq	$1,%ymm8,%ymm10
4427	andnq	%rax,%r10,%r12
4428	xorq	%r15,%r13
4429	rorxq	$14,%r10,%r14
4430	vpaddq	%ymm11,%ymm3,%ymm3
4431	vpsrlq	$7,%ymm8,%ymm11
4432	leaq	(%rbx,%r12,1),%rbx
4433	xorq	%r14,%r13
4434	movq	%rcx,%r15
4435	vpsllq	$56,%ymm8,%ymm9
4436	vpxor	%ymm10,%ymm11,%ymm8
4437	rorxq	$39,%rcx,%r12
4438	leaq	(%rbx,%r13,1),%rbx
4439	xorq	%rdx,%r15
4440	vpsrlq	$7,%ymm10,%ymm10
4441	vpxor	%ymm9,%ymm8,%ymm8
4442	rorxq	$34,%rcx,%r14
4443	rorxq	$28,%rcx,%r13
4444	leaq	(%r9,%rbx,1),%r9
4445	vpsllq	$7,%ymm9,%ymm9
4446	vpxor	%ymm10,%ymm8,%ymm8
4447	andq	%r15,%rdi
4448	xorq	%r12,%r14
4449	xorq	%rdx,%rdi
4450	vpsrlq	$6,%ymm2,%ymm11
4451	vpxor	%ymm9,%ymm8,%ymm8
4452	xorq	%r13,%r14
4453	leaq	(%rbx,%rdi,1),%rbx
4454	movq	%r10,%r12
4455	vpsllq	$3,%ymm2,%ymm10
4456	vpaddq	%ymm8,%ymm3,%ymm3
4457	addq	104+256(%rsp),%rax
4458	andq	%r9,%r12
4459	rorxq	$41,%r9,%r13
4460	vpsrlq	$19,%ymm2,%ymm9
4461	vpxor	%ymm10,%ymm11,%ymm11
4462	rorxq	$18,%r9,%rdi
4463	leaq	(%rbx,%r14,1),%rbx
4464	leaq	(%rax,%r12,1),%rax
4465	vpsllq	$42,%ymm10,%ymm10
4466	vpxor	%ymm9,%ymm11,%ymm11
4467	andnq	%r11,%r9,%r12
4468	xorq	%rdi,%r13
4469	rorxq	$14,%r9,%r14
4470	vpsrlq	$42,%ymm9,%ymm9
4471	vpxor	%ymm10,%ymm11,%ymm11
4472	leaq	(%rax,%r12,1),%rax
4473	xorq	%r14,%r13
4474	movq	%rbx,%rdi
4475	vpxor	%ymm9,%ymm11,%ymm11
4476	rorxq	$39,%rbx,%r12
4477	leaq	(%rax,%r13,1),%rax
4478	xorq	%rcx,%rdi
4479	vpaddq	%ymm11,%ymm3,%ymm3
4480	rorxq	$34,%rbx,%r14
4481	rorxq	$28,%rbx,%r13
4482	leaq	(%r8,%rax,1),%r8
4483	vpaddq	-32(%rbp),%ymm3,%ymm10
4484	andq	%rdi,%r15
4485	xorq	%r12,%r14
4486	xorq	%rcx,%r15
4487	xorq	%r13,%r14
4488	leaq	(%rax,%r15,1),%rax
4489	movq	%r9,%r12
4490	vmovdqa	%ymm10,96(%rsp)
4491	leaq	-128(%rsp),%rsp
4492.cfi_escape	0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08
4493
4494	pushq	128-8(%rsp)
4495.cfi_escape	0x0f,0x05,0x77,0x00,0x06,0x23,0x08
4496	leaq	8(%rsp),%rsp
4497.cfi_escape	0x0f,0x05,0x77,0x78,0x06,0x23,0x08
4498	vpalignr	$8,%ymm4,%ymm5,%ymm8
4499	addq	0+256(%rsp),%r11
4500	andq	%r8,%r12
4501	rorxq	$41,%r8,%r13
4502	vpalignr	$8,%ymm0,%ymm1,%ymm11
4503	rorxq	$18,%r8,%r15
4504	leaq	(%rax,%r14,1),%rax
4505	leaq	(%r11,%r12,1),%r11
4506	vpsrlq	$1,%ymm8,%ymm10
4507	andnq	%r10,%r8,%r12
4508	xorq	%r15,%r13
4509	rorxq	$14,%r8,%r14
4510	vpaddq	%ymm11,%ymm4,%ymm4
4511	vpsrlq	$7,%ymm8,%ymm11
4512	leaq	(%r11,%r12,1),%r11
4513	xorq	%r14,%r13
4514	movq	%rax,%r15
4515	vpsllq	$56,%ymm8,%ymm9
4516	vpxor	%ymm10,%ymm11,%ymm8
4517	rorxq	$39,%rax,%r12
4518	leaq	(%r11,%r13,1),%r11
4519	xorq	%rbx,%r15
4520	vpsrlq	$7,%ymm10,%ymm10
4521	vpxor	%ymm9,%ymm8,%ymm8
4522	rorxq	$34,%rax,%r14
4523	rorxq	$28,%rax,%r13
4524	leaq	(%rdx,%r11,1),%rdx
4525	vpsllq	$7,%ymm9,%ymm9
4526	vpxor	%ymm10,%ymm8,%ymm8
4527	andq	%r15,%rdi
4528	xorq	%r12,%r14
4529	xorq	%rbx,%rdi
4530	vpsrlq	$6,%ymm3,%ymm11
4531	vpxor	%ymm9,%ymm8,%ymm8
4532	xorq	%r13,%r14
4533	leaq	(%r11,%rdi,1),%r11
4534	movq	%r8,%r12
4535	vpsllq	$3,%ymm3,%ymm10
4536	vpaddq	%ymm8,%ymm4,%ymm4
4537	addq	8+256(%rsp),%r10
4538	andq	%rdx,%r12
4539	rorxq	$41,%rdx,%r13
4540	vpsrlq	$19,%ymm3,%ymm9
4541	vpxor	%ymm10,%ymm11,%ymm11
4542	rorxq	$18,%rdx,%rdi
4543	leaq	(%r11,%r14,1),%r11
4544	leaq	(%r10,%r12,1),%r10
4545	vpsllq	$42,%ymm10,%ymm10
4546	vpxor	%ymm9,%ymm11,%ymm11
4547	andnq	%r9,%rdx,%r12
4548	xorq	%rdi,%r13
4549	rorxq	$14,%rdx,%r14
4550	vpsrlq	$42,%ymm9,%ymm9
4551	vpxor	%ymm10,%ymm11,%ymm11
4552	leaq	(%r10,%r12,1),%r10
4553	xorq	%r14,%r13
4554	movq	%r11,%rdi
4555	vpxor	%ymm9,%ymm11,%ymm11
4556	rorxq	$39,%r11,%r12
4557	leaq	(%r10,%r13,1),%r10
4558	xorq	%rax,%rdi
4559	vpaddq	%ymm11,%ymm4,%ymm4
4560	rorxq	$34,%r11,%r14
4561	rorxq	$28,%r11,%r13
4562	leaq	(%rcx,%r10,1),%rcx
4563	vpaddq	0(%rbp),%ymm4,%ymm10
4564	andq	%rdi,%r15
4565	xorq	%r12,%r14
4566	xorq	%rax,%r15
4567	xorq	%r13,%r14
4568	leaq	(%r10,%r15,1),%r10
4569	movq	%rdx,%r12
4570	vmovdqa	%ymm10,0(%rsp)
4571	vpalignr	$8,%ymm5,%ymm6,%ymm8
4572	addq	32+256(%rsp),%r9
4573	andq	%rcx,%r12
4574	rorxq	$41,%rcx,%r13
4575	vpalignr	$8,%ymm1,%ymm2,%ymm11
4576	rorxq	$18,%rcx,%r15
4577	leaq	(%r10,%r14,1),%r10
4578	leaq	(%r9,%r12,1),%r9
4579	vpsrlq	$1,%ymm8,%ymm10
4580	andnq	%r8,%rcx,%r12
4581	xorq	%r15,%r13
4582	rorxq	$14,%rcx,%r14
4583	vpaddq	%ymm11,%ymm5,%ymm5
4584	vpsrlq	$7,%ymm8,%ymm11
4585	leaq	(%r9,%r12,1),%r9
4586	xorq	%r14,%r13
4587	movq	%r10,%r15
4588	vpsllq	$56,%ymm8,%ymm9
4589	vpxor	%ymm10,%ymm11,%ymm8
4590	rorxq	$39,%r10,%r12
4591	leaq	(%r9,%r13,1),%r9
4592	xorq	%r11,%r15
4593	vpsrlq	$7,%ymm10,%ymm10
4594	vpxor	%ymm9,%ymm8,%ymm8
4595	rorxq	$34,%r10,%r14
4596	rorxq	$28,%r10,%r13
4597	leaq	(%rbx,%r9,1),%rbx
4598	vpsllq	$7,%ymm9,%ymm9
4599	vpxor	%ymm10,%ymm8,%ymm8
4600	andq	%r15,%rdi
4601	xorq	%r12,%r14
4602	xorq	%r11,%rdi
4603	vpsrlq	$6,%ymm4,%ymm11
4604	vpxor	%ymm9,%ymm8,%ymm8
4605	xorq	%r13,%r14
4606	leaq	(%r9,%rdi,1),%r9
4607	movq	%rcx,%r12
4608	vpsllq	$3,%ymm4,%ymm10
4609	vpaddq	%ymm8,%ymm5,%ymm5
4610	addq	40+256(%rsp),%r8
4611	andq	%rbx,%r12
4612	rorxq	$41,%rbx,%r13
4613	vpsrlq	$19,%ymm4,%ymm9
4614	vpxor	%ymm10,%ymm11,%ymm11
4615	rorxq	$18,%rbx,%rdi
4616	leaq	(%r9,%r14,1),%r9
4617	leaq	(%r8,%r12,1),%r8
4618	vpsllq	$42,%ymm10,%ymm10
4619	vpxor	%ymm9,%ymm11,%ymm11
4620	andnq	%rdx,%rbx,%r12
4621	xorq	%rdi,%r13
4622	rorxq	$14,%rbx,%r14
4623	vpsrlq	$42,%ymm9,%ymm9
4624	vpxor	%ymm10,%ymm11,%ymm11
4625	leaq	(%r8,%r12,1),%r8
4626	xorq	%r14,%r13
4627	movq	%r9,%rdi
4628	vpxor	%ymm9,%ymm11,%ymm11
4629	rorxq	$39,%r9,%r12
4630	leaq	(%r8,%r13,1),%r8
4631	xorq	%r10,%rdi
4632	vpaddq	%ymm11,%ymm5,%ymm5
4633	rorxq	$34,%r9,%r14
4634	rorxq	$28,%r9,%r13
4635	leaq	(%rax,%r8,1),%rax
4636	vpaddq	32(%rbp),%ymm5,%ymm10
4637	andq	%rdi,%r15
4638	xorq	%r12,%r14
4639	xorq	%r10,%r15
4640	xorq	%r13,%r14
4641	leaq	(%r8,%r15,1),%r8
4642	movq	%rbx,%r12
4643	vmovdqa	%ymm10,32(%rsp)
4644	vpalignr	$8,%ymm6,%ymm7,%ymm8
4645	addq	64+256(%rsp),%rdx
4646	andq	%rax,%r12
4647	rorxq	$41,%rax,%r13
4648	vpalignr	$8,%ymm2,%ymm3,%ymm11
4649	rorxq	$18,%rax,%r15
4650	leaq	(%r8,%r14,1),%r8
4651	leaq	(%rdx,%r12,1),%rdx
4652	vpsrlq	$1,%ymm8,%ymm10
4653	andnq	%rcx,%rax,%r12
4654	xorq	%r15,%r13
4655	rorxq	$14,%rax,%r14
4656	vpaddq	%ymm11,%ymm6,%ymm6
4657	vpsrlq	$7,%ymm8,%ymm11
4658	leaq	(%rdx,%r12,1),%rdx
4659	xorq	%r14,%r13
4660	movq	%r8,%r15
4661	vpsllq	$56,%ymm8,%ymm9
4662	vpxor	%ymm10,%ymm11,%ymm8
4663	rorxq	$39,%r8,%r12
4664	leaq	(%rdx,%r13,1),%rdx
4665	xorq	%r9,%r15
4666	vpsrlq	$7,%ymm10,%ymm10
4667	vpxor	%ymm9,%ymm8,%ymm8
4668	rorxq	$34,%r8,%r14
4669	rorxq	$28,%r8,%r13
4670	leaq	(%r11,%rdx,1),%r11
4671	vpsllq	$7,%ymm9,%ymm9
4672	vpxor	%ymm10,%ymm8,%ymm8
4673	andq	%r15,%rdi
4674	xorq	%r12,%r14
4675	xorq	%r9,%rdi
4676	vpsrlq	$6,%ymm5,%ymm11
4677	vpxor	%ymm9,%ymm8,%ymm8
4678	xorq	%r13,%r14
4679	leaq	(%rdx,%rdi,1),%rdx
4680	movq	%rax,%r12
4681	vpsllq	$3,%ymm5,%ymm10
4682	vpaddq	%ymm8,%ymm6,%ymm6
4683	addq	72+256(%rsp),%rcx
4684	andq	%r11,%r12
4685	rorxq	$41,%r11,%r13
4686	vpsrlq	$19,%ymm5,%ymm9
4687	vpxor	%ymm10,%ymm11,%ymm11
4688	rorxq	$18,%r11,%rdi
4689	leaq	(%rdx,%r14,1),%rdx
4690	leaq	(%rcx,%r12,1),%rcx
4691	vpsllq	$42,%ymm10,%ymm10
4692	vpxor	%ymm9,%ymm11,%ymm11
4693	andnq	%rbx,%r11,%r12
4694	xorq	%rdi,%r13
4695	rorxq	$14,%r11,%r14
4696	vpsrlq	$42,%ymm9,%ymm9
4697	vpxor	%ymm10,%ymm11,%ymm11
4698	leaq	(%rcx,%r12,1),%rcx
4699	xorq	%r14,%r13
4700	movq	%rdx,%rdi
4701	vpxor	%ymm9,%ymm11,%ymm11
4702	rorxq	$39,%rdx,%r12
4703	leaq	(%rcx,%r13,1),%rcx
4704	xorq	%r8,%rdi
4705	vpaddq	%ymm11,%ymm6,%ymm6
4706	rorxq	$34,%rdx,%r14
4707	rorxq	$28,%rdx,%r13
4708	leaq	(%r10,%rcx,1),%r10
4709	vpaddq	64(%rbp),%ymm6,%ymm10
4710	andq	%rdi,%r15
4711	xorq	%r12,%r14
4712	xorq	%r8,%r15
4713	xorq	%r13,%r14
4714	leaq	(%rcx,%r15,1),%rcx
4715	movq	%r11,%r12
4716	vmovdqa	%ymm10,64(%rsp)
4717	vpalignr	$8,%ymm7,%ymm0,%ymm8
4718	addq	96+256(%rsp),%rbx
4719	andq	%r10,%r12
4720	rorxq	$41,%r10,%r13
4721	vpalignr	$8,%ymm3,%ymm4,%ymm11
4722	rorxq	$18,%r10,%r15
4723	leaq	(%rcx,%r14,1),%rcx
4724	leaq	(%rbx,%r12,1),%rbx
4725	vpsrlq	$1,%ymm8,%ymm10
4726	andnq	%rax,%r10,%r12
4727	xorq	%r15,%r13
4728	rorxq	$14,%r10,%r14
4729	vpaddq	%ymm11,%ymm7,%ymm7
4730	vpsrlq	$7,%ymm8,%ymm11
4731	leaq	(%rbx,%r12,1),%rbx
4732	xorq	%r14,%r13
4733	movq	%rcx,%r15
4734	vpsllq	$56,%ymm8,%ymm9
4735	vpxor	%ymm10,%ymm11,%ymm8
4736	rorxq	$39,%rcx,%r12
4737	leaq	(%rbx,%r13,1),%rbx
4738	xorq	%rdx,%r15
4739	vpsrlq	$7,%ymm10,%ymm10
4740	vpxor	%ymm9,%ymm8,%ymm8
4741	rorxq	$34,%rcx,%r14
4742	rorxq	$28,%rcx,%r13
4743	leaq	(%r9,%rbx,1),%r9
4744	vpsllq	$7,%ymm9,%ymm9
4745	vpxor	%ymm10,%ymm8,%ymm8
4746	andq	%r15,%rdi
4747	xorq	%r12,%r14
4748	xorq	%rdx,%rdi
4749	vpsrlq	$6,%ymm6,%ymm11
4750	vpxor	%ymm9,%ymm8,%ymm8
4751	xorq	%r13,%r14
4752	leaq	(%rbx,%rdi,1),%rbx
4753	movq	%r10,%r12
4754	vpsllq	$3,%ymm6,%ymm10
4755	vpaddq	%ymm8,%ymm7,%ymm7
4756	addq	104+256(%rsp),%rax
4757	andq	%r9,%r12
4758	rorxq	$41,%r9,%r13
4759	vpsrlq	$19,%ymm6,%ymm9
4760	vpxor	%ymm10,%ymm11,%ymm11
4761	rorxq	$18,%r9,%rdi
4762	leaq	(%rbx,%r14,1),%rbx
4763	leaq	(%rax,%r12,1),%rax
4764	vpsllq	$42,%ymm10,%ymm10
4765	vpxor	%ymm9,%ymm11,%ymm11
4766	andnq	%r11,%r9,%r12
4767	xorq	%rdi,%r13
4768	rorxq	$14,%r9,%r14
4769	vpsrlq	$42,%ymm9,%ymm9
4770	vpxor	%ymm10,%ymm11,%ymm11
4771	leaq	(%rax,%r12,1),%rax
4772	xorq	%r14,%r13
4773	movq	%rbx,%rdi
4774	vpxor	%ymm9,%ymm11,%ymm11
4775	rorxq	$39,%rbx,%r12
4776	leaq	(%rax,%r13,1),%rax
4777	xorq	%rcx,%rdi
4778	vpaddq	%ymm11,%ymm7,%ymm7
4779	rorxq	$34,%rbx,%r14
4780	rorxq	$28,%rbx,%r13
4781	leaq	(%r8,%rax,1),%r8
4782	vpaddq	96(%rbp),%ymm7,%ymm10
4783	andq	%rdi,%r15
4784	xorq	%r12,%r14
4785	xorq	%rcx,%r15
4786	xorq	%r13,%r14
4787	leaq	(%rax,%r15,1),%rax
4788	movq	%r9,%r12
4789	vmovdqa	%ymm10,96(%rsp)
4790	leaq	256(%rbp),%rbp
4791	cmpb	$0,-121(%rbp)
4792	jne	.Lavx2_00_47
4793	addq	0+128(%rsp),%r11
4794	andq	%r8,%r12
4795	rorxq	$41,%r8,%r13
4796	rorxq	$18,%r8,%r15
4797	leaq	(%rax,%r14,1),%rax
4798	leaq	(%r11,%r12,1),%r11
4799	andnq	%r10,%r8,%r12
4800	xorq	%r15,%r13
4801	rorxq	$14,%r8,%r14
4802	leaq	(%r11,%r12,1),%r11
4803	xorq	%r14,%r13
4804	movq	%rax,%r15
4805	rorxq	$39,%rax,%r12
4806	leaq	(%r11,%r13,1),%r11
4807	xorq	%rbx,%r15
4808	rorxq	$34,%rax,%r14
4809	rorxq	$28,%rax,%r13
4810	leaq	(%rdx,%r11,1),%rdx
4811	andq	%r15,%rdi
4812	xorq	%r12,%r14
4813	xorq	%rbx,%rdi
4814	xorq	%r13,%r14
4815	leaq	(%r11,%rdi,1),%r11
4816	movq	%r8,%r12
4817	addq	8+128(%rsp),%r10
4818	andq	%rdx,%r12
4819	rorxq	$41,%rdx,%r13
4820	rorxq	$18,%rdx,%rdi
4821	leaq	(%r11,%r14,1),%r11
4822	leaq	(%r10,%r12,1),%r10
4823	andnq	%r9,%rdx,%r12
4824	xorq	%rdi,%r13
4825	rorxq	$14,%rdx,%r14
4826	leaq	(%r10,%r12,1),%r10
4827	xorq	%r14,%r13
4828	movq	%r11,%rdi
4829	rorxq	$39,%r11,%r12
4830	leaq	(%r10,%r13,1),%r10
4831	xorq	%rax,%rdi
4832	rorxq	$34,%r11,%r14
4833	rorxq	$28,%r11,%r13
4834	leaq	(%rcx,%r10,1),%rcx
4835	andq	%rdi,%r15
4836	xorq	%r12,%r14
4837	xorq	%rax,%r15
4838	xorq	%r13,%r14
4839	leaq	(%r10,%r15,1),%r10
4840	movq	%rdx,%r12
4841	addq	32+128(%rsp),%r9
4842	andq	%rcx,%r12
4843	rorxq	$41,%rcx,%r13
4844	rorxq	$18,%rcx,%r15
4845	leaq	(%r10,%r14,1),%r10
4846	leaq	(%r9,%r12,1),%r9
4847	andnq	%r8,%rcx,%r12
4848	xorq	%r15,%r13
4849	rorxq	$14,%rcx,%r14
4850	leaq	(%r9,%r12,1),%r9
4851	xorq	%r14,%r13
4852	movq	%r10,%r15
4853	rorxq	$39,%r10,%r12
4854	leaq	(%r9,%r13,1),%r9
4855	xorq	%r11,%r15
4856	rorxq	$34,%r10,%r14
4857	rorxq	$28,%r10,%r13
4858	leaq	(%rbx,%r9,1),%rbx
4859	andq	%r15,%rdi
4860	xorq	%r12,%r14
4861	xorq	%r11,%rdi
4862	xorq	%r13,%r14
4863	leaq	(%r9,%rdi,1),%r9
4864	movq	%rcx,%r12
4865	addq	40+128(%rsp),%r8
4866	andq	%rbx,%r12
4867	rorxq	$41,%rbx,%r13
4868	rorxq	$18,%rbx,%rdi
4869	leaq	(%r9,%r14,1),%r9
4870	leaq	(%r8,%r12,1),%r8
4871	andnq	%rdx,%rbx,%r12
4872	xorq	%rdi,%r13
4873	rorxq	$14,%rbx,%r14
4874	leaq	(%r8,%r12,1),%r8
4875	xorq	%r14,%r13
4876	movq	%r9,%rdi
4877	rorxq	$39,%r9,%r12
4878	leaq	(%r8,%r13,1),%r8
4879	xorq	%r10,%rdi
4880	rorxq	$34,%r9,%r14
4881	rorxq	$28,%r9,%r13
4882	leaq	(%rax,%r8,1),%rax
4883	andq	%rdi,%r15
4884	xorq	%r12,%r14
4885	xorq	%r10,%r15
4886	xorq	%r13,%r14
4887	leaq	(%r8,%r15,1),%r8
4888	movq	%rbx,%r12
4889	addq	64+128(%rsp),%rdx
4890	andq	%rax,%r12
4891	rorxq	$41,%rax,%r13
4892	rorxq	$18,%rax,%r15
4893	leaq	(%r8,%r14,1),%r8
4894	leaq	(%rdx,%r12,1),%rdx
4895	andnq	%rcx,%rax,%r12
4896	xorq	%r15,%r13
4897	rorxq	$14,%rax,%r14
4898	leaq	(%rdx,%r12,1),%rdx
4899	xorq	%r14,%r13
4900	movq	%r8,%r15
4901	rorxq	$39,%r8,%r12
4902	leaq	(%rdx,%r13,1),%rdx
4903	xorq	%r9,%r15
4904	rorxq	$34,%r8,%r14
4905	rorxq	$28,%r8,%r13
4906	leaq	(%r11,%rdx,1),%r11
4907	andq	%r15,%rdi
4908	xorq	%r12,%r14
4909	xorq	%r9,%rdi
4910	xorq	%r13,%r14
4911	leaq	(%rdx,%rdi,1),%rdx
4912	movq	%rax,%r12
4913	addq	72+128(%rsp),%rcx
4914	andq	%r11,%r12
4915	rorxq	$41,%r11,%r13
4916	rorxq	$18,%r11,%rdi
4917	leaq	(%rdx,%r14,1),%rdx
4918	leaq	(%rcx,%r12,1),%rcx
4919	andnq	%rbx,%r11,%r12
4920	xorq	%rdi,%r13
4921	rorxq	$14,%r11,%r14
4922	leaq	(%rcx,%r12,1),%rcx
4923	xorq	%r14,%r13
4924	movq	%rdx,%rdi
4925	rorxq	$39,%rdx,%r12
4926	leaq	(%rcx,%r13,1),%rcx
4927	xorq	%r8,%rdi
4928	rorxq	$34,%rdx,%r14
4929	rorxq	$28,%rdx,%r13
4930	leaq	(%r10,%rcx,1),%r10
4931	andq	%rdi,%r15
4932	xorq	%r12,%r14
4933	xorq	%r8,%r15
4934	xorq	%r13,%r14
4935	leaq	(%rcx,%r15,1),%rcx
4936	movq	%r11,%r12
4937	addq	96+128(%rsp),%rbx
4938	andq	%r10,%r12
4939	rorxq	$41,%r10,%r13
4940	rorxq	$18,%r10,%r15
4941	leaq	(%rcx,%r14,1),%rcx
4942	leaq	(%rbx,%r12,1),%rbx
4943	andnq	%rax,%r10,%r12
4944	xorq	%r15,%r13
4945	rorxq	$14,%r10,%r14
4946	leaq	(%rbx,%r12,1),%rbx
4947	xorq	%r14,%r13
4948	movq	%rcx,%r15
4949	rorxq	$39,%rcx,%r12
4950	leaq	(%rbx,%r13,1),%rbx
4951	xorq	%rdx,%r15
4952	rorxq	$34,%rcx,%r14
4953	rorxq	$28,%rcx,%r13
4954	leaq	(%r9,%rbx,1),%r9
4955	andq	%r15,%rdi
4956	xorq	%r12,%r14
4957	xorq	%rdx,%rdi
4958	xorq	%r13,%r14
4959	leaq	(%rbx,%rdi,1),%rbx
4960	movq	%r10,%r12
4961	addq	104+128(%rsp),%rax
4962	andq	%r9,%r12
4963	rorxq	$41,%r9,%r13
4964	rorxq	$18,%r9,%rdi
4965	leaq	(%rbx,%r14,1),%rbx
4966	leaq	(%rax,%r12,1),%rax
4967	andnq	%r11,%r9,%r12
4968	xorq	%rdi,%r13
4969	rorxq	$14,%r9,%r14
4970	leaq	(%rax,%r12,1),%rax
4971	xorq	%r14,%r13
4972	movq	%rbx,%rdi
4973	rorxq	$39,%rbx,%r12
4974	leaq	(%rax,%r13,1),%rax
4975	xorq	%rcx,%rdi
4976	rorxq	$34,%rbx,%r14
4977	rorxq	$28,%rbx,%r13
4978	leaq	(%r8,%rax,1),%r8
4979	andq	%rdi,%r15
4980	xorq	%r12,%r14
4981	xorq	%rcx,%r15
4982	xorq	%r13,%r14
4983	leaq	(%rax,%r15,1),%rax
4984	movq	%r9,%r12
4985	addq	0(%rsp),%r11
4986	andq	%r8,%r12
4987	rorxq	$41,%r8,%r13
4988	rorxq	$18,%r8,%r15
4989	leaq	(%rax,%r14,1),%rax
4990	leaq	(%r11,%r12,1),%r11
4991	andnq	%r10,%r8,%r12
4992	xorq	%r15,%r13
4993	rorxq	$14,%r8,%r14
4994	leaq	(%r11,%r12,1),%r11
4995	xorq	%r14,%r13
4996	movq	%rax,%r15
4997	rorxq	$39,%rax,%r12
4998	leaq	(%r11,%r13,1),%r11
4999	xorq	%rbx,%r15
5000	rorxq	$34,%rax,%r14
5001	rorxq	$28,%rax,%r13
5002	leaq	(%rdx,%r11,1),%rdx
5003	andq	%r15,%rdi
5004	xorq	%r12,%r14
5005	xorq	%rbx,%rdi
5006	xorq	%r13,%r14
5007	leaq	(%r11,%rdi,1),%r11
5008	movq	%r8,%r12
5009	addq	8(%rsp),%r10
5010	andq	%rdx,%r12
5011	rorxq	$41,%rdx,%r13
5012	rorxq	$18,%rdx,%rdi
5013	leaq	(%r11,%r14,1),%r11
5014	leaq	(%r10,%r12,1),%r10
5015	andnq	%r9,%rdx,%r12
5016	xorq	%rdi,%r13
5017	rorxq	$14,%rdx,%r14
5018	leaq	(%r10,%r12,1),%r10
5019	xorq	%r14,%r13
5020	movq	%r11,%rdi
5021	rorxq	$39,%r11,%r12
5022	leaq	(%r10,%r13,1),%r10
5023	xorq	%rax,%rdi
5024	rorxq	$34,%r11,%r14
5025	rorxq	$28,%r11,%r13
5026	leaq	(%rcx,%r10,1),%rcx
5027	andq	%rdi,%r15
5028	xorq	%r12,%r14
5029	xorq	%rax,%r15
5030	xorq	%r13,%r14
5031	leaq	(%r10,%r15,1),%r10
5032	movq	%rdx,%r12
5033	addq	32(%rsp),%r9
5034	andq	%rcx,%r12
5035	rorxq	$41,%rcx,%r13
5036	rorxq	$18,%rcx,%r15
5037	leaq	(%r10,%r14,1),%r10
5038	leaq	(%r9,%r12,1),%r9
5039	andnq	%r8,%rcx,%r12
5040	xorq	%r15,%r13
5041	rorxq	$14,%rcx,%r14
5042	leaq	(%r9,%r12,1),%r9
5043	xorq	%r14,%r13
5044	movq	%r10,%r15
5045	rorxq	$39,%r10,%r12
5046	leaq	(%r9,%r13,1),%r9
5047	xorq	%r11,%r15
5048	rorxq	$34,%r10,%r14
5049	rorxq	$28,%r10,%r13
5050	leaq	(%rbx,%r9,1),%rbx
5051	andq	%r15,%rdi
5052	xorq	%r12,%r14
5053	xorq	%r11,%rdi
5054	xorq	%r13,%r14
5055	leaq	(%r9,%rdi,1),%r9
5056	movq	%rcx,%r12
5057	addq	40(%rsp),%r8
5058	andq	%rbx,%r12
5059	rorxq	$41,%rbx,%r13
5060	rorxq	$18,%rbx,%rdi
5061	leaq	(%r9,%r14,1),%r9
5062	leaq	(%r8,%r12,1),%r8
5063	andnq	%rdx,%rbx,%r12
5064	xorq	%rdi,%r13
5065	rorxq	$14,%rbx,%r14
5066	leaq	(%r8,%r12,1),%r8
5067	xorq	%r14,%r13
5068	movq	%r9,%rdi
5069	rorxq	$39,%r9,%r12
5070	leaq	(%r8,%r13,1),%r8
5071	xorq	%r10,%rdi
5072	rorxq	$34,%r9,%r14
5073	rorxq	$28,%r9,%r13
5074	leaq	(%rax,%r8,1),%rax
5075	andq	%rdi,%r15
5076	xorq	%r12,%r14
5077	xorq	%r10,%r15
5078	xorq	%r13,%r14
5079	leaq	(%r8,%r15,1),%r8
5080	movq	%rbx,%r12
5081	addq	64(%rsp),%rdx
5082	andq	%rax,%r12
5083	rorxq	$41,%rax,%r13
5084	rorxq	$18,%rax,%r15
5085	leaq	(%r8,%r14,1),%r8
5086	leaq	(%rdx,%r12,1),%rdx
5087	andnq	%rcx,%rax,%r12
5088	xorq	%r15,%r13
5089	rorxq	$14,%rax,%r14
5090	leaq	(%rdx,%r12,1),%rdx
5091	xorq	%r14,%r13
5092	movq	%r8,%r15
5093	rorxq	$39,%r8,%r12
5094	leaq	(%rdx,%r13,1),%rdx
5095	xorq	%r9,%r15
5096	rorxq	$34,%r8,%r14
5097	rorxq	$28,%r8,%r13
5098	leaq	(%r11,%rdx,1),%r11
5099	andq	%r15,%rdi
5100	xorq	%r12,%r14
5101	xorq	%r9,%rdi
5102	xorq	%r13,%r14
5103	leaq	(%rdx,%rdi,1),%rdx
5104	movq	%rax,%r12
5105	addq	72(%rsp),%rcx
5106	andq	%r11,%r12
5107	rorxq	$41,%r11,%r13
5108	rorxq	$18,%r11,%rdi
5109	leaq	(%rdx,%r14,1),%rdx
5110	leaq	(%rcx,%r12,1),%rcx
5111	andnq	%rbx,%r11,%r12
5112	xorq	%rdi,%r13
5113	rorxq	$14,%r11,%r14
5114	leaq	(%rcx,%r12,1),%rcx
5115	xorq	%r14,%r13
5116	movq	%rdx,%rdi
5117	rorxq	$39,%rdx,%r12
5118	leaq	(%rcx,%r13,1),%rcx
5119	xorq	%r8,%rdi
5120	rorxq	$34,%rdx,%r14
5121	rorxq	$28,%rdx,%r13
5122	leaq	(%r10,%rcx,1),%r10
5123	andq	%rdi,%r15
5124	xorq	%r12,%r14
5125	xorq	%r8,%r15
5126	xorq	%r13,%r14
5127	leaq	(%rcx,%r15,1),%rcx
5128	movq	%r11,%r12
5129	addq	96(%rsp),%rbx
5130	andq	%r10,%r12
5131	rorxq	$41,%r10,%r13
5132	rorxq	$18,%r10,%r15
5133	leaq	(%rcx,%r14,1),%rcx
5134	leaq	(%rbx,%r12,1),%rbx
5135	andnq	%rax,%r10,%r12
5136	xorq	%r15,%r13
5137	rorxq	$14,%r10,%r14
5138	leaq	(%rbx,%r12,1),%rbx
5139	xorq	%r14,%r13
5140	movq	%rcx,%r15
5141	rorxq	$39,%rcx,%r12
5142	leaq	(%rbx,%r13,1),%rbx
5143	xorq	%rdx,%r15
5144	rorxq	$34,%rcx,%r14
5145	rorxq	$28,%rcx,%r13
5146	leaq	(%r9,%rbx,1),%r9
5147	andq	%r15,%rdi
5148	xorq	%r12,%r14
5149	xorq	%rdx,%rdi
5150	xorq	%r13,%r14
5151	leaq	(%rbx,%rdi,1),%rbx
5152	movq	%r10,%r12
5153	addq	104(%rsp),%rax
5154	andq	%r9,%r12
5155	rorxq	$41,%r9,%r13
5156	rorxq	$18,%r9,%rdi
5157	leaq	(%rbx,%r14,1),%rbx
5158	leaq	(%rax,%r12,1),%rax
5159	andnq	%r11,%r9,%r12
5160	xorq	%rdi,%r13
5161	rorxq	$14,%r9,%r14
5162	leaq	(%rax,%r12,1),%rax
5163	xorq	%r14,%r13
5164	movq	%rbx,%rdi
5165	rorxq	$39,%rbx,%r12
5166	leaq	(%rax,%r13,1),%rax
5167	xorq	%rcx,%rdi
5168	rorxq	$34,%rbx,%r14
5169	rorxq	$28,%rbx,%r13
5170	leaq	(%r8,%rax,1),%r8
5171	andq	%rdi,%r15
5172	xorq	%r12,%r14
5173	xorq	%rcx,%r15
5174	xorq	%r13,%r14
5175	leaq	(%rax,%r15,1),%rax
5176	movq	%r9,%r12
5177	movq	1280(%rsp),%rdi
5178	addq	%r14,%rax
5179
5180	leaq	1152(%rsp),%rbp
5181
5182	addq	0(%rdi),%rax
5183	addq	8(%rdi),%rbx
5184	addq	16(%rdi),%rcx
5185	addq	24(%rdi),%rdx
5186	addq	32(%rdi),%r8
5187	addq	40(%rdi),%r9
5188	addq	48(%rdi),%r10
5189	addq	56(%rdi),%r11
5190
5191	movq	%rax,0(%rdi)
5192	movq	%rbx,8(%rdi)
5193	movq	%rcx,16(%rdi)
5194	movq	%rdx,24(%rdi)
5195	movq	%r8,32(%rdi)
5196	movq	%r9,40(%rdi)
5197	movq	%r10,48(%rdi)
5198	movq	%r11,56(%rdi)
5199
5200	cmpq	144(%rbp),%rsi
5201	je	.Ldone_avx2
5202
5203	xorq	%r14,%r14
5204	movq	%rbx,%rdi
5205	xorq	%rcx,%rdi
5206	movq	%r9,%r12
5207	jmp	.Lower_avx2
5208.align	16
5209.Lower_avx2:
5210	addq	0+16(%rbp),%r11
5211	andq	%r8,%r12
5212	rorxq	$41,%r8,%r13
5213	rorxq	$18,%r8,%r15
5214	leaq	(%rax,%r14,1),%rax
5215	leaq	(%r11,%r12,1),%r11
5216	andnq	%r10,%r8,%r12
5217	xorq	%r15,%r13
5218	rorxq	$14,%r8,%r14
5219	leaq	(%r11,%r12,1),%r11
5220	xorq	%r14,%r13
5221	movq	%rax,%r15
5222	rorxq	$39,%rax,%r12
5223	leaq	(%r11,%r13,1),%r11
5224	xorq	%rbx,%r15
5225	rorxq	$34,%rax,%r14
5226	rorxq	$28,%rax,%r13
5227	leaq	(%rdx,%r11,1),%rdx
5228	andq	%r15,%rdi
5229	xorq	%r12,%r14
5230	xorq	%rbx,%rdi
5231	xorq	%r13,%r14
5232	leaq	(%r11,%rdi,1),%r11
5233	movq	%r8,%r12
5234	addq	8+16(%rbp),%r10
5235	andq	%rdx,%r12
5236	rorxq	$41,%rdx,%r13
5237	rorxq	$18,%rdx,%rdi
5238	leaq	(%r11,%r14,1),%r11
5239	leaq	(%r10,%r12,1),%r10
5240	andnq	%r9,%rdx,%r12
5241	xorq	%rdi,%r13
5242	rorxq	$14,%rdx,%r14
5243	leaq	(%r10,%r12,1),%r10
5244	xorq	%r14,%r13
5245	movq	%r11,%rdi
5246	rorxq	$39,%r11,%r12
5247	leaq	(%r10,%r13,1),%r10
5248	xorq	%rax,%rdi
5249	rorxq	$34,%r11,%r14
5250	rorxq	$28,%r11,%r13
5251	leaq	(%rcx,%r10,1),%rcx
5252	andq	%rdi,%r15
5253	xorq	%r12,%r14
5254	xorq	%rax,%r15
5255	xorq	%r13,%r14
5256	leaq	(%r10,%r15,1),%r10
5257	movq	%rdx,%r12
5258	addq	32+16(%rbp),%r9
5259	andq	%rcx,%r12
5260	rorxq	$41,%rcx,%r13
5261	rorxq	$18,%rcx,%r15
5262	leaq	(%r10,%r14,1),%r10
5263	leaq	(%r9,%r12,1),%r9
5264	andnq	%r8,%rcx,%r12
5265	xorq	%r15,%r13
5266	rorxq	$14,%rcx,%r14
5267	leaq	(%r9,%r12,1),%r9
5268	xorq	%r14,%r13
5269	movq	%r10,%r15
5270	rorxq	$39,%r10,%r12
5271	leaq	(%r9,%r13,1),%r9
5272	xorq	%r11,%r15
5273	rorxq	$34,%r10,%r14
5274	rorxq	$28,%r10,%r13
5275	leaq	(%rbx,%r9,1),%rbx
5276	andq	%r15,%rdi
5277	xorq	%r12,%r14
5278	xorq	%r11,%rdi
5279	xorq	%r13,%r14
5280	leaq	(%r9,%rdi,1),%r9
5281	movq	%rcx,%r12
5282	addq	40+16(%rbp),%r8
5283	andq	%rbx,%r12
5284	rorxq	$41,%rbx,%r13
5285	rorxq	$18,%rbx,%rdi
5286	leaq	(%r9,%r14,1),%r9
5287	leaq	(%r8,%r12,1),%r8
5288	andnq	%rdx,%rbx,%r12
5289	xorq	%rdi,%r13
5290	rorxq	$14,%rbx,%r14
5291	leaq	(%r8,%r12,1),%r8
5292	xorq	%r14,%r13
5293	movq	%r9,%rdi
5294	rorxq	$39,%r9,%r12
5295	leaq	(%r8,%r13,1),%r8
5296	xorq	%r10,%rdi
5297	rorxq	$34,%r9,%r14
5298	rorxq	$28,%r9,%r13
5299	leaq	(%rax,%r8,1),%rax
5300	andq	%rdi,%r15
5301	xorq	%r12,%r14
5302	xorq	%r10,%r15
5303	xorq	%r13,%r14
5304	leaq	(%r8,%r15,1),%r8
5305	movq	%rbx,%r12
5306	addq	64+16(%rbp),%rdx
5307	andq	%rax,%r12
5308	rorxq	$41,%rax,%r13
5309	rorxq	$18,%rax,%r15
5310	leaq	(%r8,%r14,1),%r8
5311	leaq	(%rdx,%r12,1),%rdx
5312	andnq	%rcx,%rax,%r12
5313	xorq	%r15,%r13
5314	rorxq	$14,%rax,%r14
5315	leaq	(%rdx,%r12,1),%rdx
5316	xorq	%r14,%r13
5317	movq	%r8,%r15
5318	rorxq	$39,%r8,%r12
5319	leaq	(%rdx,%r13,1),%rdx
5320	xorq	%r9,%r15
5321	rorxq	$34,%r8,%r14
5322	rorxq	$28,%r8,%r13
5323	leaq	(%r11,%rdx,1),%r11
5324	andq	%r15,%rdi
5325	xorq	%r12,%r14
5326	xorq	%r9,%rdi
5327	xorq	%r13,%r14
5328	leaq	(%rdx,%rdi,1),%rdx
5329	movq	%rax,%r12
5330	addq	72+16(%rbp),%rcx
5331	andq	%r11,%r12
5332	rorxq	$41,%r11,%r13
5333	rorxq	$18,%r11,%rdi
5334	leaq	(%rdx,%r14,1),%rdx
5335	leaq	(%rcx,%r12,1),%rcx
5336	andnq	%rbx,%r11,%r12
5337	xorq	%rdi,%r13
5338	rorxq	$14,%r11,%r14
5339	leaq	(%rcx,%r12,1),%rcx
5340	xorq	%r14,%r13
5341	movq	%rdx,%rdi
5342	rorxq	$39,%rdx,%r12
5343	leaq	(%rcx,%r13,1),%rcx
5344	xorq	%r8,%rdi
5345	rorxq	$34,%rdx,%r14
5346	rorxq	$28,%rdx,%r13
5347	leaq	(%r10,%rcx,1),%r10
5348	andq	%rdi,%r15
5349	xorq	%r12,%r14
5350	xorq	%r8,%r15
5351	xorq	%r13,%r14
5352	leaq	(%rcx,%r15,1),%rcx
5353	movq	%r11,%r12
5354	addq	96+16(%rbp),%rbx
5355	andq	%r10,%r12
5356	rorxq	$41,%r10,%r13
5357	rorxq	$18,%r10,%r15
5358	leaq	(%rcx,%r14,1),%rcx
5359	leaq	(%rbx,%r12,1),%rbx
5360	andnq	%rax,%r10,%r12
5361	xorq	%r15,%r13
5362	rorxq	$14,%r10,%r14
5363	leaq	(%rbx,%r12,1),%rbx
5364	xorq	%r14,%r13
5365	movq	%rcx,%r15
5366	rorxq	$39,%rcx,%r12
5367	leaq	(%rbx,%r13,1),%rbx
5368	xorq	%rdx,%r15
5369	rorxq	$34,%rcx,%r14
5370	rorxq	$28,%rcx,%r13
5371	leaq	(%r9,%rbx,1),%r9
5372	andq	%r15,%rdi
5373	xorq	%r12,%r14
5374	xorq	%rdx,%rdi
5375	xorq	%r13,%r14
5376	leaq	(%rbx,%rdi,1),%rbx
5377	movq	%r10,%r12
5378	addq	104+16(%rbp),%rax
5379	andq	%r9,%r12
5380	rorxq	$41,%r9,%r13
5381	rorxq	$18,%r9,%rdi
5382	leaq	(%rbx,%r14,1),%rbx
5383	leaq	(%rax,%r12,1),%rax
5384	andnq	%r11,%r9,%r12
5385	xorq	%rdi,%r13
5386	rorxq	$14,%r9,%r14
5387	leaq	(%rax,%r12,1),%rax
5388	xorq	%r14,%r13
5389	movq	%rbx,%rdi
5390	rorxq	$39,%rbx,%r12
5391	leaq	(%rax,%r13,1),%rax
5392	xorq	%rcx,%rdi
5393	rorxq	$34,%rbx,%r14
5394	rorxq	$28,%rbx,%r13
5395	leaq	(%r8,%rax,1),%r8
5396	andq	%rdi,%r15
5397	xorq	%r12,%r14
5398	xorq	%rcx,%r15
5399	xorq	%r13,%r14
5400	leaq	(%rax,%r15,1),%rax
5401	movq	%r9,%r12
5402	leaq	-128(%rbp),%rbp
5403	cmpq	%rsp,%rbp
5404	jae	.Lower_avx2
5405
5406	movq	1280(%rsp),%rdi
5407	addq	%r14,%rax
5408
5409	leaq	1152(%rsp),%rsp
5410
5411.cfi_escape	0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
5412
5413	addq	0(%rdi),%rax
5414	addq	8(%rdi),%rbx
5415	addq	16(%rdi),%rcx
5416	addq	24(%rdi),%rdx
5417	addq	32(%rdi),%r8
5418	addq	40(%rdi),%r9
5419	leaq	256(%rsi),%rsi
5420	addq	48(%rdi),%r10
5421	movq	%rsi,%r12
5422	addq	56(%rdi),%r11
5423	cmpq	128+16(%rsp),%rsi
5424
5425	movq	%rax,0(%rdi)
5426	cmoveq	%rsp,%r12
5427	movq	%rbx,8(%rdi)
5428	movq	%rcx,16(%rdi)
5429	movq	%rdx,24(%rdi)
5430	movq	%r8,32(%rdi)
5431	movq	%r9,40(%rdi)
5432	movq	%r10,48(%rdi)
5433	movq	%r11,56(%rdi)
5434
5435	jbe	.Loop_avx2
5436	leaq	(%rsp),%rbp
5437
5438
5439.cfi_escape	0x0f,0x06,0x76,0x98,0x01,0x06,0x23,0x08
5440
5441.Ldone_avx2:
5442	movq	152(%rbp),%rsi
5443.cfi_def_cfa	%rsi,8
5444	vzeroupper
5445	movq	-48(%rsi),%r15
5446.cfi_restore	%r15
5447	movq	-40(%rsi),%r14
5448.cfi_restore	%r14
5449	movq	-32(%rsi),%r13
5450.cfi_restore	%r13
5451	movq	-24(%rsi),%r12
5452.cfi_restore	%r12
5453	movq	-16(%rsi),%rbp
5454.cfi_restore	%rbp
5455	movq	-8(%rsi),%rbx
5456.cfi_restore	%rbx
5457	leaq	(%rsi),%rsp
5458.cfi_def_cfa_register	%rsp
5459.Lepilogue_avx2:
5460	.byte	0xf3,0xc3
5461.cfi_endproc
5462.size	sha512_block_data_order_avx2,.-sha512_block_data_order_avx2
5463	.section ".note.gnu.property", "a"
5464	.p2align 3
5465	.long 1f - 0f
5466	.long 4f - 1f
5467	.long 5
54680:
5469	# "GNU" encoded with .byte, since .asciz isn't supported
5470	# on Solaris.
5471	.byte 0x47
5472	.byte 0x4e
5473	.byte 0x55
5474	.byte 0
54751:
5476	.p2align 3
5477	.long 0xc0000002
5478	.long 3f - 2f
54792:
5480	.long 3
54813:
5482	.p2align 3
54834:
5484