[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:27:34 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;
+ }
+ // For Fixed length vectors.
+ return Factor <= 4;
----------------
MDevereau wrote:
We have lowering for fixed factors 6 and 8 on AArch64: https://gcc.godbolt.org/z/88nK1K4f4
```suggestion
return (Factor <= 4 || Factor == 6 || Factor == 8)
```
https://github.com/llvm/llvm-project/pull/202583
More information about the llvm-commits
mailing list