diff options
author | Gabriel Ganne <gabriel.ganne@enea.com> | 2017-12-05 17:33:37 +0100 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2018-02-08 20:32:31 +0000 |
commit | b81831d122d59b55c7d42b39e4fd9e94b7d40aca (patch) | |
tree | 2427cad202283105a19387ab5f249f7be07acc97 /src/vppinfra/vector.h | |
parent | c43b3f986476ffb4506b7115898e809a6e34f601 (diff) |
add CLIB_HAVE_VEC128 with NEON intrinsics (VPP-1127)
Enable CLIB_HAVE_VEC128 if both aarch64 and __ARM_NEON
ie. armv8 only, not armv7
Add more neon compare intrinsics wrappers.
I only add simple intrinsics wrappers. More complex ones can be added
later as they are needed, with performance tests on the corresponding
feature to back them up.
Remove wrongly added 128bits definitions defined on both armv7 and armv8
without concern for NEON instructions presence.
Notable correspondinf code activations:
* MHEAP_FLAG_SMALL_OBJECT_CACHE in mheap.c
* ip4 fib mtrie leaves access
* enable ixge plugin compilation for aarch64
(conf still disables it by default)
Change-Id: I99953823627bdff6f222d232c78aa7b655aaf77a
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
Diffstat (limited to 'src/vppinfra/vector.h')
-rw-r--r-- | src/vppinfra/vector.h | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/vppinfra/vector.h b/src/vppinfra/vector.h index 5da1c19037b..e786275f5d4 100644 --- a/src/vppinfra/vector.h +++ b/src/vppinfra/vector.h @@ -46,6 +46,10 @@ #define CLIB_HAVE_VEC64 #endif +#if defined (__aarch64__) && defined(__ARM_NEON) +#define CLIB_HAVE_VEC128 +#endif + #if defined (__SSE2__) && __GNUC__ >= 4 #define CLIB_HAVE_VEC128 #endif @@ -69,14 +73,6 @@ #define _vector_size(n) __attribute__ ((vector_size (n))) -#if defined (__aarch64__) || defined (__arm__) -typedef unsigned int u32x4 _vector_size (16); -typedef u8 u8x16 _vector_size (16); -typedef u16 u16x8 _vector_size (16); -typedef u32 u32x4 _vector_size (16); -typedef u64 u64x2 _vector_size (16); -#endif - #ifdef CLIB_HAVE_VEC64 /* Signed 64 bit. */ typedef char i8x8 _vector_size (8); |