FD.io VPP  v19.01.3-6-g70449b9b9
Vector Packet Processing
vector_neon.h File Reference
+ Include dependency graph for vector_neon.h:

Go to the source code of this file.

Macros

#define u16x8_sub_saturate(a, b)   vsubq_u16(a,b)
 
#define i16x8_sub_saturate(a, b)   vsubq_s16(a,b)
 
#define vreinterpretq_u8_u8(a)   a
 
#define foreach_neon_vec128i   _(i,8,16,s8) _(i,16,8,s16) _(i,32,4,s32) _(i,64,2,s64)
 
#define foreach_neon_vec128u   _(u,8,16,u8) _(u,16,8,u16) _(u,32,4,u32) _(u,64,2,u64)
 
#define foreach_neon_vec128f   _(f,32,4,f32) _(f,64,2,f64)
 
#define CLIB_HAVE_VEC128_MSB_MASK
 
#define CLIB_HAVE_VEC128_UNALIGNED_LOAD_STORE
 
#define CLIB_VEC128_SPLAT_DEFINED
 

Functions

static u32 u8x16_compare_byte_mask (u8x16 v)
 
foreach_neon_vec128i foreach_neon_vec128u static_always_inline u16x8 u16x8_byte_swap (u16x8 v)
 
static_always_inline u8x16 u8x16_shuffle (u8x16 v, u8x16 m)
 
static_always_inline u32x4 u32x4_hadd (u32x4 v1, u32x4 v2)
 
static_always_inline u64x2 u32x4_extend_to_u64x2 (u32x4 v)
 
static_always_inline u64x2 u32x4_extend_to_u64x2_high (u32x4 v)
 
static_always_inline u16 u8x16_msb_mask (u8x16 v)
 

Macro Definition Documentation

◆ CLIB_HAVE_VEC128_MSB_MASK

#define CLIB_HAVE_VEC128_MSB_MASK

Definition at line 130 of file vector_neon.h.

◆ CLIB_HAVE_VEC128_UNALIGNED_LOAD_STORE

#define CLIB_HAVE_VEC128_UNALIGNED_LOAD_STORE

Definition at line 132 of file vector_neon.h.

◆ CLIB_VEC128_SPLAT_DEFINED

#define CLIB_VEC128_SPLAT_DEFINED

Definition at line 133 of file vector_neon.h.

◆ foreach_neon_vec128f

#define foreach_neon_vec128f   _(f,32,4,f32) _(f,64,2,f64)

Definition at line 47 of file vector_neon.h.

◆ foreach_neon_vec128i

#define foreach_neon_vec128i   _(i,8,16,s8) _(i,16,8,s16) _(i,32,4,s32) _(i,64,2,s64)

Definition at line 43 of file vector_neon.h.

◆ foreach_neon_vec128u

#define foreach_neon_vec128u   _(u,8,16,u8) _(u,16,8,u16) _(u,32,4,u32) _(u,64,2,u64)

Definition at line 45 of file vector_neon.h.

◆ i16x8_sub_saturate

#define i16x8_sub_saturate (   a,
 
)    vsubq_s16(a,b)

Definition at line 22 of file vector_neon.h.

◆ u16x8_sub_saturate

#define u16x8_sub_saturate (   a,
 
)    vsubq_u16(a,b)

Definition at line 21 of file vector_neon.h.

◆ vreinterpretq_u8_u8

#define vreinterpretq_u8_u8 (   a)    a

Definition at line 24 of file vector_neon.h.

Function Documentation

◆ u16x8_byte_swap()

Definition at line 86 of file vector_neon.h.

◆ u32x4_extend_to_u64x2()

static_always_inline u64x2 u32x4_extend_to_u64x2 ( u32x4  v)

Definition at line 104 of file vector_neon.h.

+ Here is the caller graph for this function:

◆ u32x4_extend_to_u64x2_high()

static_always_inline u64x2 u32x4_extend_to_u64x2_high ( u32x4  v)

Definition at line 110 of file vector_neon.h.

+ Here is the caller graph for this function:

◆ u32x4_hadd()

static_always_inline u32x4 u32x4_hadd ( u32x4  v1,
u32x4  v2 
)

Definition at line 98 of file vector_neon.h.

◆ u8x16_compare_byte_mask()

static u32 u8x16_compare_byte_mask ( u8x16  v)
inlinestatic

Definition at line 28 of file vector_neon.h.

◆ u8x16_msb_mask()

static_always_inline u16 u8x16_msb_mask ( u8x16  v)

Definition at line 117 of file vector_neon.h.

+ Here is the caller graph for this function:

◆ u8x16_shuffle()

static_always_inline u8x16 u8x16_shuffle ( u8x16  v,
u8x16  m 
)

Definition at line 92 of file vector_neon.h.

+ Here is the caller graph for this function: