User Guide

128-Bit Media and Scientific Programming 139
24592—Rev. 3.15—November 2009 AMD64 Technology
Figure 4-19. PMOVMSKB Move Mask Operation
4.5.3 Data Conversion
The integer data-conversion instructions convert integer o perands to floating-point operands. These
instructions take 128-bit integer source operands. For data-conversion instructions that take 128-bit
floating-point source operands, see “Data Conversion” on page 162. For data-conversion instructions
that take 64-bit source operands, see “Data Conversion” on page 211 and “Data Conversion” on
page 224.
Convert Integer to Floating-Point. These instructions convert integer data types in XMM registers
or memory into floating-point data types in XMM registers.
CVTDQ2PS—Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point
CVTDQ2PD—Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point
The CVTDQ2PS instruction converts four 32-bit signed integer values in the second operand to four
single-precision floating-point values and writes the converted values in another XMM register. If the
result of the conversion is an inexact value, the value is rounded. The CVTDQ2PD instruction is
analogous to CVTDQ2PS except that it converts two 64-bit signed integer values to two double-
precision floating-point values.
Convert MMX Integer to Floating-Point. These instructions convert integer data types in MMX
registers or memory into floating-point data types in XMM registers.
CVTPI2PS—Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point
CVTPI2PD—Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point
The CVTPI2PS instruction converts two 32-bit signed integer values in an MMX register or a 64-bit
memory location to two single-precision floating-point values and writes the converted values in the
low-order 64 bits of an XMM register. The high-order 64 bits of the XMM register are not modified.
The CVTPI2PD instruction is analogous to CVTPI2PS except that it converts two 32-bit signed
integer values to two double-precision floating-point values and writes the converted values in the full
128 bits of an XMM register.
513-157..eps
GPR XMM
127 0
concatenate 16 most-significant bits
0