diff options
author | Gael Guennebaud <g.gael@free.fr> | 2018-11-26 16:47:13 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2018-11-26 16:47:13 +0100 |
commit | 5c8406babccd6148f5b63e994de42d5a28a96931 (patch) | |
tree | 45aab9bb69140794e8f48f0d179566a3a7aa4555 /Eigen/src/Core/arch/AltiVec/PacketMath.h | |
parent | cf8b85d5c5d1896ce1759a8c18beb56e8a71dea2 (diff) |
Unify Altivec/VSX's pexp with generic implementation
Diffstat (limited to 'Eigen/src/Core/arch/AltiVec/PacketMath.h')
-rwxr-xr-x | Eigen/src/Core/arch/AltiVec/PacketMath.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Eigen/src/Core/arch/AltiVec/PacketMath.h b/Eigen/src/Core/arch/AltiVec/PacketMath.h index 867aa8494..3f6253fa2 100755 --- a/Eigen/src/Core/arch/AltiVec/PacketMath.h +++ b/Eigen/src/Core/arch/AltiVec/PacketMath.h @@ -576,6 +576,16 @@ template<> EIGEN_STRONG_INLINE Packet4f pfrexp<Packet4f>(const Packet4f& a, Pack return pfrexp_float(a,exponent); } +template<> EIGEN_STRONG_INLINE Packet4f pcast_and_shiftleft<Packet4f>(Packet4f v, int n) +{ + Packet4i vi = vec_cts(v,0); + return reinterpret_cast<Packet4f>(vec_sl(vi, reinterpret_cast<Packet4ui>(pset1<Packet4i>(n)))); +} + +template<> EIGEN_STRONG_INLINE Packet4f pldexp<Packet4f>(const Packet4f& a, const Packet4f& exponent) { + return pldexp_float(a,exponent); +} + template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a) { Packet4f b, sum; |