ストア操作用のインテル® ストリーミング SIMD 拡張命令 (インテル® SSE) の組込み関数のプロトタイプは、ヘッダーファイル xmmintrin.h 内にあります。
各組込み関数の詳細には、戻り値を説明した表が含まれています。p[n] は、結果の要素 n へのアクセスを示します。
組込み関数名
|
演算子
|
対応するインテル® SSE 命令
|
_mm_storeh_pi
|
上位の値のストア
|
MOVHPS mem, reg
|
_mm_storel_pi
|
下位の値のストア
|
MOVLPS mem, reg
|
_mm_store_ss
|
最下位の値をストアする
|
MOVSS
|
_mm_store1_ps
|
最下位の値を 4 ワードすべてにストアする
|
Shuffling + MOVSS
|
_mm_store_ps
|
4 つの値をストアする (アドレスのアライメントが合っていなければなりません)
|
MOVAPS
|
_mm_storeu_ps
|
4 つの値をストアする (アドレスのアライメントが合っている必要はありません)
|
MOVUPS
|
_mm_storer_ps
|
4 つの値を逆順でストアする
|
MOVAPS + Shuffling
|
void _mm_storeh_pi(__m64 *p, __m128 a)
a の上位 2 つの単精度浮動小数点値を、アドレス p にストアします。
void _mm_storel_pi(__m64 *p, __m128 a)
a の下位 2 つの単精度浮動小数点値を、アドレス p にストアします。
void _mm_store_ss(float * p, __m128 a)
最下位の単精度浮動小数点値をストアします。
void _mm_store1_ps(float * p, __m128 a )
最下位の単精度浮動小数点値を 4 ワードにストアします。
p[0]
|
p[1]
|
p[2]
|
p[3]
|
a0
|
a0
|
a0
|
a0
|
void _mm_store_ps(float *p, __m128 a)
4 つの単精度浮動小数点値をストアします。アドレスは 16 バイトにアライメントが合っていなければなりません。
p[0]
|
p[1]
|
p[2]
|
p[3]
|
a0
|
a1
|
a2
|
a3
|
void _mm_storeu_ps(float *p, __m128 a)
4 つの単精度浮動小数点値をストアします。アドレスは 16 バイトにアライメントが合っている必要はありません。
p[0]
|
p[1]
|
p[2]
|
p[3]
|
a0
|
a1
|
a2
|
a3
|
void _mm_storer_ps(float * p, __m128 a )
4 つの単精度浮動小数点値を逆順でストアします。アドレスは 16 バイトにアライメントが合っていなければなりません。
p[0]
|
p[1]
|
p[2]
|
p[3]
|
a3
|
a2
|
a1
|
a0
|