]> git.ipfire.org Git - thirdparty/gcc.git/commit
target/109944 - avoid STLF fail for V16QImode CTOR expansion
authorRichard Biener <rguenther@suse.de>
Wed, 24 May 2023 08:07:36 +0000 (10:07 +0200)
committerRichard Biener <rguenther@suse.de>
Wed, 24 May 2023 12:45:12 +0000 (14:45 +0200)
commitaffee7dcfa1ee272d43ac7cb68cf423dbd956fd8
tree6a5c61413b4decc607d4c1e2d8eddd4e519f8db3
parent257c2be7ff8dfdc610202a1e1f5a8a668b939bdb
target/109944 - avoid STLF fail for V16QImode CTOR expansion

The following dispatches to V2DImode CTOR expansion instead of
using sets of (subreg:DI (reg:V16QI 146) [08]) which causes
LRA to spill DImode and reload V16QImode.  The same applies for
V8QImode or V4HImode construction from SImode parts which happens
during 32bit libgcc build.

PR target/109944
* config/i386/i386-expand.cc (ix86_expand_vector_init_general):
Perform final vector composition using
ix86_expand_vector_init_general instead of setting
the highpart and lowpart which causes spilling.

* gcc.target/i386/pr109944-1.c: New testcase.
* gcc.target/i386/pr109944-2.c: Likewise.
gcc/config/i386/i386-expand.cc
gcc/testsuite/gcc.target/i386/pr109944-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr109944-2.c [new file with mode: 0644]