https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119712
--- Comment #8 from Andrew Macleod <amacleod at redhat dot com> --- Final version of the patch is submitted to the mailing list ( https://gcc.gnu.org/pipermail/gcc-patches/2025-April/681252.html ) which removes adjust_range() and moves the same functionality directly into irange::set_range_from_bitmask () for performance reasons. With this change, we will always expand those trailing bit effects as subranges, so there will be no inconsistencies. This was the 4th (5th?) iteration of the patch, and along the way it was demonstrated the need to make this consistent. I also added a few performance tweaks where work was being done that was not needed. This brings the final results down to +0.6% in VRP, and only +0.08% overall, so manageable for all the extra work. It also requires a few testcase adjustments because this triggers a few optimization earlier in the pipeline, and I had to adjust expectations. .