PR target/51244
authorolegendo <olegendo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Oct 2012 22:08:07 +0000 (22:08 +0000)
committerolegendo <olegendo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Oct 2012 22:08:07 +0000 (22:08 +0000)
commit99af687ad58b1f317067ddab2d693f7bc38846cc
tree4345633a0ae1c37863cf324ef3c7e80f33d28125
parent8b6f9b966e685e50bd27c8669cbb22033ca61371
PR target/51244
* config/sh/sh-protos.h (set_of_reg): New struct.
(sh_find_set_of_reg, sh_is_logical_t_store_expr,
sh_try_omit_signzero_extend):  Declare...
* config/sh/sh.c (sh_find_set_of_reg, sh_is_logical_t_store_expr,
sh_try_omit_signzero_extend): ...these new functions.
* config/sh/sh.md (*logical_op_t): New insn_and_split.
(*zero_extend<mode>si2_compact): Use sh_try_omit_signzero_extend
in splitter.
(*extend<mode>si2_compact_reg): Convert to insn_and_split.
Use sh_try_omit_signzero_extend in splitter.
(*mov<mode>_reg_reg): Disallow t_reg_operand as operand 1.
(*cbranch_t): Rewrite combine part in splitter using new
sh_find_set_of_reg function.

PR target/51244
* gcc.target/sh/pr51244-17.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192481 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/sh/sh-protos.h
gcc/config/sh/sh.c
gcc/config/sh/sh.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/pr51244-17.c [new file with mode: 0644]