16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

CMPPS—Packed Single-FP Compare<br />

オペコード 命令 説明<br />

0F,C2,/r,ib CMPPS xmm1, xmm2/m128,<br />

imm8<br />

操作<br />

switch (imm8) {<br />

case eq: op = eq;<br />

case lt: op = lt;<br />

case le: op = le;<br />

case unord: op = unord;<br />

case neq: op = neq;<br />

case nlt: op = nlt;<br />

case nle: op = nle;<br />

case ord: op = ord;<br />

default: Reserved;<br />

}<br />

cmp0 = op(xmm1[31-0],xmm2/m128[31-0]);<br />

cmp1 = op(xmm1[63-32],xmm2/m128[63-32]);<br />

cmp2 = op(xmm1[95-64],xmm2/m128[95-64]);<br />

cmp3 = op(xmm1[127-96],xmm2/m128[127-96]);<br />

xmm1[31-0] = (cmp0) ? 0xffffffff : 0x00000000;<br />

xmm1[63-32] = (cmp1) ? 0xffffffff : 0x00000000;<br />

xmm1[95-64] = (cmp2) ? 0xffffffff : 0x00000000;<br />

xmm1[127-96] = (cmp3) ? 0xffffffff : 0x00000000;<br />

imm8 を述語として使用して、XMM2/Mem のパックド単精<br />

度浮動小数点値と XMM1 のパックド単精度浮動小数点値を<br />

比較し、結果を XMM1 レジスタにストアする。<br />

説明<br />

CMPPS 命令は、 imm8 に よ っ て指定 さ れる比較述語を使用して、 単精度浮動小数点値の<br />

各ペアを比較し、 すべて "1" の 32 ビッ ト ・マスクまたはすべて"0" の 32 ビッ ト ・マス<br />

クを返す。 この命令の後に、 このマスクを入力オペラン ド として使用する計算命令を実<br />

行して も、 フ ォル ト は発生しない。 これは、 すべて "0" のマスク は +0.0 の浮動小数点値<br />

に対応し、 すべて "1" のマスクは -qNaN の浮動小数点値に対応するためであ る。 比較の<br />

中には、 ソフ ト ウ ェア ・ エ ミ ュ レ ーシ ョ ン以外では実行できないも のがある。 これらの<br />

比較を行 う 際は、 プ ロ グ ラ マが必要に応じ てレ ジ ス タ を コ ピ ー してデス テ ィ ネ ー シ ョ<br />

ン・オペランドになるデータを保護し、 ソース・オペランドとデスティネーション・オ<br />

ペラ ン ド を入れ替えた後、 異な る述語を使 っ て比較を実行しなければな ら ない。 こ れ ら<br />

のエ ミ ュ レ ー シ ョ ンに使用される述語は、 次の 「エ ミ ュ レ ー シ ョ ン」 の欄に記載されて<br />

いる。 次の表は、 各種の比較のタイプを示している。<br />

第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス 3:877

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!