This bugzilla service is closed. All entries have been migrated to
Bug 1428 - Eigen 3.3.3 does not compile on Windows with __ARM_NEON__ defined
Summary: Eigen 3.3.3 does not compile on Windows with __ARM_NEON__ defined
Alias: None
Product: Eigen
Classification: Unclassified
Component: Core - vectorization (show other bugs)
Version: 3.3 (current stable)
Hardware: ARM - NEON Windows
: Normal Compilation Problem
Assignee: Nobody
Depends on:
Reported: 2017-05-19 20:01 UTC by Ryan Tremblay
Modified: 2019-12-04 16:59 UTC (History)
4 users (show)


Description Ryan Tremblay 2017-05-19 20:01:29 UTC

When Eigen is used on Windows with __ARM_NEON__ defined, the following compilation error is produced:

eigen\src/Core/arch/NEON/PacketMath.h(109): error C2766: explicit specialization; 'Eigen::internal::unpacket_traits<Eigen::internal::Packet4f>' has already been defined

Packet4f and Packet4i are defined (in PacketMath.h) as:

typedef float32x4_t Packet4f;
typedef int32x4_t   Packet4i;

And float32x4_t and int32x4_t are defined (in MSVC's arm_neon.h) as:

typedef __n128   float32x4_t;
typedef __n128   int32x4_t;

Presumably the preprocessor checks need to be updated to handle this case specifically for MSVC.
Comment 1 Gael Guennebaud 2018-04-24 09:59:35 UTC
here is an attempt to fix the issue:

anybody should be able to check the success of it there:

once the trunk version of Eigen will be updated (nightly).
Comment 2 Christoph Hertzberg 2018-04-24 13:34:01 UTC
This sounds like a problem that could be solved cleaner with Meta-Packets (Bug 692)
Comment 3 Gael Guennebaud 2018-04-26 08:55:22 UTC
another smaller fix:
Comment 4 Nobody 2019-12-04 16:59:50 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance:

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