diff options
author | Gael Guennebaud <g.gael@free.fr> | 2014-03-30 22:43:47 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2014-03-30 22:43:47 +0200 |
commit | 1c0728043a1fe154107c66cc26c33cab9780efa5 (patch) | |
tree | b4c3d3a6a62935e3b9c7c95c7bfab7dd6cafe217 /Eigen/src/Core/arch/SSE/Complex.h | |
parent | e497a27ddc0d724bc0eadde1e211617b766dd100 (diff) |
Workaround alignment warnings
Diffstat (limited to 'Eigen/src/Core/arch/SSE/Complex.h')
-rw-r--r-- | Eigen/src/Core/arch/SSE/Complex.h | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/Eigen/src/Core/arch/SSE/Complex.h b/Eigen/src/Core/arch/SSE/Complex.h index 694979e19..e54ebbf90 100644 --- a/Eigen/src/Core/arch/SSE/Complex.h +++ b/Eigen/src/Core/arch/SSE/Complex.h @@ -117,18 +117,15 @@ template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<f template<> EIGEN_DEVICE_FUNC inline Packet2cf pgather<std::complex<float>, Packet2cf>(const std::complex<float>* from, int stride) { return Packet2cf(_mm_set_ps(std::imag(from[1*stride]), std::real(from[1*stride]), - std::imag(from[0*stride]), std::real(from[0*stride]))); + std::imag(from[0*stride]), std::real(from[0*stride]))); } template<> EIGEN_DEVICE_FUNC inline void pscatter<std::complex<float>, Packet2cf>(std::complex<float>* to, const Packet2cf& from, int stride) { - /* for (int i = 0; i < 2; i+=2) { - to[stride*i] = std::complex<float>(from.v[i], from.v[i+1]); - }*/ to[stride*0] = std::complex<float>(_mm_cvtss_f32(_mm_shuffle_ps(from.v, from.v, 0)), - _mm_cvtss_f32(_mm_shuffle_ps(from.v, from.v, 1))); + _mm_cvtss_f32(_mm_shuffle_ps(from.v, from.v, 1))); to[stride*1] = std::complex<float>(_mm_cvtss_f32(_mm_shuffle_ps(from.v, from.v, 2)), - _mm_cvtss_f32(_mm_shuffle_ps(from.v, from.v, 3))); + _mm_cvtss_f32(_mm_shuffle_ps(from.v, from.v, 3))); } template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> * addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); } |