aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/arch
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-01-07 09:44:25 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-01-07 09:44:25 +0100
commit63974bcb88f23bd4768eb3232906f2b9f3c92fca (patch)
treed8b35e46e602e3bb3e2ce7853a12dc7da690368a /Eigen/src/Core/arch
parent79f4a59ed9ac3fc1a3b6e4516c2b3e04cec5f522 (diff)
Big 907: workaround some missing intrinsics in current NDK's gcc version (ARM64)
Diffstat (limited to 'Eigen/src/Core/arch')
-rw-r--r--Eigen/src/Core/arch/NEON/PacketMath.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/Eigen/src/Core/arch/NEON/PacketMath.h b/Eigen/src/Core/arch/NEON/PacketMath.h
index 586fa95e5..d962e8adc 100644
--- a/Eigen/src/Core/arch/NEON/PacketMath.h
+++ b/Eigen/src/Core/arch/NEON/PacketMath.h
@@ -492,6 +492,21 @@ ptranspose(PacketBlock<Packet4i,4>& kernel) {
//---------- double ----------
#if EIGEN_ARCH_ARM64
+#if EIGEN_COMP_GNUC_STRICT && __ANDROID__
+// Bug 907: workaround missing declarations of the following two functions in the ADK
+__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
+vreinterpretq_u64_f64 (float64x2_t __a)
+{
+ return (uint64x2_t) __a;
+}
+
+__extension__ static __inline float64x2_t __attribute__ ((__always_inline__))
+vreinterpretq_f64_u64 (uint64x2_t __a)
+{
+ return (float64x2_t) __a;
+}
+#endif
+
typedef float64x2_t Packet2d;
typedef float64x1_t Packet1d;