[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/