diff options
author | Eugene Zhulenev <ezhulenev@google.com> | 2019-05-02 13:14:18 -0700 |
---|---|---|
committer | Eugene Zhulenev <ezhulenev@google.com> | 2019-05-02 13:14:18 -0700 |
commit | b4010f02f9fc78504586f6eac13066686877e5e8 (patch) | |
tree | 522d7fd885a4d8766d670e68e16d2b44e12628ff /Eigen/src/Core/GenericPacketMath.h | |
parent | 578407f42f2598e8a1b5d8caeccf8968a326335b (diff) |
Add masked pstoreu to AVX and AVX512 PacketMath
Diffstat (limited to 'Eigen/src/Core/GenericPacketMath.h')
-rw-r--r-- | Eigen/src/Core/GenericPacketMath.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Eigen/src/Core/GenericPacketMath.h b/Eigen/src/Core/GenericPacketMath.h index 3bba02278..f1a8d5707 100644 --- a/Eigen/src/Core/GenericPacketMath.h +++ b/Eigen/src/Core/GenericPacketMath.h @@ -371,6 +371,15 @@ template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline void pstore( template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline void pstoreu(Scalar* to, const Packet& from) { (*to) = from; } +/** \internal copy the packet \a from to \a *to, (un-aligned store with a mask) + * There is no generic implementation. We only have implementations for specialized + * cases. Generic case should not be called. + */ +template<typename Scalar, typename Packet> +EIGEN_DEVICE_FUNC inline +typename enable_if<unpacket_traits<Packet>::masked_load_available, void>::type +pstoreu(Scalar* to, const Packet& from, typename unpacket_traits<Packet>::mask_t umask); + template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline Packet pgather(const Scalar* from, Index /*stride*/) { return ploadu<Packet>(from); } |