Optimize predux<Packet4d> (AVX)

(grafted from 7dd894e40e439a6d1f4aed659d1375d65589cff3
)
This commit is contained in:
Gael Guennebaud 2016-11-22 21:41:30 +01:00
parent b2eb1bf3dc
commit 1b7dd46d94

View File

@ -401,8 +401,7 @@ template<> EIGEN_STRONG_INLINE float predux<Packet8f>(const Packet8f& a)
} }
template<> EIGEN_STRONG_INLINE double predux<Packet4d>(const Packet4d& a) template<> EIGEN_STRONG_INLINE double predux<Packet4d>(const Packet4d& a)
{ {
Packet4d tmp0 = _mm256_hadd_pd(a,_mm256_permute2f128_pd(a,a,1)); return predux(_mm_add_pd(_mm256_castpd256_pd128(a),_mm256_extractf128_pd(a,1)));
return pfirst(_mm256_hadd_pd(tmp0,tmp0));
} }
template<> EIGEN_STRONG_INLINE Packet4f predux_downto4<Packet8f>(const Packet8f& a) template<> EIGEN_STRONG_INLINE Packet4f predux_downto4<Packet8f>(const Packet8f& a)