xref: /llvm-project/llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.ll (revision 39337ff2dc366fde83b07193b72c294a846c5959)
1ef67664dSMatt Arsenault; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 < %s | FileCheck -check-prefix=GFX7 %s
3ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx810 -mattr=+xnack < %s | FileCheck -check-prefix=GFX8 %s
4*39337ff2SMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -mattr=+xnack < %s | FileCheck -check-prefixes=GFX900 %s
5*39337ff2SMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -mattr=+xnack < %s | FileCheck -check-prefixes=GFX940 %s
6ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 < %s | FileCheck -check-prefix=GFX10_1 %s
7ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 < %s | FileCheck -check-prefix=GFX10_3 %s
8ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 < %s | FileCheck -check-prefix=GFX11 %s
9ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 < %s | FileCheck -check-prefix=GFX12 %s
10ef67664dSMatt Arsenault
11ef67664dSMatt Arsenault%asm.output = type { <16 x i32>, <16 x i32>, <16 x i32>, <8 x i32>, <2 x i32>, i32, ; sgprs
12ef67664dSMatt Arsenault                     <16 x i32>, <7 x i32>, ; vgprs
13ef67664dSMatt Arsenault                     i64 ; vcc
14ef67664dSMatt Arsenault                     }
15ef67664dSMatt Arsenault
16ef67664dSMatt Arsenault%asm.output2 = type { <16 x i32>, <16 x i32>, <16 x i32>, <8 x i32>, <2 x i32>, i32, ; sgprs
17ef67664dSMatt Arsenault                     <16 x i32>, <5 x i32>, ; vgprs
18ef67664dSMatt Arsenault                     i64 ; vcc
19ef67664dSMatt Arsenault                     }
20ef67664dSMatt Arsenault
21ef67664dSMatt Arsenault%asm.output3 = type { <16 x i32>, <16 x i32>, <16 x i32>, <8 x i32>, <2 x i32>, ; sgprs
22ef67664dSMatt Arsenault                     <16 x i32>, <6 x i32>, ; vgprs
23ef67664dSMatt Arsenault                     i64 ; vcc
24ef67664dSMatt Arsenault                     }
25ef67664dSMatt Arsenault
26ef67664dSMatt Arsenault; %alloca1 should end up materializing with s_mov_b32, but scc is
27ef67664dSMatt Arsenault; unavailable.
28ef67664dSMatt Arsenault;
29ef67664dSMatt Arsenault; This is primarily to test gfx7 and gfx8, which do not have vector
30ef67664dSMatt Arsenault; add with no carry.
31ef67664dSMatt Arsenault;
32ef67664dSMatt Arsenaultdefine void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs() #0 {
33ef67664dSMatt Arsenault; GFX7-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs:
34ef67664dSMatt Arsenault; GFX7:       ; %bb.0:
35ef67664dSMatt Arsenault; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
36ef67664dSMatt Arsenault; GFX7-NEXT:    s_xor_saveexec_b64 s[4:5], -1
37ef67664dSMatt Arsenault; GFX7-NEXT:    s_add_i32 s6, s32, 0x101100
38ef67664dSMatt Arsenault; GFX7-NEXT:    buffer_store_dword v23, off, s[0:3], s6 ; 4-byte Folded Spill
39ef67664dSMatt Arsenault; GFX7-NEXT:    s_mov_b64 exec, s[4:5]
40ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s30, 0
41ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s31, 1
42ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s33, 2
43ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s34, 3
44ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s35, 4
45ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s36, 5
46ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s37, 6
47ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s38, 7
48ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s39, 8
49ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s40, 9
50ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s41, 10
51ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s42, 11
52ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s43, 12
53ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s44, 13
54ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s45, 14
55ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s46, 15
56ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s47, 16
57ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s48, 17
58ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s49, 18
59ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s50, 19
60ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s51, 20
61ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s52, 21
62ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s53, 22
63ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s54, 23
64ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s55, 24
65ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s56, 25
66ef67664dSMatt Arsenault; GFX7-NEXT:    v_lshr_b32_e64 v0, s32, 6
67ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s57, 26
68ef67664dSMatt Arsenault; GFX7-NEXT:    v_add_i32_e32 v0, vcc, 64, v0
69ef67664dSMatt Arsenault; GFX7-NEXT:    s_and_b64 s[4:5], 0, exec
70ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s58, 27
71ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMSTART
72ef67664dSMatt Arsenault; GFX7-NEXT:    ; use alloca0 v0
73ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMEND
74ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMSTART
75ef67664dSMatt Arsenault; GFX7-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc
76ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMEND
77ef67664dSMatt Arsenault; GFX7-NEXT:    buffer_store_dword v0, off, s[0:3], s32
78ef67664dSMatt Arsenault; GFX7-NEXT:    v_mov_b32_e32 v0, 0x4040
79ef67664dSMatt Arsenault; GFX7-NEXT:    v_mad_u32_u24 v0, v0, 64, s32
80adac04ffSPankaj Dwivedi; GFX7-NEXT:    v_lshrrev_b32_e32 v0, 6, v0
81ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s59, 28
82ef67664dSMatt Arsenault; GFX7-NEXT:    v_readfirstlane_b32 s59, v0
83ef67664dSMatt Arsenault; GFX7-NEXT:    buffer_load_dword v0, off, s[0:3], s32
84ef67664dSMatt Arsenault; GFX7-NEXT:    s_waitcnt vmcnt(0)
85ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMSTART
86ef67664dSMatt Arsenault; GFX7-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc
87ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMEND
88ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s59, v23, 28
89ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s58, v23, 27
90ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s57, v23, 26
91ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s56, v23, 25
92ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s55, v23, 24
93ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s54, v23, 23
94ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s53, v23, 22
95ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s52, v23, 21
96ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s51, v23, 20
97ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s50, v23, 19
98ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s49, v23, 18
99ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s48, v23, 17
100ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s47, v23, 16
101ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s46, v23, 15
102ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s45, v23, 14
103ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s44, v23, 13
104ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s43, v23, 12
105ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s42, v23, 11
106ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s41, v23, 10
107ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s40, v23, 9
108ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s39, v23, 8
109ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s38, v23, 7
110ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s37, v23, 6
111ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s36, v23, 5
112ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s35, v23, 4
113ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s34, v23, 3
114ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s33, v23, 2
115ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s31, v23, 1
116ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s30, v23, 0
117ef67664dSMatt Arsenault; GFX7-NEXT:    s_xor_saveexec_b64 s[4:5], -1
118ef67664dSMatt Arsenault; GFX7-NEXT:    s_add_i32 s6, s32, 0x101100
119ef67664dSMatt Arsenault; GFX7-NEXT:    buffer_load_dword v23, off, s[0:3], s6 ; 4-byte Folded Reload
120ef67664dSMatt Arsenault; GFX7-NEXT:    s_mov_b64 exec, s[4:5]
121ef67664dSMatt Arsenault; GFX7-NEXT:    s_waitcnt vmcnt(0)
122ef67664dSMatt Arsenault; GFX7-NEXT:    s_setpc_b64 s[30:31]
123ef67664dSMatt Arsenault;
124ef67664dSMatt Arsenault; GFX8-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs:
125ef67664dSMatt Arsenault; GFX8:       ; %bb.0:
126ef67664dSMatt Arsenault; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
127ef67664dSMatt Arsenault; GFX8-NEXT:    s_xor_saveexec_b64 s[4:5], -1
128ef67664dSMatt Arsenault; GFX8-NEXT:    s_add_i32 s6, s32, 0x101100
129ef67664dSMatt Arsenault; GFX8-NEXT:    buffer_store_dword v23, off, s[0:3], s6 ; 4-byte Folded Spill
130ef67664dSMatt Arsenault; GFX8-NEXT:    s_mov_b64 exec, s[4:5]
131ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s30, 0
132ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s31, 1
133ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s33, 2
134ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s34, 3
135ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s35, 4
136ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s36, 5
137ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s37, 6
138ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s38, 7
139ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s39, 8
140ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s40, 9
141ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s41, 10
142ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s42, 11
143ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s43, 12
144ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s44, 13
145ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s45, 14
146ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s46, 15
147ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s47, 16
148ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s48, 17
149ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s49, 18
150ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s50, 19
151ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s51, 20
152ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s52, 21
153ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s53, 22
154ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s54, 23
155ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s55, 24
156ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s56, 25
157ef67664dSMatt Arsenault; GFX8-NEXT:    v_lshrrev_b32_e64 v0, 6, s32
158ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s57, 26
159ef67664dSMatt Arsenault; GFX8-NEXT:    v_add_u32_e32 v0, vcc, 64, v0
160ef67664dSMatt Arsenault; GFX8-NEXT:    s_and_b64 s[4:5], 0, exec
161ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s58, 27
162ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMSTART
163ef67664dSMatt Arsenault; GFX8-NEXT:    ; use alloca0 v0
164ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMEND
165ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMSTART
166ef67664dSMatt Arsenault; GFX8-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc
167ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMEND
168ef67664dSMatt Arsenault; GFX8-NEXT:    buffer_store_dword v0, off, s[0:3], s32
169ef67664dSMatt Arsenault; GFX8-NEXT:    v_mov_b32_e32 v0, 0x4040
170ef67664dSMatt Arsenault; GFX8-NEXT:    v_mad_u32_u24 v0, v0, 64, s32
171adac04ffSPankaj Dwivedi; GFX8-NEXT:    v_lshrrev_b32_e32 v0, 6, v0
172ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v23, s59, 28
173ef67664dSMatt Arsenault; GFX8-NEXT:    v_readfirstlane_b32 s59, v0
174ef67664dSMatt Arsenault; GFX8-NEXT:    buffer_load_dword v0, off, s[0:3], s32
175ef67664dSMatt Arsenault; GFX8-NEXT:    s_waitcnt vmcnt(0)
176ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMSTART
177ef67664dSMatt Arsenault; GFX8-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc
178ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMEND
179ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s59, v23, 28
180ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s58, v23, 27
181ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s57, v23, 26
182ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s56, v23, 25
183ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s55, v23, 24
184ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s54, v23, 23
185ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s53, v23, 22
186ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s52, v23, 21
187ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s51, v23, 20
188ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s50, v23, 19
189ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s49, v23, 18
190ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s48, v23, 17
191ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s47, v23, 16
192ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s46, v23, 15
193ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s45, v23, 14
194ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s44, v23, 13
195ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s43, v23, 12
196ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s42, v23, 11
197ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s41, v23, 10
198ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s40, v23, 9
199ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s39, v23, 8
200ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s38, v23, 7
201ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s37, v23, 6
202ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s36, v23, 5
203ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s35, v23, 4
204ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s34, v23, 3
205ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s33, v23, 2
206ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s31, v23, 1
207ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s30, v23, 0
208ef67664dSMatt Arsenault; GFX8-NEXT:    s_xor_saveexec_b64 s[4:5], -1
209ef67664dSMatt Arsenault; GFX8-NEXT:    s_add_i32 s6, s32, 0x101100
210ef67664dSMatt Arsenault; GFX8-NEXT:    buffer_load_dword v23, off, s[0:3], s6 ; 4-byte Folded Reload
211ef67664dSMatt Arsenault; GFX8-NEXT:    s_mov_b64 exec, s[4:5]
212ef67664dSMatt Arsenault; GFX8-NEXT:    s_waitcnt vmcnt(0)
213ef67664dSMatt Arsenault; GFX8-NEXT:    s_setpc_b64 s[30:31]
214ef67664dSMatt Arsenault;
215ef67664dSMatt Arsenault; GFX900-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs:
216ef67664dSMatt Arsenault; GFX900:       ; %bb.0:
217ef67664dSMatt Arsenault; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
218ef67664dSMatt Arsenault; GFX900-NEXT:    s_xor_saveexec_b64 s[4:5], -1
219ef67664dSMatt Arsenault; GFX900-NEXT:    s_add_i32 s6, s32, 0x101100
220ef67664dSMatt Arsenault; GFX900-NEXT:    buffer_store_dword v23, off, s[0:3], s6 ; 4-byte Folded Spill
221ef67664dSMatt Arsenault; GFX900-NEXT:    s_mov_b64 exec, s[4:5]
222ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s30, 0
223ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s31, 1
224ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s33, 2
225ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s34, 3
226ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s35, 4
227ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s36, 5
228ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s37, 6
229ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s38, 7
230ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s39, 8
231ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s40, 9
232ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s41, 10
233ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s42, 11
234ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s43, 12
235ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s44, 13
236ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s45, 14
237ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s46, 15
238ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s47, 16
239ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s48, 17
240ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s49, 18
241ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s50, 19
242ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s51, 20
243ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s52, 21
244ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s53, 22
245ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s54, 23
246ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s55, 24
247ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s56, 25
248ef67664dSMatt Arsenault; GFX900-NEXT:    v_lshrrev_b32_e64 v0, 6, s32
249ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s57, 26
250ef67664dSMatt Arsenault; GFX900-NEXT:    v_add_u32_e32 v0, 64, v0
251ef67664dSMatt Arsenault; GFX900-NEXT:    s_and_b64 s[4:5], 0, exec
252ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s58, 27
253ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMSTART
254ef67664dSMatt Arsenault; GFX900-NEXT:    ; use alloca0 v0
255ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMEND
256ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMSTART
257ef67664dSMatt Arsenault; GFX900-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc
258ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMEND
259ef67664dSMatt Arsenault; GFX900-NEXT:    buffer_store_dword v0, off, s[0:3], s32
260ef67664dSMatt Arsenault; GFX900-NEXT:    v_lshrrev_b32_e64 v0, 6, s32
261ef67664dSMatt Arsenault; GFX900-NEXT:    v_add_u32_e32 v0, 0x4040, v0
262ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v23, s59, 28
263ef67664dSMatt Arsenault; GFX900-NEXT:    v_readfirstlane_b32 s59, v0
264ef67664dSMatt Arsenault; GFX900-NEXT:    buffer_load_dword v0, off, s[0:3], s32
265ef67664dSMatt Arsenault; GFX900-NEXT:    s_waitcnt vmcnt(0)
266ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMSTART
267ef67664dSMatt Arsenault; GFX900-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc
268ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMEND
269ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s59, v23, 28
270ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s58, v23, 27
271ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s57, v23, 26
272ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s56, v23, 25
273ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s55, v23, 24
274ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s54, v23, 23
275ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s53, v23, 22
276ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s52, v23, 21
277ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s51, v23, 20
278ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s50, v23, 19
279ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s49, v23, 18
280ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s48, v23, 17
281ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s47, v23, 16
282ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s46, v23, 15
283ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s45, v23, 14
284ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s44, v23, 13
285ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s43, v23, 12
286ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s42, v23, 11
287ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s41, v23, 10
288ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s40, v23, 9
289ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s39, v23, 8
290ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s38, v23, 7
291ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s37, v23, 6
292ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s36, v23, 5
293ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s35, v23, 4
294ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s34, v23, 3
295ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s33, v23, 2
296ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s31, v23, 1
297ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s30, v23, 0
298ef67664dSMatt Arsenault; GFX900-NEXT:    s_xor_saveexec_b64 s[4:5], -1
299ef67664dSMatt Arsenault; GFX900-NEXT:    s_add_i32 s6, s32, 0x101100
300ef67664dSMatt Arsenault; GFX900-NEXT:    buffer_load_dword v23, off, s[0:3], s6 ; 4-byte Folded Reload
301ef67664dSMatt Arsenault; GFX900-NEXT:    s_mov_b64 exec, s[4:5]
302ef67664dSMatt Arsenault; GFX900-NEXT:    s_waitcnt vmcnt(0)
303ef67664dSMatt Arsenault; GFX900-NEXT:    s_setpc_b64 s[30:31]
304ef67664dSMatt Arsenault;
305ef67664dSMatt Arsenault; GFX940-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs:
306ef67664dSMatt Arsenault; GFX940:       ; %bb.0:
307ef67664dSMatt Arsenault; GFX940-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
308ef67664dSMatt Arsenault; GFX940-NEXT:    s_xor_saveexec_b64 s[0:1], -1
309ef67664dSMatt Arsenault; GFX940-NEXT:    s_add_i32 s2, s32, 0x4044
310ef67664dSMatt Arsenault; GFX940-NEXT:    scratch_store_dword off, v23, s2 sc0 sc1 ; 4-byte Folded Spill
311ef67664dSMatt Arsenault; GFX940-NEXT:    s_mov_b64 exec, s[0:1]
312ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s30, 0
313ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s31, 1
314ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s33, 2
315ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s34, 3
316ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s35, 4
317ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s36, 5
318ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s37, 6
319ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s38, 7
320ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s39, 8
321ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s40, 9
322ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s41, 10
323ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s42, 11
324ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s43, 12
325ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s44, 13
326ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s45, 14
327ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s46, 15
328ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s47, 16
329ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s48, 17
330ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s49, 18
331ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s50, 19
332ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s51, 20
333ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s52, 21
334ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s53, 22
335ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s54, 23
336ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s55, 24
337ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s56, 25
338ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s57, 26
339ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s58, 27
340ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s59, 28
341ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s60, 29
342ef67664dSMatt Arsenault; GFX940-NEXT:    s_add_i32 s0, s32, 64
343ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v23, s61, 30
344ef67664dSMatt Arsenault; GFX940-NEXT:    v_mov_b32_e32 v0, s0
345ef67664dSMatt Arsenault; GFX940-NEXT:    s_and_b64 s[60:61], 0, exec
346ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMSTART
347ef67664dSMatt Arsenault; GFX940-NEXT:    ; use alloca0 v0
348ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMEND
349ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMSTART
350ef67664dSMatt Arsenault; GFX940-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc
351ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMEND
352ef67664dSMatt Arsenault; GFX940-NEXT:    s_addc_u32 s60, s32, 0x4040
353ef67664dSMatt Arsenault; GFX940-NEXT:    s_bitcmp1_b32 s60, 0
354ef67664dSMatt Arsenault; GFX940-NEXT:    s_bitset0_b32 s60, 0
355ef67664dSMatt Arsenault; GFX940-NEXT:    s_mov_b32 s59, s60
356ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMSTART
357ef67664dSMatt Arsenault; GFX940-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc
358ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMEND
359ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s61, v23, 30
360ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s60, v23, 29
361ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s59, v23, 28
362ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s58, v23, 27
363ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s57, v23, 26
364ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s56, v23, 25
365ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s55, v23, 24
366ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s54, v23, 23
367ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s53, v23, 22
368ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s52, v23, 21
369ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s51, v23, 20
370ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s50, v23, 19
371ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s49, v23, 18
372ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s48, v23, 17
373ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s47, v23, 16
374ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s46, v23, 15
375ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s45, v23, 14
376ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s44, v23, 13
377ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s43, v23, 12
378ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s42, v23, 11
379ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s41, v23, 10
380ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s40, v23, 9
381ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s39, v23, 8
382ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s38, v23, 7
383ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s37, v23, 6
384ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s36, v23, 5
385ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s35, v23, 4
386ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s34, v23, 3
387ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s33, v23, 2
388ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s31, v23, 1
389ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s30, v23, 0
390ef67664dSMatt Arsenault; GFX940-NEXT:    s_xor_saveexec_b64 s[0:1], -1
391ef67664dSMatt Arsenault; GFX940-NEXT:    s_add_i32 s2, s32, 0x4044
392ef67664dSMatt Arsenault; GFX940-NEXT:    scratch_load_dword v23, off, s2 ; 4-byte Folded Reload
393ef67664dSMatt Arsenault; GFX940-NEXT:    s_mov_b64 exec, s[0:1]
394ef67664dSMatt Arsenault; GFX940-NEXT:    s_waitcnt vmcnt(0)
395ef67664dSMatt Arsenault; GFX940-NEXT:    s_setpc_b64 s[30:31]
396ef67664dSMatt Arsenault;
397ef67664dSMatt Arsenault; GFX10_1-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs:
398ef67664dSMatt Arsenault; GFX10_1:       ; %bb.0:
399ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
400ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_xor_saveexec_b32 s4, -1
401ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_add_i32 s5, s32, 0x80880
402ef67664dSMatt Arsenault; GFX10_1-NEXT:    buffer_store_dword v23, off, s[0:3], s5 ; 4-byte Folded Spill
403ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt_depctr 0xffe3
404ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_mov_b32 exec_lo, s4
405ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s30, 0
406ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_lshrrev_b32_e64 v0, 5, s32
407ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_and_b32 s4, 0, exec_lo
408ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s31, 1
409ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_add_nc_u32_e32 v0, 64, v0
410ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMSTART
411ef67664dSMatt Arsenault; GFX10_1-NEXT:    ; use alloca0 v0
412ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMEND
413ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s33, 2
414ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s34, 3
415ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s35, 4
416ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s36, 5
417ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s37, 6
418ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s38, 7
419ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s39, 8
420ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s40, 9
421ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s41, 10
422ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s42, 11
423ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s43, 12
424ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s44, 13
425ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s45, 14
426ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s46, 15
427ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s47, 16
428ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s48, 17
429ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s49, 18
430ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s50, 19
431ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s51, 20
432ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s52, 21
433ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s53, 22
434ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s54, 23
435ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s55, 24
436ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s56, 25
437ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s57, 26
438ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s58, 27
439ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMSTART
440ef67664dSMatt Arsenault; GFX10_1-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc
441ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMEND
442ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_lshrrev_b32_e64 v24, 5, s32
443ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v23, s59, 28
444ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_add_nc_u32_e32 v24, 0x4040, v24
445ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readfirstlane_b32 s59, v24
446ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMSTART
447ef67664dSMatt Arsenault; GFX10_1-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc
448ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMEND
449ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s59, v23, 28
450ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s58, v23, 27
451ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s57, v23, 26
452ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s56, v23, 25
453ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s55, v23, 24
454ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s54, v23, 23
455ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s53, v23, 22
456ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s52, v23, 21
457ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s51, v23, 20
458ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s50, v23, 19
459ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s49, v23, 18
460ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s48, v23, 17
461ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s47, v23, 16
462ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s46, v23, 15
463ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s45, v23, 14
464ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s44, v23, 13
465ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s43, v23, 12
466ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s42, v23, 11
467ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s41, v23, 10
468ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s40, v23, 9
469ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s39, v23, 8
470ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s38, v23, 7
471ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s37, v23, 6
472ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s36, v23, 5
473ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s35, v23, 4
474ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s34, v23, 3
475ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s33, v23, 2
476ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s31, v23, 1
477ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s30, v23, 0
478ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_xor_saveexec_b32 s4, -1
479ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_add_i32 s5, s32, 0x80880
480ef67664dSMatt Arsenault; GFX10_1-NEXT:    buffer_load_dword v23, off, s[0:3], s5 ; 4-byte Folded Reload
481ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt_depctr 0xffe3
482ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_mov_b32 exec_lo, s4
483ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt vmcnt(0)
484ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_setpc_b64 s[30:31]
485ef67664dSMatt Arsenault;
486ef67664dSMatt Arsenault; GFX10_3-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs:
487ef67664dSMatt Arsenault; GFX10_3:       ; %bb.0:
488ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
489ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_xor_saveexec_b32 s4, -1
490ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_add_i32 s5, s32, 0x80880
491ef67664dSMatt Arsenault; GFX10_3-NEXT:    buffer_store_dword v23, off, s[0:3], s5 ; 4-byte Folded Spill
492ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_mov_b32 exec_lo, s4
493ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s30, 0
494ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_lshrrev_b32_e64 v0, 5, s32
495ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_and_b32 s4, 0, exec_lo
496ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s31, 1
497ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_add_nc_u32_e32 v0, 64, v0
498ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMSTART
499ef67664dSMatt Arsenault; GFX10_3-NEXT:    ; use alloca0 v0
500ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMEND
501ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s33, 2
502ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s34, 3
503ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s35, 4
504ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s36, 5
505ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s37, 6
506ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s38, 7
507ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s39, 8
508ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s40, 9
509ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s41, 10
510ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s42, 11
511ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s43, 12
512ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s44, 13
513ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s45, 14
514ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s46, 15
515ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s47, 16
516ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s48, 17
517ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s49, 18
518ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s50, 19
519ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s51, 20
520ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s52, 21
521ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s53, 22
522ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s54, 23
523ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s55, 24
524ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s56, 25
525ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s57, 26
526ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s58, 27
527ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMSTART
528ef67664dSMatt Arsenault; GFX10_3-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc
529ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMEND
530ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_lshrrev_b32_e64 v24, 5, s32
531ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v23, s59, 28
532ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_add_nc_u32_e32 v24, 0x4040, v24
533ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readfirstlane_b32 s59, v24
534ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMSTART
535ef67664dSMatt Arsenault; GFX10_3-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc
536ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMEND
537ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s59, v23, 28
538ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s58, v23, 27
539ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s57, v23, 26
540ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s56, v23, 25
541ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s55, v23, 24
542ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s54, v23, 23
543ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s53, v23, 22
544ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s52, v23, 21
545ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s51, v23, 20
546ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s50, v23, 19
547ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s49, v23, 18
548ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s48, v23, 17
549ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s47, v23, 16
550ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s46, v23, 15
551ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s45, v23, 14
552ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s44, v23, 13
553ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s43, v23, 12
554ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s42, v23, 11
555ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s41, v23, 10
556ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s40, v23, 9
557ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s39, v23, 8
558ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s38, v23, 7
559ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s37, v23, 6
560ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s36, v23, 5
561ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s35, v23, 4
562ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s34, v23, 3
563ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s33, v23, 2
564ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s31, v23, 1
565ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s30, v23, 0
566ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_xor_saveexec_b32 s4, -1
567ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_add_i32 s5, s32, 0x80880
568ef67664dSMatt Arsenault; GFX10_3-NEXT:    buffer_load_dword v23, off, s[0:3], s5 ; 4-byte Folded Reload
569ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_mov_b32 exec_lo, s4
570ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_waitcnt vmcnt(0)
571ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_setpc_b64 s[30:31]
572ef67664dSMatt Arsenault;
573ef67664dSMatt Arsenault; GFX11-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs:
574ef67664dSMatt Arsenault; GFX11:       ; %bb.0:
575ef67664dSMatt Arsenault; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
576ef67664dSMatt Arsenault; GFX11-NEXT:    s_xor_saveexec_b32 s0, -1
577ef67664dSMatt Arsenault; GFX11-NEXT:    s_add_i32 s1, s32, 0x4044
578ef67664dSMatt Arsenault; GFX11-NEXT:    scratch_store_b32 off, v23, s1 ; 4-byte Folded Spill
579ef67664dSMatt Arsenault; GFX11-NEXT:    s_mov_b32 exec_lo, s0
580ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s30, 0
581ef67664dSMatt Arsenault; GFX11-NEXT:    s_add_i32 s0, s32, 64
582ef67664dSMatt Arsenault; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)
583ef67664dSMatt Arsenault; GFX11-NEXT:    v_mov_b32_e32 v0, s0
584ef67664dSMatt Arsenault; GFX11-NEXT:    s_and_b32 s0, 0, exec_lo
585ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s31, 1
586ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMSTART
587ef67664dSMatt Arsenault; GFX11-NEXT:    ; use alloca0 v0
588ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMEND
589ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s33, 2
590ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s34, 3
591ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s35, 4
592ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s36, 5
593ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s37, 6
594ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s38, 7
595ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s39, 8
596ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s40, 9
597ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s41, 10
598ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s42, 11
599ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s43, 12
600ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s44, 13
601ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s45, 14
602ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s46, 15
603ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s47, 16
604ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s48, 17
605ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s49, 18
606ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s50, 19
607ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s51, 20
608ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s52, 21
609ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s53, 22
610ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s54, 23
611ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s55, 24
612ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s56, 25
613ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s57, 26
614ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s58, 27
615ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMSTART
616ef67664dSMatt Arsenault; GFX11-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc
617ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMEND
618ef67664dSMatt Arsenault; GFX11-NEXT:    s_addc_u32 s32, s32, 0x4040
619ef67664dSMatt Arsenault; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_2) | instid1(SALU_CYCLE_1)
620ef67664dSMatt Arsenault; GFX11-NEXT:    s_bitcmp1_b32 s32, 0
621ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v23, s59, 28
622ef67664dSMatt Arsenault; GFX11-NEXT:    s_bitset0_b32 s32, 0
623ef67664dSMatt Arsenault; GFX11-NEXT:    s_mov_b32 s59, s32
624ef67664dSMatt Arsenault; GFX11-NEXT:    s_addc_u32 s32, s32, 0xffffbfc0
625ef67664dSMatt Arsenault; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)
626ef67664dSMatt Arsenault; GFX11-NEXT:    s_bitcmp1_b32 s32, 0
627ef67664dSMatt Arsenault; GFX11-NEXT:    s_bitset0_b32 s32, 0
628ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMSTART
629ef67664dSMatt Arsenault; GFX11-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc
630ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMEND
631ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s59, v23, 28
632ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s58, v23, 27
633ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s57, v23, 26
634ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s56, v23, 25
635ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s55, v23, 24
636ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s54, v23, 23
637ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s53, v23, 22
638ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s52, v23, 21
639ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s51, v23, 20
640ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s50, v23, 19
641ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s49, v23, 18
642ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s48, v23, 17
643ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s47, v23, 16
644ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s46, v23, 15
645ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s45, v23, 14
646ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s44, v23, 13
647ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s43, v23, 12
648ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s42, v23, 11
649ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s41, v23, 10
650ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s40, v23, 9
651ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s39, v23, 8
652ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s38, v23, 7
653ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s37, v23, 6
654ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s36, v23, 5
655ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s35, v23, 4
656ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s34, v23, 3
657ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s33, v23, 2
658ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s31, v23, 1
659ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s30, v23, 0
660ef67664dSMatt Arsenault; GFX11-NEXT:    s_xor_saveexec_b32 s0, -1
661ef67664dSMatt Arsenault; GFX11-NEXT:    s_add_i32 s1, s32, 0x4044
662ef67664dSMatt Arsenault; GFX11-NEXT:    scratch_load_b32 v23, off, s1 ; 4-byte Folded Reload
663ef67664dSMatt Arsenault; GFX11-NEXT:    s_mov_b32 exec_lo, s0
664ef67664dSMatt Arsenault; GFX11-NEXT:    s_waitcnt vmcnt(0)
665ef67664dSMatt Arsenault; GFX11-NEXT:    s_setpc_b64 s[30:31]
666ef67664dSMatt Arsenault;
667ef67664dSMatt Arsenault; GFX12-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs:
668ef67664dSMatt Arsenault; GFX12:       ; %bb.0:
669ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
670ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_expcnt 0x0
671ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_samplecnt 0x0
672ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_bvhcnt 0x0
673ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_kmcnt 0x0
674ef67664dSMatt Arsenault; GFX12-NEXT:    s_xor_saveexec_b32 s0, -1
675ef67664dSMatt Arsenault; GFX12-NEXT:    scratch_store_b32 off, v23, s32 offset:16388 ; 4-byte Folded Spill
67686627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
677ef67664dSMatt Arsenault; GFX12-NEXT:    s_mov_b32 exec_lo, s0
678ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s30, 0
679ef67664dSMatt Arsenault; GFX12-NEXT:    v_mov_b32_e32 v0, s32
680ef67664dSMatt Arsenault; GFX12-NEXT:    s_and_b32 s0, 0, exec_lo
681ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMSTART
682ef67664dSMatt Arsenault; GFX12-NEXT:    ; use alloca0 v0
683ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMEND
684ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s31, 1
685ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s33, 2
686ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s34, 3
687ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s35, 4
688ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s36, 5
689ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s37, 6
690ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s38, 7
691ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s39, 8
692ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s40, 9
693ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s41, 10
694ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s42, 11
695ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s43, 12
696ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s44, 13
697ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s45, 14
698ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s46, 15
699ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s47, 16
700ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s48, 17
701ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s49, 18
702ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s50, 19
703ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s51, 20
704ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s52, 21
705ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s53, 22
706ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s54, 23
707ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s55, 24
708ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s56, 25
709ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s57, 26
710ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s58, 27
711ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMSTART
712ef67664dSMatt Arsenault; GFX12-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc
713ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMEND
714ef67664dSMatt Arsenault; GFX12-NEXT:    s_add_co_ci_u32 s32, s32, 0x4000
71586627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
716ef67664dSMatt Arsenault; GFX12-NEXT:    s_bitcmp1_b32 s32, 0
717ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v23, s59, 28
718ef67664dSMatt Arsenault; GFX12-NEXT:    s_bitset0_b32 s32, 0
71986627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
720ef67664dSMatt Arsenault; GFX12-NEXT:    s_mov_b32 s59, s32
721ef67664dSMatt Arsenault; GFX12-NEXT:    s_add_co_ci_u32 s32, s32, 0xffffc000
72286627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
723ef67664dSMatt Arsenault; GFX12-NEXT:    s_bitcmp1_b32 s32, 0
724ef67664dSMatt Arsenault; GFX12-NEXT:    s_bitset0_b32 s32, 0
725ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMSTART
726ef67664dSMatt Arsenault; GFX12-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc
727ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMEND
728ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s59, v23, 28
729ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s58, v23, 27
730ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s57, v23, 26
731ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s56, v23, 25
732ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s55, v23, 24
733ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s54, v23, 23
734ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s53, v23, 22
735ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s52, v23, 21
736ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s51, v23, 20
737ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s50, v23, 19
738ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s49, v23, 18
739ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s48, v23, 17
740ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s47, v23, 16
741ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s46, v23, 15
742ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s45, v23, 14
743ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s44, v23, 13
744ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s43, v23, 12
745ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s42, v23, 11
746ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s41, v23, 10
747ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s40, v23, 9
748ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s39, v23, 8
749ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s38, v23, 7
750ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s37, v23, 6
751ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s36, v23, 5
752ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s35, v23, 4
753ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s34, v23, 3
754ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s33, v23, 2
755ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s31, v23, 1
756ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s30, v23, 0
757ef67664dSMatt Arsenault; GFX12-NEXT:    s_xor_saveexec_b32 s0, -1
758ef67664dSMatt Arsenault; GFX12-NEXT:    scratch_load_b32 v23, off, s32 offset:16388 ; 4-byte Folded Reload
75986627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
760ef67664dSMatt Arsenault; GFX12-NEXT:    s_mov_b32 exec_lo, s0
761ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_loadcnt 0x0
76286627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
763ef67664dSMatt Arsenault; GFX12-NEXT:    s_setpc_b64 s[30:31]
764ef67664dSMatt Arsenault  %alloca0 = alloca [4096 x i32], align 64, addrspace(5)
765ef67664dSMatt Arsenault  %alloca1 = alloca i32, align 4, addrspace(5)
766ef67664dSMatt Arsenault  call void asm sideeffect "; use alloca0 $0", "v"(ptr addrspace(5) %alloca0)
767ef67664dSMatt Arsenault
768ef67664dSMatt Arsenault  ; Force no SGPRs to be available for the carry-out of the vector add.
769ef67664dSMatt Arsenault  %asm = call %asm.output asm sideeffect
770ef67664dSMatt Arsenault    "; def $0, $1, $2, $3, $4, $5, $6, $7, $8",
771ef67664dSMatt Arsenault    "={s[0:15]},={s[16:31]},={s[32:47]},={s[48:55]},={s[56:57]},={s58},={v[0:15]},={v[16:22]},={vcc}"()
772ef67664dSMatt Arsenault
773ef67664dSMatt Arsenault  %s0 = extractvalue %asm.output %asm, 0
774ef67664dSMatt Arsenault  %s1 = extractvalue %asm.output %asm, 1
775ef67664dSMatt Arsenault  %s2 = extractvalue %asm.output %asm, 2
776ef67664dSMatt Arsenault  %s3 = extractvalue %asm.output %asm, 3
777ef67664dSMatt Arsenault  %s4 = extractvalue %asm.output %asm, 4
778ef67664dSMatt Arsenault  %s5 = extractvalue %asm.output %asm, 5
779ef67664dSMatt Arsenault
780ef67664dSMatt Arsenault  %v0 = extractvalue %asm.output %asm, 6
781ef67664dSMatt Arsenault  %v1 = extractvalue %asm.output %asm, 7
782ef67664dSMatt Arsenault
783ef67664dSMatt Arsenault  %vcc = extractvalue %asm.output %asm, 8
784ef67664dSMatt Arsenault
785ef67664dSMatt Arsenault  ; scc is unavailable since it is live in
786ef67664dSMatt Arsenault  call void asm sideeffect "; use $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10",
787ef67664dSMatt Arsenault                           "{s[0:15]},{s[16:31]},{s[32:47]},{s[48:55]},{s[56:57]},{s58},{v[0:15]},{v[16:22]},{vcc},{s59},{scc}"(
788ef67664dSMatt Arsenault    <16 x i32> %s0,
789ef67664dSMatt Arsenault    <16 x i32> %s1,
790ef67664dSMatt Arsenault    <16 x i32> %s2,
791ef67664dSMatt Arsenault    <8 x i32> %s3,
792ef67664dSMatt Arsenault    <2 x i32> %s4,
793ef67664dSMatt Arsenault    i32 %s5,
794ef67664dSMatt Arsenault    <16 x i32> %v0,
795ef67664dSMatt Arsenault    <7 x i32> %v1,
796ef67664dSMatt Arsenault    i64 %vcc,
797ef67664dSMatt Arsenault    ptr addrspace(5) %alloca1,
798ef67664dSMatt Arsenault    i32 0) ; use of scc
799ef67664dSMatt Arsenault
800ef67664dSMatt Arsenault  ret void
801ef67664dSMatt Arsenault}
802ef67664dSMatt Arsenault
803ef67664dSMatt Arsenault; FIXME: This would have test FI at offset 0, but other objects get
804ef67664dSMatt Arsenault; assigned there. This shows a non-0, but inline immediate that can
805ef67664dSMatt Arsenault; fold directly into the address computation.
806ef67664dSMatt Arsenaultdefine void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset() #1 {
807ef67664dSMatt Arsenault; GFX7-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset:
808ef67664dSMatt Arsenault; GFX7:       ; %bb.0:
809ef67664dSMatt Arsenault; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
810ef67664dSMatt Arsenault; GFX7-NEXT:    s_xor_saveexec_b64 s[4:5], -1
811ef67664dSMatt Arsenault; GFX7-NEXT:    s_add_i32 s6, s32, 0x100400
812ef67664dSMatt Arsenault; GFX7-NEXT:    buffer_store_dword v21, off, s[0:3], s6 ; 4-byte Folded Spill
813ef67664dSMatt Arsenault; GFX7-NEXT:    s_mov_b64 exec, s[4:5]
814ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s30, 0
815ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s31, 1
816ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s33, 2
817ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s34, 3
818ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s35, 4
819ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s36, 5
820ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s37, 6
821ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s38, 7
822ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s39, 8
823ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s40, 9
824ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s41, 10
825ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s42, 11
826ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s43, 12
827ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s44, 13
828ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s45, 14
829ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s46, 15
830ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s47, 16
831ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s48, 17
832ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s49, 18
833ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s50, 19
834ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s51, 20
835ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s52, 21
836ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s53, 22
837ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s54, 23
838ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s55, 24
839ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s56, 25
840ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s57, 26
841ef67664dSMatt Arsenault; GFX7-NEXT:    s_and_b64 s[4:5], 0, exec
842ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s58, 27
843ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMSTART
844ef67664dSMatt Arsenault; GFX7-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc
845ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMEND
84642bae9c5SPankaj Dwivedi; GFX7-NEXT:    v_mad_u32_u24 v22, 16, 64, s32
847adac04ffSPankaj Dwivedi; GFX7-NEXT:    v_lshrrev_b32_e32 v22, 6, v22
848ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v21, s59, 28
849ef67664dSMatt Arsenault; GFX7-NEXT:    v_readfirstlane_b32 s59, v22
850ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMSTART
851ef67664dSMatt Arsenault; GFX7-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc
852ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMEND
853ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s59, v21, 28
854ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s58, v21, 27
855ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s57, v21, 26
856ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s56, v21, 25
857ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s55, v21, 24
858ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s54, v21, 23
859ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s53, v21, 22
860ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s52, v21, 21
861ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s51, v21, 20
862ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s50, v21, 19
863ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s49, v21, 18
864ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s48, v21, 17
865ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s47, v21, 16
866ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s46, v21, 15
867ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s45, v21, 14
868ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s44, v21, 13
869ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s43, v21, 12
870ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s42, v21, 11
871ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s41, v21, 10
872ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s40, v21, 9
873ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s39, v21, 8
874ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s38, v21, 7
875ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s37, v21, 6
876ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s36, v21, 5
877ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s35, v21, 4
878ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s34, v21, 3
879ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s33, v21, 2
880ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s31, v21, 1
881ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s30, v21, 0
882ef67664dSMatt Arsenault; GFX7-NEXT:    s_xor_saveexec_b64 s[4:5], -1
883ef67664dSMatt Arsenault; GFX7-NEXT:    s_add_i32 s6, s32, 0x100400
884ef67664dSMatt Arsenault; GFX7-NEXT:    buffer_load_dword v21, off, s[0:3], s6 ; 4-byte Folded Reload
885ef67664dSMatt Arsenault; GFX7-NEXT:    s_mov_b64 exec, s[4:5]
886ef67664dSMatt Arsenault; GFX7-NEXT:    s_waitcnt vmcnt(0)
887ef67664dSMatt Arsenault; GFX7-NEXT:    s_setpc_b64 s[30:31]
888ef67664dSMatt Arsenault;
889ef67664dSMatt Arsenault; GFX8-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset:
890ef67664dSMatt Arsenault; GFX8:       ; %bb.0:
891ef67664dSMatt Arsenault; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
892ef67664dSMatt Arsenault; GFX8-NEXT:    s_xor_saveexec_b64 s[4:5], -1
893ef67664dSMatt Arsenault; GFX8-NEXT:    s_add_i32 s6, s32, 0x100400
894ef67664dSMatt Arsenault; GFX8-NEXT:    buffer_store_dword v21, off, s[0:3], s6 ; 4-byte Folded Spill
895ef67664dSMatt Arsenault; GFX8-NEXT:    s_mov_b64 exec, s[4:5]
896ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s30, 0
897ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s31, 1
898ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s33, 2
899ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s34, 3
900ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s35, 4
901ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s36, 5
902ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s37, 6
903ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s38, 7
904ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s39, 8
905ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s40, 9
906ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s41, 10
907ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s42, 11
908ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s43, 12
909ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s44, 13
910ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s45, 14
911ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s46, 15
912ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s47, 16
913ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s48, 17
914ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s49, 18
915ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s50, 19
916ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s51, 20
917ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s52, 21
918ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s53, 22
919ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s54, 23
920ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s55, 24
921ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s56, 25
922ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s57, 26
923ef67664dSMatt Arsenault; GFX8-NEXT:    s_and_b64 s[4:5], 0, exec
924ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s58, 27
925ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMSTART
926ef67664dSMatt Arsenault; GFX8-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc
927ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMEND
92842bae9c5SPankaj Dwivedi; GFX8-NEXT:    v_mad_u32_u24 v22, 16, 64, s32
929adac04ffSPankaj Dwivedi; GFX8-NEXT:    v_lshrrev_b32_e32 v22, 6, v22
930ef67664dSMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v21, s59, 28
931ef67664dSMatt Arsenault; GFX8-NEXT:    v_readfirstlane_b32 s59, v22
932ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMSTART
933ef67664dSMatt Arsenault; GFX8-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc
934ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMEND
935ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s59, v21, 28
936ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s58, v21, 27
937ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s57, v21, 26
938ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s56, v21, 25
939ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s55, v21, 24
940ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s54, v21, 23
941ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s53, v21, 22
942ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s52, v21, 21
943ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s51, v21, 20
944ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s50, v21, 19
945ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s49, v21, 18
946ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s48, v21, 17
947ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s47, v21, 16
948ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s46, v21, 15
949ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s45, v21, 14
950ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s44, v21, 13
951ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s43, v21, 12
952ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s42, v21, 11
953ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s41, v21, 10
954ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s40, v21, 9
955ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s39, v21, 8
956ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s38, v21, 7
957ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s37, v21, 6
958ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s36, v21, 5
959ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s35, v21, 4
960ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s34, v21, 3
961ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s33, v21, 2
962ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s31, v21, 1
963ef67664dSMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s30, v21, 0
964ef67664dSMatt Arsenault; GFX8-NEXT:    s_xor_saveexec_b64 s[4:5], -1
965ef67664dSMatt Arsenault; GFX8-NEXT:    s_add_i32 s6, s32, 0x100400
966ef67664dSMatt Arsenault; GFX8-NEXT:    buffer_load_dword v21, off, s[0:3], s6 ; 4-byte Folded Reload
967ef67664dSMatt Arsenault; GFX8-NEXT:    s_mov_b64 exec, s[4:5]
968ef67664dSMatt Arsenault; GFX8-NEXT:    s_waitcnt vmcnt(0)
969ef67664dSMatt Arsenault; GFX8-NEXT:    s_setpc_b64 s[30:31]
970ef67664dSMatt Arsenault;
971ef67664dSMatt Arsenault; GFX900-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset:
972ef67664dSMatt Arsenault; GFX900:       ; %bb.0:
973ef67664dSMatt Arsenault; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
974ef67664dSMatt Arsenault; GFX900-NEXT:    s_xor_saveexec_b64 s[4:5], -1
975ef67664dSMatt Arsenault; GFX900-NEXT:    s_add_i32 s6, s32, 0x100400
976ef67664dSMatt Arsenault; GFX900-NEXT:    buffer_store_dword v21, off, s[0:3], s6 ; 4-byte Folded Spill
977ef67664dSMatt Arsenault; GFX900-NEXT:    s_mov_b64 exec, s[4:5]
978ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s30, 0
979ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s31, 1
980ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s33, 2
981ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s34, 3
982ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s35, 4
983ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s36, 5
984ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s37, 6
985ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s38, 7
986ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s39, 8
987ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s40, 9
988ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s41, 10
989ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s42, 11
990ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s43, 12
991ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s44, 13
992ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s45, 14
993ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s46, 15
994ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s47, 16
995ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s48, 17
996ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s49, 18
997ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s50, 19
998ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s51, 20
999ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s52, 21
1000ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s53, 22
1001ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s54, 23
1002ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s55, 24
1003ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s56, 25
1004ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s57, 26
1005ef67664dSMatt Arsenault; GFX900-NEXT:    s_and_b64 s[4:5], 0, exec
1006ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s58, 27
1007ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMSTART
1008ef67664dSMatt Arsenault; GFX900-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc
1009ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMEND
1010ef67664dSMatt Arsenault; GFX900-NEXT:    v_lshrrev_b32_e64 v22, 6, s32
1011ef67664dSMatt Arsenault; GFX900-NEXT:    v_add_u32_e32 v22, 16, v22
1012ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v21, s59, 28
1013ef67664dSMatt Arsenault; GFX900-NEXT:    v_readfirstlane_b32 s59, v22
1014ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMSTART
1015ef67664dSMatt Arsenault; GFX900-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc
1016ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMEND
1017ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s59, v21, 28
1018ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s58, v21, 27
1019ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s57, v21, 26
1020ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s56, v21, 25
1021ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s55, v21, 24
1022ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s54, v21, 23
1023ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s53, v21, 22
1024ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s52, v21, 21
1025ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s51, v21, 20
1026ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s50, v21, 19
1027ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s49, v21, 18
1028ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s48, v21, 17
1029ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s47, v21, 16
1030ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s46, v21, 15
1031ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s45, v21, 14
1032ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s44, v21, 13
1033ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s43, v21, 12
1034ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s42, v21, 11
1035ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s41, v21, 10
1036ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s40, v21, 9
1037ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s39, v21, 8
1038ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s38, v21, 7
1039ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s37, v21, 6
1040ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s36, v21, 5
1041ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s35, v21, 4
1042ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s34, v21, 3
1043ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s33, v21, 2
1044ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s31, v21, 1
1045ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s30, v21, 0
1046ef67664dSMatt Arsenault; GFX900-NEXT:    s_xor_saveexec_b64 s[4:5], -1
1047ef67664dSMatt Arsenault; GFX900-NEXT:    s_add_i32 s6, s32, 0x100400
1048ef67664dSMatt Arsenault; GFX900-NEXT:    buffer_load_dword v21, off, s[0:3], s6 ; 4-byte Folded Reload
1049ef67664dSMatt Arsenault; GFX900-NEXT:    s_mov_b64 exec, s[4:5]
1050ef67664dSMatt Arsenault; GFX900-NEXT:    s_waitcnt vmcnt(0)
1051ef67664dSMatt Arsenault; GFX900-NEXT:    s_setpc_b64 s[30:31]
1052ef67664dSMatt Arsenault;
1053ef67664dSMatt Arsenault; GFX940-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset:
1054ef67664dSMatt Arsenault; GFX940:       ; %bb.0:
1055ef67664dSMatt Arsenault; GFX940-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1056ef67664dSMatt Arsenault; GFX940-NEXT:    s_xor_saveexec_b64 s[0:1], -1
1057ef67664dSMatt Arsenault; GFX940-NEXT:    s_add_i32 s2, s32, 0x4010
1058ef67664dSMatt Arsenault; GFX940-NEXT:    scratch_store_dword off, v21, s2 sc0 sc1 ; 4-byte Folded Spill
1059ef67664dSMatt Arsenault; GFX940-NEXT:    s_mov_b64 exec, s[0:1]
1060ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s30, 0
1061ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s31, 1
1062ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s33, 2
1063ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s34, 3
1064ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s35, 4
1065ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s36, 5
1066ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s37, 6
1067ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s38, 7
1068ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s39, 8
1069ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s40, 9
1070ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s41, 10
1071ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s42, 11
1072ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s43, 12
1073ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s44, 13
1074ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s45, 14
1075ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s46, 15
1076ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s47, 16
1077ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s48, 17
1078ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s49, 18
1079ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s50, 19
1080ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s51, 20
1081ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s52, 21
1082ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s53, 22
1083ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s54, 23
1084ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s55, 24
1085ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s56, 25
1086ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s57, 26
1087ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s58, 27
1088ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s59, 28
1089ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s60, 29
1090ef67664dSMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v21, s61, 30
1091ef67664dSMatt Arsenault; GFX940-NEXT:    s_and_b64 s[60:61], 0, exec
1092ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMSTART
1093ef67664dSMatt Arsenault; GFX940-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc
1094ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMEND
1095ef67664dSMatt Arsenault; GFX940-NEXT:    s_addc_u32 s60, s32, 16
1096ef67664dSMatt Arsenault; GFX940-NEXT:    s_bitcmp1_b32 s60, 0
1097ef67664dSMatt Arsenault; GFX940-NEXT:    s_bitset0_b32 s60, 0
1098ef67664dSMatt Arsenault; GFX940-NEXT:    s_mov_b32 s59, s60
1099ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMSTART
1100ef67664dSMatt Arsenault; GFX940-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc
1101ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMEND
1102ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s61, v21, 30
1103ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s60, v21, 29
1104ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s59, v21, 28
1105ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s58, v21, 27
1106ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s57, v21, 26
1107ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s56, v21, 25
1108ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s55, v21, 24
1109ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s54, v21, 23
1110ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s53, v21, 22
1111ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s52, v21, 21
1112ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s51, v21, 20
1113ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s50, v21, 19
1114ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s49, v21, 18
1115ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s48, v21, 17
1116ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s47, v21, 16
1117ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s46, v21, 15
1118ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s45, v21, 14
1119ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s44, v21, 13
1120ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s43, v21, 12
1121ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s42, v21, 11
1122ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s41, v21, 10
1123ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s40, v21, 9
1124ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s39, v21, 8
1125ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s38, v21, 7
1126ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s37, v21, 6
1127ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s36, v21, 5
1128ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s35, v21, 4
1129ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s34, v21, 3
1130ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s33, v21, 2
1131ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s31, v21, 1
1132ef67664dSMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s30, v21, 0
1133ef67664dSMatt Arsenault; GFX940-NEXT:    s_xor_saveexec_b64 s[0:1], -1
1134ef67664dSMatt Arsenault; GFX940-NEXT:    s_add_i32 s2, s32, 0x4010
1135ef67664dSMatt Arsenault; GFX940-NEXT:    scratch_load_dword v21, off, s2 ; 4-byte Folded Reload
1136ef67664dSMatt Arsenault; GFX940-NEXT:    s_mov_b64 exec, s[0:1]
1137ef67664dSMatt Arsenault; GFX940-NEXT:    s_waitcnt vmcnt(0)
1138ef67664dSMatt Arsenault; GFX940-NEXT:    s_setpc_b64 s[30:31]
1139ef67664dSMatt Arsenault;
1140ef67664dSMatt Arsenault; GFX10_1-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset:
1141ef67664dSMatt Arsenault; GFX10_1:       ; %bb.0:
1142ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1143ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_xor_saveexec_b32 s4, -1
1144ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_add_i32 s5, s32, 0x80200
1145ef67664dSMatt Arsenault; GFX10_1-NEXT:    buffer_store_dword v21, off, s[0:3], s5 ; 4-byte Folded Spill
1146ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt_depctr 0xffe3
1147ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_mov_b32 exec_lo, s4
1148ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s30, 0
1149ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s31, 1
1150ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s33, 2
1151ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s34, 3
1152ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s35, 4
1153ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s36, 5
1154ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s37, 6
1155ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s38, 7
1156ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s39, 8
1157ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s40, 9
1158ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s41, 10
1159ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s42, 11
1160ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s43, 12
1161ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s44, 13
1162ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s45, 14
1163ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s46, 15
1164ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s47, 16
1165ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s48, 17
1166ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s49, 18
1167ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s50, 19
1168ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s51, 20
1169ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s52, 21
1170ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s53, 22
1171ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s54, 23
1172ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s55, 24
1173ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s56, 25
1174ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s57, 26
1175ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s58, 27
1176ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMSTART
1177ef67664dSMatt Arsenault; GFX10_1-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc
1178ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMEND
1179ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_lshrrev_b32_e64 v22, 5, s32
1180ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v21, s59, 28
1181ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_and_b32 s59, 0, exec_lo
1182ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_add_nc_u32_e32 v22, 16, v22
1183ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readfirstlane_b32 s59, v22
1184ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMSTART
1185ef67664dSMatt Arsenault; GFX10_1-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc
1186ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMEND
1187ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s59, v21, 28
1188ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s58, v21, 27
1189ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s57, v21, 26
1190ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s56, v21, 25
1191ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s55, v21, 24
1192ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s54, v21, 23
1193ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s53, v21, 22
1194ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s52, v21, 21
1195ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s51, v21, 20
1196ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s50, v21, 19
1197ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s49, v21, 18
1198ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s48, v21, 17
1199ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s47, v21, 16
1200ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s46, v21, 15
1201ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s45, v21, 14
1202ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s44, v21, 13
1203ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s43, v21, 12
1204ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s42, v21, 11
1205ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s41, v21, 10
1206ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s40, v21, 9
1207ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s39, v21, 8
1208ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s38, v21, 7
1209ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s37, v21, 6
1210ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s36, v21, 5
1211ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s35, v21, 4
1212ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s34, v21, 3
1213ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s33, v21, 2
1214ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s31, v21, 1
1215ef67664dSMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s30, v21, 0
1216ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_xor_saveexec_b32 s4, -1
1217ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_add_i32 s5, s32, 0x80200
1218ef67664dSMatt Arsenault; GFX10_1-NEXT:    buffer_load_dword v21, off, s[0:3], s5 ; 4-byte Folded Reload
1219ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt_depctr 0xffe3
1220ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_mov_b32 exec_lo, s4
1221ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt vmcnt(0)
1222ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_setpc_b64 s[30:31]
1223ef67664dSMatt Arsenault;
1224ef67664dSMatt Arsenault; GFX10_3-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset:
1225ef67664dSMatt Arsenault; GFX10_3:       ; %bb.0:
1226ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1227ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_xor_saveexec_b32 s4, -1
1228ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_add_i32 s5, s32, 0x80200
1229ef67664dSMatt Arsenault; GFX10_3-NEXT:    buffer_store_dword v21, off, s[0:3], s5 ; 4-byte Folded Spill
1230ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_mov_b32 exec_lo, s4
1231ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s30, 0
1232ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s31, 1
1233ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s33, 2
1234ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s34, 3
1235ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s35, 4
1236ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s36, 5
1237ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s37, 6
1238ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s38, 7
1239ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s39, 8
1240ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s40, 9
1241ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s41, 10
1242ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s42, 11
1243ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s43, 12
1244ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s44, 13
1245ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s45, 14
1246ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s46, 15
1247ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s47, 16
1248ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s48, 17
1249ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s49, 18
1250ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s50, 19
1251ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s51, 20
1252ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s52, 21
1253ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s53, 22
1254ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s54, 23
1255ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s55, 24
1256ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s56, 25
1257ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s57, 26
1258ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s58, 27
1259ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMSTART
1260ef67664dSMatt Arsenault; GFX10_3-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc
1261ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMEND
1262ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_lshrrev_b32_e64 v22, 5, s32
1263ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v21, s59, 28
1264ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_and_b32 s59, 0, exec_lo
1265ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_add_nc_u32_e32 v22, 16, v22
1266ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readfirstlane_b32 s59, v22
1267ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMSTART
1268ef67664dSMatt Arsenault; GFX10_3-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc
1269ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMEND
1270ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s59, v21, 28
1271ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s58, v21, 27
1272ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s57, v21, 26
1273ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s56, v21, 25
1274ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s55, v21, 24
1275ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s54, v21, 23
1276ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s53, v21, 22
1277ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s52, v21, 21
1278ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s51, v21, 20
1279ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s50, v21, 19
1280ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s49, v21, 18
1281ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s48, v21, 17
1282ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s47, v21, 16
1283ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s46, v21, 15
1284ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s45, v21, 14
1285ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s44, v21, 13
1286ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s43, v21, 12
1287ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s42, v21, 11
1288ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s41, v21, 10
1289ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s40, v21, 9
1290ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s39, v21, 8
1291ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s38, v21, 7
1292ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s37, v21, 6
1293ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s36, v21, 5
1294ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s35, v21, 4
1295ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s34, v21, 3
1296ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s33, v21, 2
1297ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s31, v21, 1
1298ef67664dSMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s30, v21, 0
1299ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_xor_saveexec_b32 s4, -1
1300ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_add_i32 s5, s32, 0x80200
1301ef67664dSMatt Arsenault; GFX10_3-NEXT:    buffer_load_dword v21, off, s[0:3], s5 ; 4-byte Folded Reload
1302ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_mov_b32 exec_lo, s4
1303ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_waitcnt vmcnt(0)
1304ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_setpc_b64 s[30:31]
1305ef67664dSMatt Arsenault;
1306ef67664dSMatt Arsenault; GFX11-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset:
1307ef67664dSMatt Arsenault; GFX11:       ; %bb.0:
1308ef67664dSMatt Arsenault; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1309ef67664dSMatt Arsenault; GFX11-NEXT:    s_xor_saveexec_b32 s0, -1
1310ef67664dSMatt Arsenault; GFX11-NEXT:    s_add_i32 s1, s32, 0x4010
1311ef67664dSMatt Arsenault; GFX11-NEXT:    scratch_store_b32 off, v21, s1 ; 4-byte Folded Spill
1312ef67664dSMatt Arsenault; GFX11-NEXT:    s_mov_b32 exec_lo, s0
1313ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s30, 0
1314ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s31, 1
1315ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s33, 2
1316ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s34, 3
1317ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s35, 4
1318ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s36, 5
1319ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s37, 6
1320ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s38, 7
1321ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s39, 8
1322ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s40, 9
1323ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s41, 10
1324ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s42, 11
1325ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s43, 12
1326ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s44, 13
1327ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s45, 14
1328ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s46, 15
1329ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s47, 16
1330ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s48, 17
1331ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s49, 18
1332ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s50, 19
1333ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s51, 20
1334ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s52, 21
1335ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s53, 22
1336ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s54, 23
1337ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s55, 24
1338ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s56, 25
1339ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s57, 26
1340ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s58, 27
1341ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMSTART
1342ef67664dSMatt Arsenault; GFX11-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc
1343ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMEND
1344ef67664dSMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v21, s59, 28
1345ef67664dSMatt Arsenault; GFX11-NEXT:    s_and_b32 s59, 0, exec_lo
1346ef67664dSMatt Arsenault; GFX11-NEXT:    s_addc_u32 s32, s32, 16
1347ef67664dSMatt Arsenault; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)
1348ef67664dSMatt Arsenault; GFX11-NEXT:    s_bitcmp1_b32 s32, 0
1349ef67664dSMatt Arsenault; GFX11-NEXT:    s_bitset0_b32 s32, 0
1350ef67664dSMatt Arsenault; GFX11-NEXT:    s_mov_b32 s59, s32
1351ef67664dSMatt Arsenault; GFX11-NEXT:    s_addc_u32 s32, s32, -16
1352ef67664dSMatt Arsenault; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)
1353ef67664dSMatt Arsenault; GFX11-NEXT:    s_bitcmp1_b32 s32, 0
1354ef67664dSMatt Arsenault; GFX11-NEXT:    s_bitset0_b32 s32, 0
1355ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMSTART
1356ef67664dSMatt Arsenault; GFX11-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc
1357ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMEND
1358ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s59, v21, 28
1359ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s58, v21, 27
1360ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s57, v21, 26
1361ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s56, v21, 25
1362ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s55, v21, 24
1363ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s54, v21, 23
1364ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s53, v21, 22
1365ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s52, v21, 21
1366ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s51, v21, 20
1367ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s50, v21, 19
1368ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s49, v21, 18
1369ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s48, v21, 17
1370ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s47, v21, 16
1371ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s46, v21, 15
1372ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s45, v21, 14
1373ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s44, v21, 13
1374ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s43, v21, 12
1375ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s42, v21, 11
1376ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s41, v21, 10
1377ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s40, v21, 9
1378ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s39, v21, 8
1379ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s38, v21, 7
1380ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s37, v21, 6
1381ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s36, v21, 5
1382ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s35, v21, 4
1383ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s34, v21, 3
1384ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s33, v21, 2
1385ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s31, v21, 1
1386ef67664dSMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s30, v21, 0
1387ef67664dSMatt Arsenault; GFX11-NEXT:    s_xor_saveexec_b32 s0, -1
1388ef67664dSMatt Arsenault; GFX11-NEXT:    s_add_i32 s1, s32, 0x4010
1389ef67664dSMatt Arsenault; GFX11-NEXT:    scratch_load_b32 v21, off, s1 ; 4-byte Folded Reload
1390ef67664dSMatt Arsenault; GFX11-NEXT:    s_mov_b32 exec_lo, s0
1391ef67664dSMatt Arsenault; GFX11-NEXT:    s_waitcnt vmcnt(0)
1392ef67664dSMatt Arsenault; GFX11-NEXT:    s_setpc_b64 s[30:31]
1393ef67664dSMatt Arsenault;
1394ef67664dSMatt Arsenault; GFX12-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset:
1395ef67664dSMatt Arsenault; GFX12:       ; %bb.0:
1396ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
1397ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_expcnt 0x0
1398ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_samplecnt 0x0
1399ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_bvhcnt 0x0
1400ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_kmcnt 0x0
1401ef67664dSMatt Arsenault; GFX12-NEXT:    s_xor_saveexec_b32 s0, -1
1402ef67664dSMatt Arsenault; GFX12-NEXT:    scratch_store_b32 off, v21, s32 offset:16384 ; 4-byte Folded Spill
140386627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
1404ef67664dSMatt Arsenault; GFX12-NEXT:    s_mov_b32 exec_lo, s0
1405ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s30, 0
1406ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s31, 1
1407ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s33, 2
1408ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s34, 3
1409ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s35, 4
1410ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s36, 5
1411ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s37, 6
1412ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s38, 7
1413ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s39, 8
1414ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s40, 9
1415ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s41, 10
1416ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s42, 11
1417ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s43, 12
1418ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s44, 13
1419ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s45, 14
1420ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s46, 15
1421ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s47, 16
1422ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s48, 17
1423ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s49, 18
1424ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s50, 19
1425ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s51, 20
1426ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s52, 21
1427ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s53, 22
1428ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s54, 23
1429ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s55, 24
1430ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s56, 25
1431ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s57, 26
1432ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s58, 27
1433ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMSTART
1434ef67664dSMatt Arsenault; GFX12-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc
1435ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMEND
1436ef67664dSMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v21, s59, 28
1437ef67664dSMatt Arsenault; GFX12-NEXT:    s_and_b32 s59, 0, exec_lo
1438ef67664dSMatt Arsenault; GFX12-NEXT:    s_mov_b32 s59, s32
1439ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMSTART
1440ef67664dSMatt Arsenault; GFX12-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc
1441ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMEND
1442ef67664dSMatt Arsenault; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)
1443ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s59, v21, 28
1444ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s58, v21, 27
1445ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s57, v21, 26
1446ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s56, v21, 25
1447ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s55, v21, 24
1448ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s54, v21, 23
1449ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s53, v21, 22
1450ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s52, v21, 21
1451ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s51, v21, 20
1452ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s50, v21, 19
1453ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s49, v21, 18
1454ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s48, v21, 17
1455ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s47, v21, 16
1456ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s46, v21, 15
1457ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s45, v21, 14
1458ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s44, v21, 13
1459ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s43, v21, 12
1460ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s42, v21, 11
1461ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s41, v21, 10
1462ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s40, v21, 9
1463ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s39, v21, 8
1464ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s38, v21, 7
1465ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s37, v21, 6
1466ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s36, v21, 5
1467ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s35, v21, 4
1468ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s34, v21, 3
1469ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s33, v21, 2
1470ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s31, v21, 1
1471ef67664dSMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s30, v21, 0
1472ef67664dSMatt Arsenault; GFX12-NEXT:    s_xor_saveexec_b32 s0, -1
1473ef67664dSMatt Arsenault; GFX12-NEXT:    scratch_load_b32 v21, off, s32 offset:16384 ; 4-byte Folded Reload
147486627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
1475ef67664dSMatt Arsenault; GFX12-NEXT:    s_mov_b32 exec_lo, s0
1476ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_loadcnt 0x0
147786627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
1478ef67664dSMatt Arsenault; GFX12-NEXT:    s_setpc_b64 s[30:31]
1479ef67664dSMatt Arsenault  %alloca0 = alloca [4096 x i32], align 16, addrspace(5)
1480ef67664dSMatt Arsenault
1481ef67664dSMatt Arsenault  ; Force no SGPRs to be available for the carry-out of the vector add.
1482ef67664dSMatt Arsenault  %asm = call %asm.output2 asm sideeffect
1483ef67664dSMatt Arsenault    "; def $0, $1, $2, $3, $4, $5, $6, $7, $8",
1484ef67664dSMatt Arsenault    "={s[0:15]},={s[16:31]},={s[32:47]},={s[48:55]},={s[56:57]},={s58},={v[0:15]},={v[16:20]},={vcc}"()
1485ef67664dSMatt Arsenault
1486ef67664dSMatt Arsenault  %s0 = extractvalue %asm.output2 %asm, 0
1487ef67664dSMatt Arsenault  %s1 = extractvalue %asm.output2 %asm, 1
1488ef67664dSMatt Arsenault  %s2 = extractvalue %asm.output2 %asm, 2
1489ef67664dSMatt Arsenault  %s3 = extractvalue %asm.output2 %asm, 3
1490ef67664dSMatt Arsenault  %s4 = extractvalue %asm.output2 %asm, 4
1491ef67664dSMatt Arsenault  %s5 = extractvalue %asm.output2 %asm, 5
1492ef67664dSMatt Arsenault
1493ef67664dSMatt Arsenault  %v0 = extractvalue %asm.output2 %asm, 6
1494ef67664dSMatt Arsenault  %v1 = extractvalue %asm.output2 %asm, 7
1495ef67664dSMatt Arsenault
1496ef67664dSMatt Arsenault  %vcc = extractvalue %asm.output2 %asm, 8
1497ef67664dSMatt Arsenault
1498ef67664dSMatt Arsenault  ; scc is unavailable since it is live in
1499ef67664dSMatt Arsenault  call void asm sideeffect "; use $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10",
1500ef67664dSMatt Arsenault                           "{s[0:15]},{s[16:31]},{s[32:47]},{s[48:55]},{s[56:57]},{s58},{v[0:15]},{v[16:20]},{vcc},{s59},{scc}"(
1501ef67664dSMatt Arsenault    <16 x i32> %s0,
1502ef67664dSMatt Arsenault    <16 x i32> %s1,
1503ef67664dSMatt Arsenault    <16 x i32> %s2,
1504ef67664dSMatt Arsenault    <8 x i32> %s3,
1505ef67664dSMatt Arsenault    <2 x i32> %s4,
1506ef67664dSMatt Arsenault    i32 %s5,
1507ef67664dSMatt Arsenault    <16 x i32> %v0,
1508ef67664dSMatt Arsenault    <5 x i32> %v1,
1509ef67664dSMatt Arsenault    i64 %vcc,
1510ef67664dSMatt Arsenault    ptr addrspace(5) %alloca0,
1511ef67664dSMatt Arsenault    i32 0) ; use of scc
1512ef67664dSMatt Arsenault
1513ef67664dSMatt Arsenault  ret void
1514ef67664dSMatt Arsenault}
1515ef67664dSMatt Arsenault
1516ef67664dSMatt Arsenault; This case isn't using SGPRs yet.
1517ef67664dSMatt Arsenault; FIXME: Should also use one more VGPR, but currently fails to allocate on gfx8.
1518ef67664dSMatt Arsenaultdefine void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset() #0 {
1519ef67664dSMatt Arsenault; GFX7-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset:
1520ef67664dSMatt Arsenault; GFX7:       ; %bb.0:
1521ef67664dSMatt Arsenault; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1522ef67664dSMatt Arsenault; GFX7-NEXT:    s_xor_saveexec_b64 s[4:5], -1
15231bf385f1SMatt Arsenault; GFX7-NEXT:    s_add_i32 s6, s32, 0x201000
1524ef67664dSMatt Arsenault; GFX7-NEXT:    buffer_store_dword v23, off, s[0:3], s6 ; 4-byte Folded Spill
15251bf385f1SMatt Arsenault; GFX7-NEXT:    s_add_i32 s6, s32, 0x201100
1526ef67664dSMatt Arsenault; GFX7-NEXT:    buffer_store_dword v22, off, s[0:3], s6 ; 4-byte Folded Spill
1527ef67664dSMatt Arsenault; GFX7-NEXT:    s_mov_b64 exec, s[4:5]
1528ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s28, 28
1529ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s29, 29
1530ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s30, 0
1531ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s31, 1
1532ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s33, 2
1533ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s34, 3
1534ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s35, 4
1535ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s36, 5
1536ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s37, 6
1537ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s38, 7
1538ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s39, 8
1539ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s40, 9
1540ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s41, 10
1541ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s42, 11
1542ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s43, 12
1543ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s44, 13
1544ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s45, 14
1545ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s46, 15
1546ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s47, 16
1547ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s48, 17
1548ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s49, 18
1549ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s50, 19
1550ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s51, 20
1551ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s52, 21
1552ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s53, 22
1553ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s54, 23
1554ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s55, 24
15551bf385f1SMatt Arsenault; GFX7-NEXT:    s_lshr_b32 s5, s32, 6
1556ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s56, 25
15571bf385f1SMatt Arsenault; GFX7-NEXT:    v_lshr_b32_e64 v0, s32, 6
15581bf385f1SMatt Arsenault; GFX7-NEXT:    s_add_i32 s4, s5, 0x4240
15591bf385f1SMatt Arsenault; GFX7-NEXT:    ; implicit-def: $vgpr22 : SGPR spill to VGPR lane
1560ef67664dSMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s57, 26
15611bf385f1SMatt Arsenault; GFX7-NEXT:    v_add_i32_e32 v0, vcc, 64, v0
15621bf385f1SMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v22, s4, 0
15631bf385f1SMatt Arsenault; GFX7-NEXT:    s_and_b64 s[4:5], 0, exec
15641bf385f1SMatt Arsenault; GFX7-NEXT:    v_writelane_b32 v23, s59, 27
1565ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMSTART
1566ef67664dSMatt Arsenault; GFX7-NEXT:    ; use alloca0 v0
1567ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMEND
1568ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMSTART
1569ef67664dSMatt Arsenault; GFX7-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc
1570ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMEND
15711bf385f1SMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s59, v22, 0
1572ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMSTART
1573ef67664dSMatt Arsenault; GFX7-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc
1574ef67664dSMatt Arsenault; GFX7-NEXT:    ;;#ASMEND
1575ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s59, v23, 27
1576ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s57, v23, 26
1577ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s56, v23, 25
1578ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s55, v23, 24
1579ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s54, v23, 23
1580ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s53, v23, 22
1581ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s52, v23, 21
1582ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s51, v23, 20
1583ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s50, v23, 19
1584ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s49, v23, 18
1585ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s48, v23, 17
1586ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s47, v23, 16
1587ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s46, v23, 15
1588ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s45, v23, 14
1589ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s44, v23, 13
1590ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s43, v23, 12
1591ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s42, v23, 11
1592ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s41, v23, 10
1593ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s40, v23, 9
1594ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s39, v23, 8
1595ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s38, v23, 7
1596ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s37, v23, 6
1597ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s36, v23, 5
1598ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s35, v23, 4
1599ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s34, v23, 3
1600ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s33, v23, 2
1601ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s31, v23, 1
1602ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s30, v23, 0
1603ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s28, v23, 28
1604ef67664dSMatt Arsenault; GFX7-NEXT:    v_readlane_b32 s29, v23, 29
1605ef67664dSMatt Arsenault; GFX7-NEXT:    s_xor_saveexec_b64 s[4:5], -1
16061bf385f1SMatt Arsenault; GFX7-NEXT:    s_add_i32 s6, s32, 0x201000
1607ef67664dSMatt Arsenault; GFX7-NEXT:    buffer_load_dword v23, off, s[0:3], s6 ; 4-byte Folded Reload
16081bf385f1SMatt Arsenault; GFX7-NEXT:    s_add_i32 s6, s32, 0x201100
1609ef67664dSMatt Arsenault; GFX7-NEXT:    buffer_load_dword v22, off, s[0:3], s6 ; 4-byte Folded Reload
1610ef67664dSMatt Arsenault; GFX7-NEXT:    s_mov_b64 exec, s[4:5]
1611ef67664dSMatt Arsenault; GFX7-NEXT:    s_waitcnt vmcnt(0)
1612ef67664dSMatt Arsenault; GFX7-NEXT:    s_setpc_b64 s[30:31]
1613ef67664dSMatt Arsenault;
1614ef67664dSMatt Arsenault; GFX8-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset:
1615ef67664dSMatt Arsenault; GFX8:       ; %bb.0:
1616ef67664dSMatt Arsenault; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1617ef67664dSMatt Arsenault; GFX8-NEXT:    s_xor_saveexec_b64 s[4:5], -1
16181bf385f1SMatt Arsenault; GFX8-NEXT:    s_add_i32 s6, s32, 0x201000
1619ef67664dSMatt Arsenault; GFX8-NEXT:    buffer_store_dword v22, off, s[0:3], s6 ; 4-byte Folded Spill
1620ef67664dSMatt Arsenault; GFX8-NEXT:    s_mov_b64 exec, s[4:5]
16211bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s30, 0
16221bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s31, 1
16231bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s33, 2
16241bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s34, 3
16251bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s35, 4
16261bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s36, 5
16271bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s37, 6
16281bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s38, 7
16291bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s39, 8
16301bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s40, 9
16311bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s41, 10
16321bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s42, 11
16331bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s43, 12
16341bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s44, 13
16351bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s45, 14
16361bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s46, 15
16371bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s47, 16
16381bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s48, 17
16391bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s49, 18
16401bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s50, 19
16411bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s51, 20
16421bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s52, 21
16431bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s53, 22
16441bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s54, 23
16451bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s55, 24
16461bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s56, 25
16471bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s57, 26
16481bf385f1SMatt Arsenault; GFX8-NEXT:    s_lshr_b32 s4, s32, 6
16491bf385f1SMatt Arsenault; GFX8-NEXT:    v_writelane_b32 v22, s59, 27
1650ef67664dSMatt Arsenault; GFX8-NEXT:    v_lshrrev_b32_e64 v0, 6, s32
16511bf385f1SMatt Arsenault; GFX8-NEXT:    s_add_i32 s59, s4, 0x4240
1652ef67664dSMatt Arsenault; GFX8-NEXT:    v_add_u32_e32 v0, vcc, 64, v0
16531bf385f1SMatt Arsenault; GFX8-NEXT:    s_and_b64 s[4:5], 0, exec
1654ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMSTART
1655ef67664dSMatt Arsenault; GFX8-NEXT:    ; use alloca0 v0
1656ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMEND
1657ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMSTART
1658ef67664dSMatt Arsenault; GFX8-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc
1659ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMEND
1660ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMSTART
1661ef67664dSMatt Arsenault; GFX8-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc
1662ef67664dSMatt Arsenault; GFX8-NEXT:    ;;#ASMEND
16631bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s59, v22, 27
16641bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s57, v22, 26
16651bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s56, v22, 25
16661bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s55, v22, 24
16671bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s54, v22, 23
16681bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s53, v22, 22
16691bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s52, v22, 21
16701bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s51, v22, 20
16711bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s50, v22, 19
16721bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s49, v22, 18
16731bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s48, v22, 17
16741bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s47, v22, 16
16751bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s46, v22, 15
16761bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s45, v22, 14
16771bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s44, v22, 13
16781bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s43, v22, 12
16791bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s42, v22, 11
16801bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s41, v22, 10
16811bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s40, v22, 9
16821bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s39, v22, 8
16831bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s38, v22, 7
16841bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s37, v22, 6
16851bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s36, v22, 5
16861bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s35, v22, 4
16871bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s34, v22, 3
16881bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s33, v22, 2
16891bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s31, v22, 1
16901bf385f1SMatt Arsenault; GFX8-NEXT:    v_readlane_b32 s30, v22, 0
1691ef67664dSMatt Arsenault; GFX8-NEXT:    s_xor_saveexec_b64 s[4:5], -1
16921bf385f1SMatt Arsenault; GFX8-NEXT:    s_add_i32 s6, s32, 0x201000
1693ef67664dSMatt Arsenault; GFX8-NEXT:    buffer_load_dword v22, off, s[0:3], s6 ; 4-byte Folded Reload
1694ef67664dSMatt Arsenault; GFX8-NEXT:    s_mov_b64 exec, s[4:5]
1695ef67664dSMatt Arsenault; GFX8-NEXT:    s_waitcnt vmcnt(0)
1696ef67664dSMatt Arsenault; GFX8-NEXT:    s_setpc_b64 s[30:31]
1697ef67664dSMatt Arsenault;
1698ef67664dSMatt Arsenault; GFX900-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset:
1699ef67664dSMatt Arsenault; GFX900:       ; %bb.0:
1700ef67664dSMatt Arsenault; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1701ef67664dSMatt Arsenault; GFX900-NEXT:    s_xor_saveexec_b64 s[4:5], -1
1702ef67664dSMatt Arsenault; GFX900-NEXT:    s_add_i32 s6, s32, 0x201000
1703ef67664dSMatt Arsenault; GFX900-NEXT:    buffer_store_dword v22, off, s[0:3], s6 ; 4-byte Folded Spill
1704ef67664dSMatt Arsenault; GFX900-NEXT:    s_mov_b64 exec, s[4:5]
1705ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s30, 0
1706ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s31, 1
1707ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s33, 2
1708ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s34, 3
1709ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s35, 4
1710ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s36, 5
1711ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s37, 6
1712ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s38, 7
1713ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s39, 8
1714ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s40, 9
1715ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s41, 10
1716ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s42, 11
1717ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s43, 12
1718ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s44, 13
1719ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s45, 14
1720ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s46, 15
1721ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s47, 16
1722ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s48, 17
1723ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s49, 18
1724ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s50, 19
1725ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s51, 20
1726ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s52, 21
1727ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s53, 22
1728ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s54, 23
1729ef67664dSMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s55, 24
17301bf385f1SMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s56, 25
17311bf385f1SMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s57, 26
17321bf385f1SMatt Arsenault; GFX900-NEXT:    s_lshr_b32 s4, s32, 6
17331bf385f1SMatt Arsenault; GFX900-NEXT:    v_writelane_b32 v22, s59, 27
17341bf385f1SMatt Arsenault; GFX900-NEXT:    v_lshrrev_b32_e64 v0, 6, s32
17351bf385f1SMatt Arsenault; GFX900-NEXT:    s_add_i32 s59, s4, 0x4240
17361bf385f1SMatt Arsenault; GFX900-NEXT:    v_add_u32_e32 v0, 64, v0
17371bf385f1SMatt Arsenault; GFX900-NEXT:    s_and_b64 s[4:5], 0, exec
1738ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMSTART
1739ef67664dSMatt Arsenault; GFX900-NEXT:    ; use alloca0 v0
1740ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMEND
1741ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMSTART
1742ef67664dSMatt Arsenault; GFX900-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc
1743ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMEND
1744ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMSTART
1745ef67664dSMatt Arsenault; GFX900-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc
1746ef67664dSMatt Arsenault; GFX900-NEXT:    ;;#ASMEND
1747ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s59, v22, 27
1748ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s57, v22, 26
1749ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s56, v22, 25
1750ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s55, v22, 24
1751ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s54, v22, 23
1752ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s53, v22, 22
1753ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s52, v22, 21
1754ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s51, v22, 20
1755ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s50, v22, 19
1756ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s49, v22, 18
1757ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s48, v22, 17
1758ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s47, v22, 16
1759ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s46, v22, 15
1760ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s45, v22, 14
1761ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s44, v22, 13
1762ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s43, v22, 12
1763ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s42, v22, 11
1764ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s41, v22, 10
1765ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s40, v22, 9
1766ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s39, v22, 8
1767ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s38, v22, 7
1768ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s37, v22, 6
1769ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s36, v22, 5
1770ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s35, v22, 4
1771ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s34, v22, 3
1772ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s33, v22, 2
1773ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s31, v22, 1
1774ef67664dSMatt Arsenault; GFX900-NEXT:    v_readlane_b32 s30, v22, 0
1775ef67664dSMatt Arsenault; GFX900-NEXT:    s_xor_saveexec_b64 s[4:5], -1
1776ef67664dSMatt Arsenault; GFX900-NEXT:    s_add_i32 s6, s32, 0x201000
1777ef67664dSMatt Arsenault; GFX900-NEXT:    buffer_load_dword v22, off, s[0:3], s6 ; 4-byte Folded Reload
1778ef67664dSMatt Arsenault; GFX900-NEXT:    s_mov_b64 exec, s[4:5]
1779ef67664dSMatt Arsenault; GFX900-NEXT:    s_waitcnt vmcnt(0)
1780ef67664dSMatt Arsenault; GFX900-NEXT:    s_setpc_b64 s[30:31]
1781ef67664dSMatt Arsenault;
1782ef67664dSMatt Arsenault; GFX940-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset:
1783ef67664dSMatt Arsenault; GFX940:       ; %bb.0:
1784ef67664dSMatt Arsenault; GFX940-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1785ef67664dSMatt Arsenault; GFX940-NEXT:    s_xor_saveexec_b64 s[0:1], -1
1786ef67664dSMatt Arsenault; GFX940-NEXT:    s_add_i32 s2, s32, 0x8040
17871bf385f1SMatt Arsenault; GFX940-NEXT:    scratch_store_dword off, v22, s2 sc0 sc1 ; 4-byte Folded Spill
1788ef67664dSMatt Arsenault; GFX940-NEXT:    s_mov_b64 exec, s[0:1]
17891bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s30, 0
17901bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s31, 1
17911bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s33, 2
17921bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s34, 3
17931bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s35, 4
17941bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s36, 5
17951bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s37, 6
17961bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s38, 7
17971bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s39, 8
17981bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s40, 9
17991bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s41, 10
18001bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s42, 11
18011bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s43, 12
18021bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s44, 13
18031bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s45, 14
18041bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s46, 15
18051bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s47, 16
18061bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s48, 17
18071bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s49, 18
18081bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s50, 19
18091bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s51, 20
18101bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s52, 21
18111bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s53, 22
18121bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s54, 23
18131bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s55, 24
18141bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s56, 25
18151bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s57, 26
1816ef67664dSMatt Arsenault; GFX940-NEXT:    s_add_i32 s0, s32, 64
18171bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s59, 27
1818ef67664dSMatt Arsenault; GFX940-NEXT:    v_mov_b32_e32 v0, s0
18191bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s60, 28
1820ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMSTART
1821ef67664dSMatt Arsenault; GFX940-NEXT:    ; use alloca0 v0
1822ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMEND
1823ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMSTART
1824ef67664dSMatt Arsenault; GFX940-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc
1825ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMEND
18261bf385f1SMatt Arsenault; GFX940-NEXT:    s_add_i32 s59, s32, 0x4240
18271bf385f1SMatt Arsenault; GFX940-NEXT:    v_writelane_b32 v22, s61, 29
1828ef67664dSMatt Arsenault; GFX940-NEXT:    s_and_b64 s[60:61], 0, exec
1829ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMSTART
1830ef67664dSMatt Arsenault; GFX940-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc
1831ef67664dSMatt Arsenault; GFX940-NEXT:    ;;#ASMEND
18321bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s61, v22, 29
18331bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s60, v22, 28
18341bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s59, v22, 27
18351bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s57, v22, 26
18361bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s56, v22, 25
18371bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s55, v22, 24
18381bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s54, v22, 23
18391bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s53, v22, 22
18401bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s52, v22, 21
18411bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s51, v22, 20
18421bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s50, v22, 19
18431bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s49, v22, 18
18441bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s48, v22, 17
18451bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s47, v22, 16
18461bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s46, v22, 15
18471bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s45, v22, 14
18481bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s44, v22, 13
18491bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s43, v22, 12
18501bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s42, v22, 11
18511bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s41, v22, 10
18521bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s40, v22, 9
18531bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s39, v22, 8
18541bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s38, v22, 7
18551bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s37, v22, 6
18561bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s36, v22, 5
18571bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s35, v22, 4
18581bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s34, v22, 3
18591bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s33, v22, 2
18601bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s31, v22, 1
18611bf385f1SMatt Arsenault; GFX940-NEXT:    v_readlane_b32 s30, v22, 0
1862ef67664dSMatt Arsenault; GFX940-NEXT:    s_xor_saveexec_b64 s[0:1], -1
1863ef67664dSMatt Arsenault; GFX940-NEXT:    s_add_i32 s2, s32, 0x8040
18641bf385f1SMatt Arsenault; GFX940-NEXT:    scratch_load_dword v22, off, s2 ; 4-byte Folded Reload
1865ef67664dSMatt Arsenault; GFX940-NEXT:    s_mov_b64 exec, s[0:1]
1866ef67664dSMatt Arsenault; GFX940-NEXT:    s_waitcnt vmcnt(0)
1867ef67664dSMatt Arsenault; GFX940-NEXT:    s_setpc_b64 s[30:31]
1868ef67664dSMatt Arsenault;
1869ef67664dSMatt Arsenault; GFX10_1-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset:
1870ef67664dSMatt Arsenault; GFX10_1:       ; %bb.0:
1871ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1872ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_xor_saveexec_b32 s4, -1
1873ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_add_i32 s5, s32, 0x100800
18741bf385f1SMatt Arsenault; GFX10_1-NEXT:    buffer_store_dword v22, off, s[0:3], s5 ; 4-byte Folded Spill
1875ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt_depctr 0xffe3
1876ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_mov_b32 exec_lo, s4
18771bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s30, 0
1878ef91cd3fSMatt Arsenault; GFX10_1-NEXT:    v_lshrrev_b32_e64 v0, 5, s32
18791bf385f1SMatt Arsenault; GFX10_1-NEXT:    s_lshr_b32 s4, s32, 5
18801bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s31, 1
1881ef91cd3fSMatt Arsenault; GFX10_1-NEXT:    v_add_nc_u32_e32 v0, 64, v0
1882ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMSTART
1883ef91cd3fSMatt Arsenault; GFX10_1-NEXT:    ; use alloca0 v0
1884ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMEND
18851bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s33, 2
18861bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s34, 3
18871bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s35, 4
18881bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s36, 5
18891bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s37, 6
18901bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s38, 7
18911bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s39, 8
18921bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s40, 9
18931bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s41, 10
18941bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s42, 11
18951bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s43, 12
18961bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s44, 13
18971bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s45, 14
18981bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s46, 15
18991bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s47, 16
19001bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s48, 17
19011bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s49, 18
19021bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s50, 19
19031bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s51, 20
19041bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s52, 21
19051bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s53, 22
19061bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s54, 23
19071bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s55, 24
19081bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s56, 25
19091bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s57, 26
19101bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_writelane_b32 v22, s59, 27
19111bf385f1SMatt Arsenault; GFX10_1-NEXT:    s_add_i32 s59, s4, 0x4240
19121bf385f1SMatt Arsenault; GFX10_1-NEXT:    s_and_b32 s4, 0, exec_lo
1913ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMSTART
1914ef67664dSMatt Arsenault; GFX10_1-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc
1915ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMEND
1916ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMSTART
1917ef67664dSMatt Arsenault; GFX10_1-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc
1918ef67664dSMatt Arsenault; GFX10_1-NEXT:    ;;#ASMEND
19191bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s59, v22, 27
19201bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s57, v22, 26
19211bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s56, v22, 25
19221bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s55, v22, 24
19231bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s54, v22, 23
19241bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s53, v22, 22
19251bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s52, v22, 21
19261bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s51, v22, 20
19271bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s50, v22, 19
19281bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s49, v22, 18
19291bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s48, v22, 17
19301bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s47, v22, 16
19311bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s46, v22, 15
19321bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s45, v22, 14
19331bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s44, v22, 13
19341bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s43, v22, 12
19351bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s42, v22, 11
19361bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s41, v22, 10
19371bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s40, v22, 9
19381bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s39, v22, 8
19391bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s38, v22, 7
19401bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s37, v22, 6
19411bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s36, v22, 5
19421bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s35, v22, 4
19431bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s34, v22, 3
19441bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s33, v22, 2
19451bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s31, v22, 1
19461bf385f1SMatt Arsenault; GFX10_1-NEXT:    v_readlane_b32 s30, v22, 0
1947ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_xor_saveexec_b32 s4, -1
1948ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_add_i32 s5, s32, 0x100800
19491bf385f1SMatt Arsenault; GFX10_1-NEXT:    buffer_load_dword v22, off, s[0:3], s5 ; 4-byte Folded Reload
1950ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt_depctr 0xffe3
1951ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_mov_b32 exec_lo, s4
1952ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_waitcnt vmcnt(0)
1953ef67664dSMatt Arsenault; GFX10_1-NEXT:    s_setpc_b64 s[30:31]
1954ef67664dSMatt Arsenault;
1955ef67664dSMatt Arsenault; GFX10_3-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset:
1956ef67664dSMatt Arsenault; GFX10_3:       ; %bb.0:
1957ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1958ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_xor_saveexec_b32 s4, -1
1959ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_add_i32 s5, s32, 0x100800
19601bf385f1SMatt Arsenault; GFX10_3-NEXT:    buffer_store_dword v22, off, s[0:3], s5 ; 4-byte Folded Spill
1961ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_mov_b32 exec_lo, s4
19621bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s30, 0
1963ef91cd3fSMatt Arsenault; GFX10_3-NEXT:    v_lshrrev_b32_e64 v0, 5, s32
19641bf385f1SMatt Arsenault; GFX10_3-NEXT:    s_lshr_b32 s4, s32, 5
19651bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s31, 1
1966ef91cd3fSMatt Arsenault; GFX10_3-NEXT:    v_add_nc_u32_e32 v0, 64, v0
1967ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMSTART
1968ef91cd3fSMatt Arsenault; GFX10_3-NEXT:    ; use alloca0 v0
1969ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMEND
19701bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s33, 2
19711bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s34, 3
19721bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s35, 4
19731bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s36, 5
19741bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s37, 6
19751bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s38, 7
19761bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s39, 8
19771bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s40, 9
19781bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s41, 10
19791bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s42, 11
19801bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s43, 12
19811bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s44, 13
19821bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s45, 14
19831bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s46, 15
19841bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s47, 16
19851bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s48, 17
19861bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s49, 18
19871bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s50, 19
19881bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s51, 20
19891bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s52, 21
19901bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s53, 22
19911bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s54, 23
19921bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s55, 24
19931bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s56, 25
19941bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s57, 26
19951bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_writelane_b32 v22, s59, 27
19961bf385f1SMatt Arsenault; GFX10_3-NEXT:    s_add_i32 s59, s4, 0x4240
19971bf385f1SMatt Arsenault; GFX10_3-NEXT:    s_and_b32 s4, 0, exec_lo
1998ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMSTART
1999ef67664dSMatt Arsenault; GFX10_3-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc
2000ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMEND
2001ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMSTART
2002ef67664dSMatt Arsenault; GFX10_3-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc
2003ef67664dSMatt Arsenault; GFX10_3-NEXT:    ;;#ASMEND
20041bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s59, v22, 27
20051bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s57, v22, 26
20061bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s56, v22, 25
20071bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s55, v22, 24
20081bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s54, v22, 23
20091bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s53, v22, 22
20101bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s52, v22, 21
20111bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s51, v22, 20
20121bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s50, v22, 19
20131bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s49, v22, 18
20141bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s48, v22, 17
20151bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s47, v22, 16
20161bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s46, v22, 15
20171bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s45, v22, 14
20181bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s44, v22, 13
20191bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s43, v22, 12
20201bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s42, v22, 11
20211bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s41, v22, 10
20221bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s40, v22, 9
20231bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s39, v22, 8
20241bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s38, v22, 7
20251bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s37, v22, 6
20261bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s36, v22, 5
20271bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s35, v22, 4
20281bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s34, v22, 3
20291bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s33, v22, 2
20301bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s31, v22, 1
20311bf385f1SMatt Arsenault; GFX10_3-NEXT:    v_readlane_b32 s30, v22, 0
2032ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_xor_saveexec_b32 s4, -1
2033ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_add_i32 s5, s32, 0x100800
20341bf385f1SMatt Arsenault; GFX10_3-NEXT:    buffer_load_dword v22, off, s[0:3], s5 ; 4-byte Folded Reload
2035ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_mov_b32 exec_lo, s4
2036ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_waitcnt vmcnt(0)
2037ef67664dSMatt Arsenault; GFX10_3-NEXT:    s_setpc_b64 s[30:31]
2038ef67664dSMatt Arsenault;
2039ef67664dSMatt Arsenault; GFX11-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset:
2040ef67664dSMatt Arsenault; GFX11:       ; %bb.0:
2041ef67664dSMatt Arsenault; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2042ef67664dSMatt Arsenault; GFX11-NEXT:    s_xor_saveexec_b32 s0, -1
2043ef67664dSMatt Arsenault; GFX11-NEXT:    s_add_i32 s1, s32, 0x8040
20441bf385f1SMatt Arsenault; GFX11-NEXT:    scratch_store_b32 off, v22, s1 ; 4-byte Folded Spill
2045ef67664dSMatt Arsenault; GFX11-NEXT:    s_mov_b32 exec_lo, s0
20461bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s30, 0
2047ef67664dSMatt Arsenault; GFX11-NEXT:    s_add_i32 s0, s32, 64
20481bf385f1SMatt Arsenault; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)
20491bf385f1SMatt Arsenault; GFX11-NEXT:    v_mov_b32_e32 v0, s0
2050ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMSTART
2051ef91cd3fSMatt Arsenault; GFX11-NEXT:    ; use alloca0 v0
2052ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMEND
20531bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s31, 1
20541bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s33, 2
20551bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s34, 3
20561bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s35, 4
20571bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s36, 5
20581bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s37, 6
20591bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s38, 7
20601bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s39, 8
20611bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s40, 9
20621bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s41, 10
20631bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s42, 11
20641bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s43, 12
20651bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s44, 13
20661bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s45, 14
20671bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s46, 15
20681bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s47, 16
20691bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s48, 17
20701bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s49, 18
20711bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s50, 19
20721bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s51, 20
20731bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s52, 21
20741bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s53, 22
20751bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s54, 23
20761bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s55, 24
20771bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s56, 25
20781bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s57, 26
20791bf385f1SMatt Arsenault; GFX11-NEXT:    v_writelane_b32 v22, s59, 27
20801bf385f1SMatt Arsenault; GFX11-NEXT:    s_add_i32 s59, s32, 0x4240
20811bf385f1SMatt Arsenault; GFX11-NEXT:    s_and_b32 s0, 0, exec_lo
2082ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMSTART
2083ef67664dSMatt Arsenault; GFX11-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc
2084ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMEND
2085ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMSTART
2086ef67664dSMatt Arsenault; GFX11-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc
2087ef67664dSMatt Arsenault; GFX11-NEXT:    ;;#ASMEND
20881bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s59, v22, 27
20891bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s57, v22, 26
20901bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s56, v22, 25
20911bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s55, v22, 24
20921bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s54, v22, 23
20931bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s53, v22, 22
20941bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s52, v22, 21
20951bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s51, v22, 20
20961bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s50, v22, 19
20971bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s49, v22, 18
20981bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s48, v22, 17
20991bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s47, v22, 16
21001bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s46, v22, 15
21011bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s45, v22, 14
21021bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s44, v22, 13
21031bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s43, v22, 12
21041bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s42, v22, 11
21051bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s41, v22, 10
21061bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s40, v22, 9
21071bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s39, v22, 8
21081bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s38, v22, 7
21091bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s37, v22, 6
21101bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s36, v22, 5
21111bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s35, v22, 4
21121bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s34, v22, 3
21131bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s33, v22, 2
21141bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s31, v22, 1
21151bf385f1SMatt Arsenault; GFX11-NEXT:    v_readlane_b32 s30, v22, 0
2116ef67664dSMatt Arsenault; GFX11-NEXT:    s_xor_saveexec_b32 s0, -1
2117ef67664dSMatt Arsenault; GFX11-NEXT:    s_add_i32 s1, s32, 0x8040
21181bf385f1SMatt Arsenault; GFX11-NEXT:    scratch_load_b32 v22, off, s1 ; 4-byte Folded Reload
2119ef67664dSMatt Arsenault; GFX11-NEXT:    s_mov_b32 exec_lo, s0
2120ef67664dSMatt Arsenault; GFX11-NEXT:    s_waitcnt vmcnt(0)
2121ef67664dSMatt Arsenault; GFX11-NEXT:    s_setpc_b64 s[30:31]
2122ef67664dSMatt Arsenault;
2123ef67664dSMatt Arsenault; GFX12-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset:
2124ef67664dSMatt Arsenault; GFX12:       ; %bb.0:
2125ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0
2126ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_expcnt 0x0
2127ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_samplecnt 0x0
2128ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_bvhcnt 0x0
2129ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_kmcnt 0x0
2130ef67664dSMatt Arsenault; GFX12-NEXT:    s_xor_saveexec_b32 s0, -1
21311bf385f1SMatt Arsenault; GFX12-NEXT:    scratch_store_b32 off, v22, s32 offset:32768 ; 4-byte Folded Spill
213286627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
2133ef67664dSMatt Arsenault; GFX12-NEXT:    s_mov_b32 exec_lo, s0
21341bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s30, 0
21351bf385f1SMatt Arsenault; GFX12-NEXT:    v_mov_b32_e32 v0, s32
2136ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMSTART
2137ef91cd3fSMatt Arsenault; GFX12-NEXT:    ; use alloca0 v0
2138ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMEND
21391bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s31, 1
21401bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s33, 2
21411bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s34, 3
21421bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s35, 4
21431bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s36, 5
21441bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s37, 6
21451bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s38, 7
21461bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s39, 8
21471bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s40, 9
21481bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s41, 10
21491bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s42, 11
21501bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s43, 12
21511bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s44, 13
21521bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s45, 14
21531bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s46, 15
21541bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s47, 16
21551bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s48, 17
21561bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s49, 18
21571bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s50, 19
21581bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s51, 20
21591bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s52, 21
21601bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s53, 22
21611bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s54, 23
21621bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s55, 24
21631bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s56, 25
21641bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s57, 26
21651bf385f1SMatt Arsenault; GFX12-NEXT:    v_writelane_b32 v22, s59, 27
21661bf385f1SMatt Arsenault; GFX12-NEXT:    s_add_co_i32 s59, s32, 0x4200
21671bf385f1SMatt Arsenault; GFX12-NEXT:    s_and_b32 s0, 0, exec_lo
2168ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMSTART
2169ef67664dSMatt Arsenault; GFX12-NEXT:    ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc
2170ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMEND
2171ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMSTART
2172ef67664dSMatt Arsenault; GFX12-NEXT:    ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc
2173ef67664dSMatt Arsenault; GFX12-NEXT:    ;;#ASMEND
21741bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s59, v22, 27
21751bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s57, v22, 26
21761bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s56, v22, 25
21771bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s55, v22, 24
21781bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s54, v22, 23
21791bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s53, v22, 22
21801bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s52, v22, 21
21811bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s51, v22, 20
21821bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s50, v22, 19
21831bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s49, v22, 18
21841bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s48, v22, 17
21851bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s47, v22, 16
21861bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s46, v22, 15
21871bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s45, v22, 14
21881bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s44, v22, 13
21891bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s43, v22, 12
21901bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s42, v22, 11
21911bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s41, v22, 10
21921bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s40, v22, 9
21931bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s39, v22, 8
21941bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s38, v22, 7
21951bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s37, v22, 6
21961bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s36, v22, 5
21971bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s35, v22, 4
21981bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s34, v22, 3
21991bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s33, v22, 2
22001bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s31, v22, 1
22011bf385f1SMatt Arsenault; GFX12-NEXT:    v_readlane_b32 s30, v22, 0
2202ef67664dSMatt Arsenault; GFX12-NEXT:    s_xor_saveexec_b32 s0, -1
22031bf385f1SMatt Arsenault; GFX12-NEXT:    scratch_load_b32 v22, off, s32 offset:32768 ; 4-byte Folded Reload
220486627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
2205ef67664dSMatt Arsenault; GFX12-NEXT:    s_mov_b32 exec_lo, s0
2206ef67664dSMatt Arsenault; GFX12-NEXT:    s_wait_loadcnt 0x0
220786627149SCarl Ritson; GFX12-NEXT:    s_wait_alu 0xfffe
2208ef67664dSMatt Arsenault; GFX12-NEXT:    s_setpc_b64 s[30:31]
2209ef67664dSMatt Arsenault  %alloca0 = alloca [4096 x i32], align 64, addrspace(5)
2210ef67664dSMatt Arsenault  %alloca1 = alloca [4096 x i32], align 4, addrspace(5)
2211ef67664dSMatt Arsenault  call void asm sideeffect "; use alloca0 $0", "v"(ptr addrspace(5) %alloca0)
2212ef67664dSMatt Arsenault
2213ef67664dSMatt Arsenault  ; Force no SGPRs to be available for the carry-out of the vector add.
2214ef67664dSMatt Arsenault  %asm = call %asm.output3 asm sideeffect
2215ef67664dSMatt Arsenault    "; def $0, $1, $2, $3, $4, $5, $6, $7",
2216ef67664dSMatt Arsenault    "={s[0:15]},={s[16:31]},={s[32:47]},={s[48:55]},={s[56:57]},={v[0:15]},={v[16:21]},={vcc}"()
2217ef67664dSMatt Arsenault
2218ef67664dSMatt Arsenault  %s0 = extractvalue %asm.output3 %asm, 0
2219ef67664dSMatt Arsenault  %s1 = extractvalue %asm.output3 %asm, 1
2220ef67664dSMatt Arsenault  %s2 = extractvalue %asm.output3 %asm, 2
2221ef67664dSMatt Arsenault  %s3 = extractvalue %asm.output3 %asm, 3
2222ef67664dSMatt Arsenault  %s4 = extractvalue %asm.output3 %asm, 4
2223ef67664dSMatt Arsenault
2224ef67664dSMatt Arsenault  %v0 = extractvalue %asm.output3 %asm, 5
2225ef67664dSMatt Arsenault  %v1 = extractvalue %asm.output3 %asm, 6
2226ef67664dSMatt Arsenault
2227ef67664dSMatt Arsenault  %vcc = extractvalue %asm.output3 %asm, 7
2228ef67664dSMatt Arsenault
2229ef67664dSMatt Arsenault  %alloca1.offset = getelementptr [4096 x i32], ptr addrspace(5) %alloca1, i32 0, i32 128
2230ef67664dSMatt Arsenault
2231ef67664dSMatt Arsenault  ; scc is unavailable since it is live in
2232ef67664dSMatt Arsenault  call void asm sideeffect "; use $0, $1, $2, $3, $4, $5, $6, $7, $8, $9",
2233ef67664dSMatt Arsenault                           "{s[0:15]},{s[16:31]},{s[32:47]},{s[48:55]},{s[56:57]},{v[0:15]},{v[16:21]},{vcc},{s59},{scc}"(
2234ef67664dSMatt Arsenault    <16 x i32> %s0,
2235ef67664dSMatt Arsenault    <16 x i32> %s1,
2236ef67664dSMatt Arsenault    <16 x i32> %s2,
2237ef67664dSMatt Arsenault    <8 x i32> %s3,
2238ef67664dSMatt Arsenault    <2 x i32> %s4,
2239ef67664dSMatt Arsenault    <16 x i32> %v0,
2240ef67664dSMatt Arsenault    <6 x i32> %v1,
2241ef67664dSMatt Arsenault    i64 %vcc,
2242ef67664dSMatt Arsenault    ptr addrspace(5) %alloca1.offset,
2243ef67664dSMatt Arsenault    i32 0) ; use of scc
2244ef67664dSMatt Arsenault
2245ef67664dSMatt Arsenault  ret void
2246ef67664dSMatt Arsenault}
2247ef67664dSMatt Arsenault
2248ef67664dSMatt Arsenault; For gfx8/gfx9, this should enforce a budget of 24 VGPRs, and 60 SGPRs (4
2249ef67664dSMatt Arsenault; are reserved at the end for xnack + vcc).
2250ef67664dSMatt Arsenaultattributes #0 = { nounwind alignstack=64 "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "amdgpu-waves-per-eu"="10,10" "no-realign-stack" }
2251ef67664dSMatt Arsenaultattributes #1 = { nounwind alignstack=16 "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "amdgpu-waves-per-eu"="10,10" "no-realign-stack" }
2252