https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127720
--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <[email protected]>: https://gcc.gnu.org/g:f5f265263dc9faf5cecbe67f15eb7f5c4f85f7d4 commit r17-4919-gf5f265263dc9faf5cecbe67f15eb7f5c4f85f7d4 Author: Jakub Jelinek <[email protected]> Date: Tue Oct 6 08:53:05 2026 +0200 i386: Extend _Float16 to double using F16C/AVX512VL extension to float and then ss2sd [PR127720] For AVX512FP16 we have an instruction for direct extension from _Float16 to _Float64. Without that ISA, we've been emitting a libgcc API call, but for F16C or AVX512VL we can do better, we can emit vcvtph2ps followed by vcvtss2sd, _Float32 is a superset of all _Float16 values and _Float64 is superset of all _Float32 values, so the only changes/exceptions we want are for sNaN input and vcvtph2ps should handle that already. 2026-10-06 Jakub Jelinek <[email protected]> PR target/127720 * config/i386/i386.md (extendhfdf2): Enable also for TARGET_F16C || TARGET_AVX512VL, in those cases expand as extendhfsf2 followed by extendsfdf2. * gcc.target/i386/pr127720-f16c.c: New test. * gcc.target/i386/pr127720-avx512vl.c: New test. Reviewed-by: Uros Bizjak <[email protected]>
