https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71336
--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So it should be possible to extend the match pattern for what was the two_value_replacement replacement to do this too. The main thing is instead of difference by 1, the difference of the two constants should be a power of 2. We could also extend it such that the (a !=/== CST) part where a has only one non-zero bit in addition to a having a range over two values. That would be better than what I was proposing in comment #6.