Intel 64 and IA-32 Architectures Software Developers Manual Volume 2A, Instruction Set Reference, A-M

3-632 Vol. 2
INSTRUCTION SET REFERENCE, A-M
MOVMSKPD—Extract Packed Double-Precision Floating-Point Sign
Mask
Description
Extracts the sign bits from the packed double-precision floating-point values in the
source operand (second operand), formats them into a 2-bit mask, and stores the
mask in the destination operand (first operand). The source operand is an XMM
register, and the destination operand is a general-purpose register. The mask is
stored in the 2 low-order bits of the destination operand.
In 64-bit mode, the instruction can access additional registers (XMM8-XMM15,
R8-R15) when used with a REX.R prefix. Use of the REX.W prefix promotes the
instruction to 64-bit operands. See the summary chart at the beginning of this
section for encoding data and limits.
Operation
DEST[0] SRC[63];
DEST[1] SRC[127];
IF DEST = r32
THEN DEST[3:2] ZeroExtend;
ELSE DEST[63:2] ZeroExtend;
FI;
Intel C/C++ Compiler Intrinsic Equivalent
MOVMSKPD int _mm_movemask_pd ( __m128 a)
SIMD Floating-Point Exceptions
None.
Opcode Instruction
64-Bit
Mode
Compat/
Leg Mode Description
66 0F 50 /r MOVMSKPD r32,
xmm
Valid Valid Extract 2-bit sign mask
from xmm and store in
r32.
66 + REX.W 0F 50
/r
MOVMSKPD r64,
xmm
Valid N.E. Extract 2-bit sign mask
from xmm and store in
r64. Zero extend 32-bit
results to 64-bits.