diff --git a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp --- a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp +++ b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp @@ -2631,9 +2631,11 @@ unsigned VF = 0; for (unsigned i = 0; i < I.getNumOperands(); i++) if (I.getOperand(i)->getType()->isVectorTy()) { - assert(VF == 0 || - VF == I.getOperand(i)->getType()->getVectorNumElements()); - VF = I.getOperand(i)->getType()->getVectorNumElements(); + assert( + VF == 0 || + VF == + cast(I.getOperand(i)->getType())->getNumElements()); + VF = cast(I.getOperand(i)->getType())->getNumElements(); } // It's the vector to scalar traversal through the pointer operand which diff --git a/llvm/lib/Transforms/Scalar/Scalarizer.cpp b/llvm/lib/Transforms/Scalar/Scalarizer.cpp --- a/llvm/lib/Transforms/Scalar/Scalarizer.cpp +++ b/llvm/lib/Transforms/Scalar/Scalarizer.cpp @@ -252,7 +252,7 @@ PtrTy = dyn_cast(Ty); if (PtrTy) Ty = PtrTy->getElementType(); - Size = Ty->getVectorNumElements(); + Size = cast(Ty)->getNumElements(); if (!CachePtr) Tmp.resize(Size, nullptr); else if (CachePtr->empty()) @@ -269,7 +269,7 @@ return CV[I]; IRBuilder<> Builder(BB, BBI); if (PtrTy) { - Type *ElTy = PtrTy->getElementType()->getVectorElementType(); + Type *ElTy = cast(PtrTy->getElementType())->getElementType(); if (!CV[0]) { Type *NewPtrTy = PointerType::get(ElTy, PtrTy->getAddressSpace()); CV[0] = Builder.CreateBitCast(V, NewPtrTy, V->getName() + ".i0"); @@ -852,10 +852,10 @@ if (!Op->use_empty()) { // The value is still needed, so recreate it using a series of // InsertElements. - Type *Ty = Op->getType(); + auto *Ty = cast(Op->getType()); Value *Res = UndefValue::get(Ty); BasicBlock *BB = Op->getParent(); - unsigned Count = Ty->getVectorNumElements(); + unsigned Count = Ty->getNumElements(); IRBuilder<> Builder(Op); if (isa(Op)) Builder.SetInsertPoint(BB, BB->getFirstInsertionPt());