https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105776
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2023-05-17 --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The difference between f3 and f4 for the IR: y.3_4 = (int) y_7(D); _10 = _3 == y.3_4; vs _5 = (unsigned int) _4; _6 = _5 == y_9(D); The pass must be only ready for f3 comparison rather than the one in f4. Both are the same really, casting to `unsigned int` one side rather than the other side casting to `int` is both valid thing to do.