diff --git a/drivers/net/bnxt/meson.build b/drivers/net/bnxt/meson.build
index c7a0d5f6c9..c223a21002 100644
--- a/drivers/net/bnxt/meson.build
+++ b/drivers/net/bnxt/meson.build
@@ -53,23 +53,16 @@ subdir('hcapi/cfa')
 
 if arch_subdir == 'x86'
     sources += files('bnxt_rxtx_vec_sse.c')
-    # compile AVX2 version if either:
-    # a. we have AVX supported in minimum instruction set baseline
-    # b. it's not minimum instruction set, but supported by compiler
-    if cc.get_define('__AVX2__', args: machine_args) != ''
-            cflags += ['-DCC_AVX2_SUPPORT']
-            sources += files('bnxt_rxtx_vec_avx2.c')
-    elif cc.has_argument('-mavx2')
-            cflags += ['-DCC_AVX2_SUPPORT']
-            bnxt_avx2_lib = static_library('bnxt_avx2_lib',
-                            'bnxt_rxtx_vec_avx2.c',
-                            dependencies: [static_rte_ethdev,
-                                    static_rte_bus_pci,
-                                    static_rte_kvargs, static_rte_hash],
-                            include_directories: includes,
-                            c_args: [cflags, '-mavx2'])
-            objs += bnxt_avx2_lib.extract_objects('bnxt_rxtx_vec_avx2.c')
-     endif
+    cflags += ['-DCC_AVX2_SUPPORT']
+    # build AVX2 code with instruction set explicitly enabled for runtime selection
+    bnxt_avx2_lib = static_library('bnxt_avx2_lib',
+            'bnxt_rxtx_vec_avx2.c',
+            dependencies: [static_rte_ethdev,
+                static_rte_bus_pci,
+                static_rte_kvargs, static_rte_hash],
+            include_directories: includes,
+            c_args: [cflags, '-mavx2'])
+     objs += bnxt_avx2_lib.extract_objects('bnxt_rxtx_vec_avx2.c')
 elif arch_subdir == 'arm' and dpdk_conf.get('RTE_ARCH_64')
     sources += files('bnxt_rxtx_vec_neon.c')
 endif
diff --git a/drivers/net/enic/meson.build b/drivers/net/enic/meson.build
index 77dcd9e7ec..8700ae27f2 100644
--- a/drivers/net/enic/meson.build
+++ b/drivers/net/enic/meson.build
@@ -28,14 +28,10 @@ sources = files(
 deps += ['hash']
 includes += include_directories('base')
 
-# The current implementation assumes 64-bit pointers
-if cc.get_define('__AVX2__', args: machine_args) != '' and dpdk_conf.get('RTE_ARCH_64')
-    sources += files('enic_rxtx_vec_avx2.c')
-# Build the avx2 handler if the compiler supports it, even though 'machine'
-# does not. This is to support users who build for the min supported machine
+# Build the avx2 handler for 64-bit X86 targets, even though 'machine'
+# may not. This is to support users who build for the min supported machine
 # and need to run the binary on newer CPUs too.
-# This part is from i40e meson.build
-elif cc.has_argument('-mavx2') and dpdk_conf.get('RTE_ARCH_64')
+if dpdk_conf.has('RTE_ARCH_X86_64')
     enic_avx2_lib = static_library('enic_avx2_lib',
             'enic_rxtx_vec_avx2.c',
             dependencies: [static_rte_ethdev, static_rte_bus_pci],
diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
index 8e53b87a65..46600520e1 100644
--- a/drivers/net/i40e/meson.build
+++ b/drivers/net/i40e/meson.build
@@ -49,22 +49,13 @@ if arch_subdir == 'x86'
         cflags += ['-fno-asynchronous-unwind-tables']
     endif
 
-    # compile AVX2 version if either:
-    # a. we have AVX supported in minimum instruction set baseline
-    # b. it's not minimum instruction set, but supported by compiler
-    if cc.get_define('__AVX2__', args: machine_args) != ''
-        cflags += ['-DCC_AVX2_SUPPORT']
-        sources += files('i40e_rxtx_vec_avx2.c')
-    elif cc.has_argument('-mavx2')
-        cflags += ['-DCC_AVX2_SUPPORT']
-        i40e_avx2_lib = static_library('i40e_avx2_lib',
-                'i40e_rxtx_vec_avx2.c',
-                dependencies: [static_rte_ethdev,
-                    static_rte_kvargs, static_rte_hash],
-                include_directories: includes,
-                c_args: [cflags, '-mavx2'])
-        objs += i40e_avx2_lib.extract_objects('i40e_rxtx_vec_avx2.c')
-    endif
+    cflags += ['-DCC_AVX2_SUPPORT']
+    i40e_avx2_lib = static_library('i40e_avx2_lib',
+            'i40e_rxtx_vec_avx2.c',
+            dependencies: [static_rte_ethdev, static_rte_kvargs, static_rte_hash],
+            include_directories: includes,
+            c_args: [cflags, '-mavx2'])
+    objs += i40e_avx2_lib.extract_objects('i40e_rxtx_vec_avx2.c')
 
     i40e_avx512_cpu_support = (
         cc.get_define('__AVX512F__', args: machine_args) != '' and
diff --git a/drivers/net/iavf/meson.build b/drivers/net/iavf/meson.build
index fc09ffa2ae..ff949ef92b 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -29,22 +29,13 @@ if arch_subdir == 'x86'
         cflags += ['-fno-asynchronous-unwind-tables']
     endif
 
-    # compile AVX2 version if either:
-    # a. we have AVX supported in minimum instruction set baseline
-    # b. it's not minimum instruction set, but supported by compiler
-    if cc.get_define('__AVX2__', args: machine_args) != ''
-        cflags += ['-DCC_AVX2_SUPPORT']
-        sources += files('iavf_rxtx_vec_avx2.c')
-    elif cc.has_argument('-mavx2')
-        cflags += ['-DCC_AVX2_SUPPORT']
-        iavf_avx2_lib = static_library('iavf_avx2_lib',
-                'iavf_rxtx_vec_avx2.c',
-                dependencies: [static_rte_ethdev,
-                    static_rte_kvargs, static_rte_hash],
-                include_directories: includes,
-                c_args: [cflags, '-mavx2'])
-        objs += iavf_avx2_lib.extract_objects('iavf_rxtx_vec_avx2.c')
-    endif
+    cflags += ['-DCC_AVX2_SUPPORT']
+    iavf_avx2_lib = static_library('iavf_avx2_lib',
+            'iavf_rxtx_vec_avx2.c',
+            dependencies: [static_rte_ethdev, static_rte_kvargs, static_rte_hash],
+            include_directories: includes,
+            c_args: [cflags, '-mavx2'])
+    objs += iavf_avx2_lib.extract_objects('iavf_rxtx_vec_avx2.c')
 
     iavf_avx512_cpu_support = (
         cc.get_define('__AVX512F__', args: machine_args) != '' and
diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build
index 460528854a..98288f6ac0 100644
--- a/drivers/net/ice/meson.build
+++ b/drivers/net/ice/meson.build
@@ -28,21 +28,13 @@ if arch_subdir == 'x86'
         cflags += ['-fno-asynchronous-unwind-tables']
     endif
 
-    # compile AVX2 version if either:
-    # a. we have AVX supported in minimum instruction set baseline
-    # b. it's not minimum instruction set, but supported by compiler
-    if cc.get_define('__AVX2__', args: machine_args) != ''
-        cflags += ['-DCC_AVX2_SUPPORT']
-        sources += files('ice_rxtx_vec_avx2.c')
-    elif cc.has_argument('-mavx2')
-        cflags += ['-DCC_AVX2_SUPPORT']
-        ice_avx2_lib = static_library('ice_avx2_lib',
-                'ice_rxtx_vec_avx2.c',
-                dependencies: [static_rte_ethdev, static_rte_kvargs, static_rte_hash],
-                include_directories: includes,
-                c_args: [cflags, '-mavx2'])
-        objs += ice_avx2_lib.extract_objects('ice_rxtx_vec_avx2.c')
-    endif
+    cflags += ['-DCC_AVX2_SUPPORT']
+    ice_avx2_lib = static_library('ice_avx2_lib',
+            'ice_rxtx_vec_avx2.c',
+            dependencies: [static_rte_ethdev, static_rte_kvargs, static_rte_hash],
+            include_directories: includes,
+            c_args: [cflags, '-mavx2'])
+    objs += ice_avx2_lib.extract_objects('ice_rxtx_vec_avx2.c')
 
     ice_avx512_cpu_support = (
             cc.get_define('__AVX512F__', args: machine_args) != '' and
diff --git a/lib/acl/meson.build b/lib/acl/meson.build
index fbe17f9454..87f19757a8 100644
--- a/lib/acl/meson.build
+++ b/lib/acl/meson.build
@@ -14,24 +14,12 @@ headers = files('rte_acl.h', 'rte_acl_osdep.h')
 if dpdk_conf.has('RTE_ARCH_X86')
     sources += files('acl_run_sse.c')
 
-    # compile AVX2 version if either:
-    # a. we have AVX supported in minimum instruction set baseline
-    # b. it's not minimum instruction set, but supported by compiler
-    #
-    # in former case, just add avx2 C file to files list
-    # in latter case, compile c file to static lib, using correct compiler
-    # flags, and then have the .o file from static lib linked into main lib.
-    if cc.get_define('__AVX2__', args: machine_args) != ''
-        sources += files('acl_run_avx2.c')
-        cflags += '-DCC_AVX2_SUPPORT'
-    elif cc.has_argument('-mavx2')
-        avx2_tmplib = static_library('avx2_tmp',
-                'acl_run_avx2.c',
-                dependencies: static_rte_eal,
-                c_args: cflags + ['-mavx2'])
-        objs += avx2_tmplib.extract_objects('acl_run_avx2.c')
-        cflags += '-DCC_AVX2_SUPPORT'
-    endif
+    cflags += '-DCC_AVX2_SUPPORT'
+    avx2_tmplib = static_library('avx2_tmp',
+            'acl_run_avx2.c',
+            dependencies: static_rte_eal,
+            c_args: cflags + ['-mavx2'])
+    objs += avx2_tmplib.extract_objects('acl_run_avx2.c')
 
     # compile AVX512 version if:
     # we are building 64-bit binary AND binutils can generate proper code
