Summary of Memory and Initialization Using Streaming SIMD Extensions

This section describes the Load, Set, and Store operations, which let you load and store data into memory. The Load and Set operations are similar in that both initialize __m128 data. However, the Set operations take a float argument and are intended for initialization with constants, whereas the Load operations take a floating point argument and are intended to mimic the instructions for loading data from memory. The Store operation assigns the initialized data to the address.

The miscellaneous intrinsics are listed in the following table. Syntax and a brief description are contained the following topics.

Memory and Initialization Operations

Intrinsic Name Operation Corresponding Instruction

_mm_load_ss

Load the low value and clear the three high values

MOVSS

_mm_load1_ps

Load one value into all four words

MOVSS + Shuffling

_mm_load_ps

Load four values, address aligned

MOVAPS

_mm_loadu_ps

Load four values, address unaligned

MOVUPS

_mm_loadr_ps

Load four values, in reverse order

MOVAPS + Shuffling

_mm_set_ss

Set the low value and clear the three high values Composite

_mm_set1_ps

Set all four words with the same value Composite

_mm_set_ps

Set four values, address aligned Composite

_mm_setr_ps

Set four values, in reverse order Composite

_mm_setzero_ps

Clear all four values Composite

_mm_store_ss

Store the low value

MOVSS

_mm_store1_ps

Store the low value acros all four words

MOVSS + Shuffling

_mm_store_ps

Store four values, address aligned

MOVAPS

_mm_storeu_ps

Store four values, address unaligned

MOVUPS

_mm_storer_ps

Store four values, in reverse order

MOVAPS + Shuffling

_mm_move_ss

Set the low word, and pass in three high values

MOVSS