[Bug target/126933] Inlined SSE2 float -> bf16 conversions should be improved
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Aug 24 10:29:50 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126933
--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <hjl@gcc.gnu.org>:
https://gcc.gnu.org/g:e44dc11c4d9b80e2dce5a91c0ff07606a3b527b0
commit r17-3585-ge44dc11c4d9b80e2dce5a91c0ff07606a3b527b0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Aug 19 11:42:38 2026 +0800
x86: Expand the default truncsfbf2 like vcvtneps2bf16
Expand default truncsfbf2 like vcvtneps2bf16, which doesn't honor SNAN,
turns sNAN into qNAN quietly, it always rounds to nearest even and
flushes input denormals to zero, with
(fromi + 0x7fff + ((fromi >> 16) & 1)) >> 16
and flush input denormals to zero.
gcc/
PR target/126933
* config/i386/i386-expand.cc (ix86_expand_truncsfbf2): New.
* config/i386/i386-protos.h (ix86_expand_truncsfbf2): Likewise.
* config/i386/i386.md (truncsfbf2): Changed to define_expand
and update comments.
(truncsfbf2_vcvtneps2bf16): New.
gcc/testsuite/
PR target/126933
* gcc.target/i386/truncsfbf-1.c (dg-options): Add
-mno-avxneconvert -mno-avx512bf16. Use check-function-bodies to
check updated codegen.
* gcc.target/i386/truncsfbf-2.c (dg-options): Add
-mno-avxneconvert -mno-avx512bf16.
(foo): Make it static with __attribute__ ((noipa, noinline)).
(CALC): Add __attribute__ ((noipa, noinline)). Flush input
denormal to zero.
(main): Add tests for float denormal inputs.
* gcc.target/i386/truncsfbf-3.c: New test.
* gcc.target/i386/truncsfbf-4.c: Likewise.
* gcc.target/i386/truncsfbf-5.c: Likewise.
* gcc.target/i386/truncsfbf-6.c: Likewise.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
More information about the Gcc-bugs
mailing list