| ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s | |
| ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %} | |
| ;; Debug info: | |
| ; CHECK: OpName %[[#FOO:]] "foo" | |
| ; CHECK: OpName %[[#BAR:]] "bar" | |
| ;; Types: | |
| ; CHECK-DAG: %[[#I32:]] = OpTypeInt 32 | |
| ; CHECK-DAG: %[[#VOID:]] = OpTypeVoid | |
| ; CHECK-DAG: %[[#FNVOID:]] = OpTypeFunction %[[#VOID]] %[[#I32]] | |
| ; CHECK-DAG: %[[#FNI32:]] = OpTypeFunction %[[#I32]] %[[#I32]] | |
| ;; Function decl: | |
| ; CHECK: %[[#BAR]] = OpFunction %[[#I32]] None %[[#FNI32]] | |
| ; CHECK-NEXT: OpFunctionParameter %[[#I32]] | |
| ; CHECK-NEXT: OpFunctionEnd | |
| declare i32 @bar(i32 %x) | |
| ;; Function def: | |
| ; CHECK: %[[#FOO]] = OpFunction %[[#VOID]] None %[[#FNVOID]] | |
| ; CHECK: OpFunctionParameter | |
| ; CHECK: OpLabel | |
| ; CHECK: OpFunctionCall %[[#I32]] %[[#BAR]] | |
| ; CHECK: OpReturn | |
| ; CHECK-NOT: OpLabel | |
| ; CHECK: OpFunctionEnd | |
| define spir_func void @foo(i32 %x) { | |
| %call1 = call spir_func i32 @bar(i32 %x) | |
| ret void | |
| } |