mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-06-04 18:54:00 +08:00
Implement pmadd for float and double to make it consistent with the vectorized path when FMA is available.
This commit is contained in:
parent
a4c266f827
commit
b3151bca40
@ -813,6 +813,16 @@ template<> EIGEN_STRONG_INLINE Packet2d pblend(const Selector<2>& ifPacket, cons
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Scalar path for pmadd with FMA to ensure consistency with vectorized path.
|
||||||
|
#ifdef __FMA__
|
||||||
|
template<> EIGEN_STRONG_INLINE float pmadd(const float& a, const float& b, const float& c) {
|
||||||
|
return ::fmaf(a,b,c);
|
||||||
|
}
|
||||||
|
template<> EIGEN_STRONG_INLINE double pmadd(const double& a, const double& b, const double& c) {
|
||||||
|
return ::fma(a,b,c);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
} // end namespace internal
|
} // end namespace internal
|
||||||
|
|
||||||
} // end namespace Eigen
|
} // end namespace Eigen
|
||||||
|
Loading…
x
Reference in New Issue
Block a user