1; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=obj -o - < %s | llvm-readelf --notes - | FileCheck %s 2; RUN: llc -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 3 4; CHECK: --- 5; CHECK: amdhsa.kernels: 6; CHECK: - .args: 7; CHECK-NEXT: - .name: a 8; CHECK-NEXT: .offset: 0 9; CHECK-NEXT: .size: 1 10; CHECK-NEXT: .type_name: char 11; CHECK-NEXT: .value_kind: by_value 12; CHECK-NEXT: - .offset: 8 13; CHECK-NEXT: .size: 8 14; CHECK-NEXT: .value_kind: hidden_global_offset_x 15; CHECK-NEXT: - .offset: 16 16; CHECK-NEXT: .size: 8 17; CHECK-NEXT: .value_kind: hidden_global_offset_y 18; CHECK-NEXT: - .offset: 24 19; CHECK-NEXT: .size: 8 20; CHECK-NEXT: .value_kind: hidden_global_offset_z 21; CHECK-NEXT: - .address_space: global 22; CHECK-NEXT: .offset: 32 23; CHECK-NEXT: .size: 8 24; CHECK-NEXT: .value_kind: hidden_hostcall_buffer 25; CHECK: .language: OpenCL C 26; CHECK-NEXT: .language_version: 27; CHECK-NEXT: - 2 28; CHECK-NEXT: - 0 29; CHECK: .name: test_kernel 30; CHECK: .symbol: test_kernel.kd 31 32declare <2 x i64> @__ockl_hostcall_internal(i8*, i32, i64, i64, i64, i64, i64, i64, i64, i64) 33 34define amdgpu_kernel void @test_kernel(i8 %a) #0 35 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 36 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 { 37 ret void 38} 39 40; CHECK: amdhsa.version: 41; CHECK-NEXT: - 1 42; CHECK-NEXT: - 0 43 44attributes #0 = { "amdgpu-implicitarg-num-bytes"="48" } 45 46!1 = !{i32 0} 47!2 = !{!"none"} 48!3 = !{!"char"} 49!4 = !{!""} 50 51!opencl.ocl.version = !{!90} 52!90 = !{i32 2, i32 0} 53 54; PARSER: AMDGPU HSA Metadata Parser Test: PASS 55