diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index f9abafa34c0..8c56b7a0d05 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -4691,14 +4691,6 @@ Instruction *InstCombiner::visitICmpInst(ICmpInst &I) { if (isa(Op1)) // X icmp undef -> undef return ReplaceInstUsesWith(I, UndefValue::get(Type::Int1Ty)); - // icmp of GlobalValues can never equal each other as long as they aren't - // external weak linkage type. - if (GlobalValue *GV0 = dyn_cast(Op0)) - if (GlobalValue *GV1 = dyn_cast(Op1)) - if (!GV0->hasExternalWeakLinkage() || !GV1->hasExternalWeakLinkage()) - return ReplaceInstUsesWith(I, ConstantInt::get(Type::Int1Ty, - !isTrueWhenEqual(I))); - // icmp , - Global/Stack value // addresses never equal each other! We already know that Op0 != Op1. if ((isa(Op0) || isa(Op0) || @@ -6399,6 +6391,7 @@ static bool CanEvaluateInDifferentType(Value *V, const IntegerType *Ty, // of casts in the input. if (I->getOpcode() == CastOpc) return true; + break; default: // TODO: Can handle more cases here.