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