diff options
author | Gael Guennebaud <g.gael@free.fr> | 2010-07-07 22:35:06 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2010-07-07 22:35:06 +0200 |
commit | d89925e6dee382ac0a5f4b91d9ad82c996213c3f (patch) | |
tree | c2b8b7ef99846d666f1ef849207b88c775058169 /Eigen/src/Core/arch/SSE/Complex.h | |
parent | 02fd3acd81c78c8aaadaf41144e57db0c1cbd05f (diff) |
an attempt to fix wrong unaligned store
Diffstat (limited to 'Eigen/src/Core/arch/SSE/Complex.h')
-rw-r--r-- | Eigen/src/Core/arch/SSE/Complex.h | 6 |
1 files changed, 3 insertions, 3 deletions
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<std::complex<double> >(const std template<> EIGEN_STRONG_INLINE std::complex<double> ei_pfirst<Packet1cd>(const Packet1cd& a) { - EIGEN_ALIGN16 std::complex<double> res; - _mm_store_pd((double*)&res, a.v); - return res; + EIGEN_ALIGN16 double res[2]; + _mm_store_pd(res, a.v); + return *(std::complex<double>*)res; } template<> EIGEN_STRONG_INLINE Packet1cd ei_preverse(const Packet1cd& a) { return a; } |