[PATCH] D125193: [SVE] Enable use of 32bit gather/scatter indices for fixed length vectors

David Sherwood via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 9 08:41:40 PDT 2022


david-arm added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:4563
+  // Indices cannot be smaller than the main data type.
+  if (IndexVT.getScalarSizeInBits() < DataVT.getScalarSizeInBits())
+    return false;
----------------
It feels like we may have been missing a SVE test before for the case when IndexVT=<vscale x 4 x i32> and DataVT=<vscale x 4 x i64>. This is a hole that you've fixed, but no tests broke. :)


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:4568
+  // element container type, which would violate the previous clause.
+  return DataVT.isFixedLengthVector() || DataVT.getVectorMinNumElements() > 2;
 }
----------------
Given we can have types such as <vscale x 3 x > is it worth changing this to

  DataVT.getVectorMinNumElements() >= 4

I guess such types will be widened to the next power of 2, but it looks like we might call this before legalisation?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D125193/new/

https://reviews.llvm.org/D125193



More information about the llvm-commits mailing list