diff options
author | Kolya Panchenko <87679760+nikolaypanchenko@users.noreply.github.com> | 2024-03-13 12:18:51 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-13 15:18:51 -0400 |
commit | aa68e2814d9a4bad21e4def900152b2e78e25e98 (patch) | |
tree | c663bc8e2f982a4dbf259ab94a276b681b908c86 /lldb/packages/Python/lldbsuite/support | |
parent | b77c079987182748fe1746466a74633cfe057cc1 (diff) | |
download | llvm-aa68e2814d9a4bad21e4def900152b2e78e25e98.zip llvm-aa68e2814d9a4bad21e4def900152b2e78e25e98.tar.gz llvm-aa68e2814d9a4bad21e4def900152b2e78e25e98.tar.bz2 |
[RISCV] Support `llvm.masked.compressstore` intrinsic (#83457)
The changeset enables lowering of `llvm.masked.compressstore(%data,
%ptr, %mask)` for RVV for fixed vector type into:
```
%0 = vcompress %data, %mask, %vl
%new_vl = vcpop %mask, %vl
vse %0, %ptr, %1, %new_vl
```
Such lowering is only possible when `%data` fits into available LMULs
and otherwise `llvm.masked.compressstore` is scalarized by
`ScalarizeMaskedMemIntrin` pass.
Even though RVV spec in the section `15.8` provide alternative sequence
for compressstore, use of `vcompress + vcpop` should be a proper
canonical form to lower `llvm.masked.compressstore`. If RISC-V target
find the sequence from `15.8` better, peephole optimization can
transform `vcompress + vcpop` into that sequence.
Diffstat (limited to 'lldb/packages/Python/lldbsuite/support')
0 files changed, 0 insertions, 0 deletions