https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109845
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2023-05-13 Status|UNCONFIRMED |NEW Severity|normal |enhancement Component|rtl-optimization |middle-end Keywords| |missed-optimization Ever confirmed|0 |1 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So the difference between good1 and bad1 at the gimple level is the order of operands of the bit_ior: good1: ov_8 = _13 != 0; _9 = x_2(D) != 0; _10 = ov_8 | _9; if (_10 != 0) bad1: ov_7 = _13 != 0; _1 = x_8(D) != 0; _2 = _1 | ov_7; if (_2 != 0)