gen_doloop_end_split creates a pattern that sets pc, hence emit_jump_insn has to be used instead of emit_insn.
Committed as obvious.
2012-11-01 Joern Rennecke <joern.renne...@embecosm.com> PR target/55160 * config/sh/sh.md (doloop_end): Use emit_jump_insn. Index: config/sh/sh.md =================================================================== --- config/sh/sh.md (revision 193029) +++ config/sh/sh.md (working copy) @@ -8479,7 +8479,7 @@ (define_expand "doloop_end" { if (GET_MODE (operands[0]) != SImode) FAIL; - emit_insn (gen_doloop_end_split (operands[0], operands[4], operands[0])); + emit_jump_insn (gen_doloop_end_split (operands[0], operands[4], operands[0])); DONE; })