From 2cda9399deed8a50e95848716212b500c5b2d396 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 31 Oct 2007 21:36:31 +0000 Subject: [PATCH] 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43579 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/ConstantFold.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/VMCore/ConstantFold.cpp b/lib/VMCore/ConstantFold.cpp index 2f2c6181290..257e4813d1d 100644 --- a/lib/VMCore/ConstantFold.cpp +++ b/lib/VMCore/ConstantFold.cpp @@ -716,10 +716,8 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode, } else if (const VectorType *VTy = dyn_cast(C1->getType())) { const ConstantVector *CP1 = dyn_cast(C1); const ConstantVector *CP2 = dyn_cast(C2); - assert((CP1 != NULL || isa(C1)) && - "Unexpected kind of vector constant!"); - assert((CP2 != NULL || isa(C2)) && - "Unexpected kind of vector constant!"); + if ((CP1 != NULL || isa(C1)) && + (CP2 != NULL || isa(C2))) { switch (Opcode) { default: break; @@ -747,6 +745,7 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode, return EvalVectorOp(CP1, CP2, VTy, ConstantExpr::getOr); case Instruction::Xor: return EvalVectorOp(CP1, CP2, VTy, ConstantExpr::getXor); + } } }