From cf3616b2c00ba3b1e9574ad77c2cd4ec363adadc Mon Sep 17 00:00:00 2001 From: Konstantinos Margaritis Date: Mon, 28 Jun 2010 21:24:55 +0300 Subject: [PATCH] AltiVec signed integer pmadd removed, proved to be 2x slower than the scalar trait(!). --- Eigen/src/Core/arch/AltiVec/PacketMath.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Eigen/src/Core/arch/AltiVec/PacketMath.h b/Eigen/src/Core/arch/AltiVec/PacketMath.h index 2feca365a..e3454b554 100644 --- a/Eigen/src/Core/arch/AltiVec/PacketMath.h +++ b/Eigen/src/Core/arch/AltiVec/PacketMath.h @@ -174,6 +174,8 @@ template<> EIGEN_STRONG_INLINE Packet4f ei_pnegate(const Packet4f& a) { return e template<> EIGEN_STRONG_INLINE Packet4i ei_pnegate(const Packet4i& a) { return ei_psub(ei_p4i_ZERO, a); } template<> EIGEN_STRONG_INLINE Packet4f ei_pmul(const Packet4f& a, const Packet4f& b) { return vec_madd(a,b,ei_p4f_ZERO); } +/* Commented out: it's actually slower than processing it scalar + * template<> EIGEN_STRONG_INLINE Packet4i ei_pmul(const Packet4i& a, const Packet4i& b) { // Detailed in: http://freevec.org/content/32bit_signed_integer_multiplication_altivec @@ -207,6 +209,7 @@ template<> EIGEN_STRONG_INLINE Packet4i ei_pmul(const Packet4i& a, con return prod; } +*/ template<> EIGEN_STRONG_INLINE Packet4f ei_pdiv(const Packet4f& a, const Packet4f& b) { Packet4f t, y_0, y_1, res;