概要

XMMレジスタの表記

倍精度

名称127~64ビット63~0ビット
XMMnXMMnDHXMMnDL

単精度

名称127~96ビット95~64ビット63~32ビット31~0ビット
XMMnXMMn3XMMn2XMMn1XMMn0

スカラー系の命令

1度に1個のデータを扱う命令です。対象となるデータはXMMレジスタの下位となります。基本的には、XMMレジスタの上位は変化しませんが movs系の命令のみ上位データーは0クリアされます。
名称名称データー動作C
移動movsd XMMd,XMMs倍精度XMMdH←0 , XMMdL←XMMsL
減算subsd XMMd,XMMs倍精度XMMdH←XMMdH , XMMdL←XMMdL-XMMdL
除算divsd XMMd,XMMs倍精度XMMdH←XMMdH , XMMdL←XMMdL/XMMdL
変換cvtsi2sd XMMd,r32/mem32倍精度XMMdH←XMMdH , XMMdL←r32/mem32を浮動小数点に変換

パック系の命令

1度に複数のデータを扱う命令です。
名称名称データー動作C
加算addpd XMMd,XMMs倍精度*2XMMdH←XMMdH+XMMsH , XMMdL←XMMdL+XMMdL
減算subpd XMMd,XMMs倍精度*2XMMdH←XMMdH-XMMsH , XMMdL←XMMdL-XMMdL
排他的論理和xorpd XMMd,XMMs倍精度*2XMMdH←XMMdH xor XMMsH , XMMdL←XMMdL xor XMMdL
シャッフルshufps XMMd,XMMs,imm8倍精度*2XMMdH←{imm8の0ビット目が0の場合はxmmdLが1の場合はxmmdH}
XMMdL←{imm8の1ビット目が0の場合はxmmsLが1の場合はxmmsH}

パック系のAVX命令

1度に複数のデータを扱う命令です。
名称名称データー動作C
シャッフルvshufps YMMd,XMMs1,YMMs2,imm8単精度*8XMMdH←{imm8の0ビット目が0の場合はxmmdLが1の場合はxmmdH}
XMMdL←{imm8の1ビット目が0の場合はxmmsLが1の場合はxmmsH}
ブレンドvblendps YMMd,XMMs1,YMMs2,imm8単精度*8 YMMdF0←{imm8の0ビット目が0の場合はYMMs1F0が1の場合はYMMs2F0}
YMMdF1←{imm8の1ビット目が0の場合はYMMs1F1が1の場合はYMMs2F1}
YMMdF2←{imm8の2ビット目が0の場合はYMMs1F2が1の場合はYMMs2F2}
YMMdF3←{imm8の3ビット目が0の場合はYMMs1F3が1の場合はYMMs2F3}
YMMdF4←{imm8の4ビット目が0の場合はYMMs1F4が1の場合はYMMs2F4}
YMMdF5←{imm8の5ビット目が0の場合はYMMs1F5が1の場合はYMMs2F5}
YMMdF6←{imm8の6ビット目が0の場合はYMMs1F6が1の場合はYMMs2F6}
YMMdF7←{imm8の7ビット目が0の場合はYMMs1F7が1の場合はYMMs2F7}
抽出VEXTRACTF128 XMMd,YMMs,imm1128bit imm1が1の場合の場合、XMMd←YMMsH
imm1が0の場合の場合、XMMd←YMMsL
挿入Vinsertf128 YMMd,YMMs1,XMMs2,imm1128bit*2 imm1が1の場合の場合、YMMdH←XMMs2,YMMdL←YMMs1L
imm1が0の場合の場合、YMMdH←YMMs1H,YMMdL←XMMs2L
条件付き移動vmaskmovps YMMd,YMMs,m256単精度*8 YMMdF0←{YMMsF0の31ビット目が0の場合は0 1の場合は,mem256F0}
YMMdF1←{YMMsF1の31ビット目が0の場合は0 1の場合は,mem256F1}
YMMdF2←{YMMsF2の31ビット目が0の場合は0 1の場合は,mem256F2}
YMMdF3←{YMMsF3の31ビット目が0の場合は0 1の場合は,mem256F3}
YMMdF4←{YMMsF4の31ビット目が0の場合は0 1の場合は,mem256F4}
YMMdF5←{YMMsF5の31ビット目が0の場合は0 1の場合は,mem256F5}
YMMdF6←{YMMsF6の31ビット目が0の場合は0 1の場合は,mem256F6}
YMMdF7←{YMMsF7の31ビット目が0の場合は0 1の場合は,mem256F7}
型変換
単精度→DWORD
vcvtps2dq YMMd,YMMsDWORD*8 DWORDが8個格納されているYMMsを単精度 8個に変換してYMMdに格納