[llvm] Use (de)interleaving intrinsics for fixed-length vectors (PR #202583)

Matthew Devereau via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 11 08:01:54 PDT 2026


================
@@ -5192,6 +5192,17 @@ unsigned AArch64TTIImpl::getMaxInterleaveFactor(ElementCount VF) const {
   return ST->getMaxInterleaveFactor();
 }
 
+bool AArch64TTIImpl::supportsVectorInterleaveDeinterleaveIntrinsics(
+    unsigned Factor, VectorType *VecTy) const {
+  if (VecTy->isScalableTy()) {
+    assert(Factor <= 8 && "Scalable vector interleave/deinterleave intrinsics "
+                          "only support factors up to 8");
+    return Factor <= 8;
----------------
MDevereau wrote:

We don't have lowering for scalable factors 5 and 7 on AArch64: https://gcc.godbolt.org/z/Wx7K17E8a


```suggestion
    (Factor <= 4 || Factor == 6 || Factor == 8)
```

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


More information about the llvm-commits mailing list