Uses _mm512_abs_pd for Packet8d pabs

This commit is contained in:
Steve Bronder 2021-03-18 15:47:52 +00:00 committed by Rasmus Munk Larsen
parent 0cc9b5eb40
commit f019b97aca

View File

@ -139,6 +139,7 @@ template<> struct packet_traits<double> : default_packet_traits
size = 8,
HasHalfPacket = 1,
#if EIGEN_GNUC_AT_LEAST(5, 3) || (!EIGEN_COMP_GNUC_STRICT)
HasAbs = 1,
HasLog = 1,
HasSqrt = EIGEN_FAST_MATH,
HasRsqrt = EIGEN_FAST_MATH,
@ -888,9 +889,7 @@ template<> EIGEN_STRONG_INLINE Packet16f pabs(const Packet16f& a)
}
template <>
EIGEN_STRONG_INLINE Packet8d pabs(const Packet8d& a) {
// _mm512_abs_ps intrinsic not found, so hack around it
return _mm512_castsi512_pd(_mm512_and_si512(_mm512_castpd_si512(a),
_mm512_set1_epi64(0x7fffffffffffffff)));
return _mm512_abs_pd(a);
}
template<>