aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
diff options
context:
space:
mode:
authorLuke Lau <luke@igalia.com>2024-02-13 14:29:08 +0800
committerGitHub <noreply@github.com>2024-02-13 14:29:08 +0800
commitbb77047a3b93e332be9cb3d85ad658e0ffa25525 (patch)
tree7b3f87315ccec4801fc066af3dba2ad247ca7e18 /llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
parent85e6e71eb09cb9e75bbd475e5f54f876653c3f16 (diff)
downloadllvm-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