This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/55838] [4.6/4.7/4.8 Regression] ICE in extract_insn (unrecognizable insn) with -O -funroll-loops


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55838

--- Comment #8 from Steven Bosscher <steven at gcc dot gnu.org> 2013-01-01 20:44:12 UTC ---
I would expect the insn to match the movqi_internal insn:

(define_insn "*movqi_internal"
  [(set (match_operand:QI 0 "nonimmediate_operand" "=q,q ,q ,r,r ,?r,m")
        (match_operand:QI 1 "general_operand"      " q,qn,qm,q,rn,qm,qn"))]
  "!(MEM_P (operands[0]) && MEM_P (operands[1]))"

But (const_int 129) isn't a general_operand:

#3  0x0000000000997327 in extract_insn (insn=0x7ffff6c85870) at
../../trunk/gcc/recog.c:2152
2152        fatal_insn_not_found (insn);
(gdb) p debug_rtx(insn)
(insn 93 92 94 3 (set (reg:QI 127)
        (const_int 129 [0x81])) -1
     (nil))
$34 = void
(gdb) p debug_rtx(PATTERN(insn))
(set (reg:QI 127)
    (const_int 129 [0x81]))
$35 = void
(gdb) p debug_rtx(SET_DEST (PATTERN(insn)))
(reg:QI 127)
$36 = void
(gdb) p debug_rtx(SET_SRC (PATTERN(insn)))
(const_int 129 [0x81])
$37 = void
(gdb) p nonimmediate_operand(SET_DEST (PATTERN(insn)),QImode)
$38 = 1
(gdb) p general_operand(SET_SRC (PATTERN(insn)),QImode)
$39 = 0
(gdb)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]