xref: /llvm-project/llvm/test/tools/llvm-split/AMDGPU/kernels-cost-ranking.ll (revision 9347b66cfcd9acf84dbbd500b6344041c587f6a9)
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; 3 kernels with each their own dependencies should go into 3
7; distinct partitions. The most expensive kernel should be
8; seen first and go into the last partition.
9
10; CHECK0: define amdgpu_kernel void @C
11; CHECK0: define internal void @HelperC
12; CHECK0-NOT: define
13
14; CHECK1: define amdgpu_kernel void @A
15; CHECK1: define internal void @HelperA
16
17; CHECK2: define amdgpu_kernel void @B
18; CHECK2: define internal void @HelperB
19
20define amdgpu_kernel void @A() {
21  call void @HelperA()
22  ret void
23}
24
25define internal void @HelperA() {
26  ret void
27}
28
29define amdgpu_kernel void @B(ptr %x) {
30  store i64 42, ptr %x
31  store i64 43, ptr %x
32  store i64 44, ptr %x
33  call void @HelperB()
34  ret void
35}
36
37define internal void @HelperB() {
38  ret void
39}
40
41define amdgpu_kernel void @C() {
42  call void @HelperC()
43  ret void
44}
45
46define internal void @HelperC() {
47  ret void
48}
49