[llvm] [VPlan] Materialize VF and VFxUF using VPInstructions. (PR #152879)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 11 08:06:32 PDT 2025


================
@@ -3335,6 +3335,33 @@ void VPlanTransforms::materializeVectorTripCount(VPlan &Plan,
   VectorTC.replaceAllUsesWith(Res);
 }
 
+void VPlanTransforms::materializeVFAndVFxUF(VPlan &Plan, VPBasicBlock *VectorPH,
+                                            ElementCount VFEC) {
+  VPBuilder Builder(VectorPH, VectorPH->begin());
+  Type *TCTy = VPTypeAnalysis(Plan).inferScalarType(Plan.getTripCount());
+  VPValue &VF = Plan.getVF();
+  VPValue &VFxUF = Plan.getVFxUF();
+  if (VF.getNumUsers()) {
+    VPValue *RuntimeVF = Builder.createElementCount(TCTy, VFEC);
+    if (any_of(VF.users(), [&VF](VPUser *U) { return !U->usesScalars(&VF); })) {
+      auto *BC = Builder.createNaryOp(VPInstruction::Broadcast, RuntimeVF);
----------------
fhahn wrote:

done thanks

https://github.com/llvm/llvm-project/pull/152879


More information about the llvm-commits mailing list