On Tue, Jan 13, 2015 at 10:51:27AM +0100, Richard Biener wrote: > IMHO SHIFT_COUNT_TRUNCATED should be removed and instead > backends should provide shift patterns with a (and:QI ...) for the > shift amount which simply will omit that operation if suitable.
Note that that catches less though, e.g. in int f(int x, int n) { return x << ((2*n) & 31); } without SHIFT_COUNT_TRUNCATED it will try to match an AND with 30, not with 31. Segher