diff --git a/Eigen/src/Core/arch/SSE/Complex.h b/Eigen/src/Core/arch/SSE/Complex.h index 259aebe2c..b288c4cdc 100644 --- a/Eigen/src/Core/arch/SSE/Complex.h +++ b/Eigen/src/Core/arch/SSE/Complex.h @@ -282,9 +282,9 @@ template<> EIGEN_STRONG_INLINE void ei_prefetch >(const std template<> EIGEN_STRONG_INLINE std::complex ei_pfirst(const Packet1cd& a) { - EIGEN_ALIGN16 std::complex res; - _mm_store_pd((double*)&res, a.v); - return res; + EIGEN_ALIGN16 double res[2]; + _mm_store_pd(res, a.v); + return *(std::complex*)res; } template<> EIGEN_STRONG_INLINE Packet1cd ei_preverse(const Packet1cd& a) { return a; }