background image

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