brintos

brintos / llvm-project-archived public Read only

0
0
Text · 23.8 KiB · 35f0ccf Raw
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