ストア組み込み関数

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

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

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

組み込み関数名

演算子

対応するインテル®
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