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

Go to the source code of this file.

Macros

#define u8x16_interleave(a, b)   _vector_interleave(a,b,u8x16)
 
#define i8x16_interleave(a, b)   _vector_interleave(a,b,i8x16)
 
#define u16x8_interleave(a, b)   _vector_interleave(a,b,u16x8)
 
#define i16x8_interleave(a, b)   _vector_interleave(a,b,i16x8)
 
#define u32x4_interleave(a, b)   _vector_interleave(a,b,u32x4)
 
#define i32x4_interleave(a, b)   _vector_interleave(a,b,i32x4)
 
#define u64x2_interleave(a, b)   _vector_interleave(a,b,u64x2)
 
#define i64x2_interleave(a, b)   _vector_interleave(a,b,i64x2)
 
#define u8x8_interleave(a, b)   _vector_interleave(a,b,u8x8)
 
#define i8x8_interleave(a, b)   _vector_interleave(a,b,i8x8)
 
#define u16x4_interleave(a, b)   _vector_interleave(a,b,u16x4)
 
#define i16x4_interleave(a, b)   _vector_interleave(a,b,i16x4)
 
#define u32x2_interleave(a, b)   _vector_interleave(a,b,u32x2)
 
#define i32x2_interleave(a, b)   _vector_interleave(a,b,i32x2)
 
#define u32x4_transpose_step(x, y)
 
#define u32x4_transpose(x0, x1, x2, x3)
 
#define i32x4_transpose(x0, x1, x2, x3)
 

Macro Definition Documentation

◆ i16x4_interleave

#define i16x4_interleave (   a,
 
)    _vector_interleave(a,b,i16x4)

Definition at line 125 of file vector_funcs.h.

◆ i16x8_interleave

#define i16x8_interleave (   a,
 
)    _vector_interleave(a,b,i16x8)

Definition at line 115 of file vector_funcs.h.

◆ i32x2_interleave

#define i32x2_interleave (   a,
 
)    _vector_interleave(a,b,i32x2)

Definition at line 127 of file vector_funcs.h.

◆ i32x4_interleave

#define i32x4_interleave (   a,
 
)    _vector_interleave(a,b,i32x4)

Definition at line 117 of file vector_funcs.h.

◆ i32x4_transpose

#define i32x4_transpose (   x0,
  x1,
  x2,
  x3 
)
Value:
do { \
u32x4 _x0 = (u32x4) (x0); \
u32x4 _x1 = (u32x4) (x1); \
u32x4 _x2 = (u32x4) (x2); \
u32x4 _x3 = (u32x4) (x3); \
u32x4_transpose_step (_x0, _x2); \
u32x4_transpose_step (_x1, _x3); \
u32x4_transpose_step (_x0, _x1); \
u32x4_transpose_step (_x2, _x3); \
(x0) = (i32x4) _x0; \
(x1) = (i32x4) _x1; \
(x2) = (i32x4) _x2; \
(x3) = (i32x4) _x3; \
} while (0)
i32x4
unsigned long long u32x4
Definition: ixge.c:28

Definition at line 308 of file vector_funcs.h.

◆ i64x2_interleave

#define i64x2_interleave (   a,
 
)    _vector_interleave(a,b,i64x2)

Definition at line 119 of file vector_funcs.h.

◆ i8x16_interleave

#define i8x16_interleave (   a,
 
)    _vector_interleave(a,b,i8x16)

Definition at line 113 of file vector_funcs.h.

◆ i8x8_interleave

#define i8x8_interleave (   a,
 
)    _vector_interleave(a,b,i8x8)

Definition at line 123 of file vector_funcs.h.

◆ u16x4_interleave

#define u16x4_interleave (   a,
 
)    _vector_interleave(a,b,u16x4)

Definition at line 124 of file vector_funcs.h.

◆ u16x8_interleave

#define u16x8_interleave (   a,
 
)    _vector_interleave(a,b,u16x8)

Definition at line 114 of file vector_funcs.h.

◆ u32x2_interleave

#define u32x2_interleave (   a,
 
)    _vector_interleave(a,b,u32x2)

Definition at line 126 of file vector_funcs.h.

◆ u32x4_interleave

#define u32x4_interleave (   a,
 
)    _vector_interleave(a,b,u32x4)

Definition at line 116 of file vector_funcs.h.

◆ u32x4_transpose

#define u32x4_transpose (   x0,
  x1,
  x2,
  x3 
)
Value:
do { \
u32x4 _x0 = (u32x4) (x0); \
u32x4 _x1 = (u32x4) (x1); \
u32x4 _x2 = (u32x4) (x2); \
u32x4 _x3 = (u32x4) (x3); \
u32x4_transpose_step (_x0, _x2); \
u32x4_transpose_step (_x1, _x3); \
u32x4_transpose_step (_x0, _x1); \
u32x4_transpose_step (_x2, _x3); \
(x0) = (u32x4) _x0; \
(x1) = (u32x4) _x1; \
(x2) = (u32x4) _x2; \
(x3) = (u32x4) _x3; \
} while (0)
unsigned long long u32x4
Definition: ixge.c:28

Definition at line 292 of file vector_funcs.h.

◆ u32x4_transpose_step

#define u32x4_transpose_step (   x,
 
)
Value:
do { \
u32x4 _x = (x); \
u32x4 _y = (y); \
(x) = u32x4_interleave_lo (_x, _y); \
(y) = u32x4_interleave_hi (_x, _y); \
} while (0)
static u32x4 u32x4_interleave_lo(u32x4 a, u32x4 b)
Definition: vector_sse42.h:132
static u32x4 u32x4_interleave_hi(u32x4 a, u32x4 b)
Definition: vector_sse42.h:126

Definition at line 283 of file vector_funcs.h.

◆ u64x2_interleave

#define u64x2_interleave (   a,
 
)    _vector_interleave(a,b,u64x2)

Definition at line 118 of file vector_funcs.h.

◆ u8x16_interleave

#define u8x16_interleave (   a,
 
)    _vector_interleave(a,b,u8x16)

Definition at line 112 of file vector_funcs.h.

◆ u8x8_interleave

#define u8x8_interleave (   a,
 
)    _vector_interleave(a,b,u8x8)

Definition at line 122 of file vector_funcs.h.