143fd244bSPierre van Houtryve; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa 2*9347b66cSPierre van Houtryve; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 --implicit-check-not=define %s 3*9347b66cSPierre van Houtryve; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 --implicit-check-not=define %s 4*9347b66cSPierre van Houtryve; RUN: llvm-dis -o - %t2 | FileCheck --check-prefix=CHECK2 --implicit-check-not=define %s 543fd244bSPierre van Houtryve 642c40277SPierre van Houtryve; CHECK0: define internal void @HelperD 7*9347b66cSPierre van Houtryve; CHECK0: define amdgpu_kernel void @D 843fd244bSPierre van Houtryve 9*9347b66cSPierre van Houtryve; CHECK1: define internal void @HelperC 10*9347b66cSPierre van Houtryve; CHECK1: define amdgpu_kernel void @C 1143fd244bSPierre van Houtryve 12*9347b66cSPierre van Houtryve; CHECK2: define hidden void @HelperA 13*9347b66cSPierre van Houtryve; CHECK2: define hidden void @HelperB 14*9347b66cSPierre van Houtryve; CHECK2: define hidden void @CallCandidate 1543fd244bSPierre van Houtryve; CHECK2: define internal void @HelperC 16*9347b66cSPierre van Houtryve; CHECK2: define internal void @HelperD 17*9347b66cSPierre van Houtryve; CHECK2: define amdgpu_kernel void @A 18*9347b66cSPierre van Houtryve; CHECK2: define amdgpu_kernel void @B 1943fd244bSPierre van Houtryve 2043fd244bSPierre van Houtryve@addrthief = global [3 x ptr] [ptr @HelperA, ptr @HelperB, ptr @CallCandidate] 2143fd244bSPierre van Houtryve 2243fd244bSPierre van Houtryvedefine internal void @HelperA(ptr %call) { 2343fd244bSPierre van Houtryve call void %call() 2443fd244bSPierre van Houtryve ret void 2543fd244bSPierre van Houtryve} 2643fd244bSPierre van Houtryve 2743fd244bSPierre van Houtryvedefine internal void @HelperB(ptr %call) { 2842c40277SPierre van Houtryve call void @HelperC() 2943fd244bSPierre van Houtryve call void %call() 3042c40277SPierre van Houtryve call void @HelperD() 3143fd244bSPierre van Houtryve ret void 3243fd244bSPierre van Houtryve} 3343fd244bSPierre van Houtryve 3443fd244bSPierre van Houtryvedefine internal void @CallCandidate() { 3543fd244bSPierre van Houtryve ret void 3643fd244bSPierre van Houtryve} 3743fd244bSPierre van Houtryve 3843fd244bSPierre van Houtryvedefine internal void @HelperC() { 3943fd244bSPierre van Houtryve ret void 4043fd244bSPierre van Houtryve} 4143fd244bSPierre van Houtryve 4243fd244bSPierre van Houtryvedefine internal void @HelperD() { 4343fd244bSPierre van Houtryve ret void 4443fd244bSPierre van Houtryve} 4543fd244bSPierre van Houtryve 4643fd244bSPierre van Houtryvedefine amdgpu_kernel void @A(ptr %call) { 4743fd244bSPierre van Houtryve call void @HelperA(ptr %call) 4843fd244bSPierre van Houtryve ret void 4943fd244bSPierre van Houtryve} 5043fd244bSPierre van Houtryve 5143fd244bSPierre van Houtryvedefine amdgpu_kernel void @B(ptr %call) { 5243fd244bSPierre van Houtryve call void @HelperB(ptr %call) 5343fd244bSPierre van Houtryve ret void 5443fd244bSPierre van Houtryve} 5543fd244bSPierre van Houtryve 5643fd244bSPierre van Houtryvedefine amdgpu_kernel void @C() { 5743fd244bSPierre van Houtryve call void @HelperC() 5843fd244bSPierre van Houtryve ret void 5943fd244bSPierre van Houtryve} 6043fd244bSPierre van Houtryve 6143fd244bSPierre van Houtryvedefine amdgpu_kernel void @D() { 6243fd244bSPierre van Houtryve call void @HelperD() 6343fd244bSPierre van Houtryve ret void 6443fd244bSPierre van Houtryve} 65