xref: /llvm-project/llvm/test/tools/llvm-split/AMDGPU/kernels-dependency-duplication.ll (revision 43fd244b3d5c08bfd3aad0913b0fe84339842f4e)
1*43fd244bSPierre van Houtryve; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa
2*43fd244bSPierre van Houtryve; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s
3*43fd244bSPierre van Houtryve; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s
4*43fd244bSPierre van Houtryve; RUN: llvm-dis -o - %t2 | FileCheck --check-prefix=CHECK2 %s
5*43fd244bSPierre van Houtryve
6*43fd244bSPierre van Houtryve; 3 kernels share a common helper, that helper should be
7*43fd244bSPierre van Houtryve; cloned in all partitions.
8*43fd244bSPierre van Houtryve
9*43fd244bSPierre van Houtryve; CHECK0-NOT: define
10*43fd244bSPierre van Houtryve; CHECK0: define internal void @Helper
11*43fd244bSPierre van Houtryve; CHECK0: define amdgpu_kernel void @C
12*43fd244bSPierre van Houtryve; CHECK0-NOT: define
13*43fd244bSPierre van Houtryve
14*43fd244bSPierre van Houtryve; CHECK1-NOT: define
15*43fd244bSPierre van Houtryve; CHECK1: define internal void @Helper
16*43fd244bSPierre van Houtryve; CHECK1: define amdgpu_kernel void @B
17*43fd244bSPierre van Houtryve; CHECK1-NOT: define
18*43fd244bSPierre van Houtryve
19*43fd244bSPierre van Houtryve; CHECK2-NOT: define
20*43fd244bSPierre van Houtryve; CHECK2: define internal void @Helper
21*43fd244bSPierre van Houtryve; CHECK2: define amdgpu_kernel void @A
22*43fd244bSPierre van Houtryve; CHECK2-NOT: define
23*43fd244bSPierre van Houtryve
24*43fd244bSPierre van Houtryvedefine internal void @Helper() {
25*43fd244bSPierre van Houtryve  ret void
26*43fd244bSPierre van Houtryve}
27*43fd244bSPierre van Houtryve
28*43fd244bSPierre van Houtryvedefine amdgpu_kernel void @A() {
29*43fd244bSPierre van Houtryve  call void @Helper()
30*43fd244bSPierre van Houtryve  ret void
31*43fd244bSPierre van Houtryve}
32*43fd244bSPierre van Houtryve
33*43fd244bSPierre van Houtryvedefine amdgpu_kernel void @B() {
34*43fd244bSPierre van Houtryve  call void @Helper()
35*43fd244bSPierre van Houtryve  ret void
36*43fd244bSPierre van Houtryve}
37*43fd244bSPierre van Houtryve
38*43fd244bSPierre van Houtryvedefine amdgpu_kernel void @C() {
39*43fd244bSPierre van Houtryve  call void @Helper()
40*43fd244bSPierre van Houtryve  ret void
41*43fd244bSPierre van Houtryve}
42