brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 5dfb95c Raw
76 lines · plain
1; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa2; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s3; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s4; RUN: llvm-dis -o - %t2 | FileCheck --check-prefix=CHECK2 %s5 6; Test load balancing logic with 6 kernels.7;8; Kernels go from most expensive (A == 6) to least expensive (F == 1)9;10; Load balancing should work like this (current partition cost is in parens)11;12; Initial    -> [P0(0), P1(0), P2(0)]13;14; A(6) goes in 2 -> [P2(6), P0(0), P1(0)]15; B(5) goes in 1 -> [P2(6), P1(5), P0(4)]16; C(4) goes in 0 -> [P2(6), P1(5), P0(4)]17 18; D(3) goes in 0 -> [P0(7), P2(6), P1(5)]19; E(2) goes in 1 -> [P0(7), P1(7), P2(6)]20; F(1) goes in 2 -> [P0(7), P1(7), P2(7)]21 22; CHECK0-NOT: define23; CHECK0: define amdgpu_kernel void @C24; CHECK0: define amdgpu_kernel void @D25; CHECK0-NOT: define26 27; CHECK1-NOT: define28; CHECK1: define amdgpu_kernel void @B29; CHECK1: define amdgpu_kernel void @E30; CHECK1-NOT: define31 32; CHECK2-NOT: define33; CHECK2: define amdgpu_kernel void @A34; CHECK2: define amdgpu_kernel void @F35; CHECK2-NOT: define36 37 38define amdgpu_kernel void @A(ptr %x) {39  store i64 42, ptr %x40  store i64 43, ptr %x41  store i64 44, ptr %x42  store i64 45, ptr %x43  store i64 46, ptr %x44  ret void45}46 47define amdgpu_kernel void @B(ptr %x) {48  store i64 42, ptr %x49  store i64 43, ptr %x50  store i64 44, ptr %x51  store i64 45, ptr %x52  ret void53}54 55define amdgpu_kernel void @C(ptr %x) {56  store i64 42, ptr %x57  store i64 43, ptr %x58  store i64 44, ptr %x59  ret void60}61 62define amdgpu_kernel void @D(ptr %x) {63  store i64 42, ptr %x64  store i64 43, ptr %x65  ret void66}67 68define amdgpu_kernel void @E(ptr %x) {69  store i64 42, ptr %x70  ret void71}72 73define amdgpu_kernel void @F() {74  ret void75}76