[eigen] alignment bug - or where is our non sse inversion gone? |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
Hi guys, I just stumbled over a problem when using EIGEN_DONT_ALIGN_STATICALLY is defined. I compiled the attached sample with -g3 -msse2 (gcc 4.3.4). To me, it seems clear, that this bug occurs, because at least I am totally missing any non SSE path for fixed size (3x3, 4x4) types. - Hauke
(gdb) bt #0 0x0040354b in Eigen::ei_pload<float __vector> (from=0x28cc6c) at /usr/lib/gcc/i686-pc-cygwin/4.3.4/include/xmmintrin.h:904 #1 0x004036dd in Eigen::ei_ploadt<float __vector, 1> (from=0x28cc6c) at /home/heibel/external/eigen/eigen/Eigen/src/Core/GenericPacketMath.h:267 #2 0x004038f4 in Eigen::DenseStorageBase<Eigen::Matrix<float, 4, 4, 0, 4, 4> >::packet<1> (this=0x28cc6c, index=0) at /home/heibel/external/eigen/eigen/Eigen/src/Core/DenseStorageBase.h:120 #3 0x0040235c in Eigen::ei_compute_inverse_size4<1, float, Eigen::Matrix<float, 4, 4, 0, 4, 4>, Eigen::Matrix<float, 4, 4, 0, 4, 4> >::run ( matrix=@0x28cc6c, result=@0x28cc2c) at /home/heibel/external/eigen/eigen/Eigen/src/LU/arch/Inverse_SSE.h:53 #4 0x0040388c in Eigen::ei_inverse_impl<Eigen::Matrix<float, 4, 4, 0, 4, 4> >::evalTo<Eigen::Matrix<float, 4, 4, 0, 4, 4> > (this=0x28ccb0, dst=@0x28cc2c) at /home/heibel/external/eigen/eigen/Eigen/src/LU/Inverse.h:303 #5 0x004037cc in Eigen::ReturnByValue<Eigen::ei_inverse_impl<Eigen::Matrix<float, 4, 4, 0, 4, 4> > >::evalTo<Eigen::Matrix<float, 4, 4, 0, 4, 4> > (this=0x28ccb0, dst=@0x28cc2c) at /home/heibel/external/eigen/eigen/Eigen/src/Core/ReturnByValue.h:67 #6 0x00403534 in Matrix<Eigen::ei_inverse_impl<Eigen::Matrix<float, 4, 4, 0, 4, 4> > > (this=0x28cc2c, other=@0x28ccb0) at /home/heibel/external/eigen/eigen/Eigen/src/Core/Matrix.h:301 #7 0x0040118c in main () at main.cpp:12
Attachment:
main.cpp
Description: Binary data
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |