https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81534
Bug ID: 81534
Summary: [7 Regression] ICE in in extract_insn, at recog.c:2311
(unrecognizable insn)
Product: gcc
Version: 7.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: doko at gcc dot gnu.org
Target Milestone: ---
seen with gcc-7-branch 20170724 on s390x-linux-gnu. Looks like a variant of
PR78738 and PR78748.
$ cat global_statistics.i
struct {
short b;
long c
} a = {};
d() { __atomic_fetch_add(&a.b, 0, 5); }
$ gcc -march=zEC12 -c -g -O2 global_statistics.i
global_statistics.i:4:1: warning: no semicolon at end of struct or union
} a = {};
^
global_statistics.i:5:1: warning: return type defaults to 'int'
[-Wimplicit-int]
d() { __atomic_fetch_add(&a.b, 0, 5); }
^
global_statistics.i: In function 'd':
global_statistics.i:5:1: error: unrecognizable insn:
(insn 21 20 22 4 (parallel [
(set (reg:SI 71)
(mem/v:SI (symbol_ref:DI ("a") [flags 0x2] <var_decl
0x3ff82af1240 a>) [-1 S4 A64]))
(set (mem/v:SI (symbol_ref:DI ("a") [flags 0x2] <var_decl
0x3ff82af1240 a>) [-1 S4 A64])
(unspec_volatile:SI [
(mem/v:SI (symbol_ref:DI ("a") [flags 0x2] <var_decl
0x3ff82af1240 a>) [-1 S4 A64])
(reg:SI 71)
(reg:SI 75)
] UNSPECV_CAS))
(set (reg:CCZ1 33 %cc)
(compare:CCZ1 (mem/v:SI (symbol_ref:DI ("a") [flags 0x2]
<var_decl 0x3ff82af1240 a>) [-1 S4 A64])
(reg:SI 71)))
]) "global_statistics.i":5 -1
(nil))
global_statistics.i:5:1: internal compiler error: in extract_insn, at
recog.c:2311
0x159681d _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
../../src/gcc/rtl-error.c:108
0x159685d _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
../../src/gcc/rtl-error.c:116
0x1565907 extract_insn(rtx_insn*)
../../src/gcc/recog.c:2311
0x1382d29 instantiate_virtual_regs_in_insn
../../src/gcc/function.c:1637
0x1382d29 instantiate_virtual_regs
../../src/gcc/function.c:1957
0x1382d29 execute
../../src/gcc/function.c:2006
Please submit a full bug report,
with preprocessed source if appropriate.