diff options
author | Luke Lau <luke@igalia.com> | 2025-08-07 10:54:24 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-07 10:54:24 +0800 |
commit | df8da2ff8370fda479b5c118704af4f50e0d3536 (patch) | |
tree | d22fcb62c8fffbd6dc2fc5157eda45273556b953 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | a196281896de208fca1dde315e377a46ec9a2e66 (diff) | |
download | llvm-df8da2ff8370fda479b5c118704af4f50e0d3536.zip llvm-df8da2ff8370fda479b5c118704af4f50e0d3536.tar.gz llvm-df8da2ff8370fda479b5c118704af4f50e0d3536.tar.bz2 |
[VPlan] Support VPWidenPointerInductionRecipes with EVL tail folding (#152110)
Now that VPWidenPointerInductionRecipes are modelled in VPlan in
#148274, we can support them in EVL tail folding.
We need to replace their VFxUF operand with EVL as the increment is not
guaranteed to always be VF on the penultimate iteration, and UF is
always 1 with EVL tail folding.
We also need to move the creation of the backedge value to the latch so
that EVL dominates it.
With this we will no longer fail to convert a VPlan to EVL tail folding,
so adjust tryAddExplicitVectorLength to account for this. This brings us
to 99.4% of all vector loops vectorized on SPEC CPU 2017 with tail
folding vs no tail folding.
The test in only-compute-cost-for-vplan-vfs.ll previously relied on
widened pointer inductions with EVL tail folding to end up in a scenario
with no vector VPlans, so this also replaces it with an unvectorizable
fixed-order recurrence test from
first-order-recurrence-multiply-recurrences.ll that also gets discarded.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions