diff options
author | 2014-03-27 16:03:03 -0700 | |
---|---|---|
committer | 2014-03-27 16:03:03 -0700 | |
commit | ee866790967ab4ab11a62987dd21bac66237cba9 (patch) | |
tree | bec58bf7d0cd24b8845ec1d1bb641a3c5b7699c3 /Eigen/src/Core/GenericPacketMath.h | |
parent | 729363114f0c7ea8ff3f8ddd8f6a83335b0f3909 (diff) |
Introduced pscatter/pgather packet primitives. They will be used to optimize the loop peeling code of the block-panel matrix multiplication kernel.
Diffstat (limited to 'Eigen/src/Core/GenericPacketMath.h')
-rwxr-xr-x | Eigen/src/Core/GenericPacketMath.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Eigen/src/Core/GenericPacketMath.h b/Eigen/src/Core/GenericPacketMath.h index f9ddf4718..03e7f410c 100755 --- a/Eigen/src/Core/GenericPacketMath.h +++ b/Eigen/src/Core/GenericPacketMath.h @@ -217,6 +217,12 @@ template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline void pstore( /** \internal copy the packet \a from to \a *to, (un-aligned store) */ template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline void pstoreu(Scalar* to, const Packet& from) +{ (*to) = from; } + + template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline Packet pgather(const Scalar* from, int /*stride*/) + { return ploadu<Packet>(from); } + + template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline void pscatter(Scalar* to, const Packet& from, int /*stride*/) { (*to) = from; } /** \internal tries to do cache prefetching of \a addr */ |