From 76c6630084e270758bc9a836bf04cbfd5b6f4247 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 22 Jan 2024 13:58:17 +0530 Subject: [PATCH] Dont use 256 bit code paths on ARM ARM only has 128 bit registers. simde simulates 256 bit operations using them, which is fairly pointless for us. --- kitty/simd-string.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kitty/simd-string.c b/kitty/simd-string.c index 8fc717099..aaa555738 100644 --- a/kitty/simd-string.c +++ b/kitty/simd-string.c @@ -124,7 +124,8 @@ init_simd(void *x) { #ifdef __APPLE__ #ifdef __arm64__ // simde takes care of NEON on Apple Silicon - has_sse4_2 = true; has_avx2 = true; + // ARM has only 128 bit registers. + has_sse4_2 = true; has_avx2 = false; #else do_check(); // On GitHub actions there are some weird macOS machines which report avx2 not available but sse4.2 is available and then @@ -138,7 +139,8 @@ init_simd(void *x) { #ifdef __aarch64__ // no idea how to probe ARM cpu for NEON support. This file uses pretty // basic AVX2 and SSE4.2 intrinsics, so hopefully they work on ARM - has_sse4_2 = true; has_avx2 = true; + // ARM has only 128 bit registers. + has_sse4_2 = true; has_avx2 = false; #else do_check(); #endif