@@ -1687,28 +1687,27 @@ HexagonTargetLowering::LowerHvxConcatVectors(SDValue Op, SelectionDAG &DAG)
16871687    //  all operations are expected to be type-legalized, and i16 is not
16881688    //  a legal type. If any of the extracted elements is not of a valid
16891689    //  type, sign-extend it to a valid one.
1690-     for  (unsigned  i = 0 , e = Elems.size (); i != e; ++i) {
1691-       SDValue V = Elems[i];
1690+     for  (SDValue &V : Elems) {
16921691      MVT Ty = ty (V);
16931692      if  (!isTypeLegal (Ty)) {
16941693        MVT NTy = typeLegalize (Ty, DAG);
16951694        if  (V.getOpcode () == ISD::EXTRACT_VECTOR_ELT) {
1696-           Elems[i]  = DAG.getNode (ISD::SIGN_EXTEND_INREG, dl, NTy,
1697-                                   DAG.getNode (ISD::EXTRACT_VECTOR_ELT, dl, NTy,
1698-                                               V.getOperand (0 ), V.getOperand (1 )),
1699-                                   DAG.getValueType (Ty));
1695+           V  = DAG.getNode (ISD::SIGN_EXTEND_INREG, dl, NTy,
1696+                           DAG.getNode (ISD::EXTRACT_VECTOR_ELT, dl, NTy,
1697+                                       V.getOperand (0 ), V.getOperand (1 )),
1698+                           DAG.getValueType (Ty));
17001699          continue ;
17011700        }
17021701        //  A few less complicated cases.
17031702        switch  (V.getOpcode ()) {
17041703          case  ISD::Constant:
1705-             Elems[i]  = DAG.getSExtOrTrunc (V, dl, NTy);
1704+             V  = DAG.getSExtOrTrunc (V, dl, NTy);
17061705            break ;
17071706          case  ISD::UNDEF:
1708-             Elems[i]  = DAG.getUNDEF (NTy);
1707+             V  = DAG.getUNDEF (NTy);
17091708            break ;
17101709          case  ISD::TRUNCATE:
1711-             Elems[i]  = V.getOperand (0 );
1710+             V  = V.getOperand (0 );
17121711            break ;
17131712          default :
17141713            llvm_unreachable (" Unexpected vector element"  );
0 commit comments