@@ -2803,8 +2803,7 @@ static SDValue convertToScalableVector(EVT VT, SDValue V, SelectionDAG &DAG,
2803
2803
assert(V.getValueType().isFixedLengthVector() &&
2804
2804
"Expected a fixed length vector operand!");
2805
2805
SDLoc DL(V);
2806
- SDValue Zero = DAG.getVectorIdxConstant(0, DL);
2807
- return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, DAG.getUNDEF(VT), V, Zero);
2806
+ return DAG.getInsertSubvector(DL, DAG.getUNDEF(VT), V, 0);
2808
2807
}
2809
2808
2810
2809
// Shrink V so it's just big enough to maintain a VT's worth of data.
@@ -3648,12 +3647,9 @@ static SDValue matchSplatAsGather(SDValue SplatVal, MVT VT, const SDLoc &DL,
3648
3647
// Put Vec in a VT sized vector
3649
3648
if (SrcContainerVT.getVectorMinNumElements() <
3650
3649
ContainerVT.getVectorMinNumElements())
3651
- Src = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, ContainerVT,
3652
- DAG.getUNDEF(ContainerVT), Src,
3653
- DAG.getVectorIdxConstant(0, DL));
3650
+ Src = DAG.getInsertSubvector(DL, DAG.getUNDEF(ContainerVT), Src, 0);
3654
3651
else
3655
- Src = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, ContainerVT, Src,
3656
- DAG.getVectorIdxConstant(0, DL));
3652
+ Src = DAG.getExtractSubvector(DL, ContainerVT, Src, 0);
3657
3653
3658
3654
// We checked that Idx fits inside VT earlier
3659
3655
auto [Mask, VL] = getDefaultVLOps(VT, ContainerVT, DL, DAG, Subtarget);
@@ -4578,17 +4574,14 @@ static SDValue lowerScalarInsert(SDValue Scalar, SDValue VL, MVT VT,
4578
4574
ExtractedVal, DAG, Subtarget);
4579
4575
}
4580
4576
if (ExtractedContainerVT.bitsLE(VT))
4581
- return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, Passthru,
4582
- ExtractedVal, DAG.getVectorIdxConstant(0, DL));
4583
- return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, ExtractedVal,
4584
- DAG.getVectorIdxConstant(0, DL));
4577
+ return DAG.getInsertSubvector(DL, Passthru, ExtractedVal, 0);
4578
+ return DAG.getExtractSubvector(DL, VT, ExtractedVal, 0);
4585
4579
}
4586
4580
}
4587
4581
4588
-
4589
4582
if (VT.isFloatingPoint())
4590
- return DAG.getNode(RISCVISD::VFMV_S_F_VL, DL, VT,
4591
- DAG.getUNDEF(VT), Scalar, VL);
4583
+ return DAG.getNode(RISCVISD::VFMV_S_F_VL, DL, VT, DAG.getUNDEF(VT), Scalar,
4584
+ VL);
4592
4585
4593
4586
// Avoid the tricky legalization cases by falling back to using the
4594
4587
// splat code which already handles it gracefully.
@@ -4787,8 +4780,7 @@ static SDValue getDeinterleaveShiftAndTrunc(const SDLoc &DL, MVT VT,
4787
4780
Res = DAG.getNode(ISD::TRUNCATE, DL, ResVT, Res);
4788
4781
MVT CastVT = ResVT.changeVectorElementType(VT.getVectorElementType());
4789
4782
Res = DAG.getBitcast(CastVT, Res);
4790
- return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, DAG.getUNDEF(VT), Res,
4791
- DAG.getVectorIdxConstant(0, DL));
4783
+ return DAG.getInsertSubvector(DL, DAG.getUNDEF(VT), Res, 0);
4792
4784
}
4793
4785
4794
4786
/// Match a single source shuffle which is an identity except that some
@@ -5248,8 +5240,7 @@ static SDValue lowerBitreverseShuffle(ShuffleVectorSDNode *SVN,
5248
5240
// to insert it into the larger vector and then shift up the reversed bits
5249
5241
// afterwards to get rid of the gap introduced.
5250
5242
if (ViaEltSize > NumElts)
5251
- V = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, ViaBitVT, DAG.getUNDEF(ViaBitVT),
5252
- V, DAG.getVectorIdxConstant(0, DL));
5243
+ V = DAG.getInsertSubvector(DL, DAG.getUNDEF(ViaBitVT), V, 0);
5253
5244
5254
5245
SDValue Res =
5255
5246
DAG.getNode(ISD::BITREVERSE, DL, ViaVT, DAG.getBitcast(ViaVT, V));
@@ -5263,8 +5254,7 @@ static SDValue lowerBitreverseShuffle(ShuffleVectorSDNode *SVN,
5263
5254
Res = DAG.getBitcast(ViaBitVT, Res);
5264
5255
5265
5256
if (ViaEltSize > NumElts)
5266
- Res = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, Res,
5267
- DAG.getVectorIdxConstant(0, DL));
5257
+ Res = DAG.getExtractSubvector(DL, VT, Res, 0);
5268
5258
return Res;
5269
5259
}
5270
5260
@@ -5784,8 +5774,7 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG,
5784
5774
return Concat;
5785
5775
5786
5776
SDValue Vec = DAG.getUNDEF(VT);
5787
- return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, Vec, Concat,
5788
- DAG.getVectorIdxConstant(0, DL));
5777
+ return DAG.getInsertSubvector(DL, Vec, Concat, 0);
5789
5778
}
5790
5779
}
5791
5780
}
@@ -5834,10 +5823,8 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG,
5834
5823
// Prefer vzip2a if available.
5835
5824
// TODO: Extend to matching zip2b if EvenSrc and OddSrc allow.
5836
5825
if (Subtarget.hasVendorXRivosVizip()) {
5837
- EvenV = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, DAG.getUNDEF(VT),
5838
- EvenV, DAG.getVectorIdxConstant(0, DL));
5839
- OddV = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, DAG.getUNDEF(VT), OddV,
5840
- DAG.getVectorIdxConstant(0, DL));
5826
+ EvenV = DAG.getInsertSubvector(DL, DAG.getUNDEF(VT), EvenV, 0);
5827
+ OddV = DAG.getInsertSubvector(DL, DAG.getUNDEF(VT), OddV, 0);
5841
5828
return lowerVZIP(RISCVISD::RI_VZIP2A_VL, EvenV, OddV, DL, DAG, Subtarget);
5842
5829
}
5843
5830
return getWideningInterleave(EvenV, OddV, DL, DAG, Subtarget);
@@ -5972,8 +5959,7 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG,
5972
5959
if (isSpreadMask(Mask, Factor, Index)) {
5973
5960
MVT NarrowVT =
5974
5961
MVT::getVectorVT(VT.getVectorElementType(), NumElts / Factor);
5975
- SDValue Src = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NarrowVT, V1,
5976
- DAG.getVectorIdxConstant(0, DL));
5962
+ SDValue Src = DAG.getExtractSubvector(DL, NarrowVT, V1, 0);
5977
5963
return getWideningSpread(Src, Factor, Index, DL, DAG);
5978
5964
}
5979
5965
}
@@ -5994,12 +5980,10 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG,
5994
5980
std::max((uint64_t)MinVLMAX, PowerOf2Ceil(MaxIdx + 1));
5995
5981
if (NewNumElts != NumElts) {
5996
5982
MVT NewVT = MVT::getVectorVT(VT.getVectorElementType(), NewNumElts);
5997
- SDValue ZeroIdx = DAG.getVectorIdxConstant(0, DL);
5998
- V1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NewVT, V1, ZeroIdx);
5983
+ V1 = DAG.getExtractSubvector(DL, NewVT, V1, 0);
5999
5984
SDValue Res = DAG.getVectorShuffle(NewVT, DL, V1, DAG.getUNDEF(NewVT),
6000
5985
Mask.take_front(NewNumElts));
6001
- return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, DAG.getUNDEF(VT), Res,
6002
- ZeroIdx);
5986
+ return DAG.getInsertSubvector(DL, DAG.getUNDEF(VT), Res, 0);
6003
5987
}
6004
5988
}
6005
5989
@@ -6151,8 +6135,7 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG,
6151
6135
DAG.getUNDEF(IndexContainerVT), LHSIndices,
6152
6136
SlideAmt, TrueMask, VL);
6153
6137
SDValue SubIndex =
6154
- DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, SubIndexVT, LHSIndices,
6155
- DAG.getVectorIdxConstant(0, DL));
6138
+ DAG.getExtractSubvector(DL, SubIndexVT, LHSIndices, 0);
6156
6139
SDValue SubVec =
6157
6140
DAG.getNode(GatherVVOpc, DL, M1VT, SubV1, SubIndex,
6158
6141
DAG.getUNDEF(M1VT), InnerTrueMask, InnerVL);
@@ -9951,8 +9934,7 @@ SDValue RISCVTargetLowering::lowerEXTRACT_VECTOR_ELT(SDValue Op,
9951
9934
if (auto SmallerVT =
9952
9935
getSmallestVTForIndex(ContainerVT, *MaxIdx, DL, DAG, Subtarget)) {
9953
9936
ContainerVT = *SmallerVT;
9954
- Vec = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, ContainerVT, Vec,
9955
- DAG.getConstant(0, DL, XLenVT));
9937
+ Vec = DAG.getExtractSubvector(DL, ContainerVT, Vec, 0);
9956
9938
}
9957
9939
}
9958
9940
@@ -10959,12 +10941,11 @@ static SDValue lowerReductionSeq(unsigned RVVOpcode, MVT ResVT,
10959
10941
// prove it is non-zero. For the AVL=0 case, we need the scalar to
10960
10942
// be the result of the reduction operation.
10961
10943
auto InnerVL = NonZeroAVL ? VL : DAG.getConstant(1, DL, XLenVT);
10962
- SDValue InitialValue = lowerScalarInsert(StartValue, InnerVL, InnerVT, DL,
10963
- DAG, Subtarget);
10944
+ SDValue InitialValue =
10945
+ lowerScalarInsert(StartValue, InnerVL, InnerVT, DL, DAG, Subtarget);
10964
10946
if (M1VT != InnerVT)
10965
10947
InitialValue =
10966
- DAG.getNode(ISD::INSERT_SUBVECTOR, DL, M1VT, DAG.getUNDEF(M1VT),
10967
- InitialValue, DAG.getVectorIdxConstant(0, DL));
10948
+ DAG.getInsertSubvector(DL, DAG.getUNDEF(M1VT), InitialValue, 0);
10968
10949
SDValue PassThru = NonZeroAVL ? DAG.getUNDEF(M1VT) : InitialValue;
10969
10950
SDValue Policy = DAG.getTargetConstant(RISCVVType::TAIL_AGNOSTIC, DL, XLenVT);
10970
10951
SDValue Ops[] = {PassThru, Vec, InitialValue, Mask, VL, Policy};
@@ -11214,9 +11195,7 @@ SDValue RISCVTargetLowering::lowerINSERT_SUBVECTOR(SDValue Op,
11214
11195
Vec = convertToScalableVector(ContainerVT, Vec, DAG, Subtarget);
11215
11196
}
11216
11197
11217
- SubVec = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, ContainerVT,
11218
- DAG.getUNDEF(ContainerVT), SubVec,
11219
- DAG.getVectorIdxConstant(0, DL));
11198
+ SubVec = DAG.getInsertSubvector(DL, DAG.getUNDEF(ContainerVT), SubVec, 0);
11220
11199
11221
11200
SDValue Mask =
11222
11201
getDefaultVLOps(VecVT, ContainerVT, DL, DAG, Subtarget).first;
@@ -11342,9 +11321,7 @@ SDValue RISCVTargetLowering::lowerINSERT_SUBVECTOR(SDValue Op,
11342
11321
DAG.getVectorIdxConstant(AlignedIdx, DL));
11343
11322
}
11344
11323
11345
- SubVec = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, InterSubVT,
11346
- DAG.getUNDEF(InterSubVT), SubVec,
11347
- DAG.getVectorIdxConstant(0, DL));
11324
+ SubVec = DAG.getInsertSubvector(DL, DAG.getUNDEF(InterSubVT), SubVec, 0);
11348
11325
11349
11326
auto [Mask, VL] = getDefaultVLOps(VecVT, ContainerVecVT, DL, DAG, Subtarget);
11350
11327
@@ -11458,8 +11435,7 @@ SDValue RISCVTargetLowering::lowerEXTRACT_SUBVECTOR(SDValue Op,
11458
11435
if (auto ShrunkVT =
11459
11436
getSmallestVTForIndex(ContainerVT, LastIdx, DL, DAG, Subtarget)) {
11460
11437
ContainerVT = *ShrunkVT;
11461
- Vec = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, ContainerVT, Vec,
11462
- DAG.getVectorIdxConstant(0, DL));
11438
+ Vec = DAG.getExtractSubvector(DL, ContainerVT, Vec, 0);
11463
11439
}
11464
11440
11465
11441
SDValue Mask =
@@ -11472,8 +11448,7 @@ SDValue RISCVTargetLowering::lowerEXTRACT_SUBVECTOR(SDValue Op,
11472
11448
getVSlidedown(DAG, Subtarget, DL, ContainerVT,
11473
11449
DAG.getUNDEF(ContainerVT), Vec, SlidedownAmt, Mask, VL);
11474
11450
// Now we can use a cast-like subvector extract to get the result.
11475
- Slidedown = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, SubVecVT, Slidedown,
11476
- DAG.getVectorIdxConstant(0, DL));
11451
+ Slidedown = DAG.getExtractSubvector(DL, SubVecVT, Slidedown, 0);
11477
11452
return DAG.getBitcast(Op.getValueType(), Slidedown);
11478
11453
}
11479
11454
@@ -11560,8 +11535,7 @@ SDValue RISCVTargetLowering::lowerEXTRACT_SUBVECTOR(SDValue Op,
11560
11535
11561
11536
// Now the vector is in the right position, extract our final subvector. This
11562
11537
// should resolve to a COPY.
11563
- Slidedown = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, SubVecVT, Slidedown,
11564
- DAG.getVectorIdxConstant(0, DL));
11538
+ Slidedown = DAG.getExtractSubvector(DL, SubVecVT, Slidedown, 0);
11565
11539
11566
11540
// We might have bitcast from a mask type: cast back to the original type if
11567
11541
// required.
@@ -11664,16 +11638,15 @@ SDValue RISCVTargetLowering::lowerVECTOR_DEINTERLEAVE(SDValue Op,
11664
11638
if (SDValue Src = foldConcatVector(V1, V2);
11665
11639
Src && getLMUL1VT(VT).bitsGT(VT)) {
11666
11640
EVT NewVT = VT.getDoubleNumVectorElementsVT();
11667
- SDValue ZeroIdx = DAG.getVectorIdxConstant(0, DL);
11668
- Src = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NewVT, Src, ZeroIdx);
11641
+ Src = DAG.getExtractSubvector(DL, NewVT, Src, 0);
11669
11642
// Freeze the source so we can increase its use count.
11670
11643
Src = DAG.getFreeze(Src);
11671
11644
SDValue Even = lowerVZIP(RISCVISD::RI_VUNZIP2A_VL, Src,
11672
11645
DAG.getUNDEF(NewVT), DL, DAG, Subtarget);
11673
11646
SDValue Odd = lowerVZIP(RISCVISD::RI_VUNZIP2B_VL, Src,
11674
11647
DAG.getUNDEF(NewVT), DL, DAG, Subtarget);
11675
- Even = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, Even, ZeroIdx );
11676
- Odd = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, Odd, ZeroIdx );
11648
+ Even = DAG.getExtractSubvector( DL, VT, Even, 0 );
11649
+ Odd = DAG.getExtractSubvector( DL, VT, Odd, 0 );
11677
11650
return DAG.getMergeValues({Even, Odd}, DL);
11678
11651
}
11679
11652
@@ -11717,13 +11690,11 @@ SDValue RISCVTargetLowering::lowerVECTOR_DEINTERLEAVE(SDValue Op,
11717
11690
11718
11691
SDValue EvenSplat = DAG.getConstant(0b01010101, DL, MVT::nxv8i8);
11719
11692
EvenSplat = DAG.getBitcast(MVT::nxv64i1, EvenSplat);
11720
- SDValue EvenMask = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, MaskVT,
11721
- EvenSplat, DAG.getVectorIdxConstant(0, DL));
11693
+ SDValue EvenMask = DAG.getExtractSubvector(DL, MaskVT, EvenSplat, 0);
11722
11694
11723
11695
SDValue OddSplat = DAG.getConstant(0b10101010, DL, MVT::nxv8i8);
11724
11696
OddSplat = DAG.getBitcast(MVT::nxv64i1, OddSplat);
11725
- SDValue OddMask = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, MaskVT, OddSplat,
11726
- DAG.getVectorIdxConstant(0, DL));
11697
+ SDValue OddMask = DAG.getExtractSubvector(DL, MaskVT, OddSplat, 0);
11727
11698
11728
11699
// vcompress the even and odd elements into two separate vectors
11729
11700
SDValue EvenWide = DAG.getNode(ISD::VECTOR_COMPRESS, DL, ConcatVT, Concat,
@@ -12103,9 +12074,7 @@ SDValue RISCVTargetLowering::lowerVECTOR_REVERSE(SDValue Op,
12103
12074
Hi = DAG.getNode(ISD::VECTOR_REVERSE, DL, HiVT, Hi);
12104
12075
// Reassemble the low and high pieces reversed.
12105
12076
// FIXME: This is a CONCAT_VECTORS.
12106
- SDValue Res =
12107
- DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VecVT, DAG.getUNDEF(VecVT), Hi,
12108
- DAG.getVectorIdxConstant(0, DL));
12077
+ SDValue Res = DAG.getInsertSubvector(DL, DAG.getUNDEF(VecVT), Hi, 0);
12109
12078
return DAG.getNode(
12110
12079
ISD::INSERT_SUBVECTOR, DL, VecVT, Res, Lo,
12111
12080
DAG.getVectorIdxConstant(LoVT.getVectorMinNumElements(), DL));
@@ -12254,8 +12223,7 @@ RISCVTargetLowering::lowerFixedLengthVectorStoreToRVV(SDValue Op,
12254
12223
if (VT.getVectorElementType() == MVT::i1 && VT.getVectorNumElements() < 8) {
12255
12224
VT = MVT::v8i1;
12256
12225
StoreVal =
12257
- DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, DAG.getConstant(0, DL, VT),
12258
- StoreVal, DAG.getVectorIdxConstant(0, DL));
12226
+ DAG.getInsertSubvector(DL, DAG.getConstant(0, DL, VT), StoreVal, 0);
12259
12227
}
12260
12228
12261
12229
MVT ContainerVT = getContainerForFixedLengthVector(VT);
@@ -14687,8 +14655,7 @@ static SDValue combineBinOpToReduce(SDNode *N, SelectionDAG &DAG,
14687
14655
// If we looked through an INSERT_SUBVECTOR we need to restore it.
14688
14656
if (ScalarVT != ScalarV.getValueType())
14689
14657
NewScalarV =
14690
- DAG.getNode(ISD::INSERT_SUBVECTOR, DL, ScalarVT, DAG.getUNDEF(ScalarVT),
14691
- NewScalarV, DAG.getVectorIdxConstant(0, DL));
14658
+ DAG.getInsertSubvector(DL, DAG.getUNDEF(ScalarVT), NewScalarV, 0);
14692
14659
14693
14660
SDValue Ops[] = {Reduce.getOperand(0), Reduce.getOperand(1),
14694
14661
NewScalarV, Reduce.getOperand(3),
@@ -19966,13 +19933,10 @@ SDValue RISCVTargetLowering::PerformDAGCombine(SDNode *N,
19966
19933
// Use M1 or smaller to avoid over constraining register allocation
19967
19934
const MVT M1VT = getLMUL1VT(VT);
19968
19935
if (M1VT.bitsLT(VT)) {
19969
- SDValue M1Passthru =
19970
- DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, M1VT, Passthru,
19971
- DAG.getVectorIdxConstant(0, DL));
19936
+ SDValue M1Passthru = DAG.getExtractSubvector(DL, M1VT, Passthru, 0);
19972
19937
SDValue Result =
19973
19938
DAG.getNode(N->getOpcode(), DL, M1VT, M1Passthru, Scalar, VL);
19974
- Result = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, Passthru, Result,
19975
- DAG.getVectorIdxConstant(0, DL));
19939
+ Result = DAG.getInsertSubvector(DL, Passthru, Result, 0);
19976
19940
return Result;
19977
19941
}
19978
19942
@@ -19991,8 +19955,7 @@ SDValue RISCVTargetLowering::PerformDAGCombine(SDNode *N,
19991
19955
MVT VecVT = N->getOperand(0).getSimpleValueType();
19992
19956
const MVT M1VT = getLMUL1VT(VecVT);
19993
19957
if (M1VT.bitsLT(VecVT)) {
19994
- Vec = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, M1VT, Vec,
19995
- DAG.getVectorIdxConstant(0, DL));
19958
+ Vec = DAG.getExtractSubvector(DL, M1VT, Vec, 0);
19996
19959
return DAG.getNode(RISCVISD::VMV_X_S, DL, N->getSimpleValueType(0), Vec);
19997
19960
}
19998
19961
break;
@@ -23631,15 +23594,11 @@ bool RISCVTargetLowering::splitValueIntoRegisterParts(
23631
23594
assert(Count != 0 && "The number of element should not be zero.");
23632
23595
EVT SameEltTypeVT =
23633
23596
EVT::getVectorVT(Context, ValueEltVT, Count, /*IsScalable=*/true);
23634
- Val = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, SameEltTypeVT,
23635
- DAG.getUNDEF(SameEltTypeVT), Val,
23636
- DAG.getVectorIdxConstant(0, DL));
23597
+ Val = DAG.getInsertSubvector(DL, DAG.getUNDEF(SameEltTypeVT), Val, 0);
23637
23598
}
23638
23599
Val = DAG.getNode(ISD::BITCAST, DL, PartVT, Val);
23639
23600
} else {
23640
- Val =
23641
- DAG.getNode(ISD::INSERT_SUBVECTOR, DL, PartVT, DAG.getUNDEF(PartVT),
23642
- Val, DAG.getVectorIdxConstant(0, DL));
23601
+ Val = DAG.getInsertSubvector(DL, DAG.getUNDEF(PartVT), Val, 0);
23643
23602
}
23644
23603
Parts[0] = Val;
23645
23604
return true;
@@ -23708,8 +23667,7 @@ SDValue RISCVTargetLowering::joinRegisterPartsIntoValue(
23708
23667
EVT::getVectorVT(Context, ValueEltVT, Count, /*IsScalable=*/true);
23709
23668
Val = DAG.getNode(ISD::BITCAST, DL, SameEltTypeVT, Val);
23710
23669
}
23711
- Val = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, ValueVT, Val,
23712
- DAG.getVectorIdxConstant(0, DL));
23670
+ Val = DAG.getExtractSubvector(DL, ValueVT, Val, 0);
23713
23671
return Val;
23714
23672
}
23715
23673
}
0 commit comments