@@ -26,8 +26,13 @@ body: |
26
26
; CHECK-LABEL: name: save_inactive_lanes_non_csr_vgpr
27
27
; CHECK: liveins: $vgpr0
28
28
; CHECK-NEXT: {{ $}}
29
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x90, 0x40, 0x94, 0x04, 0x35, 0x24, 0x36, 0xe9, 0x02
30
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION llvm_register_pair $pc_reg, $sgpr30, 32, $sgpr31, 32
31
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr0
32
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr0
29
33
; CHECK-NEXT: $sgpr0 = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
30
34
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr0, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
35
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr0, 0
31
36
; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
32
37
; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 14, implicit $exec
33
38
; CHECK-NEXT: $exec_lo = S_XOR_B32 $sgpr0, -1, implicit-def $scc
@@ -64,8 +69,12 @@ body: |
64
69
; CHECK-LABEL: name: save_all_lanes_csr_vgpr
65
70
; CHECK: liveins: $vgpr40
66
71
; CHECK-NEXT: {{ $}}
72
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x90, 0x40, 0x94, 0x04, 0x35, 0x24, 0x36, 0xe9, 0x02
73
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION llvm_register_pair $pc_reg, $sgpr30, 32, $sgpr31, 32
74
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr0
67
75
; CHECK-NEXT: $sgpr0 = S_OR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
68
76
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr40, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
77
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr40, 0
69
78
; CHECK-NEXT: $vgpr40 = V_MOV_B32_e32 14, implicit $exec
70
79
; CHECK-NEXT: $vgpr40 = SCRATCH_LOAD_DWORD_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (load (s32) from %stack.0, addrspace 5)
71
80
; CHECK-NEXT: $exec_lo = S_MOV_B32 $sgpr0
@@ -101,8 +110,13 @@ body: |
101
110
; CHECK-LABEL: name: save_csr_sgpr_to_non_csr_vgpr
102
111
; CHECK: liveins: $sgpr20, $vgpr191, $vgpr192
103
112
; CHECK-NEXT: {{ $}}
113
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x90, 0x40, 0x94, 0x04, 0x35, 0x24, 0x36, 0xe9, 0x02
114
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION llvm_register_pair $pc_reg, $sgpr30, 32, $sgpr31, 32
115
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr192
116
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr20
104
117
; CHECK-NEXT: $vcc_lo = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
105
118
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr192, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
119
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr192, 0
106
120
; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
107
121
; CHECK-NEXT: $vgpr192 = SI_SPILL_S32_TO_VGPR killed $sgpr20, 0, $vgpr192
108
122
; CHECK-NEXT: $sgpr20 = S_MOV_B32 14, implicit $exec
@@ -144,8 +158,12 @@ body: |
144
158
; CHECK-LABEL: name: save_csr_sgpr_to_csr_vgpr
145
159
; CHECK: liveins: $sgpr20, $vgpr191
146
160
; CHECK-NEXT: {{ $}}
161
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x90, 0x40, 0x94, 0x04, 0x35, 0x24, 0x36, 0xe9, 0x02
162
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION llvm_register_pair $pc_reg, $sgpr30, 32, $sgpr31, 32
163
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr20
147
164
; CHECK-NEXT: $vcc_lo = S_OR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
148
165
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr191, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
166
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr191, 0
149
167
; CHECK-NEXT: $vgpr191 = SI_SPILL_S32_TO_VGPR killed $sgpr20, 0, $vgpr191
150
168
; CHECK-NEXT: $sgpr20 = S_MOV_B32 14, implicit $exec
151
169
; CHECK-NEXT: $sgpr20 = SI_RESTORE_S32_FROM_VGPR $vgpr191, 0
@@ -193,11 +211,20 @@ body: |
193
211
; CHECK-LABEL: name: vgpr_and_sgpr_csr
194
212
; CHECK: liveins: $sgpr20, $vgpr0, $vgpr1, $vgpr40, $vgpr49
195
213
; CHECK-NEXT: {{ $}}
214
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x90, 0x40, 0x94, 0x04, 0x35, 0x24, 0x36, 0xe9, 0x02
215
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION llvm_register_pair $pc_reg, $sgpr30, 32, $sgpr31, 32
216
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr0
217
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr49
218
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr20
219
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr40
196
220
; CHECK-NEXT: $vcc_lo = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
197
221
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr0, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
222
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr0, 0
198
223
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr49, $sgpr32, 8, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.2, addrspace 5)
224
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr49, 256
199
225
; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
200
226
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr40, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.1, addrspace 5)
227
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr40, 128
201
228
; CHECK-NEXT: $vgpr0 = SI_SPILL_S32_TO_VGPR killed $sgpr20, 0, $vgpr0
202
229
; CHECK-NEXT: S_NOP 0, implicit-def $vgpr40, implicit-def $sgpr20
203
230
; CHECK-NEXT: S_NOP 0, implicit-def $vgpr49, implicit-def $sgpr40
@@ -250,11 +277,21 @@ body: |
250
277
; CHECK-LABEL: name: split_orig_exec
251
278
; CHECK: liveins: $sgpr20, $vgpr0, $vgpr1, $vgpr40, $vgpr49
252
279
; CHECK-NEXT: {{ $}}
280
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x90, 0x40, 0x94, 0x04, 0x35, 0x24, 0x36, 0xe9, 0x02
281
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION llvm_register_pair $pc_reg, $sgpr30, 32, $sgpr31, 32
282
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr0
283
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr49
284
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr3
285
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr20
286
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr40
253
287
; CHECK-NEXT: $vcc_lo = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
254
288
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr0, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
289
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr0, 0
255
290
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr49, $sgpr32, 8, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.2, addrspace 5)
291
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr49, 256
256
292
; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
257
293
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr40, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.1, addrspace 5)
294
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr40, 128
258
295
; CHECK-NEXT: $vgpr0 = SI_SPILL_S32_TO_VGPR killed $sgpr20, 0, $vgpr0
259
296
; CHECK-NEXT: S_NOP 0, implicit-def $vgpr40, implicit-def $sgpr20
260
297
; CHECK-NEXT: $sgpr3 = COPY $vcc_lo
@@ -300,16 +337,32 @@ body: |
300
337
; CHECK-LABEL: name: vgpr_superregs
301
338
; CHECK: liveins: $vgpr0, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr40, $vgpr41, $vgpr42
302
339
; CHECK-NEXT: {{ $}}
340
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x90, 0x40, 0x94, 0x04, 0x35, 0x24, 0x36, 0xe9, 0x02
341
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION llvm_register_pair $pc_reg, $sgpr30, 32, $sgpr31, 32
342
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr0
343
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr2
344
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr3
345
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr4
346
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr5
347
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr0
303
348
; CHECK-NEXT: $sgpr0 = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
304
349
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr0, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
350
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr0, 0
305
351
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr2, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.1, addrspace 5)
352
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr2, 128
306
353
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr3, $sgpr32, 8, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.2, addrspace 5)
354
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr3, 256
307
355
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr4, $sgpr32, 12, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.3, addrspace 5)
356
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr4, 384
308
357
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr5, $sgpr32, 16, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.4, addrspace 5)
358
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr5, 512
309
359
; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
310
360
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr40, $sgpr32, 20, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.5, addrspace 5)
361
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr40, 640
311
362
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr41, $sgpr32, 24, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.6, addrspace 5)
363
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr41, 768
312
364
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr42, $sgpr32, 28, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.7, addrspace 5)
365
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr42, 896
313
366
; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 14, implicit $exec
314
367
; CHECK-NEXT: S_NOP 0, implicit-def $vgpr2_vgpr3_vgpr4_vgpr5, implicit-def $vgpr40_vgpr41_vgpr42
315
368
; CHECK-NEXT: $vgpr40 = SCRATCH_LOAD_DWORD_SADDR $sgpr32, 20, 0, implicit $exec, implicit $flat_scr :: (load (s32) from %stack.5, addrspace 5)
@@ -360,6 +413,9 @@ body: |
360
413
; CHECK-LABEL: name: dont_restore_used_vgprs
361
414
; CHECK: liveins: $vgpr0, $vgpr20, $vgpr40
362
415
; CHECK-NEXT: {{ $}}
416
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x90, 0x40, 0x94, 0x04, 0x35, 0x24, 0x36, 0xe9, 0x02
417
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION llvm_register_pair $pc_reg, $sgpr30, 32, $sgpr31, 32
418
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr0
363
419
; CHECK-NEXT: $sgpr0 = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
364
420
; CHECK-NEXT: S_NOP 0, implicit $vgpr0, implicit $vgpr20, implicit $vgpr40
365
421
; CHECK-NEXT: $exec_lo = S_MOV_B32 $sgpr0
@@ -398,9 +454,16 @@ body: |
398
454
; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
399
455
; CHECK-NEXT: liveins: $vgpr0, $vgpr1
400
456
; CHECK-NEXT: {{ $}}
457
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x90, 0x40, 0x94, 0x04, 0x35, 0x24, 0x36, 0xe9, 0x02
458
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION llvm_register_pair $pc_reg, $sgpr30, 32, $sgpr31, 32
459
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr0
460
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr1
461
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr1
401
462
; CHECK-NEXT: $vcc_lo = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
402
463
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr0, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
464
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr0, 0
403
465
; CHECK-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr1, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.1, addrspace 5)
466
+ ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr1, 128
404
467
; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
405
468
; CHECK-NEXT: $sgpr1 = S_MOV_B32 $exec_lo
406
469
; CHECK-NEXT: V_CMPX_EQ_U32_nosdst_e64 $vgpr0, $vgpr1, implicit-def $exec, implicit $exec
0 commit comments