https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69806
--- Comment #11 from Oleg Endo <olegendo at gcc dot gnu.org> --- Author: olegendo Date: Mon Feb 22 13:33:31 2016 New Revision: 233601 URL: https://gcc.gnu.org/viewcvs?rev=233601&root=gcc&view=rev Log: 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. Added: trunk/gcc/testsuite/gcc.target/sh/pr54089-10.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/sh/sh.c trunk/gcc/config/sh/sh.md trunk/gcc/testsuite/ChangeLog