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