インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
ストア操作用のインテル® ストリーミング SIMD 拡張命令 (インテル® SSE) の組込み関数のプロトタイプは、ヘッダーファイル xmmintrin.h 内にあります。
これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.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 |
void _mm_storeh_pi(__m64 *p, __m128 a);
a の上位 2 つの単精度浮動小数点値を、アドレス p にストアします。
*p0 |
*p1 |
---|---|
a2 |
a3 |
void _mm_storel_pi(__m64 *p, __m128 a);
a の下位 2 つの単精度浮動小数点値を、アドレス p にストアします。
*p0 |
*p1 |
---|---|
a0 |
a1 |
void _mm_store_ss(float * p, __m128 a);
最下位の単精度浮動小数点値をストアします。
*p |
---|
a0 |
void _mm_store1_ps(float * p, __m128 a);
最下位の単精度浮動小数点値を 4 ワードにストアします。
p[0] |
p[1] |
p[2] |
p[3] |
---|---|---|---|
a0 |
a0 |
a0 |
a0 |
void _mm_store_ps(float *p, __m128 a);
4 つの単精度浮動小数点値をストアします。アドレスは 16 バイトにアライメントが合っていなければなりません。
p[0] |
p[1] |
p[2] |
p[3] |
---|---|---|---|
a0 |
a1 |
a2 |
a3 |
void _mm_storeu_ps(float *p, __m128 a);
4 つの単精度浮動小数点値をストアします。アドレスは 16 バイトにアライメントが合っている必要はありません。
p[0] |
p[1] |
p[2] |
p[3] |
---|---|---|---|
a0 |
a1 |
a2 |
a3 |
void _mm_storer_ps(float * p, __m128 a);
4 つの単精度浮動小数点値を逆順でストアします。アドレスは 16 バイトにアライメントが合っていなければなりません。
p[0] |
p[1] |
p[2] |
p[3] |
---|---|---|---|
a3 |
a2 |
a1 |
a0 |