次のストア操作組込み関数とそれに対応する命令は、ストリーミングSIMD拡張命令2 をサポートするプロセッサ上で有効です。
ストリーミングSIMD拡張命令2の組込み関数のプロトタイプは、ヘッダ・ファイルemmintrin.h内にあります。
void _mm_store_sd(double *dp, __m128d a)
(MOVSD を使用)aの下位の倍精度浮動小数点値をストアします。アドレス dp は、16バイトにアライメントが合っていなくてもかまいません。
*dp := a0
void _mm_store1_pd(double *dp, __m128d a)
(MOVAPD とシャッフリングを使用)aの下位の倍精度浮動小数点値を2回ストアします。アドレス dp は、16バイトにアライメントが合っていなければなりません。
dp[0] := a0
dp[1] := a0
void _mm_store_pd(double *dp, __m128d a)
(MOVAPD を使用)2個の倍精度浮動小数点値をストアします。アドレス dp は、16バイトにアライメントが合っていなければなりません。
dp[0] := a0
dp[1] := a1
void _mm_storeu_pd(double *dp, __m128d a)
(MOVUPD を使用)2個の倍精度浮動小数点値をストアします。アドレス dp は、16バイトにアライメントが合っていなくてもかまいません。
dp[0] := a0
dp[1] := a1
void _mm_storer_pd(double *dp, __m128d a)
(MOVAPD とシャッフリングを使用)2個の倍精度浮動小数点値を逆順でストアします。アドレス dp は、16バイトにアライメントが合っていなければなりません。
dp[0] := a1
dp[1] := a0
void _mm_storeh_pd(double *dp, __m128d a)
(MOVHPD を使用)aの上位の倍精度浮動小数点値をストアします。
*dp := a1
void _mm_storel_pd(double *dp, __m128d a)
(MOVLPD を使用)aの下位の倍精度浮動小数点値をストアします。
*dp := a0