SMAUG
Simulating Machine Learning Applications on gem5-Aladdin
Macros | Typedefs
Working with SIMD in C.

Typedefs and macros for working with vector data. More...

Macros

#define VECTOR_SIZE   8
 Vector size used in SMV backends.
 
#define VEC128_MASK(input, mask)   ((v4fp_t)((v4sfx_t)input & mask))
 Apply a elementwise mask to a 128-bit packed single precision FP vector. More...
 
#define VEC256_MASK(input, mask)   ((v8fp_t)((v8sfx_t)input & mask))
 Same as VEC128_MASK, but for 256-bit vectors. More...
 

Typedefs

typedef fp16_t v16fp_t
 16 packed 32-bit floating point values.
 
typedef fp_t v8fp_t
 8 packed 32-bit floating point values.
 
typedef fp_t v4fp_t
 4 packed 32-bit floating point values.
 
typedef fp16_t v16ph_t
 16 packed 16-bit floating point values.
 
typedef fp16_t v8ph_t
 8 packed 16-bit floating point values.
 
typedef fp16_t v4ph_t
 4 packed 16-bit floating point values.
 
typedef sfx_t v8sfx_t
 8 packed 32-bit integer values.
 
typedef sfx_t v4sfx_t
 4 packed 32-bit integer values.
 
typedef uint8_t v8bl_t
 8 packed 8-bit bool values.
 

Detailed Description

Typedefs and macros for working with vector data.

Macro Definition Documentation

◆ VEC128_MASK

#define VEC128_MASK (   input,
  mask 
)    ((v4fp_t)((v4sfx_t)input & mask))

Apply a elementwise mask to a 128-bit packed single precision FP vector.

The mask is a vector of either 0s or -1s (all 1s). Entries that are have a mask of 0 are zeroed out.

LLVM is smart enough to turn this into a SELECT instruction, rather than a bitwise mask!

Parameters
inputA v4fp_t vector.
maskA v4sfx_t vector of either 0s or -1s.

Definition at line 340 of file common.h.

◆ VEC256_MASK

#define VEC256_MASK (   input,
  mask 
)    ((v8fp_t)((v8sfx_t)input & mask))

Same as VEC128_MASK, but for 256-bit vectors.

Parameters
inputA v4fp_t vector.
maskA v4sfx_t vector of either 0s or -1s.

Definition at line 348 of file common.h.