|
#define | EXPLICIT explicit |
|
#define | _MM_16UB(element, vector) (*((unsigned char*)&##vector + ##element)) |
|
#define | _MM_16B(element, vector) (*((signed char*)&##vector + ##element)) |
|
#define | _MM_8UW(element, vector) (*((unsigned short*)&##vector + ##element)) |
|
#define | _MM_8W(element, vector) (*((short*)&##vector + ##element)) |
|
#define | _MM_4UDW(element, vector) (*((unsigned int*)&##vector + ##element)) |
|
#define | _MM_4DW(element, vector) (*((int*)&##vector + ##element)) |
|
#define | _MM_2QW(element, vector) (*((__int64*)&##vector + ##element)) |
|
#define | IVEC128_LOGICALS(vect, element) inline I##vect##vec##element operator& (const I##vect##vec##element &a,const I##vect##vec##element &b) { return _mm_and_si128(a,b); } inline I##vect##vec##element operator| (const I##vect##vec##element &a,const I##vect##vec##element &b) { return _mm_or_si128(a,b); } inline I##vect##vec##element operator^ (const I##vect##vec##element &a,const I##vect##vec##element &b) { return _mm_xor_si128(a,b); } inline I##vect##vec##element andnot (const I##vect##vec##element &a,const I##vect##vec##element &b) { return _mm_andnot_si128(a,b); } |
|
#define | IVEC128_ADD_SUB(vect, element, opsize) inline I##vect##vec##element operator+ (const I##vect##vec##element &a,const I##vect##vec##element &b) { return _mm_add_##opsize(a,b); } inline I##vect##vec##element operator- (const I##vect##vec##element &a,const I##vect##vec##element &b) { return _mm_sub_##opsize(a,b); } |
|
#define | IVEC128_SELECT(vect12, vect34, element, selop, arg1, arg2) inline I##vect34##vec##element select_##selop (const I##vect12##vec##element &a,const I##vect12##vec##element &b,const I##vect34##vec##element &c,const I##vect34##vec##element &d) { I##vect12##vec##element mask = cmp##selop(a,b); return(I##vect34##vec##element ((mask & arg1) | I##vect12##vec##element ((_mm_andnot_si128(mask,arg2))))); } |
|
#define | F64vec2_COMP(op) friend F64vec2 cmp##op (const F64vec2 &a,const F64vec2 &b) { return _mm_cmp##op##_pd(a,b); } |
|
#define | F64vec2_COMI(op) friend int comi##op (const F64vec2 &a,const F64vec2 &b) { return _mm_comi##op##_sd(a,b); } |
|
#define | F64vec2_UCOMI(op) friend int ucomi##op (const F64vec2 &a,const F64vec2 &b) { return _mm_ucomi##op##_sd(a,b); } |
|
#define | F64vec2_SELECT(op) inline F64vec2 select_##op (const F64vec2 &a,const F64vec2 &b,const F64vec2 &c,const F64vec2 &d) { F64vec2 mask = _mm_cmp##op##_pd(a,b); return((mask & c) | F64vec2((_mm_andnot_pd(mask,d)))); } |
|
|
const __m128i | get_mask128 () |
|
M128 | operator& (const M128 &a, const M128 &b) |
|
M128 | operator| (const M128 &a, const M128 &b) |
|
M128 | operator^ (const M128 &a, const M128 &b) |
|
M128 | andnot (const M128 &a, const M128 &b) |
|
I64vec2 | unpack_low (const I64vec2 &a, const I64vec2 &b) |
|
I64vec2 | unpack_high (const I64vec2 &a, const I64vec2 &b) |
|
I32vec4 | cmpeq (const I32vec4 &a, const I32vec4 &b) |
|
I32vec4 | cmpneq (const I32vec4 &a, const I32vec4 &b) |
|
I32vec4 | unpack_low (const I32vec4 &a, const I32vec4 &b) |
|
I32vec4 | unpack_high (const I32vec4 &a, const I32vec4 &b) |
|
Is32vec4 | cmpeq (const Is32vec4 &a, const Is32vec4 &b) |
|
Is32vec4 | cmpneq (const Is32vec4 &a, const Is32vec4 &b) |
|
Is32vec4 | cmpgt (const Is32vec4 &a, const Is32vec4 &b) |
|
Is32vec4 | cmplt (const Is32vec4 &a, const Is32vec4 &b) |
|
Is32vec4 | unpack_low (const Is32vec4 &a, const Is32vec4 &b) |
|
Is32vec4 | unpack_high (const Is32vec4 &a, const Is32vec4 &b) |
|
I64vec2 | operator* (const Iu32vec4 &a, const Iu32vec4 &b) |
|
Iu32vec4 | cmpeq (const Iu32vec4 &a, const Iu32vec4 &b) |
|
Iu32vec4 | cmpneq (const Iu32vec4 &a, const Iu32vec4 &b) |
|
Iu32vec4 | unpack_low (const Iu32vec4 &a, const Iu32vec4 &b) |
|
Iu32vec4 | unpack_high (const Iu32vec4 &a, const Iu32vec4 &b) |
|
I16vec8 | operator* (const I16vec8 &a, const I16vec8 &b) |
|
I16vec8 | cmpeq (const I16vec8 &a, const I16vec8 &b) |
|
I16vec8 | cmpneq (const I16vec8 &a, const I16vec8 &b) |
|
I16vec8 | unpack_low (const I16vec8 &a, const I16vec8 &b) |
|
I16vec8 | unpack_high (const I16vec8 &a, const I16vec8 &b) |
|
Is16vec8 | operator* (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | cmpeq (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | cmpneq (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | cmpgt (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | cmplt (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | unpack_low (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | unpack_high (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | mul_high (const Is16vec8 &a, const Is16vec8 &b) |
|
Is32vec4 | mul_add (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | sat_add (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | sat_sub (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | simd_max (const Is16vec8 &a, const Is16vec8 &b) |
|
Is16vec8 | simd_min (const Is16vec8 &a, const Is16vec8 &b) |
|
Iu16vec8 | operator* (const Iu16vec8 &a, const Iu16vec8 &b) |
|
Iu16vec8 | cmpeq (const Iu16vec8 &a, const Iu16vec8 &b) |
|
Iu16vec8 | cmpneq (const Iu16vec8 &a, const Iu16vec8 &b) |
|
Iu16vec8 | unpack_low (const Iu16vec8 &a, const Iu16vec8 &b) |
|
Iu16vec8 | unpack_high (const Iu16vec8 &a, const Iu16vec8 &b) |
|
Iu16vec8 | sat_add (const Iu16vec8 &a, const Iu16vec8 &b) |
|
Iu16vec8 | sat_sub (const Iu16vec8 &a, const Iu16vec8 &b) |
|
Iu16vec8 | simd_avg (const Iu16vec8 &a, const Iu16vec8 &b) |
|
I16vec8 | mul_high (const Iu16vec8 &a, const Iu16vec8 &b) |
|
I8vec16 | cmpeq (const I8vec16 &a, const I8vec16 &b) |
|
I8vec16 | cmpneq (const I8vec16 &a, const I8vec16 &b) |
|
I8vec16 | unpack_low (const I8vec16 &a, const I8vec16 &b) |
|
I8vec16 | unpack_high (const I8vec16 &a, const I8vec16 &b) |
|
Is8vec16 | cmpeq (const Is8vec16 &a, const Is8vec16 &b) |
|
Is8vec16 | cmpneq (const Is8vec16 &a, const Is8vec16 &b) |
|
Is8vec16 | cmpgt (const Is8vec16 &a, const Is8vec16 &b) |
|
Is8vec16 | cmplt (const Is8vec16 &a, const Is8vec16 &b) |
|
Is8vec16 | unpack_low (const Is8vec16 &a, const Is8vec16 &b) |
|
Is8vec16 | unpack_high (const Is8vec16 &a, const Is8vec16 &b) |
|
Is8vec16 | sat_add (const Is8vec16 &a, const Is8vec16 &b) |
|
Is8vec16 | sat_sub (const Is8vec16 &a, const Is8vec16 &b) |
|
Iu8vec16 | cmpeq (const Iu8vec16 &a, const Iu8vec16 &b) |
|
Iu8vec16 | cmpneq (const Iu8vec16 &a, const Iu8vec16 &b) |
|
Iu8vec16 | unpack_low (const Iu8vec16 &a, const Iu8vec16 &b) |
|
Iu8vec16 | unpack_high (const Iu8vec16 &a, const Iu8vec16 &b) |
|
Iu8vec16 | sat_add (const Iu8vec16 &a, const Iu8vec16 &b) |
|
Iu8vec16 | sat_sub (const Iu8vec16 &a, const Iu8vec16 &b) |
|
I64vec2 | sum_abs (const Iu8vec16 &a, const Iu8vec16 &b) |
|
Iu8vec16 | simd_avg (const Iu8vec16 &a, const Iu8vec16 &b) |
|
Iu8vec16 | simd_max (const Iu8vec16 &a, const Iu8vec16 &b) |
|
Iu8vec16 | simd_min (const Iu8vec16 &a, const Iu8vec16 &b) |
|
Is16vec8 | pack_sat (const Is32vec4 &a, const Is32vec4 &b) |
|
Is8vec16 | pack_sat (const Is16vec8 &a, const Is16vec8 &b) |
|
Iu8vec16 | packu_sat (const Is16vec8 &a, const Is16vec8 &b) |
|
F64vec2 | unpack_low (const F64vec2 &a, const F64vec2 &b) |
|
F64vec2 | unpack_high (const F64vec2 &a, const F64vec2 &b) |
|
int | move_mask (const F64vec2 &a) |
|
void | loadu (F64vec2 &a, double *p) |
|
void | storeu (double *p, const F64vec2 &a) |
|
void | store_nta (double *p, F64vec2 &a) |
|
| F64vec2_SELECT (eq) F64vec2_SELECT(lt) F64vec2_SELECT(le) F64vec2_SELECT(gt) F64vec2_SELECT(ge) F64vec2_SELECT(neq) F64vec2_SELECT(nlt) F64vec2_SELECT(nle) inline int F64vec2ToInt(const F64vec2 &a) |
|
F64vec2 | F32vec4ToF64vec2 (const F32vec4 &a) |
|
F32vec4 | F64vec2ToF32vec4 (const F64vec2 &a) |
|
F64vec2 | IntToF64vec2 (const F64vec2 &a, int b) |
|