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