Floating-point Set Operations for Streaming SIMD Extensions 2

The following set operation intrinsics and their respective instructions are functional in the Streaming SIMD Extensions 2 (SSE2).

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

__m128d _mm_set_sd(double w)

(composite) Sets the lower DP FP value to w and sets the upper DP FP value to zero.
r0 := w
r1 := 0.0

__m128d _mm_set1_pd(double w)

(composite) Sets the 2 DP FP values to w.
r0 := w
r1 := w

__m128d _mm_set_pd(double w, double x)

(composite) Sets the lower DP FP value to x and sets the upper DP FP value to w.
r0 := x
r1 := w

__m128d _mm_setr_pd(double w, double x)

(composite) Sets the lower DP FP value to w and sets the upper DP FP value to x.
r0 := w
r1 := x

__m128d _mm_setzero_pd(void)

(uses XORPD) Sets the 2 DP FP values to zero.
r0 := 0.0
r1 := 0.0

__m128d _mm_move_sd( __m128d a, __m128d b)

(uses MOVSD) 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 := b0
r1 := a1