FD.io VPP  v18.04-17-g3a0d853
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

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

Definition at line 125 of file vector_funcs.h.

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

Definition at line 115 of file vector_funcs.h.

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

Definition at line 127 of file vector_funcs.h.

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

Definition at line 117 of file vector_funcs.h.

#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 (_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
#define u32x4_transpose_step(x, y)
Definition: vector_funcs.h:283

Definition at line 308 of file vector_funcs.h.

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

Definition at line 119 of file vector_funcs.h.

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

Definition at line 113 of file vector_funcs.h.

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

Definition at line 123 of file vector_funcs.h.

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

Definition at line 124 of file vector_funcs.h.

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

Definition at line 114 of file vector_funcs.h.

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

Definition at line 126 of file vector_funcs.h.

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

Definition at line 116 of file vector_funcs.h.

#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 (_x2, _x3); \
(x0) = (u32x4) _x0; \
(x1) = (u32x4) _x1; \
(x2) = (u32x4) _x2; \
(x3) = (u32x4) _x3; \
} while (0)
unsigned long long u32x4
Definition: ixge.c:28
#define u32x4_transpose_step(x, y)
Definition: vector_funcs.h:283

Definition at line 292 of file vector_funcs.h.

#define u32x4_transpose_step (   x,
  y 
)
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:76
adds_epu subs_epu i16x8 y
Definition: vector_sse42.h:227
unsigned long long u32x4
Definition: ixge.c:28
static u32x4 u32x4_interleave_hi(u32x4 a, u32x4 b)
Definition: vector_sse42.h:70

Definition at line 283 of file vector_funcs.h.

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

Definition at line 118 of file vector_funcs.h.

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

Definition at line 112 of file vector_funcs.h.

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

Definition at line 122 of file vector_funcs.h.