re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
authorOleg Endo <olegendo@gcc.gnu.org>
Mon, 5 Mar 2012 23:12:20 +0000 (23:12 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Mon, 5 Mar 2012 23:12:20 +0000 (23:12 +0000)
commit9747719a9c9483c66daa25943dd4f9bebd8f23b3
tree6ee019d6d59407d9f58c395a24e16b730c0a5c6b
parent5de724244f16e91b67997df6edab0faad7b2c97d
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)

PR target/51244
* config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
and use unified expansion logic.
* config/sh/sh.md (xorsi3_movrt): Rename to movrt.  Move
closer to the existing movt insn.
(negc): Rename insn to *negc.  Add new expander.
(movnegt): Use xor pattern for T bit negation.  Reserve helper
constant for negc pattern.
(*movnegt): New insn and splitter.

PR target/51244
* gcc.target/sh/pr51244-1.c: New.
* gcc.target/sh/pr51244-2.c: New.
* gcc.target/sh/pr51244-3.c: New.

From-SVN: r184966
gcc/ChangeLog
gcc/config/sh/sh.c
gcc/config/sh/sh.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/pr48596.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/pr51244-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/pr51244-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/pr51244-3.c [new file with mode: 0644]