https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83073
--- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Richard Biener from comment #2) > The "proper" result for [MIN,MAX] | 1 is of course a set of every odd > number... Sadly, while we track may-be-nonzero bits in CCP (maybe with the VRP reorg there will be a chance to merge it somehow?), we do not track must-be-nonzero bits. Note that the original testcase is completely artificial. I needed something known to be nonzero, and at the time x|1 worked so I used that, but it should not be used as if it was an important real-world code that heuristics need to be tuned for.