http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54089
--- Comment #23 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-10-16 11:49:14 UTC --- (In reply to comment #22) > (In reply to comment #0) > > The code related to shift patterns in sh.c / sh.md maybe could use some > > improvements here and there. In some places clobbers and scratch regs > > could be > > avoided. > > There is also a large part that deals with minimizing and-shift/shift-and > > sequences, but there are no test cases to verify that those actually work. > > It would also be interesting to see, whether some of the and-shift/shift-and > > combine code could be reduced due to improvements in the middle-end. > > Be careful with removing 'useless' clobbers, as they might be needed to > facilitate instruction combinations into patterns that have these clobbers. Yeah, I've noticed ;) Logical left/right shifts are now expanded into T-clobbering and non-T-clobbering pattern variations.