https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102872
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2021-10-21 CC| |amacleod at redhat dot com, | |rguenth at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. I wonder if the relation oracle could be extended to handle this though there's the usual caveat that _9 and d_10 are not dependent on each other but only are indirectly related through a.3_5. d_10 = (short unsigned int) a.3_5; _9 = a.3_5 & 65535; if (_9 == 0) Here VN could be teached to look for (short unsigned int) a.3_5 when seeing a.3_5 & 65535 and CSE it as (short signed int) d_10 (but then I think we might fold that back).