@@ -26,8 +26,13 @@ body: |
2626 ; CHECK-LABEL: name: save_inactive_lanes_non_csr_vgpr
2727 ; CHECK: liveins: $vgpr0
2828 ; 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
2933 ; CHECK-NEXT: $sgpr0 = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
3034 ; 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
3136 ; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
3237 ; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 14, implicit $exec
3338 ; CHECK-NEXT: $exec_lo = S_XOR_B32 $sgpr0, -1, implicit-def $scc
@@ -64,8 +69,12 @@ body: |
6469 ; CHECK-LABEL: name: save_all_lanes_csr_vgpr
6570 ; CHECK: liveins: $vgpr40
6671 ; 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
6775 ; CHECK-NEXT: $sgpr0 = S_OR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
6876 ; 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
6978 ; CHECK-NEXT: $vgpr40 = V_MOV_B32_e32 14, implicit $exec
7079 ; CHECK-NEXT: $vgpr40 = SCRATCH_LOAD_DWORD_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (load (s32) from %stack.0, addrspace 5)
7180 ; CHECK-NEXT: $exec_lo = S_MOV_B32 $sgpr0
@@ -101,8 +110,13 @@ body: |
101110 ; CHECK-LABEL: name: save_csr_sgpr_to_non_csr_vgpr
102111 ; CHECK: liveins: $sgpr20, $vgpr191, $vgpr192
103112 ; 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
104117 ; CHECK-NEXT: $vcc_lo = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
105118 ; 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
106120 ; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
107121 ; CHECK-NEXT: $vgpr192 = SI_SPILL_S32_TO_VGPR killed $sgpr20, 0, $vgpr192
108122 ; CHECK-NEXT: $sgpr20 = S_MOV_B32 14, implicit $exec
@@ -144,8 +158,12 @@ body: |
144158 ; CHECK-LABEL: name: save_csr_sgpr_to_csr_vgpr
145159 ; CHECK: liveins: $sgpr20, $vgpr191
146160 ; 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
147164 ; CHECK-NEXT: $vcc_lo = S_OR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
148165 ; 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
149167 ; CHECK-NEXT: $vgpr191 = SI_SPILL_S32_TO_VGPR killed $sgpr20, 0, $vgpr191
150168 ; CHECK-NEXT: $sgpr20 = S_MOV_B32 14, implicit $exec
151169 ; CHECK-NEXT: $sgpr20 = SI_RESTORE_S32_FROM_VGPR $vgpr191, 0
@@ -193,11 +211,20 @@ body: |
193211 ; CHECK-LABEL: name: vgpr_and_sgpr_csr
194212 ; CHECK: liveins: $sgpr20, $vgpr0, $vgpr1, $vgpr40, $vgpr49
195213 ; 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
196220 ; CHECK-NEXT: $vcc_lo = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
197221 ; 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
198223 ; 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
199225 ; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
200226 ; 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
201228 ; CHECK-NEXT: $vgpr0 = SI_SPILL_S32_TO_VGPR killed $sgpr20, 0, $vgpr0
202229 ; CHECK-NEXT: S_NOP 0, implicit-def $vgpr40, implicit-def $sgpr20
203230 ; CHECK-NEXT: S_NOP 0, implicit-def $vgpr49, implicit-def $sgpr40
@@ -250,11 +277,21 @@ body: |
250277 ; CHECK-LABEL: name: split_orig_exec
251278 ; CHECK: liveins: $sgpr20, $vgpr0, $vgpr1, $vgpr40, $vgpr49
252279 ; 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
253287 ; CHECK-NEXT: $vcc_lo = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
254288 ; 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
255290 ; 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
256292 ; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
257293 ; 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
258295 ; CHECK-NEXT: $vgpr0 = SI_SPILL_S32_TO_VGPR killed $sgpr20, 0, $vgpr0
259296 ; CHECK-NEXT: S_NOP 0, implicit-def $vgpr40, implicit-def $sgpr20
260297 ; CHECK-NEXT: $sgpr3 = COPY $vcc_lo
@@ -300,16 +337,32 @@ body: |
300337 ; CHECK-LABEL: name: vgpr_superregs
301338 ; CHECK: liveins: $vgpr0, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr40, $vgpr41, $vgpr42
302339 ; 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
303348 ; CHECK-NEXT: $sgpr0 = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
304349 ; 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
305351 ; 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
306353 ; 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
307355 ; 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
308357 ; 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
309359 ; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
310360 ; 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
311362 ; 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
312364 ; 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
313366 ; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 14, implicit $exec
314367 ; CHECK-NEXT: S_NOP 0, implicit-def $vgpr2_vgpr3_vgpr4_vgpr5, implicit-def $vgpr40_vgpr41_vgpr42
315368 ; 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: |
360413 ; CHECK-LABEL: name: dont_restore_used_vgprs
361414 ; CHECK: liveins: $vgpr0, $vgpr20, $vgpr40
362415 ; 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
363419 ; CHECK-NEXT: $sgpr0 = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
364420 ; CHECK-NEXT: S_NOP 0, implicit $vgpr0, implicit $vgpr20, implicit $vgpr40
365421 ; CHECK-NEXT: $exec_lo = S_MOV_B32 $sgpr0
@@ -398,9 +454,16 @@ body: |
398454 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
399455 ; CHECK-NEXT: liveins: $vgpr0, $vgpr1
400456 ; 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
401462 ; CHECK-NEXT: $vcc_lo = S_XOR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
402463 ; 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
403465 ; 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
404467 ; CHECK-NEXT: $exec_lo = S_MOV_B32 -1
405468 ; CHECK-NEXT: $sgpr1 = S_MOV_B32 $exec_lo
406469 ; CHECK-NEXT: V_CMPX_EQ_U32_nosdst_e64 $vgpr0, $vgpr1, implicit-def $exec, implicit $exec
0 commit comments