https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91604
Bug ID: 91604
Summary: [10 Regression] ICE in extract_insn at recog.c:2310
since r272323
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:
$ cat ice.c
long long v;
int fn1() { v = ~v; }
$ gcc -O3 --param max-gcse-memory=0 -m32 -fno-rerun-cse-after-loop ice.c
ice.c: In function ‘fn1’:
ice.c:2:1: error: unrecognizable insn:
2 | int fn1() { v = ~v; }
| ^~~
(insn 16 15 17 2 (set (mem/c:SI (reg/f:SI 87) [1 v+0 S4 A64])
(not:SI (mem/c:SI (reg/f:SI 85) [1 v+0 S4 A64]))) "ice.c":2:17 -1
(nil))
during RTL pass: subreg3
ice.c:2:1: internal compiler error: in extract_insn, at recog.c:2310
0x6a61cf _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
/home/marxin/Programming/gcc/gcc/rtl-error.c:108
0x6a61eb _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
/home/marxin/Programming/gcc/gcc/rtl-error.c:116
0x6a4373 extract_insn(rtx_insn*)
/home/marxin/Programming/gcc/gcc/recog.c:2310
0x16b1217 decompose_multiword_subregs
/home/marxin/Programming/gcc/gcc/lower-subreg.c:1540
0x16b234d execute
/home/marxin/Programming/gcc/gcc/lower-subreg.c:1808
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.