Store Operations for Streaming SIMD Extensions 2

void _mm_store_sd (double *p, __m128d a)

(uses MOVSD)

Stores the lower DP FP value of a. The address p need not be 16-byte aligned.

*p := a0

 

void _mm_store1_pd (double *p, __m128d a)

(uses MOVAPD + shuffling)

Stores the lower DP FP value of a twice. The address p must be 16-byte aligned.

p[0] := a0

p[1] := a0

 

void _mm_store_pd (double *p, __m128d a)

(uses MOVAPD)

Stores two DP FP values. The address p must be 16-byte aligned.

p[0] := a0

p[1] := a1

 

void _mm_storeu_pd (double *p, __m128d a)

(uses MOVUPD)

Stores two DP FP values. The address p need not be 16 byte aligned.

p[0] := a0

p[1] := a1

 

void _mm_storer_pd (double *p, __m128d a)

(uses MOVAPD + shuffling)

Stores two DP FP values in reverse order. The address p must be 16 byte aligned.

p[0] := a1

p[1] := a0

 

void _mm_storeh_pd (double *p, __m128d a)

(uses MOVHPD)

Stores the upper DP FP value of a.

*p := a1

 

void _mm_storel_pd (double *p, __m128d a)

(uses MOVLPD)

Stores the lower DP FP value of a.

*p := a0