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