| ; 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 %[[#NOALIAS:]] FuncParamAttr NoAlias | |
| ; CHECK-SPIRV-DAG: OpDecorate %[[#BYVAL:]] FuncParamAttr ByVal | |
| ; CHECK-SPIRV-DAG: OpDecorate %[[#SRET:]] FuncParamAttr Sret | |
| ; 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: %[[#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 | |
| } |