https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94779
--- Comment #18 from Andrew Macleod <amacleod at redhat dot com> --- (In reply to Jakub Jelinek from comment #17) > (In reply to Martin Liška from comment #16) > > > > EVRP knows the proper range: > > 2->4 (F) x_6(D) : unsigned int [0, 1][4, 4] > > EVRP ATM invokes both the old code and ranger and only ranger knows the > above. > There is a param to adjust the behavior. > Anyway, if something isn't able to work with the detailed ranges (up to 255 > subranges), type conversions will ensure that one gets a single summary > range ([0, 4] in this case likely) and possibly the switch opts still do > that. > Indeed. Ranger knows, but at this point most of the client consumers such as folding and simplification still only deal with value_range, which means they will revert to using the best approximation using only a pair, which would be [0,4] in this case as you observe. One of the work items for the next release is to multi-range enable all these consumers that can make use of the information.