1; RUN: opt -O1 -S -mtriple=amdgcn-unknown-amdhsa -amdgpu-internalize-symbols < %s | FileCheck %s 2; CHECK-NOT: unused 3; CHECK-NOT: foo_used 4; CHECK: gvar_used 5; CHECK: main_kernel 6 7@gvar_unused = addrspace(1) global i32 undef, align 4 8@gvar_used = addrspace(1) global i32 undef, align 4 9 10; Function Attrs: alwaysinline nounwind 11define amdgpu_kernel void @foo_unused(i32 addrspace(1)* %out) local_unnamed_addr #1 { 12entry: 13 store i32 1, i32 addrspace(1)* %out 14 ret void 15} 16 17; Function Attrs: alwaysinline nounwind 18define amdgpu_kernel void @foo_used(i32 addrspace(1)* %out, i32 %tid) local_unnamed_addr #1 { 19entry: 20 store i32 %tid, i32 addrspace(1)* %out 21 ret void 22} 23 24define amdgpu_kernel void @main_kernel() { 25entry: 26 %tid = call i32 @llvm.amdgcn.workitem.id.x() 27 tail call void @foo_used(i32 addrspace(1)* @gvar_used, i32 %tid) nounwind 28 ret void 29} 30 31declare i32 @llvm.amdgcn.workitem.id.x() #0 32 33attributes #0 = { nounwind readnone } 34 35attributes #1 = { alwaysinline nounwind } 36