Available on x86 or x86-64 only.
Expand description
Streaming SIMD Extensions 2 (SSE2)
Functions§
- _mm_
add_ ⚠epi8 sse2
- Adds packed 8-bit integers in
a
andb
. - _mm_
add_ ⚠epi16 sse2
- Adds packed 16-bit integers in
a
andb
. - _mm_
add_ ⚠epi32 sse2
- Adds packed 32-bit integers in
a
andb
. - _mm_
add_ ⚠epi64 sse2
- Adds packed 64-bit integers in
a
andb
. - _mm_
add_ ⚠pd sse2
- Adds packed double-precision (64-bit) floating-point elements in
a
andb
. - _mm_
add_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the sum of the low elements ofa
andb
. - _mm_
adds_ ⚠epi8 sse2
- Adds packed 8-bit integers in
a
andb
using saturation. - _mm_
adds_ ⚠epi16 sse2
- Adds packed 16-bit integers in
a
andb
using saturation. - _mm_
adds_ ⚠epu8 sse2
- Adds packed unsigned 8-bit integers in
a
andb
using saturation. - _mm_
adds_ ⚠epu16 sse2
- Adds packed unsigned 16-bit integers in
a
andb
using saturation. - _mm_
and_ ⚠pd sse2
- Computes the bitwise AND of packed double-precision (64-bit) floating-point
elements in
a
andb
. - _mm_
and_ ⚠si128 sse2
- Computes the bitwise AND of 128 bits (representing integer data) in
a
andb
. - _mm_
andnot_ ⚠pd sse2
- Computes the bitwise NOT of
a
and then AND withb
. - _mm_
andnot_ ⚠si128 sse2
- Computes the bitwise NOT of 128 bits (representing integer data) in
a
and then AND withb
. - _mm_
avg_ ⚠epu8 sse2
- Averages packed unsigned 8-bit integers in
a
andb
. - _mm_
avg_ ⚠epu16 sse2
- Averages packed unsigned 16-bit integers in
a
andb
. - _mm_
bslli_ ⚠si128 sse2
- Shifts
a
left byIMM8
bytes while shifting in zeros. - _mm_
bsrli_ ⚠si128 sse2
- Shifts
a
right byIMM8
bytes while shifting in zeros. - _mm_
castpd_ ⚠ps sse2
- Casts a 128-bit floating-point vector of
[2 x double]
into a 128-bit floating-point vector of[4 x float]
. - _mm_
castpd_ ⚠si128 sse2
- Casts a 128-bit floating-point vector of
[2 x double]
into a 128-bit integer vector. - _mm_
castps_ ⚠pd sse2
- Casts a 128-bit floating-point vector of
[4 x float]
into a 128-bit floating-point vector of[2 x double]
. - _mm_
castps_ ⚠si128 sse2
- Casts a 128-bit floating-point vector of
[4 x float]
into a 128-bit integer vector. - _mm_
castsi128_ ⚠pd sse2
- Casts a 128-bit integer vector into a 128-bit floating-point vector
of
[2 x double]
. - _mm_
castsi128_ ⚠ps sse2
- Casts a 128-bit integer vector into a 128-bit floating-point vector
of
[4 x float]
. - _mm_
clflush ⚠sse2
- Invalidates and flushes the cache line that contains
p
from all levels of the cache hierarchy. - _mm_
cmpeq_ ⚠epi8 sse2
- Compares packed 8-bit integers in
a
andb
for equality. - _mm_
cmpeq_ ⚠epi16 sse2
- Compares packed 16-bit integers in
a
andb
for equality. - _mm_
cmpeq_ ⚠epi32 sse2
- Compares packed 32-bit integers in
a
andb
for equality. - _mm_
cmpeq_ ⚠pd sse2
- Compares corresponding elements in
a
andb
for equality. - _mm_
cmpeq_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the equality comparison of the lower elements ofa
andb
. - _mm_
cmpge_ ⚠pd sse2
- Compares corresponding elements in
a
andb
for greater-than-or-equal. - _mm_
cmpge_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the greater-than-or-equal comparison of the lower elements ofa
andb
. - _mm_
cmpgt_ ⚠epi8 sse2
- Compares packed 8-bit integers in
a
andb
for greater-than. - _mm_
cmpgt_ ⚠epi16 sse2
- Compares packed 16-bit integers in
a
andb
for greater-than. - _mm_
cmpgt_ ⚠epi32 sse2
- Compares packed 32-bit integers in
a
andb
for greater-than. - _mm_
cmpgt_ ⚠pd sse2
- Compares corresponding elements in
a
andb
for greater-than. - _mm_
cmpgt_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the greater-than comparison of the lower elements ofa
andb
. - _mm_
cmple_ ⚠pd sse2
- Compares corresponding elements in
a
andb
for less-than-or-equal - _mm_
cmple_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the less-than-or-equal comparison of the lower elements ofa
andb
. - _mm_
cmplt_ ⚠epi8 sse2
- Compares packed 8-bit integers in
a
andb
for less-than. - _mm_
cmplt_ ⚠epi16 sse2
- Compares packed 16-bit integers in
a
andb
for less-than. - _mm_
cmplt_ ⚠epi32 sse2
- Compares packed 32-bit integers in
a
andb
for less-than. - _mm_
cmplt_ ⚠pd sse2
- Compares corresponding elements in
a
andb
for less-than. - _mm_
cmplt_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the less-than comparison of the lower elements ofa
andb
. - _mm_
cmpneq_ ⚠pd sse2
- Compares corresponding elements in
a
andb
for not-equal. - _mm_
cmpneq_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the not-equal comparison of the lower elements ofa
andb
. - _mm_
cmpnge_ ⚠pd sse2
- Compares corresponding elements in
a
andb
for not-greater-than-or-equal. - _mm_
cmpnge_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the not-greater-than-or-equal comparison of the lower elements ofa
andb
. - _mm_
cmpngt_ ⚠pd sse2
- Compares corresponding elements in
a
andb
for not-greater-than. - _mm_
cmpngt_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the not-greater-than comparison of the lower elements ofa
andb
. - _mm_
cmpnle_ ⚠pd sse2
- Compares corresponding elements in
a
andb
for not-less-than-or-equal. - _mm_
cmpnle_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the not-less-than-or-equal comparison of the lower elements ofa
andb
. - _mm_
cmpnlt_ ⚠pd sse2
- Compares corresponding elements in
a
andb
for not-less-than. - _mm_
cmpnlt_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the not-less-than comparison of the lower elements ofa
andb
. - _mm_
cmpord_ ⚠pd sse2
- Compares corresponding elements in
a
andb
to see if neither isNaN
. - _mm_
cmpord_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the result of comparing both of the lower elements ofa
andb
toNaN
. If neither are equal toNaN
then0xFFFFFFFFFFFFFFFF
is used and0
otherwise. - _mm_
cmpunord_ ⚠pd sse2
- Compares corresponding elements in
a
andb
to see if either isNaN
. - _mm_
cmpunord_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the result of comparing both of the lower elements ofa
andb
toNaN
. If either is equal toNaN
then0xFFFFFFFFFFFFFFFF
is used and0
otherwise. - _mm_
comieq_ ⚠sd sse2
- Compares the lower element of
a
andb
for equality. - _mm_
comige_ ⚠sd sse2
- Compares the lower element of
a
andb
for greater-than-or-equal. - _mm_
comigt_ ⚠sd sse2
- Compares the lower element of
a
andb
for greater-than. - _mm_
comile_ ⚠sd sse2
- Compares the lower element of
a
andb
for less-than-or-equal. - _mm_
comilt_ ⚠sd sse2
- Compares the lower element of
a
andb
for less-than. - _mm_
comineq_ ⚠sd sse2
- Compares the lower element of
a
andb
for not-equal. - _mm_
cvtepi32_ ⚠pd sse2
- Converts the lower two packed 32-bit integers in
a
to packed double-precision (64-bit) floating-point elements. - _mm_
cvtepi32_ ⚠ps sse2
- Converts packed 32-bit integers in
a
to packed single-precision (32-bit) floating-point elements. - _mm_
cvtpd_ ⚠epi32 sse2
- Converts packed double-precision (64-bit) floating-point elements in
a
to packed 32-bit integers. - _mm_
cvtpd_ ⚠ps sse2
- Converts packed double-precision (64-bit) floating-point elements in
a
to packed single-precision (32-bit) floating-point elements - _mm_
cvtps_ ⚠epi32 sse2
- Converts packed single-precision (32-bit) floating-point elements in
a
to packed 32-bit integers. - _mm_
cvtps_ ⚠pd sse2
- Converts packed single-precision (32-bit) floating-point elements in
a
to packed double-precision (64-bit) floating-point elements. - _mm_
cvtsd_ ⚠f64 sse2
- Returns the lower double-precision (64-bit) floating-point element of
a
. - _mm_
cvtsd_ ⚠si32 sse2
- Converts the lower double-precision (64-bit) floating-point element in a to a 32-bit integer.
- _mm_
cvtsd_ ⚠ss sse2
- Converts the lower double-precision (64-bit) floating-point element in
b
to a single-precision (32-bit) floating-point element, store the result in the lower element of the return value, and copies the upper element froma
to the upper element the return value. - _mm_
cvtsi32_ ⚠sd sse2
- Returns
a
with its lower element replaced byb
after converting it to anf64
. - _mm_
cvtsi32_ ⚠si128 sse2
- Returns a vector whose lowest element is
a
and all higher elements are0
. - _mm_
cvtsi128_ ⚠si32 sse2
- Returns the lowest element of
a
. - _mm_
cvtss_ ⚠sd sse2
- Converts the lower single-precision (32-bit) floating-point element in
b
to a double-precision (64-bit) floating-point element, store the result in the lower element of the return value, and copies the upper element froma
to the upper element the return value. - _mm_
cvttpd_ ⚠epi32 sse2
- Converts packed double-precision (64-bit) floating-point elements in
a
to packed 32-bit integers with truncation. - _mm_
cvttps_ ⚠epi32 sse2
- Converts packed single-precision (32-bit) floating-point elements in
a
to packed 32-bit integers with truncation. - _mm_
cvttsd_ ⚠si32 sse2
- Converts the lower double-precision (64-bit) floating-point element in
a
to a 32-bit integer with truncation. - _mm_
div_ ⚠pd sse2
- Divide packed double-precision (64-bit) floating-point elements in
a
by packed elements inb
. - _mm_
div_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the result of diving the lower element ofa
by the lower element ofb
. - _mm_
extract_ ⚠epi16 sse2
- Returns the
imm8
element ofa
. - _mm_
insert_ ⚠epi16 sse2
- Returns a new vector where the
imm8
element ofa
is replaced withi
. - _mm_
lfence ⚠sse2
- Performs a serializing operation on all load-from-memory instructions that were issued prior to this instruction.
- _mm_
load1_ ⚠pd sse2
- Loads a double-precision (64-bit) floating-point element from memory into both elements of returned vector.
- _mm_
load_ ⚠pd sse2
- Loads 128-bits (composed of 2 packed double-precision (64-bit)
floating-point elements) from memory into the returned vector.
mem_addr
must be aligned on a 16-byte boundary or a general-protection exception may be generated. - _mm_
load_ ⚠pd1 sse2
- Loads a double-precision (64-bit) floating-point element from memory into both elements of returned vector.
- _mm_
load_ ⚠sd sse2
- Loads a 64-bit double-precision value to the low element of a 128-bit integer vector and clears the upper element.
- _mm_
load_ ⚠si128 sse2
- Loads 128-bits of integer data from memory into a new vector.
- _mm_
loadh_ ⚠pd sse2
- Loads a double-precision value into the high-order bits of a 128-bit
vector of
[2 x double]
. The low-order bits are copied from the low-order bits of the first operand. - _mm_
loadl_ ⚠epi64 sse2
- Loads 64-bit integer from memory into first element of returned vector.
- _mm_
loadl_ ⚠pd sse2
- Loads a double-precision value into the low-order bits of a 128-bit
vector of
[2 x double]
. The high-order bits are copied from the high-order bits of the first operand. - _mm_
loadr_ ⚠pd sse2
- Loads 2 double-precision (64-bit) floating-point elements from memory into
the returned vector in reverse order.
mem_addr
must be aligned on a 16-byte boundary or a general-protection exception may be generated. - _mm_
loadu_ ⚠pd sse2
- Loads 128-bits (composed of 2 packed double-precision (64-bit)
floating-point elements) from memory into the returned vector.
mem_addr
does not need to be aligned on any particular boundary. - _mm_
loadu_ ⚠si16 sse2
- Loads unaligned 16-bits of integer data from memory into new vector.
- _mm_
loadu_ ⚠si32 sse2
- Loads unaligned 32-bits of integer data from memory into new vector.
- _mm_
loadu_ ⚠si64 sse2
- Loads unaligned 64-bits of integer data from memory into new vector.
- _mm_
loadu_ ⚠si128 sse2
- Loads 128-bits of integer data from memory into a new vector.
- _mm_
madd_ ⚠epi16 sse2
- Multiplies and then horizontally add signed 16 bit integers in
a
andb
. - _mm_
maskmoveu_ ⚠si128 sse2
- Conditionally store 8-bit integer elements from
a
into memory usingmask
. - _mm_
max_ ⚠epi16 sse2
- Compares packed 16-bit integers in
a
andb
, and returns the packed maximum values. - _mm_
max_ ⚠epu8 sse2
- Compares packed unsigned 8-bit integers in
a
andb
, and returns the packed maximum values. - _mm_
max_ ⚠pd sse2
- Returns a new vector with the maximum values from corresponding elements in
a
andb
. - _mm_
max_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the maximum of the lower elements ofa
andb
. - _mm_
mfence ⚠sse2
- Performs a serializing operation on all load-from-memory and store-to-memory instructions that were issued prior to this instruction.
- _mm_
min_ ⚠epi16 sse2
- Compares packed 16-bit integers in
a
andb
, and returns the packed minimum values. - _mm_
min_ ⚠epu8 sse2
- Compares packed unsigned 8-bit integers in
a
andb
, and returns the packed minimum values. - _mm_
min_ ⚠pd sse2
- Returns a new vector with the minimum values from corresponding elements in
a
andb
. - _mm_
min_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the minimum of the lower elements ofa
andb
. - _mm_
move_ ⚠epi64 sse2
- Returns a vector where the low element is extracted from
a
and its upper element is zero. - _mm_
move_ ⚠sd sse2
- Constructs a 128-bit floating-point vector of
[2 x double]
. The lower 64 bits are set to the lower 64 bits of the second parameter. The upper 64 bits are set to the upper 64 bits of the first parameter. - _mm_
movemask_ ⚠epi8 sse2
- Returns a mask of the most significant bit of each element in
a
. - _mm_
movemask_ ⚠pd sse2
- Returns a mask of the most significant bit of each element in
a
. - _mm_
mul_ ⚠epu32 sse2
- Multiplies the low unsigned 32-bit integers from each packed 64-bit element
in
a
andb
. - _mm_
mul_ ⚠pd sse2
- Multiplies packed double-precision (64-bit) floating-point elements in
a
andb
. - _mm_
mul_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by multiplying the low elements ofa
andb
. - _mm_
mulhi_ ⚠epi16 sse2
- Multiplies the packed 16-bit integers in
a
andb
. - _mm_
mulhi_ ⚠epu16 sse2
- Multiplies the packed unsigned 16-bit integers in
a
andb
. - _mm_
mullo_ ⚠epi16 sse2
- Multiplies the packed 16-bit integers in
a
andb
. - _mm_
or_ ⚠pd sse2
- Computes the bitwise OR of
a
andb
. - _mm_
or_ ⚠si128 sse2
- Computes the bitwise OR of 128 bits (representing integer data) in
a
andb
. - _mm_
packs_ ⚠epi16 sse2
- Converts packed 16-bit integers from
a
andb
to packed 8-bit integers using signed saturation. - _mm_
packs_ ⚠epi32 sse2
- Converts packed 32-bit integers from
a
andb
to packed 16-bit integers using signed saturation. - _mm_
packus_ ⚠epi16 sse2
- Converts packed 16-bit integers from
a
andb
to packed 8-bit integers using unsigned saturation. - _mm_
pause ⚠ - Provides a hint to the processor that the code sequence is a spin-wait loop.
- _mm_
sad_ ⚠epu8 sse2
- Sum the absolute differences of packed unsigned 8-bit integers.
- _mm_
set1_ ⚠epi8 sse2
- Broadcasts 8-bit integer
a
to all elements. - _mm_
set1_ ⚠epi16 sse2
- Broadcasts 16-bit integer
a
to all elements. - _mm_
set1_ ⚠epi32 sse2
- Broadcasts 32-bit integer
a
to all elements. - _mm_
set1_ ⚠epi64x sse2
- Broadcasts 64-bit integer
a
to all elements. - _mm_
set1_ ⚠pd sse2
- Broadcasts double-precision (64-bit) floating-point value a to all elements of the return value.
- _mm_
set_ ⚠epi8 sse2
- Sets packed 8-bit integers with the supplied values.
- _mm_
set_ ⚠epi16 sse2
- Sets packed 16-bit integers with the supplied values.
- _mm_
set_ ⚠epi32 sse2
- Sets packed 32-bit integers with the supplied values.
- _mm_
set_ ⚠epi64x sse2
- Sets packed 64-bit integers with the supplied values, from highest to lowest.
- _mm_
set_ ⚠pd sse2
- Sets packed double-precision (64-bit) floating-point elements in the return value with the supplied values.
- _mm_
set_ ⚠pd1 sse2
- Broadcasts double-precision (64-bit) floating-point value a to all elements of the return value.
- _mm_
set_ ⚠sd sse2
- Copies double-precision (64-bit) floating-point element
a
to the lower element of the packed 64-bit return value. - _mm_
setr_ ⚠epi8 sse2
- Sets packed 8-bit integers with the supplied values in reverse order.
- _mm_
setr_ ⚠epi16 sse2
- Sets packed 16-bit integers with the supplied values in reverse order.
- _mm_
setr_ ⚠epi32 sse2
- Sets packed 32-bit integers with the supplied values in reverse order.
- _mm_
setr_ ⚠pd sse2
- Sets packed double-precision (64-bit) floating-point elements in the return value with the supplied values in reverse order.
- _mm_
setzero_ ⚠pd sse2
- Returns packed double-precision (64-bit) floating-point elements with all zeros.
- _mm_
setzero_ ⚠si128 sse2
- Returns a vector with all elements set to zero.
- _mm_
shuffle_ ⚠epi32 sse2
- Shuffles 32-bit integers in
a
using the control inIMM8
. - _mm_
shuffle_ ⚠pd sse2
- Constructs a 128-bit floating-point vector of
[2 x double]
from two 128-bit vector parameters of[2 x double]
, using the immediate-value parameter as a specifier. - _mm_
shufflehi_ ⚠epi16 sse2
- Shuffles 16-bit integers in the high 64 bits of
a
using the control inIMM8
. - _mm_
shufflelo_ ⚠epi16 sse2
- Shuffles 16-bit integers in the low 64 bits of
a
using the control inIMM8
. - _mm_
sll_ ⚠epi16 sse2
- Shifts packed 16-bit integers in
a
left bycount
while shifting in zeros. - _mm_
sll_ ⚠epi32 sse2
- Shifts packed 32-bit integers in
a
left bycount
while shifting in zeros. - _mm_
sll_ ⚠epi64 sse2
- Shifts packed 64-bit integers in
a
left bycount
while shifting in zeros. - _mm_
slli_ ⚠epi16 sse2
- Shifts packed 16-bit integers in
a
left byIMM8
while shifting in zeros. - _mm_
slli_ ⚠epi32 sse2
- Shifts packed 32-bit integers in
a
left byIMM8
while shifting in zeros. - _mm_
slli_ ⚠epi64 sse2
- Shifts packed 64-bit integers in
a
left byIMM8
while shifting in zeros. - _mm_
slli_ ⚠si128 sse2
- Shifts
a
left byIMM8
bytes while shifting in zeros. - _mm_
slli_ 🔒 ⚠si128_ impl sse2
- Implementation detail: converts the immediate argument of the
_mm_slli_si128
intrinsic into a compile-time constant. - _mm_
sqrt_ ⚠pd sse2
- Returns a new vector with the square root of each of the values in
a
. - _mm_
sqrt_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by the square root of the lower elementb
. - _mm_
sra_ ⚠epi16 sse2
- Shifts packed 16-bit integers in
a
right bycount
while shifting in sign bits. - _mm_
sra_ ⚠epi32 sse2
- Shifts packed 32-bit integers in
a
right bycount
while shifting in sign bits. - _mm_
srai_ ⚠epi16 sse2
- Shifts packed 16-bit integers in
a
right byIMM8
while shifting in sign bits. - _mm_
srai_ ⚠epi32 sse2
- Shifts packed 32-bit integers in
a
right byIMM8
while shifting in sign bits. - _mm_
srl_ ⚠epi16 sse2
- Shifts packed 16-bit integers in
a
right bycount
while shifting in zeros. - _mm_
srl_ ⚠epi32 sse2
- Shifts packed 32-bit integers in
a
right bycount
while shifting in zeros. - _mm_
srl_ ⚠epi64 sse2
- Shifts packed 64-bit integers in
a
right bycount
while shifting in zeros. - _mm_
srli_ ⚠epi16 sse2
- Shifts packed 16-bit integers in
a
right byIMM8
while shifting in zeros. - _mm_
srli_ ⚠epi32 sse2
- Shifts packed 32-bit integers in
a
right byIMM8
while shifting in zeros. - _mm_
srli_ ⚠epi64 sse2
- Shifts packed 64-bit integers in
a
right byIMM8
while shifting in zeros. - _mm_
srli_ ⚠si128 sse2
- Shifts
a
right byIMM8
bytes while shifting in zeros. - _mm_
srli_ 🔒 ⚠si128_ impl sse2
- Implementation detail: converts the immediate argument of the
_mm_srli_si128
intrinsic into a compile-time constant. - _mm_
store1_ ⚠pd sse2
- Stores the lower double-precision (64-bit) floating-point element from
a
into 2 contiguous elements in memory.mem_addr
must be aligned on a 16-byte boundary or a general-protection exception may be generated. - _mm_
store_ ⚠pd sse2
- Stores 128-bits (composed of 2 packed double-precision (64-bit)
floating-point elements) from
a
into memory.mem_addr
must be aligned on a 16-byte boundary or a general-protection exception may be generated. - _mm_
store_ ⚠pd1 sse2
- Stores the lower double-precision (64-bit) floating-point element from
a
into 2 contiguous elements in memory.mem_addr
must be aligned on a 16-byte boundary or a general-protection exception may be generated. - _mm_
store_ ⚠sd sse2
- Stores the lower 64 bits of a 128-bit vector of
[2 x double]
to a memory location. - _mm_
store_ ⚠si128 sse2
- Stores 128-bits of integer data from
a
into memory. - _mm_
storeh_ ⚠pd sse2
- Stores the upper 64 bits of a 128-bit vector of
[2 x double]
to a memory location. - _mm_
storel_ ⚠epi64 sse2
- Stores the lower 64-bit integer
a
to a memory location. - _mm_
storel_ ⚠pd sse2
- Stores the lower 64 bits of a 128-bit vector of
[2 x double]
to a memory location. - _mm_
storer_ ⚠pd sse2
- Stores 2 double-precision (64-bit) floating-point elements from
a
into memory in reverse order.mem_addr
must be aligned on a 16-byte boundary or a general-protection exception may be generated. - _mm_
storeu_ ⚠pd sse2
- Stores 128-bits (composed of 2 packed double-precision (64-bit)
floating-point elements) from
a
into memory.mem_addr
does not need to be aligned on any particular boundary. - _mm_
storeu_ ⚠si16 sse2
- Store 16-bit integer from the first element of a into memory.
- _mm_
storeu_ ⚠si32 sse2
- Store 32-bit integer from the first element of a into memory.
- _mm_
storeu_ ⚠si64 sse2
- Store 64-bit integer from the first element of a into memory.
- _mm_
storeu_ ⚠si128 sse2
- Stores 128-bits of integer data from
a
into memory. - _mm_
stream_ ⚠pd sse2
- Stores a 128-bit floating point vector of
[2 x double]
to a 128-bit aligned memory location. To minimize caching, the data is flagged as non-temporal (unlikely to be used again soon). - _mm_
stream_ ⚠si32 sse2
- Stores a 32-bit integer value in the specified memory location. To minimize caching, the data is flagged as non-temporal (unlikely to be used again soon).
- _mm_
stream_ ⚠si128 sse2
- Stores a 128-bit integer vector to a 128-bit aligned memory location. To minimize caching, the data is flagged as non-temporal (unlikely to be used again soon).
- _mm_
sub_ ⚠epi8 sse2
- Subtracts packed 8-bit integers in
b
from packed 8-bit integers ina
. - _mm_
sub_ ⚠epi16 sse2
- Subtracts packed 16-bit integers in
b
from packed 16-bit integers ina
. - _mm_
sub_ ⚠epi32 sse2
- Subtract packed 32-bit integers in
b
from packed 32-bit integers ina
. - _mm_
sub_ ⚠epi64 sse2
- Subtract packed 64-bit integers in
b
from packed 64-bit integers ina
. - _mm_
sub_ ⚠pd sse2
- Subtract packed double-precision (64-bit) floating-point elements in
b
froma
. - _mm_
sub_ ⚠sd sse2
- Returns a new vector with the low element of
a
replaced by subtracting the low element byb
from the low element ofa
. - _mm_
subs_ ⚠epi8 sse2
- Subtract packed 8-bit integers in
b
from packed 8-bit integers ina
using saturation. - _mm_
subs_ ⚠epi16 sse2
- Subtract packed 16-bit integers in
b
from packed 16-bit integers ina
using saturation. - _mm_
subs_ ⚠epu8 sse2
- Subtract packed unsigned 8-bit integers in
b
from packed unsigned 8-bit integers ina
using saturation. - _mm_
subs_ ⚠epu16 sse2
- Subtract packed unsigned 16-bit integers in
b
from packed unsigned 16-bit integers ina
using saturation. - _mm_
ucomieq_ ⚠sd sse2
- Compares the lower element of
a
andb
for equality. - _mm_
ucomige_ ⚠sd sse2
- Compares the lower element of
a
andb
for greater-than-or-equal. - _mm_
ucomigt_ ⚠sd sse2
- Compares the lower element of
a
andb
for greater-than. - _mm_
ucomile_ ⚠sd sse2
- Compares the lower element of
a
andb
for less-than-or-equal. - _mm_
ucomilt_ ⚠sd sse2
- Compares the lower element of
a
andb
for less-than. - _mm_
ucomineq_ ⚠sd sse2
- Compares the lower element of
a
andb
for not-equal. - _mm_
undefined_ ⚠pd sse2
- Returns vector of type __m128d with indeterminate elements.with indetermination elements.
Despite using the word “undefined” (following Intel’s naming scheme), this non-deterministically
picks some valid value and is not equivalent to
mem::MaybeUninit
. In practice, this is typically equivalent tomem::zeroed
. - _mm_
undefined_ ⚠si128 sse2
- Returns vector of type __m128i with indeterminate elements.with indetermination elements.
Despite using the word “undefined” (following Intel’s naming scheme), this non-deterministically
picks some valid value and is not equivalent to
mem::MaybeUninit
. In practice, this is typically equivalent tomem::zeroed
. - _mm_
unpackhi_ ⚠epi8 sse2
- Unpacks and interleave 8-bit integers from the high half of
a
andb
. - _mm_
unpackhi_ ⚠epi16 sse2
- Unpacks and interleave 16-bit integers from the high half of
a
andb
. - _mm_
unpackhi_ ⚠epi32 sse2
- Unpacks and interleave 32-bit integers from the high half of
a
andb
. - _mm_
unpackhi_ ⚠epi64 sse2
- Unpacks and interleave 64-bit integers from the high half of
a
andb
. - _mm_
unpackhi_ ⚠pd sse2
- The resulting
__m128d
element is composed by the low-order values of the two__m128d
interleaved input elements, i.e.: - _mm_
unpacklo_ ⚠epi8 sse2
- Unpacks and interleave 8-bit integers from the low half of
a
andb
. - _mm_
unpacklo_ ⚠epi16 sse2
- Unpacks and interleave 16-bit integers from the low half of
a
andb
. - _mm_
unpacklo_ ⚠epi32 sse2
- Unpacks and interleave 32-bit integers from the low half of
a
andb
. - _mm_
unpacklo_ ⚠epi64 sse2
- Unpacks and interleave 64-bit integers from the low half of
a
andb
. - _mm_
unpacklo_ ⚠pd sse2
- The resulting
__m128d
element is composed by the high-order values of the two__m128d
interleaved input elements, i.e.: - _mm_
xor_ ⚠pd sse2
- Computes the bitwise XOR of
a
andb
. - _mm_
xor_ ⚠si128 sse2
- Computes the bitwise XOR of 128 bits (representing integer data) in
a
andb
. - clflush 🔒 ⚠
- cmppd 🔒 ⚠
- cmpsd 🔒 ⚠
- comieqsd 🔒 ⚠
- comigesd 🔒 ⚠
- comigtsd 🔒 ⚠
- comilesd 🔒 ⚠
- comiltsd 🔒 ⚠
- comineqsd 🔒 ⚠
- cvtpd2dq 🔒 ⚠
- cvtps2dq 🔒 ⚠
- cvtsd2si 🔒 ⚠
- cvtsd2ss 🔒 ⚠
- cvtss2sd 🔒 ⚠
- cvttpd2dq 🔒 ⚠
- cvttps2dq 🔒 ⚠
- cvttsd2si 🔒 ⚠
- lfence 🔒 ⚠
- maskmovdqu 🔒 ⚠
- maxpd 🔒 ⚠
- maxsd 🔒 ⚠
- mfence 🔒 ⚠
- minpd 🔒 ⚠
- minsd 🔒 ⚠
- packssdw 🔒 ⚠
- packsswb 🔒 ⚠
- packuswb 🔒 ⚠
- pause 🔒 ⚠
- pmaddwd 🔒 ⚠
- psadbw 🔒 ⚠
- pslld 🔒 ⚠
- psllq 🔒 ⚠
- psllw 🔒 ⚠
- psrad 🔒 ⚠
- psraw 🔒 ⚠
- psrld 🔒 ⚠
- psrlq 🔒 ⚠
- psrlw 🔒 ⚠
- ucomieqsd 🔒 ⚠
- ucomigesd 🔒 ⚠
- ucomigtsd 🔒 ⚠
- ucomilesd 🔒 ⚠
- ucomiltsd 🔒 ⚠
- ucomineqsd 🔒 ⚠