diff options
author | Benoit Jacob <benoitjacob@google.com> | 2015-03-03 09:35:22 -0500 |
---|---|---|
committer | Benoit Jacob <benoitjacob@google.com> | 2015-03-03 09:35:22 -0500 |
commit | f8390995127f9f73f2376c43f93eaa27bbad3675 (patch) | |
tree | e9607a07bd3ae7701de6897cc18e8bb0cb662f4f /Eigen/src/Core/arch/NEON/PacketMath.h | |
parent | 9930e9583b336edda281a4490cfe69c53082318e (diff) |
Work around an ICE in Clang 3.5 in the iOS toolchain with double NEON intrinsics.
Diffstat (limited to 'Eigen/src/Core/arch/NEON/PacketMath.h')
-rw-r--r-- | Eigen/src/Core/arch/NEON/PacketMath.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Eigen/src/Core/arch/NEON/PacketMath.h b/Eigen/src/Core/arch/NEON/PacketMath.h index d0544bdf1..ce0abfd80 100644 --- a/Eigen/src/Core/arch/NEON/PacketMath.h +++ b/Eigen/src/Core/arch/NEON/PacketMath.h @@ -518,7 +518,19 @@ ptranspose(PacketBlock<Packet4i,4>& kernel) { } //---------- double ---------- -#if EIGEN_ARCH_ARM64 + +// Clang 3.5 in the iOS toolchain has an ICE triggered by NEON intrisics for double. +// Confirmed at least with __apple_build_version__ = 6000054. +#ifdef __apple_build_version__ +// Let's hope that by the time __apple_build_version__ hits the 601* range, the bug will be fixed. +// https://gist.github.com/yamaya/2924292 suggests that the 3 first digits are only updated with +// major toolchain updates. +#define EIGEN_APPLE_DOUBLE_NEON_BUG (__apple_build_version__ < 6010000) +#else +#define EIGEN_APPLE_DOUBLE_NEON_BUG 0 +#endif + +#if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG #if (EIGEN_COMP_GNUC_STRICT && defined(__ANDROID__)) || defined(__apple_build_version__) // Bug 907: workaround missing declarations of the following two functions in the ADK |