IC: (X & C1) | C2 --> (X | C2) & (C1|C2)
authorChris Lattner <sabre@nondot.org>
Wed, 23 Jul 2003 18:29:44 +0000 (18:29 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 23 Jul 2003 18:29:44 +0000 (18:29 +0000)
commitad44ebfff027899f45a645586a9a8bd3cb317eb5
tree63fb746a491b475171cd7f871179cffb0f177477
parent31a7f85346d4a379ea4dfad068df6193e3300e30
IC: (X & C1) | C2 --> (X | C2) & (C1|C2)
IC: (X ^ C1) | C2 --> (X | C2) ^ (C1&~C2)

We are now guaranteed that all 'or's will be inside of 'and's, and all 'and's
will be inside of 'xor's, if the second operands are constants.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7264 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/InstructionCombining.cpp