次のストア操作組込み関数とそれに対応する命令は、ストリーミング SIMD 拡張命令 2 をサポートするプロセッサ上で有効です。
ストリーミング SIMD 拡張命令 2 の組込み関数のプロトタイプは、ヘッダファイル emmintrin.h 内にあります。
void _mm_store_si128(__m128i *p, __m128i b)
(MOVDQA を使用) 128 ビット値をストアします。アドレス p は、16 バイトにアライメントが合っていなければなりません。
*p := a
void _mm_storeu_si128(__m128i *p, __m128i b)
(MOVDQU を使用) 128 ビット値をストアします。アドレス p は、16 バイトにアライメントが合っていなくてもかまいません。
*p := a
void _mm_maskmoveu_si128(__m128i d, __m128i n, char *p)
(MASKMOVDQU を使用) d のバイト要素を、条件付きでアドレス p にストアします。セレクタ n の各バイトの最上位ビットによって、それに対応する d の各バイトがストアされるかどうかが決まります。アドレス p は、16 バイトにアライメントが合っていなくてもかまいません。
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 q)
(MOVQ を使用) p で指定された値の下位 64 ビットをストアします。
*p[63:0]:=a0