Intel® C++ Compiler 16.0 User and Reference Guide

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 Intel® 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