https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118658
Bug ID: 118658 Summary: `(a | CST)` -> a if we know that a already contains all bits of CST set Product: gcc Version: 15.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: --- Take: ``` unsigned f1(unsigned a) { if ((a & 3) != 3) __builtin_unreachable(); return a | 1; } ``` This should just optimize to `return a;` (simplify (bit_ior SSA_NAME@0 INTEGER_CST@1) /* x | C -> x if we know that x & C == C. */ (if (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && wi::bit_and (get_known_nonzero_bits (@0), wi::to_wide (@1)) == wi::to_wide (@1)) @0))