Intel® C++ Compiler 16.0 User and Reference Guide

Overview: Intel® Streaming SIMD Extensions 2 (Intel® SSE2)

This section describes the C++ language-level features supporting the Intel® Streaming SIMD Extensions 2 (Intel® SSE2) in the Intel® C++ Compiler. The features are divided into two categories:

Note

  1. There are no intrinsics for floating-point move operations. To move data from one register to another, a simple assignment, A = B, suffices, where A and B are the source and target registers for the move operation.
  2. On processors that do not support Intel® SSE2 instructions but do support MMX™ Technology, you can use the sse2mmx.h emulation pack to enable support for Intel® SSE2 instructions.

Use the sse2mmx.h header file for the following processors:

Some intrinsics are "composites" - they require more than one instruction to implement them. Intrinsics that require one instruction to implement them are referred to as "simple".

You should be familiar with the hardware features provided by Intel® SSE2 when writing programs with the intrinsics. The following are three important issues to keep in mind:

The prototypes for Intel® SSE2 intrinsics are in the emmintrin.h header file.

Note

You can also use the single ia32intrin.h header file for any intrinsics based on IA-32 architecture.