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

設定組込み関数

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

ロード組込み関数と設定組込み関数はよく似ており、いずれも __m128d 型のデータを初期化します。しかし、設定組込み関数は、データを定数で初期化するための関数で、double 引数を使用します。ロード組込み関数は、メモリーからデータをロードする命令を模倣するための関数で、double ポインター引数を使用します。

一部の組込み関数は、2 つ以上の命令で実行するため、"複合組込み関数" と呼ばれます。

各組込み関数演算の結果はレジスターに配置されます。各レジスターに配置される値については、次の表の関数名の詳細で示します。各組込み関数の結果レジスターは R0R1 で示します。R0 および R1 はそれぞれ、結果レジスターの 1 つの部分を表します。

組込み関数名

演算

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

_mm_set_sd

下位の倍精度浮動小数点値を w に設定し、上位の倍精度浮動小数点値を 0 に設定する

複合

_mm_set1_pd

2 つの倍精度浮動小数点値を w に設定します。

複合

_mm_set_pd

下位の倍精度浮動小数点値を x に設定し、上位の倍精度浮動小数点値を w に設定する

複合

_mm_setr_pd

下位の倍精度浮動小数点値を w に設定し、上位の倍精度浮動小数点値を x に設定する

複合

_mm_setzero_pd

2 つの倍精度浮動小数点値を 0 に設定する

XORPD

_mm_move_sd

下位の倍精度浮動小数点値を、b の下位の倍精度浮動小数点値に設定します。

MOVSD

_mm_set_sd

__m128d _mm_set_sd(double w);

下位の倍精度浮動小数点値を w に設定し、上位の倍精度浮動小数点値を 0 に設定します。

R0

R1

w

0.0

_mm_set1_pd

__m128d _mm_set1_pd(double w);

2 つの倍精度浮動小数点値を w に設定します。

R0

R1

w

w

_mm_set_pd

__m128d _mm_set_pd(double w, double x);

下位の倍精度浮動小数点値を x に設定し、上位の倍精度浮動小数点値を w に設定します。

R0

R1

x

w

_mm_setr_pd

__m128d _mm_setr_pd(double w, double x);

下位の倍精度浮動小数点値を w に設定し、上位の倍精度浮動小数点値を x に設定します。r0 := w r1 := x

R0

R1

w

x

_mm_setzero_pd

__m128d _mm_setzero_pd(void);

2 つの倍精度浮動小数点値を 0 に設定します。

R0

R1

0.0

0.0

_mm_move_sd

__m128d _mm_move_sd( __m128d a, __m128d b);

下位の倍精度浮動小数点値を、b の下位の倍精度浮動小数点値に設定します。上位の倍精度浮動小数点値は、a からそのまま渡されます。

R0

R1

b0

a1