summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorAmara Emerson <aemerson@apple.com>2018-08-15 17:46:22 +0000
committerAmara Emerson <aemerson@apple.com>2018-08-15 17:46:22 +0000
commit070ac768ff4ddeb372ec5d91d570ddc545fceede (patch)
treee81fde4c393ca7c8b655856c8a5de708155a96b4 /llvm/lib
parentcc2e8ccc6fced5931a31f2ba90a9d1c22dc80cde (diff)
downloadbcm5719-llvm-070ac768ff4ddeb372ec5d91d570ddc545fceede.tar.gz
bcm5719-llvm-070ac768ff4ddeb372ec5d91d570ddc545fceede.zip
[InstCombine] Fix IC trying to create a xor of pointer types.
rdar://42473741 Differential Revision: https://reviews.llvm.org/D50775 llvm-svn: 339796
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
index 36180c00348..a2dea10c565 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
@@ -2487,7 +2487,8 @@ Value *InstCombiner::foldXorOfICmps(ICmpInst *LHS, ICmpInst *RHS) {
Value *LHS0 = LHS->getOperand(0), *LHS1 = LHS->getOperand(1);
Value *RHS0 = RHS->getOperand(0), *RHS1 = RHS->getOperand(1);
if ((LHS->hasOneUse() || RHS->hasOneUse()) &&
- LHS0->getType() == RHS0->getType()) {
+ LHS0->getType() == RHS0->getType() &&
+ LHS0->getType()->isIntOrIntVectorTy()) {
// (X > -1) ^ (Y > -1) --> (X ^ Y) < 0
// (X < 0) ^ (Y < 0) --> (X ^ Y) < 0
if ((PredL == CmpInst::ICMP_SGT && match(LHS1, m_AllOnes()) &&
OpenPOWER on IntegriCloud