https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89263
Marc Glisse <glisse at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2019-02-09 Ever confirmed|0 |1 --- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #1) > Basically we need to convert a != 0 ? true : b != 0 Actually, just a != 0 ? true : b, the second != 0 isn't there, the first one exists only because GIMPLE_COND cannot have just a bool argument. Although we actually see a != 0 ? a : b... <bb 2> [local count: 1073741824]: if (a_2(D) != 0) goto <bb 3>; [34.00%] else goto <bb 4>; [66.00%] <bb 3> [local count: 365072224]: <bb 4> [local count: 1073741824]: # _1 = PHI <b_3(D)(2), a_2(D)(3)> needs to become _1 = a_2(D) | b_3(D);