; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV
;; This test checks SYCL relational builtin any and all with vector input types.
; CHECK-SPIRV: %[[#BoolTypeID:]] = OpTypeBool
; CHECK-SPIRV: OpAny %[[#BoolTypeID]]
; CHECK-SPIRV: OpAny %[[#BoolTypeID]]
; CHECK-SPIRV: OpAny %[[#BoolTypeID]]
; CHECK-SPIRV: OpAny %[[#BoolTypeID]]
; CHECK-SPIRV: OpAll %[[#BoolTypeID]]
; CHECK-SPIRV: OpAll %[[#BoolTypeID]]
; CHECK-SPIRV: OpAll %[[#BoolTypeID]]
; CHECK-SPIRV: OpAll %[[#BoolTypeID]]
define dso_local spir_func void @test_vector(i32 addrspace(4)* nocapture writeonly %out, <2 x i8> %c, <2 x i16> %s, <2 x i32> %i, <2 x i64> %l) local_unnamed_addr {
entry:
%call = tail call spir_func i32 @_Z3anyDv2_c(<2 x i8> %c)
%call1 = tail call spir_func i32 @_Z3anyDv2_s(<2 x i16> %s)
%add = add nsw i32 %call1, %call
%call2 = tail call spir_func i32 @_Z3anyDv2_i(<2 x i32> %i)
%add3 = add nsw i32 %add, %call2
%call4 = tail call spir_func i32 @_Z3anyDv2_l(<2 x i64> %l)
%add5 = add nsw i32 %add3, %call4
%call6 = tail call spir_func i32 @_Z3allDv2_c(<2 x i8> %c)
%add7 = add nsw i32 %add5, %call6
%call8 = tail call spir_func i32 @_Z3allDv2_s(<2 x i16> %s)
%add9 = add nsw i32 %add7, %call8
%call10 = tail call spir_func i32 @_Z3allDv2_i(<2 x i32> %i)
%add11 = add nsw i32 %add9, %call10
%call12 = tail call spir_func i32 @_Z3allDv2_l(<2 x i64> %l)
%add13 = add nsw i32 %add11, %call12
store i32 %add13, i32 addrspace(4)* %out, align 4
ret void
}
declare spir_func i32 @_Z3anyDv2_c(<2 x i8>) local_unnamed_addr
declare spir_func i32 @_Z3anyDv2_s(<2 x i16>) local_unnamed_addr
declare spir_func i32 @_Z3anyDv2_i(<2 x i32>) local_unnamed_addr
declare spir_func i32 @_Z3anyDv2_l(<2 x i64>) local_unnamed_addr
declare spir_func i32 @_Z3allDv2_c(<2 x i8>) local_unnamed_addr
declare spir_func i32 @_Z3allDv2_s(<2 x i16>) local_unnamed_addr
declare spir_func i32 @_Z3allDv2_i(<2 x i32>) local_unnamed_addr
declare spir_func i32 @_Z3allDv2_l(<2 x i64>) local_unnamed_addr