https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111146
Bug ID: 111146 Summary: Some patterns in match.pd are no longer needed Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: compile-time-hog Severity: enhancement Priority: P3 Component: tree-optimization Assignee: pinskia at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- The following patterns now are no longer needed: ``` /* (x | y) & ~x -> y & ~x */ /* (x & y) | ~x -> y | ~x */ (for bitop (bit_and bit_ior) rbitop (bit_ior bit_and) (simplify (bitop:c (rbitop:c @0 @1) (bit_not@2 @0)) (bitop @1 @2))) ``` Because they are covered by: ``` /* (~x | y) & x -> x & y */ /* (~x & y) | x -> x | y */ (simplify (bitop:c (rbitop:c @2 @1) @0) (with { bool wascmp; } (if (bitwise_inverted_equal_p (@0, @2, wascmp) && (!wascmp || element_precision (type) == 1)) (bitop @0 @1))))) ``` Just recording this so I can test and remove it soon.