FD.io VPP  v21.06-3-gbb25fbf28
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)
 
#define u8x64_insert_u8x16(a, b, n)   (u8x64) _mm512_inserti64x2 ((__m512i) (a), (__m128i) (b), n)
 
#define u8x64_extract_u8x16(a, n)   (u8x16) _mm512_extracti64x2_epi64 ((__m512i) (a), n)
 
#define u8x64_word_shift_left(a, n)   (u8x64) _mm512_bslli_epi128((__m512i) a, n)
 
#define u8x64_word_shift_right(a, n)   (u8x64) _mm512_bsrli_epi128((__m512i) a, n)
 
#define u8x64_align_right(a, b, imm)   (u8x64) _mm512_alignr_epi8 ((__m512i) a, (__m512i) b, imm)
 

Functions

foreach_avx512_vec512i foreach_avx512_vec512u static_always_inline u32 u16x32_msb_mask (u16x32 v)
 
_mm512_packus_epi16 _mm512_packus_epi32 static_always_inline u32x16 u32x16_byte_swap (u32x16 v)
 
static_always_inline u16x32 u16x32_byte_swap (u16x32 v)
 
u32x8 u8x32 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 u8x64 u8x64_xor3 (u8x64 a, u8x64 b, u8x64 c)
 
static_always_inline u8x64 u8x64_reflect_u8x16 (u8x64 x)
 
static_always_inline u8x64 u8x64_shuffle (u8x64 v, u8x64 m)
 
static_always_inline u32 u32x16_sum_elts (u32x16 sum16)
 
epi8 epi16 epi16 epi32 epi64 epi64 static_always_inline u8x64 u8x64_splat_u8x16 (u8x16 a)
 
static_always_inline u32x16 u32x16_splat_u32x4 (u32x4 a)
 
static_always_inline u32x16 u32x16_mask_blend (u32x16 a, u32x16 b, u16 mask)
 
static_always_inline u8x64 u8x64_mask_blend (u8x64 a, u8x64 b, u64 mask)
 
epi32 epi32 epi32 static_always_inline u16x16 u16x16_compress (u16x16 v, u16 mask)
 
static_always_inline u16x8 u16x8_compress (u16x8 v, u8 mask)
 
static_always_inline void u32x16_transpose (u32x16 m[16])
 
static_always_inline void u64x8_transpose (u64x8 m[8])
 

Variables

 u8x64
 
_mm512_packus_epi16 u16x32
 
 u32
 
epi8 epi16 u8
 
 epu16
 
__m128i epu64
 
__m128i __m128i u16
 
 u16x16
 
__m512i u64x8
 

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 168 of file vector_avx512.h.

◆ u8x64_align_right

#define u8x64_align_right (   a,
  b,
  imm 
)    (u8x64) _mm512_alignr_epi8 ((__m512i) a, (__m512i) b, imm)

Definition at line 205 of file vector_avx512.h.

◆ u8x64_extract_u8x16

#define u8x64_extract_u8x16 (   a,
 
)    (u8x16) _mm512_extracti64x2_epi64 ((__m512i) (a), n)

Definition at line 174 of file vector_avx512.h.

◆ u8x64_insert_u8x16

#define u8x64_insert_u8x16 (   a,
  b,
 
)    (u8x64) _mm512_inserti64x2 ((__m512i) (a), (__m128i) (b), n)

Definition at line 171 of file vector_avx512.h.

◆ u8x64_word_shift_left

#define u8x64_word_shift_left (   a,
 
)    (u8x64) _mm512_bslli_epi128((__m512i) a, n)

Definition at line 177 of file vector_avx512.h.

◆ u8x64_word_shift_right

#define u8x64_word_shift_right (   a,
 
)    (u8x64) _mm512_bsrli_epi128((__m512i) a, n)

Definition at line 178 of file vector_avx512.h.

Function Documentation

◆ u16x16_compress()

epi32 epi32 epi32 static_always_inline u16x16 u16x16_compress ( u16x16  v,
u16  mask 
)

Definition at line 348 of file vector_avx512.h.

◆ u16x32_byte_swap()

static_always_inline u16x32 u16x32_byte_swap ( u16x32  v)

Definition at line 114 of file vector_avx512.h.

◆ u16x32_msb_mask()

◆ u16x8_compress()

static_always_inline u16x8 u16x8_compress ( u16x8  v,
u8  mask 
)

Definition at line 354 of file vector_avx512.h.

◆ u32x16_byte_swap()

_mm512_packus_epi16 _mm512_packus_epi32 static_always_inline u32x16 u32x16_byte_swap ( u32x16  v)

Definition at line 102 of file vector_avx512.h.

◆ u32x16_insert_hi()

static_always_inline u32x16 u32x16_insert_hi ( u32x16  r,
u32x8  v 
)

Definition at line 155 of file vector_avx512.h.

◆ u32x16_insert_lo()

static_always_inline u32x16 u32x16_insert_lo ( u32x16  r,
u32x8  v 
)

Definition at line 149 of file vector_avx512.h.

◆ u32x16_mask_blend()

static_always_inline u32x16 u32x16_mask_blend ( u32x16  a,
u32x16  b,
u16  mask 
)

Definition at line 269 of file vector_avx512.h.

◆ u32x16_min_scalar()

u32x8 u8x32 static_always_inline u32 u32x16_min_scalar ( u32x16  v)

Definition at line 142 of file vector_avx512.h.

+ Here is the call graph for this function:

◆ u32x16_splat_u32x4()

static_always_inline u32x16 u32x16_splat_u32x4 ( u32x4  a)

Definition at line 263 of file vector_avx512.h.

+ Here is the caller graph for this function:

◆ u32x16_sum_elts()

static_always_inline u32 u32x16_sum_elts ( u32x16  sum16)

Definition at line 209 of file vector_avx512.h.

◆ u32x16_transpose()

static_always_inline void u32x16_transpose ( u32x16  m[16])

Definition at line 361 of file vector_avx512.h.

◆ u64x8_permute()

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

Definition at line 161 of file vector_avx512.h.

◆ u64x8_transpose()

static_always_inline void u64x8_transpose ( u64x8  m[8])

Definition at line 446 of file vector_avx512.h.

◆ u8x64_mask_blend()

static_always_inline u8x64 u8x64_mask_blend ( u8x64  a,
u8x64  b,
u64  mask 
)

Definition at line 275 of file vector_avx512.h.

◆ u8x64_reflect_u8x16()

static_always_inline u8x64 u8x64_reflect_u8x16 ( u8x64  x)

Definition at line 188 of file vector_avx512.h.

◆ u8x64_shuffle()

static_always_inline u8x64 u8x64_shuffle ( u8x64  v,
u8x64  m 
)

Definition at line 200 of file vector_avx512.h.

◆ u8x64_splat_u8x16()

epi8 epi16 epi16 epi32 epi64 epi64 static_always_inline u8x64 u8x64_splat_u8x16 ( u8x16  a)

Definition at line 257 of file vector_avx512.h.

+ Here is the caller graph for this function:

◆ u8x64_xor3()

static_always_inline u8x64 u8x64_xor3 ( u8x64  a,
u8x64  b,
u8x64  c 
)

Definition at line 181 of file vector_avx512.h.

+ Here is the caller graph for this function:

Variable Documentation

◆ epu16

__m128i __m128i __m256i __m256i epu16

Definition at line 286 of file vector_avx512.h.

◆ epu64

__m128i __m128i __m256i __m256i __m512i epu64

Definition at line 288 of file vector_avx512.h.

◆ u16

u16

Definition at line 291 of file vector_avx512.h.

◆ u16x16

u16x16

Definition at line 304 of file vector_avx512.h.

◆ u16x32

_mm512_packus_epi16 u16x32

Definition at line 98 of file vector_avx512.h.

◆ u32

__m128i __m128i __m256i __m256i u32

Definition at line 233 of file vector_avx512.h.

◆ u64x8

__m512i u64x8

Definition at line 306 of file vector_avx512.h.

◆ u8

epi32 epi32 u8

Definition at line 237 of file vector_avx512.h.

◆ u8x64

u8x64

Definition at line 96 of file vector_avx512.h.