インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

ストア組込み関数

ここでは、浮動小数点ストア操作用のインテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) の組込み関数について説明します。インテル® SSE2 の組込み関数のプロトタイプは、ヘッダーファイル emmintrin.h 内にあります。

ストア組込み関数は、初期化したデータを、指定したアドレスに割り当てます。

各組込み関数の詳細には、戻り値を説明した表が含まれています。dp[n] は、結果の要素 n へのアクセスを示します。

組込み関数名

演算

対応するインテル® SSE2 命令

_mm_stream_pd

ストア

MOVNTPD

_mm_store_sd

ストア

MOVSD

_mm_store1_pd

ストア

MOVAPD + シャッフル

_mm_store_pd

ストア

MOVAPD

_mm_storeu_pd

ストア

MOVUPD

_mm_storer_pd

ストア

MOVAPD + シャッフル

_mm_storeh_pd

ストア

MOVHPD

_mm_storel_pd

ストア

MOVLPD

_mm_store_sd

void _mm_store_sd(double *dp, __m128d a);

a の下位の倍精度浮動小数点値をストアします。アドレス dp は、16 バイトにアライメントが合っていなくてもかまいません。

*dp

a0

_mm_store1_pd

void _mm_store1_pd(double *dp, __m128d a);

a の下位の倍精度浮動小数点値を 2 回ストアします。アドレス dp は、16 バイトにアライメントが合っていなければなりません。

dp[0]

dp[1]

a0

a0

_mm_store_pd

void _mm_store_pd(double *dp, __m128d a);

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

dp[0]

dp[1]

a0

a1

_mm_storeu_pd

void _mm_storeu_pd(double *dp, __m128d a);

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

dp[0]

dp[1]

a0

a1

_mm_storer_pd

void _mm_storer_pd(double *dp, __m128d a);

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

dp[0]

dp[1]

a1

a0

_mm_storeh_pd

void _mm_storeh_pd(double *dp, __m128d a);

a の上位の倍精度浮動小数点値をストアします。

*dp

a1

void _mm_storel_pd(double *dp, __m128d a);

a の下位の倍精度浮動小数点値をストアします。

*dp

a0