https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91408
Bug ID: 91408
Summary: [10 Regression] ICE in extract_insn, at recog.c:2310
since r273981
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: uros at gcc dot gnu.org
Target Milestone: ---
Starting from the revision, I see ICE for:
$ cat ice.i
long long a;
unsigned char b;
short *c;
int d;
void fn1(long long *p1) {
unsigned char *e = (char *)p1;
int f, g;
d = 0;
for (; d < 8; d++) {
f = b - e[d];
if (f < 0)
f = -f;
g += f;
}
c[0] = g;
}
void fn2() { fn1(&a); }
$ gcc -O2 -ftree-loop-vectorize -O2 -fno-tree-forwprop ice.i -c
ice.i: In function ‘fn2’:
ice.i:17:1: error: unrecognizable insn:
17 | void fn2() { fn1(&a); }
| ^~~~
(insn 13 12 14 2 (set (reg:V1DI 99)
(unspec:V1DI [
(reg:V8QI 93)
(mem/c:V8QI (reg/f:DI 97) [0 MEM <vector(8) unsigned char>
[(unsigned char *)&a]+0 S8 A64])
] UNSPEC_PSADBW)) -1
(nil))
during RTL pass: vregs
ice.i:17:1: internal compiler error: in extract_insn, at recog.c:2310
0x6a4bb7 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
/home/marxin/Programming/gcc/gcc/rtl-error.c:108
0x6a4bd3 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
/home/marxin/Programming/gcc/gcc/rtl-error.c:116
0x6a2d47 extract_insn(rtx_insn*)
/home/marxin/Programming/gcc/gcc/recog.c:2310
0xab4f63 instantiate_virtual_regs_in_insn
/home/marxin/Programming/gcc/gcc/function.c:1606
0xab4f63 instantiate_virtual_regs
/home/marxin/Programming/gcc/gcc/function.c:1976
0xab4f63 execute
/home/marxin/Programming/gcc/gcc/function.c:2025
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.