Registered Member
|
Hi,
I am trying to integrate Eigen library in a project. I am using the ARM DS5 suite which uses ARM compiler (armcc). When I try to compile the project I get the following errors: 'Building file: ../test.cpp' 'Invoking: ARM C++ Compiler' armcc --cpp -O0 --cpu=Cortex-A15 -g --arm_only --asm -c -o "test.o" "../test.cpp" "../Eigen/src/Core/arch/NEON/PacketMath.h", line 115: Error: #146: too many initializer values Packet4f countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3); "../Eigen/src/Core/arch/NEON/PacketMath.h", line 224: Error: #18: expected a ")" template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { __pld(addr); } "../Eigen/src/Core/arch/NEON/Complex.h", line 32: Error: #146: too many initializer values static uint32x4_t p4ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET4(0x00000000, 0x80000000, 0x00000000, 0x80000000); ^ "../Eigen/src/Core/arch/NEON/Complex.h", line 33: Error: #146: too many initializer values static uint32x2_t p2ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET2(0x00000000, 0x80000000); "../Eigen/src/Core/arch/NEON/Complex.h", line 131: Error: #18: expected a ")" template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> * addr) { __pld((float *)addr); } Any help is appreciated. Thanks |
Registered Member
|
|
Moderator
|
I don't have armcc to test. A quick solution is to disable the use of NEON: -DEIGEN_DONT_VECTORIZE. Of course it would be better to fix theses issues:
- Regarding the two with the 'prefetch' function, what if you remove the EIGEN_STRONG_INLINE ? - Regarding EIGEN_INIT_NEON_PACKET*, look at the file Eigen/src/Core/Arch/NEON/PacketMath.h, line 42. Maybe you need to enable the first definitions of these macro for armcc instead of the default one (gcc), e.g.: #if (defined(__llvm__) && !defined(__clang__)) || defined(__CC_ARM) |
Registered users: Baidu [Spider], Bing [Bot], Google [Bot], Yahoo [Bot]