SWDEV-364950 - Add trivial copy assignment for HIP_vector_type under HIP_CLANG_ONLY path
Change-Id: I56a1003ba32c748631c7751b2e6a49e12e48afcb
Этот коммит содержится в:
@@ -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>
|
||||
|
||||
Ссылка в новой задаче
Block a user