diff options
author | Luke Lau <luke@igalia.com> | 2025-07-03 11:50:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-03 11:50:25 +0100 |
commit | ec25a0568cfbd13a6e375d3a2295b706708d37c5 (patch) | |
tree | e61de6a85bc6ef886d7f3b0157aec364724eb042 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | 789127036dc90a363b04325be4f1bc9e29d709fd (diff) | |
download | llvm-ec25a0568cfbd13a6e375d3a2295b706708d37c5.zip llvm-ec25a0568cfbd13a6e375d3a2295b706708d37c5.tar.gz llvm-ec25a0568cfbd13a6e375d3a2295b706708d37c5.tar.bz2 |
[VPlan] Don't convert VPWidenSelectRecipes to vp.select in EVL transform (#146695)
createEVLRecipe tries to optimise recipes that use the header mask by
replacing them with their VP equivalents and setting the EVL, allowing
the mask to be removed.
However we currently also convert widened selects to vp.select even
though they don't necessarily use the header mask.
Unlike vp.merge a vp.select only makes the "unused" lanes past EVL
poison, so it's not needed for correctness.
In the same vein as #127180, this patch removes the transform for
VPWidenSelectRecipes and keeps them as plain select instructions to
allow for more optimisations.
RISCVVLOptimizer will still be able to optimise away any VL toggles and
we end up with better code generation across llvm-test-suite and SPEC
CPU 2017.
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions