xref: /llvm-project/llvm/test/CodeGen/AMDGPU/attributor-flatscratchinit-globalisel.ll (revision 41ed16c3b3362e51b7063eaef6461ab704c1ec7a)
1*41ed16c3SJun Wang; Test the generation of the attribute amdgpu-no-flat-scratch-init
2*41ed16c3SJun Wang; RUN: opt -S -O2 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 -global-isel -stop-after=irtranslator | FileCheck -check-prefixes=GFX10 %s
3*41ed16c3SJun Wang
4*41ed16c3SJun Wang;; tests of addrspacecast
5*41ed16c3SJun Wang
6*41ed16c3SJun Wangdefine void @without_global_to_flat_addrspacecast(ptr addrspace(1) %ptr) {
7*41ed16c3SJun Wang  store volatile i32 0, ptr addrspace(1) %ptr
8*41ed16c3SJun Wang  ret void
9*41ed16c3SJun Wang}
10*41ed16c3SJun Wang
11*41ed16c3SJun Wangdefine amdgpu_kernel void @without_global_to_flat_addrspacecast_cc_kernel(ptr addrspace(1) %ptr) {
12*41ed16c3SJun Wang  store volatile i32 0, ptr addrspace(1) %ptr
13*41ed16c3SJun Wang  ret void
14*41ed16c3SJun Wang}
15*41ed16c3SJun Wang
16*41ed16c3SJun Wangdefine void @with_global_to_flat_addrspacecast(ptr addrspace(1) %ptr) {
17*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(1) %ptr to ptr
18*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
19*41ed16c3SJun Wang  ret void
20*41ed16c3SJun Wang}
21*41ed16c3SJun Wang
22*41ed16c3SJun Wangdefine amdgpu_kernel void @with_global_to_flat_addrspacecast_cc_kernel(ptr addrspace(1) %ptr) {
23*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(1) %ptr to ptr
24*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
25*41ed16c3SJun Wang  ret void
26*41ed16c3SJun Wang}
27*41ed16c3SJun Wang
28*41ed16c3SJun Wangdefine void @without_region_to_flat_addrspacecast(ptr addrspace(2) %ptr) {
29*41ed16c3SJun Wang  store volatile i32 0, ptr addrspace(2) %ptr
30*41ed16c3SJun Wang  ret void
31*41ed16c3SJun Wang}
32*41ed16c3SJun Wang
33*41ed16c3SJun Wangdefine amdgpu_kernel void @without_region_to_flat_addrspacecast_cc_kernel(ptr addrspace(2) %ptr) {
34*41ed16c3SJun Wang  store volatile i32 0, ptr addrspace(2) %ptr
35*41ed16c3SJun Wang  ret void
36*41ed16c3SJun Wang}
37*41ed16c3SJun Wang
38*41ed16c3SJun Wangdefine void @with_region_to_flat_addrspacecast(ptr addrspace(2) %ptr) {
39*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(2) %ptr to ptr
40*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
41*41ed16c3SJun Wang  ret void
42*41ed16c3SJun Wang}
43*41ed16c3SJun Wang
44*41ed16c3SJun Wangdefine amdgpu_kernel void @with_region_to_flat_addrspacecast_cc_kernel(ptr addrspace(2) %ptr) {
45*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(2) %ptr to ptr
46*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
47*41ed16c3SJun Wang  ret void
48*41ed16c3SJun Wang}
49*41ed16c3SJun Wang
50*41ed16c3SJun Wangdefine void @without_group_to_flat_addrspacecast(ptr addrspace(3) %ptr) {
51*41ed16c3SJun Wang  store volatile i32 0, ptr addrspace(3) %ptr
52*41ed16c3SJun Wang  ret void
53*41ed16c3SJun Wang}
54*41ed16c3SJun Wang
55*41ed16c3SJun Wangdefine amdgpu_kernel void @without_group_to_flat_addrspacecast_cc_kernel(ptr addrspace(3) %ptr) {
56*41ed16c3SJun Wang  store volatile i32 0, ptr addrspace(3) %ptr
57*41ed16c3SJun Wang  ret void
58*41ed16c3SJun Wang}
59*41ed16c3SJun Wang
60*41ed16c3SJun Wangdefine void @with_group_to_flat_addrspacecast(ptr addrspace(3) %ptr) {
61*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(3) %ptr to ptr
62*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
63*41ed16c3SJun Wang  ret void
64*41ed16c3SJun Wang}
65*41ed16c3SJun Wang
66*41ed16c3SJun Wangdefine amdgpu_kernel void @with_group_to_flat_addrspacecast_cc_kernel(ptr addrspace(3) %ptr) {
67*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(3) %ptr to ptr
68*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
69*41ed16c3SJun Wang  ret void
70*41ed16c3SJun Wang}
71*41ed16c3SJun Wang
72*41ed16c3SJun Wangdefine void @without_constant_to_flat_addrspacecast(ptr addrspace(4) %ptr) {
73*41ed16c3SJun Wang  store volatile i32 0, ptr addrspace(4) %ptr
74*41ed16c3SJun Wang  ret void
75*41ed16c3SJun Wang}
76*41ed16c3SJun Wang
77*41ed16c3SJun Wangdefine amdgpu_kernel void @without_constant_to_flat_addrspacecast_cc_kernel(ptr addrspace(4) %ptr) {
78*41ed16c3SJun Wang  store volatile i32 0, ptr addrspace(4) %ptr
79*41ed16c3SJun Wang  ret void
80*41ed16c3SJun Wang}
81*41ed16c3SJun Wang
82*41ed16c3SJun Wangdefine void @with_constant_to_flat_addrspacecast(ptr addrspace(4) %ptr) {
83*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(4) %ptr to ptr
84*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
85*41ed16c3SJun Wang  ret void
86*41ed16c3SJun Wang}
87*41ed16c3SJun Wang
88*41ed16c3SJun Wangdefine amdgpu_kernel void @with_constant_to_flat_addrspacecast_cc_kernel(ptr addrspace(4) %ptr) {
89*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(4) %ptr to ptr
90*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
91*41ed16c3SJun Wang  ret void
92*41ed16c3SJun Wang}
93*41ed16c3SJun Wang
94*41ed16c3SJun Wangdefine void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
95*41ed16c3SJun Wang  store volatile i32 0, ptr addrspace(5) %ptr
96*41ed16c3SJun Wang  ret void
97*41ed16c3SJun Wang}
98*41ed16c3SJun Wang
99*41ed16c3SJun Wangdefine amdgpu_kernel void @without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {
100*41ed16c3SJun Wang  store volatile i32 0, ptr addrspace(5) %ptr
101*41ed16c3SJun Wang  ret void
102*41ed16c3SJun Wang}
103*41ed16c3SJun Wang
104*41ed16c3SJun Wangdefine void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
105*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(5) %ptr to ptr
106*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
107*41ed16c3SJun Wang  ret void
108*41ed16c3SJun Wang}
109*41ed16c3SJun Wang
110*41ed16c3SJun Wangdefine amdgpu_kernel void @with_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {
111*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(5) %ptr to ptr
112*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
113*41ed16c3SJun Wang  ret void
114*41ed16c3SJun Wang}
115*41ed16c3SJun Wang
116*41ed16c3SJun Wangdefine void @call_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
117*41ed16c3SJun Wang  call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
118*41ed16c3SJun Wang  ret void
119*41ed16c3SJun Wang}
120*41ed16c3SJun Wang
121*41ed16c3SJun Wangdefine amdgpu_kernel void @call_without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {
122*41ed16c3SJun Wang  call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
123*41ed16c3SJun Wang  ret void
124*41ed16c3SJun Wang}
125*41ed16c3SJun Wang
126*41ed16c3SJun Wangdefine void @call_with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
127*41ed16c3SJun Wang  call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
128*41ed16c3SJun Wang  ret void
129*41ed16c3SJun Wang}
130*41ed16c3SJun Wang
131*41ed16c3SJun Wangdefine amdgpu_kernel void @call_with_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {
132*41ed16c3SJun Wang  call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
133*41ed16c3SJun Wang  ret void
134*41ed16c3SJun Wang}
135*41ed16c3SJun Wang
136*41ed16c3SJun Wangdefine void @call_both_with_and_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
137*41ed16c3SJun Wang  call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
138*41ed16c3SJun Wang  call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
139*41ed16c3SJun Wang  ret void
140*41ed16c3SJun Wang}
141*41ed16c3SJun Wang
142*41ed16c3SJun Wangdefine amdgpu_kernel void @call_both_with_and_without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {
143*41ed16c3SJun Wang  call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
144*41ed16c3SJun Wang  call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
145*41ed16c3SJun Wang  ret void
146*41ed16c3SJun Wang}
147*41ed16c3SJun Wang
148*41ed16c3SJun Wangdefine void @call_call_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
149*41ed16c3SJun Wang  call void @call_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
150*41ed16c3SJun Wang  ret void
151*41ed16c3SJun Wang}
152*41ed16c3SJun Wang
153*41ed16c3SJun Wangdefine amdgpu_kernel void @call_call_without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {
154*41ed16c3SJun Wang  call void @call_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
155*41ed16c3SJun Wang  ret void
156*41ed16c3SJun Wang}
157*41ed16c3SJun Wang
158*41ed16c3SJun Wangdefine void @call_call_with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
159*41ed16c3SJun Wang  call void @call_with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
160*41ed16c3SJun Wang  ret void
161*41ed16c3SJun Wang}
162*41ed16c3SJun Wang
163*41ed16c3SJun Wangdefine amdgpu_kernel void @call_call_with_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {
164*41ed16c3SJun Wang  call void @call_with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
165*41ed16c3SJun Wang  ret void
166*41ed16c3SJun Wang}
167*41ed16c3SJun Wang
168*41ed16c3SJun Wangdefine void @call_call_both_with_and_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
169*41ed16c3SJun Wang  call void @call_both_with_and_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
170*41ed16c3SJun Wang  ret void
171*41ed16c3SJun Wang}
172*41ed16c3SJun Wang
173*41ed16c3SJun Wangdefine amdgpu_kernel void @call_call_both_with_and_without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {
174*41ed16c3SJun Wang  call void @call_both_with_and_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
175*41ed16c3SJun Wang  ret void
176*41ed16c3SJun Wang}
177*41ed16c3SJun Wang
178*41ed16c3SJun Wangdefine void @with_cast_call_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
179*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(5) %ptr to ptr
180*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
181*41ed16c3SJun Wang  call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
182*41ed16c3SJun Wang  ret void
183*41ed16c3SJun Wang}
184*41ed16c3SJun Wang
185*41ed16c3SJun Wangdefine amdgpu_kernel void @with_cast_call_without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {
186*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(5) %ptr to ptr
187*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
188*41ed16c3SJun Wang  call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
189*41ed16c3SJun Wang  ret void
190*41ed16c3SJun Wang}
191*41ed16c3SJun Wang
192*41ed16c3SJun Wangdefine void @with_cast_call_with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {
193*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(5) %ptr to ptr
194*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
195*41ed16c3SJun Wang  call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
196*41ed16c3SJun Wang  ret void
197*41ed16c3SJun Wang}
198*41ed16c3SJun Wang
199*41ed16c3SJun Wangdefine amdgpu_kernel void @with_cast_call_with_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {
200*41ed16c3SJun Wang  %stof = addrspacecast ptr addrspace(5) %ptr to ptr
201*41ed16c3SJun Wang  store volatile i32 0, ptr %stof
202*41ed16c3SJun Wang  call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)
203*41ed16c3SJun Wang  ret void
204*41ed16c3SJun Wang}
205*41ed16c3SJun Wang
206*41ed16c3SJun Wang;; tests of indirect call, intrinsics
207*41ed16c3SJun Wang
208*41ed16c3SJun Wang@gv.fptr0 = external hidden unnamed_addr addrspace(4) constant ptr, align 4
209*41ed16c3SJun Wang
210*41ed16c3SJun Wangdefine void @with_indirect_call() {
211*41ed16c3SJun Wang  %fptr = load ptr, ptr addrspace(4) @gv.fptr0
212*41ed16c3SJun Wang  call void %fptr()
213*41ed16c3SJun Wang  ret void
214*41ed16c3SJun Wang}
215*41ed16c3SJun Wang
216*41ed16c3SJun Wangdefine amdgpu_kernel void @with_indirect_call_cc_kernel() {
217*41ed16c3SJun Wang  %fptr = load ptr, ptr addrspace(4) @gv.fptr0
218*41ed16c3SJun Wang  call void %fptr()
219*41ed16c3SJun Wang  ret void
220*41ed16c3SJun Wang}
221*41ed16c3SJun Wang
222*41ed16c3SJun Wangdefine void @call_with_indirect_call() {
223*41ed16c3SJun Wang  call void @with_indirect_call()
224*41ed16c3SJun Wang  ret void
225*41ed16c3SJun Wang}
226*41ed16c3SJun Wang
227*41ed16c3SJun Wangdefine amdgpu_kernel void @call_with_indirect_call_cc_kernel() {
228*41ed16c3SJun Wang  call void @with_indirect_call()
229*41ed16c3SJun Wang  ret void
230*41ed16c3SJun Wang}
231*41ed16c3SJun Wang
232*41ed16c3SJun Wangdeclare i32 @llvm.amdgcn.workgroup.id.x()
233*41ed16c3SJun Wang
234*41ed16c3SJun Wangdefine void @use_intrinsic_workitem_id_x() {
235*41ed16c3SJun Wang  %val = call i32 @llvm.amdgcn.workitem.id.x()
236*41ed16c3SJun Wang  store volatile i32 %val, ptr addrspace(1) null
237*41ed16c3SJun Wang  ret void
238*41ed16c3SJun Wang}
239*41ed16c3SJun Wang
240*41ed16c3SJun Wangdefine amdgpu_kernel void @use_intrinsic_workitem_id_x_cc_kernel() {
241*41ed16c3SJun Wang  %val = call i32 @llvm.amdgcn.workitem.id.x()
242*41ed16c3SJun Wang  store volatile i32 %val, ptr addrspace(1) null
243*41ed16c3SJun Wang  ret void
244*41ed16c3SJun Wang}
245*41ed16c3SJun Wang
246*41ed16c3SJun Wangdefine void @call_use_intrinsic_workitem_id_x() {
247*41ed16c3SJun Wang  call void @use_intrinsic_workitem_id_x()
248*41ed16c3SJun Wang  ret void
249*41ed16c3SJun Wang}
250*41ed16c3SJun Wang
251*41ed16c3SJun Wangdefine amdgpu_kernel void @call_use_intrinsic_workitem_id_x_cc_kernel() {
252*41ed16c3SJun Wang  call void @use_intrinsic_workitem_id_x()
253*41ed16c3SJun Wang  ret void
254*41ed16c3SJun Wang}
255*41ed16c3SJun Wang
256*41ed16c3SJun Wang; GFX10: name:            without_global_to_flat_addrspacecast
257*41ed16c3SJun Wang; GFX10:       argumentInfo:
258*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
259*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
260*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
261*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
262*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
263*41ed16c3SJun Wang;
264*41ed16c3SJun Wang; GFX10: name:            without_global_to_flat_addrspacecast_cc_kernel
265*41ed16c3SJun Wang; GFX10:       argumentInfo:
266*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
267*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
268*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
269*41ed16c3SJun Wang;
270*41ed16c3SJun Wang; GFX10: name:            with_global_to_flat_addrspacecast
271*41ed16c3SJun Wang; GFX10:       argumentInfo:
272*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
273*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
274*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
275*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
276*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
277*41ed16c3SJun Wang;
278*41ed16c3SJun Wang; GFX10: name:            with_global_to_flat_addrspacecast_cc_kernel
279*41ed16c3SJun Wang; GFX10:       argumentInfo:
280*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
281*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
282*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
283*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentWaveByteOffset: { reg: '$sgpr7' }
284*41ed16c3SJun Wang;
285*41ed16c3SJun Wang; GFX10: name:            without_region_to_flat_addrspacecast
286*41ed16c3SJun Wang; GFX10:       argumentInfo:
287*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
288*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
289*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
290*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
291*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
292*41ed16c3SJun Wang;
293*41ed16c3SJun Wang; GFX10: name:            without_region_to_flat_addrspacecast_cc_kernel
294*41ed16c3SJun Wang; GFX10:       argumentInfo:
295*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
296*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
297*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
298*41ed16c3SJun Wang;
299*41ed16c3SJun Wang; GFX10: name:            with_region_to_flat_addrspacecast
300*41ed16c3SJun Wang; GFX10:       argumentInfo:
301*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
302*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
303*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
304*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
305*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
306*41ed16c3SJun Wang;
307*41ed16c3SJun Wang; GFX10: name:            with_region_to_flat_addrspacecast_cc_kernel
308*41ed16c3SJun Wang; GFX10:       argumentInfo:
309*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
310*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
311*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
312*41ed16c3SJun Wang;
313*41ed16c3SJun Wang; GFX10: name:            without_group_to_flat_addrspacecast
314*41ed16c3SJun Wang; GFX10:       argumentInfo:
315*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
316*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
317*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
318*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
319*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
320*41ed16c3SJun Wang;
321*41ed16c3SJun Wang; GFX10: name:            without_group_to_flat_addrspacecast_cc_kernel
322*41ed16c3SJun Wang; GFX10:       argumentInfo:
323*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
324*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
325*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
326*41ed16c3SJun Wang;
327*41ed16c3SJun Wang; GFX10: name:            with_group_to_flat_addrspacecast
328*41ed16c3SJun Wang; GFX10:       argumentInfo:
329*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
330*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
331*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
332*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
333*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
334*41ed16c3SJun Wang;
335*41ed16c3SJun Wang; GFX10: name:            with_group_to_flat_addrspacecast_cc_kernel
336*41ed16c3SJun Wang; GFX10:       argumentInfo:
337*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
338*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
339*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
340*41ed16c3SJun Wang;
341*41ed16c3SJun Wang; GFX10: name:            without_constant_to_flat_addrspacecast
342*41ed16c3SJun Wang; GFX10:       argumentInfo:
343*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
344*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
345*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
346*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
347*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
348*41ed16c3SJun Wang;
349*41ed16c3SJun Wang; GFX10: name:            without_constant_to_flat_addrspacecast_cc_kernel
350*41ed16c3SJun Wang; GFX10:       argumentInfo:
351*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
352*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
353*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
354*41ed16c3SJun Wang;
355*41ed16c3SJun Wang; GFX10: name:            with_constant_to_flat_addrspacecast
356*41ed16c3SJun Wang; GFX10:       argumentInfo:
357*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
358*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
359*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
360*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
361*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
362*41ed16c3SJun Wang;
363*41ed16c3SJun Wang; GFX10: name:            with_constant_to_flat_addrspacecast_cc_kernel
364*41ed16c3SJun Wang; GFX10:       argumentInfo:
365*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
366*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
367*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
368*41ed16c3SJun Wang;
369*41ed16c3SJun Wang; GFX10: name:            without_private_to_flat_addrspacecast
370*41ed16c3SJun Wang; GFX10:       argumentInfo:
371*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
372*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
373*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
374*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
375*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
376*41ed16c3SJun Wang;
377*41ed16c3SJun Wang; GFX10: name:            without_private_to_flat_addrspacecast_cc_kernel
378*41ed16c3SJun Wang; GFX10:       argumentInfo:
379*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
380*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
381*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
382*41ed16c3SJun Wang;
383*41ed16c3SJun Wang; GFX10: name:            with_private_to_flat_addrspacecast
384*41ed16c3SJun Wang; GFX10:       argumentInfo:
385*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
386*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
387*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
388*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
389*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
390*41ed16c3SJun Wang;
391*41ed16c3SJun Wang; GFX10: name:            with_private_to_flat_addrspacecast_cc_kernel
392*41ed16c3SJun Wang; GFX10:       argumentInfo:
393*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
394*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
395*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
396*41ed16c3SJun Wang;
397*41ed16c3SJun Wang; GFX10: name:            call_without_private_to_flat_addrspacecast
398*41ed16c3SJun Wang; GFX10:       argumentInfo:
399*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
400*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
401*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
402*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
403*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
404*41ed16c3SJun Wang;
405*41ed16c3SJun Wang; GFX10: name:            call_without_private_to_flat_addrspacecast_cc_kernel
406*41ed16c3SJun Wang; GFX10:       argumentInfo:
407*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
408*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
409*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
410*41ed16c3SJun Wang;
411*41ed16c3SJun Wang; GFX10: name:            call_with_private_to_flat_addrspacecast
412*41ed16c3SJun Wang; GFX10:       argumentInfo:
413*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
414*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
415*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
416*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
417*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
418*41ed16c3SJun Wang;
419*41ed16c3SJun Wang; GFX10: name:            call_with_private_to_flat_addrspacecast_cc_kernel
420*41ed16c3SJun Wang; GFX10:       argumentInfo:
421*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
422*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
423*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
424*41ed16c3SJun Wang;
425*41ed16c3SJun Wang; GFX10: name:            call_both_with_and_without_private_to_flat_addrspacecast
426*41ed16c3SJun Wang; GFX10:       argumentInfo:
427*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
428*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
429*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
430*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
431*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
432*41ed16c3SJun Wang;
433*41ed16c3SJun Wang; GFX10: name:            call_both_with_and_without_private_to_flat_addrspacecast_cc_kernel
434*41ed16c3SJun Wang; GFX10:       argumentInfo:
435*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
436*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
437*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
438*41ed16c3SJun Wang;
439*41ed16c3SJun Wang; GFX10: name:            call_call_without_private_to_flat_addrspacecast
440*41ed16c3SJun Wang; GFX10:       argumentInfo:
441*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
442*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
443*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
444*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
445*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
446*41ed16c3SJun Wang;
447*41ed16c3SJun Wang; GFX10: name:            call_call_without_private_to_flat_addrspacecast_cc_kernel
448*41ed16c3SJun Wang; GFX10:       argumentInfo:
449*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
450*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
451*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
452*41ed16c3SJun Wang;
453*41ed16c3SJun Wang; GFX10: name:            call_call_with_private_to_flat_addrspacecast
454*41ed16c3SJun Wang; GFX10:       argumentInfo:
455*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
456*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
457*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
458*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
459*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
460*41ed16c3SJun Wang;
461*41ed16c3SJun Wang; GFX10: name:            call_call_with_private_to_flat_addrspacecast_cc_kernel
462*41ed16c3SJun Wang; GFX10:       argumentInfo:
463*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
464*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
465*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
466*41ed16c3SJun Wang;
467*41ed16c3SJun Wang; GFX10: name:            call_call_both_with_and_without_private_to_flat_addrspacecast
468*41ed16c3SJun Wang; GFX10:       argumentInfo:
469*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
470*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
471*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
472*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
473*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
474*41ed16c3SJun Wang;
475*41ed16c3SJun Wang; GFX10: name:            call_call_both_with_and_without_private_to_flat_addrspacecast_cc_kernel
476*41ed16c3SJun Wang; GFX10:       argumentInfo:
477*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
478*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
479*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
480*41ed16c3SJun Wang;
481*41ed16c3SJun Wang; GFX10: name:            with_cast_call_without_private_to_flat_addrspacecast
482*41ed16c3SJun Wang; GFX10:       argumentInfo:
483*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
484*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
485*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
486*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
487*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
488*41ed16c3SJun Wang;
489*41ed16c3SJun Wang; GFX10: name:            with_cast_call_without_private_to_flat_addrspacecast_cc_kernel
490*41ed16c3SJun Wang; GFX10:       argumentInfo:
491*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
492*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
493*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
494*41ed16c3SJun Wang;
495*41ed16c3SJun Wang; GFX10: name:            with_cast_call_with_private_to_flat_addrspacecast
496*41ed16c3SJun Wang; GFX10:       argumentInfo:
497*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
498*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
499*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
500*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
501*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
502*41ed16c3SJun Wang;
503*41ed16c3SJun Wang; GFX10: name:            with_cast_call_with_private_to_flat_addrspacecast_cc_kernel
504*41ed16c3SJun Wang; GFX10:       argumentInfo:
505*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
506*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
507*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr6' }
508*41ed16c3SJun Wang;
509*41ed16c3SJun Wang; GFX10: name:            with_indirect_call
510*41ed16c3SJun Wang; GFX10:       argumentInfo:
511*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
512*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
513*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
514*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
515*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
516*41ed16c3SJun Wang;
517*41ed16c3SJun Wang; GFX10: name:            with_indirect_call_cc_kernel
518*41ed16c3SJun Wang; GFX10:       argumentInfo:
519*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
520*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
521*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
522*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr8_sgpr9' }
523*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
524*41ed16c3SJun Wang; GFX10-NEXT:    flatScratchInit: { reg: '$sgpr12_sgpr13' }
525*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr14' }
526*41ed16c3SJun Wang;
527*41ed16c3SJun Wang; GFX10: name:            call_with_indirect_call
528*41ed16c3SJun Wang; GFX10:       argumentInfo:
529*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
530*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
531*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
532*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
533*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
534*41ed16c3SJun Wang;
535*41ed16c3SJun Wang; GFX10: name:            call_with_indirect_call_cc_kernel
536*41ed16c3SJun Wang; GFX10:       argumentInfo:
537*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
538*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
539*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
540*41ed16c3SJun Wang; GFX10-NEXT:    kernargSegmentPtr: { reg: '$sgpr8_sgpr9' }
541*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
542*41ed16c3SJun Wang; GFX10-NEXT:    flatScratchInit: { reg: '$sgpr12_sgpr13' }
543*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr14' }
544*41ed16c3SJun Wang
545*41ed16c3SJun Wang;
546*41ed16c3SJun Wang; GFX10: name:            use_intrinsic_workitem_id_x
547*41ed16c3SJun Wang; GFX10:       argumentInfo:
548*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
549*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
550*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
551*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
552*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
553*41ed16c3SJun Wang;
554*41ed16c3SJun Wang; GFX10: name:            use_intrinsic_workitem_id_x_cc_kernel
555*41ed16c3SJun Wang; GFX10:       argumentInfo:
556*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
557*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr4' }
558*41ed16c3SJun Wang;
559*41ed16c3SJun Wang; GFX10: name:            call_use_intrinsic_workitem_id_x
560*41ed16c3SJun Wang; GFX10:       argumentInfo:
561*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
562*41ed16c3SJun Wang; GFX10-NEXT:    dispatchPtr:     { reg: '$sgpr4_sgpr5' }
563*41ed16c3SJun Wang; GFX10-NEXT:    queuePtr:        { reg: '$sgpr6_sgpr7' }
564*41ed16c3SJun Wang; GFX10-NEXT:    dispatchID:      { reg: '$sgpr10_sgpr11' }
565*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr12' }
566*41ed16c3SJun Wang;
567*41ed16c3SJun Wang; GFX10: name:            call_use_intrinsic_workitem_id_x_cc_kernel
568*41ed16c3SJun Wang; GFX10:       argumentInfo:
569*41ed16c3SJun Wang; GFX10-NEXT:    privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
570*41ed16c3SJun Wang; GFX10-NEXT:    workGroupIDX:    { reg: '$sgpr4' }
571