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.
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 |