User and Reference Guide for the Intel® C++ Compiler 14.0

Intrinsics for Converting Half Floats that Map to 3rd Generation Intel® Core™ Processor Instructions

There are four intrinsics for converting the half-float values. Two of them (_mm_cvtph_ps() and _mm_cvtps_ph()) are declared in the emmintrin.h file, and the other two (_mm256_cvtps_ph() and _mm256_cvtph_ps()) are declared in the immintrin.h file.

These intrinsics convert packed half-precision values starting from the first CPUs with the AVX instructions support that do not really have any special instructions performing FP16 conversions. Therefore, the intrinsics are lowered to runtime library function calls and map to 3rd Generation Intel® Core™ Processor instructions only when such a processor is specified as target CPU using the -Qx<CPU>/-x<CPU> option, where <CPU> is the name of a CPU with support of 3rd Generation Intel® Core™ Processor Instruction Extensions.

See Also