23 #ifndef _DVEC_H_INCLUDED 
   24 #define _DVEC_H_INCLUDED 
   27 #if !defined __cplusplus 
   28     #error ERROR: This file is only supported in C++ compilations! 
   31 #if defined (_M_CEE_PURE) 
   32     #error ERROR: This file is not supported in the pure mode! 
   41         #define _VEC_ASSERT(_Expression) ((void)0) 
   53         #define _VEC_ASSERT(_Expression) (void)( (!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression), _CRT_WIDE(__FILE__), __LINE__), 0) ) 
   57 #pragma pack(push,_CRT_PACKING) 
   60 #if defined (_ENABLE_VEC_DEBUG) 
   72 #define _f64vec2_abs_mask ((F64vec2)__f64vec2_abs_mask_cheat.m) 
   88 #define _MM_16UB(element,vector) (*((unsigned char*)&##vector + ##element)) 
   89 #define _MM_16B(element,vector) (*((signed char*)&##vector + ##element)) 
   91 #define _MM_8UW(element,vector) (*((unsigned short*)&##vector + ##element)) 
   92 #define _MM_8W(element,vector) (*((short*)&##vector + ##element)) 
   94 #define _MM_4UDW(element,vector) (*((unsigned int*)&##vector + ##element)) 
   95 #define _MM_4DW(element,vector) (*((int*)&##vector + ##element)) 
   97 #define _MM_2QW(element,vector) (*((__int64*)&##vector + ##element)) 
  102 #pragma warning(push) 
  103 #pragma warning(disable : 4640) 
  294 #if defined (_ENABLE_VEC_DEBUG) 
  339     Iu32vec4(
unsigned int _Ui3, 
unsigned int _Ui2, 
unsigned int _Ui1, 
unsigned int _Ui0)
 
  340         : 
I32vec4(_Ui3, _Ui2, _Ui1, _Ui0) { }
 
  364 #if defined (_ENABLE_VEC_DEBUG) 
  406     I16vec8(
short _S7, 
short _S6, 
short _S5, 
short _S4, 
short _S3, 
short _S2, 
short _S1, 
short _S0)
 
  449     Is16vec8(
signed short _S7, 
signed short _S6, 
signed short _S5,
 
  450         signed short _S4, 
signed short _S3, 
signed short _S2,
 
  451         signed short _S1, 
signed short _S0)
 
  452         : 
I16vec8(_S7, _S6, _S5, _S4, _S3, _S2, _S1, _S0) { }
 
  478 #if defined (_ENABLE_VEC_DEBUG) 
  482         _Os << 
"[7]:" << 
_MM_8W(7,_A)
 
  483             << 
" [6]:" << 
_MM_8W(6,_A)
 
  484             << 
" [5]:" << 
_MM_8W(5,_A)
 
  485             << 
" [4]:" << 
_MM_8W(4,_A)
 
  486             << 
" [3]:" << 
_MM_8W(3,_A)
 
  487             << 
" [2]:" << 
_MM_8W(2,_A)
 
  488             << 
" [1]:" << 
_MM_8W(1,_A)
 
  489             << 
" [0]:" << 
_MM_8W(0,_A);
 
  539     Iu16vec8(
unsigned short _S7, 
unsigned short _S6, 
unsigned short _S5,
 
  540         unsigned short _S4, 
unsigned short _S3, 
unsigned short _S2,
 
  541         unsigned short _S1, 
unsigned short _S0)
 
  542         : 
I16vec8(_S7, _S6, _S5, _S4, _S3, _S2, _S1, _S0) { }
 
  566 #if defined (_ENABLE_VEC_DEBUG) 
  570         _Os << 
"[7]:"  << (
unsigned short)(
_MM_8UW(7,_A))
 
  571            << 
" [6]:" << (
unsigned short)(
_MM_8UW(6,_A))
 
  572            << 
" [5]:" << (
unsigned short)(
_MM_8UW(5,_A))
 
  573            << 
" [4]:" << (
unsigned short)(
_MM_8UW(4,_A))
 
  574            << 
" [3]:" << (
unsigned short)(
_MM_8UW(3,_A))
 
  575            << 
" [2]:" << (
unsigned short)(
_MM_8UW(2,_A))
 
  576            << 
" [1]:" << (
unsigned short)(
_MM_8UW(1,_A))
 
  577            << 
" [0]:" << (
unsigned short)(
_MM_8UW(0,_A));
 
  620     I8vec16(
char _S15, 
char _S14, 
char _S13, 
char _S12, 
char _S11, 
char _S10,
 
  621         char _S9, 
char _S8, 
char _S7, 
char _S6, 
char _S5, 
char _S4,
 
  622         char _S3, 
char _S2, 
char _S1, 
char _S0)
 
  624         vec = 
_mm_set_epi8(_S15, _S14, _S13, _S12, _S11, _S10, _S9, _S8, _S7, _S6, _S5, _S4, _S3, _S2, _S1, _S0);
 
  655     Is8vec16(
char _S15, 
char _S14, 
char _S13, 
char _S12, 
char _S11, 
char _S10,
 
  656         char _S9, 
char _S8, 
char _S7, 
char _S6, 
char _S5, 
char _S4,
 
  657         char _S3, 
char _S2, 
char _S1, 
char _S0)
 
  658         : 
I8vec16(_S15, _S14, _S13, _S12, _S11, _S10, _S9, _S8,
 
  659         _S7, _S6, _S5, _S4, _S3, _S2, _S1, _S0) { }
 
  673 #if defined (_ENABLE_VEC_DEBUG) 
  677         _Os << 
"[15]:"  << short(
_MM_16B(15,_A))
 
  678             << 
" [14]:" << short(
_MM_16B(14,_A))
 
  679             << 
" [13]:" << short(
_MM_16B(13,_A))
 
  680             << 
" [12]:" << short(
_MM_16B(12,_A))
 
  681             << 
" [11]:" << short(
_MM_16B(11,_A))
 
  682             << 
" [10]:" << short(
_MM_16B(10,_A))
 
  683             << 
" [9]:" << short(
_MM_16B(9,_A))
 
  684             << 
" [8]:" << short(
_MM_16B(8,_A))
 
  685               << 
" [7]:" << short(
_MM_16B(7,_A))
 
  686             << 
" [6]:" << short(
_MM_16B(6,_A))
 
  687             << 
" [5]:" << short(
_MM_16B(5,_A))
 
  688             << 
" [4]:" << short(
_MM_16B(4,_A))
 
  689             << 
" [3]:" << short(
_MM_16B(3,_A))
 
  690             << 
" [2]:" << short(
_MM_16B(2,_A))
 
  691             << 
" [1]:" << short(
_MM_16B(1,_A))
 
  692             << 
" [0]:" << short(
_MM_16B(0,_A));
 
  732     Iu8vec16(
unsigned char _U15, 
unsigned char _U14, 
unsigned char _U13,
 
  733         unsigned char _U12, 
unsigned char _U11, 
unsigned char _U10,
 
  734         unsigned char _U9, 
unsigned char _U8, 
unsigned char _U7,
 
  735         unsigned char _U6, 
unsigned char _U5, 
unsigned char _U4,
 
  736         unsigned char _U3, 
unsigned char _U2, 
unsigned char _U1,
 
  738         : 
I8vec16(_U15, _U14, _U13, _U12, _U11, _U10, _U9, _U8,
 
  739         _U7, _U6, _U5, _U4, _U3, _U2, _U1, _U0) { }
 
  753 #if defined (_ENABLE_VEC_DEBUG) 
  758             << 
" [14]:" << (
unsigned char)(
_MM_16UB(14,_A))
 
  759             << 
" [13]:" << (
unsigned char)(
_MM_16UB(13,_A))
 
  760             << 
" [12]:" << (
unsigned char)(
_MM_16UB(12,_A))
 
  761             << 
" [11]:" << (
unsigned char)(
_MM_16UB(11,_A))
 
  762             << 
" [10]:" << (
unsigned char)(
_MM_16UB(10,_A))
 
  763             << 
" [9]:" << (
unsigned char)(
_MM_16UB(9,_A))
 
  764             << 
" [8]:" << (
unsigned char)(
_MM_16UB(8,_A))
 
  765             << 
" [7]:" << (
unsigned char)(
_MM_16UB(7,_A))
 
  766             << 
" [6]:" << (
unsigned char)(
_MM_16UB(6,_A))
 
  767             << 
" [5]:" << (
unsigned char)(
_MM_16UB(5,_A))
 
  768             << 
" [4]:" << (
unsigned char)(
_MM_16UB(4,_A))
 
  769             << 
" [3]:" << (
unsigned char)(
_MM_16UB(3,_A))
 
  770             << 
" [2]:" << (
unsigned char)(
_MM_16UB(2,_A))
 
  771             << 
" [1]:" << (
unsigned char)(
_MM_16UB(1,_A))
 
  772             << 
" [0]:" << (
unsigned char)(
_MM_16UB(0,_A));
 
  815 #define IVEC128_LOGICALS(vect,element) \ 
  816 inline I##vect##vec##element operator& (const I##vect##vec##element &_A, const I##vect##vec##element &_B) \ 
  817 { return _mm_and_si128( _A,_B); } \ 
  818 inline I##vect##vec##element operator| (const I##vect##vec##element &_A, const I##vect##vec##element &_B) \ 
  819 { return _mm_or_si128( _A,_B); } \ 
  820 inline I##vect##vec##element operator^ (const I##vect##vec##element &_A, const I##vect##vec##element &_B) \ 
  821 { return _mm_xor_si128( _A,_B); } \ 
  822 inline I##vect##vec##element andnot (const I##vect##vec##element &_A, const I##vect##vec##element &_B) \ 
  823 { return _mm_andnot_si128( _A,_B); } 
  829 IVEC128_LOGICALS(u16,8)
 
  830 IVEC128_LOGICALS(s16,8)
 
  831 IVEC128_LOGICALS(32,4)
 
  832 IVEC128_LOGICALS(u32,4)
 
  833 IVEC128_LOGICALS(s32,4)
 
  834 IVEC128_LOGICALS(64,2)
 
  835 IVEC128_LOGICALS(128,1)
 
  836 #undef IVEC128_LOGICALS 
  839 #define IVEC128_ADD_SUB(vect,element,opsize) \ 
  840 inline I##vect##vec##element operator+ (const I##vect##vec##element &_A, const I##vect##vec##element &_B) \ 
  841 { return _mm_add_##opsize( _A,_B); } \ 
  842 inline I##vect##vec##element operator- (const I##vect##vec##element &_A, const I##vect##vec##element &_B) \ 
  843 { return _mm_sub_##opsize( _A,_B); } 
  849 IVEC128_ADD_SUB(u16,8, epi16)
 
  850 IVEC128_ADD_SUB(s16,8, epi16)
 
  851 IVEC128_ADD_SUB(32,4, epi32)
 
  852 IVEC128_ADD_SUB(u32,4, epi32)
 
  853 IVEC128_ADD_SUB(s32,4, epi32)
 
  854 IVEC128_ADD_SUB(64,2, epi64)
 
  855 #undef IVEC128_ADD_SUB 
  866 #define IVEC128_SELECT(vect12,vect34,element,selop)                 \ 
  867     inline I##vect34##vec##element select_##selop (                 \ 
  868         const I##vect12##vec##element &_A,                           \ 
  869         const I##vect12##vec##element &_B,                           \ 
  870         const I##vect34##vec##element &_C,                           \ 
  871         const I##vect34##vec##element &_D)                           \ 
  873     I##vect12##vec##element _Mask = cmp##selop(_A,_B);                 \ 
  874     return ( I##vect34##vec##element (_Mask & _C ) |                  \ 
  875         I##vect34##vec##element ((_mm_andnot_si128(_Mask, _D ))));    \ 
  880 IVEC128_SELECT(8,8,16,eq)
 
  881 IVEC128_SELECT(8,s8,16,neq)
 
  882 IVEC128_SELECT(8,u8,16,neq)
 
  883 IVEC128_SELECT(8,8,16,neq)
 
  885 IVEC128_SELECT(16,s16,8,eq)
 
  886 IVEC128_SELECT(16,u16,8,eq)
 
  887 IVEC128_SELECT(16,16,8,eq)
 
  888 IVEC128_SELECT(16,s16,8,neq)
 
  889 IVEC128_SELECT(16,u16,8,neq)
 
  890 IVEC128_SELECT(16,16,8,neq)
 
  892 IVEC128_SELECT(32,s32,4,eq)
 
  893 IVEC128_SELECT(32,u32,4,eq)
 
  894 IVEC128_SELECT(32,32,4,eq)
 
  895 IVEC128_SELECT(32,s32,4,neq)
 
  896 IVEC128_SELECT(32,u32,4,neq)
 
  897 IVEC128_SELECT(32,32,4,neq)
 
  899 IVEC128_SELECT(s8,s8,16,gt)
 
  900 IVEC128_SELECT(s8,u8,16,gt)
 
  901 IVEC128_SELECT(s8,8,16,gt)
 
  902 IVEC128_SELECT(s8,s8,16,lt)
 
  903 IVEC128_SELECT(s8,u8,16,lt)
 
  904 IVEC128_SELECT(s8,8,16,lt)
 
  906 IVEC128_SELECT(s16,s16,8,gt)
 
  907 IVEC128_SELECT(s16,u16,8,gt)
 
  908 IVEC128_SELECT(s16,16,8,gt)
 
  909 IVEC128_SELECT(s16,s16,8,lt)
 
  910 IVEC128_SELECT(s16,u16,8,lt)
 
  911 IVEC128_SELECT(s16,16,8,lt)
 
  914 #undef IVEC128_SELECT 
  974     #define F64vec2_COMP(op) \ 
  975     friend F64vec2 cmp##op (const F64vec2 &_A, const F64vec2 &_B) { return _mm_cmp##op##_pd(_A,_B); } 
  999     #define F64vec2_COMI(op) \ 
 1000     friend int comi##op (const F64vec2 &_A, const F64vec2 &_B) { return _mm_comi##op##_sd(_A,_B); } 
 1010     #define F64vec2_UCOMI(op) \ 
 1011     friend int ucomi##op (const F64vec2 &_A, const F64vec2 &_B) { return _mm_ucomi##op##_sd(_A,_B); } 
 1018     #undef F64vec2_UCOMI 
 1021 #if defined (_ENABLE_VEC_DEBUG) 
 1026       double *_Dp = (
double*)&_A;
 
 1027       _Os <<   
"[1]:" << *(_Dp+1)
 
 1037         double *_Dp = (
double*)&vec;
 
 1045         double *_Dp = (
double*)&vec;
 
 1080 #define F64vec2_SELECT(op) \ 
 1081 inline F64vec2 select_##op (const F64vec2 &_A, const F64vec2 &_B, const F64vec2 &_C, const F64vec2 &_D) \ 
 1083     F64vec2 _Mask = _mm_cmp##op##_pd(_A,_B);                   \ 
 1084     return( (_Mask & _C) | F64vec2((_mm_andnot_pd(_Mask,_D)))); \ 
 1094 #undef F64vec2_SELECT 
 1097 inline int F64vec2ToInt(
const F64vec2 &_A)
 
 1147     F32vec8(
float _F7, 
float _F6, 
float _F5, 
float _F4, 
float _F3, 
float _F2, 
float _F1, 
float _F0)
 
 1229 #pragma warning(push) 
 1230 #pragma warning(disable:4640) 
 1231         static const F32vec8 fvecf0pt5(0.5f);
 
 1232         static const F32vec8 fvecf3pt0(3.0f);
 
 1233 #pragma warning(pop) 
 1235         return (fvecf0pt5 * _Ra0) * (fvecf3pt0 - (_A * _Ra0) * _Ra0);
 
 1274         } __f32vec8_abs_mask = { 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff,
 
 1275                                  0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff};
 
 1280 #if defined (_ENABLE_VEC_DEBUG) 
 1285         float *_Fp = (
float*) &_A;
 
 1286         _Os <<  
"[7]:" << *(_Fp+7)
 
 1287            << 
" [6]:" << *(_Fp+6)
 
 1288            << 
" [5]:" << *(_Fp+5)
 
 1289            << 
" [4]:" << *(_Fp+4)
 
 1290            << 
" [3]:" << *(_Fp+3)
 
 1291            << 
" [2]:" << *(_Fp+2)
 
 1292            << 
" [1]:" << *(_Fp+1)
 
 1303         float *_Fp = (
float*)&vec;
 
 1312         float *_Fp = (
float*)&vec;
 
 1414     F64vec4(
double _D3, 
double _D2, 
double _D1, 
double _D0)
 
 1492         } __f64vec4_abs_mask = { -1, 0x7fffffff, -1, 0x7fffffff,
 
 1493                                  -1, 0x7fffffff, -1, 0x7fffffff};
 
 1498 #if defined (_ENABLE_VEC_DEBUG) 
 1503         double *_Dp = (
double*) &_A;
 
 1504         _Os <<  
"[3]:" << *(_Dp+3)
 
 1505         << 
" [2]:" << *(_Dp+2)
 
 1506         << 
" [3]:" << *(_Dp+1)
 
 1517         double *_Dp = (
double*)&vec;
 
 1525         double *_Dp = (
double*)&vec;
 
 1618 #undef DVEC_DEFINE_OUTPUT_OPERATORS 
__m128i _mm_sub_epi32(__m128i _A, __m128i _B)
 
I64vec2 operator<<(int _Count)
Definition: dvec.h:196
 
void __cdecl _mm256_storeu_pd(double *, __m256d)
 
__m128i _mm_adds_epi8(__m128i _A, __m128i _B)
 
#define _CMP_NEQ_UQ
Definition: immintrin.h:64
 
friend F32vec8 cmp_ge(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1248
 
__m128i _mm_mulhi_epi16(__m128i _A, __m128i _B)
 
#define _CMP_NGE_US
Definition: immintrin.h:70
 
__m256d __cdecl _mm256_sub_pd(__m256d, __m256d)
 
Is32vec4 & operator>>=(int _Count)
Definition: dvec.h:292
 
friend F64vec4 cmp_le(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1462
 
unsigned short & operator[](int _I)
Definition: dvec.h:590
 
void __cdecl _wassert(_In_z_ const wchar_t *_Message, _In_z_ const wchar_t *_File, _In_ unsigned _Line)
 
I64vec2 sum_abs(const Iu8vec16 &_A, const Iu8vec16 &_B)
Definition: dvec.h:802
 
const unsigned short & operator[](int _I) const 
Definition: dvec.h:583
 
__m128i _mm_xor_si128(__m128i _A, __m128i _B)
 
I16vec8 & operator&=(const M128 &_A)
Definition: dvec.h:415
 
I8vec16 & operator&=(const M128 &_A)
Definition: dvec.h:631
 
I64vec2 & operator<<=(const I64vec2 &_A)
Definition: dvec.h:197
 
Is16vec8 & operator^=(const M128 &_A)
Definition: dvec.h:460
 
__m256d __cdecl _mm256_div_pd(__m256d, __m256d)
 
friend F32vec8 rsqrt(const F32vec8 &_A)
Definition: dvec.h:1211
 
F64vec2 & operator*=(const F64vec2 &_A)
Definition: dvec.h:951
 
M128 operator&(const M128 &_A, const M128 &_B)
Definition: dvec.h:144
 
F32vec8 & operator=(float _F)
Definition: dvec.h:1159
 
Iu8vec16(__m128i _Mm)
Definition: dvec.h:731
 
__m128i _mm_srai_epi32(__m128i _A, int _Count)
 
__m256 __cdecl _mm256_div_ps(__m256, __m256)
 
double & operator[](int _I)
Definition: dvec.h:1041
 
__m256 __cdecl _mm256_rsqrt_ps(__m256)
 
__m256d __cdecl _mm256_cvtps_pd(__m128)
 
__m128i _mm_packs_epi32(__m128i _A, __m128i _B)
 
Iu32vec4 & operator-=(const I32vec4 &_A)
Definition: dvec.h:352
 
__m128i _mm_sra_epi16(__m128i _A, __m128i _Count)
 
F64vec4 & operator+=(const F64vec4 &_A)
Definition: dvec.h:1436
 
I8vec16(__m128i _Mm)
Definition: dvec.h:619
 
__m256d __cdecl _mm256_andnot_pd(__m256d, __m256d)
 
Is16vec8 simd_min(const Is16vec8 &_A, const Is16vec8 &_B)
Definition: dvec.h:528
 
I64vec2 & operator>>=(int _Count)
Definition: dvec.h:202
 
I32vec4 & operator<<=(int _Count)
Definition: dvec.h:251
 
__m128d _mm_loadu_pd(double const *_Dp)
 
friend F32vec8 cmp_neq(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1250
 
Is32vec4 & operator>>=(const M128 &_A)
Definition: dvec.h:291
 
friend F32vec8 cmp_nlt(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1252
 
Is16vec8 & operator*=(const I16vec8 &_A)
Definition: dvec.h:465
 
I8vec16 & operator-=(const I8vec16 &_A)
Definition: dvec.h:637
 
#define _f64vec2_abs_mask
Definition: dvec.h:72
 
Iu32vec4 & operator<<=(const M128 &_A)
Definition: dvec.h:357
 
__m128d _mm_cvtsi32_sd(__m128d _A, int _B)
 
friend F32vec8 cmp_eq(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1240
 
I64vec2 operator*(const Iu32vec4 &_A, const Iu32vec4 &_B)
Definition: dvec.h:391
 
#define _MM_2QW(element, vector)
Definition: dvec.h:97
 
__m256d __cdecl _mm256_set_pd(double, double, double, double)
 
__m256 __cdecl _mm256_loadu_ps(float const *)
 
void __cdecl _mm256_storeu_ps(float *, __m256)
 
__m128i _mm_cmpgt_epi32(__m128i _A, __m128i _B)
 
friend F64vec4 simd_max(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1482
 
F64vec2 F32vec4ToF64vec2(const F32vec4 &_A)
Definition: dvec.h:1105
 
I16vec8()
Definition: dvec.h:404
 
Iu32vec4 operator<<(int _Count)
Definition: dvec.h:356
 
__m256d __cdecl _mm256_and_pd(__m256d, __m256d)
 
const unsigned int & operator[](int _I) const 
Definition: dvec.h:377
 
void __cdecl _mm_maskstore_ps(float *, __m128i, __m128)
 
I64vec2 operator>>(int _Count)
Definition: dvec.h:200
 
I16vec8 operator<<(const M128 &_A)
Definition: dvec.h:425
 
Iu16vec8 & operator>>=(int _Count)
Definition: dvec.h:563
 
Iu16vec8 operator>>(const M128 &_A)
Definition: dvec.h:560
 
__m128d _mm_set1_pd(double _A)
 
friend double add_horizontal(const F64vec4 &_A)
Definition: dvec.h:1445
 
I16vec8 operator<<(int _Count)
Definition: dvec.h:426
 
Is16vec8()
Definition: dvec.h:447
 
__m128d _mm_unpacklo_pd(__m128d _A, __m128d _B)
 
unsigned int & operator[](int _I)
Definition: dvec.h:384
 
const union @89 __f64vec2_abs_mask_cheat
 
__m256 __cdecl _mm256_sqrt_ps(__m256)
 
__m128i _mm_castpd_si128(__m128d)
 
const signed short & operator[](int _I) const 
Definition: dvec.h:495
 
Is16vec8 & operator=(const M128 &_A)
Definition: dvec.h:455
 
const __m128i get_mask128()
Definition: dvec.h:104
 
__m256 __cdecl _mm256_xor_ps(__m256, __m256)
 
I8vec16 & operator|=(const M128 &_A)
Definition: dvec.h:632
 
__m128i _mm_max_epi16(__m128i _A, __m128i _B)
 
#define _VEC_ASSERT(_Expression)
Definition: dvec.h:53
 
__m128d
Definition: emmintrin.h:57
 
__int64 & operator[](int _I)
Definition: dvec.h:212
 
I32vec4 & operator^=(const M128 &_A)
Definition: dvec.h:241
 
friend F64vec4 cmp_ge(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1466
 
Is16vec8 & operator<<=(const M128 &_A)
Definition: dvec.h:470
 
__m128i _mm_unpacklo_epi16(__m128i _A, __m128i _B)
 
const int & operator[](int _I) const 
Definition: dvec.h:307
 
__m256d
Definition: immintrin.h:43
 
Iu16vec8 & operator&=(const M128 &_A)
Definition: dvec.h:547
 
I32vec4 & operator=(const M128 &_A)
Definition: dvec.h:236
 
void __cdecl _mm256_stream_ps(float *, __m256)
 
Is32vec4(int _I3, int _I2, int _I1, int _I0)
Definition: dvec.h:269
 
__m256d __cdecl _mm256_loadu_pd(double const *)
 
friend F64vec2 operator-(const F64vec2 &_A, const F64vec2 &_B)
Definition: dvec.h:945
 
__m128i _mm_add_epi64(__m128i _A, __m128i _B)
 
const unsigned char & operator[](int _I) const 
Definition: dvec.h:778
 
double _mm_cvtsd_f64(__m128d _A)
 
friend F64vec4 cmp_lt(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1460
 
#define _CMP_NLT_US
Definition: immintrin.h:65
 
Is32vec4 cmplt(const Is32vec4 &_A, const Is32vec4 &_B)
Definition: dvec.h:325
 
#define _CMP_EQ_OQ
Definition: immintrin.h:60
 
__m128i _mm_set1_epi64x(__int64 i)
 
__m128i _mm_srli_epi16(__m128i _A, int _Count)
 
uint_2 operator<<(const uint_2 &_Lhs, const uint_2 &_Rhs) __GPU
Definition: amp_short_vectors.h:22866
 
__m128d _mm_shuffle_pd(__m128d _A, __m128d _B, int _I)
 
__m128d m
Definition: dvec.h:69
 
__m128 __cdecl _mm_maskload_ps(float const *, __m128i)
 
F64vec4 & operator/=(const F64vec4 &_A)
Definition: dvec.h:1439
 
const float & operator[](int _I) const 
Definition: dvec.h:1299
 
Is16vec8 & operator|=(const M128 &_A)
Definition: dvec.h:459
 
I16vec8 & operator-=(const I16vec8 &_A)
Definition: dvec.h:421
 
F64vec2 & operator|=(const F64vec2 &_A)
Definition: dvec.h:954
 
I64vec2()
Definition: dvec.h:173
 
__m128i _mm_cmplt_epi8(__m128i _A, __m128i _B)
 
__m128i _mm_set_epi16(short _W7, short _W6, short _W5, short _W4, short _W3, short _W2, short _W1, short _W0)
 
__m128i _mm_packs_epi16(__m128i _A, __m128i _B)
 
friend F64vec4 abs(const F64vec4 &_A)
Definition: dvec.h:1486
 
Iu32vec4(__m128i _Mm)
Definition: dvec.h:338
 
__m256 __cdecl _mm256_permute_ps(__m256, int)
 
F32vec8 & operator&=(const F32vec8 &_A)
Definition: dvec.h:1189
 
__m128i _mm_add_epi8(__m128i _A, __m128i _B)
 
I8vec16 & operator+=(const I8vec16 &_A)
Definition: dvec.h:636
 
__m256 __cdecl _mm256_add_ps(__m256, __m256)
 
F32vec8 & operator/=(const F32vec8 &_A)
Definition: dvec.h:1188
 
__m128d _mm_set_pd(double _Z, double _Y)
 
I8vec16 & operator=(const M128 &_A)
Definition: dvec.h:628
 
__m128i _mm_srl_epi32(__m128i _A, __m128i _Count)
 
Is16vec8(__m128i _Mm)
Definition: dvec.h:448
 
Is16vec8 operator<<(const M128 &_A)
Definition: dvec.h:468
 
Iu8vec16 & operator^=(const M128 &_A)
Definition: dvec.h:747
 
I32vec4 & operator&=(const M128 &_A)
Definition: dvec.h:239
 
__m256d __cdecl _mm256_permute_pd(__m256d, int)
 
#define F64vec2_UCOMI(op)
 
#define _MM_8UW(element, vector)
Definition: dvec.h:91
 
Is32vec4 & operator+=(const I32vec4 &_A)
Definition: dvec.h:280
 
#define _MM_8W(element, vector)
Definition: dvec.h:92
 
M128 & operator^=(const M128 &_A)
Definition: dvec.h:140
 
__m128i _mm_sra_epi32(__m128i _A, __m128i _Count)
 
F64vec2_COMI(eq) F64vec2_COMI(lt) F64vec2_COMI(le) F64vec2_COMI(gt) F64vec2_COMI(ge) F64vec2_COMI(neq) F64vec2_UCOMI(eq) F64vec2_UCOMI(lt) F64vec2_UCOMI(le) F64vec2_UCOMI(gt) F64vec2_UCOMI(ge) F64vec2_UCOMI(neq) const double &operator[](int _I) const 
Definition: dvec.h:1001
 
F64vec4(double _D)
Definition: dvec.h:1420
 
I64vec2 unpack_high(const I64vec2 &_A, const I64vec2 &_B)
Definition: dvec.h:223
 
Is16vec8 mul_high(const Is16vec8 &_A, const Is16vec8 &_B)
Definition: dvec.h:521
 
__m256d __cdecl _mm256_mul_pd(__m256d, __m256d)
 
Iu8vec16(unsigned char _U15, unsigned char _U14, unsigned char _U13, unsigned char _U12, unsigned char _U11, unsigned char _U10, unsigned char _U9, unsigned char _U8, unsigned char _U7, unsigned char _U6, unsigned char _U5, unsigned char _U4, unsigned char _U3, unsigned char _U2, unsigned char _U1, unsigned char _U0)
Definition: dvec.h:732
 
F64vec4 & operator^=(const F64vec4 &_A)
Definition: dvec.h:1442
 
__m128i _mm_srli_epi32(__m128i _A, int _Count)
 
F32vec8 & operator^=(const F32vec8 &_A)
Definition: dvec.h:1191
 
friend F64vec4 cmp_neq(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1468
 
friend F32vec8 rcp_nr(const F32vec8 &_A)
Definition: dvec.h:1217
 
Is32vec4 & operator<<=(int _Count)
Definition: dvec.h:287
 
Iu32vec4 operator>>(int _Count)
Definition: dvec.h:360
 
friend F32vec8 cmp_lt(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1242
 
__m128i _mm_set_epi32(int _I3, int _I2, int _I1, int _I0)
 
I32vec4 & operator+=(const I32vec4 &_A)
Definition: dvec.h:244
 
F64vec2 & operator^=(const F64vec2 &_A)
Definition: dvec.h:955
 
__m128i _mm_sll_epi16(__m128i _A, __m128i _Count)
 
__m128i _mm_avg_epu16(__m128i _A, __m128i _B)
 
F64vec2()
Definition: dvec.h:924
 
#define _MM_16UB(element, vector)
Definition: dvec.h:88
 
Is16vec8 & operator&=(const M128 &_A)
Definition: dvec.h:458
 
F64vec2 & operator/=(const F64vec2 &_A)
Definition: dvec.h:952
 
F32vec8 select_lt(const F32vec8 &_A, const F32vec8 &_B, const F32vec8 &_C, const F32vec8 &_D)
Definition: dvec.h:1368
 
__m128i _mm_min_epi16(__m128i _A, __m128i _B)
 
F32vec8 select_ge(const F32vec8 &_A, const F32vec8 &_B, const F32vec8 &_C, const F32vec8 &_D)
Definition: dvec.h:1377
 
friend F64vec4 cmp_ngt(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1474
 
F32vec8(__m256 _M)
Definition: dvec.h:1144
 
friend F64vec4 cmp_eq(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1458
 
friend F64vec4 operator^(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1428
 
I16vec8(short _S7, short _S6, short _S5, short _S4, short _S3, short _S2, short _S1, short _S0)
Definition: dvec.h:406
 
__m256i __cdecl _mm256_castpd_si256(__m256d)
 
#define _CMP_LT_OS
Definition: immintrin.h:61
 
__m128i _mm_unpacklo_epi32(__m128i _A, __m128i _B)
 
Iu32vec4()
Definition: dvec.h:337
 
friend F32vec8 simd_min(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1262
 
Iu8vec16 & operator=(const M128 &_A)
Definition: dvec.h:742
 
Iu16vec8 & operator-=(const I16vec8 &_A)
Definition: dvec.h:552
 
__m128i _mm_adds_epu8(__m128i _A, __m128i _B)
 
friend F64vec4 operator*(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1433
 
I16vec8 & operator|=(const M128 &_A)
Definition: dvec.h:416
 
Iu8vec16 packu_sat(const Is16vec8 &_A, const Is16vec8 &_B)
Definition: dvec.h:812
 
F64vec4 F32vec4ToF64vec4(const F32vec4 &_A)
Definition: dvec.h:1611
 
I64vec2(__m128i _Mm)
Definition: dvec.h:174
 
I64vec2 & operator=(const M128 &_A)
Definition: dvec.h:183
 
friend F64vec4 operator/(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1434
 
friend F64vec2 operator+(const F64vec2 &_A, const F64vec2 &_B)
Definition: dvec.h:944
 
F32vec8(float _F7, float _F6, float _F5, float _F4, float _F3, float _F2, float _F1, float _F0)
Definition: dvec.h:1147
 
friend F64vec4 operator|(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1427
 
friend F32vec8 operator&(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1175
 
__m128 _mm_cvtpd_ps(__m128d _A)
 
#define _CMP_NGT_US
Definition: immintrin.h:72
 
__m128i _mm_castps_si128(__m128)
 
#define _CMP_GT_OS
Definition: immintrin.h:76
 
__m128i _mm_sll_epi32(__m128i _A, __m128i _Count)
 
Is16vec8 pack_sat(const Is32vec4 &_A, const Is32vec4 &_B)
Definition: dvec.h:810
 
Is32vec4 & operator-=(const I32vec4 &_A)
Definition: dvec.h:281
 
I8vec16(char _S15, char _S14, char _S13, char _S12, char _S11, char _S10, char _S9, char _S8, char _S7, char _S6, char _S5, char _S4, char _S3, char _S2, char _S1, char _S0)
Definition: dvec.h:620
 
__m128i _mm_unpackhi_epi16(__m128i _A, __m128i _B)
 
Iu8vec16 & operator+=(const I8vec16 &_A)
Definition: dvec.h:750
 
M128(__m128i _Mm)
Definition: dvec.h:133
 
__m256d __cdecl _mm256_sqrt_pd(__m256d)
 
friend F64vec2 operator^(const F64vec2 &_A, const F64vec2 &_B)
Definition: dvec.h:941
 
__m128i _mm_slli_epi16(__m128i _A, int _Count)
 
Is8vec16(char _S15, char _S14, char _S13, char _S12, char _S11, char _S10, char _S9, char _S8, char _S7, char _S6, char _S5, char _S4, char _S3, char _S2, char _S1, char _S0)
Definition: dvec.h:655
 
int _mm_movemask_pd(__m128d _A)
 
__m256 __cdecl _mm256_sub_ps(__m256, __m256)
 
int _mm_cvttsd_si32(__m128d _A)
 
__m128i _mm_sad_epu8(__m128i _A, __m128i _B)
 
F32vec8 & operator*=(const F32vec8 &_A)
Definition: dvec.h:1187
 
friend F32vec8 andnot(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1202
 
__m128i _mm_max_epu8(__m128i _A, __m128i _B)
 
Iu16vec8 & operator>>=(const M128 &_A)
Definition: dvec.h:562
 
I64vec2 operator>>(const I64vec2 &_A)
Definition: dvec.h:199
 
void store_nta(double *_P, F64vec2 &_A)
Definition: dvec.h:1077
 
Is32vec4(__m128i _Mm)
Definition: dvec.h:268
 
int i[4]
Definition: dvec.h:68
 
I8vec16 & operator^=(const M128 &_A)
Definition: dvec.h:633
 
__m256 __cdecl _mm256_and_ps(__m256, __m256)
 
Iu16vec8 & operator*=(const I16vec8 &_A)
Definition: dvec.h:553
 
F64vec4()
Definition: dvec.h:1408
 
friend F64vec4 operator+(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1431
 
int move_mask(const F64vec2 &_A)
Definition: dvec.h:1061
 
#define IVEC128_SELECT(vect12, vect34, element, selop)
Definition: dvec.h:866
 
F64vec4 & operator&=(const F64vec4 &_A)
Definition: dvec.h:1440
 
I32vec4 & operator-=(const I32vec4 &_A)
Definition: dvec.h:245
 
friend F32vec8 cmp_nge(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1258
 
F32vec8 & operator-=(const F32vec8 &_A)
Definition: dvec.h:1186
 
__m256 vec
Definition: dvec.h:1136
 
#define _In_z_
Definition: sal.h:310
 
Is16vec8 simd_max(const Is16vec8 &_A, const Is16vec8 &_B)
Definition: dvec.h:527
 
#define _In_
Definition: sal.h:305
 
friend F32vec8 operator*(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1182
 
_N wchar_t * _S1
Definition: wchar.h:163
 
#define F64vec2_SELECT(op)
Definition: dvec.h:1080
 
__m128d _mm_add_pd(__m128d _A, __m128d _B)
 
__m128d _mm_or_pd(__m128d _A, __m128d _B)
 
F64vec2(double _D)
Definition: dvec.h:933
 
Iu16vec8(__m128i _Mm)
Definition: dvec.h:538
 
I64vec2 unpack_low(const I64vec2 &_A, const I64vec2 &_B)
Definition: dvec.h:222
 
int __cdecl _mm256_movemask_pd(__m256d)
 
Is8vec16 & operator=(const M128 &_A)
Definition: dvec.h:662
 
Is16vec8 operator>>(int _Count)
Definition: dvec.h:474
 
__m256 __cdecl _mm256_movehdup_ps(__m256)
 
void __cdecl _mm256_maskstore_pd(double *, __m256i, __m256d)
 
F32vec4 F64vec2ToF32vec4(const F64vec2 &_A)
Definition: dvec.h:1111
 
const double & operator[](int _I) const 
Definition: dvec.h:1513
 
F32vec8 select_eq(const F32vec8 &_A, const F32vec8 &_B, const F32vec8 &_C, const F32vec8 &_D)
Definition: dvec.h:1365
 
__m128i _mm_mul_epu32(__m128i _A, __m128i _B)
 
__m256d __cdecl _mm256_unpacklo_pd(__m256d, __m256d)
 
__m128i _mm_min_epu8(__m128i _A, __m128i _B)
 
__m256d __cdecl _mm256_max_pd(__m256d, __m256d)
 
__m128d _mm_div_pd(__m128d _A, __m128d _B)
 
int __cdecl _mm256_movemask_ps(__m256)
 
F64vec4(double _D3, double _D2, double _D1, double _D0)
Definition: dvec.h:1414
 
Is32vec4 mul_add(const Is16vec8 &_A, const Is16vec8 &_B)
Definition: dvec.h:522
 
friend F64vec4 operator&(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1426
 
__m256 __cdecl _mm256_blendv_ps(__m256, __m256, __m256)
 
I64vec2 & operator>>=(const I64vec2 &_A)
Definition: dvec.h:201
 
Iu8vec16 & operator&=(const M128 &_A)
Definition: dvec.h:745
 
__m64
Definition: mmintrin.h:45
 
__m128d _mm_and_pd(__m128d _A, __m128d _B)
 
__m256d __cdecl _mm256_unpackhi_pd(__m256d, __m256d)
 
__m128i _mm_srl_epi16(__m128i _A, __m128i _Count)
 
__m128 __cdecl _mm256_castps256_ps128(__m256)
 
friend F32vec8 rcp(const F32vec8 &_A)
Definition: dvec.h:1208
 
F64vec2_COMP(eq) F64vec2_COMP(lt) F64vec2_COMP(le) F64vec2_COMP(gt) F64vec2_COMP(ge) F64vec2_COMP(ngt) F64vec2_COMP(nge) F64vec2_COMP(neq) F64vec2_COMP(nlt) F64vec2_COMP(nle) friend F64vec2 simd_min(const F64vec2 &_A
 
I16vec8 & operator<<=(const M128 &_A)
Definition: dvec.h:427
 
Is8vec16(__m128i _Mm)
Definition: dvec.h:654
 
Iu32vec4 & operator<<=(int _Count)
Definition: dvec.h:358
 
Is16vec8 operator>>(const M128 &_A)
Definition: dvec.h:473
 
__m128d __cdecl _mm_maskload_pd(double const *, __m128i)
 
M128 & operator&=(const M128 &_A)
Definition: dvec.h:138
 
I8vec16()
Definition: dvec.h:618
 
I32vec4 operator<<(const I32vec4 &_A)
Definition: dvec.h:248
 
I16vec8(__m128i _Mm)
Definition: dvec.h:405
 
__m128i _mm_slli_epi64(__m128i _A, int _Count)
 
__m128i _mm_cmpgt_epi8(__m128i _A, __m128i _B)
 
F32vec4 F64vec4ToF32vec8(const F64vec4 &_A)
Definition: dvec.h:1615
 
void __cdecl _mm_maskstore_pd(double *, __m128i, __m128d)
 
Is16vec8 & operator>>=(const M128 &_A)
Definition: dvec.h:475
 
unsigned char
Definition: mbstring.h:107
 
__m256 __cdecl _mm256_set1_ps(float)
 
Is16vec8 sat_add(const Is16vec8 &_A, const Is16vec8 &_B)
Definition: dvec.h:524
 
__m128i _mm_unpackhi_epi32(__m128i _A, __m128i _B)
 
friend F32vec8 rsqrt_nr(const F32vec8 &_A)
Definition: dvec.h:1227
 
I32vec4(__m128i _Mm)
Definition: dvec.h:232
 
friend F64vec2 sqrt(const F64vec2 &_A)
Definition: dvec.h:968
 
__m128d _mm_max_pd(__m128d _A, __m128d _B)
 
__m256d __cdecl _mm256_min_pd(__m256d, __m256d)
 
basic_ostream< char, char_traits< char > > ostream
Definition: iosfwd:625
 
F32vec8 select_gt(const F32vec8 &_A, const F32vec8 &_B, const F32vec8 &_C, const F32vec8 &_D)
Definition: dvec.h:1374
 
Is16vec8(signed short _S7, signed short _S6, signed short _S5, signed short _S4, signed short _S3, signed short _S2, signed short _S1, signed short _S0)
Definition: dvec.h:449
 
I32vec4()
Definition: dvec.h:231
 
_In_ wchar_t _C
Definition: wchar.h:253
 
__m128d __cdecl _mm256_castpd256_pd128(__m256d)
 
__m128i
Definition: emmintrin.h:53
 
__m256
Definition: immintrin.h:39
 
friend F32vec8 operator-(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1181
 
#define _CMP_GE_OS
Definition: immintrin.h:75
 
I128vec1 & operator^=(const M128 &_A)
Definition: dvec.h:163
 
__m128i _mm_srli_epi64(__m128i _A, int _Count)
 
Iu16vec8 & operator|=(const M128 &_A)
Definition: dvec.h:548
 
M128()
Definition: dvec.h:132
 
F64vec2 & operator-=(const F64vec2 &_A)
Definition: dvec.h:950
 
signed char & operator[](int _I)
Definition: dvec.h:705
 
__m128i _mm_unpackhi_epi64(__m128i _A, __m128i _B)
 
friend F64vec2 operator|(const F64vec2 &_A, const F64vec2 &_B)
Definition: dvec.h:940
 
F32vec8 select_le(const F32vec8 &_A, const F32vec8 &_B, const F32vec8 &_C, const F32vec8 &_D)
Definition: dvec.h:1371
 
friend F32vec8 abs(const F32vec8 &_A)
Definition: dvec.h:1268
 
I32vec4 & operator<<=(const I32vec4 &_A)
Definition: dvec.h:250
 
F32vec8 select_nge(const F32vec8 &_A, const F32vec8 &_B, const F32vec8 &_C, const F32vec8 &_D)
Definition: dvec.h:1392
 
I128vec1 & operator&=(const M128 &_A)
Definition: dvec.h:161
 
__m128d _mm_unpackhi_pd(__m128d _A, __m128d _B)
 
F32vec8 select_nlt(const F32vec8 &_A, const F32vec8 &_B, const F32vec8 &_C, const F32vec8 &_D)
Definition: dvec.h:1383
 
#define _MM_16B(element, vector)
Definition: dvec.h:89
 
Iu8vec16()
Definition: dvec.h:730
 
friend F32vec8 cmp_le(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1244
 
void _mm_storeu_pd(double *_Dp, __m128d _A)
 
__m128i _mm_cmpgt_epi16(__m128i _A, __m128i _B)
 
F64vec4 & operator|=(const F64vec4 &_A)
Definition: dvec.h:1441
 
Iu32vec4 & operator|=(const M128 &_A)
Definition: dvec.h:347
 
__m128d _mm_xor_pd(__m128d _A, __m128d _B)
 
friend F32vec8 operator|(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1176
 
#define _CMP_NLE_US
Definition: immintrin.h:66
 
I64vec2 & operator|=(const M128 &_A)
Definition: dvec.h:187
 
F64vec4 & operator*=(const F64vec4 &_A)
Definition: dvec.h:1438
 
#define IVEC128_ADD_SUB(vect, element, opsize)
Definition: dvec.h:839
 
Is8vec16 & operator-=(const I8vec16 &_A)
Definition: dvec.h:671
 
__m128d vec
Definition: dvec.h:920
 
__m256 __cdecl _mm256_mul_ps(__m256, __m256)
 
Iu16vec8 & operator=(const M128 &_A)
Definition: dvec.h:545
 
M128 andnot(const M128 &_A, const M128 &_B)
Definition: dvec.h:147
 
Iu32vec4 & operator=(const M128 &_A)
Definition: dvec.h:343
 
F64vec2 IntToF64vec2(const F64vec2 &_A, int _B)
Definition: dvec.h:1117
 
__m128i _mm_avg_epu8(__m128i _A, __m128i _B)
 
friend F64vec4 sqrt(const F64vec4 &_A)
Definition: dvec.h:1455
 
friend F64vec4 cmp_gt(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1464
 
Iu16vec8()
Definition: dvec.h:537
 
Iu16vec8 operator<<(int _Count)
Definition: dvec.h:557
 
__m128i _mm_mullo_epi16(__m128i _A, __m128i _B)
 
friend F32vec8 operator+(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1180
 
const F64vec2 &_B return _mm_min_pd(_A, _B)
 
M128 & operator|=(const M128 &_A)
Definition: dvec.h:139
 
__m128i _mm_subs_epu8(__m128i _A, __m128i _B)
 
Iu32vec4 & operator^=(const M128 &_A)
Definition: dvec.h:348
 
void loadu(F64vec2 &_A, double *_P)
Definition: dvec.h:1067
 
I16vec8 & operator=(const M128 &_A)
Definition: dvec.h:412
 
Iu16vec8 simd_avg(const Iu16vec8 &_A, const Iu16vec8 &_B)
Definition: dvec.h:609
 
__m256d vec
Definition: dvec.h:1403
 
Iu16vec8(unsigned short _S7, unsigned short _S6, unsigned short _S5, unsigned short _S4, unsigned short _S3, unsigned short _S2, unsigned short _S1, unsigned short _S0)
Definition: dvec.h:539
 
#define _MM_4DW(element, vector)
Definition: dvec.h:95
 
__m128i _mm_cmpeq_epi16(__m128i _A, __m128i _B)
 
__m256 __cdecl _mm256_min_ps(__m256, __m256)
 
__m128i _mm_or_si128(__m128i _A, __m128i _B)
 
Iu8vec16 & operator-=(const I8vec16 &_A)
Definition: dvec.h:751
 
__m128i _mm_sll_epi64(__m128i _A, __m128i _Count)
 
__m256 __cdecl _mm256_andnot_ps(__m256, __m256)
 
Is16vec8 & operator<<=(int _Count)
Definition: dvec.h:471
 
Is32vec4()
Definition: dvec.h:267
 
__m128i _mm_cmpeq_epi32(__m128i _A, __m128i _B)
 
Iu16vec8 & operator^=(const M128 &_A)
Definition: dvec.h:549
 
M128 operator|(const M128 &_A, const M128 &_B)
Definition: dvec.h:145
 
__m128 _mm_add_ss(__m128 _A, __m128 _B)
 
__m256 __cdecl _mm256_unpackhi_ps(__m256, __m256)
 
Is16vec8 & operator+=(const I16vec8 &_A)
Definition: dvec.h:463
 
__m128i _mm_adds_epu16(__m128i _A, __m128i _B)
 
I64vec2 & operator-=(const I64vec2 &_A)
Definition: dvec.h:192
 
__m128i _mm_add_epi32(__m128i _A, __m128i _B)
 
__m256i __cdecl _mm256_castps_si256(__m256)
 
Iu16vec8 & operator+=(const I16vec8 &_A)
Definition: dvec.h:551
 
F32vec8 & operator+=(const F32vec8 &_A)
Definition: dvec.h:1185
 
int & operator[](int _I)
Definition: dvec.h:314
 
__m256d __cdecl _mm256_maskload_pd(double const *, __m256i)
 
friend F32vec8 sqrt(const F32vec8 &_A)
Definition: dvec.h:1205
 
__m128i _mm_unpacklo_epi8(__m128i _A, __m128i _B)
 
friend F64vec2 andnot(const F64vec2 &_A, const F64vec2 &_B)
Definition: dvec.h:965
 
Iu32vec4 operator>>(const M128 &_A)
Definition: dvec.h:359
 
Is32vec4 & operator|=(const M128 &_A)
Definition: dvec.h:276
 
const signed char & operator[](int _I) const 
Definition: dvec.h:698
 
__m128i vec
Definition: dvec.h:129
 
__m256 __cdecl _mm256_maskload_ps(float const *, __m256i)
 
__m256d __cdecl _mm256_blendv_pd(__m256d, __m256d, __m256d)
 
F64vec4 & operator-=(const F64vec4 &_A)
Definition: dvec.h:1437
 
Iu16vec8 operator<<(const M128 &_A)
Definition: dvec.h:556
 
Is16vec8 operator<<(int _Count)
Definition: dvec.h:469
 
Iu32vec4 & operator>>=(const M128 &_A)
Definition: dvec.h:361
 
friend F64vec4 simd_min(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1480
 
friend double add_horizontal(const F64vec2 &_A)
Definition: dvec.h:958
 
M128 operator^(const M128 &_A, const M128 &_B)
Definition: dvec.h:146
 
__m256d __cdecl _mm256_or_pd(__m256d, __m256d)
 
F32vec8 select_neq(const F32vec8 &_A, const F32vec8 &_B, const F32vec8 &_C, const F32vec8 &_D)
Definition: dvec.h:1380
 
void storeu(double *_P, const F64vec2 &_A)
Definition: dvec.h:1071
 
Is32vec4 operator<<(int _Count)
Definition: dvec.h:285
 
I64vec2(__m64 _Q1, __m64 _Q0)
Definition: dvec.h:176
 
const __int64 & operator[](int _I) const 
Definition: dvec.h:205
 
__m256 __cdecl _mm256_or_ps(__m256, __m256)
 
friend F32vec8 cmp_ngt(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1256
 
friend F64vec4 cmp_nge(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1476
 
I32vec4 cmpneq(const I32vec4 &_A, const I32vec4 &_B)
Definition: dvec.h:256
 
__m128d _mm_sub_pd(__m128d _A, __m128d _B)
 
friend F64vec4 cmp_nle(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1472
 
Iu16vec8 & operator<<=(const M128 &_A)
Definition: dvec.h:558
 
F32vec8 select_ngt(const F32vec8 &_A, const F32vec8 &_B, const F32vec8 &_C, const F32vec8 &_D)
Definition: dvec.h:1389
 
friend F64vec2 operator&(const F64vec2 &_A, const F64vec2 &_B)
Definition: dvec.h:939
 
I16vec8 & operator^=(const M128 &_A)
Definition: dvec.h:417
 
__m128i _mm_slli_epi32(__m128i _A, int _Count)
 
I128vec1(__m128i _Mm)
Definition: dvec.h:158
 
signed short & operator[](int _I)
Definition: dvec.h:502
 
__m128i _mm_sub_epi16(__m128i _A, __m128i _B)
 
void _mm_stream_pd(double *_Dp, __m128d _A)
 
_Diff _Count
Definition: algorithm:1941
 
__m256 __cdecl _mm256_rcp_ps(__m256)
 
I128vec1 & operator|=(const M128 &_A)
Definition: dvec.h:162
 
I64vec2 operator<<(const I64vec2 &_A)
Definition: dvec.h:195
 
F32vec8(float _F)
Definition: dvec.h:1153
 
Is32vec4 & operator<<=(const M128 &_A)
Definition: dvec.h:286
 
Is8vec16 & operator|=(const M128 &_A)
Definition: dvec.h:666
 
I128vec1 & operator=(const M128 &_A)
Definition: dvec.h:160
 
unsigned char & operator[](int _I)
Definition: dvec.h:785
 
I32vec4 cmpeq(const I32vec4 &_A, const I32vec4 &_B)
Definition: dvec.h:255
 
friend F32vec8 cmp_nle(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1254
 
I32vec4 operator<<(int _Count)
Definition: dvec.h:249
 
friend F32vec8 operator^(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1177
 
friend F64vec2 operator/(const F64vec2 &_A, const F64vec2 &_B)
Definition: dvec.h:947
 
Is8vec16 & operator^=(const M128 &_A)
Definition: dvec.h:667
 
friend F32vec8 operator/(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1183
 
Is32vec4 operator>>(const M128 &_A)
Definition: dvec.h:289
 
Iu16vec8 operator>>(int _Count)
Definition: dvec.h:561
 
__m128i _mm_subs_epu16(__m128i _A, __m128i _B)
 
__m256d __cdecl _mm256_set1_pd(double)
 
Iu8vec16 & operator|=(const M128 &_A)
Definition: dvec.h:746
 
__m128i _mm_sub_epi8(__m128i _A, __m128i _B)
 
Iu32vec4 & operator>>=(int _Count)
Definition: dvec.h:362
 
F64vec4(__m256d m)
Definition: dvec.h:1411
 
F64vec2 & operator&=(const F64vec2 &_A)
Definition: dvec.h:953
 
friend F64vec2 abs(const F64vec2 &_A)
Definition: dvec.h:993
 
friend F64vec4 andnot(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1452
 
#define IVEC128_LOGICALS(vect, element)
Definition: dvec.h:815
 
I64vec2 & operator^=(const M128 &_A)
Definition: dvec.h:188
 
__m256 __cdecl _mm256_max_ps(__m256, __m256)
 
__m128i _mm_unpacklo_epi64(__m128i _A, __m128i _B)
 
I64vec2 & operator<<=(int _Count)
Definition: dvec.h:198
 
__m128i _mm_andnot_si128(__m128i _A, __m128i _B)
 
friend F32vec8 simd_max(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1264
 
Iu32vec4 & operator+=(const I32vec4 &_A)
Definition: dvec.h:351
 
friend F32vec8 cmp_gt(const F32vec8 &_A, const F32vec8 &_B)
Definition: dvec.h:1246
 
Is32vec4 & operator^=(const M128 &_A)
Definition: dvec.h:277
 
Is16vec8 & operator>>=(int _Count)
Definition: dvec.h:476
 
__m256 __cdecl _mm256_set_ps(float, float, float, float, float, float, float, float)
 
__m256 __cdecl _mm256_cmp_ps(__m256, __m256, const int)
 
Is16vec8 & operator-=(const I16vec8 &_A)
Definition: dvec.h:464
 
I64vec2 & operator&=(const M128 &_A)
Definition: dvec.h:186
 
__m128i _mm_srai_epi16(__m128i _A, int _Count)
 
void maskload(F32vec8 &_A, const float *_P, const F32vec8 &_M)
Definition: dvec.h:1350
 
friend F64vec4 operator-(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1432
 
__m128i _mm_subs_epi8(__m128i _A, __m128i _B)
 
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
 
__m256d __cdecl _mm256_xor_pd(__m256d, __m256d)
 
I16vec8 & operator+=(const I16vec8 &_A)
Definition: dvec.h:420
 
friend F64vec2 operator*(const F64vec2 &_A, const F64vec2 &_B)
Definition: dvec.h:946
 
__m128d _mm_mul_pd(__m128d _A, __m128d _B)
 
Is8vec16 & operator&=(const M128 &_A)
Definition: dvec.h:665
 
__m256d __cdecl _mm256_add_pd(__m256d, __m256d)
 
float _mm_cvtss_f32(__m128 _A)
 
#define _CMP_LE_OS
Definition: immintrin.h:62
 
__m128i _mm_add_epi16(__m128i _A, __m128i _B)
 
Is32vec4 operator>>(int _Count)
Definition: dvec.h:290
 
Is32vec4 cmpgt(const Is32vec4 &_A, const Is32vec4 &_B)
Definition: dvec.h:324
 
I128vec1()
Definition: dvec.h:157
 
__m128i _mm_set_epi8(char _B15, char _B14, char _B13, char _B12, char _B11, char _B10, char _B9, char _B8, char _B7, char _B6, char _B5, char _B4, char _B3, char _B2, char _B1, char _B0)
 
__m128i _mm_cmpeq_epi8(__m128i _A, __m128i _B)
 
void maskstore(float *_P, const F32vec8 &_A, const F32vec8 &_M)
Definition: dvec.h:1357
 
__m128i _mm_unpackhi_epi8(__m128i _A, __m128i _B)
 
__m128i _mm_adds_epi16(__m128i _A, __m128i _B)
 
__m128 __cdecl _mm256_cvtpd_ps(__m256d)
 
__m128d _mm_cvtps_pd(__m128 _A)
 
Is8vec16()
Definition: dvec.h:653
 
Iu32vec4 & operator&=(const M128 &_A)
Definition: dvec.h:346
 
__m128d _mm_andnot_pd(__m128d _A, __m128d _B)
 
__m128i _mm_sub_epi64(__m128i _A, __m128i _B)
 
I16vec8 & operator<<=(int _Count)
Definition: dvec.h:428
 
#define _MM_4UDW(element, vector)
Definition: dvec.h:94
 
friend F64vec4 cmp_nlt(const F64vec4 &_A, const F64vec4 &_B)
Definition: dvec.h:1470
 
I32vec4(int _I3, int _I2, int _I1, int _I0)
Definition: dvec.h:233
 
__m128i _mm_packus_epi16(__m128i _A, __m128i _B)
 
F32vec8(double _D)
Definition: dvec.h:1156
 
I32vec4 & operator|=(const M128 &_A)
Definition: dvec.h:240
 
Iu32vec4(unsigned int _Ui3, unsigned int _Ui2, unsigned int _Ui1, unsigned int _Ui0)
Definition: dvec.h:339
 
__m128i _mm_mulhi_epu16(__m128i _A, __m128i _B)
 
F32vec8 & operator|=(const F32vec8 &_A)
Definition: dvec.h:1190
 
Is32vec4 operator<<(const M128 &_A)
Definition: dvec.h:284
 
Is32vec4 & operator=(const M128 &_A)
Definition: dvec.h:272
 
F32vec8()
Definition: dvec.h:1141
 
void __cdecl _mm256_maskstore_ps(float *, __m256i, __m256)
 
friend F64vec2 simd_max(const F64vec2 &_A, const F64vec2 &_B)
Definition: dvec.h:990
 
I64vec2 & operator+=(const I64vec2 &_A)
Definition: dvec.h:191
 
__m128i _mm_srl_epi64(__m128i _A, __m128i _Count)
 
Iu32vec4 operator<<(const M128 &_A)
Definition: dvec.h:355
 
Iu16vec8 & operator<<=(int _Count)
Definition: dvec.h:559
 
double & operator[](int _I)
Definition: dvec.h:1521
 
__m128d _mm_add_sd(__m128d _A, __m128d _B)
 
Is16vec8 sat_sub(const Is16vec8 &_A, const Is16vec8 &_B)
Definition: dvec.h:525
 
__m128i _mm_and_si128(__m128i _A, __m128i _B)
 
void __cdecl _mm256_stream_pd(double *, __m256d)
 
__m128i _mm_madd_epi16(__m128i _A, __m128i _B)
 
Is32vec4 & operator&=(const M128 &_A)
Definition: dvec.h:275
 
F64vec2(double _D1, double _D0)
Definition: dvec.h:930
 
__m128d _mm_sqrt_pd(__m128d _A)
 
__m128 __cdecl _mm256_extractf128_ps(__m256, const int)
 
F32vec8 select_nle(const F32vec8 &_A, const F32vec8 &_B, const F32vec8 &_C, const F32vec8 &_D)
Definition: dvec.h:1386
 
F64vec2(__m128d _M)
Definition: dvec.h:927
 
I16vec8 & operator*=(const I16vec8 &_A)
Definition: dvec.h:422
 
__m128i _mm_subs_epi16(__m128i _A, __m128i _B)
 
__m128d __cdecl _mm256_extractf128_pd(__m256d, const int)
 
friend float add_horizontal(const F32vec8 &_A)
Definition: dvec.h:1194
 
F64vec2 & operator+=(const F64vec2 &_A)
Definition: dvec.h:949
 
Is8vec16 & operator+=(const I8vec16 &_A)
Definition: dvec.h:670
 
__m256 __cdecl _mm256_unpacklo_ps(__m256, __m256)
 
float & operator[](int _I)
Definition: dvec.h:1308