aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src
diff options
context:
space:
mode:
authorGravatar Konstantinos Margaritis <markos@freevec.org>2014-09-21 11:56:07 +0000
committerGravatar Konstantinos Margaritis <markos@freevec.org>2014-09-21 11:56:07 +0000
commitde38ff24993af77f188ab97d458d2884eeffd1ba (patch)
tree9febf97343cb8baa0aabe930b0e4a0bffffa5088 /Eigen/src
parent60e093a9dce2f8d4c0f3b2ea3e0386d5f01bff8d (diff)
prefetch are noops on VSX, actually disable the prefetch trait
Diffstat (limited to 'Eigen/src')
-rwxr-xr-xEigen/src/Core/arch/AltiVec/PacketMath.h10
1 files 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>(float* to, const Packet4f&
}
#endif
-template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) {
#ifndef __VSX__
- vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN);
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int* addr) { vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); }
#endif
-}
-template<> EIGEN_STRONG_INLINE void prefetch<int>(const int* addr) {
-#ifndef __VSX__
- vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN);
-#endif
-}
template<> EIGEN_STRONG_INLINE float pfirst<Packet4f>(const Packet4f& a) { float EIGEN_ALIGN16 x[4]; vec_st(a, 0, x); return x[0]; }
template<> EIGEN_STRONG_INLINE int pfirst<Packet4i>(const Packet4i& a) { int EIGEN_ALIGN16 x[4]; vec_st(a, 0, x); return x[0]; }