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

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

ストリーミング SIMD 拡張命令 (SSE) の組込み関数のプロトタイプは、ヘッダファイル 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]