|
@@ -5843,7 +5843,7 @@ ExprResult Sema::SemaBuiltinShuffleVector(CallExpr *TheCall) {
|
|
|
<< SourceRange(TheCall->getArg(0)->getBeginLoc(),
|
|
|
TheCall->getArg(1)->getEndLoc()));
|
|
|
|
|
|
- numElements = LHSType->getAs<VectorType>()->getNumElements();
|
|
|
+ numElements = LHSType->castAs<VectorType>()->getNumElements();
|
|
|
unsigned numResElements = TheCall->getNumArgs() - 2;
|
|
|
|
|
|
// Check to see if we have a call with 2 vector arguments, the unary shuffle
|
|
@@ -5851,7 +5851,7 @@ ExprResult Sema::SemaBuiltinShuffleVector(CallExpr *TheCall) {
|
|
|
// same number of elts as lhs.
|
|
|
if (TheCall->getNumArgs() == 2) {
|
|
|
if (!RHSType->hasIntegerRepresentation() ||
|
|
|
- RHSType->getAs<VectorType>()->getNumElements() != numElements)
|
|
|
+ RHSType->castAs<VectorType>()->getNumElements() != numElements)
|
|
|
return ExprError(Diag(TheCall->getBeginLoc(),
|
|
|
diag::err_vec_builtin_incompatible_vector)
|
|
|
<< TheCall->getDirectCallee()
|
|
@@ -5864,7 +5864,7 @@ ExprResult Sema::SemaBuiltinShuffleVector(CallExpr *TheCall) {
|
|
|
<< SourceRange(TheCall->getArg(0)->getBeginLoc(),
|
|
|
TheCall->getArg(1)->getEndLoc()));
|
|
|
} else if (numElements != numResElements) {
|
|
|
- QualType eltType = LHSType->getAs<VectorType>()->getElementType();
|
|
|
+ QualType eltType = LHSType->castAs<VectorType>()->getElementType();
|
|
|
resType = Context.getVectorType(eltType, numResElements,
|
|
|
VectorType::GenericVector);
|
|
|
}
|
|
@@ -5921,8 +5921,8 @@ ExprResult Sema::SemaConvertVectorExpr(Expr *E, TypeSourceInfo *TInfo,
|
|
|
diag::err_convertvector_non_vector_type));
|
|
|
|
|
|
if (!SrcTy->isDependentType() && !DstTy->isDependentType()) {
|
|
|
- unsigned SrcElts = SrcTy->getAs<VectorType>()->getNumElements();
|
|
|
- unsigned DstElts = DstTy->getAs<VectorType>()->getNumElements();
|
|
|
+ unsigned SrcElts = SrcTy->castAs<VectorType>()->getNumElements();
|
|
|
+ unsigned DstElts = DstTy->castAs<VectorType>()->getNumElements();
|
|
|
if (SrcElts != DstElts)
|
|
|
return ExprError(Diag(BuiltinLoc,
|
|
|
diag::err_convertvector_incompatible_vector)
|