影響を受けるフラグ
なし。
保護モード例外
#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例外がある場合。
仮想8086モード例外
実アドレスモードと同じ例外。
#PF(フォルトコード) ページフォルトが発生した場合。
#AC(0) (64ビット操作のみ)アライメント・チェックがイネーブルにされて
いて、アライメントが合わないメモリ参照が行われた場合。
PMAXUB—Maximum of Packed Unsigned Byte Integers(続き)
数値例外 なし。
説明
デスティネーション・オペランド(第1オペランド)とソース・オペランド(第2オ ペランド)のパックド符号付きワード整数のSIMD比較を実行し、それぞれのワード 整数のペアの最小値をデスティネーション・オペランドに返す。ソース・オペランド は、MMX®テクノロジ・レジスタまたは64ビットのメモリ・ロケーションか、XMM レジスタまたは128ビットのメモリ・ロケーションである。デスティネーション・オ ペランドは、MMXテクノロジ・レジスタまたはXMMレジスタである。
操作
PMINSW instruction for 64-bit operands:
IF DEST[15-0] < SRC[15-0]) THEN (DEST[15-0] ← DEST[15-0];
ELSE
(DEST[15-0] ← SRC[15-0];
FI
* repeat operation for 2nd and 3rd words in source and destination operands * IF DEST[63-48] < SRC[63-48]) THEN
(DEST[63-48] ← DEST[63-48];
ELSE
(DEST[63-48] ← SRC[63-48];
FI
MINSW instruction for 128-bit operands:
IF DEST[15-0] < SRC[15-0]) THEN (DEST[15-0] ← DEST[15-0];
ELSE
(DEST[15-0] ← SRC[15-0];
FI
* repeat operation for 2nd through 7th words in source and destination operands * IF DEST[127-112] < SRC/m64[127-112]) THEN
(DEST[127-112] ← DEST[127-112];
ELSE
(DEST[127-112] ← SRC[127-112];
FI
同等のインテル® C/C++コンパイラ組み込み関数
PMINSW __m64 _mm_min_pi16 (__m64 a, __m64 b) PMINSW __m128i _mm_min_epi16 ( __m128i a, __m128i b)
オペコード 命令 説明
0F EA /r PMINSW mm1, mm2/m64 mm2/m64とmm1の符号付きワード整数を比較し
て最小値を返す。
66 0F EA /r PMINSW xmm1, xmm2/m128 xmm2/m128とxmm1の符号付きワード整数を比較 して最小値を返す。