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]>

Reply via email to