@@ -147,10 +147,11 @@ entry:
147
147
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-8], Type: Spill, Align: 8, Size: 8
148
148
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-16], Type: Spill, Align: 8, Size: 8
149
149
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-24], Type: Spill, Align: 8, Size: 8
150
- ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-32], Type: Variable, Align: 1, Size: 0
151
150
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-32], Type: Spill, Align: 8, Size: 8
152
151
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-32-16 x vscale], Type: Variable, Align: 16, Size: vscale x 16
153
152
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-40-16 x vscale], Type: Variable, Align: 8, Size: 8
153
+ ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-32], Type: VariableSized, Align: 1, Size: 0
154
+ ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-32], Type: VariableSized, Align: 1, Size: 0
154
155
155
156
define i32 @csr_d8_allocnxv4i32i32f64_vla (double %d , i32 %i ) "aarch64_pstate_sm_compatible" {
156
157
; CHECK-LABEL: csr_d8_allocnxv4i32i32f64_vla:
@@ -172,7 +173,10 @@ define i32 @csr_d8_allocnxv4i32i32f64_vla(double %d, i32 %i) "aarch64_pstate_sm_
172
173
; CHECK-NEXT: mov x9, sp
173
174
; CHECK-NEXT: add x8, x8, #15
174
175
; CHECK-NEXT: and x8, x8, #0x7fffffff0
175
- ; CHECK-NEXT: sub x8, x9, x8
176
+ ; CHECK-NEXT: sub x9, x9, x8
177
+ ; CHECK-NEXT: mov sp, x9
178
+ ; CHECK-NEXT: mov x10, sp
179
+ ; CHECK-NEXT: sub x8, x10, x8
176
180
; CHECK-NEXT: mov sp, x8
177
181
; CHECK-NEXT: mov z1.s, #0 // =0x0
178
182
; CHECK-NEXT: ptrue p0.s
@@ -181,8 +185,9 @@ define i32 @csr_d8_allocnxv4i32i32f64_vla(double %d, i32 %i) "aarch64_pstate_sm_
181
185
; CHECK-NEXT: str wzr, [x8]
182
186
; CHECK-NEXT: sub x8, x29, #8
183
187
; CHECK-NEXT: mov w0, wzr
184
- ; CHECK-NEXT: str d0 , [x19, #8 ]
188
+ ; CHECK-NEXT: str wzr , [x9 ]
185
189
; CHECK-NEXT: st1w { z1.s }, p0, [x8, #-1, mul vl]
190
+ ; CHECK-NEXT: str d0, [x19, #8]
186
191
; CHECK-NEXT: sub sp, x29, #8
187
192
; CHECK-NEXT: ldp x29, x30, [sp, #8] // 16-byte Folded Reload
188
193
; CHECK-NEXT: ldr x19, [sp, #24] // 8-byte Folded Reload
@@ -191,18 +196,20 @@ define i32 @csr_d8_allocnxv4i32i32f64_vla(double %d, i32 %i) "aarch64_pstate_sm_
191
196
entry:
192
197
%a = alloca <vscale x 4 x i32 >
193
198
%0 = zext i32 %i to i64
194
- %b = alloca i32 , i64 %0
199
+ %vla0 = alloca i32 , i64 %0
200
+ %vla1 = alloca i32 , i64 %0
195
201
%c = alloca double
196
202
tail call void asm sideeffect "" , "~{d8}" () #1
197
203
store <vscale x 4 x i32 > zeroinitializer , ptr %a
198
- store i32 zeroinitializer , ptr %b
204
+ store i32 zeroinitializer , ptr %vla0
205
+ store i32 zeroinitializer , ptr %vla1
199
206
store double %d , ptr %c
200
207
ret i32 0
201
208
}
202
209
203
210
; CHECK-FRAMELAYOUT-LABEL: Function: csr_d8_allocnxv4i32i32f64_stackargsi32f64
204
- ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP+8], Type: Variable , Align: 8, Size: 4
205
- ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP+0], Type: Protector , Align: 16, Size: 8
211
+ ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP+8], Type: Fixed , Align: 8, Size: 4
212
+ ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP+0], Type: Fixed , Align: 16, Size: 8
206
213
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-8], Type: Spill, Align: 8, Size: 8
207
214
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-16], Type: Spill, Align: 8, Size: 8
208
215
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-16-16 x vscale], Type: Variable, Align: 16, Size: vscale x 16
@@ -289,7 +296,7 @@ entry:
289
296
}
290
297
291
298
; CHECK-FRAMELAYOUT-LABEL: Function: svecc_z8_allocnxv4i32i32f64_stackargsi32_fp
292
- ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP+0], Type: Protector , Align: 16, Size: 4
299
+ ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP+0], Type: Fixed , Align: 16, Size: 4
293
300
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-8], Type: Spill, Align: 8, Size: 8
294
301
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-16], Type: Spill, Align: 8, Size: 8
295
302
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-16-16 x vscale], Type: Spill, Align: 16, Size: vscale x 16
@@ -514,7 +521,7 @@ declare ptr @memset(ptr, i32, i32)
514
521
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-104], Type: Spill, Align: 8, Size: 8
515
522
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-112], Type: Spill, Align: 8, Size: 8
516
523
; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-128], Type: Variable, Align: 16, Size: 16
517
- ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-128], Type: Variable , Align: 16, Size: 0
524
+ ; CHECK-FRAMELAYOUT-NEXT: Offset: [SP-128], Type: VariableSized , Align: 16, Size: 0
518
525
519
526
define i32 @vastate (i32 %x ) "aarch64_inout_za" "aarch64_pstate_sm_enabled" "target-features" ="+sme" {
520
527
; CHECK-LABEL: vastate:
0 commit comments