[llvm] [CodeGen] Expand unsupported (de)interleave intrinsics (PR #207439)

Kamlesh Kumar via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 13 23:52:39 PDT 2026


================
@@ -232,6 +232,11 @@ class AArch64TargetLowering : public TargetLowering {
 
   unsigned getMaxSupportedInterleaveFactor() const override { return 4; }
 
+  bool isInterleaveIntrinsicSupported(unsigned Factor, EVT VT) const override {
+    return VT.isScalableVector() || Factor == 3 ||
+           (Factor > 2 && Factor % 2 == 0);
----------------
kamleshbhalui wrote:

I meant the factor for the intrinsics(vector.interleaveN, vector.deinterleaveN()) where are N -> 2,3,4,5,6,7,8. So factor 10 can not be generated as of now.
Yes Arm64 natively can only lower factor 2,3,4 and factor6,8 will be expanded into supported factors and unsupported  factor 5,7 expanded to shuffles.

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


More information about the llvm-commits mailing list