aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-08-09 20:49:55 +0200
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-08-09 20:49:55 +0200
commit527557672ab11a99ceecc2a3bfd9fea9dbe216dd (patch)
treef641913d8846c6740c519959fe3727b0d30440c3 /Eigen/src/Core
parent8e086801196a251c013479de51e6cdaa5f595a9b (diff)
disable the assembly for fast unaligned stores. indeed, there is a strange bug that is triggered by this code:
#include<Eigen/Core> int main() { Eigen::Matrix4f m; m <<1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16; m.col(0).swap(m.col(1)); std::cout << m << std::endl; } when the fast unaligned stores are used, the column is copied instead of being swapped.
Diffstat (limited to 'Eigen/src/Core')
-rw-r--r--Eigen/src/Core/arch/SSE/PacketMath.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/Eigen/src/Core/arch/SSE/PacketMath.h b/Eigen/src/Core/arch/SSE/PacketMath.h
index 3fd33afbf..130aa63ce 100644
--- a/Eigen/src/Core/arch/SSE/PacketMath.h
+++ b/Eigen/src/Core/arch/SSE/PacketMath.h
@@ -178,7 +178,7 @@ template<> EIGEN_STRONG_INLINE Packet4f ei_pload<float>(const float* from) {
template<> EIGEN_STRONG_INLINE Packet2d ei_pload<double>(const double* from) { return _mm_load_pd(from); }
template<> EIGEN_STRONG_INLINE Packet4i ei_pload<int>(const int* from) { return _mm_load_si128(reinterpret_cast<const Packet4i*>(from)); }
-#if (!defined __GNUC__) && (!defined __ICC)
+#if 1 // (!defined __GNUC__) && (!defined __ICC)
template<> EIGEN_STRONG_INLINE Packet4f ei_ploadu(const float* from) { return _mm_loadu_ps(from); }
template<> EIGEN_STRONG_INLINE Packet2d ei_ploadu<double>(const double* from) { return _mm_loadu_pd(from); }
template<> EIGEN_STRONG_INLINE Packet4i ei_ploadu<int>(const int* from) { return _mm_loadu_si128(reinterpret_cast<const Packet4i*>(from)); }