1 ; RUN: llc -mattr=+code-object-v3 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=obj -o - < %s | llvm-readobj -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX900 --check-prefix=NOTES %s
2 ; RUN: llc -mattr=+code-object-v3 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-dump-hsa-metadata -amdgpu-verify-hsa-metadata -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s
5 ; CHECK: amdhsa.kernels:
6 ; CHECK: .symbol: test_non_enqueue_kernel_caller.kd
7 ; CHECK: .name: test_non_enqueue_kernel_caller
8 ; CHECK: .language: OpenCL C
9 ; CHECK: .language_version:
13 ; CHECK-NEXT: - .type_name: char
14 ; CHECK-NEXT: .value_kind: by_value
15 ; CHECK-NEXT: .offset: 0
16 ; CHECK-NEXT: .size: 1
17 ; CHECK-NEXT: .value_type: i8
18 ; CHECK-NEXT: .name: a
19 ; CHECK-NEXT: - .value_kind: hidden_global_offset_x
20 ; CHECK-NEXT: .offset: 8
21 ; CHECK-NEXT: .size: 8
22 ; CHECK-NEXT: .value_type: i64
23 ; CHECK-NEXT: - .value_kind: hidden_global_offset_y
24 ; CHECK-NEXT: .offset: 16
25 ; CHECK-NEXT: .size: 8
26 ; CHECK-NEXT: .value_type: i64
27 ; CHECK-NEXT: - .value_kind: hidden_global_offset_z
28 ; CHECK-NEXT: .offset: 24
29 ; CHECK-NEXT: .size: 8
30 ; CHECK-NEXT: .value_type: i64
31 ; CHECK-NOT: .value_kind: hidden_default_queue
32 ; CHECK-NOT: .value_kind: hidden_completion_action
33 define amdgpu_kernel void @test_non_enqueue_kernel_caller(i8 %a)
34 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
35 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 {
39 ; CHECK: .symbol: test_enqueue_kernel_caller.kd
40 ; CHECK: .name: test_enqueue_kernel_caller
41 ; CHECK: .language: OpenCL C
42 ; CHECK: .language_version:
46 ; CHECK-NEXT: - .type_name: char
47 ; CHECK-NEXT: .value_kind: by_value
48 ; CHECK-NEXT: .offset: 0
49 ; CHECK-NEXT: .size: 1
50 ; CHECK-NEXT: .value_type: i8
51 ; CHECK-NEXT: .name: a
52 ; CHECK-NEXT: - .value_kind: hidden_global_offset_x
53 ; CHECK-NEXT: .offset: 8
54 ; CHECK-NEXT: .size: 8
55 ; CHECK-NEXT: .value_type: i64
56 ; CHECK-NEXT: - .value_kind: hidden_global_offset_y
57 ; CHECK-NEXT: .offset: 16
58 ; CHECK-NEXT: .size: 8
59 ; CHECK-NEXT: .value_type: i64
60 ; CHECK-NEXT: - .value_kind: hidden_global_offset_z
61 ; CHECK-NEXT: .offset: 24
62 ; CHECK-NEXT: .size: 8
63 ; CHECK-NEXT: .value_type: i64
64 ; CHECK-NEXT: - .value_kind: hidden_none
65 ; CHECK-NEXT: .offset: 32
66 ; CHECK-NEXT: .size: 8
67 ; CHECK-NEXT: .value_type: i8
68 ; CHECK-NEXT: .address_space: global
69 ; CHECK-NEXT: - .value_kind: hidden_default_queue
70 ; CHECK-NEXT: .offset: 40
71 ; CHECK-NEXT: .size: 8
72 ; CHECK-NEXT: .value_type: i8
73 ; CHECK-NEXT: .address_space: global
74 ; CHECK-NEXT: - .value_kind: hidden_completion_action
75 ; CHECK-NEXT: .offset: 48
76 ; CHECK-NEXT: .size: 8
77 ; CHECK-NEXT: .value_type: i8
78 ; CHECK-NEXT: .address_space: global
79 define amdgpu_kernel void @test_enqueue_kernel_caller(i8 %a) #0
80 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
81 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 {
85 ; CHECK: amdhsa.version:
88 ; CHECK-NOT: amdhsa.printf:
90 attributes #0 = { "calls-enqueue-kernel" }
97 !opencl.ocl.version = !{!90}
101 ; PARSER: AMDGPU HSA Metadata Parser Test: PASS