https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108120
Bug ID: 108120
Summary: ICE: in extract_insn, at recog.cc:2791 (on ARM with
-mfpu=neon -freciprocal-math -O3)
Product: gcc
Version: 12.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: m.olbrich at pengutronix dot de
Target Milestone: ---
Created attachment 54100
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54100&action=edit
test-case to reproduce the ICE
When building the attached test-case with:
arm-linux-gnueabihf-gcc-12 -mfpu=neon -freciprocal-math -O3 -c w.c -o
/dev/null
It fails with:
w.c: In function ‘b’:
w.c:7:1: error: unrecognizable insn:
7 | }
| ^
(insn 63 62 64 7 (set (reg:V4SF 209)
(mult:V4SF (reg:V4SF 209)
(reg:V4SF 210))) "w.c":6:21 -1
(nil))
during RTL pass: vregs
w.c:7:1: internal compiler error: in extract_insn, at recog.cc:2791
0x7f33afb67189 __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7f33afb67244 __libc_start_main_impl
../csu/libc-start.c:381
This is with arm-linux-gnueabihf-gcc-12 12.2.0-9 from Debian but I've seen it
with the 12-20221022 snapshot and going back to at least gcc 9.2.
-mfpu=neon -freciprocal-math -O3 are all needed to reproduce this. It does not
happen with a different optimization level or -mfpu option.