• 検索結果がありません。

・ SSE3

5.4. MMX ® 命令

5.5.1. SSE SIMD 単精度浮動小数点命令

これらの命令は、

XMM レジスタまたはメモリ内のパックド /

スカラ単精度浮動小数点 値を操作する。このサブグループは、さらに下位のサブグループであるデータ転送命 令、パックド算術命令、比較命令、論理演算命令、シャッフル命令とアンパック命令、

変換命令に分けられる。

5.5.1.1. SSEデータ転送命令

SSE

データ転送命令は、

XMM

レジスタ同士および

XMM

レジスタとメモリの間で、

パックド

/

スカラ単精度浮動小数点オペランドを転送する。

MOVAPS Move four aligned packed single-precision floating-point values between XMM registers or between and XMM register and memory.

アライメントの合った 4 つのパックド単精度浮動小数点値を XMM レジスタ同士の間、または XMM レジスタとメモリとの間 で転送

MOVUPS Move four unaligned packed single-precision floating-point values between XMM registers or between and XMM register and memory.

アライメントの合っていない4つのパックド単精度浮動小数点値 を XMM レジスタ同士の間、または XMM レジスタとメモリとの 間で転送

MOVHPS Move two packed single-precision floating-point values to an from the high quadword of an XMM register and memory.

2 つのパックド単精度浮動小数点値を XMM レジスタの上位ク ワッドワードとメモリとの間で転送

MOVHLPS Move two packed single-precision floating-point values from the high quadword of an XMM register to the low quadword of another XMM register.

2 つのパックド単精度浮動小数点値を XMM レジスタの上位ク ワッドワードから別の XMM レジスタの下位クワッドワードに転 送

MOVLPS Move two packed single-precision floating-point values to an from the low quadword of an XMM register and memory.

2 つのパックド単精度浮動小数点値を XMM レジスタの下位ク ワッドワードとメモリとの間で転送

MOVLHPS Move two packed single-precision floating-point values from the low quadword of an XMM register to the high quadword of another XMM register.

2 つのパックド単精度浮動小数点値を XMM レジスタの下位ク ワッドワードから別の XMM レジスタの上位クワッドワードに転 送

MOVMSKPS Extract sign mask from four packed single-precision floating-point values.

4つのパックド単精度浮動小数点値から符号マスクを抽出

IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル 上巻:基本アーキテクチャ

5-26

MOVSS Move scalar single-precision floating-point value between XMM registers or between an XMM register and memory.

スカラ単精度浮動小数点値を XMM レジスタ同士の間、または XMM レジスタとメモリとの間で転送

5.5.1.2. SSEパックド算術命令

SSE

パックド算術命令は、パックド

/

スカラ単精度浮動小数点オペランドに対する、

パックド

/

スカラ算術演算を実行する。

ADDPS Add packed single-precision floating-point values.

パックド単精度浮動小数点値を加算 ADDSS Add scalar single-precision floating-point values.

スカラ単精度浮動小数点値を加算

SUBPS Subtract packed single-precision floating-point values.

パックド単精度浮動小数点値を減算

SUBSS Subtract scalar single-precision floating-point values.

スカラ単精度浮動小数点値を減算

MULPS Multiply packed single-precision floating-point values.

パックド単精度浮動小数点値を乗算

MULSS Multiply scalar single-precision floating-point values.

スカラ単精度浮動小数点値を乗算

DIVPS Divide packed single-precision floating-point values.

パックド単精度浮動小数点値を除算 DIVSS Divide scalar single-precision floating-point values.

スカラ単精度浮動小数点値を除算

RCPPS Compute reciprocals of packed single-precision floating-point values.

パックド単精度浮動小数点値の逆数を計算

RCPSS Compute reciprocal of scalar single-precision floating-point values.

スカラ単精度浮動小数点値の逆数を計算

SQRTPS Compute square roots of packed single-precision floating-point values.

パックド単精度浮動小数点値の平方根を計算

SQRTSS Compute square root of scalar single-precision floating-point values.

スカラ単精度浮動小数点値の平方根を計算

RSQRTPS Compute reciprocals of square roots of packed single-precision floating-point values.

パックド単精度浮動小数点値の平方根の逆数を計算

RSQRTSS Compute reciprocal of square root of scalar single-precision floating-point values.

スカラ単精度浮動小数点値の平方根の逆数を計算 MAXPS Return maximum packed single-precision floating-point values.

パックド単精度浮動小数点値の最大値を返す

MAXSS Return maximum scalar single-precision floating-point values.

スカラ単精度浮動小数点値の最大値を返す

命令セットの要約

5

MINPS Return minimum packed single-precision floating-point values.

パックド単精度浮動小数点値の最小値を返す MINSS Return minimum scalar single-precision floating-point values.

スカラ単精度浮動小数点値の最小値を返す

5.5.1.3. SSE比較命令

SSE

比較命令は、パックド

/

スカラ単精度浮動小数点オペランドの比較を実行する。

CMPPS Compare packed single-precision floating-point values.

パックド単精度浮動小数点値を比較

CMPSS Compare scalar single-precision floating-point values.

スカラ単精度浮動小数点値を比較

COMISS Perform ordered comparison of scalar single-precision floating-point values and set flags in EFLAGS register.

スカラ単精度浮動小数点値を順序付きで比較し、EFLAGS レジス タにフラグをセット

UCOMISS Perform unordered comparison of scalar single-precision floating-point values and set flags in EFLAGS register.

スカラ単精度浮動小数点値を順序付けなしで比較し、EFLAGS レ ジスタにフラグをセット

5.5.1.4. SSE論理演算命令

SSE

論理演算命令は、パックド単精度浮動小数点オペランドのビット単位の

AND、

AND NOT、OR、または XOR

演算を実行する。

ANDPS Perform bitwise logical AND of packed single-precision floating-point values.

パックド単精度浮動小数点値のビットごとの AND(論理積)演算 を実行

ANDNPS Perform bitwise logical AND NOT of packed single-precision floating-point values.

パックド単精度浮動小数点値のビットごとの AND NOT(否定論 理積)演算を実行

ORPS Perform bitwise logical OR of packed single-precision floating-point values.

パックド単精度浮動小数点値のビットごとの OR(論理和)演算 を実行

XORPS Perform bitwise logical XOR of packed single-precision floating-point values.

パックド単精度浮動小数点値のビットごとの XOR(排他的論理 和)演算を実行

IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル 上巻:基本アーキテクチャ

5-28

5.5.1.5. SSEシャッフル命令とアンパック命令

SSE

シャッフル命令とアンパック命令は、パックド単精度浮動小数点オペランド内の 単精度浮動小数点値のシャッフルまたはインターリーブを実行する。

SHUFPS Shuffles values in packed single-precision floating-point operands.

パックド単精度浮動小数点オペランド内の値をシャッフル UNPCKHPS Unpacks and interleaves the two high-order values from two single-precision

floating-point operands.

2つの単精度浮動小数点オペランドから上位の値を2つアンパッ クしてインターリーブ

UNPCKLPS Unpacks and interleaves the two low-order values from two single-precision floating-point operands.

2つの単精度浮動小数点オペランドから下位の値を2つアンパッ クしてインターリーブ

5.5.1.6. SSE変換命令

SSE

変換命令は、パックドまたは個々のダブルワード整数を、パックドまたはスカラ 単精度浮動小数点値に変換する。あるいは、その逆方向の変換を行う。

CVTPI2PS Convert packed doubleword integers to packed single-precision floating-point values.

パックド・ダブルワード整数をパックド単精度浮動小数点値に変 換

CVTSI2SS Convert doubleword integer to scalar single-precision floating-point value.

ダブルワード整数をスカラ単精度浮動小数点値に変換

CVTPS2PI Convert packed single-precision floating-point values to packed doubleword integers.

パックド単精度浮動小数点値をパックド・ダブルワード整数に変 換

CVTTPS2PI Convert with truncation packed single-precision floating-point values to packed doubleword integers.

切り捨てを使用して、パックド単精度浮動小数点値をパックド・

ダブルワード整数に変換

CVTSS2SI Convert scalar single-precision floating-point value to a doubleword integer.

スカラ単精度浮動小数点値をダブルワード整数に変換

CVTTSS2SI Convert with truncation scalar single-precision floating-point value to scalar doubleword integer.

切り捨てを使用して、スカラ単精度浮動小数点値をスカラ・ダブ ルワード整数に変換

命令セットの要約

5