From 23c04309fb3811499fec21498f7926b89b82d401 Mon Sep 17 00:00:00 2001 From: Nick Lewycky Date: Wed, 3 Sep 2008 06:24:21 +0000 Subject: [PATCH] Don't apply this transform to vectors. Fixes PR2756. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55690 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/InstructionCombining.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 17c0750346a..aedad72037e 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -2948,8 +2948,9 @@ Instruction *InstCombiner::visitSRem(BinaryOperator &I) { return common; if (Value *RHSNeg = dyn_castNegVal(Op1)) - if (!isa(RHSNeg) || - cast(RHSNeg)->getValue().isStrictlyPositive()) { + if (!isa(RHSNeg) || + (isa(RHSNeg) && + cast(RHSNeg)->getValue().isStrictlyPositive())) { // X % -Y -> X % Y AddUsesToWorkList(I); I.setOperand(1, RHSNeg); @@ -5495,7 +5496,7 @@ Instruction *InstCombiner::visitICmpInst(ICmpInst &I) { if (Op0I->getOpcode() == Op1I->getOpcode() && Op0I->hasOneUse() && Op1I->hasOneUse() && Op0I->getOperand(1) == Op1I->getOperand(1) && I.isEquality()) { - switch (Op0I->getOpcode()) { + switch (Op0I->getOpcode()) { default: break; case Instruction::Add: case Instruction::Sub: -- 2.34.1