https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96094
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Last reconfirmed| |2020-07-07 Status|UNCONFIRMED |NEW --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- OK, we could do that based on the fact that we optimize 0 / a to a (but not 0 / 0, so we'd not optimize a / false then). Since the IL we see is <bb 2> [local count: 1073741824]: _1 = (int) a_4(D); _2 = (int) b_5(D); _3 = _1 / _2; _6 = (_Bool) _3; return _6; the match.pd pattern should look at value-ranges, not types here.