https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98236
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- This is likely because we expand from int bar (int x, int y) { int _6; <bb 2> [local count: 1073741824]: if (x_2(D) != y_3(D)) goto <bb 3>; [48.88%] else goto <bb 4>; [51.12%] <bb 3> [local count: 524845000]: foo (); <bb 4> [local count: 1073741824]: _6 = x_2(D) - y_3(D); return _6; which means we simplified the condition to x != y. So related to PR91384