From 5676c1bba81a5c993cb96de7c39ede831a1889da Mon Sep 17 00:00:00 2001 From: Sergey Kroshnin Date: Wed, 21 Aug 2019 03:35:31 +0300 Subject: [PATCH] Allow AVX2 builds for Windows --- CMakeLists.txt | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c70118384..47f03a43c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,7 +92,7 @@ else () endif() if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86(_64)?)$") - if (NANO_SIMD_OPTIMIZATIONS OR RAIBLOCKS_SIMD_OPTIMIZATIONS) + if (NANO_SIMD_OPTIMIZATIONS OR RAIBLOCKS_SIMD_OPTIMIZATIONS OR ENABLE_AVX2) add_compile_options(-msse4) if (ENABLE_AES) add_compile_options(-maes) @@ -105,14 +105,6 @@ else () -DCRYPTOPP_DISABLE_AESNI) endif() - if (ENABLE_AVX2) - add_compile_options(-mavx2 -mbmi -mbmi2 -maes) - if (PERMUTE_WITH_GATHER) - add_definitions(-DPERMUTE_WITH_GATHER) - elseif (PERMUTE_WITH_SHUFFLES) - add_definitions(-DPERMUTE_WITH_SHUFFLES) - endif() - endif() elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") if (NANO_SIMD_OPTIMIZATIONS OR RAIBLOCKS_SIMD_OPTIMIZATIONS) add_compile_options(-march=armv8-a+crc+crypto) @@ -123,6 +115,19 @@ else () endif() endif () +if (ENABLE_AVX2) + if (WIN32) + add_definitions(/arch:AVX2) + elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86(_64)?)$") + add_compile_options(-mavx2 -mbmi -mbmi2 -maes) + endif() + if (PERMUTE_WITH_GATHER) + add_definitions(-DPERMUTE_WITH_GATHER) + elseif (PERMUTE_WITH_SHUFFLES) + add_definitions(-DPERMUTE_WITH_SHUFFLES) + endif() +endif() + set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) #set(CMAKE_C_EXTENSIONS OFF)