diff --git a/CMakeLists.txt b/CMakeLists.txt
index 95667e42e9fa1a492a85aa6429cc1a62895341bb..4ce52db80be1586ee89b430e0b26ca8873fadbcb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -204,10 +204,12 @@ if(EXISTS  "/proc/cpuinfo")
    file(STRINGS "/proc/cpuinfo" CPUINFO REGEX flags LIMIT_COUNT 1)
    message("AVX512 is ${AVX512}")
    message("AVX2 is ${AVX2}")
+   # The following intrinsics are assumed to be available on any x86 system used to build the software (avx, f16c, fma, gnfi, mmx, pclmul, sse, sse2, sse3, xop)
+   set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -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_SSE_NATIVE -DSIMDE_X86_XOP_HAVE_COM_ -DSIMDE_X86_XOP_NATIVE")
    if ("${AVX512}" STREQUAL "False")
-      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")
+      set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mno-avx512f -march=native")
    else()
-      set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx512bw -march=skylake-avx512 -mtune=skylake-avx512")   
+      set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -DSIMDE_X86_AVX512BW_NATIVE -DSIMDE_X86_AVX512F_NATIVE -DSIMDE_X86_AVX512VL_NATIVE -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 -DSIMDE_X86_VPCLMULQDQ_NATIVE")
diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper
index 396c8dd4aaa4fb4e3968192c1127488b8e5987c3..423389aadc627300a69d36c69c2c79d2eae2fa6b 100755
--- a/cmake_targets/tools/build_helper
+++ b/cmake_targets/tools/build_helper
@@ -33,7 +33,7 @@ OS_RELEASE=$(grep "^VERSION_ID=" /etc/os-release | sed "s/VERSION_ID=//" | sed "
 case "$OS_DISTRO" in
   fedora) OS_BASEDISTRO="fedora"; INSTALLER="dnf"; CMAKE="cmake" ;;
   rhel)   OS_BASEDISTRO="fedora"; INSTALLER="yum --skip-broken"; CMAKE="cmake3" ;;
-  centos) OS_BASEDISTRO="fedora"; INSTALLER="yum --skip-broken"; CMAKE="cmake3" ;;
+  centos) OS_BASEDISTRO="centos"; INSTALLER="yum --skip-broken"; CMAKE="cmake3" ;;
   debian) OS_BASEDISTRO="debian"; INSTALLER="apt-get"; CMAKE="cmake" ;;
   ubuntu) OS_BASEDISTRO="debian"; INSTALLER="apt-get"; CMAKE="cmake" ;;
 esac
diff --git a/sdr/ETHERNET/USERSPACE/LIB/eth_udp.c b/sdr/ETHERNET/USERSPACE/LIB/eth_udp.c
index d3b777100778df90e708d7c08ef27e9ae3646dc4..ca62ceab6c0ecae2ca7d212b2ef9049297708aa8 100644
--- a/sdr/ETHERNET/USERSPACE/LIB/eth_udp.c
+++ b/sdr/ETHERNET/USERSPACE/LIB/eth_udp.c
@@ -359,14 +359,14 @@ void *trx_eth_write_udp_cmd(udpTXelem_t *udpTXelem) {
 #if defined(__x86_64__) || defined(__i386__)
       __m256i *buff256 = (__m256i *)&(((int32_t*)buff[aid])[offset]);
       for (int j=0; j<32; j+=8) {
-        buff_tx[1+j] = _mm256_slli_epi16(buff256[j],4);
-        buff_tx[2+j] = _mm256_slli_epi16(buff256[j+1],4);
-        buff_tx[3+j] = _mm256_slli_epi16(buff256[j+2],4);
-        buff_tx[4+j] = _mm256_slli_epi16(buff256[j+3],4);
-        buff_tx[5+j] = _mm256_slli_epi16(buff256[j+4],4);
-        buff_tx[6+j] = _mm256_slli_epi16(buff256[j+5],4);
-        buff_tx[7+j] = _mm256_slli_epi16(buff256[j+6],4);
-        buff_tx[8+j] = _mm256_slli_epi16(buff256[j+7],4);
+        buff_tx[1+j] = simde_mm256_slli_epi16(buff256[j],4);
+        buff_tx[2+j] = simde_mm256_slli_epi16(buff256[j+1],4);
+        buff_tx[3+j] = simde_mm256_slli_epi16(buff256[j+2],4);
+        buff_tx[4+j] = simde_mm256_slli_epi16(buff256[j+3],4);
+        buff_tx[5+j] = simde_mm256_slli_epi16(buff256[j+4],4);
+        buff_tx[6+j] = simde_mm256_slli_epi16(buff256[j+5],4);
+        buff_tx[7+j] = simde_mm256_slli_epi16(buff256[j+6],4);
+        buff_tx[8+j] = simde_mm256_slli_epi16(buff256[j+7],4);
       }
 #elif defined(__arm__)
       int16x8_t *buff128 = (__int16x8_t*)&buff[aid][offset];