aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/GenericPacketMath.h
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen/src/Core/GenericPacketMath.h')
-rw-r--r--Eigen/src/Core/GenericPacketMath.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/Eigen/src/Core/GenericPacketMath.h b/Eigen/src/Core/GenericPacketMath.h
index db84eb259..fad94535f 100644
--- a/Eigen/src/Core/GenericPacketMath.h
+++ b/Eigen/src/Core/GenericPacketMath.h
@@ -270,22 +270,34 @@ EIGEN_DEVICE_FUNC inline Packet bitwise_helper(const Packet& a, const Packet& b,
/** \internal \returns the bitwise and of \a a and \a b */
template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
pand(const Packet& a, const Packet& b) {
+#if defined(EIGEN_HIP_DEVICE_COMPILE)
+ return bitwise_helper(a ,b, std::bit_and<unsigned char>());
+#else
EIGEN_USING_STD(bit_and);
return bitwise_helper(a ,b, bit_and<unsigned char>());
+#endif
}
/** \internal \returns the bitwise or of \a a and \a b */
template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
por(const Packet& a, const Packet& b) {
+#if defined(EIGEN_HIP_DEVICE_COMPILE)
+ return bitwise_helper(a ,b, std::bit_or<unsigned char>());
+#else
EIGEN_USING_STD(bit_or);
return bitwise_helper(a ,b, bit_or<unsigned char>());
+#endif
}
/** \internal \returns the bitwise xor of \a a and \a b */
template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
pxor(const Packet& a, const Packet& b) {
+#if defined(EIGEN_HIP_DEVICE_COMPILE)
+ return bitwise_helper(a ,b, std::bit_xor<unsigned char>());
+#else
EIGEN_USING_STD(bit_xor);
return bitwise_helper(a ,b, bit_xor<unsigned char>());
+#endif
}
/** \internal \returns the bitwise and of \a a and not \a b */