03.03.2013 Views

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1.1 ABOUT THIS DOCUMENT<br />

INTEL® ADVANCED VECTOR EXTENSIONS<br />

CHAPTER 1<br />

INTEL® ADVANCED VECTOR EXTENSIONS<br />

This document describes the software programming interfaces of several vector SIMD and general-purpose instruction<br />

extensions of the <strong>Intel®</strong> 64 architecture that will be introduced with Intel 64 processors built on 22nm<br />

process technology. The Intel AVX extensions are introduced in the second generation <strong>Intel®</strong> Core processor<br />

family, and details of Intel AVX are covered in the <strong>Intel®</strong> 64 and IA-32 <strong>Architecture</strong>s Software Developer’s Manual.<br />

Additionally, details of VCVTPH2PS/VCVTPS2PH, RDRAND, RDFSBASE/RDGSBASE/WRFSBASE/WRGSBASE<br />

are also covered there.<br />

The instruction set extensions covered in this document are organized in the following chapters:<br />

• 256-bit vector integer instruction extensions, referred to as <strong>Intel®</strong> AVX2 (also as AVX2), are described in<br />

Chapter 5.<br />

• FMA instruction extensions are described in Chapter 6.<br />

• VEX-encoded, general-purpose instruction extensions are described in Chapter 7.<br />

• Intel Transactional Synchronization <strong>Extensions</strong> are described in Chapter 8.<br />

Chapter 1 provides an overview of these new instruction set extensions (with Intel AVX included for base reference).<br />

Chapter 2 describes the common application programming environment. Chapter 3 describes system programming<br />

requirements needed to support 256-bit registers. Chapter 4 describes the architectural extensions<br />

of Intel 64 instruction encoding format that support 256-bit registers, three and four operand syntax, and extensions<br />

for vector-index memory addressing and general-purpose register encoding.<br />

1.2 OVERVIEW<br />

<strong>Intel®</strong> Advanced Vector <strong>Extensions</strong> extend beyond the capabilities and programming environment over those of<br />

multiple generations of Streaming SIMD <strong>Extensions</strong>. Intel AVX addresses the continued need for vector floatingpoint<br />

performance in mainstream scientific and engineering numerical applications, visual processing, recognition,<br />

data-mining/synthesis, gaming, physics, cryptography and other areas of applications. Intel AVX is designed<br />

to facilitate efficient implementation by wide spectrum of software architectures of varying degrees of<br />

thread parallelism, and data vector lengths. Intel AVX offers the following benefits:<br />

• efficient building blocks for applications targeted across all segments of computing platforms.<br />

• significant increase in floating-point performance density with good power efficiency over previous generations<br />

of 128-bit SIMD instruction set extensions,<br />

• scalable performance with multi-core processor capability.<br />

Intel AVX also establishes a foundation for future evolution in both instruction set functionality and vector lengths<br />

by introducing an efficient instruction encoding scheme, three and four operand instruction syntax, supporting<br />

load and store masking, etc.<br />

Intel Advanced Vector <strong>Extensions</strong> offers comprehensive architectural enhancements and functional enhancements<br />

in arithmetic as well as data processing primitives. Section 1.3 summarizes the architectural enhancement<br />

of AVX. Functional overview of AVX and FMA instructions are summarized in Section 1.5. General-purpose encryption<br />

and AES instructions follow the existing architecture of 128-bit SIMD instruction sets like SSE4 and its<br />

predecessors, Section 1.6 provides a short summary.<br />

1.3 INTEL® ADVANCED VECTOR EXTENSIONS ARCHITECTURE OVERVIEW<br />

Intel AVX has many similarities to the SSE and double-precision floating-point portions of SSE2. However, Intel<br />

AVX introduces the following architectural enhancements:<br />

Ref. # 319433-014 1-1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!