@@ -35,9 +35,10 @@ define void @foo_non_streaming_pass_arg(ptr %arg) {
35
35
; CHECK-AFTER-ISEL-NEXT: [[LDR_ZXI:%[0-9]+]]:zpr = LDR_ZXI [[COPY]], 0 :: (load (<vscale x 1 x s128>) from %ir.arg)
36
36
; CHECK-AFTER-ISEL-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
37
37
; CHECK-AFTER-ISEL-NEXT: [[RDVLI_XI:%[0-9]+]]:gpr64 = RDVLI_XI 1, implicit $vg
38
- ; CHECK-AFTER-ISEL-NEXT: [[RDSVLI_XI:%[0-9]+]]:gpr64 = RDSVLI_XI 1, implicit $vg
39
- ; CHECK-AFTER-ISEL-NEXT: [[SUBXrr:%[0-9]+]]:gpr64 = SUBXrr [[RDVLI_XI]], [[RDSVLI_XI]]
40
- ; CHECK-AFTER-ISEL-NEXT: CBZX [[SUBXrr]], %bb.2
38
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[RDVLI_XI]]
39
+ ; CHECK-AFTER-ISEL-NEXT: [[ADDSVL_XXI:%[0-9]+]]:gpr64sp = ADDSVL_XXI [[COPY1]], -1, implicit $vg
40
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY2:%[0-9]+]]:gpr64 = COPY [[ADDSVL_XXI]]
41
+ ; CHECK-AFTER-ISEL-NEXT: CBZX [[COPY2]], %bb.2
41
42
; CHECK-AFTER-ISEL-NEXT: {{ $}}
42
43
; CHECK-AFTER-ISEL-NEXT: bb.1.entry:
43
44
; CHECK-AFTER-ISEL-NEXT: successors:
@@ -84,9 +85,10 @@ define void @foo_streaming_pass_arg(ptr %arg) #0 {
84
85
; CHECK-AFTER-ISEL-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
85
86
; CHECK-AFTER-ISEL-NEXT: MSRpstatesvcrImm1 1, 0, csr_aarch64_smstartstop, implicit-def dead $nzcv, implicit-def $sp, implicit-def $z0, implicit $vg, implicit-def $vg, implicit-def $fpmr
86
87
; CHECK-AFTER-ISEL-NEXT: [[RDVLI_XI:%[0-9]+]]:gpr64 = RDVLI_XI 1, implicit $vg
87
- ; CHECK-AFTER-ISEL-NEXT: [[RDSVLI_XI:%[0-9]+]]:gpr64 = RDSVLI_XI 1, implicit $vg
88
- ; CHECK-AFTER-ISEL-NEXT: [[SUBXrr:%[0-9]+]]:gpr64 = SUBXrr [[RDVLI_XI]], [[RDSVLI_XI]]
89
- ; CHECK-AFTER-ISEL-NEXT: CBZX [[SUBXrr]], %bb.2
88
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[RDVLI_XI]]
89
+ ; CHECK-AFTER-ISEL-NEXT: [[ADDSVL_XXI:%[0-9]+]]:gpr64sp = ADDSVL_XXI [[COPY1]], -1, implicit $vg
90
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY2:%[0-9]+]]:gpr64 = COPY [[ADDSVL_XXI]]
91
+ ; CHECK-AFTER-ISEL-NEXT: CBZX [[COPY2]], %bb.2
90
92
; CHECK-AFTER-ISEL-NEXT: {{ $}}
91
93
; CHECK-AFTER-ISEL-NEXT: bb.1.entry:
92
94
; CHECK-AFTER-ISEL-NEXT: successors:
@@ -131,9 +133,10 @@ define void @foo_non_streaming_retval(ptr %ptr) {
131
133
; CHECK-AFTER-ISEL-NEXT: [[COPY:%[0-9]+]]:gpr64common = COPY $x0
132
134
; CHECK-AFTER-ISEL-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
133
135
; CHECK-AFTER-ISEL-NEXT: [[RDVLI_XI:%[0-9]+]]:gpr64 = RDVLI_XI 1, implicit $vg
134
- ; CHECK-AFTER-ISEL-NEXT: [[RDSVLI_XI:%[0-9]+]]:gpr64 = RDSVLI_XI 1, implicit $vg
135
- ; CHECK-AFTER-ISEL-NEXT: [[SUBXrr:%[0-9]+]]:gpr64 = SUBXrr [[RDVLI_XI]], [[RDSVLI_XI]]
136
- ; CHECK-AFTER-ISEL-NEXT: CBZX [[SUBXrr]], %bb.2
136
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[RDVLI_XI]]
137
+ ; CHECK-AFTER-ISEL-NEXT: [[ADDSVL_XXI:%[0-9]+]]:gpr64sp = ADDSVL_XXI [[COPY1]], -1, implicit $vg
138
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY2:%[0-9]+]]:gpr64 = COPY [[ADDSVL_XXI]]
139
+ ; CHECK-AFTER-ISEL-NEXT: CBZX [[COPY2]], %bb.2
137
140
; CHECK-AFTER-ISEL-NEXT: {{ $}}
138
141
; CHECK-AFTER-ISEL-NEXT: bb.1.entry:
139
142
; CHECK-AFTER-ISEL-NEXT: successors:
@@ -144,10 +147,10 @@ define void @foo_non_streaming_retval(ptr %ptr) {
144
147
; CHECK-AFTER-ISEL-NEXT: MSRpstatesvcrImm1 1, 1, csr_aarch64_smstartstop, implicit-def dead $nzcv, implicit-def $sp, implicit-def $z0, implicit $vg, implicit-def $vg, implicit-def $fpmr
145
148
; CHECK-AFTER-ISEL-NEXT: BL @bar_retv_enabled, csr_aarch64_sve_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $z0
146
149
; CHECK-AFTER-ISEL-NEXT: ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp
147
- ; CHECK-AFTER-ISEL-NEXT: [[COPY1 :%[0-9]+]]:zpr = COPY $z0
150
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY3 :%[0-9]+]]:zpr = COPY $z0
148
151
; CHECK-AFTER-ISEL-NEXT: MSRpstatesvcrImm1 1, 0, csr_aarch64_smstartstop, implicit-def dead $nzcv, implicit $vg, implicit-def $vg, implicit-def $fpmr
149
- ; CHECK-AFTER-ISEL-NEXT: [[COPY2 :%[0-9]+]]:zpr = COPY [[COPY1 ]]
150
- ; CHECK-AFTER-ISEL-NEXT: STR_ZXI [[COPY2 ]], [[COPY]], 0 :: (store (<vscale x 1 x s128>) into %ir.ptr)
152
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY4 :%[0-9]+]]:zpr = COPY [[COPY3 ]]
153
+ ; CHECK-AFTER-ISEL-NEXT: STR_ZXI [[COPY4 ]], [[COPY]], 0 :: (store (<vscale x 1 x s128>) into %ir.ptr)
151
154
; CHECK-AFTER-ISEL-NEXT: RET_ReallyLR
152
155
entry:
153
156
%v = tail call <vscale x 4 x i32 > @bar_retv_enabled () #0
@@ -182,9 +185,10 @@ define void @foo_streaming_retval(ptr %ptr) #0 {
182
185
; CHECK-AFTER-ISEL-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
183
186
; CHECK-AFTER-ISEL-NEXT: MSRpstatesvcrImm1 1, 0, csr_aarch64_smstartstop, implicit-def dead $nzcv, implicit-def $sp, implicit-def $z0, implicit $vg, implicit-def $vg, implicit-def $fpmr
184
187
; CHECK-AFTER-ISEL-NEXT: [[RDVLI_XI:%[0-9]+]]:gpr64 = RDVLI_XI 1, implicit $vg
185
- ; CHECK-AFTER-ISEL-NEXT: [[RDSVLI_XI:%[0-9]+]]:gpr64 = RDSVLI_XI 1, implicit $vg
186
- ; CHECK-AFTER-ISEL-NEXT: [[SUBXrr:%[0-9]+]]:gpr64 = SUBXrr [[RDVLI_XI]], [[RDSVLI_XI]]
187
- ; CHECK-AFTER-ISEL-NEXT: CBZX [[SUBXrr]], %bb.2
188
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[RDVLI_XI]]
189
+ ; CHECK-AFTER-ISEL-NEXT: [[ADDSVL_XXI:%[0-9]+]]:gpr64sp = ADDSVL_XXI [[COPY1]], -1, implicit $vg
190
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY2:%[0-9]+]]:gpr64 = COPY [[ADDSVL_XXI]]
191
+ ; CHECK-AFTER-ISEL-NEXT: CBZX [[COPY2]], %bb.2
188
192
; CHECK-AFTER-ISEL-NEXT: {{ $}}
189
193
; CHECK-AFTER-ISEL-NEXT: bb.1.entry:
190
194
; CHECK-AFTER-ISEL-NEXT: successors:
@@ -194,10 +198,10 @@ define void @foo_streaming_retval(ptr %ptr) #0 {
194
198
; CHECK-AFTER-ISEL-NEXT: bb.2.entry:
195
199
; CHECK-AFTER-ISEL-NEXT: BL @bar_retv, csr_aarch64_sve_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $z0
196
200
; CHECK-AFTER-ISEL-NEXT: ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp
197
- ; CHECK-AFTER-ISEL-NEXT: [[COPY1 :%[0-9]+]]:zpr = COPY $z0
201
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY3 :%[0-9]+]]:zpr = COPY $z0
198
202
; CHECK-AFTER-ISEL-NEXT: MSRpstatesvcrImm1 1, 1, csr_aarch64_smstartstop, implicit-def dead $nzcv, implicit $vg, implicit-def $vg, implicit-def $fpmr
199
- ; CHECK-AFTER-ISEL-NEXT: [[COPY2 :%[0-9]+]]:zpr = COPY [[COPY1 ]]
200
- ; CHECK-AFTER-ISEL-NEXT: STR_ZXI [[COPY2 ]], [[COPY]], 0 :: (store (<vscale x 1 x s128>) into %ir.ptr)
203
+ ; CHECK-AFTER-ISEL-NEXT: [[COPY4 :%[0-9]+]]:zpr = COPY [[COPY3 ]]
204
+ ; CHECK-AFTER-ISEL-NEXT: STR_ZXI [[COPY4 ]], [[COPY]], 0 :: (store (<vscale x 1 x s128>) into %ir.ptr)
201
205
; CHECK-AFTER-ISEL-NEXT: RET_ReallyLR
202
206
entry:
203
207
%v = tail call <vscale x 4 x i32 > @bar_retv ()
0 commit comments