インテル® C++ コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
ここでは、浮動小数点変換操作用のインテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) の組込み関数について説明します。インテル® SSE2 の組込み関数のプロトタイプは、ヘッダーファイル emmintrin.h 内にあります。
変換組込み関数は、データ型を他のデータ型に変換します。_mm_cvtpd_ps 組込み関数などによって実行される一部の変換を行うと、データの精度が低下します。 このような場合に使用する丸めモードは、MXCSR レジスターの値によって決まります。 デフォルトの丸めモードは、最近値への丸めです。
C および C++ 言語は、型変換の実行時に切り捨てモードを使用します。_mm_cvttpd_epi32 および _mm_cvttsd_si32 組込み関数は、MXCSR レジスターで指定した丸めモードに関係なく、切り捨てモードを使用します。
各組込み関数演算の結果はレジスターに配置されます。各レジスターに配置される値については、次の表の関数名の詳細で示します。各組込み関数の結果レジスターは R、R0、R1、R2、および R3 で示します。それぞれ、結果が配置されるレジスターを表します。
組込み関数名 |
演算子 |
対応するインテル® SSE2 命令
|
---|---|---|
_mm_cvtpd_ps |
倍精度浮動小数点値から単精度浮動小数点値への変換 |
CVTPD2PS |
_mm_cvtps_pd |
単精度浮動小数点値から倍精度浮動小数点値への変換 |
CVTPS2PD |
_mm_cvtepi32_pd |
下位の整数値から倍精度浮動小数点値への変換 |
CVTDQ2PD |
_mm_cvtpd_epi32 |
倍精度浮動小数点値から整数値への変換 |
CVTPD2DQ |
_mm_cvtsd_si32 |
下位の倍精度浮動小数点値から整数値への変換 |
CVTSD2SI |
_mm_cvtsd_ss |
下位の倍精度浮動小数点値から単精度浮動小数点値への変換 |
CVTSD2SS |
_mm_cvtsi32_sd |
符号付き整数値から倍精度浮動小数点値への変換 |
CVTSI2SD |
_mm_cvtss_sd |
下位の単精度浮動小数点値から倍精度浮動小数点値への変換 |
CVTSS2SD |
_mm_cvttpd_epi32 |
倍精度浮動小数点値から符号付き整数値への変換 |
CVTTPD2DQ |
_mm_cvttsd_si32 |
下位の倍精度浮動小数点値から符号付き整数値への変換 |
CVTTSD2SI |
_mm_cvtpd_pi32 |
2 つの倍精度浮動小数点値から符号付き整数値への変換 |
CVTPD2PI |
_mm_cvttpd_pi32 |
切り捨てを使用した 2 つの倍精度浮動小数点値から符号付き整数値への変換 |
CVTTPD2PI |
_mm_cvtpi32_pd |
2 つの符号付き整数値から倍精度浮動小数点値への変換 |
CVTPI2PD |
_mm_cvtsd_f64 |
最初のベクトル要素から倍精度浮動小数点値の抽出 |
なし |