This patch series adds arm64 neon version of CRC compute APIs utilizing the pmull capability (which is available as part of crypto extensions).
* Patch 1 adds crypto capability in compilation of generic armv8a and thunderx targets. * Patch 2 moves GCC_VERSION defintion to a more common location as it will be used in the Patch 3. * Patch 3 adds the arm64 neon implementation of the CRC compute APIs. * Patch 4 adds the test case for testing arm64 neon implementation of the CRC compute APIs. v5: * Moved APIs shift_bytes_left, shift_bytes_right and extract_vector from net_crc_neon.h to rte_vect.h and renamed them to vshift_bytes_left, vshift_bytes_right and vextract respectively. v4: * Rebased on top of latest commit * Edited the Patch 2 commit message body according to comments * Moved definition and usage of GCC_VERSION under RTE_TOOLCHAIN_GCC flag v3: * Moved feature detection changes and GCC_VERSION definition changes to separate commits. * Replaced usage of assert() with RTE_ASSERT() * Made the comments in rte_vect.h more positive in sense * Moved GCC_VERSION definition to common header and removed the same from rte_lru.h v2: * Fixed merge conflict in MAINTAINERS * Fixed checkpatch errors/warnings Ashwin Sekhar T K (4): mk: add crypto capability for generic armv8a and thunderx eal: move gcc version definition to common header net: add arm64 neon version of CRC compute APIs test: add tests for arm64 CRC neon versions MAINTAINERS | 1 + lib/librte_eal/common/include/arch/arm/rte_vect.h | 88 +++++++ lib/librte_eal/common/include/rte_common.h | 6 + lib/librte_net/net_crc_neon.h | 297 ++++++++++++++++++++++ lib/librte_net/rte_net_crc.c | 34 ++- lib/librte_net/rte_net_crc.h | 2 + lib/librte_table/rte_lru.h | 10 +- mk/machine/armv8a/rte.vars.mk | 2 +- mk/machine/thunderx/rte.vars.mk | 2 +- mk/rte.cpuflags.mk | 6 + mk/toolchain/gcc/rte.toolchain-compat.mk | 1 + test/test/test_crc.c | 9 + 12 files changed, 442 insertions(+), 16 deletions(-) create mode 100644 lib/librte_net/net_crc_neon.h -- 2.12.2