https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109938

Drew Ross <drross at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |drross at redhat dot com

--- Comment #2 from Drew Ross <drross at redhat dot com> ---
Expanding the pattern as follows: ((a^c) & b) | a --> (a | (a^c)) & (a | b)
allows  other patterns to make the simplification. Namely (a | (a^c)) -> a | c,
then
(a | c) & (a | b) -> a | (b & c). 

This type of expansion also generalizes nicely to patterns like ((a^c) | b) | a
-> a | b | c which can be done through a similar series of simplifications
after expanding the initial.

This brings up the infrastructure question for 3+ operators if it is worth it
to try all (or maybe most?) pairwise simplifications (for instance even in the
case of (a ^ c) | b | d | e | f | g | h | a).

Thoughts?
  • [Bug tree-optimization/109938] ... drross at redhat dot com via Gcc-bugs

Reply via email to