https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113114
--- Comment #3 from Alex Coplan <acoplan at gcc dot gnu.org> ---
The following ICEs in the same way without ILP32 (reduced from a testsuite run
with -funroll-loops):
$ cat t.c
float val[128];
float x;
void bar() {
int i = 55;
for (; i >= 0; --i)
x += val[i];
}
$ gcc/xgcc -B gcc -c t.c -O -funroll-loops -mearly-ldp-fusion -mlate-ldp-fusion
during RTL pass: ldp_fusion
t.c: In function ‘bar’:
t.c:7:1: internal compiler error: in try_promote_writeback, at
config/aarch64/aarch64-ldp-fusion.cc:2675
7 | }
| ^
0x14671b3 try_promote_writeback
/home/alecop01/toolchain/src/other_gcc/gcc/config/aarch64/aarch64-ldp-fusion.cc:2675
0x14671b3 ldp_fusion_bb(rtl_ssa::bb_info*)
/home/alecop01/toolchain/src/other_gcc/gcc/config/aarch64/aarch64-ldp-fusion.cc:2706
0x1467307 ldp_fusion()
/home/alecop01/toolchain/src/other_gcc/gcc/config/aarch64/aarch64-ldp-fusion.cc:2726
0x146737b execute
/home/alecop01/toolchain/src/other_gcc/gcc/config/aarch64/aarch64-ldp-fusion.cc:2776
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
I'll investigate. Probably we just shouldn't assert that recog succeeds here,
but I'll take a closer look at what's going on.