ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dvec.h File Reference
#include <emmintrin.h>
#include <assert.h>
#include <fvec.h>
#include <crtdefs.h>

Go to the source code of this file.

Data Structures

class  M128
class  I128vec1
class  I64vec2
class  I32vec4
class  Is32vec4
class  Iu32vec4
class  I16vec8
class  Is16vec8
class  Iu16vec8
class  I8vec16
class  Is8vec16
class  Iu8vec16
class  F64vec2

Defines

#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)))); }

Functions

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)

Generated on Sun May 27 2012 05:29:08 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.