https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92744
Bug ID: 92744 Summary: [10 Regression] error: insn does not satisfy its constraints since r278439 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: jakub at gcc dot gnu.org Target Milestone: --- Host: x86_64-pc-linux-gnu I see following ICE: $ cat return.ii class A { public: typedef float __dec32 __attribute__((mode(SD))); __dec32 __val; }; bool operator!=(A p1, A p2) { return p1.__val != p2.__val; } void fn1(); void fn2(A p1, A p2) { if (p1 != p2) fn1(); } $ g++ return.ii -fno-tree-ccp -Os -c return.ii: In function ‘void fn2(A, A)’: return.ii:11:1: error: insn does not satisfy its constraints: 11 | } | ^ (insn 43 4 9 2 (parallel [ (set (reg:SI 21 xmm1 [ p2 ]) (reg:SI 20 xmm0 [orig:84 p1 ] [84])) (set (reg:SI 20 xmm0 [orig:84 p1 ] [84]) (reg:SI 21 xmm1 [ p2 ])) ]) "return.ii":9:3 78 {*swapsi} (nil)) during RTL pass: cprop_hardreg return.ii:11:1: internal compiler error: in extract_constrain_insn, at recog.c:2195 0x7e973a _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /home/marxin/Programming/gcc/gcc/rtl-error.c:108 0x7e9760 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) /home/marxin/Programming/gcc/gcc/rtl-error.c:118 0x7e79e3 extract_constrain_insn(rtx_insn*) /home/marxin/Programming/gcc/gcc/recog.c:2195 0x109c6ef copyprop_hardreg_forward_1 /home/marxin/Programming/gcc/gcc/regcprop.c:802 0x109d50e execute /home/marxin/Programming/gcc/gcc/regcprop.c:1367 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.