diff --git a/sycl/include/CL/__spirv/spirv_ops.hpp b/sycl/include/CL/__spirv/spirv_ops.hpp index 8678428d8b4be..72efdb44fd34e 100644 --- a/sycl/include/CL/__spirv/spirv_ops.hpp +++ b/sycl/include/CL/__spirv/spirv_ops.hpp @@ -142,7 +142,14 @@ extern bool __spirv_GroupAny(__spv::Scope Execution, bool Predicate) noexcept; template extern dataT __spirv_GroupBroadcast(__spv::Scope Execution, dataT Value, - uint32_t LocalId) noexcept; + size_t LocalId) noexcept; + +template +extern dataT __spirv_GroupBroadcast(__spv::Scope Execution, dataT Value, + __ocl_vec_t LocalId) noexcept; +template +extern dataT __spirv_GroupBroadcast(__spv::Scope Execution, dataT Value, + __ocl_vec_t LocalId) noexcept; template extern dataT __spirv_GroupIAdd(__spv::Scope Execution, __spv::GroupOperation Op, diff --git a/sycl/include/CL/__spirv/spirv_types.hpp b/sycl/include/CL/__spirv/spirv_types.hpp index 4b1c40c2afb87..5c9c55975d7da 100644 --- a/sycl/include/CL/__spirv/spirv_types.hpp +++ b/sycl/include/CL/__spirv/spirv_types.hpp @@ -63,6 +63,10 @@ using RPipeTy = __attribute__((pipe("read_only"))) const dataT; template using WPipeTy = __attribute__((pipe("write_only"))) const dataT; +// OpenCL vector types +template +using __ocl_vec_t = dataT __attribute__((ext_vector_type(dims))); + // Struct representing layout of pipe storage struct ConstantPipeStorage { int32_t _PacketSize;