[Bug target/51244] SH Target: Inefficient conditional branch
olegendo at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Aug 9 15:55:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244
--- Comment #46 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-08-09 15:55:23 UTC ---
Author: olegendo
Date: Thu Aug 9 15:55:18 2012
New Revision: 190258
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190258
Log:
PR target/51244
* config/sh/sh.md: Add negc extu sequence peephole.
(movrt, movnegt, movrt_negc, nott): Use t_reg_operand predicate.
(*movrt_negc): New insn.
* config/sh/sync.md (atomic_test_and_set): Pass gen_t_reg_rtx to
gen_movnegt.
* config/sh/sh.c (expand_cbranchsi4, sh_emit_scc_to_t,
sh_emit_compare_and_branch, sh_emit_compare_and_set): Use get_t_reg_rtx.
(sh_expand_t_scc): Pass gen_t_reg_rtx to gen_movnegt.
PR target/51244
* gcc.target/sh/pr51244-5: New.
* gcc.target/sh/pr51244-6: New.
Added:
trunk/gcc/testsuite/gcc.target/sh/pr51244-5.c
trunk/gcc/testsuite/gcc.target/sh/pr51244-6.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/sh/sh.c
trunk/gcc/config/sh/sh.md
trunk/gcc/config/sh/sync.md
trunk/gcc/testsuite/ChangeLog
More information about the Gcc-bugs
mailing list