------- Comment #5 from kkojima at gcc dot gnu dot org 2010-04-14 04:52 ------- It looks that simply removing the problematic constraint from doloop_end_split restores build with no performance regressions.
* config/sh/sh.md (doloop_end_split): Remove "+r" constraint in an input-only operand. --- ORIG/trunk/gcc/config/sh/sh.md 2010-04-12 09:52:36.000000000 +0900 +++ trunk/gcc/config/sh/sh.md 2010-04-14 10:18:47.000000000 +0900 @@ -7050,7 +7050,7 @@ label: (define_insn_and_split "doloop_end_split" [(set (pc) - (if_then_else (ne:SI (match_operand:SI 0 "arith_reg_dest" "+r") + (if_then_else (ne:SI (match_operand:SI 0 "arith_reg_dest" "") (const_int 1)) (label_ref (match_operand 1 "" "")) (pc))) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43742