diff options
| author | Henrik S. Gaßmann <[email protected]> | 2024-07-02 13:10:39 +0200 |
|---|---|---|
| committer | Jack O'Connor <[email protected]> | 2024-07-09 13:20:22 -0400 |
| commit | 330af75f5ba7fcb73b9333d1e2e52017a4430654 (patch) | |
| tree | 4e3cf25b3ce687b52f700f74dc44dcca9bf04b95 /c | |
| parent | 73d0ffacc964116405d4f7d5e499cf1f8cbc92e9 (diff) | |
build(CMake): Fix SIMD type detection
Refs: #402
Diffstat (limited to 'c')
| -rw-r--r-- | c/CMakeLists.txt | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt index dc57699..0ea7eb8 100644 --- a/c/CMakeLists.txt +++ b/c/CMakeLists.txt @@ -72,7 +72,22 @@ endif() mark_as_advanced(BLAKE3_CFLAGS_SSE2 BLAKE3_CFLAGS_SSE4.1 BLAKE3_CFLAGS_AVX2 BLAKE3_CFLAGS_AVX512 BLAKE3_CFLAGS_NEON) mark_as_advanced(BLAKE3_AMD64_ASM_SOURCES) -if(CMAKE_SYSTEM_PROCESSOR IN_LIST BLAKE3_AMD64_NAMES) +message(STATUS "BLAKE3 SIMD configuration: ${CMAKE_C_COMPILER_ARCHITECTURE_ID}") +if(MSVC AND DEFINED CMAKE_C_COMPILER_ARCHITECTURE_ID) + if(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "[Xx]86") + set(BLAKE3_SIMD_TYPE "x86-intrinsics" CACHE STRING "the SIMD acceleration type to use") + + elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "[Xx]64") + set(BLAKE3_SIMD_TYPE "amd64-asm" CACHE STRING "the SIMD acceleration type to use") + + elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "[Aa][Rr][Mm]64") + set(BLAKE3_SIMD_TYPE "neon-intrinsics" CACHE STRING "the SIMD acceleration type to use") + + else() + set(BLAKE3_SIMD_TYPE "none" CACHE STRING "the SIMD acceleration type to use") + endif() + +elseif(CMAKE_SYSTEM_PROCESSOR IN_LIST BLAKE3_AMD64_NAMES) set(BLAKE3_SIMD_TYPE "amd64-asm" CACHE STRING "the SIMD acceleration type to use") elseif(CMAKE_SYSTEM_PROCESSOR IN_LIST BLAKE3_X86_NAMES |
