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