SWDEV-364950 - Add trivial copy assignment for HIP_vector_type under HIP_CLANG_ONLY path

Change-Id: I56a1003ba32c748631c7751b2e6a49e12e48afcb
Этот коммит содержится в:
Ioannis Assiouras
2022-11-21 23:41:49 +00:00
родитель 78eef7f173
Коммит 432f5fbc97
+46 -31
Просмотреть файл
@@ -430,16 +430,21 @@ template <typename __T> struct is_scalar : public integral_constant<bool, __is_s
__HOST_DEVICE__
~HIP_vector_base() = default;
__HOST_DEVICE__
HIP_vector_base& operator=(const HIP_vector_base& x_) noexcept {
#if __has_attribute(ext_vector_type)
data = x_.data;
#else
data[0] = x_.data[0];
#endif
#if __HIP_CLANG_ONLY__
__HOST_DEVICE__
HIP_vector_base& operator=(const HIP_vector_base&) = default;
#else
__HOST_DEVICE__
HIP_vector_base& operator=(const HIP_vector_base& x_) noexcept {
#if __has_attribute(ext_vector_type)
data = x_.data;
#else
data[0] = x_.data[0];
#endif
return *this;
}
return *this;
}
#endif
};
template<typename T>
@@ -483,17 +488,22 @@ template <typename __T> struct is_scalar : public integral_constant<bool, __is_s
__HOST_DEVICE__
~HIP_vector_base() = default;
__HOST_DEVICE__
HIP_vector_base& operator=(const HIP_vector_base& x_) noexcept {
#if __has_attribute(ext_vector_type)
data = x_.data;
#else
data[0] = x_.data[0];
data[1] = x_.data[1];
#endif
#if __HIP_CLANG_ONLY__
__HOST_DEVICE__
HIP_vector_base& operator=(const HIP_vector_base&) = default;
#else
__HOST_DEVICE__
HIP_vector_base& operator=(const HIP_vector_base& x_) noexcept {
#if __has_attribute(ext_vector_type)
data = x_.data;
#else
data[0] = x_.data[0];
data[1] = x_.data[1];
#endif
return *this;
}
return *this;
}
#endif
};
template<typename T>
@@ -726,19 +736,24 @@ template <typename __T> struct is_scalar : public integral_constant<bool, __is_s
__HOST_DEVICE__
~HIP_vector_base() = default;
__HOST_DEVICE__
HIP_vector_base& operator=(const HIP_vector_base& x_) noexcept {
#if __has_attribute(ext_vector_type)
data = x_.data;
#else
data[0] = x_.data[0];
data[1] = x_.data[1];
data[2] = x_.data[2];
data[3] = x_.data[3];
#endif
#if __HIP_CLANG_ONLY__
__HOST_DEVICE__
HIP_vector_base& operator=(const HIP_vector_base&) = default;
#else
__HOST_DEVICE__
HIP_vector_base& operator=(const HIP_vector_base& x_) noexcept {
#if __has_attribute(ext_vector_type)
data = x_.data;
#else
data[0] = x_.data[0];
data[1] = x_.data[1];
data[2] = x_.data[2];
data[3] = x_.data[3];
#endif
return *this;
}
return *this;
}
#endif
};
template<typename T, unsigned int rank>