Skip to content

Commit a25415d

Browse files
committed
Pull in more changes from amd-staging
1 parent f39880d commit a25415d

File tree

3 files changed

+176
-15
lines changed

3 files changed

+176
-15
lines changed

llvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.ll

Lines changed: 174 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,162 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2-
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -amdgpu-spill-sgpr-to-vgpr=true < %s | FileCheck -check-prefix=SPILL-TO-VGPR %s
3-
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -amdgpu-spill-sgpr-to-vgpr=false < %s | FileCheck -check-prefix=NO-SPILL-TO-VGPR %s
2+
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -amdgpu-spill-sgpr-to-vgpr=true -amdgpu-spill-cfi-saved-regs=false < %s | FileCheck -check-prefixes=NO-CFI-SAVES-SPILL-TO-VGPR %s
3+
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -amdgpu-spill-sgpr-to-vgpr=true -amdgpu-spill-cfi-saved-regs=true < %s | FileCheck -check-prefixes=CFI-SAVES-SPILL-TO-VGPR %s
4+
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -amdgpu-spill-sgpr-to-vgpr=false -amdgpu-spill-cfi-saved-regs=false < %s | FileCheck -check-prefixes=NO-CFI-SAVES-NO-SPILL-TO-VGPR %s
5+
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -amdgpu-spill-sgpr-to-vgpr=false -amdgpu-spill-cfi-saved-regs=true < %s | FileCheck -check-prefixes=CFI-SAVES-NO-SPILL-TO-VGPR %s
6+
47

58
; Check frame setup where SGPR spills to VGPRs are disabled or enabled.
69

710
declare hidden void @external_void_func_void() #0
811

912
define void @callee_with_stack_and_call() #0 {
13+
; NO-CFI-SAVES-SPILL-TO-VGPR-LABEL: callee_with_stack_and_call:
14+
; NO-CFI-SAVES-SPILL-TO-VGPR: ; %bb.0:
15+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s4, s33
17+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s32
18+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_or_saveexec_b64 s[8:9], -1
19+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
20+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[8:9]
21+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s4, 2
22+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s30, 0
23+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_addk_i32 s32, 0x400
24+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s31, 1
25+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, 0
26+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_getpc_b64 s[4:5]
27+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_add_u32 s4, s4, external_void_func_void@rel32@lo+4
28+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_addc_u32 s5, s5, external_void_func_void@rel32@hi+12
29+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33
30+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
31+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_swappc_b64 s[30:31], s[4:5]
32+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v40, 0
33+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v40, 1
34+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s32, s33
35+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s4, v40, 2
36+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_or_saveexec_b64 s[6:7], -1
37+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_load_dword v40, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
38+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[6:7]
39+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s4
40+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
41+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_setpc_b64 s[30:31]
42+
;
43+
; CFI-SAVES-SPILL-TO-VGPR-LABEL: callee_with_stack_and_call:
44+
; CFI-SAVES-SPILL-TO-VGPR: ; %bb.0:
45+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
46+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s4, s33
47+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s32
48+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_or_saveexec_b64 s[8:9], -1
49+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
50+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[8:9]
51+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, exec_lo, 2
52+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, exec_hi, 3
53+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s4, 4
54+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s30, 0
55+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_addk_i32 s32, 0x400
56+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s31, 1
57+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, 0
58+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_getpc_b64 s[4:5]
59+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_add_u32 s4, s4, external_void_func_void@rel32@lo+4
60+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_addc_u32 s5, s5, external_void_func_void@rel32@hi+12
61+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33
62+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
63+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_swappc_b64 s[30:31], s[4:5]
64+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v40, 0
65+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v40, 1
66+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s32, s33
67+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s4, v40, 4
68+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_or_saveexec_b64 s[6:7], -1
69+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_load_dword v40, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
70+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[6:7]
71+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s4
72+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
73+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_setpc_b64 s[30:31]
74+
;
75+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-LABEL: callee_with_stack_and_call:
76+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR: ; %bb.0:
77+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
78+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s4, s33
79+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s32
80+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, s4
81+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
82+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_addk_i32 s32, 0x800
83+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
84+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 3
85+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:16
86+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s30, 0
87+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s31, 1
88+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
89+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:16
90+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
91+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
92+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, 0
93+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_getpc_b64 s[4:5]
94+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_add_u32 s4, s4, external_void_func_void@rel32@lo+4
95+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_addc_u32 s5, s5, external_void_func_void@rel32@hi+12
96+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33
97+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
98+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_swappc_b64 s[30:31], s[4:5]
99+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
100+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 3
101+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:16
102+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
103+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
104+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v0, 0
105+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v0, 1
106+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:16
107+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
108+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
109+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
110+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s32, s33
111+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
112+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readfirstlane_b32 s4, v0
113+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s4
114+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_setpc_b64 s[30:31]
115+
;
116+
; CFI-SAVES-NO-SPILL-TO-VGPR-LABEL: callee_with_stack_and_call:
117+
; CFI-SAVES-NO-SPILL-TO-VGPR: ; %bb.0:
118+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
119+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s4, s33
120+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s32
121+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, exec_lo
122+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
123+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, exec_hi
124+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
125+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, s4
126+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
127+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_addk_i32 s32, 0x800
128+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
129+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 3
130+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:24
131+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s30, 0
132+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s31, 1
133+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
134+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:24
135+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
136+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
137+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, 0
138+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_getpc_b64 s[4:5]
139+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_add_u32 s4, s4, external_void_func_void@rel32@lo+4
140+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_addc_u32 s5, s5, external_void_func_void@rel32@hi+12
141+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33
142+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
143+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_swappc_b64 s[30:31], s[4:5]
144+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
145+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 3
146+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:24
147+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
148+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
149+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v0, 0
150+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v0, 1
151+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:24
152+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
153+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
154+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
155+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s32, s33
156+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
157+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readfirstlane_b32 s4, v0
158+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s4
159+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_setpc_b64 s[30:31]
10160
; SPILL-TO-VGPR-LABEL: callee_with_stack_and_call:
11161
; SPILL-TO-VGPR: ; %bb.0:
12162
; SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
@@ -16,18 +166,18 @@ define void @callee_with_stack_and_call() #0 {
16166
; SPILL-TO-VGPR-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
17167
; SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[8:9]
18168
; SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s4, 2
19-
; SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s30, 0
20169
; SPILL-TO-VGPR-NEXT: s_addk_i32 s32, 0x400
21-
; SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s31, 1
170+
; SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s30, 0
22171
; SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, 0
23172
; SPILL-TO-VGPR-NEXT: s_getpc_b64 s[4:5]
24173
; SPILL-TO-VGPR-NEXT: s_add_u32 s4, s4, external_void_func_void@rel32@lo+4
25174
; SPILL-TO-VGPR-NEXT: s_addc_u32 s5, s5, external_void_func_void@rel32@hi+12
175+
; SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s31, 1
26176
; SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33
27177
; SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
28178
; SPILL-TO-VGPR-NEXT: s_swappc_b64 s[30:31], s[4:5]
29-
; SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v40, 0
30179
; SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v40, 1
180+
; SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v40, 0
31181
; SPILL-TO-VGPR-NEXT: s_mov_b32 s32, s33
32182
; SPILL-TO-VGPR-NEXT: v_readlane_b32 s4, v40, 2
33183
; SPILL-TO-VGPR-NEXT: s_or_saveexec_b64 s[6:7], -1
@@ -36,7 +186,6 @@ define void @callee_with_stack_and_call() #0 {
36186
; SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s4
37187
; SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
38188
; SPILL-TO-VGPR-NEXT: s_setpc_b64 s[30:31]
39-
;
40189
; NO-SPILL-TO-VGPR-LABEL: callee_with_stack_and_call:
41190
; NO-SPILL-TO-VGPR: ; %bb.0:
42191
; NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
@@ -46,14 +195,21 @@ define void @callee_with_stack_and_call() #0 {
46195
; NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
47196
; NO-SPILL-TO-VGPR-NEXT: s_addk_i32 s32, 0x800
48197
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
49-
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 3
198+
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 1
50199
; NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:16
51200
; NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s30, 0
52-
; NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s31, 1
53201
; NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
54202
; NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:16
55203
; NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
56204
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
205+
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
206+
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 1
207+
; NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:16
208+
; NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s31, 0
209+
; NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
210+
; NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:16
211+
; NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
212+
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
57213
; NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, 0
58214
; NO-SPILL-TO-VGPR-NEXT: s_getpc_b64 s[4:5]
59215
; NO-SPILL-TO-VGPR-NEXT: s_add_u32 s4, s4, external_void_func_void@rel32@lo+4
@@ -62,12 +218,20 @@ define void @callee_with_stack_and_call() #0 {
62218
; NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
63219
; NO-SPILL-TO-VGPR-NEXT: s_swappc_b64 s[30:31], s[4:5]
64220
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
65-
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 3
221+
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 1
222+
; NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:16
223+
; NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
224+
; NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
225+
; NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v0, 0
226+
; NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:16
227+
; NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
228+
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
229+
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
230+
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 1
66231
; NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:16
67232
; NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
68233
; NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
69234
; NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v0, 0
70-
; NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v0, 1
71235
; NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:16
72236
; NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
73237
; NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]

llvm/test/Transforms/InstCombine/cast-mul-select.ll

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
; RUN: opt < %s -passes=instcombine -S | FileCheck %s
33
; RUN: opt -passes=debugify,instcombine -S < %s | FileCheck %s -check-prefix DBGINFO
44

5-
6-
; RUN: opt -passes=debugify,instcombine --debugify-diop-diexprs --experimental-debuginfo-iterators=true -S < %s | FileCheck %s -check-prefix DIOP-DBGINFO
7-
; RUN: opt -passes=debugify,instcombine --debugify-diop-diexprs --experimental-debuginfo-iterators=false -S < %s | FileCheck %s -check-prefix DIOP-DBGINFO
5+
; RUN: opt -passes=debugify,instcombine --debugify-diop-diexprs -S < %s | FileCheck %s -check-prefix DIOP-DBGINFO
86

97
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32"
108

llvm/test/Transforms/InstCombine/debuginfo-variables.ll

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
; RUN: opt < %s -passes=debugify,instcombine -S | FileCheck %s
22

3-
; RUN: opt < %s -passes=debugify,instcombine --debugify-diop-diexprs --experimental-debuginfo-iterators=true -S | FileCheck %s --check-prefix DIOP-DBGINFO
4-
; RUN: opt < %s -passes=debugify,instcombine --debugify-diop-diexprs --experimental-debuginfo-iterators=false -S | FileCheck %s --check-prefix DIOP-DBGINFO
3+
; RUN: opt < %s -passes=debugify,instcombine --debugify-diop-diexprs -S | FileCheck %s --check-prefix DIOP-DBGINFO
54

65
declare void @escape32(i32)
76

0 commit comments

Comments
 (0)