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.