]> git.ipfire.org Git - thirdparty/gcc.git/commit
Support vector float_truncate for SF to BF.
authorliuhongt <hongtao.liu@intel.com>
Wed, 23 Oct 2024 07:51:00 +0000 (00:51 -0700)
committerliuhongt <hongtao.liu@intel.com>
Tue, 5 Nov 2024 08:20:04 +0000 (00:20 -0800)
commita17acf4f25f0ce9b8dce24f25867500a3b093b57
treefa7831c18df8e9eaeb9494e6410cab9d4da3de87
parentc1bbad07c8686c858ea58ffdb9db8f964bf485c6
Support vector float_truncate for SF to BF.

Generate native instruction whenever possible, otherwise use vector
permutation with odd indices.

gcc/ChangeLog:

* config/i386/i386-expand.cc
(ix86_expand_vector_sf2bf_with_vec_perm): New function.
* config/i386/i386-protos.h
(ix86_expand_vector_sf2bf_with_vec_perm): New declare.
* config/i386/mmx.md (truncv2sfv2bf2): New expander.
* config/i386/sse.md (truncv4sfv4bf2): Ditto.
(truncv8sfv8bf2): Ditto.
(truncv16sfv16bf2): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/i386/avx512bf16-truncsfbf.c: New test.
* gcc.target/i386/avx512bw-truncsfbf.c: New test.
* gcc.target/i386/ssse3-truncsfbf.c: New test.
gcc/config/i386/i386-expand.cc
gcc/config/i386/i386-protos.h
gcc/config/i386/mmx.md
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/avx512bf16-truncsfbf.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-truncsfbf.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/ssse3-truncsfbf.c [new file with mode: 0644]