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)
757 _Os <<
"[15]:" << (
unsigned char)(
_MM_16UB(15,_A))
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)
unsigned int _Count
Definition: xcomplex:668
__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
__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
#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
__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:679
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
__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
const union @85 __f64vec2_abs_mask_cheat
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)
__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