[llvm] [IR][RISCV] Add llvm.vector.(de)interleave3/5/7 (PR #124825)

Min-Yih Hsu via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 29 13:42:34 PST 2025


================
@@ -1668,6 +1668,15 @@ void DAGTypeLegalizer::SplitVecRes_INSERT_SUBVECTOR(SDNode *N, SDValue &Lo,
     return;
   }
 
+  if (getTypeAction(SubVecVT) == TargetLowering::TypeWidenVector &&
+      Vec.isUndef() && SubVecVT.getVectorElementType() == MVT::i1) {
+    SDValue WideSubVec = GetWidenedVector(SubVec);
+    if (WideSubVec.getValueType() == VecVT) {
+      std::tie(Lo, Hi) = DAG.SplitVector(WideSubVec, SDLoc(WideSubVec));
----------------
mshockwave wrote:

I don't think so because the `GetSplitVector` only looks up existing, split vectors, but in this case the widen vector hasn't been split yet.

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


More information about the llvm-commits mailing list