Visible to Intel only — GUID: GUID-474FF551-49EF-4F91-98BE-69DE1585FF68
Visible to Intel only — GUID: GUID-474FF551-49EF-4F91-98BE-69DE1585FF68
Set Intrinsics
Intel® Streaming SIMD Extensions 2 (Intel® SSE2) intrinsics for floating-point set operations are listed in this topic. The prototypes for Intel® SSE2 intrinsics are in the emmintrin.h header file.
To use these intrinsics, include the immintrin.h file as follows:
#include <immintrin.h>
The load and set operations are similar in that both initialize __m128d data. However, the set operations take a double argument and are intended for initialization with constants, while the load operations take a double pointer argument and are intended to mimic the instructions for loading data from memory.
Some of the these intrinsics are composite intrinsics because they require more than one instruction to implement them.
The results of each intrinsic operation are placed in a register. The information about what is placed in each register appears in the tables below, in the detailed explanation for each intrinsic. For each intrinsic, the resulting register is represented by R0 and R1, where R0 and R1 each represent one piece of the result register.
Intrinsic Name |
Operation |
Corresponding |
---|---|---|
_mm_set_sd |
Sets lower DP FP value to w and upper to zero |
Composite |
_mm_set1_pd |
Sets two DP FP values to w |
Composite |
_mm_set_pd |
Sets lower DP FP to x and upper to w |
Composite |
_mm_setr_pd |
Sets lower DP FP to w and upper to x |
Composite |
_mm_setzero_pd |
Sets two DP FP values to zero |
XORPD |
_mm_move_sd |
Sets lower DP FP value to the lower DP FP value of b |
MOVSD |
_mm_set_sd
__m128d _mm_set_sd(double w);
Sets the lower DP FP value to w and sets the upper DP FP value to zero.
R0 |
R1 |
---|---|
w |
0.0 |
_mm_set1_pd
__m128d _mm_set1_pd(double w);
Sets the two DP FP values to w.
R0 |
R1 |
---|---|
w |
w |
_mm_set_pd
__m128d _mm_set_pd(double w, double x);
Sets the lower DP FP value to x and sets the upper DP FP value to w.
R0 |
R1 |
---|---|
x |
w |
_mm_setr_pd
__m128d _mm_setr_pd(double w, double x);
Sets the lower DP FP value to w and sets the upper DP FP value to x. r0 := w r1 := x
R0 |
R1 |
---|---|
w |
x |
_mm_setzero_pd
__m128d _mm_setzero_pd(void);
Sets the two DP FP values to zero.
R0 |
R1 |
---|---|
0.0 |
0.0 |
_mm_move_sd
__m128d _mm_move_sd( __m128d a, __m128d b);
Sets the lower DP FP value to the lower DP FP value of b. The upper DP FP value is passed through from a.
R0 |
R1 |
---|---|
b0 |
a1 |