|
33 | 33 |
|
34 | 34 | #include <sycl/access/access.hpp> // for decorated, address_space
|
35 | 35 | #include <sycl/aliases.hpp> // for half, cl_char, cl_int
|
36 |
| -#include <sycl/detail/common.hpp> // for ArrayCreator, RepeatV... |
| 36 | +#include <sycl/detail/common.hpp> // for ArrayCreator |
37 | 37 | #include <sycl/detail/defines_elementary.hpp> // for __SYCL2020_DEPRECATED
|
38 | 38 | #include <sycl/detail/generic_type_traits.hpp> // for is_sigeninteger, is_s...
|
39 | 39 | #include <sycl/detail/memcpy.hpp> // for memcpy
|
@@ -194,6 +194,10 @@ template <typename DataT, int NumElements> class vec_base {
|
194 | 194 | static constexpr int alignment = (std::min)((size_t)64, sizeof(DataType));
|
195 | 195 | alignas(alignment) DataType m_Data;
|
196 | 196 |
|
| 197 | + template <size_t... Is> |
| 198 | + constexpr vec_base(const DataT &Val, std::index_sequence<Is...>) |
| 199 | + : m_Data{((void)Is, Val)...} {} |
| 200 | + |
197 | 201 | template <size_t... Is>
|
198 | 202 | constexpr vec_base(const std::array<DataT, NumElements> &Arr,
|
199 | 203 | std::index_sequence<Is...>)
|
@@ -262,8 +266,7 @@ template <typename DataT, int NumElements> class vec_base {
|
262 | 266 | constexpr vec_base &operator=(vec_base &&) = default;
|
263 | 267 |
|
264 | 268 | explicit constexpr vec_base(const DataT &arg)
|
265 |
| - : vec_base(RepeatValue<NumElements>(arg), |
266 |
| - std::make_index_sequence<NumElements>()) {} |
| 269 | + : vec_base(arg, std::make_index_sequence<NumElements>()) {} |
267 | 270 |
|
268 | 271 | template <typename... argTN,
|
269 | 272 | typename = std::enable_if_t<
|
|
0 commit comments