From 3a52db3d3725be75a098e92a11879f037d6278f9 Mon Sep 17 00:00:00 2001 From: Un1q32 Date: Sun, 3 Aug 2025 14:46:52 -0400 Subject: [PATCH] Disable NEON workaround on Clang 20 and above, and enable it for non-mobile platforms (#1942) --- arch/arm/neon_intrins.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/arch/arm/neon_intrins.h b/arch/arm/neon_intrins.h index 39ce8b68..a24887ce 100644 --- a/arch/arm/neon_intrins.h +++ b/arch/arm/neon_intrins.h @@ -25,12 +25,10 @@ out.val[3] = vqsubq_u16(a.val[3], b); \ } while (0) -#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE == 1 -# define IS_IOS -#endif - -# if defined(__arm__) && (defined(__ANDROID__) || defined(IS_IOS)) -/* Android & iOS have too strict alignment requirement (:256) for x4 NEON intrinsics */ +# if defined(__arm__) && defined(__clang__) && \ + (!defined(__clang_major__) || __clang_major__ < 20) +/* Clang versions before 20 have too strict of an + * alignment requirement (:256) for x4 NEON intrinsics */ # undef ARM_NEON_HASLD4 # undef vld1q_u16_x4 # undef vld1q_u8_x4 -- 2.47.2