[Bug rtl-optimization/118067] [15 Regression] ICE: in lra_split_hard_reg_for, at lra-assigns.cc:1860 (unable to find a register to spill) {*lshrhi3_1} with -O -fno-split-wide-types -mavx512f
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Dec 20 12:51:10 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118067
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
Created attachment 59935
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59935&action=edit
Target-dependant patch
SImode and DImode moves involving mask registers are valid only with AVX512BW,
so mark relevant alternatives in *movsi_internal and *movdi_internal as such.
Even with the patch, the testcase still fails, but now with:
pr118067.c: In function ‘foo’:
pr118067.c:13:1: internal compiler error: maximum number of generated reload
insns per insn achieved (90)
13 | }
| ^
0x2c3b581 internal_error(char const*, ...)
../../git/gcc/gcc/diagnostic-global-context.cc:517
0xb68938 lra_constraints(bool)
../../git/gcc/gcc/lra-constraints.cc:5411
0xb51a0d lra(_IO_FILE*, int)
../../git/gcc/gcc/lra.cc:2449
0xaf9f4d do_reload
../../git/gcc/gcc/ira.cc:5977
0xafa462 execute
../../git/gcc/gcc/ira.cc:6165
which is now suspiciously close (or even duplicate of) PR118017.
So, keep the PR as RA problem.
More information about the Gcc-bugs
mailing list