FD.io VPP
v16.06
Vector Packet Processing
|
Go to the source code of this file.
Macros | |
#define | i64x2_splat u64x2_splat |
#define | i32x4_splat u32x4_splat |
#define | i16x8_splat u16x8_splat |
#define | i8x16_splat u8x16_splat |
#define | i32x2_splat u32x2_splat |
#define | i16x4_splat u16x4_splat |
#define | i8x8_splat u8x8_splat |
#define | u8x16_word_shift_left(a, n) (u8x16) _mm_slli_si128((__m128i) a, n) |
#define | u8x16_word_shift_right(a, n) (u8x16) _mm_srli_si128((__m128i) a, n) |
#define | i8x16_word_shift_left(a, n) ((i8x16) u8x16_word_shift_left((u8x16) (a), (n))) |
#define | i8x16_word_shift_right(a, n) ((i8x16) u8x16_word_shift_right((u8x16) (a), (n))) |
#define | u16x8_word_shift_left(a, n) ((u16x8) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u16))) |
#define | i16x8_word_shift_left(a, n) ((u16x8) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u16))) |
#define | u16x8_word_shift_right(a, n) ((u16x8) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u16))) |
#define | i16x8_word_shift_right(a, n) ((i16x8) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u16))) |
#define | u32x4_word_shift_left(a, n) ((u32x4) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u32))) |
#define | i32x4_word_shift_left(a, n) ((u32x4) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u32))) |
#define | u32x4_word_shift_right(a, n) ((u32x4) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u32))) |
#define | i32x4_word_shift_right(a, n) ((i32x4) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u32))) |
#define | u64x2_word_shift_left(a, n) ((u64x2) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u64))) |
#define | i64x2_word_shift_left(a, n) ((u64x2) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u64))) |
#define | u64x2_word_shift_right(a, n) ((u64x2) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u64))) |
#define | i64x2_word_shift_right(a, n) ((i64x2) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u64))) |
#define | u32x4_select(A, MASK) |
#define | u32x4_splat_word(x, i) |
Variables | |
add | |
add_epi add_epi | sub |
add_epi add_epi sub_epi sub_epi | add_saturate |
add_epi add_epi sub_epi sub_epi adds_epu | sub_saturate |
add_epi add_epi sub_epi sub_epi adds_epu subs_epu i16x8 | y { return (i16x8) _mm_mullo_epi16 ((__m128i) x, (__m128i) y) |
left | |
sll | right |
sll srl srl sll sra u16x4 | i { return (u16x4) _m_psllw ((__m64) x, (__m64) i) |
u8 | u32x4_compare_word_mask_table [256] |
#define i16x4_splat u16x4_splat |
Definition at line 165 of file vector_sse2.h.
#define i16x8_splat u16x8_splat |
Definition at line 162 of file vector_sse2.h.
#define i16x8_word_shift_left | ( | a, | |
n | |||
) | ((u16x8) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u16))) |
Definition at line 300 of file vector_sse2.h.
#define i16x8_word_shift_right | ( | a, | |
n | |||
) | ((i16x8) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u16))) |
Definition at line 304 of file vector_sse2.h.
#define i32x2_splat u32x2_splat |
Definition at line 164 of file vector_sse2.h.
#define i32x4_splat u32x4_splat |
Definition at line 161 of file vector_sse2.h.
#define i32x4_word_shift_left | ( | a, | |
n | |||
) | ((u32x4) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u32))) |
Definition at line 309 of file vector_sse2.h.
#define i32x4_word_shift_right | ( | a, | |
n | |||
) | ((i32x4) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u32))) |
Definition at line 313 of file vector_sse2.h.
#define i64x2_splat u64x2_splat |
Definition at line 160 of file vector_sse2.h.
#define i64x2_word_shift_left | ( | a, | |
n | |||
) | ((u64x2) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u64))) |
Definition at line 318 of file vector_sse2.h.
#define i64x2_word_shift_right | ( | a, | |
n | |||
) | ((i64x2) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u64))) |
Definition at line 322 of file vector_sse2.h.
#define i8x16_splat u8x16_splat |
Definition at line 163 of file vector_sse2.h.
#define i8x16_word_shift_left | ( | a, | |
n | |||
) | ((i8x16) u8x16_word_shift_left((u8x16) (a), (n))) |
Definition at line 293 of file vector_sse2.h.
#define i8x16_word_shift_right | ( | a, | |
n | |||
) | ((i8x16) u8x16_word_shift_right((u8x16) (a), (n))) |
Definition at line 295 of file vector_sse2.h.
#define i8x8_splat u8x8_splat |
Definition at line 166 of file vector_sse2.h.
#define u16x8_word_shift_left | ( | a, | |
n | |||
) | ((u16x8) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u16))) |
Definition at line 298 of file vector_sse2.h.
#define u16x8_word_shift_right | ( | a, | |
n | |||
) | ((u16x8) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u16))) |
Definition at line 302 of file vector_sse2.h.
#define u32x4_select | ( | A, | |
MASK | |||
) |
Definition at line 428 of file vector_sse2.h.
#define u32x4_splat_word | ( | x, | |
i | |||
) |
Definition at line 438 of file vector_sse2.h.
#define u32x4_word_shift_left | ( | a, | |
n | |||
) | ((u32x4) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u32))) |
Definition at line 307 of file vector_sse2.h.
#define u32x4_word_shift_right | ( | a, | |
n | |||
) | ((u32x4) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u32))) |
Definition at line 311 of file vector_sse2.h.
#define u64x2_word_shift_left | ( | a, | |
n | |||
) | ((u64x2) u8x16_word_shift_left((u8x16) (a), (n) * sizeof (u64))) |
Definition at line 316 of file vector_sse2.h.
#define u64x2_word_shift_right | ( | a, | |
n | |||
) | ((u64x2) u8x16_word_shift_right((u8x16) (a), (n) * sizeof (u64))) |
Definition at line 320 of file vector_sse2.h.
Definition at line 290 of file vector_sse2.h.
Definition at line 291 of file vector_sse2.h.
always_inline i8x8 i16x4_pack | ( | i16x4 | lo, |
i16x4 | hi | ||
) |
Definition at line 102 of file vector_sse2.h.
always_inline i16x4 i16x4_shift_left | ( | i16x4 | x, |
i16x4 | i | ||
) |
Definition at line 278 of file vector_sse2.h.
always_inline i16x4 i16x4_shift_right | ( | i16x4 | x, |
i16x4 | i | ||
) |
Definition at line 284 of file vector_sse2.h.
always_inline i16x8 i16x8_is_equal | ( | i16x8 | x, |
i16x8 | y | ||
) |
Definition at line 389 of file vector_sse2.h.
always_inline u16x8 i16x8_is_greater | ( | i16x8 | x, |
i16x8 | y | ||
) |
Definition at line 403 of file vector_sse2.h.
always_inline i16x8 i16x8_max | ( | i16x8 | x, |
i16x8 | y | ||
) |
always_inline i16 i16x8_max_scalar | ( | i16x8 | x | ) |
always_inline i16x8 i16x8_min | ( | i16x8 | x, |
i16x8 | y | ||
) |
always_inline i16 i16x8_min_scalar | ( | i16x8 | x | ) |
always_inline i16x8 i16x8_mul_hi | ( | i16x8 | x, |
i16x8 | y | ||
) |
Definition at line 236 of file vector_sse2.h.
always_inline i8x16 i16x8_pack | ( | i16x8 | lo, |
i16x8 | hi | ||
) |
Definition at line 92 of file vector_sse2.h.
always_inline i16x4 i32x2_pack | ( | i32x2 | lo, |
i32x2 | hi | ||
) |
Definition at line 108 of file vector_sse2.h.
always_inline i32x2 i32x2_shift_left | ( | i32x2 | x, |
i32x2 | i | ||
) |
Definition at line 281 of file vector_sse2.h.
always_inline i32x2 i32x2_shift_right | ( | i32x2 | x, |
i32x2 | i | ||
) |
Definition at line 287 of file vector_sse2.h.
always_inline i32 i32x4_get0 | ( | i32x4 | x | ) |
always_inline i32x4 i32x4_is_equal | ( | i32x4 | x, |
i32x4 | y | ||
) |
Definition at line 395 of file vector_sse2.h.
always_inline u32x4 i32x4_is_greater | ( | i32x4 | x, |
i32x4 | y | ||
) |
Definition at line 407 of file vector_sse2.h.
always_inline i32x4 i32x4_set0 | ( | i32 | x | ) |
always_inline i8x16 i8x16_is_equal | ( | i8x16 | x, |
i8x16 | y | ||
) |
Definition at line 383 of file vector_sse2.h.
always_inline u8x16 i8x16_is_greater | ( | i8x16 | x, |
i8x16 | y | ||
) |
Definition at line 399 of file vector_sse2.h.
always_inline u16x4 u16x4_interleave_hi | ( | u16x4 | a, |
u16x4 | b | ||
) |
Definition at line 76 of file vector_sse2.h.
always_inline u16x4 u16x4_interleave_lo | ( | u16x4 | a, |
u16x4 | b | ||
) |
Definition at line 79 of file vector_sse2.h.
always_inline u8x8 u16x4_pack | ( | u16x4 | lo, |
u16x4 | hi | ||
) |
Definition at line 99 of file vector_sse2.h.
always_inline u16x4 u16x4_shift_right | ( | u16x4 | x, |
u16x4 | i | ||
) |
Definition at line 272 of file vector_sse2.h.
always_inline u16x4 u16x4_splat | ( | u16 | a | ) |
always_inline u16x8 u16x8_interleave_hi | ( | u16x8 | a, |
u16x8 | b | ||
) |
Definition at line 51 of file vector_sse2.h.
always_inline u16x8 u16x8_interleave_lo | ( | u16x8 | a, |
u16x8 | b | ||
) |
Definition at line 54 of file vector_sse2.h.
always_inline u16x8 u16x8_is_equal | ( | u16x8 | x, |
u16x8 | y | ||
) |
always_inline u16x8 u16x8_is_zero | ( | u16x8 | x | ) |
always_inline u16x8 u16x8_mul_hi | ( | u16x8 | x, |
u16x8 | y | ||
) |
Definition at line 239 of file vector_sse2.h.
always_inline u16x8 u16x8_mul_lo | ( | u16x8 | x, |
u16x8 | y | ||
) |
Definition at line 233 of file vector_sse2.h.
always_inline u8x16 u16x8_pack | ( | u16x8 | lo, |
u16x8 | hi | ||
) |
Definition at line 89 of file vector_sse2.h.
always_inline u16x8 u16x8_splat | ( | u16 | a | ) |
Definition at line 127 of file vector_sse2.h.
always_inline u32 u16x8_zero_byte_mask | ( | u16x8 | x | ) |
always_inline u32x2 u32x2_interleave_hi | ( | u32x2 | a, |
u32x2 | b | ||
) |
Definition at line 82 of file vector_sse2.h.
always_inline u32x2 u32x2_interleave_lo | ( | u32x2 | a, |
u32x2 | b | ||
) |
always_inline u16x4 u32x2_pack | ( | u32x2 | lo, |
u32x2 | hi | ||
) |
Definition at line 105 of file vector_sse2.h.
always_inline u32x2 u32x2_shift_left | ( | u32x2 | x, |
u32x2 | i | ||
) |
Definition at line 269 of file vector_sse2.h.
always_inline u32x2 u32x2_shift_right | ( | u32x2 | x, |
u32x2 | i | ||
) |
Definition at line 275 of file vector_sse2.h.
always_inline u32x2 u32x2_splat | ( | u32 | a | ) |
Definition at line 140 of file vector_sse2.h.
always_inline u32 u32x4_compare_word_mask | ( | u32x4 | x | ) |
always_inline u32 u32x4_get0 | ( | u32x4 | x | ) |
always_inline u32x4 u32x4_interleave_hi | ( | u32x4 | a, |
u32x4 | b | ||
) |
Definition at line 57 of file vector_sse2.h.
always_inline u32x4 u32x4_interleave_lo | ( | u32x4 | a, |
u32x4 | b | ||
) |
always_inline u32x4 u32x4_is_equal | ( | u32x4 | x, |
u32x4 | y | ||
) |
always_inline u32x4 u32x4_is_zero | ( | u32x4 | x | ) |
always_inline u16x8 u32x4_pack | ( | u32x4 | lo, |
u32x4 | hi | ||
) |
Definition at line 95 of file vector_sse2.h.
always_inline u32x4 u32x4_set0 | ( | u32 | x | ) |
always_inline u32x4 u32x4_splat | ( | u32 | a | ) |
Definition at line 119 of file vector_sse2.h.
always_inline u32 u32x4_zero_byte_mask | ( | u32x4 | x | ) |
always_inline u64x2 u64x2_interleave_hi | ( | u64x2 | a, |
u64x2 | b | ||
) |
Definition at line 63 of file vector_sse2.h.
always_inline u64x2 u64x2_interleave_lo | ( | u64x2 | a, |
u64x2 | b | ||
) |
always_inline u64x2 u64x2_read_hi | ( | u64x2 | x, |
u64 * | a | ||
) |
Definition at line 172 of file vector_sse2.h.
always_inline u64x2 u64x2_read_lo | ( | u64x2 | x, |
u64 * | a | ||
) |
Definition at line 169 of file vector_sse2.h.
always_inline u64x2 u64x2_splat | ( | u64 | a | ) |
always_inline void u64x2_write_hi | ( | u64x2 | x, |
u64 * | a | ||
) |
Definition at line 178 of file vector_sse2.h.
always_inline void u64x2_write_lo | ( | u64x2 | x, |
u64 * | a | ||
) |
Definition at line 175 of file vector_sse2.h.
always_inline u32 u8x16_compare_byte_mask | ( | u8x16 | x | ) |
always_inline u8x16 u8x16_interleave_hi | ( | u8x16 | a, |
u8x16 | b | ||
) |
Definition at line 45 of file vector_sse2.h.
always_inline u8x16 u8x16_interleave_lo | ( | u8x16 | a, |
u8x16 | b | ||
) |
Definition at line 48 of file vector_sse2.h.
always_inline u8x16 u8x16_is_equal | ( | u8x16 | x, |
u8x16 | y | ||
) |
always_inline u8x16 u8x16_is_zero | ( | u8x16 | x | ) |
always_inline u8x16 u8x16_max | ( | u8x16 | x, |
u8x16 | y | ||
) |
always_inline u32 u8x16_max_scalar | ( | u8x16 | x | ) |
always_inline u8x16 u8x16_min | ( | u8x16 | x, |
u8x16 | y | ||
) |
always_inline u8 u8x16_min_scalar | ( | u8x16 | x | ) |
always_inline u8x16 u8x16_splat | ( | u8 | a | ) |
Definition at line 133 of file vector_sse2.h.
always_inline u32 u8x16_zero_byte_mask | ( | u8x16 | x | ) |
always_inline u8x8 u8x8_interleave_hi | ( | u8x8 | a, |
u8x8 | b | ||
) |
Definition at line 70 of file vector_sse2.h.
always_inline u8x8 u8x8_interleave_lo | ( | u8x8 | a, |
u8x8 | b | ||
) |
Definition at line 73 of file vector_sse2.h.
always_inline u8x8 u8x8_splat | ( | u8 | a | ) |
add_epi add |
Definition at line 213 of file vector_sse2.h.
add_epi add_epi sub_epi sub_epi add_saturate |
Definition at line 224 of file vector_sse2.h.
sll srl srl sll sra u16x4 i { return (u16x4) _m_psllw ((__m64) x, (__m64) i) |
Definition at line 267 of file vector_sse2.h.
sll srl srl left |
Definition at line 252 of file vector_sse2.h.
sll srl srl sll right |
Definition at line 254 of file vector_sse2.h.
add_epi add_epi sub_epi sub |
Definition at line 217 of file vector_sse2.h.
add_epi add_epi sub_epi sub_epi adds_epu sub_saturate |
Definition at line 226 of file vector_sse2.h.
u8 u32x4_compare_word_mask_table[256] |
add_epi add_epi sub_epi sub_epi adds_epu subs_epu i16x8 y { return (i16x8) _mm_mullo_epi16 ((__m128i) x, (__m128i) y) |
Definition at line 231 of file vector_sse2.h.