#include <avir_float8_avx.h>
SIMD packed 8-float type.
This class implements a packed 8-float type that can be used to perform parallel computation using SIMD instructions on AVX-enabled processors. This class can be used as the "fptype" argument of the avir::fpclass_def or avir::fpclass_def_dil class.
static void avir::float8::addu |
( |
float *const |
p, |
|
|
const float8 & |
v |
|
) |
| |
|
static |
Function performs in-place addition of a value located in memory and the specified value.
- Parameters
-
p | Pointer to value where addition happens. May be unaligned. |
v | Value to add. |
static void avir::float8::addu |
( |
float *const |
p, |
|
|
const float8 & |
v, |
|
|
const int |
lim |
|
) |
| |
|
static |
Function performs in-place addition of a value located in memory and the specified value. Limited to the specfied number of elements.
- Parameters
-
p | Pointer to value where addition happens. May be unaligned. |
v | Value to add. |
lim | The element number limit, >0. |
float avir::float8::hadd |
( |
| ) |
const |
- Returns
- Horizontal sum of elements.
static float8 avir::float8::load |
( |
const float *const |
p | ) |
|
|
static |
- Parameters
-
p | Pointer to memory from where the value should be loaded, should be 32-byte aligned. |
- Returns
- float8 value loaded from the specified memory location.
static float8 avir::float8::loadu |
( |
const float *const |
p | ) |
|
|
static |
- Parameters
-
p | Pointer to memory from where the value should be loaded, may have any alignment. |
- Returns
- float8 value loaded from the specified memory location.
static float8 avir::float8::loadu |
( |
const float *const |
p, |
|
|
const int |
lim |
|
) |
| |
|
static |
- Parameters
-
p | Pointer to memory from where the value should be loaded, may have any alignment. |
lim | The maximum number of elements to load, >0. |
- Returns
- float8 value loaded from the specified memory location, with elements beyond "lim" set to 0.
void avir::float8::store |
( |
float *const |
p | ) |
const |
Function stores *this value to the specified memory location.
- Parameters
-
[out] | p | Output memory location, should be 32-byte aligned. |
void avir::float8::storeu |
( |
float *const |
p | ) |
const |
Function stores *this value to the specified memory location.
- Parameters
-
[out] | p | Output memory location, may have any alignment. |
void avir::float8::storeu |
( |
float * |
p, |
|
|
int |
lim |
|
) |
| const |
Function stores "lim" lower elements of *this value to the specified memory location.
- Parameters
-
[out] | p | Output memory location, may have any alignment. |
| lim | The number of lower elements to store, >0. |
__m256 avir::float8::value |
Packed value of 8 floats.