brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.0 KiB · 1ff6c14 Raw
126 lines · plain
1; RUN: llvm-split -o %t_s3_ %s -j 3 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-max-depth=22; RUN: llvm-dis -o - %t_s3_0 | FileCheck --check-prefix=SPLIT3-CHECK0 --implicit-check-not=define %s3; RUN: llvm-dis -o - %t_s3_1 | FileCheck --check-prefix=SPLIT3-CHECK1 --implicit-check-not=define %s4; RUN: llvm-dis -o - %t_s3_2 | FileCheck --check-prefix=SPLIT3-CHECK2 --implicit-check-not=define %s5 6; RUN: llvm-split -o %t_s5_ %s -j 5 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-max-depth=27; RUN: llvm-dis -o - %t_s5_0 | FileCheck --check-prefix=SPLIT5-CHECK0 --implicit-check-not=define %s8; RUN: llvm-dis -o - %t_s5_1 | FileCheck --check-prefix=SPLIT5-CHECK1 --implicit-check-not=define %s9; RUN: llvm-dis -o - %t_s5_2 | FileCheck --check-prefix=SPLIT5-CHECK2 --implicit-check-not=define %s10; RUN: llvm-dis -o - %t_s5_3 | FileCheck --check-prefix=SPLIT5-CHECK3 --implicit-check-not=define %s11; RUN: llvm-dis -o - %t_s5_4 | FileCheck --check-prefix=SPLIT5-CHECK4 --implicit-check-not=define %s12 13; Test the specifics of the search algorithm.14; This test will change depending on new heuristics we add or remove.15 16; --------------------------------------------17 18; SPLIT3-CHECK0: define amdgpu_kernel void @B()19; SPLIT3-CHECK0: define internal void @HelperB()20; SPLIT3-CHECK0: define internal void @HelperC()21; SPLIT3-CHECK0: define amdgpu_kernel void @BC()22 23; SPLIT3-CHECK1: define amdgpu_kernel void @A()24; SPLIT3-CHECK1: define internal void @HelperA()25; SPLIT3-CHECK1: define amdgpu_kernel void @C()26; SPLIT3-CHECK1: define internal void @HelperC()27 28; SPLIT3-CHECK2: define internal void @HelperA()29; SPLIT3-CHECK2: define internal void @HelperB()30; SPLIT3-CHECK2: define internal void @HelperC()31; SPLIT3-CHECK2: define amdgpu_kernel void @AB()32; SPLIT3-CHECK2: define amdgpu_kernel void @ABC()33 34; --------------------------------------------35 36; SPLIT5-CHECK0: define amdgpu_kernel void @A()37; SPLIT5-CHECK0: define internal void @HelperA()38 39; SPLIT5-CHECK1: define amdgpu_kernel void @B()40; SPLIT5-CHECK1: define internal void @HelperB()41 42; SPLIT5-CHECK2: define internal void @HelperB()43; SPLIT5-CHECK2: define internal void @HelperC()44; SPLIT5-CHECK2: define amdgpu_kernel void @BC()45 46; SPLIT5-CHECK3: define amdgpu_kernel void @C()47; SPLIT5-CHECK3: define internal void @HelperC()48 49; SPLIT5-CHECK4: define internal void @HelperA()50; SPLIT5-CHECK4: define internal void @HelperB()51; SPLIT5-CHECK4: define internal void @HelperC()52; SPLIT5-CHECK4: define amdgpu_kernel void @AB()53; SPLIT5-CHECK4: define amdgpu_kernel void @ABC()54 55define amdgpu_kernel void @A() {56  store volatile i64 42, ptr null57  store volatile i64 42, ptr null58  store volatile i64 42, ptr null59  store volatile i64 42, ptr null60  store volatile i64 42, ptr null61  call void @HelperA()62  ret void63}64 65define internal void @HelperA() {66  store volatile i32 42, ptr null67  store volatile i32 42, ptr null68  ret void69}70 71define amdgpu_kernel void @B() {72  store volatile i64 42, ptr null73  store volatile i64 42, ptr null74  store volatile i64 42, ptr null75  store volatile i64 42, ptr null76  call void @HelperB()77  ret void78}79 80define internal void @HelperB() {81  store volatile i32 42, ptr null82  store volatile i32 42, ptr null83  store volatile i32 42, ptr null84  ret void85}86 87define amdgpu_kernel void @C() {88  store volatile i64 42, ptr null89  store volatile i64 42, ptr null90  store volatile i64 42, ptr null91  store volatile i64 42, ptr null92  store volatile i64 42, ptr null93  store volatile i64 42, ptr null94  store volatile i64 42, ptr null95  store volatile i64 42, ptr null96  call void @HelperC()97  ret void98}99 100define internal void @HelperC() {101  store volatile i32 42, ptr null102  ret void103}104 105define amdgpu_kernel void @AB() {106  store volatile i32 42, ptr null107  call void @HelperA()108  call void @HelperB()109  ret void110}111 112define amdgpu_kernel void @BC() {113  store volatile i32 42, ptr null114  store volatile i32 42, ptr null115  call void @HelperB()116  call void @HelperC()117  ret void118}119 120define amdgpu_kernel void @ABC() {121  call void @HelperA()122  call void @HelperB()123  call void @HelperC()124  ret void125}126