aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/GenericPacketMath.h
diff options
context:
space:
mode:
authorGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2014-03-27 16:03:03 -0700
committerGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2014-03-27 16:03:03 -0700
commitee866790967ab4ab11a62987dd21bac66237cba9 (patch)
treebec58bf7d0cd24b8845ec1d1bb641a3c5b7699c3 /Eigen/src/Core/GenericPacketMath.h
parent729363114f0c7ea8ff3f8ddd8f6a83335b0f3909 (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-xEigen/src/Core/GenericPacketMath.h6
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 */