]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/sh/predicates.md
re PR target/54089 ([SH] Refactor shift patterns)
authorOleg Endo <olegendo@gcc.gnu.org>
Tue, 25 Sep 2012 19:06:28 +0000 (19:06 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Tue, 25 Sep 2012 19:06:28 +0000 (19:06 +0000)
commit780405350cee277933a7835a10d960dcea3a0947
treeecbd8ddaf619969c907ae05cf2c8c9a8a4ea0ee0
parent91cad09b08a860dccace9d1e7050e8765b3556e9
re PR target/54089 ([SH] Refactor shift patterns)

PR target/54089
* config/sh/constraints.md (Jhb): New constraint.
* config/sh/predicates.md (negt_reg_shl31_operand): New predicate.
* config/sh/sh.md (rotrsi3): New expander.
(rotrsi3_1, *rotrsi3_1, *rotlsi3_1): New insns.
(rotlsi3, rotlhi3): Use const_int_operand predicate instead of
immediate_operand and remove CONST_INT_P checks in expansion code.
(*rotcr): Cleanup variable usage.  Handle preceding nott insn.  Add
split with swapped operands.
(*rotcr_neg_t, *movt_msb, *negt_msb): New insns and splits.

PR target/54089
* gcc.target/sh/pr54089-1.c (test_15, test_16, test_17, test_18,
test_19, test_20, test_21, test_22, test_23): New functions.
* gcc.target/sh/pr54089-4.c: New.
* gcc.target/sh/pr54089-5.c: New.
* gcc.target/sh/pr54089-6.c: New.
* gcc.target/sh/pr54089-7.c: New.

From-SVN: r191743
gcc/ChangeLog
gcc/config/sh/constraints.md
gcc/config/sh/predicates.md
gcc/config/sh/sh.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/pr54089-1.c
gcc/testsuite/gcc.target/sh/pr54089-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/pr54089-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/pr54089-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/pr54089-7.c [new file with mode: 0644]