; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} ; CHECK-DAG: OpName %[[#Foo:]] "foo" ; CHECK-DAG: OpName %[[#Ptr1:]] "_arg1" ; CHECK-DAG: OpName %[[#Ptr2:]] "_arg2" ; CHECK-DAG: OpName %[[#Ptr3:]] "_arg3" ; CHECK-DAG: OpName %[[#Ptr4:]] "_arg4" ; CHECK-DAG: OpName %[[#Ptr5:]] "_arg5" ; CHECK-DAG: OpDecorate %[[#Ptr1]] Restrict ; CHECK-DAG: OpDecorate %[[#Ptr2]] Alignment 128 ; CHECK-DAG: OpDecorate %[[#Ptr2]] Restrict ; CHECK-DAG: OpDecorate %[[#Ptr3]] Alignment 128 ; CHECK-DAG: OpDecorate %[[#Ptr3]] Restrict ; CHECK-DAG: OpDecorate %[[#Ptr4]] Alignment 128 ; CHECK-DAG: OpDecorate %[[#Ptr4]] Restrict ; CHECK-DAG: OpDecorate %[[#Ptr5]] UserSemantic "Unknown format" ; CHECK: %[[#Foo]] = OpFunction ; CHECK-NEXT: %[[#Ptr1]] = OpFunctionParameter ; CHECK-NEXT: %[[#Ptr2]] = OpFunctionParameter ; CHECK-NEXT: %[[#Ptr3]] = OpFunctionParameter ; CHECK-NEXT: %[[#Ptr4]] = OpFunctionParameter ; CHECK-NEXT: %[[#Ptr5]] = OpFunctionParameter ; CHECK: OpFunctionEnd @.str.0 = private unnamed_addr addrspace(1) constant [16 x i8] c"../prefetch.hpp\00", section "llvm.metadata" @.str.1 = private unnamed_addr addrspace(1) constant [5 x i8] c"{19}\00", section "llvm.metadata" @.str.2 = private unnamed_addr addrspace(1) constant [13 x i8] c"{44:128}{19}\00", section "llvm.metadata" @.str.3 = private unnamed_addr addrspace(1) constant [15 x i8] c"{44:\22128\22}{19}\00", section "llvm.metadata" @.str.4 = private unnamed_addr addrspace(1) constant [13 x i8] c"{44,128}{19}\00", section "llvm.metadata" @.str.5 = private unnamed_addr addrspace(1) constant [15 x i8] c"Unknown format\00", section "llvm.metadata" define spir_kernel void @foo(ptr addrspace(1) %_arg1, ptr addrspace(1) %_arg2, ptr addrspace(1) %_arg3, ptr addrspace(1) %_arg4, ptr addrspace(1) %_arg5) { entry: %r1 = tail call ptr addrspace(1) @llvm.ptr.annotation.p1.p1(ptr addrspace(1) %_arg1, ptr addrspace(1) @.str.1, ptr addrspace(1) @.str.0, i32 80, ptr addrspace(1) null) %r2 = tail call ptr addrspace(1) @llvm.ptr.annotation.p1.p1(ptr addrspace(1) %_arg2, ptr addrspace(1) @.str.2, ptr addrspace(1) @.str.0, i32 80, ptr addrspace(1) null) %r3 = tail call ptr addrspace(1) @llvm.ptr.annotation.p1.p1(ptr addrspace(1) %_arg3, ptr addrspace(1) @.str.3, ptr addrspace(1) @.str.0, i32 80, ptr addrspace(1) null) %r4 = tail call ptr addrspace(1) @llvm.ptr.annotation.p1.p1(ptr addrspace(1) %_arg4, ptr addrspace(1) @.str.4, ptr addrspace(1) @.str.0, i32 80, ptr addrspace(1) null) %r5 = tail call ptr addrspace(1) @llvm.ptr.annotation.p1.p1(ptr addrspace(1) %_arg5, ptr addrspace(1) @.str.5, ptr addrspace(1) @.str.0, i32 80, ptr addrspace(1) null) ret void }