From 23aae0d63edcfc883e0f3a4d037d51a2affc3985 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Wed, 23 Feb 2011 21:24:47 +0300 Subject: fix pset1 for complex --- Eigen/src/Core/arch/AltiVec/Complex.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'Eigen/src/Core/arch/AltiVec/Complex.h') diff --git a/Eigen/src/Core/arch/AltiVec/Complex.h b/Eigen/src/Core/arch/AltiVec/Complex.h index fd118ccff..f8adf1b63 100644 --- a/Eigen/src/Core/arch/AltiVec/Complex.h +++ b/Eigen/src/Core/arch/AltiVec/Complex.h @@ -70,19 +70,17 @@ template<> EIGEN_STRONG_INLINE Packet2cf pset1(const std::complex((const float *)&from); - res.v = vec_perm(res.v, res.v, p16uc_PSET_HI); - } else { + else res.v = ploadu((const float *)&from); - res.v = vec_perm(res.v, res.v, p16uc_PSET_LO); - } + res.v = vec_perm(res.v, res.v, p16uc_PSET_HI); return res; } template<> EIGEN_STRONG_INLINE Packet2cf padd(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(vec_add(a.v,b.v)); } template<> EIGEN_STRONG_INLINE Packet2cf psub(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(vec_sub(a.v,b.v)); } -template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(psub(p4f_ZERO, a.v)); } +template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate(a.v)); } template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a) { return Packet2cf((Packet4f)vec_xor((Packet4ui)a.v, p4ui_CONJ_XOR)); } template<> EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) -- cgit v1.2.3