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.

Reply via email to