diff options
author | Guoqiang QI <425418567@qq.com> | 2021-01-13 22:54:03 +0000 |
---|---|---|
committer | Rasmus Munk Larsen <rmlarsen@google.com> | 2021-01-13 22:54:03 +0000 |
commit | 38ae5353ab6f1050aed64821ac56a1561096cdce (patch) | |
tree | bc2cbea514d3843d300695559b96abeac4ceefc3 /Eigen/src/Core/GenericPacketMath.h | |
parent | 352f1422d3ceea19a04cab297c6339e0870e1c6c (diff) |
1)provide a better generic paddsub op implementation
2)make paddsub op support the Packet2cf/Packet4f/Packet2f in NEON
3)make paddsub op support the Packet2cf/Packet4f in SSE
Diffstat (limited to 'Eigen/src/Core/GenericPacketMath.h')
-rw-r--r-- | 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 671ed3c89..ec7d20e73 100644 --- a/Eigen/src/Core/GenericPacketMath.h +++ b/Eigen/src/Core/GenericPacketMath.h @@ -407,6 +407,12 @@ pabs(const unsigned long& a) { return a; } template<> EIGEN_DEVICE_FUNC inline unsigned long long pabs(const unsigned long long& a) { return a; } +/** \internal \returns the addsub value of \a a,b */ +template<typename Packet> EIGEN_DEVICE_FUNC inline Packet +paddsub(const Packet& a, const Packet& b) { + return pselect(peven_mask(a), padd(a, b), psub(a, b)); + } + /** \internal \returns the phase angle of \a a */ template<typename Packet> EIGEN_DEVICE_FUNC inline Packet parg(const Packet& a) { using numext::arg; return arg(a); } |