aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/ModuloSchedule.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@sifive.com>2022-06-07 08:07:49 -0700
committerCraig Topper <craig.topper@sifive.com>2022-06-07 08:07:50 -0700
commit0c66deb498e6c2389988500b5037d91b81f79ed9 (patch)
tree477f2b445df1919114488c8406864d9bbc463a3b /llvm/lib/CodeGen/ModuloSchedule.cpp
parent3731bbc4251075525db3e7d75292d4df2075f656 (diff)
downloadllvm-0c66deb498e6c2389988500b5037d91b81f79ed9.zip
llvm-0c66deb498e6c2389988500b5037d91b81f79ed9.tar.gz
llvm-0c66deb498e6c2389988500b5037d91b81f79ed9.tar.bz2
[RISCV] Scalarize gather/scatter on RV64 with Zve32* extension.
i64 indices aren't supported on Zve32*. Scalarize gathers to prevent generating illegal instructions. Since InstCombine will aggressively canonicalize GEP indices to pointer size, we're pretty much always going to have an i64 index. Trying to predict when SelectionDAG will find a smaller index from the TTI hook used by the ScalarizeMaskedMemIntrinPass seems fragile. To optimize this we probably need an IR pass to rewrite it earlier. Test RUN lines have also been added to make sure the strided load/store optimization still works. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D127179
Diffstat (limited to 'llvm/lib/CodeGen/ModuloSchedule.cpp')
0 files changed, 0 insertions, 0 deletions