+/* Optimize (x >> c) << c into x & (-1<<c). */ +(simplify + (lshift (rshift @0 INTEGER_CST@1) @1) + (if (tree_fits_uhwi_p (@1) + && tree_to_uhwi (@1) < TYPE_PRECISION (type)) + (bit_and @0 (lshift { build_minus_one_cst (type); } @1))))
It looks like vectors might match, so please use element_precision instead of TYPE_PRECISION, as in the fold-const.c code you are converting from.
-- Marc Glisse