The following store operation intrinsics and their respective instructions are functional in the Streaming SIMD Extensions 2.
void _mm_store_si128 ( __m128i *p,
__m128i a)
(uses MOVDQA)
Stores 128-bit value. Address p
must be 16 byte aligned.
*p := a
void _mm_storeu_si128 ( __m128i *p,
__m128i a)
(uses MOVDQU)
Stores 128-bit value. Address p
need not be 16-byte aligned.
*p := a
void _mm_maskmoveu_si128( __m128i d,
__m128i n,
char *p)
(uses MASKMOVDQU)
Conditionally store byte elements of d to
address p. The high bit of
each byte in the selector n
determines whether the corresponding byte in d
will be stored. Address p
need not be 16-byte aligned.
if (n0[7]) p[0]
:= d0
if (n1[7]) p[1]
:= d1
...
if (n15[7]) p[15]
:= d15
void _mm_storel_epi64(__m128i *p,
__m128i a)
(uses MOVQ)
Stores the lower 64 bits of the value pointed to by p.
*p[63:0]:=a0