インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
half-float 型から 32 ビット float 型への変換と 32 ビット float 型から half-float 型への変換を行う組込み関数は 4 つあります。これらの組込み関数のプロトタイプは、emmintrin.h ファイル内にあります。
これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
float _cvtsh_ss(unsigned short x);
この組込み関数は、half-float 値 x を 32 ビット float 値に変換し、返します。
unsigned short _cvtss_sh(float x, int imm);
この組込み関数は、32 ビット float 値 x を half-float 値に変換し、返します。
__m128 _mm_cvtph_ps(__m128i x);
この組込み関数は、4 つのパックド half-float 値を 4 つの 32 ビット float 値に変換し、返します。x の上位 64 ビットは無視されます。下位 64 ビットは 4 つの 16 ビット float 値として変換されます。
__m128i _mm_cvtps_ph(_m128 x, int imm);
この組込み関数は、4 つのパックド 32 ビット float 値を 4 つの half-float 値に変換し、返します。返される値の上位 64 ビットはすべて 0 です。下位 64 ビットには 4 つのパックド 16 ビット float 値が含まれます。