@@ -650,7 +650,7 @@ template <typename Type, int NumElements> class vec {
650
650
#ifdef __SYCL_DEVICE_ONLY__
651
651
vec (const vec &Rhs) = default;
652
652
#else
653
- vec (const vec &Rhs) : m_Data(Rhs.m_Data) {}
653
+ constexpr vec (const vec &Rhs) : m_Data(Rhs.m_Data) {}
654
654
#endif
655
655
656
656
vec (vec &&Rhs) = default;
@@ -682,7 +682,7 @@ template <typename Type, int NumElements> class vec {
682
682
T>;
683
683
684
684
template <typename Ty = DataT>
685
- explicit vec (const EnableIfNotHostHalf<Ty> &arg) {
685
+ explicit constexpr vec (const EnableIfNotHostHalf<Ty> &arg) {
686
686
m_Data = (DataType)arg;
687
687
}
688
688
@@ -696,7 +696,8 @@ template <typename Type, int NumElements> class vec {
696
696
return *this ;
697
697
}
698
698
699
- template <typename Ty = DataT> explicit vec (const EnableIfHostHalf<Ty> &arg) {
699
+ template <typename Ty = DataT>
700
+ explicit constexpr vec (const EnableIfHostHalf<Ty> &arg) {
700
701
for (int i = 0 ; i < NumElements; ++i) {
701
702
setValue (i, arg);
702
703
}
@@ -714,7 +715,7 @@ template <typename Type, int NumElements> class vec {
714
715
return *this ;
715
716
}
716
717
#else
717
- explicit vec (const DataT &arg) {
718
+ explicit constexpr vec (const DataT &arg) {
718
719
for (int i = 0 ; i < NumElements; ++i) {
719
720
setValue (i, arg);
720
721
}
@@ -743,28 +744,32 @@ template <typename Type, int NumElements> class vec {
743
744
using EnableIfMultipleElems = typename detail::enable_if_t <
744
745
std::is_convertible<T, DataT>::value && NumElements == IdxNum, DataT>;
745
746
template <typename Ty = DataT>
746
- vec (const EnableIfMultipleElems<2 , Ty> Arg0,
747
- const EnableIfNotHostHalf<Ty> Arg1)
747
+ constexpr vec (const EnableIfMultipleElems<2 , Ty> Arg0,
748
+ const EnableIfNotHostHalf<Ty> Arg1)
748
749
: m_Data{Arg0, Arg1} {}
749
750
template <typename Ty = DataT>
750
- vec (const EnableIfMultipleElems<3 , Ty> Arg0,
751
- const EnableIfNotHostHalf<Ty> Arg1, const DataT Arg2)
751
+ constexpr vec (const EnableIfMultipleElems<3 , Ty> Arg0,
752
+ const EnableIfNotHostHalf<Ty> Arg1, const DataT Arg2)
752
753
: m_Data{Arg0, Arg1, Arg2} {}
753
754
template <typename Ty = DataT>
754
- vec (const EnableIfMultipleElems<4 , Ty> Arg0,
755
- const EnableIfNotHostHalf<Ty> Arg1, const DataT Arg2, const Ty Arg3)
755
+ constexpr vec (const EnableIfMultipleElems<4 , Ty> Arg0,
756
+ const EnableIfNotHostHalf<Ty> Arg1, const DataT Arg2,
757
+ const Ty Arg3)
756
758
: m_Data{Arg0, Arg1, Arg2, Arg3} {}
757
759
template <typename Ty = DataT>
758
- vec (const EnableIfMultipleElems<8 , Ty> Arg0,
759
- const EnableIfNotHostHalf<Ty> Arg1, const DataT Arg2, const DataT Arg3,
760
- const DataT Arg4, const DataT Arg5, const DataT Arg6, const DataT Arg7)
760
+ constexpr vec (const EnableIfMultipleElems<8 , Ty> Arg0,
761
+ const EnableIfNotHostHalf<Ty> Arg1, const DataT Arg2,
762
+ const DataT Arg3, const DataT Arg4, const DataT Arg5,
763
+ const DataT Arg6, const DataT Arg7)
761
764
: m_Data{Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7} {}
762
765
template <typename Ty = DataT>
763
- vec (const EnableIfMultipleElems<16 , Ty> Arg0,
764
- const EnableIfNotHostHalf<Ty> Arg1, const DataT Arg2, const DataT Arg3,
765
- const DataT Arg4, const DataT Arg5, const DataT Arg6, const DataT Arg7,
766
- const DataT Arg8, const DataT Arg9, const DataT ArgA, const DataT ArgB,
767
- const DataT ArgC, const DataT ArgD, const DataT ArgE, const DataT ArgF)
766
+ constexpr vec (const EnableIfMultipleElems<16 , Ty> Arg0,
767
+ const EnableIfNotHostHalf<Ty> Arg1, const DataT Arg2,
768
+ const DataT Arg3, const DataT Arg4, const DataT Arg5,
769
+ const DataT Arg6, const DataT Arg7, const DataT Arg8,
770
+ const DataT Arg9, const DataT ArgA, const DataT ArgB,
771
+ const DataT ArgC, const DataT ArgD, const DataT ArgE,
772
+ const DataT ArgF)
768
773
: m_Data{Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7,
769
774
Arg8, Arg9, ArgA, ArgB, ArgC, ArgD, ArgE, ArgF} {}
770
775
#endif
@@ -773,7 +778,7 @@ template <typename Type, int NumElements> class vec {
773
778
// base types are match and that the NumElements == sum of lengths of args.
774
779
template <typename ... argTN, typename = EnableIfSuitableTypes<argTN...>,
775
780
typename = EnableIfSuitableNumElements<argTN...>>
776
- vec (const argTN &... args) {
781
+ constexpr vec (const argTN &... args) {
777
782
vaargCtorHelper (0 , args...);
778
783
}
779
784
@@ -792,7 +797,7 @@ template <typename Type, int NumElements> class vec {
792
797
typename = typename detail::enable_if_t <
793
798
std::is_same<vector_t_, vector_t >::value &&
794
799
!std::is_same<vector_t_, DataT>::value>>
795
- vec (vector_t openclVector) : m_Data(openclVector) {}
800
+ constexpr vec (vector_t openclVector) : m_Data(openclVector) {}
796
801
operator vector_t () const { return m_Data; }
797
802
#endif
798
803
0 commit comments