New user self-registration is disabled due to spam. Please email eigen-core-team @ if you need an account.
Before reporting a bug, please make sure that your Eigen version is up-to-date!
Bug 1103 - Test unalignedassert falis on ARM64
Summary: Test unalignedassert falis on ARM64
Alias: None
Product: Eigen
Classification: Unclassified
Component: Core - vectorization (show other bugs)
Version: 3.3 (current stable)
Hardware: ARM - NEON Linux
: Normal Unknown
Assignee: Konstantinos Margaritis
Depends on:
Blocks: 3.3
  Show dependency treegraph
Reported: 2015-10-31 20:07 UTC by gladk
Modified: 2015-12-10 15:07 UTC (History)
4 users (show)

Fail log of unalignedassert (12.76 KB, text/plain)
2015-10-31 20:07 UTC, gladk
no flags Details

Description gladk 2015-10-31 20:07:53 UTC
Created attachment 621 [details]
Fail log of unalignedassert

Hi all,

this bug can be the continuation of #907, so feel free to merge them.

In Debian we have faced also a compilation problem on arm64 platform [1].
I am able reproduce the same problem using unalignedassert-unittest on arm64.
The full log is attached. Here is the relevant part:

CMakeFiles/unalignedassert_2.dir/unalignedassert.cpp.o -c "/home/user/2/eigen3-3.3~alpha1/test/unalignedassert.cpp"
In file included from /home/user/2/eigen3-3.3~alpha1/Eigen/Core:196:0,
                 from /home/user/2/eigen3-3.3~alpha1/Eigen/QR:4,
                 from /home/user/2/eigen3-3.3~alpha1/test/main.h:252,
                 from /home/user/2/eigen3-3.3~alpha1/test/packetmath.cpp:11:
In function 'float64x2_t vdupq_lane_f64(float64x1_t, int)',
    inlined from 'Packet Eigen::internal::pmul(const Packet&, const Packet&) [with Packet = Eigen::internal::Packet1cd]' at /home/user/2/eigen3-3.3~alpha1/Eigen/src/Core/arch/NEON/Complex.h:329:22,
    inlined from 'void packetmath() [with Scalar = std::complex<double>]' at /home/user/2/eigen3-3.3~alpha1/test/packetmath.cpp:158:3:
/usr/lib/gcc/aarch64-linux-gnu/5/include/arm_neon.h:14027:10: error: lane 1 out of range 0 - 0
   return __aarch64_vdupq_lane_f64 (__a, __b);

On 3.2.6 the same code is compiling without problems, so it is a regression in 3.3.


Thank you

Comment 1 Gael Guennebaud 2015-12-10 15:07:25 UTC
This should do the job:

Note You need to log in before you can comment on or make changes to this bug.