aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
diff options
context:
space:
mode:
authorPhilip Reames <preames@rivosinc.com>2024-02-08 12:15:33 -0800
committerGitHub <noreply@github.com>2024-02-08 12:15:33 -0800
commitb8545e1ece271df16185d446503474c105d6398a (patch)
treed95ff15901ff9b22a52da87d40c8a0575b0af55d /llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
parent705fcd4e0addee6e9e13541dbcbc81cec9748a83 (diff)
downloadllvm-b8545e1ece271df16185d446503474c105d6398a.zip
llvm-b8545e1ece271df16185d446503474c105d6398a.tar.gz
llvm-b8545e1ece271df16185d446503474c105d6398a.tar.bz2
[RISCV] Consider all subvector extracts within a single VREG cheap (#81032)
This adjusts the isSubVectorExtractCheap callback to consider any extract which fits entirely within the first VLEN bits of the src vector (and uses a 5 bit immediate for the slide) as cheap. These can be done via a single m1 vslide1down.vi instruction. This allows our generic DAG combine logic to kick in and recognize a few more cases where shuffle source is longer than the dest, but that using a wider shuffle is still profitable. (Or as shown in the test diff, we can split the wider source and do two narrower shuffles.)
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMapping.cpp')
0 files changed, 0 insertions, 0 deletions