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