On sh4-*-linux-gnu, gcc.c-torture/compile/20011109-1.c with -O1
starts to fail:

testsuite/gcc.c-torture/compile/20011109-1.c:51: error: unrecognizable insn:
(insn 26 25 232 4 (parallel [
            (set (reg:SI 248)
                (gt:SI (reg:DF 246)
                    (reg:DF 247)))
            (use (reg/v:PSI 151 ))
        ]) -1 (insn_list:REG_DEP_TRUE 24 (insn_list:REG_DEP_TRUE 25 (nil)))
    (nil))

after -fmove-loop-invariants is enabled by default.
SH backend defines set insns whose destinations are the hard reg
like T_REG and R0_REG.  It seems that move_loop_invariants makes
such pattern into
  (set pseudo_reg_A ...) + (set hard_reg pseudo_reg_A)
and then the former insn fails to be recognized.


-- 
           Summary: FAIL: gcc.c-torture/compile/20011109-1.c,-O1
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kkojima at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: sh4-*-linux-gnu


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

Reply via email to