Load Operations for Streaming SIMD Extensions

See summary table in Summary of Memory and Initialization topic.

The prototypes for Streaming SIMD Extensions intrinsics are in the xmmintrin.h header file.

__m128 _mm_load_ss(float * p )

Loads an SP FP value into the low word and clears the upper three words.
r0 := *p
r1 := 0.0 ; r2 := 0.0 ; r3 := 0.0

__m128 _mm_load_ps1(float * p )

Loads a single SP FP value, copying it into all four words.
r0 := *p
r1 := *p
r2 := *p
r3 := *p

__m128 _mm_load_ps(float * p )

Loads four SP FP values. The address must be 16-byte-aligned.
r0 := p[0]
r1 := p[1]
r2 := p[2]
r3 := p[3]

__m128 _mm_loadu_ps(float * p)

Loads four SP FP values. The address need not be 16-byte-aligned.
r0 := p[0]
r1 := p[1]
r2 := p[2]
r3 := p[3]

__m128 _mm_loadr_ps(float * p)

Loads four SP FP values in reverse order. The address must be 16-byte-aligned.
r0 := p[3]
r1 := p[2]
r2 := p[1]
r3 := p[0]