|
9 | 9 | define aarch64_sve_vector_pcs void @spills_fills_stack_id_ppr() #0 { entry: unreachable }
|
10 | 10 | define aarch64_sve_vector_pcs void @spills_fills_stack_id_zpr() #0 { entry: unreachable }
|
11 | 11 | define aarch64_sve_vector_pcs void @spills_fills_stack_id_zpr2() #0 { entry: unreachable }
|
| 12 | + define aarch64_sve_vector_pcs void @spills_fills_stack_id_zpr2strided() #0 { entry: unreachable } |
12 | 13 | define aarch64_sve_vector_pcs void @spills_fills_stack_id_zpr3() #0 { entry: unreachable }
|
13 | 14 | define aarch64_sve_vector_pcs void @spills_fills_stack_id_zpr4() #0 { entry: unreachable }
|
| 15 | + define aarch64_sve_vector_pcs void @spills_fills_stack_id_zpr4strided() #0 { entry: unreachable } |
14 | 16 |
|
15 | 17 | attributes #0 = { nounwind "target-features"="+sve" }
|
16 | 18 |
|
@@ -131,6 +133,51 @@ body: |
|
131 | 133 | RET_ReallyLR
|
132 | 134 | ...
|
133 | 135 | ---
|
| 136 | +name: spills_fills_stack_id_zpr2strided |
| 137 | +tracksRegLiveness: true |
| 138 | +registers: |
| 139 | + - { id: 0, class: zpr2strided } |
| 140 | +stack: |
| 141 | +liveins: |
| 142 | + - { reg: '$z0_z8', virtual-reg: '%0' } |
| 143 | +body: | |
| 144 | + bb.0.entry: |
| 145 | + liveins: $z0_z1 |
| 146 | + successors: %bb.1 |
| 147 | +
|
| 148 | + $z0_z8 = COPY $z0_z1 |
| 149 | +
|
| 150 | + B %bb.1 |
| 151 | +
|
| 152 | + bb.1: |
| 153 | + liveins: $z0_z8 |
| 154 | +
|
| 155 | + ; CHECK-LABEL: name: spills_fills_stack_id_zpr2strided |
| 156 | + ; CHECK: stack: |
| 157 | + ; CHECK: - { id: 0, name: '', type: spill-slot, offset: 0, size: 32, alignment: 16 |
| 158 | + ; CHECK-NEXT: stack-id: scalable-vector |
| 159 | +
|
| 160 | + ; EXPAND-LABEL: name: spills_fills_stack_id_zpr2strided |
| 161 | + ; EXPAND: STR_ZXI $z0, $sp, 0 |
| 162 | + ; EXPAND: STR_ZXI $z8, $sp, 1 |
| 163 | + ; EXPAND: $z0 = LDR_ZXI $sp, 0 |
| 164 | + ; EXPAND: $z8 = LDR_ZXI $sp, 1 |
| 165 | +
|
| 166 | + %0:zpr2strided = COPY $z0_z8 |
| 167 | +
|
| 168 | + $z0_z1_z2_z3 = IMPLICIT_DEF |
| 169 | + $z4_z5_z6_z7 = IMPLICIT_DEF |
| 170 | + $z8_z9_z10_z11 = IMPLICIT_DEF |
| 171 | + $z12_z13_z14_z15 = IMPLICIT_DEF |
| 172 | + $z16_z17_z18_z19 = IMPLICIT_DEF |
| 173 | + $z20_z21_z22_z23 = IMPLICIT_DEF |
| 174 | + $z24_z25_z26_z27 = IMPLICIT_DEF |
| 175 | + $z28_z29_z30_z31 = IMPLICIT_DEF |
| 176 | +
|
| 177 | + $z0_z8 = COPY %0 |
| 178 | + RET_ReallyLR |
| 179 | +... |
| 180 | +--- |
134 | 181 | name: spills_fills_stack_id_zpr3
|
135 | 182 | tracksRegLiveness: true
|
136 | 183 | registers:
|
@@ -210,3 +257,51 @@ body: |
|
210 | 257 | $z0_z1_z2_z3 = COPY %0
|
211 | 258 | RET_ReallyLR
|
212 | 259 | ...
|
| 260 | +--- |
| 261 | +name: spills_fills_stack_id_zpr4strided |
| 262 | +tracksRegLiveness: true |
| 263 | +registers: |
| 264 | + - { id: 0, class: zpr4strided } |
| 265 | +stack: |
| 266 | +liveins: |
| 267 | + - { reg: '$z0_z4_z8_z12', virtual-reg: '%0' } |
| 268 | +body: | |
| 269 | + bb.0.entry: |
| 270 | + liveins: $z0_z1_z2_z3 |
| 271 | +
|
| 272 | + $z0_z4_z8_z12 = COPY $z0_z1_z2_z3 |
| 273 | +
|
| 274 | + B %bb.1 |
| 275 | +
|
| 276 | + bb.1: |
| 277 | + liveins: $z0_z4_z8_z12 |
| 278 | +
|
| 279 | + ; CHECK-LABEL: name: spills_fills_stack_id_zpr4strided |
| 280 | + ; CHECK: stack: |
| 281 | + ; CHECK: - { id: 0, name: '', type: spill-slot, offset: 0, size: 64, alignment: 16 |
| 282 | + ; CHECK-NEXT: stack-id: scalable-vector |
| 283 | +
|
| 284 | + ; EXPAND-LABEL: name: spills_fills_stack_id_zpr4strided |
| 285 | + ; EXPAND: STR_ZXI $z0, $sp, 0 |
| 286 | + ; EXPAND: STR_ZXI $z4, $sp, 1 |
| 287 | + ; EXPAND: STR_ZXI $z8, $sp, 2 |
| 288 | + ; EXPAND: STR_ZXI $z12, $sp, 3 |
| 289 | + ; EXPAND: $z0 = LDR_ZXI $sp, 0 |
| 290 | + ; EXPAND: $z4 = LDR_ZXI $sp, 1 |
| 291 | + ; EXPAND: $z8 = LDR_ZXI $sp, 2 |
| 292 | + ; EXPAND: $z12 = LDR_ZXI $sp, 3 |
| 293 | +
|
| 294 | + %0:zpr4strided = COPY $z0_z4_z8_z12 |
| 295 | +
|
| 296 | + $z0_z1_z2_z3 = IMPLICIT_DEF |
| 297 | + $z4_z5_z6_z7 = IMPLICIT_DEF |
| 298 | + $z8_z9_z10_z11 = IMPLICIT_DEF |
| 299 | + $z12_z13_z14_z15 = IMPLICIT_DEF |
| 300 | + $z16_z17_z18_z19 = IMPLICIT_DEF |
| 301 | + $z20_z21_z22_z23 = IMPLICIT_DEF |
| 302 | + $z24_z25_z26_z27 = IMPLICIT_DEF |
| 303 | + $z28_z29_z30_z31 = IMPLICIT_DEF |
| 304 | +
|
| 305 | + $z0_z4_z8_z12 = COPY %0 |
| 306 | + RET_ReallyLR |
| 307 | +... |
0 commit comments