From 7ce2f8b265e5d170cecbe61ea7f4269876bf07ef Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 4 Jan 2007 02:12:40 +0000 Subject: [PATCH] Enable a couple xforms for packed vectors (undef | v) -> -1 for packed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32858 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/SCCP.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/Transforms/Scalar/SCCP.cpp b/lib/Transforms/Scalar/SCCP.cpp index 08c5d27cd51..41174808100 100644 --- a/lib/Transforms/Scalar/SCCP.cpp +++ b/lib/Transforms/Scalar/SCCP.cpp @@ -700,9 +700,10 @@ void SCCPSolver::visitBinaryOperator(Instruction &I) { // Could annihilate value. if (I.getOpcode() == Instruction::And) markConstant(IV, &I, Constant::getNullValue(I.getType())); - else if (Constant *Ones = ConstantInt::getAllOnesValue(I.getType())) { - markConstant(IV, &I, Ones); - } + else if (const PackedType *PT = dyn_cast(I.getType())) + markConstant(IV, &I, ConstantPacked::getAllOnesValue(PT)); + else + markConstant(IV, &I, ConstantInt::getAllOnesValue(I.getType())); return; } else { if (I.getOpcode() == Instruction::And) { @@ -1233,11 +1234,11 @@ bool SCCPSolver::ResolvedUndefsIn(Function &F) { case Instruction::Or: // undef | X -> -1. X could be -1. - if (Constant *Ones = ConstantInt::getAllOnesValue(ITy)) { - markForcedConstant(LV, I, Ones); - return true; - } - break; + if (const PackedType *PTy = dyn_cast(ITy)) + markForcedConstant(LV, I, ConstantPacked::getAllOnesValue(PTy)); + else + markForcedConstant(LV, I, ConstantInt::getAllOnesValue(ITy)); + return true; case Instruction::SDiv: case Instruction::UDiv: