@@ -180,8 +180,6 @@ class __SYCL_EBO vec
180180private:
181181#endif // __SYCL_DEVICE_ONLY__
182182
183- static constexpr int getNumElements () { return NumElements; }
184-
185183 // SizeChecker is needed for vec(const argTN &... args) ctor to validate args.
186184 template <int Counter, int MaxValue, class ...>
187185 struct SizeChecker : std::conditional_t <Counter == MaxValue, std::true_type,
@@ -548,6 +546,27 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
548546 OperationCurrentT, Indexes...>,
549547 sizeof ...(Indexes)> {
550548 using DataT = typename VecT::element_type;
549+
550+ public:
551+ using element_type = DataT;
552+ using value_type = DataT;
553+
554+ __SYCL2020_DEPRECATED (" get_count() is deprecated, please use size() instead" )
555+ size_t get_count () const { return size (); }
556+ static constexpr size_t size () noexcept { return sizeof ...(Indexes); }
557+
558+ template <int Num = size()>
559+ __SYCL2020_DEPRECATED (
560+ " get_size() is deprecated, please use byte_size() instead" )
561+ size_t get_size () const {
562+ return byte_size<Num>();
563+ }
564+
565+ template <int Num = size()> size_t byte_size () const noexcept {
566+ return sizeof (DataT) * (Num == 3 ? 4 : Num);
567+ }
568+
569+ private:
551570 // Certain operators return a vector with a different element type. Also, the
552571 // left and right operand types may differ. CommonDataT selects a result type
553572 // based on these types to ensure that the result value can be represented.
@@ -579,7 +598,6 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
579598 using CommonDataT = std::conditional_t <
580599 sizeof (DataT) >= sizeof (std::common_type_t <OpLeftDataT, OpRightDataT>),
581600 DataT, std::common_type_t <OpLeftDataT, OpRightDataT>>;
582- static constexpr int getNumElements () { return sizeof ...(Indexes); }
583601
584602 using rel_t = detail::rel_t <DataT>;
585603 using vec_t = vec<DataT, sizeof ...(Indexes)>;
@@ -594,7 +612,7 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
594612
595613 template <typename OperationRightT_,
596614 template <typename > class OperationCurrentT_ , int ... Idx_>
597- using NewRelOp = SwizzleOp<vec<rel_t , VecT::getNumElements ()>,
615+ using NewRelOp = SwizzleOp<vec<rel_t , VecT::size ()>,
598616 SwizzleOp<VecT, OperationLeftT, OperationRightT,
599617 OperationCurrentT, Indexes...>,
600618 OperationRightT_, OperationCurrentT_, Idx_...>;
@@ -608,11 +626,11 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
608626
609627 template <int IdxNum, typename T = void >
610628 using EnableIfOneIndex = typename std::enable_if_t <
611- 1 == IdxNum && SwizzleOp::getNumElements () == IdxNum, T>;
629+ 1 == IdxNum && SwizzleOp::size () == IdxNum, T>;
612630
613631 template <int IdxNum, typename T = void >
614632 using EnableIfMultipleIndexes = typename std::enable_if_t <
615- 1 != IdxNum && SwizzleOp::getNumElements () == IdxNum, T>;
633+ 1 != IdxNum && SwizzleOp::size () == IdxNum, T>;
616634
617635 template <typename T>
618636 using EnableIfScalarType =
@@ -633,40 +651,22 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
633651 SwizzleOp<const VecT, GetOp<DataT>, GetOp<DataT>, GetOp, Indices...>;
634652
635653public:
636- using element_type = DataT;
637- using value_type = DataT;
638-
639654#ifdef __SYCL_DEVICE_ONLY__
640655 using vector_t = typename vec_t ::vector_t ;
641656#endif // __SYCL_DEVICE_ONLY__
642657
643658 const DataT &operator [](int i) const {
644- std::array<int , getNumElements ()> Idxs{Indexes...};
659+ std::array<int , size ()> Idxs{Indexes...};
645660 return (*m_Vector)[Idxs[i]];
646661 }
647662
648663 template <typename _T = VecT>
649664 std::enable_if_t <!std::is_const_v<_T>, DataT> &operator [](int i) {
650- std::array<int , getNumElements ()> Idxs{Indexes...};
665+ std::array<int , size ()> Idxs{Indexes...};
651666 return (*m_Vector)[Idxs[i]];
652667 }
653668
654- __SYCL2020_DEPRECATED (" get_count() is deprecated, please use size() instead" )
655- size_t get_count () const { return size (); }
656- static constexpr size_t size () noexcept { return getNumElements (); }
657-
658- template <int Num = getNumElements()>
659- __SYCL2020_DEPRECATED (
660- " get_size() is deprecated, please use byte_size() instead" )
661- size_t get_size () const {
662- return byte_size<Num>();
663- }
664-
665- template <int Num = getNumElements()> size_t byte_size () const noexcept {
666- return sizeof (DataT) * (Num == 3 ? 4 : Num);
667- }
668-
669- template <typename T, int IdxNum = getNumElements(),
669+ template <typename T, int IdxNum = size(),
670670 typename = EnableIfOneIndex<IdxNum>,
671671 typename = EnableIfScalarType<T>>
672672 operator T () const {
@@ -870,7 +870,7 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
870870 __SYCL_RELLOGOP (||, (!detail::is_byte_v<T> && !detail::is_vgenfloat_v<T>))
871871#undef __SYCL_RELLOGOP
872872
873- template <int IdxNum = getNumElements (),
873+ template <int IdxNum = size (),
874874 typename = EnableIfMultipleIndexes<IdxNum>>
875875 SwizzleOp &operator =(const vec<DataT, IdxNum> &Rhs) {
876876 std::array<int , IdxNum> Idxs{Indexes...};
@@ -880,14 +880,14 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
880880 return *this ;
881881 }
882882
883- template <int IdxNum = getNumElements (), typename = EnableIfOneIndex<IdxNum>>
883+ template <int IdxNum = size (), typename = EnableIfOneIndex<IdxNum>>
884884 SwizzleOp &operator =(const DataT &Rhs) {
885885 std::array<int , IdxNum> Idxs{Indexes...};
886886 (*m_Vector)[Idxs[0 ]] = Rhs;
887887 return *this ;
888888 }
889889
890- template <int IdxNum = getNumElements (),
890+ template <int IdxNum = size (),
891891 EnableIfMultipleIndexes<IdxNum, bool > = true >
892892 SwizzleOp &operator =(const DataT &Rhs) {
893893 std::array<int , IdxNum> Idxs{Indexes...};
@@ -897,7 +897,7 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
897897 return *this ;
898898 }
899899
900- template <int IdxNum = getNumElements (), typename = EnableIfOneIndex<IdxNum>>
900+ template <int IdxNum = size (), typename = EnableIfOneIndex<IdxNum>>
901901 SwizzleOp &operator =(DataT &&Rhs) {
902902 std::array<int , IdxNum> Idxs{Indexes...};
903903 (*m_Vector)[Idxs[0 ]] = Rhs;
@@ -1049,9 +1049,9 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
10491049 template <
10501050 typename T1, typename T2, typename T3, template <typename > class T4 ,
10511051 int ... T5,
1052- typename = typename std::enable_if_t <sizeof ...(T5) == getNumElements ()>>
1052+ typename = typename std::enable_if_t <sizeof ...(T5) == size ()>>
10531053 SwizzleOp &operator =(const SwizzleOp<T1, T2, T3, T4, T5...> &Rhs) {
1054- std::array<int , getNumElements ()> Idxs{Indexes...};
1054+ std::array<int , size ()> Idxs{Indexes...};
10551055 for (size_t I = 0 ; I < Idxs.size (); ++I) {
10561056 (*m_Vector)[Idxs[I]] = Rhs.getValue (I);
10571057 }
@@ -1061,9 +1061,9 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
10611061 template <
10621062 typename T1, typename T2, typename T3, template <typename > class T4 ,
10631063 int ... T5,
1064- typename = typename std::enable_if_t <sizeof ...(T5) == getNumElements ()>>
1064+ typename = typename std::enable_if_t <sizeof ...(T5) == size ()>>
10651065 SwizzleOp &operator =(SwizzleOp<T1, T2, T3, T4, T5...> &&Rhs) {
1066- std::array<int , getNumElements ()> Idxs{Indexes...};
1066+ std::array<int , size ()> Idxs{Indexes...};
10671067 for (size_t I = 0 ; I < Idxs.size (); ++I) {
10681068 (*m_Vector)[Idxs[I]] = Rhs.getValue (I);
10691069 }
@@ -1212,7 +1212,7 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
12121212 vec<convertT, sizeof ...(Indexes)> convert () const {
12131213 // First materialize the swizzle to vec_t and then apply convert() to it.
12141214 vec_t Tmp;
1215- std::array<int , getNumElements ()> Idxs{Indexes...};
1215+ std::array<int , size ()> Idxs{Indexes...};
12161216 for (size_t I = 0 ; I < Idxs.size (); ++I) {
12171217 Tmp[I] = (*m_Vector)[Idxs[I]];
12181218 }
@@ -1251,21 +1251,21 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
12511251 // or reading values from actual vector. Perform implicit type conversion when
12521252 // the number of elements == 1
12531253
1254- template <int IdxNum = getNumElements ()>
1254+ template <int IdxNum = size ()>
12551255 CommonDataT getValue (EnableIfOneIndex<IdxNum, size_t > Index) const {
12561256 if (std::is_same_v<OperationCurrentT<DataT>, GetOp<DataT>>) {
1257- std::array<int , getNumElements ()> Idxs{Indexes...};
1257+ std::array<int , size ()> Idxs{Indexes...};
12581258 return (*m_Vector)[Idxs[Index]];
12591259 }
12601260 auto Op = OperationCurrentT<CommonDataT>();
12611261 return Op (m_LeftOperation.getValue (Index),
12621262 m_RightOperation.getValue (Index));
12631263 }
12641264
1265- template <int IdxNum = getNumElements ()>
1265+ template <int IdxNum = size ()>
12661266 DataT getValue (EnableIfMultipleIndexes<IdxNum, size_t > Index) const {
12671267 if (std::is_same_v<OperationCurrentT<DataT>, GetOp<DataT>>) {
1268- std::array<int , getNumElements ()> Idxs{Indexes...};
1268+ std::array<int , size ()> Idxs{Indexes...};
12691269 return (*m_Vector)[Idxs[Index]];
12701270 }
12711271 auto Op = OperationCurrentT<DataT>();
@@ -1276,7 +1276,7 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
12761276 template <template <typename > class Operation , typename RhsOperation>
12771277 void operatorHelper (const RhsOperation &Rhs) const {
12781278 Operation<DataT> Op;
1279- std::array<int , getNumElements ()> Idxs{Indexes...};
1279+ std::array<int , size ()> Idxs{Indexes...};
12801280 for (size_t I = 0 ; I < Idxs.size (); ++I) {
12811281 DataT Res = Op ((*m_Vector)[Idxs[I]], Rhs.getValue (I));
12821282 (*m_Vector)[Idxs[I]] = Res;
0 commit comments