prefetch are noops on VSX, actually disable the prefetch trait

This commit is contained in:
Konstantinos Margaritis 2014-09-21 11:56:07 +00:00
parent 60e093a9dc
commit de38ff2499

View File

@ -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]; }