@@ -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_...>;
@@ -607,12 +625,12 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
607625 OperationCurrentT_, Idx_...>;
608626
609627 template <int IdxNum, typename T = void >
610- using EnableIfOneIndex = typename std:: enable_if_t <
611- 1 == IdxNum && SwizzleOp::getNumElements () == IdxNum, T>;
628+ using EnableIfOneIndex =
629+ typename std:: enable_if_t < 1 == IdxNum && SwizzleOp::size () == IdxNum, T>;
612630
613631 template <int IdxNum, typename T = void >
614- using EnableIfMultipleIndexes = typename std:: enable_if_t <
615- 1 != IdxNum && SwizzleOp::getNumElements () == IdxNum, T>;
632+ using EnableIfMultipleIndexes =
633+ typename std:: enable_if_t < 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,8 +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(),
874- typename = EnableIfMultipleIndexes<IdxNum>>
873+ template <int IdxNum = size(), typename = EnableIfMultipleIndexes<IdxNum>>
875874 SwizzleOp &operator =(const vec<DataT, IdxNum> &Rhs) {
876875 std::array<int , IdxNum> Idxs{Indexes...};
877876 for (size_t I = 0 ; I < Idxs.size (); ++I) {
@@ -880,15 +879,14 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
880879 return *this ;
881880 }
882881
883- template <int IdxNum = getNumElements (), typename = EnableIfOneIndex<IdxNum>>
882+ template <int IdxNum = size (), typename = EnableIfOneIndex<IdxNum>>
884883 SwizzleOp &operator =(const DataT &Rhs) {
885884 std::array<int , IdxNum> Idxs{Indexes...};
886885 (*m_Vector)[Idxs[0 ]] = Rhs;
887886 return *this ;
888887 }
889888
890- template <int IdxNum = getNumElements(),
891- EnableIfMultipleIndexes<IdxNum, bool > = true >
889+ template <int IdxNum = size(), EnableIfMultipleIndexes<IdxNum, bool > = true >
892890 SwizzleOp &operator =(const DataT &Rhs) {
893891 std::array<int , IdxNum> Idxs{Indexes...};
894892 for (auto Idx : Idxs) {
@@ -897,7 +895,7 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
897895 return *this ;
898896 }
899897
900- template <int IdxNum = getNumElements (), typename = EnableIfOneIndex<IdxNum>>
898+ template <int IdxNum = size (), typename = EnableIfOneIndex<IdxNum>>
901899 SwizzleOp &operator =(DataT &&Rhs) {
902900 std::array<int , IdxNum> Idxs{Indexes...};
903901 (*m_Vector)[Idxs[0 ]] = Rhs;
@@ -1046,24 +1044,22 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
10461044 return NewLHOp<RhsOperation, LShift, Indexes...>(m_Vector, *this , Rhs);
10471045 }
10481046
1049- template <
1050- typename T1, typename T2, typename T3, template <typename > class T4 ,
1051- int ... T5,
1052- typename = typename std::enable_if_t <sizeof ...(T5) == getNumElements()>>
1047+ template <typename T1, typename T2, typename T3, template <typename > class T4 ,
1048+ int ... T5,
1049+ typename = typename std::enable_if_t <sizeof ...(T5) == size()>>
10531050 SwizzleOp &operator =(const SwizzleOp<T1, T2, T3, T4, T5...> &Rhs) {
1054- std::array<int , getNumElements ()> Idxs{Indexes...};
1051+ std::array<int , size ()> Idxs{Indexes...};
10551052 for (size_t I = 0 ; I < Idxs.size (); ++I) {
10561053 (*m_Vector)[Idxs[I]] = Rhs.getValue (I);
10571054 }
10581055 return *this ;
10591056 }
10601057
1061- template <
1062- typename T1, typename T2, typename T3, template <typename > class T4 ,
1063- int ... T5,
1064- typename = typename std::enable_if_t <sizeof ...(T5) == getNumElements()>>
1058+ template <typename T1, typename T2, typename T3, template <typename > class T4 ,
1059+ int ... T5,
1060+ typename = typename std::enable_if_t <sizeof ...(T5) == size()>>
10651061 SwizzleOp &operator =(SwizzleOp<T1, T2, T3, T4, T5...> &&Rhs) {
1066- std::array<int , getNumElements ()> Idxs{Indexes...};
1062+ std::array<int , size ()> Idxs{Indexes...};
10671063 for (size_t I = 0 ; I < Idxs.size (); ++I) {
10681064 (*m_Vector)[Idxs[I]] = Rhs.getValue (I);
10691065 }
@@ -1212,7 +1208,7 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
12121208 vec<convertT, sizeof ...(Indexes)> convert () const {
12131209 // First materialize the swizzle to vec_t and then apply convert() to it.
12141210 vec_t Tmp;
1215- std::array<int , getNumElements ()> Idxs{Indexes...};
1211+ std::array<int , size ()> Idxs{Indexes...};
12161212 for (size_t I = 0 ; I < Idxs.size (); ++I) {
12171213 Tmp[I] = (*m_Vector)[Idxs[I]];
12181214 }
@@ -1251,21 +1247,21 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
12511247 // or reading values from actual vector. Perform implicit type conversion when
12521248 // the number of elements == 1
12531249
1254- template <int IdxNum = getNumElements ()>
1250+ template <int IdxNum = size ()>
12551251 CommonDataT getValue (EnableIfOneIndex<IdxNum, size_t > Index) const {
12561252 if (std::is_same_v<OperationCurrentT<DataT>, GetOp<DataT>>) {
1257- std::array<int , getNumElements ()> Idxs{Indexes...};
1253+ std::array<int , size ()> Idxs{Indexes...};
12581254 return (*m_Vector)[Idxs[Index]];
12591255 }
12601256 auto Op = OperationCurrentT<CommonDataT>();
12611257 return Op (m_LeftOperation.getValue (Index),
12621258 m_RightOperation.getValue (Index));
12631259 }
12641260
1265- template <int IdxNum = getNumElements ()>
1261+ template <int IdxNum = size ()>
12661262 DataT getValue (EnableIfMultipleIndexes<IdxNum, size_t > Index) const {
12671263 if (std::is_same_v<OperationCurrentT<DataT>, GetOp<DataT>>) {
1268- std::array<int , getNumElements ()> Idxs{Indexes...};
1264+ std::array<int , size ()> Idxs{Indexes...};
12691265 return (*m_Vector)[Idxs[Index]];
12701266 }
12711267 auto Op = OperationCurrentT<DataT>();
@@ -1276,7 +1272,7 @@ class SwizzleOp : public detail::NamedSwizzlesMixinBoth<
12761272 template <template <typename > class Operation , typename RhsOperation>
12771273 void operatorHelper (const RhsOperation &Rhs) const {
12781274 Operation<DataT> Op;
1279- std::array<int , getNumElements ()> Idxs{Indexes...};
1275+ std::array<int , size ()> Idxs{Indexes...};
12801276 for (size_t I = 0 ; I < Idxs.size (); ++I) {
12811277 DataT Res = Op ((*m_Vector)[Idxs[I]], Rhs.getValue (I));
12821278 (*m_Vector)[Idxs[I]] = Res;
0 commit comments