On Mon, 2 Nov 2015 19:48:40 +0530 Jerin Jacob <jerin.jacob at caviumnetworks.com> wrote:
> Signed-off-by: Jerin Jacob <jerin.jacob at caviumnetworks.com> > --- > app/test-acl/main.c | 4 + > lib/librte_acl/Makefile | 5 + > lib/librte_acl/acl.h | 4 + > lib/librte_acl/acl_run_neon.c | 46 +++++++ > lib/librte_acl/acl_run_neon.h | 290 > ++++++++++++++++++++++++++++++++++++++++++ > lib/librte_acl/rte_acl.c | 25 ++++ > lib/librte_acl/rte_acl.h | 1 + > 7 files changed, 375 insertions(+) > create mode 100644 lib/librte_acl/acl_run_neon.c > create mode 100644 lib/librte_acl/acl_run_neon.h > > diff --git a/app/test-acl/main.c b/app/test-acl/main.c > index 72ce83c..0b0c093 100644 > --- a/app/test-acl/main.c > +++ b/app/test-acl/main.c > @@ -101,6 +101,10 @@ static const struct acl_alg acl_alg[] = { > .name = "avx2", > .alg = RTE_ACL_CLASSIFY_AVX2, > }, > + { > + .name = "neon", > + .alg = RTE_ACL_CLASSIFY_NEON, > + }, > }; > > static struct { > diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile > index 7a1cf8a..27f91d5 100644 > --- a/lib/librte_acl/Makefile > +++ b/lib/librte_acl/Makefile > @@ -48,9 +48,14 @@ SRCS-$(CONFIG_RTE_LIBRTE_ACL) += rte_acl.c > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_bld.c > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_gen.c > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_scalar.c > +ifeq ($(CONFIG_RTE_ARCH_ARM64),y) > +SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_neon.c Are the used NEON instrinsics for ACL ARMv8-specific? If so, the file should be named something like acl_run_neonv8.c... > +else > SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_sse.c > +endif > > CFLAGS_acl_run_sse.o += -msse4.1 > +CFLAGS_acl_run_neon.o += -flax-vector-conversions -Wno-maybe-uninitialized