]> git.ipfire.org Git - thirdparty/gcc.git/commit
[APX EGPR] Handle GPR16 only vector move insns
authorHongyu Wang <hongyu.wang@intel.com>
Thu, 17 Aug 2023 00:30:04 +0000 (08:30 +0800)
committerHongyu Wang <hongyu.wang@intel.com>
Sat, 7 Oct 2023 08:34:30 +0000 (16:34 +0800)
commitf49886484691d6ecec38ee83353ca34cc71410b7
treec1584930f0c57ff28e76bfa9f9c574c5191f82e6
parentccdc0f0fcf6f240d5c4f059e6f38547a0cca9723
[APX EGPR] Handle GPR16 only vector move insns

For vector move insns like vmovdqa/vmovdqu, their evex counterparts
requrire explicit suffix 64/32/16/8. The usage of these instruction
are prohibited under AVX10_1 or AVX512F, so for we select
vmovaps/vmovups for vector load/store insns that contains EGPR if
ther is no AVX512VL, and keep the original move insn selection
otherwise.

gcc/ChangeLog:

* config/i386/i386.cc (ix86_get_ssemov): Check if egpr is used,
adjust mnemonic for vmovduq/vmovdqa.
* config/i386/sse.md (*<extract_type>_vinsert<shuffletype><extract_suf>_0):
Check if egpr is used, adjust mnemonic for vmovdqu/vmovdqa.
(avx_vec_concat<mode>): Likewise, and separate alternative 0 to
avx_noavx512f.

Co-authored-by: Kong Lingling <lingling.kong@intel.com>
Co-authored-by: Hongtao Liu <hongtao.liu@intel.com>
gcc/config/i386/i386.cc
gcc/config/i386/sse.md