From d9cb604a5deda96ae0643debbf9d90705ced2187 Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Mon, 2 Mar 2015 09:41:36 -0800 Subject: Disabled the use of aligned memory loads when converting a tensor from float to doubles since alignment can't always be guaranteed. --- unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h') diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h b/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h index 29f536cf9..f594725a8 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h @@ -94,7 +94,8 @@ struct PacketConverter { EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TgtPacket packet(Index index) const { const int SrcPacketSize = internal::unpacket_traits::size; if (index + SrcPacketSize < m_maxIndex) { - return internal::pcast(m_impl.template packet(index)); + // Force unaligned memory loads since we can't ensure alignment anymore + return internal::pcast(m_impl.template packet(index)); } else { const int TgtPacketSize = internal::unpacket_traits::size; EIGEN_ALIGN_DEFAULT typename internal::unpacket_traits::type values[TgtPacketSize]; -- cgit v1.2.3