165 lines · plain
1; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=obj -o - < %s | llvm-readelf --notes - | FileCheck --check-prefix=CHECK %s2; 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 %s3 4; CHECK: ---5; CHECK: amdhsa.kernels:6; CHECK: - .args:7; CHECK-NEXT: - .name: a8; CHECK-NEXT: .offset: 09; CHECK-NEXT: .size: 110; CHECK-NEXT: .type_name: char11; CHECK-NEXT: .value_kind: by_value12; CHECK-NEXT: - .offset: 813; CHECK-NEXT: .size: 814; CHECK-NEXT: .value_kind: hidden_global_offset_x15; CHECK-NEXT: - .offset: 1616; CHECK-NEXT: .size: 817; CHECK-NEXT: .value_kind: hidden_global_offset_y18; CHECK-NEXT: - .offset: 2419; CHECK-NEXT: .size: 820; CHECK-NEXT: .value_kind: hidden_global_offset_z21; CHECK-NOT: .value_kind: hidden_default_queue22; CHECK-NOT: .value_kind: hidden_completion_action23; CHECK: .language: OpenCL C24; CHECK-NEXT: .language_version:25; CHECK-NEXT: - 226; CHECK-NEXT: - 027; CHECK: .name: test_non_enqueue_kernel_caller28; CHECK: .symbol: test_non_enqueue_kernel_caller.kd29define amdgpu_kernel void @test_non_enqueue_kernel_caller(i8 %a) #030 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !331 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 {32 ret void33}34 35; CHECK: - .args:36; CHECK-NEXT: - .name: a37; CHECK-NEXT: .offset: 038; CHECK-NEXT: .size: 139; CHECK-NEXT: .type_name: char40; CHECK-NEXT: .value_kind: by_value41; CHECK-NEXT: - .offset: 842; CHECK-NEXT: .size: 843; CHECK-NEXT: .value_kind: hidden_global_offset_x44; CHECK-NEXT: - .offset: 1645; CHECK-NEXT: .size: 846; CHECK-NEXT: .value_kind: hidden_global_offset_y47; CHECK-NEXT: - .offset: 2448; CHECK-NEXT: .size: 849; CHECK-NEXT: .value_kind: hidden_global_offset_z50; CHECK-NEXT: - .offset: 3251; CHECK-NEXT: .size: 852; CHECK-NEXT: .value_kind: hidden_hostcall_buffer53; CHECK-NEXT: - .offset: 4054; CHECK-NEXT: .size: 855; CHECK-NEXT: .value_kind: hidden_default_queue56; CHECK-NEXT: - .offset: 4857; CHECK-NEXT: .size: 858; CHECK-NEXT: .value_kind: hidden_completion_action59; CHECK: .language: OpenCL C60; CHECK-NEXT: .language_version:61; CHECK-NEXT: - 262; CHECK-NEXT: - 063; CHECK: .name: test_enqueue_kernel_caller64; CHECK: .symbol: test_enqueue_kernel_caller.kd65define amdgpu_kernel void @test_enqueue_kernel_caller(i8 %a) #166 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !367 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 {68 ret void69}70 71; CHECK: - .args:72; CHECK-NEXT: - .name: a73; CHECK-NEXT: .offset: 074; CHECK-NEXT: .size: 175; CHECK-NEXT: .type_name: char76; CHECK-NEXT: .value_kind: by_value77; CHECK-NEXT: - .offset: 878; CHECK-NEXT: .size: 879; CHECK-NEXT: .value_kind: hidden_global_offset_x80; CHECK-NEXT: - .offset: 1681; CHECK-NEXT: .size: 882; CHECK-NEXT: .value_kind: hidden_global_offset_y83; CHECK-NEXT: - .offset: 2484; CHECK-NEXT: .size: 885; CHECK-NEXT: .value_kind: hidden_global_offset_z86; CHECK-NEXT: - .offset: 3287; CHECK-NEXT: .size: 888; CHECK-NEXT: .value_kind: hidden_hostcall_buffer89; CHECK-NEXT: - .offset: 4090; CHECK-NEXT: .size: 891; CHECK-NEXT: .value_kind: hidden_default_queue92; CHECK-NEXT: - .offset: 4893; CHECK-NEXT: .size: 894; CHECK-NEXT: .value_kind: hidden_none95; CHECK: .language: OpenCL C96; CHECK-NEXT: .language_version:97; CHECK-NEXT: - 298; CHECK-NEXT: - 099; CHECK: .name: test_no_completion_action100; CHECK: .symbol: test_no_completion_action.kd101define amdgpu_kernel void @test_no_completion_action(i8 %a) #2102 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3103 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 {104 ret void105}106 107; CHECK: - .args:108; CHECK-NEXT: - .name: a109; CHECK-NEXT: .offset: 0110; CHECK-NEXT: .size: 1111; CHECK-NEXT: .type_name: char112; CHECK-NEXT: .value_kind: by_value113; CHECK-NEXT: - .offset: 8114; CHECK-NEXT: .size: 8115; CHECK-NEXT: .value_kind: hidden_global_offset_x116; CHECK-NEXT: - .offset: 16117; CHECK-NEXT: .size: 8118; CHECK-NEXT: .value_kind: hidden_global_offset_y119; CHECK-NEXT: - .offset: 24120; CHECK-NEXT: .size: 8121; CHECK-NEXT: .value_kind: hidden_global_offset_z122; CHECK-NEXT: - .offset: 32123; CHECK-NEXT: .size: 8124; CHECK-NEXT: .value_kind: hidden_hostcall_buffer125; CHECK-NEXT: - .offset: 40126; CHECK-NEXT: .size: 8127; CHECK-NEXT: .value_kind: hidden_none128; CHECK-NEXT: - .offset: 48129; CHECK-NEXT: .size: 8130; CHECK-NEXT: .value_kind: hidden_completion_action131; CHECK: .language: OpenCL C132; CHECK-NEXT: .language_version:133; CHECK-NEXT: - 2134; CHECK-NEXT: - 0135; CHECK: .name: test_no_default_queue136; CHECK: .symbol: test_no_default_queue.kd137define amdgpu_kernel void @test_no_default_queue(i8 %a) #3138 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3139 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 {140 ret void141}142 143; CHECK: amdhsa.version:144; CHECK-NEXT: - 1145; CHECK-NEXT: - 1146; CHECK-NOT: amdhsa.printf:147 148attributes #0 = { optnone noinline "amdgpu-no-default-queue" "amdgpu-no-completion-action" "amdgpu-implicitarg-num-bytes"="48" }149attributes #1 = { optnone noinline "amdgpu-implicitarg-num-bytes"="48" }150attributes #2 = { optnone noinline "amdgpu-no-completion-action" "amdgpu-implicitarg-num-bytes"="48" }151attributes #3 = { optnone noinline "amdgpu-no-default-queue" "amdgpu-implicitarg-num-bytes"="48" }152 153!llvm.module.flags = !{!0}154!0 = !{i32 1, !"amdhsa_code_object_version", i32 400}155 156!1 = !{i32 0}157!2 = !{!"none"}158!3 = !{!"char"}159!4 = !{!""}160 161!opencl.ocl.version = !{!90}162!90 = !{i32 2, i32 0}163 164; PARSER: AMDGPU HSA Metadata Parser Test: PASS165