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

ストア組込み関数

ストア操作用のインテル® ストリーミング 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

_mm_storeh_pi

void _mm_storeh_pi(__m64 *p, __m128 a);

a の上位 2 つの単精度浮動小数点値を、アドレス p にストアします。

*p0

*p1

a2

a3

_mm_storel_pi

void _mm_storel_pi(__m64 *p, __m128 a);

a の下位 2 つの単精度浮動小数点値を、アドレス p にストアします。

*p0

*p1

a0

a1

_mm_store_ss

void _mm_store_ss(float * p, __m128 a);

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

*p

a0

_mm_store1_ps

void _mm_store1_ps(float * p, __m128 a);

最下位の単精度浮動小数点値を 4 ワードにストアします。

p[0]

p[1]

p[2]

p[3]

a0

a0

a0

a0

_mm_store_ps

void _mm_store_ps(float *p, __m128 a);

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

p[0]

p[1]

p[2]

p[3]

a0

a1

a2

a3

_mm_storeu_ps

void _mm_storeu_ps(float *p, __m128 a);

4 つの単精度浮動小数点値をストアします。アドレスは 16 バイトにアライメントが合っている必要はありません。

p[0]

p[1]

p[2]

p[3]

a0

a1

a2

a3

_mm_storer_ps

void _mm_storer_ps(float * p, __m128 a);

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

p[0]

p[1]

p[2]

p[3]

a3

a2

a1

a0