@@ -55623,7 +55623,7 @@ static SDValue combineConcatVectorOps(const SDLoc &DL, MVT VT,
55623
55623
if (ConcatMask.size() == (NumOps * NumSrcElts)) {
55624
55624
SDValue Src = concatSubVectors(Ops[0].getOperand(1),
55625
55625
Ops[1].getOperand(1), DAG, DL);
55626
- MVT IntMaskSVT = MVT::getIntegerVT(VT.getScalarSizeInBits() );
55626
+ MVT IntMaskSVT = MVT::getIntegerVT(EltSizeInBits );
55627
55627
MVT IntMaskVT = MVT::getVectorVT(IntMaskSVT, NumOps * NumSrcElts);
55628
55628
SDValue Mask = getConstVector(ConcatMask, IntMaskVT, DAG, DL, true);
55629
55629
return DAG.getNode(X86ISD::VPERMV, DL, VT, Mask, Src);
@@ -55654,7 +55654,7 @@ static SDValue combineConcatVectorOps(const SDLoc &DL, MVT VT,
55654
55654
Ops[1].getOperand(0), DAG, DL);
55655
55655
SDValue Src1 = concatSubVectors(Ops[0].getOperand(2),
55656
55656
Ops[1].getOperand(2), DAG, DL);
55657
- MVT IntMaskSVT = MVT::getIntegerVT(VT.getScalarSizeInBits() );
55657
+ MVT IntMaskSVT = MVT::getIntegerVT(EltSizeInBits );
55658
55658
MVT IntMaskVT = MVT::getVectorVT(IntMaskSVT, NumOps * NumSrcElts);
55659
55659
SDValue Mask = getConstVector(ConcatMask, IntMaskVT, DAG, DL, true);
55660
55660
return DAG.getNode(X86ISD::VPERMV3, DL, VT, Src0, Mask, Src1);
@@ -55777,7 +55777,7 @@ static SDValue combineConcatVectorOps(const SDLoc &DL, MVT VT,
55777
55777
case ISD::VSELECT:
55778
55778
case X86ISD::BLENDV:
55779
55779
if (!IsSplat && VT.is256BitVector() && Ops.size() == 2 &&
55780
- (VT.getScalarSizeInBits() >= 32 || Subtarget.hasInt256()) &&
55780
+ (EltSizeInBits >= 32 || Subtarget.hasInt256()) &&
55781
55781
IsConcatFree(VT, Ops, 1) && IsConcatFree(VT, Ops, 2)) {
55782
55782
EVT SelVT = Ops[0].getOperand(0).getValueType();
55783
55783
SelVT = SelVT.getDoubleNumVectorElementsVT(*DAG.getContext());
0 commit comments