clang  6.0.0svn
Macros | Typedefs | Functions
xmmintrin.h File Reference
#include <mmintrin.h>
Include dependency graph for xmmintrin.h:
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__("sse")))
 
#define _mm_load_ps1(p)   _mm_load1_ps(p)
 
#define _MM_HINT_T0   3
 
#define _MM_HINT_T1   2
 
#define _MM_HINT_T2   1
 
#define _MM_HINT_NTA   0
 
#define _mm_prefetch(a, sel)   (__builtin_prefetch((void *)(a), 0, (sel)))
 Loads one cache line of data from the specified address to a location closer to the processor. More...
 
#define _mm_extract_pi16(a, n)
 Extracts 16-bit element from a 64-bit vector of [4 x i16] and returns it, as specified by the immediate integer operand. More...
 
#define _mm_insert_pi16(a, d, n)
 Copies data from the 64-bit vector of [4 x i16] to the destination, and inserts the lower 16-bits of an integer operand at the 16-bit offset specified by the immediate operand n. More...
 
#define _mm_shuffle_pi16(a, n)
 Shuffles the 4 16-bit integers from a 64-bit integer vector to the destination, as specified by the immediate value operand. More...
 
#define _mm_shuffle_ps(a, b, mask)
 Selects 4 float values from the 128-bit operands of [4 x float], as specified by the immediate value operand. More...
 
#define _MM_ALIGN16   __attribute__((aligned(16)))
 
#define _MM_SHUFFLE(z, y, x, w)   (((z) << 6) | ((y) << 4) | ((x) << 2) | (w))
 
#define _MM_EXCEPT_INVALID   (0x0001)
 
#define _MM_EXCEPT_DENORM   (0x0002)
 
#define _MM_EXCEPT_DIV_ZERO   (0x0004)
 
#define _MM_EXCEPT_OVERFLOW   (0x0008)
 
#define _MM_EXCEPT_UNDERFLOW   (0x0010)
 
#define _MM_EXCEPT_INEXACT   (0x0020)
 
#define _MM_EXCEPT_MASK   (0x003f)
 
#define _MM_MASK_INVALID   (0x0080)
 
#define _MM_MASK_DENORM   (0x0100)
 
#define _MM_MASK_DIV_ZERO   (0x0200)
 
#define _MM_MASK_OVERFLOW   (0x0400)
 
#define _MM_MASK_UNDERFLOW   (0x0800)
 
#define _MM_MASK_INEXACT   (0x1000)
 
#define _MM_MASK_MASK   (0x1f80)
 
#define _MM_ROUND_NEAREST   (0x0000)
 
#define _MM_ROUND_DOWN   (0x2000)
 
#define _MM_ROUND_UP   (0x4000)
 
#define _MM_ROUND_TOWARD_ZERO   (0x6000)
 
#define _MM_ROUND_MASK   (0x6000)
 
#define _MM_FLUSH_ZERO_MASK   (0x8000)
 
#define _MM_FLUSH_ZERO_ON   (0x8000)
 
#define _MM_FLUSH_ZERO_OFF   (0x0000)
 
#define _MM_GET_EXCEPTION_MASK()   (_mm_getcsr() & _MM_MASK_MASK)
 
#define _MM_GET_EXCEPTION_STATE()   (_mm_getcsr() & _MM_EXCEPT_MASK)
 
#define _MM_GET_FLUSH_ZERO_MODE()   (_mm_getcsr() & _MM_FLUSH_ZERO_MASK)
 
#define _MM_GET_ROUNDING_MODE()   (_mm_getcsr() & _MM_ROUND_MASK)
 
#define _MM_SET_EXCEPTION_MASK(x)   (_mm_setcsr((_mm_getcsr() & ~_MM_MASK_MASK) | (x)))
 
#define _MM_SET_EXCEPTION_STATE(x)   (_mm_setcsr((_mm_getcsr() & ~_MM_EXCEPT_MASK) | (x)))
 
#define _MM_SET_FLUSH_ZERO_MODE(x)   (_mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (x)))
 
#define _MM_SET_ROUNDING_MODE(x)   (_mm_setcsr((_mm_getcsr() & ~_MM_ROUND_MASK) | (x)))
 
#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3)
 
#define _m_pextrw   _mm_extract_pi16
 
#define _m_pinsrw   _mm_insert_pi16
 
#define _m_pmaxsw   _mm_max_pi16
 
#define _m_pmaxub   _mm_max_pu8
 
#define _m_pminsw   _mm_min_pi16
 
#define _m_pminub   _mm_min_pu8
 
#define _m_pmovmskb   _mm_movemask_pi8
 
#define _m_pmulhuw   _mm_mulhi_pu16
 
#define _m_pshufw   _mm_shuffle_pi16
 
#define _m_maskmovq   _mm_maskmove_si64
 
#define _m_pavgb   _mm_avg_pu8
 
#define _m_pavgw   _mm_avg_pu16
 
#define _m_psadbw   _mm_sad_pu8
 
#define _m_   _mm_
 
#define _m_   _mm_
 

Typedefs

typedef int __v4si __attribute__((__vector_size__(16)))
 

Functions

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_add_ss (__m128 __a, __m128 __b)
 Adds the 32-bit float values in the low-order bits of the operands. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_add_ps (__m128 __a, __m128 __b)
 Adds two 128-bit vectors of [4 x float], and returns the results of the addition. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sub_ss (__m128 __a, __m128 __b)
 Subtracts the 32-bit float value in the low-order bits of the second operand from the corresponding value in the first operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sub_ps (__m128 __a, __m128 __b)
 Subtracts each of the values of the second operand from the first operand, both of which are 128-bit vectors of [4 x float] and returns the results of the subtraction. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_mul_ss (__m128 __a, __m128 __b)
 Multiplies two 32-bit float values in the low-order bits of the operands. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_mul_ps (__m128 __a, __m128 __b)
 Multiplies two 128-bit vectors of [4 x float] and returns the results of the multiplication. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_div_ss (__m128 __a, __m128 __b)
 Divides the value in the low-order 32 bits of the first operand by the corresponding value in the second operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_div_ps (__m128 __a, __m128 __b)
 Divides two 128-bit vectors of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sqrt_ss (__m128 __a)
 Calculates the square root of the value stored in the low-order bits of a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sqrt_ps (__m128 __a)
 Calculates the square roots of the values stored in a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rcp_ss (__m128 __a)
 Calculates the approximate reciprocal of the value stored in the low-order bits of a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rcp_ps (__m128 __a)
 Calculates the approximate reciprocals of the values stored in a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rsqrt_ss (__m128 __a)
 Calculates the approximate reciprocal of the square root of the value stored in the low-order bits of a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rsqrt_ps (__m128 __a)
 Calculates the approximate reciprocals of the square roots of the values stored in a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_min_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands and returns the lesser value in the low-order bits of the vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_min_ps (__m128 __a, __m128 __b)
 Compares two 128-bit vectors of [4 x float] and returns the lesser of each pair of values. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_max_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands and returns the greater value in the low-order bits of a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_max_ps (__m128 __a, __m128 __b)
 Compares two 128-bit vectors of [4 x float] and returns the greater of each pair of values. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_and_ps (__m128 __a, __m128 __b)
 Performs a bitwise AND of two 128-bit vectors of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_andnot_ps (__m128 __a, __m128 __b)
 Performs a bitwise AND of two 128-bit vectors of [4 x float], using the one's complement of the values contained in the first source operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_or_ps (__m128 __a, __m128 __b)
 Performs a bitwise OR of two 128-bit vectors of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_xor_ps (__m128 __a, __m128 __b)
 Performs a bitwise exclusive OR of two 128-bit vectors of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpeq_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands for equality and returns the result of the comparison in the low-order bits of a vector [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpeq_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] for equality. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmplt_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is less than the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmplt_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are less than those in the second operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmple_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is less than or equal to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmple_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are less than or equal to those in the second operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpgt_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is greater than the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpgt_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are greater than those in the second operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpge_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is greater than or equal to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpge_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are greater than or equal to those in the second operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpneq_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands for inequality and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpneq_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] for inequality. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnlt_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is not less than the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnlt_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are not less than those in the second operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnle_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is not less than or equal to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnle_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are not less than or equal to those in the second operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpngt_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is not greater than the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpngt_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are not greater than those in the second operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnge_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is not greater than or equal to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnge_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are not greater than or equal to those in the second operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpord_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is ordered with respect to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpord_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are ordered with respect to those in the second operand. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpunord_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is unordered with respect to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpunord_ps (__m128 __a, __m128 __b)
 Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are unordered with respect to those in the second operand. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_comieq_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands for equality and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_comilt_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the first operand is less than the second operand and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_comile_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the first operand is less than or equal to the second operand and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_comigt_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the first operand is greater than the second operand and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_comige_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the first operand is greater than or equal to the second operand and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_comineq_ss (__m128 __a, __m128 __b)
 Compares two 32-bit float values in the low-order bits of both operands to determine if the first operand is not equal to the second operand and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomieq_ss (__m128 __a, __m128 __b)
 Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine equality and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomilt_ss (__m128 __a, __m128 __b)
 Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine if the first operand is less than the second operand and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomile_ss (__m128 __a, __m128 __b)
 Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine if the first operand is less than or equal to the second operand and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomigt_ss (__m128 __a, __m128 __b)
 Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine if the first operand is greater than the second operand and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomige_ss (__m128 __a, __m128 __b)
 Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine if the first operand is greater than or equal to the second operand and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomineq_ss (__m128 __a, __m128 __b)
 Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine inequality and returns the result of the comparison. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtss_si32 (__m128 __a)
 Converts a float value contained in the lower 32 bits of a vector of [4 x float] into a 32-bit integer. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_cvt_ss2si (__m128 __a)
 Converts a float value contained in the lower 32 bits of a vector of [4 x float] into a 32-bit integer. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtps_pi32 (__m128 __a)
 Converts two low-order float values in a 128-bit vector of [4 x float] into a 64-bit vector of [2 x i32]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvt_ps2pi (__m128 __a)
 Converts two low-order float values in a 128-bit vector of [4 x float] into a 64-bit vector of [2 x i32]. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_cvttss_si32 (__m128 __a)
 Converts a float value contained in the lower 32 bits of a vector of [4 x float] into a 32-bit integer, truncating the result when it is inexact. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtt_ss2si (__m128 __a)
 Converts a float value contained in the lower 32 bits of a vector of [4 x float] into a 32-bit integer, truncating the result when it is inexact. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvttps_pi32 (__m128 __a)
 Converts two low-order float values in a 128-bit vector of [4 x float] into a 64-bit vector of [2 x i32], truncating the result when it is inexact. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtt_ps2pi (__m128 __a)
 Converts two low-order float values in a 128-bit vector of [4 x float] into a 64-bit vector of [2 x i32], truncating the result when it is inexact. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtsi32_ss (__m128 __a, int __b)
 Converts a 32-bit signed integer value into a floating point value and writes it to the lower 32 bits of the destination. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvt_si2ss (__m128 __a, int __b)
 Converts a 32-bit signed integer value into a floating point value and writes it to the lower 32 bits of the destination. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpi32_ps (__m128 __a, __m64 __b)
 Converts two elements of a 64-bit vector of [2 x i32] into two floating point values and writes them to the lower 64-bits of the destination. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvt_pi2ps (__m128 __a, __m64 __b)
 Converts two elements of a 64-bit vector of [2 x i32] into two floating point values and writes them to the lower 64-bits of the destination. More...
 
static __inline__ float __DEFAULT_FN_ATTRS _mm_cvtss_f32 (__m128 __a)
 Extracts a float value contained in the lower 32 bits of a vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadh_pi (__m128 __a, const __m64 *__p)
 Loads two packed float values from the address __p into the high-order bits of a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadl_pi (__m128 __a, const __m64 *__p)
 Loads two packed float values from the address __p into the low-order bits of a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load_ss (const float *__p)
 Constructs a 128-bit floating-point vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load1_ps (const float *__p)
 Loads a 32-bit float value and duplicates it to all four vector elements of a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load_ps (const float *__p)
 Loads a 128-bit floating-point vector of [4 x float] from an aligned memory location. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadu_ps (const float *__p)
 Loads a 128-bit floating-point vector of [4 x float] from an unaligned memory location. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadr_ps (const float *__p)
 Loads four packed float values, in reverse order, from an aligned memory location to 32-bit elements in a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_undefined_ps (void)
 Create a 128-bit vector of [4 x float] with undefined values. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_set_ss (float __w)
 Constructs a 128-bit floating-point vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_set1_ps (float __w)
 Constructs a 128-bit floating-point vector of [4 x float], with each of the four single-precision floating-point vector elements set to the specified single-precision floating-point value. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_set_ps1 (float __w)
 Constructs a 128-bit floating-point vector of [4 x float], with each of the four single-precision floating-point vector elements set to the specified single-precision floating-point value. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_set_ps (float __z, float __y, float __x, float __w)
 Constructs a 128-bit floating-point vector of [4 x float] initialized with the specified single-precision floating-point values. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_setr_ps (float __z, float __y, float __x, float __w)
 Constructs a 128-bit floating-point vector of [4 x float], initialized in reverse order with the specified 32-bit single-precision float-point values. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_setzero_ps (void)
 Constructs a 128-bit floating-point vector of [4 x float] initialized to zero. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_storeh_pi (__m64 *__p, __m128 __a)
 Stores the upper 64 bits of a 128-bit vector of [4 x float] to a memory location. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_storel_pi (__m64 *__p, __m128 __a)
 Stores the lower 64 bits of a 128-bit vector of [4 x float] to a memory location. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ss (float *__p, __m128 __a)
 Stores the lower 32 bits of a 128-bit vector of [4 x float] to a memory location. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_storeu_ps (float *__p, __m128 __a)
 Stores a 128-bit vector of [4 x float] to an unaligned memory location. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ps (float *__p, __m128 __a)
 Stores a 128-bit vector of [4 x float] into an aligned memory location. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_store1_ps (float *__p, __m128 __a)
 Stores the lower 32 bits of a 128-bit vector of [4 x float] into four contiguous elements in an aligned memory location. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ps1 (float *__p, __m128 __a)
 Stores the lower 32 bits of a 128-bit vector of [4 x float] into four contiguous elements in an aligned memory location. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_storer_ps (float *__p, __m128 __a)
 Stores float values from a 128-bit vector of [4 x float] to an aligned memory location in reverse order. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pi (__m64 *__p, __m64 __a)
 Stores a 64-bit integer in the specified aligned memory location. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_ps (float *__p, __m128 __a)
 Moves packed float values from a 128-bit vector of [4 x float] to a 128-bit aligned memory location. More...
 
void _mm_sfence (void)
 Forces strong memory ordering (serialization) between store instructions preceding this instruction and store instructions following this instruction, ensuring the system completes all previous stores before executing subsequent stores. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_max_pi16 (__m64 __a, __m64 __b)
 Compares each of the corresponding packed 16-bit integer values of the 64-bit integer vectors, and writes the greater value to the corresponding bits in the destination. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_max_pu8 (__m64 __a, __m64 __b)
 Compares each of the corresponding packed 8-bit unsigned integer values of the 64-bit integer vectors, and writes the greater value to the corresponding bits in the destination. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_min_pi16 (__m64 __a, __m64 __b)
 Compares each of the corresponding packed 16-bit integer values of the 64-bit integer vectors, and writes the lesser value to the corresponding bits in the destination. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_min_pu8 (__m64 __a, __m64 __b)
 Compares each of the corresponding packed 8-bit unsigned integer values of the 64-bit integer vectors, and writes the lesser value to the corresponding bits in the destination. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_pi8 (__m64 __a)
 Takes the most significant bit from each 8-bit element in a 64-bit integer vector to create a 16-bit mask value. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_mulhi_pu16 (__m64 __a, __m64 __b)
 Multiplies packed 16-bit unsigned integer values and writes the high-order 16 bits of each 32-bit product to the corresponding bits in the destination. More...
 
static __inline__ void __DEFAULT_FN_ATTRS _mm_maskmove_si64 (__m64 __d, __m64 __n, char *__p)
 Conditionally copies the values from each 8-bit element in the first 64-bit integer vector operand to the specified memory location, as specified by the most significant bit in the corresponding element in the second 64-bit integer vector operand. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_avg_pu8 (__m64 __a, __m64 __b)
 Computes the rounded averages of the packed unsigned 8-bit integer values and writes the averages to the corresponding bits in the destination. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_avg_pu16 (__m64 __a, __m64 __b)
 Computes the rounded averages of the packed unsigned 16-bit integer values and writes the averages to the corresponding bits in the destination. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_sad_pu8 (__m64 __a, __m64 __b)
 Subtracts the corresponding 8-bit unsigned integer values of the two 64-bit vector operands and computes the absolute value for each of the difference. More...
 
unsigned int _mm_getcsr (void)
 Returns the contents of the MXCSR register as a 32-bit unsigned integer value. More...
 
void _mm_setcsr (unsigned int __i)
 Sets the MXCSR register with the 32-bit unsigned integer value. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_unpackhi_ps (__m128 __a, __m128 __b)
 Unpacks the high-order (index 2,3) values from two 128-bit vectors of [4 x float] and interleaves them into a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_unpacklo_ps (__m128 __a, __m128 __b)
 Unpacks the low-order (index 0,1) values from two 128-bit vectors of [4 x float] and interleaves them into a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_move_ss (__m128 __a, __m128 __b)
 Constructs a 128-bit floating-point vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_movehl_ps (__m128 __a, __m128 __b)
 Constructs a 128-bit floating-point vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_movelh_ps (__m128 __a, __m128 __b)
 Constructs a 128-bit floating-point vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpi16_ps (__m64 __a)
 Converts a 64-bit vector of [4 x i16] into a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpu16_ps (__m64 __a)
 Converts a 64-bit vector of 16-bit unsigned integer values into a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpi8_ps (__m64 __a)
 Converts the lower four 8-bit values from a 64-bit vector of [8 x i8] into a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpu8_ps (__m64 __a)
 Converts the lower four unsigned 8-bit integer values from a 64-bit vector of [8 x u8] into a 128-bit vector of [4 x float]. More...
 
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpi32x2_ps (__m64 __a, __m64 __b)
 Converts the two 32-bit signed integer values from each 64-bit vector operand of [2 x i32] into a 128-bit vector of [4 x float]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtps_pi16 (__m128 __a)
 Converts each single-precision floating-point element of a 128-bit floating-point vector of [4 x float] into a 16-bit signed integer, and packs the results into a 64-bit integer vector of [4 x i16]. More...
 
static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtps_pi8 (__m128 __a)
 Converts each single-precision floating-point element of a 128-bit floating-point vector of [4 x float] into an 8-bit signed integer, and packs the results into the lower 32 bits of a 64-bit integer vector of [8 x i8]. More...
 
static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_ps (__m128 __a)
 Extracts the sign bits from each single-precision floating-point element of a 128-bit floating-point vector of [4 x float] and returns the sign bits in bits [0:3] of the result. More...
 

Macro Definition Documentation

◆ __DEFAULT_FN_ATTRS

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

Definition at line 43 of file xmmintrin.h.

Referenced by _mm_add_ps(), _mm_add_ss(), _mm_and_ps(), _mm_andnot_ps(), _mm_avg_pu16(), _mm_avg_pu8(), _mm_cmpeq_ps(), _mm_cmpeq_ss(), _mm_cmpge_ps(), _mm_cmpge_ss(), _mm_cmpgt_ps(), _mm_cmpgt_ss(), _mm_cmple_ps(), _mm_cmple_ss(), _mm_cmplt_ps(), _mm_cmplt_ss(), _mm_cmpneq_ps(), _mm_cmpneq_ss(), _mm_cmpnge_ps(), _mm_cmpnge_ss(), _mm_cmpngt_ps(), _mm_cmpngt_ss(), _mm_cmpnle_ps(), _mm_cmpnle_ss(), _mm_cmpnlt_ps(), _mm_cmpnlt_ss(), _mm_cmpord_ps(), _mm_cmpord_ss(), _mm_cmpunord_ps(), _mm_cmpunord_ss(), _mm_comieq_ss(), _mm_comige_ss(), _mm_comigt_ss(), _mm_comile_ss(), _mm_comilt_ss(), _mm_comineq_ss(), _mm_cvt_pi2ps(), _mm_cvt_ps2pi(), _mm_cvt_si2ss(), _mm_cvt_ss2si(), _mm_cvtpi16_ps(), _mm_cvtpi32_ps(), _mm_cvtpi32x2_ps(), _mm_cvtpi8_ps(), _mm_cvtps_pi16(), _mm_cvtps_pi32(), _mm_cvtps_pi8(), _mm_cvtpu16_ps(), _mm_cvtpu8_ps(), _mm_cvtsi32_ss(), _mm_cvtss_f32(), _mm_cvtss_si32(), _mm_cvtt_ps2pi(), _mm_cvtt_ss2si(), _mm_cvttps_pi32(), _mm_cvttss_si32(), _mm_div_ps(), _mm_div_ss(), _mm_load_ps(), _mm_load_ss(), _mm_loadh_pi(), _mm_loadl_pi(), _mm_loadr_ps(), _mm_loadu_ps(), _mm_maskmove_si64(), _mm_max_pi16(), _mm_max_ps(), _mm_max_pu8(), _mm_max_ss(), _mm_min_pi16(), _mm_min_ps(), _mm_min_pu8(), _mm_min_ss(), _mm_move_ss(), _mm_movehl_ps(), _mm_movelh_ps(), _mm_movemask_pi8(), _mm_mul_ps(), _mm_mul_ss(), _mm_or_ps(), _mm_rcp_ps(), _mm_rcp_ss(), _mm_rsqrt_ps(), _mm_rsqrt_ss(), _mm_set1_ps(), _mm_set_ps(), _mm_set_ps1(), _mm_set_ss(), _mm_setr_ps(), _mm_setzero_ps(), _mm_sqrt_ps(), _mm_sqrt_ss(), _mm_store1_ps(), _mm_store_ps(), _mm_store_ps1(), _mm_store_ss(), _mm_storeh_pi(), _mm_storel_pi(), _mm_storeu_ps(), _mm_stream_pi(), _mm_sub_ps(), _mm_sub_ss(), _mm_ucomieq_ss(), _mm_ucomige_ss(), _mm_ucomigt_ss(), _mm_ucomile_ss(), _mm_ucomilt_ss(), _mm_ucomineq_ss(), _mm_undefined_ps(), _mm_unpackhi_ps(), _mm_unpacklo_ps(), and _mm_xor_ps().

◆ _m_ [1/2]

#define _m_   _mm_

Definition at line 2960 of file xmmintrin.h.

◆ _m_ [2/2]

#define _m_   _mm_

Definition at line 2960 of file xmmintrin.h.

◆ _m_maskmovq

#define _m_maskmovq   _mm_maskmove_si64

Definition at line 2955 of file xmmintrin.h.

◆ _m_pavgb

#define _m_pavgb   _mm_avg_pu8

Definition at line 2956 of file xmmintrin.h.

◆ _m_pavgw

#define _m_pavgw   _mm_avg_pu16

Definition at line 2957 of file xmmintrin.h.

◆ _m_pextrw

#define _m_pextrw   _mm_extract_pi16

Definition at line 2946 of file xmmintrin.h.

◆ _m_pinsrw

#define _m_pinsrw   _mm_insert_pi16

Definition at line 2947 of file xmmintrin.h.

◆ _m_pmaxsw

#define _m_pmaxsw   _mm_max_pi16

Definition at line 2948 of file xmmintrin.h.

◆ _m_pmaxub

#define _m_pmaxub   _mm_max_pu8

Definition at line 2949 of file xmmintrin.h.

◆ _m_pminsw

#define _m_pminsw   _mm_min_pi16

Definition at line 2950 of file xmmintrin.h.

◆ _m_pminub

#define _m_pminub   _mm_min_pu8

Definition at line 2951 of file xmmintrin.h.

◆ _m_pmovmskb

#define _m_pmovmskb   _mm_movemask_pi8

Definition at line 2952 of file xmmintrin.h.

◆ _m_pmulhuw

#define _m_pmulhuw   _mm_mulhi_pu16

Definition at line 2953 of file xmmintrin.h.

◆ _m_psadbw

#define _m_psadbw   _mm_sad_pu8

Definition at line 2958 of file xmmintrin.h.

◆ _m_pshufw

#define _m_pshufw   _mm_shuffle_pi16

Definition at line 2954 of file xmmintrin.h.

◆ _MM_ALIGN16

#define _MM_ALIGN16   __attribute__((aligned(16)))

Definition at line 2892 of file xmmintrin.h.

◆ _MM_EXCEPT_DENORM

#define _MM_EXCEPT_DENORM   (0x0002)

Definition at line 2897 of file xmmintrin.h.

◆ _MM_EXCEPT_DIV_ZERO

#define _MM_EXCEPT_DIV_ZERO   (0x0004)

Definition at line 2898 of file xmmintrin.h.

◆ _MM_EXCEPT_INEXACT

#define _MM_EXCEPT_INEXACT   (0x0020)

Definition at line 2901 of file xmmintrin.h.

◆ _MM_EXCEPT_INVALID

#define _MM_EXCEPT_INVALID   (0x0001)

Definition at line 2896 of file xmmintrin.h.

◆ _MM_EXCEPT_MASK

#define _MM_EXCEPT_MASK   (0x003f)

Definition at line 2902 of file xmmintrin.h.

◆ _MM_EXCEPT_OVERFLOW

#define _MM_EXCEPT_OVERFLOW   (0x0008)

Definition at line 2899 of file xmmintrin.h.

◆ _MM_EXCEPT_UNDERFLOW

#define _MM_EXCEPT_UNDERFLOW   (0x0010)

Definition at line 2900 of file xmmintrin.h.

◆ _mm_extract_pi16

#define _mm_extract_pi16 (   a,
 
)
Value:
__extension__ ({ \
(int)__builtin_ia32_vec_ext_v4hi((__m64)a, (int)n); })

Extracts 16-bit element from a 64-bit vector of [4 x i16] and returns it, as specified by the immediate integer operand.

int _mm_extract_pi16(__m64 a, int n);

This intrinsic corresponds to the VPEXTRW / PEXTRW instruction.

Parameters
aA 64-bit vector of [4 x i16].
nAn immediate integer operand that determines which bits are extracted:
0: Bits [15:0] are copied to the destination.
1: Bits [31:16] are copied to the destination.
2: Bits [47:32] are copied to the destination.
3: Bits [63:48] are copied to the destination.
Returns
A 16-bit integer containing the extracted 16 bits of packed data.

Definition at line 2150 of file xmmintrin.h.

◆ _MM_FLUSH_ZERO_MASK

#define _MM_FLUSH_ZERO_MASK   (0x8000)

Definition at line 2918 of file xmmintrin.h.

◆ _MM_FLUSH_ZERO_OFF

#define _MM_FLUSH_ZERO_OFF   (0x0000)

Definition at line 2920 of file xmmintrin.h.

◆ _MM_FLUSH_ZERO_ON

#define _MM_FLUSH_ZERO_ON   (0x8000)

Definition at line 2919 of file xmmintrin.h.

◆ _MM_GET_EXCEPTION_MASK

#define _MM_GET_EXCEPTION_MASK ( )    (_mm_getcsr() & _MM_MASK_MASK)

Definition at line 2922 of file xmmintrin.h.

◆ _MM_GET_EXCEPTION_STATE

#define _MM_GET_EXCEPTION_STATE ( )    (_mm_getcsr() & _MM_EXCEPT_MASK)

Definition at line 2923 of file xmmintrin.h.

◆ _MM_GET_FLUSH_ZERO_MODE

#define _MM_GET_FLUSH_ZERO_MODE ( )    (_mm_getcsr() & _MM_FLUSH_ZERO_MASK)

Definition at line 2924 of file xmmintrin.h.

◆ _MM_GET_ROUNDING_MODE

#define _MM_GET_ROUNDING_MODE ( )    (_mm_getcsr() & _MM_ROUND_MASK)

Definition at line 2925 of file xmmintrin.h.

◆ _MM_HINT_NTA

#define _MM_HINT_NTA   0

Definition at line 2041 of file xmmintrin.h.

◆ _MM_HINT_T0

#define _MM_HINT_T0   3

Definition at line 2038 of file xmmintrin.h.

◆ _MM_HINT_T1

#define _MM_HINT_T1   2

Definition at line 2039 of file xmmintrin.h.

◆ _MM_HINT_T2

#define _MM_HINT_T2   1

Definition at line 2040 of file xmmintrin.h.

◆ _mm_insert_pi16

#define _mm_insert_pi16 (   a,
  d,
 
)
Value:
__extension__ ({ \
(__m64)__builtin_ia32_vec_set_v4hi((__m64)a, (int)d, (int)n); })

Copies data from the 64-bit vector of [4 x i16] to the destination, and inserts the lower 16-bits of an integer operand at the 16-bit offset specified by the immediate operand n.

__m64 _mm_insert_pi16(__m64 a, int d, int n);

This intrinsic corresponds to the VPINSRW / PINSRW instruction.

Parameters
aA 64-bit vector of [4 x i16].
dAn integer. The lower 16-bit value from this operand is written to the destination at the offset specified by operand n.
nAn immediate integer operant that determines which the bits to be used in the destination.
0: Bits [15:0] are copied to the destination.
1: Bits [31:16] are copied to the destination.
2: Bits [47:32] are copied to the destination.
3: Bits [63:48] are copied to the destination.
The remaining bits in the destination are copied from the corresponding bits in operand a.
Returns
A 64-bit integer vector containing the copied packed data from the operands.

Definition at line 2181 of file xmmintrin.h.

◆ _mm_load_ps1

#define _mm_load_ps1 (   p)    _mm_load1_ps(p)

Definition at line 1687 of file xmmintrin.h.

◆ _MM_MASK_DENORM

#define _MM_MASK_DENORM   (0x0100)

Definition at line 2905 of file xmmintrin.h.

◆ _MM_MASK_DIV_ZERO

#define _MM_MASK_DIV_ZERO   (0x0200)

Definition at line 2906 of file xmmintrin.h.

◆ _MM_MASK_INEXACT

#define _MM_MASK_INEXACT   (0x1000)

Definition at line 2909 of file xmmintrin.h.

◆ _MM_MASK_INVALID

#define _MM_MASK_INVALID   (0x0080)

Definition at line 2904 of file xmmintrin.h.

◆ _MM_MASK_MASK

#define _MM_MASK_MASK   (0x1f80)

Definition at line 2910 of file xmmintrin.h.

◆ _MM_MASK_OVERFLOW

#define _MM_MASK_OVERFLOW   (0x0400)

Definition at line 2907 of file xmmintrin.h.

◆ _MM_MASK_UNDERFLOW

#define _MM_MASK_UNDERFLOW   (0x0800)

Definition at line 2908 of file xmmintrin.h.

◆ _mm_prefetch

#define _mm_prefetch (   a,
  sel 
)    (__builtin_prefetch((void *)(a), 0, (sel)))

Loads one cache line of data from the specified address to a location closer to the processor.

void _mm_prefetch(const void * a, const int sel);

This intrinsic corresponds to the PREFETCHNTA instruction.

Parameters
aA pointer to a memory location containing a cache line of data.
selA predefined integer constant specifying the type of prefetch operation:
_MM_HINT_NTA: Move data using the non-temporal access (NTA) hint. The PREFETCHNTA instruction will be generated.
_MM_HINT_T0: Move data using the T0 hint. The PREFETCHT0 instruction will be generated.
_MM_HINT_T1: Move data using the T1 hint. The PREFETCHT1 instruction will be generated.
_MM_HINT_T2: Move data using the T2 hint. The PREFETCHT2 instruction will be generated.

Definition at line 2071 of file xmmintrin.h.

◆ _MM_ROUND_DOWN

#define _MM_ROUND_DOWN   (0x2000)

Definition at line 2913 of file xmmintrin.h.

◆ _MM_ROUND_MASK

#define _MM_ROUND_MASK   (0x6000)

Definition at line 2916 of file xmmintrin.h.

◆ _MM_ROUND_NEAREST

#define _MM_ROUND_NEAREST   (0x0000)

Definition at line 2912 of file xmmintrin.h.

◆ _MM_ROUND_TOWARD_ZERO

#define _MM_ROUND_TOWARD_ZERO   (0x6000)

Definition at line 2915 of file xmmintrin.h.

◆ _MM_ROUND_UP

#define _MM_ROUND_UP   (0x4000)

Definition at line 2914 of file xmmintrin.h.

◆ _MM_SET_EXCEPTION_MASK

#define _MM_SET_EXCEPTION_MASK (   x)    (_mm_setcsr((_mm_getcsr() & ~_MM_MASK_MASK) | (x)))

Definition at line 2927 of file xmmintrin.h.

◆ _MM_SET_EXCEPTION_STATE

#define _MM_SET_EXCEPTION_STATE (   x)    (_mm_setcsr((_mm_getcsr() & ~_MM_EXCEPT_MASK) | (x)))

Definition at line 2928 of file xmmintrin.h.

◆ _MM_SET_FLUSH_ZERO_MODE

#define _MM_SET_FLUSH_ZERO_MODE (   x)    (_mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (x)))

Definition at line 2929 of file xmmintrin.h.

◆ _MM_SET_ROUNDING_MODE

#define _MM_SET_ROUNDING_MODE (   x)    (_mm_setcsr((_mm_getcsr() & ~_MM_ROUND_MASK) | (x)))

Definition at line 2930 of file xmmintrin.h.

◆ _MM_SHUFFLE

#define _MM_SHUFFLE (   z,
  y,
  x,
 
)    (((z) << 6) | ((y) << 4) | ((x) << 2) | (w))

Definition at line 2894 of file xmmintrin.h.

◆ _mm_shuffle_pi16

#define _mm_shuffle_pi16 (   a,
 
)
Value:
__extension__ ({ \
(__m64)__builtin_ia32_pshufw((__v4hi)(__m64)(a), (n)); })

Shuffles the 4 16-bit integers from a 64-bit integer vector to the destination, as specified by the immediate value operand.

__m64 _mm_shuffle_pi16(__m64 a, const int n);

This intrinsic corresponds to the PSHUFW instruction.

Parameters
aA 64-bit integer vector containing the values to be shuffled.
nAn immediate value containing an 8-bit value specifying which elements to copy from a. The destinations within the 64-bit destination are assigned values as follows:
Bits [1:0] are used to assign values to bits [15:0] in the destination.
Bits [3:2] are used to assign values to bits [31:16] in the destination.
Bits [5:4] are used to assign values to bits [47:32] in the destination.
Bits [7:6] are used to assign values to bits [63:48] in the destination.
Bit value assignments:
00: assigned from bits [15:0] of a.
01: assigned from bits [31:16] of a.
10: assigned from bits [47:32] of a.
11: assigned from bits [63:48] of a.
Returns
A 64-bit integer vector containing the shuffled values.

Definition at line 2328 of file xmmintrin.h.

◆ _mm_shuffle_ps

#define _mm_shuffle_ps (   a,
  b,
  mask 
)
Value:
__extension__ ({ \
(__m128)__builtin_shufflevector((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \
0 + (((mask) >> 0) & 0x3), \
0 + (((mask) >> 2) & 0x3), \
4 + (((mask) >> 4) & 0x3), \
4 + (((mask) >> 6) & 0x3)); })

Selects 4 float values from the 128-bit operands of [4 x float], as specified by the immediate value operand.

__m128 _mm_shuffle_ps(__m128 a, __m128 b, const int mask);

This intrinsic corresponds to the VSHUFPS / SHUFPS instruction.

Parameters
aA 128-bit vector of [4 x float].
bA 128-bit vector of [4 x float].
maskAn immediate value containing an 8-bit value specifying which elements to copy from a and b.
Bits [3:0] specify the values copied from operand a.
Bits [7:4] specify the values copied from operand b.
The destinations within the 128-bit destination are assigned values as follows:
Bits [1:0] are used to assign values to bits [31:0] in the destination.
Bits [3:2] are used to assign values to bits [63:32] in the destination.
Bits [5:4] are used to assign values to bits [95:64] in the destination.
Bits [7:6] are used to assign values to bits [127:96] in the destination.
Bit value assignments:
00: Bits [31:0] copied from the specified operand.
01: Bits [63:32] copied from the specified operand.
10: Bits [95:64] copied from the specified operand.
11: Bits [127:96] copied from the specified operand.
Returns
A 128-bit vector of [4 x float] containing the shuffled values.

Definition at line 2564 of file xmmintrin.h.

◆ _MM_TRANSPOSE4_PS

#define _MM_TRANSPOSE4_PS (   row0,
  row1,
  row2,
  row3 
)
Value:
do { \
__m128 tmp3, tmp2, tmp1, tmp0; \
tmp0 = _mm_unpacklo_ps((row0), (row1)); \
tmp2 = _mm_unpacklo_ps((row2), (row3)); \
tmp1 = _mm_unpackhi_ps((row0), (row1)); \
tmp3 = _mm_unpackhi_ps((row2), (row3)); \
(row0) = _mm_movelh_ps(tmp0, tmp2); \
(row1) = _mm_movehl_ps(tmp2, tmp0); \
(row2) = _mm_movelh_ps(tmp1, tmp3); \
(row3) = _mm_movehl_ps(tmp3, tmp1); \
} while (0)
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_unpackhi_ps(__m128 __a, __m128 __b)
Unpacks the high-order (index 2,3) values from two 128-bit vectors of [4 x float] and interleaves the...
Definition: xmmintrin.h:2588
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_movehl_ps(__m128 __a, __m128 __b)
Constructs a 128-bit floating-point vector of [4 x float].
Definition: xmmintrin.h:2652
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_unpacklo_ps(__m128 __a, __m128 __b)
Unpacks the low-order (index 0,1) values from two 128-bit vectors of [4 x float] and interleaves them...
Definition: xmmintrin.h:2610
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_movelh_ps(__m128 __a, __m128 __b)
Constructs a 128-bit floating-point vector of [4 x float].
Definition: xmmintrin.h:2673

Definition at line 2932 of file xmmintrin.h.

Typedef Documentation

◆ __attribute__

typedef unsigned int __v4su __attribute__((__vector_size__(16)))

Definition at line 29 of file xmmintrin.h.

Function Documentation

◆ _mm_add_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_add_ps ( __m128  __a,
__m128  __b 
)
static

Adds two 128-bit vectors of [4 x float], and returns the results of the addition.

This intrinsic corresponds to the VADDPS / ADDPS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the source operands.
__bA 128-bit vector of [4 x float] containing one of the source operands.
Returns
A 128-bit vector of [4 x float] containing the sums of both operands.

Definition at line 81 of file xmmintrin.h.

References __b, and __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_add_ps(), and _mm_maskz_add_ps().

◆ _mm_add_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_add_ss ( __m128  __a,
__m128  __b 
)
static

Adds the 32-bit float values in the low-order bits of the operands.

This intrinsic corresponds to the VADDSS / ADDSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the source operands. The lower 32 bits of this operand are used in the calculation.
__bA 128-bit vector of [4 x float] containing one of the source operands. The lower 32 bits of this operand are used in the calculation.
Returns
A 128-bit vector of [4 x float] whose lower 32 bits contain the sum of the lower 32 bits of both operands. The upper 96 bits are copied from the upper 96 bits of the first source operand.

Definition at line 61 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_and_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_and_ps ( __m128  __a,
__m128  __b 
)
static

Performs a bitwise AND of two 128-bit vectors of [4 x float].

This intrinsic corresponds to the VANDPS / ANDPS instructions.

Parameters
__aA 128-bit vector containing one of the source operands.
__bA 128-bit vector containing one of the source operands.
Returns
A 128-bit vector of [4 x float] containing the bitwise AND of the values between both operands.

Definition at line 418 of file xmmintrin.h.

References __b, and __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_and_ps(), and _mm_maskz_and_ps().

◆ _mm_andnot_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_andnot_ps ( __m128  __a,
__m128  __b 
)
static

Performs a bitwise AND of two 128-bit vectors of [4 x float], using the one's complement of the values contained in the first source operand.

This intrinsic corresponds to the VANDNPS / ANDNPS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing the first source operand. The one's complement of this value is used in the bitwise AND.
__bA 128-bit vector of [4 x float] containing the second source operand.
Returns
A 128-bit vector of [4 x float] containing the bitwise AND of the one's complement of the first operand and the values in the second operand.

Definition at line 440 of file xmmintrin.h.

References __b, and __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_andnot_ps(), and _mm_maskz_andnot_ps().

◆ _mm_avg_pu16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_avg_pu16 ( __m64  __a,
__m64  __b 
)
static

Computes the rounded averages of the packed unsigned 16-bit integer values and writes the averages to the corresponding bits in the destination.

This intrinsic corresponds to the PAVGW instruction.

Parameters
__aA 64-bit integer vector containing one of the source operands.
__bA 64-bit integer vector containing one of the source operands.
Returns
A 64-bit integer vector containing the averages of both operands.

Definition at line 2393 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_avg_pu8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_avg_pu8 ( __m64  __a,
__m64  __b 
)
static

Computes the rounded averages of the packed unsigned 8-bit integer values and writes the averages to the corresponding bits in the destination.

This intrinsic corresponds to the PAVGB instruction.

Parameters
__aA 64-bit integer vector containing one of the source operands.
__bA 64-bit integer vector containing one of the source operands.
Returns
A 64-bit integer vector containing the averages of both operands.

Definition at line 2374 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpeq_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpeq_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] for equality.

This intrinsic corresponds to the VCMPEQPS / CMPEQPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 517 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpeq_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpeq_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands for equality and returns the result of the comparison in the low-order bits of a vector [4 x float].

This intrinsic corresponds to the VCMPEQSS / CMPEQSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 499 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpge_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpge_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are greater than or equal to those in the second operand.

This intrinsic corresponds to the VCMPLEPS / CMPLEPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 691 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpge_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpge_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is greater than or equal to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPLESS / CMPLESS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 670 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpgt_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpgt_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are greater than those in the second operand.

This intrinsic corresponds to the VCMPLTPS / CMPLTPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 646 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpgt_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpgt_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is greater than the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPLTSS / CMPLTSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 625 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmple_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmple_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are less than or equal to those in the second operand.

This intrinsic corresponds to the VCMPLEPS / CMPLEPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 602 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmple_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmple_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is less than or equal to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPLESS / CMPLESS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 583 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmplt_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmplt_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are less than those in the second operand.

This intrinsic corresponds to the VCMPLTPS / CMPLTPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 559 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmplt_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmplt_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is less than the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPLTSS / CMPLTSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 540 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpneq_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpneq_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] for inequality.

This intrinsic corresponds to the VCMPNEQPS / CMPNEQPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 733 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpneq_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpneq_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands for inequality and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPNEQSS / CMPNEQSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 714 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpnge_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnge_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are not greater than or equal to those in the second operand.

This intrinsic corresponds to the VCMPNLEPS / CMPNLEPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 916 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpnge_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnge_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is not greater than or equal to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPNLESS / CMPNLESS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 894 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpngt_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpngt_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are not greater than those in the second operand.

This intrinsic corresponds to the VCMPNLTPS / CMPNLTPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 869 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpngt_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpngt_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is not greater than the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPNLTSS / CMPNLTSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 847 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpnle_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnle_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are not less than or equal to those in the second operand.

This intrinsic corresponds to the VCMPNLEPS / CMPNLEPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 822 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpnle_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnle_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is not less than or equal to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPNLESS / CMPNLESS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 802 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpnlt_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnlt_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are not less than those in the second operand.

This intrinsic corresponds to the VCMPNLTPS / CMPNLTPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 777 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpnlt_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnlt_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is not less than the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPNLTSS / CMPNLTSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 757 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpord_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpord_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are ordered with respect to those in the second operand.

This intrinsic corresponds to the VCMPORDPS / CMPORDPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 961 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpord_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpord_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is ordered with respect to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPORDSS / CMPORDSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 941 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpunord_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpunord_ps ( __m128  __a,
__m128  __b 
)
static

Compares each of the corresponding 32-bit float values of the 128-bit vectors of [4 x float] to determine if the values in the first operand are unordered with respect to those in the second operand.

This intrinsic corresponds to the VCMPUNORDPS / CMPUNORDPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
__bA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the comparison results.

Definition at line 1006 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cmpunord_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpunord_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the value in the first operand is unordered with respect to the corresponding value in the second operand and returns the result of the comparison in the low-order bits of a vector of [4 x float].

This intrinsic corresponds to the VCMPUNORDSS / CMPUNORDSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] containing the comparison results in the low-order bits.

Definition at line 986 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_comieq_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_comieq_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands for equality and returns the result of the comparison.

This intrinsic corresponds to the VCOMISS / COMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1027 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_comige_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_comige_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the first operand is greater than or equal to the second operand and returns the result of the comparison.

This intrinsic corresponds to the VCOMISS / COMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1112 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_comigt_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_comigt_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the first operand is greater than the second operand and returns the result of the comparison.

This intrinsic corresponds to the VCOMISS / COMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1091 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_comile_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_comile_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the first operand is less than or equal to the second operand and returns the result of the comparison.

This intrinsic corresponds to the VCOMISS / COMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1070 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_comilt_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_comilt_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the first operand is less than the second operand and returns the result of the comparison.

This intrinsic corresponds to the VCOMISS / COMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1049 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_comineq_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_comineq_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands to determine if the first operand is not equal to the second operand and returns the result of the comparison.

This intrinsic corresponds to the VCOMISS / COMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1133 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cvt_pi2ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvt_pi2ps ( __m128  __a,
__m64  __b 
)
static

Converts two elements of a 64-bit vector of [2 x i32] into two floating point values and writes them to the lower 64-bits of the destination.

The remaining higher order elements of the destination are copied from the corresponding elements in the first operand.

This intrinsic corresponds to the CVTPI2PS instruction.

Parameters
__aA 128-bit vector of [4 x float].
__bA 64-bit vector of [2 x i32]. The elements in this vector are converted and written to the corresponding low-order elements in the destination.
Returns
A 128-bit vector of [4 x float] whose lower 64 bits contain the converted value from the second operand. The upper 64 bits are copied from the upper 64 bits of the first operand.

Definition at line 1564 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_cvtpi32_ps().

◆ _mm_cvt_ps2pi()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvt_ps2pi ( __m128  __a)
static

Converts two low-order float values in a 128-bit vector of [4 x float] into a 64-bit vector of [2 x i32].

This intrinsic corresponds to the CVTPS2PI instruction.

Parameters
__aA 128-bit vector of [4 x float].
Returns
A 64-bit integer vector containing the converted values.

Definition at line 1352 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_cvtps_pi32().

◆ _mm_cvt_si2ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvt_si2ss ( __m128  __a,
int  __b 
)
static

Converts a 32-bit signed integer value into a floating point value and writes it to the lower 32 bits of the destination.

The remaining higher order elements of the destination are copied from the corresponding elements in the first operand.

This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction.

Parameters
__aA 128-bit vector of [4 x float].
__bA 32-bit signed integer operand containing the value to be converted.
Returns
A 128-bit vector of [4 x float] whose lower 32 bits contain the converted value of the second operand. The upper 96 bits are copied from the upper 96 bits of the first operand.

Definition at line 1491 of file xmmintrin.h.

References __b, __DEFAULT_FN_ATTRS, and _mm_cvtsi32_ss().

◆ _mm_cvt_ss2si()

static __inline__ int __DEFAULT_FN_ATTRS _mm_cvt_ss2si ( __m128  __a)
static

Converts a float value contained in the lower 32 bits of a vector of [4 x float] into a 32-bit integer.

This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the conversion.
Returns
A 32-bit integer containing the converted value.

Definition at line 1298 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_cvtss_si32().

◆ _mm_cvtpi16_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpi16_ps ( __m64  __a)
static

Converts a 64-bit vector of [4 x i16] into a 128-bit vector of [4 x float].

This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction.

Parameters
__aA 64-bit vector of [4 x i16]. The elements of the destination are copied from the corresponding elements in this operand.
Returns
A 128-bit vector of [4 x float] containing the copied and converted values from the operand.

Definition at line 2691 of file xmmintrin.h.

References __b, __c, __DEFAULT_FN_ATTRS, _mm_cmpgt_pi16(), _mm_cvtpi32_ps(), _mm_movelh_ps(), _mm_setzero_ps(), _mm_setzero_si64(), _mm_unpackhi_pi16(), and _mm_unpacklo_pi16().

Referenced by _mm_cvtpi8_ps(), and _mm_cvtpu8_ps().

◆ _mm_cvtpi32_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpi32_ps ( __m128  __a,
__m64  __b 
)
static

Converts two elements of a 64-bit vector of [2 x i32] into two floating point values and writes them to the lower 64-bits of the destination.

The remaining higher order elements of the destination are copied from the corresponding elements in the first operand.

This intrinsic corresponds to the CVTPI2PS instruction.

Parameters
__aA 128-bit vector of [4 x float].
__bA 64-bit vector of [2 x i32]. The elements in this vector are converted and written to the corresponding low-order elements in the destination.
Returns
A 128-bit vector of [4 x float] whose lower 64 bits contain the converted value of the second operand. The upper 64 bits are copied from the upper 64 bits of the first operand.

Definition at line 1541 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvt_pi2ps(), _mm_cvtpi16_ps(), _mm_cvtpi32x2_ps(), and _mm_cvtpu16_ps().

◆ _mm_cvtpi32x2_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpi32x2_ps ( __m64  __a,
__m64  __b 
)
static

Converts the two 32-bit signed integer values from each 64-bit vector operand of [2 x i32] into a 128-bit vector of [4 x float].

This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction.

Parameters
__aA 64-bit vector of [2 x i32]. The lower elements of the destination are copied from the elements in this operand.
__bA 64-bit vector of [2 x i32]. The upper elements of the destination are copied from the elements in this operand.
Returns
A 128-bit vector of [4 x float] whose lower 64 bits contain the copied and converted values from the first operand. The upper 64 bits contain the copied and converted values from the second operand.

Definition at line 2802 of file xmmintrin.h.

References __c, __DEFAULT_FN_ATTRS, _mm_cvtpi32_ps(), _mm_movelh_ps(), and _mm_setzero_ps().

◆ _mm_cvtpi8_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpi8_ps ( __m64  __a)
static

Converts the lower four 8-bit values from a 64-bit vector of [8 x i8] into a 128-bit vector of [4 x float].

This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction.

Parameters
__aA 64-bit vector of [8 x i8]. The elements of the destination are copied from the corresponding lower 4 elements in this operand.
Returns
A 128-bit vector of [4 x float] containing the copied and converted values from the operand.

Definition at line 2750 of file xmmintrin.h.

References __b, __DEFAULT_FN_ATTRS, _mm_cmpgt_pi8(), _mm_cvtpi16_ps(), _mm_setzero_si64(), and _mm_unpacklo_pi8().

◆ _mm_cvtps_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtps_pi16 ( __m128  __a)
static

Converts each single-precision floating-point element of a 128-bit floating-point vector of [4 x float] into a 16-bit signed integer, and packs the results into a 64-bit integer vector of [4 x i16].

If the floating-point element is NaN or infinity, or if the floating-point element is greater than 0x7FFFFFFF or less than -0x8000, it is converted to 0x8000. Otherwise if the floating-point element is greater than 0x7FFF, it is converted to 0x7FFF.

This intrinsic corresponds to the CVTPS2PI + COMPOSITE instruction.

Parameters
__aA 128-bit floating-point vector of [4 x float].
Returns
A 64-bit integer vector of [4 x i16] containing the converted values.

Definition at line 2831 of file xmmintrin.h.

References __b, __c, __DEFAULT_FN_ATTRS, _mm_cvtps_pi32(), _mm_movehl_ps(), and _mm_packs_pi32().

Referenced by _mm_cvtps_pi8().

◆ _mm_cvtps_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtps_pi32 ( __m128  __a)
static

Converts two low-order float values in a 128-bit vector of [4 x float] into a 64-bit vector of [2 x i32].

This intrinsic corresponds to the CVTPS2PI instruction.

Parameters
__aA 128-bit vector of [4 x float].
Returns
A 64-bit integer vector containing the converted values.

Definition at line 1336 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvt_ps2pi(), and _mm_cvtps_pi16().

◆ _mm_cvtps_pi8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtps_pi8 ( __m128  __a)
static

Converts each single-precision floating-point element of a 128-bit floating-point vector of [4 x float] into an 8-bit signed integer, and packs the results into the lower 32 bits of a 64-bit integer vector of [8 x i8].

The upper 32 bits of the vector are set to 0.

If the floating-point element is NaN or infinity, or if the floating-point element is greater than 0x7FFFFFFF or less than -0x80, it is converted to 0x80. Otherwise if the floating-point element is greater than 0x7F, it is converted to 0x7F.

This intrinsic corresponds to the CVTPS2PI + COMPOSITE instruction.

Parameters
__a128-bit floating-point vector of [4 x float].
Returns
A 64-bit integer vector of [8 x i8]. The lower 32 bits contain the converted values and the uppper 32 bits are set to zero.

Definition at line 2861 of file xmmintrin.h.

References __b, __c, __DEFAULT_FN_ATTRS, _mm_cvtps_pi16(), _mm_packs_pi16(), and _mm_setzero_si64().

◆ _mm_cvtpu16_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpu16_ps ( __m64  __a)
static

Converts a 64-bit vector of 16-bit unsigned integer values into a 128-bit vector of [4 x float].

This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction.

Parameters
__aA 64-bit vector of 16-bit unsigned integer values. The elements of the destination are copied from the corresponding elements in this operand.
Returns
A 128-bit vector of [4 x float] containing the copied and converted values from the operand.

Definition at line 2721 of file xmmintrin.h.

References __b, __c, __DEFAULT_FN_ATTRS, _mm_cvtpi32_ps(), _mm_movelh_ps(), _mm_setzero_ps(), _mm_setzero_si64(), _mm_unpackhi_pi16(), and _mm_unpacklo_pi16().

◆ _mm_cvtpu8_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpu8_ps ( __m64  __a)
static

Converts the lower four unsigned 8-bit integer values from a 64-bit vector of [8 x u8] into a 128-bit vector of [4 x float].

This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction.

Parameters
__aA 64-bit vector of unsigned 8-bit integer values. The elements of the destination are copied from the corresponding lower 4 elements in this operand.
Returns
A 128-bit vector of [4 x float] containing the copied and converted values from the source operand.

Definition at line 2775 of file xmmintrin.h.

References __b, __DEFAULT_FN_ATTRS, _mm_cvtpi16_ps(), _mm_setzero_si64(), and _mm_unpacklo_pi8().

◆ _mm_cvtsi32_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtsi32_ss ( __m128  __a,
int  __b 
)
static

Converts a 32-bit signed integer value into a floating point value and writes it to the lower 32 bits of the destination.

The remaining higher order elements of the destination vector are copied from the corresponding elements in the first operand.

This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction.

Parameters
__aA 128-bit vector of [4 x float].
__bA 32-bit signed integer operand containing the value to be converted.
Returns
A 128-bit vector of [4 x float] whose lower 32 bits contain the converted value of the second operand. The upper 96 bits are copied from the upper 96 bits of the first operand.

Definition at line 1468 of file xmmintrin.h.

References __b, and __DEFAULT_FN_ATTRS.

Referenced by _mm_cvt_si2ss().

◆ _mm_cvtss_f32()

static __inline__ float __DEFAULT_FN_ATTRS _mm_cvtss_f32 ( __m128  __a)
static

Extracts a float value contained in the lower 32 bits of a vector of [4 x float].

This intrinsic corresponds to the VMOVSS / MOVSS instruction.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the extraction.
Returns
A 32-bit float containing the extracted value.

Definition at line 1581 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_cvtss_si32()

static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtss_si32 ( __m128  __a)
static

Converts a float value contained in the lower 32 bits of a vector of [4 x float] into a 32-bit integer.

This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the conversion.
Returns
A 32-bit integer containing the converted value.

Definition at line 1280 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvt_ss2si().

◆ _mm_cvtt_ps2pi()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtt_ps2pi ( __m128  __a)
static

Converts two low-order float values in a 128-bit vector of [4 x float] into a 64-bit vector of [2 x i32], truncating the result when it is inexact.

This intrinsic corresponds to the CVTTPS2PI instruction.

Parameters
__aA 128-bit vector of [4 x float].
Returns
A 64-bit integer vector containing the converted values.

Definition at line 1446 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_cvttps_pi32().

◆ _mm_cvtt_ss2si()

static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtt_ss2si ( __m128  __a)
static

Converts a float value contained in the lower 32 bits of a vector of [4 x float] into a 32-bit integer, truncating the result when it is inexact.

This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the conversion.
Returns
A 32-bit integer containing the converted value.

Definition at line 1390 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_cvttss_si32().

◆ _mm_cvttps_pi32()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvttps_pi32 ( __m128  __a)
static

Converts two low-order float values in a 128-bit vector of [4 x float] into a 64-bit vector of [2 x i32], truncating the result when it is inexact.

This intrinsic corresponds to the CVTTPS2PI / VTTPS2PI instructions.

Parameters
__aA 128-bit vector of [4 x float].
Returns
A 64-bit integer vector containing the converted values.

Definition at line 1429 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtt_ps2pi().

◆ _mm_cvttss_si32()

static __inline__ int __DEFAULT_FN_ATTRS _mm_cvttss_si32 ( __m128  __a)
static

Converts a float value contained in the lower 32 bits of a vector of [4 x float] into a 32-bit integer, truncating the result when it is inexact.

This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the conversion.
Returns
A 32-bit integer containing the converted value.

Definition at line 1371 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtt_ss2si().

◆ _mm_div_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_div_ps ( __m128  __a,
__m128  __b 
)
static

Divides two 128-bit vectors of [4 x float].

This intrinsic corresponds to the VDIVPS / DIVPS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing the dividend.
__bA 128-bit vector of [4 x float] containing the divisor.
Returns
A 128-bit vector of [4 x float] containing the quotients of both operands.

Definition at line 207 of file xmmintrin.h.

References __b, and __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_div_ps(), and _mm_maskz_div_ps().

◆ _mm_div_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_div_ss ( __m128  __a,
__m128  __b 
)
static

Divides the value in the low-order 32 bits of the first operand by the corresponding value in the second operand.

This intrinsic corresponds to the VDIVSS / DIVSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing the dividend. The lower 32 bits of this operand are used in the calculation.
__bA 128-bit vector of [4 x float] containing the divisor. The lower 32 bits of this operand are used in the calculation.
Returns
A 128-bit vector of [4 x float] containing the quotients of the lower 32 bits of both operands. The upper 96 bits are copied from the upper 96 bits of the first source operand.

Definition at line 188 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_getcsr()

unsigned int _mm_getcsr ( void  )

Returns the contents of the MXCSR register as a 32-bit unsigned integer value.

There are several groups of macros associated with this intrinsic, including:

  • For checking exception states: _MM_EXCEPT_INVALID, _MM_EXCEPT_DIV_ZERO, _MM_EXCEPT_DENORM, _MM_EXCEPT_OVERFLOW, _MM_EXCEPT_UNDERFLOW, _MM_EXCEPT_INEXACT. There is a convenience wrapper _MM_GET_EXCEPTION_STATE().
  • For checking exception masks: _MM_MASK_UNDERFLOW, _MM_MASK_OVERFLOW, _MM_MASK_INVALID, _MM_MASK_DENORM, _MM_MASK_DIV_ZERO, _MM_MASK_INEXACT. There is a convenience wrapper _MM_GET_EXCEPTION_MASK().
  • For checking rounding modes: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO. There is a convenience wrapper _MM_GET_ROUNDING_MODE(x) where x is one of these macros.
  • For checking flush-to-zero mode: _MM_FLUSH_ZERO_ON, _MM_FLUSH_ZERO_OFF. There is a convenience wrapper _MM_GET_FLUSH_ZERO_MODE().
  • For checking denormals-are-zero mode: _MM_DENORMALS_ZERO_ON, _MM_DENORMALS_ZERO_OFF. There is a convenience wrapper _MM_GET_DENORMALS_ZERO_MODE().

For example, the expression below checks if an overflow exception has occurred: ( _mm_getcsr() & _MM_EXCEPT_OVERFLOW )

The following example gets the current rounding mode: _MM_GET_ROUNDING_MODE()

This intrinsic corresponds to the VSTMXCSR / STMXCSR instruction.

Returns
A 32-bit unsigned integer containing the contents of the MXCSR register.

Referenced by _mm_sad_pu8().

◆ _mm_load1_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load1_ps ( const float *  __p)
static

Loads a 32-bit float value and duplicates it to all four vector elements of a 128-bit vector of [4 x float].

This intrinsic corresponds to the VMOVSS / MOVSS + shuffling instruction.

Parameters
__pA pointer to a float value to be loaded and duplicated.
Returns
A 128-bit vector of [4 x float] containing the loaded and duplicated values.

Definition at line 1678 of file xmmintrin.h.

◆ _mm_load_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load_ps ( const float *  __p)
static

Loads a 128-bit floating-point vector of [4 x float] from an aligned memory location.

This intrinsic corresponds to the VMOVAPS / MOVAPS instruction.

Parameters
__pA pointer to a 128-bit memory location. The address of the memory location has to be 128-bit aligned.
Returns
A 128-bit vector of [4 x float] containing the loaded valus.

Definition at line 1701 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_loadr_ps().

◆ _mm_load_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load_ss ( const float *  __p)
static

Constructs a 128-bit floating-point vector of [4 x float].

The lower 32 bits of the vector are initialized with the single-precision floating-point value loaded from a specified memory location. The upper 96 bits are set to zero.

This intrinsic corresponds to the VMOVSS / MOVSS instruction.

Parameters
__pA pointer to a 32-bit memory location containing a single-precision floating-point value.
Returns
An initialized 128-bit floating-point vector of [4 x float]. The lower 32 bits contain the value loaded from the memory location. The upper 96 bits are set to zero.

Definition at line 1656 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_loadh_pi()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadh_pi ( __m128  __a,
const __m64 *  __p 
)
static

Loads two packed float values from the address __p into the high-order bits of a 128-bit vector of [4 x float].

The low-order bits are copied from the low-order bits of the first operand.

This intrinsic corresponds to the VMOVHPD / MOVHPD instruction.

Parameters
__aA 128-bit vector of [4 x float]. Bits [63:0] are written to bits [63:0] of the destination.
__pA pointer to two packed float values. Bits [63:0] are written to bits [127:64] of the destination.
Returns
A 128-bit vector of [4 x float] containing the moved values.

Definition at line 1602 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_loadl_pi()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadl_pi ( __m128  __a,
const __m64 *  __p 
)
static

Loads two packed float values from the address __p into the low-order bits of a 128-bit vector of [4 x float].

The high-order bits are copied from the high-order bits of the first operand.

This intrinsic corresponds to the VMOVLPD / MOVLPD instruction.

Parameters
__aA 128-bit vector of [4 x float]. Bits [127:64] are written to bits [127:64] of the destination.
__pA pointer to two packed float values. Bits [63:0] are written to bits [63:0] of the destination.
Returns
A 128-bit vector of [4 x float] containing the moved values.

Definition at line 1629 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_loadr_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadr_ps ( const float *  __p)
static

Loads four packed float values, in reverse order, from an aligned memory location to 32-bit elements in a 128-bit vector of [4 x float].

This intrinsic corresponds to the VMOVAPS / MOVAPS + shuffling instruction.

Parameters
__pA pointer to a 128-bit memory location. The address of the memory location has to be 128-bit aligned.
Returns
A 128-bit vector of [4 x float] containing the moved values, loaded in reverse order.

Definition at line 1740 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_load_ps().

◆ _mm_loadu_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadu_ps ( const float *  __p)
static

Loads a 128-bit floating-point vector of [4 x float] from an unaligned memory location.

This intrinsic corresponds to the VMOVUPS / MOVUPS instruction.

Parameters
__pA pointer to a 128-bit memory location. The address of the memory location does not have to be aligned.
Returns
A 128-bit vector of [4 x float] containing the loaded values.

Definition at line 1718 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm256_loadu2_m128().

◆ _mm_maskmove_si64()

static __inline__ void __DEFAULT_FN_ATTRS _mm_maskmove_si64 ( __m64  __d,
__m64  __n,
char *  __p 
)
static

Conditionally copies the values from each 8-bit element in the first 64-bit integer vector operand to the specified memory location, as specified by the most significant bit in the corresponding element in the second 64-bit integer vector operand.

To minimize caching, the data is flagged as non-temporal (unlikely to be used again soon).

This intrinsic corresponds to the MASKMOVQ instruction.

Parameters
__dA 64-bit integer vector containing the values with elements to be copied.
__nA 64-bit integer vector operand. The most significant bit from each 8-bit element determines whether the corresponding element in operand __d is copied. If the most significant bit of a given element is 1, the corresponding element in operand __d is copied.
__pA pointer to a 64-bit memory location that will receive the conditionally copied integer values. The address of the memory location does not have to be aligned.

Definition at line 2355 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_max_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_max_pi16 ( __m64  __a,
__m64  __b 
)
static

Compares each of the corresponding packed 16-bit integer values of the 64-bit integer vectors, and writes the greater value to the corresponding bits in the destination.

This intrinsic corresponds to the PMAXSW instruction.

Parameters
__aA 64-bit integer vector containing one of the source operands.
__bA 64-bit integer vector containing one of the source operands.
Returns
A 64-bit integer vector containing the comparison results.

Definition at line 2198 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_max_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_max_ps ( __m128  __a,
__m128  __b 
)
static

Compares two 128-bit vectors of [4 x float] and returns the greater of each pair of values.

This intrinsic corresponds to the VMAXPS / MAXPS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands.
__bA 128-bit vector of [4 x float] containing one of the operands.
Returns
A 128-bit vector of [4 x float] containing the maximum values between both operands.

Definition at line 400 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_max_ps(), and _mm_maskz_max_ps().

◆ _mm_max_pu8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_max_pu8 ( __m64  __a,
__m64  __b 
)
static

Compares each of the corresponding packed 8-bit unsigned integer values of the 64-bit integer vectors, and writes the greater value to the corresponding bits in the destination.

This intrinsic corresponds to the PMAXUB instruction.

Parameters
__aA 64-bit integer vector containing one of the source operands.
__bA 64-bit integer vector containing one of the source operands.
Returns
A 64-bit integer vector containing the comparison results.

Definition at line 2217 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_max_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_max_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands and returns the greater value in the low-order bits of a 128-bit vector of [4 x float].

This intrinsic corresponds to the VMAXSS / MAXSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] whose lower 32 bits contain the maximum value between both operands. The upper 96 bits are copied from the upper 96 bits of the first source operand.

Definition at line 381 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_min_pi16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_min_pi16 ( __m64  __a,
__m64  __b 
)
static

Compares each of the corresponding packed 16-bit integer values of the 64-bit integer vectors, and writes the lesser value to the corresponding bits in the destination.

This intrinsic corresponds to the PMINSW instruction.

Parameters
__aA 64-bit integer vector containing one of the source operands.
__bA 64-bit integer vector containing one of the source operands.
Returns
A 64-bit integer vector containing the comparison results.

Definition at line 2236 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_min_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_min_ps ( __m128  __a,
__m128  __b 
)
static

Compares two 128-bit vectors of [4 x float] and returns the lesser of each pair of values.

This intrinsic corresponds to the VMINPS / MINPS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands.
__bA 128-bit vector of [4 x float] containing one of the operands.
Returns
A 128-bit vector of [4 x float] containing the minimum values between both operands.

Definition at line 358 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_min_ps(), and _mm_maskz_min_ps().

◆ _mm_min_pu8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_min_pu8 ( __m64  __a,
__m64  __b 
)
static

Compares each of the corresponding packed 8-bit unsigned integer values of the 64-bit integer vectors, and writes the lesser value to the corresponding bits in the destination.

This intrinsic corresponds to the PMINUB instruction.

Parameters
__aA 64-bit integer vector containing one of the source operands.
__bA 64-bit integer vector containing one of the source operands.
Returns
A 64-bit integer vector containing the comparison results.

Definition at line 2255 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_min_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_min_ss ( __m128  __a,
__m128  __b 
)
static

Compares two 32-bit float values in the low-order bits of both operands and returns the lesser value in the low-order bits of the vector of [4 x float].

This intrinsic corresponds to the VMINSS / MINSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float] containing one of the operands. The lower 32 bits of this operand are used in the comparison.
Returns
A 128-bit vector of [4 x float] whose lower 32 bits contain the minimum value between both operands. The upper 96 bits are copied from the upper 96 bits of the first source operand.

Definition at line 339 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_move_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_move_ss ( __m128  __a,
__m128  __b 
)
static

Constructs a 128-bit floating-point vector of [4 x float].

The lower 32 bits are set to the lower 32 bits of the second parameter. The upper 96 bits are set to the upper 96 bits of the first parameter.

This intrinsic corresponds to the VMOVSS / MOVSS instruction.

Parameters
__aA 128-bit floating-point vector of [4 x float]. The upper 96 bits are written to the upper 96 bits of the result.
__bA 128-bit floating-point vector of [4 x float]. The lower 32 bits are written to the lower 32 bits of the result.
Returns
A 128-bit floating-point vector of [4 x float].

Definition at line 2631 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_movehl_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_movehl_ps ( __m128  __a,
__m128  __b 
)
static

Constructs a 128-bit floating-point vector of [4 x float].

The lower 64 bits are set to the upper 64 bits of the second parameter. The upper 64 bits are set to the upper 64 bits of the first parameter.

This intrinsic corresponds to the VUNPCKHPD / UNPCKHPD instruction.

Parameters
__aA 128-bit floating-point vector of [4 x float]. The upper 64 bits are written to the upper 64 bits of the result.
__bA 128-bit floating-point vector of [4 x float]. The upper 64 bits are written to the lower 64 bits of the result.
Returns
A 128-bit floating-point vector of [4 x float].

Definition at line 2652 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtps_pi16().

◆ _mm_movelh_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_movelh_ps ( __m128  __a,
__m128  __b 
)
static

Constructs a 128-bit floating-point vector of [4 x float].

The lower 64 bits are set to the lower 64 bits of the first parameter. The upper 64 bits are set to the lower 64 bits of the second parameter.

This intrinsic corresponds to the VUNPCKLPD / UNPCKLPD instruction.

Parameters
__aA 128-bit floating-point vector of [4 x float]. The lower 64 bits are written to the lower 64 bits of the result.
__bA 128-bit floating-point vector of [4 x float]. The lower 64 bits are written to the upper 64 bits of the result.
Returns
A 128-bit floating-point vector of [4 x float].

Definition at line 2673 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_cvtpi16_ps(), _mm_cvtpi32x2_ps(), and _mm_cvtpu16_ps().

◆ _mm_movemask_pi8()

static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_pi8 ( __m64  __a)
static

Takes the most significant bit from each 8-bit element in a 64-bit integer vector to create a 16-bit mask value.

Zero-extends the value to 32-bit integer and writes it to the destination.

This intrinsic corresponds to the PMOVMSKB instruction.

Parameters
__aA 64-bit integer vector containing the values with bits to be extracted.
Returns
The most significant bit from each 8-bit element in the operand, written to bits [15:0].

Definition at line 2273 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_movemask_ps()

static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_ps ( __m128  __a)
static

Extracts the sign bits from each single-precision floating-point element of a 128-bit floating-point vector of [4 x float] and returns the sign bits in bits [0:3] of the result.

Bits [31:4] of the result are set to zero.

This intrinsic corresponds to the VMOVMSKPS / MOVMSKPS instruction.

Parameters
__aA 128-bit floating-point vector of [4 x float].
Returns
A 32-bit integer value. Bits [3:0] contain the sign bits from each single-precision floating-point element of the parameter. Bits [31:4] are set to zero.

Definition at line 2886 of file xmmintrin.h.

◆ _mm_mul_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_mul_ps ( __m128  __a,
__m128  __b 
)
static

Multiplies two 128-bit vectors of [4 x float] and returns the results of the multiplication.

This intrinsic corresponds to the VMULPS / MULPS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the source operands.
__bA 128-bit vector of [4 x float] containing one of the source operands.
Returns
A 128-bit vector of [4 x float] containing the products of both operands.

Definition at line 166 of file xmmintrin.h.

References __b, and __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_mul_ps(), and _mm_maskz_mul_ps().

◆ _mm_mul_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_mul_ss ( __m128  __a,
__m128  __b 
)
static

Multiplies two 32-bit float values in the low-order bits of the operands.

This intrinsic corresponds to the VMULSS / MULSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the source operands. The lower 32 bits of this operand are used in the calculation.
__bA 128-bit vector of [4 x float] containing one of the source operands. The lower 32 bits of this operand are used in the calculation.
Returns
A 128-bit vector of [4 x float] containing the product of the lower 32 bits of both operands. The upper 96 bits are copied from the upper 96 bits of the first source operand.

Definition at line 146 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_mulhi_pu16()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_mulhi_pu16 ( __m64  __a,
__m64  __b 
)
static

Multiplies packed 16-bit unsigned integer values and writes the high-order 16 bits of each 32-bit product to the corresponding bits in the destination.

This intrinsic corresponds to the PMULHUW instruction.

Parameters
__aA 64-bit integer vector containing one of the source operands.
__bA 64-bit integer vector containing one of the source operands.
Returns
A 64-bit integer vector containing the products of both operands.

Definition at line 2292 of file xmmintrin.h.

◆ _mm_or_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_or_ps ( __m128  __a,
__m128  __b 
)
static

Performs a bitwise OR of two 128-bit vectors of [4 x float].

This intrinsic corresponds to the VORPS / ORPS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the source operands.
__bA 128-bit vector of [4 x float] containing one of the source operands.
Returns
A 128-bit vector of [4 x float] containing the bitwise OR of the values between both operands.

Definition at line 458 of file xmmintrin.h.

References __b, and __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_or_ps(), and _mm_maskz_or_ps().

◆ _mm_rcp_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rcp_ps ( __m128  __a)
static

Calculates the approximate reciprocals of the values stored in a 128-bit vector of [4 x float].

This intrinsic corresponds to the VRCPPS / RCPPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the approximate reciprocals of the values in the operand.

Definition at line 279 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_rcp_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rcp_ss ( __m128  __a)
static

Calculates the approximate reciprocal of the value stored in the low-order bits of a 128-bit vector of [4 x float].

This intrinsic corresponds to the VRCPSS / RCPSS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the calculation.
Returns
A 128-bit vector of [4 x float] containing the approximate reciprocal of the value in the low-order bits of the operand.

Definition at line 261 of file xmmintrin.h.

References __c, and __DEFAULT_FN_ATTRS.

◆ _mm_rsqrt_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rsqrt_ps ( __m128  __a)
static

Calculates the approximate reciprocals of the square roots of the values stored in a 128-bit vector of [4 x float].

This intrinsic corresponds to the VRSQRTPS / RSQRTPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the approximate reciprocals of the square roots of the values in the operand.

Definition at line 316 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_rsqrt_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rsqrt_ss ( __m128  __a)
static

Calculates the approximate reciprocal of the square root of the value stored in the low-order bits of a 128-bit vector of [4 x float].

This intrinsic corresponds to the VRSQRTSS / RSQRTSS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the calculation.
Returns
A 128-bit vector of [4 x float] containing the approximate reciprocal of the square root of the value in the low-order bits of the operand.

Definition at line 298 of file xmmintrin.h.

References __c, and __DEFAULT_FN_ATTRS.

◆ _mm_sad_pu8()

static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_sad_pu8 ( __m64  __a,
__m64  __b 
)
static

Subtracts the corresponding 8-bit unsigned integer values of the two 64-bit vector operands and computes the absolute value for each of the difference.

Then sum of the 8 absolute differences is written to the bits [15:0] of the destination; the remaining bits [63:16] are cleared.

This intrinsic corresponds to the PSADBW instruction.

Parameters
__aA 64-bit integer vector containing one of the source operands.
__bA 64-bit integer vector containing one of the source operands.
Returns
A 64-bit integer vector whose lower 16 bits contain the sums of the sets of absolute differences between both operands. The upper bits are cleared.

Definition at line 2415 of file xmmintrin.h.

References _mm_getcsr(), and _mm_setcsr().

◆ _mm_set1_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_set1_ps ( float  __w)
static

Constructs a 128-bit floating-point vector of [4 x float], with each of the four single-precision floating-point vector elements set to the specified single-precision floating-point value.

This intrinsic corresponds to the VPERMILPS / PERMILPS instruction.

Parameters
__wA single-precision floating-point value used to initialize each vector element of the result.
Returns
An initialized 128-bit floating-point vector of [4 x float].

Definition at line 1792 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_set_ps1().

◆ _mm_set_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_set_ps ( float  __z,
float  __y,
float  __x,
float  __w 
)
static

Constructs a 128-bit floating-point vector of [4 x float] initialized with the specified single-precision floating-point values.

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

Parameters
__zA single-precision floating-point value used to initialize bits [127:96] of the result.
__yA single-precision floating-point value used to initialize bits [95:64] of the result.
__xA single-precision floating-point value used to initialize bits [63:32] of the result.
__wA single-precision floating-point value used to initialize bits [31:0] of the result.
Returns
An initialized 128-bit floating-point vector of [4 x float].

Definition at line 1838 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, __x, and __y.

◆ _mm_set_ps1()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_set_ps1 ( float  __w)
static

Constructs a 128-bit floating-point vector of [4 x float], with each of the four single-precision floating-point vector elements set to the specified single-precision floating-point value.

This intrinsic corresponds to the VPERMILPS / PERMILPS instruction.

Parameters
__wA single-precision floating-point value used to initialize each vector element of the result.
Returns
An initialized 128-bit floating-point vector of [4 x float].

Definition at line 1811 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_set1_ps().

◆ _mm_set_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_set_ss ( float  __w)
static

Constructs a 128-bit floating-point vector of [4 x float].

The lower 32 bits of the vector are initialized with the specified single-precision floating-point value. The upper 96 bits are set to zero.

This intrinsic corresponds to the VMOVSS / MOVSS instruction.

Parameters
__wA single-precision floating-point value used to initialize the lower 32 bits of the result.
Returns
An initialized 128-bit floating-point vector of [4 x float]. The lower 32 bits contain the value provided in the source operand. The upper 96 bits are set to zero.

Definition at line 1774 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_setcsr()

void _mm_setcsr ( unsigned int  __i)

Sets the MXCSR register with the 32-bit unsigned integer value.

There are several groups of macros associated with this intrinsic, including:

  • For setting exception states: _MM_EXCEPT_INVALID, _MM_EXCEPT_DIV_ZERO, _MM_EXCEPT_DENORM, _MM_EXCEPT_OVERFLOW, _MM_EXCEPT_UNDERFLOW, _MM_EXCEPT_INEXACT. There is a convenience wrapper _MM_SET_EXCEPTION_STATE(x) where x is one of these macros.
  • For setting exception masks: _MM_MASK_UNDERFLOW, _MM_MASK_OVERFLOW, _MM_MASK_INVALID, _MM_MASK_DENORM, _MM_MASK_DIV_ZERO, _MM_MASK_INEXACT. There is a convenience wrapper _MM_SET_EXCEPTION_MASK(x) where x is one of these macros.
  • For setting rounding modes: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO. There is a convenience wrapper _MM_SET_ROUNDING_MODE(x) where x is one of these macros.
  • For setting flush-to-zero mode: _MM_FLUSH_ZERO_ON, _MM_FLUSH_ZERO_OFF. There is a convenience wrapper _MM_SET_FLUSH_ZERO_MODE(x) where x is one of these macros.
  • For setting denormals-are-zero mode: _MM_DENORMALS_ZERO_ON, _MM_DENORMALS_ZERO_OFF. There is a convenience wrapper _MM_SET_DENORMALS_ZERO_MODE(x) where x is one of these macros.

For example, the following expression causes subsequent floating-point operations to round up: _mm_setcsr(_mm_getcsr() | _MM_ROUND_UP)

The following example sets the DAZ and FTZ flags: void setFlags() { _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON) _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON) }

This intrinsic corresponds to the VLDMXCSR / LDMXCSR instruction.

Parameters
__iA 32-bit unsigned integer value to be written to the MXCSR register.

Referenced by _mm_sad_pu8().

◆ _mm_setr_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_setr_ps ( float  __z,
float  __y,
float  __x,
float  __w 
)
static

Constructs a 128-bit floating-point vector of [4 x float], initialized in reverse order with the specified 32-bit single-precision float-point values.

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

Parameters
__zA single-precision floating-point value used to initialize bits [31:0] of the result.
__yA single-precision floating-point value used to initialize bits [63:32] of the result.
__xA single-precision floating-point value used to initialize bits [95:64] of the result.
__wA single-precision floating-point value used to initialize bits [127:96] of the result.
Returns
An initialized 128-bit floating-point vector of [4 x float].

Definition at line 1866 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, __x, and __y.

◆ _mm_setzero_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_setzero_ps ( void  )
static

Constructs a 128-bit floating-point vector of [4 x float] initialized to zero.

This intrinsic corresponds to the VXORPS / XORPS instruction.

Returns
An initialized 128-bit floating-point vector of [4 x float] with all elements set to zero.

Definition at line 1881 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm256_cvtepi64_ps(), _mm256_cvtepu64_ps(), _mm256_maskz_cvtepi64_ps(), _mm256_maskz_cvtepu64_ps(), _mm256_maskz_cvtpd_ps(), _mm256_zextps128_ps256(), _mm512_zextps128_ps512(), _mm_cvtepi64_ps(), _mm_cvtepu32_ps(), _mm_cvtepu64_ps(), _mm_cvtpi16_ps(), _mm_cvtpi32x2_ps(), _mm_cvtpu16_ps(), _mm_getexp_ps(), _mm_getexp_ss(), _mm_maskz_add_ps(), _mm_maskz_add_ss(), _mm_maskz_and_ps(), _mm_maskz_andnot_ps(), _mm_maskz_broadcastss_ps(), _mm_maskz_compress_ps(), _mm_maskz_cvtepi32_ps(), _mm_maskz_cvtepi64_ps(), _mm_maskz_cvtepu32_ps(), _mm_maskz_cvtepu64_ps(), _mm_maskz_cvtpd_ps(), _mm_maskz_cvtph_ps(), _mm_maskz_cvtsd_ss(), _mm_maskz_div_ps(), _mm_maskz_div_ss(), _mm_maskz_expand_ps(), _mm_maskz_expandloadu_ps(), _mm_maskz_getexp_ps(), _mm_maskz_load_ps(), _mm_maskz_loadu_ps(), _mm_maskz_max_ps(), _mm_maskz_max_ss(), _mm_maskz_min_ps(), _mm_maskz_min_ss(), _mm_maskz_mov_ps(), _mm_maskz_movehdup_ps(), _mm_maskz_moveldup_ps(), _mm_maskz_mul_ps(), _mm_maskz_mul_ss(), _mm_maskz_or_ps(), _mm_maskz_permutevar_ps(), _mm_maskz_rcp14_ps(), _mm_maskz_rcp14_ss(), _mm_maskz_rsqrt14_ps(), _mm_maskz_rsqrt14_ss(), _mm_maskz_scalef_ps(), _mm_maskz_scalef_ss(), _mm_maskz_sqrt_ss(), _mm_maskz_sub_ps(), _mm_maskz_sub_ss(), _mm_maskz_unpackhi_ps(), _mm_maskz_unpacklo_ps(), _mm_maskz_xor_ps(), _mm_rcp14_ps(), _mm_rcp14_ss(), _mm_rsqrt14_ps(), _mm_rsqrt14_ss(), _mm_scalef_ps(), and _mm_scalef_ss().

◆ _mm_sfence()

void _mm_sfence ( void  )

Forces strong memory ordering (serialization) between store instructions preceding this instruction and store instructions following this instruction, ensuring the system completes all previous stores before executing subsequent stores.

This intrinsic corresponds to the SFENCE instruction.

Referenced by _mm_stream_ps().

◆ _mm_sqrt_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sqrt_ps ( __m128  __a)
static

Calculates the square roots of the values stored in a 128-bit vector of [4 x float].

This intrinsic corresponds to the VSQRTPS / SQRTPS instructions.

Parameters
__aA 128-bit vector of [4 x float].
Returns
A 128-bit vector of [4 x float] containing the square roots of the values in the operand.

Definition at line 243 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_sqrt_ps(), and _mm_maskz_sqrt_ps().

◆ _mm_sqrt_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sqrt_ss ( __m128  __a)
static

Calculates the square root of the value stored in the low-order bits of a 128-bit vector of [4 x float].

This intrinsic corresponds to the VSQRTSS / SQRTSS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the calculation.
Returns
A 128-bit vector of [4 x float] containing the square root of the value in the low-order bits of the operand.

Definition at line 225 of file xmmintrin.h.

References __c, and __DEFAULT_FN_ATTRS.

◆ _mm_store1_ps()

static __inline__ void __DEFAULT_FN_ATTRS _mm_store1_ps ( float *  __p,
__m128  __a 
)
static

Stores the lower 32 bits of a 128-bit vector of [4 x float] into four contiguous elements in an aligned memory location.

This intrinsic corresponds to VMOVAPS / MOVAPS + shuffling instruction.

Parameters
__pA pointer to a 128-bit memory location.
__aA 128-bit vector of [4 x float] whose lower 32 bits are stored to each of the four contiguous elements pointed by __p.

Definition at line 1993 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_store_ps().

Referenced by _mm_store_ps1().

◆ _mm_store_ps()

static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ps ( float *  __p,
__m128  __a 
)
static

Stores a 128-bit vector of [4 x float] into an aligned memory location.

This intrinsic corresponds to the VMOVAPS / MOVAPS instruction.

Parameters
__pA pointer to a 128-bit memory location. The address of the memory location has to be 16-byte aligned.
__aA 128-bit vector of [4 x float] containing the values to be stored.

Definition at line 1974 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_store1_ps(), and _mm_storer_ps().

◆ _mm_store_ps1()

static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ps1 ( float *  __p,
__m128  __a 
)
static

Stores the lower 32 bits of a 128-bit vector of [4 x float] into four contiguous elements in an aligned memory location.

This intrinsic corresponds to VMOVAPS / MOVAPS + shuffling instruction.

Parameters
__pA pointer to a 128-bit memory location.
__aA 128-bit vector of [4 x float] whose lower 32 bits are stored to each of the four contiguous elements pointed by __p.

Definition at line 2013 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS, and _mm_store1_ps().

◆ _mm_store_ss()

static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ss ( float *  __p,
__m128  __a 
)
static

Stores the lower 32 bits of a 128-bit vector of [4 x float] to a memory location.

This intrinsic corresponds to the VMOVSS / MOVSS instruction.

Parameters
__pA pointer to a 32-bit memory location.
__aA 128-bit vector of [4 x float] containing the value to be stored.

Definition at line 1932 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_storeh_pi()

static __inline__ void __DEFAULT_FN_ATTRS _mm_storeh_pi ( __m64 *  __p,
__m128  __a 
)
static

Stores the upper 64 bits of a 128-bit vector of [4 x float] to a memory location.

This intrinsic corresponds to the VPEXTRQ / MOVQ instruction.

Parameters
__pA pointer to a 64-bit memory location.
__aA 128-bit vector of [4 x float] containing the values to be stored.

Definition at line 1898 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_storel_pi()

static __inline__ void __DEFAULT_FN_ATTRS _mm_storel_pi ( __m64 *  __p,
__m128  __a 
)
static

Stores the lower 64 bits of a 128-bit vector of [4 x float] to a memory location.

This intrinsic corresponds to the VMOVLPS / MOVLPS instruction.

Parameters
__pA pointer to a memory location that will receive the float values.
__aA 128-bit vector of [4 x float] containing the values to be stored.

Definition at line 1915 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_storer_ps()

static __inline__ void __DEFAULT_FN_ATTRS _mm_storer_ps ( float *  __p,
__m128  __a 
)
static

Stores float values from a 128-bit vector of [4 x float] to an aligned memory location in reverse order.

This intrinsic corresponds to the VMOVAPS / MOVAPS + shuffling instruction.

Parameters
__pA pointer to a 128-bit memory location. The address of the memory location has to be 128-bit aligned.
__aA 128-bit vector of [4 x float] containing the values to be stored.

Definition at line 2032 of file xmmintrin.h.

References _mm_store_ps().

◆ _mm_storeu_ps()

static __inline__ void __DEFAULT_FN_ATTRS _mm_storeu_ps ( float *  __p,
__m128  __a 
)
static

Stores a 128-bit vector of [4 x float] to an unaligned memory location.

This intrinsic corresponds to the VMOVUPS / MOVUPS instruction.

Parameters
__pA pointer to a 128-bit memory location. The address of the memory location does not have to be aligned.
__aA 128-bit vector of [4 x float] containing the values to be stored.

Definition at line 1953 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm256_storeu2_m128().

◆ _mm_stream_pi()

static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pi ( __m64 *  __p,
__m64  __a 
)
static

Stores a 64-bit integer in the specified aligned memory location.

To minimize caching, the data is flagged as non-temporal (unlikely to be used again soon).

This intrinsic corresponds to the MOVNTQ instruction.

Parameters
__pA pointer to an aligned memory location used to store the register value.
__aA 64-bit integer containing the value to be stored.

Definition at line 2087 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_stream_ps()

static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_ps ( float *  __p,
__m128  __a 
)
static

Moves packed float values from a 128-bit vector of [4 x float] to a 128-bit aligned memory location.

To minimize caching, the data is flagged as non-temporal (unlikely to be used again soon).

This intrinsic corresponds to the VMOVNTPS / MOVNTPS instruction.

Parameters
__pA pointer to a 128-bit aligned memory location that will receive the single-precision floating-point values.
__aA 128-bit vector of [4 x float] containing the values to be moved.

Definition at line 2106 of file xmmintrin.h.

References _mm_sfence().

◆ _mm_sub_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sub_ps ( __m128  __a,
__m128  __b 
)
static

Subtracts each of the values of the second operand from the first operand, both of which are 128-bit vectors of [4 x float] and returns the results of the subtraction.

This intrinsic corresponds to the VSUBPS / SUBPS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing the minuend.
__bA 128-bit vector of [4 x float] containing the subtrahend.
Returns
A 128-bit vector of [4 x float] containing the differences between both operands.

Definition at line 124 of file xmmintrin.h.

References __b, and __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_sub_ps(), and _mm_maskz_sub_ps().

◆ _mm_sub_ss()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sub_ss ( __m128  __a,
__m128  __b 
)
static

Subtracts the 32-bit float value in the low-order bits of the second operand from the corresponding value in the first operand.

This intrinsic corresponds to the VSUBSS / SUBSS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing the minuend. The lower 32 bits of this operand are used in the calculation.
__bA 128-bit vector of [4 x float] containing the subtrahend. The lower 32 bits of this operand are used in the calculation.
Returns
A 128-bit vector of [4 x float] whose lower 32 bits contain the difference of the lower 32 bits of both operands. The upper 96 bits are copied from the upper 96 bits of the first source operand.

Definition at line 103 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_ucomieq_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomieq_ss ( __m128  __a,
__m128  __b 
)
static

Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine equality and returns the result of the comparison.

This intrinsic corresponds to the VUCOMISS / UCOMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1154 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_ucomige_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomige_ss ( __m128  __a,
__m128  __b 
)
static

Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine if the first operand is greater than or equal to the second operand and returns the result of the comparison.

This intrinsic corresponds to the VUCOMISS / UCOMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1241 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_ucomigt_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomigt_ss ( __m128  __a,
__m128  __b 
)
static

Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine if the first operand is greater than the second operand and returns the result of the comparison.

This intrinsic corresponds to the VUCOMISS / UCOMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1219 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_ucomile_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomile_ss ( __m128  __a,
__m128  __b 
)
static

Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine if the first operand is less than or equal to the second operand and returns the result of the comparison.

This intrinsic corresponds to the VUCOMISS / UCOMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1197 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_ucomilt_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomilt_ss ( __m128  __a,
__m128  __b 
)
static

Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine if the first operand is less than the second operand and returns the result of the comparison.

This intrinsic corresponds to the VUCOMISS / UCOMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1175 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_ucomineq_ss()

static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomineq_ss ( __m128  __a,
__m128  __b 
)
static

Performs an unordered comparison of two 32-bit float values using the low-order bits of both operands to determine inequality and returns the result of the comparison.

This intrinsic corresponds to the VUCOMISS / UCOMISS instructions.

Parameters
__aA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
__bA 128-bit vector of [4 x float]. The lower 32 bits of this operand are used in the comparison.
Returns
An integer containing the comparison results.

Definition at line 1262 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

◆ _mm_undefined_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_undefined_ps ( void  )
static

Create a 128-bit vector of [4 x float] with undefined values.

This intrinsic has no corresponding instruction.

Returns
A 128-bit vector of [4 x float] containing undefined values.

Definition at line 1754 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm256_broadcast_f32x2(), _mm512_broadcast_f32x2(), and _mm512_broadcastss_ps().

◆ _mm_unpackhi_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_unpackhi_ps ( __m128  __a,
__m128  __b 
)
static

Unpacks the high-order (index 2,3) values from two 128-bit vectors of [4 x float] and interleaves them into a 128-bit vector of [4 x float].

This intrinsic corresponds to the VUNPCKHPS / UNPCKHPS instruction.

Parameters
__aA 128-bit vector of [4 x float].
Bits [95:64] are written to bits [31:0] of the destination.
Bits [127:96] are written to bits [95:64] of the destination.
__bA 128-bit vector of [4 x float]. Bits [95:64] are written to bits [63:32] of the destination.
Bits [127:96] are written to bits [127:96] of the destination.
Returns
A 128-bit vector of [4 x float] containing the interleaved values.

Definition at line 2588 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_unpackhi_ps(), and _mm_maskz_unpackhi_ps().

◆ _mm_unpacklo_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_unpacklo_ps ( __m128  __a,
__m128  __b 
)
static

Unpacks the low-order (index 0,1) values from two 128-bit vectors of [4 x float] and interleaves them into a 128-bit vector of [4 x float].

This intrinsic corresponds to the VUNPCKLPS / UNPCKLPS instruction.

Parameters
__aA 128-bit vector of [4 x float].
Bits [31:0] are written to bits [31:0] of the destination.
Bits [63:32] are written to bits [95:64] of the destination.
__bA 128-bit vector of [4 x float].
Bits [31:0] are written to bits [63:32] of the destination.
Bits [63:32] are written to bits [127:96] of the destination.
Returns
A 128-bit vector of [4 x float] containing the interleaved values.

Definition at line 2610 of file xmmintrin.h.

References __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_unpacklo_ps(), and _mm_maskz_unpacklo_ps().

◆ _mm_xor_ps()

static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_xor_ps ( __m128  __a,
__m128  __b 
)
static

Performs a bitwise exclusive OR of two 128-bit vectors of [4 x float].

This intrinsic corresponds to the VXORPS / XORPS instructions.

Parameters
__aA 128-bit vector of [4 x float] containing one of the source operands.
__bA 128-bit vector of [4 x float] containing one of the source operands.
Returns
A 128-bit vector of [4 x float] containing the bitwise exclusive OR of the values between both operands.

Definition at line 477 of file xmmintrin.h.

References __b, and __DEFAULT_FN_ATTRS.

Referenced by _mm_mask_xor_ps(), and _mm_maskz_xor_ps().