Some dag combiner goodness:
authorEvan Cheng <evan.cheng@apple.com>
Thu, 18 Feb 2010 02:13:50 +0000 (02:13 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 18 Feb 2010 02:13:50 +0000 (02:13 +0000)
commit89bb7b56407bf81a5d5fdcdac7106d94bb30dd65
tree92fb7534bd2dd143be928893e1134ef3f5153081
parentca82a15ad1830440dadfd18116d1a450df34b90a
Some dag combiner goodness:
Transform br (xor (x, y)) -> br (x != y)
Transform br (xor (xor (x,y), 1)) -> br (x == y)
Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96556 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/CodeGen/SelectionDAG/TargetLowering.cpp
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/critical-edge-split.ll
test/CodeGen/X86/ins_subreg_coalesce-3.ll
test/CodeGen/X86/omit-label.ll
test/CodeGen/X86/trunc-to-bool.ll