diff options
author | Philip Reames <preames@rivosinc.com> | 2024-02-08 12:15:33 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-08 12:15:33 -0800 |
commit | b8545e1ece271df16185d446503474c105d6398a (patch) | |
tree | d95ff15901ff9b22a52da87d40c8a0575b0af55d /llvm/lib/ProfileData/Coverage/CoverageMapping.cpp | |
parent | 705fcd4e0addee6e9e13541dbcbc81cec9748a83 (diff) | |
download | llvm-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