@@ -46202,21 +46202,14 @@ static SDValue combineToExtendBoolVectorInReg(
4620246202 // widened bits won't be used, and this might allow the use of a broadcast
4620346203 // load.
4620446204 assert((EltSizeInBits % NumElts) == 0 && "Unexpected integer scale");
46205- unsigned Scale = EltSizeInBits / NumElts;
46206- EVT BroadcastVT =
46207- EVT::getVectorVT(*DAG.getContext(), SclVT, NumElts * Scale);
46208- Vec = DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, BroadcastVT, N00);
46209- ShuffleMask.append(NumElts * Scale, 0);
46210- Vec = DAG.getVectorShuffle(BroadcastVT, DL, Vec, Vec, ShuffleMask);
46211- Vec = DAG.getBitcast(VT, Vec);
46205+ EVT BroadcastVT = EVT::getVectorVT(*DAG.getContext(), SclVT,
46206+ (NumElts * EltSizeInBits) / NumElts);
46207+ Vec = DAG.getBitcast(VT, DAG.getSplat(BroadcastVT, DL, N00));
4621246208 } else {
4621346209 // For smaller scalar integers, we can simply any-extend it to the vector
4621446210 // element size (we don't care about the upper bits) and broadcast it to all
4621546211 // elements.
46216- SDValue Scl = DAG.getAnyExtOrTrunc(N00, DL, SVT);
46217- Vec = DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, VT, Scl);
46218- ShuffleMask.append(NumElts, 0);
46219- Vec = DAG.getVectorShuffle(VT, DL, Vec, Vec, ShuffleMask);
46212+ Vec = DAG.getSplat(VT, DL, DAG.getAnyExtOrTrunc(N00, DL, SVT));
4622046213 }
4622146214
4622246215 // Now, mask the relevant bit in each element.
0 commit comments