diff options
author | Luke Lau <luke@igalia.com> | 2024-02-13 14:29:08 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-13 14:29:08 +0800 |
commit | bb77047a3b93e332be9cb3d85ad658e0ffa25525 (patch) | |
tree | 7b3f87315ccec4801fc066af3dba2ad247ca7e18 /llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp | |
parent | 85e6e71eb09cb9e75bbd475e5f54f876653c3f16 (diff) | |
download | llvm-bb77047a3b93e332be9cb3d85ad658e0ffa25525.zip llvm-bb77047a3b93e332be9cb3d85ad658e0ffa25525.tar.gz llvm-bb77047a3b93e332be9cb3d85ad658e0ffa25525.tar.bz2 |
[RISCV] Handle fixed length vectors with exact VLEN in loweringEXTRACT_SUBVECTOR (#79949)
This is a revival of #65392. When we lower an extract_subvector, we
extract the
subregister that the subvector is contained in first and then do a
vslidedown
with LMUL=1. We can currently only do this for scalable vectors though
because
the index is scaled by vscale and thus we will know what subregister the
subvector lies in.
For fixed length vectors, the index isn't scaled by vscale and so the
subvector
could lie in any arbitrary subregister, so we have to do a vslidedown
with the
full LMUL.
The exception to this is when we know the exact VLEN: in which case, we
can
still work out the exact subregister and do the LMUL=1 vslidedown on it.
This patch handles this case by scaling the index by 1/vscale before
computing
the subregister, and extending the LMUL=1 path to handle fixed length
vectors.
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp')
0 files changed, 0 insertions, 0 deletions