AVX512FP16: Enhance vector shuffle builtins
authorHongyu Wang <hongyu.wang@intel.com>
Mon, 30 Aug 2021 07:18:35 +0000 (15:18 +0800)
committerHongyu Wang <hongyu.wang@intel.com>
Fri, 15 Oct 2021 06:44:22 +0000 (14:44 +0800)
commitbe072bfa5bb3817168daa0a4a398cd9bd915a726
treedabf5d6e184e749a1730abe7a1f7c564b4067f98
parent147ed0184f403b51b4f180f94b0779e9905faa3a
AVX512FP16: Enhance vector shuffle builtins

Support HFmode vector shuffle by creating HImode subreg when
expanding permutation expr.

gcc/ChangeLog:

* config/i386/i386-expand.c (ix86_expand_vec_perm): Convert
HFmode input operand to HImode.
(ix86_vectorize_vec_perm_const): Likewise.
* config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1_hf):
New define_insn.
(*avx512f_permvar_truncv8siv8hi_1_hf):
Likewise.

gcc/testsuite/ChangeLog:

* gcc.target/i386/avx512fp16-builtin_shuffle-1.c: New test.
* gcc.target/i386/avx512fp16-pr101846.c: Ditto.
* gcc.target/i386/avx512fp16-pr94680.c: Ditto.
gcc/config/i386/i386-expand.c
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/avx512fp16-builtin_shuffle-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512fp16-pr101846.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512fp16-pr94680.c [new file with mode: 0644]