ReactOS 0.4.15-dev-8138-g1e75ea8
emmintrin.h File Reference
#include <crtdefs.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 __INTRIN_INLINE_SSE2   __INTRIN_INLINE __ATTRIBUTE_SSE2__
 
#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_SSE2__

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

Definition at line 67 of file emmintrin.h.

◆ __INTRIN_INLINE_SSE2

#define __INTRIN_INLINE_SSE2   __INTRIN_INLINE __ATTRIBUTE_SSE2__

Definition at line 69 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 318 of file emmintrin.h.

◆ _mm_bsrli_si128

#define _mm_bsrli_si128   _mm_srli_si128

Definition at line 319 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 1757 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 1761 of file emmintrin.h.

◆ _mm_load_pd1

#define _mm_load_pd1 (   p)    _mm_load1_pd(p)

Definition at line 316 of file emmintrin.h.

◆ _mm_set_pd1

#define _mm_set_pd1 (   a)    _mm_set1_pd(a)

Definition at line 315 of file emmintrin.h.

◆ _MM_SHUFFLE2

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

Definition at line 943 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 1770 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 1901 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 1776 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 1773 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 1341 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 1394 of file emmintrin.h.

◆ _mm_store_pd1

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

Definition at line 317 of file emmintrin.h.

◆ _mm_stream_si64

#define _mm_stream_si64   _mm_stream_si64x

Definition at line 320 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 1123 of file emmintrin.h.

1124{
1125 return (__m128i)((__v8hu)a + (__v8hu)b);
1126}

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 1128 of file emmintrin.h.

1129{
1130 return (__m128i)((__v4su)a + (__v4su)b);
1131}

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 1138 of file emmintrin.h.

1139{
1140 return (__m128i)((__v2du)a + (__v2du)b);
1141}

Referenced by I64vec2::operator+=().

◆ _mm_add_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_add_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1118 of file emmintrin.h.

1119{
1120 return (__m128i)((__v16qu)a + (__v16qu)b);
1121}

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 573 of file emmintrin.h.

574{
575 return (__m128d)((__v2df)a + (__v2df)b);
576}

Referenced by F64vec2::operator+=().

◆ _mm_add_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_add_sd ( __m128d  a,
__m128d  b 
)

Definition at line 567 of file emmintrin.h.

568{
569 a[0] += b[0];
570 return a;
571}
#define a
Definition: ke_i.h:78

◆ _mm_add_si64()

__INTRIN_INLINE_MMX __m64 _mm_add_si64 ( __m64  a,
__m64  b 
)

Definition at line 1133 of file emmintrin.h.

1134{
1135 return (__m64)__builtin_ia32_paddq((__v1di)a, (__v1di)b);
1136}

◆ _mm_adds_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1152 of file emmintrin.h.

1153{
1154#if HAS_BUILTIN(__builtin_elementwise_add_sat)
1155 return (__m128i)__builtin_elementwise_add_sat((__v8hi)a, (__v8hi)b);
1156#else
1157 return (__m128i)__builtin_ia32_paddsw128((__v8hi)a, (__v8hi)b);
1158#endif
1159}

Referenced by sat_add().

◆ _mm_adds_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1143 of file emmintrin.h.

1144{
1145#if HAS_BUILTIN(__builtin_elementwise_add_sat)
1146 return (__m128i)__builtin_elementwise_add_sat((__v16qs)a, (__v16qs)b);
1147#else
1148 return (__m128i)__builtin_ia32_paddsb128((__v16qi)a, (__v16qi)b);
1149#endif
1150}

Referenced by sat_add().

◆ _mm_adds_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1170 of file emmintrin.h.

1171{
1172#if HAS_BUILTIN(__builtin_elementwise_add_sat)
1173 return (__m128i)__builtin_elementwise_add_sat((__v8hu)a, (__v8hu)b);
1174#else
1175 return (__m128i)__builtin_ia32_paddusw128((__v8hi)a, (__v8hi)b);
1176#endif
1177}

Referenced by sat_add().

◆ _mm_adds_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1161 of file emmintrin.h.

1162{
1163#if HAS_BUILTIN(__builtin_elementwise_add_sat)
1164 return (__m128i)__builtin_elementwise_add_sat((__v16qu)a, (__v16qu)b);
1165#else
1166 return (__m128i)__builtin_ia32_paddusb128((__v16qi)a, (__v16qi)b);
1167#endif
1168}

Referenced by sat_add().

◆ _mm_and_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_and_pd ( __m128d  a,
__m128d  b 
)

Definition at line 642 of file emmintrin.h.

643{
644 return (__m128d)((__v2du)a & (__v2du)b);
645}

Referenced by F64vec2::operator&=().

◆ _mm_and_si128()

◆ _mm_andnot_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_andnot_pd ( __m128d  a,
__m128d  b 
)

Definition at line 647 of file emmintrin.h.

648{
649 return (__m128d)(~(__v2du)a & (__v2du)b);
650}

◆ _mm_andnot_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_andnot_si128 ( __m128i  a,
__m128i  b 
)

Definition at line 1326 of file emmintrin.h.

1327{
1328 return (__m128i)(~(__v2du)a & (__v2du)b);
1329}

Referenced by andnot(), and cmpneq().

◆ _mm_avg_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_avg_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1184 of file emmintrin.h.

1185{
1186 return (__m128i)__builtin_ia32_pavgw128((__v8hi)a, (__v8hi)b);
1187}

Referenced by simd_avg().

◆ _mm_avg_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_avg_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1179 of file emmintrin.h.

1180{
1181 return (__m128i)__builtin_ia32_pavgb128((__v16qi)a, (__v16qi)b);
1182}

Referenced by simd_avg().

◆ _mm_castpd_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_castpd_ps ( __m128d  a)

Definition at line 1905 of file emmintrin.h.

1906{
1907 return (__m128)a;
1908}

◆ _mm_castpd_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_castpd_si128 ( __m128d  a)

Definition at line 1910 of file emmintrin.h.

1911{
1912 return (__m128i)a;
1913}

◆ _mm_castps_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_castps_pd ( __m128  a)

Definition at line 1915 of file emmintrin.h.

1916{
1917 return (__m128d)a;
1918}

◆ _mm_castps_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_castps_si128 ( __m128  a)

Definition at line 1920 of file emmintrin.h.

1921{
1922 return (__m128i)a;
1923}

◆ _mm_castsi128_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_castsi128_pd ( __m128i  a)

Definition at line 1930 of file emmintrin.h.

1931{
1932 return (__m128d)a;
1933}

◆ _mm_castsi128_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_castsi128_ps ( __m128i  a)

Definition at line 1925 of file emmintrin.h.

1926{
1927 return (__m128)a;
1928}

◆ _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 1432 of file emmintrin.h.

1433{
1434 return (__m128i)((__v8hi)a == (__v8hi)b);
1435}

Referenced by cmpeq(), and cmpneq().

◆ _mm_cmpeq_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpeq_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1437 of file emmintrin.h.

1438{
1439 return (__m128i)((__v4si)a == (__v4si)b);
1440}

Referenced by cmpeq(), and cmpneq().

◆ _mm_cmpeq_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpeq_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1427 of file emmintrin.h.

1428{
1429 return (__m128i)((__v16qi)a == (__v16qi)b);
1430}

Referenced by cmpeq(), and cmpneq().

◆ _mm_cmpeq_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpeq_pd ( __m128d  a,
__m128d  b 
)

Definition at line 662 of file emmintrin.h.

663{
664 return (__m128d)__builtin_ia32_cmpeqpd((__v2df)a, (__v2df)b);
665}

◆ _mm_cmpeq_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpeq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 722 of file emmintrin.h.

723{
724 return (__m128d)__builtin_ia32_cmpeqsd((__v2df)a, (__v2df)b);
725}

◆ _mm_cmpge_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpge_pd ( __m128d  a,
__m128d  b 
)

Definition at line 682 of file emmintrin.h.

683{
684 return (__m128d)__builtin_ia32_cmplepd((__v2df)b, (__v2df)a);
685}

◆ _mm_cmpge_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpge_sd ( __m128d  a,
__m128d  b 
)

Definition at line 743 of file emmintrin.h.

744{
745 __m128d __c = __builtin_ia32_cmplesd((__v2df)b, (__v2df)a);
746 return __extension__(__m128d){__c[0], a[1]};
747}
#define __c
Definition: schilyio.h:209

◆ _mm_cmpgt_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpgt_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1449 of file emmintrin.h.

1450{
1451 return (__m128i)((__v8hi)a > (__v8hi)b);
1452}

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 1454 of file emmintrin.h.

1455{
1456 return (__m128i)((__v4si)a > (__v4si)b);
1457}

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 1442 of file emmintrin.h.

1443{
1444 /* This function always performs a signed comparison, but __v16qi is a char
1445 which may be signed or unsigned, so use __v16qs. */
1446 return (__m128i)((__v16qs)a > (__v16qs)b);
1447}

Referenced by _mm_cmplt_epi8(), and cmpgt().

◆ _mm_cmpgt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpgt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 677 of file emmintrin.h.

678{
679 return (__m128d)__builtin_ia32_cmpltpd((__v2df)b, (__v2df)a);
680}

◆ _mm_cmpgt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpgt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 737 of file emmintrin.h.

738{
739 __m128d __c = __builtin_ia32_cmpltsd((__v2df)b, (__v2df)a);
740 return __extension__(__m128d){__c[0], a[1]};
741}

◆ _mm_cmple_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmple_pd ( __m128d  a,
__m128d  b 
)

Definition at line 672 of file emmintrin.h.

673{
674 return (__m128d)__builtin_ia32_cmplepd((__v2df)a, (__v2df)b);
675}

◆ _mm_cmple_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmple_sd ( __m128d  a,
__m128d  b 
)

Definition at line 732 of file emmintrin.h.

733{
734 return (__m128d)__builtin_ia32_cmplesd((__v2df)a, (__v2df)b);
735}

◆ _mm_cmplt_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_cmplt_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1464 of file emmintrin.h.

1465{
1466 return _mm_cmpgt_epi16(b, a);
1467}
__m128i _mm_cmpgt_epi16(__m128i a, __m128i b)
Definition: emmintrin.h:1449

◆ _mm_cmplt_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cmplt_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1469 of file emmintrin.h.

1470{
1471 return _mm_cmpgt_epi32(b, a);
1472}
__m128i _mm_cmpgt_epi32(__m128i a, __m128i b)
Definition: emmintrin.h:1454

◆ _mm_cmplt_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_cmplt_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1459 of file emmintrin.h.

1460{
1461 return _mm_cmpgt_epi8(b, a);
1462}
__m128i _mm_cmpgt_epi8(__m128i a, __m128i b)
Definition: emmintrin.h:1442

Referenced by cmplt().

◆ _mm_cmplt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmplt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 667 of file emmintrin.h.

668{
669 return (__m128d)__builtin_ia32_cmpltpd((__v2df)a, (__v2df)b);
670}

◆ _mm_cmplt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmplt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 727 of file emmintrin.h.

728{
729 return (__m128d)__builtin_ia32_cmpltsd((__v2df)a, (__v2df)b);
730}

◆ _mm_cmpneq_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpneq_pd ( __m128d  a,
__m128d  b 
)

Definition at line 697 of file emmintrin.h.

698{
699 return (__m128d)__builtin_ia32_cmpneqpd((__v2df)a, (__v2df)b);
700}

◆ _mm_cmpneq_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpneq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 759 of file emmintrin.h.

760{
761 return (__m128d)__builtin_ia32_cmpneqsd((__v2df)a, (__v2df)b);
762}

◆ _mm_cmpnge_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnge_pd ( __m128d  a,
__m128d  b 
)

Definition at line 717 of file emmintrin.h.

718{
719 return (__m128d)__builtin_ia32_cmpnlepd((__v2df)b, (__v2df)a);
720}

◆ _mm_cmpnge_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnge_sd ( __m128d  a,
__m128d  b 
)

Definition at line 780 of file emmintrin.h.

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

◆ _mm_cmpngt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpngt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 712 of file emmintrin.h.

713{
714 return (__m128d)__builtin_ia32_cmpnltpd((__v2df)b, (__v2df)a);
715}

◆ _mm_cmpngt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpngt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 774 of file emmintrin.h.

775{
776 __m128d __c = __builtin_ia32_cmpnltsd((__v2df)b, (__v2df)a);
777 return __extension__(__m128d){__c[0], a[1]};
778}

◆ _mm_cmpnle_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnle_pd ( __m128d  a,
__m128d  b 
)

Definition at line 707 of file emmintrin.h.

708{
709 return (__m128d)__builtin_ia32_cmpnlepd((__v2df)a, (__v2df)b);
710}

◆ _mm_cmpnle_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnle_sd ( __m128d  a,
__m128d  b 
)

Definition at line 769 of file emmintrin.h.

770{
771 return (__m128d)__builtin_ia32_cmpnlesd((__v2df)a, (__v2df)b);
772}

◆ _mm_cmpnlt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnlt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 702 of file emmintrin.h.

703{
704 return (__m128d)__builtin_ia32_cmpnltpd((__v2df)a, (__v2df)b);
705}

◆ _mm_cmpnlt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnlt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 764 of file emmintrin.h.

765{
766 return (__m128d)__builtin_ia32_cmpnltsd((__v2df)a, (__v2df)b);
767}

◆ _mm_cmpord_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpord_pd ( __m128d  a,
__m128d  b 
)

Definition at line 687 of file emmintrin.h.

688{
689 return (__m128d)__builtin_ia32_cmpordpd((__v2df)a, (__v2df)b);
690}

◆ _mm_cmpord_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpord_sd ( __m128d  a,
__m128d  b 
)

Definition at line 749 of file emmintrin.h.

750{
751 return (__m128d)__builtin_ia32_cmpordsd((__v2df)a, (__v2df)b);
752}

◆ _mm_cmpunord_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpunord_pd ( __m128d  a,
__m128d  b 
)

Definition at line 692 of file emmintrin.h.

693{
694 return (__m128d)__builtin_ia32_cmpunordpd((__v2df)a, (__v2df)b);
695}

◆ _mm_cmpunord_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpunord_sd ( __m128d  a,
__m128d  b 
)

Definition at line 754 of file emmintrin.h.

755{
756 return (__m128d)__builtin_ia32_cmpunordsd((__v2df)a, (__v2df)b);
757}

◆ _mm_comieq_sd()

__INTRIN_INLINE_SSE2 int _mm_comieq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 786 of file emmintrin.h.

787{
788 return __builtin_ia32_comisdeq((__v2df)a, (__v2df)b);
789}

◆ _mm_comige_sd()

__INTRIN_INLINE_SSE2 int _mm_comige_sd ( __m128d  a,
__m128d  b 
)

Definition at line 806 of file emmintrin.h.

807{
808 return __builtin_ia32_comisdge((__v2df)a, (__v2df)b);
809}

◆ _mm_comigt_sd()

__INTRIN_INLINE_SSE2 int _mm_comigt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 801 of file emmintrin.h.

802{
803 return __builtin_ia32_comisdgt((__v2df)a, (__v2df)b);
804}

◆ _mm_comile_sd()

__INTRIN_INLINE_SSE2 int _mm_comile_sd ( __m128d  a,
__m128d  b 
)

Definition at line 796 of file emmintrin.h.

797{
798 return __builtin_ia32_comisdle((__v2df)a, (__v2df)b);
799}

◆ _mm_comilt_sd()

__INTRIN_INLINE_SSE2 int _mm_comilt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 791 of file emmintrin.h.

792{
793 return __builtin_ia32_comisdlt((__v2df)a, (__v2df)b);
794}

◆ _mm_comineq_sd()

__INTRIN_INLINE_SSE2 int _mm_comineq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 811 of file emmintrin.h.

812{
813 return __builtin_ia32_comisdneq((__v2df)a, (__v2df)b);
814}

◆ _mm_cvtepi32_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtepi32_pd ( __m128i  a)

Definition at line 860 of file emmintrin.h.

861{
862#if HAS_BUILTIN(__builtin_convertvector)
863 return (__m128d)__builtin_convertvector(__builtin_shufflevector((__v4si)a, (__v4si)a, 0, 1), __v2df);
864#else
865 return __builtin_ia32_cvtdq2pd((__v4si)a);
866#endif
867}

◆ _mm_cvtepi32_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_cvtepi32_ps ( __m128i  a)

Definition at line 1493 of file emmintrin.h.

1494{
1495#if HAS_BUILTIN(__builtin_convertvector)
1496 return (__m128)__builtin_convertvector((__v4si)a, __v4sf);
1497#else
1498 return __builtin_ia32_cvtdq2ps((__v4si)a);
1499#endif
1500}

◆ _mm_cvtpd_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtpd_epi32 ( __m128d  a)

Definition at line 869 of file emmintrin.h.

870{
871 return (__m128i)__builtin_ia32_cvtpd2dq((__v2df)a);
872}

◆ _mm_cvtpd_pi32()

__INTRIN_INLINE_MMX __m64 _mm_cvtpd_pi32 ( __m128d  a)

Definition at line 907 of file emmintrin.h.

908{
909 return (__m64)__builtin_ia32_cvtpd2pi((__v2df)a);
910}

◆ _mm_cvtpd_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_cvtpd_ps ( __m128d  a)

Definition at line 846 of file emmintrin.h.

847{
848 return __builtin_ia32_cvtpd2ps((__v2df)a);
849}

Referenced by F64vec2ToF32vec4().

◆ _mm_cvtpi32_pd()

__INTRIN_INLINE_SSE __m128d _mm_cvtpi32_pd ( __m64  a)

Definition at line 917 of file emmintrin.h.

918{
919 return __builtin_ia32_cvtpi2pd((__v2si)a);
920}

◆ _mm_cvtps_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtps_epi32 ( __m128  a)

Definition at line 1502 of file emmintrin.h.

1503{
1504 return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)a);
1505}

◆ _mm_cvtps_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtps_pd ( __m128  a)

Definition at line 851 of file emmintrin.h.

852{
853#if HAS_BUILTIN(__builtin_convertvector)
854 return (__m128d)__builtin_convertvector(__builtin_shufflevector((__v4sf)a, (__v4sf)a, 0, 1), __v2df);
855#else
856 return __builtin_ia32_cvtps2pd(a);
857#endif
858}

Referenced by F32vec4ToF64vec2().

◆ _mm_cvtsd_f64()

__INTRIN_INLINE_SSE2 double _mm_cvtsd_f64 ( __m128d  a)

Definition at line 922 of file emmintrin.h.

923{
924 return a[0];
925}

◆ _mm_cvtsd_si32()

__INTRIN_INLINE_SSE2 int _mm_cvtsd_si32 ( __m128d  a)

Definition at line 874 of file emmintrin.h.

875{
876 return __builtin_ia32_cvtsd2si((__v2df)a);
877}

◆ _mm_cvtsd_ss()

__INTRIN_INLINE_SSE2 __m128 _mm_cvtsd_ss ( __m128  a,
__m128d  b 
)

Definition at line 879 of file emmintrin.h.

880{
881 return (__m128)__builtin_ia32_cvtsd2ss((__v4sf)a, (__v2df)b);
882}

◆ _mm_cvtsi128_si32()

__INTRIN_INLINE_SSE2 int _mm_cvtsi128_si32 ( __m128i  a)

Definition at line 1522 of file emmintrin.h.

1523{
1524 __v4si b = (__v4si)a;
1525 return b[0];
1526}

◆ _mm_cvtsi128_si64()

__INTRIN_INLINE_SSE2 long long _mm_cvtsi128_si64 ( __m128i  a)

Definition at line 1528 of file emmintrin.h.

1529{
1530 return a[0];
1531}

Referenced by sqrt().

◆ _mm_cvtsi32_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtsi32_sd ( __m128d  a,
int  b 
)

Definition at line 884 of file emmintrin.h.

886{
887 a[0] = b;
888 return a;
889}

Referenced by IntToF64vec2().

◆ _mm_cvtsi32_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtsi32_si128 ( int  a)

Definition at line 1512 of file emmintrin.h.

1513{
1514 return __extension__(__m128i)(__v4si){a, 0, 0, 0};
1515}

◆ _mm_cvtsi64_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtsi64_si128 ( long long  a)

Definition at line 1517 of file emmintrin.h.

1518{
1519 return __extension__(__m128i)(__v2di){a, 0};
1520}

◆ _mm_cvtss_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtss_sd ( __m128d  a,
__m128  b 
)

Definition at line 891 of file emmintrin.h.

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

◆ _mm_cvttpd_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvttpd_epi32 ( __m128d  a)

Definition at line 897 of file emmintrin.h.

898{
899 return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)a);
900}

◆ _mm_cvttpd_pi32()

__INTRIN_INLINE_MMX __m64 _mm_cvttpd_pi32 ( __m128d  a)

Definition at line 912 of file emmintrin.h.

913{
914 return (__m64)__builtin_ia32_cvttpd2pi((__v2df)a);
915}

◆ _mm_cvttps_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvttps_epi32 ( __m128  a)

Definition at line 1507 of file emmintrin.h.

1508{
1509 return (__m128i)__builtin_ia32_cvttps2dq((__v4sf)a);
1510}

◆ _mm_cvttsd_si32()

__INTRIN_INLINE_SSE2 int _mm_cvttsd_si32 ( __m128d  a)

Definition at line 902 of file emmintrin.h.

903{
904 return __builtin_ia32_cvttsd2si((__v2df)a);
905}

Referenced by F64vec2_SELECT().

◆ _mm_div_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_div_pd ( __m128d  a,
__m128d  b 
)

Definition at line 606 of file emmintrin.h.

607{
608 return (__m128d)((__v2df)a / (__v2df)b);
609}

Referenced by F64vec2::operator/=().

◆ _mm_div_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_div_sd ( __m128d  a,
__m128d  b 
)

Definition at line 600 of file emmintrin.h.

601{
602 a[0] /= b[0];
603 return a;
604}

◆ _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 932 of file emmintrin.h.

933{
934 struct __mm_load1_pd_struct {
935 double __u;
936 } __attribute__((__packed__, __may_alias__));
937 double __u = ((const struct __mm_load1_pd_struct *)dp)->__u;
938 return __extension__(__m128d){__u, __u};
939}
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 927 of file emmintrin.h.

928{
929 return *(const __m128d *)dp;
930}

◆ _mm_load_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_load_sd ( double const dp)

Definition at line 991 of file emmintrin.h.

992{
993 struct __mm_load_sd_struct {
994 double __u;
995 } __attribute__((__packed__, __may_alias__));
996 double __u = ((const struct __mm_load_sd_struct *)dp)->__u;
997 return __extension__(__m128d){__u, 0};
998}

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

◆ _mm_load_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_load_si128 ( __m128i const p)

Definition at line 1533 of file emmintrin.h.

1534{
1535 return *p;
1536}
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 1000 of file emmintrin.h.

1001{
1002 struct __mm_loadh_pd_struct {
1003 double __u;
1004 } __attribute__((__packed__, __may_alias__));
1005 double __u = ((const struct __mm_loadh_pd_struct *)dp)->__u;
1006 return __extension__(__m128d){a[0], __u};
1007}

◆ _mm_loadl_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_loadl_epi64 ( __m128i_u const p)

Definition at line 1546 of file emmintrin.h.

1547{
1548 struct __mm_loadl_epi64_struct {
1549 long long __u;
1550 } __attribute__((__packed__, __may_alias__));
1551 return __extension__(__m128i){
1552 ((const struct __mm_loadl_epi64_struct *)p)->__u, 0};
1553}

◆ _mm_loadl_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_loadl_pd ( __m128d  a,
double const dp 
)

Definition at line 1009 of file emmintrin.h.

1010{
1011 struct __mm_loadl_pd_struct {
1012 double __u;
1013 } __attribute__((__packed__, __may_alias__));
1014 double __u = ((const struct __mm_loadl_pd_struct *)dp)->__u;
1015 return __extension__(__m128d){__u, a[1]};
1016}

◆ _mm_loadr_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_loadr_pd ( double const dp)

Definition at line 946 of file emmintrin.h.

947{
948#if HAS_BUILTIN(__builtin_shufflevector)
949 __m128d u = *(const __m128d *)dp;
950 return __builtin_shufflevector((__v2df)u, (__v2df)u, 1, 0);
951#else
952 return (__m128d){ dp[1], dp[0] };
953#endif
954}
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 956 of file emmintrin.h.

957{
958 struct __loadu_pd {
959 __m128d_u __v;
960 } __attribute__((__packed__, __may_alias__));
961 return ((const struct __loadu_pd *)dp)->__v;
962}

Referenced by loadu().

◆ _mm_loadu_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si128 ( __m128i_u const p)

Definition at line 1538 of file emmintrin.h.

1539{
1540 struct __loadu_si128 {
1541 __m128i_u __v;
1542 } __attribute__((__packed__, __may_alias__));
1543 return ((const struct __loadu_si128 *)p)->__v;
1544}

◆ _mm_loadu_si16()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si16 ( void const a)

Definition at line 982 of file emmintrin.h.

983{
984 struct __loadu_si16 {
985 short __v;
986 } __attribute__((__packed__, __may_alias__));
987 short __u = ((const struct __loadu_si16 *)a)->__v;
988 return __extension__(__m128i)(__v8hi){__u, 0, 0, 0, 0, 0, 0, 0};
989}

◆ _mm_loadu_si32()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si32 ( void const a)

Definition at line 973 of file emmintrin.h.

974{
975 struct __loadu_si32 {
976 int __v;
977 } __attribute__((__packed__, __may_alias__));
978 int __u = ((const struct __loadu_si32 *)a)->__v;
979 return __extension__(__m128i)(__v4si){__u, 0, 0, 0};
980}

◆ _mm_loadu_si64()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si64 ( void const a)

Definition at line 964 of file emmintrin.h.

965{
966 struct __loadu_si64 {
967 long long __v;
968 } __attribute__((__packed__, __may_alias__));
969 long long __u = ((const struct __loadu_si64 *)a)->__v;
970 return __extension__(__m128i)(__v2di){__u, 0LL};
971}
#define LL
Definition: tui.h:167

◆ _mm_madd_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_madd_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1189 of file emmintrin.h.

1190{
1191 return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)a, (__v8hi)b);
1192}

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 1693 of file emmintrin.h.

1694{
1695 __builtin_ia32_maskmovdqu((__v16qi)d, (__v16qi)n, p);
1696}
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 1194 of file emmintrin.h.

1195{
1196#if HAS_BUILTIN(__builtin_elementwise_max)
1197 return (__m128i)__builtin_elementwise_max((__v8hi)a, (__v8hi)b);
1198#else
1199 return (__m128i)__builtin_ia32_pmaxsw128((__v8hi)a, (__v8hi)b);
1200#endif
1201}

Referenced by simd_max().

◆ _mm_max_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_max_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1203 of file emmintrin.h.

1204{
1205#if HAS_BUILTIN(__builtin_elementwise_max)
1206 return (__m128i)__builtin_elementwise_max((__v16qu)a, (__v16qu)b);
1207#else
1208 return (__m128i)__builtin_ia32_pmaxub128((__v16qi)a, (__v16qi)b);
1209#endif
1210}

Referenced by simd_max().

◆ _mm_max_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_max_pd ( __m128d  a,
__m128d  b 
)

Definition at line 637 of file emmintrin.h.

638{
639 return __builtin_ia32_maxpd((__v2df)a, (__v2df)b);
640}

◆ _mm_max_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_max_sd ( __m128d  a,
__m128d  b 
)

Definition at line 632 of file emmintrin.h.

633{
634 return __builtin_ia32_maxsd((__v2df)a, (__v2df)b);
635}

◆ _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 1212 of file emmintrin.h.

1213{
1214#if HAS_BUILTIN(__builtin_elementwise_min)
1215 return (__m128i)__builtin_elementwise_min((__v8hi)a, (__v8hi)b);
1216#else
1217 return (__m128i)__builtin_ia32_pminsw128((__v8hi)a, (__v8hi)b);
1218#endif
1219}

Referenced by simd_min().

◆ _mm_min_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_min_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1221 of file emmintrin.h.

1222{
1223#if HAS_BUILTIN(__builtin_elementwise_min)
1224 return (__m128i)__builtin_elementwise_min((__v16qu)a, (__v16qu)b);
1225#else
1226 return (__m128i)__builtin_ia32_pminub128((__v16qi)a, (__v16qi)b);
1227#endif
1228}

Referenced by simd_min().

◆ _mm_min_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_min_pd ( __m128d  a,
__m128d  b 
)

Definition at line 627 of file emmintrin.h.

628{
629 return __builtin_ia32_minpd((__v2df)a, (__v2df)b);
630}

◆ _mm_min_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_min_sd ( __m128d  a,
__m128d  b 
)

Definition at line 622 of file emmintrin.h.

623{
624 return __builtin_ia32_minsd((__v2df)a, (__v2df)b);
625}

◆ _mm_move_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_move_epi64 ( __m128i  a)

Definition at line 1869 of file emmintrin.h.

1870{
1871#if HAS_BUILTIN(__builtin_shufflevector)
1872 return __builtin_shufflevector((__v2di)a, _mm_setzero_si128(), 0, 2);
1873#else
1874 return (__m128i)__builtin_ia32_movq128((__v2di)a);
1875#endif
1876}
__m128i _mm_setzero_si128(void)
Definition: emmintrin.h:1651

◆ _mm_move_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_move_sd ( __m128d  a,
__m128d  b 
)

Definition at line 1053 of file emmintrin.h.

1054{
1055 a[0] = b[0];
1056 return a;
1057}

◆ _mm_movemask_epi8()

__INTRIN_INLINE_SSE2 int _mm_movemask_epi8 ( __m128i  a)

Definition at line 1765 of file emmintrin.h.

1766{
1767 return __builtin_ia32_pmovmskb128((__v16qi)a);
1768}

◆ _mm_movemask_pd()

__INTRIN_INLINE_SSE2 int _mm_movemask_pd ( __m128d  a)

Definition at line 1896 of file emmintrin.h.

1897{
1898 return __builtin_ia32_movmskpd((__v2df)a);
1899}

Referenced by move_mask().

◆ _mm_movepi64_pi64()

__INTRIN_INLINE_SSE2 __m64 _mm_movepi64_pi64 ( __m128i  a)

Definition at line 1859 of file emmintrin.h.

1860{
1861 return (__m64)a[0];
1862}

◆ _mm_movpi64_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_movpi64_epi64 ( __m64  a)

Definition at line 1864 of file emmintrin.h.

1865{
1866 return __extension__(__m128i)(__v2di){(long long)a, 0};
1867}
#define long
Definition: qsort.c:33

◆ _mm_mul_epu32()

__INTRIN_INLINE_SSE2 __m128i _mm_mul_epu32 ( __m128i  a,
__m128i  b 
)

Definition at line 1250 of file emmintrin.h.

1251{
1252 return __builtin_ia32_pmuludq128((__v4si)a, (__v4si)b);
1253}

Referenced by operator*().

◆ _mm_mul_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_mul_pd ( __m128d  a,
__m128d  b 
)

Definition at line 595 of file emmintrin.h.

596{
597 return (__m128d)((__v2df)a * (__v2df)b);
598}

Referenced by F64vec2::operator*=().

◆ _mm_mul_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_mul_sd ( __m128d  a,
__m128d  b 
)

Definition at line 589 of file emmintrin.h.

590{
591 a[0] *= b[0];
592 return a;
593}

◆ _mm_mul_su32()

__INTRIN_INLINE_MMX __m64 _mm_mul_su32 ( __m64  a,
__m64  b 
)

Definition at line 1245 of file emmintrin.h.

1246{
1247 return (__m64)__builtin_ia32_pmuludq((__v2si)a, (__v2si)b);
1248}

◆ _mm_mulhi_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_mulhi_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1230 of file emmintrin.h.

1231{
1232 return (__m128i)__builtin_ia32_pmulhw128((__v8hi)a, (__v8hi)b);
1233}

Referenced by mul_high().

◆ _mm_mulhi_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_mulhi_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1235 of file emmintrin.h.

1236{
1237 return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)a, (__v8hi)b);
1238}

Referenced by mul_high().

◆ _mm_mullo_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_mullo_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1240 of file emmintrin.h.

1241{
1242 return (__m128i)((__v8hu)a * (__v8hu)b);
1243}

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 652 of file emmintrin.h.

653{
654 return (__m128d)((__v2du)a | (__v2du)b);
655}

Referenced by F64vec2::operator|=().

◆ _mm_or_si128()

◆ _mm_packs_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_packs_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1742 of file emmintrin.h.

1743{
1744 return (__m128i)__builtin_ia32_packsswb128((__v8hi)a, (__v8hi)b);
1745}

Referenced by pack_sat().

◆ _mm_packs_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_packs_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1747 of file emmintrin.h.

1748{
1749 return (__m128i)__builtin_ia32_packssdw128((__v4si)a, (__v4si)b);
1750}

Referenced by pack_sat().

◆ _mm_packus_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_packus_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1752 of file emmintrin.h.

1753{
1754 return (__m128i)__builtin_ia32_packuswb128((__v8hi)a, (__v8hi)b);
1755}

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 1255 of file emmintrin.h.

1256{
1257 return __builtin_ia32_psadbw128((__v16qi)a, (__v16qi)b);
1258}

Referenced by sum_abs().

◆ _mm_set1_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi16 ( short  w)

Definition at line 1613 of file emmintrin.h.

1614{
1615 return _mm_set_epi16(w, w, w, w, w, w, w, w);
1616}
__m128i _mm_set_epi16(short w7, short w6, short w5, short w4, short w3, short w2, short w1, short w0)
Definition: emmintrin.h:1580
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102

◆ _mm_set1_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi32 ( int  i)

Definition at line 1608 of file emmintrin.h.

1609{
1610 return _mm_set_epi32(i, i, i, i);
1611}
__m128i _mm_set_epi32(int i3, int i2, int i1, int i0)
Definition: emmintrin.h:1575

◆ _mm_set1_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi64 ( __m64  q)

Definition at line 1603 of file emmintrin.h.

1604{
1605 return _mm_set_epi64(q, q);
1606}
__m128i _mm_set_epi64(__m64 q1, __m64 q0)
Definition: emmintrin.h:1570
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 1598 of file emmintrin.h.

1599{
1600 return _mm_set_epi64x(q, q);
1601}
__INTRIN_INLINE_SSE2 __m128i _mm_set_epi64x(long long q1, long long q0)
Definition: emmintrin.h:1565

◆ _mm_set1_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi8 ( char  b)

Definition at line 1618 of file emmintrin.h.

1619{
1620 return _mm_set_epi8(b, b, b, b, b, b, b, b, b, b, b,
1621 b, b, b, b, b);
1622}
__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:1587

◆ _mm_set1_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_set1_pd ( double  w)

Definition at line 1033 of file emmintrin.h.

1034{
1035 return __extension__(__m128d){w, w};
1036}

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 1580 of file emmintrin.h.

1583{
1584 return __extension__(__m128i)(__v8hi){w0, w1, w2, w3, w4, w5, w6, w7};
1585}
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 1575 of file emmintrin.h.

1576{
1577 return __extension__(__m128i)(__v4si){i0, i1, i2, i3};
1578}

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 1570 of file emmintrin.h.

1571{
1572 return _mm_set_epi64x((long long)q1, (long long)q0);
1573}

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 1565 of file emmintrin.h.

1566{
1567 return __extension__(__m128i)(__v2di){q0, q1};
1568}

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 1587 of file emmintrin.h.

1592{
1593 return __extension__(__m128i)(__v16qi){
1594 b0, b1, b2, b3, b4, b5, b6, b7,
1595 b8, b9, b10, b11, b12, b13, b14, b15};
1596}
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 1038 of file emmintrin.h.

1039{
1040 return __extension__(__m128d){x, w};
1041}
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 1028 of file emmintrin.h.

1029{
1030 return __extension__(__m128d){w, 0};
1031}

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 1634 of file emmintrin.h.

1637{
1638 return _mm_set_epi16(w7, w6, w5, w4, w3, w2, w1, w0);
1639}

◆ _mm_setr_epi32()

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

Definition at line 1629 of file emmintrin.h.

1630{
1631 return _mm_set_epi32(i3, i2, i1, i0);
1632}

◆ _mm_setr_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_setr_epi64 ( __m64  q0,
__m64  q1 
)

Definition at line 1624 of file emmintrin.h.

1625{
1626 return _mm_set_epi64(q1, q0);
1627}

◆ _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 1641 of file emmintrin.h.

1646{
1647 return _mm_set_epi8(b15, b14, b13, b12, b11, b10, b9, b8,
1648 b7, b6, b5, b4, b3, b2, b1, b0);
1649}

◆ _mm_setr_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_setr_pd ( double  w,
double  x 
)

Definition at line 1043 of file emmintrin.h.

1044{
1045 return __extension__(__m128d){w, x};
1046}

◆ _mm_setzero_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_setzero_pd ( void  )

Definition at line 1048 of file emmintrin.h.

1049{
1050 return __extension__(__m128d){0, 0};
1051}

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

◆ _mm_setzero_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_setzero_si128 ( void  )

Definition at line 1651 of file emmintrin.h.

1652{
1653 return __extension__(__m128i)(__v2di){0LL, 0LL};
1654}

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 1349 of file emmintrin.h.

1350{
1351 return (__m128i)__builtin_ia32_psllw128((__v8hi)a, (__v8hi)count);
1352}
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 1359 of file emmintrin.h.

1360{
1361 return (__m128i)__builtin_ia32_pslld128((__v4si)a, (__v4si)count);
1362}

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 1369 of file emmintrin.h.

1370{
1371 return __builtin_ia32_psllq128((__v2di)a, (__v2di)count);
1372}

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

◆ _mm_slli_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_slli_epi16 ( __m128i  a,
int  count 
)

Definition at line 1344 of file emmintrin.h.

1345{
1346 return (__m128i)__builtin_ia32_psllwi128((__v8hi)a, count);
1347}

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 1354 of file emmintrin.h.

1355{
1356 return (__m128i)__builtin_ia32_pslldi128((__v4si)a, count);
1357}

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 1364 of file emmintrin.h.

1365{
1366 return __builtin_ia32_psllqi128((__v2di)a, count);
1367}

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 617 of file emmintrin.h.

618{
619 return __builtin_ia32_sqrtpd((__v2df)a);
620}

Referenced by sqrt().

◆ _mm_sqrt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_sqrt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 611 of file emmintrin.h.

612{
613 __m128d __c = __builtin_ia32_sqrtsd((__v2df)b);
614 return __extension__(__m128d){__c[0], a[1]};
615}

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 1379 of file emmintrin.h.

1380{
1381 return (__m128i)__builtin_ia32_psraw128((__v8hi)a, (__v8hi)count);
1382}

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

◆ _mm_sra_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_sra_epi32 ( __m128i  a,
__m128i  count 
)

Definition at line 1389 of file emmintrin.h.

1390{
1391 return (__m128i)__builtin_ia32_psrad128((__v4si)a, (__v4si)count);
1392}

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

◆ _mm_srai_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_srai_epi16 ( __m128i  a,
int  count 
)

Definition at line 1374 of file emmintrin.h.

1375{
1376 return (__m128i)__builtin_ia32_psrawi128((__v8hi)a, count);
1377}

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

◆ _mm_srai_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_srai_epi32 ( __m128i  a,
int  count 
)

Definition at line 1384 of file emmintrin.h.

1385{
1386 return (__m128i)__builtin_ia32_psradi128((__v4si)a, count);
1387}

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

◆ _mm_srl_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_srl_epi16 ( __m128i  a,
__m128i  count 
)

Definition at line 1402 of file emmintrin.h.

1403{
1404 return (__m128i)__builtin_ia32_psrlw128((__v8hi)a, (__v8hi)count);
1405}

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

◆ _mm_srl_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_srl_epi32 ( __m128i  a,
__m128i  count 
)

Definition at line 1412 of file emmintrin.h.

1413{
1414 return (__m128i)__builtin_ia32_psrld128((__v4si)a, (__v4si)count);
1415}

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

◆ _mm_srl_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_srl_epi64 ( __m128i  a,
__m128i  count 
)

Definition at line 1422 of file emmintrin.h.

1423{
1424 return __builtin_ia32_psrlq128((__v2di)a, (__v2di)count);
1425}

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

◆ _mm_srli_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_srli_epi16 ( __m128i  a,
int  count 
)

Definition at line 1397 of file emmintrin.h.

1398{
1399 return (__m128i)__builtin_ia32_psrlwi128((__v8hi)a, count);
1400}

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

◆ _mm_srli_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_srli_epi32 ( __m128i  a,
int  count 
)

Definition at line 1407 of file emmintrin.h.

1408{
1409 return (__m128i)__builtin_ia32_psrldi128((__v4si)a, count);
1410}

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

◆ _mm_srli_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_srli_epi64 ( __m128i  a,
int  count 
)

Definition at line 1417 of file emmintrin.h.

1418{
1419 return __builtin_ia32_psrlqi128((__v2di)a, count);
1420}

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 1072 of file emmintrin.h.

1073{
1074#if HAS_BUILTIN(__builtin_shufflevector)
1075 a = __builtin_shufflevector((__v2df)a, (__v2df)a, 0, 0);
1076 _mm_store_pd(dp, a);
1077#else
1078 dp[0] = a[0];
1079 dp[1] = a[0];
1080#endif
1081}
void _mm_store_pd(double *dp, __m128d a)
Definition: emmintrin.h:1067

◆ _mm_store_pd()

__INTRIN_INLINE_SSE2 void _mm_store_pd ( double dp,
__m128d  a 
)

Definition at line 1067 of file emmintrin.h.

1068{
1069 *(__m128d *)dp = a;
1070}

Referenced by _mm_store1_pd().

◆ _mm_store_sd()

__INTRIN_INLINE_SSE2 void _mm_store_sd ( double dp,
__m128d  a 
)

Definition at line 1059 of file emmintrin.h.

1060{
1061 struct __mm_store_sd_struct {
1062 double __u;
1063 } __attribute__((__packed__, __may_alias__));
1064 ((struct __mm_store_sd_struct *)dp)->__u = a[0];
1065}

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 1656 of file emmintrin.h.

1657{
1658 *p = b;
1659}

◆ _mm_storeh_pd()

__INTRIN_INLINE_SSE2 void _mm_storeh_pd ( double dp,
__m128d  a 
)

Definition at line 1102 of file emmintrin.h.

1103{
1104 struct __mm_storeh_pd_struct {
1105 double __u;
1106 } __attribute__((__packed__, __may_alias__));
1107 ((struct __mm_storeh_pd_struct *)dp)->__u = a[1];
1108}

◆ _mm_storel_epi64()

__INTRIN_INLINE_SSE2 void _mm_storel_epi64 ( __m128i_u *  p,
__m128i  a 
)

Definition at line 1698 of file emmintrin.h.

1699{
1700 struct __mm_storel_epi64_struct {
1701 long long __u;
1702 } __attribute__((__packed__, __may_alias__));
1703 ((struct __mm_storel_epi64_struct *)p)->__u = a[0];
1704}

◆ _mm_storel_pd()

__INTRIN_INLINE_SSE2 void _mm_storel_pd ( double dp,
__m128d  a 
)

Definition at line 1110 of file emmintrin.h.

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

◆ _mm_storer_pd()

__INTRIN_INLINE_SSE2 void _mm_storer_pd ( double dp,
__m128d  a 
)

Definition at line 1091 of file emmintrin.h.

1092{
1093#if HAS_BUILTIN(__builtin_shufflevector)
1094 a = __builtin_shufflevector((__v2df)a, (__v2df)a, 1, 0);
1095 *(__m128d *)dp = a;
1096#else
1097 dp[0] = a[1];
1098 dp[1] = a[0];
1099#endif
1100}

◆ _mm_storeu_pd()

__INTRIN_INLINE_SSE2 void _mm_storeu_pd ( double dp,
__m128d  a 
)

Definition at line 1083 of file emmintrin.h.

1084{
1085 struct __storeu_pd {
1086 __m128d_u __v;
1087 } __attribute__((__packed__, __may_alias__));
1088 ((struct __storeu_pd *)dp)->__v = a;
1089}

Referenced by storeu().

◆ _mm_storeu_si128()

__INTRIN_INLINE_SSE2 void _mm_storeu_si128 ( __m128i_u *  p,
__m128i  b 
)

Definition at line 1661 of file emmintrin.h.

1662{
1663 struct __storeu_si128 {
1664 __m128i_u __v;
1665 } __attribute__((__packed__, __may_alias__));
1666 ((struct __storeu_si128 *)p)->__v = b;
1667}

◆ _mm_storeu_si16()

__INTRIN_INLINE_SSE2 void _mm_storeu_si16 ( void p,
__m128i  b 
)

Definition at line 1685 of file emmintrin.h.

1686{
1687 struct __storeu_si16 {
1688 short __v;
1689 } __attribute__((__packed__, __may_alias__));
1690 ((struct __storeu_si16 *)p)->__v = ((__v8hi)b)[0];
1691}

◆ _mm_storeu_si32()

__INTRIN_INLINE_SSE2 void _mm_storeu_si32 ( void p,
__m128i  b 
)

Definition at line 1677 of file emmintrin.h.

1678{
1679 struct __storeu_si32 {
1680 int __v;
1681 } __attribute__((__packed__, __may_alias__));
1682 ((struct __storeu_si32 *)p)->__v = ((__v4si)b)[0];
1683}

◆ _mm_storeu_si64()

__INTRIN_INLINE_SSE2 void _mm_storeu_si64 ( void p,
__m128i  b 
)

Definition at line 1669 of file emmintrin.h.

1670{
1671 struct __storeu_si64 {
1672 long long __v;
1673 } __attribute__((__packed__, __may_alias__));
1674 ((struct __storeu_si64 *)p)->__v = ((__v2di)b)[0];
1675}

◆ _mm_stream_pd()

__INTRIN_INLINE_SSE2 void _mm_stream_pd ( double p,
__m128d  a 
)

Definition at line 1706 of file emmintrin.h.

1707{
1708#if HAS_BUILTIN(__builtin_nontemporal_store)
1709 __builtin_nontemporal_store((__v2df)a, (__v2df *)p);
1710#else
1711 __builtin_ia32_movntpd(p, a);
1712#endif
1713}

Referenced by store_nta().

◆ _mm_stream_si128()

__INTRIN_INLINE_SSE2 void _mm_stream_si128 ( __m128i *  p,
__m128i  a 
)

Definition at line 1715 of file emmintrin.h.

1716{
1717#if HAS_BUILTIN(__builtin_nontemporal_store)
1718 __builtin_nontemporal_store((__v2di)a, (__v2di*)p);
1719#else
1720 __builtin_ia32_movntdq(p, a);
1721#endif
1722}

◆ _mm_stream_si32()

__INTRIN_INLINE_SSE2 void _mm_stream_si32 ( int p,
int  a 
)

Definition at line 1724 of file emmintrin.h.

1725{
1726 __builtin_ia32_movnti(p, a);
1727}

◆ _mm_sub_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_sub_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1265 of file emmintrin.h.

1266{
1267 return (__m128i)((__v8hu)a - (__v8hu)b);
1268}

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 1270 of file emmintrin.h.

1271{
1272 return (__m128i)((__v4su)a - (__v4su)b);
1273}

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 1280 of file emmintrin.h.

1281{
1282 return (__m128i)((__v2du)a - (__v2du)b);
1283}

Referenced by I64vec2::operator-=().

◆ _mm_sub_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_sub_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1260 of file emmintrin.h.

1261{
1262 return (__m128i)((__v16qu)a - (__v16qu)b);
1263}

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 584 of file emmintrin.h.

585{
586 return (__m128d)((__v2df)a - (__v2df)b);
587}

Referenced by F64vec2::operator-=().

◆ _mm_sub_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_sub_sd ( __m128d  a,
__m128d  b 
)

Definition at line 578 of file emmintrin.h.

579{
580 a[0] -= b[0];
581 return a;
582}

◆ _mm_sub_si64()

__INTRIN_INLINE_MMX __m64 _mm_sub_si64 ( __m64  a,
__m64  b 
)

Definition at line 1275 of file emmintrin.h.

1276{
1277 return (__m64)__builtin_ia32_psubq((__v1di)a, (__v1di)b);
1278}

◆ _mm_subs_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1294 of file emmintrin.h.

1295{
1296#if HAS_BUILTIN(__builtin_elementwise_sub_sat)
1297 return (__m128i)__builtin_elementwise_sub_sat((__v8hi)a, (__v8hi)b);
1298#else
1299 return (__m128i)__builtin_ia32_psubsw128((__v8hi)a, (__v8hi)b);
1300#endif
1301}

Referenced by sat_sub().

◆ _mm_subs_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1285 of file emmintrin.h.

1286{
1287#if HAS_BUILTIN(__builtin_elementwise_sub_sat)
1288 return (__m128i)__builtin_elementwise_sub_sat((__v16qs)a, (__v16qs)b);
1289#else
1290 return (__m128i)__builtin_ia32_psubsb128((__v16qi)a, (__v16qi)b);
1291#endif
1292}

Referenced by sat_sub().

◆ _mm_subs_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1312 of file emmintrin.h.

1313{
1314#if HAS_BUILTIN(__builtin_elementwise_sub_sat)
1315 return (__m128i)__builtin_elementwise_sub_sat((__v8hu)a, (__v8hu)b);
1316#else
1317 return (__m128i)__builtin_ia32_psubusw128((__v8hi)a, (__v8hi)b);
1318#endif
1319}

Referenced by sat_sub().

◆ _mm_subs_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1303 of file emmintrin.h.

1304{
1305#if HAS_BUILTIN(__builtin_elementwise_sub_sat)
1306 return (__m128i)__builtin_elementwise_sub_sat((__v16qu)a, (__v16qu)b);
1307#else
1308 return (__m128i)__builtin_ia32_psubusb128((__v16qi)a, (__v16qi)b);
1309#endif
1310}

Referenced by sat_sub().

◆ _mm_ucomieq_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomieq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 816 of file emmintrin.h.

817{
818 return __builtin_ia32_ucomisdeq((__v2df)a, (__v2df)b);
819}

◆ _mm_ucomige_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomige_sd ( __m128d  a,
__m128d  b 
)

Definition at line 836 of file emmintrin.h.

837{
838 return __builtin_ia32_ucomisdge((__v2df)a, (__v2df)b);
839}

◆ _mm_ucomigt_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomigt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 831 of file emmintrin.h.

832{
833 return __builtin_ia32_ucomisdgt((__v2df)a, (__v2df)b);
834}

◆ _mm_ucomile_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomile_sd ( __m128d  a,
__m128d  b 
)

Definition at line 826 of file emmintrin.h.

827{
828 return __builtin_ia32_ucomisdle((__v2df)a, (__v2df)b);
829}

◆ _mm_ucomilt_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomilt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 821 of file emmintrin.h.

822{
823 return __builtin_ia32_ucomisdlt((__v2df)a, (__v2df)b);
824}

◆ _mm_ucomineq_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomineq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 841 of file emmintrin.h.

842{
843 return __builtin_ia32_ucomisdneq((__v2df)a, (__v2df)b);
844}

◆ _mm_undefined_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_undefined_pd ( void  )

Definition at line 1018 of file emmintrin.h.

1019{
1020#if HAS_BUILTIN(__builtin_ia32_undef128)
1021 return (__m128d)__builtin_ia32_undef128();
1022#else
1023 __m128d undef = undef;
1024 return undef;
1025#endif
1026}

◆ _mm_undefined_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_undefined_si128 ( void  )

Definition at line 1555 of file emmintrin.h.

1556{
1557#if HAS_BUILTIN(__builtin_ia32_undef128)
1558 return (__m128i)__builtin_ia32_undef128();
1559#else
1560 __m128i undef = undef;
1561 return undef;
1562#endif
1563}

◆ _mm_unpackhi_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1790 of file emmintrin.h.

1791{
1792#if HAS_BUILTIN(__builtin_shufflevector)
1793 return (__m128i)__builtin_shufflevector((__v8hi)a, (__v8hi)b, 4, 8 + 4, 5,
1794 8 + 5, 6, 8 + 6, 7, 8 + 7);
1795#else
1796 return (__m128i)__builtin_ia32_punpckhwd128((__v8hi)a, (__v8hi)b);
1797#endif
1798}

Referenced by unpack_high().

◆ _mm_unpackhi_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1800 of file emmintrin.h.

1801{
1802#if HAS_BUILTIN(__builtin_shufflevector)
1803 return (__m128i)__builtin_shufflevector((__v4si)a, (__v4si)b, 2, 4 + 2, 3,
1804 4 + 3);
1805#else
1806 return (__m128i)__builtin_ia32_punpckhdq128((__v4si)a, (__v4si)b);
1807#endif
1808}

Referenced by unpack_high().

◆ _mm_unpackhi_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi64 ( __m128i  a,
__m128i  b 
)

Definition at line 1810 of file emmintrin.h.

1811{
1812#if HAS_BUILTIN(__builtin_shufflevector)
1813 return (__m128i)__builtin_shufflevector((__v2di)a, (__v2di)b, 1, 2 + 1);
1814#else
1815 return (__m128i)__builtin_ia32_punpckhqdq128((__v2di)a, (__v2di)b);
1816#endif
1817}

Referenced by unpack_high().

◆ _mm_unpackhi_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1779 of file emmintrin.h.

1780{
1781#if HAS_BUILTIN(__builtin_shufflevector)
1782 return (__m128i)__builtin_shufflevector(
1783 (__v16qi)a, (__v16qi)b, 8, 16 + 8, 9, 16 + 9, 10, 16 + 10, 11,
1784 16 + 11, 12, 16 + 12, 13, 16 + 13, 14, 16 + 14, 15, 16 + 15);
1785#else
1786 return (__m128i)__builtin_ia32_punpckhbw128((__v16qi)a, (__v16qi)b);
1787#endif
1788}

Referenced by unpack_high().

◆ _mm_unpackhi_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_unpackhi_pd ( __m128d  a,
__m128d  b 
)

Definition at line 1878 of file emmintrin.h.

1879{
1880#if HAS_BUILTIN(__builtin_shufflevector)
1881 return __builtin_shufflevector((__v2df)a, (__v2df)b, 1, 2 + 1);
1882#else
1883 return (__m128d)__builtin_ia32_unpckhpd((__v2df)a, (__v2df)b);
1884#endif
1885}

Referenced by unpack_high().

◆ _mm_unpacklo_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1830 of file emmintrin.h.

1831{
1832#if HAS_BUILTIN(__builtin_shufflevector)
1833 return (__m128i)__builtin_shufflevector((__v8hi)a, (__v8hi)b, 0, 8 + 0, 1,
1834 8 + 1, 2, 8 + 2, 3, 8 + 3);
1835#else
1836 return (__m128i)__builtin_ia32_punpcklwd128((__v8hi)a, (__v8hi)b);
1837#endif
1838}

Referenced by unpack_low().

◆ _mm_unpacklo_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1840 of file emmintrin.h.

1841{
1842#if HAS_BUILTIN(__builtin_shufflevector)
1843 return (__m128i)__builtin_shufflevector((__v4si)a, (__v4si)b, 0, 4 + 0, 1,
1844 4 + 1);
1845#else
1846 return (__m128i)__builtin_ia32_punpckldq128((__v4si)a, (__v4si)b);
1847#endif
1848}

Referenced by unpack_low().

◆ _mm_unpacklo_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi64 ( __m128i  a,
__m128i  b 
)

Definition at line 1850 of file emmintrin.h.

1851{
1852#if HAS_BUILTIN(__builtin_shufflevector)
1853 return (__m128i)__builtin_shufflevector((__v2di)a, (__v2di)b, 0, 2 + 0);
1854#else
1855 return (__m128i)__builtin_ia32_punpcklqdq128((__v2di)a, (__v2di)b);
1856#endif
1857}

Referenced by unpack_low().

◆ _mm_unpacklo_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1819 of file emmintrin.h.

1820{
1821#if HAS_BUILTIN(__builtin_shufflevector)
1822 return (__m128i)__builtin_shufflevector(
1823 (__v16qi)a, (__v16qi)b, 0, 16 + 0, 1, 16 + 1, 2, 16 + 2, 3, 16 + 3, 4,
1824 16 + 4, 5, 16 + 5, 6, 16 + 6, 7, 16 + 7);
1825#else
1826 return (__m128i)__builtin_ia32_punpcklbw128((__v16qi)a, (__v16qi)b);
1827#endif
1828}

Referenced by unpack_low().

◆ _mm_unpacklo_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_unpacklo_pd ( __m128d  a,
__m128d  b 
)

Definition at line 1887 of file emmintrin.h.

1888{
1889#if HAS_BUILTIN(__builtin_shufflevector)
1890 return __builtin_shufflevector((__v2df)a, (__v2df)b, 0, 2 + 0);
1891#else
1892 return (__m128d)__builtin_ia32_unpcklpd((__v2df)a, (__v2df)b);
1893#endif
1894}

Referenced by unpack_low().

◆ _mm_xor_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_xor_pd ( __m128d  a,
__m128d  b 
)

Definition at line 657 of file emmintrin.h.

658{
659 return (__m128d)((__v2du)a ^ (__v2du)b);
660}

Referenced by F64vec2::operator^=().

◆ _mm_xor_si128()