https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244
--- Comment #82 from Oleg Endo <olegendo at gcc dot gnu.org> --- Author: olegendo Date: Wed Dec 17 23:08:14 2014 New Revision: 218850 URL: https://gcc.gnu.org/viewcvs?rev=218850&root=gcc&view=rev Log: gcc/ PR target/51244 * config/sh/sh_treg_combine.cc (is_conditional_insn): New function. (cbranch_trace): Add member rtx* condition_rtx_in_insn, initialize it accordingly in constructor. (cbranch_trace::branch_condition_rtx_ref): New function. (cbranch_trace::branch_condition_rtx): Use branch_condition_rtx_ref. (sh_treg_combine::try_invert_branch_condition): Invert condition rtx in insn using reversed_comparison_code and validate_change instead of invert_jump_1. (sh_treg_combine::execute): Look for conditional insns in basic blocks in addition to conditional branches. * config/sh/sh.md (*movsicc_div0s): Remove combine patterns. Modified: trunk/gcc/ChangeLog trunk/gcc/config/sh/sh.md trunk/gcc/config/sh/sh_treg_combine.cc