xref: /freebsd/sys/contrib/openzfs/module/icp/asm-ppc64/blake3/b3_ppc64le_sse2.S (revision 61145dc2b94f12f6a47344fb9aac702321880e43)
1// SPDX-License-Identifier: CDDL-1.0
2/*
3 * CDDL HEADER START
4 *
5 * The contents of this file are subject to the terms of the
6 * Common Development and Distribution License (the "License").
7 * You may not use this file except in compliance with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or https://opensource.org/licenses/CDDL-1.0.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22
23/*
24 * Based on BLAKE3 v1.3.1, https://github.com/BLAKE3-team/BLAKE3
25 * Copyright (c) 2019-2022 Samuel Neves and Matthew Krupcale
26 * Copyright (c) 2022 Tino Reichardt <milky-zfs@mcmilk.de>
27 *
28 * This is converted assembly: SSE2 -> POWER8 PPC64 Little Endian
29 * Used tools: SIMDe https://github.com/simd-everywhere/simde
30 */
31
32#if (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
33	.text
34	.abiversion 2
35	.section	.rodata.cst16,"aM",@progbits,16
36	.p2align	4
37.LCPI0_0:
38	.byte	29
39	.byte	28
40	.byte	31
41	.byte	30
42	.byte	25
43	.byte	24
44	.byte	27
45	.byte	26
46	.byte	21
47	.byte	20
48	.byte	23
49	.byte	22
50	.byte	17
51	.byte	16
52	.byte	19
53	.byte	18
54.LCPI0_1:
55	.long	1779033703
56	.long	3144134277
57	.long	1013904242
58	.long	2773480762
59.LCPI0_2:
60	.byte	27
61	.byte	26
62	.byte	25
63	.byte	24
64	.byte	19
65	.byte	18
66	.byte	17
67	.byte	16
68	.byte	11
69	.byte	10
70	.byte	9
71	.byte	8
72	.byte	3
73	.byte	2
74	.byte	1
75	.byte	0
76.LCPI0_3:
77	.byte	19
78	.byte	18
79	.byte	17
80	.byte	16
81	.byte	11
82	.byte	10
83	.byte	9
84	.byte	8
85	.byte	3
86	.byte	2
87	.byte	1
88	.byte	0
89	.byte	27
90	.byte	26
91	.byte	25
92	.byte	24
93.LCPI0_4:
94	.byte	23
95	.byte	22
96	.byte	21
97	.byte	20
98	.byte	27
99	.byte	26
100	.byte	25
101	.byte	24
102	.byte	11
103	.byte	10
104	.byte	9
105	.byte	8
106	.byte	3
107	.byte	2
108	.byte	1
109	.byte	0
110.LCPI0_5:
111	.byte	23
112	.byte	22
113	.byte	21
114	.byte	20
115	.byte	23
116	.byte	22
117	.byte	21
118	.byte	20
119	.byte	3
120	.byte	2
121	.byte	1
122	.byte	0
123	.byte	3
124	.byte	2
125	.byte	1
126	.byte	0
127.LCPI0_6:
128	.short	1
129	.short	2
130	.short	4
131	.short	8
132	.short	16
133	.short	32
134	.short	64
135	.short	128
136.LCPI0_7:
137	.short	0
138	.short	0
139	.short	4
140	.short	8
141	.short	0
142	.short	0
143	.short	64
144	.short	128
145.LCPI0_8:
146	.byte	19
147	.byte	18
148	.byte	17
149	.byte	16
150	.byte	19
151	.byte	18
152	.byte	17
153	.byte	16
154	.byte	31
155	.byte	30
156	.byte	29
157	.byte	28
158	.byte	31
159	.byte	30
160	.byte	29
161	.byte	28
162.LCPI0_9:
163	.short	0
164	.short	0
165	.short	0
166	.short	0
167	.short	0
168	.short	0
169	.short	64
170	.short	128
171.LCPI0_10:
172	.byte	31
173	.byte	30
174	.byte	29
175	.byte	28
176	.byte	7
177	.byte	6
178	.byte	5
179	.byte	4
180	.byte	3
181	.byte	2
182	.byte	1
183	.byte	0
184	.byte	27
185	.byte	26
186	.byte	25
187	.byte	24
188.LCPI0_11:
189	.byte	31
190	.byte	30
191	.byte	29
192	.byte	28
193	.byte	23
194	.byte	22
195	.byte	21
196	.byte	20
197	.byte	19
198	.byte	18
199	.byte	17
200	.byte	16
201	.byte	27
202	.byte	26
203	.byte	25
204	.byte	24
205.LCPI0_12:
206	.byte	27
207	.byte	26
208	.byte	25
209	.byte	24
210	.byte	11
211	.byte	10
212	.byte	9
213	.byte	8
214	.byte	15
215	.byte	14
216	.byte	13
217	.byte	12
218	.byte	31
219	.byte	30
220	.byte	29
221	.byte	28
222.LCPI0_13:
223	.byte	31
224	.byte	30
225	.byte	29
226	.byte	28
227	.byte	15
228	.byte	14
229	.byte	13
230	.byte	12
231	.byte	11
232	.byte	10
233	.byte	9
234	.byte	8
235	.byte	27
236	.byte	26
237	.byte	25
238	.byte	24
239.LCPI0_14:
240	.byte	27
241	.byte	26
242	.byte	25
243	.byte	24
244	.byte	11
245	.byte	10
246	.byte	9
247	.byte	8
248	.byte	3
249	.byte	2
250	.byte	1
251	.byte	0
252	.byte	23
253	.byte	22
254	.byte	21
255	.byte	20
256	.text
257	.globl	zfs_blake3_compress_in_place_sse2
258	.p2align	2
259	.type	zfs_blake3_compress_in_place_sse2,@function
260zfs_blake3_compress_in_place_sse2:
261.Lfunc_begin0:
262	.cfi_startproc
263.Lfunc_gep0:
264	addis 2, 12, .TOC.-.Lfunc_gep0@ha
265	addi 2, 2, .TOC.-.Lfunc_gep0@l
266.Lfunc_lep0:
267	.localentry	zfs_blake3_compress_in_place_sse2, .Lfunc_lep0-.Lfunc_gep0
268	li 8, -64
269	mtvsrd 35, 5
270	li 5, 16
271	lfdx 0, 0, 4
272	vspltisw 12, 9
273	stxvd2x 60, 1, 8
274	li 8, -48
275	mtvsrd 36, 7
276	lfd 2, 16(4)
277	stxvd2x 61, 1, 8
278	li 8, -32
279	lfd 1, 8(4)
280	mtvsrwz 37, 6
281	rldicl 6, 6, 32, 32
282	addis 7, 2, .LCPI0_2@toc@ha
283	stxvd2x 62, 1, 8
284	li 8, -16
285	addi 7, 7, .LCPI0_2@toc@l
286	stxvd2x 63, 1, 8
287	li 8, 0
288	lvx 9, 0, 7
289	li 7, 48
290	mtvsrd 34, 8
291	xxmrghd	32, 1, 0
292	lxvd2x 0, 0, 3
293	lxvd2x 1, 3, 5
294	lfd 3, 24(4)
295	addis 8, 2, .LCPI0_5@toc@ha
296	vmrghb 3, 2, 3
297	addi 8, 8, .LCPI0_5@toc@l
298	vmrghb 4, 2, 4
299	vspltb 2, 2, 7
300	xxmrghd	33, 3, 2
301	vpkudum 7, 1, 0
302	vmrglh 3, 2, 3
303	vmrglh 2, 2, 4
304	mtvsrwz 36, 6
305	addis 6, 2, .LCPI0_0@toc@ha
306	addi 6, 6, .LCPI0_0@toc@l
307	vperm 10, 1, 0, 9
308	vmrghw 4, 4, 5
309	xxswapd	37, 1
310	lxvd2x 1, 4, 7
311	addis 7, 2, .LCPI0_8@toc@ha
312	addi 7, 7, .LCPI0_8@toc@l
313	vmrglw 2, 2, 3
314	xxswapd	35, 0
315	xxswapd	41, 1
316	xxspltd	62, 42, 1
317	vadduwm 3, 7, 3
318	vadduwm 6, 3, 5
319	xxmrgld	36, 34, 36
320	lvx 2, 0, 6
321	addis 6, 2, .LCPI0_1@toc@ha
322	addi 6, 6, .LCPI0_1@toc@l
323	xxlxor 35, 38, 36
324	lvx 4, 0, 6
325	li 6, 32
326	lxvd2x 0, 4, 6
327	addis 4, 2, .LCPI0_3@toc@ha
328	addis 6, 2, .LCPI0_7@toc@ha
329	vperm 8, 3, 3, 2
330	vspltisw 3, 10
331	addi 4, 4, .LCPI0_3@toc@l
332	addi 6, 6, .LCPI0_7@toc@l
333	vadduwm 3, 3, 3
334	vadduwm 11, 8, 4
335	xxlxor 36, 43, 37
336	vadduwm 5, 6, 10
337	vrlw 0, 4, 3
338	vspltisw 4, 12
339	vadduwm 4, 4, 4
340	vadduwm 1, 0, 5
341	xxlxor 37, 33, 40
342	xxswapd	40, 0
343	vrlw 6, 5, 4
344	vspltisw 5, -16
345	vpkudum 13, 9, 8
346	vsubuwm 5, 12, 5
347	lvx 12, 0, 4
348	addis 4, 2, .LCPI0_4@toc@ha
349	addi 4, 4, .LCPI0_4@toc@l
350	vadduwm 11, 6, 11
351	xxswapd	0, 38
352	vadduwm 1, 1, 13
353	xxsldwi 50, 45, 45, 1
354	xxlxor 32, 43, 32
355	xxsldwi 43, 43, 43, 3
356	xxsldwi 33, 33, 33, 1
357	vperm 12, 8, 9, 12
358	vrlw 0, 0, 5
359	vadduwm 1, 0, 1
360	xxlxor 38, 33, 0
361	vadduwm 1, 1, 12
362	vperm 6, 6, 6, 2
363	vadduwm 15, 6, 11
364	lvx 11, 0, 4
365	addis 4, 2, .LCPI0_6@toc@ha
366	addi 4, 4, .LCPI0_6@toc@l
367	xxlxor 32, 47, 32
368	lvx 17, 0, 4
369	addis 4, 2, .LCPI0_9@toc@ha
370	vperm 14, 10, 7, 11
371	addi 4, 4, .LCPI0_9@toc@l
372	vrlw 0, 0, 3
373	vadduwm 1, 0, 1
374	xxlxor 38, 33, 38
375	vrlw 6, 6, 4
376	vadduwm 8, 6, 15
377	xxswapd	0, 38
378	lvx 6, 0, 8
379	xxlxor 32, 40, 32
380	xxsldwi 40, 40, 40, 1
381	vperm 13, 12, 18, 6
382	vrlw 9, 0, 5
383	vadduwm 0, 1, 14
384	lvx 1, 0, 7
385	xxsldwi 46, 46, 46, 3
386	xxsldwi 32, 32, 32, 3
387	vperm 7, 7, 7, 1
388	vadduwm 15, 9, 0
389	xxlxor 32, 47, 0
390	vperm 16, 0, 0, 2
391	lvx 0, 0, 6
392	addis 6, 2, .LCPI0_10@toc@ha
393	vcmpequh 0, 0, 17
394	vadduwm 19, 16, 8
395	xxlxor 40, 51, 41
396	xxsel 45, 39, 45, 32
397	vrlw 31, 8, 3
398	lvx 8, 0, 4
399	addis 4, 2, .LCPI0_11@toc@ha
400	addi 4, 4, .LCPI0_11@toc@l
401	vcmpequh 7, 8, 17
402	vadduwm 8, 15, 13
403	vadduwm 15, 31, 8
404	lvx 8, 0, 4
405	addi 4, 6, .LCPI0_10@toc@l
406	lvx 17, 0, 4
407	addis 4, 2, .LCPI0_12@toc@ha
408	xxlxor 41, 47, 48
409	xxsldwi 47, 47, 47, 1
410	addi 4, 4, .LCPI0_12@toc@l
411	xxlnor 48, 39, 39
412	vrlw 29, 9, 4
413	vperm 9, 16, 16, 8
414	xxland 48, 50, 39
415	vperm 17, 30, 12, 17
416	vperm 16, 16, 16, 8
417	vmrghw 12, 12, 10
418	lvx 10, 0, 4
419	addis 4, 2, .LCPI0_13@toc@ha
420	vadduwm 19, 29, 19
421	addi 4, 4, .LCPI0_13@toc@l
422	xxlxor 63, 51, 63
423	xxsldwi 51, 51, 51, 3
424	xxland 0, 49, 41
425	vrlw 17, 31, 5
426	xxlor 48, 0, 48
427	xxswapd	0, 61
428	vperm 18, 12, 18, 10
429	vadduwm 15, 15, 16
430	xxland 60, 48, 39
431	vadduwm 15, 17, 15
432	vperm 28, 28, 28, 8
433	xxlxor 63, 47, 0
434	vadduwm 15, 15, 18
435	vperm 31, 31, 31, 2
436	vperm 30, 18, 16, 6
437	vadduwm 19, 31, 19
438	xxlxor 44, 51, 49
439	vrlw 12, 12, 3
440	vadduwm 15, 12, 15
441	xxlxor 49, 47, 63
442	vperm 31, 13, 14, 11
443	vrlw 17, 17, 4
444	vperm 14, 14, 14, 1
445	vadduwm 15, 15, 31
446	vadduwm 19, 17, 19
447	xxswapd	0, 49
448	xxsldwi 47, 47, 47, 3
449	xxsel 46, 46, 62, 32
450	xxlxor 44, 51, 44
451	xxsldwi 51, 51, 51, 1
452	vrlw 12, 12, 5
453	vadduwm 15, 12, 15
454	xxlxor 49, 47, 0
455	vperm 17, 17, 17, 2
456	vadduwm 19, 17, 19
457	xxlxor 44, 51, 44
458	vrlw 29, 12, 3
459	vadduwm 12, 15, 14
460	vadduwm 15, 29, 12
461	lvx 12, 0, 4
462	addis 4, 2, .LCPI0_14@toc@ha
463	addi 4, 4, .LCPI0_14@toc@l
464	xxlxor 49, 47, 49
465	xxsldwi 47, 47, 47, 1
466	vperm 30, 13, 18, 12
467	vrlw 17, 17, 4
468	vmrghw 13, 18, 13
469	xxland 0, 62, 41
470	vadduwm 19, 17, 19
471	vperm 16, 13, 16, 10
472	xxlxor 61, 51, 61
473	xxsldwi 50, 51, 51, 3
474	xxsldwi 51, 63, 63, 3
475	vrlw 30, 29, 5
476	xxlor 61, 60, 0
477	xxswapd	0, 49
478	vperm 31, 14, 19, 11
479	vadduwm 15, 15, 29
480	vperm 19, 19, 19, 1
481	vadduwm 15, 30, 15
482	xxlxor 49, 47, 0
483	vadduwm 15, 15, 16
484	vperm 17, 17, 17, 2
485	vadduwm 18, 17, 18
486	xxlxor 45, 50, 62
487	vperm 30, 16, 29, 6
488	vrlw 13, 13, 3
489	vadduwm 15, 13, 15
490	xxlxor 49, 47, 49
491	vadduwm 15, 15, 31
492	xxsldwi 63, 63, 63, 3
493	vrlw 17, 17, 4
494	xxsldwi 47, 47, 47, 3
495	vadduwm 18, 17, 18
496	xxswapd	0, 49
497	xxlxor 45, 50, 45
498	xxsldwi 50, 50, 50, 1
499	vrlw 13, 13, 5
500	vadduwm 15, 13, 15
501	xxlxor 49, 47, 0
502	vperm 17, 17, 17, 2
503	vadduwm 18, 17, 18
504	xxlxor 45, 50, 45
505	vrlw 28, 13, 3
506	xxsel 45, 51, 62, 32
507	xxland 51, 61, 39
508	vperm 30, 14, 16, 12
509	vadduwm 15, 15, 13
510	vperm 19, 19, 19, 8
511	vmrghw 14, 16, 14
512	vadduwm 15, 28, 15
513	xxlxor 49, 47, 49
514	xxsldwi 47, 47, 47, 1
515	xxland 0, 62, 41
516	vrlw 17, 17, 4
517	xxlor 51, 51, 0
518	vadduwm 15, 15, 19
519	vadduwm 18, 17, 18
520	xxswapd	0, 49
521	xxlxor 60, 50, 60
522	xxsldwi 48, 50, 50, 3
523	vperm 18, 14, 29, 10
524	vrlw 30, 28, 5
525	vperm 29, 18, 19, 6
526	vadduwm 15, 30, 15
527	xxlxor 49, 47, 0
528	vadduwm 15, 15, 18
529	vperm 17, 17, 17, 2
530	vadduwm 16, 17, 16
531	xxlxor 46, 48, 62
532	vperm 30, 13, 31, 11
533	vrlw 14, 14, 3
534	vperm 31, 31, 31, 1
535	vadduwm 15, 14, 15
536	xxlxor 49, 47, 49
537	vadduwm 15, 15, 30
538	vrlw 17, 17, 4
539	xxsldwi 47, 47, 47, 3
540	vadduwm 16, 17, 16
541	xxswapd	0, 49
542	xxlxor 46, 48, 46
543	xxsldwi 48, 48, 48, 1
544	vrlw 14, 14, 5
545	vadduwm 15, 14, 15
546	xxlxor 49, 47, 0
547	vperm 17, 17, 17, 2
548	vadduwm 16, 17, 16
549	xxlxor 46, 48, 46
550	vrlw 28, 14, 3
551	xxsel 46, 63, 61, 32
552	xxland 63, 51, 39
553	vperm 29, 13, 18, 12
554	vadduwm 15, 15, 14
555	vperm 31, 31, 31, 8
556	vmrghw 13, 18, 13
557	vadduwm 15, 28, 15
558	xxlxor 49, 47, 49
559	xxsldwi 47, 47, 47, 1
560	xxland 0, 61, 41
561	vrlw 17, 17, 4
562	xxlor 63, 63, 0
563	vperm 13, 13, 19, 10
564	xxsldwi 51, 62, 62, 3
565	vadduwm 15, 15, 31
566	vperm 30, 14, 19, 11
567	vadduwm 16, 17, 16
568	xxswapd	0, 49
569	xxlxor 60, 48, 60
570	xxsldwi 48, 48, 48, 3
571	vrlw 29, 28, 5
572	vadduwm 15, 29, 15
573	xxlxor 49, 47, 0
574	vadduwm 15, 15, 13
575	vperm 17, 17, 17, 2
576	vadduwm 16, 17, 16
577	xxlxor 50, 48, 61
578	vrlw 18, 18, 3
579	vadduwm 15, 18, 15
580	xxlxor 49, 47, 49
581	vadduwm 15, 15, 30
582	vrlw 17, 17, 4
583	xxsldwi 47, 47, 47, 3
584	vadduwm 11, 17, 16
585	xxswapd	0, 49
586	xxlxor 48, 43, 50
587	xxsldwi 43, 43, 43, 1
588	vperm 18, 19, 19, 1
589	vrlw 16, 16, 5
590	vperm 19, 13, 31, 6
591	vadduwm 15, 16, 15
592	xxlxor 49, 47, 0
593	vperm 17, 17, 17, 2
594	vadduwm 29, 17, 11
595	xxlxor 43, 61, 48
596	vrlw 16, 11, 3
597	xxsel 43, 50, 51, 32
598	xxland 50, 63, 39
599	vperm 19, 14, 13, 12
600	vadduwm 15, 15, 11
601	vperm 18, 18, 18, 8
602	vmrghw 13, 13, 14
603	vadduwm 15, 16, 15
604	xxlxor 49, 47, 49
605	xxsldwi 47, 47, 47, 1
606	xxland 0, 51, 41
607	lvx 19, 0, 4
608	vrlw 17, 17, 4
609	xxlor 50, 50, 0
610	vperm 13, 13, 31, 10
611	xxsldwi 63, 62, 62, 3
612	vadduwm 15, 15, 18
613	vperm 19, 11, 31, 19
614	vadduwm 29, 17, 29
615	xxswapd	0, 49
616	vperm 1, 31, 31, 1
617	xxlxor 48, 61, 48
618	xxsldwi 46, 61, 61, 3
619	vperm 6, 13, 18, 6
620	vrlw 16, 16, 5
621	xxsel 32, 33, 38, 32
622	xxland 38, 50, 39
623	vadduwm 15, 16, 15
624	vperm 7, 11, 13, 12
625	xxlxor 49, 47, 0
626	vadduwm 15, 15, 13
627	vperm 17, 17, 17, 2
628	vperm 6, 6, 6, 8
629	vadduwm 14, 17, 14
630	xxlxor 48, 46, 48
631	vrlw 16, 16, 3
632	vadduwm 15, 16, 15
633	xxlxor 49, 47, 49
634	xxsldwi 47, 47, 47, 3
635	vrlw 17, 17, 4
636	vadduwm 15, 15, 19
637	vadduwm 14, 17, 14
638	xxswapd	0, 49
639	xxlxor 48, 46, 48
640	xxsldwi 46, 46, 46, 1
641	vrlw 16, 16, 5
642	vadduwm 15, 16, 15
643	xxlxor 49, 47, 0
644	vadduwm 0, 15, 0
645	vperm 17, 17, 17, 2
646	xxland 0, 39, 41
647	xxlor 38, 38, 0
648	vadduwm 14, 17, 14
649	xxlxor 48, 46, 48
650	vrlw 16, 16, 3
651	vadduwm 0, 16, 0
652	xxlxor 33, 32, 49
653	xxsldwi 32, 32, 32, 1
654	vrlw 1, 1, 4
655	vadduwm 0, 0, 6
656	vadduwm 8, 1, 14
657	xxswapd	0, 33
658	xxlxor 44, 40, 48
659	xxsldwi 38, 40, 40, 3
660	vrlw 7, 12, 5
661	vadduwm 0, 7, 0
662	xxlxor 33, 32, 0
663	vperm 2, 1, 1, 2
664	vmrghw 1, 13, 11
665	vadduwm 6, 2, 6
666	vperm 1, 1, 18, 10
667	xxlxor 39, 38, 39
668	vrlw 3, 7, 3
669	vadduwm 0, 0, 1
670	vadduwm 0, 3, 0
671	xxlxor 34, 32, 34
672	xxsldwi 0, 32, 32, 3
673	vrlw 2, 2, 4
674	vadduwm 4, 2, 6
675	xxswapd	2, 34
676	xxlxor 35, 36, 35
677	xxsldwi 1, 36, 36, 1
678	vrlw 3, 3, 5
679	xxlxor 0, 1, 0
680	xxswapd	0, 0
681	xxlxor 1, 35, 2
682	stxvd2x 0, 0, 3
683	xxswapd	1, 1
684	stxvd2x 1, 3, 5
685	li 3, -16
686	lxvd2x 63, 1, 3
687	li 3, -32
688	lxvd2x 62, 1, 3
689	li 3, -48
690	lxvd2x 61, 1, 3
691	li 3, -64
692	lxvd2x 60, 1, 3
693	blr
694	.long	0
695	.quad	0
696.Lfunc_end0:
697	.size	zfs_blake3_compress_in_place_sse2, .Lfunc_end0-.Lfunc_begin0
698	.cfi_endproc
699
700	.section	.rodata.cst16,"aM",@progbits,16
701	.p2align	4
702.LCPI1_0:
703	.byte	29
704	.byte	28
705	.byte	31
706	.byte	30
707	.byte	25
708	.byte	24
709	.byte	27
710	.byte	26
711	.byte	21
712	.byte	20
713	.byte	23
714	.byte	22
715	.byte	17
716	.byte	16
717	.byte	19
718	.byte	18
719.LCPI1_1:
720	.long	1779033703
721	.long	3144134277
722	.long	1013904242
723	.long	2773480762
724.LCPI1_2:
725	.byte	27
726	.byte	26
727	.byte	25
728	.byte	24
729	.byte	19
730	.byte	18
731	.byte	17
732	.byte	16
733	.byte	11
734	.byte	10
735	.byte	9
736	.byte	8
737	.byte	3
738	.byte	2
739	.byte	1
740	.byte	0
741.LCPI1_3:
742	.byte	19
743	.byte	18
744	.byte	17
745	.byte	16
746	.byte	11
747	.byte	10
748	.byte	9
749	.byte	8
750	.byte	3
751	.byte	2
752	.byte	1
753	.byte	0
754	.byte	27
755	.byte	26
756	.byte	25
757	.byte	24
758.LCPI1_4:
759	.byte	23
760	.byte	22
761	.byte	21
762	.byte	20
763	.byte	27
764	.byte	26
765	.byte	25
766	.byte	24
767	.byte	11
768	.byte	10
769	.byte	9
770	.byte	8
771	.byte	3
772	.byte	2
773	.byte	1
774	.byte	0
775.LCPI1_5:
776	.byte	23
777	.byte	22
778	.byte	21
779	.byte	20
780	.byte	23
781	.byte	22
782	.byte	21
783	.byte	20
784	.byte	3
785	.byte	2
786	.byte	1
787	.byte	0
788	.byte	3
789	.byte	2
790	.byte	1
791	.byte	0
792.LCPI1_6:
793	.short	1
794	.short	2
795	.short	4
796	.short	8
797	.short	16
798	.short	32
799	.short	64
800	.short	128
801.LCPI1_7:
802	.short	0
803	.short	0
804	.short	4
805	.short	8
806	.short	0
807	.short	0
808	.short	64
809	.short	128
810.LCPI1_8:
811	.byte	19
812	.byte	18
813	.byte	17
814	.byte	16
815	.byte	19
816	.byte	18
817	.byte	17
818	.byte	16
819	.byte	31
820	.byte	30
821	.byte	29
822	.byte	28
823	.byte	31
824	.byte	30
825	.byte	29
826	.byte	28
827.LCPI1_9:
828	.short	0
829	.short	0
830	.short	0
831	.short	0
832	.short	0
833	.short	0
834	.short	64
835	.short	128
836.LCPI1_10:
837	.byte	31
838	.byte	30
839	.byte	29
840	.byte	28
841	.byte	7
842	.byte	6
843	.byte	5
844	.byte	4
845	.byte	3
846	.byte	2
847	.byte	1
848	.byte	0
849	.byte	27
850	.byte	26
851	.byte	25
852	.byte	24
853.LCPI1_11:
854	.byte	31
855	.byte	30
856	.byte	29
857	.byte	28
858	.byte	23
859	.byte	22
860	.byte	21
861	.byte	20
862	.byte	19
863	.byte	18
864	.byte	17
865	.byte	16
866	.byte	27
867	.byte	26
868	.byte	25
869	.byte	24
870.LCPI1_12:
871	.byte	27
872	.byte	26
873	.byte	25
874	.byte	24
875	.byte	11
876	.byte	10
877	.byte	9
878	.byte	8
879	.byte	15
880	.byte	14
881	.byte	13
882	.byte	12
883	.byte	31
884	.byte	30
885	.byte	29
886	.byte	28
887.LCPI1_13:
888	.byte	31
889	.byte	30
890	.byte	29
891	.byte	28
892	.byte	15
893	.byte	14
894	.byte	13
895	.byte	12
896	.byte	11
897	.byte	10
898	.byte	9
899	.byte	8
900	.byte	27
901	.byte	26
902	.byte	25
903	.byte	24
904.LCPI1_14:
905	.byte	27
906	.byte	26
907	.byte	25
908	.byte	24
909	.byte	11
910	.byte	10
911	.byte	9
912	.byte	8
913	.byte	3
914	.byte	2
915	.byte	1
916	.byte	0
917	.byte	23
918	.byte	22
919	.byte	21
920	.byte	20
921	.text
922	.globl	zfs_blake3_compress_xof_sse2
923	.p2align	2
924	.type	zfs_blake3_compress_xof_sse2,@function
925zfs_blake3_compress_xof_sse2:
926.Lfunc_begin1:
927	.cfi_startproc
928.Lfunc_gep1:
929	addis 2, 12, .TOC.-.Lfunc_gep1@ha
930	addi 2, 2, .TOC.-.Lfunc_gep1@l
931.Lfunc_lep1:
932	.localentry	zfs_blake3_compress_xof_sse2, .Lfunc_lep1-.Lfunc_gep1
933	li 9, -80
934	mtvsrd 35, 5
935	li 5, 16
936	lfdx 0, 0, 4
937	addis 10, 2, .LCPI1_2@toc@ha
938	vspltisw 12, 9
939	std 30, -16(1)
940	addis 12, 2, .LCPI1_8@toc@ha
941	addis 30, 2, .LCPI1_5@toc@ha
942	addis 11, 2, .LCPI1_7@toc@ha
943	stxvd2x 60, 1, 9
944	li 9, -64
945	mtvsrd 36, 7
946	lfd 2, 16(4)
947	addi 10, 10, .LCPI1_2@toc@l
948	addi 12, 12, .LCPI1_8@toc@l
949	addi 11, 11, .LCPI1_7@toc@l
950	stxvd2x 61, 1, 9
951	li 9, -48
952	lfd 3, 24(4)
953	mtvsrwz 37, 6
954	rldicl 6, 6, 32, 32
955	lvx 9, 0, 10
956	stxvd2x 62, 1, 9
957	li 9, -32
958	li 10, 32
959	stxvd2x 63, 1, 9
960	li 9, 0
961	mtvsrd 34, 9
962	xxmrghd	33, 3, 2
963	lfd 1, 8(4)
964	vmrghb 3, 2, 3
965	vmrghb 4, 2, 4
966	vspltb 2, 2, 7
967	xxmrghd	32, 1, 0
968	lxvd2x 0, 0, 3
969	lxvd2x 1, 3, 5
970	vpkudum 7, 1, 0
971	vmrglh 3, 2, 3
972	vmrglh 2, 2, 4
973	mtvsrwz 36, 6
974	addis 6, 2, .LCPI1_0@toc@ha
975	addi 6, 6, .LCPI1_0@toc@l
976	vperm 10, 1, 0, 9
977	vmrghw 4, 4, 5
978	xxswapd	37, 1
979	vmrglw 2, 2, 3
980	xxswapd	35, 0
981	lxvd2x 0, 4, 10
982	xxspltd	62, 42, 1
983	vadduwm 3, 7, 3
984	vadduwm 6, 3, 5
985	xxmrgld	36, 34, 36
986	lvx 2, 0, 6
987	addis 6, 2, .LCPI1_1@toc@ha
988	addi 6, 6, .LCPI1_1@toc@l
989	xxlxor 35, 38, 36
990	lvx 4, 0, 6
991	li 6, 48
992	lxvd2x 1, 4, 6
993	addis 4, 2, .LCPI1_3@toc@ha
994	vperm 8, 3, 3, 2
995	vspltisw 3, 10
996	addi 4, 4, .LCPI1_3@toc@l
997	xxswapd	41, 1
998	vadduwm 3, 3, 3
999	vadduwm 11, 8, 4
1000	xxlxor 36, 43, 37
1001	vadduwm 5, 6, 10
1002	vrlw 0, 4, 3
1003	vspltisw 4, 12
1004	vadduwm 4, 4, 4
1005	vadduwm 1, 0, 5
1006	xxlxor 37, 33, 40
1007	xxswapd	40, 0
1008	vrlw 6, 5, 4
1009	vspltisw 5, -16
1010	vpkudum 13, 9, 8
1011	vsubuwm 5, 12, 5
1012	lvx 12, 0, 4
1013	addis 4, 2, .LCPI1_4@toc@ha
1014	addi 4, 4, .LCPI1_4@toc@l
1015	vadduwm 11, 6, 11
1016	xxswapd	0, 38
1017	vadduwm 1, 1, 13
1018	xxsldwi 50, 45, 45, 1
1019	xxlxor 32, 43, 32
1020	xxsldwi 43, 43, 43, 3
1021	xxsldwi 33, 33, 33, 1
1022	vperm 12, 8, 9, 12
1023	vrlw 0, 0, 5
1024	vadduwm 1, 0, 1
1025	xxlxor 38, 33, 0
1026	vadduwm 1, 1, 12
1027	vperm 6, 6, 6, 2
1028	vadduwm 15, 6, 11
1029	lvx 11, 0, 4
1030	addis 4, 2, .LCPI1_6@toc@ha
1031	addi 4, 4, .LCPI1_6@toc@l
1032	xxlxor 32, 47, 32
1033	lvx 17, 0, 4
1034	addi 4, 30, .LCPI1_5@toc@l
1035	vperm 14, 10, 7, 11
1036	vrlw 0, 0, 3
1037	vadduwm 1, 0, 1
1038	xxlxor 38, 33, 38
1039	vrlw 6, 6, 4
1040	vadduwm 8, 6, 15
1041	xxswapd	0, 38
1042	lvx 6, 0, 4
1043	addis 4, 2, .LCPI1_9@toc@ha
1044	addi 4, 4, .LCPI1_9@toc@l
1045	xxlxor 32, 40, 32
1046	xxsldwi 40, 40, 40, 1
1047	vperm 13, 12, 18, 6
1048	vrlw 9, 0, 5
1049	vadduwm 0, 1, 14
1050	lvx 1, 0, 12
1051	xxsldwi 46, 46, 46, 3
1052	xxsldwi 32, 32, 32, 3
1053	vperm 7, 7, 7, 1
1054	vadduwm 15, 9, 0
1055	xxlxor 32, 47, 0
1056	vperm 16, 0, 0, 2
1057	lvx 0, 0, 11
1058	addis 11, 2, .LCPI1_10@toc@ha
1059	vcmpequh 0, 0, 17
1060	vadduwm 19, 16, 8
1061	xxlxor 40, 51, 41
1062	xxsel 45, 39, 45, 32
1063	vrlw 31, 8, 3
1064	lvx 8, 0, 4
1065	addis 4, 2, .LCPI1_11@toc@ha
1066	addi 4, 4, .LCPI1_11@toc@l
1067	vcmpequh 7, 8, 17
1068	vadduwm 8, 15, 13
1069	vadduwm 15, 31, 8
1070	lvx 8, 0, 4
1071	addi 4, 11, .LCPI1_10@toc@l
1072	lvx 17, 0, 4
1073	addis 4, 2, .LCPI1_12@toc@ha
1074	xxlxor 41, 47, 48
1075	xxsldwi 47, 47, 47, 1
1076	addi 4, 4, .LCPI1_12@toc@l
1077	xxlnor 48, 39, 39
1078	vrlw 29, 9, 4
1079	vperm 9, 16, 16, 8
1080	xxland 48, 50, 39
1081	vperm 17, 30, 12, 17
1082	vperm 16, 16, 16, 8
1083	vmrghw 12, 12, 10
1084	lvx 10, 0, 4
1085	addis 4, 2, .LCPI1_13@toc@ha
1086	vadduwm 19, 29, 19
1087	addi 4, 4, .LCPI1_13@toc@l
1088	xxlxor 63, 51, 63
1089	xxsldwi 51, 51, 51, 3
1090	xxland 0, 49, 41
1091	vrlw 17, 31, 5
1092	xxlor 48, 0, 48
1093	xxswapd	0, 61
1094	vperm 18, 12, 18, 10
1095	vadduwm 15, 15, 16
1096	xxland 60, 48, 39
1097	vadduwm 15, 17, 15
1098	vperm 28, 28, 28, 8
1099	xxlxor 63, 47, 0
1100	vadduwm 15, 15, 18
1101	vperm 31, 31, 31, 2
1102	vperm 30, 18, 16, 6
1103	vadduwm 19, 31, 19
1104	xxlxor 44, 51, 49
1105	vrlw 12, 12, 3
1106	vadduwm 15, 12, 15
1107	xxlxor 49, 47, 63
1108	vperm 31, 13, 14, 11
1109	vrlw 17, 17, 4
1110	vperm 14, 14, 14, 1
1111	vadduwm 15, 15, 31
1112	vadduwm 19, 17, 19
1113	xxswapd	0, 49
1114	xxsldwi 47, 47, 47, 3
1115	xxsel 46, 46, 62, 32
1116	xxlxor 44, 51, 44
1117	xxsldwi 51, 51, 51, 1
1118	vrlw 12, 12, 5
1119	vadduwm 15, 12, 15
1120	xxlxor 49, 47, 0
1121	vperm 17, 17, 17, 2
1122	vadduwm 19, 17, 19
1123	xxlxor 44, 51, 44
1124	vrlw 29, 12, 3
1125	vadduwm 12, 15, 14
1126	vadduwm 15, 29, 12
1127	lvx 12, 0, 4
1128	addis 4, 2, .LCPI1_14@toc@ha
1129	addi 4, 4, .LCPI1_14@toc@l
1130	xxlxor 49, 47, 49
1131	xxsldwi 47, 47, 47, 1
1132	vperm 30, 13, 18, 12
1133	vrlw 17, 17, 4
1134	vmrghw 13, 18, 13
1135	xxland 0, 62, 41
1136	vadduwm 19, 17, 19
1137	vperm 16, 13, 16, 10
1138	xxlxor 61, 51, 61
1139	xxsldwi 50, 51, 51, 3
1140	xxsldwi 51, 63, 63, 3
1141	vrlw 30, 29, 5
1142	xxlor 61, 60, 0
1143	xxswapd	0, 49
1144	vperm 31, 14, 19, 11
1145	vadduwm 15, 15, 29
1146	vperm 19, 19, 19, 1
1147	vadduwm 15, 30, 15
1148	xxlxor 49, 47, 0
1149	vadduwm 15, 15, 16
1150	vperm 17, 17, 17, 2
1151	vadduwm 18, 17, 18
1152	xxlxor 45, 50, 62
1153	vperm 30, 16, 29, 6
1154	vrlw 13, 13, 3
1155	vadduwm 15, 13, 15
1156	xxlxor 49, 47, 49
1157	vadduwm 15, 15, 31
1158	xxsldwi 63, 63, 63, 3
1159	vrlw 17, 17, 4
1160	xxsldwi 47, 47, 47, 3
1161	vadduwm 18, 17, 18
1162	xxswapd	0, 49
1163	xxlxor 45, 50, 45
1164	xxsldwi 50, 50, 50, 1
1165	vrlw 13, 13, 5
1166	vadduwm 15, 13, 15
1167	xxlxor 49, 47, 0
1168	vperm 17, 17, 17, 2
1169	vadduwm 18, 17, 18
1170	xxlxor 45, 50, 45
1171	vrlw 28, 13, 3
1172	xxsel 45, 51, 62, 32
1173	xxland 51, 61, 39
1174	vperm 30, 14, 16, 12
1175	vadduwm 15, 15, 13
1176	vperm 19, 19, 19, 8
1177	vmrghw 14, 16, 14
1178	vadduwm 15, 28, 15
1179	xxlxor 49, 47, 49
1180	xxsldwi 47, 47, 47, 1
1181	xxland 0, 62, 41
1182	vrlw 17, 17, 4
1183	xxlor 51, 51, 0
1184	vadduwm 15, 15, 19
1185	vadduwm 18, 17, 18
1186	xxswapd	0, 49
1187	xxlxor 60, 50, 60
1188	xxsldwi 48, 50, 50, 3
1189	vperm 18, 14, 29, 10
1190	vrlw 30, 28, 5
1191	vperm 29, 18, 19, 6
1192	vadduwm 15, 30, 15
1193	xxlxor 49, 47, 0
1194	vadduwm 15, 15, 18
1195	vperm 17, 17, 17, 2
1196	vadduwm 16, 17, 16
1197	xxlxor 46, 48, 62
1198	vperm 30, 13, 31, 11
1199	vrlw 14, 14, 3
1200	vperm 31, 31, 31, 1
1201	vadduwm 15, 14, 15
1202	xxlxor 49, 47, 49
1203	vadduwm 15, 15, 30
1204	vrlw 17, 17, 4
1205	xxsldwi 47, 47, 47, 3
1206	vadduwm 16, 17, 16
1207	xxswapd	0, 49
1208	xxlxor 46, 48, 46
1209	xxsldwi 48, 48, 48, 1
1210	vrlw 14, 14, 5
1211	vadduwm 15, 14, 15
1212	xxlxor 49, 47, 0
1213	vperm 17, 17, 17, 2
1214	vadduwm 16, 17, 16
1215	xxlxor 46, 48, 46
1216	vrlw 28, 14, 3
1217	xxsel 46, 63, 61, 32
1218	xxland 63, 51, 39
1219	vperm 29, 13, 18, 12
1220	vadduwm 15, 15, 14
1221	vperm 31, 31, 31, 8
1222	vmrghw 13, 18, 13
1223	vadduwm 15, 28, 15
1224	xxlxor 49, 47, 49
1225	xxsldwi 47, 47, 47, 1
1226	xxland 0, 61, 41
1227	vrlw 17, 17, 4
1228	xxlor 63, 63, 0
1229	vperm 13, 13, 19, 10
1230	xxsldwi 51, 62, 62, 3
1231	vadduwm 15, 15, 31
1232	vperm 30, 14, 19, 11
1233	vadduwm 16, 17, 16
1234	xxswapd	0, 49
1235	xxlxor 60, 48, 60
1236	xxsldwi 48, 48, 48, 3
1237	vrlw 29, 28, 5
1238	vadduwm 15, 29, 15
1239	xxlxor 49, 47, 0
1240	vadduwm 15, 15, 13
1241	vperm 17, 17, 17, 2
1242	vadduwm 16, 17, 16
1243	xxlxor 50, 48, 61
1244	vrlw 18, 18, 3
1245	vadduwm 15, 18, 15
1246	xxlxor 49, 47, 49
1247	vadduwm 15, 15, 30
1248	vrlw 17, 17, 4
1249	xxsldwi 47, 47, 47, 3
1250	vadduwm 11, 17, 16
1251	xxswapd	0, 49
1252	xxlxor 48, 43, 50
1253	xxsldwi 43, 43, 43, 1
1254	vperm 18, 19, 19, 1
1255	vrlw 16, 16, 5
1256	vperm 19, 13, 31, 6
1257	vadduwm 15, 16, 15
1258	xxlxor 49, 47, 0
1259	vperm 17, 17, 17, 2
1260	vadduwm 29, 17, 11
1261	xxlxor 43, 61, 48
1262	vrlw 16, 11, 3
1263	xxsel 43, 50, 51, 32
1264	xxland 50, 63, 39
1265	vperm 19, 14, 13, 12
1266	vadduwm 15, 15, 11
1267	vperm 18, 18, 18, 8
1268	vmrghw 13, 13, 14
1269	vadduwm 15, 16, 15
1270	xxlxor 49, 47, 49
1271	xxsldwi 47, 47, 47, 1
1272	xxland 0, 51, 41
1273	lvx 19, 0, 4
1274	vrlw 17, 17, 4
1275	xxlor 50, 50, 0
1276	vperm 13, 13, 31, 10
1277	xxsldwi 63, 62, 62, 3
1278	vadduwm 15, 15, 18
1279	vperm 19, 11, 31, 19
1280	vadduwm 29, 17, 29
1281	xxswapd	0, 49
1282	vperm 1, 31, 31, 1
1283	xxlxor 48, 61, 48
1284	xxsldwi 46, 61, 61, 3
1285	vperm 6, 13, 18, 6
1286	vrlw 16, 16, 5
1287	xxsel 32, 33, 38, 32
1288	xxland 38, 50, 39
1289	vadduwm 15, 16, 15
1290	vperm 7, 11, 13, 12
1291	xxlxor 49, 47, 0
1292	vadduwm 15, 15, 13
1293	vperm 17, 17, 17, 2
1294	vperm 6, 6, 6, 8
1295	vadduwm 14, 17, 14
1296	xxlxor 48, 46, 48
1297	vrlw 16, 16, 3
1298	vadduwm 15, 16, 15
1299	xxlxor 49, 47, 49
1300	xxsldwi 47, 47, 47, 3
1301	vrlw 17, 17, 4
1302	vadduwm 15, 15, 19
1303	vadduwm 14, 17, 14
1304	xxswapd	0, 49
1305	xxlxor 48, 46, 48
1306	xxsldwi 46, 46, 46, 1
1307	vrlw 16, 16, 5
1308	vadduwm 15, 16, 15
1309	xxlxor 49, 47, 0
1310	vadduwm 0, 15, 0
1311	vperm 17, 17, 17, 2
1312	xxland 0, 39, 41
1313	xxlor 38, 38, 0
1314	vadduwm 14, 17, 14
1315	xxlxor 48, 46, 48
1316	vrlw 16, 16, 3
1317	vadduwm 0, 16, 0
1318	xxlxor 33, 32, 49
1319	xxsldwi 32, 32, 32, 1
1320	vrlw 1, 1, 4
1321	vadduwm 0, 0, 6
1322	vadduwm 8, 1, 14
1323	xxswapd	0, 33
1324	xxlxor 44, 40, 48
1325	xxsldwi 38, 40, 40, 3
1326	vrlw 7, 12, 5
1327	vadduwm 0, 7, 0
1328	xxlxor 33, 32, 0
1329	vperm 2, 1, 1, 2
1330	vmrghw 1, 13, 11
1331	vadduwm 6, 2, 6
1332	vperm 1, 1, 18, 10
1333	xxlxor 39, 38, 39
1334	vrlw 3, 7, 3
1335	vadduwm 0, 0, 1
1336	vadduwm 0, 3, 0
1337	xxlxor 34, 32, 34
1338	xxsldwi 0, 32, 32, 3
1339	vrlw 2, 2, 4
1340	vadduwm 4, 2, 6
1341	xxswapd	2, 34
1342	xxlxor 35, 36, 35
1343	xxsldwi 1, 36, 36, 1
1344	vrlw 3, 3, 5
1345	xxlxor 0, 1, 0
1346	xxswapd	0, 0
1347	xxlxor 3, 35, 2
1348	stxvd2x 0, 0, 8
1349	xxswapd	3, 3
1350	stxvd2x 3, 8, 5
1351	lfdx 0, 0, 3
1352	lfd 3, 8(3)
1353	xxmrghd	34, 3, 0
1354	xxlxor 0, 1, 34
1355	xxswapd	0, 0
1356	stxvd2x 0, 8, 10
1357	lfd 0, 16(3)
1358	lfd 1, 24(3)
1359	li 3, -32
1360	xxmrghd	34, 1, 0
1361	xxlxor 0, 2, 34
1362	xxswapd	0, 0
1363	stxvd2x 0, 8, 6
1364	lxvd2x 63, 1, 3
1365	li 3, -48
1366	ld 30, -16(1)
1367	lxvd2x 62, 1, 3
1368	li 3, -64
1369	lxvd2x 61, 1, 3
1370	li 3, -80
1371	lxvd2x 60, 1, 3
1372	blr
1373	.long	0
1374	.quad	0
1375.Lfunc_end1:
1376	.size	zfs_blake3_compress_xof_sse2, .Lfunc_end1-.Lfunc_begin1
1377	.cfi_endproc
1378
1379	.globl	zfs_blake3_hash_many_sse2
1380	.p2align	2
1381	.type	zfs_blake3_hash_many_sse2,@function
1382zfs_blake3_hash_many_sse2:
1383.Lfunc_begin2:
1384	.cfi_startproc
1385.Lfunc_gep2:
1386	addis 2, 12, .TOC.-.Lfunc_gep2@ha
1387	addi 2, 2, .TOC.-.Lfunc_gep2@l
1388.Lfunc_lep2:
1389	.localentry	zfs_blake3_hash_many_sse2, .Lfunc_lep2-.Lfunc_gep2
1390	mfocrf 12, 32
1391	mflr 0
1392	std 0, 16(1)
1393	stw 12, 8(1)
1394	stdu 1, -256(1)
1395	.cfi_def_cfa_offset 256
1396	.cfi_offset lr, 16
1397	.cfi_offset r17, -120
1398	.cfi_offset r18, -112
1399	.cfi_offset r19, -104
1400	.cfi_offset r20, -96
1401	.cfi_offset r21, -88
1402	.cfi_offset r22, -80
1403	.cfi_offset r23, -72
1404	.cfi_offset r24, -64
1405	.cfi_offset r25, -56
1406	.cfi_offset r26, -48
1407	.cfi_offset r27, -40
1408	.cfi_offset r28, -32
1409	.cfi_offset r29, -24
1410	.cfi_offset r30, -16
1411	.cfi_offset cr2, 8
1412	std 26, 208(1)
1413	mr	26, 4
1414	cmpldi 1, 4, 4
1415	andi. 4, 8, 1
1416	std 18, 144(1)
1417	std 19, 152(1)
1418	crmove	8, 1
1419	ld 19, 360(1)
1420	lwz 18, 352(1)
1421	std 24, 192(1)
1422	std 25, 200(1)
1423	std 27, 216(1)
1424	std 28, 224(1)
1425	mr	24, 10
1426	mr	28, 6
1427	mr	27, 5
1428	mr	25, 3
1429	std 29, 232(1)
1430	std 30, 240(1)
1431	mr	30, 9
1432	mr	29, 7
1433	std 17, 136(1)
1434	std 20, 160(1)
1435	std 21, 168(1)
1436	std 22, 176(1)
1437	std 23, 184(1)
1438	blt	1, .LBB2_3
1439	li 3, 0
1440	li 4, 1
1441	clrldi	23, 30, 32
1442	isel 22, 4, 3, 8
1443	clrldi	21, 24, 32
1444	clrldi	20, 18, 32
1445.LBB2_2:
1446	mr	3, 25
1447	mr	4, 27
1448	mr	5, 28
1449	mr	6, 29
1450	mr	7, 22
1451	mr	8, 23
1452	mr	9, 21
1453	mr	10, 20
1454	std 19, 32(1)
1455	bl blake3_hash4_sse2
1456	addi 26, 26, -4
1457	addi 3, 29, 4
1458	addi 25, 25, 32
1459	addi 19, 19, 128
1460	cmpldi	26, 3
1461	isel 29, 3, 29, 8
1462	bgt	0, .LBB2_2
1463.LBB2_3:
1464	cmpldi	26, 0
1465	beq	0, .LBB2_11
1466	li 3, 0
1467	li 4, 1
1468	or 21, 24, 30
1469	li 20, 16
1470	addi 24, 1, 96
1471	isel 22, 4, 3, 8
1472.LBB2_5:
1473	lxvd2x 0, 28, 20
1474	ld 23, 0(25)
1475	mr	17, 27
1476	mr	3, 21
1477	stxvd2x 0, 24, 20
1478	lxvd2x 0, 0, 28
1479	stxvd2x 0, 0, 24
1480.LBB2_6:
1481	cmpldi	17, 1
1482	beq	0, .LBB2_8
1483	cmpldi	17, 0
1484	bne	0, .LBB2_9
1485	b .LBB2_10
1486.LBB2_8:
1487	or 3, 3, 18
1488.LBB2_9:
1489	clrldi	7, 3, 56
1490	mr	3, 24
1491	mr	4, 23
1492	li 5, 64
1493	mr	6, 29
1494	bl zfs_blake3_compress_in_place_sse2
1495	addi 23, 23, 64
1496	addi 17, 17, -1
1497	mr	3, 30
1498	b .LBB2_6
1499.LBB2_10:
1500	lxvd2x 0, 24, 20
1501	addi 26, 26, -1
1502	add 29, 29, 22
1503	addi 25, 25, 8
1504	cmpldi	26, 0
1505	stxvd2x 0, 19, 20
1506	lxvd2x 0, 0, 24
1507	stxvd2x 0, 0, 19
1508	addi 19, 19, 32
1509	bne	0, .LBB2_5
1510.LBB2_11:
1511	ld 30, 240(1)
1512	ld 29, 232(1)
1513	ld 28, 224(1)
1514	ld 27, 216(1)
1515	ld 26, 208(1)
1516	ld 25, 200(1)
1517	ld 24, 192(1)
1518	ld 23, 184(1)
1519	ld 22, 176(1)
1520	ld 21, 168(1)
1521	ld 20, 160(1)
1522	ld 19, 152(1)
1523	ld 18, 144(1)
1524	ld 17, 136(1)
1525	addi 1, 1, 256
1526	ld 0, 16(1)
1527	lwz 12, 8(1)
1528	mtocrf 32, 12
1529	mtlr 0
1530	blr
1531	.long	0
1532	.quad	0
1533.Lfunc_end2:
1534	.size	zfs_blake3_hash_many_sse2, .Lfunc_end2-.Lfunc_begin2
1535	.cfi_endproc
1536
1537	.section	.rodata.cst16,"aM",@progbits,16
1538	.p2align	4
1539.LCPI3_0:
1540	.quad	4294967296
1541	.quad	12884901890
1542.LCPI3_1:
1543	.byte	29
1544	.byte	28
1545	.byte	31
1546	.byte	30
1547	.byte	25
1548	.byte	24
1549	.byte	27
1550	.byte	26
1551	.byte	21
1552	.byte	20
1553	.byte	23
1554	.byte	22
1555	.byte	17
1556	.byte	16
1557	.byte	19
1558	.byte	18
1559.LCPI3_2:
1560	.long	1779033703
1561	.long	1779033703
1562	.long	1779033703
1563	.long	1779033703
1564.LCPI3_3:
1565	.long	3144134277
1566	.long	3144134277
1567	.long	3144134277
1568	.long	3144134277
1569.LCPI3_4:
1570	.long	1013904242
1571	.long	1013904242
1572	.long	1013904242
1573	.long	1013904242
1574.LCPI3_5:
1575	.long	2773480762
1576	.long	2773480762
1577	.long	2773480762
1578	.long	2773480762
1579	.text
1580	.p2align	2
1581	.type	blake3_hash4_sse2,@function
1582blake3_hash4_sse2:
1583.Lfunc_begin3:
1584	.cfi_startproc
1585.Lfunc_gep3:
1586	addis 2, 12, .TOC.-.Lfunc_gep3@ha
1587	addi 2, 2, .TOC.-.Lfunc_gep3@l
1588.Lfunc_lep3:
1589	.localentry	blake3_hash4_sse2, .Lfunc_lep3-.Lfunc_gep3
1590	stdu 1, -400(1)
1591	.cfi_def_cfa_offset 400
1592	.cfi_offset r22, -152
1593	.cfi_offset r23, -144
1594	.cfi_offset r24, -136
1595	.cfi_offset r25, -128
1596	.cfi_offset r26, -120
1597	.cfi_offset r27, -112
1598	.cfi_offset r28, -104
1599	.cfi_offset r29, -96
1600	.cfi_offset r30, -88
1601	.cfi_offset f23, -72
1602	.cfi_offset f24, -64
1603	.cfi_offset f25, -56
1604	.cfi_offset f26, -48
1605	.cfi_offset f27, -40
1606	.cfi_offset f28, -32
1607	.cfi_offset f29, -24
1608	.cfi_offset f30, -16
1609	.cfi_offset f31, -8
1610	.cfi_offset v20, -352
1611	.cfi_offset v21, -336
1612	.cfi_offset v22, -320
1613	.cfi_offset v23, -304
1614	.cfi_offset v24, -288
1615	.cfi_offset v25, -272
1616	.cfi_offset v26, -256
1617	.cfi_offset v27, -240
1618	.cfi_offset v28, -224
1619	.cfi_offset v29, -208
1620	.cfi_offset v30, -192
1621	.cfi_offset v31, -176
1622	li 11, 48
1623	li 0, 8
1624	std 30, 312(1)
1625	li 30, 12
1626	li 12, 4
1627	lfiwzx 0, 0, 5
1628	stxvd2x 52, 1, 11
1629	li 11, 64
1630	lfiwzx 2, 5, 0
1631	li 0, 20
1632	lfiwzx 3, 5, 30
1633	stxvd2x 53, 1, 11
1634	li 11, 80
1635	li 30, 24
1636	lfiwzx 4, 5, 0
1637	li 0, 28
1638	stxvd2x 54, 1, 11
1639	li 11, 96
1640	lfiwzx 1, 5, 12
1641	lfiwzx 6, 5, 30
1642	xxspltw 45, 0, 1
1643	cmpldi	4, 0
1644	std 22, 248(1)
1645	stxvd2x 55, 1, 11
1646	li 11, 112
1647	lfiwzx 7, 5, 0
1648	xxspltw 40, 2, 1
1649	std 23, 256(1)
1650	xxspltw 38, 3, 1
1651	xxspltw 50, 4, 1
1652	std 24, 264(1)
1653	std 25, 272(1)
1654	std 26, 280(1)
1655	xxspltw 54, 7, 1
1656	std 27, 288(1)
1657	std 28, 296(1)
1658	std 29, 304(1)
1659	stxvd2x 56, 1, 11
1660	li 11, 128
1661	stfd 23, 328(1)
1662	stxvd2x 57, 1, 11
1663	li 11, 144
1664	stfd 24, 336(1)
1665	stxvd2x 58, 1, 11
1666	li 11, 160
1667	stfd 25, 344(1)
1668	stxvd2x 59, 1, 11
1669	li 11, 176
1670	xxspltw 59, 1, 1
1671	stxvd2x 60, 1, 11
1672	li 11, 192
1673	stfd 26, 352(1)
1674	stxvd2x 61, 1, 11
1675	li 11, 208
1676	stfd 27, 360(1)
1677	stxvd2x 62, 1, 11
1678	li 11, 224
1679	xxspltw 62, 6, 1
1680	stxvd2x 63, 1, 11
1681	li 11, 16
1682	stfd 28, 368(1)
1683	lfiwzx 5, 5, 11
1684	ld 5, 432(1)
1685	stfd 29, 376(1)
1686	stfd 30, 384(1)
1687	stfd 31, 392(1)
1688	xxspltw 61, 5, 1
1689	beq	0, .LBB3_5
1690	addis 30, 2, .LCPI3_0@toc@ha
1691	neg 7, 7
1692	xxleqv 34, 34, 34
1693	addis 28, 2, .LCPI3_2@toc@ha
1694	addis 27, 2, .LCPI3_3@toc@ha
1695	addis 26, 2, .LCPI3_4@toc@ha
1696	addis 25, 2, .LCPI3_5@toc@ha
1697	ld 29, 24(3)
1698	addi 0, 30, .LCPI3_0@toc@l
1699	mtfprwz	1, 7
1700	addis 7, 2, .LCPI3_1@toc@ha
1701	ld 30, 16(3)
1702	lxvd2x 0, 0, 0
1703	mtfprwz	2, 6
1704	rldicl 6, 6, 32, 32
1705	addi 0, 7, .LCPI3_1@toc@l
1706	ld 7, 8(3)
1707	vslw 2, 2, 2
1708	lvx 5, 0, 0
1709	addi 0, 28, .LCPI3_2@toc@l
1710	addi 28, 27, .LCPI3_3@toc@l
1711	addi 27, 26, .LCPI3_4@toc@l
1712	addi 26, 25, .LCPI3_5@toc@l
1713	or 25, 9, 8
1714	li 9, 0
1715	xxspltw 36, 2, 1
1716	xxswapd	35, 0
1717	xxspltw 0, 1, 1
1718	xxland 35, 0, 35
1719	mtfprwz	0, 6
1720	ld 6, 0(3)
1721	addi 3, 3, -8
1722	vadduwm 4, 3, 4
1723	xxlor 35, 35, 34
1724	xxlxor 34, 36, 34
1725	xxlor 9, 36, 36
1726	vspltisw 4, 4
1727	vcmpgtsw 2, 3, 2
1728	xxspltw 35, 0, 1
1729	xxlor 10, 36, 36
1730	vsubuwm 2, 3, 2
1731	xxlor 11, 34, 34
1732	lvx 2, 0, 0
1733	li 0, 32
1734	xxlor 12, 34, 34
1735	lvx 2, 0, 28
1736	li 28, 48
1737	xxlor 13, 34, 34
1738	lvx 2, 0, 27
1739	li 27, 0
1740	xxlor 31, 34, 34
1741	lvx 2, 0, 26
1742	xxlor 30, 34, 34
1743.LBB3_2:
1744	mr	26, 27
1745	addi 27, 27, 1
1746	xxlor 28, 40, 40
1747	cmpld	27, 4
1748	sldi 26, 26, 6
1749	xxlor 24, 45, 45
1750	iseleq	24, 10, 9
1751	add 23, 6, 26
1752	add 22, 30, 26
1753	lxvd2x 0, 6, 26
1754	lxvd2x 1, 7, 26
1755	or 25, 24, 25
1756	add 24, 7, 26
1757	lxvd2x 2, 30, 26
1758	lxvd2x 3, 29, 26
1759	xxlor 29, 38, 38
1760	lxvd2x 4, 23, 11
1761	lxvd2x 6, 24, 11
1762	clrlwi	25, 25, 24
1763	lxvd2x 7, 22, 11
1764	lxvd2x 8, 23, 0
1765	mtfprd	5, 25
1766	add 25, 29, 26
1767	xxswapd	34, 0
1768	lxvd2x 0, 25, 11
1769	xxswapd	36, 1
1770	xxswapd	33, 2
1771	lxvd2x 1, 24, 0
1772	lxvd2x 2, 22, 0
1773	xxswapd	39, 3
1774	xxswapd	32, 4
1775	lxvd2x 3, 25, 0
1776	lxvd2x 4, 23, 28
1777	xxswapd	49, 6
1778	xxswapd	51, 7
1779	lxvd2x 6, 24, 28
1780	xxswapd	58, 8
1781	lxvd2x 7, 22, 28
1782	lxvd2x 8, 25, 28
1783	xxswapd	60, 0
1784	mr	25, 3
1785	xxswapd	57, 1
1786	xxswapd	53, 2
1787	xxswapd	52, 3
1788	xxswapd	56, 4
1789	xxswapd	55, 6
1790	xxswapd	0, 5
1791	xxswapd	40, 7
1792	xxswapd	41, 8
1793	mtctr 12
1794.LBB3_3:
1795	ldu 24, 8(25)
1796	add 24, 24, 26
1797	addi 24, 24, 256
1798	dcbt 0, 24
1799	bdnz .LBB3_3
1800	vmrgew 3, 4, 2
1801	vspltisw 31, 9
1802	mr	25, 8
1803	vmrglw 10, 4, 2
1804	vspltisw 14, 10
1805	vmrghw 6, 4, 2
1806	xxspltw 0, 0, 3
1807	vmrgew 4, 17, 0
1808	vmrglw 11, 17, 0
1809	vmrghw 16, 17, 0
1810	vmrgew 0, 25, 26
1811	vmrgew 13, 7, 1
1812	vmrglw 2, 7, 1
1813	vmrghw 7, 7, 1
1814	xxlor 25, 36, 36
1815	vmrgew 4, 28, 19
1816	xxlor 26, 32, 32
1817	vmrglw 0, 25, 26
1818	vmrglw 1, 28, 19
1819	xxmrgld	47, 34, 42
1820	xxlor 44, 28, 28
1821	vmrghw 25, 25, 26
1822	xxlor 23, 36, 36
1823	vmrghw 4, 28, 19
1824	vspltisw 19, -16
1825	xxlor 5, 32, 32
1826	vmrgew 0, 20, 21
1827	xxmrgld	34, 33, 43
1828	vmrglw 28, 20, 21
1829	vmrghw 21, 20, 21
1830	vmrglw 20, 23, 24
1831	vmrghw 26, 23, 24
1832	vmrglw 17, 9, 8
1833	xxlor 8, 32, 32
1834	vmrgew 0, 23, 24
1835	xxmrgld	56, 39, 38
1836	vmrgew 23, 9, 8
1837	xxlor 33, 24, 24
1838	xxlor 2, 34, 34
1839	vadduwm 11, 15, 1
1840	xxmrgld	33, 36, 48
1841	xxlor 6, 47, 47
1842	xxlor 27, 32, 32
1843	vmrghw 0, 9, 8
1844	vspltisw 9, 12
1845	vsubuwm 8, 31, 19
1846	xxmrgld	51, 23, 25
1847	vadduwm 31, 2, 12
1848	xxlor 34, 10, 10
1849	vadduwm 10, 14, 14
1850	vslw 15, 2, 2
1851	xxlor 34, 29, 29
1852	vadduwm 14, 24, 27
1853	xxlor 24, 48, 48
1854	vadduwm 16, 1, 2
1855	xxmrgld	34, 45, 35
1856	vadduwm 31, 31, 30
1857	xxmrghd	36, 36, 24
1858	vadduwm 11, 11, 29
1859	vadduwm 14, 14, 18
1860	vadduwm 13, 16, 22
1861	xxlxor 47, 63, 47
1862	xxlor 1, 9, 9
1863	xxlor 1, 11, 11
1864	xxlxor 48, 43, 9
1865	vadduwm 11, 11, 2
1866	xxlor 7, 34, 34
1867	xxmrghd	34, 39, 38
1868	xxlxor 39, 46, 11
1869	xxlor 1, 50, 50
1870	xxlxor 50, 45, 0
1871	vperm 15, 15, 15, 5
1872	vperm 16, 16, 16, 5
1873	vperm 7, 7, 7, 5
1874	vperm 18, 18, 18, 5
1875	xxlor 4, 33, 33
1876	xxlor 33, 31, 31
1877	vadduwm 14, 14, 2
1878	xxlor 3, 34, 34
1879	xxlor 34, 12, 12
1880	xxlor 35, 13, 13
1881	vadduwm 6, 15, 1
1882	xxlor 33, 30, 30
1883	vadduwm 2, 16, 2
1884	vadduwm 3, 7, 3
1885	vadduwm 12, 18, 1
1886	xxlxor 59, 34, 61
1887	xxlxor 61, 35, 1
1888	xxlxor 33, 38, 62
1889	xxlxor 62, 44, 54
1890	vrlw 22, 27, 10
1891	vrlw 29, 29, 10
1892	vrlw 1, 1, 10
1893	vrlw 30, 30, 10
1894	vadduwm 31, 31, 19
1895	vadduwm 13, 13, 4
1896	vadduwm 11, 22, 11
1897	vadduwm 14, 29, 14
1898	vadduwm 31, 1, 31
1899	vadduwm 13, 30, 13
1900	vadduwm 9, 9, 9
1901	xxlor 1, 36, 36
1902	xxlxor 48, 43, 48
1903	xxlxor 36, 46, 39
1904	xxmrgld	39, 60, 5
1905	xxlxor 47, 63, 47
1906	xxlxor 50, 45, 50
1907	vrlw 16, 16, 9
1908	vrlw 28, 4, 9
1909	xxmrgld	36, 53, 57
1910	vrlw 15, 15, 9
1911	xxmrghd	57, 53, 57
1912	vrlw 18, 18, 9
1913	vadduwm 14, 14, 4
1914	xxlor 0, 36, 36
1915	xxmrgld	36, 49, 52
1916	vadduwm 2, 16, 2
1917	xxmrgld	49, 8, 26
1918	vadduwm 3, 28, 3
1919	vadduwm 6, 15, 6
1920	vadduwm 12, 18, 12
1921	xxlxor 54, 34, 54
1922	xxlxor 61, 35, 61
1923	xxlxor 33, 38, 33
1924	xxlxor 62, 44, 62
1925	vrlw 29, 29, 8
1926	vrlw 20, 1, 8
1927	xxmrgld	33, 55, 27
1928	vrlw 30, 30, 8
1929	vrlw 22, 22, 8
1930	vadduwm 11, 11, 7
1931	xxlor 5, 39, 39
1932	xxmrgld	39, 32, 58
1933	vadduwm 31, 31, 4
1934	vadduwm 11, 29, 11
1935	vadduwm 13, 13, 7
1936	vadduwm 14, 20, 14
1937	vadduwm 31, 30, 31
1938	vadduwm 13, 22, 13
1939	xxlor 28, 36, 36
1940	xxlxor 50, 43, 50
1941	xxlxor 48, 46, 48
1942	xxlxor 36, 63, 60
1943	xxlxor 47, 45, 47
1944	vperm 18, 18, 18, 5
1945	vperm 16, 16, 16, 5
1946	vperm 4, 4, 4, 5
1947	vperm 15, 15, 15, 5
1948	vadduwm 11, 11, 17
1949	vmr	28, 17
1950	xxmrghd	49, 32, 58
1951	vadduwm 6, 18, 6
1952	vadduwm 12, 16, 12
1953	vadduwm 21, 4, 2
1954	vadduwm 3, 15, 3
1955	xxlxor 34, 38, 61
1956	xxlxor 61, 44, 52
1957	xxlxor 62, 53, 62
1958	xxlxor 54, 35, 54
1959	vrlw 20, 2, 10
1960	vrlw 29, 29, 10
1961	vrlw 0, 30, 10
1962	vrlw 30, 22, 10
1963	vadduwm 14, 14, 25
1964	vadduwm 31, 31, 1
1965	vadduwm 13, 13, 17
1966	vadduwm 11, 20, 11
1967	vadduwm 14, 29, 14
1968	vadduwm 31, 0, 31
1969	vadduwm 13, 30, 13
1970	xxlxor 50, 43, 50
1971	xxlxor 48, 46, 48
1972	xxlxor 36, 63, 36
1973	xxlxor 47, 45, 47
1974	vrlw 18, 18, 9
1975	vrlw 16, 16, 9
1976	vrlw 4, 4, 9
1977	vrlw 15, 15, 9
1978	vadduwm 11, 11, 24
1979	xxlor 8, 56, 56
1980	vadduwm 6, 18, 6
1981	vadduwm 12, 16, 12
1982	vadduwm 24, 4, 21
1983	vadduwm 3, 15, 3
1984	xxlxor 55, 38, 52
1985	xxlxor 61, 44, 61
1986	xxlxor 62, 35, 62
1987	xxlxor 32, 56, 32
1988	vrlw 30, 30, 8
1989	vrlw 23, 23, 8
1990	vrlw 29, 29, 8
1991	vrlw 0, 0, 8
1992	xxlor 25, 51, 51
1993	vmr	26, 17
1994	xxlor 49, 3, 3
1995	xxlor 52, 1, 1
1996	xxlor 51, 2, 2
1997	vadduwm 14, 14, 17
1998	vadduwm 31, 31, 20
1999	vadduwm 13, 13, 19
2000	vadduwm 11, 30, 11
2001	vadduwm 14, 23, 14
2002	vadduwm 31, 29, 31
2003	vadduwm 13, 0, 13
2004	xxlxor 48, 43, 48
2005	xxlxor 36, 46, 36
2006	xxlxor 47, 63, 47
2007	xxlxor 50, 45, 50
2008	vperm 16, 16, 16, 5
2009	vperm 4, 4, 4, 5
2010	vperm 15, 15, 15, 5
2011	vperm 18, 18, 18, 5
2012	xxlor 29, 39, 39
2013	xxlor 59, 4, 4
2014	vadduwm 24, 16, 24
2015	vadduwm 3, 4, 3
2016	vadduwm 6, 15, 6
2017	vadduwm 12, 18, 12
2018	xxlxor 62, 56, 62
2019	xxlxor 55, 35, 55
2020	xxlxor 61, 38, 61
2021	xxlxor 32, 44, 32
2022	vrlw 30, 30, 10
2023	vrlw 23, 23, 10
2024	vrlw 29, 29, 10
2025	vrlw 0, 0, 10
2026	xxlor 53, 0, 0
2027	xxlor 39, 6, 6
2028	vadduwm 11, 11, 27
2029	vadduwm 14, 14, 21
2030	vadduwm 31, 31, 7
2031	vadduwm 13, 13, 1
2032	vadduwm 11, 30, 11
2033	vadduwm 14, 23, 14
2034	vadduwm 31, 29, 31
2035	vadduwm 13, 0, 13
2036	xxlxor 48, 43, 48
2037	xxlxor 36, 46, 36
2038	xxlxor 47, 63, 47
2039	xxlxor 50, 45, 50
2040	vrlw 16, 16, 9
2041	vrlw 4, 4, 9
2042	vrlw 15, 15, 9
2043	vrlw 18, 18, 9
2044	xxlor 34, 7, 7
2045	vadduwm 31, 31, 28
2046	vadduwm 24, 16, 24
2047	vadduwm 3, 4, 3
2048	vadduwm 6, 15, 6
2049	vadduwm 12, 18, 12
2050	xxlxor 62, 56, 62
2051	xxlxor 55, 35, 55
2052	xxlxor 61, 38, 61
2053	xxlxor 32, 44, 32
2054	vrlw 23, 23, 8
2055	vrlw 29, 29, 8
2056	vrlw 0, 0, 8
2057	vrlw 30, 30, 8
2058	vadduwm 11, 11, 2
2059	xxlor 34, 28, 28
2060	vadduwm 13, 13, 26
2061	vadduwm 14, 14, 2
2062	vadduwm 11, 23, 11
2063	vadduwm 14, 29, 14
2064	vadduwm 31, 0, 31
2065	vadduwm 13, 30, 13
2066	xxlxor 50, 43, 50
2067	xxlxor 48, 46, 48
2068	xxlxor 36, 63, 36
2069	xxlxor 47, 45, 47
2070	vperm 18, 18, 18, 5
2071	vperm 16, 16, 16, 5
2072	vperm 4, 4, 4, 5
2073	vperm 15, 15, 15, 5
2074	xxlor 2, 58, 58
2075	xxlor 39, 25, 25
2076	vadduwm 6, 18, 6
2077	vadduwm 12, 16, 12
2078	vadduwm 24, 4, 24
2079	vadduwm 3, 15, 3
2080	xxlxor 55, 38, 55
2081	xxlxor 61, 44, 61
2082	xxlxor 32, 56, 32
2083	xxlxor 62, 35, 62
2084	vrlw 23, 23, 10
2085	vrlw 29, 29, 10
2086	vrlw 0, 0, 10
2087	vrlw 30, 30, 10
2088	xxlor 54, 29, 29
2089	xxlor 58, 5, 5
2090	vadduwm 11, 11, 25
2091	vadduwm 14, 14, 7
2092	vadduwm 31, 31, 22
2093	vadduwm 13, 13, 26
2094	vadduwm 11, 23, 11
2095	vadduwm 14, 29, 14
2096	vadduwm 31, 0, 31
2097	vadduwm 13, 30, 13
2098	xxlxor 50, 43, 50
2099	xxlxor 48, 46, 48
2100	xxlxor 36, 63, 36
2101	xxlxor 47, 45, 47
2102	vrlw 18, 18, 9
2103	vrlw 16, 16, 9
2104	vrlw 4, 4, 9
2105	vrlw 15, 15, 9
2106	vadduwm 11, 11, 17
2107	vadduwm 14, 14, 21
2108	vadduwm 6, 18, 6
2109	vadduwm 12, 16, 12
2110	vadduwm 24, 4, 24
2111	vadduwm 3, 15, 3
2112	xxlxor 55, 38, 55
2113	xxlxor 61, 44, 61
2114	xxlxor 62, 35, 62
2115	xxlxor 32, 56, 32
2116	vrlw 30, 30, 8
2117	vrlw 23, 23, 8
2118	vrlw 29, 29, 8
2119	vrlw 0, 0, 8
2120	vadduwm 31, 31, 1
2121	vadduwm 13, 13, 20
2122	vadduwm 11, 30, 11
2123	vadduwm 14, 23, 14
2124	vadduwm 31, 29, 31
2125	vadduwm 13, 0, 13
2126	xxlxor 48, 43, 48
2127	xxlxor 36, 46, 36
2128	xxlxor 47, 63, 47
2129	xxlxor 50, 45, 50
2130	vperm 16, 16, 16, 5
2131	vperm 4, 4, 4, 5
2132	vperm 15, 15, 15, 5
2133	vperm 18, 18, 18, 5
2134	xxlor 0, 33, 33
2135	xxlor 33, 8, 8
2136	vadduwm 24, 16, 24
2137	vadduwm 3, 4, 3
2138	vadduwm 6, 15, 6
2139	vadduwm 12, 18, 12
2140	xxlxor 62, 56, 62
2141	xxlxor 55, 35, 55
2142	xxlxor 61, 38, 61
2143	xxlxor 32, 44, 32
2144	vrlw 30, 30, 10
2145	vrlw 23, 23, 10
2146	vrlw 29, 29, 10
2147	vrlw 0, 0, 10
2148	vadduwm 11, 11, 19
2149	vadduwm 14, 14, 2
2150	vadduwm 31, 31, 1
2151	vadduwm 13, 13, 22
2152	vadduwm 11, 30, 11
2153	vadduwm 14, 23, 14
2154	vadduwm 31, 29, 31
2155	vadduwm 13, 0, 13
2156	xxlxor 48, 43, 48
2157	xxlxor 36, 46, 36
2158	xxlxor 47, 63, 47
2159	xxlxor 50, 45, 50
2160	vrlw 16, 16, 9
2161	vrlw 4, 4, 9
2162	vrlw 15, 15, 9
2163	vrlw 18, 18, 9
2164	vadduwm 11, 11, 27
2165	vadduwm 14, 14, 28
2166	vadduwm 24, 16, 24
2167	vadduwm 3, 4, 3
2168	vadduwm 6, 15, 6
2169	vadduwm 12, 18, 12
2170	xxlxor 62, 56, 62
2171	xxlxor 55, 35, 55
2172	xxlxor 61, 38, 61
2173	xxlxor 32, 44, 32
2174	vrlw 23, 23, 8
2175	vrlw 29, 29, 8
2176	vrlw 0, 0, 8
2177	vrlw 30, 30, 8
2178	vadduwm 31, 31, 25
2179	vadduwm 13, 13, 26
2180	vadduwm 11, 23, 11
2181	vadduwm 14, 29, 14
2182	vadduwm 31, 0, 31
2183	vadduwm 13, 30, 13
2184	xxlxor 50, 43, 50
2185	xxlxor 48, 46, 48
2186	xxlxor 36, 63, 36
2187	xxlxor 47, 45, 47
2188	vperm 18, 18, 18, 5
2189	vperm 16, 16, 16, 5
2190	vperm 4, 4, 4, 5
2191	vperm 15, 15, 15, 5
2192	xxlor 3, 7, 7
2193	vadduwm 11, 11, 7
2194	vadduwm 6, 18, 6
2195	vadduwm 12, 16, 12
2196	vadduwm 24, 4, 24
2197	vadduwm 3, 15, 3
2198	xxlxor 55, 38, 55
2199	xxlxor 61, 44, 61
2200	xxlxor 32, 56, 32
2201	xxlxor 62, 35, 62
2202	vrlw 23, 23, 10
2203	vrlw 29, 29, 10
2204	vrlw 0, 0, 10
2205	vrlw 30, 30, 10
2206	xxlor 33, 6, 6
2207	xxlor 58, 2, 2
2208	xxlor 39, 3, 3
2209	vadduwm 14, 14, 1
2210	vadduwm 31, 31, 26
2211	vadduwm 13, 13, 7
2212	vadduwm 11, 23, 11
2213	vadduwm 14, 29, 14
2214	vadduwm 31, 0, 31
2215	vadduwm 13, 30, 13
2216	xxlxor 50, 43, 50
2217	xxlxor 48, 46, 48
2218	xxlxor 36, 63, 36
2219	xxlxor 47, 45, 47
2220	vrlw 18, 18, 9
2221	vrlw 16, 16, 9
2222	vrlw 4, 4, 9
2223	vrlw 15, 15, 9
2224	xxlor 52, 0, 0
2225	vadduwm 11, 11, 21
2226	vadduwm 6, 18, 6
2227	vadduwm 12, 16, 12
2228	vadduwm 24, 4, 24
2229	vadduwm 3, 15, 3
2230	xxlxor 55, 38, 55
2231	xxlxor 61, 44, 61
2232	xxlxor 62, 35, 62
2233	xxlxor 32, 56, 32
2234	vrlw 30, 30, 8
2235	vrlw 23, 23, 8
2236	vrlw 29, 29, 8
2237	vrlw 0, 0, 8
2238	vadduwm 14, 14, 2
2239	vadduwm 31, 31, 22
2240	vadduwm 13, 13, 20
2241	vadduwm 11, 30, 11
2242	vadduwm 14, 23, 14
2243	vadduwm 31, 29, 31
2244	vadduwm 13, 0, 13
2245	xxlxor 48, 43, 48
2246	xxlxor 36, 46, 36
2247	xxlxor 47, 63, 47
2248	xxlxor 50, 45, 50
2249	vperm 16, 16, 16, 5
2250	vperm 4, 4, 4, 5
2251	vperm 15, 15, 15, 5
2252	vperm 18, 18, 18, 5
2253	xxlor 7, 49, 49
2254	vmr	17, 2
2255	vadduwm 24, 16, 24
2256	vadduwm 3, 4, 3
2257	vadduwm 6, 15, 6
2258	vadduwm 12, 18, 12
2259	xxlxor 62, 56, 62
2260	xxlxor 55, 35, 55
2261	xxlxor 61, 38, 61
2262	xxlxor 32, 44, 32
2263	vrlw 30, 30, 10
2264	vrlw 23, 23, 10
2265	vrlw 29, 29, 10
2266	vrlw 0, 0, 10
2267	xxlor 54, 1, 1
2268	xxlor 34, 7, 7
2269	vadduwm 11, 11, 22
2270	vadduwm 14, 14, 28
2271	vadduwm 31, 31, 2
2272	vadduwm 13, 13, 26
2273	vadduwm 11, 30, 11
2274	vadduwm 14, 23, 14
2275	vadduwm 31, 29, 31
2276	vadduwm 13, 0, 13
2277	xxlxor 48, 43, 48
2278	xxlxor 36, 46, 36
2279	xxlxor 47, 63, 47
2280	xxlxor 50, 45, 50
2281	vrlw 16, 16, 9
2282	vrlw 4, 4, 9
2283	vrlw 15, 15, 9
2284	vrlw 18, 18, 9
2285	xxlor 59, 25, 25
2286	vadduwm 11, 11, 19
2287	vadduwm 24, 16, 24
2288	vadduwm 3, 4, 3
2289	vadduwm 6, 15, 6
2290	vadduwm 12, 18, 12
2291	xxlxor 62, 56, 62
2292	xxlxor 55, 35, 55
2293	xxlxor 61, 38, 61
2294	xxlxor 32, 44, 32
2295	vrlw 23, 23, 8
2296	vrlw 29, 29, 8
2297	vrlw 0, 0, 8
2298	vrlw 30, 30, 8
2299	vadduwm 14, 14, 25
2300	vadduwm 31, 31, 27
2301	vadduwm 13, 13, 7
2302	vadduwm 11, 23, 11
2303	vadduwm 14, 29, 14
2304	vadduwm 31, 0, 31
2305	vadduwm 13, 30, 13
2306	xxlxor 50, 43, 50
2307	xxlxor 48, 46, 48
2308	xxlxor 36, 63, 36
2309	xxlxor 47, 45, 47
2310	vperm 18, 18, 18, 5
2311	vperm 16, 16, 16, 5
2312	vperm 4, 4, 4, 5
2313	vperm 15, 15, 15, 5
2314	vmr	2, 19
2315	xxlor 0, 7, 7
2316	vadduwm 6, 18, 6
2317	vadduwm 12, 16, 12
2318	vadduwm 24, 4, 24
2319	vadduwm 3, 15, 3
2320	xxlxor 55, 38, 55
2321	xxlxor 61, 44, 61
2322	xxlxor 32, 56, 32
2323	xxlxor 62, 35, 62
2324	vrlw 23, 23, 10
2325	vrlw 29, 29, 10
2326	vrlw 0, 0, 10
2327	vrlw 30, 30, 10
2328	xxlor 1, 51, 51
2329	xxlor 7, 39, 39
2330	xxlor 51, 8, 8
2331	xxlor 39, 5, 5
2332	xxlor 34, 4, 4
2333	vadduwm 11, 11, 1
2334	vadduwm 14, 14, 19
2335	vadduwm 31, 31, 7
2336	vadduwm 13, 13, 2
2337	vadduwm 11, 23, 11
2338	vadduwm 14, 29, 14
2339	vadduwm 31, 0, 31
2340	vadduwm 13, 30, 13
2341	xxlxor 50, 43, 50
2342	xxlxor 48, 46, 48
2343	xxlxor 36, 63, 36
2344	xxlxor 47, 45, 47
2345	vrlw 18, 18, 9
2346	vrlw 16, 16, 9
2347	vrlw 4, 4, 9
2348	vrlw 15, 15, 9
2349	xxlor 2, 53, 53
2350	vmr	21, 28
2351	vadduwm 6, 18, 6
2352	vadduwm 12, 16, 12
2353	vadduwm 24, 4, 24
2354	vadduwm 3, 15, 3
2355	xxlxor 55, 38, 55
2356	xxlxor 61, 44, 61
2357	xxlxor 62, 35, 62
2358	xxlxor 32, 56, 32
2359	vrlw 30, 30, 8
2360	vrlw 23, 23, 8
2361	vrlw 29, 29, 8
2362	vrlw 0, 0, 8
2363	xxlor 53, 29, 29
2364	vadduwm 11, 11, 17
2365	vadduwm 14, 14, 28
2366	vadduwm 31, 31, 26
2367	vadduwm 13, 13, 21
2368	vadduwm 11, 30, 11
2369	vadduwm 14, 23, 14
2370	vadduwm 31, 29, 31
2371	vadduwm 13, 0, 13
2372	xxlxor 48, 43, 48
2373	xxlxor 36, 46, 36
2374	xxlxor 47, 63, 47
2375	xxlxor 50, 45, 50
2376	vperm 16, 16, 16, 5
2377	vperm 4, 4, 4, 5
2378	vperm 15, 15, 15, 5
2379	vperm 18, 18, 18, 5
2380	vadduwm 11, 11, 20
2381	xxlor 5, 52, 52
2382	vadduwm 24, 16, 24
2383	vadduwm 3, 4, 3
2384	vadduwm 6, 15, 6
2385	vadduwm 12, 18, 12
2386	xxlxor 62, 56, 62
2387	xxlxor 55, 35, 55
2388	xxlxor 61, 38, 61
2389	xxlxor 32, 44, 32
2390	vrlw 30, 30, 10
2391	vrlw 23, 23, 10
2392	vrlw 29, 29, 10
2393	vrlw 0, 0, 10
2394	xxlor 52, 2, 2
2395	vadduwm 14, 14, 25
2396	vadduwm 31, 31, 20
2397	vadduwm 13, 13, 7
2398	vadduwm 11, 30, 11
2399	vadduwm 14, 23, 14
2400	vadduwm 31, 29, 31
2401	vadduwm 13, 0, 13
2402	xxlxor 48, 43, 48
2403	xxlxor 36, 46, 36
2404	xxlxor 47, 63, 47
2405	xxlxor 50, 45, 50
2406	vrlw 16, 16, 9
2407	vrlw 4, 4, 9
2408	vrlw 15, 15, 9
2409	vrlw 18, 18, 9
2410	vadduwm 11, 11, 22
2411	vadduwm 14, 14, 27
2412	vadduwm 24, 16, 24
2413	vadduwm 3, 4, 3
2414	vadduwm 6, 15, 6
2415	vadduwm 12, 18, 12
2416	xxlxor 62, 56, 62
2417	xxlxor 55, 35, 55
2418	xxlxor 61, 38, 61
2419	xxlxor 32, 44, 32
2420	vrlw 23, 23, 8
2421	vrlw 29, 29, 8
2422	vrlw 0, 0, 8
2423	vrlw 30, 30, 8
2424	vadduwm 31, 31, 1
2425	vadduwm 13, 13, 2
2426	vadduwm 11, 23, 11
2427	vadduwm 14, 29, 14
2428	vadduwm 31, 0, 31
2429	vadduwm 13, 30, 13
2430	xxlxor 50, 43, 50
2431	xxlxor 48, 46, 48
2432	xxlxor 36, 63, 36
2433	xxlxor 47, 45, 47
2434	vperm 18, 18, 18, 5
2435	vperm 16, 16, 16, 5
2436	vperm 4, 4, 4, 5
2437	vperm 15, 15, 15, 5
2438	xxlor 3, 29, 29
2439	xxlor 4, 49, 49
2440	vadduwm 6, 18, 6
2441	vadduwm 12, 16, 12
2442	vadduwm 24, 4, 24
2443	vadduwm 3, 15, 3
2444	xxlxor 55, 38, 55
2445	xxlxor 61, 44, 61
2446	xxlxor 32, 56, 32
2447	xxlxor 62, 35, 62
2448	vrlw 23, 23, 10
2449	vrlw 29, 29, 10
2450	vrlw 0, 0, 10
2451	vrlw 30, 30, 10
2452	vmr	17, 28
2453	xxlor 2, 54, 54
2454	xxlor 3, 34, 34
2455	xxlor 34, 8, 8
2456	xxlor 51, 0, 0
2457	xxlor 60, 7, 7
2458	xxlor 54, 1, 1
2459	vadduwm 11, 11, 2
2460	vadduwm 14, 14, 19
2461	vadduwm 31, 31, 28
2462	vadduwm 13, 13, 22
2463	vadduwm 11, 23, 11
2464	vadduwm 14, 29, 14
2465	vadduwm 31, 0, 31
2466	vadduwm 13, 30, 13
2467	xxlxor 50, 43, 50
2468	xxlxor 48, 46, 48
2469	xxlxor 36, 63, 36
2470	xxlxor 47, 45, 47
2471	vrlw 18, 18, 9
2472	vrlw 16, 16, 9
2473	vrlw 4, 4, 9
2474	vrlw 15, 15, 9
2475	vadduwm 11, 11, 17
2476	vadduwm 14, 14, 25
2477	vadduwm 6, 18, 6
2478	vadduwm 12, 16, 12
2479	vadduwm 24, 4, 24
2480	vadduwm 3, 15, 3
2481	xxlxor 55, 38, 55
2482	xxlxor 61, 44, 61
2483	xxlxor 62, 35, 62
2484	xxlxor 32, 56, 32
2485	vrlw 30, 30, 8
2486	vrlw 23, 23, 8
2487	vrlw 29, 29, 8
2488	vrlw 0, 0, 8
2489	vadduwm 31, 31, 7
2490	vadduwm 13, 13, 26
2491	vadduwm 11, 30, 11
2492	vadduwm 14, 23, 14
2493	vadduwm 31, 29, 31
2494	vadduwm 13, 0, 13
2495	xxlxor 48, 43, 48
2496	xxlxor 36, 46, 36
2497	xxlxor 47, 63, 47
2498	xxlxor 50, 45, 50
2499	vperm 16, 16, 16, 5
2500	vperm 4, 4, 4, 5
2501	vperm 15, 15, 15, 5
2502	vperm 18, 18, 18, 5
2503	xxlor 6, 39, 39
2504	xxlor 39, 4, 4
2505	vadduwm 24, 16, 24
2506	vadduwm 3, 4, 3
2507	vadduwm 6, 15, 6
2508	vadduwm 12, 18, 12
2509	xxlxor 62, 56, 62
2510	xxlxor 55, 35, 55
2511	xxlxor 61, 38, 61
2512	xxlxor 32, 44, 32
2513	vrlw 30, 30, 10
2514	vrlw 23, 23, 10
2515	vrlw 29, 29, 10
2516	vrlw 0, 0, 10
2517	vadduwm 11, 11, 21
2518	vadduwm 14, 14, 27
2519	vadduwm 31, 31, 7
2520	vadduwm 13, 13, 28
2521	vadduwm 11, 30, 11
2522	vadduwm 14, 23, 14
2523	vadduwm 31, 29, 31
2524	vadduwm 13, 0, 13
2525	xxlxor 48, 43, 48
2526	xxlxor 36, 46, 36
2527	xxlxor 47, 63, 47
2528	xxlxor 50, 45, 50
2529	vrlw 16, 16, 9
2530	vrlw 4, 4, 9
2531	vrlw 15, 15, 9
2532	vrlw 18, 18, 9
2533	xxlor 0, 49, 49
2534	xxlor 49, 5, 5
2535	vadduwm 24, 16, 24
2536	vadduwm 3, 4, 3
2537	vadduwm 6, 15, 6
2538	vadduwm 12, 18, 12
2539	xxlxor 62, 56, 62
2540	xxlxor 55, 35, 55
2541	xxlxor 61, 38, 61
2542	xxlxor 32, 44, 32
2543	vrlw 23, 23, 8
2544	vrlw 29, 29, 8
2545	vrlw 0, 0, 8
2546	vrlw 30, 30, 8
2547	vadduwm 11, 11, 17
2548	vadduwm 14, 14, 1
2549	vadduwm 31, 31, 2
2550	vadduwm 13, 13, 22
2551	vadduwm 11, 23, 11
2552	vadduwm 14, 29, 14
2553	vadduwm 31, 0, 31
2554	vadduwm 13, 30, 13
2555	xxlxor 50, 43, 50
2556	xxlxor 48, 46, 48
2557	xxlxor 36, 63, 36
2558	xxlxor 47, 45, 47
2559	vperm 18, 18, 18, 5
2560	vperm 16, 16, 16, 5
2561	vperm 4, 4, 4, 5
2562	vperm 15, 15, 15, 5
2563	xxlor 34, 3, 3
2564	xxlor 49, 2, 2
2565	vadduwm 6, 18, 6
2566	vadduwm 12, 16, 12
2567	vadduwm 24, 4, 24
2568	vadduwm 3, 15, 3
2569	xxlxor 55, 38, 55
2570	xxlxor 61, 44, 61
2571	xxlxor 32, 56, 32
2572	xxlxor 62, 35, 62
2573	vrlw 23, 23, 10
2574	vrlw 29, 29, 10
2575	vrlw 0, 0, 10
2576	vrlw 30, 30, 10
2577	vadduwm 11, 11, 19
2578	vadduwm 14, 14, 20
2579	vadduwm 31, 31, 2
2580	vadduwm 13, 13, 17
2581	vadduwm 11, 23, 11
2582	vadduwm 14, 29, 14
2583	vadduwm 31, 0, 31
2584	vadduwm 13, 30, 13
2585	xxlxor 50, 43, 50
2586	xxlxor 48, 46, 48
2587	xxlxor 36, 63, 36
2588	xxlxor 47, 45, 47
2589	vrlw 18, 18, 9
2590	vrlw 16, 16, 9
2591	vrlw 4, 4, 9
2592	vrlw 15, 15, 9
2593	vadduwm 14, 14, 27
2594	vadduwm 11, 11, 25
2595	vadduwm 6, 18, 6
2596	vadduwm 12, 16, 12
2597	vadduwm 27, 4, 24
2598	vadduwm 3, 15, 3
2599	xxlxor 57, 38, 55
2600	xxlxor 61, 44, 61
2601	xxlxor 62, 35, 62
2602	xxlxor 32, 59, 32
2603	xxlor 39, 7, 7
2604	vrlw 30, 30, 8
2605	vrlw 25, 25, 8
2606	vrlw 29, 29, 8
2607	vrlw 0, 0, 8
2608	xxlor 1, 58, 58
2609	vmr	26, 19
2610	vadduwm 19, 31, 7
2611	xxlor 39, 6, 6
2612	vadduwm 11, 30, 11
2613	vadduwm 7, 13, 7
2614	vadduwm 13, 25, 14
2615	vadduwm 14, 29, 19
2616	vadduwm 7, 0, 7
2617	xxlxor 48, 43, 48
2618	xxlxor 36, 45, 36
2619	xxlxor 47, 46, 47
2620	xxlxor 50, 39, 50
2621	vperm 16, 16, 16, 5
2622	vperm 4, 4, 4, 5
2623	vperm 15, 15, 15, 5
2624	vperm 18, 18, 18, 5
2625	xxlor 51, 1, 1
2626	vadduwm 13, 13, 1
2627	vadduwm 11, 11, 19
2628	vadduwm 19, 16, 27
2629	vadduwm 3, 4, 3
2630	vadduwm 6, 15, 6
2631	vadduwm 12, 18, 12
2632	xxlxor 63, 51, 62
2633	xxlxor 62, 35, 57
2634	xxlxor 61, 38, 61
2635	xxlxor 32, 44, 32
2636	vrlw 31, 31, 10
2637	vrlw 30, 30, 10
2638	vrlw 29, 29, 10
2639	vrlw 0, 0, 10
2640	xxlor 33, 0, 0
2641	vadduwm 7, 7, 2
2642	vadduwm 14, 14, 1
2643	vadduwm 11, 31, 11
2644	vadduwm 13, 30, 13
2645	vadduwm 14, 29, 14
2646	vadduwm 7, 0, 7
2647	xxlxor 48, 43, 48
2648	xxlxor 36, 45, 36
2649	xxlxor 47, 46, 47
2650	xxlxor 50, 39, 50
2651	vrlw 16, 16, 9
2652	vrlw 4, 4, 9
2653	vrlw 15, 15, 9
2654	vrlw 18, 18, 9
2655	xxlor 60, 8, 8
2656	vadduwm 1, 11, 21
2657	vadduwm 11, 13, 28
2658	vadduwm 13, 16, 19
2659	vadduwm 3, 4, 3
2660	vadduwm 6, 15, 6
2661	vadduwm 12, 18, 12
2662	xxlxor 51, 45, 63
2663	xxlxor 63, 35, 62
2664	xxlxor 62, 38, 61
2665	xxlxor 32, 44, 32
2666	vrlw 31, 31, 8
2667	vrlw 30, 30, 8
2668	vrlw 0, 0, 8
2669	vrlw 19, 19, 8
2670	vadduwm 14, 14, 26
2671	vadduwm 7, 7, 17
2672	vadduwm 1, 31, 1
2673	vadduwm 11, 30, 11
2674	vadduwm 14, 0, 14
2675	vadduwm 7, 19, 7
2676	xxlxor 50, 33, 50
2677	xxlxor 48, 43, 48
2678	xxlxor 36, 46, 36
2679	xxlxor 47, 39, 47
2680	vperm 18, 18, 18, 5
2681	vperm 16, 16, 16, 5
2682	vperm 4, 4, 4, 5
2683	vperm 15, 15, 15, 5
2684	xxlor 34, 4, 4
2685	vadduwm 14, 14, 22
2686	vadduwm 6, 18, 6
2687	vadduwm 12, 16, 12
2688	vadduwm 13, 4, 13
2689	vadduwm 3, 15, 3
2690	xxlxor 49, 38, 63
2691	xxlxor 63, 44, 62
2692	xxlxor 32, 45, 32
2693	xxlxor 51, 35, 51
2694	vrlw 17, 17, 10
2695	vrlw 31, 31, 10
2696	vrlw 0, 0, 10
2697	vrlw 10, 19, 10
2698	vadduwm 11, 11, 2
2699	xxlor 34, 5, 5
2700	vadduwm 1, 1, 20
2701	vadduwm 2, 7, 2
2702	vadduwm 7, 31, 11
2703	vadduwm 11, 0, 14
2704	vadduwm 2, 10, 2
2705	vadduwm 1, 17, 1
2706	xxlxor 36, 43, 36
2707	xxlxor 46, 34, 47
2708	vrlw 4, 4, 9
2709	vrlw 14, 14, 9
2710	xxlxor 47, 33, 50
2711	xxlxor 48, 39, 48
2712	vrlw 15, 15, 9
2713	vrlw 9, 16, 9
2714	vadduwm 13, 4, 13
2715	vadduwm 3, 14, 3
2716	xxlxor 32, 45, 32
2717	xxlxor 45, 45, 33
2718	xxlxor 33, 35, 42
2719	xxlxor 59, 35, 39
2720	vadduwm 3, 15, 6
2721	vadduwm 6, 9, 12
2722	xxlxor 39, 35, 49
2723	xxlxor 42, 38, 63
2724	vrlw 1, 1, 8
2725	vrlw 7, 7, 8
2726	vrlw 10, 10, 8
2727	vrlw 0, 0, 8
2728	xxlxor 40, 35, 43
2729	xxlxor 38, 38, 34
2730	xxlxor 61, 33, 41
2731	xxlxor 50, 39, 36
2732	xxlxor 62, 42, 46
2733	xxlxor 54, 32, 47
2734	bne	0, .LBB3_2
2735.LBB3_5:
2736	vmrglw 2, 27, 13
2737	li 3, 32
2738	li 4, 48
2739	vmrglw 4, 6, 8
2740	vmrglw 0, 18, 29
2741	vmrglw 1, 22, 30
2742	vmrghw 3, 27, 13
2743	vmrghw 5, 6, 8
2744	vmrghw 6, 18, 29
2745	vmrghw 7, 22, 30
2746	xxmrgld	40, 36, 34
2747	xxmrghd	34, 36, 34
2748	xxmrgld	41, 33, 32
2749	xxswapd	0, 40
2750	xxmrgld	36, 37, 35
2751	xxmrghd	35, 37, 35
2752	xxmrghd	37, 33, 32
2753	xxswapd	1, 41
2754	xxmrgld	32, 39, 38
2755	xxmrghd	33, 39, 38
2756	xxswapd	2, 34
2757	xxswapd	4, 36
2758	xxswapd	3, 37
2759	stxvd2x 0, 0, 5
2760	xxswapd	5, 32
2761	stxvd2x 1, 5, 11
2762	xxswapd	0, 35
2763	xxswapd	1, 33
2764	stxvd2x 2, 5, 3
2765	li 3, 64
2766	stxvd2x 3, 5, 4
2767	li 4, 80
2768	stxvd2x 4, 5, 3
2769	li 3, 96
2770	stxvd2x 5, 5, 4
2771	li 4, 112
2772	stxvd2x 0, 5, 3
2773	stxvd2x 1, 5, 4
2774	li 3, 224
2775	lxvd2x 63, 1, 3
2776	li 3, 208
2777	lfd 31, 392(1)
2778	ld 30, 312(1)
2779	ld 29, 304(1)
2780	lxvd2x 62, 1, 3
2781	li 3, 192
2782	lfd 30, 384(1)
2783	ld 28, 296(1)
2784	ld 27, 288(1)
2785	lxvd2x 61, 1, 3
2786	li 3, 176
2787	lfd 29, 376(1)
2788	ld 26, 280(1)
2789	ld 25, 272(1)
2790	lxvd2x 60, 1, 3
2791	li 3, 160
2792	lfd 28, 368(1)
2793	ld 24, 264(1)
2794	ld 23, 256(1)
2795	lxvd2x 59, 1, 3
2796	li 3, 144
2797	lfd 27, 360(1)
2798	ld 22, 248(1)
2799	lxvd2x 58, 1, 3
2800	li 3, 128
2801	lfd 26, 352(1)
2802	lxvd2x 57, 1, 3
2803	li 3, 112
2804	lfd 25, 344(1)
2805	lxvd2x 56, 1, 3
2806	li 3, 96
2807	lfd 24, 336(1)
2808	lxvd2x 55, 1, 3
2809	li 3, 80
2810	lfd 23, 328(1)
2811	lxvd2x 54, 1, 3
2812	li 3, 64
2813	lxvd2x 53, 1, 3
2814	li 3, 48
2815	lxvd2x 52, 1, 3
2816	addi 1, 1, 400
2817	blr
2818	.long	0
2819	.quad	0
2820.Lfunc_end3:
2821	.size	blake3_hash4_sse2, .Lfunc_end3-.Lfunc_begin3
2822	.cfi_endproc
2823	.section	".note.GNU-stack","",@progbits
2824#endif
2825