diff --git a/llvm/include/llvm/CodeGen/ValueTypes.h b/llvm/include/llvm/CodeGen/ValueTypes.h index 888b83d6f736ff..ccdaab5ed96d27 100644 --- a/llvm/include/llvm/CodeGen/ValueTypes.h +++ b/llvm/include/llvm/CodeGen/ValueTypes.h @@ -100,8 +100,11 @@ namespace llvm { /// Return a VT for a vector type whose attributes match ourselves /// with the exception of the element type that is chosen by the caller. EVT changeVectorElementType(EVT EltVT) const { - if (isSimple() && EltVT.isSimple()) + if (isSimple()) { + assert(EltVT.isSimple() && + "Can't change simple vector VT to have extended element VT"); return getSimpleVT().changeVectorElementType(EltVT.getSimpleVT()); + } return changeExtendedVectorElementType(EltVT); } diff --git a/llvm/lib/CodeGen/ValueTypes.cpp b/llvm/lib/CodeGen/ValueTypes.cpp index 7e4c4b1c634e1c..7f38420b83703f 100644 --- a/llvm/lib/CodeGen/ValueTypes.cpp +++ b/llvm/lib/CodeGen/ValueTypes.cpp @@ -15,11 +15,13 @@ using namespace llvm; EVT EVT::changeExtendedTypeToInteger() const { + assert(isExtended() && "Type is not extended!"); LLVMContext &Context = LLVMTy->getContext(); return getIntegerVT(Context, getSizeInBits()); } EVT EVT::changeExtendedVectorElementTypeToInteger() const { + assert(isExtended() && "Type is not extended!"); LLVMContext &Context = LLVMTy->getContext(); EVT IntTy = getIntegerVT(Context, getScalarSizeInBits()); return getVectorVT(Context, IntTy, getVectorNumElements(), @@ -27,6 +29,7 @@ EVT EVT::changeExtendedVectorElementTypeToInteger() const { } EVT EVT::changeExtendedVectorElementType(EVT EltVT) const { + assert(isExtended() && "Type is not extended!"); LLVMContext &Context = LLVMTy->getContext(); return getVectorVT(Context, EltVT, getVectorElementCount()); }