// index, but elements from the second source no longer need to skip an undef.
SmallVector<int, 8> Mask;
int NumElts = VT.getVectorNumElements();
- for (int i = 0; i < NumElts; ++i) {
- int Elt = cast<ShuffleVectorSDNode>(N)->getMaskElt(i);
- if (Elt < NumElts)
- Mask.push_back(Elt);
- else
- Mask.push_back(Elt - NumElts / 2);
- }
+
+ ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(N);
+ for (int Elt : SVOp->getMask())
+ Mask.push_back(Elt < NumElts ? Elt : (Elt - NumElts / 2));
SDLoc DL(N);
SDValue Concat = DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, N0.getOperand(0),