From a7ebeeb87d1c037d716400bb1596d680573ea2fa Mon Sep 17 00:00:00 2001 From: SASANO Takayoshi Date: Sat, 18 Jan 2025 20:52:22 +0900 Subject: [PATCH] improve x86 AVX/SSE detection on *BSD --- CMakeLists.txt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1600871..5265856 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,8 +92,19 @@ message(STATUS "Host system arch is: ${CMAKE_SYSTEM_PROCESSOR}") # Detection of available CPU optimizations if(NOT DISABLE_CPU_OPTIMIZATION) - if(UNIX AND NOT APPLE) - message(STATUS "Looking for available CPU optimizations on Linux/BSD system...") + if((CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") OR + (CMAKE_SYSTEM_NAME STREQUAL "DragonFly") OR + (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")) + message(STATUS "Looking for available CPU optimizations on FreeBSD/DragonFlyBSD/OpenBSD system...") + execute_process(COMMAND grep -c "AVX2" /var/run/dmesg.boot + OUTPUT_VARIABLE AVX2_PRESENT) + execute_process(COMMAND grep -c "AVX," /var/run/dmesg.boot + OUTPUT_VARIABLE AVX_PRESENT) + execute_process(COMMAND grep -c "SSE4.1," /var/run/dmesg.boot + OUTPUT_VARIABLE SSE_PRESENT) + # currently AdvSIMD/SIMD (neon) not supported + elseif(UNIX AND NOT APPLE) + message(STATUS "Looking for available CPU optimizations on Linux/NetBSD system...") execute_process(COMMAND grep -c "avx2" /proc/cpuinfo OUTPUT_VARIABLE AVX2_PRESENT) execute_process(COMMAND grep -c "avx " /proc/cpuinfo