================ @@ -3845,9 +3845,22 @@ SDValue DAGTypeLegalizer::SplitVecOp_EXTRACT_SUBVECTOR(SDNode *N) { unsigned NumResultElts = SubVT.getVectorMinNumElements(); if (IdxVal < LoEltsMin) { - assert(IdxVal + NumResultElts <= LoEltsMin && - "Extracted subvector crosses vector split!"); - return DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, SubVT, Lo, Idx); + // If the extracted elements are all in the low half, do a simple extract. + if (IdxVal + NumResultElts <= LoEltsMin) + return DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, SubVT, Lo, Idx); + + // Extracted subvector crosses vector split, so we need to blend the two ---------------- arsenm wrote:
I wasn't sure what to do with scalable vectors. I tried to get a scalable case hit here but failed https://github.com/llvm/llvm-project/pull/154101 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits