ReactOS 0.4.16-dev-289-g096a551
emmintrin.h File Reference
#include <vcruntime.h>
#include <xmmintrin.h>
Include dependency graph for emmintrin.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _INCLUDED_EMM
 
#define __ATTRIBUTE_SSE2__   __attribute__((__target__("sse2")))
 
#define __ATTRIBUTE_MMXSSE2__   __attribute__((__target__("mmx,sse2")))
 
#define __INTRIN_INLINE_SSE2   __INTRIN_INLINE __ATTRIBUTE_SSE2__
 
#define __INTRIN_INLINE_MMXSSE2   __INTRIN_INLINE __ATTRIBUTE_MMXSSE2__
 
#define _mm_set_pd1(a)   _mm_set1_pd(a)
 
#define _mm_load_pd1(p)   _mm_load1_pd(p)
 
#define _mm_store_pd1(p, a)   _mm_store1_pd((p), (a))
 
#define _mm_bslli_si128   _mm_slli_si128
 
#define _mm_bsrli_si128   _mm_srli_si128
 
#define _mm_stream_si64   _mm_stream_si64x
 
#define _MM_SHUFFLE2(fp1, fp0)    (((fp1) << 1) | (fp0))
 
#define _mm_slli_si128(a, imm)    ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)))
 
#define _mm_srli_si128(a, imm)    ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)))
 
#define _mm_extract_epi16(a, imm)
 
#define _mm_insert_epi16(a, b, imm)
 
#define _mm_shuffle_epi32(a, imm)    ((__m128i)__builtin_ia32_pshufd((__v4si)(__m128i)(a), (int)(imm)))
 
#define _mm_shufflelo_epi16(a, imm)    ((__m128i)__builtin_ia32_pshuflw((__v8hi)(__m128i)(a), (int)(imm)))
 
#define _mm_shufflehi_epi16(a, imm)    ((__m128i)__builtin_ia32_pshufhw((__v8hi)(__m128i)(a), (int)(imm)))
 
#define _mm_shuffle_pd(a, b, i)
 

Typedefs

typedef double __m128d __attribute__((__vector_size__(16), __aligned__(16)))
 

Functions

__m128d _mm_add_sd (__m128d a, __m128d b)
 
__m128d _mm_add_pd (__m128d a, __m128d b)
 
__m128d _mm_sub_sd (__m128d a, __m128d b)
 
__m128d _mm_sub_pd (__m128d a, __m128d b)
 
__m128d _mm_mul_sd (__m128d a, __m128d b)
 
__m128d _mm_mul_pd (__m128d a, __m128d b)
 
__m128d _mm_div_sd (__m128d a, __m128d b)
 
__m128d _mm_div_pd (__m128d a, __m128d b)
 
__m128d _mm_sqrt_sd (__m128d a, __m128d b)
 
__m128d _mm_sqrt_pd (__m128d a)
 
__m128d _mm_min_sd (__m128d a, __m128d b)
 
__m128d _mm_min_pd (__m128d a, __m128d b)
 
__m128d _mm_max_sd (__m128d a, __m128d b)
 
__m128d _mm_max_pd (__m128d a, __m128d b)
 
__m128d _mm_and_pd (__m128d a, __m128d b)
 
__m128d _mm_andnot_pd (__m128d a, __m128d b)
 
__m128d _mm_or_pd (__m128d a, __m128d b)
 
__m128d _mm_xor_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpeq_pd (__m128d a, __m128d b)
 
__m128d _mm_cmplt_pd (__m128d a, __m128d b)
 
__m128d _mm_cmple_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpgt_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpge_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpord_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpunord_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpneq_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpnlt_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpnle_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpngt_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpnge_pd (__m128d a, __m128d b)
 
__m128d _mm_cmpeq_sd (__m128d a, __m128d b)
 
__m128d _mm_cmplt_sd (__m128d a, __m128d b)
 
__m128d _mm_cmple_sd (__m128d a, __m128d b)
 
__m128d _mm_cmpgt_sd (__m128d a, __m128d b)
 
__m128d _mm_cmpge_sd (__m128d a, __m128d b)
 
__m128d _mm_cmpord_sd (__m128d a, __m128d b)
 
__m128d _mm_cmpunord_sd (__m128d a, __m128d b)
 
__m128d _mm_cmpneq_sd (__m128d a, __m128d b)
 
__m128d _mm_cmpnlt_sd (__m128d a, __m128d b)
 
__m128d _mm_cmpnle_sd (__m128d a, __m128d b)
 
__m128d _mm_cmpngt_sd (__m128d a, __m128d b)
 
__m128d _mm_cmpnge_sd (__m128d a, __m128d b)
 
int _mm_comieq_sd (__m128d a, __m128d b)
 
int _mm_comilt_sd (__m128d a, __m128d b)
 
int _mm_comile_sd (__m128d a, __m128d b)
 
int _mm_comigt_sd (__m128d a, __m128d b)
 
int _mm_comige_sd (__m128d a, __m128d b)
 
int _mm_comineq_sd (__m128d a, __m128d b)
 
int _mm_ucomieq_sd (__m128d a, __m128d b)
 
int _mm_ucomilt_sd (__m128d a, __m128d b)
 
int _mm_ucomile_sd (__m128d a, __m128d b)
 
int _mm_ucomigt_sd (__m128d a, __m128d b)
 
int _mm_ucomige_sd (__m128d a, __m128d b)
 
int _mm_ucomineq_sd (__m128d a, __m128d b)
 
__m128 _mm_cvtpd_ps (__m128d a)
 
__m128d _mm_cvtps_pd (__m128 a)
 
__m128d _mm_cvtepi32_pd (__m128i a)
 
__m128i _mm_cvtpd_epi32 (__m128d a)
 
int _mm_cvtsd_si32 (__m128d a)
 
__m128 _mm_cvtsd_ss (__m128 a, __m128d b)
 
__m128d _mm_cvtsi32_sd (__m128d a, int b)
 
__m128d _mm_cvtss_sd (__m128d a, __m128 b)
 
__m128i _mm_cvttpd_epi32 (__m128d a)
 
int _mm_cvttsd_si32 (__m128d a)
 
__m64 _mm_cvtpd_pi32 (__m128d a)
 
__m64 _mm_cvttpd_pi32 (__m128d a)
 
__m128d _mm_cvtpi32_pd (__m64 a)
 
double _mm_cvtsd_f64 (__m128d a)
 
__m128d _mm_load_pd (double const *dp)
 
__m128d _mm_load1_pd (double const *dp)
 
__m128d _mm_loadr_pd (double const *dp)
 
__m128d _mm_loadu_pd (double const *dp)
 
__m128d _mm_load_sd (double const *dp)
 
__m128d _mm_loadh_pd (__m128d a, double const *dp)
 
__m128d _mm_loadl_pd (__m128d a, double const *dp)
 
__m128d _mm_set_sd (double w)
 
__m128d _mm_set1_pd (double w)
 
__m128d _mm_set_pd (double w, double x)
 
__m128d _mm_setr_pd (double w, double x)
 
__m128d _mm_setzero_pd (void)
 
__m128d _mm_move_sd (__m128d a, __m128d b)
 
void _mm_store_sd (double *dp, __m128d a)
 
void _mm_store_pd (double *dp, __m128d a)
 
void _mm_store1_pd (double *dp, __m128d a)
 
void _mm_storeu_pd (double *dp, __m128d a)
 
void _mm_storer_pd (double *dp, __m128d a)
 
void _mm_storeh_pd (double *dp, __m128d a)
 
void _mm_storel_pd (double *dp, __m128d a)
 
__m128i _mm_add_epi8 (__m128i a, __m128i b)
 
__m128i _mm_add_epi16 (__m128i a, __m128i b)
 
__m128i _mm_add_epi32 (__m128i a, __m128i b)
 
__m64 _mm_add_si64 (__m64 a, __m64 b)
 
__m128i _mm_add_epi64 (__m128i a, __m128i b)
 
__m128i _mm_adds_epi8 (__m128i a, __m128i b)
 
__m128i _mm_adds_epi16 (__m128i a, __m128i b)
 
__m128i _mm_adds_epu8 (__m128i a, __m128i b)
 
__m128i _mm_adds_epu16 (__m128i a, __m128i b)
 
__m128i _mm_avg_epu8 (__m128i a, __m128i b)
 
__m128i _mm_avg_epu16 (__m128i a, __m128i b)
 
__m128i _mm_madd_epi16 (__m128i a, __m128i b)
 
__m128i _mm_max_epi16 (__m128i a, __m128i b)
 
__m128i _mm_max_epu8 (__m128i a, __m128i b)
 
__m128i _mm_min_epi16 (__m128i a, __m128i b)
 
__m128i _mm_min_epu8 (__m128i a, __m128i b)
 
__m128i _mm_mulhi_epi16 (__m128i a, __m128i b)
 
__m128i _mm_mulhi_epu16 (__m128i a, __m128i b)
 
__m128i _mm_mullo_epi16 (__m128i a, __m128i b)
 
__m64 _mm_mul_su32 (__m64 a, __m64 b)
 
__m128i _mm_mul_epu32 (__m128i a, __m128i b)
 
__m128i _mm_sad_epu8 (__m128i a, __m128i b)
 
__m128i _mm_sub_epi8 (__m128i a, __m128i b)
 
__m128i _mm_sub_epi16 (__m128i a, __m128i b)
 
__m128i _mm_sub_epi32 (__m128i a, __m128i b)
 
__m64 _mm_sub_si64 (__m64 a, __m64 b)
 
__m128i _mm_sub_epi64 (__m128i a, __m128i b)
 
__m128i _mm_subs_epi8 (__m128i a, __m128i b)
 
__m128i _mm_subs_epi16 (__m128i a, __m128i b)
 
__m128i _mm_subs_epu8 (__m128i a, __m128i b)
 
__m128i _mm_subs_epu16 (__m128i a, __m128i b)
 
__m128i _mm_and_si128 (__m128i a, __m128i b)
 
__m128i _mm_andnot_si128 (__m128i a, __m128i b)
 
__m128i _mm_or_si128 (__m128i a, __m128i b)
 
__m128i _mm_xor_si128 (__m128i a, __m128i b)
 
__m128i _mm_slli_si128 (__m128i a, int i)
 
__m128i _mm_slli_epi16 (__m128i a, int count)
 
__m128i _mm_sll_epi16 (__m128i a, __m128i count)
 
__m128i _mm_slli_epi32 (__m128i a, int count)
 
__m128i _mm_sll_epi32 (__m128i a, __m128i count)
 
__m128i _mm_slli_epi64 (__m128i a, int count)
 
__m128i _mm_sll_epi64 (__m128i a, __m128i count)
 
__m128i _mm_srai_epi16 (__m128i a, int count)
 
__m128i _mm_sra_epi16 (__m128i a, __m128i count)
 
__m128i _mm_srai_epi32 (__m128i a, int count)
 
__m128i _mm_sra_epi32 (__m128i a, __m128i count)
 
__m128i _mm_srli_si128 (__m128i a, int imm)
 
__m128i _mm_srli_epi16 (__m128i a, int count)
 
__m128i _mm_srl_epi16 (__m128i a, __m128i count)
 
__m128i _mm_srli_epi32 (__m128i a, int count)
 
__m128i _mm_srl_epi32 (__m128i a, __m128i count)
 
__m128i _mm_srli_epi64 (__m128i a, int count)
 
__m128i _mm_srl_epi64 (__m128i a, __m128i count)
 
__m128i _mm_cmpeq_epi8 (__m128i a, __m128i b)
 
__m128i _mm_cmpeq_epi16 (__m128i a, __m128i b)
 
__m128i _mm_cmpeq_epi32 (__m128i a, __m128i b)
 
__m128i _mm_cmpgt_epi8 (__m128i a, __m128i b)
 
__m128i _mm_cmpgt_epi16 (__m128i a, __m128i b)
 
__m128i _mm_cmpgt_epi32 (__m128i a, __m128i b)
 
__m128i _mm_cmplt_epi8 (__m128i a, __m128i b)
 
__m128i _mm_cmplt_epi16 (__m128i a, __m128i b)
 
__m128i _mm_cmplt_epi32 (__m128i a, __m128i b)
 
__m128 _mm_cvtepi32_ps (__m128i a)
 
__m128i _mm_cvtps_epi32 (__m128 a)
 
__m128i _mm_cvttps_epi32 (__m128 a)
 
__m128i _mm_cvtsi32_si128 (int a)
 
int _mm_cvtsi128_si32 (__m128i a)
 
__m128i _mm_load_si128 (__m128i const *p)
 
__m128i _mm_loadu_si128 (__m128i_u const *p)
 
__m128i _mm_loadl_epi64 (__m128i_u const *p)
 
__m128i _mm_set_epi64 (__m64 q1, __m64 q0)
 
__m128i _mm_set_epi32 (int i3, int i2, int i1, int i0)
 
__m128i _mm_set_epi16 (short w7, short w6, short w5, short w4, short w3, short w2, short w1, short w0)
 
__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_set1_epi64 (__m64 q)
 
__m128i _mm_set1_epi32 (int i)
 
__m128i _mm_set1_epi16 (short w)
 
__m128i _mm_set1_epi8 (char b)
 
__m128i _mm_setl_epi64 (__m128i q)
 
__m128i _mm_setr_epi64 (__m64 q0, __m64 q1)
 
__m128i _mm_setr_epi32 (int i0, int i1, int i2, int i3)
 
__m128i _mm_setr_epi16 (short w0, short w1, short w2, short w3, short w4, short w5, short w6, short w7)
 
__m128i _mm_setr_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_setzero_si128 (void)
 
void _mm_store_si128 (__m128i *p, __m128i b)
 
void _mm_storeu_si128 (__m128i_u *p, __m128i b)
 
void _mm_maskmoveu_si128 (__m128i d, __m128i n, _Out_writes_bytes_(16) char *p)
 
void _mm_storel_epi64 (__m128i_u *p, __m128i a)
 
void _mm_stream_pd (double *p, __m128d a)
 
void _mm_stream_si128 (__m128i *p, __m128i a)
 
void _mm_stream_si32 (int *p, int a)
 
void _mm_clflush (void const *p)
 
void _mm_lfence (void)
 
void _mm_mfence (void)
 
__m128i _mm_packs_epi16 (__m128i a, __m128i b)
 
__m128i _mm_packs_epi32 (__m128i a, __m128i b)
 
__m128i _mm_packus_epi16 (__m128i a, __m128i b)
 
int _mm_extract_epi16 (__m128i a, int imm)
 
__m128i _mm_insert_epi16 (__m128i a, int b, int imm)
 
int _mm_movemask_epi8 (__m128i a)
 
__m128i _mm_shuffle_epi32 (__m128i a, int imm)
 
__m128i _mm_shufflelo_epi16 (__m128i a, int imm)
 
__m128i _mm_shufflehi_epi16 (__m128i a, int imm)
 
__m128i _mm_unpackhi_epi8 (__m128i a, __m128i b)
 
__m128i _mm_unpackhi_epi16 (__m128i a, __m128i b)
 
__m128i _mm_unpackhi_epi32 (__m128i a, __m128i b)
 
__m128i _mm_unpackhi_epi64 (__m128i a, __m128i b)
 
__m128i _mm_unpacklo_epi8 (__m128i a, __m128i b)
 
__m128i _mm_unpacklo_epi16 (__m128i a, __m128i b)
 
__m128i _mm_unpacklo_epi32 (__m128i a, __m128i b)
 
__m128i _mm_unpacklo_epi64 (__m128i a, __m128i b)
 
__m64 _mm_movepi64_pi64 (__m128i a)
 
__m128i _mm_movpi64_epi64 (__m64 a)
 
__m128i _mm_move_epi64 (__m128i a)
 
__m128d _mm_unpackhi_pd (__m128d a, __m128d b)
 
__m128d _mm_unpacklo_pd (__m128d a, __m128d b)
 
int _mm_movemask_pd (__m128d a)
 
__m128d _mm_shuffle_pd (__m128d a, __m128d b, int imm)
 
__m128 _mm_castpd_ps (__m128d a)
 
__m128i _mm_castpd_si128 (__m128d a)
 
__m128d _mm_castps_pd (__m128 a)
 
__m128i _mm_castps_si128 (__m128 a)
 
__m128 _mm_castsi128_ps (__m128i a)
 
__m128d _mm_castsi128_pd (__m128i a)
 
void _mm_pause (void)
 
__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si64 (void const *a)
 
__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si32 (void const *a)
 
__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si16 (void const *a)
 
__INTRIN_INLINE_SSE2 __m128d _mm_undefined_pd (void)
 
__INTRIN_INLINE_SSE2 __m128i _mm_cvtsi64_si128 (long long a)
 
__INTRIN_INLINE_SSE2 long long _mm_cvtsi128_si64 (__m128i a)
 
__INTRIN_INLINE_SSE2 __m128i _mm_undefined_si128 (void)
 
__INTRIN_INLINE_SSE2 __m128i _mm_set_epi64x (long long q1, long long q0)
 
__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi64x (long long q)
 
__INTRIN_INLINE_SSE2 void _mm_storeu_si64 (void *p, __m128i b)
 
__INTRIN_INLINE_SSE2 void _mm_storeu_si32 (void *p, __m128i b)
 
__INTRIN_INLINE_SSE2 void _mm_storeu_si16 (void *p, __m128i b)
 
__INTRIN_INLINE_SSE2 void _mm_maskmoveu_si128 (__m128i d, __m128i n, char *p)
 

Macro Definition Documentation

◆ __ATTRIBUTE_MMXSSE2__

#define __ATTRIBUTE_MMXSSE2__   __attribute__((__target__("mmx,sse2")))

Definition at line 69 of file emmintrin.h.

◆ __ATTRIBUTE_SSE2__

#define __ATTRIBUTE_SSE2__   __attribute__((__target__("sse2")))

Definition at line 68 of file emmintrin.h.

◆ __INTRIN_INLINE_MMXSSE2

#define __INTRIN_INLINE_MMXSSE2   __INTRIN_INLINE __ATTRIBUTE_MMXSSE2__

Definition at line 72 of file emmintrin.h.

◆ __INTRIN_INLINE_SSE2

#define __INTRIN_INLINE_SSE2   __INTRIN_INLINE __ATTRIBUTE_SSE2__

Definition at line 71 of file emmintrin.h.

◆ _INCLUDED_EMM

#define _INCLUDED_EMM

Definition at line 12 of file emmintrin.h.

◆ _mm_bslli_si128

#define _mm_bslli_si128   _mm_slli_si128

Definition at line 325 of file emmintrin.h.

◆ _mm_bsrli_si128

#define _mm_bsrli_si128   _mm_srli_si128

Definition at line 326 of file emmintrin.h.

◆ _mm_extract_epi16

#define _mm_extract_epi16 (   a,
  imm 
)
Value:
((int)(unsigned short)__builtin_ia32_vec_ext_v8hi((__v8hi)(__m128i)(a), \
(int)(imm)))
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

Definition at line 1764 of file emmintrin.h.

◆ _mm_insert_epi16

#define _mm_insert_epi16 (   a,
  b,
  imm 
)
Value:
((__m128i)__builtin_ia32_vec_set_v8hi((__v8hi)(__m128i)(a), (int)(b), \
(int)(imm)))
GLboolean GLboolean GLboolean b
Definition: glext.h:6204

Definition at line 1768 of file emmintrin.h.

◆ _mm_load_pd1

#define _mm_load_pd1 (   p)    _mm_load1_pd(p)

Definition at line 323 of file emmintrin.h.

◆ _mm_set_pd1

#define _mm_set_pd1 (   a)    _mm_set1_pd(a)

Definition at line 322 of file emmintrin.h.

◆ _MM_SHUFFLE2

#define _MM_SHUFFLE2 (   fp1,
  fp0 
)     (((fp1) << 1) | (fp0))

Definition at line 950 of file emmintrin.h.

◆ _mm_shuffle_epi32

#define _mm_shuffle_epi32 (   a,
  imm 
)     ((__m128i)__builtin_ia32_pshufd((__v4si)(__m128i)(a), (int)(imm)))

Definition at line 1777 of file emmintrin.h.

◆ _mm_shuffle_pd

#define _mm_shuffle_pd (   a,
  b,
  i 
)
Value:
((__m128d)__builtin_ia32_shufpd((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \
(int)(i)))
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define b
Definition: ke_i.h:79

Definition at line 1908 of file emmintrin.h.

◆ _mm_shufflehi_epi16

#define _mm_shufflehi_epi16 (   a,
  imm 
)     ((__m128i)__builtin_ia32_pshufhw((__v8hi)(__m128i)(a), (int)(imm)))

Definition at line 1783 of file emmintrin.h.

◆ _mm_shufflelo_epi16

#define _mm_shufflelo_epi16 (   a,
  imm 
)     ((__m128i)__builtin_ia32_pshuflw((__v8hi)(__m128i)(a), (int)(imm)))

Definition at line 1780 of file emmintrin.h.

◆ _mm_slli_si128

#define _mm_slli_si128 (   a,
  imm 
)     ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)))

Definition at line 1348 of file emmintrin.h.

◆ _mm_srli_si128

#define _mm_srli_si128 (   a,
  imm 
)     ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)))

Definition at line 1401 of file emmintrin.h.

◆ _mm_store_pd1

#define _mm_store_pd1 (   p,
  a 
)    _mm_store1_pd((p), (a))

Definition at line 324 of file emmintrin.h.

◆ _mm_stream_si64

#define _mm_stream_si64   _mm_stream_si64x

Definition at line 327 of file emmintrin.h.

Typedef Documentation

◆ __attribute__

Definition at line 43 of file emmintrin.h.

Function Documentation

◆ _mm_add_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_add_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1130 of file emmintrin.h.

1131{
1132 return (__m128i)((__v8hu)a + (__v8hu)b);
1133}

Referenced by I16vec8::operator+=(), Is16vec8::operator+=(), and Iu16vec8::operator+=().

◆ _mm_add_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_add_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1135 of file emmintrin.h.

1136{
1137 return (__m128i)((__v4su)a + (__v4su)b);
1138}

Referenced by I32vec4::operator+=(), Is32vec4::operator+=(), and Iu32vec4::operator+=().

◆ _mm_add_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_add_epi64 ( __m128i  a,
__m128i  b 
)

Definition at line 1145 of file emmintrin.h.

1146{
1147 return (__m128i)((__v2du)a + (__v2du)b);
1148}

Referenced by I64vec2::operator+=().

◆ _mm_add_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_add_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1125 of file emmintrin.h.

1126{
1127 return (__m128i)((__v16qu)a + (__v16qu)b);
1128}

Referenced by I8vec16::operator+=(), Is8vec16::operator+=(), and Iu8vec16::operator+=().

◆ _mm_add_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_add_pd ( __m128d  a,
__m128d  b 
)

Definition at line 580 of file emmintrin.h.

581{
582 return (__m128d)((__v2df)a + (__v2df)b);
583}

Referenced by F64vec2::operator+=().

◆ _mm_add_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_add_sd ( __m128d  a,
__m128d  b 
)

Definition at line 574 of file emmintrin.h.

575{
576 a[0] += b[0];
577 return a;
578}
#define a
Definition: ke_i.h:78

◆ _mm_add_si64()

__INTRIN_INLINE_MMXSSE2 __m64 _mm_add_si64 ( __m64  a,
__m64  b 
)

Definition at line 1140 of file emmintrin.h.

1141{
1142 return (__m64)__builtin_ia32_paddq((__v1di)a, (__v1di)b);
1143}

◆ _mm_adds_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1159 of file emmintrin.h.

1160{
1161#if HAS_BUILTIN(__builtin_elementwise_add_sat)
1162 return (__m128i)__builtin_elementwise_add_sat((__v8hi)a, (__v8hi)b);
1163#else
1164 return (__m128i)__builtin_ia32_paddsw128((__v8hi)a, (__v8hi)b);
1165#endif
1166}

Referenced by sat_add().

◆ _mm_adds_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1150 of file emmintrin.h.

1151{
1152#if HAS_BUILTIN(__builtin_elementwise_add_sat)
1153 return (__m128i)__builtin_elementwise_add_sat((__v16qs)a, (__v16qs)b);
1154#else
1155 return (__m128i)__builtin_ia32_paddsb128((__v16qi)a, (__v16qi)b);
1156#endif
1157}

Referenced by sat_add().

◆ _mm_adds_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1177 of file emmintrin.h.

1178{
1179#if HAS_BUILTIN(__builtin_elementwise_add_sat)
1180 return (__m128i)__builtin_elementwise_add_sat((__v8hu)a, (__v8hu)b);
1181#else
1182 return (__m128i)__builtin_ia32_paddusw128((__v8hi)a, (__v8hi)b);
1183#endif
1184}

Referenced by sat_add().

◆ _mm_adds_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1168 of file emmintrin.h.

1169{
1170#if HAS_BUILTIN(__builtin_elementwise_add_sat)
1171 return (__m128i)__builtin_elementwise_add_sat((__v16qu)a, (__v16qu)b);
1172#else
1173 return (__m128i)__builtin_ia32_paddusb128((__v16qi)a, (__v16qi)b);
1174#endif
1175}

Referenced by sat_add().

◆ _mm_and_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_and_pd ( __m128d  a,
__m128d  b 
)

Definition at line 649 of file emmintrin.h.

650{
651 return (__m128d)((__v2du)a & (__v2du)b);
652}

Referenced by F64vec2::operator&=().

◆ _mm_and_si128()

◆ _mm_andnot_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_andnot_pd ( __m128d  a,
__m128d  b 
)

Definition at line 654 of file emmintrin.h.

655{
656 return (__m128d)(~(__v2du)a & (__v2du)b);
657}

◆ _mm_andnot_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_andnot_si128 ( __m128i  a,
__m128i  b 
)

Definition at line 1333 of file emmintrin.h.

1334{
1335 return (__m128i)(~(__v2du)a & (__v2du)b);
1336}

Referenced by andnot(), and cmpneq().

◆ _mm_avg_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_avg_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1191 of file emmintrin.h.

1192{
1193 return (__m128i)__builtin_ia32_pavgw128((__v8hi)a, (__v8hi)b);
1194}

Referenced by simd_avg().

◆ _mm_avg_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_avg_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1186 of file emmintrin.h.

1187{
1188 return (__m128i)__builtin_ia32_pavgb128((__v16qi)a, (__v16qi)b);
1189}

Referenced by simd_avg().

◆ _mm_castpd_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_castpd_ps ( __m128d  a)

Definition at line 1912 of file emmintrin.h.

1913{
1914 return (__m128)a;
1915}

◆ _mm_castpd_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_castpd_si128 ( __m128d  a)

Definition at line 1917 of file emmintrin.h.

1918{
1919 return (__m128i)a;
1920}

◆ _mm_castps_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_castps_pd ( __m128  a)

Definition at line 1922 of file emmintrin.h.

1923{
1924 return (__m128d)a;
1925}

◆ _mm_castps_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_castps_si128 ( __m128  a)

Definition at line 1927 of file emmintrin.h.

1928{
1929 return (__m128i)a;
1930}

◆ _mm_castsi128_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_castsi128_pd ( __m128i  a)

Definition at line 1937 of file emmintrin.h.

1938{
1939 return (__m128d)a;
1940}

◆ _mm_castsi128_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_castsi128_ps ( __m128i  a)

Definition at line 1932 of file emmintrin.h.

1933{
1934 return (__m128)a;
1935}

◆ _mm_clflush()

void _mm_clflush ( void const p)

◆ _mm_cmpeq_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpeq_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1439 of file emmintrin.h.

1440{
1441 return (__m128i)((__v8hi)a == (__v8hi)b);
1442}

Referenced by cmpeq(), and cmpneq().

◆ _mm_cmpeq_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpeq_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1444 of file emmintrin.h.

1445{
1446 return (__m128i)((__v4si)a == (__v4si)b);
1447}

Referenced by cmpeq(), and cmpneq().

◆ _mm_cmpeq_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpeq_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1434 of file emmintrin.h.

1435{
1436 return (__m128i)((__v16qi)a == (__v16qi)b);
1437}

Referenced by cmpeq(), and cmpneq().

◆ _mm_cmpeq_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpeq_pd ( __m128d  a,
__m128d  b 
)

Definition at line 669 of file emmintrin.h.

670{
671 return (__m128d)__builtin_ia32_cmpeqpd((__v2df)a, (__v2df)b);
672}

◆ _mm_cmpeq_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpeq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 729 of file emmintrin.h.

730{
731 return (__m128d)__builtin_ia32_cmpeqsd((__v2df)a, (__v2df)b);
732}

◆ _mm_cmpge_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpge_pd ( __m128d  a,
__m128d  b 
)

Definition at line 689 of file emmintrin.h.

690{
691 return (__m128d)__builtin_ia32_cmplepd((__v2df)b, (__v2df)a);
692}

◆ _mm_cmpge_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpge_sd ( __m128d  a,
__m128d  b 
)

Definition at line 750 of file emmintrin.h.

751{
752 __m128d __c = __builtin_ia32_cmplesd((__v2df)b, (__v2df)a);
753 return __extension__(__m128d){__c[0], a[1]};
754}
#define __c
Definition: schilyio.h:209

◆ _mm_cmpgt_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpgt_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1456 of file emmintrin.h.

1457{
1458 return (__m128i)((__v8hi)a > (__v8hi)b);
1459}

Referenced by _mm_cmplt_epi16(), cmpgt(), and cmplt().

◆ _mm_cmpgt_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpgt_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1461 of file emmintrin.h.

1462{
1463 return (__m128i)((__v4si)a > (__v4si)b);
1464}

Referenced by _mm_cmplt_epi32(), cmpgt(), and cmplt().

◆ _mm_cmpgt_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpgt_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1449 of file emmintrin.h.

1450{
1451 /* This function always performs a signed comparison, but __v16qi is a char
1452 which may be signed or unsigned, so use __v16qs. */
1453 return (__m128i)((__v16qs)a > (__v16qs)b);
1454}

Referenced by _mm_cmplt_epi8(), and cmpgt().

◆ _mm_cmpgt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpgt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 684 of file emmintrin.h.

685{
686 return (__m128d)__builtin_ia32_cmpltpd((__v2df)b, (__v2df)a);
687}

◆ _mm_cmpgt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpgt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 744 of file emmintrin.h.

745{
746 __m128d __c = __builtin_ia32_cmpltsd((__v2df)b, (__v2df)a);
747 return __extension__(__m128d){__c[0], a[1]};
748}

◆ _mm_cmple_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmple_pd ( __m128d  a,
__m128d  b 
)

Definition at line 679 of file emmintrin.h.

680{
681 return (__m128d)__builtin_ia32_cmplepd((__v2df)a, (__v2df)b);
682}

◆ _mm_cmple_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmple_sd ( __m128d  a,
__m128d  b 
)

Definition at line 739 of file emmintrin.h.

740{
741 return (__m128d)__builtin_ia32_cmplesd((__v2df)a, (__v2df)b);
742}

◆ _mm_cmplt_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_cmplt_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1471 of file emmintrin.h.

1472{
1473 return _mm_cmpgt_epi16(b, a);
1474}
__m128i _mm_cmpgt_epi16(__m128i a, __m128i b)
Definition: emmintrin.h:1456

◆ _mm_cmplt_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cmplt_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1476 of file emmintrin.h.

1477{
1478 return _mm_cmpgt_epi32(b, a);
1479}
__m128i _mm_cmpgt_epi32(__m128i a, __m128i b)
Definition: emmintrin.h:1461

◆ _mm_cmplt_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_cmplt_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1466 of file emmintrin.h.

1467{
1468 return _mm_cmpgt_epi8(b, a);
1469}
__m128i _mm_cmpgt_epi8(__m128i a, __m128i b)
Definition: emmintrin.h:1449

Referenced by cmplt().

◆ _mm_cmplt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmplt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 674 of file emmintrin.h.

675{
676 return (__m128d)__builtin_ia32_cmpltpd((__v2df)a, (__v2df)b);
677}

◆ _mm_cmplt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmplt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 734 of file emmintrin.h.

735{
736 return (__m128d)__builtin_ia32_cmpltsd((__v2df)a, (__v2df)b);
737}

◆ _mm_cmpneq_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpneq_pd ( __m128d  a,
__m128d  b 
)

Definition at line 704 of file emmintrin.h.

705{
706 return (__m128d)__builtin_ia32_cmpneqpd((__v2df)a, (__v2df)b);
707}

◆ _mm_cmpneq_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpneq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 766 of file emmintrin.h.

767{
768 return (__m128d)__builtin_ia32_cmpneqsd((__v2df)a, (__v2df)b);
769}

◆ _mm_cmpnge_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnge_pd ( __m128d  a,
__m128d  b 
)

Definition at line 724 of file emmintrin.h.

725{
726 return (__m128d)__builtin_ia32_cmpnlepd((__v2df)b, (__v2df)a);
727}

◆ _mm_cmpnge_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnge_sd ( __m128d  a,
__m128d  b 
)

Definition at line 787 of file emmintrin.h.

788{
789 __m128d __c = __builtin_ia32_cmpnlesd((__v2df)b, (__v2df)a);
790 return __extension__(__m128d){__c[0], a[1]};
791}

◆ _mm_cmpngt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpngt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 719 of file emmintrin.h.

720{
721 return (__m128d)__builtin_ia32_cmpnltpd((__v2df)b, (__v2df)a);
722}

◆ _mm_cmpngt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpngt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 781 of file emmintrin.h.

782{
783 __m128d __c = __builtin_ia32_cmpnltsd((__v2df)b, (__v2df)a);
784 return __extension__(__m128d){__c[0], a[1]};
785}

◆ _mm_cmpnle_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnle_pd ( __m128d  a,
__m128d  b 
)

Definition at line 714 of file emmintrin.h.

715{
716 return (__m128d)__builtin_ia32_cmpnlepd((__v2df)a, (__v2df)b);
717}

◆ _mm_cmpnle_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnle_sd ( __m128d  a,
__m128d  b 
)

Definition at line 776 of file emmintrin.h.

777{
778 return (__m128d)__builtin_ia32_cmpnlesd((__v2df)a, (__v2df)b);
779}

◆ _mm_cmpnlt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnlt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 709 of file emmintrin.h.

710{
711 return (__m128d)__builtin_ia32_cmpnltpd((__v2df)a, (__v2df)b);
712}

◆ _mm_cmpnlt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnlt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 771 of file emmintrin.h.

772{
773 return (__m128d)__builtin_ia32_cmpnltsd((__v2df)a, (__v2df)b);
774}

◆ _mm_cmpord_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpord_pd ( __m128d  a,
__m128d  b 
)

Definition at line 694 of file emmintrin.h.

695{
696 return (__m128d)__builtin_ia32_cmpordpd((__v2df)a, (__v2df)b);
697}

◆ _mm_cmpord_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpord_sd ( __m128d  a,
__m128d  b 
)

Definition at line 756 of file emmintrin.h.

757{
758 return (__m128d)__builtin_ia32_cmpordsd((__v2df)a, (__v2df)b);
759}

◆ _mm_cmpunord_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpunord_pd ( __m128d  a,
__m128d  b 
)

Definition at line 699 of file emmintrin.h.

700{
701 return (__m128d)__builtin_ia32_cmpunordpd((__v2df)a, (__v2df)b);
702}

◆ _mm_cmpunord_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpunord_sd ( __m128d  a,
__m128d  b 
)

Definition at line 761 of file emmintrin.h.

762{
763 return (__m128d)__builtin_ia32_cmpunordsd((__v2df)a, (__v2df)b);
764}

◆ _mm_comieq_sd()

__INTRIN_INLINE_SSE2 int _mm_comieq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 793 of file emmintrin.h.

794{
795 return __builtin_ia32_comisdeq((__v2df)a, (__v2df)b);
796}

◆ _mm_comige_sd()

__INTRIN_INLINE_SSE2 int _mm_comige_sd ( __m128d  a,
__m128d  b 
)

Definition at line 813 of file emmintrin.h.

814{
815 return __builtin_ia32_comisdge((__v2df)a, (__v2df)b);
816}

◆ _mm_comigt_sd()

__INTRIN_INLINE_SSE2 int _mm_comigt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 808 of file emmintrin.h.

809{
810 return __builtin_ia32_comisdgt((__v2df)a, (__v2df)b);
811}

◆ _mm_comile_sd()

__INTRIN_INLINE_SSE2 int _mm_comile_sd ( __m128d  a,
__m128d  b 
)

Definition at line 803 of file emmintrin.h.

804{
805 return __builtin_ia32_comisdle((__v2df)a, (__v2df)b);
806}

◆ _mm_comilt_sd()

__INTRIN_INLINE_SSE2 int _mm_comilt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 798 of file emmintrin.h.

799{
800 return __builtin_ia32_comisdlt((__v2df)a, (__v2df)b);
801}

◆ _mm_comineq_sd()

__INTRIN_INLINE_SSE2 int _mm_comineq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 818 of file emmintrin.h.

819{
820 return __builtin_ia32_comisdneq((__v2df)a, (__v2df)b);
821}

◆ _mm_cvtepi32_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtepi32_pd ( __m128i  a)

Definition at line 867 of file emmintrin.h.

868{
869#if HAS_BUILTIN(__builtin_convertvector)
870 return (__m128d)__builtin_convertvector(__builtin_shufflevector((__v4si)a, (__v4si)a, 0, 1), __v2df);
871#else
872 return __builtin_ia32_cvtdq2pd((__v4si)a);
873#endif
874}

◆ _mm_cvtepi32_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_cvtepi32_ps ( __m128i  a)

Definition at line 1500 of file emmintrin.h.

1501{
1502#if HAS_BUILTIN(__builtin_convertvector)
1503 return (__m128)__builtin_convertvector((__v4si)a, __v4sf);
1504#else
1505 return __builtin_ia32_cvtdq2ps((__v4si)a);
1506#endif
1507}

◆ _mm_cvtpd_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtpd_epi32 ( __m128d  a)

Definition at line 876 of file emmintrin.h.

877{
878 return (__m128i)__builtin_ia32_cvtpd2dq((__v2df)a);
879}

◆ _mm_cvtpd_pi32()

__INTRIN_INLINE_MMXSSE2 __m64 _mm_cvtpd_pi32 ( __m128d  a)

Definition at line 914 of file emmintrin.h.

915{
916 return (__m64)__builtin_ia32_cvtpd2pi((__v2df)a);
917}

◆ _mm_cvtpd_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_cvtpd_ps ( __m128d  a)

Definition at line 853 of file emmintrin.h.

854{
855 return __builtin_ia32_cvtpd2ps((__v2df)a);
856}

Referenced by F64vec2ToF32vec4().

◆ _mm_cvtpi32_pd()

__INTRIN_INLINE_MMXSSE2 __m128d _mm_cvtpi32_pd ( __m64  a)

Definition at line 924 of file emmintrin.h.

925{
926 return __builtin_ia32_cvtpi2pd((__v2si)a);
927}

◆ _mm_cvtps_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtps_epi32 ( __m128  a)

Definition at line 1509 of file emmintrin.h.

1510{
1511 return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)a);
1512}

◆ _mm_cvtps_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtps_pd ( __m128  a)

Definition at line 858 of file emmintrin.h.

859{
860#if HAS_BUILTIN(__builtin_convertvector)
861 return (__m128d)__builtin_convertvector(__builtin_shufflevector((__v4sf)a, (__v4sf)a, 0, 1), __v2df);
862#else
863 return __builtin_ia32_cvtps2pd(a);
864#endif
865}

Referenced by F32vec4ToF64vec2().

◆ _mm_cvtsd_f64()

__INTRIN_INLINE_SSE2 double _mm_cvtsd_f64 ( __m128d  a)

Definition at line 929 of file emmintrin.h.

930{
931 return a[0];
932}

◆ _mm_cvtsd_si32()

__INTRIN_INLINE_SSE2 int _mm_cvtsd_si32 ( __m128d  a)

Definition at line 881 of file emmintrin.h.

882{
883 return __builtin_ia32_cvtsd2si((__v2df)a);
884}

◆ _mm_cvtsd_ss()

__INTRIN_INLINE_SSE2 __m128 _mm_cvtsd_ss ( __m128  a,
__m128d  b 
)

Definition at line 886 of file emmintrin.h.

887{
888 return (__m128)__builtin_ia32_cvtsd2ss((__v4sf)a, (__v2df)b);
889}

◆ _mm_cvtsi128_si32()

__INTRIN_INLINE_SSE2 int _mm_cvtsi128_si32 ( __m128i  a)

Definition at line 1529 of file emmintrin.h.

1530{
1531 __v4si b = (__v4si)a;
1532 return b[0];
1533}

◆ _mm_cvtsi128_si64()

__INTRIN_INLINE_SSE2 long long _mm_cvtsi128_si64 ( __m128i  a)

Definition at line 1535 of file emmintrin.h.

1536{
1537 return a[0];
1538}

Referenced by sqrt().

◆ _mm_cvtsi32_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtsi32_sd ( __m128d  a,
int  b 
)

Definition at line 891 of file emmintrin.h.

893{
894 a[0] = b;
895 return a;
896}

Referenced by IntToF64vec2().

◆ _mm_cvtsi32_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtsi32_si128 ( int  a)

Definition at line 1519 of file emmintrin.h.

1520{
1521 return __extension__(__m128i)(__v4si){a, 0, 0, 0};
1522}

◆ _mm_cvtsi64_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtsi64_si128 ( long long  a)

Definition at line 1524 of file emmintrin.h.

1525{
1526 return __extension__(__m128i)(__v2di){a, 0};
1527}

◆ _mm_cvtss_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtss_sd ( __m128d  a,
__m128  b 
)

Definition at line 898 of file emmintrin.h.

899{
900 a[0] = b[0];
901 return a;
902}

◆ _mm_cvttpd_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvttpd_epi32 ( __m128d  a)

Definition at line 904 of file emmintrin.h.

905{
906 return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)a);
907}

◆ _mm_cvttpd_pi32()

__INTRIN_INLINE_MMXSSE2 __m64 _mm_cvttpd_pi32 ( __m128d  a)

Definition at line 919 of file emmintrin.h.

920{
921 return (__m64)__builtin_ia32_cvttpd2pi((__v2df)a);
922}

◆ _mm_cvttps_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvttps_epi32 ( __m128  a)

Definition at line 1514 of file emmintrin.h.

1515{
1516 return (__m128i)__builtin_ia32_cvttps2dq((__v4sf)a);
1517}

◆ _mm_cvttsd_si32()

__INTRIN_INLINE_SSE2 int _mm_cvttsd_si32 ( __m128d  a)

Definition at line 909 of file emmintrin.h.

910{
911 return __builtin_ia32_cvttsd2si((__v2df)a);
912}

Referenced by F64vec2_SELECT().

◆ _mm_div_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_div_pd ( __m128d  a,
__m128d  b 
)

Definition at line 613 of file emmintrin.h.

614{
615 return (__m128d)((__v2df)a / (__v2df)b);
616}

Referenced by F64vec2::operator/=().

◆ _mm_div_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_div_sd ( __m128d  a,
__m128d  b 
)

Definition at line 607 of file emmintrin.h.

608{
609 a[0] /= b[0];
610 return a;
611}

◆ _mm_extract_epi16()

int _mm_extract_epi16 ( __m128i  a,
int  imm 
)

◆ _mm_insert_epi16()

__m128i _mm_insert_epi16 ( __m128i  a,
int  b,
int  imm 
)

◆ _mm_lfence()

void _mm_lfence ( void  )

Definition at line 106 of file intrin_x86.h.

107{
108 _ReadBarrier();
109 __asm__ __volatile__("lfence");
110 _ReadBarrier();
111}
#define _ReadBarrier
Definition: intrin_x86.h:95
__asm__(".p2align 4, 0x90\n" ".seh_proc __seh2_global_filter_func\n" "__seh2_global_filter_func:\n" "\tsub %rbp, %rax\n" "\tpush %rbp\n" "\t.seh_pushreg %rbp\n" "\tsub $32, %rsp\n" "\t.seh_stackalloc 32\n" "\t.seh_endprologue\n" "\tsub %rax, %rdx\n" "\tmov %rdx, %rbp\n" "\tjmp *%r8\n" "__seh2_global_filter_func_exit:\n" "\t.p2align 4\n" "\tadd $32, %rsp\n" "\tpop %rbp\n" "\tret\n" "\t.seh_endproc")

◆ _mm_load1_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_load1_pd ( double const dp)

Definition at line 939 of file emmintrin.h.

940{
941 struct __mm_load1_pd_struct {
942 double __u;
943 } __attribute__((__packed__, __may_alias__));
944 double __u = ((const struct __mm_load1_pd_struct *)dp)->__u;
945 return __extension__(__m128d){__u, __u};
946}
double __m128d __attribute__((__vector_size__(16), __aligned__(16)))
Definition: emmintrin.h:43

◆ _mm_load_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_load_pd ( double const dp)

Definition at line 934 of file emmintrin.h.

935{
936 return *(const __m128d *)dp;
937}

◆ _mm_load_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_load_sd ( double const dp)

Definition at line 998 of file emmintrin.h.

999{
1000 struct __mm_load_sd_struct {
1001 double __u;
1002 } __attribute__((__packed__, __may_alias__));
1003 double __u = ((const struct __mm_load_sd_struct *)dp)->__u;
1004 return __extension__(__m128d){__u, 0};
1005}

Referenced by _hypot(), _hypotf(), acos(), asin(), and sqrt().

◆ _mm_load_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_load_si128 ( __m128i const p)

Definition at line 1540 of file emmintrin.h.

1541{
1542 return *p;
1543}
GLfloat GLfloat p
Definition: glext.h:8902

◆ _mm_loadh_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_loadh_pd ( __m128d  a,
double const dp 
)

Definition at line 1007 of file emmintrin.h.

1008{
1009 struct __mm_loadh_pd_struct {
1010 double __u;
1011 } __attribute__((__packed__, __may_alias__));
1012 double __u = ((const struct __mm_loadh_pd_struct *)dp)->__u;
1013 return __extension__(__m128d){a[0], __u};
1014}

◆ _mm_loadl_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_loadl_epi64 ( __m128i_u const p)

Definition at line 1553 of file emmintrin.h.

1554{
1555 struct __mm_loadl_epi64_struct {
1556 long long __u;
1557 } __attribute__((__packed__, __may_alias__));
1558 return __extension__(__m128i){
1559 ((const struct __mm_loadl_epi64_struct *)p)->__u, 0};
1560}

◆ _mm_loadl_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_loadl_pd ( __m128d  a,
double const dp 
)

Definition at line 1016 of file emmintrin.h.

1017{
1018 struct __mm_loadl_pd_struct {
1019 double __u;
1020 } __attribute__((__packed__, __may_alias__));
1021 double __u = ((const struct __mm_loadl_pd_struct *)dp)->__u;
1022 return __extension__(__m128d){__u, a[1]};
1023}

◆ _mm_loadr_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_loadr_pd ( double const dp)

Definition at line 953 of file emmintrin.h.

954{
955#if HAS_BUILTIN(__builtin_shufflevector)
956 __m128d u = *(const __m128d *)dp;
957 return __builtin_shufflevector((__v2df)u, (__v2df)u, 1, 0);
958#else
959 return (__m128d){ dp[1], dp[0] };
960#endif
961}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240

◆ _mm_loadu_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_loadu_pd ( double const dp)

Definition at line 963 of file emmintrin.h.

964{
965 struct __loadu_pd {
966 __m128d_u __v;
967 } __attribute__((__packed__, __may_alias__));
968 return ((const struct __loadu_pd *)dp)->__v;
969}

Referenced by loadu().

◆ _mm_loadu_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si128 ( __m128i_u const p)

Definition at line 1545 of file emmintrin.h.

1546{
1547 struct __loadu_si128 {
1548 __m128i_u __v;
1549 } __attribute__((__packed__, __may_alias__));
1550 return ((const struct __loadu_si128 *)p)->__v;
1551}

◆ _mm_loadu_si16()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si16 ( void const a)

Definition at line 989 of file emmintrin.h.

990{
991 struct __loadu_si16 {
992 short __v;
993 } __attribute__((__packed__, __may_alias__));
994 short __u = ((const struct __loadu_si16 *)a)->__v;
995 return __extension__(__m128i)(__v8hi){__u, 0, 0, 0, 0, 0, 0, 0};
996}

◆ _mm_loadu_si32()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si32 ( void const a)

Definition at line 980 of file emmintrin.h.

981{
982 struct __loadu_si32 {
983 int __v;
984 } __attribute__((__packed__, __may_alias__));
985 int __u = ((const struct __loadu_si32 *)a)->__v;
986 return __extension__(__m128i)(__v4si){__u, 0, 0, 0};
987}

◆ _mm_loadu_si64()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si64 ( void const a)

Definition at line 971 of file emmintrin.h.

972{
973 struct __loadu_si64 {
974 long long __v;
975 } __attribute__((__packed__, __may_alias__));
976 long long __u = ((const struct __loadu_si64 *)a)->__v;
977 return __extension__(__m128i)(__v2di){__u, 0LL};
978}
#define LL
Definition: tui.h:167

◆ _mm_madd_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_madd_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1196 of file emmintrin.h.

1197{
1198 return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)a, (__v8hi)b);
1199}

Referenced by mul_add().

◆ _mm_maskmoveu_si128() [1/2]

void _mm_maskmoveu_si128 ( __m128i  d,
__m128i  n,
_Out_writes_bytes_(16) char p 
)

◆ _mm_maskmoveu_si128() [2/2]

__INTRIN_INLINE_SSE2 void _mm_maskmoveu_si128 ( __m128i  d,
__m128i  n,
char p 
)

Definition at line 1700 of file emmintrin.h.

1701{
1702 __builtin_ia32_maskmovdqu((__v16qi)d, (__v16qi)n, p);
1703}
GLdouble n
Definition: glext.h:7729
#define d
Definition: ke_i.h:81

◆ _mm_max_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_max_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1201 of file emmintrin.h.

1202{
1203#if HAS_BUILTIN(__builtin_elementwise_max)
1204 return (__m128i)__builtin_elementwise_max((__v8hi)a, (__v8hi)b);
1205#else
1206 return (__m128i)__builtin_ia32_pmaxsw128((__v8hi)a, (__v8hi)b);
1207#endif
1208}

Referenced by simd_max().

◆ _mm_max_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_max_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1210 of file emmintrin.h.

1211{
1212#if HAS_BUILTIN(__builtin_elementwise_max)
1213 return (__m128i)__builtin_elementwise_max((__v16qu)a, (__v16qu)b);
1214#else
1215 return (__m128i)__builtin_ia32_pmaxub128((__v16qi)a, (__v16qi)b);
1216#endif
1217}

Referenced by simd_max().

◆ _mm_max_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_max_pd ( __m128d  a,
__m128d  b 
)

Definition at line 644 of file emmintrin.h.

645{
646 return __builtin_ia32_maxpd((__v2df)a, (__v2df)b);
647}

◆ _mm_max_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_max_sd ( __m128d  a,
__m128d  b 
)

Definition at line 639 of file emmintrin.h.

640{
641 return __builtin_ia32_maxsd((__v2df)a, (__v2df)b);
642}

◆ _mm_mfence()

void _mm_mfence ( void  )

Definition at line 99 of file intrin_x86.h.

100{
101 __asm__ __volatile__("mfence" : : : "memory");
102}

◆ _mm_min_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_min_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1219 of file emmintrin.h.

1220{
1221#if HAS_BUILTIN(__builtin_elementwise_min)
1222 return (__m128i)__builtin_elementwise_min((__v8hi)a, (__v8hi)b);
1223#else
1224 return (__m128i)__builtin_ia32_pminsw128((__v8hi)a, (__v8hi)b);
1225#endif
1226}

Referenced by simd_min().

◆ _mm_min_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_min_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1228 of file emmintrin.h.

1229{
1230#if HAS_BUILTIN(__builtin_elementwise_min)
1231 return (__m128i)__builtin_elementwise_min((__v16qu)a, (__v16qu)b);
1232#else
1233 return (__m128i)__builtin_ia32_pminub128((__v16qi)a, (__v16qi)b);
1234#endif
1235}

Referenced by simd_min().

◆ _mm_min_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_min_pd ( __m128d  a,
__m128d  b 
)

Definition at line 634 of file emmintrin.h.

635{
636 return __builtin_ia32_minpd((__v2df)a, (__v2df)b);
637}

◆ _mm_min_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_min_sd ( __m128d  a,
__m128d  b 
)

Definition at line 629 of file emmintrin.h.

630{
631 return __builtin_ia32_minsd((__v2df)a, (__v2df)b);
632}

◆ _mm_move_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_move_epi64 ( __m128i  a)

Definition at line 1876 of file emmintrin.h.

1877{
1878#if HAS_BUILTIN(__builtin_shufflevector)
1879 return __builtin_shufflevector((__v2di)a, _mm_setzero_si128(), 0, 2);
1880#else
1881 return (__m128i)__builtin_ia32_movq128((__v2di)a);
1882#endif
1883}
__m128i _mm_setzero_si128(void)
Definition: emmintrin.h:1658

◆ _mm_move_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_move_sd ( __m128d  a,
__m128d  b 
)

Definition at line 1060 of file emmintrin.h.

1061{
1062 a[0] = b[0];
1063 return a;
1064}

◆ _mm_movemask_epi8()

__INTRIN_INLINE_SSE2 int _mm_movemask_epi8 ( __m128i  a)

Definition at line 1772 of file emmintrin.h.

1773{
1774 return __builtin_ia32_pmovmskb128((__v16qi)a);
1775}

◆ _mm_movemask_pd()

__INTRIN_INLINE_SSE2 int _mm_movemask_pd ( __m128d  a)

Definition at line 1903 of file emmintrin.h.

1904{
1905 return __builtin_ia32_movmskpd((__v2df)a);
1906}

Referenced by move_mask().

◆ _mm_movepi64_pi64()

__INTRIN_INLINE_SSE2 __m64 _mm_movepi64_pi64 ( __m128i  a)

Definition at line 1866 of file emmintrin.h.

1867{
1868 return (__m64)a[0];
1869}

◆ _mm_movpi64_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_movpi64_epi64 ( __m64  a)

Definition at line 1871 of file emmintrin.h.

1872{
1873 return __extension__(__m128i)(__v2di){(long long)a, 0};
1874}
#define long
Definition: qsort.c:33

◆ _mm_mul_epu32()

__INTRIN_INLINE_SSE2 __m128i _mm_mul_epu32 ( __m128i  a,
__m128i  b 
)

Definition at line 1257 of file emmintrin.h.

1258{
1259 return __builtin_ia32_pmuludq128((__v4si)a, (__v4si)b);
1260}

Referenced by operator*().

◆ _mm_mul_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_mul_pd ( __m128d  a,
__m128d  b 
)

Definition at line 602 of file emmintrin.h.

603{
604 return (__m128d)((__v2df)a * (__v2df)b);
605}

Referenced by F64vec2::operator*=().

◆ _mm_mul_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_mul_sd ( __m128d  a,
__m128d  b 
)

Definition at line 596 of file emmintrin.h.

597{
598 a[0] *= b[0];
599 return a;
600}

◆ _mm_mul_su32()

__INTRIN_INLINE_MMXSSE2 __m64 _mm_mul_su32 ( __m64  a,
__m64  b 
)

Definition at line 1252 of file emmintrin.h.

1253{
1254 return (__m64)__builtin_ia32_pmuludq((__v2si)a, (__v2si)b);
1255}

◆ _mm_mulhi_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_mulhi_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1237 of file emmintrin.h.

1238{
1239 return (__m128i)__builtin_ia32_pmulhw128((__v8hi)a, (__v8hi)b);
1240}

Referenced by mul_high().

◆ _mm_mulhi_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_mulhi_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1242 of file emmintrin.h.

1243{
1244 return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)a, (__v8hi)b);
1245}

Referenced by mul_high().

◆ _mm_mullo_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_mullo_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1247 of file emmintrin.h.

1248{
1249 return (__m128i)((__v8hu)a * (__v8hu)b);
1250}

Referenced by operator*(), I16vec8::operator*=(), Is16vec8::operator*=(), and Iu16vec8::operator*=().

◆ _mm_or_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_or_pd ( __m128d  a,
__m128d  b 
)

Definition at line 659 of file emmintrin.h.

660{
661 return (__m128d)((__v2du)a | (__v2du)b);
662}

Referenced by F64vec2::operator|=().

◆ _mm_or_si128()

◆ _mm_packs_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_packs_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1749 of file emmintrin.h.

1750{
1751 return (__m128i)__builtin_ia32_packsswb128((__v8hi)a, (__v8hi)b);
1752}

Referenced by pack_sat().

◆ _mm_packs_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_packs_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1754 of file emmintrin.h.

1755{
1756 return (__m128i)__builtin_ia32_packssdw128((__v4si)a, (__v4si)b);
1757}

Referenced by pack_sat().

◆ _mm_packus_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_packus_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1759 of file emmintrin.h.

1760{
1761 return (__m128i)__builtin_ia32_packuswb128((__v8hi)a, (__v8hi)b);
1762}

Referenced by packu_sat().

◆ _mm_pause()

void _mm_pause ( void  )

Definition at line 2036 of file intrin_x86.h.

2037{
2038 __asm__ __volatile__("pause" : : : "memory");
2039}

◆ _mm_sad_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_sad_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1262 of file emmintrin.h.

1263{
1264 return __builtin_ia32_psadbw128((__v16qi)a, (__v16qi)b);
1265}

Referenced by sum_abs().

◆ _mm_set1_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi16 ( short  w)

Definition at line 1620 of file emmintrin.h.

1621{
1622 return _mm_set_epi16(w, w, w, w, w, w, w, w);
1623}
__m128i _mm_set_epi16(short w7, short w6, short w5, short w4, short w3, short w2, short w1, short w0)
Definition: emmintrin.h:1587
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102

◆ _mm_set1_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi32 ( int  i)

Definition at line 1615 of file emmintrin.h.

1616{
1617 return _mm_set_epi32(i, i, i, i);
1618}
__m128i _mm_set_epi32(int i3, int i2, int i1, int i0)
Definition: emmintrin.h:1582

◆ _mm_set1_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi64 ( __m64  q)

Definition at line 1610 of file emmintrin.h.

1611{
1612 return _mm_set_epi64(q, q);
1613}
__m128i _mm_set_epi64(__m64 q1, __m64 q0)
Definition: emmintrin.h:1577
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063

Referenced by get_mask128().

◆ _mm_set1_epi64x()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi64x ( long long  q)

Definition at line 1605 of file emmintrin.h.

1606{
1607 return _mm_set_epi64x(q, q);
1608}
__INTRIN_INLINE_SSE2 __m128i _mm_set_epi64x(long long q1, long long q0)
Definition: emmintrin.h:1572

◆ _mm_set1_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi8 ( char  b)

Definition at line 1625 of file emmintrin.h.

1626{
1627 return _mm_set_epi8(b, b, b, b, b, b, b, b, b, b, b,
1628 b, b, b, b, b);
1629}
__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)
Definition: emmintrin.h:1594

◆ _mm_set1_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_set1_pd ( double  w)

Definition at line 1040 of file emmintrin.h.

1041{
1042 return __extension__(__m128d){w, w};
1043}

Referenced by F64vec2::F64vec2().

◆ _mm_set_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_set_epi16 ( short  w7,
short  w6,
short  w5,
short  w4,
short  w3,
short  w2,
short  w1,
short  w0 
)

Definition at line 1587 of file emmintrin.h.

1590{
1591 return __extension__(__m128i)(__v8hi){w0, w1, w2, w3, w4, w5, w6, w7};
1592}
GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint GLdouble GLdouble w2
Definition: glext.h:8308
GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint GLdouble w1
Definition: glext.h:8308

Referenced by _mm_set1_epi16(), and _mm_setr_epi16().

◆ _mm_set_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_set_epi32 ( int  i3,
int  i2,
int  i1,
int  i0 
)

Definition at line 1582 of file emmintrin.h.

1583{
1584 return __extension__(__m128i)(__v4si){i0, i1, i2, i3};
1585}

Referenced by _mm_set1_epi32(), and _mm_setr_epi32().

◆ _mm_set_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_set_epi64 ( __m64  q1,
__m64  q0 
)

Definition at line 1577 of file emmintrin.h.

1578{
1579 return _mm_set_epi64x((long long)q1, (long long)q0);
1580}

Referenced by _mm_set1_epi64(), and _mm_setr_epi64().

◆ _mm_set_epi64x()

__INTRIN_INLINE_SSE2 __m128i _mm_set_epi64x ( long long  q1,
long long  q0 
)

Definition at line 1572 of file emmintrin.h.

1573{
1574 return __extension__(__m128i)(__v2di){q0, q1};
1575}

Referenced by _mm_set1_epi64x(), and _mm_set_epi64().

◆ _mm_set_epi8()

__INTRIN_INLINE_SSE2 __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 
)

Definition at line 1594 of file emmintrin.h.

1599{
1600 return __extension__(__m128i)(__v16qi){
1601 b0, b1, b2, b3, b4, b5, b6, b7,
1602 b8, b9, b10, b11, b12, b13, b14, b15};
1603}
static CRYPT_DATA_BLOB b4
Definition: msg.c:2284
static CRYPT_DATA_BLOB b3[]
Definition: msg.c:592
static CRYPT_DATA_BLOB b2[]
Definition: msg.c:582
static CRYPT_DATA_BLOB b1[]
Definition: msg.c:573

Referenced by _mm_set1_epi8(), and _mm_setr_epi8().

◆ _mm_set_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_set_pd ( double  w,
double  x 
)

Definition at line 1045 of file emmintrin.h.

1046{
1047 return __extension__(__m128d){x, w};
1048}
GLint GLint GLint GLint GLint x
Definition: gl.h:1548

Referenced by F64vec2::F64vec2().

◆ _mm_set_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_set_sd ( double  w)

Definition at line 1035 of file emmintrin.h.

1036{
1037 return __extension__(__m128d){w, 0};
1038}

Referenced by sqrt().

◆ _mm_setl_epi64()

__m128i _mm_setl_epi64 ( __m128i  q)

◆ _mm_setr_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_setr_epi16 ( short  w0,
short  w1,
short  w2,
short  w3,
short  w4,
short  w5,
short  w6,
short  w7 
)

Definition at line 1641 of file emmintrin.h.

1644{
1645 return _mm_set_epi16(w7, w6, w5, w4, w3, w2, w1, w0);
1646}

◆ _mm_setr_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_setr_epi32 ( int  i0,
int  i1,
int  i2,
int  i3 
)

Definition at line 1636 of file emmintrin.h.

1637{
1638 return _mm_set_epi32(i3, i2, i1, i0);
1639}

◆ _mm_setr_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_setr_epi64 ( __m64  q0,
__m64  q1 
)

Definition at line 1631 of file emmintrin.h.

1632{
1633 return _mm_set_epi64(q1, q0);
1634}

◆ _mm_setr_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_setr_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 
)

Definition at line 1648 of file emmintrin.h.

1653{
1654 return _mm_set_epi8(b15, b14, b13, b12, b11, b10, b9, b8,
1655 b7, b6, b5, b4, b3, b2, b1, b0);
1656}

◆ _mm_setr_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_setr_pd ( double  w,
double  x 
)

Definition at line 1050 of file emmintrin.h.

1051{
1052 return __extension__(__m128d){w, x};
1053}

◆ _mm_setzero_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_setzero_pd ( void  )

Definition at line 1055 of file emmintrin.h.

1056{
1057 return __extension__(__m128d){0, 0};
1058}

Referenced by _hypot(), _hypotf(), acos(), asin(), and sqrt().

◆ _mm_setzero_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_setzero_si128 ( void  )

Definition at line 1658 of file emmintrin.h.

1659{
1660 return __extension__(__m128i)(__v2di){0LL, 0LL};
1661}

Referenced by _mm_move_epi64().

◆ _mm_shuffle_epi32()

__m128i _mm_shuffle_epi32 ( __m128i  a,
int  imm 
)

◆ _mm_shuffle_pd()

__m128d _mm_shuffle_pd ( __m128d  a,
__m128d  b,
int  imm 
)

◆ _mm_shufflehi_epi16()

__m128i _mm_shufflehi_epi16 ( __m128i  a,
int  imm 
)

◆ _mm_shufflelo_epi16()

__m128i _mm_shufflelo_epi16 ( __m128i  a,
int  imm 
)

◆ _mm_sll_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_sll_epi16 ( __m128i  a,
__m128i  count 
)

Definition at line 1356 of file emmintrin.h.

1357{
1358 return (__m128i)__builtin_ia32_psllw128((__v8hi)a, (__v8hi)count);
1359}
GLuint GLuint GLsizei count
Definition: gl.h:1545

Referenced by I16vec8::operator<<(), Is16vec8::operator<<(), Iu16vec8::operator<<(), I16vec8::operator<<=(), Is16vec8::operator<<=(), and Iu16vec8::operator<<=().

◆ _mm_sll_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_sll_epi32 ( __m128i  a,
__m128i  count 
)

Definition at line 1366 of file emmintrin.h.

1367{
1368 return (__m128i)__builtin_ia32_pslld128((__v4si)a, (__v4si)count);
1369}

Referenced by I32vec4::operator<<(), Is32vec4::operator<<(), Iu32vec4::operator<<(), I32vec4::operator<<=(), Is32vec4::operator<<=(), and Iu32vec4::operator<<=().

◆ _mm_sll_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_sll_epi64 ( __m128i  a,
__m128i  count 
)

Definition at line 1376 of file emmintrin.h.

1377{
1378 return __builtin_ia32_psllq128((__v2di)a, (__v2di)count);
1379}

Referenced by I64vec2::operator<<(), and I64vec2::operator<<=().

◆ _mm_slli_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_slli_epi16 ( __m128i  a,
int  count 
)

Definition at line 1351 of file emmintrin.h.

1352{
1353 return (__m128i)__builtin_ia32_psllwi128((__v8hi)a, count);
1354}

Referenced by I16vec8::operator<<(), Is16vec8::operator<<(), Iu16vec8::operator<<(), I16vec8::operator<<=(), Is16vec8::operator<<=(), and Iu16vec8::operator<<=().

◆ _mm_slli_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_slli_epi32 ( __m128i  a,
int  count 
)

Definition at line 1361 of file emmintrin.h.

1362{
1363 return (__m128i)__builtin_ia32_pslldi128((__v4si)a, count);
1364}

Referenced by I32vec4::operator<<(), Is32vec4::operator<<(), Iu32vec4::operator<<(), I32vec4::operator<<=(), Is32vec4::operator<<=(), and Iu32vec4::operator<<=().

◆ _mm_slli_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_slli_epi64 ( __m128i  a,
int  count 
)

Definition at line 1371 of file emmintrin.h.

1372{
1373 return __builtin_ia32_psllqi128((__v2di)a, count);
1374}

Referenced by I64vec2::operator<<(), and I64vec2::operator<<=().

◆ _mm_slli_si128()

__m128i _mm_slli_si128 ( __m128i  a,
int  i 
)

◆ _mm_sqrt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_sqrt_pd ( __m128d  a)

Definition at line 624 of file emmintrin.h.

625{
626 return __builtin_ia32_sqrtpd((__v2df)a);
627}

Referenced by sqrt().

◆ _mm_sqrt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_sqrt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 618 of file emmintrin.h.

619{
620 __m128d __c = __builtin_ia32_sqrtsd((__v2df)b);
621 return __extension__(__m128d){__c[0], a[1]};
622}

Referenced by _hypot(), _hypotf(), acos(), asin(), and sqrt().

◆ _mm_sra_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_sra_epi16 ( __m128i  a,
__m128i  count 
)

Definition at line 1386 of file emmintrin.h.

1387{
1388 return (__m128i)__builtin_ia32_psraw128((__v8hi)a, (__v8hi)count);
1389}

Referenced by Is16vec8::operator>>(), and Is16vec8::operator>>=().

◆ _mm_sra_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_sra_epi32 ( __m128i  a,
__m128i  count 
)

Definition at line 1396 of file emmintrin.h.

1397{
1398 return (__m128i)__builtin_ia32_psrad128((__v4si)a, (__v4si)count);
1399}

Referenced by Is32vec4::operator>>(), and Is32vec4::operator>>=().

◆ _mm_srai_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_srai_epi16 ( __m128i  a,
int  count 
)

Definition at line 1381 of file emmintrin.h.

1382{
1383 return (__m128i)__builtin_ia32_psrawi128((__v8hi)a, count);
1384}

Referenced by Is16vec8::operator>>(), and Is16vec8::operator>>=().

◆ _mm_srai_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_srai_epi32 ( __m128i  a,
int  count 
)

Definition at line 1391 of file emmintrin.h.

1392{
1393 return (__m128i)__builtin_ia32_psradi128((__v4si)a, count);
1394}

Referenced by Is32vec4::operator>>(), and Is32vec4::operator>>=().

◆ _mm_srl_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_srl_epi16 ( __m128i  a,
__m128i  count 
)

Definition at line 1409 of file emmintrin.h.

1410{
1411 return (__m128i)__builtin_ia32_psrlw128((__v8hi)a, (__v8hi)count);
1412}

Referenced by Iu16vec8::operator>>(), and Iu16vec8::operator>>=().

◆ _mm_srl_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_srl_epi32 ( __m128i  a,
__m128i  count 
)

Definition at line 1419 of file emmintrin.h.

1420{
1421 return (__m128i)__builtin_ia32_psrld128((__v4si)a, (__v4si)count);
1422}

Referenced by Iu32vec4::operator>>(), and Iu32vec4::operator>>=().

◆ _mm_srl_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_srl_epi64 ( __m128i  a,
__m128i  count 
)

Definition at line 1429 of file emmintrin.h.

1430{
1431 return __builtin_ia32_psrlq128((__v2di)a, (__v2di)count);
1432}

Referenced by I64vec2::operator>>(), and I64vec2::operator>>=().

◆ _mm_srli_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_srli_epi16 ( __m128i  a,
int  count 
)

Definition at line 1404 of file emmintrin.h.

1405{
1406 return (__m128i)__builtin_ia32_psrlwi128((__v8hi)a, count);
1407}

Referenced by Iu16vec8::operator>>(), and Iu16vec8::operator>>=().

◆ _mm_srli_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_srli_epi32 ( __m128i  a,
int  count 
)

Definition at line 1414 of file emmintrin.h.

1415{
1416 return (__m128i)__builtin_ia32_psrldi128((__v4si)a, count);
1417}

Referenced by Iu32vec4::operator>>(), and Iu32vec4::operator>>=().

◆ _mm_srli_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_srli_epi64 ( __m128i  a,
int  count 
)

Definition at line 1424 of file emmintrin.h.

1425{
1426 return __builtin_ia32_psrlqi128((__v2di)a, count);
1427}

Referenced by I64vec2::operator>>(), and I64vec2::operator>>=().

◆ _mm_srli_si128()

__m128i _mm_srli_si128 ( __m128i  a,
int  imm 
)

◆ _mm_store1_pd()

__INTRIN_INLINE_SSE2 void _mm_store1_pd ( double dp,
__m128d  a 
)

Definition at line 1079 of file emmintrin.h.

1080{
1081#if HAS_BUILTIN(__builtin_shufflevector)
1082 a = __builtin_shufflevector((__v2df)a, (__v2df)a, 0, 0);
1083 _mm_store_pd(dp, a);
1084#else
1085 dp[0] = a[0];
1086 dp[1] = a[0];
1087#endif
1088}
void _mm_store_pd(double *dp, __m128d a)
Definition: emmintrin.h:1074

◆ _mm_store_pd()

__INTRIN_INLINE_SSE2 void _mm_store_pd ( double dp,
__m128d  a 
)

Definition at line 1074 of file emmintrin.h.

1075{
1076 *(__m128d *)dp = a;
1077}

Referenced by _mm_store1_pd().

◆ _mm_store_sd()

__INTRIN_INLINE_SSE2 void _mm_store_sd ( double dp,
__m128d  a 
)

Definition at line 1066 of file emmintrin.h.

1067{
1068 struct __mm_store_sd_struct {
1069 double __u;
1070 } __attribute__((__packed__, __may_alias__));
1071 ((struct __mm_store_sd_struct *)dp)->__u = a[0];
1072}

Referenced by _hypot(), _hypotf(), acos(), asin(), and sqrt().

◆ _mm_store_si128()

__INTRIN_INLINE_SSE2 void _mm_store_si128 ( __m128i *  p,
__m128i  b 
)

Definition at line 1663 of file emmintrin.h.

1664{
1665 *p = b;
1666}

◆ _mm_storeh_pd()

__INTRIN_INLINE_SSE2 void _mm_storeh_pd ( double dp,
__m128d  a 
)

Definition at line 1109 of file emmintrin.h.

1110{
1111 struct __mm_storeh_pd_struct {
1112 double __u;
1113 } __attribute__((__packed__, __may_alias__));
1114 ((struct __mm_storeh_pd_struct *)dp)->__u = a[1];
1115}

◆ _mm_storel_epi64()

__INTRIN_INLINE_SSE2 void _mm_storel_epi64 ( __m128i_u *  p,
__m128i  a 
)

Definition at line 1705 of file emmintrin.h.

1706{
1707 struct __mm_storel_epi64_struct {
1708 long long __u;
1709 } __attribute__((__packed__, __may_alias__));
1710 ((struct __mm_storel_epi64_struct *)p)->__u = a[0];
1711}

◆ _mm_storel_pd()

__INTRIN_INLINE_SSE2 void _mm_storel_pd ( double dp,
__m128d  a 
)

Definition at line 1117 of file emmintrin.h.

1118{
1119 struct __mm_storeh_pd_struct {
1120 double __u;
1121 } __attribute__((__packed__, __may_alias__));
1122 ((struct __mm_storeh_pd_struct *)dp)->__u = a[0];
1123}

◆ _mm_storer_pd()

__INTRIN_INLINE_SSE2 void _mm_storer_pd ( double dp,
__m128d  a 
)

Definition at line 1098 of file emmintrin.h.

1099{
1100#if HAS_BUILTIN(__builtin_shufflevector)
1101 a = __builtin_shufflevector((__v2df)a, (__v2df)a, 1, 0);
1102 *(__m128d *)dp = a;
1103#else
1104 dp[0] = a[1];
1105 dp[1] = a[0];
1106#endif
1107}

◆ _mm_storeu_pd()

__INTRIN_INLINE_SSE2 void _mm_storeu_pd ( double dp,
__m128d  a 
)

Definition at line 1090 of file emmintrin.h.

1091{
1092 struct __storeu_pd {
1093 __m128d_u __v;
1094 } __attribute__((__packed__, __may_alias__));
1095 ((struct __storeu_pd *)dp)->__v = a;
1096}

Referenced by storeu().

◆ _mm_storeu_si128()

__INTRIN_INLINE_SSE2 void _mm_storeu_si128 ( __m128i_u *  p,
__m128i  b 
)

Definition at line 1668 of file emmintrin.h.

1669{
1670 struct __storeu_si128 {
1671 __m128i_u __v;
1672 } __attribute__((__packed__, __may_alias__));
1673 ((struct __storeu_si128 *)p)->__v = b;
1674}

◆ _mm_storeu_si16()

__INTRIN_INLINE_SSE2 void _mm_storeu_si16 ( void p,
__m128i  b 
)

Definition at line 1692 of file emmintrin.h.

1693{
1694 struct __storeu_si16 {
1695 short __v;
1696 } __attribute__((__packed__, __may_alias__));
1697 ((struct __storeu_si16 *)p)->__v = ((__v8hi)b)[0];
1698}

◆ _mm_storeu_si32()

__INTRIN_INLINE_SSE2 void _mm_storeu_si32 ( void p,
__m128i  b 
)

Definition at line 1684 of file emmintrin.h.

1685{
1686 struct __storeu_si32 {
1687 int __v;
1688 } __attribute__((__packed__, __may_alias__));
1689 ((struct __storeu_si32 *)p)->__v = ((__v4si)b)[0];
1690}

◆ _mm_storeu_si64()

__INTRIN_INLINE_SSE2 void _mm_storeu_si64 ( void p,
__m128i  b 
)

Definition at line 1676 of file emmintrin.h.

1677{
1678 struct __storeu_si64 {
1679 long long __v;
1680 } __attribute__((__packed__, __may_alias__));
1681 ((struct __storeu_si64 *)p)->__v = ((__v2di)b)[0];
1682}

◆ _mm_stream_pd()

__INTRIN_INLINE_SSE2 void _mm_stream_pd ( double p,
__m128d  a 
)

Definition at line 1713 of file emmintrin.h.

1714{
1715#if HAS_BUILTIN(__builtin_nontemporal_store)
1716 __builtin_nontemporal_store((__v2df)a, (__v2df *)p);
1717#else
1718 __builtin_ia32_movntpd(p, a);
1719#endif
1720}

Referenced by store_nta().

◆ _mm_stream_si128()

__INTRIN_INLINE_SSE2 void _mm_stream_si128 ( __m128i *  p,
__m128i  a 
)

Definition at line 1722 of file emmintrin.h.

1723{
1724#if HAS_BUILTIN(__builtin_nontemporal_store)
1725 __builtin_nontemporal_store((__v2di)a, (__v2di*)p);
1726#else
1727 __builtin_ia32_movntdq(p, a);
1728#endif
1729}

◆ _mm_stream_si32()

__INTRIN_INLINE_SSE2 void _mm_stream_si32 ( int p,
int  a 
)

Definition at line 1731 of file emmintrin.h.

1732{
1733 __builtin_ia32_movnti(p, a);
1734}

◆ _mm_sub_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_sub_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1272 of file emmintrin.h.

1273{
1274 return (__m128i)((__v8hu)a - (__v8hu)b);
1275}

Referenced by I16vec8::operator-=(), Is16vec8::operator-=(), and Iu16vec8::operator-=().

◆ _mm_sub_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_sub_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1277 of file emmintrin.h.

1278{
1279 return (__m128i)((__v4su)a - (__v4su)b);
1280}

Referenced by I32vec4::operator-=(), Is32vec4::operator-=(), and Iu32vec4::operator-=().

◆ _mm_sub_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_sub_epi64 ( __m128i  a,
__m128i  b 
)

Definition at line 1287 of file emmintrin.h.

1288{
1289 return (__m128i)((__v2du)a - (__v2du)b);
1290}

Referenced by I64vec2::operator-=().

◆ _mm_sub_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_sub_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1267 of file emmintrin.h.

1268{
1269 return (__m128i)((__v16qu)a - (__v16qu)b);
1270}

Referenced by I8vec16::operator-=(), Is8vec16::operator-=(), and Iu8vec16::operator-=().

◆ _mm_sub_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_sub_pd ( __m128d  a,
__m128d  b 
)

Definition at line 591 of file emmintrin.h.

592{
593 return (__m128d)((__v2df)a - (__v2df)b);
594}

Referenced by F64vec2::operator-=().

◆ _mm_sub_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_sub_sd ( __m128d  a,
__m128d  b 
)

Definition at line 585 of file emmintrin.h.

586{
587 a[0] -= b[0];
588 return a;
589}

◆ _mm_sub_si64()

__INTRIN_INLINE_MMXSSE2 __m64 _mm_sub_si64 ( __m64  a,
__m64  b 
)

Definition at line 1282 of file emmintrin.h.

1283{
1284 return (__m64)__builtin_ia32_psubq((__v1di)a, (__v1di)b);
1285}

◆ _mm_subs_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1301 of file emmintrin.h.

1302{
1303#if HAS_BUILTIN(__builtin_elementwise_sub_sat)
1304 return (__m128i)__builtin_elementwise_sub_sat((__v8hi)a, (__v8hi)b);
1305#else
1306 return (__m128i)__builtin_ia32_psubsw128((__v8hi)a, (__v8hi)b);
1307#endif
1308}

Referenced by sat_sub().

◆ _mm_subs_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1292 of file emmintrin.h.

1293{
1294#if HAS_BUILTIN(__builtin_elementwise_sub_sat)
1295 return (__m128i)__builtin_elementwise_sub_sat((__v16qs)a, (__v16qs)b);
1296#else
1297 return (__m128i)__builtin_ia32_psubsb128((__v16qi)a, (__v16qi)b);
1298#endif
1299}

Referenced by sat_sub().

◆ _mm_subs_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1319 of file emmintrin.h.

1320{
1321#if HAS_BUILTIN(__builtin_elementwise_sub_sat)
1322 return (__m128i)__builtin_elementwise_sub_sat((__v8hu)a, (__v8hu)b);
1323#else
1324 return (__m128i)__builtin_ia32_psubusw128((__v8hi)a, (__v8hi)b);
1325#endif
1326}

Referenced by sat_sub().

◆ _mm_subs_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1310 of file emmintrin.h.

1311{
1312#if HAS_BUILTIN(__builtin_elementwise_sub_sat)
1313 return (__m128i)__builtin_elementwise_sub_sat((__v16qu)a, (__v16qu)b);
1314#else
1315 return (__m128i)__builtin_ia32_psubusb128((__v16qi)a, (__v16qi)b);
1316#endif
1317}

Referenced by sat_sub().

◆ _mm_ucomieq_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomieq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 823 of file emmintrin.h.

824{
825 return __builtin_ia32_ucomisdeq((__v2df)a, (__v2df)b);
826}

◆ _mm_ucomige_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomige_sd ( __m128d  a,
__m128d  b 
)

Definition at line 843 of file emmintrin.h.

844{
845 return __builtin_ia32_ucomisdge((__v2df)a, (__v2df)b);
846}

◆ _mm_ucomigt_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomigt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 838 of file emmintrin.h.

839{
840 return __builtin_ia32_ucomisdgt((__v2df)a, (__v2df)b);
841}

◆ _mm_ucomile_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomile_sd ( __m128d  a,
__m128d  b 
)

Definition at line 833 of file emmintrin.h.

834{
835 return __builtin_ia32_ucomisdle((__v2df)a, (__v2df)b);
836}

◆ _mm_ucomilt_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomilt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 828 of file emmintrin.h.

829{
830 return __builtin_ia32_ucomisdlt((__v2df)a, (__v2df)b);
831}

◆ _mm_ucomineq_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomineq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 848 of file emmintrin.h.

849{
850 return __builtin_ia32_ucomisdneq((__v2df)a, (__v2df)b);
851}

◆ _mm_undefined_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_undefined_pd ( void  )

Definition at line 1025 of file emmintrin.h.

1026{
1027#if HAS_BUILTIN(__builtin_ia32_undef128)
1028 return (__m128d)__builtin_ia32_undef128();
1029#else
1030 __m128d undef = undef;
1031 return undef;
1032#endif
1033}

◆ _mm_undefined_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_undefined_si128 ( void  )

Definition at line 1562 of file emmintrin.h.

1563{
1564#if HAS_BUILTIN(__builtin_ia32_undef128)
1565 return (__m128i)__builtin_ia32_undef128();
1566#else
1567 __m128i undef = undef;
1568 return undef;
1569#endif
1570}

◆ _mm_unpackhi_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1797 of file emmintrin.h.

1798{
1799#if HAS_BUILTIN(__builtin_shufflevector)
1800 return (__m128i)__builtin_shufflevector((__v8hi)a, (__v8hi)b, 4, 8 + 4, 5,
1801 8 + 5, 6, 8 + 6, 7, 8 + 7);
1802#else
1803 return (__m128i)__builtin_ia32_punpckhwd128((__v8hi)a, (__v8hi)b);
1804#endif
1805}

Referenced by unpack_high().

◆ _mm_unpackhi_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1807 of file emmintrin.h.

1808{
1809#if HAS_BUILTIN(__builtin_shufflevector)
1810 return (__m128i)__builtin_shufflevector((__v4si)a, (__v4si)b, 2, 4 + 2, 3,
1811 4 + 3);
1812#else
1813 return (__m128i)__builtin_ia32_punpckhdq128((__v4si)a, (__v4si)b);
1814#endif
1815}

Referenced by unpack_high().

◆ _mm_unpackhi_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi64 ( __m128i  a,
__m128i  b 
)

Definition at line 1817 of file emmintrin.h.

1818{
1819#if HAS_BUILTIN(__builtin_shufflevector)
1820 return (__m128i)__builtin_shufflevector((__v2di)a, (__v2di)b, 1, 2 + 1);
1821#else
1822 return (__m128i)__builtin_ia32_punpckhqdq128((__v2di)a, (__v2di)b);
1823#endif
1824}

Referenced by unpack_high().

◆ _mm_unpackhi_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1786 of file emmintrin.h.

1787{
1788#if HAS_BUILTIN(__builtin_shufflevector)
1789 return (__m128i)__builtin_shufflevector(
1790 (__v16qi)a, (__v16qi)b, 8, 16 + 8, 9, 16 + 9, 10, 16 + 10, 11,
1791 16 + 11, 12, 16 + 12, 13, 16 + 13, 14, 16 + 14, 15, 16 + 15);
1792#else
1793 return (__m128i)__builtin_ia32_punpckhbw128((__v16qi)a, (__v16qi)b);
1794#endif
1795}

Referenced by unpack_high().

◆ _mm_unpackhi_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_unpackhi_pd ( __m128d  a,
__m128d  b 
)

Definition at line 1885 of file emmintrin.h.

1886{
1887#if HAS_BUILTIN(__builtin_shufflevector)
1888 return __builtin_shufflevector((__v2df)a, (__v2df)b, 1, 2 + 1);
1889#else
1890 return (__m128d)__builtin_ia32_unpckhpd((__v2df)a, (__v2df)b);
1891#endif
1892}

Referenced by unpack_high().

◆ _mm_unpacklo_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1837 of file emmintrin.h.

1838{
1839#if HAS_BUILTIN(__builtin_shufflevector)
1840 return (__m128i)__builtin_shufflevector((__v8hi)a, (__v8hi)b, 0, 8 + 0, 1,
1841 8 + 1, 2, 8 + 2, 3, 8 + 3);
1842#else
1843 return (__m128i)__builtin_ia32_punpcklwd128((__v8hi)a, (__v8hi)b);
1844#endif
1845}

Referenced by unpack_low().

◆ _mm_unpacklo_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1847 of file emmintrin.h.

1848{
1849#if HAS_BUILTIN(__builtin_shufflevector)
1850 return (__m128i)__builtin_shufflevector((__v4si)a, (__v4si)b, 0, 4 + 0, 1,
1851 4 + 1);
1852#else
1853 return (__m128i)__builtin_ia32_punpckldq128((__v4si)a, (__v4si)b);
1854#endif
1855}

Referenced by unpack_low().

◆ _mm_unpacklo_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi64 ( __m128i  a,
__m128i  b 
)

Definition at line 1857 of file emmintrin.h.

1858{
1859#if HAS_BUILTIN(__builtin_shufflevector)
1860 return (__m128i)__builtin_shufflevector((__v2di)a, (__v2di)b, 0, 2 + 0);
1861#else
1862 return (__m128i)__builtin_ia32_punpcklqdq128((__v2di)a, (__v2di)b);
1863#endif
1864}

Referenced by unpack_low().

◆ _mm_unpacklo_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1826 of file emmintrin.h.

1827{
1828#if HAS_BUILTIN(__builtin_shufflevector)
1829 return (__m128i)__builtin_shufflevector(
1830 (__v16qi)a, (__v16qi)b, 0, 16 + 0, 1, 16 + 1, 2, 16 + 2, 3, 16 + 3, 4,
1831 16 + 4, 5, 16 + 5, 6, 16 + 6, 7, 16 + 7);
1832#else
1833 return (__m128i)__builtin_ia32_punpcklbw128((__v16qi)a, (__v16qi)b);
1834#endif
1835}

Referenced by unpack_low().

◆ _mm_unpacklo_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_unpacklo_pd ( __m128d  a,
__m128d  b 
)

Definition at line 1894 of file emmintrin.h.

1895{
1896#if HAS_BUILTIN(__builtin_shufflevector)
1897 return __builtin_shufflevector((__v2df)a, (__v2df)b, 0, 2 + 0);
1898#else
1899 return (__m128d)__builtin_ia32_unpcklpd((__v2df)a, (__v2df)b);
1900#endif
1901}

Referenced by unpack_low().

◆ _mm_xor_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_xor_pd ( __m128d  a,
__m128d  b 
)

Definition at line 664 of file emmintrin.h.

665{
666 return (__m128d)((__v2du)a ^ (__v2du)b);
667}

Referenced by F64vec2::operator^=().

◆ _mm_xor_si128()