@@ -24,10 +24,6 @@ template <class T> struct is_fixed_size_group : std::false_type {};
2424
2525template <class T >
2626inline constexpr bool is_fixed_size_group_v = is_fixed_size_group<T>::value;
27-
28- template <typename VecT, typename OperationLeftT, typename OperationRightT,
29- template <typename > class OperationCurrentT , int ... Indexes>
30- class SwizzleOp ;
3127} // namespace detail
3228
3329template <int Dimensions> class group ;
@@ -154,12 +150,20 @@ template <typename T, size_t N> struct get_elem_type_unqual<marray<T, N>> {
154150template <typename T, int N> struct get_elem_type_unqual <vec<T, N>> {
155151 using type = T;
156152};
153+ #if __SYCL_USE_LIBSYCL8_VEC_IMPL
157154template <typename VecT, typename OperationLeftT, typename OperationRightT,
158155 template <typename > class OperationCurrentT , int ... Indexes>
159156struct get_elem_type_unqual <SwizzleOp<VecT, OperationLeftT, OperationRightT,
160157 OperationCurrentT, Indexes...>> {
161158 using type = typename get_elem_type_unqual<std::remove_cv_t <VecT>>::type;
162159};
160+ #else
161+ template <bool IsConstVec, typename DataT, int VecSize, int ... Indexes>
162+ struct get_elem_type_unqual <detail::hide_swizzle_from_adl::Swizzle<
163+ IsConstVec, DataT, VecSize, Indexes...>> {
164+ using type = DataT;
165+ };
166+ #endif
163167
164168template <typename ElementType, access::address_space Space,
165169 access::decorated DecorateAddress>
0 commit comments