1; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -amdgpu-annotate-kernel-features  %s | FileCheck -check-prefix=GCN %s
2
3; GCN-LABEL: define internal void @indirect() #0 {
4define internal void @indirect() {
5    ret void
6}
7
8; GCN-LABEL: define amdgpu_kernel void @test_simple_indirect_call() #1 {
9define amdgpu_kernel void @test_simple_indirect_call() #0 {
10    %fptr = alloca void()*
11    store void()* @indirect, void()** %fptr
12    %fp = load void()*, void()** %fptr
13    call void %fp()
14    ret void
15}
16
17attributes #0 = { "amdgpu-dispatch-id" }
18
19; compiler modification to attributes
20attributes #0 = { "amdgpu-dispatch-id" "amdgpu-dispatch-ptr" "amdgpu-implicitarg-ptr" "amdgpu-work-group-id-x" "amdgpu-work-group-id-y" "amdgpu-work-group-id-z" "amdgpu-work-item-id-x" "amdgpu-work-item-id-y" "amdgpu-work-item-id-z" }
21attributes #1 = { "amdgpu-calls" "amdgpu-dispatch-id" "amdgpu-dispatch-ptr" "amdgpu-implicitarg-ptr" "amdgpu-stack-objects" "amdgpu-work-group-id-x" "amdgpu-work-group-id-y" "amdgpu-work-group-id-z" "amdgpu-work-item-id-x" "amdgpu-work-item-id-y" "amdgpu-work-item-id-z" }
22
23