1; RUN: llc -march=amdgcn -mcpu=tahiti -verify-machineinstrs < %s | FileCheck  %s
2; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck  %s
3; RUN: llc -march=r600 -mcpu=redwood -verify-machineinstrs < %s | FileCheck %s
4
5; CHECK-NOT: {{^}}func:
6define internal fastcc i32 @func(i32 %a) {
7entry:
8  %tmp0 = add i32 %a, 1
9  ret i32 %tmp0
10}
11
12; CHECK: {{^}}kernel:
13; CHECK-NOT: call
14define amdgpu_kernel void @kernel(i32 addrspace(1)* %out) {
15entry:
16  %tmp0 = call i32 @func(i32 1)
17  store i32 %tmp0, i32 addrspace(1)* %out
18  ret void
19}
20
21; CHECK: {{^}}kernel2:
22; CHECK-NOT: call
23define amdgpu_kernel void @kernel2(i32 addrspace(1)* %out) {
24entry:
25  call void @kernel(i32 addrspace(1)* %out)
26  ret void
27}
28
29; CHECK-NOT: func_alias
30@func_alias = alias i32 (i32), i32 (i32)* @func
31
32; CHECK: {{^}}kernel3:
33; CHECK-NOT: call
34define amdgpu_kernel void @kernel3(i32 addrspace(1)* %out) {
35entry:
36  %tmp0 = call i32 @func_alias(i32 1)
37  store i32 %tmp0, i32 addrspace(1)* %out
38  ret void
39}
40
41; CHECK-NOT: kernel_alias
42@kernel_alias = alias void (i32 addrspace(1)*), void (i32 addrspace(1)*)* @kernel
43
44; CHECK: {{^}}kernel4:
45; CHECK-NOT: call
46define amdgpu_kernel void @kernel4(i32 addrspace(1)* %out) {
47entry:
48  call void @kernel_alias(i32 addrspace(1)* %out)
49  ret void
50}
51