Intel(R) C++ Intrinsic Reference
Disclaimer
Overview: Intrinsics Reference
Intrinsics for Intel(R) C++ Compilers
Availability of Intrinsics on Intel Processors
Details about Intrinsics
Registers
Data Types
New Data Types Available
__m64 Data Type
__m128 Data Types
Data Types Usage Guidelines
Accessing __m128i Data
Naming and Usage Syntax
References
Intrinsics for Use across All IA
Overview: Intrinsics for All IA
Integer Arithmetic Intrinsics
Floating-point Intrinsics
String and Block Copy Intrinsics
Miscellaneous Intrinsics
MMX(TM) Technology Intrinsics
Overview: MMX(TM) Technology Intrinsics
The EMMS Instruction: Why You Need It
Why You Need EMMS to Reset After an MMX(TM) Instruction
EMMS Usage Guidelines
MMX(TM) Technology General Support Intrinsics
MMX(TM) Technology Packed Arithmetic Intrinsics
MMX(TM) Technology Shift Intrinsics
MMX(TM) Technology Logical Intrinsics
MMX(TM) Technology Compare Intrinsics
MMX(TM) Technology Set Intrinsics
MMX(TM) Technology Intrinsics on IA-64 Architecture
Data Types
Streaming SIMD Extensions
Overview: Streaming SIMD Extensions
Floating-point Intrinsics for Streaming SIMD Extensions
Arithmetic Operations for Streaming SIMD Extensions
Logical Operations for Streaming SIMD Extensions
Comparisons for Streaming SIMD Extensions
Conversion Operations for Streaming SIMD Extensions
Load Operations for Streaming SIMD Extensions
Set Operations for Streaming SIMD Extensions
Store Operations for Streaming SIMD Extensions
Cacheability Support Using Streaming SIMD Extensions
Integer Intrinsics Using Streaming SIMD Extensions
Intrinsics to Read and Write Registers for Streaming SIMD Extensions
Miscellaneous Intrinsics Using Streaming SIMD Extensions
Using Streaming SIMD Extensions on IA-64 Architecture
Data Types
Compatibility versus Performance
Macro Functions
Macro Function for Shuffle Using Streaming SIMD Extensions
Shuffle Function Macro
View of Original and Result Words with Shuffle Function Macro
Macro Functions to Read and Write the Control Registers
Exception State Macros with _MM_EXCEPT_DIV_ZERO
Macro Function for Matrix Transposition
Matrix Transposition Using _MM_TRANSPOSE4_PS Macro
Streaming SIMD Extensions 2
Overview: Streaming SIMD Extensions 2
Floating-point Intrinsics
Floating-point Arithmetic Operations for Streaming SIMD Extensions 2
Floating-point Logical Operations for Streaming SIMD Extensions 2
Floating-point Comparison Operations for Streaming SIMD Extensions 2
Floating-point Conversion Operations for Streaming SIMD Extensions 2
Floating-point Load Operations for Streaming SIMD Extensions 2
Floating-point Set Operations for Streaming SIMD Extensions 2
Floating-point Store Operations for Streaming SIMD Extensions 2
Integer Intrinsics
Integer Arithmetic Operations for Streaming SIMD Extensions 2
Integer Logical Operations for Streaming SIMD Extensions 2
Integer Shift Operations for Streaming SIMD Extensions 2
Integer Comparison Operations for Streaming SIMD Extensions 2
Integer Conversion Operations for Streaming SIMD Extensions 2
Integer Move Operations for Streaming SIMD Extensions 2
Integer Load Operations for Streaming SIMD Extensions 2
Integer Set Operations for SSE2
Integer Store Operations for Streaming SIMD Extensions 2
Miscellaneous Functions and Intrinsics
Cacheability Support Operations for Streaming SIMD Extensions 2
Miscellaneous Operations for Streaming SIMD Extensions 2
Intrinsics for Casting Support
Pause Intrinsic for Streaming SIMD Extensions 2
Macro Function for Shuffle
Shuffle Function Macro
View of Original and Result Words with Shuffle Function Macro
Streaming SIMD Extensions 3
Overview: Streaming SIMD Extensions 3
Integer Vector Intrinsics for Streaming SIMD Extensions 3
Single-precision Floating-point Vector Intrinsics for Streaming SIMD Extensions 3
Double-precision Floating-point Vector Intrinsics for Streaming SIMD Extensions 3
Macro Functions for Streaming SIMD Extensions 3
Miscellaneous Intrinsics for Streaming SIMD Extensions 3
Supplemental Streaming SIMD Extensions 3
Overview: Supplemental Streaming SIMD Extensions 3
Addition Intrinsics
Subtraction Intrinsics
Multiplication Intrinsics
Absolute Value Intrinsics
Shuffle Intrinsics for Streaming SIMD Extensions 3
Concatenate Intrinsics
Negation Intrinsics
Streaming SIMD Extensions 4
Overview: Streaming SIMD Extensions 4
Streaming SIMD Extensions 4 Vectorizing Compiler and Media Accelerators
Overview: Streaming SIMD Extensions 4 Vectorizing Compiler and Media Accelerators
Packed Blending Intrinsics for Streaming SIMD Extensions 4
Floating Point Dot Product Intrinsics for Streaming SIMD Extensions 4
Packed Format Conversion Intrinsics for Streaming SIMD Extensions 4
Packed Integer Min/Max Intrinsics for Streaming SIMD Extensions 4
Floating Point Rounding Intrinsics for Streaming SIMD Extensions 4
DWORD Multiply Intrinsics for Streaming SIMD Extensions 4
Register Insertion/Extraction Intrinsics for Streaming SIMD Extensions 4
Test Intrinsics for Streaming SIMD Extensions 4
Packed DWORD to Unsigned WORD Intrinsic for Streaming SIMD Extensions 4
Packed Compare for Equal for Streaming SIMD Extensions 4
Cacheability Support Intrinsic for Streaming SIMD Extensions 4
Streaming SIMD Extensions 4 Efficient Accelerated String and Text Processing
Overview: Streaming SIMD Extensions 4 Efficient Accelerated String and Text Processing
Packed Comparison Intrinsics for Streaming SIMD Extensions 4
Application Targeted Accelerators Intrinsics
Intrinsics for IA-64 Instructions
Overview: Intrinsics for IA-64 Instructions
Native Intrinsics for IA-64 Instructions
Integer Operations
FSR Operations
Lock and Atomic Operation Related Intrinsics
Lock and Atomic Operation Related Intrinsics
Load and Store
Operating System Related Intrinsics
Conversion Intrinsics
Register Names for getReg() and setReg()
General Integer Registers
Application Registers
Control Registers
Indirect Registers for getIndReg() and setIndReg()
Multimedia Additions
Table 1. Values of n for m64_mux1 Operation
Synchronization Primitives
Atomic Fetch-and-op Operations
Atomic Op-and-fetch Operations
Atomic Compare-and-swap Operations
Atomic Synchronize Operation
Atomic Lock-test-and-set Operation
Atomic Lock-release Operation
Miscellaneous Intrinsics
Intrinsics for Dual-Core Intel(R) Itanium(R) 2 processor 9000 series
Examples
Microsoft-compatible Intrinsics for Dual-Core Intel® Itanium® 2 processor 9000 series
Data Alignment, Memory Allocation Intrinsics, and Inline Assembly
Overview: Data Alignment, Memory Allocation Intrinsics, and Inline Assembly
Alignment Support
Allocating and Freeing Aligned Memory Blocks
Inline Assembly
Microsoft Style Inline Assembly
GNU*-like Style Inline Assembly (IA-32 architecture and Intel(R) 64 architecture only)
Example
Example
Intrinsics Cross-processor Implementation
Overview: Intrinsics Cross-processor Implementation
Intrinsics For Implementation Across All IA
MMX(TM) Technology Intrinsics Implementation
Key to the table entries
Streaming SIMD Extensions Intrinsics Implementation
Key to the table entries
Streaming SIMD Extensions 2 Intrinsics Implementation
Index