@@ -5,18 +5,16 @@ TEXT ·_and(SB), $0-32
55 MOVD a + 0 (FP) , R0
66 MOVD b + 8 (FP) , R1
77 MOVD n + 16 (FP) , R2
8- WORD $ 0xa9bf7bfd // stp x29 , x30 , [ sp , # - 16 ] ! ; 16-byte Folded Spill
9- WORD $ 0x910003fd // mov x29 , sp
108 WORD $ 0xb40002a2 // cbz x2 , LBB0_7
119 WORD $ 0xf100105f // cmp x2 , # 4
1210 WORD $ 0x54000103 // b.lo LBB0_4
1311 WORD $ 0xd37df048 // lsl x8 , x2 , # 3
1412 WORD $ 0x8b080029 // add x9 , x1 , x8
1513 WORD $ 0xeb00013f // cmp x9 , x0
16- WORD $ 0x54000229 // b.ls LBB0_8
14+ WORD $ 0x54000209 // b.ls LBB0_8
1715 WORD $ 0x8b080008 // add x8 , x0 , x8
1816 WORD $ 0xeb01011f // cmp x8 , x1
19- WORD $ 0x540001c9 // b.ls LBB0_8
17+ WORD $ 0x540001a9 // b.ls LBB0_8
2018
2119BB0_4:
2220 WORD $ 0xd2800008 // mov x8 , # 0
3634 WORD $ 0x54ffff61 // b.ne LBB0_6
3735
3836BB0_7:
39- WORD $ 0xa8c17bfd // ldp x29 , x30 , [ sp ], # 16 ; 16-byte Folded Reload
4037 WORD $ 0xd65f03c0 // ret
4138
4239BB0_8:
@@ -56,25 +53,23 @@ BB0_9:
5653 WORD $ 0xf100116b // subs x11 , x11 , # 4
5754 WORD $ 0x54ffff01 // b.ne LBB0_9
5855 WORD $ 0xeb02011f // cmp x8 , x2
59- WORD $ 0x54fffe00 // b.eq LBB0_7
60- WORD $ 0x17ffffe5 // b LBB0_5
56+ WORD $ 0x54fffe20 // b.eq LBB0_7
57+ WORD $ 0x17ffffe6 // b LBB0_5
6158
6259TEXT ·_andn(SB) , $ 0 - 32
6360 MOVD a + 0 (FP) , R0
6461 MOVD b + 8 (FP) , R1
6562 MOVD n + 16 (FP) , R2
66- WORD $ 0xa9bf7bfd // stp x29 , x30 , [ sp , # - 16 ] ! ; 16-byte Folded Spill
67- WORD $ 0x910003fd // mov x29 , sp
6863 WORD $ 0xb40002a2 // cbz x2 , LBB1_7
6964 WORD $ 0xf100105f // cmp x2 , # 4
7065 WORD $ 0x54000103 // b.lo LBB1_4
7166 WORD $ 0xd37df048 // lsl x8 , x2 , # 3
7267 WORD $ 0x8b080029 // add x9 , x1 , x8
7368 WORD $ 0xeb00013f // cmp x9 , x0
74- WORD $ 0x54000229 // b.ls LBB1_8
69+ WORD $ 0x54000209 // b.ls LBB1_8
7570 WORD $ 0x8b080008 // add x8 , x0 , x8
7671 WORD $ 0xeb01011f // cmp x8 , x1
77- WORD $ 0x540001c9 // b.ls LBB1_8
72+ WORD $ 0x540001a9 // b.ls LBB1_8
7873
7974BB1_4:
8075 WORD $ 0xd2800008 // mov x8 , # 0
9489 WORD $ 0x54ffff61 // b.ne LBB1_6
9590
9691BB1_7:
97- WORD $ 0xa8c17bfd // ldp x29 , x30 , [ sp ], # 16 ; 16-byte Folded Reload
9892 WORD $ 0xd65f03c0 // ret
9993
10094BB1_8:
@@ -114,25 +108,23 @@ BB1_9:
114108 WORD $ 0xf100116b // subs x11 , x11 , # 4
115109 WORD $ 0x54ffff01 // b.ne LBB1_9
116110 WORD $ 0xeb02011f // cmp x8 , x2
117- WORD $ 0x54fffe00 // b.eq LBB1_7
118- WORD $ 0x17ffffe5 // b LBB1_5
111+ WORD $ 0x54fffe20 // b.eq LBB1_7
112+ WORD $ 0x17ffffe6 // b LBB1_5
119113
120114TEXT ·_or(SB) , $ 0 - 32
121115 MOVD a + 0 (FP) , R0
122116 MOVD b + 8 (FP) , R1
123117 MOVD n + 16 (FP) , R2
124- WORD $ 0xa9bf7bfd // stp x29 , x30 , [ sp , # - 16 ] ! ; 16-byte Folded Spill
125- WORD $ 0x910003fd // mov x29 , sp
126118 WORD $ 0xb40002a2 // cbz x2 , LBB2_7
127119 WORD $ 0xf100105f // cmp x2 , # 4
128120 WORD $ 0x54000103 // b.lo LBB2_4
129121 WORD $ 0xd37df048 // lsl x8 , x2 , # 3
130122 WORD $ 0x8b080029 // add x9 , x1 , x8
131123 WORD $ 0xeb00013f // cmp x9 , x0
132- WORD $ 0x54000229 // b.ls LBB2_8
124+ WORD $ 0x54000209 // b.ls LBB2_8
133125 WORD $ 0x8b080008 // add x8 , x0 , x8
134126 WORD $ 0xeb01011f // cmp x8 , x1
135- WORD $ 0x540001c9 // b.ls LBB2_8
127+ WORD $ 0x540001a9 // b.ls LBB2_8
136128
137129BB2_4:
138130 WORD $ 0xd2800008 // mov x8 , # 0
@@ -152,7 +144,6 @@ BB2_6:
152144 WORD $ 0x54ffff61 // b.ne LBB2_6
153145
154146BB2_7:
155- WORD $ 0xa8c17bfd // ldp x29 , x30 , [ sp ], # 16 ; 16-byte Folded Reload
156147 WORD $ 0xd65f03c0 // ret
157148
158149BB2_8:
@@ -172,25 +163,23 @@ BB2_9:
172163 WORD $ 0xf100116b // subs x11 , x11 , # 4
173164 WORD $ 0x54ffff01 // b.ne LBB2_9
174165 WORD $ 0xeb02011f // cmp x8 , x2
175- WORD $ 0x54fffe00 // b.eq LBB2_7
176- WORD $ 0x17ffffe5 // b LBB2_5
166+ WORD $ 0x54fffe20 // b.eq LBB2_7
167+ WORD $ 0x17ffffe6 // b LBB2_5
177168
178169TEXT ·_xor(SB) , $ 0 - 32
179170 MOVD a + 0 (FP) , R0
180171 MOVD b + 8 (FP) , R1
181172 MOVD n + 16 (FP) , R2
182- WORD $ 0xa9bf7bfd // stp x29 , x30 , [ sp , # - 16 ] ! ; 16-byte Folded Spill
183- WORD $ 0x910003fd // mov x29 , sp
184173 WORD $ 0xb40002a2 // cbz x2 , LBB3_7
185174 WORD $ 0xf100105f // cmp x2 , # 4
186175 WORD $ 0x54000103 // b.lo LBB3_4
187176 WORD $ 0xd37df048 // lsl x8 , x2 , # 3
188177 WORD $ 0x8b080029 // add x9 , x1 , x8
189178 WORD $ 0xeb00013f // cmp x9 , x0
190- WORD $ 0x54000229 // b.ls LBB3_8
179+ WORD $ 0x54000209 // b.ls LBB3_8
191180 WORD $ 0x8b080008 // add x8 , x0 , x8
192181 WORD $ 0xeb01011f // cmp x8 , x1
193- WORD $ 0x540001c9 // b.ls LBB3_8
182+ WORD $ 0x540001a9 // b.ls LBB3_8
194183
195184BB3_4:
196185 WORD $ 0xd2800008 // mov x8 , # 0
@@ -210,7 +199,6 @@ BB3_6:
210199 WORD $ 0x54ffff61 // b.ne LBB3_6
211200
212201BB3_7:
213- WORD $ 0xa8c17bfd // ldp x29 , x30 , [ sp ], # 16 ; 16-byte Folded Reload
214202 WORD $ 0xd65f03c0 // ret
215203
216204BB3_8:
@@ -230,19 +218,17 @@ BB3_9:
230218 WORD $ 0xf100116b // subs x11 , x11 , # 4
231219 WORD $ 0x54ffff01 // b.ne LBB3_9
232220 WORD $ 0xeb02011f // cmp x8 , x2
233- WORD $ 0x54fffe00 // b.eq LBB3_7
234- WORD $ 0x17ffffe5 // b LBB3_5
221+ WORD $ 0x54fffe20 // b.eq LBB3_7
222+ WORD $ 0x17ffffe6 // b LBB3_5
235223
236224TEXT ·_and_many(SB) , $ 0 - 32
237225 MOVD a + 0 (FP) , R0
238226 MOVD b + 8 (FP) , R1
239227 MOVD dims + 16 (FP) , R2
240- WORD $ 0xa9bb67fa // stp x26 , x25 , [ sp , # - 80 ] ! ; 16-byte Folded Spill
228+ WORD $ 0xa9bc67fa // stp x26 , x25 , [ sp , # - 64 ] ! ; 16-byte Folded Spill
241229 WORD $ 0xa9015ff8 // stp x24 , x23 , [ sp , # 16 ] ; 16-byte Folded Spill
242230 WORD $ 0xa90257f6 // stp x22 , x21 , [ sp , # 32 ] ; 16-byte Folded Spill
243231 WORD $ 0xa9034ff4 // stp x20 , x19 , [ sp , # 48 ] ; 16-byte Folded Spill
244- WORD $ 0xa9047bfd // stp x29 , x30 , [ sp , # 64 ] ; 16-byte Folded Spill
245- WORD $ 0x910103fd // add x29 , sp , # 64
246232 WORD $ 0xf2407c48 // ands x8 , x2 , # 0xffffffff
247233 WORD $ 0x54000a20 // b.eq LBB4_14
248234 WORD $ 0xd360fc4b // lsr x11 , x2 , # 32
@@ -341,23 +327,20 @@ BB4_13:
341327 WORD $ 0x17ffffd9 // b LBB4_6
342328
343329BB4_14:
344- WORD $ 0xa9447bfd // ldp x29 , x30 , [ sp , # 64 ] ; 16-byte Folded Reload
345330 WORD $ 0xa9434ff4 // ldp x20 , x19 , [ sp , # 48 ] ; 16-byte Folded Reload
346331 WORD $ 0xa94257f6 // ldp x22 , x21 , [ sp , # 32 ] ; 16-byte Folded Reload
347332 WORD $ 0xa9415ff8 // ldp x24 , x23 , [ sp , # 16 ] ; 16-byte Folded Reload
348- WORD $ 0xa8c567fa // ldp x26 , x25 , [ sp ], # 80 ; 16-byte Folded Reload
333+ WORD $ 0xa8c467fa // ldp x26 , x25 , [ sp ], # 64 ; 16-byte Folded Reload
349334 WORD $ 0xd65f03c0 // ret
350335
351336TEXT ·_andn_many(SB) , $ 0 - 32
352337 MOVD a + 0 (FP) , R0
353338 MOVD b + 8 (FP) , R1
354339 MOVD dims + 16 (FP) , R2
355- WORD $ 0xa9bb67fa // stp x26 , x25 , [ sp , # - 80 ] ! ; 16-byte Folded Spill
340+ WORD $ 0xa9bc67fa // stp x26 , x25 , [ sp , # - 64 ] ! ; 16-byte Folded Spill
356341 WORD $ 0xa9015ff8 // stp x24 , x23 , [ sp , # 16 ] ; 16-byte Folded Spill
357342 WORD $ 0xa90257f6 // stp x22 , x21 , [ sp , # 32 ] ; 16-byte Folded Spill
358343 WORD $ 0xa9034ff4 // stp x20 , x19 , [ sp , # 48 ] ; 16-byte Folded Spill
359- WORD $ 0xa9047bfd // stp x29 , x30 , [ sp , # 64 ] ; 16-byte Folded Spill
360- WORD $ 0x910103fd // add x29 , sp , # 64
361344 WORD $ 0xf2407c48 // ands x8 , x2 , # 0xffffffff
362345 WORD $ 0x54000a20 // b.eq LBB5_14
363346 WORD $ 0xd360fc4b // lsr x11 , x2 , # 32
@@ -456,23 +439,20 @@ BB5_13:
456439 WORD $ 0x17ffffd9 // b LBB5_6
457440
458441BB5_14:
459- WORD $ 0xa9447bfd // ldp x29 , x30 , [ sp , # 64 ] ; 16-byte Folded Reload
460442 WORD $ 0xa9434ff4 // ldp x20 , x19 , [ sp , # 48 ] ; 16-byte Folded Reload
461443 WORD $ 0xa94257f6 // ldp x22 , x21 , [ sp , # 32 ] ; 16-byte Folded Reload
462444 WORD $ 0xa9415ff8 // ldp x24 , x23 , [ sp , # 16 ] ; 16-byte Folded Reload
463- WORD $ 0xa8c567fa // ldp x26 , x25 , [ sp ], # 80 ; 16-byte Folded Reload
445+ WORD $ 0xa8c467fa // ldp x26 , x25 , [ sp ], # 64 ; 16-byte Folded Reload
464446 WORD $ 0xd65f03c0 // ret
465447
466448TEXT ·_or_many(SB) , $ 0 - 32
467449 MOVD a + 0 (FP) , R0
468450 MOVD b + 8 (FP) , R1
469451 MOVD dims + 16 (FP) , R2
470- WORD $ 0xa9bb67fa // stp x26 , x25 , [ sp , # - 80 ] ! ; 16-byte Folded Spill
452+ WORD $ 0xa9bc67fa // stp x26 , x25 , [ sp , # - 64 ] ! ; 16-byte Folded Spill
471453 WORD $ 0xa9015ff8 // stp x24 , x23 , [ sp , # 16 ] ; 16-byte Folded Spill
472454 WORD $ 0xa90257f6 // stp x22 , x21 , [ sp , # 32 ] ; 16-byte Folded Spill
473455 WORD $ 0xa9034ff4 // stp x20 , x19 , [ sp , # 48 ] ; 16-byte Folded Spill
474- WORD $ 0xa9047bfd // stp x29 , x30 , [ sp , # 64 ] ; 16-byte Folded Spill
475- WORD $ 0x910103fd // add x29 , sp , # 64
476456 WORD $ 0xf2407c48 // ands x8 , x2 , # 0xffffffff
477457 WORD $ 0x54000a20 // b.eq LBB6_14
478458 WORD $ 0xd360fc4b // lsr x11 , x2 , # 32
@@ -571,23 +551,20 @@ BB6_13:
571551 WORD $ 0x17ffffd9 // b LBB6_6
572552
573553BB6_14:
574- WORD $ 0xa9447bfd // ldp x29 , x30 , [ sp , # 64 ] ; 16-byte Folded Reload
575554 WORD $ 0xa9434ff4 // ldp x20 , x19 , [ sp , # 48 ] ; 16-byte Folded Reload
576555 WORD $ 0xa94257f6 // ldp x22 , x21 , [ sp , # 32 ] ; 16-byte Folded Reload
577556 WORD $ 0xa9415ff8 // ldp x24 , x23 , [ sp , # 16 ] ; 16-byte Folded Reload
578- WORD $ 0xa8c567fa // ldp x26 , x25 , [ sp ], # 80 ; 16-byte Folded Reload
557+ WORD $ 0xa8c467fa // ldp x26 , x25 , [ sp ], # 64 ; 16-byte Folded Reload
579558 WORD $ 0xd65f03c0 // ret
580559
581560TEXT ·_xor_many(SB) , $ 0 - 32
582561 MOVD a + 0 (FP) , R0
583562 MOVD b + 8 (FP) , R1
584563 MOVD dims + 16 (FP) , R2
585- WORD $ 0xa9bb67fa // stp x26 , x25 , [ sp , # - 80 ] ! ; 16-byte Folded Spill
564+ WORD $ 0xa9bc67fa // stp x26 , x25 , [ sp , # - 64 ] ! ; 16-byte Folded Spill
586565 WORD $ 0xa9015ff8 // stp x24 , x23 , [ sp , # 16 ] ; 16-byte Folded Spill
587566 WORD $ 0xa90257f6 // stp x22 , x21 , [ sp , # 32 ] ; 16-byte Folded Spill
588567 WORD $ 0xa9034ff4 // stp x20 , x19 , [ sp , # 48 ] ; 16-byte Folded Spill
589- WORD $ 0xa9047bfd // stp x29 , x30 , [ sp , # 64 ] ; 16-byte Folded Spill
590- WORD $ 0x910103fd // add x29 , sp , # 64
591568 WORD $ 0xf2407c48 // ands x8 , x2 , # 0xffffffff
592569 WORD $ 0x54000a20 // b.eq LBB7_14
593570 WORD $ 0xd360fc4b // lsr x11 , x2 , # 32
@@ -686,19 +663,16 @@ BB7_13:
686663 WORD $ 0x17ffffd9 // b LBB7_6
687664
688665BB7_14:
689- WORD $ 0xa9447bfd // ldp x29 , x30 , [ sp , # 64 ] ; 16-byte Folded Reload
690666 WORD $ 0xa9434ff4 // ldp x20 , x19 , [ sp , # 48 ] ; 16-byte Folded Reload
691667 WORD $ 0xa94257f6 // ldp x22 , x21 , [ sp , # 32 ] ; 16-byte Folded Reload
692668 WORD $ 0xa9415ff8 // ldp x24 , x23 , [ sp , # 16 ] ; 16-byte Folded Reload
693- WORD $ 0xa8c567fa // ldp x26 , x25 , [ sp ], # 80 ; 16-byte Folded Reload
669+ WORD $ 0xa8c467fa // ldp x26 , x25 , [ sp ], # 64 ; 16-byte Folded Reload
694670 WORD $ 0xd65f03c0 // ret
695671
696672TEXT ·_count(SB) , $ 0 - 32
697673 MOVD a + 0 (FP) , R0
698674 MOVD size + 8 (FP) , R1
699675 MOVD result + 16 (FP) , R2
700- WORD $ 0xa9bf7bfd // stp x29 , x30 , [ sp , # - 16 ] ! ; 16-byte Folded Spill
701- WORD $ 0x910003fd // mov x29 , sp
702676 WORD $ 0xb40000c1 // cbz x1 , LBB8_3
703677 WORD $ 0xf100103f // cmp x1 , # 4
704678 WORD $ 0x540000c2 // b.hs LBB8_4
@@ -707,8 +681,8 @@ TEXT ·_count(SB), $0-32
707681 WORD $ 0x14000019 // b LBB8_7
708682
709683BB8_3:
710- WORD $ 0xd2800009 // mov x9 , # 0
711- WORD $ 0x14000020 // b LBB8_9
684+ WORD $ 0xf900005f // str xzr , [ x2 ]
685+ WORD $ 0xd65f03c0 // ret
712686
713687BB8_4:
714688 WORD $ 0x927ef428 // and x8 , x1 , # 0xfffffffffffffffc
@@ -751,5 +725,4 @@ BB8_8:
751725
752726BB8_9:
753727 WORD $ 0xf9000049 // str x9 , [ x2 ]
754- WORD $ 0xa8c17bfd // ldp x29 , x30 , [ sp ], # 16 ; 16-byte Folded Reload
755728 WORD $ 0xd65f03c0 // ret
0 commit comments