Store Operations for Streaming SIMD Extensions

See summary table in Summary of Memory and Initialization topic.

void _mm_store_ss(float * p, __m128 a )

Stores the lower SP FP value.

*p := a0

 

void _mm_store1_ps(float * p, __m128 a )

or

void _mm_store_ps1(float * p, __m128 a )

Stores the lower SP FP value across four words.

p[0] := a0

p[1] := a0

p[2] := a0

p[3] := a0

 

void _mm_store_ps(float *p, __m128 a )

Stores four SP FP values. The address must be 16-byte-aligned.

p[0] := a0

p[1] := a1

p[2] := a2

p[3] := a3

 

void _mm_storeu_ps(float *p, __m128 a)

Stores four SP FP values. The address need not be 16-byte-aligned.

p[0] := a0

p[1] := a1

p[2] := a2

p[3] := a3

 

void _mm_storer_ps(float * p, __m128 a )

Stores four SP FP values in reverse order. The address must be 16-byte-aligned.

p[0] := a3

p[1] := a2

p[2] := a1

p[3] := a0

 

__m128 _mm_move_ss( __m128 a, __m128 b )

Sets the low word to the SP FP value of b. The upper 3 SP FP values are passed through from a.

r0 := b0

r1 := a1

r2 := a2

r3 := a3