https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127957
Uroš Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2026-10-19
CC| |jakub at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
Caused by r17-4919:
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.