diff --git a/CMakeLists.txt b/CMakeLists.txt index 40950cdd7a5da9313de2153d3fbcb5bce07eb7fa..ad6a816d56c3879c6ce11a24e9d14307dc838a7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -205,12 +205,12 @@ if(EXISTS "/proc/cpuinfo") message("AVX512 is ${AVX512}") message("AVX2 is ${AVX2}") if ("${AVX512}" STREQUAL "False") - set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mno-avx512f") + set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mno-avx512f -march=native -DSIMDE_X86_AVX2_NATIVE -DSIMDE_X86_AVX2_NATIVE -DSIMDE_X86_AVX512BW_NATIVE -DSIMDE_X86_AVX512F_NATIVE -DSIMDE_X86_AVX512VL_NATIVE -DSIMDE_X86_AVX_NATIVE -DSIMDE_X86_AVX_NATIVE -DSIMDE_X86_F16C_NATIVE -DSIMDE_X86_FMA_NATIVE -DSIMDE_X86_GFNI_NATIVE -DSIMDE_X86_MMX_NATIVE -DSIMDE_X86_PCLMUL_NATIVE -DSIMDE_X86_SSE2_NATIVE -DSIMDE_X86_SSE3_NATIVE -DSIMDE_X86_SSE4_1_NATIVE -DSIMDE_X86_SSE4_2_NATIVE -DSIMDE_X86_SSE_NATIVE -DSIMDE_X86_SSSE3_NATIVE -DSIMDE_X86_VPCLMULQDQ_NATIVE -DSIMDE_X86_XOP_HAVE_COM_ -DSIMDE_X86_XOP_NATIVE") else() set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx512bw -march=skylake-avx512 -mtune=skylake-avx512") endif() if (CPUINFO MATCHES "avx2" AND "${AVX2}" STREQUAL "True") - set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -DSIMDE_X86_AVX2_NATIVE") + set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -DSIMDE_X86_AVX2_NATIVE -DSIMDE_X86_VPCLMULQDQ_NATIVE") endif() if (CPUINFO MATCHES "sse4_1") set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -DSIMDE_X86_SSE4_1_NATIVE") diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index ba9590d60067c6fccaeefdac339572a125b5e6c3..0e0b6e25cce326eae89ec62949c7cfa8534e7a2d 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -927,11 +927,33 @@ install_asn1c_from_source(){ install_simde_from_source(){ echo_info "\nInstalling SIMDE from source without test cases (header files only)" + cd /tmp $SUDO rm -rf /tmp/simde git clone https://github.com/simd-everywhere/simde-no-tests.git /tmp/simde cd /tmp/simde # brute force copy into /usr/include $SUDO \cp -rv ../simde /usr/include + $SUDO patch /usr/include/simde/x86/avx.h << FIN +--- /usr/include/simde/x86/avx.h.old 2022-10-03 19:17:39.828223432 +0200 ++++ /usr/include/simde/x86/avx.h 2022-10-05 16:19:55.086019445 +0200 +@@ -3636,12 +3636,16 @@ + SIMDE_FUNCTION_ATTRIBUTES + simde__m256i simde_mm256_insertf128_si256(simde__m256i a, simde__m128i b, int imm8) + SIMDE_REQUIRE_CONSTANT_RANGE(imm8, 0, 1) { ++#if defined(SIMDE_X86_AVX_NATIVE) ++ return _mm256_insertf128_si256(a, b, imm8); ++#else + simde__m256i_private a_ = simde__m256i_to_private(a); + simde__m128i_private b_ = simde__m128i_to_private(b); + + a_.m128i_private[imm8] = b_; + + return simde__m256i_from_private(a_); ++#endif + } + #if defined(SIMDE_X86_AVX_ENABLE_NATIVE_ALIASES) + #undef _mm256_insertf128_si256 +FIN } #################################################