https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111487
Bug ID: 111487 Summary: (a OP CST1) & (a == CST0) could be simplified down to (CST OP CST1) & (a == CST0) Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P3 Component: tree-optimization Assignee: pinskia at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- This is an extension of PR 111431 . Take: ``` int g(int a) { int b = a + 4; return (a == 0) & b; } ``` This could be optimized down to just `return (a == 0);` as `(0+4)&1` is 1. This can work with almost every binary (and even unary) operation that contains a constant.