Load Operations for Streaming SIMD Extensions

See summary table in Summary of Memory and Initialization topic.

__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_load1_ps(float * p )

or

__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]