143fd244bSPierre van Houtryve; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-no-externalize-globals 2*9347b66cSPierre van Houtryve; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 --implicit-check-not=define %s 3*9347b66cSPierre van Houtryve; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 --implicit-check-not=define %s 4*9347b66cSPierre van Houtryve; RUN: llvm-dis -o - %t2 | FileCheck --check-prefix=CHECK2 --implicit-check-not=define %s 543fd244bSPierre van Houtryve 643fd244bSPierre van Houtryve; 3 kernels use private/internal global variables. 743fd244bSPierre van Houtryve; The GVs should be copied in each partition as needed. 843fd244bSPierre van Houtryve 943fd244bSPierre van Houtryve; CHECK0: @bar = internal constant ptr 1043fd244bSPierre van Houtryve; CHECK0: define amdgpu_kernel void @C 1143fd244bSPierre van Houtryve 1243fd244bSPierre van Houtryve; CHECK1: @foo = private constant ptr 1343fd244bSPierre van Houtryve; CHECK1: define amdgpu_kernel void @A 1443fd244bSPierre van Houtryve 1543fd244bSPierre van Houtryve; CHECK2: @foo = private constant ptr 1643fd244bSPierre van Houtryve; CHECK2: @bar = internal constant ptr 1743fd244bSPierre van Houtryve; CHECK2: define amdgpu_kernel void @B 1843fd244bSPierre van Houtryve 1943fd244bSPierre van Houtryve@foo = private constant ptr poison 2043fd244bSPierre van Houtryve@bar = internal constant ptr poison 2143fd244bSPierre van Houtryve 2243fd244bSPierre van Houtryvedefine amdgpu_kernel void @A() { 2343fd244bSPierre van Houtryve store i32 42, ptr @foo 2443fd244bSPierre van Houtryve ret void 2543fd244bSPierre van Houtryve} 2643fd244bSPierre van Houtryve 2743fd244bSPierre van Houtryvedefine amdgpu_kernel void @B() { 2843fd244bSPierre van Houtryve store i32 42, ptr @foo 2943fd244bSPierre van Houtryve store i32 42, ptr @bar 3043fd244bSPierre van Houtryve ret void 3143fd244bSPierre van Houtryve} 3243fd244bSPierre van Houtryve 3343fd244bSPierre van Houtryvedefine amdgpu_kernel void @C() { 3443fd244bSPierre van Houtryve store i32 42, ptr @bar 3543fd244bSPierre van Houtryve ret void 3643fd244bSPierre van Houtryve} 37