Author: djg Date: Wed Oct 31 16:36:31 2007 New Revision: 43579 URL: http://llvm.org/viewvc/llvm-project?rev=43579&view=rev Log: Fix a regression in test/CodeGen/X86/2007-04-24-VectorCrash.ll introduced by r43510. Gracefully handle constants with vector type that aren't ConstantVector or ConstantAggregateZero.
Modified: llvm/trunk/lib/VMCore/ConstantFold.cpp Modified: llvm/trunk/lib/VMCore/ConstantFold.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/ConstantFold.cpp?rev=43579&r1=43578&r2=43579&view=diff ============================================================================== --- llvm/trunk/lib/VMCore/ConstantFold.cpp (original) +++ llvm/trunk/lib/VMCore/ConstantFold.cpp Wed Oct 31 16:36:31 2007 @@ -716,10 +716,8 @@ } else if (const VectorType *VTy = dyn_cast<VectorType>(C1->getType())) { const ConstantVector *CP1 = dyn_cast<ConstantVector>(C1); const ConstantVector *CP2 = dyn_cast<ConstantVector>(C2); - assert((CP1 != NULL || isa<ConstantAggregateZero>(C1)) && - "Unexpected kind of vector constant!"); - assert((CP2 != NULL || isa<ConstantAggregateZero>(C2)) && - "Unexpected kind of vector constant!"); + if ((CP1 != NULL || isa<ConstantAggregateZero>(C1)) && + (CP2 != NULL || isa<ConstantAggregateZero>(C2))) { switch (Opcode) { default: break; @@ -747,6 +745,7 @@ return EvalVectorOp(CP1, CP2, VTy, ConstantExpr::getOr); case Instruction::Xor: return EvalVectorOp(CP1, CP2, VTy, ConstantExpr::getXor); + } } } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits