2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
14 typedef union _DECLSPEC_INTRIN_TYPE
_CRT_ALIGN(16) __m128
17 unsigned __int64 m128_u64
[2];
22 unsigned __int8 m128_u8
[16];
23 unsigned __int16 m128_u16
[8];
24 unsigned __int32 m128_u32
[4];
28 extern __m128
_mm_load_ss(float const*);
29 extern int _mm_cvt_ss2si(__m128
);
32 unsigned int _mm_getcsr(void);
33 #pragma intrinsic(_mm_getcsr)
34 void _mm_setcsr(unsigned int);
35 #pragma intrinsic(_mm_setcsr)
38 * We can't use __builtin_ia32_* functions,
39 * are they are only available with the -msse2 compiler switch
41 __INTRIN_INLINE
unsigned int _mm_getcsr(void)
44 __asm__
__volatile__("stmxcsr %0" : "=m"(retval
));
48 __INTRIN_INLINE
void _mm_setcsr(unsigned int val
)
50 __asm__
__volatile__("ldmxcsr %0" : : "m"(val
));
55 #define _mm_cvtss_si32 _mm_cvt_ss2si
58 #endif /* _INCLUDED_MM2 */