diff options
author | Dan Gohman <gohman@apple.com> | 2010-04-09 14:53:59 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-04-09 14:53:59 +0000 |
commit | 0a8175d1dbd99278ae05144c9deb48c0d893bf57 (patch) | |
tree | f165254319f4d97ce90dddbff3b6c5f905036de1 /llvm/lib/Transforms | |
parent | 87f8207c972292d79745565361cbefdd51428054 (diff) | |
download | bcm5719-llvm-0a8175d1dbd99278ae05144c9deb48c0d893bf57.tar.gz bcm5719-llvm-0a8175d1dbd99278ae05144c9deb48c0d893bf57.zip |
Minor code simplification.
llvm-svn: 100859
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp index 3fb3de75075..8586054fce0 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp @@ -1735,16 +1735,12 @@ Instruction *InstCombiner::visitXor(BinaryOperator &I) { if (ConstantInt *RHS = dyn_cast<ConstantInt>(Op1)) { - if (RHS->isOne() && Op0->hasOneUse()) { + if (RHS->isOne() && Op0->hasOneUse()) // xor (cmp A, B), true = not (cmp A, B) = !cmp A, B - if (ICmpInst *ICI = dyn_cast<ICmpInst>(Op0)) - return new ICmpInst(ICI->getInversePredicate(), - ICI->getOperand(0), ICI->getOperand(1)); - - if (FCmpInst *FCI = dyn_cast<FCmpInst>(Op0)) - return new FCmpInst(FCI->getInversePredicate(), - FCI->getOperand(0), FCI->getOperand(1)); - } + if (CmpInst *CI = dyn_cast<CmpInst>(Op0)) + return CmpInst::Create(CI->getOpcode(), + CI->getInversePredicate(), + CI->getOperand(0), CI->getOperand(1)); // fold (xor(zext(cmp)), 1) and (xor(sext(cmp)), -1) to ext(!cmp). if (CastInst *Op0C = dyn_cast<CastInst>(Op0)) { |