Index: llvm/include/llvm/Analysis/TargetTransformInfo.h =================================================================== --- llvm/include/llvm/Analysis/TargetTransformInfo.h +++ llvm/include/llvm/Analysis/TargetTransformInfo.h @@ -936,7 +936,7 @@ /// creating vectors that span multiple vector registers. /// If false, the vectorization factor will be chosen based on the /// size of the widest element type. - bool shouldMaximizeVectorBandwidth(bool OptSize) const; + bool shouldMaximizeVectorBandwidth() const; /// \return The minimum vectorization factor for types of given element /// bit width, or 0 if there is no minimum VF. The returned value only @@ -1523,7 +1523,7 @@ virtual TypeSize getRegisterBitWidth(RegisterKind K) const = 0; virtual unsigned getMinVectorRegisterBitWidth() = 0; virtual Optional getMaxVScale() const = 0; - virtual bool shouldMaximizeVectorBandwidth(bool OptSize) const = 0; + virtual bool shouldMaximizeVectorBandwidth() const = 0; virtual ElementCount getMinimumVF(unsigned ElemWidth, bool IsScalable) const = 0; virtual unsigned getMaximumVF(unsigned ElemWidth, unsigned Opcode) const = 0; @@ -1956,8 +1956,8 @@ Optional getMaxVScale() const override { return Impl.getMaxVScale(); } - bool shouldMaximizeVectorBandwidth(bool OptSize) const override { - return Impl.shouldMaximizeVectorBandwidth(OptSize); + bool shouldMaximizeVectorBandwidth() const override { + return Impl.shouldMaximizeVectorBandwidth(); } ElementCount getMinimumVF(unsigned ElemWidth, bool IsScalable) const override { Index: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h =================================================================== --- llvm/include/llvm/Analysis/TargetTransformInfoImpl.h +++ llvm/include/llvm/Analysis/TargetTransformInfoImpl.h @@ -388,7 +388,7 @@ Optional getMaxVScale() const { return None; } - bool shouldMaximizeVectorBandwidth(bool OptSize) const { return false; } + bool shouldMaximizeVectorBandwidth() const { return false; } ElementCount getMinimumVF(unsigned ElemWidth, bool IsScalable) const { return ElementCount::get(0, IsScalable); Index: llvm/lib/Analysis/TargetTransformInfo.cpp =================================================================== --- llvm/lib/Analysis/TargetTransformInfo.cpp +++ llvm/lib/Analysis/TargetTransformInfo.cpp @@ -591,8 +591,8 @@ return TTIImpl->getMaxVScale(); } -bool TargetTransformInfo::shouldMaximizeVectorBandwidth(bool OptSize) const { - return TTIImpl->shouldMaximizeVectorBandwidth(OptSize); +bool TargetTransformInfo::shouldMaximizeVectorBandwidth() const { + return TTIImpl->shouldMaximizeVectorBandwidth(); } ElementCount TargetTransformInfo::getMinimumVF(unsigned ElemWidth, Index: llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h =================================================================== --- llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h +++ llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h @@ -85,7 +85,7 @@ unsigned getMinVectorRegisterBitWidth() const; ElementCount getMinimumVF(unsigned ElemWidth, bool IsScalable) const; - bool shouldMaximizeVectorBandwidth(bool OptSize) const { + bool shouldMaximizeVectorBandwidth() const { return true; } bool supportsEfficientVectorElementLoadStore() { Index: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp =================================================================== --- llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -5837,7 +5837,7 @@ } ElementCount MaxVF = MaxVectorSize; - if (TTI.shouldMaximizeVectorBandwidth(!isScalarEpilogueAllowed()) || + if (TTI.shouldMaximizeVectorBandwidth() || (MaximizeBandwidth && isScalarEpilogueAllowed())) { // Collect all viable vectorization factors larger than the default MaxVF // (i.e. MaxVectorSize).