Available on x86 or x86-64 only.
Expand description
Advanced Vector Extensions 2 (AVX)
AVX2 expands most AVX commands to 256-bit wide vector registers and adds FMA.
The references are:
- Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 2: Instruction Set Reference, A-Z.
- AMD64 Architecture Programmer’s Manual, Volume 3: General-Purpose and System Instructions.
Wikipedia’s AVX and FMA pages provide a quick overview of the instructions available.
Functions§
- _mm256_
abs_ ⚠epi8 avx2
- Computes the absolute values of packed 8-bit integers in
a
. - _mm256_
abs_ ⚠epi16 avx2
- Computes the absolute values of packed 16-bit integers in
a
. - _mm256_
abs_ ⚠epi32 avx2
- Computes the absolute values of packed 32-bit integers in
a
. - _mm256_
add_ ⚠epi8 avx2
- Adds packed 8-bit integers in
a
andb
. - _mm256_
add_ ⚠epi16 avx2
- Adds packed 16-bit integers in
a
andb
. - _mm256_
add_ ⚠epi32 avx2
- Adds packed 32-bit integers in
a
andb
. - _mm256_
add_ ⚠epi64 avx2
- Adds packed 64-bit integers in
a
andb
. - _mm256_
adds_ ⚠epi8 avx2
- Adds packed 8-bit integers in
a
andb
using saturation. - _mm256_
adds_ ⚠epi16 avx2
- Adds packed 16-bit integers in
a
andb
using saturation. - _mm256_
adds_ ⚠epu8 avx2
- Adds packed unsigned 8-bit integers in
a
andb
using saturation. - _mm256_
adds_ ⚠epu16 avx2
- Adds packed unsigned 16-bit integers in
a
andb
using saturation. - _mm256_
alignr_ ⚠epi8 avx2
- Concatenates pairs of 16-byte blocks in
a
andb
into a 32-byte temporary result, shifts the result right byn
bytes, and returns the low 16 bytes. - _mm256_
and_ ⚠si256 avx2
- Computes the bitwise AND of 256 bits (representing integer data)
in
a
andb
. - _mm256_
andnot_ ⚠si256 avx2
- Computes the bitwise NOT of 256 bits (representing integer data)
in
a
and then AND withb
. - _mm256_
avg_ ⚠epu8 avx2
- Averages packed unsigned 8-bit integers in
a
andb
. - _mm256_
avg_ ⚠epu16 avx2
- Averages packed unsigned 16-bit integers in
a
andb
. - _mm256_
blend_ ⚠epi16 avx2
- Blends packed 16-bit integers from
a
andb
using control maskIMM8
. - _mm256_
blend_ ⚠epi32 avx2
- Blends packed 32-bit integers from
a
andb
using control maskIMM8
. - _mm256_
blendv_ ⚠epi8 avx2
- Blends packed 8-bit integers from
a
andb
usingmask
. - _mm256_
broadcastb_ ⚠epi8 avx2
- Broadcasts the low packed 8-bit integer from
a
to all elements of the 256-bit returned value. - _mm256_
broadcastd_ ⚠epi32 avx2
- Broadcasts the low packed 32-bit integer from
a
to all elements of the 256-bit returned value. - _mm256_
broadcastq_ ⚠epi64 avx2
- Broadcasts the low packed 64-bit integer from
a
to all elements of the 256-bit returned value. - _mm256_
broadcastsd_ ⚠pd avx2
- Broadcasts the low double-precision (64-bit) floating-point element
from
a
to all elements of the 256-bit returned value. - _mm256_
broadcastsi128_ ⚠si256 avx2
- Broadcasts 128 bits of integer data from a to all 128-bit lanes in the 256-bit returned value.
- _mm256_
broadcastss_ ⚠ps avx2
- Broadcasts the low single-precision (32-bit) floating-point element
from
a
to all elements of the 256-bit returned value. - _mm256_
broadcastw_ ⚠epi16 avx2
- Broadcasts the low packed 16-bit integer from a to all elements of the 256-bit returned value
- _mm256_
bslli_ ⚠epi128 avx2
- Shifts 128-bit lanes in
a
left byimm8
bytes while shifting in zeros. - _mm256_
bsrli_ ⚠epi128 avx2
- Shifts 128-bit lanes in
a
right byimm8
bytes while shifting in zeros. - _mm256_
cmpeq_ ⚠epi8 avx2
- Compares packed 8-bit integers in
a
andb
for equality. - _mm256_
cmpeq_ ⚠epi16 avx2
- Compares packed 16-bit integers in
a
andb
for equality. - _mm256_
cmpeq_ ⚠epi32 avx2
- Compares packed 32-bit integers in
a
andb
for equality. - _mm256_
cmpeq_ ⚠epi64 avx2
- Compares packed 64-bit integers in
a
andb
for equality. - _mm256_
cmpgt_ ⚠epi8 avx2
- Compares packed 8-bit integers in
a
andb
for greater-than. - _mm256_
cmpgt_ ⚠epi16 avx2
- Compares packed 16-bit integers in
a
andb
for greater-than. - _mm256_
cmpgt_ ⚠epi32 avx2
- Compares packed 32-bit integers in
a
andb
for greater-than. - _mm256_
cmpgt_ ⚠epi64 avx2
- Compares packed 64-bit integers in
a
andb
for greater-than. - _mm256_
cvtepi8_ ⚠epi16 avx2
- Sign-extend 8-bit integers to 16-bit integers.
- _mm256_
cvtepi8_ ⚠epi32 avx2
- Sign-extend 8-bit integers to 32-bit integers.
- _mm256_
cvtepi8_ ⚠epi64 avx2
- Sign-extend 8-bit integers to 64-bit integers.
- _mm256_
cvtepi16_ ⚠epi32 avx2
- Sign-extend 16-bit integers to 32-bit integers.
- _mm256_
cvtepi16_ ⚠epi64 avx2
- Sign-extend 16-bit integers to 64-bit integers.
- _mm256_
cvtepi32_ ⚠epi64 avx2
- Sign-extend 32-bit integers to 64-bit integers.
- _mm256_
cvtepu8_ ⚠epi16 avx2
- Zero-extend unsigned 8-bit integers in
a
to 16-bit integers. - _mm256_
cvtepu8_ ⚠epi32 avx2
- Zero-extend the lower eight unsigned 8-bit integers in
a
to 32-bit integers. The upper eight elements ofa
are unused. - _mm256_
cvtepu8_ ⚠epi64 avx2
- Zero-extend the lower four unsigned 8-bit integers in
a
to 64-bit integers. The upper twelve elements ofa
are unused. - _mm256_
cvtepu16_ ⚠epi32 avx2
- Zeroes extend packed unsigned 16-bit integers in
a
to packed 32-bit integers, and stores the results indst
. - _mm256_
cvtepu16_ ⚠epi64 avx2
- Zero-extend the lower four unsigned 16-bit integers in
a
to 64-bit integers. The upper four elements ofa
are unused. - _mm256_
cvtepu32_ ⚠epi64 avx2
- Zero-extend unsigned 32-bit integers in
a
to 64-bit integers. - _mm256_
extract_ ⚠epi8 avx2
- Extracts an 8-bit integer from
a
, selected withINDEX
. Returns a 32-bit integer containing the zero-extended integer data. - _mm256_
extract_ ⚠epi16 avx2
- Extracts a 16-bit integer from
a
, selected withINDEX
. Returns a 32-bit integer containing the zero-extended integer data. - _mm256_
extracti128_ ⚠si256 avx2
- Extracts 128 bits (of integer data) from
a
selected withIMM1
. - _mm256_
hadd_ ⚠epi16 avx2
- Horizontally adds adjacent pairs of 16-bit integers in
a
andb
. - _mm256_
hadd_ ⚠epi32 avx2
- Horizontally adds adjacent pairs of 32-bit integers in
a
andb
. - _mm256_
hadds_ ⚠epi16 avx2
- Horizontally adds adjacent pairs of 16-bit integers in
a
andb
using saturation. - _mm256_
hsub_ ⚠epi16 avx2
- Horizontally subtract adjacent pairs of 16-bit integers in
a
andb
. - _mm256_
hsub_ ⚠epi32 avx2
- Horizontally subtract adjacent pairs of 32-bit integers in
a
andb
. - _mm256_
hsubs_ ⚠epi16 avx2
- Horizontally subtract adjacent pairs of 16-bit integers in
a
andb
using saturation. - _mm256_
i32gather_ ⚠epi32 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm256_
i32gather_ ⚠epi64 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm256_
i32gather_ ⚠pd avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm256_
i32gather_ ⚠ps avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm256_
i64gather_ ⚠epi32 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm256_
i64gather_ ⚠epi64 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm256_
i64gather_ ⚠pd avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm256_
i64gather_ ⚠ps avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm256_
inserti128_ ⚠si256 avx2
- Copies
a
todst
, then insert 128 bits (of integer data) fromb
at the location specified byIMM1
. - _mm256_
madd_ ⚠epi16 avx2
- Multiplies packed signed 16-bit integers in
a
andb
, producing intermediate signed 32-bit integers. Horizontally add adjacent pairs of intermediate 32-bit integers. - _mm256_
maddubs_ ⚠epi16 avx2
- Vertically multiplies each unsigned 8-bit integer from
a
with the corresponding signed 8-bit integer fromb
, producing intermediate signed 16-bit integers. Horizontally add adjacent pairs of intermediate signed 16-bit integers - _mm256_
mask_ ⚠i32gather_ epi32 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm256_
mask_ ⚠i32gather_ epi64 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm256_
mask_ ⚠i32gather_ pd avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm256_
mask_ ⚠i32gather_ ps avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm256_
mask_ ⚠i64gather_ epi32 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm256_
mask_ ⚠i64gather_ epi64 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm256_
mask_ ⚠i64gather_ pd avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm256_
mask_ ⚠i64gather_ ps avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm256_
maskload_ ⚠epi32 avx2
- Loads packed 32-bit integers from memory pointed by
mem_addr
usingmask
(elements are zeroed out when the highest bit is not set in the corresponding element). - _mm256_
maskload_ ⚠epi64 avx2
- Loads packed 64-bit integers from memory pointed by
mem_addr
usingmask
(elements are zeroed out when the highest bit is not set in the corresponding element). - _mm256_
maskstore_ ⚠epi32 avx2
- Stores packed 32-bit integers from
a
into memory pointed bymem_addr
usingmask
(elements are not stored when the highest bit is not set in the corresponding element). - _mm256_
maskstore_ ⚠epi64 avx2
- Stores packed 64-bit integers from
a
into memory pointed bymem_addr
usingmask
(elements are not stored when the highest bit is not set in the corresponding element). - _mm256_
max_ ⚠epi8 avx2
- Compares packed 8-bit integers in
a
andb
, and returns the packed maximum values. - _mm256_
max_ ⚠epi16 avx2
- Compares packed 16-bit integers in
a
andb
, and returns the packed maximum values. - _mm256_
max_ ⚠epi32 avx2
- Compares packed 32-bit integers in
a
andb
, and returns the packed maximum values. - _mm256_
max_ ⚠epu8 avx2
- Compares packed unsigned 8-bit integers in
a
andb
, and returns the packed maximum values. - _mm256_
max_ ⚠epu16 avx2
- Compares packed unsigned 16-bit integers in
a
andb
, and returns the packed maximum values. - _mm256_
max_ ⚠epu32 avx2
- Compares packed unsigned 32-bit integers in
a
andb
, and returns the packed maximum values. - _mm256_
min_ ⚠epi8 avx2
- Compares packed 8-bit integers in
a
andb
, and returns the packed minimum values. - _mm256_
min_ ⚠epi16 avx2
- Compares packed 16-bit integers in
a
andb
, and returns the packed minimum values. - _mm256_
min_ ⚠epi32 avx2
- Compares packed 32-bit integers in
a
andb
, and returns the packed minimum values. - _mm256_
min_ ⚠epu8 avx2
- Compares packed unsigned 8-bit integers in
a
andb
, and returns the packed minimum values. - _mm256_
min_ ⚠epu16 avx2
- Compares packed unsigned 16-bit integers in
a
andb
, and returns the packed minimum values. - _mm256_
min_ ⚠epu32 avx2
- Compares packed unsigned 32-bit integers in
a
andb
, and returns the packed minimum values. - _mm256_
movemask_ ⚠epi8 avx2
- Creates mask from the most significant bit of each 8-bit element in
a
, return the result. - _mm256_
mpsadbw_ ⚠epu8 avx2
- Computes the sum of absolute differences (SADs) of quadruplets of unsigned
8-bit integers in
a
compared to those inb
, and stores the 16-bit results in dst. Eight SADs are performed for each 128-bit lane using one quadruplet fromb
and eight quadruplets froma
. One quadruplet is selected fromb
starting at on the offset specified inimm8
. Eight quadruplets are formed from sequential 8-bit integers selected froma
starting at the offset specified inimm8
. - _mm256_
mul_ ⚠epi32 avx2
- Multiplies the low 32-bit integers from each packed 64-bit element in
a
andb
- _mm256_
mul_ ⚠epu32 avx2
- Multiplies the low unsigned 32-bit integers from each packed 64-bit
element in
a
andb
- _mm256_
mulhi_ ⚠epi16 avx2
- Multiplies the packed 16-bit integers in
a
andb
, producing intermediate 32-bit integers and returning the high 16 bits of the intermediate integers. - _mm256_
mulhi_ ⚠epu16 avx2
- Multiplies the packed unsigned 16-bit integers in
a
andb
, producing intermediate 32-bit integers and returning the high 16 bits of the intermediate integers. - _mm256_
mulhrs_ ⚠epi16 avx2
- Multiplies packed 16-bit integers in
a
andb
, producing intermediate signed 32-bit integers. Truncate each intermediate integer to the 18 most significant bits, round by adding 1, and return bits[16:1]
. - _mm256_
mullo_ ⚠epi16 avx2
- Multiplies the packed 16-bit integers in
a
andb
, producing intermediate 32-bit integers, and returns the low 16 bits of the intermediate integers - _mm256_
mullo_ ⚠epi32 avx2
- Multiplies the packed 32-bit integers in
a
andb
, producing intermediate 64-bit integers, and returns the low 32 bits of the intermediate integers - _mm256_
or_ ⚠si256 avx2
- Computes the bitwise OR of 256 bits (representing integer data) in
a
andb
- _mm256_
packs_ ⚠epi16 avx2
- Converts packed 16-bit integers from
a
andb
to packed 8-bit integers using signed saturation - _mm256_
packs_ ⚠epi32 avx2
- Converts packed 32-bit integers from
a
andb
to packed 16-bit integers using signed saturation - _mm256_
packus_ ⚠epi16 avx2
- Converts packed 16-bit integers from
a
andb
to packed 8-bit integers using unsigned saturation - _mm256_
packus_ ⚠epi32 avx2
- Converts packed 32-bit integers from
a
andb
to packed 16-bit integers using unsigned saturation - _mm256_
permute2x128_ ⚠si256 avx2
- Shuffles 128-bits of integer data selected by
imm8
froma
andb
. - _mm256_
permute4x64_ ⚠epi64 avx2
- Permutes 64-bit integers from
a
using control maskimm8
. - _mm256_
permute4x64_ ⚠pd avx2
- Shuffles 64-bit floating-point elements in
a
across lanes using the control inimm8
. - _mm256_
permutevar8x32_ ⚠epi32 avx2
- Permutes packed 32-bit integers from
a
according to the content ofb
. - _mm256_
permutevar8x32_ ⚠ps avx2
- Shuffles eight 32-bit floating-point elements in
a
across lanes using the corresponding 32-bit integer index inidx
. - _mm256_
sad_ ⚠epu8 avx2
- Computes the absolute differences of packed unsigned 8-bit integers in
a
andb
, then horizontally sum each consecutive 8 differences to produce four unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low 16 bits of the 64-bit return value - _mm256_
shuffle_ ⚠epi8 avx2
- Shuffles bytes from
a
according to the content ofb
. - _mm256_
shuffle_ ⚠epi32 avx2
- Shuffles 32-bit integers in 128-bit lanes of
a
using the control inimm8
. - _mm256_
shufflehi_ ⚠epi16 avx2
- Shuffles 16-bit integers in the high 64 bits of 128-bit lanes of
a
using the control inimm8
. The low 64 bits of 128-bit lanes ofa
are copied to the output. - _mm256_
shufflelo_ ⚠epi16 avx2
- Shuffles 16-bit integers in the low 64 bits of 128-bit lanes of
a
using the control inimm8
. The high 64 bits of 128-bit lanes ofa
are copied to the output. - _mm256_
sign_ ⚠epi8 avx2
- Negates packed 8-bit integers in
a
when the corresponding signed 8-bit integer inb
is negative, and returns the results. Results are zeroed out when the corresponding element inb
is zero. - _mm256_
sign_ ⚠epi16 avx2
- Negates packed 16-bit integers in
a
when the corresponding signed 16-bit integer inb
is negative, and returns the results. Results are zeroed out when the corresponding element inb
is zero. - _mm256_
sign_ ⚠epi32 avx2
- Negates packed 32-bit integers in
a
when the corresponding signed 32-bit integer inb
is negative, and returns the results. Results are zeroed out when the corresponding element inb
is zero. - _mm256_
sll_ ⚠epi16 avx2
- Shifts packed 16-bit integers in
a
left bycount
while shifting in zeros, and returns the result - _mm256_
sll_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
left bycount
while shifting in zeros, and returns the result - _mm256_
sll_ ⚠epi64 avx2
- Shifts packed 64-bit integers in
a
left bycount
while shifting in zeros, and returns the result - _mm256_
slli_ ⚠epi16 avx2
- Shifts packed 16-bit integers in
a
left byIMM8
while shifting in zeros, return the results; - _mm256_
slli_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
left byIMM8
while shifting in zeros, return the results; - _mm256_
slli_ ⚠epi64 avx2
- Shifts packed 64-bit integers in
a
left byIMM8
while shifting in zeros, return the results; - _mm256_
slli_ ⚠si256 avx2
- Shifts 128-bit lanes in
a
left byimm8
bytes while shifting in zeros. - _mm256_
sllv_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
left by the amount specified by the corresponding element incount
while shifting in zeros, and returns the result. - _mm256_
sllv_ ⚠epi64 avx2
- Shifts packed 64-bit integers in
a
left by the amount specified by the corresponding element incount
while shifting in zeros, and returns the result. - _mm256_
sra_ ⚠epi16 avx2
- Shifts packed 16-bit integers in
a
right bycount
while shifting in sign bits. - _mm256_
sra_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
right bycount
while shifting in sign bits. - _mm256_
srai_ ⚠epi16 avx2
- Shifts packed 16-bit integers in
a
right byIMM8
while shifting in sign bits. - _mm256_
srai_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
right byIMM8
while shifting in sign bits. - _mm256_
srav_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
right by the amount specified by the corresponding element incount
while shifting in sign bits. - _mm256_
srl_ ⚠epi16 avx2
- Shifts packed 16-bit integers in
a
right bycount
while shifting in zeros. - _mm256_
srl_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
right bycount
while shifting in zeros. - _mm256_
srl_ ⚠epi64 avx2
- Shifts packed 64-bit integers in
a
right bycount
while shifting in zeros. - _mm256_
srli_ ⚠epi16 avx2
- Shifts packed 16-bit integers in
a
right byIMM8
while shifting in zeros - _mm256_
srli_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
right byIMM8
while shifting in zeros - _mm256_
srli_ ⚠epi64 avx2
- Shifts packed 64-bit integers in
a
right byIMM8
while shifting in zeros - _mm256_
srli_ ⚠si256 avx2
- Shifts 128-bit lanes in
a
right byimm8
bytes while shifting in zeros. - _mm256_
srlv_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
right by the amount specified by the corresponding element incount
while shifting in zeros, - _mm256_
srlv_ ⚠epi64 avx2
- Shifts packed 64-bit integers in
a
right by the amount specified by the corresponding element incount
while shifting in zeros, - _mm256_
stream_ ⚠load_ si256 avx2
- Load 256-bits of integer data from memory into dst using a non-temporal memory hint. mem_addr must be aligned on a 32-byte boundary or a general-protection exception may be generated. To minimize caching, the data is flagged as non-temporal (unlikely to be used again soon)
- _mm256_
sub_ ⚠epi8 avx2
- Subtract packed 8-bit integers in
b
from packed 8-bit integers ina
- _mm256_
sub_ ⚠epi16 avx2
- Subtract packed 16-bit integers in
b
from packed 16-bit integers ina
- _mm256_
sub_ ⚠epi32 avx2
- Subtract packed 32-bit integers in
b
from packed 32-bit integers ina
- _mm256_
sub_ ⚠epi64 avx2
- Subtract packed 64-bit integers in
b
from packed 64-bit integers ina
- _mm256_
subs_ ⚠epi8 avx2
- Subtract packed 8-bit integers in
b
from packed 8-bit integers ina
using saturation. - _mm256_
subs_ ⚠epi16 avx2
- Subtract packed 16-bit integers in
b
from packed 16-bit integers ina
using saturation. - _mm256_
subs_ ⚠epu8 avx2
- Subtract packed unsigned 8-bit integers in
b
from packed 8-bit integers ina
using saturation. - _mm256_
subs_ ⚠epu16 avx2
- Subtract packed unsigned 16-bit integers in
b
from packed 16-bit integers ina
using saturation. - _mm256_
unpackhi_ ⚠epi8 avx2
- Unpacks and interleave 8-bit integers from the high half of each
128-bit lane in
a
andb
. - _mm256_
unpackhi_ ⚠epi16 avx2
- Unpacks and interleave 16-bit integers from the high half of each
128-bit lane of
a
andb
. - _mm256_
unpackhi_ ⚠epi32 avx2
- Unpacks and interleave 32-bit integers from the high half of each
128-bit lane of
a
andb
. - _mm256_
unpackhi_ ⚠epi64 avx2
- Unpacks and interleave 64-bit integers from the high half of each
128-bit lane of
a
andb
. - _mm256_
unpacklo_ ⚠epi8 avx2
- Unpacks and interleave 8-bit integers from the low half of each
128-bit lane of
a
andb
. - _mm256_
unpacklo_ ⚠epi16 avx2
- Unpacks and interleave 16-bit integers from the low half of each
128-bit lane of
a
andb
. - _mm256_
unpacklo_ ⚠epi32 avx2
- Unpacks and interleave 32-bit integers from the low half of each
128-bit lane of
a
andb
. - _mm256_
unpacklo_ ⚠epi64 avx2
- Unpacks and interleave 64-bit integers from the low half of each
128-bit lane of
a
andb
. - _mm256_
xor_ ⚠si256 avx2
- Computes the bitwise XOR of 256 bits (representing integer data)
in
a
andb
- _mm_
blend_ ⚠epi32 avx2
- Blends packed 32-bit integers from
a
andb
using control maskIMM4
. - _mm_
broadcastb_ ⚠epi8 avx2
- Broadcasts the low packed 8-bit integer from
a
to all elements of the 128-bit returned value. - _mm_
broadcastd_ ⚠epi32 avx2
- Broadcasts the low packed 32-bit integer from
a
to all elements of the 128-bit returned value. - _mm_
broadcastq_ ⚠epi64 avx2
- Broadcasts the low packed 64-bit integer from
a
to all elements of the 128-bit returned value. - _mm_
broadcastsd_ ⚠pd avx2
- Broadcasts the low double-precision (64-bit) floating-point element
from
a
to all elements of the 128-bit returned value. - _mm_
broadcastsi128_ ⚠si256 avx2
- Broadcasts 128 bits of integer data from a to all 128-bit lanes in the 256-bit returned value.
- _mm_
broadcastss_ ⚠ps avx2
- Broadcasts the low single-precision (32-bit) floating-point element
from
a
to all elements of the 128-bit returned value. - _mm_
broadcastw_ ⚠epi16 avx2
- Broadcasts the low packed 16-bit integer from a to all elements of the 128-bit returned value
- _mm_
i32gather_ ⚠epi32 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm_
i32gather_ ⚠epi64 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm_
i32gather_ ⚠pd avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm_
i32gather_ ⚠ps avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm_
i64gather_ ⚠epi32 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm_
i64gather_ ⚠epi64 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm_
i64gather_ ⚠pd avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm_
i64gather_ ⚠ps avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. - _mm_
mask_ ⚠i32gather_ epi32 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm_
mask_ ⚠i32gather_ epi64 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm_
mask_ ⚠i32gather_ pd avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm_
mask_ ⚠i32gather_ ps avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm_
mask_ ⚠i64gather_ epi32 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm_
mask_ ⚠i64gather_ epi64 avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm_
mask_ ⚠i64gather_ pd avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm_
mask_ ⚠i64gather_ ps avx2
- Returns values from
slice
at offsets determined byoffsets * scale
, wherescale
should be 1, 2, 4 or 8. If mask is set, load the value fromsrc
in that position instead. - _mm_
maskload_ ⚠epi32 avx2
- Loads packed 32-bit integers from memory pointed by
mem_addr
usingmask
(elements are zeroed out when the highest bit is not set in the corresponding element). - _mm_
maskload_ ⚠epi64 avx2
- Loads packed 64-bit integers from memory pointed by
mem_addr
usingmask
(elements are zeroed out when the highest bit is not set in the corresponding element). - _mm_
maskstore_ ⚠epi32 avx2
- Stores packed 32-bit integers from
a
into memory pointed bymem_addr
usingmask
(elements are not stored when the highest bit is not set in the corresponding element). - _mm_
maskstore_ ⚠epi64 avx2
- Stores packed 64-bit integers from
a
into memory pointed bymem_addr
usingmask
(elements are not stored when the highest bit is not set in the corresponding element). - _mm_
sllv_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
left by the amount specified by the corresponding element incount
while shifting in zeros, and returns the result. - _mm_
sllv_ ⚠epi64 avx2
- Shifts packed 64-bit integers in
a
left by the amount specified by the corresponding element incount
while shifting in zeros, and returns the result. - _mm_
srav_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
right by the amount specified by the corresponding element incount
while shifting in sign bits. - _mm_
srlv_ ⚠epi32 avx2
- Shifts packed 32-bit integers in
a
right by the amount specified by the corresponding element incount
while shifting in zeros, - _mm_
srlv_ ⚠epi64 avx2
- Shifts packed 64-bit integers in
a
right by the amount specified by the corresponding element incount
while shifting in zeros, - maskloadd 🔒 ⚠
- maskloadd256 🔒 ⚠
- maskloadq 🔒 ⚠
- maskloadq256 🔒 ⚠
- maskstored 🔒 ⚠
- maskstored256 🔒 ⚠
- maskstoreq 🔒 ⚠
- maskstoreq256 🔒 ⚠
- mpsadbw 🔒 ⚠
- packssdw 🔒 ⚠
- packsswb 🔒 ⚠
- packusdw 🔒 ⚠
- packuswb 🔒 ⚠
- permd 🔒 ⚠
- permps 🔒 ⚠
- pgatherdd 🔒 ⚠
- pgatherdpd 🔒 ⚠
- pgatherdps 🔒 ⚠
- pgatherdq 🔒 ⚠
- pgatherqd 🔒 ⚠
- pgatherqpd 🔒 ⚠
- pgatherqps 🔒 ⚠
- pgatherqq 🔒 ⚠
- phaddd 🔒 ⚠
- phaddsw 🔒 ⚠
- phaddw 🔒 ⚠
- phsubd 🔒 ⚠
- phsubsw 🔒 ⚠
- phsubw 🔒 ⚠
- pmaddubsw 🔒 ⚠
- pmaddwd 🔒 ⚠
- pmulhrsw 🔒 ⚠
- psadbw 🔒 ⚠
- pshufb 🔒 ⚠
- psignb 🔒 ⚠
- psignd 🔒 ⚠
- psignw 🔒 ⚠
- pslld 🔒 ⚠
- psllq 🔒 ⚠
- psllvd 🔒 ⚠
- psllvd256 🔒 ⚠
- psllvq 🔒 ⚠
- psllvq256 🔒 ⚠
- psllw 🔒 ⚠
- psrad 🔒 ⚠
- psravd 🔒 ⚠
- psravd256 🔒 ⚠
- psraw 🔒 ⚠
- psrld 🔒 ⚠
- psrlq 🔒 ⚠
- psrlvd 🔒 ⚠
- psrlvd256 🔒 ⚠
- psrlvq 🔒 ⚠
- psrlvq256 🔒 ⚠
- psrlw 🔒 ⚠
- vperm2i128 🔒 ⚠
- vpgatherdd 🔒 ⚠
- vpgatherdpd 🔒 ⚠
- vpgatherdps 🔒 ⚠
- vpgatherdq 🔒 ⚠
- vpgatherqd 🔒 ⚠
- vpgatherqpd 🔒 ⚠
- vpgatherqps 🔒 ⚠
- vpgatherqq 🔒 ⚠