2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
6 #ifndef _IVEC_H_INCLUDED
7 #define _IVEC_H_INCLUDED
10 #if !defined __cplusplus
11 #error This file is only supported in C++ compilations!
19 #pragma pack(push,_CRT_PACKING)
21 #if defined(_ENABLE_VEC_DEBUG)
29 #define _MM_QW (*((__int64*)&vec))
39 M64(__m64 mm
) { vec
= mm
; }
40 M64(__int64 mm
) { _MM_QW
= mm
; }
41 M64(int i
) { vec
= _m_from_int(i
); }
43 operator __m64() const { return vec
; }
45 M64
& operator&=(const M64
&a
) { return *this = (M64
) _m_pand(vec
,a
); }
46 M64
& operator|=(const M64
&a
) { return *this = (M64
) _m_por(vec
,a
); }
47 M64
& operator^=(const M64
&a
) { return *this = (M64
) _m_pxor(vec
,a
); }
52 #endif /* ifdef __SSE__ */