24531904_j
24531904_j 24531904_j
図 3-3. パックド操作 図 3-4. スカラ操作 3.6.1 命令グループの概要 3.6.1.1 算術演算命令 X1 (SP) X2 (SP) X3 (SP) X4 (SP) Y1 (SP) Y2 (SP) Y3 (SP) Y4 (SP) OP OP X1 op Y1 (SP) X2 op Y2 (SP) X3 op Y3 (SP) X4 op Y4 (SP) パックド / スカラ・データの加算と減算 ADDPS (Add packed single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点オペ ラ ン ド の要素の4つのペアを加算する。SUBPS (Subtract packed single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点オペラ ン ド の要素の 4 つのペアを減算する。 ADDSS (Add scalar single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点オペ ラ ン ド の最下位の要素のペアを加算する。 SUBSS (Subtract scalar single-precision floating-point) 命令は、パ ッ ク ド 単精度浮動小数点オペラ ン ド の最下位の要素のペアを減算 する。 上位3 フィールドは、 ソース・オペランドからそのまま渡される。 パックド / スカラ・データの乗算と除算 MULPS (Multiply packed single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点 オペラ ン ド の要素の 4 つのペアを乗算する。 MULSS (Multiply scalar single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点オ ペラ ン ド の最下位の要素のペアを乗算する。 上位 3 フィールドは、 ソース・オペランドか らそのまま渡される。 DIVPS (Divide packed single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点オ ペラン ドの要素の 4 つのペアを除算する。 3:850 第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス OP OP X1 (SP) X2 (SP) X3 (SP) X4 (SP) Y1 (SP) Y2 (SP) Y3 (SP) Y4 (SP) OP X1 (SP) X2 (SP) X3 (SP) X4 op Y4 (SP)
DIVSS (Divide scalar single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点オペ ラ ン ド の最下位の要素のペアを除算する。 上位 3 フィールドは、 ソース・オペランドから そのま ま渡される。 パックド / スカラ・データの平方根 SQRTPS (Square root packed single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数 点数の 4 つの要素の平方根を、 ソ ー ス ・ オペラ ン ド か ら デス テ ィ ネ ー シ ョ ン ・ レ ジ ス タ に 返す。 SQRTSS (Square root scalar single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数 点数の最下位の要素の平方根を、 ソ ー ス ・ オペラ ン ド か ら デス テ ィ ネ ー シ ョ ン ・ レ ジ ス タ に返す。 上位 3 フィールドは、 ソース・オペランドからそのまま渡される。 パック・データの最大 / 最小 MAXPS (Maximum packed single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数 点数の要素の各ペアの最大値を、 デスティネーション・レジスタに返す。 MAXSS (Maximum scalar single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点 数の最下位の要素のペアの最大値を、デステ ィ ネ ー シ ョ ン・レ ジスタ に返す。上位 3 フィー ルドは、 ソース ・ オペランドからデスティネーション ・ レジスタにそのまま渡される。 MINPS (Minimum packed single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点 数の要素の各ペアの最小値を、 デステ ィ ネ ー シ ョ ン ・ レ ジ ス タ に返す。 MINSS (Minimum scalar single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点 数の最下位の要素のペアの最小値を、デステ ィ ネ ー シ ョ ン・レ ジスタ に返す。上位 3 フィー ルドは、 ソース ・ オペランドからデスティネーション ・ レジスタにそのまま渡される。 3.6.1.2 論理演算命令 3.6.1.3 比較命令 ANDPS (Bit-wise packed logical AND for single-precision floating-point) 命令は、 2 つのオペラ ンドの間のビット単位のAND ( 論理積 ) を返す。 ANDNPS (Bit-wise packed logical AND NOT for single-precision floating-point) 命令は、 2 つの オペラ ン ド の間のビ ッ ト 単位の AND NOT ( 否定論理積 ) を返す。 ORPS (Bit-wise packed logical OR for single-precision floating-point) 命令は、 2 つのオペラン ド の間のビ ッ ト 単位の OR ( 論理和 ) を返す。 XORPS (Bit-wise packed logical XOR for single-precision floating-point) 命令は、 2 つのオペラ ンドの間のビット単位のXOR ( 排他的論理和 ) を返す。 CMPPS (Compare packed single-precision floating-point) 命令は、 プ レ デ ィ ケ ー ト に即値オペ ラ ン ド を使用して、 パ ッ ク ド 単精度浮動小数点数の要素の 4 つのペアを比較し、SP フィー ルドごとにその結果をすべて"1" の 32 ビッ ト ・マスクまたはすべて"0" の 32 ビット ・マ スクで返す。 この命令は、 12 の比較条件をすべてサポー ト している ( 等しい、 よ り小さ い、 よ り 小さ いか等しい、 よ り大きい、 よ り 大きいか等しい、 比較不能、 等し く ない、 よ り小さくない、 より小さくなく等しくない、 より大きくない、 より大きくなく等しくな い、 比較可能 )。 CMPSS (Compare scalar single-precision floating-point) 命令は、 CMPPS と同じよ うに、 プレ デ ィ ケ ー ト に即値オペラ ン ド を使用して、 パ ッ ク ド 単精度浮動小数点数の最下位の要素の ペアを比較し、 SP フィールドごとにその結果をすべて"1" の 32 ビット ・マスクまたはす べて "0" の 32 ビッ ト ・マスクで返す。 第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス 3:851
- Seite 812 und 813: PADDUSB/PADDUSW—Packed Add Unsign
- Seite 814 und 815: PAND—Logical AND オペコード
- Seite 816 und 817: PANDN—Logical AND NOT オペコ
- Seite 818 und 819: PCMPEQB/PCMPEQW/PCMPEQD—Packed Co
- Seite 820 und 821: PCMPEQB/PCMPEQW/PCMPEQD—Packed Co
- Seite 822 und 823: PCMPGTB/PCMPGTW/PCMPGTD—Packed Co
- Seite 824 und 825: PMADDWD—Packed Multiply and Add
- Seite 826 und 827: PMULHW—Packed Multiply High オ
- Seite 828 und 829: PMULLW—Packed Multiply Low オペ
- Seite 830 und 831: POR—Bitwise Logical OR オペコ
- Seite 832 und 833: PSLLW/PSLLD/PSLLQ—Packed Shift Le
- Seite 834 und 835: PSLLW/PSLLD/PSLLQ—Packed Shift Le
- Seite 836 und 837: PSRAW/PSRAD—Packed Shift Right Ar
- Seite 838 und 839: PSRLW/PSRLD/PSRLQ—Packed Shift Ri
- Seite 840 und 841: PSRLW/PSRLD/PSRLQ—Packed Shift Ri
- Seite 842 und 843: PSUBB/PSUBW/PSUBD—Packed Subtract
- Seite 844 und 845: PSUBSB/PSUBSW—Packed Subtract wit
- Seite 846 und 847: PSUBSB/PSUBSW—Packed Subtract wit
- Seite 848 und 849: PSUBUSB/PSUBUSW—Packed Subtract U
- Seite 850 und 851: PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ—Unp
- Seite 852 und 853: PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ—Unp
- Seite 854 und 855: PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ—Unp
- Seite 856 und 857: PXOR—Logical Exclusive OR オペ
- Seite 858 und 859: 3:846 第 3 巻 : IA-32 MMX ® テ
- Seite 860 und 861: 令テ ク ノ ロジを組み込
- Seite 864 und 865: COMISS (Compare scalar single-preci
- Seite 866 und 867: scalar 32-bit integer) 命令は、
- Seite 868 und 869: MASKMOVQ (Non-temporal byte mask st
- Seite 870 und 871: 3.7.1 実数体系 図 3-8 に示
- Seite 872 und 873: て異なる。 バイアス定数
- Seite 874 und 875: 極端な場合には、 先頭の
- Seite 876 und 877: 3.8 データ・フォーマット
- Seite 878 und 879: 3.10 命令プリフィックス
- Seite 880 und 881: •xmm/m64: 128 ビット ・マル
- Seite 882 und 883: ADDPS—Packed Single-FP Add ( 続
- Seite 884 und 885: ADDSS—Scalar Single-FP Add ( 続
- Seite 886 und 887: ANDNPS—Bit-wise Logical And Not F
- Seite 888 und 889: ANDPS—Bit-wise Logical And for Si
- Seite 890 und 891: CMPPS—Packed Single-FP Compare (
- Seite 892 und 893: CMPPS—Packed Single-FP Compare (
- Seite 894 und 895: CMPSS—Scalar Single-FP Compare (
- Seite 896 und 897: CMPSS—Scalar Single-FP Compare (
- Seite 898 und 899: COMISS—Scalar Ordered Single-FP C
- Seite 900 und 901: CVTPI2PS—Packed Signed INT32 to P
- Seite 902 und 903: CVTPS2PI—Packed Single-FP to Pack
- Seite 904 und 905: CVTPS2PI—Packed Single-FP to Pack
- Seite 906 und 907: CVTSI2SS—Scalar Signed INT32 to S
- Seite 908 und 909: CVTSS2SI—Scalar Single-FP to Sign
- Seite 910 und 911: CVTTPS2PI—Packed Single-FP to Pac
図 3-3. パックド操作<br />
図 3-4. スカラ操作<br />
3.6.1 命令グループの概要<br />
3.6.1.1 算術演算命令<br />
X1 (SP) X2 (SP) X3 (SP) X4 (SP)<br />
Y1 (SP) Y2 (SP) Y3 (SP) Y4 (SP)<br />
OP<br />
OP<br />
X1 op Y1 (SP) X2 op Y2 (SP) X3 op Y3 (SP) X4 op Y4 (SP)<br />
パックド / スカラ・データの加算と減算<br />
ADDPS (Add packed single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点オペ<br />
ラ ン ド の要素の4つのペアを加算する。SUBPS (Subtract packed single-precision floating-point)<br />
命令は、 パ ッ ク ド 単精度浮動小数点オペラ ン ド の要素の 4 つのペアを減算する。<br />
ADDSS (Add scalar single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点オペ<br />
ラ ン ド の最下位の要素のペアを加算する。 SUBSS (Subtract scalar single-precision<br />
floating-point) 命令は、パ ッ ク ド 単精度浮動小数点オペラ ン ド の最下位の要素のペアを減算<br />
する。 上位3 フィールドは、 ソース・オペランドからそのまま渡される。<br />
パックド / スカラ・データの乗算と除算<br />
MULPS (Multiply packed single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点<br />
オペラ ン ド の要素の 4 つのペアを乗算する。<br />
MULSS (Multiply scalar single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点オ<br />
ペラ ン ド の最下位の要素のペアを乗算する。 上位 3 フィールドは、 ソース・オペランドか<br />
らそのまま渡される。<br />
DIVPS (Divide packed single-precision floating-point) 命令は、 パ ッ ク ド 単精度浮動小数点オ<br />
ペラン ドの要素の 4 つのペアを除算する。<br />
3:850 第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス<br />
OP<br />
OP<br />
X1 (SP) X2 (SP) X3 (SP) X4 (SP)<br />
Y1 (SP) Y2 (SP) Y3 (SP) Y4 (SP)<br />
OP<br />
X1 (SP) X2 (SP) X3 (SP) X4 op Y4 (SP)