578 lines · plain
1; Test the generation of the attribute amdgpu-no-flat-scratch-init2; 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 %s3 4;; tests of addrspacecast5 6define void @without_global_to_flat_addrspacecast(ptr addrspace(1) %ptr) {7 store volatile i32 0, ptr addrspace(1) %ptr8 ret void9}10 11define amdgpu_kernel void @without_global_to_flat_addrspacecast_cc_kernel(ptr addrspace(1) %ptr) {12 store volatile i32 0, ptr addrspace(1) %ptr13 ret void14}15 16define void @with_global_to_flat_addrspacecast(ptr addrspace(1) %ptr) {17 %stof = addrspacecast ptr addrspace(1) %ptr to ptr18 store volatile i32 0, ptr %stof19 ret void20}21 22define amdgpu_kernel void @with_global_to_flat_addrspacecast_cc_kernel(ptr addrspace(1) %ptr) {23 %stof = addrspacecast ptr addrspace(1) %ptr to ptr24 store volatile i32 0, ptr %stof25 ret void26}27 28define void @without_region_to_flat_addrspacecast(ptr addrspace(2) %ptr) {29 store volatile i32 0, ptr addrspace(2) %ptr30 ret void31}32 33define amdgpu_kernel void @without_region_to_flat_addrspacecast_cc_kernel(ptr addrspace(2) %ptr) {34 store volatile i32 0, ptr addrspace(2) %ptr35 ret void36}37 38define void @with_region_to_flat_addrspacecast(ptr addrspace(2) %ptr) {39 %stof = addrspacecast ptr addrspace(2) %ptr to ptr40 store volatile i32 0, ptr %stof41 ret void42}43 44define amdgpu_kernel void @with_region_to_flat_addrspacecast_cc_kernel(ptr addrspace(2) %ptr) {45 %stof = addrspacecast ptr addrspace(2) %ptr to ptr46 store volatile i32 0, ptr %stof47 ret void48}49 50define void @without_group_to_flat_addrspacecast(ptr addrspace(3) %ptr) {51 store volatile i32 0, ptr addrspace(3) %ptr52 ret void53}54 55define amdgpu_kernel void @without_group_to_flat_addrspacecast_cc_kernel(ptr addrspace(3) %ptr) {56 store volatile i32 0, ptr addrspace(3) %ptr57 ret void58}59 60define void @with_group_to_flat_addrspacecast(ptr addrspace(3) %ptr) {61 %stof = addrspacecast ptr addrspace(3) %ptr to ptr62 store volatile i32 0, ptr %stof63 ret void64}65 66define amdgpu_kernel void @with_group_to_flat_addrspacecast_cc_kernel(ptr addrspace(3) %ptr) {67 %stof = addrspacecast ptr addrspace(3) %ptr to ptr68 store volatile i32 0, ptr %stof69 ret void70}71 72define void @without_constant_to_flat_addrspacecast(ptr addrspace(4) %ptr) {73 store volatile i32 0, ptr addrspace(4) %ptr74 ret void75}76 77define amdgpu_kernel void @without_constant_to_flat_addrspacecast_cc_kernel(ptr addrspace(4) %ptr) {78 store volatile i32 0, ptr addrspace(4) %ptr79 ret void80}81 82define void @with_constant_to_flat_addrspacecast(ptr addrspace(4) %ptr) {83 %stof = addrspacecast ptr addrspace(4) %ptr to ptr84 store volatile i32 0, ptr %stof85 ret void86}87 88define amdgpu_kernel void @with_constant_to_flat_addrspacecast_cc_kernel(ptr addrspace(4) %ptr) {89 %stof = addrspacecast ptr addrspace(4) %ptr to ptr90 store volatile i32 0, ptr %stof91 ret void92}93 94define void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {95 store volatile i32 0, ptr addrspace(5) %ptr96 ret void97}98 99define amdgpu_kernel void @without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {100 store volatile i32 0, ptr addrspace(5) %ptr101 ret void102}103 104define void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {105 %stof = addrspacecast ptr addrspace(5) %ptr to ptr106 store volatile i32 0, ptr %stof107 ret void108}109 110define amdgpu_kernel void @with_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {111 %stof = addrspacecast ptr addrspace(5) %ptr to ptr112 store volatile i32 0, ptr %stof113 ret void114}115 116define void @call_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {117 call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)118 ret void119}120 121define amdgpu_kernel void @call_without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {122 call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)123 ret void124}125 126define void @call_with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {127 call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)128 ret void129}130 131define amdgpu_kernel void @call_with_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {132 call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)133 ret void134}135 136define void @call_both_with_and_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {137 call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)138 call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)139 ret void140}141 142define amdgpu_kernel void @call_both_with_and_without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {143 call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)144 call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)145 ret void146}147 148define void @call_call_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {149 call void @call_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)150 ret void151}152 153define amdgpu_kernel void @call_call_without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {154 call void @call_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)155 ret void156}157 158define void @call_call_with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {159 call void @call_with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)160 ret void161}162 163define amdgpu_kernel void @call_call_with_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {164 call void @call_with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)165 ret void166}167 168define void @call_call_both_with_and_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {169 call void @call_both_with_and_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)170 ret void171}172 173define amdgpu_kernel void @call_call_both_with_and_without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {174 call void @call_both_with_and_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)175 ret void176}177 178define void @with_cast_call_without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {179 %stof = addrspacecast ptr addrspace(5) %ptr to ptr180 store volatile i32 0, ptr %stof181 call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)182 ret void183}184 185define amdgpu_kernel void @with_cast_call_without_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {186 %stof = addrspacecast ptr addrspace(5) %ptr to ptr187 store volatile i32 0, ptr %stof188 call void @without_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)189 ret void190}191 192define void @with_cast_call_with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr) {193 %stof = addrspacecast ptr addrspace(5) %ptr to ptr194 store volatile i32 0, ptr %stof195 call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)196 ret void197}198 199define amdgpu_kernel void @with_cast_call_with_private_to_flat_addrspacecast_cc_kernel(ptr addrspace(5) %ptr) {200 %stof = addrspacecast ptr addrspace(5) %ptr to ptr201 store volatile i32 0, ptr %stof202 call void @with_private_to_flat_addrspacecast(ptr addrspace(5) %ptr)203 ret void204}205 206;; tests of indirect call, intrinsics207 208@gv.fptr0 = external hidden unnamed_addr addrspace(4) constant ptr, align 4209 210define void @with_indirect_call() {211 %fptr = load ptr, ptr addrspace(4) @gv.fptr0212 call void %fptr()213 ret void214}215 216define amdgpu_kernel void @with_indirect_call_cc_kernel() {217 %fptr = load ptr, ptr addrspace(4) @gv.fptr0218 call void %fptr()219 ret void220}221 222define void @call_with_indirect_call() {223 call void @with_indirect_call()224 ret void225}226 227define amdgpu_kernel void @call_with_indirect_call_cc_kernel() {228 call void @with_indirect_call()229 ret void230}231 232declare i32 @llvm.amdgcn.workgroup.id.x()233 234define void @use_intrinsic_workitem_id_x() {235 %val = call i32 @llvm.amdgcn.workitem.id.x()236 store volatile i32 %val, ptr addrspace(1) null237 ret void238}239 240define amdgpu_kernel void @use_intrinsic_workitem_id_x_cc_kernel() {241 %val = call i32 @llvm.amdgcn.workitem.id.x()242 store volatile i32 %val, ptr addrspace(1) null243 ret void244}245 246define void @call_use_intrinsic_workitem_id_x() {247 call void @use_intrinsic_workitem_id_x()248 ret void249}250 251define amdgpu_kernel void @call_use_intrinsic_workitem_id_x_cc_kernel() {252 call void @use_intrinsic_workitem_id_x()253 ret void254}255 256; GFX10: name: without_global_to_flat_addrspacecast257; GFX10: argumentInfo:258; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }259; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }260; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }261; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }262; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }263;264; GFX10: name: without_global_to_flat_addrspacecast_cc_kernel265; GFX10: argumentInfo:266; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }267; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }268; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }269;270; GFX10: name: with_global_to_flat_addrspacecast271; GFX10: argumentInfo:272; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }273; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }274; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }275; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }276; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }277;278; GFX10: name: with_global_to_flat_addrspacecast_cc_kernel279; GFX10: argumentInfo:280; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }281; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }282; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }283; GFX10-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr7' }284;285; GFX10: name: without_region_to_flat_addrspacecast286; GFX10: argumentInfo:287; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }288; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }289; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }290; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }291; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }292;293; GFX10: name: without_region_to_flat_addrspacecast_cc_kernel294; GFX10: argumentInfo:295; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }296; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }297; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }298;299; GFX10: name: with_region_to_flat_addrspacecast300; GFX10: argumentInfo:301; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }302; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }303; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }304; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }305; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }306;307; GFX10: name: with_region_to_flat_addrspacecast_cc_kernel308; GFX10: argumentInfo:309; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }310; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }311; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }312;313; GFX10: name: without_group_to_flat_addrspacecast314; GFX10: argumentInfo:315; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }316; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }317; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }318; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }319; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }320;321; GFX10: name: without_group_to_flat_addrspacecast_cc_kernel322; GFX10: argumentInfo:323; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }324; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }325; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }326;327; GFX10: name: with_group_to_flat_addrspacecast328; GFX10: argumentInfo:329; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }330; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }331; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }332; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }333; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }334;335; GFX10: name: with_group_to_flat_addrspacecast_cc_kernel336; GFX10: argumentInfo:337; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }338; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }339; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }340;341; GFX10: name: without_constant_to_flat_addrspacecast342; GFX10: argumentInfo:343; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }344; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }345; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }346; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }347; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }348;349; GFX10: name: without_constant_to_flat_addrspacecast_cc_kernel350; GFX10: argumentInfo:351; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }352; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }353; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }354;355; GFX10: name: with_constant_to_flat_addrspacecast356; GFX10: argumentInfo:357; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }358; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }359; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }360; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }361; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }362;363; GFX10: name: with_constant_to_flat_addrspacecast_cc_kernel364; GFX10: argumentInfo:365; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }366; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }367; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }368;369; GFX10: name: without_private_to_flat_addrspacecast370; GFX10: argumentInfo:371; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }372; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }373; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }374; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }375; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }376;377; GFX10: name: without_private_to_flat_addrspacecast_cc_kernel378; GFX10: argumentInfo:379; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }380; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }381; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }382;383; GFX10: name: with_private_to_flat_addrspacecast384; GFX10: argumentInfo:385; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }386; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }387; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }388; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }389; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }390;391; GFX10: name: with_private_to_flat_addrspacecast_cc_kernel392; GFX10: argumentInfo:393; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }394; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }395; GFX10-NEXT: flatScratchInit: { reg: '$sgpr6_sgpr7' }396; GFX10-NEXT: workGroupIDX: { reg: '$sgpr8' }397;398; GFX10: name: call_without_private_to_flat_addrspacecast399; GFX10: argumentInfo:400; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }401; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }402; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }403; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }404; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }405;406; GFX10: name: call_without_private_to_flat_addrspacecast_cc_kernel407; GFX10: argumentInfo:408; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }409; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }410; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }411;412; GFX10: name: call_with_private_to_flat_addrspacecast413; GFX10: argumentInfo:414; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }415; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }416; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }417; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }418; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }419;420; GFX10: name: call_with_private_to_flat_addrspacecast_cc_kernel421; GFX10: argumentInfo:422; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }423; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }424; GFX10-NEXT: flatScratchInit: { reg: '$sgpr6_sgpr7' }425; GFX10-NEXT: workGroupIDX: { reg: '$sgpr8' }426;427; GFX10: name: call_both_with_and_without_private_to_flat_addrspacecast428; GFX10: argumentInfo:429; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }430; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }431; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }432; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }433; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }434;435; GFX10: name: call_both_with_and_without_private_to_flat_addrspacecast_cc_kernel436; GFX10: argumentInfo:437; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }438; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }439; GFX10-NEXT: flatScratchInit: { reg: '$sgpr6_sgpr7' }440; GFX10-NEXT: workGroupIDX: { reg: '$sgpr8' }441;442; GFX10: name: call_call_without_private_to_flat_addrspacecast443; GFX10: argumentInfo:444; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }445; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }446; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }447; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }448; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }449;450; GFX10: name: call_call_without_private_to_flat_addrspacecast_cc_kernel451; GFX10: argumentInfo:452; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }453; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }454; GFX10-NEXT: workGroupIDX: { reg: '$sgpr6' }455;456; GFX10: name: call_call_with_private_to_flat_addrspacecast457; GFX10: argumentInfo:458; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }459; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }460; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }461; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }462; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }463;464; GFX10: name: call_call_with_private_to_flat_addrspacecast_cc_kernel465; GFX10: argumentInfo:466; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }467; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }468; GFX10-NEXT: flatScratchInit: { reg: '$sgpr6_sgpr7' }469; GFX10-NEXT: workGroupIDX: { reg: '$sgpr8' }470;471; GFX10: name: call_call_both_with_and_without_private_to_flat_addrspacecast472; GFX10: argumentInfo:473; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }474; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }475; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }476; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }477; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }478;479; GFX10: name: call_call_both_with_and_without_private_to_flat_addrspacecast_cc_kernel480; GFX10: argumentInfo:481; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }482; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }483; GFX10-NEXT: flatScratchInit: { reg: '$sgpr6_sgpr7' }484; GFX10-NEXT: workGroupIDX: { reg: '$sgpr8' }485;486; GFX10: name: with_cast_call_without_private_to_flat_addrspacecast487; GFX10: argumentInfo:488; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }489; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }490; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }491; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }492; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }493;494; GFX10: name: with_cast_call_without_private_to_flat_addrspacecast_cc_kernel495; GFX10: argumentInfo:496; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }497; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }498; GFX10-NEXT: flatScratchInit: { reg: '$sgpr6_sgpr7' }499; GFX10-NEXT: workGroupIDX: { reg: '$sgpr8' }500;501; GFX10: name: with_cast_call_with_private_to_flat_addrspacecast502; GFX10: argumentInfo:503; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }504; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }505; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }506; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }507; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }508;509; GFX10: name: with_cast_call_with_private_to_flat_addrspacecast_cc_kernel510; GFX10: argumentInfo:511; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }512; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }513; GFX10-NEXT: flatScratchInit: { reg: '$sgpr6_sgpr7' }514; GFX10-NEXT: workGroupIDX: { reg: '$sgpr8' }515;516; GFX10: name: with_indirect_call517; GFX10: argumentInfo:518; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }519; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }520; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }521; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }522; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }523;524; GFX10: name: with_indirect_call_cc_kernel525; GFX10: argumentInfo:526; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }527; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }528; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }529; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr8_sgpr9' }530; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }531; GFX10-NEXT: flatScratchInit: { reg: '$sgpr12_sgpr13' }532; GFX10-NEXT: workGroupIDX: { reg: '$sgpr14' }533;534; GFX10: name: call_with_indirect_call535; GFX10: argumentInfo:536; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }537; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }538; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }539; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }540; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }541;542; GFX10: name: call_with_indirect_call_cc_kernel543; GFX10: argumentInfo:544; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }545; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }546; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }547; GFX10-NEXT: kernargSegmentPtr: { reg: '$sgpr8_sgpr9' }548; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }549; GFX10-NEXT: flatScratchInit: { reg: '$sgpr12_sgpr13' }550; GFX10-NEXT: workGroupIDX: { reg: '$sgpr14' }551 552;553; GFX10: name: use_intrinsic_workitem_id_x554; GFX10: argumentInfo:555; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }556; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }557; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }558; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }559; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }560;561; GFX10: name: use_intrinsic_workitem_id_x_cc_kernel562; GFX10: argumentInfo:563; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }564; GFX10-NEXT: workGroupIDX: { reg: '$sgpr4' }565;566; GFX10: name: call_use_intrinsic_workitem_id_x567; GFX10: argumentInfo:568; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }569; GFX10-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }570; GFX10-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }571; GFX10-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }572; GFX10-NEXT: workGroupIDX: { reg: '$sgpr12' }573;574; GFX10: name: call_use_intrinsic_workitem_id_x_cc_kernel575; GFX10: argumentInfo:576; GFX10-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }577; GFX10-NEXT: workGroupIDX: { reg: '$sgpr4' }578