[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