InstCombine: (sub (or A B) (xor A B)) --> (and A B)
authorDavid Majnemer <david.majnemer@gmail.com>
Sun, 19 Oct 2014 08:32:32 +0000 (08:32 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Sun, 19 Oct 2014 08:32:32 +0000 (08:32 +0000)
commit0fd4e2e5a1836e52e0851e0ebb811e301dfd807e
tree5e92cc8f997393fa1005bb1d177faa8c44322249
parent242aeb9d840180ab25ab6632d2ee1009998e8aa0
InstCombine: (sub (or A B) (xor A B)) --> (and A B)

The following implements the transformation:
(sub (or A B) (xor A B)) --> (and A B).

Patch by Ankur Garg!

Differential Revision: http://reviews.llvm.org/D5719

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220163 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineAddSub.cpp
test/Transforms/InstCombine/sub.ll