diff options
| author | Yunqing Yu <yunqingy@nvidia.com> | 2025-10-25 08:26:11 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-25 10:26:11 -0500 |
| commit | 059d90d08f610d5919c42646f267bbab77f7bee4 (patch) | |
| tree | 703e37d6d9bebd6e4702a94d9daac0506d562908 /llvm/lib/CodeGen/TargetOptionsImpl.cpp | |
| parent | 09eea2256e5305e7527df61b2fc35f16410b63be (diff) | |
| download | llvm-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
