1193323Sed/*
2193323Sed * CDDL HEADER START
3193323Sed *
4193323Sed * The contents of this file are subject to the terms of the
5193323Sed * Common Development and Distribution License (the "License").
6193323Sed * You may not use this file except in compliance with the License.
7193323Sed *
8193323Sed * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9193323Sed * or https://opensource.org/licenses/CDDL-1.0.
10193323Sed * See the License for the specific language governing permissions
11193323Sed * and limitations under the License.
12193323Sed *
13193323Sed * When distributing Covered Code, include this CDDL HEADER in each
14218893Sdim * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15218893Sdim * If applicable, add the following below this CDDL HEADER, with the
16193323Sed * fields enclosed by brackets "[]" replaced with your own identifying
17193323Sed * information: Portions Copyright [yyyy] [name of copyright owner]
18218893Sdim *
19218893Sdim * CDDL HEADER END
20193323Sed */
21193323Sed
22193323Sed/*
23193323Sed * Based on BLAKE3 v1.3.1, https://github.com/BLAKE3-team/BLAKE3
24193323Sed * Copyright (c) 2019-2022 Samuel Neves and Matthew Krupcale
25193323Sed * Copyright (c) 2022 Tino Reichardt <milky-zfs@mcmilk.de>
26198090Srdivacky *
27202375Srdivacky * This is converted assembly: SSE2 -> POWER8 PPC64 Little Endian
28210299Sed * Used tools: SIMDe https://github.com/simd-everywhere/simde
29193323Sed */
30198090Srdivacky
31193323Sed#if (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
32193323Sed	.text
33193323Sed	.abiversion 2
34193323Sed	.section	.rodata.cst16,"aM",@progbits,16
35193323Sed	.p2align	4
36193323Sed.LCPI0_0:
37193323Sed	.byte	29
38193323Sed	.byte	28
39193323Sed	.byte	31
40193323Sed	.byte	30
41193323Sed	.byte	25
42193323Sed	.byte	24
43193323Sed	.byte	27
44193323Sed	.byte	26
45193323Sed	.byte	21
46193323Sed	.byte	20
47193323Sed	.byte	23
48193323Sed	.byte	22
49234353Sdim	.byte	17
50207618Srdivacky	.byte	16
51207618Srdivacky	.byte	19
52193323Sed	.byte	18
53193323Sed.LCPI0_1:
54234353Sdim	.long	1779033703
55234353Sdim	.long	3144134277
56193323Sed	.long	1013904242
57234353Sdim	.long	2773480762
58234353Sdim.LCPI0_2:
59193323Sed	.byte	27
60234353Sdim	.byte	26
61226633Sdim	.byte	25
62193323Sed	.byte	24
63223017Sdim	.byte	19
64193323Sed	.byte	18
65193323Sed	.byte	17
66193323Sed	.byte	16
67193323Sed	.byte	11
68234353Sdim	.byte	10
69234353Sdim	.byte	9
70193323Sed	.byte	8
71193574Sed	.byte	3
72193574Sed	.byte	2
73193323Sed	.byte	1
74193323Sed	.byte	0
75193323Sed.LCPI0_3:
76193323Sed	.byte	19
77193323Sed	.byte	18
78193323Sed	.byte	17
79193323Sed	.byte	16
80193323Sed	.byte	11
81193323Sed	.byte	10
82193323Sed	.byte	9
83193323Sed	.byte	8
84193323Sed	.byte	3
85193323Sed	.byte	2
86198090Srdivacky	.byte	1
87210299Sed	.byte	0
88234353Sdim	.byte	27
89193323Sed	.byte	26
90198090Srdivacky	.byte	25
91193323Sed	.byte	24
92193323Sed.LCPI0_4:
93193323Sed	.byte	23
94221345Sdim	.byte	22
95221345Sdim	.byte	21
96221345Sdim	.byte	20
97210299Sed	.byte	27
98210299Sed	.byte	26
99193323Sed	.byte	25
100193323Sed	.byte	24
101193323Sed	.byte	11
102199481Srdivacky	.byte	10
103199481Srdivacky	.byte	9
104199481Srdivacky	.byte	8
105199481Srdivacky	.byte	3
106199481Srdivacky	.byte	2
107193323Sed	.byte	1
108221345Sdim	.byte	0
109193323Sed.LCPI0_5:
110198090Srdivacky	.byte	23
111193323Sed	.byte	22
112193323Sed	.byte	21
113193323Sed	.byte	20
114193323Sed	.byte	23
115193323Sed	.byte	22
116198090Srdivacky	.byte	21
117193323Sed	.byte	20
118198090Srdivacky	.byte	3
119193323Sed	.byte	2
120198090Srdivacky	.byte	1
121193323Sed	.byte	0
122193323Sed	.byte	3
123193323Sed	.byte	2
124193323Sed	.byte	1
125193323Sed	.byte	0
126193323Sed.LCPI0_6:
127218893Sdim	.short	1
128193574Sed	.short	2
129193323Sed	.short	4
130234353Sdim	.short	8
131234353Sdim	.short	16
132210299Sed	.short	32
133210299Sed	.short	64
134234353Sdim	.short	128
135234353Sdim.LCPI0_7:
136234353Sdim	.short	0
137234353Sdim	.short	0
138234353Sdim	.short	4
139234353Sdim	.short	8
140234353Sdim	.short	0
141234353Sdim	.short	0
142234353Sdim	.short	64
143234353Sdim	.short	128
144234353Sdim.LCPI0_8:
145234353Sdim	.byte	19
146234353Sdim	.byte	18
147234353Sdim	.byte	17
148234353Sdim	.byte	16
149234353Sdim	.byte	19
150234353Sdim	.byte	18
151234353Sdim	.byte	17
152234353Sdim	.byte	16
153234353Sdim	.byte	31
154234353Sdim	.byte	30
155234353Sdim	.byte	29
156234353Sdim	.byte	28
157234353Sdim	.byte	31
158234353Sdim	.byte	30
159234353Sdim	.byte	29
160234353Sdim	.byte	28
161234353Sdim.LCPI0_9:
162234353Sdim	.short	0
163234353Sdim	.short	0
164234353Sdim	.short	0
165234353Sdim	.short	0
166234353Sdim	.short	0
167234353Sdim	.short	0
168234353Sdim	.short	64
169234353Sdim	.short	128
170193323Sed.LCPI0_10:
171193323Sed	.byte	31
172193323Sed	.byte	30
173193323Sed	.byte	29
174193323Sed	.byte	28
175193323Sed	.byte	7
176193323Sed	.byte	6
177210299Sed	.byte	5
178210299Sed	.byte	4
179193323Sed	.byte	3
180234353Sdim	.byte	2
181193323Sed	.byte	1
182193323Sed	.byte	0
183193323Sed	.byte	27
184193323Sed	.byte	26
185193323Sed	.byte	25
186193323Sed	.byte	24
187193323Sed.LCPI0_11:
188193323Sed	.byte	31
189210299Sed	.byte	30
190193323Sed	.byte	29
191193323Sed	.byte	28
192193323Sed	.byte	23
193193323Sed	.byte	22
194210299Sed	.byte	21
195193323Sed	.byte	20
196193323Sed	.byte	19
197193323Sed	.byte	18
198193323Sed	.byte	17
199193323Sed	.byte	16
200193323Sed	.byte	27
201193323Sed	.byte	26
202193323Sed	.byte	25
203193323Sed	.byte	24
204193323Sed.LCPI0_12:
205223017Sdim	.byte	27
206207618Srdivacky	.byte	26
207224145Sdim	.byte	25
208193323Sed	.byte	24
209193323Sed	.byte	11
210193323Sed	.byte	10
211193323Sed	.byte	9
212193323Sed	.byte	8
213234353Sdim	.byte	15
214234353Sdim	.byte	14
215234353Sdim	.byte	13
216234353Sdim	.byte	12
217234353Sdim	.byte	31
218234353Sdim	.byte	30
219234353Sdim	.byte	29
220234353Sdim	.byte	28
221234353Sdim.LCPI0_13:
222193323Sed	.byte	31
223234353Sdim	.byte	30
224234353Sdim	.byte	29
225234353Sdim	.byte	28
226234353Sdim	.byte	15
227234353Sdim	.byte	14
228193323Sed	.byte	13
229234353Sdim	.byte	12
230218893Sdim	.byte	11
231193323Sed	.byte	10
232193323Sed	.byte	9
233193323Sed	.byte	8
234234353Sdim	.byte	27
235234353Sdim	.byte	26
236193323Sed	.byte	25
237193323Sed	.byte	24
238193323Sed.LCPI0_14:
239193323Sed	.byte	27
240234353Sdim	.byte	26
241234353Sdim	.byte	25
242193323Sed	.byte	24
243193323Sed	.byte	11
244193323Sed	.byte	10
245193323Sed	.byte	9
246193323Sed	.byte	8
247193323Sed	.byte	3
248193323Sed	.byte	2
249193323Sed	.byte	1
250193323Sed	.byte	0
251198090Srdivacky	.byte	23
252193323Sed	.byte	22
253193323Sed	.byte	21
254193323Sed	.byte	20
255193323Sed	.text
256193323Sed	.globl	zfs_blake3_compress_in_place_sse2
257193323Sed	.p2align	2
258193323Sed	.type	zfs_blake3_compress_in_place_sse2,@function
259198090Srdivackyzfs_blake3_compress_in_place_sse2:
260198090Srdivacky.Lfunc_begin0:
261193323Sed	.cfi_startproc
262198090Srdivacky.Lfunc_gep0:
263210299Sed	addis 2, 12, .TOC.-.Lfunc_gep0@ha
264193323Sed	addi 2, 2, .TOC.-.Lfunc_gep0@l
265193323Sed.Lfunc_lep0:
266193323Sed	.localentry	zfs_blake3_compress_in_place_sse2, .Lfunc_lep0-.Lfunc_gep0
267193323Sed	li 8, -64
268226633Sdim	mtvsrd 35, 5
269193323Sed	li 5, 16
270193323Sed	lfdx 0, 0, 4
271193323Sed	vspltisw 12, 9
272193323Sed	stxvd2x 60, 1, 8
273193323Sed	li 8, -48
274193323Sed	mtvsrd 36, 7
275193323Sed	lfd 2, 16(4)
276193323Sed	stxvd2x 61, 1, 8
277234353Sdim	li 8, -32
278234353Sdim	lfd 1, 8(4)
279234353Sdim	mtvsrwz 37, 6
280234353Sdim	rldicl 6, 6, 32, 32
281234353Sdim	addis 7, 2, .LCPI0_2@toc@ha
282234353Sdim	stxvd2x 62, 1, 8
283234353Sdim	li 8, -16
284234353Sdim	addi 7, 7, .LCPI0_2@toc@l
285234353Sdim	stxvd2x 63, 1, 8
286234353Sdim	li 8, 0
287234353Sdim	lvx 9, 0, 7
288234353Sdim	li 7, 48
289234353Sdim	mtvsrd 34, 8
290193323Sed	xxmrghd	32, 1, 0
291193323Sed	lxvd2x 0, 0, 3
292193323Sed	lxvd2x 1, 3, 5
293234353Sdim	lfd 3, 24(4)
294234353Sdim	addis 8, 2, .LCPI0_5@toc@ha
295234353Sdim	vmrghb 3, 2, 3
296234353Sdim	addi 8, 8, .LCPI0_5@toc@l
297234353Sdim	vmrghb 4, 2, 4
298193323Sed	vspltb 2, 2, 7
299193323Sed	xxmrghd	33, 3, 2
300193323Sed	vpkudum 7, 1, 0
301198090Srdivacky	vmrglh 3, 2, 3
302193323Sed	vmrglh 2, 2, 4
303193323Sed	mtvsrwz 36, 6
304193323Sed	addis 6, 2, .LCPI0_0@toc@ha
305193323Sed	addi 6, 6, .LCPI0_0@toc@l
306198090Srdivacky	vperm 10, 1, 0, 9
307193323Sed	vmrghw 4, 4, 5
308193323Sed	xxswapd	37, 1
309193323Sed	lxvd2x 1, 4, 7
310193323Sed	addis 7, 2, .LCPI0_8@toc@ha
311218893Sdim	addi 7, 7, .LCPI0_8@toc@l
312234353Sdim	vmrglw 2, 2, 3
313234353Sdim	xxswapd	35, 0
314234353Sdim	xxswapd	41, 1
315234353Sdim	xxspltd	62, 42, 1
316223017Sdim	vadduwm 3, 7, 3
317223017Sdim	vadduwm 6, 3, 5
318223017Sdim	xxmrgld	36, 34, 36
319223017Sdim	lvx 2, 0, 6
320223017Sdim	addis 6, 2, .LCPI0_1@toc@ha
321223017Sdim	addi 6, 6, .LCPI0_1@toc@l
322223017Sdim	xxlxor 35, 38, 36
323223017Sdim	lvx 4, 0, 6
324223017Sdim	li 6, 32
325223017Sdim	lxvd2x 0, 4, 6
326223017Sdim	addis 4, 2, .LCPI0_3@toc@ha
327193323Sed	addis 6, 2, .LCPI0_7@toc@ha
328223017Sdim	vperm 8, 3, 3, 2
329223017Sdim	vspltisw 3, 10
330193323Sed	addi 4, 4, .LCPI0_3@toc@l
331223017Sdim	addi 6, 6, .LCPI0_7@toc@l
332223017Sdim	vadduwm 3, 3, 3
333223017Sdim	vadduwm 11, 8, 4
334223017Sdim	xxlxor 36, 43, 37
335223017Sdim	vadduwm 5, 6, 10
336223017Sdim	vrlw 0, 4, 3
337223017Sdim	vspltisw 4, 12
338193323Sed	vadduwm 4, 4, 4
339223017Sdim	vadduwm 1, 0, 5
340223017Sdim	xxlxor 37, 33, 40
341223017Sdim	xxswapd	40, 0
342223017Sdim	vrlw 6, 5, 4
343223017Sdim	vspltisw 5, -16
344234353Sdim	vpkudum 13, 9, 8
345223017Sdim	vsubuwm 5, 12, 5
346223017Sdim	lvx 12, 0, 4
347223017Sdim	addis 4, 2, .LCPI0_4@toc@ha
348223017Sdim	addi 4, 4, .LCPI0_4@toc@l
349223017Sdim	vadduwm 11, 6, 11
350223017Sdim	xxswapd	0, 38
351223017Sdim	vadduwm 1, 1, 13
352223017Sdim	xxsldwi 50, 45, 45, 1
353223017Sdim	xxlxor 32, 43, 32
354223017Sdim	xxsldwi 43, 43, 43, 3
355223017Sdim	xxsldwi 33, 33, 33, 1
356193323Sed	vperm 12, 8, 9, 12
357223017Sdim	vrlw 0, 0, 5
358223017Sdim	vadduwm 1, 0, 1
359223017Sdim	xxlxor 38, 33, 0
360223017Sdim	vadduwm 1, 1, 12
361223017Sdim	vperm 6, 6, 6, 2
362193323Sed	vadduwm 15, 6, 11
363223017Sdim	lvx 11, 0, 4
364223017Sdim	addis 4, 2, .LCPI0_6@toc@ha
365223017Sdim	addi 4, 4, .LCPI0_6@toc@l
366223017Sdim	xxlxor 32, 47, 32
367193323Sed	lvx 17, 0, 4
368223017Sdim	addis 4, 2, .LCPI0_9@toc@ha
369223017Sdim	vperm 14, 10, 7, 11
370223017Sdim	addi 4, 4, .LCPI0_9@toc@l
371223017Sdim	vrlw 0, 0, 3
372223017Sdim	vadduwm 1, 0, 1
373223017Sdim	xxlxor 38, 33, 38
374223017Sdim	vrlw 6, 6, 4
375234353Sdim	vadduwm 8, 6, 15
376234353Sdim	xxswapd	0, 38
377234353Sdim	lvx 6, 0, 8
378234353Sdim	xxlxor 32, 40, 32
379234353Sdim	xxsldwi 40, 40, 40, 1
380193323Sed	vperm 13, 12, 18, 6
381193323Sed	vrlw 9, 0, 5
382193323Sed	vadduwm 0, 1, 14
383193323Sed	lvx 1, 0, 7
384193323Sed	xxsldwi 46, 46, 46, 3
385201360Srdivacky	xxsldwi 32, 32, 32, 3
386193323Sed	vperm 7, 7, 7, 1
387193323Sed	vadduwm 15, 9, 0
388193323Sed	xxlxor 32, 47, 0
389193323Sed	vperm 16, 0, 0, 2
390219077Sdim	lvx 0, 0, 6
391219077Sdim	addis 6, 2, .LCPI0_10@toc@ha
392193323Sed	vcmpequh 0, 0, 17
393193323Sed	vadduwm 19, 16, 8
394193323Sed	xxlxor 40, 51, 41
395193323Sed	xxsel 45, 39, 45, 32
396193323Sed	vrlw 31, 8, 3
397193323Sed	lvx 8, 0, 4
398218893Sdim	addis 4, 2, .LCPI0_11@toc@ha
399203954Srdivacky	addi 4, 4, .LCPI0_11@toc@l
400193323Sed	vcmpequh 7, 8, 17
401193323Sed	vadduwm 8, 15, 13
402193323Sed	vadduwm 15, 31, 8
403193323Sed	lvx 8, 0, 4
404218893Sdim	addi 4, 6, .LCPI0_10@toc@l
405203954Srdivacky	lvx 17, 0, 4
406203954Srdivacky	addis 4, 2, .LCPI0_12@toc@ha
407193323Sed	xxlxor 41, 47, 48
408234353Sdim	xxsldwi 47, 47, 47, 1
409234353Sdim	addi 4, 4, .LCPI0_12@toc@l
410234353Sdim	xxlnor 48, 39, 39
411193323Sed	vrlw 29, 9, 4
412193323Sed	vperm 9, 16, 16, 8
413193323Sed	xxland 48, 50, 39
414234353Sdim	vperm 17, 30, 12, 17
415234353Sdim	vperm 16, 16, 16, 8
416234353Sdim	vmrghw 12, 12, 10
417234353Sdim	lvx 10, 0, 4
418234353Sdim	addis 4, 2, .LCPI0_13@toc@ha
419234353Sdim	vadduwm 19, 29, 19
420193323Sed	addi 4, 4, .LCPI0_13@toc@l
421193323Sed	xxlxor 63, 51, 63
422198090Srdivacky	xxsldwi 51, 51, 51, 3
423198090Srdivacky	xxland 0, 49, 41
424193323Sed	vrlw 17, 31, 5
425193323Sed	xxlor 48, 0, 48
426198090Srdivacky	xxswapd	0, 61
427193323Sed	vperm 18, 12, 18, 10
428193323Sed	vadduwm 15, 15, 16
429193323Sed	xxland 60, 48, 39
430218893Sdim	vadduwm 15, 17, 15
431218893Sdim	vperm 28, 28, 28, 8
432234353Sdim	xxlxor 63, 47, 0
433234353Sdim	vadduwm 15, 15, 18
434218893Sdim	vperm 31, 31, 31, 2
435193323Sed	vperm 30, 18, 16, 6
436193323Sed	vadduwm 19, 31, 19
437193323Sed	xxlxor 44, 51, 49
438234353Sdim	vrlw 12, 12, 3
439234353Sdim	vadduwm 15, 12, 15
440234353Sdim	xxlxor 49, 47, 63
441218893Sdim	vperm 31, 13, 14, 11
442193323Sed	vrlw 17, 17, 4
443218893Sdim	vperm 14, 14, 14, 1
444218893Sdim	vadduwm 15, 15, 31
445218893Sdim	vadduwm 19, 17, 19
446218893Sdim	xxswapd	0, 49
447218893Sdim	xxsldwi 47, 47, 47, 3
448218893Sdim	xxsel 46, 46, 62, 32
449193323Sed	xxlxor 44, 51, 44
450218893Sdim	xxsldwi 51, 51, 51, 1
451218893Sdim	vrlw 12, 12, 5
452193323Sed	vadduwm 15, 12, 15
453218893Sdim	xxlxor 49, 47, 0
454218893Sdim	vperm 17, 17, 17, 2
455218893Sdim	vadduwm 19, 17, 19
456218893Sdim	xxlxor 44, 51, 44
457193323Sed	vrlw 29, 12, 3
458218893Sdim	vadduwm 12, 15, 14
459218893Sdim	vadduwm 15, 29, 12
460218893Sdim	lvx 12, 0, 4
461218893Sdim	addis 4, 2, .LCPI0_14@toc@ha
462218893Sdim	addi 4, 4, .LCPI0_14@toc@l
463218893Sdim	xxlxor 49, 47, 49
464234353Sdim	xxsldwi 47, 47, 47, 1
465218893Sdim	vperm 30, 13, 18, 12
466193323Sed	vrlw 17, 17, 4
467218893Sdim	vmrghw 13, 18, 13
468218893Sdim	xxland 0, 62, 41
469218893Sdim	vadduwm 19, 17, 19
470218893Sdim	vperm 16, 13, 16, 10
471218893Sdim	xxlxor 61, 51, 61
472218893Sdim	xxsldwi 50, 51, 51, 3
473218893Sdim	xxsldwi 51, 63, 63, 3
474218893Sdim	vrlw 30, 29, 5
475193323Sed	xxlor 61, 60, 0
476218893Sdim	xxswapd	0, 49
477218893Sdim	vperm 31, 14, 19, 11
478218893Sdim	vadduwm 15, 15, 29
479218893Sdim	vperm 19, 19, 19, 1
480218893Sdim	vadduwm 15, 30, 15
481218893Sdim	xxlxor 49, 47, 0
482218893Sdim	vadduwm 15, 15, 16
483218893Sdim	vperm 17, 17, 17, 2
484218893Sdim	vadduwm 18, 17, 18
485218893Sdim	xxlxor 45, 50, 62
486218893Sdim	vperm 30, 16, 29, 6
487218893Sdim	vrlw 13, 13, 3
488218893Sdim	vadduwm 15, 13, 15
489218893Sdim	xxlxor 49, 47, 49
490193323Sed	vadduwm 15, 15, 31
491218893Sdim	xxsldwi 63, 63, 63, 3
492218893Sdim	vrlw 17, 17, 4
493218893Sdim	xxsldwi 47, 47, 47, 3
494193323Sed	vadduwm 18, 17, 18
495218893Sdim	xxswapd	0, 49
496218893Sdim	xxlxor 45, 50, 45
497218893Sdim	xxsldwi 50, 50, 50, 1
498218893Sdim	vrlw 13, 13, 5
499218893Sdim	vadduwm 15, 13, 15
500234353Sdim	xxlxor 49, 47, 0
501234353Sdim	vperm 17, 17, 17, 2
502234353Sdim	vadduwm 18, 17, 18
503193323Sed	xxlxor 45, 50, 45
504193323Sed	vrlw 28, 13, 3
505193323Sed	xxsel 45, 51, 62, 32
506193323Sed	xxland 51, 61, 39
507193323Sed	vperm 30, 14, 16, 12
508193323Sed	vadduwm 15, 15, 13
509193323Sed	vperm 19, 19, 19, 8
510198090Srdivacky	vmrghw 14, 16, 14
511198090Srdivacky	vadduwm 15, 28, 15
512193323Sed	xxlxor 49, 47, 49
513193323Sed	xxsldwi 47, 47, 47, 1
514193323Sed	xxland 0, 62, 41
515193323Sed	vrlw 17, 17, 4
516193323Sed	xxlor 51, 51, 0
517193323Sed	vadduwm 15, 15, 19
518193323Sed	vadduwm 18, 17, 18
519193323Sed	xxswapd	0, 49
520193323Sed	xxlxor 60, 50, 60
521193323Sed	xxsldwi 48, 50, 50, 3
522193323Sed	vperm 18, 14, 29, 10
523193323Sed	vrlw 30, 28, 5
524193323Sed	vperm 29, 18, 19, 6
525218893Sdim	vadduwm 15, 30, 15
526218893Sdim	xxlxor 49, 47, 0
527203954Srdivacky	vadduwm 15, 15, 18
528193323Sed	vperm 17, 17, 17, 2
529193323Sed	vadduwm 16, 17, 16
530218893Sdim	xxlxor 46, 48, 62
531218893Sdim	vperm 30, 13, 31, 11
532218893Sdim	vrlw 14, 14, 3
533210299Sed	vperm 31, 31, 31, 1
534193323Sed	vadduwm 15, 14, 15
535218893Sdim	xxlxor 49, 47, 49
536218893Sdim	vadduwm 15, 15, 30
537203954Srdivacky	vrlw 17, 17, 4
538193323Sed	xxsldwi 47, 47, 47, 3
539193323Sed	vadduwm 16, 17, 16
540218893Sdim	xxswapd	0, 49
541218893Sdim	xxlxor 46, 48, 46
542218893Sdim	xxsldwi 48, 48, 48, 1
543210299Sed	vrlw 14, 14, 5
544193323Sed	vadduwm 15, 14, 15
545193323Sed	xxlxor 49, 47, 0
546193323Sed	vperm 17, 17, 17, 2
547219077Sdim	vadduwm 16, 17, 16
548219077Sdim	xxlxor 46, 48, 46
549193323Sed	vrlw 28, 14, 3
550193323Sed	xxsel 46, 63, 61, 32
551193323Sed	xxland 63, 51, 39
552193323Sed	vperm 29, 13, 18, 12
553193323Sed	vadduwm 15, 15, 14
554193323Sed	vperm 31, 31, 31, 8
555234353Sdim	vmrghw 13, 18, 13
556234353Sdim	vadduwm 15, 28, 15
557193323Sed	xxlxor 49, 47, 49
558193323Sed	xxsldwi 47, 47, 47, 1
559193323Sed	xxland 0, 61, 41
560193323Sed	vrlw 17, 17, 4
561193323Sed	xxlor 63, 63, 0
562193323Sed	vperm 13, 13, 19, 10
563193323Sed	xxsldwi 51, 62, 62, 3
564193323Sed	vadduwm 15, 15, 31
565193323Sed	vperm 30, 14, 19, 11
566193323Sed	vadduwm 16, 17, 16
567193323Sed	xxswapd	0, 49
568193323Sed	xxlxor 60, 48, 60
569193323Sed	xxsldwi 48, 48, 48, 3
570193323Sed	vrlw 29, 28, 5
571193323Sed	vadduwm 15, 29, 15
572193323Sed	xxlxor 49, 47, 0
573193323Sed	vadduwm 15, 15, 13
574193323Sed	vperm 17, 17, 17, 2
575193323Sed	vadduwm 16, 17, 16
576198090Srdivacky	xxlxor 50, 48, 61
577198090Srdivacky	vrlw 18, 18, 3
578198090Srdivacky	vadduwm 15, 18, 15
579198090Srdivacky	xxlxor 49, 47, 49
580193323Sed	vadduwm 15, 15, 30
581193323Sed	vrlw 17, 17, 4
582193323Sed	xxsldwi 47, 47, 47, 3
583193323Sed	vadduwm 11, 17, 16
584193323Sed	xxswapd	0, 49
585193323Sed	xxlxor 48, 43, 50
586218893Sdim	xxsldwi 43, 43, 43, 1
587203954Srdivacky	vperm 18, 19, 19, 1
588193323Sed	vrlw 16, 16, 5
589193323Sed	vperm 19, 13, 31, 6
590193323Sed	vadduwm 15, 16, 15
591193323Sed	xxlxor 49, 47, 0
592193323Sed	vperm 17, 17, 17, 2
593193323Sed	vadduwm 29, 17, 11
594193323Sed	xxlxor 43, 61, 48
595193323Sed	vrlw 16, 11, 3
596193323Sed	xxsel 43, 50, 51, 32
597218893Sdim	xxland 50, 63, 39
598203954Srdivacky	vperm 19, 14, 13, 12
599193323Sed	vadduwm 15, 15, 11
600193323Sed	vperm 18, 18, 18, 8
601234353Sdim	vmrghw 13, 13, 14
602234353Sdim	vadduwm 15, 16, 15
603193323Sed	xxlxor 49, 47, 49
604193323Sed	xxsldwi 47, 47, 47, 1
605193323Sed	xxland 0, 51, 41
606193323Sed	lvx 19, 0, 4
607193323Sed	vrlw 17, 17, 4
608193323Sed	xxlor 50, 50, 0
609193323Sed	vperm 13, 13, 31, 10
610193323Sed	xxsldwi 63, 62, 62, 3
611193323Sed	vadduwm 15, 15, 18
612198090Srdivacky	vperm 19, 11, 31, 19
613193323Sed	vadduwm 29, 17, 29
614193323Sed	xxswapd	0, 49
615193323Sed	vperm 1, 31, 31, 1
616193323Sed	xxlxor 48, 61, 48
617193323Sed	xxsldwi 46, 61, 61, 3
618193323Sed	vperm 6, 13, 18, 6
619193323Sed	vrlw 16, 16, 5
620193323Sed	xxsel 32, 33, 38, 32
621193323Sed	xxland 38, 50, 39
622193323Sed	vadduwm 15, 16, 15
623193323Sed	vperm 7, 11, 13, 12
624193323Sed	xxlxor 49, 47, 0
625193323Sed	vadduwm 15, 15, 13
626193323Sed	vperm 17, 17, 17, 2
627193323Sed	vperm 6, 6, 6, 8
628193323Sed	vadduwm 14, 17, 14
629193323Sed	xxlxor 48, 46, 48
630193323Sed	vrlw 16, 16, 3
631193323Sed	vadduwm 15, 16, 15
632193323Sed	xxlxor 49, 47, 49
633193574Sed	xxsldwi 47, 47, 47, 3
634193574Sed	vrlw 17, 17, 4
635193574Sed	vadduwm 15, 15, 19
636193574Sed	vadduwm 14, 17, 14
637193574Sed	xxswapd	0, 49
638193574Sed	xxlxor 48, 46, 48
639193574Sed	xxsldwi 46, 46, 46, 1
640193574Sed	vrlw 16, 16, 5
641193574Sed	vadduwm 15, 16, 15
642193574Sed	xxlxor 49, 47, 0
643193574Sed	vadduwm 0, 15, 0
644193574Sed	vperm 17, 17, 17, 2
645193574Sed	xxland 0, 39, 41
646203954Srdivacky	xxlor 38, 38, 0
647193574Sed	vadduwm 14, 17, 14
648193574Sed	xxlxor 48, 46, 48
649193574Sed	vrlw 16, 16, 3
650224145Sdim	vadduwm 0, 16, 0
651193574Sed	xxlxor 33, 32, 49
652193574Sed	xxsldwi 32, 32, 32, 1
653193574Sed	vrlw 1, 1, 4
654218893Sdim	vadduwm 0, 0, 6
655218893Sdim	vadduwm 8, 1, 14
656218893Sdim	xxswapd	0, 33
657218893Sdim	xxlxor 44, 40, 48
658218893Sdim	xxsldwi 38, 40, 40, 3
659193574Sed	vrlw 7, 12, 5
660224145Sdim	vadduwm 0, 7, 0
661193574Sed	xxlxor 33, 32, 0
662193574Sed	vperm 2, 1, 1, 2
663218893Sdim	vmrghw 1, 13, 11
664218893Sdim	vadduwm 6, 2, 6
665218893Sdim	vperm 1, 1, 18, 10
666218893Sdim	xxlxor 39, 38, 39
667224145Sdim	vrlw 3, 7, 3
668193574Sed	vadduwm 0, 0, 1
669193574Sed	vadduwm 0, 3, 0
670193574Sed	xxlxor 34, 32, 34
671193574Sed	xxsldwi 0, 32, 32, 3
672218893Sdim	vrlw 2, 2, 4
673193574Sed	vadduwm 4, 2, 6
674193574Sed	xxswapd	2, 34
675193574Sed	xxlxor 35, 36, 35
676218893Sdim	xxsldwi 1, 36, 36, 1
677218893Sdim	vrlw 3, 3, 5
678193574Sed	xxlxor 0, 1, 0
679193574Sed	xxswapd	0, 0
680218893Sdim	xxlxor 1, 35, 2
681218893Sdim	stxvd2x 0, 0, 3
682203954Srdivacky	xxswapd	1, 1
683193574Sed	stxvd2x 1, 3, 5
684193574Sed	li 3, -16
685193574Sed	lxvd2x 63, 1, 3
686193574Sed	li 3, -32
687193574Sed	lxvd2x 62, 1, 3
688221345Sdim	li 3, -48
689193574Sed	lxvd2x 61, 1, 3
690193574Sed	li 3, -64
691224145Sdim	lxvd2x 60, 1, 3
692224145Sdim	blr
693234353Sdim	.long	0
694234353Sdim	.quad	0
695234353Sdim.Lfunc_end0:
696193323Sed	.size	zfs_blake3_compress_in_place_sse2, .Lfunc_end0-.Lfunc_begin0
697193323Sed	.cfi_endproc
698193323Sed
699193323Sed	.section	.rodata.cst16,"aM",@progbits,16
700224145Sdim	.p2align	4
701224145Sdim.LCPI1_0:
702193323Sed	.byte	29
703193323Sed	.byte	28
704193323Sed	.byte	31
705224145Sdim	.byte	30
706224145Sdim	.byte	25
707224145Sdim	.byte	24
708193323Sed	.byte	27
709193323Sed	.byte	26
710193323Sed	.byte	21
711193323Sed	.byte	20
712193323Sed	.byte	23
713193323Sed	.byte	22
714193323Sed	.byte	17
715218893Sdim	.byte	16
716193323Sed	.byte	19
717193323Sed	.byte	18
718193323Sed.LCPI1_1:
719193323Sed	.long	1779033703
720193323Sed	.long	3144134277
721193323Sed	.long	1013904242
722193323Sed	.long	2773480762
723193323Sed.LCPI1_2:
724234353Sdim	.byte	27
725234353Sdim	.byte	26
726234353Sdim	.byte	25
727234353Sdim	.byte	24
728234353Sdim	.byte	19
729234353Sdim	.byte	18
730193323Sed	.byte	17
731193323Sed	.byte	16
732193323Sed	.byte	11
733193323Sed	.byte	10
734193323Sed	.byte	9
735193323Sed	.byte	8
736193323Sed	.byte	3
737193323Sed	.byte	2
738198090Srdivacky	.byte	1
739193323Sed	.byte	0
740193323Sed.LCPI1_3:
741193323Sed	.byte	19
742226633Sdim	.byte	18
743226633Sdim	.byte	17
744226633Sdim	.byte	16
745226633Sdim	.byte	11
746226633Sdim	.byte	10
747193323Sed	.byte	9
748193323Sed	.byte	8
749193323Sed	.byte	3
750193323Sed	.byte	2
751193323Sed	.byte	1
752193323Sed	.byte	0
753198090Srdivacky	.byte	27
754193323Sed	.byte	26
755193323Sed	.byte	25
756193323Sed	.byte	24
757193323Sed.LCPI1_4:
758193323Sed	.byte	23
759193323Sed	.byte	22
760193323Sed	.byte	21
761193323Sed	.byte	20
762193323Sed	.byte	27
763193323Sed	.byte	26
764193323Sed	.byte	25
765193323Sed	.byte	24
766193323Sed	.byte	11
767193323Sed	.byte	10
768193323Sed	.byte	9
769193323Sed	.byte	8
770193323Sed	.byte	3
771193323Sed	.byte	2
772193323Sed	.byte	1
773193323Sed	.byte	0
774193323Sed.LCPI1_5:
775193323Sed	.byte	23
776193323Sed	.byte	22
777193323Sed	.byte	21
778193323Sed	.byte	20
779193323Sed	.byte	23
780193323Sed	.byte	22
781193323Sed	.byte	21
782193323Sed	.byte	20
783193323Sed	.byte	3
784193323Sed	.byte	2
785193323Sed	.byte	1
786193323Sed	.byte	0
787193323Sed	.byte	3
788193323Sed	.byte	2
789193323Sed	.byte	1
790193323Sed	.byte	0
791210299Sed.LCPI1_6:
792210299Sed	.short	1
793193323Sed	.short	2
794193323Sed	.short	4
795193323Sed	.short	8
796193323Sed	.short	16
797193323Sed	.short	32
798193323Sed	.short	64
799226633Sdim	.short	128
800226633Sdim.LCPI1_7:
801193323Sed	.short	0
802193323Sed	.short	0
803193323Sed	.short	4
804193323Sed	.short	8
805193323Sed	.short	0
806193323Sed	.short	0
807193323Sed	.short	64
808193323Sed	.short	128
809193323Sed.LCPI1_8:
810193323Sed	.byte	19
811193323Sed	.byte	18
812193323Sed	.byte	17
813193323Sed	.byte	16
814193323Sed	.byte	19
815193323Sed	.byte	18
816193323Sed	.byte	17
817193323Sed	.byte	16
818193323Sed	.byte	31
819234353Sdim	.byte	30
820193323Sed	.byte	29
821234353Sdim	.byte	28
822193323Sed	.byte	31
823193323Sed	.byte	30
824193323Sed	.byte	29
825193323Sed	.byte	28
826193323Sed.LCPI1_9:
827193323Sed	.short	0
828193323Sed	.short	0
829193323Sed	.short	0
830193323Sed	.short	0
831234353Sdim	.short	0
832234353Sdim	.short	0
833234353Sdim	.short	64
834234353Sdim	.short	128
835234353Sdim.LCPI1_10:
836234353Sdim	.byte	31
837193323Sed	.byte	30
838198090Srdivacky	.byte	29
839198090Srdivacky	.byte	28
840198090Srdivacky	.byte	7
841198090Srdivacky	.byte	6
842198090Srdivacky	.byte	5
843234353Sdim	.byte	4
844234353Sdim	.byte	3
845234353Sdim	.byte	2
846234353Sdim	.byte	1
847234353Sdim	.byte	0
848234353Sdim	.byte	27
849198090Srdivacky	.byte	26
850193323Sed	.byte	25
851193323Sed	.byte	24
852234353Sdim.LCPI1_11:
853234353Sdim	.byte	31
854234353Sdim	.byte	30
855234353Sdim	.byte	29
856234353Sdim	.byte	28
857234353Sdim	.byte	23
858234353Sdim	.byte	22
859234353Sdim	.byte	21
860193323Sed	.byte	20
861193323Sed	.byte	19
862234353Sdim	.byte	18
863193323Sed	.byte	17
864193323Sed	.byte	16
865193323Sed	.byte	27
866234353Sdim	.byte	26
867193323Sed	.byte	25
868234353Sdim	.byte	24
869193323Sed.LCPI1_12:
870193323Sed	.byte	27
871193323Sed	.byte	26
872193323Sed	.byte	25
873193323Sed	.byte	24
874193323Sed	.byte	11
875234353Sdim	.byte	10
876234353Sdim	.byte	9
877234353Sdim	.byte	8
878234353Sdim	.byte	15
879234353Sdim	.byte	14
880234353Sdim	.byte	13
881234353Sdim	.byte	12
882193323Sed	.byte	31
883193323Sed	.byte	30
884193323Sed	.byte	29
885193323Sed	.byte	28
886234353Sdim.LCPI1_13:
887234353Sdim	.byte	31
888193323Sed	.byte	30
889234353Sdim	.byte	29
890234353Sdim	.byte	28
891193323Sed	.byte	15
892193323Sed	.byte	14
893193323Sed	.byte	13
894193323Sed	.byte	12
895193323Sed	.byte	11
896193323Sed	.byte	10
897202375Srdivacky	.byte	9
898202375Srdivacky	.byte	8
899202375Srdivacky	.byte	27
900193323Sed	.byte	26
901234353Sdim	.byte	25
902193323Sed	.byte	24
903234353Sdim.LCPI1_14:
904234353Sdim	.byte	27
905226633Sdim	.byte	26
906193323Sed	.byte	25
907193323Sed	.byte	24
908234353Sdim	.byte	11
909234353Sdim	.byte	10
910193323Sed	.byte	9
911193323Sed	.byte	8
912193323Sed	.byte	3
913198090Srdivacky	.byte	2
914234353Sdim	.byte	1
915234353Sdim	.byte	0
916193323Sed	.byte	23
917193323Sed	.byte	22
918234353Sdim	.byte	21
919193323Sed	.byte	20
920193323Sed	.text
921193323Sed	.globl	zfs_blake3_compress_xof_sse2
922198090Srdivacky	.p2align	2
923226633Sdim	.type	zfs_blake3_compress_xof_sse2,@function
924198090Srdivackyzfs_blake3_compress_xof_sse2:
925193323Sed.Lfunc_begin1:
926234353Sdim	.cfi_startproc
927234353Sdim.Lfunc_gep1:
928193323Sed	addis 2, 12, .TOC.-.Lfunc_gep1@ha
929193323Sed	addi 2, 2, .TOC.-.Lfunc_gep1@l
930193323Sed.Lfunc_lep1:
931193323Sed	.localentry	zfs_blake3_compress_xof_sse2, .Lfunc_lep1-.Lfunc_gep1
932193323Sed	li 9, -80
933193323Sed	mtvsrd 35, 5
934234353Sdim	li 5, 16
935234353Sdim	lfdx 0, 0, 4
936193323Sed	addis 10, 2, .LCPI1_2@toc@ha
937193323Sed	vspltisw 12, 9
938193323Sed	std 30, -16(1)
939193323Sed	addis 12, 2, .LCPI1_8@toc@ha
940193323Sed	addis 30, 2, .LCPI1_5@toc@ha
941193323Sed	addis 11, 2, .LCPI1_7@toc@ha
942198090Srdivacky	stxvd2x 60, 1, 9
943193323Sed	li 9, -64
944218893Sdim	mtvsrd 36, 7
945203954Srdivacky	lfd 2, 16(4)
946234353Sdim	addi 10, 10, .LCPI1_2@toc@l
947234353Sdim	addi 12, 12, .LCPI1_8@toc@l
948234353Sdim	addi 11, 11, .LCPI1_7@toc@l
949193323Sed	stxvd2x 61, 1, 9
950193323Sed	li 9, -48
951193323Sed	lfd 3, 24(4)
952234353Sdim	mtvsrwz 37, 6
953234353Sdim	rldicl 6, 6, 32, 32
954234353Sdim	lvx 9, 0, 10
955234353Sdim	stxvd2x 62, 1, 9
956234353Sdim	li 9, -32
957234353Sdim	li 10, 32
958234353Sdim	stxvd2x 63, 1, 9
959218893Sdim	li 9, 0
960193323Sed	mtvsrd 34, 9
961218893Sdim	xxmrghd	33, 3, 2
962218893Sdim	lfd 1, 8(4)
963218893Sdim	vmrghb 3, 2, 3
964218893Sdim	vmrghb 4, 2, 4
965218893Sdim	vspltb 2, 2, 7
966193323Sed	xxmrghd	32, 1, 0
967218893Sdim	lxvd2x 0, 0, 3
968218893Sdim	lxvd2x 1, 3, 5
969218893Sdim	vpkudum 7, 1, 0
970218893Sdim	vmrglh 3, 2, 3
971218893Sdim	vmrglh 2, 2, 4
972218893Sdim	mtvsrwz 36, 6
973218893Sdim	addis 6, 2, .LCPI1_0@toc@ha
974218893Sdim	addi 6, 6, .LCPI1_0@toc@l
975218893Sdim	vperm 10, 1, 0, 9
976218893Sdim	vmrghw 4, 4, 5
977218893Sdim	xxswapd	37, 1
978218893Sdim	vmrglw 2, 2, 3
979218893Sdim	xxswapd	35, 0
980218893Sdim	lxvd2x 0, 4, 10
981218893Sdim	xxspltd	62, 42, 1
982193323Sed	vadduwm 3, 7, 3
983218893Sdim	vadduwm 6, 3, 5
984218893Sdim	xxmrgld	36, 34, 36
985193323Sed	lvx 2, 0, 6
986218893Sdim	addis 6, 2, .LCPI1_1@toc@ha
987218893Sdim	addi 6, 6, .LCPI1_1@toc@l
988193323Sed	xxlxor 35, 38, 36
989234353Sdim	lvx 4, 0, 6
990234353Sdim	li 6, 48
991234353Sdim	lxvd2x 1, 4, 6
992234353Sdim	addis 4, 2, .LCPI1_3@toc@ha
993193323Sed	vperm 8, 3, 3, 2
994218893Sdim	vspltisw 3, 10
995193323Sed	addi 4, 4, .LCPI1_3@toc@l
996218893Sdim	xxswapd	41, 1
997218893Sdim	vadduwm 3, 3, 3
998218893Sdim	vadduwm 11, 8, 4
999218893Sdim	xxlxor 36, 43, 37
1000218893Sdim	vadduwm 5, 6, 10
1001218893Sdim	vrlw 0, 4, 3
1002218893Sdim	vspltisw 4, 12
1003218893Sdim	vadduwm 4, 4, 4
1004218893Sdim	vadduwm 1, 0, 5
1005218893Sdim	xxlxor 37, 33, 40
1006193323Sed	xxswapd	40, 0
1007234353Sdim	vrlw 6, 5, 4
1008234353Sdim	vspltisw 5, -16
1009218893Sdim	vpkudum 13, 9, 8
1010218893Sdim	vsubuwm 5, 12, 5
1011218893Sdim	lvx 12, 0, 4
1012218893Sdim	addis 4, 2, .LCPI1_4@toc@ha
1013218893Sdim	addi 4, 4, .LCPI1_4@toc@l
1014218893Sdim	vadduwm 11, 6, 11
1015218893Sdim	xxswapd	0, 38
1016218893Sdim	vadduwm 1, 1, 13
1017218893Sdim	xxsldwi 50, 45, 45, 1
1018218893Sdim	xxlxor 32, 43, 32
1019218893Sdim	xxsldwi 43, 43, 43, 3
1020218893Sdim	xxsldwi 33, 33, 33, 1
1021218893Sdim	vperm 12, 8, 9, 12
1022193323Sed	vrlw 0, 0, 5
1023218893Sdim	vadduwm 1, 0, 1
1024218893Sdim	xxlxor 38, 33, 0
1025218893Sdim	vadduwm 1, 1, 12
1026218893Sdim	vperm 6, 6, 6, 2
1027218893Sdim	vadduwm 15, 6, 11
1028218893Sdim	lvx 11, 0, 4
1029218893Sdim	addis 4, 2, .LCPI1_6@toc@ha
1030193323Sed	addi 4, 4, .LCPI1_6@toc@l
1031218893Sdim	xxlxor 32, 47, 32
1032218893Sdim	lvx 17, 0, 4
1033218893Sdim	addi 4, 30, .LCPI1_5@toc@l
1034218893Sdim	vperm 14, 10, 7, 11
1035218893Sdim	vrlw 0, 0, 3
1036218893Sdim	vadduwm 1, 0, 1
1037218893Sdim	xxlxor 38, 33, 38
1038218893Sdim	vrlw 6, 6, 4
1039193323Sed	vadduwm 8, 6, 15
1040218893Sdim	xxswapd	0, 38
1041218893Sdim	lvx 6, 0, 4
1042218893Sdim	addis 4, 2, .LCPI1_9@toc@ha
1043218893Sdim	addi 4, 4, .LCPI1_9@toc@l
1044193323Sed	xxlxor 32, 40, 32
1045218893Sdim	xxsldwi 40, 40, 40, 1
1046218893Sdim	vperm 13, 12, 18, 6
1047219077Sdim	vrlw 9, 0, 5
1048219077Sdim	vadduwm 0, 1, 14
1049193323Sed	lvx 1, 0, 12
1050218893Sdim	xxsldwi 46, 46, 46, 3
1051234353Sdim	xxsldwi 32, 32, 32, 3
1052218893Sdim	vperm 7, 7, 7, 1
1053218893Sdim	vadduwm 15, 9, 0
1054218893Sdim	xxlxor 32, 47, 0
1055218893Sdim	vperm 16, 0, 0, 2
1056218893Sdim	lvx 0, 0, 11
1057218893Sdim	addis 11, 2, .LCPI1_10@toc@ha
1058218893Sdim	vcmpequh 0, 0, 17
1059193323Sed	vadduwm 19, 16, 8
1060218893Sdim	xxlxor 40, 51, 41
1061218893Sdim	xxsel 45, 39, 45, 32
1062218893Sdim	vrlw 31, 8, 3
1063218893Sdim	lvx 8, 0, 4
1064218893Sdim	addis 4, 2, .LCPI1_11@toc@ha
1065218893Sdim	addi 4, 4, .LCPI1_11@toc@l
1066218893Sdim	vcmpequh 7, 8, 17
1067218893Sdim	vadduwm 8, 15, 13
1068218893Sdim	vadduwm 15, 31, 8
1069193323Sed	lvx 8, 0, 4
1070218893Sdim	addi 4, 11, .LCPI1_10@toc@l
1071218893Sdim	lvx 17, 0, 4
1072218893Sdim	addis 4, 2, .LCPI1_12@toc@ha
1073218893Sdim	xxlxor 41, 47, 48
1074193323Sed	xxsldwi 47, 47, 47, 1
1075218893Sdim	addi 4, 4, .LCPI1_12@toc@l
1076218893Sdim	xxlnor 48, 39, 39
1077219077Sdim	vrlw 29, 9, 4
1078219077Sdim	vperm 9, 16, 16, 8
1079193323Sed	xxland 48, 50, 39
1080218893Sdim	vperm 17, 30, 12, 17
1081234353Sdim	vperm 16, 16, 16, 8
1082218893Sdim	vmrghw 12, 12, 10
1083193323Sed	lvx 10, 0, 4
1084234353Sdim	addis 4, 2, .LCPI1_13@toc@ha
1085218893Sdim	vadduwm 19, 29, 19
1086218893Sdim	addi 4, 4, .LCPI1_13@toc@l
1087234353Sdim	xxlxor 63, 51, 63
1088218893Sdim	xxsldwi 51, 51, 51, 3
1089218893Sdim	xxland 0, 49, 41
1090218893Sdim	vrlw 17, 31, 5
1091218893Sdim	xxlor 48, 0, 48
1092234353Sdim	xxswapd	0, 61
1093234353Sdim	vperm 18, 12, 18, 10
1094218893Sdim	vadduwm 15, 15, 16
1095218893Sdim	xxland 60, 48, 39
1096234353Sdim	vadduwm 15, 17, 15
1097218893Sdim	vperm 28, 28, 28, 8
1098234353Sdim	xxlxor 63, 47, 0
1099234353Sdim	vadduwm 15, 15, 18
1100218893Sdim	vperm 31, 31, 31, 2
1101218893Sdim	vperm 30, 18, 16, 6
1102218893Sdim	vadduwm 19, 31, 19
1103218893Sdim	xxlxor 44, 51, 49
1104218893Sdim	vrlw 12, 12, 3
1105226633Sdim	vadduwm 15, 12, 15
1106218893Sdim	xxlxor 49, 47, 63
1107218893Sdim	vperm 31, 13, 14, 11
1108218893Sdim	vrlw 17, 17, 4
1109218893Sdim	vperm 14, 14, 14, 1
1110234353Sdim	vadduwm 15, 15, 31
1111234353Sdim	vadduwm 19, 17, 19
1112193323Sed	xxswapd	0, 49
1113193323Sed	xxsldwi 47, 47, 47, 3
1114218893Sdim	xxsel 46, 46, 62, 32
1115218893Sdim	xxlxor 44, 51, 44
1116218893Sdim	xxsldwi 51, 51, 51, 1
1117224145Sdim	vrlw 12, 12, 5
1118218893Sdim	vadduwm 15, 12, 15
1119218893Sdim	xxlxor 49, 47, 0
1120218893Sdim	vperm 17, 17, 17, 2
1121234353Sdim	vadduwm 19, 17, 19
1122218893Sdim	xxlxor 44, 51, 44
1123218893Sdim	vrlw 29, 12, 3
1124218893Sdim	vadduwm 12, 15, 14
1125218893Sdim	vadduwm 15, 29, 12
1126218893Sdim	lvx 12, 0, 4
1127193323Sed	addis 4, 2, .LCPI1_14@toc@ha
1128218893Sdim	addi 4, 4, .LCPI1_14@toc@l
1129218893Sdim	xxlxor 49, 47, 49
1130218893Sdim	xxsldwi 47, 47, 47, 1
1131193323Sed	vperm 30, 13, 18, 12
1132234353Sdim	vrlw 17, 17, 4
1133234353Sdim	vmrghw 13, 18, 13
1134193323Sed	xxland 0, 62, 41
1135193323Sed	vadduwm 19, 17, 19
1136224145Sdim	vperm 16, 13, 16, 10
1137234353Sdim	xxlxor 61, 51, 61
1138234353Sdim	xxsldwi 50, 51, 51, 3
1139224145Sdim	xxsldwi 51, 63, 63, 3
1140218893Sdim	vrlw 30, 29, 5
1141218893Sdim	xxlor 61, 60, 0
1142218893Sdim	xxswapd	0, 49
1143218893Sdim	vperm 31, 14, 19, 11
1144218893Sdim	vadduwm 15, 15, 29
1145218893Sdim	vperm 19, 19, 19, 1
1146218893Sdim	vadduwm 15, 30, 15
1147218893Sdim	xxlxor 49, 47, 0
1148234353Sdim	vadduwm 15, 15, 16
1149234353Sdim	vperm 17, 17, 17, 2
1150234353Sdim	vadduwm 18, 17, 18
1151234353Sdim	xxlxor 45, 50, 62
1152218893Sdim	vperm 30, 16, 29, 6
1153218893Sdim	vrlw 13, 13, 3
1154218893Sdim	vadduwm 15, 13, 15
1155218893Sdim	xxlxor 49, 47, 49
1156218893Sdim	vadduwm 15, 15, 31
1157218893Sdim	xxsldwi 63, 63, 63, 3
1158218893Sdim	vrlw 17, 17, 4
1159234353Sdim	xxsldwi 47, 47, 47, 3
1160234353Sdim	vadduwm 18, 17, 18
1161218893Sdim	xxswapd	0, 49
1162193323Sed	xxlxor 45, 50, 45
1163218893Sdim	xxsldwi 50, 50, 50, 1
1164193323Sed	vrlw 13, 13, 5
1165218893Sdim	vadduwm 15, 13, 15
1166218893Sdim	xxlxor 49, 47, 0
1167234353Sdim	vperm 17, 17, 17, 2
1168234353Sdim	vadduwm 18, 17, 18
1169234353Sdim	xxlxor 45, 50, 45
1170234353Sdim	vrlw 28, 13, 3
1171234353Sdim	xxsel 45, 51, 62, 32
1172234353Sdim	xxland 51, 61, 39
1173234353Sdim	vperm 30, 14, 16, 12
1174193323Sed	vadduwm 15, 15, 13
1175193323Sed	vperm 19, 19, 19, 8
1176193323Sed	vmrghw 14, 16, 14
1177234353Sdim	vadduwm 15, 28, 15
1178234353Sdim	xxlxor 49, 47, 49
1179193323Sed	xxsldwi 47, 47, 47, 1
1180193323Sed	xxland 0, 62, 41
1181203954Srdivacky	vrlw 17, 17, 4
1182193323Sed	xxlor 51, 51, 0
1183193323Sed	vadduwm 15, 15, 19
1184193574Sed	vadduwm 18, 17, 18
1185234353Sdim	xxswapd	0, 49
1186193574Sed	xxlxor 60, 50, 60
1187193323Sed	xxsldwi 48, 50, 50, 3
1188193323Sed	vperm 18, 14, 29, 10
1189193323Sed	vrlw 30, 28, 5
1190234353Sdim	vperm 29, 18, 19, 6
1191198090Srdivacky	vadduwm 15, 30, 15
1192193323Sed	xxlxor 49, 47, 0
1193234353Sdim	vadduwm 15, 15, 18
1194193323Sed	vperm 17, 17, 17, 2
1195193323Sed	vadduwm 16, 17, 16
1196193323Sed	xxlxor 46, 48, 62
1197198090Srdivacky	vperm 30, 13, 31, 11
1198226633Sdim	vrlw 14, 14, 3
1199210299Sed	vperm 31, 31, 31, 1
1200193323Sed	vadduwm 15, 14, 15
1201234353Sdim	xxlxor 49, 47, 49
1202234353Sdim	vadduwm 15, 15, 30
1203193323Sed	vrlw 17, 17, 4
1204193323Sed	xxsldwi 47, 47, 47, 3
1205193323Sed	vadduwm 16, 17, 16
1206234353Sdim	xxswapd	0, 49
1207234353Sdim	xxlxor 46, 48, 46
1208234353Sdim	xxsldwi 48, 48, 48, 1
1209193323Sed	vrlw 14, 14, 5
1210234353Sdim	vadduwm 15, 14, 15
1211193323Sed	xxlxor 49, 47, 0
1212218893Sdim	vperm 17, 17, 17, 2
1213193323Sed	vadduwm 16, 17, 16
1214234353Sdim	xxlxor 46, 48, 46
1215234353Sdim	vrlw 28, 14, 3
1216234353Sdim	xxsel 46, 63, 61, 32
1217234353Sdim	xxland 63, 51, 39
1218234353Sdim	vperm 29, 13, 18, 12
1219193323Sed	vadduwm 15, 15, 14
1220193323Sed	vperm 31, 31, 31, 8
1221234353Sdim	vmrghw 13, 18, 13
1222193323Sed	vadduwm 15, 28, 15
1223193323Sed	xxlxor 49, 47, 49
1224193323Sed	xxsldwi 47, 47, 47, 1
1225234353Sdim	xxland 0, 61, 41
1226193323Sed	vrlw 17, 17, 4
1227198090Srdivacky	xxlor 63, 63, 0
1228193323Sed	vperm 13, 13, 19, 10
1229193323Sed	xxsldwi 51, 62, 62, 3
1230193323Sed	vadduwm 15, 15, 31
1231193323Sed	vperm 30, 14, 19, 11
1232193323Sed	vadduwm 16, 17, 16
1233193323Sed	xxswapd	0, 49
1234207618Srdivacky	xxlxor 60, 48, 60
1235207618Srdivacky	xxsldwi 48, 48, 48, 3
1236193323Sed	vrlw 29, 28, 5
1237234353Sdim	vadduwm 15, 29, 15
1238234353Sdim	xxlxor 49, 47, 0
1239234353Sdim	vadduwm 15, 15, 13
1240234353Sdim	vperm 17, 17, 17, 2
1241193323Sed	vadduwm 16, 17, 16
1242193323Sed	xxlxor 50, 48, 61
1243201360Srdivacky	vrlw 18, 18, 3
1244193323Sed	vadduwm 15, 18, 15
1245193323Sed	xxlxor 49, 47, 49
1246193323Sed	vadduwm 15, 15, 30
1247193323Sed	vrlw 17, 17, 4
1248193323Sed	xxsldwi 47, 47, 47, 3
1249193323Sed	vadduwm 11, 17, 16
1250198090Srdivacky	xxswapd	0, 49
1251198090Srdivacky	xxlxor 48, 43, 50
1252193323Sed	xxsldwi 43, 43, 43, 1
1253193323Sed	vperm 18, 19, 19, 1
1254193323Sed	vrlw 16, 16, 5
1255193323Sed	vperm 19, 13, 31, 6
1256193323Sed	vadduwm 15, 16, 15
1257193323Sed	xxlxor 49, 47, 0
1258218893Sdim	vperm 17, 17, 17, 2
1259218893Sdim	vadduwm 29, 17, 11
1260203954Srdivacky	xxlxor 43, 61, 48
1261193323Sed	vrlw 16, 11, 3
1262193323Sed	xxsel 43, 50, 51, 32
1263193323Sed	xxland 50, 63, 39
1264193323Sed	vperm 19, 14, 13, 12
1265193323Sed	vadduwm 15, 15, 11
1266193323Sed	vperm 18, 18, 18, 8
1267219077Sdim	vmrghw 13, 13, 14
1268219077Sdim	vadduwm 15, 16, 15
1269218893Sdim	xxlxor 49, 47, 49
1270218893Sdim	xxsldwi 47, 47, 47, 1
1271218893Sdim	xxland 0, 51, 41
1272193323Sed	lvx 19, 0, 4
1273193323Sed	vrlw 17, 17, 4
1274193323Sed	xxlor 50, 50, 0
1275193323Sed	vperm 13, 13, 31, 10
1276193323Sed	xxsldwi 63, 62, 62, 3
1277193323Sed	vadduwm 15, 15, 18
1278219077Sdim	vperm 19, 11, 31, 19
1279219077Sdim	vadduwm 29, 17, 29
1280218893Sdim	xxswapd	0, 49
1281218893Sdim	vperm 1, 31, 31, 1
1282193323Sed	xxlxor 48, 61, 48
1283193323Sed	xxsldwi 46, 61, 61, 3
1284193323Sed	vperm 6, 13, 18, 6
1285193323Sed	vrlw 16, 16, 5
1286193323Sed	xxsel 32, 33, 38, 32
1287218893Sdim	xxland 38, 50, 39
1288218893Sdim	vadduwm 15, 16, 15
1289218893Sdim	vperm 7, 11, 13, 12
1290193323Sed	xxlxor 49, 47, 0
1291193323Sed	vadduwm 15, 15, 13
1292193323Sed	vperm 17, 17, 17, 2
1293193323Sed	vperm 6, 6, 6, 8
1294234353Sdim	vadduwm 14, 17, 14
1295234353Sdim	xxlxor 48, 46, 48
1296193323Sed	vrlw 16, 16, 3
1297193323Sed	vadduwm 15, 16, 15
1298234353Sdim	xxlxor 49, 47, 49
1299193323Sed	xxsldwi 47, 47, 47, 3
1300193323Sed	vrlw 17, 17, 4
1301193323Sed	vadduwm 15, 15, 19
1302198090Srdivacky	vadduwm 14, 17, 14
1303226633Sdim	xxswapd	0, 49
1304210299Sed	xxlxor 48, 46, 48
1305193323Sed	xxsldwi 46, 46, 46, 1
1306234353Sdim	vrlw 16, 16, 5
1307193323Sed	vadduwm 15, 16, 15
1308193323Sed	xxlxor 49, 47, 0
1309193323Sed	vadduwm 0, 15, 0
1310234353Sdim	vperm 17, 17, 17, 2
1311234353Sdim	xxland 0, 39, 41
1312193323Sed	xxlor 38, 38, 0
1313224145Sdim	vadduwm 14, 17, 14
1314234353Sdim	xxlxor 48, 46, 48
1315234353Sdim	vrlw 16, 16, 3
1316224145Sdim	vadduwm 0, 16, 0
1317193323Sed	xxlxor 33, 32, 49
1318224145Sdim	xxsldwi 32, 32, 32, 1
1319193323Sed	vrlw 1, 1, 4
1320234353Sdim	vadduwm 0, 0, 6
1321234353Sdim	vadduwm 8, 1, 14
1322234353Sdim	xxswapd	0, 33
1323234353Sdim	xxlxor 44, 40, 48
1324193323Sed	xxsldwi 38, 40, 40, 3
1325193323Sed	vrlw 7, 12, 5
1326193323Sed	vadduwm 0, 7, 0
1327193323Sed	xxlxor 33, 32, 0
1328193323Sed	vperm 2, 1, 1, 2
1329193323Sed	vmrghw 1, 13, 11
1330193323Sed	vadduwm 6, 2, 6
1331193323Sed	vperm 1, 1, 18, 10
1332193323Sed	xxlxor 39, 38, 39
1333193323Sed	vrlw 3, 7, 3
1334193323Sed	vadduwm 0, 0, 1
1335193323Sed	vadduwm 0, 3, 0
1336193323Sed	xxlxor 34, 32, 34
1337193323Sed	xxsldwi 0, 32, 32, 3
1338193323Sed	vrlw 2, 2, 4
1339218893Sdim	vadduwm 4, 2, 6
1340218893Sdim	xxswapd	2, 34
1341193323Sed	xxlxor 35, 36, 35
1342193323Sed	xxsldwi 1, 36, 36, 1
1343193323Sed	vrlw 3, 3, 5
1344193323Sed	xxlxor 0, 1, 0
1345193323Sed	xxswapd	0, 0
1346193323Sed	xxlxor 3, 35, 2
1347193323Sed	stxvd2x 0, 0, 8
1348193323Sed	xxswapd	3, 3
1349193323Sed	stxvd2x 3, 8, 5
1350193323Sed	lfdx 0, 0, 3
1351193323Sed	lfd 3, 8(3)
1352193323Sed	xxmrghd	34, 3, 0
1353193323Sed	xxlxor 0, 1, 34
1354193323Sed	xxswapd	0, 0
1355198090Srdivacky	stxvd2x 0, 8, 10
1356218893Sdim	lfd 0, 16(3)
1357234353Sdim	lfd 1, 24(3)
1358218893Sdim	li 3, -32
1359218893Sdim	xxmrghd	34, 1, 0
1360218893Sdim	xxlxor 0, 2, 34
1361218893Sdim	xxswapd	0, 0
1362218893Sdim	stxvd2x 0, 8, 6
1363218893Sdim	lxvd2x 63, 1, 3
1364218893Sdim	li 3, -48
1365218893Sdim	ld 30, -16(1)
1366218893Sdim	lxvd2x 62, 1, 3
1367218893Sdim	li 3, -64
1368218893Sdim	lxvd2x 61, 1, 3
1369218893Sdim	li 3, -80
1370218893Sdim	lxvd2x 60, 1, 3
1371218893Sdim	blr
1372218893Sdim	.long	0
1373218893Sdim	.quad	0
1374218893Sdim.Lfunc_end1:
1375218893Sdim	.size	zfs_blake3_compress_xof_sse2, .Lfunc_end1-.Lfunc_begin1
1376218893Sdim	.cfi_endproc
1377218893Sdim
1378218893Sdim	.globl	zfs_blake3_hash_many_sse2
1379218893Sdim	.p2align	2
1380218893Sdim	.type	zfs_blake3_hash_many_sse2,@function
1381218893Sdimzfs_blake3_hash_many_sse2:
1382218893Sdim.Lfunc_begin2:
1383218893Sdim	.cfi_startproc
1384218893Sdim.Lfunc_gep2:
1385218893Sdim	addis 2, 12, .TOC.-.Lfunc_gep2@ha
1386218893Sdim	addi 2, 2, .TOC.-.Lfunc_gep2@l
1387218893Sdim.Lfunc_lep2:
1388218893Sdim	.localentry	zfs_blake3_hash_many_sse2, .Lfunc_lep2-.Lfunc_gep2
1389218893Sdim	mfocrf 12, 32
1390218893Sdim	mflr 0
1391218893Sdim	std 0, 16(1)
1392218893Sdim	stw 12, 8(1)
1393198090Srdivacky	stdu 1, -256(1)
1394218893Sdim	.cfi_def_cfa_offset 256
1395218893Sdim	.cfi_offset lr, 16
1396218893Sdim	.cfi_offset r17, -120
1397218893Sdim	.cfi_offset r18, -112
1398218893Sdim	.cfi_offset r19, -104
1399218893Sdim	.cfi_offset r20, -96
1400218893Sdim	.cfi_offset r21, -88
1401218893Sdim	.cfi_offset r22, -80
1402218893Sdim	.cfi_offset r23, -72
1403218893Sdim	.cfi_offset r24, -64
1404218893Sdim	.cfi_offset r25, -56
1405234353Sdim	.cfi_offset r26, -48
1406193323Sed	.cfi_offset r27, -40
1407193323Sed	.cfi_offset r28, -32
1408193574Sed	.cfi_offset r29, -24
1409193574Sed	.cfi_offset r30, -16
1410193574Sed	.cfi_offset cr2, 8
1411193574Sed	std 26, 208(1)
1412193574Sed	mr	26, 4
1413198090Srdivacky	cmpldi 1, 4, 4
1414199989Srdivacky	andi. 4, 8, 1
1415193574Sed	std 18, 144(1)
1416193574Sed	std 19, 152(1)
1417193574Sed	crmove	8, 1
1418218893Sdim	ld 19, 360(1)
1419193574Sed	lwz 18, 352(1)
1420193574Sed	std 24, 192(1)
1421193574Sed	std 25, 200(1)
1422199989Srdivacky	std 27, 216(1)
1423193574Sed	std 28, 224(1)
1424193574Sed	mr	24, 10
1425193574Sed	mr	28, 6
1426193574Sed	mr	27, 5
1427193574Sed	mr	25, 3
1428193574Sed	std 29, 232(1)
1429193574Sed	std 30, 240(1)
1430193574Sed	mr	30, 9
1431193574Sed	mr	29, 7
1432193574Sed	std 17, 136(1)
1433204642Srdivacky	std 20, 160(1)
1434204642Srdivacky	std 21, 168(1)
1435204642Srdivacky	std 22, 176(1)
1436199989Srdivacky	std 23, 184(1)
1437218893Sdim	blt	1, .LBB2_3
1438218893Sdim	li 3, 0
1439203954Srdivacky	li 4, 1
1440203954Srdivacky	clrldi	23, 30, 32
1441210299Sed	isel 22, 4, 3, 8
1442218893Sdim	clrldi	21, 24, 32
1443218893Sdim	clrldi	20, 18, 32
1444203954Srdivacky.LBB2_2:
1445193574Sed	mr	3, 25
1446193574Sed	mr	4, 27
1447193574Sed	mr	5, 28
1448193574Sed	mr	6, 29
1449193574Sed	mr	7, 22
1450193574Sed	mr	8, 23
1451193574Sed	mr	9, 21
1452193574Sed	mr	10, 20
1453193574Sed	std 19, 32(1)
1454193574Sed	bl blake3_hash4_sse2
1455234353Sdim	addi 26, 26, -4
1456234353Sdim	addi 3, 29, 4
1457193574Sed	addi 25, 25, 32
1458193574Sed	addi 19, 19, 128
1459193323Sed	cmpldi	26, 3
1460193323Sed	isel 29, 3, 29, 8
1461193323Sed	bgt	0, .LBB2_2
1462193323Sed.LBB2_3:
1463205218Srdivacky	cmpldi	26, 0
1464205218Srdivacky	beq	0, .LBB2_11
1465205218Srdivacky	li 3, 0
1466193323Sed	li 4, 1
1467205218Srdivacky	or 21, 24, 30
1468205218Srdivacky	li 20, 16
1469224145Sdim	addi 24, 1, 96
1470205218Srdivacky	isel 22, 4, 3, 8
1471218893Sdim.LBB2_5:
1472193323Sed	lxvd2x 0, 28, 20
1473205218Srdivacky	ld 23, 0(25)
1474205218Srdivacky	mr	17, 27
1475205218Srdivacky	mr	3, 21
1476205218Srdivacky	stxvd2x 0, 24, 20
1477205218Srdivacky	lxvd2x 0, 0, 28
1478193323Sed	stxvd2x 0, 0, 24
1479218893Sdim.LBB2_6:
1480203954Srdivacky	cmpldi	17, 1
1481205218Srdivacky	beq	0, .LBB2_8
1482205218Srdivacky	cmpldi	17, 0
1483205218Srdivacky	bne	0, .LBB2_9
1484218893Sdim	b .LBB2_10
1485234353Sdim.LBB2_8:
1486205218Srdivacky	or 3, 3, 18
1487205218Srdivacky.LBB2_9:
1488205218Srdivacky	clrldi	7, 3, 56
1489205218Srdivacky	mr	3, 24
1490205218Srdivacky	mr	4, 23
1491205218Srdivacky	li 5, 64
1492205218Srdivacky	mr	6, 29
1493205218Srdivacky	bl zfs_blake3_compress_in_place_sse2
1494205218Srdivacky	addi 23, 23, 64
1495218893Sdim	addi 17, 17, -1
1496234353Sdim	mr	3, 30
1497205218Srdivacky	b .LBB2_6
1498205218Srdivacky.LBB2_10:
1499205218Srdivacky	lxvd2x 0, 24, 20
1500205218Srdivacky	addi 26, 26, -1
1501205218Srdivacky	add 29, 29, 22
1502205218Srdivacky	addi 25, 25, 8
1503219077Sdim	cmpldi	26, 0
1504219077Sdim	stxvd2x 0, 19, 20
1505205218Srdivacky	lxvd2x 0, 0, 24
1506193323Sed	stxvd2x 0, 0, 19
1507205218Srdivacky	addi 19, 19, 32
1508205218Srdivacky	bne	0, .LBB2_5
1509205218Srdivacky.LBB2_11:
1510205218Srdivacky	ld 30, 240(1)
1511193323Sed	ld 29, 232(1)
1512193323Sed	ld 28, 224(1)
1513193323Sed	ld 27, 216(1)
1514193323Sed	ld 26, 208(1)
1515193323Sed	ld 25, 200(1)
1516193323Sed	ld 24, 192(1)
1517193323Sed	ld 23, 184(1)
1518193323Sed	ld 22, 176(1)
1519193323Sed	ld 21, 168(1)
1520193323Sed	ld 20, 160(1)
1521193323Sed	ld 19, 152(1)
1522193323Sed	ld 18, 144(1)
1523193323Sed	ld 17, 136(1)
1524193323Sed	addi 1, 1, 256
1525193323Sed	ld 0, 16(1)
1526198090Srdivacky	lwz 12, 8(1)
1527193323Sed	mtocrf 32, 12
1528193323Sed	mtlr 0
1529193323Sed	blr
1530193323Sed	.long	0
1531193323Sed	.quad	0
1532193323Sed.Lfunc_end2:
1533193323Sed	.size	zfs_blake3_hash_many_sse2, .Lfunc_end2-.Lfunc_begin2
1534193323Sed	.cfi_endproc
1535193323Sed
1536193323Sed	.section	.rodata.cst16,"aM",@progbits,16
1537193323Sed	.p2align	4
1538193323Sed.LCPI3_0:
1539193323Sed	.quad	4294967296
1540218893Sdim	.quad	12884901890
1541193323Sed.LCPI3_1:
1542193323Sed	.byte	29
1543193323Sed	.byte	28
1544193323Sed	.byte	31
1545193323Sed	.byte	30
1546193323Sed	.byte	25
1547193323Sed	.byte	24
1548193323Sed	.byte	27
1549193323Sed	.byte	26
1550193323Sed	.byte	21
1551193323Sed	.byte	20
1552193323Sed	.byte	23
1553193323Sed	.byte	22
1554193323Sed	.byte	17
1555198396Srdivacky	.byte	16
1556193323Sed	.byte	19
1557198090Srdivacky	.byte	18
1558193323Sed.LCPI3_2:
1559193323Sed	.long	1779033703
1560193323Sed	.long	1779033703
1561198090Srdivacky	.long	1779033703
1562193323Sed	.long	1779033703
1563193323Sed.LCPI3_3:
1564234353Sdim	.long	3144134277
1565193323Sed	.long	3144134277
1566193323Sed	.long	3144134277
1567193323Sed	.long	3144134277
1568193323Sed.LCPI3_4:
1569193323Sed	.long	1013904242
1570193323Sed	.long	1013904242
1571193323Sed	.long	1013904242
1572234353Sdim	.long	1013904242
1573193323Sed.LCPI3_5:
1574193323Sed	.long	2773480762
1575193323Sed	.long	2773480762
1576193323Sed	.long	2773480762
1577193323Sed	.long	2773480762
1578193323Sed	.text
1579193323Sed	.p2align	2
1580193323Sed	.type	blake3_hash4_sse2,@function
1581193323Sedblake3_hash4_sse2:
1582193323Sed.Lfunc_begin3:
1583193323Sed	.cfi_startproc
1584193323Sed.Lfunc_gep3:
1585193323Sed	addis 2, 12, .TOC.-.Lfunc_gep3@ha
1586193323Sed	addi 2, 2, .TOC.-.Lfunc_gep3@l
1587193323Sed.Lfunc_lep3:
1588193323Sed	.localentry	blake3_hash4_sse2, .Lfunc_lep3-.Lfunc_gep3
1589193323Sed	stdu 1, -400(1)
1590193323Sed	.cfi_def_cfa_offset 400
1591193323Sed	.cfi_offset r22, -152
1592193323Sed	.cfi_offset r23, -144
1593193323Sed	.cfi_offset r24, -136
1594193323Sed	.cfi_offset r25, -128
1595193323Sed	.cfi_offset r26, -120
1596193323Sed	.cfi_offset r27, -112
1597193323Sed	.cfi_offset r28, -104
1598193323Sed	.cfi_offset r29, -96
1599193323Sed	.cfi_offset r30, -88
1600193323Sed	.cfi_offset f23, -72
1601193323Sed	.cfi_offset f24, -64
1602193323Sed	.cfi_offset f25, -56
1603198090Srdivacky	.cfi_offset f26, -48
1604198090Srdivacky	.cfi_offset f27, -40
1605193323Sed	.cfi_offset f28, -32
1606193323Sed	.cfi_offset f29, -24
1607193323Sed	.cfi_offset f30, -16
1608193323Sed	.cfi_offset f31, -8
1609198090Srdivacky	.cfi_offset v20, -352
1610193323Sed	.cfi_offset v21, -336
1611193323Sed	.cfi_offset v22, -320
1612193323Sed	.cfi_offset v23, -304
1613193323Sed	.cfi_offset v24, -288
1614218893Sdim	.cfi_offset v25, -272
1615193323Sed	.cfi_offset v26, -256
1616193323Sed	.cfi_offset v27, -240
1617193323Sed	.cfi_offset v28, -224
1618193323Sed	.cfi_offset v29, -208
1619226633Sdim	.cfi_offset v30, -192
1620207618Srdivacky	.cfi_offset v31, -176
1621193323Sed	li 11, 48
1622193323Sed	li 0, 8
1623193323Sed	std 30, 312(1)
1624193323Sed	li 30, 12
1625193323Sed	li 12, 4
1626193323Sed	lfiwzx 0, 0, 5
1627193323Sed	stxvd2x 52, 1, 11
1628218893Sdim	li 11, 64
1629193323Sed	lfiwzx 2, 5, 0
1630193323Sed	li 0, 20
1631193323Sed	lfiwzx 3, 5, 30
1632218893Sdim	stxvd2x 53, 1, 11
1633193323Sed	li 11, 80
1634193323Sed	li 30, 24
1635193323Sed	lfiwzx 4, 5, 0
1636193323Sed	li 0, 28
1637218893Sdim	stxvd2x 54, 1, 11
1638234353Sdim	li 11, 96
1639193323Sed	lfiwzx 1, 5, 12
1640193323Sed	lfiwzx 6, 5, 30
1641218893Sdim	xxspltw 45, 0, 1
1642218893Sdim	cmpldi	4, 0
1643193323Sed	std 22, 248(1)
1644193323Sed	stxvd2x 55, 1, 11
1645193323Sed	li 11, 112
1646193323Sed	lfiwzx 7, 5, 0
1647193323Sed	xxspltw 40, 2, 1
1648193323Sed	std 23, 256(1)
1649193323Sed	xxspltw 38, 3, 1
1650193323Sed	xxspltw 50, 4, 1
1651193323Sed	std 24, 264(1)
1652193323Sed	std 25, 272(1)
1653193323Sed	std 26, 280(1)
1654193323Sed	xxspltw 54, 7, 1
1655193323Sed	std 27, 288(1)
1656218893Sdim	std 28, 296(1)
1657203954Srdivacky	std 29, 304(1)
1658203954Srdivacky	stxvd2x 56, 1, 11
1659193323Sed	li 11, 128
1660218893Sdim	stfd 23, 328(1)
1661234353Sdim	stxvd2x 57, 1, 11
1662193323Sed	li 11, 144
1663193323Sed	stfd 24, 336(1)
1664193323Sed	stxvd2x 58, 1, 11
1665193323Sed	li 11, 160
1666193323Sed	stfd 25, 344(1)
1667193323Sed	stxvd2x 59, 1, 11
1668193323Sed	li 11, 176
1669193630Sed	xxspltw 59, 1, 1
1670193323Sed	stxvd2x 60, 1, 11
1671198090Srdivacky	li 11, 192
1672198090Srdivacky	stfd 26, 352(1)
1673198090Srdivacky	stxvd2x 61, 1, 11
1674193323Sed	li 11, 208
1675193323Sed	stfd 27, 360(1)
1676193323Sed	stxvd2x 62, 1, 11
1677193323Sed	li 11, 224
1678193630Sed	xxspltw 62, 6, 1
1679193323Sed	stxvd2x 63, 1, 11
1680193630Sed	li 11, 16
1681193323Sed	stfd 28, 368(1)
1682193630Sed	lfiwzx 5, 5, 11
1683193630Sed	ld 5, 432(1)
1684193630Sed	stfd 29, 376(1)
1685193323Sed	stfd 30, 384(1)
1686193630Sed	stfd 31, 392(1)
1687193630Sed	xxspltw 61, 5, 1
1688193323Sed	beq	0, .LBB3_5
1689193630Sed	addis 30, 2, .LCPI3_0@toc@ha
1690193630Sed	neg 7, 7
1691193630Sed	xxleqv 34, 34, 34
1692193630Sed	addis 28, 2, .LCPI3_2@toc@ha
1693193630Sed	addis 27, 2, .LCPI3_3@toc@ha
1694193630Sed	addis 26, 2, .LCPI3_4@toc@ha
1695193630Sed	addis 25, 2, .LCPI3_5@toc@ha
1696193630Sed	ld 29, 24(3)
1697193323Sed	addi 0, 30, .LCPI3_0@toc@l
1698193323Sed	mtfprwz	1, 7
1699193630Sed	addis 7, 2, .LCPI3_1@toc@ha
1700193630Sed	ld 30, 16(3)
1701193630Sed	lxvd2x 0, 0, 0
1702193630Sed	mtfprwz	2, 6
1703193323Sed	rldicl 6, 6, 32, 32
1704193323Sed	addi 0, 7, .LCPI3_1@toc@l
1705193323Sed	ld 7, 8(3)
1706193323Sed	vslw 2, 2, 2
1707234353Sdim	lvx 5, 0, 0
1708193323Sed	addi 0, 28, .LCPI3_2@toc@l
1709193323Sed	addi 28, 27, .LCPI3_3@toc@l
1710193323Sed	addi 27, 26, .LCPI3_4@toc@l
1711193323Sed	addi 26, 25, .LCPI3_5@toc@l
1712193323Sed	or 25, 9, 8
1713193323Sed	li 9, 0
1714199481Srdivacky	xxspltw 36, 2, 1
1715199481Srdivacky	xxswapd	35, 0
1716199481Srdivacky	xxspltw 0, 1, 1
1717199481Srdivacky	xxland 35, 0, 35
1718199481Srdivacky	mtfprwz	0, 6
1719199481Srdivacky	ld 6, 0(3)
1720199481Srdivacky	addi 3, 3, -8
1721199481Srdivacky	vadduwm 4, 3, 4
1722199481Srdivacky	xxlor 35, 35, 34
1723199481Srdivacky	xxlxor 34, 36, 34
1724193323Sed	xxlor 9, 36, 36
1725193323Sed	vspltisw 4, 4
1726226633Sdim	vcmpgtsw 2, 3, 2
1727193323Sed	xxspltw 35, 0, 1
1728193323Sed	xxlor 10, 36, 36
1729193323Sed	vsubuwm 2, 3, 2
1730193323Sed	xxlor 11, 34, 34
1731193323Sed	lvx 2, 0, 0
1732193323Sed	li 0, 32
1733193323Sed	xxlor 12, 34, 34
1734218893Sdim	lvx 2, 0, 28
1735234353Sdim	li 28, 48
1736193323Sed	xxlor 13, 34, 34
1737193323Sed	lvx 2, 0, 27
1738193630Sed	li 27, 0
1739193630Sed	xxlor 31, 34, 34
1740193630Sed	lvx 2, 0, 26
1741193630Sed	xxlor 30, 34, 34
1742193630Sed.LBB3_2:
1743193630Sed	mr	26, 27
1744193630Sed	addi 27, 27, 1
1745193630Sed	xxlor 28, 40, 40
1746193630Sed	cmpld	27, 4
1747193323Sed	sldi 26, 26, 6
1748193630Sed	xxlor 24, 45, 45
1749193630Sed	iseleq	24, 10, 9
1750193630Sed	add 23, 6, 26
1751193630Sed	add 22, 30, 26
1752193630Sed	lxvd2x 0, 6, 26
1753193630Sed	lxvd2x 1, 7, 26
1754193323Sed	or 25, 24, 25
1755193323Sed	add 24, 7, 26
1756193630Sed	lxvd2x 2, 30, 26
1757193323Sed	lxvd2x 3, 29, 26
1758193323Sed	xxlor 29, 38, 38
1759193323Sed	lxvd2x 4, 23, 11
1760193574Sed	lxvd2x 6, 24, 11
1761193574Sed	clrlwi	25, 25, 24
1762193323Sed	lxvd2x 7, 22, 11
1763193323Sed	lxvd2x 8, 23, 0
1764193323Sed	mtfprd	5, 25
1765193323Sed	add 25, 29, 26
1766193323Sed	xxswapd	34, 0
1767193323Sed	lxvd2x 0, 25, 11
1768193323Sed	xxswapd	36, 1
1769193323Sed	xxswapd	33, 2
1770193323Sed	lxvd2x 1, 24, 0
1771193323Sed	lxvd2x 2, 22, 0
1772193323Sed	xxswapd	39, 3
1773198090Srdivacky	xxswapd	32, 4
1774226633Sdim	lxvd2x 3, 25, 0
1775193323Sed	lxvd2x 4, 23, 28
1776193323Sed	xxswapd	49, 6
1777193323Sed	xxswapd	51, 7
1778193323Sed	lxvd2x 6, 24, 28
1779193323Sed	xxswapd	58, 8
1780193323Sed	lxvd2x 7, 22, 28
1781193323Sed	lxvd2x 8, 25, 28
1782193323Sed	xxswapd	60, 0
1783226633Sdim	mr	25, 3
1784218893Sdim	xxswapd	57, 1
1785234353Sdim	xxswapd	53, 2
1786234353Sdim	xxswapd	52, 3
1787234353Sdim	xxswapd	56, 4
1788234353Sdim	xxswapd	55, 6
1789234353Sdim	xxswapd	0, 5
1790234353Sdim	xxswapd	40, 7
1791218893Sdim	xxswapd	41, 8
1792218893Sdim	mtctr 12
1793234353Sdim.LBB3_3:
1794234353Sdim	ldu 24, 8(25)
1795234353Sdim	add 24, 24, 26
1796234353Sdim	addi 24, 24, 256
1797234353Sdim	dcbt 0, 24
1798193323Sed	bdnz .LBB3_3
1799193323Sed	vmrgew 3, 4, 2
1800218893Sdim	vspltisw 31, 9
1801234353Sdim	mr	25, 8
1802204642Srdivacky	vmrglw 10, 4, 2
1803193323Sed	vspltisw 14, 10
1804218893Sdim	vmrghw 6, 4, 2
1805218893Sdim	xxspltw 0, 0, 3
1806218893Sdim	vmrgew 4, 17, 0
1807218893Sdim	vmrglw 11, 17, 0
1808221345Sdim	vmrghw 16, 17, 0
1809221345Sdim	vmrgew 0, 25, 26
1810221345Sdim	vmrgew 13, 7, 1
1811223017Sdim	vmrglw 2, 7, 1
1812221345Sdim	vmrghw 7, 7, 1
1813221345Sdim	xxlor 25, 36, 36
1814221345Sdim	vmrgew 4, 28, 19
1815221345Sdim	xxlor 26, 32, 32
1816221345Sdim	vmrglw 0, 25, 26
1817221345Sdim	vmrglw 1, 28, 19
1818223017Sdim	xxmrgld	47, 34, 42
1819221345Sdim	xxlor 44, 28, 28
1820221345Sdim	vmrghw 25, 25, 26
1821221345Sdim	xxlor 23, 36, 36
1822221345Sdim	vmrghw 4, 28, 19
1823221345Sdim	vspltisw 19, -16
1824221345Sdim	xxlor 5, 32, 32
1825221345Sdim	vmrgew 0, 20, 21
1826221345Sdim	xxmrgld	34, 33, 43
1827221345Sdim	vmrglw 28, 20, 21
1828221345Sdim	vmrghw 21, 20, 21
1829223017Sdim	vmrglw 20, 23, 24
1830226633Sdim	vmrghw 26, 23, 24
1831221345Sdim	vmrglw 17, 9, 8
1832221345Sdim	xxlor 8, 32, 32
1833234353Sdim	vmrgew 0, 23, 24
1834234353Sdim	xxmrgld	56, 39, 38
1835221345Sdim	vmrgew 23, 9, 8
1836223017Sdim	xxlor 33, 24, 24
1837193323Sed	xxlor 2, 34, 34
1838193323Sed	vadduwm 11, 15, 1
1839193323Sed	xxmrgld	33, 36, 48
1840210299Sed	xxlor 6, 47, 47
1841210299Sed	xxlor 27, 32, 32
1842210299Sed	vmrghw 0, 9, 8
1843210299Sed	vspltisw 9, 12
1844210299Sed	vsubuwm 8, 31, 19
1845210299Sed	xxmrgld	51, 23, 25
1846210299Sed	vadduwm 31, 2, 12
1847210299Sed	xxlor 34, 10, 10
1848210299Sed	vadduwm 10, 14, 14
1849210299Sed	vslw 15, 2, 2
1850210299Sed	xxlor 34, 29, 29
1851210299Sed	vadduwm 14, 24, 27
1852226633Sdim	xxlor 24, 48, 48
1853210299Sed	vadduwm 16, 1, 2
1854210299Sed	xxmrgld	34, 45, 35
1855210299Sed	vadduwm 31, 31, 30
1856210299Sed	xxmrghd	36, 36, 24
1857210299Sed	vadduwm 11, 11, 29
1858210299Sed	vadduwm 14, 14, 18
1859210299Sed	vadduwm 13, 16, 22
1860210299Sed	xxlxor 47, 63, 47
1861210299Sed	xxlor 1, 9, 9
1862226633Sdim	xxlor 1, 11, 11
1863210299Sed	xxlxor 48, 43, 9
1864210299Sed	vadduwm 11, 11, 2
1865218893Sdim	xxlor 7, 34, 34
1866234353Sdim	xxmrghd	34, 39, 38
1867210299Sed	xxlxor 39, 46, 11
1868210299Sed	xxlor 1, 50, 50
1869210299Sed	xxlxor 50, 45, 0
1870210299Sed	vperm 15, 15, 15, 5
1871210299Sed	vperm 16, 16, 16, 5
1872193323Sed	vperm 7, 7, 7, 5
1873193323Sed	vperm 18, 18, 18, 5
1874193323Sed	xxlor 4, 33, 33
1875193323Sed	xxlor 33, 31, 31
1876193323Sed	vadduwm 14, 14, 2
1877193323Sed	xxlor 3, 34, 34
1878198090Srdivacky	xxlor 34, 12, 12
1879234353Sdim	xxlor 35, 13, 13
1880193323Sed	vadduwm 6, 15, 1
1881193323Sed	xxlor 33, 30, 30
1882193323Sed	vadduwm 2, 16, 2
1883193323Sed	vadduwm 3, 7, 3
1884193323Sed	vadduwm 12, 18, 1
1885193323Sed	xxlxor 59, 34, 61
1886193323Sed	xxlxor 61, 35, 1
1887193323Sed	xxlxor 33, 38, 62
1888193323Sed	xxlxor 62, 44, 54
1889199481Srdivacky	vrlw 22, 27, 10
1890193323Sed	vrlw 29, 29, 10
1891193323Sed	vrlw 1, 1, 10
1892193323Sed	vrlw 30, 30, 10
1893193323Sed	vadduwm 31, 31, 19
1894193323Sed	vadduwm 13, 13, 4
1895198090Srdivacky	vadduwm 11, 22, 11
1896234353Sdim	vadduwm 14, 29, 14
1897199481Srdivacky	vadduwm 31, 1, 31
1898199481Srdivacky	vadduwm 13, 30, 13
1899199481Srdivacky	vadduwm 9, 9, 9
1900199481Srdivacky	xxlor 1, 36, 36
1901193323Sed	xxlxor 48, 43, 48
1902193323Sed	xxlxor 36, 46, 39
1903193323Sed	xxmrgld	39, 60, 5
1904193323Sed	xxlxor 47, 63, 47
1905193323Sed	xxlxor 50, 45, 50
1906221345Sdim	vrlw 16, 16, 9
1907221345Sdim	vrlw 28, 4, 9
1908221345Sdim	xxmrgld	36, 53, 57
1909221345Sdim	vrlw 15, 15, 9
1910221345Sdim	xxmrghd	57, 53, 57
1911234353Sdim	vrlw 18, 18, 9
1912221345Sdim	vadduwm 14, 14, 4
1913221345Sdim	xxlor 0, 36, 36
1914221345Sdim	xxmrgld	36, 49, 52
1915221345Sdim	vadduwm 2, 16, 2
1916221345Sdim	xxmrgld	49, 8, 26
1917221345Sdim	vadduwm 3, 28, 3
1918221345Sdim	vadduwm 6, 15, 6
1919221345Sdim	vadduwm 12, 18, 12
1920221345Sdim	xxlxor 54, 34, 54
1921221345Sdim	xxlxor 61, 35, 61
1922221345Sdim	xxlxor 33, 38, 33
1923221345Sdim	xxlxor 62, 44, 62
1924221345Sdim	vrlw 29, 29, 8
1925221345Sdim	vrlw 20, 1, 8
1926221345Sdim	xxmrgld	33, 55, 27
1927221345Sdim	vrlw 30, 30, 8
1928221345Sdim	vrlw 22, 22, 8
1929221345Sdim	vadduwm 11, 11, 7
1930221345Sdim	xxlor 5, 39, 39
1931221345Sdim	xxmrgld	39, 32, 58
1932221345Sdim	vadduwm 31, 31, 4
1933221345Sdim	vadduwm 11, 29, 11
1934221345Sdim	vadduwm 13, 13, 7
1935221345Sdim	vadduwm 14, 20, 14
1936221345Sdim	vadduwm 31, 30, 31
1937221345Sdim	vadduwm 13, 22, 13
1938221345Sdim	xxlor 28, 36, 36
1939221345Sdim	xxlxor 50, 43, 50
1940221345Sdim	xxlxor 48, 46, 48
1941221345Sdim	xxlxor 36, 63, 60
1942221345Sdim	xxlxor 47, 45, 47
1943221345Sdim	vperm 18, 18, 18, 5
1944221345Sdim	vperm 16, 16, 16, 5
1945221345Sdim	vperm 4, 4, 4, 5
1946221345Sdim	vperm 15, 15, 15, 5
1947221345Sdim	vadduwm 11, 11, 17
1948221345Sdim	vmr	28, 17
1949221345Sdim	xxmrghd	49, 32, 58
1950221345Sdim	vadduwm 6, 18, 6
1951221345Sdim	vadduwm 12, 16, 12
1952221345Sdim	vadduwm 21, 4, 2
1953221345Sdim	vadduwm 3, 15, 3
1954221345Sdim	xxlxor 34, 38, 61
1955221345Sdim	xxlxor 61, 44, 52
1956234353Sdim	xxlxor 62, 53, 62
1957221345Sdim	xxlxor 54, 35, 54
1958221345Sdim	vrlw 20, 2, 10
1959221345Sdim	vrlw 29, 29, 10
1960221345Sdim	vrlw 0, 30, 10
1961221345Sdim	vrlw 30, 22, 10
1962221345Sdim	vadduwm 14, 14, 25
1963221345Sdim	vadduwm 31, 31, 1
1964221345Sdim	vadduwm 13, 13, 17
1965221345Sdim	vadduwm 11, 20, 11
1966221345Sdim	vadduwm 14, 29, 14
1967221345Sdim	vadduwm 31, 0, 31
1968221345Sdim	vadduwm 13, 30, 13
1969221345Sdim	xxlxor 50, 43, 50
1970226633Sdim	xxlxor 48, 46, 48
1971221345Sdim	xxlxor 36, 63, 36
1972221345Sdim	xxlxor 47, 45, 47
1973221345Sdim	vrlw 18, 18, 9
1974221345Sdim	vrlw 16, 16, 9
1975221345Sdim	vrlw 4, 4, 9
1976226633Sdim	vrlw 15, 15, 9
1977221345Sdim	vadduwm 11, 11, 24
1978221345Sdim	xxlor 8, 56, 56
1979221345Sdim	vadduwm 6, 18, 6
1980221345Sdim	vadduwm 12, 16, 12
1981221345Sdim	vadduwm 24, 4, 21
1982221345Sdim	vadduwm 3, 15, 3
1983221345Sdim	xxlxor 55, 38, 52
1984221345Sdim	xxlxor 61, 44, 61
1985221345Sdim	xxlxor 62, 35, 62
1986221345Sdim	xxlxor 32, 56, 32
1987221345Sdim	vrlw 30, 30, 8
1988221345Sdim	vrlw 23, 23, 8
1989221345Sdim	vrlw 29, 29, 8
1990221345Sdim	vrlw 0, 0, 8
1991221345Sdim	xxlor 25, 51, 51
1992221345Sdim	vmr	26, 17
1993221345Sdim	xxlor 49, 3, 3
1994221345Sdim	xxlor 52, 1, 1
1995221345Sdim	xxlor 51, 2, 2
1996221345Sdim	vadduwm 14, 14, 17
1997221345Sdim	vadduwm 31, 31, 20
1998234353Sdim	vadduwm 13, 13, 19
1999234353Sdim	vadduwm 11, 30, 11
2000221345Sdim	vadduwm 14, 23, 14
2001221345Sdim	vadduwm 31, 29, 31
2002234353Sdim	vadduwm 13, 0, 13
2003234353Sdim	xxlxor 48, 43, 48
2004221345Sdim	xxlxor 36, 46, 36
2005221345Sdim	xxlxor 47, 63, 47
2006221345Sdim	xxlxor 50, 45, 50
2007221345Sdim	vperm 16, 16, 16, 5
2008193323Sed	vperm 4, 4, 4, 5
2009193323Sed	vperm 15, 15, 15, 5
2010193323Sed	vperm 18, 18, 18, 5
2011193323Sed	xxlor 29, 39, 39
2012193323Sed	xxlor 59, 4, 4
2013193323Sed	vadduwm 24, 16, 24
2014198090Srdivacky	vadduwm 3, 4, 3
2015193323Sed	vadduwm 6, 15, 6
2016193323Sed	vadduwm 12, 18, 12
2017193323Sed	xxlxor 62, 56, 62
2018193323Sed	xxlxor 55, 35, 55
2019193323Sed	xxlxor 61, 38, 61
2020193323Sed	xxlxor 32, 44, 32
2021193323Sed	vrlw 30, 30, 10
2022193323Sed	vrlw 23, 23, 10
2023193323Sed	vrlw 29, 29, 10
2024193323Sed	vrlw 0, 0, 10
2025193323Sed	xxlor 53, 0, 0
2026193323Sed	xxlor 39, 6, 6
2027193323Sed	vadduwm 11, 11, 27
2028193323Sed	vadduwm 14, 14, 21
2029193323Sed	vadduwm 31, 31, 7
2030193323Sed	vadduwm 13, 13, 1
2031193323Sed	vadduwm 11, 30, 11
2032193323Sed	vadduwm 14, 23, 14
2033193323Sed	vadduwm 31, 29, 31
2034193323Sed	vadduwm 13, 0, 13
2035193323Sed	xxlxor 48, 43, 48
2036193323Sed	xxlxor 36, 46, 36
2037193323Sed	xxlxor 47, 63, 47
2038193323Sed	xxlxor 50, 45, 50
2039193323Sed	vrlw 16, 16, 9
2040193323Sed	vrlw 4, 4, 9
2041193323Sed	vrlw 15, 15, 9
2042218893Sdim	vrlw 18, 18, 9
2043203954Srdivacky	xxlor 34, 7, 7
2044193323Sed	vadduwm 31, 31, 28
2045193323Sed	vadduwm 24, 16, 24
2046193323Sed	vadduwm 3, 4, 3
2047218893Sdim	vadduwm 6, 15, 6
2048218893Sdim	vadduwm 12, 18, 12
2049218893Sdim	xxlxor 62, 56, 62
2050193323Sed	xxlxor 55, 35, 55
2051218893Sdim	xxlxor 61, 38, 61
2052234353Sdim	xxlxor 32, 44, 32
2053193323Sed	vrlw 23, 23, 8
2054193323Sed	vrlw 29, 29, 8
2055193323Sed	vrlw 0, 0, 8
2056193323Sed	vrlw 30, 30, 8
2057193323Sed	vadduwm 11, 11, 2
2058193323Sed	xxlor 34, 28, 28
2059193323Sed	vadduwm 13, 13, 26
2060193323Sed	vadduwm 14, 14, 2
2061193323Sed	vadduwm 11, 23, 11
2062193323Sed	vadduwm 14, 29, 14
2063193323Sed	vadduwm 31, 0, 31
2064193323Sed	vadduwm 13, 30, 13
2065193323Sed	xxlxor 50, 43, 50
2066193323Sed	xxlxor 48, 46, 48
2067193323Sed	xxlxor 36, 63, 36
2068193323Sed	xxlxor 47, 45, 47
2069193323Sed	vperm 18, 18, 18, 5
2070193323Sed	vperm 16, 16, 16, 5
2071193323Sed	vperm 4, 4, 4, 5
2072193323Sed	vperm 15, 15, 15, 5
2073193323Sed	xxlor 2, 58, 58
2074193323Sed	xxlor 39, 25, 25
2075208599Srdivacky	vadduwm 6, 18, 6
2076204792Srdivacky	vadduwm 12, 16, 12
2077204792Srdivacky	vadduwm 24, 4, 24
2078204792Srdivacky	vadduwm 3, 15, 3
2079204792Srdivacky	xxlxor 55, 38, 55
2080204792Srdivacky	xxlxor 61, 44, 61
2081204792Srdivacky	xxlxor 32, 56, 32
2082204792Srdivacky	xxlxor 62, 35, 62
2083204792Srdivacky	vrlw 23, 23, 10
2084204792Srdivacky	vrlw 29, 29, 10
2085204792Srdivacky	vrlw 0, 0, 10
2086204792Srdivacky	vrlw 30, 30, 10
2087204792Srdivacky	xxlor 54, 29, 29
2088204792Srdivacky	xxlor 58, 5, 5
2089204792Srdivacky	vadduwm 11, 11, 25
2090204792Srdivacky	vadduwm 14, 14, 7
2091204792Srdivacky	vadduwm 31, 31, 22
2092204792Srdivacky	vadduwm 13, 13, 26
2093204792Srdivacky	vadduwm 11, 23, 11
2094204792Srdivacky	vadduwm 14, 29, 14
2095218893Sdim	vadduwm 31, 0, 31
2096218893Sdim	vadduwm 13, 30, 13
2097210299Sed	xxlxor 50, 43, 50
2098210299Sed	xxlxor 48, 46, 48
2099204792Srdivacky	xxlxor 36, 63, 36
2100204792Srdivacky	xxlxor 47, 45, 47
2101204792Srdivacky	vrlw 18, 18, 9
2102218893Sdim	vrlw 16, 16, 9
2103208599Srdivacky	vrlw 4, 4, 9
2104208599Srdivacky	vrlw 15, 15, 9
2105218893Sdim	vadduwm 11, 11, 17
2106218893Sdim	vadduwm 14, 14, 21
2107218893Sdim	vadduwm 6, 18, 6
2108218893Sdim	vadduwm 12, 16, 12
2109218893Sdim	vadduwm 24, 4, 24
2110219077Sdim	vadduwm 3, 15, 3
2111219077Sdim	xxlxor 55, 38, 55
2112218893Sdim	xxlxor 61, 44, 61
2113218893Sdim	xxlxor 62, 35, 62
2114218893Sdim	xxlxor 32, 56, 32
2115218893Sdim	vrlw 30, 30, 8
2116218893Sdim	vrlw 23, 23, 8
2117218893Sdim	vrlw 29, 29, 8
2118218893Sdim	vrlw 0, 0, 8
2119218893Sdim	vadduwm 31, 31, 1
2120218893Sdim	vadduwm 13, 13, 20
2121218893Sdim	vadduwm 11, 30, 11
2122218893Sdim	vadduwm 14, 23, 14
2123218893Sdim	vadduwm 31, 29, 31
2124218893Sdim	vadduwm 13, 0, 13
2125218893Sdim	xxlxor 48, 43, 48
2126218893Sdim	xxlxor 36, 46, 36
2127218893Sdim	xxlxor 47, 63, 47
2128218893Sdim	xxlxor 50, 45, 50
2129218893Sdim	vperm 16, 16, 16, 5
2130208599Srdivacky	vperm 4, 4, 4, 5
2131210299Sed	vperm 15, 15, 15, 5
2132208599Srdivacky	vperm 18, 18, 18, 5
2133208599Srdivacky	xxlor 0, 33, 33
2134208599Srdivacky	xxlor 33, 8, 8
2135210299Sed	vadduwm 24, 16, 24
2136208599Srdivacky	vadduwm 3, 4, 3
2137208599Srdivacky	vadduwm 6, 15, 6
2138208599Srdivacky	vadduwm 12, 18, 12
2139208599Srdivacky	xxlxor 62, 56, 62
2140208599Srdivacky	xxlxor 55, 35, 55
2141208599Srdivacky	xxlxor 61, 38, 61
2142218893Sdim	xxlxor 32, 44, 32
2143208599Srdivacky	vrlw 30, 30, 10
2144219077Sdim	vrlw 23, 23, 10
2145208599Srdivacky	vrlw 29, 29, 10
2146208599Srdivacky	vrlw 0, 0, 10
2147208599Srdivacky	vadduwm 11, 11, 19
2148208599Srdivacky	vadduwm 14, 14, 2
2149208599Srdivacky	vadduwm 31, 31, 1
2150208599Srdivacky	vadduwm 13, 13, 22
2151208599Srdivacky	vadduwm 11, 30, 11
2152208599Srdivacky	vadduwm 14, 23, 14
2153208599Srdivacky	vadduwm 31, 29, 31
2154208599Srdivacky	vadduwm 13, 0, 13
2155208599Srdivacky	xxlxor 48, 43, 48
2156208599Srdivacky	xxlxor 36, 46, 36
2157208599Srdivacky	xxlxor 47, 63, 47
2158208599Srdivacky	xxlxor 50, 45, 50
2159208599Srdivacky	vrlw 16, 16, 9
2160193323Sed	vrlw 4, 4, 9
2161193323Sed	vrlw 15, 15, 9
2162193323Sed	vrlw 18, 18, 9
2163193323Sed	vadduwm 11, 11, 27
2164193323Sed	vadduwm 14, 14, 28
2165193323Sed	vadduwm 24, 16, 24
2166193323Sed	vadduwm 3, 4, 3
2167193323Sed	vadduwm 6, 15, 6
2168193323Sed	vadduwm 12, 18, 12
2169193323Sed	xxlxor 62, 56, 62
2170193323Sed	xxlxor 55, 35, 55
2171193323Sed	xxlxor 61, 38, 61
2172193323Sed	xxlxor 32, 44, 32
2173198090Srdivacky	vrlw 23, 23, 8
2174234353Sdim	vrlw 29, 29, 8
2175193323Sed	vrlw 0, 0, 8
2176193323Sed	vrlw 30, 30, 8
2177193323Sed	vadduwm 31, 31, 25
2178193323Sed	vadduwm 13, 13, 26
2179193323Sed	vadduwm 11, 23, 11
2180193323Sed	vadduwm 14, 29, 14
2181198090Srdivacky	vadduwm 31, 0, 31
2182198090Srdivacky	vadduwm 13, 30, 13
2183193323Sed	xxlxor 50, 43, 50
2184193323Sed	xxlxor 48, 46, 48
2185193323Sed	xxlxor 36, 63, 36
2186193323Sed	xxlxor 47, 45, 47
2187193323Sed	vperm 18, 18, 18, 5
2188193323Sed	vperm 16, 16, 16, 5
2189193323Sed	vperm 4, 4, 4, 5
2190193323Sed	vperm 15, 15, 15, 5
2191218893Sdim	xxlor 3, 7, 7
2192234353Sdim	vadduwm 11, 11, 7
2193193323Sed	vadduwm 6, 18, 6
2194234353Sdim	vadduwm 12, 16, 12
2195234353Sdim	vadduwm 24, 4, 24
2196234353Sdim	vadduwm 3, 15, 3
2197234353Sdim	xxlxor 55, 38, 55
2198234353Sdim	xxlxor 61, 44, 61
2199234353Sdim	xxlxor 32, 56, 32
2200234353Sdim	xxlxor 62, 35, 62
2201193323Sed	vrlw 23, 23, 10
2202193323Sed	vrlw 29, 29, 10
2203193323Sed	vrlw 0, 0, 10
2204193323Sed	vrlw 30, 30, 10
2205193323Sed	xxlor 33, 6, 6
2206193323Sed	xxlor 58, 2, 2
2207193323Sed	xxlor 39, 3, 3
2208193323Sed	vadduwm 14, 14, 1
2209193323Sed	vadduwm 31, 31, 26
2210193323Sed	vadduwm 13, 13, 7
2211193323Sed	vadduwm 11, 23, 11
2212198090Srdivacky	vadduwm 14, 29, 14
2213193323Sed	vadduwm 31, 0, 31
2214193323Sed	vadduwm 13, 30, 13
2215193323Sed	xxlxor 50, 43, 50
2216198090Srdivacky	xxlxor 48, 46, 48
2217193323Sed	xxlxor 36, 63, 36
2218193323Sed	xxlxor 47, 45, 47
2219193323Sed	vrlw 18, 18, 9
2220193323Sed	vrlw 16, 16, 9
2221193323Sed	vrlw 4, 4, 9
2222198090Srdivacky	vrlw 15, 15, 9
2223193323Sed	xxlor 52, 0, 0
2224193323Sed	vadduwm 11, 11, 21
2225193323Sed	vadduwm 6, 18, 6
2226193323Sed	vadduwm 12, 16, 12
2227193323Sed	vadduwm 24, 4, 24
2228193323Sed	vadduwm 3, 15, 3
2229193323Sed	xxlxor 55, 38, 55
2230193323Sed	xxlxor 61, 44, 61
2231193323Sed	xxlxor 62, 35, 62
2232193323Sed	xxlxor 32, 56, 32
2233193323Sed	vrlw 30, 30, 8
2234193323Sed	vrlw 23, 23, 8
2235193323Sed	vrlw 29, 29, 8
2236193323Sed	vrlw 0, 0, 8
2237193323Sed	vadduwm 14, 14, 2
2238193323Sed	vadduwm 31, 31, 22
2239193323Sed	vadduwm 13, 13, 20
2240193323Sed	vadduwm 11, 30, 11
2241193323Sed	vadduwm 14, 23, 14
2242193323Sed	vadduwm 31, 29, 31
2243193323Sed	vadduwm 13, 0, 13
2244193323Sed	xxlxor 48, 43, 48
2245193323Sed	xxlxor 36, 46, 36
2246193323Sed	xxlxor 47, 63, 47
2247193323Sed	xxlxor 50, 45, 50
2248193323Sed	vperm 16, 16, 16, 5
2249193323Sed	vperm 4, 4, 4, 5
2250193323Sed	vperm 15, 15, 15, 5
2251193323Sed	vperm 18, 18, 18, 5
2252193323Sed	xxlor 7, 49, 49
2253193323Sed	vmr	17, 2
2254198090Srdivacky	vadduwm 24, 16, 24
2255193323Sed	vadduwm 3, 4, 3
2256193323Sed	vadduwm 6, 15, 6
2257193323Sed	vadduwm 12, 18, 12
2258198090Srdivacky	xxlxor 62, 56, 62
2259193323Sed	xxlxor 55, 35, 55
2260193323Sed	xxlxor 61, 38, 61
2261193323Sed	xxlxor 32, 44, 32
2262193323Sed	vrlw 30, 30, 10
2263193323Sed	vrlw 23, 23, 10
2264198090Srdivacky	vrlw 29, 29, 10
2265193323Sed	vrlw 0, 0, 10
2266193323Sed	xxlor 54, 1, 1
2267193323Sed	xxlor 34, 7, 7
2268193323Sed	vadduwm 11, 11, 22
2269193323Sed	vadduwm 14, 14, 28
2270193323Sed	vadduwm 31, 31, 2
2271193323Sed	vadduwm 13, 13, 26
2272193323Sed	vadduwm 11, 30, 11
2273193323Sed	vadduwm 14, 23, 14
2274193323Sed	vadduwm 31, 29, 31
2275193323Sed	vadduwm 13, 0, 13
2276193323Sed	xxlxor 48, 43, 48
2277193323Sed	xxlxor 36, 46, 36
2278193323Sed	xxlxor 47, 63, 47
2279193323Sed	xxlxor 50, 45, 50
2280193323Sed	vrlw 16, 16, 9
2281193323Sed	vrlw 4, 4, 9
2282193323Sed	vrlw 15, 15, 9
2283193323Sed	vrlw 18, 18, 9
2284193323Sed	xxlor 59, 25, 25
2285193323Sed	vadduwm 11, 11, 19
2286193323Sed	vadduwm 24, 16, 24
2287193323Sed	vadduwm 3, 4, 3
2288193323Sed	vadduwm 6, 15, 6
2289193323Sed	vadduwm 12, 18, 12
2290193323Sed	xxlxor 62, 56, 62
2291193323Sed	xxlxor 55, 35, 55
2292198090Srdivacky	xxlxor 61, 38, 61
2293219077Sdim	xxlxor 32, 44, 32
2294193323Sed	vrlw 23, 23, 8
2295198090Srdivacky	vrlw 29, 29, 8
2296234353Sdim	vrlw 0, 0, 8
2297193323Sed	vrlw 30, 30, 8
2298193323Sed	vadduwm 14, 14, 25
2299193323Sed	vadduwm 31, 31, 27
2300193323Sed	vadduwm 13, 13, 7
2301193323Sed	vadduwm 11, 23, 11
2302193323Sed	vadduwm 14, 29, 14
2303193323Sed	vadduwm 31, 0, 31
2304193323Sed	vadduwm 13, 30, 13
2305193323Sed	xxlxor 50, 43, 50
2306193323Sed	xxlxor 48, 46, 48
2307193323Sed	xxlxor 36, 63, 36
2308193323Sed	xxlxor 47, 45, 47
2309193323Sed	vperm 18, 18, 18, 5
2310193323Sed	vperm 16, 16, 16, 5
2311193323Sed	vperm 4, 4, 4, 5
2312193323Sed	vperm 15, 15, 15, 5
2313193323Sed	vmr	2, 19
2314193323Sed	xxlor 0, 7, 7
2315193323Sed	vadduwm 6, 18, 6
2316193323Sed	vadduwm 12, 16, 12
2317193323Sed	vadduwm 24, 4, 24
2318193323Sed	vadduwm 3, 15, 3
2319193323Sed	xxlxor 55, 38, 55
2320193323Sed	xxlxor 61, 44, 61
2321193323Sed	xxlxor 32, 56, 32
2322193323Sed	xxlxor 62, 35, 62
2323193323Sed	vrlw 23, 23, 10
2324193323Sed	vrlw 29, 29, 10
2325193323Sed	vrlw 0, 0, 10
2326193323Sed	vrlw 30, 30, 10
2327193323Sed	xxlor 1, 51, 51
2328193323Sed	xxlor 7, 39, 39
2329193323Sed	xxlor 51, 8, 8
2330193323Sed	xxlor 39, 5, 5
2331193323Sed	xxlor 34, 4, 4
2332193323Sed	vadduwm 11, 11, 1
2333193323Sed	vadduwm 14, 14, 19
2334193323Sed	vadduwm 31, 31, 7
2335193323Sed	vadduwm 13, 13, 2
2336218893Sdim	vadduwm 11, 23, 11
2337218893Sdim	vadduwm 14, 29, 14
2338218893Sdim	vadduwm 31, 0, 31
2339218893Sdim	vadduwm 13, 30, 13
2340218893Sdim	xxlxor 50, 43, 50
2341218893Sdim	xxlxor 48, 46, 48
2342218893Sdim	xxlxor 36, 63, 36
2343218893Sdim	xxlxor 47, 45, 47
2344218893Sdim	vrlw 18, 18, 9
2345218893Sdim	vrlw 16, 16, 9
2346218893Sdim	vrlw 4, 4, 9
2347218893Sdim	vrlw 15, 15, 9
2348193323Sed	xxlor 2, 53, 53
2349193323Sed	vmr	21, 28
2350193323Sed	vadduwm 6, 18, 6
2351193323Sed	vadduwm 12, 16, 12
2352193323Sed	vadduwm 24, 4, 24
2353234353Sdim	vadduwm 3, 15, 3
2354193323Sed	xxlxor 55, 38, 55
2355198090Srdivacky	xxlxor 61, 44, 61
2356219077Sdim	xxlxor 62, 35, 62
2357218893Sdim	xxlxor 32, 56, 32
2358218893Sdim	vrlw 30, 30, 8
2359218893Sdim	vrlw 23, 23, 8
2360218893Sdim	vrlw 29, 29, 8
2361218893Sdim	vrlw 0, 0, 8
2362218893Sdim	xxlor 53, 29, 29
2363218893Sdim	vadduwm 11, 11, 17
2364218893Sdim	vadduwm 14, 14, 28
2365218893Sdim	vadduwm 31, 31, 26
2366218893Sdim	vadduwm 13, 13, 21
2367218893Sdim	vadduwm 11, 30, 11
2368218893Sdim	vadduwm 14, 23, 14
2369218893Sdim	vadduwm 31, 29, 31
2370218893Sdim	vadduwm 13, 0, 13
2371218893Sdim	xxlxor 48, 43, 48
2372218893Sdim	xxlxor 36, 46, 36
2373218893Sdim	xxlxor 47, 63, 47
2374218893Sdim	xxlxor 50, 45, 50
2375218893Sdim	vperm 16, 16, 16, 5
2376218893Sdim	vperm 4, 4, 4, 5
2377218893Sdim	vperm 15, 15, 15, 5
2378218893Sdim	vperm 18, 18, 18, 5
2379218893Sdim	vadduwm 11, 11, 20
2380218893Sdim	xxlor 5, 52, 52
2381218893Sdim	vadduwm 24, 16, 24
2382218893Sdim	vadduwm 3, 4, 3
2383218893Sdim	vadduwm 6, 15, 6
2384218893Sdim	vadduwm 12, 18, 12
2385218893Sdim	xxlxor 62, 56, 62
2386218893Sdim	xxlxor 55, 35, 55
2387218893Sdim	xxlxor 61, 38, 61
2388218893Sdim	xxlxor 32, 44, 32
2389218893Sdim	vrlw 30, 30, 10
2390218893Sdim	vrlw 23, 23, 10
2391218893Sdim	vrlw 29, 29, 10
2392218893Sdim	vrlw 0, 0, 10
2393219077Sdim	xxlor 52, 2, 2
2394193323Sed	vadduwm 14, 14, 25
2395193323Sed	vadduwm 31, 31, 20
2396234353Sdim	vadduwm 13, 13, 7
2397234353Sdim	vadduwm 11, 30, 11
2398234353Sdim	vadduwm 14, 23, 14
2399193323Sed	vadduwm 31, 29, 31
2400193323Sed	vadduwm 13, 0, 13
2401193323Sed	xxlxor 48, 43, 48
2402193323Sed	xxlxor 36, 46, 36
2403193323Sed	xxlxor 47, 63, 47
2404193323Sed	xxlxor 50, 45, 50
2405193323Sed	vrlw 16, 16, 9
2406193323Sed	vrlw 4, 4, 9
2407193323Sed	vrlw 15, 15, 9
2408193323Sed	vrlw 18, 18, 9
2409198090Srdivacky	vadduwm 11, 11, 22
2410219077Sdim	vadduwm 14, 14, 27
2411193323Sed	vadduwm 24, 16, 24
2412193323Sed	vadduwm 3, 4, 3
2413193323Sed	vadduwm 6, 15, 6
2414193323Sed	vadduwm 12, 18, 12
2415193323Sed	xxlxor 62, 56, 62
2416193323Sed	xxlxor 55, 35, 55
2417193323Sed	xxlxor 61, 38, 61
2418193323Sed	xxlxor 32, 44, 32
2419193323Sed	vrlw 23, 23, 8
2420234353Sdim	vrlw 29, 29, 8
2421234353Sdim	vrlw 0, 0, 8
2422234353Sdim	vrlw 30, 30, 8
2423193323Sed	vadduwm 31, 31, 1
2424193323Sed	vadduwm 13, 13, 2
2425193323Sed	vadduwm 11, 23, 11
2426193323Sed	vadduwm 14, 29, 14
2427193323Sed	vadduwm 31, 0, 31
2428198090Srdivacky	vadduwm 13, 30, 13
2429193323Sed	xxlxor 50, 43, 50
2430193323Sed	xxlxor 48, 46, 48
2431193323Sed	xxlxor 36, 63, 36
2432193323Sed	xxlxor 47, 45, 47
2433193323Sed	vperm 18, 18, 18, 5
2434193323Sed	vperm 16, 16, 16, 5
2435193323Sed	vperm 4, 4, 4, 5
2436193323Sed	vperm 15, 15, 15, 5
2437193323Sed	xxlor 3, 29, 29
2438193323Sed	xxlor 4, 49, 49
2439193323Sed	vadduwm 6, 18, 6
2440193323Sed	vadduwm 12, 16, 12
2441193323Sed	vadduwm 24, 4, 24
2442193323Sed	vadduwm 3, 15, 3
2443193323Sed	xxlxor 55, 38, 55
2444210299Sed	xxlxor 61, 44, 61
2445210299Sed	xxlxor 32, 56, 32
2446210299Sed	xxlxor 62, 35, 62
2447210299Sed	vrlw 23, 23, 10
2448210299Sed	vrlw 29, 29, 10
2449210299Sed	vrlw 0, 0, 10
2450210299Sed	vrlw 30, 30, 10
2451210299Sed	vmr	17, 28
2452210299Sed	xxlor 2, 54, 54
2453210299Sed	xxlor 3, 34, 34
2454210299Sed	xxlor 34, 8, 8
2455210299Sed	xxlor 51, 0, 0
2456210299Sed	xxlor 60, 7, 7
2457210299Sed	xxlor 54, 1, 1
2458210299Sed	vadduwm 11, 11, 2
2459210299Sed	vadduwm 14, 14, 19
2460210299Sed	vadduwm 31, 31, 28
2461210299Sed	vadduwm 13, 13, 22
2462210299Sed	vadduwm 11, 23, 11
2463210299Sed	vadduwm 14, 29, 14
2464210299Sed	vadduwm 31, 0, 31
2465210299Sed	vadduwm 13, 30, 13
2466210299Sed	xxlxor 50, 43, 50
2467210299Sed	xxlxor 48, 46, 48
2468210299Sed	xxlxor 36, 63, 36
2469210299Sed	xxlxor 47, 45, 47
2470210299Sed	vrlw 18, 18, 9
2471210299Sed	vrlw 16, 16, 9
2472210299Sed	vrlw 4, 4, 9
2473210299Sed	vrlw 15, 15, 9
2474210299Sed	vadduwm 11, 11, 17
2475210299Sed	vadduwm 14, 14, 25
2476210299Sed	vadduwm 6, 18, 6
2477210299Sed	vadduwm 12, 16, 12
2478210299Sed	vadduwm 24, 4, 24
2479210299Sed	vadduwm 3, 15, 3
2480210299Sed	xxlxor 55, 38, 55
2481210299Sed	xxlxor 61, 44, 61
2482210299Sed	xxlxor 62, 35, 62
2483210299Sed	xxlxor 32, 56, 32
2484210299Sed	vrlw 30, 30, 8
2485210299Sed	vrlw 23, 23, 8
2486210299Sed	vrlw 29, 29, 8
2487210299Sed	vrlw 0, 0, 8
2488210299Sed	vadduwm 31, 31, 7
2489210299Sed	vadduwm 13, 13, 26
2490210299Sed	vadduwm 11, 30, 11
2491210299Sed	vadduwm 14, 23, 14
2492210299Sed	vadduwm 31, 29, 31
2493210299Sed	vadduwm 13, 0, 13
2494210299Sed	xxlxor 48, 43, 48
2495210299Sed	xxlxor 36, 46, 36
2496210299Sed	xxlxor 47, 63, 47
2497210299Sed	xxlxor 50, 45, 50
2498210299Sed	vperm 16, 16, 16, 5
2499210299Sed	vperm 4, 4, 4, 5
2500210299Sed	vperm 15, 15, 15, 5
2501210299Sed	vperm 18, 18, 18, 5
2502210299Sed	xxlor 6, 39, 39
2503210299Sed	xxlor 39, 4, 4
2504210299Sed	vadduwm 24, 16, 24
2505210299Sed	vadduwm 3, 4, 3
2506210299Sed	vadduwm 6, 15, 6
2507210299Sed	vadduwm 12, 18, 12
2508210299Sed	xxlxor 62, 56, 62
2509210299Sed	xxlxor 55, 35, 55
2510210299Sed	xxlxor 61, 38, 61
2511210299Sed	xxlxor 32, 44, 32
2512210299Sed	vrlw 30, 30, 10
2513210299Sed	vrlw 23, 23, 10
2514210299Sed	vrlw 29, 29, 10
2515210299Sed	vrlw 0, 0, 10
2516210299Sed	vadduwm 11, 11, 21
2517210299Sed	vadduwm 14, 14, 27
2518210299Sed	vadduwm 31, 31, 7
2519210299Sed	vadduwm 13, 13, 28
2520210299Sed	vadduwm 11, 30, 11
2521210299Sed	vadduwm 14, 23, 14
2522210299Sed	vadduwm 31, 29, 31
2523210299Sed	vadduwm 13, 0, 13
2524210299Sed	xxlxor 48, 43, 48
2525210299Sed	xxlxor 36, 46, 36
2526210299Sed	xxlxor 47, 63, 47
2527210299Sed	xxlxor 50, 45, 50
2528210299Sed	vrlw 16, 16, 9
2529234353Sdim	vrlw 4, 4, 9
2530234353Sdim	vrlw 15, 15, 9
2531193323Sed	vrlw 18, 18, 9
2532193323Sed	xxlor 0, 49, 49
2533193323Sed	xxlor 49, 5, 5
2534193323Sed	vadduwm 24, 16, 24
2535193323Sed	vadduwm 3, 4, 3
2536234353Sdim	vadduwm 6, 15, 6
2537193323Sed	vadduwm 12, 18, 12
2538234353Sdim	xxlxor 62, 56, 62
2539193323Sed	xxlxor 55, 35, 55
2540193323Sed	xxlxor 61, 38, 61
2541193323Sed	xxlxor 32, 44, 32
2542193323Sed	vrlw 23, 23, 8
2543193323Sed	vrlw 29, 29, 8
2544193323Sed	vrlw 0, 0, 8
2545193323Sed	vrlw 30, 30, 8
2546193323Sed	vadduwm 11, 11, 17
2547193323Sed	vadduwm 14, 14, 1
2548193323Sed	vadduwm 31, 31, 2
2549193323Sed	vadduwm 13, 13, 22
2550193323Sed	vadduwm 11, 23, 11
2551193323Sed	vadduwm 14, 29, 14
2552193323Sed	vadduwm 31, 0, 31
2553193323Sed	vadduwm 13, 30, 13
2554193323Sed	xxlxor 50, 43, 50
2555193323Sed	xxlxor 48, 46, 48
2556193323Sed	xxlxor 36, 63, 36
2557210299Sed	xxlxor 47, 45, 47
2558218893Sdim	vperm 18, 18, 18, 5
2559218893Sdim	vperm 16, 16, 16, 5
2560193323Sed	vperm 4, 4, 4, 5
2561193323Sed	vperm 15, 15, 15, 5
2562210299Sed	xxlor 34, 3, 3
2563218893Sdim	xxlor 49, 2, 2
2564218893Sdim	vadduwm 6, 18, 6
2565210299Sed	vadduwm 12, 16, 12
2566210299Sed	vadduwm 24, 4, 24
2567210299Sed	vadduwm 3, 15, 3
2568226633Sdim	xxlxor 55, 38, 55
2569210299Sed	xxlxor 61, 44, 61
2570210299Sed	xxlxor 32, 56, 32
2571226633Sdim	xxlxor 62, 35, 62
2572210299Sed	vrlw 23, 23, 10
2573210299Sed	vrlw 29, 29, 10
2574210299Sed	vrlw 0, 0, 10
2575218893Sdim	vrlw 30, 30, 10
2576218893Sdim	vadduwm 11, 11, 19
2577234353Sdim	vadduwm 14, 14, 20
2578210299Sed	vadduwm 31, 31, 2
2579210299Sed	vadduwm 13, 13, 17
2580210299Sed	vadduwm 11, 23, 11
2581210299Sed	vadduwm 14, 29, 14
2582210299Sed	vadduwm 31, 0, 31
2583210299Sed	vadduwm 13, 30, 13
2584226633Sdim	xxlxor 50, 43, 50
2585226633Sdim	xxlxor 48, 46, 48
2586226633Sdim	xxlxor 36, 63, 36
2587226633Sdim	xxlxor 47, 45, 47
2588226633Sdim	vrlw 18, 18, 9
2589226633Sdim	vrlw 16, 16, 9
2590226633Sdim	vrlw 4, 4, 9
2591226633Sdim	vrlw 15, 15, 9
2592226633Sdim	vadduwm 14, 14, 27
2593226633Sdim	vadduwm 11, 11, 25
2594226633Sdim	vadduwm 6, 18, 6
2595226633Sdim	vadduwm 12, 16, 12
2596226633Sdim	vadduwm 27, 4, 24
2597226633Sdim	vadduwm 3, 15, 3
2598226633Sdim	xxlxor 57, 38, 55
2599226633Sdim	xxlxor 61, 44, 61
2600226633Sdim	xxlxor 62, 35, 62
2601226633Sdim	xxlxor 32, 59, 32
2602226633Sdim	xxlor 39, 7, 7
2603226633Sdim	vrlw 30, 30, 8
2604226633Sdim	vrlw 25, 25, 8
2605226633Sdim	vrlw 29, 29, 8
2606226633Sdim	vrlw 0, 0, 8
2607226633Sdim	xxlor 1, 58, 58
2608226633Sdim	vmr	26, 19
2609226633Sdim	vadduwm 19, 31, 7
2610210299Sed	xxlor 39, 6, 6
2611210299Sed	vadduwm 11, 30, 11
2612210299Sed	vadduwm 7, 13, 7
2613210299Sed	vadduwm 13, 25, 14
2614210299Sed	vadduwm 14, 29, 19
2615210299Sed	vadduwm 7, 0, 7
2616210299Sed	xxlxor 48, 43, 48
2617210299Sed	xxlxor 36, 45, 36
2618210299Sed	xxlxor 47, 46, 47
2619210299Sed	xxlxor 50, 39, 50
2620210299Sed	vperm 16, 16, 16, 5
2621210299Sed	vperm 4, 4, 4, 5
2622210299Sed	vperm 15, 15, 15, 5
2623210299Sed	vperm 18, 18, 18, 5
2624210299Sed	xxlor 51, 1, 1
2625210299Sed	vadduwm 13, 13, 1
2626210299Sed	vadduwm 11, 11, 19
2627210299Sed	vadduwm 19, 16, 27
2628210299Sed	vadduwm 3, 4, 3
2629210299Sed	vadduwm 6, 15, 6
2630193323Sed	vadduwm 12, 18, 12
2631193323Sed	xxlxor 63, 51, 62
2632193323Sed	xxlxor 62, 35, 57
2633193323Sed	xxlxor 61, 38, 61
2634193323Sed	xxlxor 32, 44, 32
2635193323Sed	vrlw 31, 31, 10
2636193323Sed	vrlw 30, 30, 10
2637193323Sed	vrlw 29, 29, 10
2638198090Srdivacky	vrlw 0, 0, 10
2639193323Sed	xxlor 33, 0, 0
2640193323Sed	vadduwm 7, 7, 2
2641207618Srdivacky	vadduwm 14, 14, 1
2642207618Srdivacky	vadduwm 11, 31, 11
2643193323Sed	vadduwm 13, 30, 13
2644207618Srdivacky	vadduwm 14, 29, 14
2645193323Sed	vadduwm 7, 0, 7
2646193323Sed	xxlxor 48, 43, 48
2647193323Sed	xxlxor 36, 45, 36
2648193323Sed	xxlxor 47, 46, 47
2649193323Sed	xxlxor 50, 39, 50
2650193323Sed	vrlw 16, 16, 9
2651198090Srdivacky	vrlw 4, 4, 9
2652218893Sdim	vrlw 15, 15, 9
2653218893Sdim	vrlw 18, 18, 9
2654234353Sdim	xxlor 60, 8, 8
2655193323Sed	vadduwm 1, 11, 21
2656204642Srdivacky	vadduwm 11, 13, 28
2657193323Sed	vadduwm 13, 16, 19
2658193323Sed	vadduwm 3, 4, 3
2659193323Sed	vadduwm 6, 15, 6
2660193323Sed	vadduwm 12, 18, 12
2661218893Sdim	xxlxor 51, 45, 63
2662193323Sed	xxlxor 63, 35, 62
2663193323Sed	xxlxor 62, 38, 61
2664193323Sed	xxlxor 32, 44, 32
2665193323Sed	vrlw 31, 31, 8
2666193323Sed	vrlw 30, 30, 8
2667193323Sed	vrlw 0, 0, 8
2668193323Sed	vrlw 19, 19, 8
2669193323Sed	vadduwm 14, 14, 26
2670193323Sed	vadduwm 7, 7, 17
2671193323Sed	vadduwm 1, 31, 1
2672193323Sed	vadduwm 11, 30, 11
2673193323Sed	vadduwm 14, 0, 14
2674193323Sed	vadduwm 7, 19, 7
2675198090Srdivacky	xxlxor 50, 33, 50
2676200581Srdivacky	xxlxor 48, 43, 48
2677219077Sdim	xxlxor 36, 46, 36
2678202375Srdivacky	xxlxor 47, 39, 47
2679200581Srdivacky	vperm 18, 18, 18, 5
2680202375Srdivacky	vperm 16, 16, 16, 5
2681202375Srdivacky	vperm 4, 4, 4, 5
2682200581Srdivacky	vperm 15, 15, 15, 5
2683193323Sed	xxlor 34, 4, 4
2684193323Sed	vadduwm 14, 14, 22
2685193323Sed	vadduwm 6, 18, 6
2686193323Sed	vadduwm 12, 16, 12
2687193323Sed	vadduwm 13, 4, 13
2688193323Sed	vadduwm 3, 15, 3
2689193323Sed	xxlxor 49, 38, 63
2690193323Sed	xxlxor 63, 44, 62
2691221345Sdim	xxlxor 32, 45, 32
2692193323Sed	xxlxor 51, 35, 51
2693193323Sed	vrlw 17, 17, 10
2694193323Sed	vrlw 31, 31, 10
2695193323Sed	vrlw 0, 0, 10
2696198090Srdivacky	vrlw 10, 19, 10
2697193323Sed	vadduwm 11, 11, 2
2698193323Sed	xxlor 34, 5, 5
2699193323Sed	vadduwm 1, 1, 20
2700193323Sed	vadduwm 2, 7, 2
2701193323Sed	vadduwm 7, 31, 11
2702193323Sed	vadduwm 11, 0, 14
2703193323Sed	vadduwm 2, 10, 2
2704193323Sed	vadduwm 1, 17, 1
2705193323Sed	xxlxor 36, 43, 36
2706193323Sed	xxlxor 46, 34, 47
2707193323Sed	vrlw 4, 4, 9
2708193323Sed	vrlw 14, 14, 9
2709193323Sed	xxlxor 47, 33, 50
2710198090Srdivacky	xxlxor 48, 39, 48
2711198090Srdivacky	vrlw 15, 15, 9
2712218893Sdim	vrlw 9, 16, 9
2713193323Sed	vadduwm 13, 4, 13
2714193323Sed	vadduwm 3, 14, 3
2715193323Sed	xxlxor 32, 45, 32
2716193323Sed	xxlxor 45, 45, 33
2717193323Sed	xxlxor 33, 35, 42
2718193323Sed	xxlxor 59, 35, 39
2719193323Sed	vadduwm 3, 15, 6
2720193323Sed	vadduwm 6, 9, 12
2721193323Sed	xxlxor 39, 35, 49
2722193323Sed	xxlxor 42, 38, 63
2723193323Sed	vrlw 1, 1, 8
2724193323Sed	vrlw 7, 7, 8
2725193323Sed	vrlw 10, 10, 8
2726193323Sed	vrlw 0, 0, 8
2727193323Sed	xxlxor 40, 35, 43
2728193323Sed	xxlxor 38, 38, 34
2729193323Sed	xxlxor 61, 33, 41
2730193323Sed	xxlxor 50, 39, 36
2731198090Srdivacky	xxlxor 62, 42, 46
2732193323Sed	xxlxor 54, 32, 47
2733193323Sed	bne	0, .LBB3_2
2734210299Sed.LBB3_5:
2735210299Sed	vmrglw 2, 27, 13
2736218893Sdim	li 3, 32
2737234353Sdim	li 4, 48
2738234353Sdim	vmrglw 4, 6, 8
2739210299Sed	vmrglw 0, 18, 29
2740210299Sed	vmrglw 1, 22, 30
2741210299Sed	vmrghw 3, 27, 13
2742210299Sed	vmrghw 5, 6, 8
2743210299Sed	vmrghw 6, 18, 29
2744210299Sed	vmrghw 7, 22, 30
2745210299Sed	xxmrgld	40, 36, 34
2746210299Sed	xxmrghd	34, 36, 34
2747210299Sed	xxmrgld	41, 33, 32
2748210299Sed	xxswapd	0, 40
2749218893Sdim	xxmrgld	36, 37, 35
2750210299Sed	xxmrghd	35, 37, 35
2751210299Sed	xxmrghd	37, 33, 32
2752210299Sed	xxswapd	1, 41
2753193323Sed	xxmrgld	32, 39, 38
2754193323Sed	xxmrghd	33, 39, 38
2755193323Sed	xxswapd	2, 34
2756207618Srdivacky	xxswapd	4, 36
2757193323Sed	xxswapd	3, 37
2758193323Sed	stxvd2x 0, 0, 5
2759218893Sdim	xxswapd	5, 32
2760218893Sdim	stxvd2x 1, 5, 11
2761193323Sed	xxswapd	0, 35
2762218893Sdim	xxswapd	1, 33
2763234353Sdim	stxvd2x 2, 5, 3
2764193323Sed	li 3, 64
2765193323Sed	stxvd2x 3, 5, 4
2766193323Sed	li 4, 80
2767193323Sed	stxvd2x 4, 5, 3
2768193323Sed	li 3, 96
2769193323Sed	stxvd2x 5, 5, 4
2770193323Sed	li 4, 112
2771193323Sed	stxvd2x 0, 5, 3
2772193323Sed	stxvd2x 1, 5, 4
2773218893Sdim	li 3, 224
2774234353Sdim	lxvd2x 63, 1, 3
2775218893Sdim	li 3, 208
2776218893Sdim	lfd 31, 392(1)
2777193323Sed	ld 30, 312(1)
2778193323Sed	ld 29, 304(1)
2779193323Sed	lxvd2x 62, 1, 3
2780193323Sed	li 3, 192
2781193323Sed	lfd 30, 384(1)
2782193323Sed	ld 28, 296(1)
2783218893Sdim	ld 27, 288(1)
2784193323Sed	lxvd2x 61, 1, 3
2785193323Sed	li 3, 176
2786193323Sed	lfd 29, 376(1)
2787193323Sed	ld 26, 280(1)
2788193323Sed	ld 25, 272(1)
2789193323Sed	lxvd2x 60, 1, 3
2790193323Sed	li 3, 160
2791193323Sed	lfd 28, 368(1)
2792218893Sdim	ld 24, 264(1)
2793218893Sdim	ld 23, 256(1)
2794218893Sdim	lxvd2x 59, 1, 3
2795193323Sed	li 3, 144
2796193574Sed	lfd 27, 360(1)
2797193323Sed	ld 22, 248(1)
2798193323Sed	lxvd2x 58, 1, 3
2799193323Sed	li 3, 128
2800193323Sed	lfd 26, 352(1)
2801193323Sed	lxvd2x 57, 1, 3
2802193323Sed	li 3, 112
2803193323Sed	lfd 25, 344(1)
2804193323Sed	lxvd2x 56, 1, 3
2805193323Sed	li 3, 96
2806193323Sed	lfd 24, 336(1)
2807193323Sed	lxvd2x 55, 1, 3
2808234353Sdim	li 3, 80
2809234353Sdim	lfd 23, 328(1)
2810193323Sed	lxvd2x 54, 1, 3
2811198090Srdivacky	li 3, 64
2812198090Srdivacky	lxvd2x 53, 1, 3
2813234353Sdim	li 3, 48
2814234353Sdim	lxvd2x 52, 1, 3
2815234353Sdim	addi 1, 1, 400
2816234353Sdim	blr
2817234353Sdim	.long	0
2818234353Sdim	.quad	0
2819234353Sdim.Lfunc_end3:
2820234353Sdim	.size	blake3_hash4_sse2, .Lfunc_end3-.Lfunc_begin3
2821234353Sdim	.cfi_endproc
2822234353Sdim	.section	".note.GNU-stack","",@progbits
2823234353Sdim#endif
2824234353Sdim