Lines Matching defs:VFs
396 cl::desc("Try wider VFs if they enable the use of vector variants"));
1051 calculateRegisterUsage(ArrayRef<ElementCount> VFs);
1396 /// the final iteration of the original loop for all VFs in \p Range.
1397 /// A scalar epilogue must either be required for all VFs in \p Range or for
1406 "all VFs in range must agree on whether a scalar epilogue is required");
3774 // be replaced by a more detailed mechanism that filters out specific VFs,
3775 // instead of invalidating vectorization for a whole set of VFs based on the
4208 SmallVector<ElementCount, 8> VFs;
4211 VFs.push_back(VS);
4214 auto RUs = calculateRegisterUsage(VFs);
4223 MaxVF = VFs[I];
4262 /// factor at runtime. For fixed-width VFs we know this precisely at compile
4263 /// time, but for scalable VFs we calculate it based on an estimate of the
4318 // different VFs we can use this to compare the total loop-body cost
4357 // Emit a report of VFs with invalid costs in the loop.
4666 // VFs when deciding profitability.
4667 // See related "TODO: extend to support scalable VFs." in
4733 // Skip candidate VFs without a corresponding VPlan.
4737 // Skip candidate VFs with widths >= the (estimated) runtime VF (scalable
4750 // TODO: extend to support scalable VFs.
5145 LoopVectorizationCostModel::calculateRegisterUsage(ArrayRef<ElementCount> VFs) {
5221 SmallVector<RegisterUsage, 8> RUs(VFs.size());
5222 SmallVector<SmallMapVector<unsigned, unsigned, 4>, 8> MaxUsages(VFs.size());
5254 for (unsigned J = 0, E = VFs.size(); J < E; ++J) {
5262 if (VFs[J].isScalar()) {
5271 collectUniformsAndScalars(VFs[J]);
5276 if (isScalarAfterVectorization(Inst, VFs[J])) {
5285 RegUsage[ClassID] += GetRegUsage(Inst->getType(), VFs[J]);
5303 for (unsigned Idx = 0, End = VFs.size(); Idx < End; ++Idx) {
5315 isScalarAfterVectorization(I, VFs[Idx]);
5318 ElementCount VF = IsScalar ? ElementCount::getFixed(1) : VFs[Idx];
5325 dbgs() << "LV(REG): VF = " << VFs[Idx] << '\n';
8642 // for fixed-width VFs we can always fall back on full scalarization.
8739 // reduction result, both of which have different VFs to the active lane