FD.io VPP  v20.01-48-g3e0dafb74
Vector Packet Processing
vector_avx512.h File Reference
+ Include dependency graph for vector_avx512.h:

Go to the source code of this file.

Macros

#define foreach_avx512_vec512i   _(i,8,64,epi8) _(i,16,32,epi16) _(i,32,16,epi32) _(i,64,8,epi64)
 
#define foreach_avx512_vec512u   _(u,8,64,epi8) _(u,16,32,epi16) _(u,32,16,epi32) _(u,64,8,epi64)
 
#define foreach_avx512_vec512f   _(f,32,8,ps) _(f,64,4,pd)
 
#define u32x16_ternary_logic(a, b, c, d)   (u32x16) _mm512_ternarylogic_epi32 ((__m512i) a, (__m512i) b, (__m512i) c, d)
 

Functions

foreach_avx512_vec512i foreach_avx512_vec512u static_always_inline u32 u16x32_msb_mask (u16x32 v)
 
static_always_inline u32x16 u32x16_byte_swap (u32x16 v)
 
static_always_inline u16x32 u16x32_byte_swap (u16x32 v)
 
static_always_inline u32x8 u32x16_extract_lo (u32x16 v)
 
static_always_inline u32x8 u32x16_extract_hi (u32x16 v)
 
static_always_inline u32 u32x16_min_scalar (u32x16 v)
 
static_always_inline u32x16 u32x16_insert_lo (u32x16 r, u32x8 v)
 
static_always_inline u32x16 u32x16_insert_hi (u32x16 r, u32x8 v)
 
static_always_inline u64x8 u64x8_permute (u64x8 a, u64x8 b, u64x8 mask)
 
static_always_inline void u32x16_transpose (u32x16 m[16])
 
static_always_inline void u64x8_transpose (u64x8 m[8])
 

Macro Definition Documentation

◆ foreach_avx512_vec512f

#define foreach_avx512_vec512f   _(f,32,8,ps) _(f,64,4,pd)

Definition at line 27 of file vector_avx512.h.

◆ foreach_avx512_vec512i

#define foreach_avx512_vec512i   _(i,8,64,epi8) _(i,16,32,epi16) _(i,32,16,epi32) _(i,64,8,epi64)

Definition at line 23 of file vector_avx512.h.

◆ foreach_avx512_vec512u

#define foreach_avx512_vec512u   _(u,8,64,epi8) _(u,16,32,epi16) _(u,32,16,epi32) _(u,64,8,epi64)

Definition at line 25 of file vector_avx512.h.

◆ u32x16_ternary_logic

#define u32x16_ternary_logic (   a,
  b,
  c,
 
)    (u32x16) _mm512_ternarylogic_epi32 ((__m512i) a, (__m512i) b, (__m512i) c, d)

Definition at line 143 of file vector_avx512.h.

Function Documentation

◆ u16x32_byte_swap()

static_always_inline u16x32 u16x32_byte_swap ( u16x32  v)

Definition at line 93 of file vector_avx512.h.

◆ u16x32_msb_mask()

Definition at line 75 of file vector_avx512.h.

+ Here is the caller graph for this function:

◆ u32x16_byte_swap()

static_always_inline u32x16 u32x16_byte_swap ( u32x16  v)

Definition at line 81 of file vector_avx512.h.

◆ u32x16_extract_hi()

static_always_inline u32x8 u32x16_extract_hi ( u32x16  v)

Definition at line 111 of file vector_avx512.h.

+ Here is the caller graph for this function:

◆ u32x16_extract_lo()

static_always_inline u32x8 u32x16_extract_lo ( u32x16  v)

Definition at line 105 of file vector_avx512.h.

+ Here is the caller graph for this function:

◆ u32x16_insert_hi()

static_always_inline u32x16 u32x16_insert_hi ( u32x16  r,
u32x8  v 
)

Definition at line 130 of file vector_avx512.h.

◆ u32x16_insert_lo()

static_always_inline u32x16 u32x16_insert_lo ( u32x16  r,
u32x8  v 
)

Definition at line 124 of file vector_avx512.h.

◆ u32x16_min_scalar()

static_always_inline u32 u32x16_min_scalar ( u32x16  v)

Definition at line 117 of file vector_avx512.h.

+ Here is the call graph for this function:

◆ u32x16_transpose()

static_always_inline void u32x16_transpose ( u32x16  m[16])

Definition at line 147 of file vector_avx512.h.

◆ u64x8_permute()

static_always_inline u64x8 u64x8_permute ( u64x8  a,
u64x8  b,
u64x8  mask 
)

Definition at line 136 of file vector_avx512.h.

◆ u64x8_transpose()

static_always_inline void u64x8_transpose ( u64x8  m[8])

Definition at line 232 of file vector_avx512.h.