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

概要: half-float 型変換用の組込み関数

一部のアプリケーション・ドメインでは、half-float 型や 16 ビット float 型がよく使用されます。half-float 型は、データの保存にはよく使用されますが、演算には使用されないため、格納用のデータ型とみなされます。通常、値は演算を行う前に標準の 32 ビット float 型に変換されます。

half-float 型のサポートは、32 ビット float 型からの変換、および 32 ビット float 型への変換に制限されています。half-float 型を使用する利点は次のとおりです。

half-float 型組込み関数

half-float 型組込み関数は、演算を行う際の half-float 値から 32 ビット float 値への変換、およびデータを格納するときの 32 ビット float 値から half-float 値への変換を行うために提供されています。

これらの組込み関数は、実際の変換を実行するライブラリーの呼び出しに変換されます。

half-float 型組込み関数は、IA-32 およびインテル® 64 アーキテクチャーのサポートされているオペレーティング・システムで利用できます。インテル® Pentium® 4 プロセッサー以上、およびインテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) 命令以上をサポートしているオペレーティング・システムが必要です。

half-float 型組込み関数演算における即値バイトの役割

すべての half-float 型組込み関数において、即値バイトは、丸めモード、FTZ、およびその他の不揮発性設定値を制御します。imm8 バイトの書式は、次の図に示すとおりです。

imm8 値は、特別な MXCSR の上書きに使用されます。

図中の項目の説明は次のとおりです。

コンパイラーは、最上位ビット (MSB) が 0 であるかどうかのエラーチェックを行ってから、これらのビットをライブラリー関数に渡します。