ReactOS 0.4.15-dev-7924-g5949c20
xmmintrin.h File Reference
#include <mmintrin.h>
Include dependency graph for xmmintrin.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _INCLUDED_MM2
 
#define __ATTRIBUTE_SSE__   __attribute__((__target__("sse")))
 
#define __INTRIN_INLINE_SSE   __INTRIN_INLINE __ATTRIBUTE_SSE__
 
#define _MM_ALIGN16   _VCRT_ALIGN(16)
 
#define _MM_HINT_NTA   0
 
#define _MM_HINT_T0   1
 
#define _MM_HINT_T1   2
 
#define _MM_HINT_T2   3
 
#define _MM_HINT_ENTA   4
 
#define _MM_SHUFFLE(fp3, fp2, fp1, fp0)    (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | (fp0))
 
#define _MM_EXCEPT_MASK   0x003f
 
#define _MM_EXCEPT_INVALID   0x0001
 
#define _MM_EXCEPT_DENORM   0x0002
 
#define _MM_EXCEPT_DIV_ZERO   0x0004
 
#define _MM_EXCEPT_OVERFLOW   0x0008
 
#define _MM_EXCEPT_UNDERFLOW   0x0010
 
#define _MM_EXCEPT_INEXACT   0x0020
 
#define _MM_MASK_MASK   0x1f80
 
#define _MM_MASK_INVALID   0x0080
 
#define _MM_MASK_DENORM   0x0100
 
#define _MM_MASK_DIV_ZERO   0x0200
 
#define _MM_MASK_OVERFLOW   0x0400
 
#define _MM_MASK_UNDERFLOW   0x0800
 
#define _MM_MASK_INEXACT   0x1000
 
#define _MM_ROUND_MASK   0x6000
 
#define _MM_ROUND_NEAREST   0x0000
 
#define _MM_ROUND_DOWN   0x2000
 
#define _MM_ROUND_UP   0x4000
 
#define _MM_ROUND_TOWARD_ZERO   0x6000
 
#define _MM_FLUSH_ZERO_MASK   0x8000
 
#define _MM_FLUSH_ZERO_ON   0x8000
 
#define _MM_FLUSH_ZERO_OFF   0x0000
 
#define _mm_cvtss_si32   _mm_cvt_ss2si
 
#define _mm_cvttss_si32   _mm_cvtt_ss2si
 
#define _mm_cvtsi32_ss   _mm_cvt_si2ss
 
#define _mm_set1_ps   _mm_set_ps1
 
#define _mm_load1_ps   _mm_load_ps1f
 
#define _mm_store1_ps   _mm_store_ps1
 
#define _mm_cvtps_pi32   _mm_cvt_ps2pi
 
#define _mm_cvttps_pi32   _mm_cvtt_ps2pi
 
#define _mm_cvtpi32_ps   _mm_cvt_pi2ps
 
#define _mm_extract_pi16   _m_pextrw
 
#define _mm_insert_pi16   _m_pinsrw
 
#define _mm_max_pi16   _m_pmaxsw
 
#define _mm_max_pu8   _m_pmaxub
 
#define _mm_min_pi16   _m_pminsw
 
#define _mm_min_pu8   _m_pminub
 
#define _mm_movemask_pi8   _m_pmovmskb
 
#define _mm_mulhi_pu16   _m_pmulhuw
 
#define _mm_shuffle_pi16   _m_pshufw
 
#define _mm_maskmove_si64   _m_maskmovq
 
#define _mm_avg_pu8   _m_pavgb
 
#define _mm_avg_pu16   _m_pavgw
 
#define _mm_sad_pu8   _m_psadbw
 
#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3)
 
#define _MM_GET_EXCEPTION_STATE()    (_mm_getcsr() & _MM_EXCEPT_MASK)
 
#define _MM_GET_EXCEPTION_MASK()    (_mm_getcsr() & _MM_MASK_MASK)
 
#define _MM_GET_ROUNDING_MODE()    (_mm_getcsr() & _MM_ROUND_MASK)
 
#define _MM_GET_FLUSH_ZERO_MODE()    (_mm_getcsr() & _MM_FLUSH_ZERO_MASK)
 
#define _MM_SET_EXCEPTION_STATE(__mask)    _mm_setcsr((_mm_getcsr() & ~_MM_EXCEPT_MASK) | (__mask))
 
#define _MM_SET_EXCEPTION_MASK(__mask)    _mm_setcsr((_mm_getcsr() & ~_MM_MASK_MASK) | (__mask))
 
#define _MM_SET_ROUNDING_MODE(__mode)    _mm_setcsr((_mm_getcsr() & ~_MM_ROUND_MASK) | (__mode))
 
#define _MM_SET_FLUSH_ZERO_MODE(__mode)    _mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (__mode))
 
#define _MM_HINT_NTA_ALT   0
 
#define _MM_HINT_T0_ALT   3
 
#define _MM_HINT_T1_ALT   2
 
#define _MM_HINT_T2_ALT   1
 
#define _MM_HINT_ENTA_ALT   4
 
#define _MM_HINT_MS_TO_ALT(sel)
 
#define _mm_prefetch(p, sel)    __builtin_prefetch((const void *)(p), (_MM_HINT_MS_TO_ALT(sel) >> 2) & 1, _MM_HINT_MS_TO_ALT(sel) & 0x3)
 

Typedefs

typedef float __v4sf __attribute__((__vector_size__(16)))
 

Functions

void _mm_prefetch (_In_ char const *p, _In_ int i)
 
__m128 _mm_setzero_ps (void)
 
__m128 _mm_add_ss (__m128 a, __m128 b)
 
__m128 _mm_sub_ss (__m128 a, __m128 b)
 
__m128 _mm_mul_ss (__m128 a, __m128 b)
 
__m128 _mm_div_ss (__m128 a, __m128 b)
 
__m128 _mm_sqrt_ss (__m128 a)
 
__m128 _mm_rcp_ss (__m128 a)
 
__m128 _mm_rsqrt_ss (__m128 a)
 
__m128 _mm_min_ss (__m128 a, __m128 b)
 
__m128 _mm_max_ss (__m128 a, __m128 b)
 
__m128 _mm_add_ps (__m128 a, __m128 b)
 
__m128 _mm_sub_ps (__m128 a, __m128 b)
 
__m128 _mm_mul_ps (__m128 a, __m128 b)
 
__m128 _mm_div_ps (__m128 a, __m128 b)
 
__m128 _mm_sqrt_ps (__m128 a)
 
__m128 _mm_rcp_ps (__m128 a)
 
__m128 _mm_rsqrt_ps (__m128 a)
 
__m128 _mm_min_ps (__m128 a, __m128 b)
 
__m128 _mm_max_ps (__m128 a, __m128 b)
 
__m128 _mm_and_ps (__m128 a, __m128 b)
 
__m128 _mm_andnot_ps (__m128 a, __m128 b)
 
__m128 _mm_or_ps (__m128 a, __m128 b)
 
__m128 _mm_xor_ps (__m128 a, __m128 b)
 
__m128 _mm_cmpeq_ss (__m128 a, __m128 b)
 
__m128 _mm_cmplt_ss (__m128 a, __m128 b)
 
__m128 _mm_cmple_ss (__m128 a, __m128 b)
 
__m128 _mm_cmpgt_ss (__m128 a, __m128 b)
 
__m128 _mm_cmpge_ss (__m128 a, __m128 b)
 
__m128 _mm_cmpneq_ss (__m128 a, __m128 b)
 
__m128 _mm_cmpnlt_ss (__m128 a, __m128 b)
 
__m128 _mm_cmpnle_ss (__m128 a, __m128 b)
 
__m128 _mm_cmpngt_ss (__m128 a, __m128 b)
 
__m128 _mm_cmpnge_ss (__m128 a, __m128 b)
 
__m128 _mm_cmpord_ss (__m128 a, __m128 b)
 
__m128 _mm_cmpunord_ss (__m128 a, __m128 b)
 
__m128 _mm_cmpeq_ps (__m128 a, __m128 b)
 
__m128 _mm_cmplt_ps (__m128 a, __m128 b)
 
__m128 _mm_cmple_ps (__m128 a, __m128 b)
 
__m128 _mm_cmpgt_ps (__m128 a, __m128 b)
 
__m128 _mm_cmpge_ps (__m128 a, __m128 b)
 
__m128 _mm_cmpneq_ps (__m128 a, __m128 b)
 
__m128 _mm_cmpnlt_ps (__m128 a, __m128 b)
 
__m128 _mm_cmpnle_ps (__m128 a, __m128 b)
 
__m128 _mm_cmpngt_ps (__m128 a, __m128 b)
 
__m128 _mm_cmpnge_ps (__m128 a, __m128 b)
 
__m128 _mm_cmpord_ps (__m128 a, __m128 b)
 
__m128 _mm_cmpunord_ps (__m128 a, __m128 b)
 
int _mm_comieq_ss (__m128 a, __m128 b)
 
int _mm_comilt_ss (__m128 a, __m128 b)
 
int _mm_comile_ss (__m128 a, __m128 b)
 
int _mm_comigt_ss (__m128 a, __m128 b)
 
int _mm_comige_ss (__m128 a, __m128 b)
 
int _mm_comineq_ss (__m128 a, __m128 b)
 
int _mm_ucomieq_ss (__m128 a, __m128 b)
 
int _mm_ucomilt_ss (__m128 a, __m128 b)
 
int _mm_ucomile_ss (__m128 a, __m128 b)
 
int _mm_ucomigt_ss (__m128 a, __m128 b)
 
int _mm_ucomige_ss (__m128 a, __m128 b)
 
int _mm_ucomineq_ss (__m128 a, __m128 b)
 
int _mm_cvt_ss2si (__m128 a)
 
int _mm_cvtt_ss2si (__m128 a)
 
__m128 _mm_cvt_si2ss (__m128 a, int b)
 
__m128 _mm_shuffle_ps (__m128 a, __m128 b, unsigned int imm8)
 
__m128 _mm_unpackhi_ps (__m128 a, __m128 b)
 
__m128 _mm_unpacklo_ps (__m128 a, __m128 b)
 
__m128 _mm_loadh_pi (__m128 a, __m64 const *p)
 
void _mm_storeh_pi (__m64 *p, __m128 a)
 
__m128 _mm_movehl_ps (__m128 a, __m128 b)
 
__m128 _mm_movelh_ps (__m128 a, __m128 b)
 
__m128 _mm_loadl_pi (__m128 a, __m64 const *p)
 
void _mm_storel_pi (__m64 *p, __m128 a)
 
int _mm_movemask_ps (__m128 a)
 
unsigned int _mm_getcsr (void)
 
void _mm_setcsr (unsigned int a)
 
__m128 _mm_set_ss (float a)
 
__m128 _mm_set_ps1 (float a)
 
__m128 _mm_load_ss (float const *p)
 
__m128 _mm_load_ps1 (float const *p)
 
__m128 _mm_load_ps (float const *p)
 
__m128 _mm_loadu_ps (float const *p)
 
__m128 _mm_loadr_ps (float const *p)
 
__m128 _mm_set_ps (float e3, float e2, float e1, float e0)
 
__m128 _mm_setr_ps (float e3, float e2, float e1, float e0)
 
void _mm_store_ss (float *p, __m128 a)
 
float _mm_cvtss_f32 (__m128 a)
 
void _mm_store_ps (float *p, __m128 a)
 
void _mm_storeu_ps (float *p, __m128 a)
 
void _mm_store_ps1 (float *p, __m128 a)
 
void _mm_storer_ps (float *p, __m128 a)
 
__m128 _mm_move_ss (__m128 a, __m128 b)
 
void _mm_stream_ps (float *p, __m128 a)
 
void _mm_sfence (void)
 
__INTRIN_INLINE_SSE int _mm_cvtss_si32 (__m128 __a)
 
__INTRIN_INLINE_SSE __m64 _mm_cvtps_pi32 (__m128 __a)
 
__INTRIN_INLINE_SSE int _mm_cvttss_si32 (__m128 __a)
 
__INTRIN_INLINE_SSE __m64 _mm_cvttps_pi32 (__m128 __a)
 
__INTRIN_INLINE_SSE __m128 _mm_cvtsi32_ss (__m128 __a, int __b)
 
__INTRIN_INLINE_SSE __m128 _mm_cvtpi32_ps (__m128 __a, __m64 __b)
 
__INTRIN_INLINE_SSE __m128 _mm_load1_ps (const float *__p)
 
__INTRIN_INLINE_SSE __m128 _mm_undefined_ps (void)
 
__INTRIN_INLINE_SSE __m128 _mm_set1_ps (float __w)
 
__INTRIN_INLINE_SSE void _mm_store1_ps (float *__p, __m128 __a)
 
__INTRIN_INLINE_SSE void _mm_stream_pi (__m64 *__p, __m64 __a)
 
__INTRIN_INLINE_SSE int _mm_extract_pi16 (__m64 const __a, int const __n)
 
__INTRIN_INLINE_SSE __m64 _mm_insert_pi16 (__m64 const __a, int const __d, int const __n)
 
__INTRIN_INLINE_SSE __m64 _mm_max_pi16 (__m64 __a, __m64 __b)
 
__INTRIN_INLINE_SSE __m64 _mm_max_pu8 (__m64 __a, __m64 __b)
 
__INTRIN_INLINE_SSE __m64 _mm_min_pi16 (__m64 __a, __m64 __b)
 
__INTRIN_INLINE_SSE __m64 _mm_min_pu8 (__m64 __a, __m64 __b)
 
__INTRIN_INLINE_SSE int _mm_movemask_pi8 (__m64 __a)
 
__INTRIN_INLINE_SSE __m64 _mm_mulhi_pu16 (__m64 __a, __m64 __b)
 
__INTRIN_INLINE_MMX __m64 _mm_shuffle_pi16 (__m64 __a, int const __n)
 
__INTRIN_INLINE_SSE void _mm_maskmove_si64 (__m64 __d, __m64 __n, char *__p)
 
__INTRIN_INLINE_SSE __m64 _mm_avg_pu8 (__m64 __a, __m64 __b)
 
__INTRIN_INLINE_SSE __m64 _mm_avg_pu16 (__m64 __a, __m64 __b)
 
__INTRIN_INLINE_SSE __m64 _mm_sad_pu8 (__m64 __a, __m64 __b)
 

Macro Definition Documentation

◆ __ATTRIBUTE_SSE__

#define __ATTRIBUTE_SSE__   __attribute__((__target__("sse")))

Definition at line 68 of file xmmintrin.h.

◆ __INTRIN_INLINE_SSE

#define __INTRIN_INLINE_SSE   __INTRIN_INLINE __ATTRIBUTE_SSE__

Definition at line 70 of file xmmintrin.h.

◆ _INCLUDED_MM2

#define _INCLUDED_MM2

Definition at line 23 of file xmmintrin.h.

◆ _MM_ALIGN16

#define _MM_ALIGN16   _VCRT_ALIGN(16)

Definition at line 74 of file xmmintrin.h.

◆ _mm_avg_pu16

#define _mm_avg_pu16   _m_pavgw

Definition at line 265 of file xmmintrin.h.

◆ _mm_avg_pu8

#define _mm_avg_pu8   _m_pavgb

Definition at line 264 of file xmmintrin.h.

◆ _mm_cvtpi32_ps

#define _mm_cvtpi32_ps   _mm_cvt_pi2ps

Definition at line 253 of file xmmintrin.h.

◆ _mm_cvtps_pi32

#define _mm_cvtps_pi32   _mm_cvt_ps2pi

Definition at line 251 of file xmmintrin.h.

◆ _mm_cvtsi32_ss

#define _mm_cvtsi32_ss   _mm_cvt_si2ss

Definition at line 247 of file xmmintrin.h.

◆ _mm_cvtss_si32

#define _mm_cvtss_si32   _mm_cvt_ss2si

Definition at line 245 of file xmmintrin.h.

◆ _mm_cvttps_pi32

#define _mm_cvttps_pi32   _mm_cvtt_ps2pi

Definition at line 252 of file xmmintrin.h.

◆ _mm_cvttss_si32

#define _mm_cvttss_si32   _mm_cvtt_ss2si

Definition at line 246 of file xmmintrin.h.

◆ _MM_EXCEPT_DENORM

#define _MM_EXCEPT_DENORM   0x0002

Definition at line 95 of file xmmintrin.h.

◆ _MM_EXCEPT_DIV_ZERO

#define _MM_EXCEPT_DIV_ZERO   0x0004

Definition at line 96 of file xmmintrin.h.

◆ _MM_EXCEPT_INEXACT

#define _MM_EXCEPT_INEXACT   0x0020

Definition at line 99 of file xmmintrin.h.

◆ _MM_EXCEPT_INVALID

#define _MM_EXCEPT_INVALID   0x0001

Definition at line 94 of file xmmintrin.h.

◆ _MM_EXCEPT_MASK

#define _MM_EXCEPT_MASK   0x003f

Definition at line 93 of file xmmintrin.h.

◆ _MM_EXCEPT_OVERFLOW

#define _MM_EXCEPT_OVERFLOW   0x0008

Definition at line 97 of file xmmintrin.h.

◆ _MM_EXCEPT_UNDERFLOW

#define _MM_EXCEPT_UNDERFLOW   0x0010

Definition at line 98 of file xmmintrin.h.

◆ _mm_extract_pi16

#define _mm_extract_pi16   _m_pextrw

Definition at line 254 of file xmmintrin.h.

◆ _MM_FLUSH_ZERO_MASK

#define _MM_FLUSH_ZERO_MASK   0x8000

Definition at line 115 of file xmmintrin.h.

◆ _MM_FLUSH_ZERO_OFF

#define _MM_FLUSH_ZERO_OFF   0x0000

Definition at line 117 of file xmmintrin.h.

◆ _MM_FLUSH_ZERO_ON

#define _MM_FLUSH_ZERO_ON   0x8000

Definition at line 116 of file xmmintrin.h.

◆ _MM_GET_EXCEPTION_MASK

#define _MM_GET_EXCEPTION_MASK ( )     (_mm_getcsr() & _MM_MASK_MASK)

Definition at line 382 of file xmmintrin.h.

◆ _MM_GET_EXCEPTION_STATE

#define _MM_GET_EXCEPTION_STATE ( )     (_mm_getcsr() & _MM_EXCEPT_MASK)

Definition at line 379 of file xmmintrin.h.

◆ _MM_GET_FLUSH_ZERO_MODE

#define _MM_GET_FLUSH_ZERO_MODE ( )     (_mm_getcsr() & _MM_FLUSH_ZERO_MASK)

Definition at line 388 of file xmmintrin.h.

◆ _MM_GET_ROUNDING_MODE

#define _MM_GET_ROUNDING_MODE ( )     (_mm_getcsr() & _MM_ROUND_MASK)

Definition at line 385 of file xmmintrin.h.

◆ _MM_HINT_ENTA

#define _MM_HINT_ENTA   4

Definition at line 81 of file xmmintrin.h.

◆ _MM_HINT_ENTA_ALT

#define _MM_HINT_ENTA_ALT   4

Definition at line 1094 of file xmmintrin.h.

◆ _MM_HINT_MS_TO_ALT

#define _MM_HINT_MS_TO_ALT (   sel)
Value:
(((sel) == _MM_HINT_NTA) ? _MM_HINT_NTA_ALT : \
((sel) == _MM_HINT_T0) ? _MM_HINT_T0_ALT : \
((sel) == _MM_HINT_T1) ? _MM_HINT_T1_ALT : \
((sel) == _MM_HINT_T2) ? _MM_HINT_T2_ALT : \
((sel) == _MM_HINT_ENTA) ? _MM_HINT_ENTA_ALT : 0)
#define _MM_HINT_NTA_ALT
Definition: xmmintrin.h:1090
#define _MM_HINT_T2_ALT
Definition: xmmintrin.h:1093
#define _MM_HINT_T0_ALT
Definition: xmmintrin.h:1091
#define _MM_HINT_ENTA_ALT
Definition: xmmintrin.h:1094
#define _MM_HINT_T1_ALT
Definition: xmmintrin.h:1092
#define _MM_HINT_T0
Definition: xmmintrin.h:78
#define _MM_HINT_T1
Definition: xmmintrin.h:79
#define _MM_HINT_NTA
Definition: xmmintrin.h:77
#define _MM_HINT_T2
Definition: xmmintrin.h:80
#define _MM_HINT_ENTA
Definition: xmmintrin.h:81

Definition at line 1101 of file xmmintrin.h.

◆ _MM_HINT_NTA

#define _MM_HINT_NTA   0

Definition at line 77 of file xmmintrin.h.

◆ _MM_HINT_NTA_ALT

#define _MM_HINT_NTA_ALT   0

Definition at line 1090 of file xmmintrin.h.

◆ _MM_HINT_T0

#define _MM_HINT_T0   1

Definition at line 78 of file xmmintrin.h.

◆ _MM_HINT_T0_ALT

#define _MM_HINT_T0_ALT   3

Definition at line 1091 of file xmmintrin.h.

◆ _MM_HINT_T1

#define _MM_HINT_T1   2

Definition at line 79 of file xmmintrin.h.

◆ _MM_HINT_T1_ALT

#define _MM_HINT_T1_ALT   2

Definition at line 1092 of file xmmintrin.h.

◆ _MM_HINT_T2

#define _MM_HINT_T2   3

Definition at line 80 of file xmmintrin.h.

◆ _MM_HINT_T2_ALT

#define _MM_HINT_T2_ALT   1

Definition at line 1093 of file xmmintrin.h.

◆ _mm_insert_pi16

#define _mm_insert_pi16   _m_pinsrw

Definition at line 255 of file xmmintrin.h.

◆ _mm_load1_ps

#define _mm_load1_ps   _mm_load_ps1f

Definition at line 249 of file xmmintrin.h.

◆ _MM_MASK_DENORM

#define _MM_MASK_DENORM   0x0100

Definition at line 103 of file xmmintrin.h.

◆ _MM_MASK_DIV_ZERO

#define _MM_MASK_DIV_ZERO   0x0200

Definition at line 104 of file xmmintrin.h.

◆ _MM_MASK_INEXACT

#define _MM_MASK_INEXACT   0x1000

Definition at line 107 of file xmmintrin.h.

◆ _MM_MASK_INVALID

#define _MM_MASK_INVALID   0x0080

Definition at line 102 of file xmmintrin.h.

◆ _MM_MASK_MASK

#define _MM_MASK_MASK   0x1f80

Definition at line 101 of file xmmintrin.h.

◆ _MM_MASK_OVERFLOW

#define _MM_MASK_OVERFLOW   0x0400

Definition at line 105 of file xmmintrin.h.

◆ _MM_MASK_UNDERFLOW

#define _MM_MASK_UNDERFLOW   0x0800

Definition at line 106 of file xmmintrin.h.

◆ _mm_maskmove_si64

#define _mm_maskmove_si64   _m_maskmovq

Definition at line 263 of file xmmintrin.h.

◆ _mm_max_pi16

#define _mm_max_pi16   _m_pmaxsw

Definition at line 256 of file xmmintrin.h.

◆ _mm_max_pu8

#define _mm_max_pu8   _m_pmaxub

Definition at line 257 of file xmmintrin.h.

◆ _mm_min_pi16

#define _mm_min_pi16   _m_pminsw

Definition at line 258 of file xmmintrin.h.

◆ _mm_min_pu8

#define _mm_min_pu8   _m_pminub

Definition at line 259 of file xmmintrin.h.

◆ _mm_movemask_pi8

#define _mm_movemask_pi8   _m_pmovmskb

Definition at line 260 of file xmmintrin.h.

◆ _mm_mulhi_pu16

#define _mm_mulhi_pu16   _m_pmulhuw

Definition at line 261 of file xmmintrin.h.

◆ _mm_prefetch

#define _mm_prefetch (   p,
  sel 
)     __builtin_prefetch((const void *)(p), (_MM_HINT_MS_TO_ALT(sel) >> 2) & 1, _MM_HINT_MS_TO_ALT(sel) & 0x3)

Definition at line 1116 of file xmmintrin.h.

◆ _MM_ROUND_DOWN

#define _MM_ROUND_DOWN   0x2000

Definition at line 111 of file xmmintrin.h.

◆ _MM_ROUND_MASK

#define _MM_ROUND_MASK   0x6000

Definition at line 109 of file xmmintrin.h.

◆ _MM_ROUND_NEAREST

#define _MM_ROUND_NEAREST   0x0000

Definition at line 110 of file xmmintrin.h.

◆ _MM_ROUND_TOWARD_ZERO

#define _MM_ROUND_TOWARD_ZERO   0x6000

Definition at line 113 of file xmmintrin.h.

◆ _MM_ROUND_UP

#define _MM_ROUND_UP   0x4000

Definition at line 112 of file xmmintrin.h.

◆ _mm_sad_pu8

#define _mm_sad_pu8   _m_psadbw

Definition at line 266 of file xmmintrin.h.

◆ _mm_set1_ps

#define _mm_set1_ps   _mm_set_ps1

Definition at line 248 of file xmmintrin.h.

◆ _MM_SET_EXCEPTION_MASK

#define _MM_SET_EXCEPTION_MASK (   __mask)     _mm_setcsr((_mm_getcsr() & ~_MM_MASK_MASK) | (__mask))

Definition at line 394 of file xmmintrin.h.

◆ _MM_SET_EXCEPTION_STATE

#define _MM_SET_EXCEPTION_STATE (   __mask)     _mm_setcsr((_mm_getcsr() & ~_MM_EXCEPT_MASK) | (__mask))

Definition at line 391 of file xmmintrin.h.

◆ _MM_SET_FLUSH_ZERO_MODE

#define _MM_SET_FLUSH_ZERO_MODE (   __mode)     _mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (__mode))

Definition at line 400 of file xmmintrin.h.

◆ _MM_SET_ROUNDING_MODE

#define _MM_SET_ROUNDING_MODE (   __mode)     _mm_setcsr((_mm_getcsr() & ~_MM_ROUND_MASK) | (__mode))

Definition at line 397 of file xmmintrin.h.

◆ _MM_SHUFFLE

#define _MM_SHUFFLE (   fp3,
  fp2,
  fp1,
  fp0 
)     (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | (fp0))

Definition at line 89 of file xmmintrin.h.

◆ _mm_shuffle_pi16

#define _mm_shuffle_pi16   _m_pshufw

Definition at line 262 of file xmmintrin.h.

◆ _mm_store1_ps

#define _mm_store1_ps   _mm_store_ps1

Definition at line 250 of file xmmintrin.h.

◆ _MM_TRANSPOSE4_PS

#define _MM_TRANSPOSE4_PS (   row0,
  row1,
  row2,
  row3 
)
Value:
do { \
__m128 t0 = _mm_unpacklo_ps(row0, row1); \
__m128 t1 = _mm_unpacklo_ps(row2, row3); \
__m128 t2 = _mm_unpackhi_ps(row0, row1); \
__m128 t3 = _mm_unpackhi_ps(row2, row3); \
(row0) = _mm_movelh_ps(t0, t1); \
(row1) = _mm_movehl_ps(t1, t0); \
(row2) = _mm_movelh_ps(t2, t3); \
(row3) = _mm_movehl_ps(t3, t2); \
} while (0)
__m128 _mm_unpackhi_ps(__m128 a, __m128 b)
__m128 _mm_movehl_ps(__m128 a, __m128 b)
__m128 _mm_movelh_ps(__m128 a, __m128 b)
__m128 _mm_unpacklo_ps(__m128 a, __m128 b)

Definition at line 367 of file xmmintrin.h.

Typedef Documentation

◆ __attribute__

typedef float __m128 __attribute__((__vector_size__(16), __aligned__(16)))

Definition at line 58 of file xmmintrin.h.

Function Documentation

◆ _mm_add_ps()

__INTRIN_INLINE_SSE __m128 _mm_add_ps ( __m128  a,
__m128  b 
)

Definition at line 554 of file xmmintrin.h.

555{
556 return (__m128)((__v4sf)__a + (__v4sf)__b);
557}

Referenced by F32vec4::operator+=().

◆ _mm_add_ss()

__INTRIN_INLINE_SSE __m128 _mm_add_ss ( __m128  a,
__m128  b 
)

Definition at line 548 of file xmmintrin.h.

549{
550 __a[0] += __b[0];
551 return __a;
552}

Referenced by F32vec1::operator+=().

◆ _mm_and_ps()

__INTRIN_INLINE_SSE __m128 _mm_and_ps ( __m128  a,
__m128  b 
)

Definition at line 642 of file xmmintrin.h.

643{
644 return (__m128)((__v4su)__a & (__v4su)__b);
645}

Referenced by F32vec1::operator&=(), and F32vec4::operator&=().

◆ _mm_andnot_ps()

__INTRIN_INLINE_SSE __m128 _mm_andnot_ps ( __m128  a,
__m128  b 
)

Definition at line 647 of file xmmintrin.h.

648{
649 return (__m128)(~(__v4su)__a & (__v4su)__b);
650}

◆ _mm_avg_pu16()

__INTRIN_INLINE_SSE __m64 _mm_avg_pu16 ( __m64  __a,
__m64  __b 
)

Definition at line 1227 of file xmmintrin.h.

1228{
1229 return (__m64)__builtin_ia32_pavgw((__v4hi)__a, (__v4hi)__b);
1230}

◆ _mm_avg_pu8()

__INTRIN_INLINE_SSE __m64 _mm_avg_pu8 ( __m64  __a,
__m64  __b 
)

Definition at line 1221 of file xmmintrin.h.

1222{
1223 return (__m64)__builtin_ia32_pavgb((__v8qi)__a, (__v8qi)__b);
1224}

◆ _mm_cmpeq_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmpeq_ps ( __m128  a,
__m128  b 
)

Definition at line 667 of file xmmintrin.h.

668{
669 return (__m128)__builtin_ia32_cmpeqps((__v4sf)__a, (__v4sf)__b);
670}

◆ _mm_cmpeq_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmpeq_ss ( __m128  a,
__m128  b 
)

Definition at line 662 of file xmmintrin.h.

663{
664 return (__m128)__builtin_ia32_cmpeqss((__v4sf)__a, (__v4sf)__b);
665}

◆ _mm_cmpge_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmpge_ps ( __m128  a,
__m128  b 
)

Definition at line 717 of file xmmintrin.h.

718{
719 return (__m128)__builtin_ia32_cmpleps((__v4sf)__b, (__v4sf)__a);
720}

◆ _mm_cmpge_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmpge_ss ( __m128  a,
__m128  b 
)

Definition at line 707 of file xmmintrin.h.

708{
709 __v4sf temp = __builtin_ia32_cmpless((__v4sf)__b, (__v4sf)__a);
710#ifdef __clang__
711 return (__m128)__builtin_shufflevector((__v4sf)__a, temp, 4, 1, 2, 3);
712#else
713 return (__m128)__builtin_ia32_movss((__v4sf)__a, temp);
714#endif
715}
static calc_node_t temp
Definition: rpn_ieee.c:38

◆ _mm_cmpgt_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmpgt_ps ( __m128  a,
__m128  b 
)

Definition at line 702 of file xmmintrin.h.

703{
704 return (__m128)__builtin_ia32_cmpltps((__v4sf)__b, (__v4sf)__a);
705}

◆ _mm_cmpgt_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmpgt_ss ( __m128  a,
__m128  b 
)

Definition at line 692 of file xmmintrin.h.

693{
694 __v4sf temp = __builtin_ia32_cmpltss((__v4sf)__b, (__v4sf)__a);
695#ifdef __clang__
696 return (__m128)__builtin_shufflevector((__v4sf)__a, temp, 4, 1, 2, 3);
697#else
698 return (__m128)__builtin_ia32_movss((__v4sf)__a, temp);
699#endif
700}

◆ _mm_cmple_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmple_ps ( __m128  a,
__m128  b 
)

Definition at line 687 of file xmmintrin.h.

688{
689 return (__m128)__builtin_ia32_cmpleps((__v4sf)__a, (__v4sf)__b);
690}

◆ _mm_cmple_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmple_ss ( __m128  a,
__m128  b 
)

Definition at line 682 of file xmmintrin.h.

683{
684 return (__m128)__builtin_ia32_cmpless((__v4sf)__a, (__v4sf)__b);
685}

◆ _mm_cmplt_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmplt_ps ( __m128  a,
__m128  b 
)

Definition at line 677 of file xmmintrin.h.

678{
679 return (__m128)__builtin_ia32_cmpltps((__v4sf)__a, (__v4sf)__b);
680}

◆ _mm_cmplt_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmplt_ss ( __m128  a,
__m128  b 
)

Definition at line 672 of file xmmintrin.h.

673{
674 return (__m128)__builtin_ia32_cmpltss((__v4sf)__a, (__v4sf)__b);
675}

◆ _mm_cmpneq_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmpneq_ps ( __m128  a,
__m128  b 
)

Definition at line 727 of file xmmintrin.h.

728{
729 return (__m128)__builtin_ia32_cmpneqps((__v4sf)__a, (__v4sf)__b);
730}

◆ _mm_cmpneq_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmpneq_ss ( __m128  a,
__m128  b 
)

Definition at line 722 of file xmmintrin.h.

723{
724 return (__m128)__builtin_ia32_cmpneqss((__v4sf)__a, (__v4sf)__b);
725}

◆ _mm_cmpnge_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmpnge_ps ( __m128  a,
__m128  b 
)

Definition at line 777 of file xmmintrin.h.

778{
779 return (__m128)__builtin_ia32_cmpnleps((__v4sf)__b, (__v4sf)__a);
780}

◆ _mm_cmpnge_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmpnge_ss ( __m128  a,
__m128  b 
)

Definition at line 767 of file xmmintrin.h.

768{
769 __v4sf temp = (__v4sf)__builtin_ia32_cmpnless((__v4sf)__b, (__v4sf)__a);
770#ifdef __clang__
771 return (__m128)__builtin_shufflevector((__v4sf)__a, temp, 4, 1, 2, 3);
772#else
773 return (__m128)__builtin_ia32_movss((__v4sf)__a, temp);
774#endif
775}

◆ _mm_cmpngt_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmpngt_ps ( __m128  a,
__m128  b 
)

Definition at line 762 of file xmmintrin.h.

763{
764 return (__m128)__builtin_ia32_cmpnltps((__v4sf)__b, (__v4sf)__a);
765}

◆ _mm_cmpngt_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmpngt_ss ( __m128  a,
__m128  b 
)

Definition at line 752 of file xmmintrin.h.

753{
754 __v4sf temp = __builtin_ia32_cmpnltss((__v4sf)__b, (__v4sf)__a);
755#ifdef __clang__
756 return (__m128)__builtin_shufflevector((__v4sf)__a, temp, 4, 1, 2, 3);
757#else
758 return (__m128)__builtin_ia32_movss((__v4sf)__a, temp);
759#endif
760}

◆ _mm_cmpnle_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmpnle_ps ( __m128  a,
__m128  b 
)

Definition at line 747 of file xmmintrin.h.

748{
749 return (__m128)__builtin_ia32_cmpnleps((__v4sf)__a, (__v4sf)__b);
750}

◆ _mm_cmpnle_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmpnle_ss ( __m128  a,
__m128  b 
)

Definition at line 742 of file xmmintrin.h.

743{
744 return (__m128)__builtin_ia32_cmpnless((__v4sf)__a, (__v4sf)__b);
745}

◆ _mm_cmpnlt_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmpnlt_ps ( __m128  a,
__m128  b 
)

Definition at line 737 of file xmmintrin.h.

738{
739 return (__m128)__builtin_ia32_cmpnltps((__v4sf)__a, (__v4sf)__b);
740}

◆ _mm_cmpnlt_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmpnlt_ss ( __m128  a,
__m128  b 
)

Definition at line 732 of file xmmintrin.h.

733{
734 return (__m128)__builtin_ia32_cmpnltss((__v4sf)__a, (__v4sf)__b);
735}

◆ _mm_cmpord_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmpord_ps ( __m128  a,
__m128  b 
)

Definition at line 787 of file xmmintrin.h.

788{
789 return (__m128)__builtin_ia32_cmpordps((__v4sf)__a, (__v4sf)__b);
790}

◆ _mm_cmpord_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmpord_ss ( __m128  a,
__m128  b 
)

Definition at line 782 of file xmmintrin.h.

783{
784 return (__m128)__builtin_ia32_cmpordss((__v4sf)__a, (__v4sf)__b);
785}

◆ _mm_cmpunord_ps()

__INTRIN_INLINE_SSE __m128 _mm_cmpunord_ps ( __m128  a,
__m128  b 
)

Definition at line 797 of file xmmintrin.h.

798{
799 return (__m128)__builtin_ia32_cmpunordps((__v4sf)__a, (__v4sf)__b);
800}

◆ _mm_cmpunord_ss()

__INTRIN_INLINE_SSE __m128 _mm_cmpunord_ss ( __m128  a,
__m128  b 
)

Definition at line 792 of file xmmintrin.h.

793{
794 return (__m128)__builtin_ia32_cmpunordss((__v4sf)__a, (__v4sf)__b);
795}

◆ _mm_comieq_ss()

__INTRIN_INLINE_SSE int _mm_comieq_ss ( __m128  a,
__m128  b 
)

Definition at line 802 of file xmmintrin.h.

803{
804 return __builtin_ia32_comieq((__v4sf)__a, (__v4sf)__b);
805}

◆ _mm_comige_ss()

__INTRIN_INLINE_SSE int _mm_comige_ss ( __m128  a,
__m128  b 
)

Definition at line 822 of file xmmintrin.h.

823{
824 return __builtin_ia32_comige((__v4sf)__a, (__v4sf)__b);
825}

◆ _mm_comigt_ss()

__INTRIN_INLINE_SSE int _mm_comigt_ss ( __m128  a,
__m128  b 
)

Definition at line 817 of file xmmintrin.h.

818{
819 return __builtin_ia32_comigt((__v4sf)__a, (__v4sf)__b);
820}

◆ _mm_comile_ss()

__INTRIN_INLINE_SSE int _mm_comile_ss ( __m128  a,
__m128  b 
)

Definition at line 812 of file xmmintrin.h.

813{
814 return __builtin_ia32_comile((__v4sf)__a, (__v4sf)__b);
815}

◆ _mm_comilt_ss()

__INTRIN_INLINE_SSE int _mm_comilt_ss ( __m128  a,
__m128  b 
)

Definition at line 807 of file xmmintrin.h.

808{
809 return __builtin_ia32_comilt((__v4sf)__a, (__v4sf)__b);
810}

◆ _mm_comineq_ss()

__INTRIN_INLINE_SSE int _mm_comineq_ss ( __m128  a,
__m128  b 
)

Definition at line 827 of file xmmintrin.h.

828{
829 return __builtin_ia32_comineq((__v4sf)__a, (__v4sf)__b);
830}

◆ _mm_cvt_si2ss()

__m128 _mm_cvt_si2ss ( __m128  a,
int  b 
)

Referenced by F32vec1::F32vec1(), and IntToF32vec4().

◆ _mm_cvt_ss2si()

int _mm_cvt_ss2si ( __m128  a)

◆ _mm_cvtpi32_ps()

__INTRIN_INLINE_SSE __m128 _mm_cvtpi32_ps ( __m128  __a,
__m64  __b 
)

Definition at line 916 of file xmmintrin.h.

917{
918 return __builtin_ia32_cvtpi2ps((__v4sf)__a, (__v2si)__b);
919}

◆ _mm_cvtps_pi32()

__INTRIN_INLINE_SSE __m64 _mm_cvtps_pi32 ( __m128  __a)

Definition at line 876 of file xmmintrin.h.

877{
878 return (__m64)__builtin_ia32_cvtps2pi((__v4sf)__a);
879}

◆ _mm_cvtsi32_ss()

__INTRIN_INLINE_SSE __m128 _mm_cvtsi32_ss ( __m128  __a,
int  __b 
)

Definition at line 901 of file xmmintrin.h.

902{
903 __a[0] = __b;
904 return __a;
905}

◆ _mm_cvtss_f32()

__INTRIN_INLINE_SSE float _mm_cvtss_f32 ( __m128  a)

Definition at line 921 of file xmmintrin.h.

922{
923 return __a[0];
924}

◆ _mm_cvtss_si32()

__INTRIN_INLINE_SSE int _mm_cvtss_si32 ( __m128  __a)

Definition at line 863 of file xmmintrin.h.

864{
865 return __builtin_ia32_cvtss2si((__v4sf)__a);
866}

◆ _mm_cvtt_ss2si()

int _mm_cvtt_ss2si ( __m128  a)

Referenced by F32vec4ToInt(), and Fvec32s1_SELECT().

◆ _mm_cvttps_pi32()

__INTRIN_INLINE_SSE __m64 _mm_cvttps_pi32 ( __m128  __a)

Definition at line 895 of file xmmintrin.h.

896{
897 return (__m64)__builtin_ia32_cvttps2pi((__v4sf)__a);
898}

◆ _mm_cvttss_si32()

__INTRIN_INLINE_SSE int _mm_cvttss_si32 ( __m128  __a)

Definition at line 882 of file xmmintrin.h.

883{
884 return __builtin_ia32_cvttss2si((__v4sf)__a);
885}

◆ _mm_div_ps()

__INTRIN_INLINE_SSE __m128 _mm_div_ps ( __m128  a,
__m128  b 
)

Definition at line 587 of file xmmintrin.h.

588{
589 return (__m128)((__v4sf)__a / (__v4sf)__b);
590}

Referenced by F32vec4::operator/=(), and TestSSEExceptions().

◆ _mm_div_ss()

__INTRIN_INLINE_SSE __m128 _mm_div_ss ( __m128  a,
__m128  b 
)

Definition at line 581 of file xmmintrin.h.

582{
583 __a[0] /= __b[0];
584 return __a;
585}

Referenced by F32vec1::operator/=().

◆ _mm_extract_pi16()

__INTRIN_INLINE_SSE int _mm_extract_pi16 ( __m64 const  __a,
int const  __n 
)

Definition at line 1154 of file xmmintrin.h.

1155{
1156 return (unsigned short)__builtin_ia32_vec_ext_v4hi((__v4hi)__a, __n);
1157}
return __n
Definition: _algo.h:75

◆ _mm_getcsr()

Definition at line 535 of file xmmintrin.h.

536{
537 return __builtin_ia32_stmxcsr();
538}

Referenced by _clearfp(), _get_native_fpcw(), _set_statfp(), _statusfp(), get_native_fpcw(), KiSaveProcessorControlState(), and TestSSEExceptions().

◆ _mm_insert_pi16()

__INTRIN_INLINE_SSE __m64 _mm_insert_pi16 ( __m64 const  __a,
int const  __d,
int const  __n 
)

Definition at line 1160 of file xmmintrin.h.

1161{
1162 return (__m64)__builtin_ia32_vec_set_v4hi ((__v4hi)__a, __d, __n);
1163}

◆ _mm_load1_ps()

__INTRIN_INLINE_SSE __m128 _mm_load1_ps ( const float __p)

Definition at line 962 of file xmmintrin.h.

963{
964 return _mm_set1_ps(*__p);
965}
#define _mm_set1_ps
Definition: xmmintrin.h:248

◆ _mm_load_ps()

__INTRIN_INLINE_SSE __m128 _mm_load_ps ( float const p)

Definition at line 967 of file xmmintrin.h.

968{
969 return *(const __m128*)__p;
970}

Referenced by _mm_loadr_ps().

◆ _mm_load_ps1()

__m128 _mm_load_ps1 ( float const p)

◆ _mm_load_ss()

__INTRIN_INLINE_SSE __m128 _mm_load_ss ( float const p)

Definition at line 956 of file xmmintrin.h.

957{
958 return _mm_set_ss(*__p);
959}
__m128 _mm_set_ss(float a)
Definition: xmmintrin.h:1000

Referenced by acosf(), asinf(), and sqrtf().

◆ _mm_loadh_pi()

__INTRIN_INLINE_SSE __m128 _mm_loadh_pi ( __m128  a,
__m64 const p 
)

Definition at line 926 of file xmmintrin.h.

927{
928#ifdef __clang__
929 typedef float __mm_loadh_pi_v2f32 __attribute__((__vector_size__(8)));
930 struct __mm_loadh_pi_struct {
931 __mm_loadh_pi_v2f32 __u;
932 } __attribute__((__packed__, __may_alias__));
933 __mm_loadh_pi_v2f32 __b = ((const struct __mm_loadh_pi_struct*)__p)->__u;
934 __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1);
935 return __builtin_shufflevector(__a, __bb, 0, 1, 4, 5);
936#else
937 return (__m128)__builtin_ia32_loadhps(__a, __p);
938#endif
939}
float __v4sf __attribute__((__vector_size__(16)))
Definition: xmmintrin.h:58

◆ _mm_loadl_pi()

__INTRIN_INLINE_SSE __m128 _mm_loadl_pi ( __m128  a,
__m64 const p 
)

Definition at line 941 of file xmmintrin.h.

942{
943#ifdef __clang__
944 typedef float __mm_loadl_pi_v2f32 __attribute__((__vector_size__(8)));
945 struct __mm_loadl_pi_struct {
946 __mm_loadl_pi_v2f32 __u;
947 } __attribute__((__packed__, __may_alias__));
948 __mm_loadl_pi_v2f32 __b = ((const struct __mm_loadl_pi_struct*)__p)->__u;
949 __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1);
950 return __builtin_shufflevector(__a, __bb, 4, 5, 2, 3);
951#else
952 return (__m128)__builtin_ia32_loadlps(__a, __p);
953#endif
954}

◆ _mm_loadr_ps()

__INTRIN_INLINE_SSE __m128 _mm_loadr_ps ( float const p)

Definition at line 980 of file xmmintrin.h.

981{
982 __m128 __a = _mm_load_ps(__p);
983#ifdef __clang__
984 return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0);
985#else
986 return (__m128)__builtin_ia32_shufps(__a, __a, _MM_SHUFFLE(0,1,2,3));
987#endif
988}
__m128 _mm_load_ps(float const *p)
Definition: xmmintrin.h:967
#define _MM_SHUFFLE(fp3, fp2, fp1, fp0)
Definition: xmmintrin.h:89

◆ _mm_loadu_ps()

__INTRIN_INLINE_SSE __m128 _mm_loadu_ps ( float const p)

Definition at line 972 of file xmmintrin.h.

973{
974 struct __loadu_ps {
975 __m128_u __v;
976 } __attribute__((__packed__, __may_alias__));
977 return ((const struct __loadu_ps*)__p)->__v;
978}

Referenced by loadu().

◆ _mm_maskmove_si64()

__INTRIN_INLINE_SSE void _mm_maskmove_si64 ( __m64  __d,
__m64  __n,
char __p 
)

Definition at line 1215 of file xmmintrin.h.

1216{
1217 __builtin_ia32_maskmovq((__v8qi)__d, (__v8qi)__n, __p);
1218}

◆ _mm_max_pi16()

__INTRIN_INLINE_SSE __m64 _mm_max_pi16 ( __m64  __a,
__m64  __b 
)

Definition at line 1168 of file xmmintrin.h.

1169{
1170 return (__m64)__builtin_ia32_pmaxsw((__v4hi)__a, (__v4hi)__b);
1171}

◆ _mm_max_ps()

__INTRIN_INLINE_SSE __m128 _mm_max_ps ( __m128  a,
__m128  b 
)

Definition at line 637 of file xmmintrin.h.

638{
639 return __builtin_ia32_maxps((__v4sf)__a, (__v4sf)__b);
640}

◆ _mm_max_pu8()

__INTRIN_INLINE_SSE __m64 _mm_max_pu8 ( __m64  __a,
__m64  __b 
)

Definition at line 1174 of file xmmintrin.h.

1175{
1176 return (__m64)__builtin_ia32_pmaxub((__v8qi)__a, (__v8qi)__b);
1177}

◆ _mm_max_ss()

__INTRIN_INLINE_SSE __m128 _mm_max_ss ( __m128  a,
__m128  b 
)

Definition at line 632 of file xmmintrin.h.

633{
634 return __builtin_ia32_maxss((__v4sf)__a, (__v4sf)__b);
635}

◆ _mm_min_pi16()

__INTRIN_INLINE_SSE __m64 _mm_min_pi16 ( __m64  __a,
__m64  __b 
)

Definition at line 1180 of file xmmintrin.h.

1181{
1182 return (__m64)__builtin_ia32_pminsw((__v4hi)__a, (__v4hi)__b);
1183}

◆ _mm_min_ps()

__INTRIN_INLINE_SSE __m128 _mm_min_ps ( __m128  a,
__m128  b 
)

Definition at line 627 of file xmmintrin.h.

628{
629 return __builtin_ia32_minps((__v4sf)__a, (__v4sf)__b);
630}

◆ _mm_min_pu8()

__INTRIN_INLINE_SSE __m64 _mm_min_pu8 ( __m64  __a,
__m64  __b 
)

Definition at line 1186 of file xmmintrin.h.

1187{
1188 return (__m64)__builtin_ia32_pminub((__v8qi)__a, (__v8qi)__b);
1189}

◆ _mm_min_ss()

__INTRIN_INLINE_SSE __m128 _mm_min_ss ( __m128  a,
__m128  b 
)

Definition at line 622 of file xmmintrin.h.

623{
624 return __builtin_ia32_minss((__v4sf)__a, (__v4sf)__b);
625}

◆ _mm_move_ss()

__m128 _mm_move_ss ( __m128  a,
__m128  b 
)

◆ _mm_movehl_ps()

__m128 _mm_movehl_ps ( __m128  a,
__m128  b 
)

◆ _mm_movelh_ps()

__m128 _mm_movelh_ps ( __m128  a,
__m128  b 
)

◆ _mm_movemask_pi8()

__INTRIN_INLINE_SSE int _mm_movemask_pi8 ( __m64  __a)

Definition at line 1192 of file xmmintrin.h.

1193{
1194 return __builtin_ia32_pmovmskb((__v8qi)__a);
1195}

◆ _mm_movemask_ps()

int _mm_movemask_ps ( __m128  a)

Referenced by move_mask().

◆ _mm_mul_ps()

__INTRIN_INLINE_SSE __m128 _mm_mul_ps ( __m128  a,
__m128  b 
)

Definition at line 576 of file xmmintrin.h.

577{
578 return (__m128)((__v4sf)__a * (__v4sf)__b);
579}

Referenced by F32vec4::operator*=().

◆ _mm_mul_ss()

__INTRIN_INLINE_SSE __m128 _mm_mul_ss ( __m128  a,
__m128  b 
)

Definition at line 570 of file xmmintrin.h.

571{
572 __a[0] *= __b[0];
573 return __a;
574}

Referenced by F32vec1::operator*=().

◆ _mm_mulhi_pu16()

__INTRIN_INLINE_SSE __m64 _mm_mulhi_pu16 ( __m64  __a,
__m64  __b 
)

Definition at line 1198 of file xmmintrin.h.

1199{
1200 return (__m64)__builtin_ia32_pmulhuw((__v4hi)__a, (__v4hi)__b);
1201}

◆ _mm_or_ps()

__INTRIN_INLINE_SSE __m128 _mm_or_ps ( __m128  a,
__m128  b 
)

Definition at line 652 of file xmmintrin.h.

653{
654 return (__m128)((__v4su)__a | (__v4su)__b);
655}

Referenced by F32vec1::operator|=(), and F32vec4::operator|=().

◆ _mm_prefetch()

void _mm_prefetch ( _In_ char const p,
_In_ int  i 
)

◆ _mm_rcp_ps()

__INTRIN_INLINE_SSE __m128 _mm_rcp_ps ( __m128  a)

Definition at line 607 of file xmmintrin.h.

608{
609 return (__m128)__builtin_ia32_rcpps((__v4sf)__a);
610}

◆ _mm_rcp_ss()

__INTRIN_INLINE_SSE __m128 _mm_rcp_ss ( __m128  a)

Definition at line 602 of file xmmintrin.h.

603{
604 return (__m128)__builtin_ia32_rcpss((__v4sf)__a);
605}

◆ _mm_rsqrt_ps()

__INTRIN_INLINE_SSE __m128 _mm_rsqrt_ps ( __m128  a)

Definition at line 617 of file xmmintrin.h.

618{
619 return __builtin_ia32_rsqrtps((__v4sf)__a);
620}

◆ _mm_rsqrt_ss()

__INTRIN_INLINE_SSE __m128 _mm_rsqrt_ss ( __m128  a)

Definition at line 612 of file xmmintrin.h.

613{
614 return __builtin_ia32_rsqrtss((__v4sf)__a);
615}

◆ _mm_sad_pu8()

__INTRIN_INLINE_SSE __m64 _mm_sad_pu8 ( __m64  __a,
__m64  __b 
)

Definition at line 1233 of file xmmintrin.h.

1234{
1235 return (__m64)__builtin_ia32_psadbw((__v8qi)__a, (__v8qi)__b);
1236}

◆ _mm_set1_ps()

__INTRIN_INLINE_SSE __m128 _mm_set1_ps ( float  __w)

Definition at line 1006 of file xmmintrin.h.

1007{
1008 return __extension__ (__m128){ __w, __w, __w, __w };
1009}

◆ _mm_set_ps()

__INTRIN_INLINE_SSE __m128 _mm_set_ps ( float  e3,
float  e2,
float  e1,
float  e0 
)

Definition at line 1011 of file xmmintrin.h.

1012{
1013 return __extension__ (__m128){ __w, __x, __y, __z };
1014}

Referenced by F32vec4::F32vec4().

◆ _mm_set_ps1()

__m128 _mm_set_ps1 ( float  a)

◆ _mm_set_ss()

__INTRIN_INLINE_SSE __m128 _mm_set_ss ( float  a)

Definition at line 1000 of file xmmintrin.h.

1001{
1002 return __extension__ (__m128){ __w, 0, 0, 0 };
1003}

Referenced by _mm_load_ss(), and F32vec1::F32vec1().

◆ _mm_setcsr()

__INTRIN_INLINE_SSE void _mm_setcsr ( unsigned int  a)

Definition at line 542 of file xmmintrin.h.

543{
544 __builtin_ia32_ldmxcsr(a);
545}
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

Referenced by _clearfp(), _fpreset(), _set_native_fpcw(), _set_statfp(), KiInitializeCpu(), KiRestoreProcessorControlState(), set_native_fpcw(), and TestSSEExceptions().

◆ _mm_setr_ps()

__INTRIN_INLINE_SSE __m128 _mm_setr_ps ( float  e3,
float  e2,
float  e1,
float  e0 
)

Definition at line 1016 of file xmmintrin.h.

1017{
1018 return __extension__ (__m128){ __z, __y, __x, __w };
1019}

◆ _mm_setzero_ps()

__INTRIN_INLINE_SSE __m128 _mm_setzero_ps ( void  )

Definition at line 1021 of file xmmintrin.h.

1022{
1023 return __extension__ (__m128){ 0, 0, 0, 0 };
1024}

◆ _mm_sfence()

__INTRIN_INLINE_SSE void _mm_sfence ( void  )

Definition at line 1140 of file xmmintrin.h.

1141{
1142 __builtin_ia32_sfence();
1143}

◆ _mm_shuffle_pi16()

__INTRIN_INLINE_MMX __m64 _mm_shuffle_pi16 ( __m64  __a,
int const  __n 
)

Definition at line 1208 of file xmmintrin.h.

1209{
1210 return (__m64) __builtin_ia32_pshufw ((__v4hi)__a, __n);
1211}

◆ _mm_shuffle_ps()

__m128 _mm_shuffle_ps ( __m128  a,
__m128  b,
unsigned int  imm8 
)

◆ _mm_sqrt_ps()

__INTRIN_INLINE_SSE __m128 _mm_sqrt_ps ( __m128  a)

Definition at line 597 of file xmmintrin.h.

598{
599 return __builtin_ia32_sqrtps((__v4sf)__a);
600}

◆ _mm_sqrt_ss()

__INTRIN_INLINE_SSE __m128 _mm_sqrt_ss ( __m128  a)

Definition at line 592 of file xmmintrin.h.

593{
594 return (__m128)__builtin_ia32_sqrtss((__v4sf)__a);
595}

Referenced by acosf(), asinf(), and sqrtf().

◆ _mm_store1_ps()

__INTRIN_INLINE_SSE void _mm_store1_ps ( float __p,
__m128  __a 
)

Definition at line 1068 of file xmmintrin.h.

1069{
1070 // FIXME: Should we use a temp instead?
1071#ifdef __clang__
1072 __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 0, 0);
1073#else
1074 __a = __builtin_ia32_shufps(__a, __a, _MM_SHUFFLE(0,0,0,0));
1075#endif
1076 _mm_store_ps(__p, __a);
1077}
void _mm_store_ps(float *p, __m128 a)
Definition: xmmintrin.h:1062

◆ _mm_store_ps()

__INTRIN_INLINE_SSE void _mm_store_ps ( float p,
__m128  a 
)

Definition at line 1062 of file xmmintrin.h.

1063{
1064 *(__m128*)__p = __a;
1065}

Referenced by _mm_store1_ps(), and _mm_storer_ps().

◆ _mm_store_ps1()

void _mm_store_ps1 ( float p,
__m128  a 
)

◆ _mm_store_ss()

__INTRIN_INLINE_SSE void _mm_store_ss ( float p,
__m128  a 
)

Definition at line 1052 of file xmmintrin.h.

1053{
1054 *__p = ((__v4sf)__a)[0];
1055}

Referenced by acosf(), asinf(), and sqrtf().

◆ _mm_storeh_pi()

__INTRIN_INLINE_SSE void _mm_storeh_pi ( __m64 *  p,
__m128  a 
)

Definition at line 1026 of file xmmintrin.h.

1027{
1028#ifdef __clang__
1029 typedef float __mm_storeh_pi_v2f32 __attribute__((__vector_size__(8)));
1030 struct __mm_storeh_pi_struct {
1031 __mm_storeh_pi_v2f32 __u;
1032 } __attribute__((__packed__, __may_alias__));
1033 ((struct __mm_storeh_pi_struct*)__p)->__u = __builtin_shufflevector(__a, __a, 2, 3);
1034#else
1035 __builtin_ia32_storehps(__p, __a);
1036#endif
1037}

◆ _mm_storel_pi()

__INTRIN_INLINE_SSE void _mm_storel_pi ( __m64 *  p,
__m128  a 
)

Definition at line 1039 of file xmmintrin.h.

1040{
1041#ifdef __clang__
1042 typedef float __mm_storeh_pi_v2f32 __attribute__((__vector_size__(8)));
1043 struct __mm_storeh_pi_struct {
1044 __mm_storeh_pi_v2f32 __u;
1045 } __attribute__((__packed__, __may_alias__));
1046 ((struct __mm_storeh_pi_struct*)__p)->__u = __builtin_shufflevector(__a, __a, 0, 1);
1047#else
1048 __builtin_ia32_storelps(__p, __a);
1049#endif
1050}

◆ _mm_storer_ps()

__INTRIN_INLINE_SSE void _mm_storer_ps ( float p,
__m128  a 
)

Definition at line 1079 of file xmmintrin.h.

1080{
1081#ifdef __clang__
1082 __m128 __tmp = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0);
1083#else
1084 __m128 __tmp = __builtin_ia32_shufps(__a, __a, _MM_SHUFFLE(0,1,2,3));
1085#endif
1086 _mm_store_ps(__p, __tmp);
1087}

◆ _mm_storeu_ps()

__INTRIN_INLINE_SSE void _mm_storeu_ps ( float p,
__m128  a 
)

Definition at line 1057 of file xmmintrin.h.

1058{
1059 *(__m128_u *)__p = __a;
1060}

Referenced by storeu().

◆ _mm_stream_pi()

__INTRIN_INLINE_SSE void _mm_stream_pi ( __m64 *  __p,
__m64  __a 
)

Definition at line 1121 of file xmmintrin.h.

1122{
1123#ifdef __clang__
1124 __builtin_ia32_movntq((__v1di*)__p, __a);
1125#else
1126 __builtin_ia32_movntq((long long unsigned int *)__p, (long long unsigned int)__a);
1127#endif
1128}

Referenced by store_nta().

◆ _mm_stream_ps()

__INTRIN_INLINE_SSE void _mm_stream_ps ( float p,
__m128  a 
)

Definition at line 1130 of file xmmintrin.h.

1131{
1132#ifdef __clang__
1133 __builtin_nontemporal_store((__v4sf)__a, (__v4sf*)__p);
1134#else
1135 __builtin_ia32_movntps(__p, (__v4sf)__a);
1136#endif
1137}

Referenced by store_nta().

◆ _mm_sub_ps()

__INTRIN_INLINE_SSE __m128 _mm_sub_ps ( __m128  a,
__m128  b 
)

Definition at line 565 of file xmmintrin.h.

566{
567 return (__m128)((__v4sf)__a - (__v4sf)__b);
568}

Referenced by F32vec4::operator-=().

◆ _mm_sub_ss()

__INTRIN_INLINE_SSE __m128 _mm_sub_ss ( __m128  a,
__m128  b 
)

Definition at line 559 of file xmmintrin.h.

560{
561 __a[0] -= __b[0];
562 return __a;
563}

Referenced by F32vec1::operator-=().

◆ _mm_ucomieq_ss()

__INTRIN_INLINE_SSE int _mm_ucomieq_ss ( __m128  a,
__m128  b 
)

Definition at line 832 of file xmmintrin.h.

833{
834 return __builtin_ia32_ucomieq((__v4sf)__a, (__v4sf)__b);
835}

◆ _mm_ucomige_ss()

__INTRIN_INLINE_SSE int _mm_ucomige_ss ( __m128  a,
__m128  b 
)

Definition at line 852 of file xmmintrin.h.

853{
854 return __builtin_ia32_ucomige((__v4sf)__a, (__v4sf)__b);
855}

◆ _mm_ucomigt_ss()

__INTRIN_INLINE_SSE int _mm_ucomigt_ss ( __m128  a,
__m128  b 
)

Definition at line 847 of file xmmintrin.h.

848{
849 return __builtin_ia32_ucomigt((__v4sf)__a, (__v4sf)__b);
850}

◆ _mm_ucomile_ss()

__INTRIN_INLINE_SSE int _mm_ucomile_ss ( __m128  a,
__m128  b 
)

Definition at line 842 of file xmmintrin.h.

843{
844 return __builtin_ia32_ucomile((__v4sf)__a, (__v4sf)__b);
845}

◆ _mm_ucomilt_ss()

__INTRIN_INLINE_SSE int _mm_ucomilt_ss ( __m128  a,
__m128  b 
)

Definition at line 837 of file xmmintrin.h.

838{
839 return __builtin_ia32_ucomilt((__v4sf)__a, (__v4sf)__b);
840}

◆ _mm_ucomineq_ss()

__INTRIN_INLINE_SSE int _mm_ucomineq_ss ( __m128  a,
__m128  b 
)

Definition at line 857 of file xmmintrin.h.

858{
859 return __builtin_ia32_ucomineq((__v4sf)__a, (__v4sf)__b);
860}

◆ _mm_undefined_ps()

__INTRIN_INLINE_SSE __m128 _mm_undefined_ps ( void  )

Definition at line 990 of file xmmintrin.h.

991{
992#ifdef __clang__
993 return (__m128)__builtin_ia32_undef128();
994#else
995 __m128 undef = undef;
996 return undef;
997#endif
998}

◆ _mm_unpackhi_ps()

__m128 _mm_unpackhi_ps ( __m128  a,
__m128  b 
)

Referenced by unpack_high().

◆ _mm_unpacklo_ps()

__m128 _mm_unpacklo_ps ( __m128  a,
__m128  b 
)

Referenced by unpack_low().

◆ _mm_xor_ps()

__INTRIN_INLINE_SSE __m128 _mm_xor_ps ( __m128  a,
__m128  b 
)

Definition at line 657 of file xmmintrin.h.

658{
659 return (__m128)((__v4su)__a ^ (__v4su)__b);
660}

Referenced by F32vec1::operator^=(), and F32vec4::operator^=().