[llvm-branch-commits] [llvm] DAG: Handle half spanning extract_subvector in type legalization (PR #154101)
Matt Arsenault via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Aug 19 17:55:28 PDT 2025
================
@@ -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
More information about the llvm-branch-commits
mailing list