[llvm] [AArch64][SVE] Allow scalable factor-3 interleaved accesses (PR #200424)
Harry Ramsey via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 30 09:09:18 PDT 2026
================
@@ -27682,7 +27717,12 @@ performInterleavedStoreCombine(SDNode *N, TargetLowering::DAGCombinerInfo &DCI,
return SDValue();
} else if (!isSplatVectorInterleaveOps(DAG, DL, WideValue,
ValueInterleaveOps)) {
- return SDValue();
+ // A vector.interleave3 defined in another basic block is unknown here
----------------
Harry-Ramsey wrote:
Across blocks, we cannot see the original DAG node. I believe for 2 and 4 we can use the power-of-two to identify if it is compatible. We do not have that with factor of 3, so I have had to implement `deinterleaveInterleavedValueForSVESt3` as a way to help with that.
That is why this test is only for factors of 3.
https://github.com/llvm/llvm-project/pull/200424
More information about the llvm-commits
mailing list