User Guide
128-Bit Media and Scientific Programming 157
24592—Rev. 3.15—November 2009 AMD64 Technology
For a summary of the 64-bit media floating-point instructions, see “Instruction Summary—Floating-
Point Instructions” on page 223. For a summary of the x87 floating-point instructions, see “Instruction
Summary” on page 261.
The instructions are organized here by functional group—such as data-transfer, vector arithmetic, and
so on. Software running at any privilege level can use any of these instructions, if the CPUID
instruction reports support for the instructions (see “Feature Detection” on page 176). More detail on
individual instructions is given in the alphabetically organized “128-Bit Media Instruction Reference”
in Volume 4.
4.6.1 Syntax
The 128-bit media floating-point instructions have the same syntax rules as those for the 128-bit media
integer instructions, described in “Syntax” on page 133. For an illustration of typical syntax, see
Figure 4-16 on page 134.
4.6.2 Data Transfer
The data-transfer instructions copy operands between 32-bit, 64-bit, or 128-bit memory locations and
XMM registers. The MOV mnemonic, which stands for move, is a misnomer. A copy function is
actually performed instead of a move. A new copy of the source value is created at the destination
address, and the original copy remains unchanged at its source location.
Move
• MOVAPS—Move Aligned Packed Single-Precision Floating-Point
• MOVAPD—Move Aligned Packed Double-Precision Floating-Point
• MOVUPS—Move Unaligned Packed Single-Precision Floating-Point
• MOVUPD—Move Unaligned Packed Double-Precision Floating-Point
• MOVHPS—Move High Packed Single-Precision Floating-Point
• MOVHPD—Move High Packed Double-Precision Floating-Point
• MOVLPS—Move Low Packed Single-Precision Floating-Point
• MOVLPD—Move Low Packed Double-Precision Floating-Point
• MOVHLPS—Move Packed Single-Precision Floating-Point High to Low
• MOVLHPS—Move Packed Single-Precision Floating-Point Low to High
• MOVSS—Move Scalar Single--Precision Floating-Point
• MOVSD—Move Scalar Double-Precision Floating-Point
• MOVDDUP—Move Double-Precision and Duplicate
• MOVSLDUP—Move Single-Precision High and Duplicate
• MOVSHDUP—Move Single-Precision Low and Duplicate
Figure 4-31 on page 159 shows the capabilities of the various floating-point move instructions.