aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/arch/AVX512/Complex.h
diff options
context:
space:
mode:
authorGravatar Rasmus Munk Larsen <rmlarsen@google.com>2019-01-09 16:29:18 -0800
committerGravatar Rasmus Munk Larsen <rmlarsen@google.com>2019-01-09 16:29:18 -0800
commitf2767112c88762ddc62e8c066dd3377a3d89da31 (patch)
tree51595b6651df9fc5dd6c532e2d0a2578f9726b80 /Eigen/src/Core/arch/AVX512/Complex.h
parentcb955df9a6fd5cb2673a7a15172609ce2dafdde8 (diff)
Simplify a bit.
Diffstat (limited to 'Eigen/src/Core/arch/AVX512/Complex.h')
-rw-r--r--Eigen/src/Core/arch/AVX512/Complex.h10
1 files changed, 2 insertions, 8 deletions
diff --git a/Eigen/src/Core/arch/AVX512/Complex.h b/Eigen/src/Core/arch/AVX512/Complex.h
index 2c613f870..154fedc25 100644
--- a/Eigen/src/Core/arch/AVX512/Complex.h
+++ b/Eigen/src/Core/arch/AVX512/Complex.h
@@ -83,10 +83,7 @@ template<> EIGEN_STRONG_INLINE Packet8cf pandnot<Packet8cf>(const Packet8cf& a,
template <>
EIGEN_STRONG_INLINE Packet8cf pcmp_eq(const Packet8cf& a, const Packet8cf& b) {
__m512 eq = pcmp_eq<Packet16f>(a.v, b.v);
- __m512 eq_swap_real_imag = _mm512_permute_ps(eq, 0xB1);
- __m512i real_and_imag_equal = _mm512_and_si512(
- _mm512_castps_si512(eq), _mm512_castps_si512(eq_swap_real_imag));
- return Packet8cf(_mm512_castsi512_ps(real_and_imag_equal));
+ return Packet8cf(pand(eq, _mm512_permute_ps(eq, 0xB1)));
}
template<> EIGEN_STRONG_INLINE Packet8cf pload <Packet8cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet8cf(pload<Packet16f>(&numext::real_ref(*from))); }
@@ -279,10 +276,7 @@ template<> EIGEN_STRONG_INLINE Packet4cd pandnot<Packet4cd>(const Packet4cd& a,
template <>
EIGEN_STRONG_INLINE Packet4cd pcmp_eq(const Packet4cd& a, const Packet4cd& b) {
__m512d eq = pcmp_eq<Packet8d>(a.v, b.v);
- __m512d eq_swap_real_imag = _mm512_permute_pd(eq, 0x55);
- __m512i real_and_imag_equal = _mm512_and_si512(
- _mm512_castpd_si512(eq), _mm512_castpd_si512(eq_swap_real_imag));
- return Packet4cd(_mm512_castsi512_pd(real_and_imag_equal));
+ return Packet4cd(pand(eq, _mm512_permute_pd(eq, 0x55)));
}
template<> EIGEN_STRONG_INLINE Packet4cd pload <Packet4cd>(const std::complex<double>* from)