Change predux on PowerPC for Packet4i to NOT saturate the sum of the elements (like other architectures).

This commit is contained in:
Chip Kerchner 2024-05-08 22:39:27 +00:00
parent ff174f7926
commit 4d1d14e069

View File

@ -2437,13 +2437,11 @@ EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a) {
template <> template <>
EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a) { EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a) {
Packet4i sum; Packet4i b, sum;
sum = vec_sums(a, p4i_ZERO); b = vec_sld(a, a, 8);
#ifdef _BIG_ENDIAN sum = a + b;
sum = vec_sld(sum, p4i_ZERO, 12); b = vec_sld(sum, sum, 4);
#else sum += b;
sum = vec_sld(p4i_ZERO, sum, 4);
#endif
return pfirst(sum); return pfirst(sum);
} }