[InstCombine] Implement "A & (~A | B) --> A & B" like transforms for boolean based selects.
Alive2 links for "A & (~A | B) --> A & B": https://alive2.llvm.org/ce/z/oKiodu (scalar) https://alive2.llvm.org/ce/z/8yn8GL (vector) Alive2 links for "A | (~A & B) --> A | B" https://alive2.llvm.org/ce/z/v5GEKu (scalar) https://alive2.llvm.org/ce/z/wvtJsj (vector) NOTE: The commutative variants of these transforms, for example: "(~A | B) & A --> A & B" are already handled by simplifying the underlying selects to normal logical operations due to that combination having simpler poison semantics. Differential Revision: https://reviews.llvm.org/D145157
Loading
Please sign in to comment