diff --git a/CMakeLists.txt b/CMakeLists.txt index ed31afcca8..414904b4a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -794,6 +794,24 @@ if(SDL_ASSEMBLY) endif() endif() + if(SDL_ARMNEON) + check_c_source_compiles(" + #include + void floats_add(float *dest, float *a, float *b, unsigned size) { + for (; size >= 4; size -= 4, dest += 4, a += 4, b += 4) { + vst1q_f32(dest, vaddq_f32(vld1q_f32(a), vld1q_f32(b))); + } + } + int main(int argc, char *argv[]) { + floats_add((float*)0, (float*)0, (float*)0, 0); + return 0; + }" COMPILER_SUPPORTS_ARMNEON) + + if(COMPILER_SUPPORTS_ARMNEON) + set(HAVE_ARMNEON TRUE) + endif() + endif() + if(USE_GCC OR USE_CLANG) # TODO: Those all seem to be quite GCC specific - needs to be # reworked for better compiler support @@ -848,24 +866,6 @@ if(SDL_ASSEMBLY) set(HAVE_LASX TRUE) endif() endif() - - if(SDL_ARMNEON) - check_c_source_compiles(" - #include - void floats_add(float *dest, float *a, float *b, unsigned size) { - for (; size >= 4; size -= 4, dest += 4, a += 4, b += 4) { - vst1q_f32(dest, vaddq_f32(vld1q_f32(a), vld1q_f32(b))); - } - } - int main(int argc, char *argv[]) { - floats_add((float*)0, (float*)0, (float*)0, 0); - return 0; - }" COMPILER_SUPPORTS_ARMNEON) - - if(COMPILER_SUPPORTS_ARMNEON) - set(HAVE_ARMNEON TRUE) - endif() - endif() endif() endif()