brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · fcc8ce1 Raw
62 lines · plain
1; RUN: opt -O0 -S -mtriple=amdgcn-unknown-amdhsa -amdgpu-internalize-symbols < %s | FileCheck -check-prefix=ALL -check-prefix=OPTNONE %s2; RUN: opt -passes='default<O0>' -S -mtriple=amdgcn-unknown-amdhsa -amdgpu-internalize-symbols < %s | FileCheck -check-prefix=ALL -check-prefix=OPTNONE %s3; RUN: opt -O1 -S -mtriple=amdgcn-unknown-amdhsa -amdgpu-internalize-symbols < %s | FileCheck -check-prefix=ALL -check-prefix=OPT %s4; RUN: opt -passes='default<O1>' -S -mtriple=amdgcn-unknown-amdhsa -amdgpu-internalize-symbols < %s | FileCheck -check-prefix=ALL -check-prefix=OPT %s5 6; OPT-NOT: gvar_unused7; OPTNONE: gvar_unused8@gvar_unused = addrspace(1) global i32 poison, align 49 10; ALL: gvar_used11@gvar_used = addrspace(1) global i32 poison, align 412 13; OPT: define internal fastcc void @func_used_noinline(14; OPT-NONE: define fastcc void @func_used_noinline(15define fastcc void @func_used_noinline(ptr addrspace(1) %out, i32 %tid) #1 {16entry:17  store volatile i32 %tid, ptr addrspace(1) %out18  ret void19}20 21; OPTNONE: define fastcc void @func_used_alwaysinline(22; OPT-NOT: @func_used_alwaysinline23define fastcc void @func_used_alwaysinline(ptr addrspace(1) %out, i32 %tid) #2 {24entry:25  store volatile i32 %tid, ptr addrspace(1) %out26  ret void27}28 29; OPTNONE: define void @func_unused(30; OPT-NOT: @func_unused31define void @func_unused(ptr addrspace(1) %out, i32 %tid) #1 {32entry:33  store volatile i32 %tid, ptr addrspace(1) %out34  ret void35}36 37; ALL: define amdgpu_kernel void @kernel_unused(38define amdgpu_kernel void @kernel_unused(ptr addrspace(1) %out) #1 {39entry:40  store volatile i32 1, ptr addrspace(1) %out41  ret void42}43 44; ALL: define amdgpu_kernel void @main_kernel()45; ALL: tail call i32 @llvm.amdgcn.workitem.id.x46; ALL: tail call fastcc void @func_used_noinline47; ALL: store volatile48; ALL: ret void49define amdgpu_kernel void @main_kernel() {50entry:51  %tid = tail call i32 @llvm.amdgcn.workitem.id.x()52  tail call fastcc void @func_used_noinline(ptr addrspace(1) @gvar_used, i32 %tid)53  tail call fastcc void @func_used_alwaysinline(ptr addrspace(1) @gvar_used, i32 %tid)54  ret void55}56 57declare i32 @llvm.amdgcn.workitem.id.x() #058 59attributes #0 = { nounwind readnone }60attributes #1 = { noinline nounwind }61attributes #2 = { alwaysinline nounwind }62