MVT MVT::getExtendedIntegerVT(unsigned BitWidth) {
MVT VT;
VT.LLVMTy = IntegerType::get(BitWidth);
+ assert(VT.isExtended() && "Type is not extended!");
return VT;
}
MVT MVT::getExtendedVectorVT(MVT VT, unsigned NumElements) {
MVT ResultVT;
ResultVT.LLVMTy = VectorType::get(VT.getTypeForMVT(), NumElements);
+ assert(ResultVT.isExtended() && "Type is not extended!");
return ResultVT;
}
if (const VectorType *VTy = dyn_cast<VectorType>(LLVMTy))
return VTy->getBitWidth();
assert(false && "Unrecognized extended type!");
+ return 0; // Suppress warnings.
}
/// getMVTString - This function returns value type as a string, e.g. "i32".
const Type *MVT::getTypeForMVT() const {
switch (V) {
default:
- if (isVector())
- return VectorType::get(getVectorElementType().getTypeForMVT(),
- getVectorNumElements());
- if (isInteger())
- return IntegerType::get(getSizeInBits());
- assert(0 && "MVT does not correspond to LLVM type!");
- return Type::VoidTy;
+ assert(isExtended() && "Type is not extended!");
+ return LLVMTy;
case MVT::isVoid: return Type::VoidTy;
case MVT::i1: return Type::Int1Ty;
case MVT::i8: return Type::Int8Ty;