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.