HDK
|
#include <simd.h>
Public Types | |
enum | { elements = 8 } |
enum | { paddedelements = 8 } |
enum | { bits = elements*32 } |
typedef bool | value_t |
Underlying equivalent scalar value type. More... | |
typedef simd_bool_t< 8 >::type | simd_t |
the native SIMD type used More... | |
Public Member Functions | |
vbool8 () | |
Default constructor (contents undefined) More... | |
vbool8 (bool a) | |
Construct from a single value (store it in all slots) More... | |
vbool8 (const bool *values) | |
vbool8 (bool a, bool b, bool c, bool d, bool e, bool f, bool g, bool h) | |
Construct from 8 bool values. More... | |
vbool8 (const vbool8 &other) | |
Copy construct from another vbool8. More... | |
vbool8 (int a, int b, int c, int d, int e, int f, int g, int h) | |
Construct from 8 int values. More... | |
vbool8 (const vint8 &i) | |
Construct from a SIMD int (is each element nonzero?) More... | |
vbool8 (const vbool4 &lo, const vbool4 &hi) | |
Construct from two vbool4's. More... | |
vbool8 (const simd_t &m) | |
Construct from the underlying SIMD type. More... | |
operator simd_t () const | |
Return the raw SIMD type. More... | |
simd_t | simd () const |
simd_t & | simd () |
int | bitmask () const |
Extract the bitmask. More... | |
void | clear () |
Set all components to false. More... | |
const vbool8 & | operator= (bool a) |
Assign one value to all components. More... | |
const vbool8 & | operator= (const vbool8 &other) |
Assignment of another vbool8. More... | |
int | operator[] (int i) const |
Component access (get) More... | |
void | setcomp (int i, bool value) |
Component access (set). More... | |
int & | operator[] (int i) |
vbool4 | lo () const |
Extract the lower precision vbool4. More... | |
vbool4 | hi () const |
Extract the higher precision vbool4. More... | |
void | load (bool a) |
Helper: load a single value into all components. More... | |
void | load (bool a, bool b, bool c, bool d, bool e, bool f, bool g, bool h) |
Helper: load separate values into each component. More... | |
void | store (bool *values) const |
Helper: store the values into memory as bools. More... | |
void | store (bool *values, int n) const |
Store the first n values into memory. More... | |
Static Public Member Functions | |
static const char * | type_name () |
static vbool8 | from_bitmask (int bitmask) |
Convert from integer bitmask to a true vbool8. More... | |
static const vbool8 | False () |
Return a vbool8 the is 'false' for all values. More... | |
static const vbool8 | True () |
Return a vbool8 the is 'true' for all values. More... | |
Friends | |
vbool8 | operator! (const vbool8 &a) |
Logical/bitwise operators, component-by-component. More... | |
vbool8 | operator& (const vbool8 &a, const vbool8 &b) |
vbool8 | operator| (const vbool8 &a, const vbool8 &b) |
vbool8 | operator^ (const vbool8 &a, const vbool8 &b) |
vbool8 | operator~ (const vbool8 &a) |
const vbool8 & | operator&= (vbool8 &a, const vbool8 &b) |
const vbool8 & | operator|= (vbool8 &a, const vbool8 &b) |
const vbool8 & | operator^= (vbool8 &a, const vbool8 &b) |
vbool8 | operator== (const vbool8 &a, const vbool8 &b) |
Comparison operators, component by component. More... | |
vbool8 | operator!= (const vbool8 &a, const vbool8 &b) |
std::ostream & | operator<< (std::ostream &cout, const vbool8 &a) |
Stream output. More... | |
vbool8: An 8-vector whose elements act mostly like bools, accelerated by SIMD instructions when available. This is what is naturally produced by SIMD comparison operators on the vfloat8 and vint8 types.
typedef simd_bool_t<8>::type simd::vbool8::simd_t |
typedef bool simd::vbool8::value_t |
|
inline |
|
inline |
|
explicit |
OIIO_FORCEINLINE simd::vbool8::vbool8 | ( | bool | a, |
bool | b, | ||
bool | c, | ||
bool | d, | ||
bool | e, | ||
bool | f, | ||
bool | g, | ||
bool | h | ||
) |
|
inline |
OIIO_FORCEINLINE simd::vbool8::vbool8 | ( | const vint8 & | i | ) |
OIIO_FORCEINLINE simd::vbool8::vbool8 | ( | const vbool4 & | lo, |
const vbool4 & | hi | ||
) |
|
inline |
OIIO_FORCEINLINE int simd::vbool8::bitmask | ( | ) | const |
OIIO_FORCEINLINE void simd::vbool8::clear | ( | ) |
|
static |
|
static |
OIIO_FORCEINLINE vbool4 simd::vbool8::hi | ( | ) | const |
OIIO_FORCEINLINE vbool4 simd::vbool8::lo | ( | ) | const |
OIIO_FORCEINLINE void simd::vbool8::load | ( | bool | a | ) |
OIIO_FORCEINLINE void simd::vbool8::load | ( | bool | a, |
bool | b, | ||
bool | c, | ||
bool | d, | ||
bool | e, | ||
bool | f, | ||
bool | g, | ||
bool | h | ||
) |
|
inline |
OIIO_FORCEINLINE const vbool8 & simd::vbool8::operator= | ( | bool | a | ) |
OIIO_FORCEINLINE const vbool8 & simd::vbool8::operator= | ( | const vbool8 & | other | ) |
OIIO_FORCEINLINE int simd::vbool8::operator[] | ( | int | i | ) | const |
OIIO_FORCEINLINE int & simd::vbool8::operator[] | ( | int | i | ) |
OIIO_FORCEINLINE void simd::vbool8::setcomp | ( | int | i, |
bool | value | ||
) |
OIIO_FORCEINLINE void simd::vbool8::store | ( | bool * | values | ) | const |
OIIO_FORCEINLINE void simd::vbool8::store | ( | bool * | values, |
int | n | ||
) | const |
|
static |
|
friend |
int simd::vbool8::m_val[paddedelements] |