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

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

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

__m128 _mm_load_ss(float * p)

単精度浮動小数点値を最下位ワードにロードし、上位3ワードをクリアします。

r0 := *p

r1 := 0.0 ; r2 := 0.0 ; r3 := 0.0

__m128 _mm_load_ps1(float * p )

1個の単精度浮動小数点値をロードして、その値を4ワードすべてにコピーします。

r0 := *p

r1 := *p

r2 := *p

r3 := *p

__m128 _mm_load_ps(float * p )

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

r0 := p[0]

r1 := p[1]

r2 := p[2]

r3 := p[3]

__m128 _mm_loadu_ps(float * p)

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

r0 := p[0]

r1 := p[1]

r2 := p[2]

r3 := p[3]

__m128 _mm_loadr_ps(float * p)

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

r0 := p[3]

r1 := p[2]

r2 := p[1]

r3 := p[0]