1; RUN: llc -O0 %s -o - | FileCheck %s 2 3target triple = "spirv32-unknown-unknown" 4 5; Debug info: 6; CHECK: OpName [[FOO:%.+]] "foo" 7 8; Types: 9; CHECK: [[VOID:%.+]] = OpTypeVoid 10; CHECK: [[FN:%.+]] = OpTypeFunction [[VOID]] 11 12; Functions: 13; CHECK: [[FOO]] = OpFunction [[VOID]] None [[FN]] 14; CHECK-NOT: OpFunctionParameter 15; NOTE: In 2.4, it isn't explicitly written that a function always has a least 16; one block. In fact, 2.4.11 seems to imply that there are at least two 17; blocks in functions with a body, but that doesn't make much sense. 18; However, in order to distinguish between function declaration and 19; definition, a function needs at least one block, hence why this test 20; expects one OpLabel + OpReturn. 21; CHECK: OpLabel 22; CHECK: OpReturn 23; CHECK-NOT: OpLabel 24; CHECK: OpFunctionEnd 25define void @foo() { 26 ret void 27} 28