diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -17584,7 +17584,7 @@ return false; assert(VectorTy->isVectorTy() && "VectorTy is not a vector type"); - unsigned BitWidth = cast(VectorTy)->getBitWidth(); + unsigned BitWidth = VectorTy->getPrimitiveSizeInBits().getFixedSize(); // We can do a store + vector extract on any vector that fits perfectly in a D // or Q register. if (BitWidth == 64 || BitWidth == 128) { @@ -18081,11 +18081,11 @@ case HA_DOUBLE: return false; case HA_VECT64: - return VT->getBitWidth() == 64; + return VT->getPrimitiveSizeInBits().getFixedSize() == 64; case HA_VECT128: - return VT->getBitWidth() == 128; + return VT->getPrimitiveSizeInBits().getFixedSize() == 128; case HA_UNKNOWN: - switch (VT->getBitWidth()) { + switch (VT->getPrimitiveSizeInBits().getFixedSize()) { case 64: Base = HA_VECT64; return true;