xref: /llvm-project/llvm/test/tools/llvm-split/AMDGPU/kernels-dependency-indirect.ll (revision d656b2063262d59c3565e63095104c01d1f6a5a3)
1; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa
2; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 --implicit-check-not=define %s
3; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 --implicit-check-not=define %s
4; RUN: llvm-dis -o - %t2 | FileCheck --check-prefix=CHECK2 --implicit-check-not=define %s
5
6; CHECK0: define internal void @HelperD
7; CHECK0: define amdgpu_kernel void @D
8
9; CHECK1: define internal void @HelperC
10; CHECK1: define amdgpu_kernel void @C
11
12; CHECK2: define hidden void @HelperA
13; CHECK2: define hidden void @HelperB
14; CHECK2: define hidden void @CallCandidate
15; CHECK2: define internal void @HelperC
16; CHECK2: define internal void @HelperD
17; CHECK2: define amdgpu_kernel void @A
18; CHECK2: define amdgpu_kernel void @B
19
20@addrthief = global [3 x ptr] [ptr @HelperA, ptr @HelperB, ptr @CallCandidate]
21
22define internal void @HelperA(ptr %call) {
23  call void %call()
24  ret void
25}
26
27define internal void @HelperB(ptr %call) {
28  call void @HelperC()
29  call void %call()
30  call void @HelperD()
31  ret void
32}
33
34define internal void @CallCandidate() {
35  ret void
36}
37
38define internal void @HelperC() {
39  ret void
40}
41
42define internal void @HelperD() {
43  ret void
44}
45
46define amdgpu_kernel void @A(ptr %call) {
47  call void @HelperA(ptr %call)
48  ret void
49}
50
51define amdgpu_kernel void @B(ptr %call) {
52  call void @HelperB(ptr %call)
53  ret void
54}
55
56define amdgpu_kernel void @C() {
57  call void @HelperC()
58  ret void
59}
60
61define amdgpu_kernel void @D() {
62  call void @HelperD()
63  ret void
64}
65