re PR rtl-optimization/69806 ([SH] Combine doesn't see constant)
commitf88d45dc171e59e120817912115550b943c30b22
authorOleg Endo <olegendo@gcc.gnu.org>
Mon, 22 Feb 2016 13:33:31 +0000 (22 13:33 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Mon, 22 Feb 2016 13:33:31 +0000 (22 13:33 +0000)
treeedb2f6b914dc2e288c537e24bcb365233f139a86
parentbddb7adb4411ec4c9653e61accb3db25e3b2c405
re PR rtl-optimization/69806 ([SH] Combine doesn't see constant)

gcc/
PR target/69806
PR target/54089
* config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
Handle negative shift counts.
* config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
force_reg on the shift constant.
(lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
(lshrsi3_d): Handle negative shift counts.

gcc/testsuite/
PR target/69806
PR target/54089
* gcc.target/sh/pr54089-10.c: New.

From-SVN: r233601
gcc/ChangeLog
gcc/config/sh/sh.c
gcc/config/sh/sh.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/pr54089-10.c [new file with mode: 0644]