blob: b81f373be33c3a7233773ed44d7bc243bc81903a [file] [log] [blame]
; RUN: llc -O0 -mtriple=spirv32-unknown-unknown < %s | FileCheck %s
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown < %s -filetype=obj | not spirv-val 2>&1 | FileCheck %s --check-prefix=VALIDATOR %}
;
; _Z3miniii is not a valid OpenCL intrinsic, do not treat it like one.
;
; VALIDATOR: Invalid instruction OpExtInst starting at word {{[0-9]+}}: expected no more operands after 7 words, but stated word count is 8
define spir_kernel void @ill_1() {
; CHECK-LABEL: OpFunction %{{[0-9]+}} None %{{[0-9]+}} ; -- Begin function ill_1
; CHECK-NEXT: OpLabel
; This is wrong, we should generate a regular call
; CHECK-NEXT: %{{[0-9]+}} = OpExtInst %{{[0-9]+}} %{{[0-9]+}} s_min %{{[0-9]+}} %{{[0-9]+}} %{{[0-9]+}}
; CHECK-NEXT: OpReturn
; CHECK-NEXT: OpFunctionEnd
; CHECK-NEXT: ; -- End function
entry:
tail call spir_func void @_Z3miniii(i32 1, i32 2, i32 3)
ret void
}
declare spir_func i32 @_Z3miniii(i32, i32, i32)