Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at python-updates 79 lines 2.4 kB view raw
1From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 2From: Misty De Meo <mistydemeo@gmail.com> 3Date: Tue, 15 Sep 2020 16:57:26 -0700 4Subject: [PATCH] Check for __arm64__, not just __arm__ 5 6On at least one 64-bit ARM processor I've tested (Apple Silicon on macOS), 7__arm__ isn't defined but __arm64__ is. As a result, some of the 8ARM-specific macros are missing and calls to them fail. 9--- 10 src/cr-core.c | 2 +- 11 src/dev32s.h | 2 +- 12 src/pffft-wrap.c | 2 +- 13 src/pffft.c | 4 ++-- 14 4 files changed, 5 insertions(+), 5 deletions(-) 15 16diff --git a/src/cr-core.c b/src/cr-core.c 17index 159a5d9..fe5ea8a 100644 18--- a/src/cr-core.c 19+++ b/src/cr-core.c 20@@ -80,7 +80,7 @@ static void cubic_stage_fn(stage_t * p, fifo_t * output_fifo) 21 #define DEFINED_X86 0 22 #endif 23 24-#if defined __arm__ 25+#if defined(__arm__) || defined(__arm64__) 26 #define DEFINED_ARM 1 27 #else 28 #define DEFINED_ARM 0 29diff --git a/src/dev32s.h b/src/dev32s.h 30index 7edae86..a14d7ad 100644 31--- a/src/dev32s.h 32+++ b/src/dev32s.h 33@@ -31,7 +31,7 @@ SIMD_INLINE(void) vStorSum(float * a, v4_t b) { 34 v4_t t = vAdd(_mm_movehl_ps(b, b), b); 35 _mm_store_ss(a, vAdd(t, _mm_shuffle_ps(t,t,1)));} 36 37-#elif defined __arm__ 38+#elif defined(__arm__) || defined(__arm64__) 39 40 #include <arm_neon.h> 41 42diff --git a/src/pffft-wrap.c b/src/pffft-wrap.c 43index c920f06..1641fc4 100644 44--- a/src/pffft-wrap.c 45+++ b/src/pffft-wrap.c 46@@ -40,7 +40,7 @@ static void pffft_zconvolve(PFFFT_Setup *s, const float *a, const float *b, floa 47 48 float ar, ai, br, bi; 49 50-#ifdef __arm__ 51+#if defined(__arm__) || defined(__arm64__) 52 __builtin_prefetch(va); 53 __builtin_prefetch(vb); 54 __builtin_prefetch(va+2); 55diff --git a/src/pffft.c b/src/pffft.c 56index 46c841e..8c775a9 100644 57--- a/src/pffft.c 58+++ b/src/pffft.c 59@@ -157,7 +157,7 @@ typedef __m128 v4sf; 60 /* 61 ARM NEON support macros 62 */ 63-#elif !defined(PFFFT_SIMD_DISABLE) && defined(__arm__) 64+#elif !defined(PFFFT_SIMD_DISABLE) && (defined(__arm__) || defined(__arm64__)) 65 # include <arm_neon.h> 66 typedef float32x4_t v4sf; 67 # define SIMD_SZ 4 68@@ -1732,7 +1732,7 @@ void pffft_zconvolve_accumulate(PFFFT_Setup *s, const float *a, const float *b, 69 const v4sf * RESTRICT vb = (const v4sf*)b; 70 v4sf * RESTRICT vab = (v4sf*)ab; 71 72-#ifdef __arm__ 73+#if defined(__arm__) || defined(__arm64__) 74 __builtin_prefetch(va); 75 __builtin_prefetch(vb); 76 __builtin_prefetch(vab); 77-- 782.30.1 79