From 84a9d6fac9e6e8bac70b1616cbe3269ff05fb761 Mon Sep 17 00:00:00 2001 From: Chip Kerchner Date: Wed, 3 Aug 2022 20:48:13 +0000 Subject: [PATCH] Fix use of Packet2d type for non-VSX. --- Eigen/src/Core/arch/AltiVec/Complex.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Eigen/src/Core/arch/AltiVec/Complex.h b/Eigen/src/Core/arch/AltiVec/Complex.h index 60460350a..b0f5e97b9 100644 --- a/Eigen/src/Core/arch/AltiVec/Complex.h +++ b/Eigen/src/Core/arch/AltiVec/Complex.h @@ -268,8 +268,13 @@ template<> EIGEN_STRONG_INLINE Packet2cf pcplxflip(const Packet2cf& x EIGEN_STRONG_INLINE void ptranspose(PacketBlock& kernel) { +#ifdef __VSX__ Packet4f tmp = reinterpret_cast(vec_mergeh(reinterpret_cast(kernel.packet[0].v), reinterpret_cast(kernel.packet[1].v))); kernel.packet[1].v = reinterpret_cast(vec_mergel(reinterpret_cast(kernel.packet[0].v), reinterpret_cast(kernel.packet[1].v))); +#else + Packet4f tmp = vec_perm(kernel.packet[0].v, kernel.packet[1].v, p16uc_TRANSPOSE64_HI); + kernel.packet[1].v = vec_perm(kernel.packet[0].v, kernel.packet[1].v, p16uc_TRANSPOSE64_LO); +#endif kernel.packet[0].v = tmp; }