X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fi40e%2Fmeson.build;h=ce3cc658e95f4f223768ca3e87f79a42b4b4e670;hb=76fd789cc7dddbaa2c08065b7c3ca915b5c07e7c;hp=882168c256829cd83f719f6e9756cdd1bd2d82f2;hpb=ef4c16fd9148215897abadf8e8a965488c82ba03;p=dpdk.git diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build index 882168c256..ce3cc658e9 100644 --- a/drivers/net/i40e/meson.build +++ b/drivers/net/i40e/meson.build @@ -26,9 +26,12 @@ deps += ['hash'] includes += include_directories('base') if arch_subdir == 'x86' - dpdk_conf.set('RTE_LIBRTE_I40E_INC_VECTOR', 1) sources += files('i40e_rxtx_vec_sse.c') + if is_windows and cc.get_id() != 'clang' + 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 @@ -45,11 +48,33 @@ if arch_subdir == 'x86' c_args: [cflags, '-mavx2']) objs += i40e_avx2_lib.extract_objects('i40e_rxtx_vec_avx2.c') endif + + i40e_avx512_cpu_support = ( + cc.get_define('__AVX512F__', args: machine_args) != '' and + cc.get_define('__AVX512BW__', args: machine_args) != '') + + i40e_avx512_cc_support = ( + not machine_args.contains('-mno-avx512f') and + cc.has_argument('-mavx512f') and + cc.has_argument('-mavx512bw')) + + if i40e_avx512_cpu_support == true or i40e_avx512_cc_support == true + cflags += ['-DCC_AVX512_SUPPORT'] + avx512_args = [cflags, '-mavx512f', '-mavx512bw'] + if cc.has_argument('-march=skylake-avx512') + avx512_args += '-march=skylake-avx512' + endif + i40e_avx512_lib = static_library('i40e_avx512_lib', + 'i40e_rxtx_vec_avx512.c', + dependencies: [static_rte_ethdev, + static_rte_kvargs, static_rte_hash], + include_directories: includes, + c_args: avx512_args) + objs += i40e_avx512_lib.extract_objects('i40e_rxtx_vec_avx512.c') + endif elif arch_subdir == 'ppc' - dpdk_conf.set('RTE_LIBRTE_I40E_INC_VECTOR', 1) sources += files('i40e_rxtx_vec_altivec.c') elif arch_subdir == 'arm' - dpdk_conf.set('RTE_LIBRTE_I40E_INC_VECTOR', 1) sources += files('i40e_rxtx_vec_neon.c') endif