[llvm] [RISCV] Shrink vslidedown when lowering fixed extract_subvector (PR #65598)
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 7 08:02:12 PDT 2023
================
@@ -8684,6 +8684,39 @@ SDValue RISCVTargetLowering::lowerEXTRACT_SUBVECTOR(SDValue Op,
ContainerVT = getContainerForFixedLengthVector(VecVT);
Vec = convertToScalableVector(ContainerVT, Vec, DAG, Subtarget);
}
+
+ // The minimum number of elements for a scalable vector type, e.g. nxv1i32
----------------
preames wrote:
An alternate suggestion here:
Instead of working in bits, work in indices. The last index touched by the extract is just Index + ElementCount(VecVT) - 1.
Then reuse the logic from the extract_vector_elt bit (pull out a helper function) to find the minimal ContrainerVT which contains that index. If it's smaller than ContainerVT, use it.
https://github.com/llvm/llvm-project/pull/65598
More information about the llvm-commits
mailing list