aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUtils.cpp
diff options
context:
space:
mode:
authorPhilip Reames <preames@rivosinc.com>2022-07-27 11:29:59 -0700
committerPhilip Reames <listmail@philipreames.com>2022-07-27 11:42:28 -0700
commite8ceadd0ce465f7223eea7dc923ce8a25f68b4ba (patch)
tree14fcf8f5f87a7c1f1d67b4876389702c135526da /llvm/lib/Transforms/Utils/LoopUtils.cpp
parent65246d3eb4c64b338f8011dab5ee9ee2cc62c5c3 (diff)
downloadllvm-e8ceadd0ce465f7223eea7dc923ce8a25f68b4ba.zip
llvm-e8ceadd0ce465f7223eea7dc923ce8a25f68b4ba.tar.gz
llvm-e8ceadd0ce465f7223eea7dc923ce8a25f68b4ba.tar.bz2
[LV][RISCV] Add a test case for a quality problem mixing vector index and data types
The problem here is target independent, but particularly painful on RISCV. If we chose to vectorize such that vscale x 2 x i32 is our widest type and fits in a register, a naive expansion of i64 comparisons results in comparisons and index types at <scalabe x 2 x i64>. This requires both an LMUL of 2, and a VSETVLI toggle in the loop. Note that we could have used <vscale x 2 x i32> for the compairons legally given the range of the trip count.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
0 files changed, 0 insertions, 0 deletions