ストリーミングSIMD拡張命令2 の整数ストア操作

次のストア操作組込み関数とそれに対応する命令は、ストリーミング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