[llvm] [LV] isScalarWithPredication to check for interleaved accesses (PR #194579)

David Sherwood via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 30 02:57:31 PDT 2026


=?utf-8?q?Gaƫtan?= Bossu <gaetan.bossu at arm.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/194579 at github.com>


================
@@ -59,20 +59,25 @@ static cl::opt<bool> ForceTargetSupportsMaskedMemoryOps(
     cl::desc("Assume the target supports masked memory operations (used for "
              "testing)."));
 
-bool VFSelectionContext::isLegalMaskedStore(Type *DataType, Value *Ptr,
-                                            Align Alignment,
-                                            unsigned AddressSpace) const {
-  return Legal->isConsecutivePtr(DataType, Ptr) &&
-         (ForceTargetSupportsMaskedMemoryOps ||
-          TTI.isLegalMaskedStore(DataType, Alignment, AddressSpace));
-}
+static cl::opt<bool> ForceTargetSupportsGatherScatterOps(
----------------
david-arm wrote:

I think it would be good to pull out the refactoring of isLegalMaskedLoad/Store + the new option into a separate PR, without the extra InterleaveFactor argument first. Seems useful as a standalone patch and would reduce the diff here? You can still add a test that shows the new option working in a different scenario.

https://github.com/llvm/llvm-project/pull/194579


More information about the llvm-commits mailing list