1*67d3ef74SVyacheslav Levytskyy; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s 20a443f13SVyacheslav Levytskyy; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} 381751905SMichal Paszkowski 481751905SMichal Paszkowski; CHECK-DAG: %[[#INT:]] = OpTypeInt 32 0 581751905SMichal Paszkowski; CHECK-DAG: %[[#PTR1:]] = OpTypePointer Function %[[#INT]] 681751905SMichal Paszkowski; CHECK-DAG: %[[#ARG:]] = OpFunctionParameter %[[#PTR1]] 781751905SMichal Paszkowski 881751905SMichal Paszkowskidefine spir_kernel void @test1(ptr addrspace(0) %arg1) !kernel_arg_addr_space !1 !kernel_arg_type !2 { 981751905SMichal Paszkowski %a = getelementptr inbounds i32, ptr addrspace(0) %arg1, i32 2 1081751905SMichal Paszkowski ret void 1181751905SMichal Paszkowski} 1281751905SMichal Paszkowski 1381751905SMichal Paszkowski!1 = !{i32 0} 1481751905SMichal Paszkowski!2 = !{!"int*"} 1581751905SMichal Paszkowski 1681751905SMichal Paszkowski; CHECK-DAG: %[[#PTR2:]] = OpTypePointer CrossWorkgroup %[[#INT]] 1781751905SMichal Paszkowski; CHECK-DAG: %[[#ARG:]] = OpFunctionParameter %[[#PTR2]] 1881751905SMichal Paszkowski 1981751905SMichal Paszkowskidefine spir_kernel void @test2(ptr addrspace(1) %arg1) !kernel_arg_addr_space !3 !kernel_arg_type !2 { 2081751905SMichal Paszkowski %a = getelementptr inbounds i32, ptr addrspace(1) %arg1, i32 2 2181751905SMichal Paszkowski ret void 2281751905SMichal Paszkowski} 2381751905SMichal Paszkowski 2481751905SMichal Paszkowski!3 = !{i32 1} 2581751905SMichal Paszkowski 2681751905SMichal Paszkowski; CHECK-DAG: %[[#PTR3:]] = OpTypePointer UniformConstant %[[#INT]] 2781751905SMichal Paszkowski; CHECK-DAG: %[[#ARG:]] = OpFunctionParameter %[[#PTR3]] 2881751905SMichal Paszkowski 2981751905SMichal Paszkowskidefine spir_kernel void @test3(ptr addrspace(2) %arg1) !kernel_arg_addr_space !4 !kernel_arg_type !2 { 3081751905SMichal Paszkowski %a = getelementptr inbounds i32, ptr addrspace(2) %arg1, i32 2 3181751905SMichal Paszkowski ret void 3281751905SMichal Paszkowski} 3381751905SMichal Paszkowski 3481751905SMichal Paszkowski!4 = !{i32 2} 3581751905SMichal Paszkowski 3681751905SMichal Paszkowski; CHECK-DAG: %[[#PTR4:]] = OpTypePointer Workgroup %[[#INT]] 3781751905SMichal Paszkowski; CHECK-DAG: %[[#ARG:]] = OpFunctionParameter %[[#PTR4]] 3881751905SMichal Paszkowski 3981751905SMichal Paszkowskidefine spir_kernel void @test4(ptr addrspace(3) %arg1) !kernel_arg_addr_space !5 !kernel_arg_type !2 { 4081751905SMichal Paszkowski %a = getelementptr inbounds i32, ptr addrspace(3) %arg1, i32 2 4181751905SMichal Paszkowski ret void 4281751905SMichal Paszkowski} 4381751905SMichal Paszkowski 4481751905SMichal Paszkowski!5 = !{i32 3} 4581751905SMichal Paszkowski 4681751905SMichal Paszkowski; CHECK-DAG: %[[#PTR5:]] = OpTypePointer Generic %[[#INT]] 4781751905SMichal Paszkowski; CHECK-DAG: %[[#ARG:]] = OpFunctionParameter %[[#PTR5]] 4881751905SMichal Paszkowski 4981751905SMichal Paszkowskidefine spir_kernel void @test5(ptr addrspace(4) %arg1) !kernel_arg_addr_space !6 !kernel_arg_type !2 { 5081751905SMichal Paszkowski %a = getelementptr inbounds i32, ptr addrspace(4) %arg1, i32 2 5181751905SMichal Paszkowski ret void 5281751905SMichal Paszkowski} 5381751905SMichal Paszkowski 5481751905SMichal Paszkowski!6 = !{i32 4} 5581751905SMichal Paszkowski 5681751905SMichal Paszkowski; CHECK-DAG: %[[#PTR6:]] = OpTypePointer Input %[[#INT]] 5781751905SMichal Paszkowski; CHECK-DAG: %[[#ARG:]] = OpFunctionParameter %[[#PTR6]] 5881751905SMichal Paszkowski 5981751905SMichal Paszkowskidefine spir_kernel void @test6(ptr addrspace(7) %arg1) !kernel_arg_addr_space !7 !kernel_arg_type !2 { 6081751905SMichal Paszkowski %a = getelementptr inbounds i32, ptr addrspace(7) %arg1, i32 2 6181751905SMichal Paszkowski ret void 6281751905SMichal Paszkowski} 6381751905SMichal Paszkowski 6481751905SMichal Paszkowski!7 = !{i32 7} 65