blob: f53bc5fdf66ff97562036d8e879c98b0635ee562 [file]
; Test that !spirv.ParameterDecorations metadata is correctly translated
; into OpDecorate instructions on function parameters.
; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
define spir_kernel void @k(ptr addrspace(1) %a, float %b, ptr addrspace(1) %c) !spirv.ParameterDecorations !14 {
entry:
ret void
}
; CHECK-SPIRV: OpDecorate %[[#PId1:]] Restrict
; CHECK-SPIRV: OpDecorate %[[#PId1]] Alignment 4
; CHECK-SPIRV: OpDecorate %[[#PId2:]] Volatile
; CHECK-SPIRV: %[[#PId1]] = OpFunctionParameter %[[#]]
; CHECK-SPIRV: %[[#PId2]] = OpFunctionParameter %[[#]]
!8 = !{i32 19}
!9 = !{i32 44, i32 4}
!10 = !{i32 21}
!11 = !{!8, !9}
!12 = !{}
!13 = !{!10}
!14 = !{!11, !12, !13}