X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fcrypto_native%2FCMakeLists.txt;h=ba6f6cbcc28a5779657f0e5ced0d5d7a7a04343c;hb=9caef2a3518ee9a453adbb748a9f4799a5fbb56b;hp=9fc3e7d409054483ca9e45035a1ae529e5eef90a;hpb=776644efe78f427a75fc5e122014b44b39d470c3;p=vpp.git diff --git a/src/plugins/crypto_native/CMakeLists.txt b/src/plugins/crypto_native/CMakeLists.txt index 9fc3e7d4090..ba6f6cbcc28 100644 --- a/src/plugins/crypto_native/CMakeLists.txt +++ b/src/plugins/crypto_native/CMakeLists.txt @@ -12,21 +12,24 @@ # limitations under the License. if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*") - list(APPEND VARIANTS "sse42\;-march=silvermont") - list(APPEND VARIANTS "avx2\;-march=core-avx2") - if(compiler_flag_march_skylake_avx512) - list(APPEND VARIANTS "avx512\;-march=skylake-avx512") + list(APPEND VARIANTS "slm\;-march=silvermont") + list(APPEND VARIANTS "hsw\;-march=haswell") + if(compiler_flag_march_skylake_avx512 AND compiler_flag_mprefer_vector_width_256) + list(APPEND VARIANTS "skx\;-march=skylake-avx512 -mprefer-vector-width=256") endif() - if(compiler_flag_march_icelake_client) - list(APPEND VARIANTS "vaesni\;-march=icelake-client") + if(compiler_flag_march_icelake_client AND compiler_flag_mprefer_vector_width_512) + list(APPEND VARIANTS "icl\;-march=icelake-client -mprefer-vector-width=512") + endif() + if(compiler_flag_march_alderlake) + list(APPEND VARIANTS "adl\;-march=alderlake -mprefer-vector-width=256") endif() set (COMPILE_FILES aes_cbc.c aes_gcm.c) set (COMPILE_OPTS -Wall -fno-common -maes) endif() if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)") - list(APPEND VARIANTS "armv8\;-march=native") - set (COMPILE_FILES aes_cbc.c) + list(APPEND VARIANTS "armv8\;-march=armv8.1-a+crc+crypto") + set (COMPILE_FILES aes_cbc.c aes_gcm.c) set (COMPILE_OPTS -Wall -fno-common) endif() @@ -42,6 +45,7 @@ foreach(VARIANT ${VARIANTS}) set(l crypto_native_${v}) add_library(${l} OBJECT ${COMPILE_FILES}) set_target_properties(${l} PROPERTIES POSITION_INDEPENDENT_CODE ON) + separate_arguments(f) target_compile_options(${l} PUBLIC ${f} ${COMPILE_OPTS}) target_sources(crypto_native_plugin PRIVATE $) endforeach()