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