[llvm] [VPlan] Add VPValue for VF, use it for VPWidenIntOrFpInductionRecipe. (PR #95305)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 15 04:49:35 PDT 2024
================
@@ -928,8 +928,19 @@ void VPlan::prepareToExecute(Value *TripCountV, Value *VectorTripCountV,
IRBuilder<> Builder(State.CFG.PrevBB->getTerminator());
// FIXME: Model VF * UF computation completely in VPlan.
- VFxUF.setUnderlyingValue(
- createStepForVF(Builder, TripCountV->getType(), State.VF, State.UF));
+ Value *RuntimeVF = nullptr;
+ if (VF.getNumUsers()) {
+ RuntimeVF = createStepForVF(Builder, TripCountV->getType(), State.VF, 1);
+ VF.setUnderlyingValue(RuntimeVF);
+ VFxUF.setUnderlyingValue(
+ State.UF > 1 ? Builder.CreateMul(
+ VF.getLiveInIRValue(),
+ ConstantInt::get(TripCountV->getType(), State.UF))
+ : VF.getLiveInIRValue());
----------------
fhahn wrote:
> But we want to set it directly instead, using VF - when the latter is built with getRuntimeVF(
yep, to reduce calls to @vscale .
Updated to use RuntimeVF variable, thanks!
https://github.com/llvm/llvm-project/pull/95305
More information about the llvm-commits
mailing list