InstCombine: ((A & ~B) ^ (~A & B)) to A ^ B
authorMayur Pandey <mayur.p@samsung.com>
Tue, 19 Aug 2014 08:19:19 +0000 (08:19 +0000)
committerMayur Pandey <mayur.p@samsung.com>
Tue, 19 Aug 2014 08:19:19 +0000 (08:19 +0000)
commitecdb0ab90f8434bc41de9a3ba47f5a319ef7f662
tree7de7d6d852adefb542a7ec0ff66b18d4da6ba709
parent7ce4ac12fc5b0522c5adae6abdd0d8bb552f6ef1
InstCombine:  ((A & ~B) ^ (~A & B)) to A ^ B

Proof using CVC3 follows:
$ cat t.cvc
A, B : BITVECTOR(32);
QUERY BVXOR((A & ~B),(~A & B)) = BVXOR(A,B);
$ cvc3 t.cvc
Valid.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215974 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
test/Transforms/InstCombine/or-xor.ll