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

PAVGB/PAVGW—Average Packed Integers(続き)

同等のインテル® C/C++コンパイラ組み込み関数 PAVGB __m64_mm_avg_pu8 (__m64 a, __m64 b) PAVGW __m64_mm_avg_pu16 (__m64 a, __m64 b) PAVGB __m128i _mm_avg_epu8 ( __m128i a, __m128i b) PAVGW __m128i _mm_avg_epu16 ( __m128i a, __m128i b) 影響を受けるフラグ

なし。

保護モード例外

#GP(0) メモリ・オペランドの実効アドレスがCS、DS、ES、FS、またはGS

セグメントの範囲外の場合。

(128 ビット操作のみ)セグメントに関係なく、メモリ・オペランド のアライメントが16バイトに合っていない場合。

#SS(0) メモリ・オペランドの実効アドレスがSSセグメントの範囲外の場合。

#UD CR0のEMがセットされた場合。

(128ビット操作のみ)CR4のOSFXSRが0の場合。

(128ビット操作のみ)CPUID機能フラグSSE2が0の場合。

#NM CR0のTSがセットされた場合。

#MF (64ビット操作のみ)未処理のx87 FPU例外がある場合。

#PF(フォルトコード) ページフォルトが発生した場合。

#AC(0) (64ビット操作のみ)現行特権レベルが3のときに、アライメント・

チェックがイネーブルにされていて、アライメントが合わないメモリ 参照が行われた場合。

実アドレスモード例外

#GP(0) (128 ビット操作のみ)セグメントに関係なく、メモリ・オペランド

のアライメントが16バイトに合っていない場合。

オペランドの一部が0~FFFFHの実効アドレス空間の範囲外の場合。

#UD CR0のEMがセットされた場合。

(128ビット操作のみ)CR4のOSFXSRが0の場合。

(128ビット操作のみ)CPUID機能フラグSSE2が0の場合。

#NM CR0のTSがセットされた場合。

#MF (64ビット操作のみ)未処理のx87 FPU例外がある場合。

PAVGB/PAVGW—Average Packed Integers(続き)

仮想8086モード例外

実アドレスモードと同じ例外。

#PF(フォルトコード) ページフォルトが発生した場合。

#AC(0) (64ビット操作のみ)アライメント・チェックがイネーブルにされて

いて、アライメントが合わないメモリ参照が行われた場合。

数値例外 なし。

説明

デスティネーション・オペランド(第1オペランド)とソース・オペランド(第2オ ペランド)のパックドバイト/ワード/ダブルワードが等しいかどうかのSIMD比較を 実行する。データ要素のペアが等しい場合は、デスティネーション・オペランドの対 応するデータ要素はすべて1に設定される。そうでない場合は、すべてゼロに設定さ れる。ソース・オペランドは、MMX®テクノロジ・レジスタまたは64ビットのメモ リ・ロケーション、XMMレジスタまたは128ビットのメモリ・ロケーションを使用 できる。デスティネーション・オペランドには、MMXテクノロジ・レジスタまたは XMMレジスタを使用できる。

PCMPEQB命令は、デスティネーション・オペランドおよびソース・オペランドの対

応するバイトを比較する。PCMPEQW命令は、デスティネーション・オペランドおよ びソース・オペランドの対応するワードを比較する。PCMPEQD命令は、デスティネー ション・オペランドおよびソース・オペランドの対応するダブルワードを比較する。

操作

PCMPEQB instruction with 64-bit operands:

IF DEST[7..0] = SRC[7..0]

THEN DEST[7 0) ← FFH;

ELSE DEST[7..0] ← 0;

* Continue comparison of 2nd through 7th bytes in DEST and SRC * IF DEST[63..56] = SRC[63..56]

THEN DEST[63..56] ← FFH;

ELSE DEST[63..56] ← 0;

PCMPEQB instruction with 128-bit operands:

IF DEST[7..0] = SRC[7..0]

THEN DEST[7 0) ← FFH;

ELSE DEST[7..0] ← 0;

オペコード 命令 説明

0F 74 /r PCMPEQB mm, mm/m64 mm/m64mmのパックドバイトを等しいか比

較する。

66 0F 74 /r PCMPEQB xmm1, xmm2/m128 xmm2/m128xmm1のパックドバイトを等しい か比較する。

0F 75 /r PCMPEQW mm, mm/m64 mm/m64mmのパックドワードを等しいか比

較する。

66 0F 75 /r PCMPEQW xmm1, xmm2/m128 xmm2/m128xmm1のパックドワードを等しい か比較する。

0F 76 /r PCMPEQD mm, mm/m64 mm/m64mmのパックド・ダブルワードを等

しいか比較する。

66 0F 76 /r PCMPEQD xmm1, xmm2/m128 xmm2/m128xmm1のパックド・ダブルワード を等しいか比較する。