The following reduces the number of wide_ints built which show up
in the profile for PR114855 as the largest remaining bit at -O1.
* range-op.cc (operator_rshift::op1_range): Use wi::mask instead
of shift and not.
// OP1 is anything from 0011 1000 to 0011 1111. That is, a
// range from LHS<<3 plus a mask of the 3 bits we shifted on the
// right hand side (0x07).
- wide_int mask = wi::bit_not (wi::lshift (wi::minus_one (prec), shift));
+ wide_int mask = wi::mask (shift.to_uhwi (), false, prec);
int_range_max mask_range (type,
wi::zero (TYPE_PRECISION (type)),
mask);