summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AMDGPU/internalize.ll
blob: 968b1d326a76db3ec90335ba73a20629fd4c32b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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 }
OpenPOWER on IntegriCloud