aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorLuke Lau <luke@igalia.com>2025-07-03 11:50:25 +0100
committerGitHub <noreply@github.com>2025-07-03 11:50:25 +0100
commitec25a0568cfbd13a6e375d3a2295b706708d37c5 (patch)
treee61de6a85bc6ef886d7f3b0157aec364724eb042 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent789127036dc90a363b04325be4f1bc9e29d709fd (diff)
downloadllvm-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