https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85822
--- Comment #3 from Yuri Gribov <tetra2005 at gmail dot com> --- It seems these lines in is_masked_range_test should be removed: if (wi::neg_p (val, TYPE_SIGN (type))) std::swap (*low, *high); Sadly there were no tests which tested negative constants. I'll bootstrap and send patch tomorrow (hope there's no urgency?).