; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s ;; Debug info: ; CHECK: OpName %[[#FOO:]] "foo" ;; Types: ; CHECK: %[[#VOID:]] = OpTypeVoid ; CHECK: %[[#FN:]] = OpTypeFunction %[[#VOID]] ;; Functions: ; CHECK: %[[#FOO]] = OpFunction %[[#VOID]] None %[[#FN]] ; CHECK-NOT: OpFunctionParameter ;; NOTE: In 2.4, it isn't explicitly written that a function always has a least ;; one block. In fact, 2.4.11 seems to imply that there are at least two ;; blocks in functions with a body, but that doesn't make much sense. ;; However, in order to distinguish between function declaration and ;; definition, a function needs at least one block, hence why this test ;; expects one OpLabel + OpReturn. ; CHECK: OpLabel ; CHECK: OpReturn ; CHECK-NOT: OpLabel ; CHECK: OpFunctionEnd define void @foo() { ret void }