diff options
author | Craig Topper <craig.topper@sifive.com> | 2021-05-11 09:32:19 -0700 |
---|---|---|
committer | Craig Topper <craig.topper@sifive.com> | 2021-05-11 09:42:48 -0700 |
commit | ce6e4f27dd72f834502f47176d84869a1f509d7b (patch) | |
tree | 9e1e19153b3764f7d2ccd76df21ff315957cb203 /llvm/lib/TextAPI/Platform.cpp | |
parent | 5f78ba001ca23ab826b9be823fc8ac0a0e5d2237 (diff) | |
download | llvm-ce6e4f27dd72f834502f47176d84869a1f509d7b.zip llvm-ce6e4f27dd72f834502f47176d84869a1f509d7b.tar.gz llvm-ce6e4f27dd72f834502f47176d84869a1f509d7b.tar.bz2 |
[RISCV] Use fractional LMULs for fixed length types smaller than riscv-v-vector-bits-min.
My thought process is that if v2i64 is an LMUL=1 type then v2i32
should be an LMUL=1/2 type. We limit the fractional LMUL so that
SEW=64 clips to LMUL=1, SEW=32 clips to LMUL=1/2, etc. This
ensures there's always a fractional LMUL available to truncate a type.
This does reduce the number of vsetvlis in some cases.
Some tests increase vsetvlis because the best container type for a
mask type is dependent on the LMUL+SEW that the mask was produced
from, but you can't tell that from the type. I think this is
something we need to solve this in the machine IR when optimizing
vsetvlis.
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D101215
Diffstat (limited to 'llvm/lib/TextAPI/Platform.cpp')
0 files changed, 0 insertions, 0 deletions