From b3dd0995df7b726a80a5a67977968517858dcb14 Mon Sep 17 00:00:00 2001
From: techflashYT <[EMAIL REDACTED]>
Date: Sat, 5 Jul 2025 01:31:25 -0700
Subject: [PATCH] cmake: don't auto vectorize with AltiVec on PPC
Allowing GCC/Clang to auto-vectorize with AltiVec support breaks support
for non-AltiVec compatible processors. Adding this option allows the
existing AltiVec specific code to function as it always did, but
prevents the compiler from inserting AltiVec instructions into arbitrary
codepaths that SDL can't gate off via the existing CPUInfo code.
---
CMakeLists.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7472137a2d006..71d5e3b72cdfc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -914,6 +914,7 @@ if(SDL_ASSEMBLY)
set(HAVE_ALTIVEC TRUE)
set(SDL_ALTIVEC_BLITTERS 1)
sdl_compile_options(PRIVATE "-maltivec")
+ sdl_compile_options(PRIVATE "-fno-tree-vectorize")
set_property(SOURCE "${SDL3_SOURCE_DIR}/src/video/SDL_blit_N.c" APPEND PROPERTY COMPILE_DEFINITIONS "SDL_ENABLE_ALTIVEC")
set_property(SOURCE "${SDL3_SOURCE_DIR}/src/video/SDL_blit_N.c" PROPERTY SKIP_PRECOMPILE_HEADERS 1)
endif()