aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/IR/ModuleTest.cpp
diff options
context:
space:
mode:
authorLuke Lau <luke@igalia.com>2025-07-23 20:09:33 +0800
committerGitHub <noreply@github.com>2025-07-23 20:09:33 +0800
commit114d74e39151ea60afd211a307011f3943ecc9a9 (patch)
treede4495c35d65c08b13ca782f1a054f7a698ebd92 /llvm/unittests/IR/ModuleTest.cpp
parentd65cc97ab1bdc61b22e853f3882c9ba267764e53 (diff)
downloadllvm-114d74e39151ea60afd211a307011f3943ecc9a9.zip
llvm-114d74e39151ea60afd211a307011f3943ecc9a9.tar.gz
llvm-114d74e39151ea60afd211a307011f3943ecc9a9.tar.bz2
[VPlan] Expand VPBlendRecipes to select instructions. NFC (#133993)
When looking at some EVL tail folded code in SPEC CPU 2017 I noticed we sometimes have both VPBlendRecipes and select VPInstructions in the same plan: EMIT vp<%active.lane.mask> = active lane mask vp<%5>, vp<%3> EMIT vp<%7> = icmp ... EMIT vp<%8> = logical-and vp<%active.lane.mask>, vp<%7> BLEND ir<%8> = ir<%n.015> ir<%foo>/vp<%8> EMIT vp<%9> = select vp<%active.lane.mask>, ir<%8>, ir<%n.015> Since a blend will ultimately generate a chain of selects, we could fold the blend into the select: EMIT vp<%active.lane.mask> = active lane mask vp<%5>, vp<%3> EMIT vp<%7> = icmp ... EMIT vp<%8> = logical-and vp<%active.lane.mask>, vp<%7> EMIT ir<%8> = select vp<%8>, ir<%foo>, ir<%n.015> So as a first step, this patch expands blends to a series of select instructions, which may allow them to be simplified further with other select instructions.
Diffstat (limited to 'llvm/unittests/IR/ModuleTest.cpp')
0 files changed, 0 insertions, 0 deletions