AMD amd64 architecture User Manual

Page of 336
128-Bit Media and Scientific Programming
121
24592—Rev. 3.15—November 2009
AMD64 Technology
4.4
Operands
Operands for a 128-bit media instruction are either referenced by the instruction's opcode or included
as an immediate value in the instruction encoding. Depending on the instruction, referenced operands
can be located in registers or memory. The data types of these operands include vector and scalar
floating-point, and vector and scalar integer.
4.4.1 Data Types
Figure 4-14 on page 122 shows the register images of the 128-bit media data types. These data types
can be interpreted by instruction syntax and/or the software context as one of the following types of
values:
Vector (packed) single-precision (32-bit) floating-point numbers.
Vector (packed) double-precision (64-bit) floating-point numbers.
Vector (packed) signed (two's-complement) integers.
Vector (packed) unsigned integers.
Scalar signed (two's-complement) integers.
Scalar unsigned integers.
Hardware does not check or enforce the data types for instructions. Software is responsible for
ensuring that each operand for an instruction is of the correct data type. If data produced by a previous
instruction is of a type different from that used by the current instruction, and the current instruction
sources such data, the current instruction may incur a latency penalty, depending on the hardware
implementation.