From de38ff24993af77f188ab97d458d2884eeffd1ba Mon Sep 17 00:00:00 2001 From: Konstantinos Margaritis Date: Sun, 21 Sep 2014 11:56:07 +0000 Subject: [PATCH] prefetch are noops on VSX, actually disable the prefetch trait --- Eigen/src/Core/arch/AltiVec/PacketMath.h | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Eigen/src/Core/arch/AltiVec/PacketMath.h b/Eigen/src/Core/arch/AltiVec/PacketMath.h index 728f8b4d6..1b86e1227 100755 --- a/Eigen/src/Core/arch/AltiVec/PacketMath.h +++ b/Eigen/src/Core/arch/AltiVec/PacketMath.h @@ -483,16 +483,10 @@ template<> EIGEN_STRONG_INLINE void pstoreu(float* to, const Packet4f& } #endif -template<> EIGEN_STRONG_INLINE void prefetch(const float* addr) { #ifndef __VSX__ - vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); +template<> EIGEN_STRONG_INLINE void prefetch(const float* addr) { vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); } +template<> EIGEN_STRONG_INLINE void prefetch(const int* addr) { vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); } #endif -} -template<> EIGEN_STRONG_INLINE void prefetch(const int* addr) { -#ifndef __VSX__ - vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); -#endif -} template<> EIGEN_STRONG_INLINE float pfirst(const Packet4f& a) { float EIGEN_ALIGN16 x[4]; vec_st(a, 0, x); return x[0]; } template<> EIGEN_STRONG_INLINE int pfirst(const Packet4i& a) { int EIGEN_ALIGN16 x[4]; vec_st(a, 0, x); return x[0]; }