ReactOS  0.4.15-dev-5089-g555bec6
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_T1
Definition: xmmintrin.h:79
#define _MM_HINT_T1_ALT
Definition: xmmintrin.h:1092
#define _MM_HINT_T0_ALT
Definition: xmmintrin.h:1091
#define _MM_HINT_NTA
Definition: xmmintrin.h:77
#define _MM_HINT_T2
Definition: xmmintrin.h:80
#define _MM_HINT_ENTA_ALT
Definition: xmmintrin.h:1094
#define _MM_HINT_T2_ALT
Definition: xmmintrin.h:1093
#define _MM_HINT_ENTA
Definition: xmmintrin.h:81
#define _MM_HINT_NTA_ALT
Definition: xmmintrin.h:1090
#define _MM_HINT_T0
Definition: xmmintrin.h:78

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_unpacklo_ps(__m128 a, __m128 b)
__m128 _mm_movelh_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 F32vec4::operator &=(), and F32vec1::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 }
static calc_node_t temp
Definition: rpn_ieee.c:38

◆ _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 }
static calc_node_t temp
Definition: rpn_ieee.c:38

◆ _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 }
static calc_node_t temp
Definition: rpn_ieee.c:38

◆ _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(), _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 }
return __n
Definition: _algo.h:75

◆ _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

◆ _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 }
float __v4sf __attribute__((__vector_size__(16)))
Definition: xmmintrin.h:58

◆ _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 }
float __v4sf __attribute__((__vector_size__(16)))
Definition: xmmintrin.h:58

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 }
return __n
Definition: _algo.h:75

◆ _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 F32vec4::operator|=(), and F32vec1::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(), 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 }
return __n
Definition: _algo.h:75

◆ _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 }

◆ _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
#define _MM_SHUFFLE(fp3, fp2, fp1, fp0)
Definition: xmmintrin.h:89

◆ _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 }

◆ _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 }
float __v4sf __attribute__((__vector_size__(16)))
Definition: xmmintrin.h:58

◆ _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 }
float __v4sf __attribute__((__vector_size__(16)))
Definition: xmmintrin.h:58

◆ _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 }
void _mm_store_ps(float *p, __m128 a)
Definition: xmmintrin.h:1062
#define _MM_SHUFFLE(fp3, fp2, fp1, fp0)
Definition: xmmintrin.h:89

◆ _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 F32vec4::operator ^=(), and F32vec1::operator ^=().