| ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv-unknown-vulkan-compute < %s | FileCheck %s | |
| ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-vulkan-compute %s -o - -filetype=obj | spirv-val %} | |
| ; RUN: not llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown < %s 2>&1 | FileCheck -check-prefix=CHECK-ERR %s | |
| ; For compute, nothing is generated, but compilation doesn't crash. | |
| ; CHECK: OpName %[[#FOO:]] "foo" | |
| ; CHECK: %[[#FOO]] = OpFunction | |
| ; CHECK-NEXT: = OpLabel | |
| ; CHECK-NEXT: OpReturn | |
| ; CHECK-NEXT: OpFunctionEnd | |
| ; For non-compute, error. | |
| ; CHECK-ERR: LLVM ERROR: Runtime arrays are not allowed in non-shader SPIR-V modules | |
| %struct.with_zero = type { i32, [0 x i32], i64 } | |
| define spir_func void @foo() { | |
| entry: | |
| %i = alloca %struct.with_zero, align 64 | |
| ret void | |
| } |