clang  6.0.0svn
Macros | Typedefs | Functions
mmintrin.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define __DEFAULT_FN_ATTRS   __attribute__((__always_inline__, __nodebug__, __target__("mmx")))
 
#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)))
 

Functions

static __inline__ void __DEFAULT_FN_ATTRS _mm_empty (void)
 Clears the MMX state by setting the state of the x87 stack registers to empty. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtsi64_si32 (__m64 __m)
 Returns the lower 32 bits of a 64-bit integer vector as a 32-bit signed integer. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtsi64_m64 (long long __i)
 Casts a 64-bit signed integer value into a 64-bit integer vector. More...
 
static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvtm64_si64 (__m64 __m)
 Casts a 64-bit integer vector into a 64-bit signed integer value. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_packs_pi16 (__m64 __m1, __m64 __m2)
 Converts 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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_packs_pi32 (__m64 __m1, __m64 __m2)
 Converts 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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_packs_pu16 (__m64 __m1, __m64 __m2)
 Converts 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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_adds_pi8 (__m64 __m1, __m64 __m2)
 Adds 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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_adds_pi16 (__m64 __m1, __m64 __m2)
 Adds 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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_adds_pu8 (__m64 __m1, __m64 __m2)
 Adds 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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_adds_pu16 (__m64 __m1, __m64 __m2)
 Adds 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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_subs_pi8 (__m64 __m1, __m64 __m2)
 Subtracts 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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_subs_pi16 (__m64 __m1, __m64 __m2)
 Subtracts 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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_and_si64 (__m64 __m1, __m64 __m2)
 Performs a bitwise AND of two 64-bit integer vectors. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_or_si64 (__m64 __m1, __m64 __m2)
 Performs a bitwise OR of two 64-bit integer vectors. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_xor_si64 (__m64 __m1, __m64 __m2)
 Performs a bitwise exclusive OR of two 64-bit integer vectors. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_setzero_si64 (void)
 Constructs a 64-bit integer vector initialized to zero. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_set_pi32 (int __i1, int __i0)
 Constructs a 64-bit integer vector initialized with the specified 32-bit integer values. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_setr_pi32 (int __i0, int __i1)
 Constructs a 64-bit integer vector, initialized in reverse order with the specified 32-bit integer values. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _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. More...
 

Macro Definition Documentation

◆ __DEFAULT_FN_ATTRS

#define __DEFAULT_FN_ATTRS   __attribute__((__always_inline__, __nodebug__, __target__("mmx")))

◆ _m_empty

#define _m_empty   _mm_empty

Definition at line 1511 of file mmintrin.h.

◆ _m_from_int

#define _m_from_int   _mm_cvtsi32_si64

Definition at line 1512 of file mmintrin.h.

◆ _m_from_int64

#define _m_from_int64   _mm_cvtsi64_m64

Definition at line 1513 of file mmintrin.h.

◆ _m_packssdw

#define _m_packssdw   _mm_packs_pi32

Definition at line 1517 of file mmintrin.h.

◆ _m_packsswb

#define _m_packsswb   _mm_packs_pi16

Definition at line 1516 of file mmintrin.h.

◆ _m_packuswb

#define _m_packuswb   _mm_packs_pu16

Definition at line 1518 of file mmintrin.h.

◆ _m_paddb

#define _m_paddb   _mm_add_pi8

Definition at line 1525 of file mmintrin.h.

◆ _m_paddd

#define _m_paddd   _mm_add_pi32

Definition at line 1527 of file mmintrin.h.

◆ _m_paddsb

#define _m_paddsb   _mm_adds_pi8

Definition at line 1528 of file mmintrin.h.

◆ _m_paddsw

#define _m_paddsw   _mm_adds_pi16

Definition at line 1529 of file mmintrin.h.

◆ _m_paddusb

#define _m_paddusb   _mm_adds_pu8

Definition at line 1530 of file mmintrin.h.

◆ _m_paddusw

#define _m_paddusw   _mm_adds_pu16

Definition at line 1531 of file mmintrin.h.

◆ _m_paddw

#define _m_paddw   _mm_add_pi16

Definition at line 1526 of file mmintrin.h.

◆ _m_pand

#define _m_pand   _mm_and_si64

Definition at line 1558 of file mmintrin.h.

◆ _m_pandn

#define _m_pandn   _mm_andnot_si64

Definition at line 1559 of file mmintrin.h.

◆ _m_pcmpeqb

#define _m_pcmpeqb   _mm_cmpeq_pi8

Definition at line 1562 of file mmintrin.h.

◆ _m_pcmpeqd

#define _m_pcmpeqd   _mm_cmpeq_pi32

Definition at line 1564 of file mmintrin.h.

◆ _m_pcmpeqw

#define _m_pcmpeqw   _mm_cmpeq_pi16

Definition at line 1563 of file mmintrin.h.

◆ _m_pcmpgtb

#define _m_pcmpgtb   _mm_cmpgt_pi8

Definition at line 1565 of file mmintrin.h.

◆ _m_pcmpgtd

#define _m_pcmpgtd   _mm_cmpgt_pi32

Definition at line 1567 of file mmintrin.h.

◆ _m_pcmpgtw

#define _m_pcmpgtw   _mm_cmpgt_pi16

Definition at line 1566 of file mmintrin.h.

◆ _m_pmaddwd

#define _m_pmaddwd   _mm_madd_pi16

Definition at line 1539 of file mmintrin.h.

◆ _m_pmulhw

#define _m_pmulhw   _mm_mulhi_pi16

Definition at line 1540 of file mmintrin.h.

◆ _m_pmullw

#define _m_pmullw   _mm_mullo_pi16

Definition at line 1541 of file mmintrin.h.

◆ _m_por

#define _m_por   _mm_or_si64

Definition at line 1560 of file mmintrin.h.

◆ _m_pslld

#define _m_pslld   _mm_sll_pi32

Definition at line 1544 of file mmintrin.h.

◆ _m_pslldi

#define _m_pslldi   _mm_slli_pi32

Definition at line 1545 of file mmintrin.h.

◆ _m_psllq

#define _m_psllq   _mm_sll_si64

Definition at line 1546 of file mmintrin.h.

◆ _m_psllqi

#define _m_psllqi   _mm_slli_si64

Definition at line 1547 of file mmintrin.h.

◆ _m_psllw

#define _m_psllw   _mm_sll_pi16

Definition at line 1542 of file mmintrin.h.

◆ _m_psllwi

#define _m_psllwi   _mm_slli_pi16

Definition at line 1543 of file mmintrin.h.

◆ _m_psrad

#define _m_psrad   _mm_sra_pi32

Definition at line 1550 of file mmintrin.h.

◆ _m_psradi

#define _m_psradi   _mm_srai_pi32

Definition at line 1551 of file mmintrin.h.

◆ _m_psraw

#define _m_psraw   _mm_sra_pi16

Definition at line 1548 of file mmintrin.h.

◆ _m_psrawi

#define _m_psrawi   _mm_srai_pi16

Definition at line 1549 of file mmintrin.h.

◆ _m_psrld

#define _m_psrld   _mm_srl_pi32

Definition at line 1554 of file mmintrin.h.

◆ _m_psrldi

#define _m_psrldi   _mm_srli_pi32

Definition at line 1555 of file mmintrin.h.

◆ _m_psrlq

#define _m_psrlq   _mm_srl_si64

Definition at line 1556 of file mmintrin.h.

◆ _m_psrlqi

#define _m_psrlqi   _mm_srli_si64

Definition at line 1557 of file mmintrin.h.

◆ _m_psrlw

#define _m_psrlw   _mm_srl_pi16

Definition at line 1552 of file mmintrin.h.

◆ _m_psrlwi

#define _m_psrlwi   _mm_srli_pi16

Definition at line 1553 of file mmintrin.h.

◆ _m_psubb

#define _m_psubb   _mm_sub_pi8

Definition at line 1532 of file mmintrin.h.

◆ _m_psubd

#define _m_psubd   _mm_sub_pi32

Definition at line 1534 of file mmintrin.h.

◆ _m_psubsb

#define _m_psubsb   _mm_subs_pi8

Definition at line 1535 of file mmintrin.h.

◆ _m_psubsw

#define _m_psubsw   _mm_subs_pi16

Definition at line 1536 of file mmintrin.h.

◆ _m_psubusb

#define _m_psubusb   _mm_subs_pu8

Definition at line 1537 of file mmintrin.h.

◆ _m_psubusw

#define _m_psubusw   _mm_subs_pu16

Definition at line 1538 of file mmintrin.h.

◆ _m_psubw

#define _m_psubw   _mm_sub_pi16

Definition at line 1533 of file mmintrin.h.

◆ _m_punpckhbw

#define _m_punpckhbw   _mm_unpackhi_pi8

Definition at line 1519 of file mmintrin.h.

◆ _m_punpckhdq

#define _m_punpckhdq   _mm_unpackhi_pi32

Definition at line 1521 of file mmintrin.h.

◆ _m_punpckhwd

#define _m_punpckhwd   _mm_unpackhi_pi16

Definition at line 1520 of file mmintrin.h.

◆ _m_punpcklbw

#define _m_punpcklbw   _mm_unpacklo_pi8

Definition at line 1522 of file mmintrin.h.

◆ _m_punpckldq

#define _m_punpckldq   _mm_unpacklo_pi32

Definition at line 1524 of file mmintrin.h.

◆ _m_punpcklwd

#define _m_punpcklwd   _mm_unpacklo_pi16

Definition at line 1523 of file mmintrin.h.

◆ _m_pxor

#define _m_pxor   _mm_xor_si64

Definition at line 1561 of file mmintrin.h.

◆ _m_to_int

#define _m_to_int   _mm_cvtsi64_si32

Definition at line 1514 of file mmintrin.h.

◆ _m_to_int64

#define _m_to_int64   _mm_cvtm64_si64

Definition at line 1515 of file mmintrin.h.

Typedef Documentation

◆ __attribute__

typedef char __v8qi __attribute__((__vector_size__(8)))

Definition at line 27 of file mmintrin.h.

Function Documentation

◆ _mm_add_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 385 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_add_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 406 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_add_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 364 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_adds_pi16()

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

Adds 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 451 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_adds_pi8()

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

Adds 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 428 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_adds_pu16()

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

Adds 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 495 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_adds_pu8()

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

Adds 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 473 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_and_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1094 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_andnot_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1115 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpeq_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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.

The comparison yields 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 1195 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpeq_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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.

The comparison yields 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 1217 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpeq_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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.

The comparison yields 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 1173 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpgt_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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.

The comparison yields 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 1261 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtpi16_ps().

◆ _mm_cmpgt_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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.

The comparison yields 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 1283 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpgt_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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.

The comparison yields 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 1239 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtpi8_ps().

◆ _mm_cvtm64_si64()

static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvtm64_si64 ( __m64  __m)
static

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

This intrinsic corresponds to the VMOVQ / MOVD instruction.

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

Definition at line 111 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cvtsi32_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 VMOVD / 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 62 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cvtsi64_m64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 VMOVQ / MOVD instruction.

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

Definition at line 95 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cvtsi64_si32()

static __inline__ int __DEFAULT_FN_ATTRS _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 VMOVD / 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 79 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_empty()

static __inline__ void __DEFAULT_FN_ATTRS _mm_empty ( void  )
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 45 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_madd_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 679 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_mulhi_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 700 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_mullo_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 721 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_or_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1133 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_packs_pi16()

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

Converts 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]. Each 16-bit element is treated as a 16-bit signed integer and is converted to an 8-bit signed integer with saturation. Positive values greater than 0x7F are saturated to 0x7F. Negative values less than 0x80 are saturated to 0x80. 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]. Each 16-bit element is treated as a 16-bit signed integer and is converted to an 8-bit signed integer with saturation. Positive values greater than 0x7F are saturated to 0x7F. Negative values less than 0x80 are saturated to 0x80. 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 141 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtps_pi8().

◆ _mm_packs_pi32()

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

Converts 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]. Each 32-bit element is treated as a 32-bit signed integer and is converted to a 16-bit signed integer with saturation. Positive values greater than 0x7FFF are saturated to 0x7FFF. Negative values less than 0x8000 are saturated to 0x8000. 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]. Each 32-bit element is treated as a 32-bit signed integer and is converted to a 16-bit signed integer with saturation. Positive values greater than 0x7FFF are saturated to 0x7FFF. Negative values less than 0x8000 are saturated to 0x8000. 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 171 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtps_pi16().

◆ _mm_packs_pu16()

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

Converts 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]. Each 16-bit element is treated as a 16-bit signed integer and is converted to an 8-bit unsigned integer with saturation. Values greater than 0xFF are saturated to 0xFF. Values less than 0 are saturated to 0. 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]. Each 16-bit element is treated as a 16-bit signed integer and is converted to an 8-bit unsigned integer with saturation. Values greater than 0xFF are saturated to 0xFF. Values less than 0 are saturated to 0. 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 201 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_set1_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 corresponds to the VPSHUFLW / PSHUFLW 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 1409 of file mmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_set_pi16().

◆ _mm_set1_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 corresponds to the VPSHUFD / PSHUFD 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 1391 of file mmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_set_pi32().

◆ _mm_set1_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 corresponds to the VPUNPCKLBW + VPSHUFLW / PUNPCKLBW + PSHUFLW 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 1427 of file mmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_set_pi8().

◆ _mm_set_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1340 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_set1_pi16(), and _mm_setr_pi16().

◆ _mm_set_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1317 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_set1_pi32(), and _mm_setr_pi32().

◆ _mm_set_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1371 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_set1_pi8(), and _mm_setr_pi8().

◆ _mm_setr_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1471 of file mmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_set_pi16().

◆ _mm_setr_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1448 of file mmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_set_pi32().

◆ _mm_setr_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1502 of file mmintrin.h.

References _mm_set_pi8().

◆ _mm_setzero_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_setzero_si64 ( void  )
static

Constructs a 64-bit integer vector initialized to zero.

This intrinsic corresponds to the VXORPS / XORPS instruction.

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

Definition at line 1296 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtpi16_ps(), _mm_cvtpi8_ps(), _mm_cvtps_pi8(), _mm_cvtpu16_ps(), and _mm_cvtpu8_ps().

◆ _mm_sll_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 744 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_sll_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 789 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_sll_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 831 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_slli_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 766 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_slli_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 811 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_slli_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 851 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_sra_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 875 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_sra_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 922 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_srai_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 898 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_srai_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 945 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_srl_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 968 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_srl_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1013 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_srl_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1055 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_srli_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 990 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_srli_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1035 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_srli_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1076 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_sub_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 537 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_sub_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 558 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_sub_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 516 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_subs_pi16()

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

Subtracts 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 604 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_subs_pi8()

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

Subtracts 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 581 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_subs_pu16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 652 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_subs_pu8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 628 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_unpackhi_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 251 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtpi16_ps(), and _mm_cvtpu16_ps().

◆ _mm_unpackhi_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 272 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_unpackhi_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 228 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_unpacklo_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 322 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtpi16_ps(), and _mm_cvtpu16_ps().

◆ _mm_unpacklo_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 343 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_unpacklo_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 299 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtpi8_ps(), and _mm_cvtpu8_ps().

◆ _mm_xor_si64()

static __inline__ __m64 __DEFAULT_FN_ATTRS _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 1151 of file mmintrin.h.

References __DEFAULT_FN_ATTRS.