clang  13.0.0git
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"), __min_vector_width__(64)))
 
#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"))) _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"), __min_vector_width__(64)))

Definition at line 21 of file mmintrin.h.

◆ _m_empty

#define _m_empty   _mm_empty

Definition at line 1499 of file mmintrin.h.

◆ _m_from_int

#define _m_from_int   _mm_cvtsi32_si64

Definition at line 1500 of file mmintrin.h.

◆ _m_from_int64

#define _m_from_int64   _mm_cvtsi64_m64

Definition at line 1501 of file mmintrin.h.

◆ _m_packssdw

#define _m_packssdw   _mm_packs_pi32

Definition at line 1505 of file mmintrin.h.

◆ _m_packsswb

#define _m_packsswb   _mm_packs_pi16

Definition at line 1504 of file mmintrin.h.

◆ _m_packuswb

#define _m_packuswb   _mm_packs_pu16

Definition at line 1506 of file mmintrin.h.

◆ _m_paddb

#define _m_paddb   _mm_add_pi8

Definition at line 1513 of file mmintrin.h.

◆ _m_paddd

#define _m_paddd   _mm_add_pi32

Definition at line 1515 of file mmintrin.h.

◆ _m_paddsb

#define _m_paddsb   _mm_adds_pi8

Definition at line 1516 of file mmintrin.h.

◆ _m_paddsw

#define _m_paddsw   _mm_adds_pi16

Definition at line 1517 of file mmintrin.h.

◆ _m_paddusb

#define _m_paddusb   _mm_adds_pu8

Definition at line 1518 of file mmintrin.h.

◆ _m_paddusw

#define _m_paddusw   _mm_adds_pu16

Definition at line 1519 of file mmintrin.h.

◆ _m_paddw

#define _m_paddw   _mm_add_pi16

Definition at line 1514 of file mmintrin.h.

◆ _m_pand

#define _m_pand   _mm_and_si64

Definition at line 1546 of file mmintrin.h.

◆ _m_pandn

#define _m_pandn   _mm_andnot_si64

Definition at line 1547 of file mmintrin.h.

◆ _m_pcmpeqb

#define _m_pcmpeqb   _mm_cmpeq_pi8

Definition at line 1550 of file mmintrin.h.

◆ _m_pcmpeqd

#define _m_pcmpeqd   _mm_cmpeq_pi32

Definition at line 1552 of file mmintrin.h.

◆ _m_pcmpeqw

#define _m_pcmpeqw   _mm_cmpeq_pi16

Definition at line 1551 of file mmintrin.h.

◆ _m_pcmpgtb

#define _m_pcmpgtb   _mm_cmpgt_pi8

Definition at line 1553 of file mmintrin.h.

◆ _m_pcmpgtd

#define _m_pcmpgtd   _mm_cmpgt_pi32

Definition at line 1555 of file mmintrin.h.

◆ _m_pcmpgtw

#define _m_pcmpgtw   _mm_cmpgt_pi16

Definition at line 1554 of file mmintrin.h.

◆ _m_pmaddwd

#define _m_pmaddwd   _mm_madd_pi16

Definition at line 1527 of file mmintrin.h.

◆ _m_pmulhw

#define _m_pmulhw   _mm_mulhi_pi16

Definition at line 1528 of file mmintrin.h.

◆ _m_pmullw

#define _m_pmullw   _mm_mullo_pi16

Definition at line 1529 of file mmintrin.h.

◆ _m_por

#define _m_por   _mm_or_si64

Definition at line 1548 of file mmintrin.h.

◆ _m_pslld

#define _m_pslld   _mm_sll_pi32

Definition at line 1532 of file mmintrin.h.

◆ _m_pslldi

#define _m_pslldi   _mm_slli_pi32

Definition at line 1533 of file mmintrin.h.

◆ _m_psllq

#define _m_psllq   _mm_sll_si64

Definition at line 1534 of file mmintrin.h.

◆ _m_psllqi

#define _m_psllqi   _mm_slli_si64

Definition at line 1535 of file mmintrin.h.

◆ _m_psllw

#define _m_psllw   _mm_sll_pi16

Definition at line 1530 of file mmintrin.h.

◆ _m_psllwi

#define _m_psllwi   _mm_slli_pi16

Definition at line 1531 of file mmintrin.h.

◆ _m_psrad

#define _m_psrad   _mm_sra_pi32

Definition at line 1538 of file mmintrin.h.

◆ _m_psradi

#define _m_psradi   _mm_srai_pi32

Definition at line 1539 of file mmintrin.h.

◆ _m_psraw

#define _m_psraw   _mm_sra_pi16

Definition at line 1536 of file mmintrin.h.

◆ _m_psrawi

#define _m_psrawi   _mm_srai_pi16

Definition at line 1537 of file mmintrin.h.

◆ _m_psrld

#define _m_psrld   _mm_srl_pi32

Definition at line 1542 of file mmintrin.h.

◆ _m_psrldi

#define _m_psrldi   _mm_srli_pi32

Definition at line 1543 of file mmintrin.h.

◆ _m_psrlq

#define _m_psrlq   _mm_srl_si64

Definition at line 1544 of file mmintrin.h.

◆ _m_psrlqi

#define _m_psrlqi   _mm_srli_si64

Definition at line 1545 of file mmintrin.h.

◆ _m_psrlw

#define _m_psrlw   _mm_srl_pi16

Definition at line 1540 of file mmintrin.h.

◆ _m_psrlwi

#define _m_psrlwi   _mm_srli_pi16

Definition at line 1541 of file mmintrin.h.

◆ _m_psubb

#define _m_psubb   _mm_sub_pi8

Definition at line 1520 of file mmintrin.h.

◆ _m_psubd

#define _m_psubd   _mm_sub_pi32

Definition at line 1522 of file mmintrin.h.

◆ _m_psubsb

#define _m_psubsb   _mm_subs_pi8

Definition at line 1523 of file mmintrin.h.

◆ _m_psubsw

#define _m_psubsw   _mm_subs_pi16

Definition at line 1524 of file mmintrin.h.

◆ _m_psubusb

#define _m_psubusb   _mm_subs_pu8

Definition at line 1525 of file mmintrin.h.

◆ _m_psubusw

#define _m_psubusw   _mm_subs_pu16

Definition at line 1526 of file mmintrin.h.

◆ _m_psubw

#define _m_psubw   _mm_sub_pi16

Definition at line 1521 of file mmintrin.h.

◆ _m_punpckhbw

#define _m_punpckhbw   _mm_unpackhi_pi8

Definition at line 1507 of file mmintrin.h.

◆ _m_punpckhdq

#define _m_punpckhdq   _mm_unpackhi_pi32

Definition at line 1509 of file mmintrin.h.

◆ _m_punpckhwd

#define _m_punpckhwd   _mm_unpackhi_pi16

Definition at line 1508 of file mmintrin.h.

◆ _m_punpcklbw

#define _m_punpcklbw   _mm_unpacklo_pi8

Definition at line 1510 of file mmintrin.h.

◆ _m_punpckldq

#define _m_punpckldq   _mm_unpacklo_pi32

Definition at line 1512 of file mmintrin.h.

◆ _m_punpcklwd

#define _m_punpcklwd   _mm_unpacklo_pi16

Definition at line 1511 of file mmintrin.h.

◆ _m_pxor

#define _m_pxor   _mm_xor_si64

Definition at line 1549 of file mmintrin.h.

◆ _m_to_int

#define _m_to_int   _mm_cvtsi64_si32

Definition at line 1502 of file mmintrin.h.

◆ _m_to_int64

#define _m_to_int64   _mm_cvtm64_si64

Definition at line 1503 of file mmintrin.h.

Typedef Documentation

◆ __attribute__

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

Definition at line 13 of file mmintrin.h.

Function Documentation

◆ __attribute__()

static __inline__ void __attribute__ ( (__always_inline__, __nodebug__, __target__("mmx"))  )
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 30 of file mmintrin.h.

◆ _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 371 of file mmintrin.h.

◆ _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 392 of file mmintrin.h.

◆ _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 350 of file mmintrin.h.

◆ _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 437 of file mmintrin.h.

◆ _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 414 of file mmintrin.h.

◆ _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 481 of file mmintrin.h.

◆ _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 459 of file mmintrin.h.

◆ _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 1080 of file mmintrin.h.

◆ _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 1101 of file mmintrin.h.

◆ _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 1181 of file mmintrin.h.

◆ _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 1203 of file mmintrin.h.

◆ _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 1159 of file mmintrin.h.

◆ _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 1247 of file mmintrin.h.

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

◆ _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 1225 of file mmintrin.h.

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

◆ _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 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 48 of file mmintrin.h.

◆ _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 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 81 of file mmintrin.h.

◆ _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 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 65 of file mmintrin.h.

◆ _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 665 of file mmintrin.h.

◆ _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 686 of file mmintrin.h.

◆ _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 707 of file mmintrin.h.

◆ _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 1119 of file mmintrin.h.

◆ _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 127 of file mmintrin.h.

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

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

◆ _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 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 1397 of file mmintrin.h.

References _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 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 1378 of file mmintrin.h.

References _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 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 1415 of file mmintrin.h.

References __b, 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 1326 of file mmintrin.h.

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

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

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

References _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 1436 of file mmintrin.h.

References _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 1490 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 PXOR instruction.

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

Definition at line 1282 of file mmintrin.h.

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

◆ _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 775 of file mmintrin.h.

◆ _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 817 of file mmintrin.h.

◆ _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 752 of file mmintrin.h.

◆ _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 797 of file mmintrin.h.

◆ _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 837 of file mmintrin.h.

◆ _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 861 of file mmintrin.h.

◆ _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 908 of file mmintrin.h.

◆ _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 884 of file mmintrin.h.

◆ _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 931 of file mmintrin.h.

◆ _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 954 of file mmintrin.h.

◆ _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 999 of file mmintrin.h.

◆ _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 1041 of file mmintrin.h.

◆ _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 976 of file mmintrin.h.

◆ _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 1021 of file mmintrin.h.

◆ _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 1062 of file mmintrin.h.

◆ _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 523 of file mmintrin.h.

◆ _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 544 of file mmintrin.h.

◆ _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 502 of file mmintrin.h.

◆ _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 590 of file mmintrin.h.

◆ _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 567 of file mmintrin.h.

◆ _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 638 of file mmintrin.h.

◆ _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 614 of file mmintrin.h.

◆ _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 237 of file mmintrin.h.

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

◆ _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 214 of file mmintrin.h.

◆ _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 308 of file mmintrin.h.

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

◆ _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 285 of file mmintrin.h.

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