aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetOptionsImpl.cpp
diff options
context:
space:
mode:
authorYunqing Yu <yunqingy@nvidia.com>2025-10-25 08:26:11 -0700
committerGitHub <noreply@github.com>2025-10-25 10:26:11 -0500
commit059d90d08f610d5919c42646f267bbab77f7bee4 (patch)
tree703e37d6d9bebd6e4702a94d9daac0506d562908 /llvm/lib/CodeGen/TargetOptionsImpl.cpp
parent09eea2256e5305e7527df61b2fc35f16410b63be (diff)
downloadllvm-059d90d08f610d5919c42646f267bbab77f7bee4.zip
llvm-059d90d08f610d5919c42646f267bbab77f7bee4.tar.gz
llvm-059d90d08f610d5919c42646f267bbab77f7bee4.tar.bz2
[Legalizer] Cache extracted element when lowering G_SHUFFLE_VECTOR. (#163893)
Cache extracted elements in lowerShuffleVector(). For example, when lowering ``` %0:_(<2 x s32>) = G_BUILD_VECTOR %0, %1 %2:_(<N x s32>) = G_SHUFFLE_VECTOR %1, shufflemask(0, 0, 0, 0 ... x N ) ``` Currently, we generate `N` `G_EXTRACT_VECTOR_ELT` for each element in shufflemask. This is undesirable and bloats the code, especially for larger vectors. With this change, we only generate one `G_EXTRACT_VECTOR_ELT` from `%0` and reuse it for all four result elements.
Diffstat (limited to 'llvm/lib/CodeGen/TargetOptionsImpl.cpp')
0 files changed, 0 insertions, 0 deletions