ReactOS 0.4.16-dev-1210-gbc03c01
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_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 71 of file emmintrin.h.

◆ __ATTRIBUTE_SSE2__

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

Definition at line 70 of file emmintrin.h.

◆ __INTRIN_INLINE_MMXSSE2

#define __INTRIN_INLINE_MMXSSE2   __INTRIN_INLINE __ATTRIBUTE_MMXSSE2__

Definition at line 74 of file emmintrin.h.

◆ __INTRIN_INLINE_SSE2

#define __INTRIN_INLINE_SSE2   __INTRIN_INLINE __ATTRIBUTE_SSE2__

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

◆ _mm_bsrli_si128

#define _mm_bsrli_si128   _mm_srli_si128

Definition at line 328 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 1780 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 1784 of file emmintrin.h.

◆ _mm_load_pd1

#define _mm_load_pd1 (   p)    _mm_load1_pd(p)

Definition at line 325 of file emmintrin.h.

◆ _mm_set_pd1

#define _mm_set_pd1 (   a)    _mm_set1_pd(a)

Definition at line 324 of file emmintrin.h.

◆ _MM_SHUFFLE2

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

Definition at line 952 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 1793 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 1924 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 1799 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 1796 of file emmintrin.h.

◆ _mm_store_pd1

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

Definition at line 326 of file emmintrin.h.

◆ _mm_stream_si64

#define _mm_stream_si64   _mm_stream_si64x

Definition at line 329 of file emmintrin.h.

Typedef Documentation

◆ __attribute__

Definition at line 45 of file emmintrin.h.

Function Documentation

◆ _mm_add_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_add_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1132 of file emmintrin.h.

1133{
1134 return (__m128i)((__v8hu)a + (__v8hu)b);
1135}

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

1138{
1139 return (__m128i)((__v4su)a + (__v4su)b);
1140}

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

1148{
1149 return (__m128i)((__v2du)a + (__v2du)b);
1150}

Referenced by I64vec2::operator+=().

◆ _mm_add_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_add_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1127 of file emmintrin.h.

1128{
1129 return (__m128i)((__v16qu)a + (__v16qu)b);
1130}

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

583{
584 return (__m128d)((__v2df)a + (__v2df)b);
585}

Referenced by F64vec2::operator+=().

◆ _mm_add_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_add_sd ( __m128d  a,
__m128d  b 
)

Definition at line 576 of file emmintrin.h.

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

◆ _mm_add_si64()

__INTRIN_INLINE_MMXSSE2 __m64 _mm_add_si64 ( __m64  a,
__m64  b 
)

Definition at line 1142 of file emmintrin.h.

1143{
1144 return (__m64)__builtin_ia32_paddq((__v1di)a, (__v1di)b);
1145}

◆ _mm_adds_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epi16 ( __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((__v8hi)a, (__v8hi)b);
1165#else
1166 return (__m128i)__builtin_ia32_paddsw128((__v8hi)a, (__v8hi)b);
1167#endif
1168}

Referenced by sat_add().

◆ _mm_adds_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epi8 ( __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((__v16qs)a, (__v16qs)b);
1156#else
1157 return (__m128i)__builtin_ia32_paddsb128((__v16qi)a, (__v16qi)b);
1158#endif
1159}

Referenced by sat_add().

◆ _mm_adds_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1179 of file emmintrin.h.

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

Referenced by sat_add().

◆ _mm_adds_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_adds_epu8 ( __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((__v16qu)a, (__v16qu)b);
1174#else
1175 return (__m128i)__builtin_ia32_paddusb128((__v16qi)a, (__v16qi)b);
1176#endif
1177}

Referenced by sat_add().

◆ _mm_and_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_and_pd ( __m128d  a,
__m128d  b 
)

Definition at line 651 of file emmintrin.h.

652{
653 return (__m128d)((__v2du)a & (__v2du)b);
654}

Referenced by F64vec2::operator&=().

◆ _mm_and_si128()

◆ _mm_andnot_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_andnot_pd ( __m128d  a,
__m128d  b 
)

Definition at line 656 of file emmintrin.h.

657{
658 return (__m128d)(~(__v2du)a & (__v2du)b);
659}

◆ _mm_andnot_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_andnot_si128 ( __m128i  a,
__m128i  b 
)

Definition at line 1335 of file emmintrin.h.

1336{
1337 return (__m128i)(~(__v2du)a & (__v2du)b);
1338}

Referenced by andnot(), and cmpneq().

◆ _mm_avg_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_avg_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1193 of file emmintrin.h.

1194{
1195 return (__m128i)__builtin_ia32_pavgw128((__v8hi)a, (__v8hi)b);
1196}

Referenced by simd_avg().

◆ _mm_avg_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_avg_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1188 of file emmintrin.h.

1189{
1190 return (__m128i)__builtin_ia32_pavgb128((__v16qi)a, (__v16qi)b);
1191}

Referenced by simd_avg().

◆ _mm_castpd_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_castpd_ps ( __m128d  a)

Definition at line 1928 of file emmintrin.h.

1929{
1930 return (__m128)a;
1931}

◆ _mm_castpd_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_castpd_si128 ( __m128d  a)

Definition at line 1933 of file emmintrin.h.

1934{
1935 return (__m128i)a;
1936}

◆ _mm_castps_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_castps_pd ( __m128  a)

Definition at line 1938 of file emmintrin.h.

1939{
1940 return (__m128d)a;
1941}

◆ _mm_castps_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_castps_si128 ( __m128  a)

Definition at line 1943 of file emmintrin.h.

1944{
1945 return (__m128i)a;
1946}

◆ _mm_castsi128_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_castsi128_pd ( __m128i  a)

Definition at line 1953 of file emmintrin.h.

1954{
1955 return (__m128d)a;
1956}

◆ _mm_castsi128_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_castsi128_ps ( __m128i  a)

Definition at line 1948 of file emmintrin.h.

1949{
1950 return (__m128)a;
1951}

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

1456{
1457 return (__m128i)((__v8hi)a == (__v8hi)b);
1458}

Referenced by cmpeq(), and cmpneq().

◆ _mm_cmpeq_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpeq_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1460 of file emmintrin.h.

1461{
1462 return (__m128i)((__v4si)a == (__v4si)b);
1463}

Referenced by cmpeq(), and cmpneq().

◆ _mm_cmpeq_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpeq_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1450 of file emmintrin.h.

1451{
1452 return (__m128i)((__v16qi)a == (__v16qi)b);
1453}

Referenced by cmpeq(), cmpneq(), and strspn().

◆ _mm_cmpeq_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpeq_pd ( __m128d  a,
__m128d  b 
)

Definition at line 671 of file emmintrin.h.

672{
673 return (__m128d)__builtin_ia32_cmpeqpd((__v2df)a, (__v2df)b);
674}

◆ _mm_cmpeq_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpeq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 731 of file emmintrin.h.

732{
733 return (__m128d)__builtin_ia32_cmpeqsd((__v2df)a, (__v2df)b);
734}

◆ _mm_cmpge_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpge_pd ( __m128d  a,
__m128d  b 
)

Definition at line 691 of file emmintrin.h.

692{
693 return (__m128d)__builtin_ia32_cmplepd((__v2df)b, (__v2df)a);
694}

◆ _mm_cmpge_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpge_sd ( __m128d  a,
__m128d  b 
)

Definition at line 752 of file emmintrin.h.

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

◆ _mm_cmpgt_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_cmpgt_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1472 of file emmintrin.h.

1473{
1474 return (__m128i)((__v8hi)a > (__v8hi)b);
1475}

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

1478{
1479 return (__m128i)((__v4si)a > (__v4si)b);
1480}

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

1466{
1467 /* This function always performs a signed comparison, but __v16qi is a char
1468 which may be signed or unsigned, so use __v16qs. */
1469 return (__m128i)((__v16qs)a > (__v16qs)b);
1470}

Referenced by _mm_cmplt_epi8(), and cmpgt().

◆ _mm_cmpgt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpgt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 686 of file emmintrin.h.

687{
688 return (__m128d)__builtin_ia32_cmpltpd((__v2df)b, (__v2df)a);
689}

◆ _mm_cmpgt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpgt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 746 of file emmintrin.h.

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

◆ _mm_cmple_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmple_pd ( __m128d  a,
__m128d  b 
)

Definition at line 681 of file emmintrin.h.

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

◆ _mm_cmple_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmple_sd ( __m128d  a,
__m128d  b 
)

Definition at line 741 of file emmintrin.h.

742{
743 return (__m128d)__builtin_ia32_cmplesd((__v2df)a, (__v2df)b);
744}

◆ _mm_cmplt_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_cmplt_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1487 of file emmintrin.h.

1488{
1489 return _mm_cmpgt_epi16(b, a);
1490}
__m128i _mm_cmpgt_epi16(__m128i a, __m128i b)
Definition: emmintrin.h:1472

◆ _mm_cmplt_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cmplt_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1492 of file emmintrin.h.

1493{
1494 return _mm_cmpgt_epi32(b, a);
1495}
__m128i _mm_cmpgt_epi32(__m128i a, __m128i b)
Definition: emmintrin.h:1477

◆ _mm_cmplt_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_cmplt_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1482 of file emmintrin.h.

1483{
1484 return _mm_cmpgt_epi8(b, a);
1485}
__m128i _mm_cmpgt_epi8(__m128i a, __m128i b)
Definition: emmintrin.h:1465

Referenced by cmplt().

◆ _mm_cmplt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmplt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 676 of file emmintrin.h.

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

◆ _mm_cmplt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmplt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 736 of file emmintrin.h.

737{
738 return (__m128d)__builtin_ia32_cmpltsd((__v2df)a, (__v2df)b);
739}

◆ _mm_cmpneq_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpneq_pd ( __m128d  a,
__m128d  b 
)

Definition at line 706 of file emmintrin.h.

707{
708 return (__m128d)__builtin_ia32_cmpneqpd((__v2df)a, (__v2df)b);
709}

◆ _mm_cmpneq_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpneq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 768 of file emmintrin.h.

769{
770 return (__m128d)__builtin_ia32_cmpneqsd((__v2df)a, (__v2df)b);
771}

◆ _mm_cmpnge_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnge_pd ( __m128d  a,
__m128d  b 
)

Definition at line 726 of file emmintrin.h.

727{
728 return (__m128d)__builtin_ia32_cmpnlepd((__v2df)b, (__v2df)a);
729}

◆ _mm_cmpnge_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnge_sd ( __m128d  a,
__m128d  b 
)

Definition at line 789 of file emmintrin.h.

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

◆ _mm_cmpngt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpngt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 721 of file emmintrin.h.

722{
723 return (__m128d)__builtin_ia32_cmpnltpd((__v2df)b, (__v2df)a);
724}

◆ _mm_cmpngt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpngt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 783 of file emmintrin.h.

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

◆ _mm_cmpnle_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnle_pd ( __m128d  a,
__m128d  b 
)

Definition at line 716 of file emmintrin.h.

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

◆ _mm_cmpnle_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnle_sd ( __m128d  a,
__m128d  b 
)

Definition at line 778 of file emmintrin.h.

779{
780 return (__m128d)__builtin_ia32_cmpnlesd((__v2df)a, (__v2df)b);
781}

◆ _mm_cmpnlt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnlt_pd ( __m128d  a,
__m128d  b 
)

Definition at line 711 of file emmintrin.h.

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

◆ _mm_cmpnlt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpnlt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 773 of file emmintrin.h.

774{
775 return (__m128d)__builtin_ia32_cmpnltsd((__v2df)a, (__v2df)b);
776}

◆ _mm_cmpord_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpord_pd ( __m128d  a,
__m128d  b 
)

Definition at line 696 of file emmintrin.h.

697{
698 return (__m128d)__builtin_ia32_cmpordpd((__v2df)a, (__v2df)b);
699}

◆ _mm_cmpord_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpord_sd ( __m128d  a,
__m128d  b 
)

Definition at line 758 of file emmintrin.h.

759{
760 return (__m128d)__builtin_ia32_cmpordsd((__v2df)a, (__v2df)b);
761}

◆ _mm_cmpunord_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpunord_pd ( __m128d  a,
__m128d  b 
)

Definition at line 701 of file emmintrin.h.

702{
703 return (__m128d)__builtin_ia32_cmpunordpd((__v2df)a, (__v2df)b);
704}

◆ _mm_cmpunord_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cmpunord_sd ( __m128d  a,
__m128d  b 
)

Definition at line 763 of file emmintrin.h.

764{
765 return (__m128d)__builtin_ia32_cmpunordsd((__v2df)a, (__v2df)b);
766}

◆ _mm_comieq_sd()

__INTRIN_INLINE_SSE2 int _mm_comieq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 795 of file emmintrin.h.

796{
797 return __builtin_ia32_comisdeq((__v2df)a, (__v2df)b);
798}

◆ _mm_comige_sd()

__INTRIN_INLINE_SSE2 int _mm_comige_sd ( __m128d  a,
__m128d  b 
)

Definition at line 815 of file emmintrin.h.

816{
817 return __builtin_ia32_comisdge((__v2df)a, (__v2df)b);
818}

◆ _mm_comigt_sd()

__INTRIN_INLINE_SSE2 int _mm_comigt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 810 of file emmintrin.h.

811{
812 return __builtin_ia32_comisdgt((__v2df)a, (__v2df)b);
813}

◆ _mm_comile_sd()

__INTRIN_INLINE_SSE2 int _mm_comile_sd ( __m128d  a,
__m128d  b 
)

Definition at line 805 of file emmintrin.h.

806{
807 return __builtin_ia32_comisdle((__v2df)a, (__v2df)b);
808}

◆ _mm_comilt_sd()

__INTRIN_INLINE_SSE2 int _mm_comilt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 800 of file emmintrin.h.

801{
802 return __builtin_ia32_comisdlt((__v2df)a, (__v2df)b);
803}

◆ _mm_comineq_sd()

__INTRIN_INLINE_SSE2 int _mm_comineq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 820 of file emmintrin.h.

821{
822 return __builtin_ia32_comisdneq((__v2df)a, (__v2df)b);
823}

◆ _mm_cvtepi32_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtepi32_pd ( __m128i  a)

Definition at line 869 of file emmintrin.h.

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

◆ _mm_cvtepi32_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_cvtepi32_ps ( __m128i  a)

Definition at line 1516 of file emmintrin.h.

1517{
1518#if HAS_BUILTIN(__builtin_convertvector)
1519 return (__m128)__builtin_convertvector((__v4si)a, __v4sf);
1520#else
1521 return __builtin_ia32_cvtdq2ps((__v4si)a);
1522#endif
1523}

◆ _mm_cvtpd_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtpd_epi32 ( __m128d  a)

Definition at line 878 of file emmintrin.h.

879{
880 return (__m128i)__builtin_ia32_cvtpd2dq((__v2df)a);
881}

◆ _mm_cvtpd_pi32()

__INTRIN_INLINE_MMXSSE2 __m64 _mm_cvtpd_pi32 ( __m128d  a)

Definition at line 916 of file emmintrin.h.

917{
918 return (__m64)__builtin_ia32_cvtpd2pi((__v2df)a);
919}

◆ _mm_cvtpd_ps()

__INTRIN_INLINE_SSE2 __m128 _mm_cvtpd_ps ( __m128d  a)

Definition at line 855 of file emmintrin.h.

856{
857 return __builtin_ia32_cvtpd2ps((__v2df)a);
858}

Referenced by F64vec2ToF32vec4().

◆ _mm_cvtpi32_pd()

__INTRIN_INLINE_MMXSSE2 __m128d _mm_cvtpi32_pd ( __m64  a)

Definition at line 926 of file emmintrin.h.

927{
928 return __builtin_ia32_cvtpi2pd((__v2si)a);
929}

◆ _mm_cvtps_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtps_epi32 ( __m128  a)

Definition at line 1525 of file emmintrin.h.

1526{
1527 return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)a);
1528}

◆ _mm_cvtps_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtps_pd ( __m128  a)

Definition at line 860 of file emmintrin.h.

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

Referenced by F32vec4ToF64vec2().

◆ _mm_cvtsd_f64()

__INTRIN_INLINE_SSE2 double _mm_cvtsd_f64 ( __m128d  a)

Definition at line 931 of file emmintrin.h.

932{
933 return a[0];
934}

◆ _mm_cvtsd_si32()

__INTRIN_INLINE_SSE2 int _mm_cvtsd_si32 ( __m128d  a)

Definition at line 883 of file emmintrin.h.

884{
885 return __builtin_ia32_cvtsd2si((__v2df)a);
886}

◆ _mm_cvtsd_ss()

__INTRIN_INLINE_SSE2 __m128 _mm_cvtsd_ss ( __m128  a,
__m128d  b 
)

Definition at line 888 of file emmintrin.h.

889{
890 return (__m128)__builtin_ia32_cvtsd2ss((__v4sf)a, (__v2df)b);
891}

◆ _mm_cvtsi128_si32()

__INTRIN_INLINE_SSE2 int _mm_cvtsi128_si32 ( __m128i  a)

Definition at line 1545 of file emmintrin.h.

1546{
1547 __v4si b = (__v4si)a;
1548 return b[0];
1549}

◆ _mm_cvtsi128_si64()

__INTRIN_INLINE_SSE2 long long _mm_cvtsi128_si64 ( __m128i  a)

Definition at line 1551 of file emmintrin.h.

1552{
1553 return a[0];
1554}

Referenced by sqrt().

◆ _mm_cvtsi32_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtsi32_sd ( __m128d  a,
int  b 
)

Definition at line 893 of file emmintrin.h.

895{
896 a[0] = b;
897 return a;
898}

Referenced by IntToF64vec2().

◆ _mm_cvtsi32_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtsi32_si128 ( int  a)

Definition at line 1535 of file emmintrin.h.

1536{
1537 return __extension__(__m128i)(__v4si){a, 0, 0, 0};
1538}

Referenced by strspn().

◆ _mm_cvtsi64_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_cvtsi64_si128 ( long long  a)

Definition at line 1540 of file emmintrin.h.

1541{
1542 return __extension__(__m128i)(__v2di){a, 0};
1543}

◆ _mm_cvtss_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_cvtss_sd ( __m128d  a,
__m128  b 
)

Definition at line 900 of file emmintrin.h.

901{
902 a[0] = b[0];
903 return a;
904}

◆ _mm_cvttpd_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvttpd_epi32 ( __m128d  a)

Definition at line 906 of file emmintrin.h.

907{
908 return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)a);
909}

◆ _mm_cvttpd_pi32()

__INTRIN_INLINE_MMXSSE2 __m64 _mm_cvttpd_pi32 ( __m128d  a)

Definition at line 921 of file emmintrin.h.

922{
923 return (__m64)__builtin_ia32_cvttpd2pi((__v2df)a);
924}

◆ _mm_cvttps_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_cvttps_epi32 ( __m128  a)

Definition at line 1530 of file emmintrin.h.

1531{
1532 return (__m128i)__builtin_ia32_cvttps2dq((__v4sf)a);
1533}

◆ _mm_cvttsd_si32()

__INTRIN_INLINE_SSE2 int _mm_cvttsd_si32 ( __m128d  a)

Definition at line 911 of file emmintrin.h.

912{
913 return __builtin_ia32_cvttsd2si((__v2df)a);
914}

Referenced by F64vec2_SELECT().

◆ _mm_div_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_div_pd ( __m128d  a,
__m128d  b 
)

Definition at line 615 of file emmintrin.h.

616{
617 return (__m128d)((__v2df)a / (__v2df)b);
618}

Referenced by F64vec2::operator/=().

◆ _mm_div_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_div_sd ( __m128d  a,
__m128d  b 
)

Definition at line 609 of file emmintrin.h.

610{
611 a[0] /= b[0];
612 return a;
613}

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

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

◆ _mm_load_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_load_pd ( double const dp)

Definition at line 936 of file emmintrin.h.

937{
938 return *(const __m128d *)dp;
939}

◆ _mm_load_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_load_sd ( double const dp)

Definition at line 1000 of file emmintrin.h.

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

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

◆ _mm_load_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_load_si128 ( __m128i const p)

Definition at line 1556 of file emmintrin.h.

1557{
1558 return *p;
1559}
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 1009 of file emmintrin.h.

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

◆ _mm_loadl_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_loadl_epi64 ( __m128i_u const p)

Definition at line 1569 of file emmintrin.h.

1570{
1571 struct __mm_loadl_epi64_struct {
1572 long long __u;
1573 } __attribute__((__packed__, __may_alias__));
1574 return __extension__(__m128i){
1575 ((const struct __mm_loadl_epi64_struct *)p)->__u, 0};
1576}

◆ _mm_loadl_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_loadl_pd ( __m128d  a,
double const dp 
)

Definition at line 1018 of file emmintrin.h.

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

◆ _mm_loadr_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_loadr_pd ( double const dp)

Definition at line 955 of file emmintrin.h.

956{
957#if HAS_BUILTIN(__builtin_shufflevector)
958 __m128d u = *(const __m128d *)dp;
959 return __builtin_shufflevector((__v2df)u, (__v2df)u, 1, 0);
960#else
961 return (__m128d){ dp[1], dp[0] };
962#endif
963}
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 965 of file emmintrin.h.

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

Referenced by loadu().

◆ _mm_loadu_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si128 ( __m128i_u const p)

Definition at line 1561 of file emmintrin.h.

1562{
1563 struct __loadu_si128 {
1564 __m128i_u __v;
1565 } __attribute__((__packed__, __may_alias__));
1566 return ((const struct __loadu_si128 *)p)->__v;
1567}

Referenced by strspn().

◆ _mm_loadu_si16()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si16 ( void const a)

Definition at line 991 of file emmintrin.h.

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

◆ _mm_loadu_si32()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si32 ( void const a)

Definition at line 982 of file emmintrin.h.

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

◆ _mm_loadu_si64()

__INTRIN_INLINE_SSE2 __m128i _mm_loadu_si64 ( void const a)

Definition at line 973 of file emmintrin.h.

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

◆ _mm_madd_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_madd_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1198 of file emmintrin.h.

1199{
1200 return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)a, (__v8hi)b);
1201}

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

1717{
1718 __builtin_ia32_maskmovdqu((__v16qi)d, (__v16qi)n, p);
1719}
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 1203 of file emmintrin.h.

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

Referenced by simd_max().

◆ _mm_max_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_max_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1212 of file emmintrin.h.

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

Referenced by simd_max().

◆ _mm_max_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_max_pd ( __m128d  a,
__m128d  b 
)

Definition at line 646 of file emmintrin.h.

647{
648 return __builtin_ia32_maxpd((__v2df)a, (__v2df)b);
649}

◆ _mm_max_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_max_sd ( __m128d  a,
__m128d  b 
)

Definition at line 641 of file emmintrin.h.

642{
643 return __builtin_ia32_maxsd((__v2df)a, (__v2df)b);
644}

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

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

Referenced by simd_min().

◆ _mm_min_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_min_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1230 of file emmintrin.h.

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

Referenced by simd_min().

◆ _mm_min_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_min_pd ( __m128d  a,
__m128d  b 
)

Definition at line 636 of file emmintrin.h.

637{
638 return __builtin_ia32_minpd((__v2df)a, (__v2df)b);
639}

◆ _mm_min_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_min_sd ( __m128d  a,
__m128d  b 
)

Definition at line 631 of file emmintrin.h.

632{
633 return __builtin_ia32_minsd((__v2df)a, (__v2df)b);
634}

◆ _mm_move_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_move_epi64 ( __m128i  a)

Definition at line 1892 of file emmintrin.h.

1893{
1894#if HAS_BUILTIN(__builtin_shufflevector)
1895 return __builtin_shufflevector((__v2di)a, _mm_setzero_si128(), 0, 2);
1896#else
1897 return (__m128i)__builtin_ia32_movq128((__v2di)a);
1898#endif
1899}
__m128i _mm_setzero_si128(void)
Definition: emmintrin.h:1674

◆ _mm_move_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_move_sd ( __m128d  a,
__m128d  b 
)

Definition at line 1062 of file emmintrin.h.

1063{
1064 a[0] = b[0];
1065 return a;
1066}

◆ _mm_movemask_epi8()

__INTRIN_INLINE_SSE2 int _mm_movemask_epi8 ( __m128i  a)

Definition at line 1788 of file emmintrin.h.

1789{
1790 return __builtin_ia32_pmovmskb128((__v16qi)a);
1791}

Referenced by strspn().

◆ _mm_movemask_pd()

__INTRIN_INLINE_SSE2 int _mm_movemask_pd ( __m128d  a)

Definition at line 1919 of file emmintrin.h.

1920{
1921 return __builtin_ia32_movmskpd((__v2df)a);
1922}

Referenced by move_mask().

◆ _mm_movepi64_pi64()

__INTRIN_INLINE_SSE2 __m64 _mm_movepi64_pi64 ( __m128i  a)

Definition at line 1882 of file emmintrin.h.

1883{
1884 return (__m64)a[0];
1885}

◆ _mm_movpi64_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_movpi64_epi64 ( __m64  a)

Definition at line 1887 of file emmintrin.h.

1888{
1889 return __extension__(__m128i)(__v2di){(long long)a, 0};
1890}
#define long
Definition: qsort.c:33

◆ _mm_mul_epu32()

__INTRIN_INLINE_SSE2 __m128i _mm_mul_epu32 ( __m128i  a,
__m128i  b 
)

Definition at line 1259 of file emmintrin.h.

1260{
1261 return __builtin_ia32_pmuludq128((__v4si)a, (__v4si)b);
1262}

Referenced by operator*().

◆ _mm_mul_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_mul_pd ( __m128d  a,
__m128d  b 
)

Definition at line 604 of file emmintrin.h.

605{
606 return (__m128d)((__v2df)a * (__v2df)b);
607}

Referenced by F64vec2::operator*=().

◆ _mm_mul_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_mul_sd ( __m128d  a,
__m128d  b 
)

Definition at line 598 of file emmintrin.h.

599{
600 a[0] *= b[0];
601 return a;
602}

◆ _mm_mul_su32()

__INTRIN_INLINE_MMXSSE2 __m64 _mm_mul_su32 ( __m64  a,
__m64  b 
)

Definition at line 1254 of file emmintrin.h.

1255{
1256 return (__m64)__builtin_ia32_pmuludq((__v2si)a, (__v2si)b);
1257}

◆ _mm_mulhi_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_mulhi_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1239 of file emmintrin.h.

1240{
1241 return (__m128i)__builtin_ia32_pmulhw128((__v8hi)a, (__v8hi)b);
1242}

Referenced by mul_high().

◆ _mm_mulhi_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_mulhi_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1244 of file emmintrin.h.

1245{
1246 return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)a, (__v8hi)b);
1247}

Referenced by mul_high().

◆ _mm_mullo_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_mullo_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1249 of file emmintrin.h.

1250{
1251 return (__m128i)((__v8hu)a * (__v8hu)b);
1252}

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

662{
663 return (__m128d)((__v2du)a | (__v2du)b);
664}

Referenced by F64vec2::operator|=().

◆ _mm_or_si128()

◆ _mm_packs_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_packs_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1765 of file emmintrin.h.

1766{
1767 return (__m128i)__builtin_ia32_packsswb128((__v8hi)a, (__v8hi)b);
1768}

Referenced by pack_sat().

◆ _mm_packs_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_packs_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1770 of file emmintrin.h.

1771{
1772 return (__m128i)__builtin_ia32_packssdw128((__v4si)a, (__v4si)b);
1773}

Referenced by pack_sat().

◆ _mm_packus_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_packus_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1775 of file emmintrin.h.

1776{
1777 return (__m128i)__builtin_ia32_packuswb128((__v8hi)a, (__v8hi)b);
1778}

Referenced by packu_sat().

◆ _mm_pause()

void _mm_pause ( void  )

Definition at line 2059 of file intrin_x86.h.

2060{
2061 __asm__ __volatile__("pause" : : : "memory");
2062}

Referenced by __security_init_cookie().

◆ _mm_sad_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_sad_epu8 ( __m128i  a,
__m128i  b 
)

Definition at line 1264 of file emmintrin.h.

1265{
1266 return __builtin_ia32_psadbw128((__v16qi)a, (__v16qi)b);
1267}

Referenced by sum_abs().

◆ _mm_set1_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi16 ( short  w)

Definition at line 1636 of file emmintrin.h.

1637{
1638 return _mm_set_epi16(w, w, w, w, w, w, w, w);
1639}
__m128i _mm_set_epi16(short w7, short w6, short w5, short w4, short w3, short w2, short w1, short w0)
Definition: emmintrin.h:1603
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102

◆ _mm_set1_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi32 ( int  i)

Definition at line 1631 of file emmintrin.h.

1632{
1633 return _mm_set_epi32(i, i, i, i);
1634}
__m128i _mm_set_epi32(int i3, int i2, int i1, int i0)
Definition: emmintrin.h:1598

◆ _mm_set1_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi64 ( __m64  q)

Definition at line 1626 of file emmintrin.h.

1627{
1628 return _mm_set_epi64(q, q);
1629}
__m128i _mm_set_epi64(__m64 q1, __m64 q0)
Definition: emmintrin.h:1593
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 1621 of file emmintrin.h.

1622{
1623 return _mm_set_epi64x(q, q);
1624}
__INTRIN_INLINE_SSE2 __m128i _mm_set_epi64x(long long q1, long long q0)
Definition: emmintrin.h:1588

◆ _mm_set1_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_set1_epi8 ( char  b)

Definition at line 1641 of file emmintrin.h.

1642{
1643 return _mm_set_epi8(b, b, b, b, b, b, b, b, b, b, b,
1644 b, b, b, b, b);
1645}
__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:1610

◆ _mm_set1_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_set1_pd ( double  w)

Definition at line 1042 of file emmintrin.h.

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

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

1606{
1607 return __extension__(__m128i)(__v8hi){w0, w1, w2, w3, w4, w5, w6, w7};
1608}
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 1598 of file emmintrin.h.

1599{
1600 return __extension__(__m128i)(__v4si){i0, i1, i2, i3};
1601}

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

1594{
1595 return _mm_set_epi64x((long long)q1, (long long)q0);
1596}

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

1589{
1590 return __extension__(__m128i)(__v2di){q0, q1};
1591}

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

1615{
1616 return __extension__(__m128i)(__v16qi){
1617 b0, b1, b2, b3, b4, b5, b6, b7,
1618 b8, b9, b10, b11, b12, b13, b14, b15};
1619}
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 1047 of file emmintrin.h.

1048{
1049 return __extension__(__m128d){x, w};
1050}
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 1037 of file emmintrin.h.

1038{
1039 return __extension__(__m128d){w, 0};
1040}

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

1660{
1661 return _mm_set_epi16(w7, w6, w5, w4, w3, w2, w1, w0);
1662}

◆ _mm_setr_epi32()

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

Definition at line 1652 of file emmintrin.h.

1653{
1654 return _mm_set_epi32(i3, i2, i1, i0);
1655}

◆ _mm_setr_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_setr_epi64 ( __m64  q0,
__m64  q1 
)

Definition at line 1647 of file emmintrin.h.

1648{
1649 return _mm_set_epi64(q1, q0);
1650}

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

1669{
1670 return _mm_set_epi8(b15, b14, b13, b12, b11, b10, b9, b8,
1671 b7, b6, b5, b4, b3, b2, b1, b0);
1672}

◆ _mm_setr_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_setr_pd ( double  w,
double  x 
)

Definition at line 1052 of file emmintrin.h.

1053{
1054 return __extension__(__m128d){w, x};
1055}

◆ _mm_setzero_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_setzero_pd ( void  )

Definition at line 1057 of file emmintrin.h.

1058{
1059 return __extension__(__m128d){0, 0};
1060}

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

◆ _mm_setzero_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_setzero_si128 ( void  )

Definition at line 1674 of file emmintrin.h.

1675{
1676 return __extension__(__m128i)(__v2di){0LL, 0LL};
1677}

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

1366{
1367 return (__m128i)__builtin_ia32_psllw128((__v8hi)a, (__v8hi)count);
1368}
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 1375 of file emmintrin.h.

1376{
1377 return (__m128i)__builtin_ia32_pslld128((__v4si)a, (__v4si)count);
1378}

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

1386{
1387 return __builtin_ia32_psllq128((__v2di)a, (__v2di)count);
1388}

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

◆ _mm_slli_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_slli_epi16 ( __m128i  a,
int  count 
)

Definition at line 1360 of file emmintrin.h.

1361{
1362 return (__m128i)__builtin_ia32_psllwi128((__v8hi)a, count);
1363}

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

1371{
1372 return (__m128i)__builtin_ia32_pslldi128((__v4si)a, count);
1373}

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

1381{
1382 return __builtin_ia32_psllqi128((__v2di)a, count);
1383}

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

◆ _mm_slli_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_slli_si128 ( __m128i  a,
int  i 
)

Definition at line 1354 of file emmintrin.h.

1355{
1356 return (__m128i)__builtin_ia32_pslldqi128(a, imm * 8);
1357}

Referenced by strspn().

◆ _mm_sqrt_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_sqrt_pd ( __m128d  a)

Definition at line 626 of file emmintrin.h.

627{
628 return __builtin_ia32_sqrtpd((__v2df)a);
629}

Referenced by sqrt().

◆ _mm_sqrt_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_sqrt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 620 of file emmintrin.h.

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

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

1396{
1397 return (__m128i)__builtin_ia32_psraw128((__v8hi)a, (__v8hi)count);
1398}

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

◆ _mm_sra_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_sra_epi32 ( __m128i  a,
__m128i  count 
)

Definition at line 1405 of file emmintrin.h.

1406{
1407 return (__m128i)__builtin_ia32_psrad128((__v4si)a, (__v4si)count);
1408}

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

◆ _mm_srai_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_srai_epi16 ( __m128i  a,
int  count 
)

Definition at line 1390 of file emmintrin.h.

1391{
1392 return (__m128i)__builtin_ia32_psrawi128((__v8hi)a, count);
1393}

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

◆ _mm_srai_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_srai_epi32 ( __m128i  a,
int  count 
)

Definition at line 1400 of file emmintrin.h.

1401{
1402 return (__m128i)__builtin_ia32_psradi128((__v4si)a, count);
1403}

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

◆ _mm_srl_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_srl_epi16 ( __m128i  a,
__m128i  count 
)

Definition at line 1425 of file emmintrin.h.

1426{
1427 return (__m128i)__builtin_ia32_psrlw128((__v8hi)a, (__v8hi)count);
1428}

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

◆ _mm_srl_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_srl_epi32 ( __m128i  a,
__m128i  count 
)

Definition at line 1435 of file emmintrin.h.

1436{
1437 return (__m128i)__builtin_ia32_psrld128((__v4si)a, (__v4si)count);
1438}

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

◆ _mm_srl_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_srl_epi64 ( __m128i  a,
__m128i  count 
)

Definition at line 1445 of file emmintrin.h.

1446{
1447 return __builtin_ia32_psrlq128((__v2di)a, (__v2di)count);
1448}

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

◆ _mm_srli_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_srli_epi16 ( __m128i  a,
int  count 
)

Definition at line 1420 of file emmintrin.h.

1421{
1422 return (__m128i)__builtin_ia32_psrlwi128((__v8hi)a, count);
1423}

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

◆ _mm_srli_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_srli_epi32 ( __m128i  a,
int  count 
)

Definition at line 1430 of file emmintrin.h.

1431{
1432 return (__m128i)__builtin_ia32_psrldi128((__v4si)a, count);
1433}

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

◆ _mm_srli_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_srli_epi64 ( __m128i  a,
int  count 
)

Definition at line 1440 of file emmintrin.h.

1441{
1442 return __builtin_ia32_psrlqi128((__v2di)a, count);
1443}

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

◆ _mm_srli_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_srli_si128 ( __m128i  a,
int  imm 
)

Definition at line 1414 of file emmintrin.h.

1415{
1416 return (__m128i)__builtin_ia32_psrldqi128(a, imm * 8);
1417}

Referenced by strspn().

◆ _mm_store1_pd()

__INTRIN_INLINE_SSE2 void _mm_store1_pd ( double dp,
__m128d  a 
)

Definition at line 1081 of file emmintrin.h.

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

◆ _mm_store_pd()

__INTRIN_INLINE_SSE2 void _mm_store_pd ( double dp,
__m128d  a 
)

Definition at line 1076 of file emmintrin.h.

1077{
1078 *(__m128d *)dp = a;
1079}

Referenced by _mm_store1_pd().

◆ _mm_store_sd()

__INTRIN_INLINE_SSE2 void _mm_store_sd ( double dp,
__m128d  a 
)

Definition at line 1068 of file emmintrin.h.

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

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

1680{
1681 *p = b;
1682}

◆ _mm_storeh_pd()

__INTRIN_INLINE_SSE2 void _mm_storeh_pd ( double dp,
__m128d  a 
)

Definition at line 1111 of file emmintrin.h.

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

◆ _mm_storel_epi64()

__INTRIN_INLINE_SSE2 void _mm_storel_epi64 ( __m128i_u *  p,
__m128i  a 
)

Definition at line 1721 of file emmintrin.h.

1722{
1723 struct __mm_storel_epi64_struct {
1724 long long __u;
1725 } __attribute__((__packed__, __may_alias__));
1726 ((struct __mm_storel_epi64_struct *)p)->__u = a[0];
1727}

◆ _mm_storel_pd()

__INTRIN_INLINE_SSE2 void _mm_storel_pd ( double dp,
__m128d  a 
)

Definition at line 1119 of file emmintrin.h.

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

◆ _mm_storer_pd()

__INTRIN_INLINE_SSE2 void _mm_storer_pd ( double dp,
__m128d  a 
)

Definition at line 1100 of file emmintrin.h.

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

◆ _mm_storeu_pd()

__INTRIN_INLINE_SSE2 void _mm_storeu_pd ( double dp,
__m128d  a 
)

Definition at line 1092 of file emmintrin.h.

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

Referenced by storeu().

◆ _mm_storeu_si128()

__INTRIN_INLINE_SSE2 void _mm_storeu_si128 ( __m128i_u *  p,
__m128i  b 
)

Definition at line 1684 of file emmintrin.h.

1685{
1686 struct __storeu_si128 {
1687 __m128i_u __v;
1688 } __attribute__((__packed__, __may_alias__));
1689 ((struct __storeu_si128 *)p)->__v = b;
1690}

◆ _mm_storeu_si16()

__INTRIN_INLINE_SSE2 void _mm_storeu_si16 ( void p,
__m128i  b 
)

Definition at line 1708 of file emmintrin.h.

1709{
1710 struct __storeu_si16 {
1711 short __v;
1712 } __attribute__((__packed__, __may_alias__));
1713 ((struct __storeu_si16 *)p)->__v = ((__v8hi)b)[0];
1714}

◆ _mm_storeu_si32()

__INTRIN_INLINE_SSE2 void _mm_storeu_si32 ( void p,
__m128i  b 
)

Definition at line 1700 of file emmintrin.h.

1701{
1702 struct __storeu_si32 {
1703 int __v;
1704 } __attribute__((__packed__, __may_alias__));
1705 ((struct __storeu_si32 *)p)->__v = ((__v4si)b)[0];
1706}

◆ _mm_storeu_si64()

__INTRIN_INLINE_SSE2 void _mm_storeu_si64 ( void p,
__m128i  b 
)

Definition at line 1692 of file emmintrin.h.

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

◆ _mm_stream_pd()

__INTRIN_INLINE_SSE2 void _mm_stream_pd ( double p,
__m128d  a 
)

Definition at line 1729 of file emmintrin.h.

1730{
1731#if HAS_BUILTIN(__builtin_nontemporal_store)
1732 __builtin_nontemporal_store((__v2df)a, (__v2df *)p);
1733#else
1734 __builtin_ia32_movntpd(p, a);
1735#endif
1736}

Referenced by store_nta().

◆ _mm_stream_si128()

__INTRIN_INLINE_SSE2 void _mm_stream_si128 ( __m128i *  p,
__m128i  a 
)

Definition at line 1738 of file emmintrin.h.

1739{
1740#if HAS_BUILTIN(__builtin_nontemporal_store)
1741 __builtin_nontemporal_store((__v2di)a, (__v2di*)p);
1742#else
1743 __builtin_ia32_movntdq(p, a);
1744#endif
1745}

◆ _mm_stream_si32()

__INTRIN_INLINE_SSE2 void _mm_stream_si32 ( int p,
int  a 
)

Definition at line 1747 of file emmintrin.h.

1748{
1749 __builtin_ia32_movnti(p, a);
1750}

◆ _mm_sub_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_sub_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1274 of file emmintrin.h.

1275{
1276 return (__m128i)((__v8hu)a - (__v8hu)b);
1277}

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

1280{
1281 return (__m128i)((__v4su)a - (__v4su)b);
1282}

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

1290{
1291 return (__m128i)((__v2du)a - (__v2du)b);
1292}

Referenced by I64vec2::operator-=().

◆ _mm_sub_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_sub_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1269 of file emmintrin.h.

1270{
1271 return (__m128i)((__v16qu)a - (__v16qu)b);
1272}

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

594{
595 return (__m128d)((__v2df)a - (__v2df)b);
596}

Referenced by F64vec2::operator-=().

◆ _mm_sub_sd()

__INTRIN_INLINE_SSE2 __m128d _mm_sub_sd ( __m128d  a,
__m128d  b 
)

Definition at line 587 of file emmintrin.h.

588{
589 a[0] -= b[0];
590 return a;
591}

◆ _mm_sub_si64()

__INTRIN_INLINE_MMXSSE2 __m64 _mm_sub_si64 ( __m64  a,
__m64  b 
)

Definition at line 1284 of file emmintrin.h.

1285{
1286 return (__m64)__builtin_ia32_psubq((__v1di)a, (__v1di)b);
1287}

◆ _mm_subs_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epi16 ( __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((__v8hi)a, (__v8hi)b);
1307#else
1308 return (__m128i)__builtin_ia32_psubsw128((__v8hi)a, (__v8hi)b);
1309#endif
1310}

Referenced by sat_sub().

◆ _mm_subs_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epi8 ( __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((__v16qs)a, (__v16qs)b);
1298#else
1299 return (__m128i)__builtin_ia32_psubsb128((__v16qi)a, (__v16qi)b);
1300#endif
1301}

Referenced by sat_sub().

◆ _mm_subs_epu16()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epu16 ( __m128i  a,
__m128i  b 
)

Definition at line 1321 of file emmintrin.h.

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

Referenced by sat_sub().

◆ _mm_subs_epu8()

__INTRIN_INLINE_SSE2 __m128i _mm_subs_epu8 ( __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((__v16qu)a, (__v16qu)b);
1316#else
1317 return (__m128i)__builtin_ia32_psubusb128((__v16qi)a, (__v16qi)b);
1318#endif
1319}

Referenced by sat_sub().

◆ _mm_ucomieq_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomieq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 825 of file emmintrin.h.

826{
827 return __builtin_ia32_ucomisdeq((__v2df)a, (__v2df)b);
828}

◆ _mm_ucomige_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomige_sd ( __m128d  a,
__m128d  b 
)

Definition at line 845 of file emmintrin.h.

846{
847 return __builtin_ia32_ucomisdge((__v2df)a, (__v2df)b);
848}

◆ _mm_ucomigt_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomigt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 840 of file emmintrin.h.

841{
842 return __builtin_ia32_ucomisdgt((__v2df)a, (__v2df)b);
843}

◆ _mm_ucomile_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomile_sd ( __m128d  a,
__m128d  b 
)

Definition at line 835 of file emmintrin.h.

836{
837 return __builtin_ia32_ucomisdle((__v2df)a, (__v2df)b);
838}

◆ _mm_ucomilt_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomilt_sd ( __m128d  a,
__m128d  b 
)

Definition at line 830 of file emmintrin.h.

831{
832 return __builtin_ia32_ucomisdlt((__v2df)a, (__v2df)b);
833}

◆ _mm_ucomineq_sd()

__INTRIN_INLINE_SSE2 int _mm_ucomineq_sd ( __m128d  a,
__m128d  b 
)

Definition at line 850 of file emmintrin.h.

851{
852 return __builtin_ia32_ucomisdneq((__v2df)a, (__v2df)b);
853}

◆ _mm_undefined_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_undefined_pd ( void  )

Definition at line 1027 of file emmintrin.h.

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

◆ _mm_undefined_si128()

__INTRIN_INLINE_SSE2 __m128i _mm_undefined_si128 ( void  )

Definition at line 1578 of file emmintrin.h.

1579{
1580#if HAS_BUILTIN(__builtin_ia32_undef128)
1581 return (__m128i)__builtin_ia32_undef128();
1582#else
1583 __m128i undef = undef;
1584 return undef;
1585#endif
1586}

◆ _mm_unpackhi_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1813 of file emmintrin.h.

1814{
1815#if HAS_BUILTIN(__builtin_shufflevector)
1816 return (__m128i)__builtin_shufflevector((__v8hi)a, (__v8hi)b, 4, 8 + 4, 5,
1817 8 + 5, 6, 8 + 6, 7, 8 + 7);
1818#else
1819 return (__m128i)__builtin_ia32_punpckhwd128((__v8hi)a, (__v8hi)b);
1820#endif
1821}

Referenced by unpack_high().

◆ _mm_unpackhi_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1823 of file emmintrin.h.

1824{
1825#if HAS_BUILTIN(__builtin_shufflevector)
1826 return (__m128i)__builtin_shufflevector((__v4si)a, (__v4si)b, 2, 4 + 2, 3,
1827 4 + 3);
1828#else
1829 return (__m128i)__builtin_ia32_punpckhdq128((__v4si)a, (__v4si)b);
1830#endif
1831}

Referenced by unpack_high().

◆ _mm_unpackhi_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi64 ( __m128i  a,
__m128i  b 
)

Definition at line 1833 of file emmintrin.h.

1834{
1835#if HAS_BUILTIN(__builtin_shufflevector)
1836 return (__m128i)__builtin_shufflevector((__v2di)a, (__v2di)b, 1, 2 + 1);
1837#else
1838 return (__m128i)__builtin_ia32_punpckhqdq128((__v2di)a, (__v2di)b);
1839#endif
1840}

Referenced by unpack_high().

◆ _mm_unpackhi_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_unpackhi_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1802 of file emmintrin.h.

1803{
1804#if HAS_BUILTIN(__builtin_shufflevector)
1805 return (__m128i)__builtin_shufflevector(
1806 (__v16qi)a, (__v16qi)b, 8, 16 + 8, 9, 16 + 9, 10, 16 + 10, 11,
1807 16 + 11, 12, 16 + 12, 13, 16 + 13, 14, 16 + 14, 15, 16 + 15);
1808#else
1809 return (__m128i)__builtin_ia32_punpckhbw128((__v16qi)a, (__v16qi)b);
1810#endif
1811}

Referenced by unpack_high().

◆ _mm_unpackhi_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_unpackhi_pd ( __m128d  a,
__m128d  b 
)

Definition at line 1901 of file emmintrin.h.

1902{
1903#if HAS_BUILTIN(__builtin_shufflevector)
1904 return __builtin_shufflevector((__v2df)a, (__v2df)b, 1, 2 + 1);
1905#else
1906 return (__m128d)__builtin_ia32_unpckhpd((__v2df)a, (__v2df)b);
1907#endif
1908}

Referenced by unpack_high().

◆ _mm_unpacklo_epi16()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi16 ( __m128i  a,
__m128i  b 
)

Definition at line 1853 of file emmintrin.h.

1854{
1855#if HAS_BUILTIN(__builtin_shufflevector)
1856 return (__m128i)__builtin_shufflevector((__v8hi)a, (__v8hi)b, 0, 8 + 0, 1,
1857 8 + 1, 2, 8 + 2, 3, 8 + 3);
1858#else
1859 return (__m128i)__builtin_ia32_punpcklwd128((__v8hi)a, (__v8hi)b);
1860#endif
1861}

Referenced by unpack_low().

◆ _mm_unpacklo_epi32()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi32 ( __m128i  a,
__m128i  b 
)

Definition at line 1863 of file emmintrin.h.

1864{
1865#if HAS_BUILTIN(__builtin_shufflevector)
1866 return (__m128i)__builtin_shufflevector((__v4si)a, (__v4si)b, 0, 4 + 0, 1,
1867 4 + 1);
1868#else
1869 return (__m128i)__builtin_ia32_punpckldq128((__v4si)a, (__v4si)b);
1870#endif
1871}

Referenced by unpack_low().

◆ _mm_unpacklo_epi64()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi64 ( __m128i  a,
__m128i  b 
)

Definition at line 1873 of file emmintrin.h.

1874{
1875#if HAS_BUILTIN(__builtin_shufflevector)
1876 return (__m128i)__builtin_shufflevector((__v2di)a, (__v2di)b, 0, 2 + 0);
1877#else
1878 return (__m128i)__builtin_ia32_punpcklqdq128((__v2di)a, (__v2di)b);
1879#endif
1880}

Referenced by unpack_low().

◆ _mm_unpacklo_epi8()

__INTRIN_INLINE_SSE2 __m128i _mm_unpacklo_epi8 ( __m128i  a,
__m128i  b 
)

Definition at line 1842 of file emmintrin.h.

1843{
1844#if HAS_BUILTIN(__builtin_shufflevector)
1845 return (__m128i)__builtin_shufflevector(
1846 (__v16qi)a, (__v16qi)b, 0, 16 + 0, 1, 16 + 1, 2, 16 + 2, 3, 16 + 3, 4,
1847 16 + 4, 5, 16 + 5, 6, 16 + 6, 7, 16 + 7);
1848#else
1849 return (__m128i)__builtin_ia32_punpcklbw128((__v16qi)a, (__v16qi)b);
1850#endif
1851}

Referenced by strspn(), and unpack_low().

◆ _mm_unpacklo_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_unpacklo_pd ( __m128d  a,
__m128d  b 
)

Definition at line 1910 of file emmintrin.h.

1911{
1912#if HAS_BUILTIN(__builtin_shufflevector)
1913 return __builtin_shufflevector((__v2df)a, (__v2df)b, 0, 2 + 0);
1914#else
1915 return (__m128d)__builtin_ia32_unpcklpd((__v2df)a, (__v2df)b);
1916#endif
1917}

Referenced by unpack_low().

◆ _mm_xor_pd()

__INTRIN_INLINE_SSE2 __m128d _mm_xor_pd ( __m128d  a,
__m128d  b 
)

Definition at line 666 of file emmintrin.h.

667{
668 return (__m128d)((__v2du)a ^ (__v2du)b);
669}

Referenced by F64vec2::operator^=().

◆ _mm_xor_si128()