From 68a2a8c4454cfa653d1ad0ec9de729c43e6a151d Mon Sep 17 00:00:00 2001 From: Eugene Zhulenev Date: Tue, 23 Apr 2019 11:41:02 -0700 Subject: Use packet ops instead of AVX2 intrinsics --- Eigen/src/Core/arch/AVX/PacketMath.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'Eigen/src/Core/arch/AVX') diff --git a/Eigen/src/Core/arch/AVX/PacketMath.h b/Eigen/src/Core/arch/AVX/PacketMath.h index 3f94f85eb..9d13895e3 100644 --- a/Eigen/src/Core/arch/AVX/PacketMath.h +++ b/Eigen/src/Core/arch/AVX/PacketMath.h @@ -387,10 +387,10 @@ template<> EIGEN_STRONG_INLINE Packet4d ploadu(const double* from) { E template<> EIGEN_STRONG_INLINE Packet8i ploadu(const int* from) { EIGEN_DEBUG_UNALIGNED_LOAD return _mm256_loadu_si256(reinterpret_cast(from)); } template<> EIGEN_STRONG_INLINE Packet8f ploadu(const float* from, uint8_t umask) { - __m256i mask = _mm256_set1_epi8(static_cast(umask)); - const __m256i bit_mask = _mm256_set_epi32(0xffffff7f, 0xffffffbf, 0xffffffdf, 0xffffffef, 0xfffffff7, 0xfffffffb, 0xfffffffd, 0xfffffffe); - mask = _mm256_or_si256(mask, bit_mask); - mask = _mm256_cmpeq_epi32(mask, _mm256_set1_epi32(0xffffffff)); + Packet8i mask = _mm256_set1_epi8(static_cast(umask)); + const Packet8i bit_mask = _mm256_set_epi32(0xffffff7f, 0xffffffbf, 0xffffffdf, 0xffffffef, 0xfffffff7, 0xfffffffb, 0xfffffffd, 0xfffffffe); + mask = por(mask, bit_mask); + mask = pcmp_eq(mask, _mm256_set1_epi32(0xffffffff)); EIGEN_DEBUG_UNALIGNED_LOAD return _mm256_maskload_ps(from, mask); } -- cgit v1.2.3