STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Macros | Functions | Variables
ivec.h File Reference
#include <mmintrin.h>
#include <crtdefs.h>

Go to the source code of this file.

Classes

class  M64
 
class  I64vec1
 
class  I32vec2
 
class  Is32vec2
 
class  Iu32vec2
 
class  I16vec4
 
class  Is16vec4
 
class  Iu16vec4
 
class  I8vec8
 
class  Is8vec8
 
class  Iu8vec8
 

Macros

#define EXPLICIT   explicit
 
#define _VEC_ASSERT(_Expression)   (void)( (!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression), _CRT_WIDE(__FILE__), __LINE__), 0) )
 
#define _MM_8UB(element, vector)   (*((unsigned char*)&##vector + ##element))
 
#define _MM_8B(element, vector)   (*((signed char*)&##vector + ##element))
 
#define _MM_4UW(element, vector)   (*((unsigned short*)&##vector + ##element))
 
#define _MM_4W(element, vector)   (*((short*)&##vector + ##element))
 
#define _MM_2UDW(element, vector)   (*((unsigned int*)&##vector + ##element))
 
#define _MM_2DW(element, vector)   (*((int*)&##vector + ##element))
 
#define _MM_QW   (*((__int64*)&vec))
 
#define _mmx_all_ones   ((M64)__mmx_all_ones_cheat.m2)
 
#define IVEC_LOGICALS(vect, element)
 
#define IVEC_ADD_SUB(vect, element, opsize)
 
#define IVEC_SELECT(vect12, vect34, element, selop)
 

Functions

_CRTIMP void __cdecl _wassert (_In_z_ const wchar_t *_Message, _In_z_ const wchar_t *_File, _In_ unsigned _Line)
 
M64 operator& (const M64 &a, const M64 &b)
 
M64 operator| (const M64 &a, const M64 &b)
 
M64 operator^ (const M64 &a, const M64 &b)
 
M64 andnot (const M64 &a, const M64 &b)
 
I32vec2 cmpeq (const I32vec2 &a, const I32vec2 &b)
 
I32vec2 cmpneq (const I32vec2 &a, const I32vec2 &b)
 
I32vec2 unpack_low (const I32vec2 &a, const I32vec2 &b)
 
I32vec2 unpack_high (const I32vec2 &a, const I32vec2 &b)
 
Is32vec2 cmpeq (const Is32vec2 &a, const Is32vec2 &b)
 
Is32vec2 cmpneq (const Is32vec2 &a, const Is32vec2 &b)
 
Is32vec2 cmpgt (const Is32vec2 &a, const Is32vec2 &b)
 
Is32vec2 cmplt (const Is32vec2 &a, const Is32vec2 &b)
 
Is32vec2 cmple (const Is32vec2 &a, const Is32vec2 &b)
 
Is32vec2 cmpge (const Is32vec2 &a, const Is32vec2 &b)
 
Is32vec2 unpack_low (const Is32vec2 &a, const Is32vec2 &b)
 
Is32vec2 unpack_high (const Is32vec2 &a, const Is32vec2 &b)
 
Iu32vec2 cmpeq (const Iu32vec2 &a, const Iu32vec2 &b)
 
Iu32vec2 cmpneq (const Iu32vec2 &a, const Iu32vec2 &b)
 
Iu32vec2 unpack_low (const Iu32vec2 &a, const Iu32vec2 &b)
 
Iu32vec2 unpack_high (const Iu32vec2 &a, const Iu32vec2 &b)
 
I16vec4 operator* (const I16vec4 &a, const I16vec4 &b)
 
I16vec4 cmpeq (const I16vec4 &a, const I16vec4 &b)
 
I16vec4 cmpneq (const I16vec4 &a, const I16vec4 &b)
 
I16vec4 unpack_low (const I16vec4 &a, const I16vec4 &b)
 
I16vec4 unpack_high (const I16vec4 &a, const I16vec4 &b)
 
Is16vec4 operator* (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 cmpeq (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 cmpneq (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 cmpgt (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 cmplt (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 cmple (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 cmpge (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 unpack_low (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 unpack_high (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 sat_add (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 sat_sub (const Is16vec4 &a, const Is16vec4 &b)
 
Is16vec4 mul_high (const Is16vec4 &a, const Is16vec4 &b)
 
Is32vec2 mul_add (const Is16vec4 &a, const Is16vec4 &b)
 
Iu16vec4 operator* (const Iu16vec4 &a, const Iu16vec4 &b)
 
Iu16vec4 cmpeq (const Iu16vec4 &a, const Iu16vec4 &b)
 
Iu16vec4 cmpneq (const Iu16vec4 &a, const Iu16vec4 &b)
 
Iu16vec4 sat_add (const Iu16vec4 &a, const Iu16vec4 &b)
 
Iu16vec4 sat_sub (const Iu16vec4 &a, const Iu16vec4 &b)
 
Iu16vec4 unpack_low (const Iu16vec4 &a, const Iu16vec4 &b)
 
Iu16vec4 unpack_high (const Iu16vec4 &a, const Iu16vec4 &b)
 
I8vec8 cmpeq (const I8vec8 &a, const I8vec8 &b)
 
I8vec8 cmpneq (const I8vec8 &a, const I8vec8 &b)
 
I8vec8 unpack_low (const I8vec8 &a, const I8vec8 &b)
 
I8vec8 unpack_high (const I8vec8 &a, const I8vec8 &b)
 
Is8vec8 cmpeq (const Is8vec8 &a, const Is8vec8 &b)
 
Is8vec8 cmpneq (const Is8vec8 &a, const Is8vec8 &b)
 
Is8vec8 cmpgt (const Is8vec8 &a, const Is8vec8 &b)
 
Is8vec8 cmplt (const Is8vec8 &a, const Is8vec8 &b)
 
Is8vec8 cmple (const Is8vec8 &a, const Is8vec8 &b)
 
Is8vec8 cmpge (const Is8vec8 &a, const Is8vec8 &b)
 
Is8vec8 unpack_low (const Is8vec8 &a, const Is8vec8 &b)
 
Is8vec8 unpack_high (const Is8vec8 &a, const Is8vec8 &b)
 
Is8vec8 sat_add (const Is8vec8 &a, const Is8vec8 &b)
 
Is8vec8 sat_sub (const Is8vec8 &a, const Is8vec8 &b)
 
Iu8vec8 cmpeq (const Iu8vec8 &a, const Iu8vec8 &b)
 
Iu8vec8 cmpneq (const Iu8vec8 &a, const Iu8vec8 &b)
 
Iu8vec8 unpack_low (const Iu8vec8 &a, const Iu8vec8 &b)
 
Iu8vec8 unpack_high (const Iu8vec8 &a, const Iu8vec8 &b)
 
Iu8vec8 sat_add (const Iu8vec8 &a, const Iu8vec8 &b)
 
Iu8vec8 sat_sub (const Iu8vec8 &a, const Iu8vec8 &b)
 
Is16vec4 pack_sat (const Is32vec2 &a, const Is32vec2 &b)
 
Is8vec8 pack_sat (const Is16vec4 &a, const Is16vec4 &b)
 
Iu8vec8 packu_sat (const Is16vec4 &a, const Is16vec4 &b)
 
static void empty (void)
 

Variables

union {
   __int64   m1
 
   __m64   m2
 
__mmx_all_ones_cheat
 

Macro Definition Documentation

#define _MM_2DW (   element,
  vector 
)    (*((int*)&##vector + ##element))
#define _MM_2UDW (   element,
  vector 
)    (*((unsigned int*)&##vector + ##element))
#define _MM_4UW (   element,
  vector 
)    (*((unsigned short*)&##vector + ##element))
#define _MM_4W (   element,
  vector 
)    (*((short*)&##vector + ##element))
#define _MM_8B (   element,
  vector 
)    (*((signed char*)&##vector + ##element))
#define _MM_8UB (   element,
  vector 
)    (*((unsigned char*)&##vector + ##element))
#define _MM_QW   (*((__int64*)&vec))
#define _mmx_all_ones   ((M64)__mmx_all_ones_cheat.m2)
#define _VEC_ASSERT (   _Expression)    (void)( (!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression), _CRT_WIDE(__FILE__), __LINE__), 0) )
#define EXPLICIT   explicit
#define IVEC_ADD_SUB (   vect,
  element,
  opsize 
)
Value:
inline I##vect##vec##element operator+ (const I##vect##vec##element &a, const I##vect##vec##element &b) \
{ return _m_padd##opsize( a,b); } \
inline I##vect##vec##element operator- (const I##vect##vec##element &a, const I##vect##vec##element &b) \
{ return _m_psub##opsize( a,b); }
_Tuple_type< _Rank > operator+(const _Tuple_type< _Rank > &_Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
Definition: amp.h:822
_Tuple_type< _Rank > operator-(const _Tuple_type< _Rank > &_Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
Definition: amp.h:830
#define I
Definition: complex.h:70
#define IVEC_LOGICALS (   vect,
  element 
)
Value:
inline I##vect##vec##element operator& (const I##vect##vec##element &a, const I##vect##vec##element &b) \
{ return _m_pand( a,b); } \
inline I##vect##vec##element operator| (const I##vect##vec##element &a, const I##vect##vec##element &b) \
{ return _m_por( a,b); } \
inline I##vect##vec##element operator^ (const I##vect##vec##element &a, const I##vect##vec##element &b) \
{ return _m_pxor( a,b); } \
inline I##vect##vec##element andnot (const I##vect##vec##element &a, const I##vect##vec##element &b) \
{ return _m_pandn( a,b); }
__m64 _m_pand(__m64 _MM1, __m64 _MM2)
M64 andnot(const M64 &a, const M64 &b)
Definition: ivec.h:122
__m64 _m_por(__m64 _MM1, __m64 _MM2)
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
M64 operator|(const M64 &a, const M64 &b)
Definition: ivec.h:120
M64 operator^(const M64 &a, const M64 &b)
Definition: ivec.h:121
M64 operator&(const M64 &a, const M64 &b)
Definition: ivec.h:119
__m64 _m_pxor(__m64 _MM1, __m64 _MM2)
#define I
Definition: complex.h:70
#define IVEC_SELECT (   vect12,
  vect34,
  element,
  selop 
)
Value:
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 & c ) | \
(I##vect34##vec##element)((_m_pandn(mask, d )))); \
}
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
return(_PAIR_TYPE(_FwdIt)(_First, _First))
#define I
Definition: complex.h:70

Function Documentation

_CRTIMP void __cdecl _wassert ( _In_z_ const wchar_t _Message,
_In_z_ const wchar_t _File,
_In_ unsigned  _Line 
)
M64 andnot ( const M64 a,
const M64 b 
)
inline
122 { return _m_pandn(a,b); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
I32vec2 cmpeq ( const I32vec2 a,
const I32vec2 b 
)
inline
186 { return _m_pcmpeqd(a,b); }
__m64 _m_pcmpeqd(__m64 _MM1, __m64 _MM2)
Is32vec2 cmpeq ( const Is32vec2 a,
const Is32vec2 b 
)
inline
253 { return _m_pcmpeqd(a,b); }
__m64 _m_pcmpeqd(__m64 _MM1, __m64 _MM2)
Iu32vec2 cmpeq ( const Iu32vec2 a,
const Iu32vec2 b 
)
inline
323 { return _m_pcmpeqd(a,b); }
__m64 _m_pcmpeqd(__m64 _MM1, __m64 _MM2)
I16vec4 cmpeq ( const I16vec4 a,
const I16vec4 b 
)
inline
365 { return _m_pcmpeqw(a,b); }
__m64 _m_pcmpeqw(__m64 _MM1, __m64 _MM2)
Is16vec4 cmpeq ( const Is16vec4 a,
const Is16vec4 b 
)
inline
437 { return _m_pcmpeqw(a,b); }
__m64 _m_pcmpeqw(__m64 _MM1, __m64 _MM2)
Iu16vec4 cmpeq ( const Iu16vec4 a,
const Iu16vec4 b 
)
inline
518 { return _m_pcmpeqw(a,b); }
__m64 _m_pcmpeqw(__m64 _MM1, __m64 _MM2)
I8vec8 cmpeq ( const I8vec8 a,
const I8vec8 b 
)
inline
556 { return _m_pcmpeqb(a,b); }
__m64 _m_pcmpeqb(__m64 _MM1, __m64 _MM2)
Is8vec8 cmpeq ( const Is8vec8 a,
const Is8vec8 b 
)
inline
620 { return _m_pcmpeqb(a,b); }
__m64 _m_pcmpeqb(__m64 _MM1, __m64 _MM2)
Iu8vec8 cmpeq ( const Iu8vec8 a,
const Iu8vec8 b 
)
inline
690 { return _m_pcmpeqb(a,b); }
__m64 _m_pcmpeqb(__m64 _MM1, __m64 _MM2)
Is32vec2 cmpge ( const Is32vec2 a,
const Is32vec2 b 
)
inline
258 { return _m_pandn(_m_pcmpgtd(b,a), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpgtd(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Is16vec4 cmpge ( const Is16vec4 a,
const Is16vec4 b 
)
inline
442 { return _m_pandn(_m_pcmpgtw(b,a), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpgtw(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Is8vec8 cmpge ( const Is8vec8 a,
const Is8vec8 b 
)
inline
625 { return _m_pandn(_m_pcmpgtb(b,a), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpgtb(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Is32vec2 cmpgt ( const Is32vec2 a,
const Is32vec2 b 
)
inline
255 { return _m_pcmpgtd(a,b); }
__m64 _m_pcmpgtd(__m64 _MM1, __m64 _MM2)
Is16vec4 cmpgt ( const Is16vec4 a,
const Is16vec4 b 
)
inline
439 { return _m_pcmpgtw(a,b); }
__m64 _m_pcmpgtw(__m64 _MM1, __m64 _MM2)
Is8vec8 cmpgt ( const Is8vec8 a,
const Is8vec8 b 
)
inline
622 { return _m_pcmpgtb(a,b); }
__m64 _m_pcmpgtb(__m64 _MM1, __m64 _MM2)
Is32vec2 cmple ( const Is32vec2 a,
const Is32vec2 b 
)
inline
257 { return _m_pandn(_m_pcmpgtd(a,b), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpgtd(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Is16vec4 cmple ( const Is16vec4 a,
const Is16vec4 b 
)
inline
441 { return _m_pandn(_m_pcmpgtw(a,b), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpgtw(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Is8vec8 cmple ( const Is8vec8 a,
const Is8vec8 b 
)
inline
624 { return _m_pandn(_m_pcmpgtb(a,b), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpgtb(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Is32vec2 cmplt ( const Is32vec2 a,
const Is32vec2 b 
)
inline
256 { return _m_pcmpgtd(b,a); }
__m64 _m_pcmpgtd(__m64 _MM1, __m64 _MM2)
Is16vec4 cmplt ( const Is16vec4 a,
const Is16vec4 b 
)
inline
440 { return _m_pcmpgtw(b,a); }
__m64 _m_pcmpgtw(__m64 _MM1, __m64 _MM2)
Is8vec8 cmplt ( const Is8vec8 a,
const Is8vec8 b 
)
inline
623 { return _m_pcmpgtb(b,a); }
__m64 _m_pcmpgtb(__m64 _MM1, __m64 _MM2)
I32vec2 cmpneq ( const I32vec2 a,
const I32vec2 b 
)
inline
187 { return _m_pandn(_m_pcmpeqd(a,b), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpeqd(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Is32vec2 cmpneq ( const Is32vec2 a,
const Is32vec2 b 
)
inline
254 { return _m_pandn(_m_pcmpeqd(a,b), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpeqd(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Iu32vec2 cmpneq ( const Iu32vec2 a,
const Iu32vec2 b 
)
inline
324 { return _m_pandn(_m_pcmpeqd(a,b), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpeqd(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
I16vec4 cmpneq ( const I16vec4 a,
const I16vec4 b 
)
inline
366 { return _m_pandn(_m_pcmpeqw(a,b), _mmx_all_ones); }
__m64 _m_pcmpeqw(__m64 _MM1, __m64 _MM2)
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Is16vec4 cmpneq ( const Is16vec4 a,
const Is16vec4 b 
)
inline
438 { return _m_pandn(_m_pcmpeqw(a,b), _mmx_all_ones); }
__m64 _m_pcmpeqw(__m64 _MM1, __m64 _MM2)
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Iu16vec4 cmpneq ( const Iu16vec4 a,
const Iu16vec4 b 
)
inline
519 { return _m_pandn(_m_pcmpeqw(a,b), _mmx_all_ones); }
__m64 _m_pcmpeqw(__m64 _MM1, __m64 _MM2)
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
I8vec8 cmpneq ( const I8vec8 a,
const I8vec8 b 
)
inline
557 { return _m_pandn(_m_pcmpeqb(a,b), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpeqb(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Is8vec8 cmpneq ( const Is8vec8 a,
const Is8vec8 b 
)
inline
621 { return _m_pandn(_m_pcmpeqb(a,b), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpeqb(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
Iu8vec8 cmpneq ( const Iu8vec8 a,
const Iu8vec8 b 
)
inline
691 { return _m_pandn(_m_pcmpeqb(a,b), _mmx_all_ones); }
__m64 _m_pandn(__m64 _MM1, __m64 _MM2)
__m64 _m_pcmpeqb(__m64 _MM1, __m64 _MM2)
#define _mmx_all_ones
Definition: ivec.h:117
static void empty ( void  )
inlinestatic
829 { _m_empty(); }
void _m_empty(void)
Is32vec2 mul_add ( const Is16vec4 a,
const Is16vec4 b 
)
inline
450 { return _m_pmaddwd(a,b);}
__m64 _m_pmaddwd(__m64 _MM1, __m64 _MM2)
Is16vec4 mul_high ( const Is16vec4 a,
const Is16vec4 b 
)
inline
449 { return _m_pmulhw(a,b); }
__m64 _m_pmulhw(__m64 _MM1, __m64 _MM2)
M64 operator& ( const M64 a,
const M64 b 
)
inline
119 { return _m_pand( a,b); }
__m64 _m_pand(__m64 _MM1, __m64 _MM2)
I16vec4 operator* ( const I16vec4 a,
const I16vec4 b 
)
inline
364 { return _m_pmullw(a,b); }
__m64 _m_pmullw(__m64 _MM1, __m64 _MM2)
Is16vec4 operator* ( const Is16vec4 a,
const Is16vec4 b 
)
inline
434 { return _m_pmullw(a,b); }
__m64 _m_pmullw(__m64 _MM1, __m64 _MM2)
Iu16vec4 operator* ( const Iu16vec4 a,
const Iu16vec4 b 
)
inline
517 { return _m_pmullw(a,b); }
__m64 _m_pmullw(__m64 _MM1, __m64 _MM2)
M64 operator^ ( const M64 a,
const M64 b 
)
inline
121 { return _m_pxor(a,b); }
__m64 _m_pxor(__m64 _MM1, __m64 _MM2)
M64 operator| ( const M64 a,
const M64 b 
)
inline
120 { return _m_por(a,b); }
__m64 _m_por(__m64 _MM1, __m64 _MM2)
Is16vec4 pack_sat ( const Is32vec2 a,
const Is32vec2 b 
)
inline
699 { return _m_packssdw(a,b); }
__m64 _m_packssdw(__m64 _MM1, __m64 _MM2)
Is8vec8 pack_sat ( const Is16vec4 a,
const Is16vec4 b 
)
inline
700 { return _m_packsswb(a,b); }
__m64 _m_packsswb(__m64 _MM1, __m64 _MM2)
Iu8vec8 packu_sat ( const Is16vec4 a,
const Is16vec4 b 
)
inline
701 { return _m_packuswb(a,b); }
__m64 _m_packuswb(__m64 _MM1, __m64 _MM2)
Is16vec4 sat_add ( const Is16vec4 a,
const Is16vec4 b 
)
inline
447 { return _m_paddsw(a,b); }
__m64 _m_paddsw(__m64 _MM1, __m64 _MM2)
Iu16vec4 sat_add ( const Iu16vec4 a,
const Iu16vec4 b 
)
inline
521 { return _m_paddusw(a,b); }
__m64 _m_paddusw(__m64 _MM1, __m64 _MM2)
Is8vec8 sat_add ( const Is8vec8 a,
const Is8vec8 b 
)
inline
630 { return _m_paddsb(a,b); }
__m64 _m_paddsb(__m64 _MM1, __m64 _MM2)
Iu8vec8 sat_add ( const Iu8vec8 a,
const Iu8vec8 b 
)
inline
696 { return _m_paddusb(a,b); }
__m64 _m_paddusb(__m64 _MM1, __m64 _MM2)
Is16vec4 sat_sub ( const Is16vec4 a,
const Is16vec4 b 
)
inline
448 { return _m_psubsw(a,b); }
__m64 _m_psubsw(__m64 _MM1, __m64 _MM2)
Iu16vec4 sat_sub ( const Iu16vec4 a,
const Iu16vec4 b 
)
inline
522 { return _m_psubusw(a,b); }
__m64 _m_psubusw(__m64 _MM1, __m64 _MM2)
Is8vec8 sat_sub ( const Is8vec8 a,
const Is8vec8 b 
)
inline
631 { return _m_psubsb(a,b); }
__m64 _m_psubsb(__m64 _MM1, __m64 _MM2)
Iu8vec8 sat_sub ( const Iu8vec8 a,
const Iu8vec8 b 
)
inline
697 { return _m_psubusb(a,b); }
__m64 _m_psubusb(__m64 _MM1, __m64 _MM2)
I32vec2 unpack_high ( const I32vec2 a,
const I32vec2 b 
)
inline
190 {return _m_punpckhdq(a,b); }
__m64 _m_punpckhdq(__m64 _MM1, __m64 _MM2)
Is32vec2 unpack_high ( const Is32vec2 a,
const Is32vec2 b 
)
inline
261 { return _m_punpckhdq(a,b); }
__m64 _m_punpckhdq(__m64 _MM1, __m64 _MM2)
Iu32vec2 unpack_high ( const Iu32vec2 a,
const Iu32vec2 b 
)
inline
327 {return _m_punpckhdq(a,b); }
__m64 _m_punpckhdq(__m64 _MM1, __m64 _MM2)
I16vec4 unpack_high ( const I16vec4 a,
const I16vec4 b 
)
inline
369 { return _m_punpckhwd(a,b); }
__m64 _m_punpckhwd(__m64 _MM1, __m64 _MM2)
Is16vec4 unpack_high ( const Is16vec4 a,
const Is16vec4 b 
)
inline
445 { return _m_punpckhwd(a,b); }
__m64 _m_punpckhwd(__m64 _MM1, __m64 _MM2)
Iu16vec4 unpack_high ( const Iu16vec4 a,
const Iu16vec4 b 
)
inline
525 { return _m_punpckhwd(a,b); }
__m64 _m_punpckhwd(__m64 _MM1, __m64 _MM2)
I8vec8 unpack_high ( const I8vec8 a,
const I8vec8 b 
)
inline
560 { return _m_punpckhbw(a,b); }
__m64 _m_punpckhbw(__m64 _MM1, __m64 _MM2)
Is8vec8 unpack_high ( const Is8vec8 a,
const Is8vec8 b 
)
inline
628 { return _m_punpckhbw(a,b); }
__m64 _m_punpckhbw(__m64 _MM1, __m64 _MM2)
Iu8vec8 unpack_high ( const Iu8vec8 a,
const Iu8vec8 b 
)
inline
694 { return _m_punpckhbw(a,b); }
__m64 _m_punpckhbw(__m64 _MM1, __m64 _MM2)
I32vec2 unpack_low ( const I32vec2 a,
const I32vec2 b 
)
inline
189 {return _m_punpckldq(a,b); }
__m64 _m_punpckldq(__m64 _MM1, __m64 _MM2)
Is32vec2 unpack_low ( const Is32vec2 a,
const Is32vec2 b 
)
inline
260 { return _m_punpckldq(a,b); }
__m64 _m_punpckldq(__m64 _MM1, __m64 _MM2)
Iu32vec2 unpack_low ( const Iu32vec2 a,
const Iu32vec2 b 
)
inline
326 {return _m_punpckldq(a,b); }
__m64 _m_punpckldq(__m64 _MM1, __m64 _MM2)
I16vec4 unpack_low ( const I16vec4 a,
const I16vec4 b 
)
inline
368 { return _m_punpcklwd(a,b); }
__m64 _m_punpcklwd(__m64 _MM1, __m64 _MM2)
Is16vec4 unpack_low ( const Is16vec4 a,
const Is16vec4 b 
)
inline
444 { return _m_punpcklwd(a,b); }
__m64 _m_punpcklwd(__m64 _MM1, __m64 _MM2)
Iu16vec4 unpack_low ( const Iu16vec4 a,
const Iu16vec4 b 
)
inline
524 { return _m_punpcklwd(a,b); }
__m64 _m_punpcklwd(__m64 _MM1, __m64 _MM2)
I8vec8 unpack_low ( const I8vec8 a,
const I8vec8 b 
)
inline
559 { return _m_punpcklbw(a,b); }
__m64 _m_punpcklbw(__m64 _MM1, __m64 _MM2)
Is8vec8 unpack_low ( const Is8vec8 a,
const Is8vec8 b 
)
inline
627 { return _m_punpcklbw(a,b); }
__m64 _m_punpcklbw(__m64 _MM1, __m64 _MM2)
Iu8vec8 unpack_low ( const Iu8vec8 a,
const Iu8vec8 b 
)
inline
693 { return _m_punpcklbw(a,b); }
__m64 _m_punpcklbw(__m64 _MM1, __m64 _MM2)

Variable Documentation

const { ... } __mmx_all_ones_cheat
Initial value:
=
{0xffffffffffffffff}
__int64 m1
__m64 m2