diff options
Diffstat (limited to 'Eigen/src/Core/arch/AltiVec/PacketMath.h')
-rwxr-xr-x | Eigen/src/Core/arch/AltiVec/PacketMath.h | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/Eigen/src/Core/arch/AltiVec/PacketMath.h b/Eigen/src/Core/arch/AltiVec/PacketMath.h index f2dd98c06..83b75b974 100755 --- a/Eigen/src/Core/arch/AltiVec/PacketMath.h +++ b/Eigen/src/Core/arch/AltiVec/PacketMath.h @@ -1524,176 +1524,6 @@ template<> EIGEN_STRONG_INLINE bool predux_any(const Packet4f& x) return vec_any_ne(x, pzero(x)); } -template<int Offset> -struct palign_impl<Offset,Packet4f> -{ - static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second) - { -#ifdef _BIG_ENDIAN - switch (Offset % 4) { - case 1: - first = vec_sld(first, second, 4); break; - case 2: - first = vec_sld(first, second, 8); break; - case 3: - first = vec_sld(first, second, 12); break; - } -#else - switch (Offset % 4) { - case 1: - first = vec_sld(second, first, 12); break; - case 2: - first = vec_sld(second, first, 8); break; - case 3: - first = vec_sld(second, first, 4); break; - } -#endif - } -}; - -template<int Offset> -struct palign_impl<Offset,Packet4i> -{ - static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second) - { -#ifdef _BIG_ENDIAN - switch (Offset % 4) { - case 1: - first = vec_sld(first, second, 4); break; - case 2: - first = vec_sld(first, second, 8); break; - case 3: - first = vec_sld(first, second, 12); break; - } -#else - switch (Offset % 4) { - case 1: - first = vec_sld(second, first, 12); break; - case 2: - first = vec_sld(second, first, 8); break; - case 3: - first = vec_sld(second, first, 4); break; - } -#endif - } -}; - -template<int Offset> -struct palign_impl<Offset,Packet8s> -{ - static EIGEN_STRONG_INLINE void run(Packet8s& first, const Packet8s& second) - { -#ifdef _BIG_ENDIAN - switch (Offset % 8) { - case 1: - first = vec_sld(first, second, 2); break; - case 2: - first = vec_sld(first, second, 4); break; - case 3: - first = vec_sld(first, second, 6); break; - case 4: - first = vec_sld(first, second, 8); break; - case 5: - first = vec_sld(first, second, 10); break; - case 6: - first = vec_sld(first, second, 12); break; - case 7: - first = vec_sld(first, second, 14); break; - } -#else - switch (Offset % 8) { - case 1: - first = vec_sld(second, first, 14); break; - case 2: - first = vec_sld(second, first, 12); break; - case 3: - first = vec_sld(second, first, 10); break; - case 4: - first = vec_sld(second, first, 8); break; - case 5: - first = vec_sld(second, first, 6); break; - case 6: - first = vec_sld(second, first, 4); break; - case 7: - first = vec_sld(second, first, 2); break; - } -#endif - } -}; - -template<int Offset> -struct palign_impl<Offset,Packet8us> -{ - static EIGEN_STRONG_INLINE void run(Packet8us& first, const Packet8us& second) - { -#ifdef _BIG_ENDIAN - switch (Offset % 8) { - case 1: - first = vec_sld(first, second, 2); break; - case 2: - first = vec_sld(first, second, 4); break; - case 3: - first = vec_sld(first, second, 6); break; - case 4: - first = vec_sld(first, second, 8); break; - case 5: - first = vec_sld(first, second, 10); break; - case 6: - first = vec_sld(first, second, 12); break; - case 7: - first = vec_sld(first, second, 14); break; - } -#else - switch (Offset % 8) { - case 1: - first = vec_sld(second, first, 14); break; - case 2: - first = vec_sld(second, first, 12); break; - case 3: - first = vec_sld(second, first, 10); break; - case 4: - first = vec_sld(second, first, 8); break; - case 5: - first = vec_sld(second, first, 6); break; - case 6: - first = vec_sld(second, first, 4); break; - case 7: - first = vec_sld(second, first, 2); break; - } -#endif - } -}; - -template<int Offset> -struct palign_impl<Offset,Packet16c> -{ - static EIGEN_STRONG_INLINE void run(Packet16c& first, const Packet16c& second) - { - const int shift = Offset % 16; - if ( shift == 0 ) return; -#ifdef _BIG_ENDIAN - first = vec_sld(first, second, shift); -#else - first = vec_sld(first, second, shift); -#endif - } -}; - -template<int Offset> -struct palign_impl<Offset,Packet16uc> -{ - static EIGEN_STRONG_INLINE void run(Packet16uc& first, const Packet16uc& second) - { - const int shift = Offset % 16; - if ( shift == 0 ) return; -#ifdef _BIG_ENDIAN - first = vec_sld(first, second, shift); -#else - first = vec_sld(first, second, shift); -#endif - } -}; - EIGEN_DEVICE_FUNC inline void ptranspose(PacketBlock<Packet4f,4>& kernel) { Packet4f t0, t1, t2, t3; @@ -2362,20 +2192,6 @@ template<> EIGEN_STRONG_INLINE double predux_max<Packet2d>(const Packet2d& a) return pfirst(pmax(a, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(a), reinterpret_cast<Packet4ui>(a), 8)))); } -template<int Offset> -struct palign_impl<Offset,Packet2d> -{ - static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second) - { - if (Offset == 1) -#ifdef _BIG_ENDIAN - first = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(first), reinterpret_cast<Packet4ui>(second), 8)); -#else - first = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(second), reinterpret_cast<Packet4ui>(first), 8)); -#endif - } -}; - EIGEN_DEVICE_FUNC inline void ptranspose(PacketBlock<Packet2d,2>& kernel) { Packet2d t0, t1; |