From 751e097c57e84d368d782c4a18b960ed2350c2f0 Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Mon, 19 Dec 2016 13:44:46 -0500 Subject: [PATCH] Use 32 registers on ARM64 --- Eigen/src/Core/arch/NEON/PacketMath.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Eigen/src/Core/arch/NEON/PacketMath.h b/Eigen/src/Core/arch/NEON/PacketMath.h index 2a8f58d74..d392bf3ff 100644 --- a/Eigen/src/Core/arch/NEON/PacketMath.h +++ b/Eigen/src/Core/arch/NEON/PacketMath.h @@ -28,11 +28,13 @@ namespace internal { #define EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD #endif -// FIXME NEON has 16 quad registers, but since the current register allocator -// is so bad, it is much better to reduce it to 8 #ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS +#if EIGEN_ARCH_ARM64 +#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 32 +#else #define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 16 #endif +#endif typedef float32x2_t Packet2f; typedef float32x4_t Packet4f;