https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102794
Bug ID: 102794 Summary: [12 Regression] missing vrp in evrp dealing with casts and ands Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- Take: void foo(void); int main() { int b = 0; int a = -100; for (; a; ++a) { unsigned short d = a; if (!(b | d) && d) foo(); } return 0; } --- CUT ---- This used to be optimized during evrp in 11.1.0/11.2.0 but trunk evrp does not. This is reduced from PR 102703 but is related issue though different.