次のストア操作組み込み関数とそれに対応する命令は、ストリーミング SIMD 拡張命令 2 (SSE2) をサポートするプロセッサー上で有効です。
ストア組み込み関数は、初期化したデータを、指定したアドレスに割り当てます。
次の表の組み込み関数名をクリックすると、その組み込み関数の詳細が表示されます。
各組み込み関数の詳細には、戻り値を説明した表が含まれています。p[n] は、結果の要素 n へのアクセスを示します。
SSE2 の組み込み関数のプロトタイプは、ヘッダーファイル emmintrin.h 内にあります。
サンプルコード Double Complex では、_mm_store_pd 組み込み関数の使用方法を紹介しています。
組み込み関数名 | 操作 | 対応する SSE2 命令 |
---|---|---|
_mm_stream_pd | ストア | MOVNTPD |
_mm_store_sd | a の下位の倍精度浮動小数点値をストアする | MOVSD |
_mm_store1_pd | a の下位の倍精度浮動小数点値を 2 回ストアする | MOVAPD + Shuffling |
_mm_store_pd | 2 つの倍精度浮動小数点値をストアする | MOVAPD |
_mm_storeu_pd | 2 つの倍精度浮動小数点値をストアする | MOVUPD |
_mm_storer_pd | 2 つの倍精度浮動小数点値を逆順でストアする | MOVAPD + Shuffling |
_mm_storeh_pd | a の上位の倍精度浮動小数点値をストアする | MOVHPD |
_mm_storel_pd | a の下位の倍精度浮動小数点値をストアする | MOVLPD |
void _mm_store_sd(double *dp, __m128d a)
a の下位の倍精度浮動小数点値をストアします。アドレス dp は、16 バイトにアライメントが合っていなくてもかまいません。
*dp |
---|
a0 |
void _mm_store1_pd(double *dp, __m128d a)
a の下位の倍精度浮動小数点値を 2 回ストアします。アドレス dp は、16 バイトにアライメントが合っていなければなりません。
dp[0] | dp[1] |
---|---|
a0 | a0 |
void _mm_store_pd(double *dp, __m128d a)
2 つの倍精度浮動小数点値をストアします。アドレス dp は、16 バイトにアライメントが合っていなければなりません。
dp[0] | dp[1] |
---|---|
a0 | a1 |
void _mm_storeu_pd(double *dp, __m128d a)
2 つの倍精度浮動小数点値をストアします。アドレス dp は、16 バイトにアライメントが合っていなくてもかまいません。
dp[0] | dp[1] |
---|---|
a0 | a1 |
void _mm_storer_pd(double *dp, __m128d a)
2 つの倍精度浮動小数点値を逆順でストアします。アドレス dp は、16 バイトにアライメントが合っていなければなりません。
dp[0] | dp[1] |
---|---|
a1 | a0 |
void _mm_storeh_pd(double *dp, __m128d a)
a の上位の倍精度浮動小数点値をストアします。
*dp |
---|
a1 |
void _mm_storel_pd(double *dp, __m128d a)
a の下位の倍精度浮動小数点値をストアします。
*dp |
---|
a0 |