brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · e74b90b Raw
125 lines · plain
1; RUN: llvm-split -o %t_s3_ %s -j 3 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-max-depth=82; 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=87; 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 @A()19; SPLIT3-CHECK0: define internal void @HelperA()20; SPLIT3-CHECK0: define amdgpu_kernel void @B()21; SPLIT3-CHECK0: define internal void @HelperB()22 23; SPLIT3-CHECK1: define amdgpu_kernel void @C()24; SPLIT3-CHECK1: define internal void @HelperC()25 26; SPLIT3-CHECK2: define internal void @HelperA()27; SPLIT3-CHECK2: define internal void @HelperB()28; SPLIT3-CHECK2: define internal void @HelperC()29; SPLIT3-CHECK2: define amdgpu_kernel void @AB()30; SPLIT3-CHECK2: define amdgpu_kernel void @BC()31; SPLIT3-CHECK2: define amdgpu_kernel void @ABC()32 33; --------------------------------------------34 35; SPLIT5-CHECK0: define amdgpu_kernel void @A()36; SPLIT5-CHECK0: define internal void @HelperA()37 38; SPLIT5-CHECK1: define amdgpu_kernel void @B()39; SPLIT5-CHECK1: define internal void @HelperB()40 41; SPLIT5-CHECK2: define internal void @HelperB()42; SPLIT5-CHECK2: define internal void @HelperC()43; SPLIT5-CHECK2: define amdgpu_kernel void @BC44 45; SPLIT5-CHECK3: define amdgpu_kernel void @C()46; SPLIT5-CHECK3: define internal void @HelperC()47 48; SPLIT5-CHECK4: define internal void @HelperA()49; SPLIT5-CHECK4: define internal void @HelperB()50; SPLIT5-CHECK4: define internal void @HelperC()51; SPLIT5-CHECK4: define amdgpu_kernel void @AB()52; SPLIT5-CHECK4: define amdgpu_kernel void @ABC()53 54define amdgpu_kernel void @A() {55  store volatile i64 42, ptr null56  store volatile i64 42, ptr null57  store volatile i64 42, ptr null58  store volatile i64 42, ptr null59  store volatile i64 42, ptr null60  call void @HelperA()61  ret void62}63 64define internal void @HelperA() {65  store volatile i32 42, ptr null66  store volatile i32 42, ptr null67  ret void68}69 70define amdgpu_kernel void @B() {71  store volatile i64 42, ptr null72  store volatile i64 42, ptr null73  store volatile i64 42, ptr null74  store volatile i64 42, ptr null75  call void @HelperB()76  ret void77}78 79define internal void @HelperB() {80  store volatile i32 42, ptr null81  store volatile i32 42, ptr null82  store volatile i32 42, ptr null83  ret void84}85 86define amdgpu_kernel void @C() {87  store volatile i64 42, ptr null88  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  call void @HelperC()96  ret void97}98 99define internal void @HelperC() {100  store volatile i32 42, ptr null101  ret void102}103 104define amdgpu_kernel void @AB() {105  store volatile i32 42, ptr null106  call void @HelperA()107  call void @HelperB()108  ret void109}110 111define amdgpu_kernel void @BC() {112  store volatile i32 42, ptr null113  store volatile i32 42, ptr null114  call void @HelperB()115  call void @HelperC()116  ret void117}118 119define amdgpu_kernel void @ABC() {120  call void @HelperA()121  call void @HelperB()122  call void @HelperC()123  ret void124}125