4-8 Vol. 1
DATA TYPES
4.5
STRING DATA TYPES
Strings are continuous sequences of bits, bytes, words, or doublewords. A bit string can begin at any bit position
of any byte and can contain up to 2
32
–
1 bits. A byte string can contain bytes, words, or doublewords and can
range from zero to 2
32
– 1 bytes (4 GBytes).
4.6
PACKED SIMD DATA TYPES
Intel 64 and IA-32 architectures define and operate on a set of 64-bit and 128-bit packed data type for use in SIMD
operations. These data types consist of fundamental data types (packed bytes, words, doublewords, and quad-
words) and numeric interpretations of fundamental types for use in packed integer and packed floating-point oper-
ations.
4.6.1
64-Bit SIMD Packed Data Types
The 64-bit packed SIMD data types were introduced into the IA-32 architecture in the Intel MMX technology. They
are operated on in MMX registers. The fundamental 64-bit packed data types are packed bytes, packed words, and
packed doublewords (see Figure 4-7). When performing numeric SIMD operations on these data types, these data
types are interpreted as containing byte, word, or doubleword integer values.
4.6.2
128-Bit Packed SIMD Data Types
The 128-bit packed SIMD data types were introduced into the IA-32 architecture in the SSE extensions and used
with SSE2, SSE3 and SSSE3 extensions. They are operated on primarily in the 128-bit XMM registers and memory.
The fundamental 128-bit packed data types are packed bytes, packed words, packed doublewords, and packed
quadwords (see Figure 4-8). When performing SIMD operations on these fundamental data types in XMM registers,
these data types are interpreted as containing packed or scalar single-precision floating-point or double-precision
floating-point values, or as containing packed byte, word, doubleword, or quadword integer values.
Figure 4-7. 64-Bit Packed SIMD Data Types
Packed Words
Packed Bytes
Packed Doublewords
0
63
0
63
0
63
Packed Word Integers
Packed Byte Integers
Packed Doubleword Integers
0
63
0
63
0
63
Fundamental 64-Bit Packed SIMD Data Types
64-Bit Packed Integer Data Types