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

「メモリ操作と初期化操作のまとめ」にある一覧表を参照してください。

ストリーミングSIMD拡張命令の組込み関数のプロトタイプは、ヘッダ・ファイルxmmintrin.h内にあります。

void _mm_store_ss(float * p, __m128 a)

最下位の単精度浮動小数点値をストアします。

*p := a0

void _mm_store_ps1(float * p, __m128 a )

最下位の単精度浮動小数点値を、4ワードにストアします。

p[0] := a0

p[1] := a0

p[2] := a0

p[3] := a0

void _mm_store_ps(float *p, __m128 a )

4個の単精度浮動小数点値をストアします。アドレスは16バイトにアライメントが合っていなければなりません。

p[0] := a0

p[1] := a1

p[2] := a2

p[3] := a3

void _mm_storeu_ps(float *p, __m128 a)

4個の単精度浮動小数点値をストアします。アドレスは16バイトにアライメントが合っていなくてもかまいません。

p[0] := a0

p[1] := a1

p[2] := a2

p[3] := a3

void _mm_storer_ps(float * p, __m128 a )

4個の単精度浮動小数点値を逆順でストアします。アドレスは16バイトにアライメントが合っていなければなりません。

p[0] := a3

p[1] := a2

p[2] := a1

p[3] := a0

__m128 _mm_move_ss(__m128 a, __m128 b)

最下位ワードを、bの単精度浮動小数点値に設定します。上位3個の単精度浮動小数点値は、aからそのまま渡されます。

r0 := b0

r1 := a1

r2 := a2

r3 := a3