clang 20.0.0git
Macros | Typedefs | Functions
mmintrin.h File Reference

Go to the source code of this file.

Macros

#define __DEFAULT_FN_ATTRS_SSE2
 
#define __trunc64(x)    (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0)
 
#define __anyext128(x)
 
#define _m_empty   _mm_empty
 
#define _m_from_int   _mm_cvtsi32_si64
 
#define _m_from_int64   _mm_cvtsi64_m64
 
#define _m_to_int   _mm_cvtsi64_si32
 
#define _m_to_int64   _mm_cvtm64_si64
 
#define _m_packsswb   _mm_packs_pi16
 
#define _m_packssdw   _mm_packs_pi32
 
#define _m_packuswb   _mm_packs_pu16
 
#define _m_punpckhbw   _mm_unpackhi_pi8
 
#define _m_punpckhwd   _mm_unpackhi_pi16
 
#define _m_punpckhdq   _mm_unpackhi_pi32
 
#define _m_punpcklbw   _mm_unpacklo_pi8
 
#define _m_punpcklwd   _mm_unpacklo_pi16
 
#define _m_punpckldq   _mm_unpacklo_pi32
 
#define _m_paddb   _mm_add_pi8
 
#define _m_paddw   _mm_add_pi16
 
#define _m_paddd   _mm_add_pi32
 
#define _m_paddsb   _mm_adds_pi8
 
#define _m_paddsw   _mm_adds_pi16
 
#define _m_paddusb   _mm_adds_pu8
 
#define _m_paddusw   _mm_adds_pu16
 
#define _m_psubb   _mm_sub_pi8
 
#define _m_psubw   _mm_sub_pi16
 
#define _m_psubd   _mm_sub_pi32
 
#define _m_psubsb   _mm_subs_pi8
 
#define _m_psubsw   _mm_subs_pi16
 
#define _m_psubusb   _mm_subs_pu8
 
#define _m_psubusw   _mm_subs_pu16
 
#define _m_pmaddwd   _mm_madd_pi16
 
#define _m_pmulhw   _mm_mulhi_pi16
 
#define _m_pmullw   _mm_mullo_pi16
 
#define _m_psllw   _mm_sll_pi16
 
#define _m_psllwi   _mm_slli_pi16
 
#define _m_pslld   _mm_sll_pi32
 
#define _m_pslldi   _mm_slli_pi32
 
#define _m_psllq   _mm_sll_si64
 
#define _m_psllqi   _mm_slli_si64
 
#define _m_psraw   _mm_sra_pi16
 
#define _m_psrawi   _mm_srai_pi16
 
#define _m_psrad   _mm_sra_pi32
 
#define _m_psradi   _mm_srai_pi32
 
#define _m_psrlw   _mm_srl_pi16
 
#define _m_psrlwi   _mm_srli_pi16
 
#define _m_psrld   _mm_srl_pi32
 
#define _m_psrldi   _mm_srli_pi32
 
#define _m_psrlq   _mm_srl_si64
 
#define _m_psrlqi   _mm_srli_si64
 
#define _m_pand   _mm_and_si64
 
#define _m_pandn   _mm_andnot_si64
 
#define _m_por   _mm_or_si64
 
#define _m_pxor   _mm_xor_si64
 
#define _m_pcmpeqb   _mm_cmpeq_pi8
 
#define _m_pcmpeqw   _mm_cmpeq_pi16
 
#define _m_pcmpeqd   _mm_cmpeq_pi32
 
#define _m_pcmpgtb   _mm_cmpgt_pi8
 
#define _m_pcmpgtw   _mm_cmpgt_pi16
 
#define _m_pcmpgtd   _mm_cmpgt_pi32
 

Typedefs

typedef long long __m64 __attribute__((__vector_size__(8), __aligned__(8)))
 

Functions

static __inline__ void __attribute__ ((__always_inline__, __nodebug__, __target__("mmx,no-evex512"))) _mm_empty(void)
 Clears the MMX state by setting the state of the x87 stack registers to empty.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtsi32_si64 (int __i)
 Constructs a 64-bit integer vector, setting the lower 32 bits to the value of the 32-bit integer parameter and setting the upper 32 bits to 0.
 
static __inline__ int __DEFAULT_FN_ATTRS_SSE2 _mm_cvtsi64_si32 (__m64 __m)
 Returns the lower 32 bits of a 64-bit integer vector as a 32-bit signed integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtsi64_m64 (long long __i)
 Casts a 64-bit signed integer value into a 64-bit integer vector.
 
static __inline__ long long __DEFAULT_FN_ATTRS_SSE2 _mm_cvtm64_si64 (__m64 __m)
 Casts a 64-bit integer vector into a 64-bit signed integer value.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_packs_pi16 (__m64 __m1, __m64 __m2)
 Converts, with saturation, 16-bit signed integers from both 64-bit integer vector parameters of [4 x i16] into 8-bit signed integer values, and constructs a 64-bit integer vector of [8 x i8] as the result.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_packs_pi32 (__m64 __m1, __m64 __m2)
 Converts, with saturation, 32-bit signed integers from both 64-bit integer vector parameters of [2 x i32] into 16-bit signed integer values, and constructs a 64-bit integer vector of [4 x i16] as the result.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_packs_pu16 (__m64 __m1, __m64 __m2)
 Converts, with saturation, 16-bit signed integers from both 64-bit integer vector parameters of [4 x i16] into 8-bit unsigned integer values, and constructs a 64-bit integer vector of [8 x i8] as the result.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpackhi_pi8 (__m64 __m1, __m64 __m2)
 Unpacks the upper 32 bits from two 64-bit integer vectors of [8 x i8] and interleaves them into a 64-bit integer vector of [8 x i8].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpackhi_pi16 (__m64 __m1, __m64 __m2)
 Unpacks the upper 32 bits from two 64-bit integer vectors of [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpackhi_pi32 (__m64 __m1, __m64 __m2)
 Unpacks the upper 32 bits from two 64-bit integer vectors of [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2)
 Unpacks the lower 32 bits from two 64-bit integer vectors of [8 x i8] and interleaves them into a 64-bit integer vector of [8 x i8].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpacklo_pi16 (__m64 __m1, __m64 __m2)
 Unpacks the lower 32 bits from two 64-bit integer vectors of [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpacklo_pi32 (__m64 __m1, __m64 __m2)
 Unpacks the lower 32 bits from two 64-bit integer vectors of [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi8 (__m64 __m1, __m64 __m2)
 Adds each 8-bit integer element of the first 64-bit integer vector of [8 x i8] to the corresponding 8-bit integer element of the second 64-bit integer vector of [8 x i8].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi16 (__m64 __m1, __m64 __m2)
 Adds each 16-bit integer element of the first 64-bit integer vector of [4 x i16] to the corresponding 16-bit integer element of the second 64-bit integer vector of [4 x i16].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi32 (__m64 __m1, __m64 __m2)
 Adds each 32-bit integer element of the first 64-bit integer vector of [2 x i32] to the corresponding 32-bit integer element of the second 64-bit integer vector of [2 x i32].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pi8 (__m64 __m1, __m64 __m2)
 Adds, with saturation, each 8-bit signed integer element of the first 64-bit integer vector of [8 x i8] to the corresponding 8-bit signed integer element of the second 64-bit integer vector of [8 x i8].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pi16 (__m64 __m1, __m64 __m2)
 Adds, with saturation, each 16-bit signed integer element of the first 64-bit integer vector of [4 x i16] to the corresponding 16-bit signed integer element of the second 64-bit integer vector of [4 x i16].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pu8 (__m64 __m1, __m64 __m2)
 Adds, with saturation, each 8-bit unsigned integer element of the first 64-bit integer vector of [8 x i8] to the corresponding 8-bit unsigned integer element of the second 64-bit integer vector of [8 x i8].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pu16 (__m64 __m1, __m64 __m2)
 Adds, with saturation, each 16-bit unsigned integer element of the first 64-bit integer vector of [4 x i16] to the corresponding 16-bit unsigned integer element of the second 64-bit integer vector of [4 x i16].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sub_pi8 (__m64 __m1, __m64 __m2)
 Subtracts each 8-bit integer element of the second 64-bit integer vector of [8 x i8] from the corresponding 8-bit integer element of the first 64-bit integer vector of [8 x i8].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sub_pi16 (__m64 __m1, __m64 __m2)
 Subtracts each 16-bit integer element of the second 64-bit integer vector of [4 x i16] from the corresponding 16-bit integer element of the first 64-bit integer vector of [4 x i16].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sub_pi32 (__m64 __m1, __m64 __m2)
 Subtracts each 32-bit integer element of the second 64-bit integer vector of [2 x i32] from the corresponding 32-bit integer element of the first 64-bit integer vector of [2 x i32].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pi8 (__m64 __m1, __m64 __m2)
 Subtracts, with saturation, each 8-bit signed integer element of the second 64-bit integer vector of [8 x i8] from the corresponding 8-bit signed integer element of the first 64-bit integer vector of [8 x i8].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pi16 (__m64 __m1, __m64 __m2)
 Subtracts, with saturation, each 16-bit signed integer element of the second 64-bit integer vector of [4 x i16] from the corresponding 16-bit signed integer element of the first 64-bit integer vector of [4 x i16].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pu8 (__m64 __m1, __m64 __m2)
 Subtracts each 8-bit unsigned integer element of the second 64-bit integer vector of [8 x i8] from the corresponding 8-bit unsigned integer element of the first 64-bit integer vector of [8 x i8].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pu16 (__m64 __m1, __m64 __m2)
 Subtracts each 16-bit unsigned integer element of the second 64-bit integer vector of [4 x i16] from the corresponding 16-bit unsigned integer element of the first 64-bit integer vector of [4 x i16].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_madd_pi16 (__m64 __m1, __m64 __m2)
 Multiplies each 16-bit signed integer element of the first 64-bit integer vector of [4 x i16] by the corresponding 16-bit signed integer element of the second 64-bit integer vector of [4 x i16] and get four 32-bit products.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_mulhi_pi16 (__m64 __m1, __m64 __m2)
 Multiplies each 16-bit signed integer element of the first 64-bit integer vector of [4 x i16] by the corresponding 16-bit signed integer element of the second 64-bit integer vector of [4 x i16].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_mullo_pi16 (__m64 __m1, __m64 __m2)
 Multiplies each 16-bit signed integer element of the first 64-bit integer vector of [4 x i16] by the corresponding 16-bit signed integer element of the second 64-bit integer vector of [4 x i16].
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sll_pi16 (__m64 __m, __m64 __count)
 Left-shifts each 16-bit signed integer element of the first parameter, which is a 64-bit integer vector of [4 x i16], by the number of bits specified by the second parameter, which is a 64-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_slli_pi16 (__m64 __m, int __count)
 Left-shifts each 16-bit signed integer element of a 64-bit integer vector of [4 x i16] by the number of bits specified by a 32-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sll_pi32 (__m64 __m, __m64 __count)
 Left-shifts each 32-bit signed integer element of the first parameter, which is a 64-bit integer vector of [2 x i32], by the number of bits specified by the second parameter, which is a 64-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_slli_pi32 (__m64 __m, int __count)
 Left-shifts each 32-bit signed integer element of a 64-bit integer vector of [2 x i32] by the number of bits specified by a 32-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sll_si64 (__m64 __m, __m64 __count)
 Left-shifts the first 64-bit integer parameter by the number of bits specified by the second 64-bit integer parameter.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_slli_si64 (__m64 __m, int __count)
 Left-shifts the first parameter, which is a 64-bit integer, by the number of bits specified by the second parameter, which is a 32-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sra_pi16 (__m64 __m, __m64 __count)
 Right-shifts each 16-bit integer element of the first parameter, which is a 64-bit integer vector of [4 x i16], by the number of bits specified by the second parameter, which is a 64-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srai_pi16 (__m64 __m, int __count)
 Right-shifts each 16-bit integer element of a 64-bit integer vector of [4 x i16] by the number of bits specified by a 32-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sra_pi32 (__m64 __m, __m64 __count)
 Right-shifts each 32-bit integer element of the first parameter, which is a 64-bit integer vector of [2 x i32], by the number of bits specified by the second parameter, which is a 64-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srai_pi32 (__m64 __m, int __count)
 Right-shifts each 32-bit integer element of a 64-bit integer vector of [2 x i32] by the number of bits specified by a 32-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srl_pi16 (__m64 __m, __m64 __count)
 Right-shifts each 16-bit integer element of the first parameter, which is a 64-bit integer vector of [4 x i16], by the number of bits specified by the second parameter, which is a 64-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srli_pi16 (__m64 __m, int __count)
 Right-shifts each 16-bit integer element of a 64-bit integer vector of [4 x i16] by the number of bits specified by a 32-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srl_pi32 (__m64 __m, __m64 __count)
 Right-shifts each 32-bit integer element of the first parameter, which is a 64-bit integer vector of [2 x i32], by the number of bits specified by the second parameter, which is a 64-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srli_pi32 (__m64 __m, int __count)
 Right-shifts each 32-bit integer element of a 64-bit integer vector of [2 x i32] by the number of bits specified by a 32-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srl_si64 (__m64 __m, __m64 __count)
 Right-shifts the first 64-bit integer parameter by the number of bits specified by the second 64-bit integer parameter.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srli_si64 (__m64 __m, int __count)
 Right-shifts the first parameter, which is a 64-bit integer, by the number of bits specified by the second parameter, which is a 32-bit integer.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_and_si64 (__m64 __m1, __m64 __m2)
 Performs a bitwise AND of two 64-bit integer vectors.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_andnot_si64 (__m64 __m1, __m64 __m2)
 Performs a bitwise NOT of the first 64-bit integer vector, and then performs a bitwise AND of the intermediate result and the second 64-bit integer vector.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_or_si64 (__m64 __m1, __m64 __m2)
 Performs a bitwise OR of two 64-bit integer vectors.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_xor_si64 (__m64 __m1, __m64 __m2)
 Performs a bitwise exclusive OR of two 64-bit integer vectors.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpeq_pi8 (__m64 __m1, __m64 __m2)
 Compares the 8-bit integer elements of two 64-bit integer vectors of [8 x i8] to determine if the element of the first vector is equal to the corresponding element of the second vector.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpeq_pi16 (__m64 __m1, __m64 __m2)
 Compares the 16-bit integer elements of two 64-bit integer vectors of [4 x i16] to determine if the element of the first vector is equal to the corresponding element of the second vector.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpeq_pi32 (__m64 __m1, __m64 __m2)
 Compares the 32-bit integer elements of two 64-bit integer vectors of [2 x i32] to determine if the element of the first vector is equal to the corresponding element of the second vector.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpgt_pi8 (__m64 __m1, __m64 __m2)
 Compares the 8-bit integer elements of two 64-bit integer vectors of [8 x i8] to determine if the element of the first vector is greater than the corresponding element of the second vector.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpgt_pi16 (__m64 __m1, __m64 __m2)
 Compares the 16-bit integer elements of two 64-bit integer vectors of [4 x i16] to determine if the element of the first vector is greater than the corresponding element of the second vector.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpgt_pi32 (__m64 __m1, __m64 __m2)
 Compares the 32-bit integer elements of two 64-bit integer vectors of [2 x i32] to determine if the element of the first vector is greater than the corresponding element of the second vector.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_setzero_si64 (void)
 Constructs a 64-bit integer vector initialized to zero.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set_pi32 (int __i1, int __i0)
 Constructs a 64-bit integer vector initialized with the specified 32-bit integer values.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set_pi16 (short __s3, short __s2, short __s1, short __s0)
 Constructs a 64-bit integer vector initialized with the specified 16-bit integer values.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set_pi8 (char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0)
 Constructs a 64-bit integer vector initialized with the specified 8-bit integer values.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set1_pi32 (int __i)
 Constructs a 64-bit integer vector of [2 x i32], with each of the 32-bit integer vector elements set to the specified 32-bit integer value.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set1_pi16 (short __w)
 Constructs a 64-bit integer vector of [4 x i16], with each of the 16-bit integer vector elements set to the specified 16-bit integer value.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set1_pi8 (char __b)
 Constructs a 64-bit integer vector of [8 x i8], with each of the 8-bit integer vector elements set to the specified 8-bit integer value.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_setr_pi32 (int __i0, int __i1)
 Constructs a 64-bit integer vector, initialized in reverse order with the specified 32-bit integer values.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_setr_pi16 (short __w0, short __w1, short __w2, short __w3)
 Constructs a 64-bit integer vector, initialized in reverse order with the specified 16-bit integer values.
 
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_setr_pi8 (char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, char __b6, char __b7)
 Constructs a 64-bit integer vector, initialized in reverse order with the specified 8-bit integer values.
 

Macro Definition Documentation

◆ __anyext128

#define __anyext128 (   x)
Value:
(__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \
1, -1, -1)

Definition at line 54 of file mmintrin.h.

◆ __DEFAULT_FN_ATTRS_SSE2

#define __DEFAULT_FN_ATTRS_SSE2
Value:
__attribute__((__always_inline__, __nodebug__, __target__("sse2"), \
__min_vector_width__(128)))
long long __m64 __attribute__((__vector_size__(8), __aligned__(8)))
Definition: mmintrin.h:17

Definition at line 47 of file mmintrin.h.

◆ __trunc64

#define __trunc64 (   x)     (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0)

Definition at line 52 of file mmintrin.h.

◆ _m_empty

#define _m_empty   _mm_empty

Definition at line 1555 of file mmintrin.h.

◆ _m_from_int

#define _m_from_int   _mm_cvtsi32_si64

Definition at line 1556 of file mmintrin.h.

◆ _m_from_int64

#define _m_from_int64   _mm_cvtsi64_m64

Definition at line 1557 of file mmintrin.h.

◆ _m_packssdw

#define _m_packssdw   _mm_packs_pi32

Definition at line 1561 of file mmintrin.h.

◆ _m_packsswb

#define _m_packsswb   _mm_packs_pi16

Definition at line 1560 of file mmintrin.h.

◆ _m_packuswb

#define _m_packuswb   _mm_packs_pu16

Definition at line 1562 of file mmintrin.h.

◆ _m_paddb

#define _m_paddb   _mm_add_pi8

Definition at line 1569 of file mmintrin.h.

◆ _m_paddd

#define _m_paddd   _mm_add_pi32

Definition at line 1571 of file mmintrin.h.

◆ _m_paddsb

#define _m_paddsb   _mm_adds_pi8

Definition at line 1572 of file mmintrin.h.

◆ _m_paddsw

#define _m_paddsw   _mm_adds_pi16

Definition at line 1573 of file mmintrin.h.

◆ _m_paddusb

#define _m_paddusb   _mm_adds_pu8

Definition at line 1574 of file mmintrin.h.

◆ _m_paddusw

#define _m_paddusw   _mm_adds_pu16

Definition at line 1575 of file mmintrin.h.

◆ _m_paddw

#define _m_paddw   _mm_add_pi16

Definition at line 1570 of file mmintrin.h.

◆ _m_pand

#define _m_pand   _mm_and_si64

Definition at line 1602 of file mmintrin.h.

◆ _m_pandn

#define _m_pandn   _mm_andnot_si64

Definition at line 1603 of file mmintrin.h.

◆ _m_pcmpeqb

#define _m_pcmpeqb   _mm_cmpeq_pi8

Definition at line 1606 of file mmintrin.h.

◆ _m_pcmpeqd

#define _m_pcmpeqd   _mm_cmpeq_pi32

Definition at line 1608 of file mmintrin.h.

◆ _m_pcmpeqw

#define _m_pcmpeqw   _mm_cmpeq_pi16

Definition at line 1607 of file mmintrin.h.

◆ _m_pcmpgtb

#define _m_pcmpgtb   _mm_cmpgt_pi8

Definition at line 1609 of file mmintrin.h.

◆ _m_pcmpgtd

#define _m_pcmpgtd   _mm_cmpgt_pi32

Definition at line 1611 of file mmintrin.h.

◆ _m_pcmpgtw

#define _m_pcmpgtw   _mm_cmpgt_pi16

Definition at line 1610 of file mmintrin.h.

◆ _m_pmaddwd

#define _m_pmaddwd   _mm_madd_pi16

Definition at line 1583 of file mmintrin.h.

◆ _m_pmulhw

#define _m_pmulhw   _mm_mulhi_pi16

Definition at line 1584 of file mmintrin.h.

◆ _m_pmullw

#define _m_pmullw   _mm_mullo_pi16

Definition at line 1585 of file mmintrin.h.

◆ _m_por

#define _m_por   _mm_or_si64

Definition at line 1604 of file mmintrin.h.

◆ _m_pslld

#define _m_pslld   _mm_sll_pi32

Definition at line 1588 of file mmintrin.h.

◆ _m_pslldi

#define _m_pslldi   _mm_slli_pi32

Definition at line 1589 of file mmintrin.h.

◆ _m_psllq

#define _m_psllq   _mm_sll_si64

Definition at line 1590 of file mmintrin.h.

◆ _m_psllqi

#define _m_psllqi   _mm_slli_si64

Definition at line 1591 of file mmintrin.h.

◆ _m_psllw

#define _m_psllw   _mm_sll_pi16

Definition at line 1586 of file mmintrin.h.

◆ _m_psllwi

#define _m_psllwi   _mm_slli_pi16

Definition at line 1587 of file mmintrin.h.

◆ _m_psrad

#define _m_psrad   _mm_sra_pi32

Definition at line 1594 of file mmintrin.h.

◆ _m_psradi

#define _m_psradi   _mm_srai_pi32

Definition at line 1595 of file mmintrin.h.

◆ _m_psraw

#define _m_psraw   _mm_sra_pi16

Definition at line 1592 of file mmintrin.h.

◆ _m_psrawi

#define _m_psrawi   _mm_srai_pi16

Definition at line 1593 of file mmintrin.h.

◆ _m_psrld

#define _m_psrld   _mm_srl_pi32

Definition at line 1598 of file mmintrin.h.

◆ _m_psrldi

#define _m_psrldi   _mm_srli_pi32

Definition at line 1599 of file mmintrin.h.

◆ _m_psrlq

#define _m_psrlq   _mm_srl_si64

Definition at line 1600 of file mmintrin.h.

◆ _m_psrlqi

#define _m_psrlqi   _mm_srli_si64

Definition at line 1601 of file mmintrin.h.

◆ _m_psrlw

#define _m_psrlw   _mm_srl_pi16

Definition at line 1596 of file mmintrin.h.

◆ _m_psrlwi

#define _m_psrlwi   _mm_srli_pi16

Definition at line 1597 of file mmintrin.h.

◆ _m_psubb

#define _m_psubb   _mm_sub_pi8

Definition at line 1576 of file mmintrin.h.

◆ _m_psubd

#define _m_psubd   _mm_sub_pi32

Definition at line 1578 of file mmintrin.h.

◆ _m_psubsb

#define _m_psubsb   _mm_subs_pi8

Definition at line 1579 of file mmintrin.h.

◆ _m_psubsw

#define _m_psubsw   _mm_subs_pi16

Definition at line 1580 of file mmintrin.h.

◆ _m_psubusb

#define _m_psubusb   _mm_subs_pu8

Definition at line 1581 of file mmintrin.h.

◆ _m_psubusw

#define _m_psubusw   _mm_subs_pu16

Definition at line 1582 of file mmintrin.h.

◆ _m_psubw

#define _m_psubw   _mm_sub_pi16

Definition at line 1577 of file mmintrin.h.

◆ _m_punpckhbw

#define _m_punpckhbw   _mm_unpackhi_pi8

Definition at line 1563 of file mmintrin.h.

◆ _m_punpckhdq

#define _m_punpckhdq   _mm_unpackhi_pi32

Definition at line 1565 of file mmintrin.h.

◆ _m_punpckhwd

#define _m_punpckhwd   _mm_unpackhi_pi16

Definition at line 1564 of file mmintrin.h.

◆ _m_punpcklbw

#define _m_punpcklbw   _mm_unpacklo_pi8

Definition at line 1566 of file mmintrin.h.

◆ _m_punpckldq

#define _m_punpckldq   _mm_unpacklo_pi32

Definition at line 1568 of file mmintrin.h.

◆ _m_punpcklwd

#define _m_punpcklwd   _mm_unpacklo_pi16

Definition at line 1567 of file mmintrin.h.

◆ _m_pxor

#define _m_pxor   _mm_xor_si64

Definition at line 1605 of file mmintrin.h.

◆ _m_to_int

#define _m_to_int   _mm_cvtsi64_si32

Definition at line 1558 of file mmintrin.h.

◆ _m_to_int64

#define _m_to_int64   _mm_cvtm64_si64

Definition at line 1559 of file mmintrin.h.

Typedef Documentation

◆ __attribute__

typedef char __v16qi __attribute__((__vector_size__(16)))

Definition at line 17 of file mmintrin.h.

Function Documentation

◆ __attribute__()

static __inline__ void __attribute__ ( (__always_inline__, __nodebug__, __target__("mmx,no-evex512"))  )
static

Clears the MMX state by setting the state of the x87 stack registers to empty.

This intrinsic corresponds to the EMMS instruction.

Definition at line 65 of file mmintrin.h.

◆ _mm_add_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Adds each 16-bit integer element of the first 64-bit integer vector of [4 x i16] to the corresponding 16-bit integer element of the second 64-bit integer vector of [4 x i16].

The lower 16 bits of the results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PADDW instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16].
__m2A 64-bit integer vector of [4 x i16].
Returns
A 64-bit integer vector of [4 x i16] containing the sums of both parameters.

Definition at line 398 of file mmintrin.h.

◆ _mm_add_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi32 ( __m64  __m1,
__m64  __m2 
)
static

Adds each 32-bit integer element of the first 64-bit integer vector of [2 x i32] to the corresponding 32-bit integer element of the second 64-bit integer vector of [2 x i32].

The lower 32 bits of the results are packed into a 64-bit integer vector of [2 x i32].

This intrinsic corresponds to the PADDD instruction.

Parameters
__m1A 64-bit integer vector of [2 x i32].
__m2A 64-bit integer vector of [2 x i32].
Returns
A 64-bit integer vector of [2 x i32] containing the sums of both parameters.

Definition at line 419 of file mmintrin.h.

◆ _mm_add_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi8 ( __m64  __m1,
__m64  __m2 
)
static

Adds each 8-bit integer element of the first 64-bit integer vector of [8 x i8] to the corresponding 8-bit integer element of the second 64-bit integer vector of [8 x i8].

The lower 8 bits of the results are packed into a 64-bit integer vector of [8 x i8].

This intrinsic corresponds to the PADDB instruction.

Parameters
__m1A 64-bit integer vector of [8 x i8].
__m2A 64-bit integer vector of [8 x i8].
Returns
A 64-bit integer vector of [8 x i8] containing the sums of both parameters.

Definition at line 377 of file mmintrin.h.

◆ _mm_adds_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Adds, with saturation, each 16-bit signed integer element of the first 64-bit integer vector of [4 x i16] to the corresponding 16-bit signed integer element of the second 64-bit integer vector of [4 x i16].

Positive sums greater than 0x7FFF are saturated to 0x7FFF. Negative sums less than 0x8000 are saturated to 0x8000. The results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PADDSW instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16].
__m2A 64-bit integer vector of [4 x i16].
Returns
A 64-bit integer vector of [4 x i16] containing the saturated sums of both parameters.

Definition at line 467 of file mmintrin.h.

◆ _mm_adds_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pi8 ( __m64  __m1,
__m64  __m2 
)
static

Adds, with saturation, each 8-bit signed integer element of the first 64-bit integer vector of [8 x i8] to the corresponding 8-bit signed integer element of the second 64-bit integer vector of [8 x i8].

Positive sums greater than 0x7F are saturated to 0x7F. Negative sums less than 0x80 are saturated to 0x80. The results are packed into a 64-bit integer vector of [8 x i8].

This intrinsic corresponds to the PADDSB instruction.

Parameters
__m1A 64-bit integer vector of [8 x i8].
__m2A 64-bit integer vector of [8 x i8].
Returns
A 64-bit integer vector of [8 x i8] containing the saturated sums of both parameters.

Definition at line 443 of file mmintrin.h.

◆ _mm_adds_pu16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pu16 ( __m64  __m1,
__m64  __m2 
)
static

Adds, with saturation, each 16-bit unsigned integer element of the first 64-bit integer vector of [4 x i16] to the corresponding 16-bit unsigned integer element of the second 64-bit integer vector of [4 x i16].

Sums greater than 0xFFFF are saturated to 0xFFFF. The results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PADDUSW instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16].
__m2A 64-bit integer vector of [4 x i16].
Returns
A 64-bit integer vector of [4 x i16] containing the saturated unsigned sums of both parameters.

Definition at line 513 of file mmintrin.h.

◆ _mm_adds_pu8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pu8 ( __m64  __m1,
__m64  __m2 
)
static

Adds, with saturation, each 8-bit unsigned integer element of the first 64-bit integer vector of [8 x i8] to the corresponding 8-bit unsigned integer element of the second 64-bit integer vector of [8 x i8].

Sums greater than 0xFF are saturated to 0xFF. The results are packed into a 64-bit integer vector of [8 x i8].

This intrinsic corresponds to the PADDUSB instruction.

Parameters
__m1A 64-bit integer vector of [8 x i8].
__m2A 64-bit integer vector of [8 x i8].
Returns
A 64-bit integer vector of [8 x i8] containing the saturated unsigned sums of both parameters.

Definition at line 490 of file mmintrin.h.

◆ _mm_and_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_and_si64 ( __m64  __m1,
__m64  __m2 
)
static

Performs a bitwise AND of two 64-bit integer vectors.

This intrinsic corresponds to the PAND instruction.

Parameters
__m1A 64-bit integer vector.
__m2A 64-bit integer vector.
Returns
A 64-bit integer vector containing the bitwise AND of both parameters.

Definition at line 1132 of file mmintrin.h.

◆ _mm_andnot_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_andnot_si64 ( __m64  __m1,
__m64  __m2 
)
static

Performs a bitwise NOT of the first 64-bit integer vector, and then performs a bitwise AND of the intermediate result and the second 64-bit integer vector.

This intrinsic corresponds to the PANDN instruction.

Parameters
__m1A 64-bit integer vector. The one's complement of this parameter is used in the bitwise AND.
__m2A 64-bit integer vector.
Returns
A 64-bit integer vector containing the bitwise AND of the second parameter and the one's complement of the first parameter.

Definition at line 1153 of file mmintrin.h.

◆ _mm_cmpeq_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpeq_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Compares the 16-bit integer elements of two 64-bit integer vectors of [4 x i16] to determine if the element of the first vector is equal to the corresponding element of the second vector.

Each comparison returns 0 for false, 0xFFFF for true.

This intrinsic corresponds to the PCMPEQW instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16].
__m2A 64-bit integer vector of [4 x i16].
Returns
A 64-bit integer vector of [4 x i16] containing the comparison results.

Definition at line 1233 of file mmintrin.h.

◆ _mm_cmpeq_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpeq_pi32 ( __m64  __m1,
__m64  __m2 
)
static

Compares the 32-bit integer elements of two 64-bit integer vectors of [2 x i32] to determine if the element of the first vector is equal to the corresponding element of the second vector.

Each comparison returns 0 for false, 0xFFFFFFFF for true.

This intrinsic corresponds to the PCMPEQD instruction.

Parameters
__m1A 64-bit integer vector of [2 x i32].
__m2A 64-bit integer vector of [2 x i32].
Returns
A 64-bit integer vector of [2 x i32] containing the comparison results.

Definition at line 1255 of file mmintrin.h.

◆ _mm_cmpeq_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpeq_pi8 ( __m64  __m1,
__m64  __m2 
)
static

Compares the 8-bit integer elements of two 64-bit integer vectors of [8 x i8] to determine if the element of the first vector is equal to the corresponding element of the second vector.

Each comparison returns 0 for false, 0xFF for true.

This intrinsic corresponds to the PCMPEQB instruction.

Parameters
__m1A 64-bit integer vector of [8 x i8].
__m2A 64-bit integer vector of [8 x i8].
Returns
A 64-bit integer vector of [8 x i8] containing the comparison results.

Definition at line 1211 of file mmintrin.h.

◆ _mm_cmpgt_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpgt_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Compares the 16-bit integer elements of two 64-bit integer vectors of [4 x i16] to determine if the element of the first vector is greater than the corresponding element of the second vector.

Each comparison returns 0 for false, 0xFFFF for true.

This intrinsic corresponds to the PCMPGTW instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16].
__m2A 64-bit integer vector of [4 x i16].
Returns
A 64-bit integer vector of [4 x i16] containing the comparison results.

Definition at line 1301 of file mmintrin.h.

◆ _mm_cmpgt_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpgt_pi32 ( __m64  __m1,
__m64  __m2 
)
static

Compares the 32-bit integer elements of two 64-bit integer vectors of [2 x i32] to determine if the element of the first vector is greater than the corresponding element of the second vector.

Each comparison returns 0 for false, 0xFFFFFFFF for true.

This intrinsic corresponds to the PCMPGTD instruction.

Parameters
__m1A 64-bit integer vector of [2 x i32].
__m2A 64-bit integer vector of [2 x i32].
Returns
A 64-bit integer vector of [2 x i32] containing the comparison results.

Definition at line 1323 of file mmintrin.h.

◆ _mm_cmpgt_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpgt_pi8 ( __m64  __m1,
__m64  __m2 
)
static

Compares the 8-bit integer elements of two 64-bit integer vectors of [8 x i8] to determine if the element of the first vector is greater than the corresponding element of the second vector.

Each comparison returns 0 for false, 0xFF for true.

This intrinsic corresponds to the PCMPGTB instruction.

Parameters
__m1A 64-bit integer vector of [8 x i8].
__m2A 64-bit integer vector of [8 x i8].
Returns
A 64-bit integer vector of [8 x i8] containing the comparison results.

Definition at line 1277 of file mmintrin.h.

◆ _mm_cvtm64_si64()

static __inline__ long long __DEFAULT_FN_ATTRS_SSE2 _mm_cvtm64_si64 ( __m64  __m)
static

Casts a 64-bit integer vector into a 64-bit signed integer value.

This intrinsic corresponds to the MOVQ instruction.

Parameters
__mA 64-bit integer vector.
Returns
A 64-bit signed integer containing the same bitwise pattern as the parameter.

Definition at line 132 of file mmintrin.h.

◆ _mm_cvtsi32_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtsi32_si64 ( int  __i)
static

Constructs a 64-bit integer vector, setting the lower 32 bits to the value of the 32-bit integer parameter and setting the upper 32 bits to 0.

This intrinsic corresponds to the MOVD instruction.

Parameters
__iA 32-bit integer value.
Returns
A 64-bit integer vector. The lower 32 bits contain the value of the parameter. The upper 32 bits are set to 0.

Definition at line 83 of file mmintrin.h.

◆ _mm_cvtsi64_m64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtsi64_m64 ( long long  __i)
static

Casts a 64-bit signed integer value into a 64-bit integer vector.

This intrinsic corresponds to the MOVQ instruction.

Parameters
__iA 64-bit signed integer.
Returns
A 64-bit integer vector containing the same bitwise pattern as the parameter.

Definition at line 116 of file mmintrin.h.

◆ _mm_cvtsi64_si32()

static __inline__ int __DEFAULT_FN_ATTRS_SSE2 _mm_cvtsi64_si32 ( __m64  __m)
static

Returns the lower 32 bits of a 64-bit integer vector as a 32-bit signed integer.

This intrinsic corresponds to the MOVD instruction.

Parameters
__mA 64-bit integer vector.
Returns
A 32-bit signed integer value containing the lower 32 bits of the parameter.

Definition at line 100 of file mmintrin.h.

◆ _mm_madd_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_madd_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Multiplies each 16-bit signed integer element of the first 64-bit integer vector of [4 x i16] by the corresponding 16-bit signed integer element of the second 64-bit integer vector of [4 x i16] and get four 32-bit products.

Adds adjacent pairs of products to get two 32-bit sums. The lower 32 bits of these two sums are packed into a 64-bit integer vector of [2 x i32].

For example, bits [15:0] of both parameters are multiplied, bits [31:16] of both parameters are multiplied, and the sum of both results is written to bits [31:0] of the result.

This intrinsic corresponds to the PMADDWD instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16].
__m2A 64-bit integer vector of [4 x i16].
Returns
A 64-bit integer vector of [2 x i32] containing the sums of products of both parameters.

Definition at line 699 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_mulhi_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_mulhi_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Multiplies each 16-bit signed integer element of the first 64-bit integer vector of [4 x i16] by the corresponding 16-bit signed integer element of the second 64-bit integer vector of [4 x i16].

Packs the upper 16 bits of the 32-bit products into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PMULHW instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16].
__m2A 64-bit integer vector of [4 x i16].
Returns
A 64-bit integer vector of [4 x i16] containing the upper 16 bits of the products of both parameters.

Definition at line 721 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_mullo_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_mullo_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Multiplies each 16-bit signed integer element of the first 64-bit integer vector of [4 x i16] by the corresponding 16-bit signed integer element of the second 64-bit integer vector of [4 x i16].

Packs the lower 16 bits of the 32-bit products into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PMULLW instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16].
__m2A 64-bit integer vector of [4 x i16].
Returns
A 64-bit integer vector of [4 x i16] containing the lower 16 bits of the products of both parameters.

Definition at line 743 of file mmintrin.h.

◆ _mm_or_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_or_si64 ( __m64  __m1,
__m64  __m2 
)
static

Performs a bitwise OR of two 64-bit integer vectors.

This intrinsic corresponds to the POR instruction.

Parameters
__m1A 64-bit integer vector.
__m2A 64-bit integer vector.
Returns
A 64-bit integer vector containing the bitwise OR of both parameters.

Definition at line 1171 of file mmintrin.h.

◆ _mm_packs_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_packs_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Converts, with saturation, 16-bit signed integers from both 64-bit integer vector parameters of [4 x i16] into 8-bit signed integer values, and constructs a 64-bit integer vector of [8 x i8] as the result.

Positive values greater than 0x7F are saturated to 0x7F. Negative values less than 0x80 are saturated to 0x80.

This intrinsic corresponds to the PACKSSWB instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are written to the lower 32 bits of the result.
__m2A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are written to the upper 32 bits of the result.
Returns
A 64-bit integer vector of [8 x i8] containing the converted values.

Definition at line 157 of file mmintrin.h.

References __trunc64.

Referenced by _mm_cvtps_pi8().

◆ _mm_packs_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_packs_pi32 ( __m64  __m1,
__m64  __m2 
)
static

Converts, with saturation, 32-bit signed integers from both 64-bit integer vector parameters of [2 x i32] into 16-bit signed integer values, and constructs a 64-bit integer vector of [4 x i16] as the result.

Positive values greater than 0x7FFF are saturated to 0x7FFF. Negative values less than 0x8000 are saturated to 0x8000.

This intrinsic corresponds to the PACKSSDW instruction.

Parameters
__m1A 64-bit integer vector of [2 x i32]. The converted [2 x i16] values are written to the lower 32 bits of the result.
__m2A 64-bit integer vector of [2 x i32]. The converted [2 x i16] values are written to the upper 32 bits of the result.
Returns
A 64-bit integer vector of [4 x i16] containing the converted values.

Definition at line 183 of file mmintrin.h.

References __trunc64.

◆ _mm_packs_pu16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_packs_pu16 ( __m64  __m1,
__m64  __m2 
)
static

Converts, with saturation, 16-bit signed integers from both 64-bit integer vector parameters of [4 x i16] into 8-bit unsigned integer values, and constructs a 64-bit integer vector of [8 x i8] as the result.

Values greater than 0xFF are saturated to 0xFF. Values less than 0 are saturated to 0.

This intrinsic corresponds to the PACKUSWB instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are written to the lower 32 bits of the result.
__m2A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are written to the upper 32 bits of the result.
Returns
A 64-bit integer vector of [8 x i8] containing the converted values.

Definition at line 209 of file mmintrin.h.

References __trunc64.

◆ _mm_set1_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set1_pi16 ( short  __w)
static

Constructs a 64-bit integer vector of [4 x i16], with each of the 16-bit integer vector elements set to the specified 16-bit integer value.

This intrinsic is a utility function and does not correspond to a specific instruction.

Parameters
__wA 16-bit integer value used to initialize each vector element of the result.
Returns
An initialized 64-bit integer vector of [4 x i16].

Definition at line 1451 of file mmintrin.h.

References _mm_set_pi16().

◆ _mm_set1_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set1_pi32 ( int  __i)
static

Constructs a 64-bit integer vector of [2 x i32], with each of the 32-bit integer vector elements set to the specified 32-bit integer value.

This intrinsic is a utility function and does not correspond to a specific instruction.

Parameters
__iA 32-bit integer value used to initialize each vector element of the result.
Returns
An initialized 64-bit integer vector of [2 x i32].

Definition at line 1432 of file mmintrin.h.

References _mm_set_pi32().

◆ _mm_set1_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set1_pi8 ( char  __b)
static

Constructs a 64-bit integer vector of [8 x i8], with each of the 8-bit integer vector elements set to the specified 8-bit integer value.

This intrinsic is a utility function and does not correspond to a specific instruction.

Parameters
__bAn 8-bit integer value used to initialize each vector element of the result.
Returns
An initialized 64-bit integer vector of [8 x i8].

Definition at line 1469 of file mmintrin.h.

References __b, and _mm_set_pi8().

◆ _mm_set_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set_pi16 ( short  __s3,
short  __s2,
short  __s1,
short  __s0 
)
static

Constructs a 64-bit integer vector initialized with the specified 16-bit integer values.

This intrinsic is a utility function and does not correspond to a specific instruction.

Parameters
__s3A 16-bit integer value used to initialize bits [63:48] of the result.
__s2A 16-bit integer value used to initialize bits [47:32] of the result.
__s1A 16-bit integer value used to initialize bits [31:16] of the result.
__s0A 16-bit integer value used to initialize bits [15:0] of the result.
Returns
An initialized 64-bit integer vector.

Definition at line 1380 of file mmintrin.h.

Referenced by _mm_set1_pi16(), and _mm_setr_pi16().

◆ _mm_set_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set_pi32 ( int  __i1,
int  __i0 
)
static

Constructs a 64-bit integer vector initialized with the specified 32-bit integer values.

This intrinsic is a utility function and does not correspond to a specific instruction.

Parameters
__i1A 32-bit integer value used to initialize the upper 32 bits of the result.
__i0A 32-bit integer value used to initialize the lower 32 bits of the result.
Returns
An initialized 64-bit integer vector.

Definition at line 1357 of file mmintrin.h.

Referenced by _mm_set1_pi32(), and _mm_setr_pi32().

◆ _mm_set_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_set_pi8 ( char  __b7,
char  __b6,
char  __b5,
char  __b4,
char  __b3,
char  __b2,
char  __b1,
char  __b0 
)
static

Constructs a 64-bit integer vector initialized with the specified 8-bit integer values.

This intrinsic is a utility function and does not correspond to a specific instruction.

Parameters
__b7An 8-bit integer value used to initialize bits [63:56] of the result.
__b6An 8-bit integer value used to initialize bits [55:48] of the result.
__b5An 8-bit integer value used to initialize bits [47:40] of the result.
__b4An 8-bit integer value used to initialize bits [39:32] of the result.
__b3An 8-bit integer value used to initialize bits [31:24] of the result.
__b2An 8-bit integer value used to initialize bits [23:16] of the result.
__b1An 8-bit integer value used to initialize bits [15:8] of the result.
__b0An 8-bit integer value used to initialize bits [7:0] of the result.
Returns
An initialized 64-bit integer vector.

Definition at line 1411 of file mmintrin.h.

Referenced by _mm_set1_pi8(), and _mm_setr_pi8().

◆ _mm_setr_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_setr_pi16 ( short  __w0,
short  __w1,
short  __w2,
short  __w3 
)
static

Constructs a 64-bit integer vector, initialized in reverse order with the specified 16-bit integer values.

This intrinsic is a utility function and does not correspond to a specific instruction.

Parameters
__w0A 16-bit integer value used to initialize bits [15:0] of the result.
__w1A 16-bit integer value used to initialize bits [31:16] of the result.
__w2A 16-bit integer value used to initialize bits [47:32] of the result.
__w3A 16-bit integer value used to initialize bits [63:48] of the result.
Returns
An initialized 64-bit integer vector.

Definition at line 1513 of file mmintrin.h.

References _mm_set_pi16().

◆ _mm_setr_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_setr_pi32 ( int  __i0,
int  __i1 
)
static

Constructs a 64-bit integer vector, initialized in reverse order with the specified 32-bit integer values.

This intrinsic is a utility function and does not correspond to a specific instruction.

Parameters
__i0A 32-bit integer value used to initialize the lower 32 bits of the result.
__i1A 32-bit integer value used to initialize the upper 32 bits of the result.
Returns
An initialized 64-bit integer vector.

Definition at line 1490 of file mmintrin.h.

References _mm_set_pi32().

◆ _mm_setr_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_setr_pi8 ( char  __b0,
char  __b1,
char  __b2,
char  __b3,
char  __b4,
char  __b5,
char  __b6,
char  __b7 
)
static

Constructs a 64-bit integer vector, initialized in reverse order with the specified 8-bit integer values.

This intrinsic is a utility function and does not correspond to a specific instruction.

Parameters
__b0An 8-bit integer value used to initialize bits [7:0] of the result.
__b1An 8-bit integer value used to initialize bits [15:8] of the result.
__b2An 8-bit integer value used to initialize bits [23:16] of the result.
__b3An 8-bit integer value used to initialize bits [31:24] of the result.
__b4An 8-bit integer value used to initialize bits [39:32] of the result.
__b5An 8-bit integer value used to initialize bits [47:40] of the result.
__b6An 8-bit integer value used to initialize bits [55:48] of the result.
__b7An 8-bit integer value used to initialize bits [63:56] of the result.
Returns
An initialized 64-bit integer vector.

Definition at line 1544 of file mmintrin.h.

References _mm_set_pi8().

◆ _mm_setzero_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_setzero_si64 ( void  )
static

Constructs a 64-bit integer vector initialized to zero.

This intrinsic corresponds to the PXOR instruction.

Returns
An initialized 64-bit integer vector with all elements set to zero.

Definition at line 1336 of file mmintrin.h.

Referenced by _mm_cvtps_pi8().

◆ _mm_sll_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sll_pi16 ( __m64  __m,
__m64  __count 
)
static

Left-shifts each 16-bit signed integer element of the first parameter, which is a 64-bit integer vector of [4 x i16], by the number of bits specified by the second parameter, which is a 64-bit integer.

The lower 16 bits of the results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PSLLW instruction.

Parameters
__mA 64-bit integer vector of [4 x i16].
__countA 64-bit integer vector interpreted as a single 64-bit integer.
Returns
A 64-bit integer vector of [4 x i16] containing the left-shifted values. If __count is greater or equal to 16, the result is set to all 0.

Definition at line 766 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_sll_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sll_pi32 ( __m64  __m,
__m64  __count 
)
static

Left-shifts each 32-bit signed integer element of the first parameter, which is a 64-bit integer vector of [2 x i32], by the number of bits specified by the second parameter, which is a 64-bit integer.

The lower 32 bits of the results are packed into a 64-bit integer vector of [2 x i32].

This intrinsic corresponds to the PSLLD instruction.

Parameters
__mA 64-bit integer vector of [2 x i32].
__countA 64-bit integer vector interpreted as a single 64-bit integer.
Returns
A 64-bit integer vector of [2 x i32] containing the left-shifted values. If __count is greater or equal to 32, the result is set to all 0.

Definition at line 813 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_sll_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sll_si64 ( __m64  __m,
__m64  __count 
)
static

Left-shifts the first 64-bit integer parameter by the number of bits specified by the second 64-bit integer parameter.

The lower 64 bits of result are returned.

This intrinsic corresponds to the PSLLQ instruction.

Parameters
__mA 64-bit integer vector interpreted as a single 64-bit integer.
__countA 64-bit integer vector interpreted as a single 64-bit integer.
Returns
A 64-bit integer vector containing the left-shifted value. If __count is greater or equal to 64, the result is set to 0.

Definition at line 857 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_slli_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_slli_pi16 ( __m64  __m,
int  __count 
)
static

Left-shifts each 16-bit signed integer element of a 64-bit integer vector of [4 x i16] by the number of bits specified by a 32-bit integer.

The lower 16 bits of the results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PSLLW instruction.

Parameters
__mA 64-bit integer vector of [4 x i16].
__countA 32-bit integer value.
Returns
A 64-bit integer vector of [4 x i16] containing the left-shifted values. If __count is greater or equal to 16, the result is set to all 0.

Definition at line 789 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_slli_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_slli_pi32 ( __m64  __m,
int  __count 
)
static

Left-shifts each 32-bit signed integer element of a 64-bit integer vector of [2 x i32] by the number of bits specified by a 32-bit integer.

The lower 32 bits of the results are packed into a 64-bit integer vector of [2 x i32].

This intrinsic corresponds to the PSLLD instruction.

Parameters
__mA 64-bit integer vector of [2 x i32].
__countA 32-bit integer value.
Returns
A 64-bit integer vector of [2 x i32] containing the left-shifted values. If __count is greater or equal to 32, the result is set to all 0.

Definition at line 836 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_slli_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_slli_si64 ( __m64  __m,
int  __count 
)
static

Left-shifts the first parameter, which is a 64-bit integer, by the number of bits specified by the second parameter, which is a 32-bit integer.

The lower 64 bits of result are returned.

This intrinsic corresponds to the PSLLQ instruction.

Parameters
__mA 64-bit integer vector interpreted as a single 64-bit integer.
__countA 32-bit integer value.
Returns
A 64-bit integer vector containing the left-shifted value. If __count is greater or equal to 64, the result is set to 0.

Definition at line 878 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_sra_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sra_pi16 ( __m64  __m,
__m64  __count 
)
static

Right-shifts each 16-bit integer element of the first parameter, which is a 64-bit integer vector of [4 x i16], by the number of bits specified by the second parameter, which is a 64-bit integer.

High-order bits are filled with the sign bit of the initial value of each 16-bit element. The 16-bit results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PSRAW instruction.

Parameters
__mA 64-bit integer vector of [4 x i16].
__countA 64-bit integer vector interpreted as a single 64-bit integer.
Returns
A 64-bit integer vector of [4 x i16] containing the right-shifted values.

Definition at line 903 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_sra_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sra_pi32 ( __m64  __m,
__m64  __count 
)
static

Right-shifts each 32-bit integer element of the first parameter, which is a 64-bit integer vector of [2 x i32], by the number of bits specified by the second parameter, which is a 64-bit integer.

High-order bits are filled with the sign bit of the initial value of each 32-bit element. The 32-bit results are packed into a 64-bit integer vector of [2 x i32].

This intrinsic corresponds to the PSRAD instruction.

Parameters
__mA 64-bit integer vector of [2 x i32].
__countA 64-bit integer vector interpreted as a single 64-bit integer.
Returns
A 64-bit integer vector of [2 x i32] containing the right-shifted values.

Definition at line 952 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_srai_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srai_pi16 ( __m64  __m,
int  __count 
)
static

Right-shifts each 16-bit integer element of a 64-bit integer vector of [4 x i16] by the number of bits specified by a 32-bit integer.

High-order bits are filled with the sign bit of the initial value of each 16-bit element. The 16-bit results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PSRAW instruction.

Parameters
__mA 64-bit integer vector of [4 x i16].
__countA 32-bit integer value.
Returns
A 64-bit integer vector of [4 x i16] containing the right-shifted values.

Definition at line 927 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_srai_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srai_pi32 ( __m64  __m,
int  __count 
)
static

Right-shifts each 32-bit integer element of a 64-bit integer vector of [2 x i32] by the number of bits specified by a 32-bit integer.

High-order bits are filled with the sign bit of the initial value of each 32-bit element. The 32-bit results are packed into a 64-bit integer vector of [2 x i32].

This intrinsic corresponds to the PSRAD instruction.

Parameters
__mA 64-bit integer vector of [2 x i32].
__countA 32-bit integer value.
Returns
A 64-bit integer vector of [2 x i32] containing the right-shifted values.

Definition at line 976 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_srl_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srl_pi16 ( __m64  __m,
__m64  __count 
)
static

Right-shifts each 16-bit integer element of the first parameter, which is a 64-bit integer vector of [4 x i16], by the number of bits specified by the second parameter, which is a 64-bit integer.

High-order bits are cleared. The 16-bit results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PSRLW instruction.

Parameters
__mA 64-bit integer vector of [4 x i16].
__countA 64-bit integer vector interpreted as a single 64-bit integer.
Returns
A 64-bit integer vector of [4 x i16] containing the right-shifted values.

Definition at line 1000 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_srl_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srl_pi32 ( __m64  __m,
__m64  __count 
)
static

Right-shifts each 32-bit integer element of the first parameter, which is a 64-bit integer vector of [2 x i32], by the number of bits specified by the second parameter, which is a 64-bit integer.

High-order bits are cleared. The 32-bit results are packed into a 64-bit integer vector of [2 x i32].

This intrinsic corresponds to the PSRLD instruction.

Parameters
__mA 64-bit integer vector of [2 x i32].
__countA 64-bit integer vector interpreted as a single 64-bit integer.
Returns
A 64-bit integer vector of [2 x i32] containing the right-shifted values.

Definition at line 1047 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_srl_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srl_si64 ( __m64  __m,
__m64  __count 
)
static

Right-shifts the first 64-bit integer parameter by the number of bits specified by the second 64-bit integer parameter.

High-order bits are cleared.

This intrinsic corresponds to the PSRLQ instruction.

Parameters
__mA 64-bit integer vector interpreted as a single 64-bit integer.
__countA 64-bit integer vector interpreted as a single 64-bit integer.
Returns
A 64-bit integer vector containing the right-shifted value.

Definition at line 1091 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_srli_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srli_pi16 ( __m64  __m,
int  __count 
)
static

Right-shifts each 16-bit integer element of a 64-bit integer vector of [4 x i16] by the number of bits specified by a 32-bit integer.

High-order bits are cleared. The 16-bit results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PSRLW instruction.

Parameters
__mA 64-bit integer vector of [4 x i16].
__countA 32-bit integer value.
Returns
A 64-bit integer vector of [4 x i16] containing the right-shifted values.

Definition at line 1023 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_srli_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srli_pi32 ( __m64  __m,
int  __count 
)
static

Right-shifts each 32-bit integer element of a 64-bit integer vector of [2 x i32] by the number of bits specified by a 32-bit integer.

High-order bits are cleared. The 32-bit results are packed into a 64-bit integer vector of [2 x i32].

This intrinsic corresponds to the PSRLD instruction.

Parameters
__mA 64-bit integer vector of [2 x i32].
__countA 32-bit integer value.
Returns
A 64-bit integer vector of [2 x i32] containing the right-shifted values.

Definition at line 1070 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_srli_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srli_si64 ( __m64  __m,
int  __count 
)
static

Right-shifts the first parameter, which is a 64-bit integer, by the number of bits specified by the second parameter, which is a 32-bit integer.

High-order bits are cleared.

This intrinsic corresponds to the PSRLQ instruction.

Parameters
__mA 64-bit integer vector interpreted as a single 64-bit integer.
__countA 32-bit integer value.
Returns
A 64-bit integer vector containing the right-shifted value.

Definition at line 1113 of file mmintrin.h.

References __anyext128, and __trunc64.

◆ _mm_sub_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sub_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Subtracts each 16-bit integer element of the second 64-bit integer vector of [4 x i16] from the corresponding 16-bit integer element of the first 64-bit integer vector of [4 x i16].

The lower 16 bits of the results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PSUBW instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16] containing the minuends.
__m2A 64-bit integer vector of [4 x i16] containing the subtrahends.
Returns
A 64-bit integer vector of [4 x i16] containing the differences of both parameters.

Definition at line 555 of file mmintrin.h.

◆ _mm_sub_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sub_pi32 ( __m64  __m1,
__m64  __m2 
)
static

Subtracts each 32-bit integer element of the second 64-bit integer vector of [2 x i32] from the corresponding 32-bit integer element of the first 64-bit integer vector of [2 x i32].

The lower 32 bits of the results are packed into a 64-bit integer vector of [2 x i32].

This intrinsic corresponds to the PSUBD instruction.

Parameters
__m1A 64-bit integer vector of [2 x i32] containing the minuends.
__m2A 64-bit integer vector of [2 x i32] containing the subtrahends.
Returns
A 64-bit integer vector of [2 x i32] containing the differences of both parameters.

Definition at line 576 of file mmintrin.h.

◆ _mm_sub_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sub_pi8 ( __m64  __m1,
__m64  __m2 
)
static

Subtracts each 8-bit integer element of the second 64-bit integer vector of [8 x i8] from the corresponding 8-bit integer element of the first 64-bit integer vector of [8 x i8].

The lower 8 bits of the results are packed into a 64-bit integer vector of [8 x i8].

This intrinsic corresponds to the PSUBB instruction.

Parameters
__m1A 64-bit integer vector of [8 x i8] containing the minuends.
__m2A 64-bit integer vector of [8 x i8] containing the subtrahends.
Returns
A 64-bit integer vector of [8 x i8] containing the differences of both parameters.

Definition at line 534 of file mmintrin.h.

◆ _mm_subs_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Subtracts, with saturation, each 16-bit signed integer element of the second 64-bit integer vector of [4 x i16] from the corresponding 16-bit signed integer element of the first 64-bit integer vector of [4 x i16].

Positive results greater than 0x7FFF are saturated to 0x7FFF. Negative results less than 0x8000 are saturated to 0x8000. The results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PSUBSW instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16] containing the minuends.
__m2A 64-bit integer vector of [4 x i16] containing the subtrahends.
Returns
A 64-bit integer vector of [4 x i16] containing the saturated differences of both parameters.

Definition at line 624 of file mmintrin.h.

◆ _mm_subs_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pi8 ( __m64  __m1,
__m64  __m2 
)
static

Subtracts, with saturation, each 8-bit signed integer element of the second 64-bit integer vector of [8 x i8] from the corresponding 8-bit signed integer element of the first 64-bit integer vector of [8 x i8].

Positive results greater than 0x7F are saturated to 0x7F. Negative results less than 0x80 are saturated to 0x80. The results are packed into a 64-bit integer vector of [8 x i8].

This intrinsic corresponds to the PSUBSB instruction.

Parameters
__m1A 64-bit integer vector of [8 x i8] containing the minuends.
__m2A 64-bit integer vector of [8 x i8] containing the subtrahends.
Returns
A 64-bit integer vector of [8 x i8] containing the saturated differences of both parameters.

Definition at line 600 of file mmintrin.h.

◆ _mm_subs_pu16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pu16 ( __m64  __m1,
__m64  __m2 
)
static

Subtracts each 16-bit unsigned integer element of the second 64-bit integer vector of [4 x i16] from the corresponding 16-bit unsigned integer element of the first 64-bit integer vector of [4 x i16].

If an element of the first vector is less than the corresponding element of the second vector, the result is saturated to 0. The results are packed into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PSUBUSW instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16] containing the minuends.
__m2A 64-bit integer vector of [4 x i16] containing the subtrahends.
Returns
A 64-bit integer vector of [4 x i16] containing the saturated differences of both parameters.

Definition at line 672 of file mmintrin.h.

◆ _mm_subs_pu8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pu8 ( __m64  __m1,
__m64  __m2 
)
static

Subtracts each 8-bit unsigned integer element of the second 64-bit integer vector of [8 x i8] from the corresponding 8-bit unsigned integer element of the first 64-bit integer vector of [8 x i8].

If an element of the first vector is less than the corresponding element of the second vector, the result is saturated to 0. The results are packed into a 64-bit integer vector of [8 x i8].

This intrinsic corresponds to the PSUBUSB instruction.

Parameters
__m1A 64-bit integer vector of [8 x i8] containing the minuends.
__m2A 64-bit integer vector of [8 x i8] containing the subtrahends.
Returns
A 64-bit integer vector of [8 x i8] containing the saturated differences of both parameters.

Definition at line 648 of file mmintrin.h.

◆ _mm_unpackhi_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpackhi_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Unpacks the upper 32 bits from two 64-bit integer vectors of [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PUNPCKHWD instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16]. Bits [47:32] are written to bits [15:0] of the result.
Bits [63:48] are written to bits [47:32] of the result.
__m2A 64-bit integer vector of [4 x i16]. Bits [47:32] are written to bits [31:16] of the result.
Bits [63:48] are written to bits [63:48] of the result.
Returns
A 64-bit integer vector of [4 x i16] containing the interleaved values.

Definition at line 261 of file mmintrin.h.

◆ _mm_unpackhi_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpackhi_pi32 ( __m64  __m1,
__m64  __m2 
)
static

Unpacks the upper 32 bits from two 64-bit integer vectors of [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32].

This intrinsic corresponds to the PUNPCKHDQ instruction.

Parameters
__m1A 64-bit integer vector of [2 x i32]. The upper 32 bits are written to the lower 32 bits of the result.
__m2A 64-bit integer vector of [2 x i32]. The upper 32 bits are written to the upper 32 bits of the result.
Returns
A 64-bit integer vector of [2 x i32] containing the interleaved values.

Definition at line 283 of file mmintrin.h.

◆ _mm_unpackhi_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpackhi_pi8 ( __m64  __m1,
__m64  __m2 
)
static

Unpacks the upper 32 bits from two 64-bit integer vectors of [8 x i8] and interleaves them into a 64-bit integer vector of [8 x i8].

This intrinsic corresponds to the PUNPCKHBW instruction.

Parameters
__m1A 64-bit integer vector of [8 x i8].
Bits [39:32] are written to bits [7:0] of the result.
Bits [47:40] are written to bits [23:16] of the result.
Bits [55:48] are written to bits [39:32] of the result.
Bits [63:56] are written to bits [55:48] of the result.
__m2A 64-bit integer vector of [8 x i8]. Bits [39:32] are written to bits [15:8] of the result.
Bits [47:40] are written to bits [31:24] of the result.
Bits [55:48] are written to bits [47:40] of the result.
Bits [63:56] are written to bits [63:56] of the result.
Returns
A 64-bit integer vector of [8 x i8] containing the interleaved values.

Definition at line 237 of file mmintrin.h.

◆ _mm_unpacklo_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpacklo_pi16 ( __m64  __m1,
__m64  __m2 
)
static

Unpacks the lower 32 bits from two 64-bit integer vectors of [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16].

This intrinsic corresponds to the PUNPCKLWD instruction.

Parameters
__m1A 64-bit integer vector of [4 x i16]. Bits [15:0] are written to bits [15:0] of the result.
Bits [31:16] are written to bits [47:32] of the result.
__m2A 64-bit integer vector of [4 x i16]. Bits [15:0] are written to bits [31:16] of the result.
Bits [31:16] are written to bits [63:48] of the result.
Returns
A 64-bit integer vector of [4 x i16] containing the interleaved values.

Definition at line 334 of file mmintrin.h.

◆ _mm_unpacklo_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpacklo_pi32 ( __m64  __m1,
__m64  __m2 
)
static

Unpacks the lower 32 bits from two 64-bit integer vectors of [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32].

This intrinsic corresponds to the PUNPCKLDQ instruction.

Parameters
__m1A 64-bit integer vector of [2 x i32]. The lower 32 bits are written to the lower 32 bits of the result.
__m2A 64-bit integer vector of [2 x i32]. The lower 32 bits are written to the upper 32 bits of the result.
Returns
A 64-bit integer vector of [2 x i32] containing the interleaved values.

Definition at line 356 of file mmintrin.h.

◆ _mm_unpacklo_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpacklo_pi8 ( __m64  __m1,
__m64  __m2 
)
static

Unpacks the lower 32 bits from two 64-bit integer vectors of [8 x i8] and interleaves them into a 64-bit integer vector of [8 x i8].

This intrinsic corresponds to the PUNPCKLBW instruction.

Parameters
__m1A 64-bit integer vector of [8 x i8]. Bits [7:0] are written to bits [7:0] of the result.
Bits [15:8] are written to bits [23:16] of the result.
Bits [23:16] are written to bits [39:32] of the result.
Bits [31:24] are written to bits [55:48] of the result.
__m2A 64-bit integer vector of [8 x i8]. Bits [7:0] are written to bits [15:8] of the result.
Bits [15:8] are written to bits [31:24] of the result.
Bits [23:16] are written to bits [47:40] of the result.
Bits [31:24] are written to bits [63:56] of the result.
Returns
A 64-bit integer vector of [8 x i8] containing the interleaved values.

Definition at line 310 of file mmintrin.h.

◆ _mm_xor_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_xor_si64 ( __m64  __m1,
__m64  __m2 
)
static

Performs a bitwise exclusive OR of two 64-bit integer vectors.

This intrinsic corresponds to the PXOR instruction.

Parameters
__m1A 64-bit integer vector.
__m2A 64-bit integer vector.
Returns
A 64-bit integer vector containing the bitwise exclusive OR of both parameters.

Definition at line 1189 of file mmintrin.h.