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.

Reply via email to