SSE/AVX

移動
MOVD
VMOVD
32bit 整数値の移動 (ゼロ拡張) [SSE2]
MOVQ
VMOVQ
64bit 整数値の移動 (ゼロ拡張) [SSE2]
MOVDQA
VMOVDQA
パック整数値の移動 [SSE2]
MOVSS
VMOVSS
単精度値 (32bit) の移動 [SSE]
MOVSD
VMOVSD
倍精度値 (64bit) の移動 [SSE2]
MOVAPS
VMOVAPS
パック単精度の移動 [SSE]
MOVAPD
VMOVAPD
パック倍精度の移動 [SSE2]
非アライメントの移動
MOVDQU
VMOVDQU
パック整数値の移動 (非アライメント) [SSE2]
MOVUPS
VMOVUPS
パック単精度の移動 (非アライメント) [SSE]
MOVUPD
VMOVUPD
パック倍精度の移動 (非アライメント) [SSE2]
LDDQU
VLDDQU
パック整数値のロード (非アライメント、最適化) [SSE3]
非テンポラル移動
MOVNTDQ
VMOVNTDQ
非テンポラルの移動 (パック整数) [SSE2]
MOVNTDQA
VMOVNTDQA
非テンポラルの移動 (パック整数、ロード) [SSE4.1]
MOVNTPS
VMOVNTPS
非テンポラルの移動 (パック単精度) [SSE]
MOVNTPD
VMOVNTPD
非テンポラルの移動 (パック倍精度) [SSE2]
マスク付き移動
MASKMOVDQU
VMASKMOVDQU
パック8bit整数のマスク付き移動 [SSE2]
VPMASKMOVDパック32bit整数のマスク付きロード/ストア [AVX2]
VPMASKMOVQパック64bit整数のマスク付きロード/ストア [AVX2]
VMASKMOVPSパック単精度のマスク付きロード/ストア [AVX]
VMASKMOVPDパック倍精度のマスク付きロード/ストア [AVX]
レジスタに同じ値を並べる
VBROADCASTF128128bit 浮動小数点を、YMM の上位と下位にセット [AVX]
VBROADCASTI128128bit 整数を、YMM の上位と下位にセット [AVX2]
VPBROADCASTB8bit 整数値をレジスタ全体に並べる [AVX2]
VPBROADCASTW16bit 整数値をレジスタ全体に並べる [AVX2]
VPBROADCASTD32bit 整数値をレジスタ全体に並べる [AVX2]
VPBROADCASTQ64bit 整数値をレジスタ全体に並べる [AVX2]
VBROADCASTSS単精度値をレジスタに並べる [AVX/AVX2]
VBROADCASTSD倍精度値をレジスタに並べる [AVX/AVX2]
選択コピー
VPERMDパック32bit整数 選択コピー (位置) [AVX2]
VPERMQパック64bit整数 選択コピー (位置) [AVX2]
VPERMPSパック単精度の選択コピー (位置) [AVX2]
VPERMPDパック倍精度の選択コピー (位置) [AVX2]
VPERMILPSパック単精度の選択コピー (128bit 単位) [AVX]
VPERMILPDパック倍精度の選択コピー (128bit 単位) [AVX]
VPERM2F128128bit 単位で、2つのソースか 0 の値をコピー (浮動小数点) [AVX]
VPERM2I128128bit 単位で、2つのソースか 0 の値をコピー (整数) [AVX2]
128bit 抽出/挿入
VEXTRACTF128128bit の上位か下位を抽出 (浮動小数点) [AVX]
VEXTRACTI128128bit の上位か下位を抽出 (整数) [AVX2]
VINSERTF128128bit 挿入 (浮動小数点) [AVX]
VINSERTI128128bit 挿入 (整数) [AVX2]
VSIB アドレス指定
VGATHERDPSVSIB アドレス指定でパック単精度をロード (DWORD) [AVX2]
VGATHERDPDVSIB アドレス指定でパック倍精度をロード (DWORD) [AVX2]
VGATHERQPSVSIB アドレス指定でパック単精度をロード (QWORD) [AVX2]
VGATHERQPDVSIB アドレス指定でパック倍精度をロード (QWORD) [AVX2]
VPGATHERDDVSIB アドレス指定でパック32bit整数をロード (DWORD) [AVX2]
VPGATHERDQVSIB アドレス指定でパック64bit整数をロード (DWORD) [AVX2]
VPGATHERQDVSIB アドレス指定でパック32bit整数をロード (QWORD) [AVX2]
VPGATHERQQVSIB アドレス指定でパック64bit整数をロード (QWORD) [AVX2]
クリア
VZEROALLすべての YMM レジスタをクリア [AVX]
VZEROUPPERすべての YMM レジスタの上位128bitをクリア [AVX]
MXCSR
STMXCSR
VSTMXCSR
MXCSR の値をメモリに保存 [SSE]
LDMXCSR
VLDMXCSR
メモリから MXCSR レジスタにロード [SSE]
移動
MOVD xmm, reg32/mem32   | 66 (W0) 0F 6E /r | SSE2
MOVD reg32/mem32, xmm   | 66 (W0) 0F 7E /r | SSE2
VMOVD xmm, reg32/mem32  | C4 RXB.00001 0.1111.0.01 6E /r | AVX *MOVQ の場合あり
VMOVD reg32/mem32, xmm  | C4 RXB.00001 0.1111.0.01 7E /r | AVX *MOVQ の場合あり
XMM レジスタと汎用レジスタ/メモリ間で、32bit 整数値を移動します。
宛先がレジスタの場合、ゼロ拡張されます。

VMOVD の場合、対応する YMM レジスタの上位 128bit はクリアされます。
MOVQ xmm, reg64/mem64  | 66 (W1) 0F 6E /r | SSE2
MOVQ reg64/mem64, xmm  | 66 (W1) 0F 7E /r | SSE2
MOVQ xmm1, xmm2/mem64  | F3 0F 7E /r | SSE2
MOVQ xmm1/mem64, xmm2  | 66 0F D6 /r | SSE2

VMOVQ xmm, reg64/mem64 | C4 RXB.00001 1.1111.0.01 6E /r | AVX
VMOVQ reg64/mem64, xmm | C4 RXB.00001 1.1111.0.01 7E /r | AVX
VMOVQ xmm1, xmm2       | C4 RXB.00001 X.1111.0.10 7E /r | AVX
VMOVQ xmm1, mem64      | C4 RXB.00001 X.1111.0.10 7E /r | AVX
VMOVQ xmm1/mem64, xmm2 | C4 RXB.00001 X.1111.0.01 D6 /r | AVX
XMM レジスタと、XMM レジスタ/汎用レジスタ/メモリ間で、64bit 整数値を移動します。
宛先がレジスタの場合、ゼロ拡張されます。
MOVDQA xmm1, xmm2/mem128  | 66 0F 6F /r | SSE2
MOVDQA xmm1/mem128, xmm2  | 66 0F 7F /r | SSE2
VMOVDQA xmm1, xmm2/mem128 | C4 RXB.00001 X.1111.0.01 6F /r | AVX
VMOVDQA xmm1/mem128, xmm2 | C4 RXB.00001 X.1111.0.01 6F /r | AVX
VMOVDQA ymm1, xmm2/mem256 | C4 RXB.00001 X.1111.1.01 7F /r | AVX
VMOVDQA ymm1/mem256, ymm2 | C4 RXB.00001 X.1111.1.01 7F /r | AVX
パックされた整数値 (128/256bit) を移動します。
メモリがアライメントされていないと、一般保護例外が発生します。
MOVSS xmm1, xmm2        | F3 0F 10 /r | SSE
MOVSS xmm1, mem32       | F3 0F 10 /r | SSE
MOVSS xmm2/mem32, xmm1  | F3 0F 11 /r | SSE
VMOVSS xmm1, mem32      | C4 RXB.00001 X.1111.X.10 10 /r | AVX
VMOVSS mem32, xmm1      | C4 RXB.00001 X.1111.X.10 11 /r | AVX
VMOVSS xmm1, xmm2, xmm3 | C4 RXB.00001 X.src.X.10 10 /r  | AVX
VMOVSS xmm1, xmm2, xmm3 | C4 RXB.00001 X.src.X.10 11 /r  | AVX
一つの単精度浮動小数点として、32bit 値を移動します。

ソースがレジスタの場合、SSE バージョンでは、宛先の bit 127:32 は変更されず、AVX バージョンでは、ソースオペランドの bit 127:32 がコピーされます。
ソースがメモリの場合、宛先レジスタのサイズにゼロ拡張されます。
MOVSD xmm1, xmm2/mem64  | F2 0F 10 /r | SSE2
MOVSD xmm1/mem64, xmm2  | F2 0F 11 /r | SSE2
VMOVSD xmm1, mem64      | C4 RXB.00001 X.1111.X.11 10 /r | AVX
VMOVSD mem64, xmm1      | C4 RXB.00001 X.1111.X.11 11 /r | AVX
VMOVSD xmm1, xmm2, xmm3 | C4 RXB.00001 X.src.X.11 10 /r  | AVX
VMOVSD xmm1, xmm2, xmm3 | C4 RXB.00001 X.src.X.11 11 /r  | AVX
一つの倍精度浮動小数点として、64bit 値を移動します。

ソースがレジスタの場合、SSE バージョンでは、宛先の bit 127:64 は変更されず、AVX バージョンでは、ソースオペランドの bit 127:64 がコピーされます。
ソースがメモリの場合、宛先レジスタのサイズにゼロ拡張されます。
MOVAPS xmm1, xmm2/mem128  | 0F 28 /r | SSE
MOVAPS xmm1/mem128, xmm2  | 0F 29 /r | SSE
VMOVAPS xmm1, xmm2/mem128 | C4 RXB.00001 X.1111.0.00 28 /r | AVX
VMOVAPS xmm1/mem128, xmm2 | C4 RXB.00001 X.1111.0.00 29 /r | AVX
VMOVAPS ymm1, ymm2/mem256 | C4 RXB.00001 X.1111.1.00 28 /r | AVX
VMOVAPS ymm1/mem256, ymm2 | C4 RXB.00001 X.1111.1.00 29 /r | AVX
パック倍精度浮動小数点値 (128/256bit) を移動します。
メモリがアライメントされていないと、一般保護例外が発生します。

MOVAPS の場合、対応する YMM レジスタの上位 128bit は変更されません。
VMOVAPS (XMM) の場合、対応する YMM レジスタの上位 128bit はクリアされます。
MOVAPD xmm1, xmm2/mem128  | 66 0F 28 /r | SSE2
MOVAPD xmm1/mem128, xmm2  | 66 0F 29 /r | SSE2
VMOVAPD xmm1, xmm2/mem128 | C4 RXB.00001 X.1111.0.01 28 /r | AVX
VMOVAPD xmm1/mem128, xmm2 | C4 RXB.00001 X.1111.0.01 29 /r | AVX
VMOVAPD ymm1, ymm2/mem256 | C4 RXB.00001 X.1111.1.01 28 /r | AVX
VMOVAPD ymm1/mem256, ymm2 | C4 RXB.00001 X.1111.1.01 29 /r | AVX
パック倍精度浮動小数点値 (128/256bit) を移動します。
メモリがアライメントされていないと、一般保護例外が発生します。

MOVAPD の場合、対応する YMM レジスタの上位 128bit は変更されません。
VMOVAPD (XMM) の場合、対応する YMM レジスタの上位 128bit はクリアされます。
非アライメントの移動
MOVDQU xmm1, xmm2/mem128  | F3 0F 6F /r | SSE2
MOVDQU xmm1/mem128, xmm2  | F3 0F 7F /r | SSE2
VMOVDQU xmm1, xmm2/mem128 | C4 RXB.00001 X.1111.0.10 6F /r | AVX
VMOVDQU xmm1/mem128, xmm2 | C4 RXB.00001 X.1111.0.10 6F /r | AVX
VMOVDQU ymm1, xmm2/mem256 | C4 RXB.00001 X.1111.1.10 7F /r | AVX
VMOVDQU ymm1/mem256, ymm2 | C4 RXB.00001 X.1111.1.10 7F /r | AVX
アライメントされていない、パック整数値 (128/256bit) を移動します。
MOVUPS xmm1, xmm2/mem128  | 0F 10 /r | SSE
MOVUPS xmm1/mem128, xmm2  | 0F 11 /r | SSE
VMOVUPS xmm1, xmm2/mem128 | C4 RXB.00001 X.1111.0.00 10 /r | AVX
VMOVUPS xmm1/mem128, xmm2 | C4 RXB.00001 X.1111.0.00 11 /r | AVX
VMOVUPS ymm1, ymm2/mem256 | C4 RXB.00001 X.1111.1.00 10 /r | AVX
VMOVUPS ymm1/mem256, ymm2 | C4 RXB.00001 X.1111.1.00 11 /r | AVX
アライメントされていない、パック単精度浮動小数点値 (128/256bit) を移動します。
MOVUPD xmm1, xmm2/mem128  | 66 0F 10 /r | SSE2
MOVUPD xmm1/mem128, xmm2  | 66 0F 11 /r | SSE2
VMOVUPD xmm1, xmm2/mem128 | C4 RXB.00001 X.1111.0.01 10 /r | AVX
VMOVUPD xmm1/mem128, xmm2 | C4 RXB.00001 X.1111.0.01 11 /r | AVX
VMOVUPD ymm1, ymm2/mem256 | C4 RXB.00001 X.1111.1.01 10 /r | AVX
VMOVUPD ymm1/mem256, ymm2 | C4 RXB.00001 X.1111.1.01 11 /r | AVX
アライメントされていない、パック倍精度浮動小数点値 (128/256bit) を移動します。
LDDQU xmm1, mem128  | F2 0F F0 /r | SSE3
VLDDQU xmm1, mem128 | C4 RXB.00001 X.1111.0.11 F0 /r | AVX
VLDDQU ymm1, mem256 | C4 RXB.00001 X.1111.1.11 F0 /r | AVX
アライメントされていないメモリから、パック整数値 (128bit/256bit) を、宛先レジスタにロードします。

メモリが実際にアライメントされていない場合のパフォーマンスを向上させるために、アライメントされた 16 or 32 byte 値を2回読み込み、値を調整して格納する場合があります (この動作は実装固有です)。
余分なバイトの読み込みによって問題が発生する可能性がある場合、代わりに (V)MOVUPD を使用してください。
非テンポラル移動
MOVNTDQ mem128, xmm  | 66 0F E7 /r | SSE2
VMOVNTDQ mem128, xmm | C4 RXB.00001 X.1111.0.01 E7 /r | AVX
VMOVNTDQ mem256, ymm | C4 RXB.00001 X.1111.1.01 E7 /r | AVX
パック整数値として、レジスタの値をメモリに移動します。
データが非一時的であり、すぐに再使用される可能性が低いことをプロセッサに示します。

アライメントされていないメモリ位置にストアしようとすると、#GP 例外が発生します。
MOVNTDQA xmm, mem128  | 66 0F 38 2A /r | SSE4.1
VMOVNTDQA xmm, mem128 | C4 RXB.02 X.1111.0.01 2A /r | AVX
VMOVNTDQA ymm, mem256 | C4 RXB.02 X.1111.1.01 2A /r | AVX2
アライメントされたメモリ位置から、パック整数値として、XMM/YMM レジスタに値をロードします。
データが非一時的であり、すぐに再使用される可能性が低いことをプロセッサに示します。

アライメントされていないメモリ位置からロードしようとすると、#GP 例外が発生します。
MOVNTPS mem128, xmm  | 0F 2B /r
VMOVNTPS mem128, xmm | C4 RXB.00001 X.1111.0.00 2B /r
VMOVNTPS mem256, ymm | C4 RXB.00001 X.1111.1.00 2B /r
パック単精度浮動小数点値として、レジスタの値をメモリに移動します。
データが非一時的であり、すぐに再使用される可能性が低いことをプロセッサに示します。

アライメントされていないメモリ位置にストアしようとすると、#GP 例外が発生します。
MOVNTPD mem128, xmm  | 66 0F 2B /r | SSE2
VMOVNTPD mem128, xmm | C4 RXB.00001 X.1111.0.01 2B /r | AVX
VMOVNTPD mem256, ymm | C4 RXB.00001 X.1111.1.01 2B /r | AVX
パック倍精度浮動小数点値として、レジスタの値をメモリに移動します。
データが非一時的であり、すぐに再使用される可能性が低いことをプロセッサに示します。

アライメントされていないメモリ位置にストアしようとすると、#GP 例外が発生します。
マスク付き移動
MASKMOVDQU xmm1, xmm2  | 66 0F F7 /r | SSE2
VMASKMOVDQU xmm1, xmm2 | C4 RXB.00001 X.1111.0.01 F7 /r | AVX
第1オペランドのパックされた 8bit 整数値を、第2オペランドで指定されたマスクに従って、DS:rDI レジスタで指定されたメモリ位置に移動します。

マスクは、8bit 単位で第1オペランドに対応し、それぞれの最上位ビットで動作を指定します。
ビットが 1 の場合、対応するバイトがメモリに書き込まれ、ビットが 0 の場合は、書き込まれません。

書き込みに選択されていないデータの例外とトラップの動作は実装に依存します。
特定の実装では、実際には書き込まれていないバイトに対して、データブレークポイントまたはページフォールトを通知する場合があります。
VPMASKMOVD xmm1, xmm2, mem128 | C4 RXB.02 0.src1.0.01 8C /r | AVX2
VPMASKMOVD ymm1, ymm2, mem256 | C4 RXB.02 0.src1.1.01 8C /r | AVX2
VPMASKMOVD mem128, xmm1, xmm2 | C4 RXB.02 0.src1.0.01 8E /r | AVX2
VPMASKMOVD mem256, ymm1, ymm2 | C4 RXB.02 0.src1.1.01 8E /r | AVX2
宛先がレジスタになっているのがロードバージョン、宛先がメモリになっているのがストアバージョンです。
2つ目のレジスタオペランド (xmm2/ymm2) のマスクの指定に従って、ソースのパック 32bit 整数値の各要素を、宛先に移動します。

マスク値は、32bit 単位で各要素に対応し、それぞれの最上位ビットで、コピーするかクリアするか (または変更しない) を指定します。
ビットが 1 の場合、ソースの対応する位置から、値がコピーされます。
ビットが 0 の場合、ロード時はその要素の値が 0 になり、ストア時はメモリに書き込まれません。

この命令は、非テンポラルアクセスのヒントを提供しません。
VPMASKMOVQ xmm1, xmm2, mem128 | C4 RXB.02 1.src1.0.01 8C /r | AVX2
VPMASKMOVQ ymm1, ymm2, mem256 | C4 RXB.02 1.src1.1.01 8C /r | AVX2
VPMASKMOVQ mem128, xmm1, xmm2 | C4 RXB.02 1.src1.0.01 8E /r | AVX2
VPMASKMOVQ mem256, ymm1, ymm2 | C4 RXB.02 1.src1.1.01 8E /r | AVX2
宛先がレジスタになっているのがロードバージョン、宛先がメモリになっているのがストアバージョンです。
2つ目のレジスタオペランド (xmm2/ymm2) のマスクの指定に従って、ソースのパック 64bit 整数値の各要素を、宛先に移動します。

マスク値は、64bit 単位で各要素に対応し、その最上位ビットで、コピーするかクリアするか (または変更しない) を指定します。
ビットが 1 の場合、ソースの対応する位置から、値がコピーされます。
ビットが 0 の場合、ロード時はその要素の値が 0 になり、ストア時はメモリに書き込まれません。

この命令は、非テンポラルアクセスのヒントを提供しません。
VMASKMOVPS xmm1, xmm2, mem128 | C4 RXB.02 0.src1.0.01 2C /r | AVX
VMASKMOVPS ymm1, ymm2, mem256 | C4 RXB.02 0.src1.1.01 2C /r | AVX
VMASKMOVPS mem128, xmm1, xmm2 | C4 RXB.02 0.src1.0.01 2E /r | AVX
VMASKMOVPS mem256, ymm1, ymm2 | C4 RXB.02 0.src1.1.01 2E /r | AVX
宛先がレジスタになっているのがロードバージョン、宛先がメモリになっているのがストアバージョンです。
2つ目のレジスタオペランド (xmm2/ymm2) のマスクの指定に従って、ソースのパック単精度の各要素を、宛先に移動します。

マスク値は、32bit 単位で各要素に対応し、その最上位ビットで、コピーするかクリアするか (または変更しない) を指定します。
ビットが 1 の場合、ソースの対応する位置から、値がコピーされます。
ビットが 0 の場合、ロード時はその要素の値が 0 になり、ストア時はメモリに書き込まれません。
VMASKMOVPD xmm1, xmm2, mem128 | C4 RXB.02 0.src1.0.01 2D /r | AVX
VMASKMOVPD ymm1, ymm2, mem256 | C4 RXB.02 0.src1.1.01 2D /r | AVX
VMASKMOVPD mem128, xmm1, xmm2 | C4 RXB.02 0.src1.0.01 2F /r | AVX
VMASKMOVPD mem256, ymm1, ymm2 | C4 RXB.02 0.src1.1.01 2F /r | AVX
宛先がレジスタになっているのがロードバージョン、宛先がメモリになっているのがストアバージョンです。
2つ目のレジスタオペランド (xmm2/ymm2) のマスクの指定に従って、ソースのパック倍精度の各要素を、宛先に移動します。

マスク値は、64bit 単位で各要素に対応し、その最上位ビットで、コピーするかクリアするか (または変更しない) を指定します。
ビットが 1 の場合、ソースの対応する位置から、値がコピーされます。
ビットが 0 の場合、ロード時はその要素の値が 0 になり、ストア時はメモリに書き込まれません。
レジスタに同じ値を並べる
VBROADCASTF128 ymm1, mem128 | C4 RXB.02 0.1111.1.01 1A /r | AVX
メモリから 128bit の浮動小数点値を読み込み、YMM レジスタの上位と下位に書き込みます。
VBROADCASTI128 ymm1, mem128 | VEX C4 RXB.02 0.1111.1.01 5A /r | AVX2
メモリから 128bit の整数値を読み込み、YMM レジスタの上位と下位に書き込みます。
VPBROADCASTB xmm1, xmm2/mem8 | C4 RXB.02 0.1111.0.01 78 /r | AVX2
VPBROADCASTB ymm1, xmm2/mem8 | C4 RXB.02 0.1111.1.01 78 /r | AVX2
レジスタまたはメモリの 8bit 整数値を、XMM または YMM レジスタ全体に 16 or 32 個並べます。
VPBROADCASTW xmm1, xmm2/mem16 | C4 RXB.02 0.1111.0.01 79 /r | AVX2
VPBROADCASTW ymm1, xmm2/mem16 | C4 RXB.02 0.1111.1.01 79 /r | AVX2
レジスタまたはメモリの 16bit 整数値を、XMM または YMM レジスタ全体に 8 or 16 個並べます。
VPBROADCASTD xmm1, xmm2/mem32 | C4 RXB.02 0.1111.0.01 58 /r | AVX2
VPBROADCASTD ymm1, xmm2/mem32 | C4 RXB.02 0.1111.1.01 58 /r | AVX2
レジスタまたはメモリの 32bit 整数値を、XMM または YMM レジスタ全体に 4 or 8 個並べます。
VPBROADCASTQ xmm1, xmm2/mem64 | C4 RXB.02 0.1111.0.01 59 /r | AVX2
VPBROADCASTQ ymm1, xmm2/mem64 | C4 RXB.02 0.1111.1.01 59 /r | AVX2
レジスタまたはメモリの 64bit 整数値を、XMM または YMM レジスタ全体に 2 or 4 個並べます。
VBROADCASTSS xmm1, xmm2/mem32 | C4 RXB.02 0.1111.0.01 18 /r | mem=AVX, xmm=AVX2
VBROADCASTSS ymm1, xmm2/mem32 | C4 RXB.02 0.1111.1.01 18 /r | mem=AVX, xmm=AVX2
レジスタまたはメモリの単精度浮動小数点値 (32bit) を、XMM または YMM レジスタ全体に 4 or 8 個並べます。
VBROADCASTSD ymm1, xmm2/mem64 | C4 RXB.02 0.1111.1.01 19 /r | mem=AVX, xmm=AVX2
レジスタまたはメモリの倍精度浮動小数点値 (64bit) を、YMM レジスタ全体に4個並べます。
選択コピー
VPERMD ymm1, ymm2, ymm3/mem256 | C4 RXB.02 0.src1.1.01 36 /r | AVX2
第3オペランドの、パックされた 32bit 整数値から、コピーするソース位置を選択して、順に宛先にコピーします。

第2オペランドは、32bit 単位で宛先の各要素に対応し、第3オペランドからコピーする値の、インデックス位置を指定します。
VPERMQ ymm1, ymm2/mem256, imm8 | C4 RXB.03 1.1111.1.01 00 /r ib | AVX2
第3オペランドの、パックされた 64bit 整数値から、コピーするソース位置を選択して、順に宛先にコピーします。

即値バイトは、2bit x 4 の値で、第2オペランドからコピーする値の、インデックス位置 (0〜3) を指定します。
VPERMPS ymm1, ymm2, ymm3/mem256 | C4 RXB.02 0.src1.1.01 16 /r | AVX2
第3オペランドの、パックされた 32bit (単精度) 値から、コピーするソース位置を選択して、順に宛先にコピーします。

第2オペランドは、32bit 単位で宛先の各要素に対応し、第3オペランドからコピーする値の、インデックス位置を指定します。
VPERMPD ymm1, ymm2/mem256, imm8 | C4 RXB.03 1.1111.1.01 01 /r ib | AVX2
第3オペランドの、パックされた 64bit 値から、コピーするソース位置を選択して、順に宛先にコピーします。

即値バイトは、2bit x 4 で、コピーするソースの位置 (0〜3) を指定します。
VPERMILPS xmm1, xmm2, xmm3/mem128 | C4 RXB.02 0.src1.0.01 0C /r | AVX
VPERMILPS ymm1, ymm2, ymm3/mem256 | C4 RXB.02 0.src1.1.01 0C /r | AVX
VPERMILPS xmm1, xmm2/mem128, imm8 | C4 RXB.03 0.1111.0.01 04 /r ib | AVX
VPERMILPS ymm1, ymm2/mem256, imm8 | C4 RXB.03 0.1111.1.01 04 /r ib | AVX
パック単精度の各要素を、128bit 単位の位置で、ソースから宛先にコピーします。

第3オペランドがレジスタまたはメモリの場合、32bit 単位で宛先の各要素に対応し、下位 2bit のみが使用されます。
即値バイトの場合、各 2bit が宛先の各要素に対応します。

値は、0〜3 で、128bit 単位でのソースの位置を指定します。
宛先の上位 128bit は、ソースの上位 128bit の位置を対象とした値になります。
VPERMILPD xmm1, xmm2, xmm3/mem128 | C4 RXB.02 0.src1.0.01 0D /r | AVX
VPERMILPD ymm1, ymm2, ymm3/mem256 | C4 RXB.02 0.src1.1.01 0D /r | AVX
VPERMILPD xmm1, xmm2/mem128, imm8 | C4 RXB.03 0.1111.0.01 05 /r ib | AVX
VPERMILPD ymm1, ymm2/mem256, imm8 | C4 RXB.03 0.1111.1.01 05 /r ib | AVX
パック倍精度の各要素を、128bit 単位の位置で、ソースから宛先にコピーします。

第3オペランドがレジスタまたはメモリの場合、64bit 単位で宛先の各要素に対応し、bit 1 のみが使用されます (bit0, bit63:2 は使用されない)。
即値バイトの場合、各 1 ビットが宛先の各要素に対応します。

ビットが 0 の場合、ソースの対応する位置の値がコピーされ、1 の場合、ソースの対応する位置の一つ上位の値がコピーされます。
VPERM2F128 ymm1, ymm2, ymm3/mem256, imm8 | C4 RXB.03 0.src1.1.01 06 /r ib | AVX
即値バイトの指定に従って、2つのソースオペランドのいずれかの上位または下位の 128bit、もしくは値 0 を、宛先の各 128bit 要素にコピーします。

即値バイトの bit 1:0 で、宛先の下位 128bit にコピーする値を指定します。
00b は src1 の下位 128bit、01b は src1 の上位 128bit、10b は src2 の下位 128bit、11b は src2 の上位 128bit。
bit 3 が 1 の場合、宛先の下位 128bit は 0 になります。

bit 5:4 で、宛先の上位 128bit にコピーする値を指定します。値は下位 128bit の場合と同じです。
bit 7 が 1 の場合、宛先の上位 128bit は 0 になります。
VPERM2I128 ymm1, ymm2, ymm3/mem256, imm8 | C4 RXB.03 0.src1.1.01 46 /r ib | AVX2
即値バイトの指定に従って、2つのソースオペランドのいずれかの上位または下位の 128bit、もしくは値 0 を、宛先の各 128bit 要素にコピーします。

即値バイトの bit 1:0 で、宛先の下位 128bit にコピーする値を指定します。
00b は src1 の下位 128bit、01b は src1 の上位 128bit、10b は src2 の下位 128bit、11b は src2 の上位 128bit。
bit 3 が 1 の場合、宛先の下位 128bit は 0 になります。

bit 5:4 で、宛先の上位 128bit にコピーする値を指定します。値は下位 128bit の場合と同じです。
bit 7 が 1 の場合、宛先の上位 128bit は 0 になります。
128bit 抽出/挿入
VEXTRACTF128 xmm/mem128, ymm, imm8 | C4 RXB.03 0.1111.1.01 19 /r ib | AVX
即値バイトの指定に従って、YMM レジスタから上位 or 下位の 128bit データ (浮動小数点) を抽出し、宛先に書き込みます。

即値バイトは、bit 0 で、下位 128bit (0) か上位 128bit (1) のどちらを抽出するかを指定します。
VEXTRACTI128 xmm1/mem128, ymm2, imm8 | C4 RXB.03 0.1111.1.01 39 /r ib | AVX2
即値バイトの指定に従って、YMM レジスタから上位 or 下位の 128bit データ (整数) を抽出し、宛先に書き込みます。

即値バイトは、bit 0 で、下位 128bit (0) か上位 128bit (1) のどちらを抽出するかを指定します。
VINSERTF128 ymm1, ymm2, xmm3/mem128, imm8 | C4 RXB.03 0.src.1.01 18 /r ib | AVX
第2オペランドをソースとして、上位 128bit か下位 128bit に、第3オペランドの値をコピーして、宛先に書き込みます (浮動小数点)。

即値バイトの bit 0 が 0 の場合、第2オペランドの上位 128bit を宛先の上位 128bit にコピーし、第2オペランドの下位 128bit を宛先の下位 128bit にコピーします。
bit 0 が 1 の場合、第2オペランドの下位 128bit を宛先の下位 128bit にコピーし、第2オペランドの下位 128bit を宛先の上位 128bit にコピーします。
VINSERTI128 ymm1, ymm2, xmm3/mem128, imm8 | C4 RXB.03 0.src1.1.01 38 /r ib | AVX2
第2オペランドをソースとして、上位 128bit か下位 128bit に、第3オペランドの値をコピーして、宛先に書き込みます (整数)。

即値バイトの bit 0 が 0 の場合、第2オペランドの上位 128bit を宛先の上位 128bit にコピーし、第2オペランドの下位 128bit を宛先の下位 128bit にコピーします。
bit 0 が 1 の場合、第2オペランドの下位 128bit を宛先の下位 128bit にコピーし、第2オペランドの下位 128bit を宛先の上位 128bit にコピーします。
VSIB アドレス指定
VGATHERDPS xmm1, vm32x, xmm2 | C4 RXB.02 0.src2.0.01 92 /r | AVX2
VGATHERDPS ymm1, vm32y, ymm2 | C4 RXB.02 0.src2.1.01 92 /r | AVX2
DWORD インデックスを使用した VSIB アドレス指定を使用して、メモリから単精度値を条件付きでロードします。

第3オペランドのマスクの値に応じて、条件付きで、宛先レジスタの各要素に値がロードされます。
VGATHERDPD xmm1, vm32x, xmm2 | C4 RXB.02 1.src2.0.01 92 /r | AVX2
VGATHERDPD ymm1, vm32x, ymm2 | C4 RXB.02 1.src2.1.01 92 /r | AVX2
DWORD インデックスを使用した VSIB アドレス指定を使用して、メモリから倍精度値を条件付きでロードします。

第3オペランドのマスクの値に応じて、条件付きで、宛先レジスタの各要素に値がロードされます。

マスクは、64bit 単位で、宛先のレジスタに対応します。
各要素の最上位ビットが 1 の場合、VSIB アドレッシングを使用して計算された有効アドレスの配列の i 番目のアドレスを使用して、メモリからロードされます。
この場合、インデックスレジスタは、符号付き 32bit 値の配列として扱われます。
最上位ビットが 0 の場合、宛先の要素は変更されません。

例外が発生しない場合、第3オペランドの値は 0 になります。
ロードされた右端の要素以外の要素によって、例外がトリガーされた場合、命令の実行は、例外によって一時停止されることがあります。
これが起こると、第1オペランドと第3オペランドが部分的に変更された状態になります。
正しくロードされた要素のマスク値は 0 に設定されます。

ロードされた要素から、トラップまたはフォールトが保留されている場合、それらは例外の代わりに配信されます。
この場合、命令の実行が再開されたときに、命令ブレークポイントが再トリガーされないように、RF フラグが設定されます。
VGATHERQPS xmm1, vm64x, xmm2 | C4 RXB.02 0.src2.0.01 93 /r | AVX2
VGATHERQPS xmm1, vm64y, xmm2 | C4 RXB.02 0.src2.1.01 93 /r | AVX2
QWORD インデックスを使用した VSIB アドレス指定を使用して、メモリから単精度値を条件付きでロードします。

第3オペランドのマスクの値に応じて、条件付きで、宛先レジスタの各要素に値がロードされます。
VGATHERQPD xmm1, vm64x, xmm2 | C4 RXB.02 1.src2.0.01 93 /r | AVX2
VGATHERQPD ymm1, vm64y, ymm2 | C4 RXB.02 1.src2.1.01 93 /r | AVX2
QWORD インデックスを使用した VSIB アドレス指定を使用して、メモリから倍精度値を条件付きでロードします。

第3オペランドのマスクの値に応じて、条件付きで、宛先レジスタの各要素に値がロードされます。
VPGATHERDD xmm1, vm32x, xmm2 | C4 RXB.02 0.src2.0.01 90 /r | AVX2
VPGATHERDD ymm1, vm32y, ymm2 | C4 RXB.02 0.src2.1.01 90 /r | AVX2
DWORD インデックスを使用した VSIB アドレス指定を使用して、メモリから 32bit 整数値を条件付きでロードします。

第3オペランドのマスクの値に応じて、条件付きで、宛先レジスタの各要素に値がロードされます。
VPGATHERDQ xmm1, vm32x, xmm2 | C4 RXB.02 1.src2.0.01 90 /r | AVX2
VPGATHERDQ ymm1, vm32x, ymm2 | C4 RXB.02 1.src2.1.01 90 /r | AVX2
DWORD インデックスを使用した VSIB アドレス指定を使用して、メモリから 64bit 整数値を条件付きでロードします。

第3オペランドのマスクの値に応じて、条件付きで、宛先レジスタの各要素に値がロードされます。
VPGATHERQD xmm1, vm64x, xmm2 | C4 RXB.02 0.src2.0.01 91 /r | AVX2
VPGATHERQD xmm1, vm64y, xmm2 | C4 RXB.02 0.src2.1.01 91 /r | AVX2
QWORD インデックスを使用した VSIB アドレス指定を使用して、メモリから 32bit 整数値を条件付きでロードします。

第3オペランドのマスクの値に応じて、条件付きで、宛先レジスタの各要素に値がロードされます。
VPGATHERQQ xmm1, vm64x, xmm2 | C4 RXB.02 1.src2.0.01 91 /r | AVX2
VPGATHERQQ ymm1, vm64y, ymm2 | C4 RXB.02 1.src2.1.01 91 /r | AVX2
QWORD インデックスを使用した VSIB アドレス指定を使用して、メモリから 64bit 整数値を条件付きでロードします。

第3オペランドのマスクの値に応じて、条件付きで、宛先レジスタの各要素に値がロードされます。
クリア
VZEROALL | C4 RXB.01 X.1111.1.00 77 | AVX
すべての YMM レジスタをクリアします。

64bit モードでは、YMM0〜15 がすべてクリアされます (値が 0 になる)。
レガシー/互換モードでは、YMM0〜7 のみがクリアされます。
MXCSR の内容は影響を受けません。
VZEROUPPER | C4 RXB.01 X.1111.0.00 77 | AVX
すべての YMM レジスタの上位 128bit をクリアします。
対応する XMM レジスタ (下位 128bit) は影響を受けません。

64bit モードでは、YMM0〜15 が対象です。
レガシー/互換モードでは、YMM0〜7 のみが対象です。
MXCSR の内容は影響を受けません。
MXCSR
STMXCSR mem32  | 0F AE /3 | SSE
VSTMXCSR mem32 | C4 RXB.01 X.1111.0.00 AE /3 | AVX
MXCSR レジスタの内容を、32bit メモリ位置に保存します。
予約ビットは 0 として保存されます。
LDMXCSR mem32  | 0F AE /2 | SSE
VLDMXCSR mem32 | C4 RXB.00001 X.1111.0.00 AE /2 | AVX
32bit のメモリから値を読み込み、MXCSR レジスタにロードします。

MXCSR のロードによって SIMD 浮動小数点例外マスクビットがクリアされ、対応する例外フラグビットが設定された場合、SIMD 浮動小数点例外はすぐには生成されません。
例外は、XMM または YMM レジスタ オペランドを操作し、その特定の SIMD 浮動小数点例外が報告される、次の命令が実行される場合にのみ生成されます。

予約された MXCSR ビットにゼロ以外の値をロードしようとすると、一般保護例外が発生します。