https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106570
--- Comment #2 from Andrew Macleod <amacleod at redhat dot com> --- I think this is a duplicate of PR106379 . At the VRP2 stage I see: <bb 2> [local count: 1073741824]: if (c_6(D) == s_7(D)) goto <bb 3>; [34.00%] else goto <bb 5>; [66.00%] <bb 3> [local count: 365072224]: _1 = ~c_6(D); _2 = _1 & s_7(D); if (_2 != 0) goto <bb 4>; [75.00%] else goto <bb 5>; [25.00%] <bb 4> [local count: 628138969]: DCEMarker0_ (); <bb 5> [local count: 1073741824]: return; Which is basically the identical sequence.. it just took longer to get to it :-) We aren't removing this yet with ranger as I need to get to integrate rangers relation oracle with the simplifier so that it will see that _2 = ~s_7 & s_7.