[Reassociate] Similar to "X + -X" -> "0", added code to handle "X + ~X" -> "-1".
authorBenjamin Kramer <benny.kra@googlemail.com>
Sat, 31 May 2014 15:01:54 +0000 (15:01 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Sat, 31 May 2014 15:01:54 +0000 (15:01 +0000)
commit496894437666f35ccccb822e7374175a76723e56
treee4e6a82bb065452e1220440ae24d81b3b68d844f
parentca14e2b132201dbb0e2ecedd67a1b758fcc089d8
[Reassociate] Similar to "X + -X" -> "0", added code to handle "X + ~X" -> "-1".

Handle "X + ~X" -> "-1" in the function Value *Reassociate::OptimizeAdd(Instruction *I, SmallVectorImpl<ValueEntry> &Ops);
This patch implements:
TODO: We could handle "X + ~X" -> "-1" if we wanted, since "-X = ~X+1".

Patch by Rahul Jain!

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

llvm-svn: 209973
llvm/lib/Transforms/Scalar/Reassociate.cpp
llvm/test/Transforms/Reassociate/inverses.ll