https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96273

            Bug ID: 96273
           Summary: ice in extract_insn, at recog.c:2294, unrecognizable
                    insn:
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

Created attachment 48911
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48911&action=edit
gzipped C++ source code

The attached C++ code does this with today's gcc trunk:

splat.cpp:1637:1: error: unrecognizable insn:
(insn 1137 1136 1138 163 (set (mem/v:BLK (scratch:DI) [0  A8])
        (unspec:BLK [
                (mem/v:BLK (scratch:DI) [0  A8])
            ] UNSPEC_MFENCE)) -1
     (nil))
during RTL pass: vregs
splat.cpp:1637:1: internal compiler error: in extract_insn, at recog.c:2294
0xef8b46 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ../../trunk.git/gcc/rtl-error.c:108
0xef8b6b _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        ../../trunk.git/gcc/rtl-error.c:116
0xebf423 extract_insn(rtx_insn*)
        ../../trunk.git/gcc/recog.c:2294

Flags -O3 -march=native required. native is Piledriver. I'll
have a go at reducing the code.

This code used to work at date 20200719, so someone has broken
something in the last day or two.

Reply via email to