diff options
Diffstat (limited to 'test/CodeGen/AMDGPU/internalize.ll')
-rw-r--r-- | test/CodeGen/AMDGPU/internalize.ll | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/CodeGen/AMDGPU/internalize.ll b/test/CodeGen/AMDGPU/internalize.ll new file mode 100644 index 000000000000..968b1d326a76 --- /dev/null +++ b/test/CodeGen/AMDGPU/internalize.ll @@ -0,0 +1,35 @@ +; RUN: opt -O1 -S -mtriple=amdgcn-unknown-amdhsa -amdgpu-internalize-symbols < %s | FileCheck %s +; CHECK-NOT: unused +; CHECK-NOT: foo_used +; CHECK: gvar_used +; CHECK: main_kernel + +@gvar_unused = addrspace(1) global i32 undef, align 4 +@gvar_used = addrspace(1) global i32 undef, align 4 + +; Function Attrs: alwaysinline nounwind +define amdgpu_kernel void @foo_unused(i32 addrspace(1)* %out) local_unnamed_addr #1 { +entry: + store i32 1, i32 addrspace(1)* %out + ret void +} + +; Function Attrs: alwaysinline nounwind +define amdgpu_kernel void @foo_used(i32 addrspace(1)* %out, i32 %tid) local_unnamed_addr #1 { +entry: + store i32 %tid, i32 addrspace(1)* %out + ret void +} + +define amdgpu_kernel void @main_kernel() { +entry: + %tid = call i32 @llvm.amdgcn.workitem.id.x() + tail call void @foo_used(i32 addrspace(1)* @gvar_used, i32 %tid) nounwind + ret void +} + +declare i32 @llvm.amdgcn.workitem.id.x() #0 + +attributes #0 = { nounwind readnone } + +attributes #1 = { alwaysinline nounwind } |