]> git.ipfire.org Git - thirdparty/gcc.git/commit
Fix regression introduced by r12-5536.
authorliuhongt <hongtao.liu@intel.com>
Fri, 26 Nov 2021 15:24:20 +0000 (23:24 +0800)
committerliuhongt <hongtao.liu@intel.com>
Mon, 29 Nov 2021 09:45:57 +0000 (17:45 +0800)
commit9519b694afbf9a35c36cf9f14d35d1c0e9e8cacc
tree748cba18ee37cbaa0c46cc3407bd9fa6a53605ad
parent85e91ad55a69282c1b0e34569836a026a1a954d1
Fix regression introduced by r12-5536.

There're several failures:
1.  unsupported instruction `pextrw` for "pextrw $0, %xmm31, 16(%rax)"
%vpextrw should be used in output templates.
2. ICE in get_attr_memory for movhi_internal since some alternatives
are marked as TYPE_SSELOG.
use TYPE_SSELOG1 instead.

Also this patch fixs a typo and some latent bugs which are related to
moving HImode from/to sse register w/o TARGET_AVX512FP16.

gcc/ChangeLog:

PR target/102811
PR target/103463
* config/i386/i386.c (ix86_secondary_reload): Without
TARGET_SSE4_1, General register is needed to move HImode from
sse register to memory.
* config/i386/sse.md (*vec_extrachf): Use %vpextrw instead of
pextrw in output templates.
* config/i386/i386.md (movhi_internal): Ditto, also fix typo of
MEM_P (operands[1]) and adjust mode/prefix/type attribute for
alternatives related to sse register.
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/config/i386/sse.md