[llvm] [CodeGen] Expand unsupported interleave to shuffles (PR #210494)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 28 04:26:07 PDT 2026


================
@@ -438,6 +438,9 @@ class RISCVTargetLowering : public TargetLowering {
   bool isLegalFirstFaultLoad(EVT DataType, Align Alignment) const;
 
   unsigned getMaxSupportedInterleaveFactor() const override { return 8; }
+  bool isInterleaveIntrinsicSupported(unsigned Factor, EVT VT) const override {
+    return VT.isScalableVector() || (Factor > 2 && Factor <= 8);
----------------
lukel97 wrote:

Why do we specifically check for scalable vectors? RISCV vector_interleave/deinterleave lowering can only handle up to factor 8, I would have thought that 

```suggestion
    return Factor > 2 && Factor <= 8;
```

would be the same

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


More information about the llvm-commits mailing list