blob: 0b32910aa20464384dfabc963560017d7926a5e3 [file]
; RUN: llc -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
; CHECK-SPIRV-DAG: OpDecorate %[[#ZEXT:]] FuncParamAttr Zext
; CHECK-SPIRV-DAG: OpDecorate %[[#SEXT:]] FuncParamAttr Sext
; CHECK-SPIRV-DAG: OpDecorate %[[#NOWRITE:]] FuncParamAttr NoWrite
; CHECK-SPIRV-DAG: OpDecorate %[[#NOREADWRITE:]] FuncParamAttr NoReadWrite
; CHECK-SPIRV-DAG: OpDecorate %[[#NOCAPTURE:]] FuncParamAttr NoCapture
; CHECK-SPIRV-DAG: OpDecorate %[[#NOALIAS:]] FuncParamAttr NoAlias
; CHECK-SPIRV-DAG: OpDecorate %[[#BYVAL:]] FuncParamAttr ByVal
; CHECK-SPIRV-DAG: OpDecorate %[[#SRET:]] FuncParamAttr Sret
; CHECK-SPIRV-DAG: OpDecorate %[[#RET_ZEXT:]] FuncParamAttr Zext
; CHECK-SPIRV-DAG: OpDecorate %[[#RET_SEXT:]] FuncParamAttr Sext
; CHECK-SPIRV: %[[#ZEXT]] = OpFunctionParameter %[[#]]
define spir_func void @test_zext(i8 zeroext %arg) {
entry:
ret void
}
; CHECK-SPIRV: %[[#SEXT]] = OpFunctionParameter %[[#]]
define spir_func void @test_sext(i8 signext %arg) {
entry:
ret void
}
; CHECK-SPIRV: %[[#NOWRITE]] = OpFunctionParameter %[[#]]
define spir_func void @test_readonly(ptr readonly %arg) {
entry:
ret void
}
; CHECK-SPIRV: %[[#NOREADWRITE]] = OpFunctionParameter %[[#]]
define spir_func void @test_readnone(ptr readnone %arg) {
entry:
ret void
}
; CHECK-SPIRV: %[[#NOCAPTURE]] = OpFunctionParameter %[[#]]
define spir_func void @test_nocapture(ptr captures(none) %arg) {
entry:
ret void
}
; CHECK-SPIRV: %[[#NOALIAS]] = OpFunctionParameter %[[#]]
define spir_func void @test_noalias(ptr noalias %arg) {
entry:
ret void
}
; CHECK-SPIRV: %[[#BYVAL]] = OpFunctionParameter %[[#]]
define spir_func void @test_byval(ptr byval(i32) %arg) {
entry:
ret void
}
; CHECK-SPIRV: %[[#SRET]] = OpFunctionParameter %[[#]]
define spir_func void @test_sret(ptr sret(i32) %arg) {
entry:
ret void
}
; CHECK-SPIRV: %[[#RET_ZEXT]] = OpFunction %[[#]]
define spir_func zeroext i8 @test_ret_zext() {
entry:
ret i8 0
}
; CHECK-SPIRV: %[[#RET_SEXT]] = OpFunction %[[#]]
define spir_func signext i8 @test_ret_sext() {
entry:
ret i8 0
}