reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
   49   LLVM_DEBUG(dbgs() << "Soften float result " << ResNo << ": "; N->dump(&DAG);
   57     N->dump(&DAG); dbgs() << "\n";
  127   return DAG.getNode(ISD::BUILD_PAIR, SDLoc(N),
  128                      TLI.getTypeToTransformTo(*DAG.getContext(),
  143   if (DAG.getDataLayout().isBigEndian() &&
  148     return DAG.getConstant(Val, SDLoc(CN),
  149                            TLI.getTypeToTransformTo(*DAG.getContext(),
  152     return DAG.getConstant(CN->getValueAPF().bitcastToAPInt(), SDLoc(CN),
  153                            TLI.getTypeToTransformTo(*DAG.getContext(),
  160   return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SDLoc(N),
  166   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  172   SDValue Mask = DAG.getConstant(API, SDLoc(N), NVT);
  174   return DAG.getNode(ISD::AND, SDLoc(N), NVT, Op, Mask);
  178   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  185   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  195   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  202   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  212   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  219   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  229   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  234   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  244   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  249   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  270   SDValue SignBit = DAG.getNode(
  271       ISD::SHL, dl, RVT, DAG.getConstant(1, dl, RVT),
  272       DAG.getConstant(RSize - 1, dl,
  273                       TLI.getShiftAmountTy(RVT, DAG.getDataLayout())));
  274   SignBit = DAG.getNode(ISD::AND, dl, RVT, RHS, SignBit);
  280         DAG.getNode(ISD::SRL, dl, RVT, SignBit,
  281                     DAG.getConstant(SizeDiff, dl,
  283                                                          DAG.getDataLayout())));
  284     SignBit = DAG.getNode(ISD::TRUNCATE, dl, LVT, SignBit);
  286     SignBit = DAG.getNode(ISD::ANY_EXTEND, dl, LVT, SignBit);
  288         DAG.getNode(ISD::SHL, dl, LVT, SignBit,
  289                     DAG.getConstant(-SizeDiff, dl,
  291                                                          DAG.getDataLayout())));
  295   SDValue Mask = DAG.getNode(
  296       ISD::SHL, dl, LVT, DAG.getConstant(1, dl, LVT),
  297       DAG.getConstant(LSize - 1, dl,
  298                       TLI.getShiftAmountTy(LVT, DAG.getDataLayout())));
  299   Mask = DAG.getNode(ISD::SUB, dl, LVT, Mask, DAG.getConstant(1, dl, LVT));
  299   Mask = DAG.getNode(ISD::SUB, dl, LVT, Mask, DAG.getConstant(1, dl, LVT));
  300   LHS = DAG.getNode(ISD::AND, dl, LVT, LHS, Mask);
  303   return DAG.getNode(ISD::OR, dl, LVT, LHS, SignBit);
  307   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  312   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  322   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  329   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  339   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  344   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  354   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  359   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  369   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  374   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  384   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  389   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  399   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  404   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  414   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  419   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  429   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  438   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  448   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  455   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  465   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  470   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  480   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  487     return DAG.getNode(ISD::XOR, dl, NVT, GetSoftenedFloat(N->getOperand(0)),
  488                        DAG.getConstant(SignMask, dl, NVT));
  492   SDValue Ops[2] = { DAG.getConstantFP(-0.0, dl, N->getValueType(0)),
  495   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  505   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  512     Op = DAG.getNode(ISD::FP_EXTEND, SDLoc(N), MVT::f32, Op);
  531   return TLI.makeLibCall(DAG, LC, NVT, Op, CallOptions, SDLoc(N)).first;
  537   EVT MidVT = TLI.getTypeToTransformTo(*DAG.getContext(), MVT::f32);
  542   SDValue Res32 = TLI.makeLibCall(DAG, RTLIB::FPEXT_F16_F32, MidVT, Op,
  547   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  550   return TLI.makeLibCall(DAG, LC, NVT, Res32, CallOptions, SDLoc(N)).first;
  554   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  559     return DAG.getNode(ISD::FP_TO_FP16, SDLoc(N), NVT, Op);
  567   return TLI.makeLibCall(DAG, LC, NVT, Op, CallOptions, SDLoc(N)).first;
  571   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  578   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  590   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  596   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  606   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  613   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  623   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  628   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  638   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  643   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  653   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  658   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  668   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  673   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  683   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  690   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  700   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  702     return DAG.getNode(ISD::FP_TO_FP16, SDLoc(N), NVT, N->getOperand(0));
  708   return TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
  720   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
  728     NewL = DAG.getLoad(L->getAddressingMode(), L->getExtensionType(), NVT, dl,
  740   NewL = DAG.getLoad(L->getAddressingMode(), ISD::NON_EXTLOAD, L->getMemoryVT(),
  747   auto ExtendNode = DAG.getNode(ISD::FP_EXTEND, dl, VT, NewL);
  754   return DAG.getSelect(SDLoc(N),
  761   return DAG.getNode(ISD::SELECT_CC, SDLoc(N),
  767   return DAG.getUNDEF(TLI.getTypeToTransformTo(*DAG.getContext(),
  767   return DAG.getUNDEF(TLI.getTypeToTransformTo(*DAG.getContext(),
  775   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
  779   NewVAARG = DAG.getVAArg(NVT, dl, Chain, Ptr, N->getOperand(2),
  810   SDValue Op = DAG.getNode(Signed ? ISD::SIGN_EXTEND : ISD::ZERO_EXTEND, dl,
  816   return TLI.makeLibCall(DAG, LC,
  817                          TLI.getTypeToTransformTo(*DAG.getContext(), RVT),
  827   LLVM_DEBUG(dbgs() << "Soften float operand " << OpNo << ": "; N->dump(&DAG);
  835     N->dump(&DAG); dbgs() << "\n";
  873   return DAG.getNode(ISD::BITCAST, SDLoc(N), N->getValueType(0), Op0);
  883     return DAG.getNode(ISD::FP16_TO_FP, SDLoc(N), RVT, Op);
  891   return TLI.makeLibCall(DAG, LC, RVT, Op, CallOptions, SDLoc(N)).first;
  911   return TLI.makeLibCall(DAG, LC, RVT, Op, CallOptions, SDLoc(N)).first;
  921   TLI.softenSetCCOperands(DAG, VT, NewLHS, NewRHS, CCCode, SDLoc(N),
  927     NewRHS = DAG.getConstant(0, SDLoc(N), NewLHS.getValueType());
  932   return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0),
  933                                 DAG.getCondCode(CCCode), NewLHS, NewRHS,
  964   SDValue Res = TLI.makeLibCall(DAG, LC, NVT, Op, CallOptions, dl).first;
  967   return DAG.getNode(ISD::TRUNCATE, dl, RVT, Res);
  977   TLI.softenSetCCOperands(DAG, VT, NewLHS, NewRHS, CCCode, SDLoc(N),
  983     NewRHS = DAG.getConstant(0, SDLoc(N), NewLHS.getValueType());
  988   return SDValue(DAG.UpdateNodeOperands(N, NewLHS, NewRHS,
  990                                 DAG.getCondCode(CCCode)),
 1001   TLI.softenSetCCOperands(DAG, VT, NewLHS, NewRHS, CCCode, SDLoc(N),
 1012   return SDValue(DAG.UpdateNodeOperands(N, NewLHS, NewRHS,
 1013                                 DAG.getCondCode(CCCode)),
 1026     Val = BitConvertToInteger(DAG.getNode(ISD::FP_ROUND, dl, ST->getMemoryVT(),
 1027                                           Val, DAG.getIntPtrConstant(0, dl)));
 1031   return DAG.getStore(ST->getChain(), dl, Val, ST->getBasePtr(),
 1036   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 1043   return TLI.makeLibCall(DAG, GetFPLibCall(RetVT,
 1053   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 1060   return TLI.makeLibCall(DAG, GetFPLibCall(RetVT,
 1070   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 1077   return TLI.makeLibCall(DAG, GetFPLibCall(RetVT,
 1087   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 1094   return TLI.makeLibCall(DAG, GetFPLibCall(RetVT,
 1112   LLVM_DEBUG(dbgs() << "Expand float result: "; N->dump(&DAG); dbgs() << "\n");
 1124     N->dump(&DAG); dbgs() << "\n";
 1181   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 1186   Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT),
 1186   Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT),
 1189   Hi = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT),
 1189   Hi = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT),
 1201   Hi = DAG.getNode(ISD::FABS, dl, Tmp.getValueType(), Tmp);
 1203   Lo = DAG.getSelectCC(dl, Tmp, Hi, Lo,
 1204                    DAG.getNode(ISD::FNEG, dl, Lo.getValueType(), Lo),
 1283   SDValue Call = TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
 1358   SDValue Call = TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
 1373   SDValue Call = TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
 1400   Lo = DAG.getNode(ISD::FNEG, dl, Lo.getValueType(), Lo);
 1401   Hi = DAG.getNode(ISD::FNEG, dl, Hi.getValueType(), Hi);
 1406   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 1408   Hi = DAG.getNode(ISD::FP_EXTEND, dl, NVT, N->getOperand(0));
 1409   Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT),
 1409   Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT),
 1489   SDValue Call = TLI.makeLibCall(DAG, GetFPLibCall(N->getValueType(0),
 1523   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), LD->getValueType(0));
 1527   Hi = DAG.getExtLoad(LD->getExtensionType(), dl, NVT, Chain, Ptr,
 1534   Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT),
 1534   Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT),
 1546   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 1557     Src = DAG.getNode(isSigned ? ISD::SIGN_EXTEND : ISD::ZERO_EXTEND, dl,
 1559     Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT),
 1559     Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT),
 1561     Hi = DAG.getNode(ISD::SINT_TO_FP, dl, NVT, Src);
 1565       Src = DAG.getNode(isSigned ? ISD::SIGN_EXTEND : ISD::ZERO_EXTEND, dl,
 1569       Src = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i128, Src);
 1576     Hi = TLI.makeLibCall(DAG, LC, VT, Src, CallOptions, dl).first;
 1584   Hi = DAG.getNode(ISD::BUILD_PAIR, dl, VT, Lo, Hi);
 1608   Lo = DAG.getNode(ISD::FADD, dl, VT, Hi,
 1609                    DAG.getConstantFP(APFloat(APFloat::PPCDoubleDouble(),
 1612   Lo = DAG.getSelectCC(dl, Src, DAG.getConstant(0, dl, SrcVT),
 1612   Lo = DAG.getSelectCC(dl, Src, DAG.getConstant(0, dl, SrcVT),
 1627   LLVM_DEBUG(dbgs() << "Expand float operand: "; N->dump(&DAG); dbgs() << "\n");
 1638     N->dump(&DAG); dbgs() << "\n";
 1694   Tmp1 = DAG.getSetCC(dl, getSetCCResultType(LHSHi.getValueType()),
 1696   Tmp2 = DAG.getSetCC(dl, getSetCCResultType(LHSLo.getValueType()),
 1698   Tmp3 = DAG.getNode(ISD::AND, dl, Tmp1.getValueType(), Tmp1, Tmp2);
 1699   Tmp1 = DAG.getSetCC(dl, getSetCCResultType(LHSHi.getValueType()),
 1701   Tmp2 = DAG.getSetCC(dl, getSetCCResultType(LHSHi.getValueType()),
 1703   Tmp1 = DAG.getNode(ISD::AND, dl, Tmp1.getValueType(), Tmp1, Tmp2);
 1704   NewLHS = DAG.getNode(ISD::OR, dl, Tmp1.getValueType(), Tmp1, Tmp3);
 1716     NewRHS = DAG.getConstant(0, SDLoc(N), NewLHS.getValueType());
 1721   return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0),
 1722                                 DAG.getCondCode(CCCode), NewLHS, NewRHS,
 1733   return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N),
 1743   return DAG.getNode(ISD::FP_ROUND, SDLoc(N),
 1754   return TLI.makeLibCall(DAG, LC, RVT, N->getOperand(0), CallOptions, dl).first;
 1764   return TLI.makeLibCall(DAG, LC, N->getValueType(0), N->getOperand(0),
 1776     NewRHS = DAG.getConstant(0, SDLoc(N), NewLHS.getValueType());
 1781   return SDValue(DAG.UpdateNodeOperands(N, NewLHS, NewRHS,
 1783                                 DAG.getCondCode(CCCode)), 0);
 1799   return SDValue(DAG.UpdateNodeOperands(N, NewLHS, NewRHS,
 1800                                 DAG.getCondCode(CCCode)), 0);
 1814   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(),
 1823   return DAG.getTruncStore(Chain, SDLoc(N), Hi, Ptr,
 1831   return TLI.makeLibCall(DAG, GetFPLibCall(RetVT,
 1844   return TLI.makeLibCall(DAG, GetFPLibCall(RetVT,
 1857   return TLI.makeLibCall(DAG, GetFPLibCall(RetVT,
 1870   return TLI.makeLibCall(DAG, GetFPLibCall(RetVT,
 1895   LLVM_DEBUG(dbgs() << "Promote float operand " << OpNo << ": "; N->dump(&DAG);
 1913       N->dump(&DAG); dbgs() << "\n";
 1940   EVT IVT = EVT::getIntegerVT(*DAG.getContext(), OpVT.getSizeInBits());
 1941   SDValue Convert = DAG.getNode(GetPromotionOpcode(PromotedVT, OpVT), SDLoc(N),
 1945   return DAG.getBitcast(N->getValueType(0), Convert);
 1954   return DAG.getNode(N->getOpcode(), SDLoc(N), N->getValueType(0),
 1961   return DAG.getNode(N->getOpcode(), SDLoc(N), N->getValueType(0), Op);
 1973   return DAG.getNode(ISD::FP_EXTEND, SDLoc(N), VT, Op);
 1983   return DAG.getNode(ISD::SELECT_CC, SDLoc(N), N->getValueType(0),
 1992   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 1997   return DAG.getSetCC(SDLoc(N), NVT, Op0, Op1, CCCode);
 2010   EVT IVT = EVT::getIntegerVT(*DAG.getContext(), VT.getSizeInBits());
 2013   NewVal = DAG.getNode(GetPromotionOpcode(Promoted.getValueType(), VT), DL,
 2016   return DAG.getStore(ST->getChain(), DL, NewVal, ST->getBasePtr(),
 2025   LLVM_DEBUG(dbgs() << "Promote float result " << ResNo << ": "; N->dump(&DAG);
 2043       N->dump(&DAG); dbgs() << "\n";
 2112   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2115   EVT IVT = EVT::getIntegerVT(*DAG.getContext(),
 2117   SDValue Cast = DAG.getBitcast(IVT, N->getOperand(0));
 2118   return DAG.getNode(GetPromotionOpcode(VT, NVT), SDLoc(N), NVT, Cast);
 2127   EVT IVT = EVT::getIntegerVT(*DAG.getContext(), VT.getSizeInBits());
 2128   SDValue C = DAG.getConstant(CFPNode->getValueAPF().bitcastToAPInt(), DL,
 2134   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2135   return DAG.getNode(GetPromotionOpcode(VT, NVT), DL, NVT, C);
 2164       SDValue Res = DAG.getNode(N->getOpcode(), DL, EltVT, Vec, Idx);
 2175         Res = DAG.getNode(N->getOpcode(), DL, EltVT, Lo, Idx);
 2177         Res = DAG.getNode(N->getOpcode(), DL, EltVT, Hi,
 2178                           DAG.getConstant(IdxVal - LoElts, DL,
 2192   SDValue NewVal = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, IVT,
 2197   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2198   return DAG.getNode(GetPromotionOpcode(VT, NVT), SDLoc(N), NVT, NewVal);
 2206   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2211   return DAG.getNode(N->getOpcode(), SDLoc(N), NVT, Op0, Op1);
 2219   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2222   return DAG.getNode(N->getOpcode(), SDLoc(N), NVT, Op);
 2230   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2233   return DAG.getNode(N->getOpcode(), SDLoc(N), NVT, Op0, Op1, N->getFlags());
 2238   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2243   return DAG.getNode(N->getOpcode(), SDLoc(N), NVT, Op0, Op1, Op2);
 2249   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2253   return DAG.getNode(N->getOpcode(), SDLoc(N), NVT, Op0, Op1);
 2264   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 2265   EVT IVT = EVT::getIntegerVT(*DAG.getContext(), VT.getSizeInBits());
 2268   SDValue Round = DAG.getNode(GetPromotionOpcode(OpVT, VT), DL, IVT, Op);
 2270   return DAG.getNode(GetPromotionOpcode(VT, NVT), DL, NVT, Round);
 2278   EVT IVT = EVT::getIntegerVT(*DAG.getContext(), VT.getSizeInBits());
 2279   SDValue newL = DAG.getLoad(L->getAddressingMode(), L->getExtensionType(), IVT,
 2290   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2291   return DAG.getNode(GetPromotionOpcode(VT, NVT), SDLoc(N), NVT, newL);
 2299   return DAG.getNode(ISD::SELECT, SDLoc(N), TrueVal->getValueType(0),
 2309   return DAG.getNode(ISD::SELECT_CC, SDLoc(N),
 2319   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2320   SDValue NV = DAG.getNode(N->getOpcode(), DL, NVT, N->getOperand(0));
 2322   return DAG.getNode(
 2324       DAG.getNode(ISD::FP_ROUND, DL, VT, NV, DAG.getIntPtrConstant(0, DL)));
 2324       DAG.getNode(ISD::FP_ROUND, DL, VT, NV, DAG.getIntPtrConstant(0, DL)));
 2328   return DAG.getUNDEF(TLI.getTypeToTransformTo(*DAG.getContext(),
 2328   return DAG.getUNDEF(TLI.getTypeToTransformTo(*DAG.getContext(),
 2334   EVT NFPVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2343     = DAG.getAtomic(ISD::ATOMIC_SWAP, SL, CastVT,
 2344                     DAG.getVTList(CastVT, MVT::Other),
 2348   SDValue ResultCast = DAG.getNode(GetPromotionOpcode(VT, NFPVT), SL, NFPVT,
lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
   38   LLVM_DEBUG(dbgs() << "Promote integer result: "; N->dump(&DAG);
   52     N->dump(&DAG); dbgs() << "\n";
  212   return DAG.getNode(ISD::AssertSext, SDLoc(N),
  219   return DAG.getNode(ISD::AssertZext, SDLoc(N),
  224   EVT ResVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  225   SDValue Res = DAG.getAtomic(N->getOpcode(), SDLoc(N),
  237   SDValue Res = DAG.getAtomic(N->getOpcode(), SDLoc(N),
  252     EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(1));
  259     SDVTList VTs = DAG.getVTList(N->getValueType(0), SVT, MVT::Other);
  260     SDValue Res = DAG.getAtomicCmpSwap(
  272       DAG.getVTList(Op2.getValueType(), N->getValueType(1), MVT::Other);
  273   SDValue Res = DAG.getAtomicCmpSwap(
  285   EVT NInVT = TLI.getTypeToTransformTo(*DAG.getContext(), InVT);
  287   EVT NOutVT = TLI.getTypeToTransformTo(*DAG.getContext(), OutVT);
  296       return DAG.getNode(ISD::BITCAST, dl, NOutVT, GetPromotedInteger(InOp));
  300     return DAG.getNode(ISD::ANY_EXTEND, dl, NOutVT, GetSoftenedFloat(InOp));
  304       return DAG.getNode(ISD::FP_TO_FP16, dl, NOutVT, GetPromotedFloat(InOp));
  313       return DAG.getNode(ISD::ANY_EXTEND, dl, NOutVT,
  325       if (DAG.getDataLayout().isBigEndian())
  328       InOp = DAG.getNode(ISD::ANY_EXTEND, dl,
  329                          EVT::getIntegerVT(*DAG.getContext(),
  332       return DAG.getNode(ISD::BITCAST, dl, NOutVT, InOp);
  341       return DAG.getNode(ISD::BITCAST, dl, NOutVT, GetWidenedVector(InOp));
  350         EVT WideOutVT = EVT::getVectorVT(*DAG.getContext(),
  354           InOp = DAG.getBitcast(WideOutVT, GetWidenedVector(InOp));
  355           MVT IdxTy = TLI.getVectorIdxTy(DAG.getDataLayout());
  356           InOp = DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, OutVT, InOp,
  357                              DAG.getConstant(0, dl, IdxTy));
  358           return DAG.getNode(ISD::ANY_EXTEND, dl, NOutVT, InOp);
  364   return DAG.getNode(ISD::ANY_EXTEND, dl, NOutVT,
  388   EVT ShiftVT = getShiftAmountTyForConstant(NVT, TLI, DAG);
  389   return DAG.getNode(ISD::SRL, dl, NVT, DAG.getNode(ISD::BSWAP, dl, NVT, Op),
  389   return DAG.getNode(ISD::SRL, dl, NVT, DAG.getNode(ISD::BSWAP, dl, NVT, Op),
  390                      DAG.getConstant(DiffBits, dl, ShiftVT));
  400   EVT ShiftVT = getShiftAmountTyForConstant(NVT, TLI, DAG);
  401   return DAG.getNode(ISD::SRL, dl, NVT,
  402                      DAG.getNode(ISD::BITREVERSE, dl, NVT, Op),
  403                      DAG.getConstant(DiffBits, dl, ShiftVT));
  409   return DAG.getNode(ISD::ANY_EXTEND, SDLoc(N),
  410                      TLI.getTypeToTransformTo(*DAG.getContext(),
  422   SDValue Result = DAG.getNode(Opc, dl,
  423                                TLI.getTypeToTransformTo(*DAG.getContext(), VT),
  435   Op = DAG.getNode(N->getOpcode(), dl, NVT, Op);
  437   return DAG.getNode(
  439       DAG.getConstant(NVT.getScalarSizeInBits() - OVT.getScalarSizeInBits(), dl,
  446   return DAG.getNode(ISD::CTPOP, SDLoc(N), Op.getValueType(), Op);
  460     Op = DAG.getNode(ISD::OR, dl, NVT, Op, DAG.getConstant(TopBit, dl, NVT));
  460     Op = DAG.getNode(ISD::OR, dl, NVT, Op, DAG.getConstant(TopBit, dl, NVT));
  462   return DAG.getNode(N->getOpcode(), dl, NVT, Op);
  467   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  474   if (TLI.getTypeAction(*DAG.getContext(), Op0.getValueType())
  482       SDValue Ext = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, SVT, In, Op1);
  483       return DAG.getAnyExtOrTrunc(Ext, dl, NVT);
  487   return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, NVT, Op0, Op1);
  491   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  511     Res = DAG.getNode(NewOpc, dl, { NVT, MVT::Other }, 
  517     Res = DAG.getNode(NewOpc, dl, NVT, N->getOperand(0));
  526   return DAG.getNode((N->getOpcode() == ISD::FP_TO_UINT ||
  529                      DAG.getValueType(N->getValueType(0).getScalarType()));
  533   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  536   return DAG.getNode(N->getOpcode(), dl, NVT, N->getOperand(0));
  540   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  543   return DAG.getNode(N->getOpcode(), dl, NVT);
  547   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  560         return DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, NVT, Res,
  561                            DAG.getValueType(N->getOperand(0).getValueType()));
  563         return DAG.getZeroExtendInReg(Res, dl,
  571   return DAG.getNode(N->getOpcode(), dl, NVT, N->getOperand(0));
  576   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  580   SDValue Res = DAG.getExtLoad(ExtType, dl, NVT, N->getChain(), N->getBasePtr(),
  590   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  594   SDValue Res = DAG.getMaskedLoad(NVT, dl, N->getChain(), N->getBasePtr(),
  604   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  612   SDValue Res = DAG.getMaskedGather(DAG.getVTList(NVT, MVT::Other),
  612   SDValue Res = DAG.getMaskedGather(DAG.getVTList(NVT, MVT::Other),
  625   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(1));
  635   SDValue Res = DAG.getNode(N->getOpcode(), dl, DAG.getVTList(VT, SVT),
  635   SDValue Res = DAG.getNode(N->getOpcode(), dl, DAG.getVTList(VT, SVT),
  643   return DAG.getBoolExtOrTrunc(Res.getValue(1), dl, NVT, VT);
  689     EVT SHVT = TLI.getShiftAmountTy(PromotedType, DAG.getDataLayout());
  690     SDValue ShiftAmount = DAG.getConstant(SHLAmount, dl, SHVT);
  692         DAG.getNode(ISD::SHL, dl, PromotedType, Op1Promoted, ShiftAmount);
  694         DAG.getNode(ISD::SHL, dl, PromotedType, Op2Promoted, ShiftAmount);
  697         DAG.getNode(Opcode, dl, PromotedType, Op1Promoted, Op2Promoted);
  698     return DAG.getNode(ShiftOp, dl, PromotedType, Result, ShiftAmount);
  702           DAG.getNode(ISD::UMAX, dl, PromotedType, Op1Promoted, Op2Promoted);
  703       return DAG.getNode(ISD::SUB, dl, PromotedType, Max, Op2Promoted);
  708       SDValue SatMax = DAG.getConstant(MaxVal, dl, PromotedType);
  710           DAG.getNode(ISD::ADD, dl, PromotedType, Op1Promoted, Op2Promoted);
  711       return DAG.getNode(ISD::UMIN, dl, PromotedType, Add, SatMax);
  717     SDValue SatMin = DAG.getConstant(MinVal, dl, PromotedType);
  718     SDValue SatMax = DAG.getConstant(MaxVal, dl, PromotedType);
  720         DAG.getNode(AddOp, dl, PromotedType, Op1Promoted, Op2Promoted);
  721     Result = DAG.getNode(ISD::SMIN, dl, PromotedType, Result, SatMax);
  722     Result = DAG.getNode(ISD::SMAX, dl, PromotedType, Result, SatMin);
  752     EVT ShiftTy = TLI.getShiftAmountTy(PromotedType, DAG.getDataLayout());
  753     Op1Promoted = DAG.getNode(ISD::SHL, dl, PromotedType, Op1Promoted,
  754                               DAG.getConstant(DiffSize, dl, ShiftTy));
  755     SDValue Result = DAG.getNode(N->getOpcode(), dl, PromotedType, Op1Promoted,
  758     return DAG.getNode(ShiftOp, dl, PromotedType, Result,
  759                        DAG.getConstant(DiffSize, dl, ShiftTy));
  761   return DAG.getNode(N->getOpcode(), dl, PromotedType, Op1Promoted, Op2Promoted,
  779   SDValue Res = DAG.getNode(Opcode, dl, NVT, LHS, RHS);
  783   SDValue Ofl = DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, NVT, Res,
  784                             DAG.getValueType(OVT));
  786   Ofl = DAG.getSetCC(dl, N->getValueType(1), Ofl, Res, ISD::SETNE);
  797   return DAG.getSelect(SDLoc(N),
  806   return DAG.getNode(ISD::VSELECT, SDLoc(N),
  813   return DAG.getNode(ISD::SELECT_CC, SDLoc(N),
  820   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  829       InVT = TLI.getTypeToTransformTo(*DAG.getContext(), InVT);
  842   SDValue SetCC = DAG.getNode(N->getOpcode(), dl, SVT, N->getOperand(0),
  846   return DAG.getSExtOrTrunc(SetCC, dl, NVT);
  854   return DAG.getNode(ISD::SHL, SDLoc(N), LHS.getValueType(), LHS, RHS);
  859   return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N),
  869   return DAG.getNode(N->getOpcode(), SDLoc(N),
  877   return DAG.getNode(N->getOpcode(), SDLoc(N),
  885   return DAG.getNode(N->getOpcode(), SDLoc(N),
  895   return DAG.getNode(ISD::SRA, SDLoc(N), LHS.getValueType(), LHS, RHS);
  904   return DAG.getNode(ISD::SRL, SDLoc(N), LHS.getValueType(), LHS, RHS);
  908   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
  934     EVT HalfNVT = EVT::getVectorVT(*DAG.getContext(), NVT.getScalarType(),
  936     EOp1 = DAG.getNode(ISD::TRUNCATE, dl, HalfNVT, EOp1);
  937     EOp2 = DAG.getNode(ISD::TRUNCATE, dl, HalfNVT, EOp2);
  939     return DAG.getNode(ISD::CONCAT_VECTORS, dl, NVT, EOp1, EOp2);
  946     EVT TruncVT = EVT::getVectorVT(*DAG.getContext(),
  948     SDValue WideTrunc = DAG.getNode(ISD::TRUNCATE, dl, TruncVT, WideInOp);
  951     EVT ExtVT = EVT::getVectorVT(*DAG.getContext(), NVT.getVectorElementType(),
  953     SDValue WideExt = DAG.getNode(ISD::ZERO_EXTEND, dl, ExtVT, WideTrunc);
  956     MVT IdxTy = TLI.getVectorIdxTy(DAG.getDataLayout());
  957     SDValue ZeroIdx = DAG.getConstant(0, dl, IdxTy);
  958     return DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, NVT, WideExt, ZeroIdx);
  963   return DAG.getNode(ISD::TRUNCATE, dl, NVT, Res);
  980   SDValue Res = DAG.getNode(Opcode, dl, NVT, LHS, RHS);
  984   SDValue Ofl = DAG.getZeroExtendInReg(Res, dl, OVT.getScalarType());
  986   Ofl = DAG.getSetCC(dl, N->getValueType(1), Ofl, Res, ISD::SETNE);
 1017   SDValue Res = DAG.getNode(N->getOpcode(), SDLoc(N), DAG.getVTList(ValueVTs),
 1017   SDValue Res = DAG.getNode(N->getOpcode(), SDLoc(N), DAG.getVTList(ValueVTs),
 1028   return DAG.getNode(ISD::ABS, SDLoc(N), Op0.getValueType(), Op0);
 1051   SDVTList VTs = DAG.getVTList(LHS.getValueType(), N->getValueType(1));
 1052   SDValue Mul = DAG.getNode(N->getOpcode(), DL, VTs, LHS, RHS);
 1061     EVT ShiftTy = getShiftAmountTyForConstant(Mul.getValueType(), TLI, DAG);
 1062     SDValue Hi = DAG.getNode(ISD::SRL, DL, Mul.getValueType(), Mul,
 1063                              DAG.getConstant(Shift, DL, ShiftTy));
 1064     Overflow = DAG.getSetCC(DL, N->getValueType(1), Hi,
 1065                             DAG.getConstant(0, DL, Hi.getValueType()),
 1069     SDValue SExt = DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, Mul.getValueType(),
 1070                                Mul, DAG.getValueType(SmallVT));
 1071     Overflow = DAG.getSetCC(DL, N->getValueType(1), SExt, Mul, ISD::SETNE);
 1076   Overflow = DAG.getNode(ISD::OR, DL, N->getValueType(1), Overflow,
 1085   return DAG.getUNDEF(TLI.getTypeToTransformTo(*DAG.getContext(),
 1085   return DAG.getUNDEF(TLI.getTypeToTransformTo(*DAG.getContext(),
 1095   MVT RegVT = TLI.getRegisterType(*DAG.getContext(), VT);
 1096   unsigned NumRegs = TLI.getNumRegisters(*DAG.getContext(), VT);
 1101     Parts[i] = DAG.getVAArg(RegVT, dl, Chain, Ptr, N->getOperand(2),
 1107   if (DAG.getDataLayout().isBigEndian())
 1111   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 1112   SDValue Res = DAG.getNode(ISD::ZERO_EXTEND, dl, NVT, Parts[0]);
 1114     SDValue Part = DAG.getNode(ISD::ZERO_EXTEND, dl, NVT, Parts[i]);
 1116     Part = DAG.getNode(ISD::SHL, dl, NVT, Part,
 1117                        DAG.getConstant(i * RegVT.getSizeInBits(), dl,
 1118                                        TLI.getPointerTy(DAG.getDataLayout())));
 1119     Res = DAG.getNode(ISD::OR, dl, NVT, Res, Part);
 1138   LLVM_DEBUG(dbgs() << "Promote integer operand: "; N->dump(&DAG);
 1151     N->dump(&DAG); dbgs() << "\n";
 1261         OpL.getScalarValueSizeInBits() - DAG.ComputeNumSignBits(OpL) + 1;
 1263         OpR.getScalarValueSizeInBits() - DAG.ComputeNumSignBits(OpR) + 1;
 1293   return DAG.getNode(ISD::ANY_EXTEND, SDLoc(N), N->getValueType(0), Op);
 1298   return DAG.getAtomic(N->getOpcode(), SDLoc(N), N->getMemoryVT(),
 1317   return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0),
 1329   return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0), Cond,
 1341   Hi = DAG.getNode(ISD::SHL, dl, N->getValueType(0), Hi,
 1342                    DAG.getConstant(OVT.getSizeInBits(), dl,
 1343                                    TLI.getPointerTy(DAG.getDataLayout())));
 1344   return DAG.getNode(ISD::OR, dl, N->getValueType(0), Lo, Hi);
 1367   return SDValue(DAG.UpdateNodeOperands(N, NewOps), 0);
 1380     return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0),
 1389   SDValue Idx = DAG.getZExtOrTrunc(N->getOperand(2), SDLoc(N),
 1390                                    TLI.getVectorIdxTy(DAG.getDataLayout()));
 1391   return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0),
 1398   return SDValue(DAG.UpdateNodeOperands(N,
 1406       DAG.UpdateNodeOperands(N, GetPromotedInteger(N->getOperand(0))), 0);
 1422   return SDValue(DAG.UpdateNodeOperands(N, Cond, N->getOperand(1),
 1434   return SDValue(DAG.UpdateNodeOperands(N, LHS, RHS, N->getOperand(2),
 1446   return SDValue(DAG.UpdateNodeOperands(N, LHS, RHS, N->getOperand(2)), 0);
 1450   return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0),
 1457   Op = DAG.getNode(ISD::ANY_EXTEND, dl, N->getValueType(0), Op);
 1458   return DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, Op.getValueType(),
 1459                      Op, DAG.getValueType(N->getOperand(0).getValueType()));
 1463   return SDValue(DAG.UpdateNodeOperands(N,
 1475   return DAG.getTruncStore(Ch, dl, Val, Ptr,
 1493     return SDValue(DAG.UpdateNodeOperands(N, NewOps), 0);
 1500   return DAG.getMaskedStore(N->getChain(), dl, DataOp, N->getBasePtr(), Mask,
 1512   return SDValue(DAG.UpdateNodeOperands(N, NewOps), 0);
 1533   return SDValue(DAG.UpdateNodeOperands(N, NewOps), 0);
 1552   return SDValue(DAG.UpdateNodeOperands(N, NewOps), 0);
 1557   return DAG.getNode(ISD::TRUNCATE, SDLoc(N), N->getValueType(0), Op);
 1561   return SDValue(DAG.UpdateNodeOperands(N,
 1568   Op = DAG.getNode(ISD::ANY_EXTEND, dl, N->getValueType(0), Op);
 1569   return DAG.getZeroExtendInReg(Op, dl,
 1583   return SDValue(DAG.UpdateNodeOperands(N, LHS, RHS, Carry), 0);
 1589       DAG.UpdateNodeOperands(N, N->getOperand(0), N->getOperand(1), Op2), 0);
 1595   return SDValue(DAG.UpdateNodeOperands(N, Op), 0);
 1605   return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0), N->getOperand(1),
 1612   return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0), Op), 0);
 1640     return DAG.getNode(N->getOpcode(), SDLoc(N), VT, Op);
 1644   SDValue Reduce = DAG.getNode(N->getOpcode(), dl, EltVT, Op);
 1645   return DAG.getNode(ISD::TRUNCATE, dl, VT, Reduce);
 1657   LLVM_DEBUG(dbgs() << "Expand integer result: "; N->dump(&DAG);
 1670     N->dump(&DAG); dbgs() << "\n";
 1736     SDVTList VTs = DAG.getVTList(N->getValueType(0), MVT::Other);
 1737     SDValue Tmp = DAG.getAtomicCmpSwap(
 1745     SDValue Success = DAG.getSetCC(SDLoc(N), N->getValueType(1), Tmp,
 1846       Lo = Hi = DAG.getConstant(0, DL, NVT);
 1848       Lo = DAG.getConstant(0, DL, NVT);
 1849       Hi = DAG.getNode(ISD::SHL, DL,
 1850                        NVT, InL, DAG.getConstant(Amt - NVTBits, DL, ShTy));
 1852       Lo = DAG.getConstant(0, DL, NVT);
 1855       Lo = DAG.getNode(ISD::SHL, DL, NVT, InL, DAG.getConstant(Amt, DL, ShTy));
 1855       Lo = DAG.getNode(ISD::SHL, DL, NVT, InL, DAG.getConstant(Amt, DL, ShTy));
 1856       Hi = DAG.getNode(ISD::OR, DL, NVT,
 1857                        DAG.getNode(ISD::SHL, DL, NVT, InH,
 1858                                    DAG.getConstant(Amt, DL, ShTy)),
 1859                        DAG.getNode(ISD::SRL, DL, NVT, InL,
 1860                                    DAG.getConstant(-Amt + NVTBits, DL, ShTy)));
 1867       Lo = Hi = DAG.getConstant(0, DL, NVT);
 1869       Lo = DAG.getNode(ISD::SRL, DL,
 1870                        NVT, InH, DAG.getConstant(Amt - NVTBits, DL, ShTy));
 1871       Hi = DAG.getConstant(0, DL, NVT);
 1874       Hi = DAG.getConstant(0, DL, NVT);
 1876       Lo = DAG.getNode(ISD::OR, DL, NVT,
 1877                        DAG.getNode(ISD::SRL, DL, NVT, InL,
 1878                                    DAG.getConstant(Amt, DL, ShTy)),
 1879                        DAG.getNode(ISD::SHL, DL, NVT, InH,
 1880                                    DAG.getConstant(-Amt + NVTBits, DL, ShTy)));
 1881       Hi = DAG.getNode(ISD::SRL, DL, NVT, InH, DAG.getConstant(Amt, DL, ShTy));
 1881       Hi = DAG.getNode(ISD::SRL, DL, NVT, InH, DAG.getConstant(Amt, DL, ShTy));
 1888     Hi = Lo = DAG.getNode(ISD::SRA, DL, NVT, InH,
 1889                           DAG.getConstant(NVTBits - 1, DL, ShTy));
 1891     Lo = DAG.getNode(ISD::SRA, DL, NVT, InH,
 1892                      DAG.getConstant(Amt - NVTBits, DL, ShTy));
 1893     Hi = DAG.getNode(ISD::SRA, DL, NVT, InH,
 1894                      DAG.getConstant(NVTBits - 1, DL, ShTy));
 1897     Hi = DAG.getNode(ISD::SRA, DL, NVT, InH,
 1898                      DAG.getConstant(NVTBits - 1, DL, ShTy));
 1900     Lo = DAG.getNode(ISD::OR, DL, NVT,
 1901                      DAG.getNode(ISD::SRL, DL, NVT, InL,
 1902                                  DAG.getConstant(Amt, DL, ShTy)),
 1903                      DAG.getNode(ISD::SHL, DL, NVT, InH,
 1904                                  DAG.getConstant(-Amt + NVTBits, DL, ShTy)));
 1905     Hi = DAG.getNode(ISD::SRA, DL, NVT, InH, DAG.getConstant(Amt, DL, ShTy));
 1905     Hi = DAG.getNode(ISD::SRA, DL, NVT, InH, DAG.getConstant(Amt, DL, ShTy));
 1916   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 1925   KnownBits Known = DAG.computeKnownBits(N->getOperand(1));
 1939     Amt = DAG.getNode(ISD::AND, dl, ShTy, Amt,
 1940                       DAG.getConstant(~HighBitMask, dl, ShTy));
 1945       Lo = DAG.getConstant(0, dl, NVT);              // Low part is zero.
 1946       Hi = DAG.getNode(ISD::SHL, dl, NVT, InL, Amt); // High part from Lo part.
 1949       Hi = DAG.getConstant(0, dl, NVT);              // Hi part is zero.
 1950       Lo = DAG.getNode(ISD::SRL, dl, NVT, InH, Amt); // Lo part from Hi part.
 1953       Hi = DAG.getNode(ISD::SRA, dl, NVT, InH,       // Sign extend high part.
 1954                        DAG.getConstant(NVTBits - 1, dl, ShTy));
 1955       Lo = DAG.getNode(ISD::SRA, dl, NVT, InH, Amt); // Lo part from Hi part.
 1966     SDValue Amt2 = DAG.getNode(ISD::XOR, dl, ShTy, Amt,
 1967                                DAG.getConstant(NVTBits - 1, dl, ShTy));
 1983     SDValue Sh1 = DAG.getNode(Op2, dl, NVT, InL, DAG.getConstant(1, dl, ShTy));
 1983     SDValue Sh1 = DAG.getNode(Op2, dl, NVT, InL, DAG.getConstant(1, dl, ShTy));
 1985     SDValue Sh2 = DAG.getNode(Op2, dl, NVT, Sh1, Amt2);
 1987     Lo = DAG.getNode(N->getOpcode(), dl, NVT, InL, Amt);
 1988     Hi = DAG.getNode(ISD::OR, dl, NVT, DAG.getNode(Op1, dl, NVT, InH, Amt),Sh2);
 1988     Hi = DAG.getNode(ISD::OR, dl, NVT, DAG.getNode(Op1, dl, NVT, InH, Amt),Sh2);
 2003   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 2014   SDValue NVBitsNode = DAG.getConstant(NVTBits, dl, ShTy);
 2015   SDValue AmtExcess = DAG.getNode(ISD::SUB, dl, ShTy, Amt, NVBitsNode);
 2016   SDValue AmtLack = DAG.getNode(ISD::SUB, dl, ShTy, NVBitsNode, Amt);
 2017   SDValue isShort = DAG.getSetCC(dl, getSetCCResultType(ShTy),
 2019   SDValue isZero = DAG.getSetCC(dl, getSetCCResultType(ShTy),
 2020                                 Amt, DAG.getConstant(0, dl, ShTy),
 2028     LoS = DAG.getNode(ISD::SHL, dl, NVT, InL, Amt);
 2029     HiS = DAG.getNode(ISD::OR, dl, NVT,
 2030                       DAG.getNode(ISD::SHL, dl, NVT, InH, Amt),
 2031                       DAG.getNode(ISD::SRL, dl, NVT, InL, AmtLack));
 2034     LoL = DAG.getConstant(0, dl, NVT);                    // Lo part is zero.
 2035     HiL = DAG.getNode(ISD::SHL, dl, NVT, InL, AmtExcess); // Hi from Lo part.
 2037     Lo = DAG.getSelect(dl, NVT, isShort, LoS, LoL);
 2038     Hi = DAG.getSelect(dl, NVT, isZero, InH,
 2039                        DAG.getSelect(dl, NVT, isShort, HiS, HiL));
 2043     HiS = DAG.getNode(ISD::SRL, dl, NVT, InH, Amt);
 2044     LoS = DAG.getNode(ISD::OR, dl, NVT,
 2045                       DAG.getNode(ISD::SRL, dl, NVT, InL, Amt),
 2048                       DAG.getNode(ISD::SHL, dl, NVT, InH, AmtLack));
 2051     HiL = DAG.getConstant(0, dl, NVT);                    // Hi part is zero.
 2052     LoL = DAG.getNode(ISD::SRL, dl, NVT, InH, AmtExcess); // Lo from Hi part.
 2054     Lo = DAG.getSelect(dl, NVT, isZero, InL,
 2055                        DAG.getSelect(dl, NVT, isShort, LoS, LoL));
 2056     Hi = DAG.getSelect(dl, NVT, isShort, HiS, HiL);
 2060     HiS = DAG.getNode(ISD::SRA, dl, NVT, InH, Amt);
 2061     LoS = DAG.getNode(ISD::OR, dl, NVT,
 2062                       DAG.getNode(ISD::SRL, dl, NVT, InL, Amt),
 2063                       DAG.getNode(ISD::SHL, dl, NVT, InH, AmtLack));
 2066     HiL = DAG.getNode(ISD::SRA, dl, NVT, InH,             // Sign of Hi part.
 2067                       DAG.getConstant(NVTBits - 1, dl, ShTy));
 2068     LoL = DAG.getNode(ISD::SRA, dl, NVT, InH, AmtExcess); // Lo from Hi part.
 2070     Lo = DAG.getSelect(dl, NVT, isZero, InL,
 2071                        DAG.getSelect(dl, NVT, isShort, LoS, LoL));
 2072     Hi = DAG.getSelect(dl, NVT, isShort, HiS, HiL);
 2109   Hi = DAG.getNode(N->getOpcode(), DL, NVT, {LHSH, RHSH});
 2113   SDValue IsHiLeft = DAG.getSetCC(DL, CCT, LHSH, RHSH, CondC);
 2114   SDValue IsHiEq = DAG.getSetCC(DL, CCT, LHSH, RHSH, ISD::SETEQ);
 2117   SDValue LoCmp = DAG.getSelect(DL, NVT, IsHiLeft, LHSL, RHSL);
 2120   SDValue LoMinMax = DAG.getNode(LoOpc, DL, NVT, {LHSL, RHSL});
 2122   Lo = DAG.getSelect(DL, NVT, IsHiEq, LoMinMax, LoCmp);
 2139       TLI.getTypeToExpandTo(*DAG.getContext(), NVT));
 2141     SDVTList VTList = DAG.getVTList(NVT, getSetCCResultType(NVT));
 2143       Lo = DAG.getNode(ISD::UADDO, dl, VTList, LoOps);
 2145       Hi = DAG.getNode(ISD::ADDCARRY, dl, VTList, HiOps);
 2147       Lo = DAG.getNode(ISD::USUBO, dl, VTList, LoOps);
 2149       Hi = DAG.getNode(ISD::SUBCARRY, dl, VTList, HiOps);
 2162                                  TLI.getTypeToExpandTo(*DAG.getContext(), NVT));
 2165     SDVTList VTList = DAG.getVTList(NVT, MVT::Glue);
 2167       Lo = DAG.getNode(ISD::ADDC, dl, VTList, LoOps);
 2169       Hi = DAG.getNode(ISD::ADDE, dl, VTList, HiOps);
 2171       Lo = DAG.getNode(ISD::SUBC, dl, VTList, LoOps);
 2173       Hi = DAG.getNode(ISD::SUBE, dl, VTList, HiOps);
 2181                                  TLI.getTypeToExpandTo(*DAG.getContext(), NVT));
 2186     SDVTList VTList = DAG.getVTList(NVT, OvfVT);
 2190       Lo = DAG.getNode(ISD::UADDO, dl, VTList, LoOps);
 2191       Hi = DAG.getNode(ISD::ADD, dl, NVT, makeArrayRef(HiOps, 2));
 2194       Lo = DAG.getNode(ISD::USUBO, dl, VTList, LoOps);
 2195       Hi = DAG.getNode(ISD::SUB, dl, NVT, makeArrayRef(HiOps, 2));
 2201       OVF = DAG.getNode(ISD::AND, dl, OvfVT, DAG.getConstant(1, dl, OvfVT), OVF);
 2201       OVF = DAG.getNode(ISD::AND, dl, OvfVT, DAG.getConstant(1, dl, OvfVT), OVF);
 2204       OVF = DAG.getZExtOrTrunc(OVF, dl, NVT);
 2205       Hi = DAG.getNode(N->getOpcode(), dl, NVT, Hi, OVF);
 2208       OVF = DAG.getSExtOrTrunc(OVF, dl, NVT);
 2209       Hi = DAG.getNode(RevOpc, dl, NVT, Hi, OVF);
 2215     Lo = DAG.getNode(ISD::ADD, dl, NVT, LoOps);
 2216     Hi = DAG.getNode(ISD::ADD, dl, NVT, makeArrayRef(HiOps, 2));
 2217     SDValue Cmp1 = DAG.getSetCC(dl, getSetCCResultType(NVT), Lo, LoOps[0],
 2221       SDValue Carry = DAG.getZExtOrTrunc(Cmp1, dl, NVT);
 2222       Hi = DAG.getNode(ISD::ADD, dl, NVT, Hi, Carry);
 2226     SDValue Carry1 = DAG.getSelect(dl, NVT, Cmp1,
 2227                                    DAG.getConstant(1, dl, NVT),
 2228                                    DAG.getConstant(0, dl, NVT));
 2229     SDValue Cmp2 = DAG.getSetCC(dl, getSetCCResultType(NVT), Lo, LoOps[1],
 2231     SDValue Carry2 = DAG.getSelect(dl, NVT, Cmp2,
 2232                                    DAG.getConstant(1, dl, NVT), Carry1);
 2233     Hi = DAG.getNode(ISD::ADD, dl, NVT, Hi, Carry2);
 2235     Lo = DAG.getNode(ISD::SUB, dl, NVT, LoOps);
 2236     Hi = DAG.getNode(ISD::SUB, dl, NVT, makeArrayRef(HiOps, 2));
 2238       DAG.getSetCC(dl, getSetCCResultType(LoOps[0].getValueType()),
 2243       Borrow = DAG.getZExtOrTrunc(Cmp, dl, NVT);
 2245       Borrow = DAG.getSelect(dl, NVT, Cmp, DAG.getConstant(1, dl, NVT),
 2245       Borrow = DAG.getSelect(dl, NVT, Cmp, DAG.getConstant(1, dl, NVT),
 2246                              DAG.getConstant(0, dl, NVT));
 2248     Hi = DAG.getNode(ISD::SUB, dl, NVT, Hi, Borrow);
 2259   SDVTList VTList = DAG.getVTList(LHSL.getValueType(), MVT::Glue);
 2264     Lo = DAG.getNode(ISD::ADDC, dl, VTList, LoOps);
 2266     Hi = DAG.getNode(ISD::ADDE, dl, VTList, HiOps);
 2268     Lo = DAG.getNode(ISD::SUBC, dl, VTList, LoOps);
 2270     Hi = DAG.getNode(ISD::SUBE, dl, VTList, HiOps);
 2285   SDVTList VTList = DAG.getVTList(LHSL.getValueType(), MVT::Glue);
 2289   Lo = DAG.getNode(N->getOpcode(), dl, VTList, LoOps);
 2291   Hi = DAG.getNode(N->getOpcode(), dl, VTList, HiOps);
 2324       CarryOp, TLI.getTypeToExpandTo(*DAG.getContext(), LHS.getValueType()));
 2331     SDVTList VTList = DAG.getVTList(LHSL.getValueType(), N->getValueType(1));
 2335     Lo = DAG.getNode(N->getOpcode(), dl, VTList, LoOps);
 2337     Hi = DAG.getNode(CarryOp, dl, VTList, HiOps);
 2343     SDValue Sum = DAG.getNode(NoCarryOp, dl, LHS.getValueType(), LHS, RHS);
 2348     Ovf = DAG.getSetCC(dl, N->getValueType(1), Sum, LHS, Cond);
 2363   SDVTList VTList = DAG.getVTList(LHSL.getValueType(), N->getValueType(1));
 2367   Lo = DAG.getNode(N->getOpcode(), dl, VTList, LoOps);
 2369   Hi = DAG.getNode(N->getOpcode(), dl, VTList, HiOps);
 2378   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 2383     Lo = DAG.getNode(ISD::ANY_EXTEND, dl, NVT, Op);
 2384     Hi = DAG.getUNDEF(NVT);   // The high part is undefined.
 2409     Hi = DAG.getNode(ISD::AssertSext, dl, NVT, Hi,
 2410                      DAG.getValueType(EVT::getIntegerVT(*DAG.getContext(),
 2410                      DAG.getValueType(EVT::getIntegerVT(*DAG.getContext(),
 2413     Lo = DAG.getNode(ISD::AssertSext, dl, NVT, Lo, DAG.getValueType(EVT));
 2413     Lo = DAG.getNode(ISD::AssertSext, dl, NVT, Lo, DAG.getValueType(EVT));
 2415     Hi = DAG.getNode(ISD::SRA, dl, NVT, Lo,
 2416                      DAG.getConstant(NVTBits - 1, dl,
 2417                                      TLI.getPointerTy(DAG.getDataLayout())));
 2431     Hi = DAG.getNode(ISD::AssertZext, dl, NVT, Hi,
 2432                      DAG.getValueType(EVT::getIntegerVT(*DAG.getContext(),
 2432                      DAG.getValueType(EVT::getIntegerVT(*DAG.getContext(),
 2435     Lo = DAG.getNode(ISD::AssertZext, dl, NVT, Lo, DAG.getValueType(EVT));
 2435     Lo = DAG.getNode(ISD::AssertZext, dl, NVT, Lo, DAG.getValueType(EVT));
 2437     Hi = DAG.getConstant(0, dl, NVT);
 2445   Lo = DAG.getNode(ISD::BITREVERSE, dl, Lo.getValueType(), Lo);
 2446   Hi = DAG.getNode(ISD::BITREVERSE, dl, Hi.getValueType(), Hi);
 2453   Lo = DAG.getNode(ISD::BSWAP, dl, Lo.getValueType(), Lo);
 2454   Hi = DAG.getNode(ISD::BSWAP, dl, Hi.getValueType(), Hi);
 2459   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 2466   Lo = DAG.getConstant(Cst.trunc(NBitWidth), dl, NVT, IsTarget, IsOpaque);
 2467   Hi = DAG.getConstant(Cst.lshr(NBitWidth).trunc(NBitWidth), dl, NVT, IsTarget,
 2477   SDValue Neg = DAG.getNode(ISD::SUB, dl, VT,
 2478                             DAG.getConstant(0, dl, VT), N0);
 2484   SDValue HiIsNeg = DAG.getSetCC(dl, getSetCCResultType(NVT),
 2485                                  DAG.getConstant(0, dl, NVT), Hi, ISD::SETGT);
 2486   Lo = DAG.getSelect(dl, NVT, HiIsNeg, NegLo, Lo);
 2487   Hi = DAG.getSelect(dl, NVT, HiIsNeg, NegHi, Hi);
 2497   SDValue HiNotZero = DAG.getSetCC(dl, getSetCCResultType(NVT), Hi,
 2498                                    DAG.getConstant(0, dl, NVT), ISD::SETNE);
 2500   SDValue LoLZ = DAG.getNode(N->getOpcode(), dl, NVT, Lo);
 2501   SDValue HiLZ = DAG.getNode(ISD::CTLZ_ZERO_UNDEF, dl, NVT, Hi);
 2503   Lo = DAG.getSelect(dl, NVT, HiNotZero, HiLZ,
 2504                      DAG.getNode(ISD::ADD, dl, NVT, LoLZ,
 2505                                  DAG.getConstant(NVT.getSizeInBits(), dl,
 2507   Hi = DAG.getConstant(0, dl, NVT);
 2516   Lo = DAG.getNode(ISD::ADD, dl, NVT, DAG.getNode(ISD::CTPOP, dl, NVT, Lo),
 2516   Lo = DAG.getNode(ISD::ADD, dl, NVT, DAG.getNode(ISD::CTPOP, dl, NVT, Lo),
 2517                    DAG.getNode(ISD::CTPOP, dl, NVT, Hi));
 2518   Hi = DAG.getConstant(0, dl, NVT);
 2528   SDValue LoNotZero = DAG.getSetCC(dl, getSetCCResultType(NVT), Lo,
 2529                                    DAG.getConstant(0, dl, NVT), ISD::SETNE);
 2531   SDValue LoLZ = DAG.getNode(ISD::CTTZ_ZERO_UNDEF, dl, NVT, Lo);
 2532   SDValue HiLZ = DAG.getNode(N->getOpcode(), dl, NVT, Hi);
 2534   Lo = DAG.getSelect(dl, NVT, LoNotZero, LoLZ,
 2535                      DAG.getNode(ISD::ADD, dl, NVT, HiLZ,
 2536                                  DAG.getConstant(NVT.getSizeInBits(), dl,
 2538   Hi = DAG.getConstant(0, dl, NVT);
 2544   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 2547   EVT ShiftAmtTy = TLI.getShiftAmountTy(NVT, DAG.getDataLayout());
 2548   Lo = DAG.getNode(ISD::FLT_ROUNDS_, dl, NVT);
 2550   Hi = DAG.getNode(ISD::SRA, dl, NVT, Lo,
 2551                    DAG.getConstant(NBitWidth - 1, dl, ShiftAmtTy));
 2567   SplitInteger(TLI.makeLibCall(DAG, LC, VT, Op, CallOptions, dl).first,
 2583   SplitInteger(TLI.makeLibCall(DAG, LC, VT, Op, CallOptions, dl).first,
 2611   SplitInteger(TLI.makeLibCall(DAG, LC, RetVT, Op, CallOptions, dl).first,
 2639   SplitInteger(TLI.makeLibCall(DAG, LC, RetVT, Op, CallOptions, dl).first,
 2653   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2667     Lo = DAG.getExtLoad(ExtType, dl, NVT, Ch, Ptr, N->getPointerInfo(), MemVT,
 2677       Hi = DAG.getNode(ISD::SRA, dl, NVT, Lo,
 2678                        DAG.getConstant(LoSize - 1, dl,
 2679                                        TLI.getPointerTy(DAG.getDataLayout())));
 2682       Hi = DAG.getConstant(0, dl, NVT);
 2686       Hi = DAG.getUNDEF(NVT);
 2688   } else if (DAG.getDataLayout().isLittleEndian()) {
 2690     Lo = DAG.getLoad(NVT, dl, Ch, Ptr, N->getPointerInfo(), Alignment, MMOFlags,
 2695     EVT NEVT = EVT::getIntegerVT(*DAG.getContext(), ExcessBits);
 2699     Ptr = DAG.getNode(ISD::ADD, dl, Ptr.getValueType(), Ptr,
 2700                       DAG.getConstant(IncrementSize, dl, Ptr.getValueType()));
 2701     Hi = DAG.getExtLoad(ExtType, dl, NVT, Ch, Ptr,
 2707     Ch = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
 2718     Hi = DAG.getExtLoad(ExtType, dl, NVT, Ch, Ptr, N->getPointerInfo(),
 2719                         EVT::getIntegerVT(*DAG.getContext(),
 2724     Ptr = DAG.getNode(ISD::ADD, dl, Ptr.getValueType(), Ptr,
 2725                       DAG.getConstant(IncrementSize, dl, Ptr.getValueType()));
 2727     Lo = DAG.getExtLoad(ISD::ZEXTLOAD, dl, NVT, Ch, Ptr,
 2729                         EVT::getIntegerVT(*DAG.getContext(), ExcessBits),
 2734     Ch = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
 2739       Lo = DAG.getNode(
 2741           DAG.getNode(ISD::SHL, dl, NVT, Hi,
 2742                       DAG.getConstant(ExcessBits, dl,
 2743                                       TLI.getPointerTy(DAG.getDataLayout()))));
 2745       Hi = DAG.getNode(ExtType == ISD::SEXTLOAD ? ISD::SRA : ISD::SRL, dl, NVT,
 2747                        DAG.getConstant(NVT.getSizeInBits() - ExcessBits, dl,
 2748                                        TLI.getPointerTy(DAG.getDataLayout())));
 2763   Lo = DAG.getNode(N->getOpcode(), dl, LL.getValueType(), LL, RL);
 2764   Hi = DAG.getNode(N->getOpcode(), dl, LL.getValueType(), LH, RH);
 2770   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2777   if (TLI.expandMUL(N, Lo, Hi, NVT, DAG,
 2800     SDValue Mask = DAG.getConstant(APInt::getLowBitsSet(Bits, HalfBits), dl,
 2802     SDValue LLL = DAG.getNode(ISD::AND, dl, NVT, LL, Mask);
 2803     SDValue RLL = DAG.getNode(ISD::AND, dl, NVT, RL, Mask);
 2805     SDValue T = DAG.getNode(ISD::MUL, dl, NVT, LLL, RLL);
 2806     SDValue TL = DAG.getNode(ISD::AND, dl, NVT, T, Mask);
 2808     EVT ShiftAmtTy = TLI.getShiftAmountTy(NVT, DAG.getDataLayout());
 2814     SDValue Shift = DAG.getConstant(HalfBits, dl, ShiftAmtTy);
 2815     SDValue TH = DAG.getNode(ISD::SRL, dl, NVT, T, Shift);
 2816     SDValue LLH = DAG.getNode(ISD::SRL, dl, NVT, LL, Shift);
 2817     SDValue RLH = DAG.getNode(ISD::SRL, dl, NVT, RL, Shift);
 2819     SDValue U = DAG.getNode(ISD::ADD, dl, NVT,
 2820                             DAG.getNode(ISD::MUL, dl, NVT, LLH, RLL), TH);
 2821     SDValue UL = DAG.getNode(ISD::AND, dl, NVT, U, Mask);
 2822     SDValue UH = DAG.getNode(ISD::SRL, dl, NVT, U, Shift);
 2824     SDValue V = DAG.getNode(ISD::ADD, dl, NVT,
 2825                             DAG.getNode(ISD::MUL, dl, NVT, LLL, RLH), UL);
 2826     SDValue VH = DAG.getNode(ISD::SRL, dl, NVT, V, Shift);
 2828     SDValue W = DAG.getNode(ISD::ADD, dl, NVT,
 2829                             DAG.getNode(ISD::MUL, dl, NVT, LLH, RLH),
 2830                             DAG.getNode(ISD::ADD, dl, NVT, UH, VH));
 2831     Lo = DAG.getNode(ISD::ADD, dl, NVT, TL,
 2832                      DAG.getNode(ISD::SHL, dl, NVT, V, Shift));
 2834     Hi = DAG.getNode(ISD::ADD, dl, NVT, W,
 2835                      DAG.getNode(ISD::ADD, dl, NVT,
 2836                                  DAG.getNode(ISD::MUL, dl, NVT, RH, LL),
 2837                                  DAG.getNode(ISD::MUL, dl, NVT, RL, LH)));
 2844   SplitInteger(TLI.makeLibCall(DAG, LC, VT, Ops, CallOptions, dl).first,
 2851   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 2852   SDVTList VTs = DAG.getVTList(NVT, NVT, MVT::Other);
 2853   SDValue R = DAG.getNode(N->getOpcode(), DL, VTs, N->getOperand(0));
 2861   SDValue Result = TLI.expandAddSubSat(N, DAG);
 2887       Result = DAG.getNode(ISD::MUL, dl, VT, LHS, RHS);
 2891       Result = DAG.getNode(MulOp, dl, DAG.getVTList(VT, BoolVT), LHS, RHS);
 2891       Result = DAG.getNode(MulOp, dl, DAG.getVTList(VT, BoolVT), LHS, RHS);
 2897         SDValue SatMin = DAG.getConstant(MinVal, dl, VT);
 2898         SDValue SatMax = DAG.getConstant(MaxVal, dl, VT);
 2899         SDValue Zero = DAG.getConstant(0, dl, VT);
 2900         SDValue ProdNeg = DAG.getSetCC(dl, BoolVT, Product, Zero, ISD::SETLT);
 2901         Result = DAG.getSelect(dl, VT, ProdNeg, SatMax, SatMin);
 2902         Result = DAG.getSelect(dl, VT, Overflow, Result, Product);
 2907         SDValue SatMax = DAG.getConstant(MaxVal, dl, VT);
 2908         Result = DAG.getSelect(dl, VT, Overflow, SatMax, Product);
 2919   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2926   if (!TLI.expandMUL_LOHI(LoHiOp, VT, dl, LHS, RHS, Result, NVT, DAG,
 2936   EVT ShiftTy = TLI.getShiftAmountTy(NVT, DAG.getDataLayout());
 2959     SDValue ShiftAmount = DAG.getConstant(Scale % NVTSize, dl, ShiftTy);
 2960     Lo = DAG.getNode(ISD::FSHR, dl, NVT, Result[Part0 + 1], Result[Part0],
 2962     Hi = DAG.getNode(ISD::FSHR, dl, NVT, Result[Part0 + 2], Result[Part0 + 1],
 2993   SDValue NVTZero = DAG.getConstant(0, dl, NVT);
 2994   SDValue NVTNeg1 = DAG.getConstant(-1, dl, NVT);
 3000       SDValue HLAdjusted = DAG.getNode(ISD::SRL, dl, NVT, ResultHL,
 3001                                        DAG.getConstant(Scale, dl, ShiftTy));
 3002       SDValue Tmp = DAG.getNode(ISD::OR, dl, NVT, HLAdjusted, ResultHH);
 3003       SatMax = DAG.getSetCC(dl, BoolNVT, Tmp, NVTZero, ISD::SETNE);
 3006       SatMax = DAG.getSetCC(dl, BoolNVT, ResultHH, NVTZero, ISD::SETNE);
 3009       SDValue HLAdjusted = DAG.getNode(ISD::SRL, dl, NVT, ResultHL,
 3010                                        DAG.getConstant(Scale - NVTSize, dl,
 3012       SatMax = DAG.getSetCC(dl, BoolNVT, HLAdjusted, NVTZero, ISD::SETNE);
 3017     Hi = DAG.getSelect(dl, NVT, SatMax, NVTNeg1, Hi);
 3018     Lo = DAG.getSelect(dl, NVT, SatMax, NVTNeg1, Lo);
 3030     SDValue HLHiMask = DAG.getConstant(
 3032     SDValue HLLoMask = DAG.getConstant(
 3035     SDValue HHGT0 = DAG.getSetCC(dl, BoolNVT, ResultHH, NVTZero, ISD::SETGT);
 3036     SDValue HHEQ0 = DAG.getSetCC(dl, BoolNVT, ResultHH, NVTZero, ISD::SETEQ);
 3037     SDValue HLUGT = DAG.getSetCC(dl, BoolNVT, ResultHL, HLLoMask, ISD::SETUGT);
 3038     SatMax = DAG.getNode(ISD::OR, dl, BoolNVT, HHGT0,
 3039                          DAG.getNode(ISD::AND, dl, BoolNVT, HHEQ0, HLUGT));
 3041     SDValue HHLT = DAG.getSetCC(dl, BoolNVT, ResultHH, NVTNeg1, ISD::SETLT);
 3042     SDValue HHEQ = DAG.getSetCC(dl, BoolNVT, ResultHH, NVTNeg1, ISD::SETEQ);
 3043     SDValue HLULT = DAG.getSetCC(dl, BoolNVT, ResultHL, HLHiMask, ISD::SETULT);
 3044     SatMin = DAG.getNode(ISD::OR, dl, BoolNVT, HHLT,
 3045                          DAG.getNode(ISD::AND, dl, BoolNVT, HHEQ, HLULT));
 3048     SDValue HHGT0 = DAG.getSetCC(dl, BoolNVT, ResultHH, NVTZero, ISD::SETGT);
 3049     SDValue HHEQ0 = DAG.getSetCC(dl, BoolNVT, ResultHH, NVTZero, ISD::SETEQ);
 3050     SDValue HLNeg = DAG.getSetCC(dl, BoolNVT, ResultHL, NVTZero, ISD::SETLT);
 3051     SatMax = DAG.getNode(ISD::OR, dl, BoolNVT, HHGT0,
 3052                          DAG.getNode(ISD::AND, dl, BoolNVT, HHEQ0, HLNeg));
 3054     SDValue HHLT = DAG.getSetCC(dl, BoolNVT, ResultHH, NVTNeg1, ISD::SETLT);
 3055     SDValue HHEQ = DAG.getSetCC(dl, BoolNVT, ResultHH, NVTNeg1, ISD::SETEQ);
 3056     SDValue HLPos = DAG.getSetCC(dl, BoolNVT, ResultHL, NVTZero, ISD::SETGE);
 3057     SatMin = DAG.getNode(ISD::OR, dl, BoolNVT, HHLT,
 3058                          DAG.getNode(ISD::AND, dl, BoolNVT, HHEQ, HLPos));
 3063     SDValue HHHiMask = DAG.getConstant(
 3065     SDValue HHLoMask = DAG.getConstant(
 3067     SatMax = DAG.getSetCC(dl, BoolNVT, ResultHH, HHLoMask, ISD::SETGT);
 3068     SatMin = DAG.getSetCC(dl, BoolNVT, ResultHH, HHHiMask, ISD::SETLT);
 3075   Hi = DAG.getSelect(dl, NVT, SatMax, DAG.getConstant(MaxHi, dl, NVT), Hi);
 3075   Hi = DAG.getSelect(dl, NVT, SatMax, DAG.getConstant(MaxHi, dl, NVT), Hi);
 3076   Lo = DAG.getSelect(dl, NVT, SatMax, DAG.getConstant(MaxLo, dl, NVT), Lo);
 3076   Lo = DAG.getSelect(dl, NVT, SatMax, DAG.getConstant(MaxLo, dl, NVT), Lo);
 3079   Hi = DAG.getSelect(dl, NVT, SatMin, DAG.getConstant(MinHi, dl, NVT), Hi);
 3079   Hi = DAG.getSelect(dl, NVT, SatMin, DAG.getConstant(MinHi, dl, NVT), Hi);
 3080   Lo = DAG.getSelect(dl, NVT, SatMin, NVTZero, Lo);
 3091   SDValue Sum = DAG.getNode(Node->getOpcode() == ISD::SADDO ?
 3108   SDValue Zero = DAG.getConstant(0, dl, LHS.getValueType());
 3110   SDValue LHSSign = DAG.getSetCC(dl, OType, LHS, Zero, ISD::SETGE);
 3111   SDValue RHSSign = DAG.getSetCC(dl, OType, RHS, Zero, ISD::SETGE);
 3112   SDValue SignsMatch = DAG.getSetCC(dl, OType, LHSSign, RHSSign,
 3116   SDValue SumSign = DAG.getSetCC(dl, OType, Sum, Zero, ISD::SETGE);
 3117   SDValue SumSignNE = DAG.getSetCC(dl, OType, LHSSign, SumSign, ISD::SETNE);
 3119   SDValue Cmp = DAG.getNode(ISD::AND, dl, OType, SignsMatch, SumSignNE);
 3132     SDValue Res = DAG.getNode(ISD::SDIVREM, dl, DAG.getVTList(VT, VT), Ops);
 3132     SDValue Res = DAG.getNode(ISD::SDIVREM, dl, DAG.getVTList(VT, VT), Ops);
 3150   SplitInteger(TLI.makeLibCall(DAG, LC, VT, Ops, CallOptions, dl).first, Lo, Hi);
 3182   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 3188   if (LegalOrCustom && TLI.shouldExpandShift(DAG, N)) {
 3198     EVT ShiftTy = TLI.getShiftAmountTy(VT, DAG.getDataLayout());
 3203       ShiftOp = DAG.getZExtOrTrunc(ShiftOp, dl, ShiftTy);
 3206     Lo = DAG.getNode(PartsOpc, dl, DAG.getVTList(VT, VT), Ops);
 3206     Lo = DAG.getNode(PartsOpc, dl, DAG.getVTList(VT, VT), Ops);
 3251     SplitInteger(TLI.makeLibCall(DAG, LC, VT, Ops, CallOptions, dl).first, Lo, Hi);
 3261   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3266     Lo = DAG.getNode(ISD::SIGN_EXTEND, dl, NVT, N->getOperand(0));
 3269     Hi = DAG.getNode(
 3271         DAG.getConstant(LoSize - 1, dl, TLI.getPointerTy(DAG.getDataLayout())));
 3271         DAG.getConstant(LoSize - 1, dl, TLI.getPointerTy(DAG.getDataLayout())));
 3284     Hi = DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, Hi.getValueType(), Hi,
 3285                      DAG.getValueType(EVT::getIntegerVT(*DAG.getContext(),
 3285                      DAG.getValueType(EVT::getIntegerVT(*DAG.getContext(),
 3298     Lo = DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, Lo.getValueType(), Lo,
 3303     Hi = DAG.getNode(ISD::SRA, dl, Hi.getValueType(), Lo,
 3304                      DAG.getConstant(Hi.getValueSizeInBits() - 1, dl,
 3305                                      TLI.getPointerTy(DAG.getDataLayout())));
 3310     Hi = DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, Hi.getValueType(), Hi,
 3311                      DAG.getValueType(EVT::getIntegerVT(*DAG.getContext(),
 3311                      DAG.getValueType(EVT::getIntegerVT(*DAG.getContext(),
 3323     SDValue Res = DAG.getNode(ISD::SDIVREM, dl, DAG.getVTList(VT, VT), Ops);
 3323     SDValue Res = DAG.getNode(ISD::SDIVREM, dl, DAG.getVTList(VT, VT), Ops);
 3341   SplitInteger(TLI.makeLibCall(DAG, LC, VT, Ops, CallOptions, dl).first, Lo, Hi);
 3346   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3348   Lo = DAG.getNode(ISD::TRUNCATE, dl, NVT, N->getOperand(0));
 3349   Hi = DAG.getNode(ISD::SRL, dl, N->getOperand(0).getValueType(),
 3351                    DAG.getConstant(NVT.getSizeInBits(), dl,
 3352                                    TLI.getPointerTy(DAG.getDataLayout())));
 3353   Hi = DAG.getNode(ISD::TRUNCATE, dl, NVT, Hi);
 3380     SDVTList VTHalfMulO = DAG.getVTList(HalfVT, BitVT);
 3381     SDVTList VTFullAddO = DAG.getVTList(VT, BitVT);
 3383     SDValue HalfZero = DAG.getConstant(0, dl, HalfVT);
 3384     SDValue Overflow = DAG.getNode(ISD::AND, dl, BitVT,
 3385       DAG.getSetCC(dl, BitVT, LHSHigh, HalfZero, ISD::SETNE),
 3386       DAG.getSetCC(dl, BitVT, RHSHigh, HalfZero, ISD::SETNE));
 3388     SDValue One = DAG.getNode(ISD::UMULO, dl, VTHalfMulO, LHSHigh, RHSLow);
 3389     Overflow = DAG.getNode(ISD::OR, dl, BitVT, Overflow, One.getValue(1));
 3390     SDValue OneInHigh = DAG.getNode(ISD::BUILD_PAIR, dl, VT, HalfZero,
 3393     SDValue Two = DAG.getNode(ISD::UMULO, dl, VTHalfMulO, RHSHigh, LHSLow);
 3394     Overflow = DAG.getNode(ISD::OR, dl, BitVT, Overflow, Two.getValue(1));
 3395     SDValue TwoInHigh = DAG.getNode(ISD::BUILD_PAIR, dl, VT, HalfZero,
 3404     SDValue Three = DAG.getNode(ISD::MUL, dl, VT,
 3405       DAG.getNode(ISD::ZERO_EXTEND, dl, VT, LHSLow),
 3406       DAG.getNode(ISD::ZERO_EXTEND, dl, VT, RHSLow));
 3407     SDValue Four = DAG.getNode(ISD::ADD, dl, VT, OneInHigh, TwoInHigh);
 3408     SDValue Five = DAG.getNode(ISD::UADDO, dl, VTFullAddO, Three, Four);
 3409     Overflow = DAG.getNode(ISD::OR, dl, BitVT, Overflow, Five.getValue(1));
 3415   Type *RetTy = VT.getTypeForEVT(*DAG.getContext());
 3416   EVT PtrVT = TLI.getPointerTy(DAG.getDataLayout());
 3417   Type *PtrTy = PtrVT.getTypeForEVT(*DAG.getContext());
 3429   SDValue Temp = DAG.CreateStackTemporary(PtrVT);
 3432       DAG.getStore(DAG.getEntryNode(), dl, DAG.getConstant(0, dl, PtrVT), Temp,
 3432       DAG.getStore(DAG.getEntryNode(), dl, DAG.getConstant(0, dl, PtrVT), Temp,
 3432       DAG.getStore(DAG.getEntryNode(), dl, DAG.getConstant(0, dl, PtrVT), Temp,
 3439     Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext());
 3454   SDValue Func = DAG.getExternalSymbol(TLI.getLibcallName(LC), PtrVT);
 3456   TargetLowering::CallLoweringInfo CLI(DAG);
 3466       DAG.getLoad(PtrVT, dl, CallInfo.second, Temp, MachinePointerInfo());
 3467   SDValue Ofl = DAG.getSetCC(dl, N->getValueType(1), Temp2,
 3468                              DAG.getConstant(0, dl, PtrVT),
 3481     SDValue Res = DAG.getNode(ISD::UDIVREM, dl, DAG.getVTList(VT, VT), Ops);
 3481     SDValue Res = DAG.getNode(ISD::UDIVREM, dl, DAG.getVTList(VT, VT), Ops);
 3498   SplitInteger(TLI.makeLibCall(DAG, LC, VT, Ops, CallOptions, dl).first, Lo, Hi);
 3508     SDValue Res = DAG.getNode(ISD::UDIVREM, dl, DAG.getVTList(VT, VT), Ops);
 3508     SDValue Res = DAG.getNode(ISD::UDIVREM, dl, DAG.getVTList(VT, VT), Ops);
 3525   SplitInteger(TLI.makeLibCall(DAG, LC, VT, Ops, CallOptions, dl).first, Lo, Hi);
 3530   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3535     Lo = DAG.getNode(ISD::ZERO_EXTEND, dl, NVT, N->getOperand(0));
 3536     Hi = DAG.getConstant(0, dl, NVT);   // The high part is just a zero.
 3549     Hi = DAG.getZeroExtendInReg(Hi, dl,
 3550                                 EVT::getIntegerVT(*DAG.getContext(),
 3559   SDVTList VTs = DAG.getVTList(VT, MVT::i1, MVT::Other);
 3560   SDValue Zero = DAG.getConstant(0, dl, VT);
 3561   SDValue Swap = DAG.getAtomicCmpSwap(
 3574   SDValue Res = TLI.expandVecReduce(N, DAG);
 3587   LLVM_DEBUG(dbgs() << "Expand integer operand: "; N->dump(&DAG);
 3598     N->dump(&DAG); dbgs() << "\n";
 3657           NewLHS = DAG.getNode(ISD::AND, dl,
 3665     NewLHS = DAG.getNode(ISD::XOR, dl, LHSLo.getValueType(), LHSLo, RHSLo);
 3666     NewRHS = DAG.getNode(ISD::XOR, dl, LHSLo.getValueType(), LHSHi, RHSHi);
 3667     NewLHS = DAG.getNode(ISD::OR, dl, NewLHS.getValueType(), NewLHS, NewRHS);
 3668     NewRHS = DAG.getConstant(0, dl, NewLHS.getValueType());
 3702   TargetLowering::DAGCombinerInfo DagCombineInfo(DAG, AfterLegalizeTypes, true,
 3710     LoCmp = DAG.getSetCC(dl, getSetCCResultType(LHSLo.getValueType()), LHSLo,
 3718         DAG.getNode(ISD::SETCC, dl, getSetCCResultType(LHSHi.getValueType()),
 3719                     LHSHi, RHSHi, DAG.getCondCode(CCCode));
 3747   EVT ExpandVT = TLI.getTypeToExpandTo(*DAG.getContext(), HiVT);
 3771     SDVTList VTList = DAG.getVTList(LoVT, getSetCCResultType(LoVT));
 3772     SDValue LowCmp = DAG.getNode(ISD::USUBO, dl, VTList, LHSLo, RHSLo);
 3773     SDValue Res = DAG.getNode(ISD::SETCCCARRY, dl, getSetCCResultType(HiVT),
 3775                               DAG.getCondCode(CCCode));
 3785         DAG.getSetCC(dl, getSetCCResultType(HiVT), LHSHi, RHSHi, ISD::SETEQ);
 3786   NewLHS = DAG.getSelect(dl, LoCmp.getValueType(), NewLHS, LoCmp, HiCmp);
 3798     NewRHS = DAG.getConstant(0, SDLoc(N), NewLHS.getValueType());
 3803   return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0),
 3804                                 DAG.getCondCode(CCCode), NewLHS, NewRHS,
 3816     NewRHS = DAG.getConstant(0, SDLoc(N), NewLHS.getValueType());
 3821   return SDValue(DAG.UpdateNodeOperands(N, NewLHS, NewRHS,
 3823                                 DAG.getCondCode(CCCode)), 0);
 3840       DAG.UpdateNodeOperands(N, NewLHS, NewRHS, DAG.getCondCode(CCCode)), 0);
 3840       DAG.UpdateNodeOperands(N, NewLHS, NewRHS, DAG.getCondCode(CCCode)), 0);
 3855   SDVTList VTList = DAG.getVTList(LHSLo.getValueType(), Carry.getValueType());
 3856   SDValue LowCmp = DAG.getNode(ISD::SUBCARRY, dl, VTList, LHSLo, RHSLo, Carry);
 3857   return DAG.getNode(ISD::SETCCCARRY, dl, N->getValueType(0), LHSHi, RHSHi,
 3867   return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0), Lo), 0);
 3876   return SDValue(DAG.UpdateNodeOperands(N, Lo), 0);
 3887   return TLI.makeLibCall(DAG, LC, DstVT, Op, CallOptions, SDLoc(N)).first;
 3898   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 3911     return DAG.getTruncStore(Ch, dl, Lo, Ptr, N->getPointerInfo(),
 3915   if (DAG.getDataLayout().isLittleEndian()) {
 3919     Lo = DAG.getStore(Ch, dl, Lo, Ptr, N->getPointerInfo(), Alignment, MMOFlags,
 3924     EVT NEVT = EVT::getIntegerVT(*DAG.getContext(), ExcessBits);
 3928     Ptr = DAG.getObjectPtrOffset(dl, Ptr, IncrementSize);
 3929     Hi = DAG.getTruncStore(
 3932     return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo, Hi);
 3943   EVT HiVT = EVT::getIntegerVT(*DAG.getContext(),
 3948     Hi = DAG.getNode(ISD::SHL, dl, NVT, Hi,
 3949                      DAG.getConstant(NVT.getSizeInBits() - ExcessBits, dl,
 3950                                      TLI.getPointerTy(DAG.getDataLayout())));
 3951     Hi = DAG.getNode(
 3953         DAG.getNode(ISD::SRL, dl, NVT, Lo,
 3954                     DAG.getConstant(ExcessBits, dl,
 3955                                     TLI.getPointerTy(DAG.getDataLayout()))));
 3959   Hi = DAG.getTruncStore(Ch, dl, Hi, Ptr, N->getPointerInfo(), HiVT, Alignment,
 3963   Ptr = DAG.getObjectPtrOffset(dl, Ptr, IncrementSize);
 3965   Lo = DAG.getTruncStore(Ch, dl, Lo, Ptr,
 3967                          EVT::getIntegerVT(*DAG.getContext(), ExcessBits),
 3969   return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo, Hi);
 3976   return DAG.getNode(ISD::TRUNCATE, SDLoc(N), N->getValueType(0), InL);
 3988   const fltSemantics &sem = DAG.EVTToAPFloatSemantics(DstVT);
 3992     SDValue SignedConv = DAG.getNode(ISD::SINT_TO_FP, dl, DstVT, Op);
 3993     SignedConv = TLI.LowerOperation(SignedConv, DAG);
 4016     SDValue SignSet = DAG.getSetCC(dl,
 4019                                    DAG.getConstant(0, dl, Hi.getValueType()),
 4024         DAG.getConstantPool(ConstantInt::get(*DAG.getContext(), FF.zext(64)),
 4024         DAG.getConstantPool(ConstantInt::get(*DAG.getContext(), FF.zext(64)),
 4025                             TLI.getPointerTy(DAG.getDataLayout()));
 4028     SDValue Zero = DAG.getIntPtrConstant(0, dl);
 4029     SDValue Four = DAG.getIntPtrConstant(4, dl);
 4030     if (DAG.getDataLayout().isBigEndian())
 4032     SDValue Offset = DAG.getSelect(dl, Zero.getValueType(), SignSet,
 4035     FudgePtr = DAG.getNode(ISD::ADD, dl, FudgePtr.getValueType(),
 4041     SDValue Fudge = DAG.getExtLoad(
 4042         ISD::EXTLOAD, dl, DstVT, DAG.getEntryNode(), FudgePtr,
 4043         MachinePointerInfo::getConstantPool(DAG.getMachineFunction()), MVT::f32,
 4045     return DAG.getNode(ISD::FADD, dl, DstVT, SignedConv, Fudge);
 4054   return TLI.makeLibCall(DAG, LC, DstVT, Op, CallOptions, dl).first;
 4059   SDValue Swap = DAG.getAtomic(ISD::ATOMIC_SWAP, dl,
 4071   EVT NOutVT = TLI.getTypeToTransformTo(*DAG.getContext(), OutVT);
 4090     SDValue Index = DAG.getNode(ISD::ADD, dl, BaseIdx.getValueType(),
 4091       BaseIdx, DAG.getConstant(i, dl, BaseIdx.getValueType()));
 4092     SDValue Ext = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl,
 4095     SDValue Op = DAG.getAnyExtOrTrunc(Ext, dl, NOutVTElem);
 4100   return DAG.getBuildVector(NOutVT, dl, Ops);
 4115   return DAG.getVectorShuffle(OutVT, dl, V0, V1, NewMask);
 4121   EVT NOutVT = TLI.getTypeToTransformTo(*DAG.getContext(), OutVT);
 4137       Op = DAG.getNode(ISD::ANY_EXTEND, dl, NOutVTElem, N->getOperand(i));
 4143   return DAG.getBuildVector(NOutVT, dl, Ops);
 4154   EVT NOutVT = TLI.getTypeToTransformTo(*DAG.getContext(), OutVT);
 4158   SDValue Op = DAG.getNode(ISD::ANY_EXTEND, dl, NOutVTElem, N->getOperand(0));
 4160   return DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, NOutVT, Op);
 4171   EVT NOutVT = TLI.getTypeToTransformTo(*DAG.getContext(), OutVT);
 4175   SDValue Op = DAG.getNode(ISD::ANY_EXTEND, dl, NOutElemVT, SplatVal);
 4177   return DAG.getNode(ISD::SPLAT_VECTOR, dl, NOutVT, Op);
 4184   EVT NOutVT = TLI.getTypeToTransformTo(*DAG.getContext(), OutVT);
 4206       SDValue Ext = DAG.getNode(
 4208           DAG.getConstant(j, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4208           DAG.getConstant(j, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4209       Ops[i * NumElem + j] = DAG.getAnyExtOrTrunc(Ext, dl, OutElemTy);
 4213   return DAG.getBuildVector(NOutVT, dl, Ops);
 4218   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 4244     return DAG.getNode(N->getOpcode(), dl, NVT, Promoted);
 4248   return DAG.getNode(N->getOpcode(), dl, NVT, N->getOperand(0));
 4253   EVT NOutVT = TLI.getTypeToTransformTo(*DAG.getContext(), OutVT);
 4261   SDValue ConvElem = DAG.getNode(ISD::ANY_EXTEND, dl,
 4263   return DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, NOutVT,
 4271   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 4272   return DAG.getNode(N->getOpcode(), dl, NVT, N->getOperand(0));
 4278   SDValue V1 = DAG.getZExtOrTrunc(N->getOperand(1), dl,
 4279                                   TLI.getVectorIdxTy(DAG.getDataLayout()));
 4280   SDValue Ext = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl,
 4286   return DAG.getAnyExtOrTrunc(Ext, dl, N->getValueType(0));
 4295   SDValue Ext = DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, OutVT, V0, N->getOperand(1));
 4296   return DAG.getNode(ISD::TRUNCATE, dl, N->getValueType(0), Ext);
 4316       SDValue Ex = DAG.getNode(
 4318           DAG.getConstant(i, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4318           DAG.getConstant(i, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4319       SDValue Tr = DAG.getNode(ISD::TRUNCATE, dl, RetSclrTy, Ex);
 4324   return DAG.getBuildVector(N->getValueType(0), dl, NewOps);
lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
   77   for (SDNode &Node : DAG.allnodes()) {
  195   HandleSDNode Dummy(DAG.getRoot());
  200   DAG.setRoot(SDValue());
  205   for (SDNode &Node : DAG.allnodes()) {
  225     LLVM_DEBUG(dbgs() << "Legalizing node: "; N->dump(&DAG));
  293       LLVM_DEBUG(dbgs() << "Analyzing operand: "; Op.dump(&DAG));
  367       LLVM_DEBUG(dbgs() << "Legally typed node: "; N->dump(&DAG);
  418   DAG.setRoot(Dummy.getValue());
  424   DAG.RemoveDeadNodes();
  429   for (SDNode &Node : DAG.allnodes()) {
  437           Node.dump(&DAG);
  446         Node.getOperand(i).dump(&DAG);
  463       Node.dump(&DAG); dbgs() << "\n";
  515     SDNode *M = DAG.UpdateNodeOperands(N, NewOps);
  641     DAG.ReplaceAllUsesOfValueWith(From, To);
  672           DAG.ReplaceAllUsesOfValueWith(OldVal, NewVal);
  687          TLI.getTypeToTransformTo(*DAG.getContext(), Op.getValueType()) &&
  696   DAG.transferDbgValues(Op, Result);
  701          TLI.getTypeToTransformTo(*DAG.getContext(), Op.getValueType()) &&
  712          TLI.getTypeToTransformTo(*DAG.getContext(), Op.getValueType()) &&
  745          TLI.getTypeToTransformTo(*DAG.getContext(), Op.getValueType()) &&
  754   if (DAG.getDataLayout().isBigEndian()) {
  755     DAG.transferDbgValues(Op, Hi, 0, Hi.getValueSizeInBits(), false);
  756     DAG.transferDbgValues(Op, Lo, Hi.getValueSizeInBits(),
  759     DAG.transferDbgValues(Op, Lo, 0, Lo.getValueSizeInBits(), false);
  760     DAG.transferDbgValues(Op, Hi, Lo.getValueSizeInBits(),
  782          TLI.getTypeToTransformTo(*DAG.getContext(), Op.getValueType()) &&
  825          TLI.getTypeToTransformTo(*DAG.getContext(), Op.getValueType()) &&
  842   return DAG.getNode(ISD::BITCAST, SDLoc(Op),
  843                      EVT::getIntegerVT(*DAG.getContext(), BitWidth), Op);
  850   EVT EltNVT = EVT::getIntegerVT(*DAG.getContext(), EltWidth);
  852   return DAG.getNode(ISD::BITCAST, SDLoc(Op),
  853                      EVT::getVectorVT(*DAG.getContext(), EltNVT, EltCnt), Op);
  861   SDValue StackPtr = DAG.CreateStackTemporary(Op.getValueType(), DestVT);
  864       DAG.getStore(DAG.getEntryNode(), dl, Op, StackPtr, MachinePointerInfo());
  864       DAG.getStore(DAG.getEntryNode(), dl, Op, StackPtr, MachinePointerInfo());
  866   return DAG.getLoad(DestVT, dl, Store, StackPtr, MachinePointerInfo());
  884     TLI.ReplaceNodeResults(N, Results, DAG);
  886     TLI.LowerOperationWrapper(N, Results, DAG);
  921   TLI.ReplaceNodeResults(N, Results, DAG);
  952   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), Pair.getValueType());
  953   Lo = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, NVT, Pair,
  954                    DAG.getIntPtrConstant(0, dl));
  955   Hi = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, NVT, Pair,
  956                    DAG.getIntPtrConstant(1, dl));
  966   EVT NVT = EVT::getIntegerVT(*DAG.getContext(),
  969   EVT ShiftAmtVT = TLI.getShiftAmountTy(NVT, DAG.getDataLayout(), false);
  970   Lo = DAG.getNode(ISD::ZERO_EXTEND, dlLo, NVT, Lo);
  971   Hi = DAG.getNode(ISD::ANY_EXTEND, dlHi, NVT, Hi);
  972   Hi = DAG.getNode(ISD::SHL, dlHi, NVT, Hi,
  973                    DAG.getConstant(LVT.getSizeInBits(), dlHi, ShiftAmtVT));
  974   return DAG.getNode(ISD::OR, dlHi, NVT, Lo, Hi);
  985     return TLI.makeLibCall(DAG, LC, N->getValueType(0), None, CallOptions,
  989     return TLI.makeLibCall(DAG, LC, N->getValueType(0), Op, CallOptions,
  993     return TLI.makeLibCall(DAG, LC, N->getValueType(0), Ops, CallOptions,
 1000   return TLI.makeLibCall(DAG, LC, N->getValueType(0), Ops, CallOptions, dl).first;
 1014     Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext());
 1021   SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
 1022                                          TLI.getPointerTy(DAG.getDataLayout()));
 1024   Type *RetTy = Node->getValueType(0).getTypeForEVT(*DAG.getContext());
 1026   TargetLowering::CallLoweringInfo CLI(DAG);
 1049   return DAG.getNode(ExtendCode, dl, BoolVT, Bool);
 1059   Lo = DAG.getNode(ISD::TRUNCATE, dl, LoVT, Op);
 1063       TLI.getScalarShiftAmountTy(DAG.getDataLayout(), Op.getValueType());
 1066   Hi = DAG.getNode(ISD::SRL, dl, Op.getValueType(), Op,
 1067                    DAG.getConstant(LoVT.getSizeInBits(), dl, ShiftAmountTy));
 1068   Hi = DAG.getNode(ISD::TRUNCATE, dl, HiVT, Hi);
 1076       EVT::getIntegerVT(*DAG.getContext(), Op.getValueSizeInBits() / 2);
lib/CodeGen/SelectionDAG/LegalizeTypes.h
   63     return TLI.getTypeAction(*DAG.getContext(), VT);
   68     return TLI.getTypeAction(*DAG.getContext(), VT) == TargetLowering::TypeLegal;
   77     return TLI.getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), VT);
   77     return TLI.getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), VT);
  196   SelectionDAG &getDAG() const { return DAG; }
  262     return DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, Op.getValueType(), Op,
  263                        DAG.getValueType(OldVT));
  271     return DAG.getZeroExtendInReg(Op, dl, OldVT.getScalarType());
  283       return DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, Op.getValueType(), Op,
  284                          DAG.getValueType(OldVT));
  285     return DAG.getZeroExtendInReg(Op, DL, OldVT.getScalarType());
lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
   42   EVT NOutVT = TLI.getTypeToTransformTo(*DAG.getContext(), OutVT);
   57       Lo = DAG.getNode(ISD::BITCAST, dl, NOutVT, Lo);
   58       Hi = DAG.getNode(ISD::BITCAST, dl, NOutVT, Hi);
   62       auto &DL = DAG.getDataLayout();
   68       Lo = DAG.getNode(ISD::BITCAST, dl, NOutVT, Lo);
   69       Hi = DAG.getNode(ISD::BITCAST, dl, NOutVT, Hi);
   74       if (TLI.hasBigEndianPartOrdering(OutVT, DAG.getDataLayout()))
   76       Lo = DAG.getNode(ISD::BITCAST, dl, NOutVT, Lo);
   77       Hi = DAG.getNode(ISD::BITCAST, dl, NOutVT, Hi);
   82       Lo = DAG.getNode(ISD::BITCAST, dl, NOutVT, Lo);
   83       Hi = DAG.getNode(ISD::BITCAST, dl, NOutVT, Hi);
   89       std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(InVT);
   90       std::tie(Lo, Hi) = DAG.SplitVector(InOp, dl, LoVT, HiVT);
   91       if (TLI.hasBigEndianPartOrdering(OutVT, DAG.getDataLayout()))
   93       Lo = DAG.getNode(ISD::BITCAST, dl, NOutVT, Lo);
   94       Hi = DAG.getNode(ISD::BITCAST, dl, NOutVT, Hi);
  104     EVT NVT = EVT::getVectorVT(*DAG.getContext(), ElemVT, NumElems);
  113       ElemVT = EVT::getIntegerVT(*DAG.getContext(), NewSizeInBits);
  114       NVT = EVT::getVectorVT(*DAG.getContext(), ElemVT, NumElems);
  118       SDValue CastInOp = DAG.getNode(ISD::BITCAST, dl, NVT, InOp);
  122         Vals.push_back(DAG.getNode(
  124             DAG.getConstant(i, dl, TLI.getVectorIdxTy(DAG.getDataLayout()))));
  124             DAG.getConstant(i, dl, TLI.getVectorIdxTy(DAG.getDataLayout()))));
  134         if (DAG.getDataLayout().isBigEndian())
  137         Vals.push_back(DAG.getNode(
  139             EVT::getIntegerVT(*DAG.getContext(), LHS.getValueSizeInBits() << 1),
  145       if (DAG.getDataLayout().isBigEndian())
  157   unsigned Alignment = DAG.getDataLayout().getPrefTypeAlignment(
  158       NOutVT.getTypeForEVT(*DAG.getContext()));
  159   SDValue StackPtr = DAG.CreateStackTemporary(InVT, Alignment);
  162       MachinePointerInfo::getFixedStack(DAG.getMachineFunction(), SPFI);
  165   SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, InOp, StackPtr, PtrInfo);
  165   SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, InOp, StackPtr, PtrInfo);
  168   Lo = DAG.getLoad(NOutVT, dl, Store, StackPtr, PtrInfo);
  172   StackPtr = DAG.getNode(ISD::ADD, dl, StackPtr.getValueType(), StackPtr,
  173                          DAG.getConstant(IncrementSize, dl,
  177   Hi = DAG.getLoad(NOutVT, dl, Store, StackPtr,
  182   if (TLI.hasBigEndianPartOrdering(OutVT, DAG.getDataLayout()))
  215   EVT NewVT = TLI.getTypeToTransformTo(*DAG.getContext(), OldVT);
  222     EVT NVecVT = EVT::getVectorVT(*DAG.getContext(), OldVT, OldElts);
  223     OldVec = DAG.getNode(ISD::ANY_EXTEND, dl, NVecVT, N->getOperand(0));
  226   SDValue NewVec = DAG.getNode(ISD::BITCAST, dl,
  227                                EVT::getVectorVT(*DAG.getContext(),
  234   Idx = DAG.getNode(ISD::ADD, dl, Idx.getValueType(), Idx, Idx);
  235   Lo = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, NewVT, NewVec, Idx);
  237   Idx = DAG.getNode(ISD::ADD, dl, Idx.getValueType(), Idx,
  238                     DAG.getConstant(1, dl, Idx.getValueType()));
  239   Hi = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, NewVT, NewVec, Idx);
  241   if (DAG.getDataLayout().isBigEndian())
  252   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), ValueVT);
  260   Lo = DAG.getLoad(NVT, dl, Chain, Ptr, LD->getPointerInfo(), Alignment,
  265   Ptr = DAG.getNode(ISD::ADD, dl, Ptr.getValueType(), Ptr,
  266                     DAG.getConstant(IncrementSize, dl, Ptr.getValueType()));
  267   Hi = DAG.getLoad(NVT, dl, Chain, Ptr,
  274   Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
  278   if (TLI.hasBigEndianPartOrdering(ValueVT, DAG.getDataLayout()))
  288   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), OVT);
  294   Lo = DAG.getVAArg(NVT, dl, Chain, Ptr, N->getOperand(2), Align);
  295   Hi = DAG.getVAArg(NVT, dl, Lo.getValue(1), Ptr, N->getOperand(2), 0);
  299   if (TLI.hasBigEndianPartOrdering(OVT, DAG.getDataLayout()))
  322     if (DAG.getDataLayout().isBigEndian())
  327     Ops.push_back(DAG.getNode(ISD::BITCAST, DL, EltVT, Op));
  346     EVT NVT = EVT::getVectorVT(*DAG.getContext(),
  347                                TLI.getTypeToTransformTo(*DAG.getContext(), OVT),
  360         DAG.getBuildVector(NVT, dl, makeArrayRef(Ops.data(), NumElts));
  361     return DAG.getNode(ISD::BITCAST, dl, N->getValueType(0), Vec);
  373   EVT NewVT = TLI.getTypeToTransformTo(*DAG.getContext(), OldVT);
  387     if (DAG.getDataLayout().isBigEndian())
  393   EVT NewVecVT = EVT::getVectorVT(*DAG.getContext(), NewVT, NewElts.size());
  394   SDValue NewVec = DAG.getBuildVector(NewVecVT, dl, NewElts);
  397   return DAG.getNode(ISD::BITCAST, dl, VecVT, NewVec);
  414   EVT NewEVT = TLI.getTypeToTransformTo(*DAG.getContext(), OldEVT);
  421   EVT NewVecVT = EVT::getVectorVT(*DAG.getContext(), NewEVT, NumElts*2);
  422   SDValue NewVec = DAG.getNode(ISD::BITCAST, dl,
  427   if (DAG.getDataLayout().isBigEndian())
  431   Idx = DAG.getNode(ISD::ADD, dl, Idx.getValueType(), Idx, Idx);
  432   NewVec = DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, NewVecVT, NewVec, Lo, Idx);
  433   Idx = DAG.getNode(ISD::ADD, dl,
  435                     DAG.getConstant(1, dl, Idx.getValueType()));
  436   NewVec =  DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, NewVecVT, NewVec, Hi, Idx);
  439   return DAG.getNode(ISD::BITCAST, dl, VecVT, NewVec);
  450   SDValue UndefVal = DAG.getUNDEF(Ops[0].getValueType());
  453   return DAG.getBuildVector(VT, dl, Ops);
  463   EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), ValueVT);
  475   if (TLI.hasBigEndianPartOrdering(ValueVT, DAG.getDataLayout()))
  478   Lo = DAG.getStore(Chain, dl, Lo, Ptr, St->getPointerInfo(), Alignment,
  481   Ptr = DAG.getObjectPtrOffset(dl, Ptr, IncrementSize);
  482   Hi = DAG.getStore(Chain, dl, Hi, Ptr,
  487   return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo, Hi);
  516       std::tie(CL, CH) = DAG.SplitVector(Res->getOperand(0), dl);
  532         std::tie(CL, CH) = DAG.SplitVector(Cond, dl);
  536       std::tie(CL, CH) = DAG.SplitVector(Cond, dl);
  539   Lo = DAG.getNode(N->getOpcode(), dl, LL.getValueType(), CL, LL, RL);
  540   Hi = DAG.getNode(N->getOpcode(), dl, LH.getValueType(), CH, LH, RH);
  550   Lo = DAG.getNode(ISD::SELECT_CC, dl, LL.getValueType(), N->getOperand(0),
  552   Hi = DAG.getNode(ISD::SELECT_CC, dl, LH.getValueType(), N->getOperand(0),
  558   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
  559   Lo = DAG.getUNDEF(LoVT);
  560   Hi = DAG.getUNDEF(HiVT);
lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
   35   LLVM_DEBUG(dbgs() << "Scalarize node result " << ResNo << ": "; N->dump(&DAG);
   43     N->dump(&DAG);
  202   return DAG.getNode(N->getOpcode(), SDLoc(N),
  210   return DAG.getNode(N->getOpcode(), SDLoc(N),
  218   return DAG.getNode(N->getOpcode(), SDLoc(N), Op0.getValueType(), Op0, Op1,
  244   SDValue Result = DAG.getNode(N->getOpcode(), dl, ValueVTs, Opers);
  264     DAG.ExtractVectorElements(N->getOperand(0), ElemsLHS);
  265     DAG.ExtractVectorElements(N->getOperand(1), ElemsRHS);
  270   SDVTList ScalarVTs = DAG.getVTList(
  272   SDNode *ScalarNode = DAG.getNode(
  281     SDValue OtherVal = DAG.getNode(
  302   return DAG.getNode(ISD::BITCAST, SDLoc(N),
  312     return DAG.getNode(ISD::TRUNCATE, SDLoc(N), EltVT, InOp);
  317   return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SDLoc(N),
  325   return DAG.getNode(ISD::FP_ROUND, SDLoc(N),
  332   SDValue Res = DAG.getNode(ISD::STRICT_FP_ROUND, SDLoc(N),
  343   return DAG.getNode(ISD::FPOWI, SDLoc(N),
  354     Op = DAG.getNode(ISD::TRUNCATE, SDLoc(N), EltVT, Op);
  361   SDValue Result = DAG.getLoad(
  364       N->getBasePtr(), DAG.getUNDEF(N->getBasePtr().getValueType()),
  392     Op = DAG.getNode(
  394         DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
  394         DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
  396   return DAG.getNode(N->getOpcode(), SDLoc(N), DestVT, Op);
  403   return DAG.getNode(N->getOpcode(), SDLoc(N), EltVT,
  404                      LHS, DAG.getValueType(ExtVT));
  418     Op = DAG.getNode(
  420         DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
  420         DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
  425     return DAG.getNode(ISD::ANY_EXTEND, DL, EltVT, Op);
  427     return DAG.getNode(ISD::SIGN_EXTEND, DL, EltVT, Op);
  429     return DAG.getNode(ISD::ZERO_EXTEND, DL, EltVT, Op);
  441     return DAG.getNode(ISD::TRUNCATE, SDLoc(N), EltVT, InOp);
  456     Cond = DAG.getNode(
  458         DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
  458         DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
  491         Cond = DAG.getNode(ISD::AND, SDLoc(N), CondVT,
  492                            Cond, DAG.getConstant(1, SDLoc(N), CondVT));
  498         Cond = DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), CondVT,
  499                            Cond, DAG.getValueType(MVT::i1));
  507     Cond = DAG.getNode(ISD::TRUNCATE, SDLoc(N), BoolVT, Cond);
  509   return DAG.getSelect(SDLoc(N),
  516   return DAG.getSelect(SDLoc(N),
  523   return DAG.getNode(ISD::SELECT_CC, SDLoc(N), LHS.getValueType(),
  530   return DAG.getUNDEF(N->getValueType(0).getVectorElementType());
  537     return DAG.getUNDEF(N->getValueType(0).getVectorElementType());
  558     LHS = DAG.getNode(
  560         DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
  560         DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
  561     RHS = DAG.getNode(
  563         DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
  563         DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
  567   SDValue Res = DAG.getNode(ISD::SETCC, DL, MVT::i1, LHS, RHS,
  573   return DAG.getNode(ExtendCode, DL, NVT, Res);
  582   LLVM_DEBUG(dbgs() << "Scalarize node operand " << OpNo << ": "; N->dump(&DAG);
  591       N->dump(&DAG);
  671   return DAG.getNode(ISD::BITCAST, SDLoc(N),
  681   SDValue Op = DAG.getNode(N->getOpcode(), SDLoc(N),
  685   return DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(N), N->getValueType(0), Op);
  694   SDValue Res = DAG.getNode(N->getOpcode(), SDLoc(N),
  702   return DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(N), N->getValueType(0), Res);
  710   return DAG.getBuildVector(N->getValueType(0), SDLoc(N), Ops);
  720               ? DAG.getNode(ISD::FP_EXTEND, SDLoc(N), VT, Res)
  721               : DAG.getNode(ISD::ANY_EXTEND, SDLoc(N), VT, Res);
  732   return DAG.getNode(ISD::SELECT, SDLoc(N), VT, ScalarCond, N->getOperand(1),
  753   SDValue Res = DAG.getNode(ISD::SETCC, DL, MVT::i1, LHS, RHS,
  761   Res = DAG.getNode(ExtendCode, DL, NVT, Res);
  763   return DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, VT, Res);
  774     return DAG.getTruncStore(
  780   return DAG.getStore(N->getChain(), dl, GetScalarizedVector(N->getOperand(1)),
  790   SDValue Res = DAG.getNode(ISD::FP_ROUND, SDLoc(N),
  793   return DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(N), N->getValueType(0), Res);
  800   SDValue Res = DAG.getNode(ISD::STRICT_FP_ROUND, SDLoc(N),
  807   return DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(N), N->getValueType(0), Res);
  814     Res = DAG.getNode(ISD::ANY_EXTEND, SDLoc(N), N->getValueType(0), Res);
  827   LLVM_DEBUG(dbgs() << "Split node result: "; N->dump(&DAG); dbgs() << "\n");
  838     N->dump(&DAG);
 1024   Lo = DAG.getNode(Opcode, dl, LHSLo.getValueType(), LHSLo, RHSLo, Flags);
 1025   Hi = DAG.getNode(Opcode, dl, LHSHi.getValueType(), LHSHi, RHSHi, Flags);
 1038   Lo = DAG.getNode(N->getOpcode(), dl, Op0Lo.getValueType(),
 1040   Hi = DAG.getNode(N->getOpcode(), dl, Op0Hi.getValueType(),
 1053   Lo = DAG.getNode(Opcode, dl, LHSLo.getValueType(), LHSLo, RHSLo, Op2);
 1054   Hi = DAG.getNode(Opcode, dl, LHSHi.getValueType(), LHSHi, RHSHi, Op2);
 1062   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1084       if (DAG.getDataLayout().isBigEndian())
 1086       Lo = DAG.getNode(ISD::BITCAST, dl, LoVT, Lo);
 1087       Hi = DAG.getNode(ISD::BITCAST, dl, HiVT, Hi);
 1095     Lo = DAG.getNode(ISD::BITCAST, dl, LoVT, Lo);
 1096     Hi = DAG.getNode(ISD::BITCAST, dl, HiVT, Hi);
 1101   EVT LoIntVT = EVT::getIntegerVT(*DAG.getContext(), LoVT.getSizeInBits());
 1102   EVT HiIntVT = EVT::getIntegerVT(*DAG.getContext(), HiVT.getSizeInBits());
 1103   if (DAG.getDataLayout().isBigEndian())
 1108   if (DAG.getDataLayout().isBigEndian())
 1110   Lo = DAG.getNode(ISD::BITCAST, dl, LoVT, Lo);
 1111   Hi = DAG.getNode(ISD::BITCAST, dl, HiVT, Hi);
 1118   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1121   Lo = DAG.getBuildVector(LoVT, dl, LoOps);
 1124   Hi = DAG.getBuildVector(HiVT, dl, HiOps);
 1139   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1142   Lo = DAG.getNode(ISD::CONCAT_VECTORS, dl, LoVT, LoOps);
 1145   Hi = DAG.getNode(ISD::CONCAT_VECTORS, dl, HiVT, HiOps);
 1155   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1157   Lo = DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, LoVT, Vec, Idx);
 1159   Hi = DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, HiVT, Vec,
 1160                    DAG.getConstant(IdxVal + LoVT.getVectorNumElements(), dl,
 1161                                    TLI.getVectorIdxTy(DAG.getDataLayout())));
 1186       std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1187       Lo = DAG.getNode(ISD::INSERT_SUBVECTOR, dl, LoVT, Lo, SubVec, Idx);
 1193   SDValue StackPtr = DAG.CreateStackTemporary(VecVT);
 1195       DAG.getStore(DAG.getEntryNode(), dl, Vec, StackPtr, MachinePointerInfo());
 1195       DAG.getStore(DAG.getEntryNode(), dl, Vec, StackPtr, MachinePointerInfo());
 1198   SDValue SubVecPtr = TLI.getVectorElementPointer(DAG, StackPtr, VecVT, Idx);
 1199   Type *VecType = VecVT.getTypeForEVT(*DAG.getContext());
 1200   unsigned Alignment = DAG.getDataLayout().getPrefTypeAlignment(VecType);
 1201   Store = DAG.getStore(Store, dl, SubVec, SubVecPtr, MachinePointerInfo());
 1205       DAG.getLoad(Lo.getValueType(), dl, Store, StackPtr, MachinePointerInfo());
 1210       DAG.getNode(ISD::ADD, dl, StackPtr.getValueType(), StackPtr,
 1211                   DAG.getConstant(IncrementSize, dl, StackPtr.getValueType()));
 1214   Hi = DAG.getLoad(Hi.getValueType(), dl, Store, StackPtr, MachinePointerInfo(),
 1222   Lo = DAG.getNode(ISD::FPOWI, dl, Lo.getValueType(), Lo, N->getOperand(1));
 1223   Hi = DAG.getNode(ISD::FPOWI, dl, Hi.getValueType(), Hi, N->getOperand(1));
 1238     std::tie(RHSLo, RHSHi) = DAG.SplitVector(RHS, SDLoc(RHS));
 1241   Lo = DAG.getNode(ISD::FCOPYSIGN, DL, LHSLo.getValueType(), LHSLo, RHSLo);
 1242   Hi = DAG.getNode(ISD::FCOPYSIGN, DL, LHSHi.getValueType(), LHSHi, RHSHi);
 1253     DAG.GetSplitDestVTs(cast<VTSDNode>(N->getOperand(1))->getVT());
 1255   Lo = DAG.getNode(N->getOpcode(), dl, LHSLo.getValueType(), LHSLo,
 1256                    DAG.getValueType(LoVT));
 1257   Hi = DAG.getNode(N->getOpcode(), dl, LHSHi.getValueType(), LHSHi,
 1258                    DAG.getValueType(HiVT));
 1272     std::tie(InLo, InHi) = DAG.SplitVectorOperand(N, 0);
 1278   std::tie(OutLoVT, OutHiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1293   InHi = DAG.getVectorShuffle(InLoVT, dl, InLo, DAG.getUNDEF(InLoVT), SplitHi);
 1293   InHi = DAG.getVectorShuffle(InLoVT, dl, InLo, DAG.getUNDEF(InLoVT), SplitHi);
 1295   Lo = DAG.getNode(Opcode, dl, OutLoVT, InLo);
 1296   Hi = DAG.getNode(Opcode, dl, OutHiVT, InHi);
 1305   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1327         std::tie(OpLo, OpHi) = DAG.SplitVectorOperand(N, i);
 1336   Lo = DAG.getNode(N->getOpcode(), dl, LoValueVTs, OpsLo);
 1337   Hi = DAG.getNode(N->getOpcode(), dl, HiValueVTs, OpsHi);
 1341   Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
 1378             DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, OperandEltVT, Operand,
 1379                     DAG.getConstant(i, dl, TLI.getVectorIdxTy(
 1380                           DAG.getDataLayout())));
 1385     SDValue Scalar = DAG.getNode(N->getOpcode(), dl, ChainVTs, Operands);
 1395     Scalars.push_back(DAG.getUNDEF(EltVT));
 1398   Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Chains);
 1402   EVT VecVT = EVT::getVectorVT(*DAG.getContext(), EltVT, ResNE);
 1403   return DAG.getBuildVector(VecVT, dl, Scalars);
 1412   std::tie(LoResVT, HiResVT) = DAG.GetSplitDestVTs(ResVT);
 1413   std::tie(LoOvVT, HiOvVT) = DAG.GetSplitDestVTs(OvVT);
 1420     std::tie(LoLHS, HiLHS) = DAG.SplitVectorOperand(N, 0);
 1421     std::tie(LoRHS, HiRHS) = DAG.SplitVectorOperand(N, 1);
 1425   SDVTList LoVTs = DAG.getVTList(LoResVT, LoOvVT);
 1426   SDVTList HiVTs = DAG.getVTList(HiResVT, HiOvVT);
 1427   SDNode *LoNode = DAG.getNode(Opcode, dl, LoVTs, LoLHS, LoRHS).getNode();
 1428   SDNode *HiNode = DAG.getNode(Opcode, dl, HiVTs, HiLHS, HiRHS).getNode();
 1440     SDValue OtherVal = DAG.getNode(
 1459       Lo = DAG.getNode(ISD::INSERT_VECTOR_ELT, dl,
 1463           DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, Hi.getValueType(), Hi, Elt,
 1464                       DAG.getConstant(IdxVal - LoNumElts, dl,
 1465                                       TLI.getVectorIdxTy(DAG.getDataLayout())));
 1478     VecVT = EVT::getVectorVT(*DAG.getContext(), EltVT,
 1480     Vec = DAG.getNode(ISD::ANY_EXTEND, dl, VecVT, Vec);
 1483       Elt = DAG.getNode(ISD::ANY_EXTEND, dl, EltVT, Elt);
 1487   SDValue StackPtr = DAG.CreateStackTemporary(VecVT);
 1488   auto &MF = DAG.getMachineFunction();
 1491   SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, Vec, StackPtr, PtrInfo);
 1491   SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, Vec, StackPtr, PtrInfo);
 1495   SDValue EltPtr = TLI.getVectorElementPointer(DAG, StackPtr, VecVT, Idx);
 1496   Type *VecType = VecVT.getTypeForEVT(*DAG.getContext());
 1497   unsigned Alignment = DAG.getDataLayout().getPrefTypeAlignment(VecType);
 1498   Store = DAG.getTruncStore(Store, dl, Elt, EltPtr,
 1502   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(VecVT);
 1505   Lo = DAG.getLoad(LoVT, dl, Store, StackPtr, PtrInfo);
 1509   StackPtr = DAG.getNode(ISD::ADD, dl, StackPtr.getValueType(), StackPtr,
 1510                          DAG.getConstant(IncrementSize, dl,
 1514   Hi = DAG.getLoad(HiVT, dl, Store, StackPtr,
 1519   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1521     Lo = DAG.getNode(ISD::TRUNCATE, dl, LoVT, Lo);
 1523     Hi = DAG.getNode(ISD::TRUNCATE, dl, HiVT, Hi);
 1530   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1531   Lo = DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, LoVT, N->getOperand(0));
 1532   Hi = DAG.getUNDEF(HiVT);
 1540   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(LD->getValueType(0));
 1545   SDValue Offset = DAG.getUNDEF(Ptr.getValueType());
 1552   std::tie(LoMemVT, HiMemVT) = DAG.GetSplitDestVTs(MemoryVT);
 1554   Lo = DAG.getLoad(ISD::UNINDEXED, ExtType, LoVT, dl, Ch, Ptr, Offset,
 1558   Ptr = DAG.getObjectPtrOffset(dl, Ptr, IncrementSize);
 1559   Hi = DAG.getLoad(ISD::UNINDEXED, ExtType, HiVT, dl, Ch, Ptr, Offset,
 1565   Ch = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
 1577   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(MLD->getValueType(0));
 1594       std::tie(MaskLo, MaskHi) = DAG.SplitVector(Mask, dl);
 1599   std::tie(LoMemVT, HiMemVT) = DAG.GetSplitDestVTs(MemoryVT);
 1605     std::tie(PassThruLo, PassThruHi) = DAG.SplitVector(PassThru, dl);
 1607   MachineMemOperand *MMO = DAG.getMachineFunction().
 1612   Lo = DAG.getMaskedLoad(LoVT, dl, Ch, Ptr, MaskLo, PassThruLo, LoMemVT, MMO,
 1615   Ptr = TLI.IncrementMemoryAddress(Ptr, MaskLo, dl, LoMemVT, DAG,
 1619   MMO = DAG.getMachineFunction().getMachineMemOperand(
 1624   Hi = DAG.getMaskedLoad(HiVT, dl, Ch, Ptr, MaskHi, PassThruHi, HiMemVT, MMO,
 1629   Ch = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
 1642   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(MGT->getValueType(0));
 1660       std::tie(MaskLo, MaskHi) = DAG.SplitVector(Mask, dl);
 1666   std::tie(LoMemVT, HiMemVT) = DAG.GetSplitDestVTs(MemoryVT);
 1672     std::tie(PassThruLo, PassThruHi) = DAG.SplitVector(PassThru, dl);
 1678     std::tie(IndexLo, IndexHi) = DAG.SplitVector(Index, dl);
 1680   MachineMemOperand *MMO = DAG.getMachineFunction().
 1686   Lo = DAG.getMaskedGather(DAG.getVTList(LoVT, MVT::Other), LoVT, dl, OpsLo,
 1686   Lo = DAG.getMaskedGather(DAG.getVTList(LoVT, MVT::Other), LoVT, dl, OpsLo,
 1690   Hi = DAG.getMaskedGather(DAG.getVTList(HiVT, MVT::Other), HiVT, dl, OpsHi,
 1690   Hi = DAG.getMaskedGather(DAG.getVTList(HiVT, MVT::Other), HiVT, dl, OpsHi,
 1695   Ch = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
 1711   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1719     std::tie(LL, LH) = DAG.SplitVectorOperand(N, 0);
 1725     std::tie(RL, RH) = DAG.SplitVectorOperand(N, 1);
 1727   Lo = DAG.getNode(N->getOpcode(), DL, LoVT, LL, RL, N->getOperand(2));
 1728   Hi = DAG.getNode(N->getOpcode(), DL, HiVT, LH, RH, N->getOperand(2));
 1736   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
 1745     std::tie(Lo, Hi) = DAG.SplitVectorOperand(N, OpNo);
 1748     Lo = DAG.getNode(N->getOpcode(), dl, LoVT, Lo, N->getOperand(1));
 1749     Hi = DAG.getNode(N->getOpcode(), dl, HiVT, Hi, N->getOperand(1));
 1751     Lo = DAG.getNode(N->getOpcode(), dl, { LoVT, MVT::Other }, 
 1753     Hi = DAG.getNode(N->getOpcode(), dl, { HiVT, MVT::Other }, 
 1755     SDValue NewChain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, 
 1759     Lo = DAG.getNode(N->getOpcode(), dl, { LoVT, MVT::Other }, 
 1761     Hi = DAG.getNode(N->getOpcode(), dl, { HiVT, MVT::Other }, 
 1765     SDValue NewChain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, 
 1769     Lo = DAG.getNode(N->getOpcode(), dl, LoVT, Lo);
 1770     Hi = DAG.getNode(N->getOpcode(), dl, HiVT, Hi);
 1780   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(DestVT);
 1798     LLVMContext &Ctx = *DAG.getContext();
 1803     std::tie(SplitLoVT, SplitHiVT) = DAG.GetSplitDestVTs(NewSrcVT);
 1807                  N->dump(&DAG); dbgs() << "\n");
 1810           DAG.getNode(N->getOpcode(), dl, NewSrcVT, N->getOperand(0));
 1812       std::tie(Lo, Hi) = DAG.SplitVector(NewSrc, dl);
 1814       Lo = DAG.getNode(N->getOpcode(), dl, LoVT, Lo);
 1815       Hi = DAG.getNode(N->getOpcode(), dl, HiVT, Hi);
 1901           SVOps.push_back(DAG.getUNDEF(EltVT));
 1909         SVOps.push_back(DAG.getNode(
 1911             DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout()))));
 1911             DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout()))));
 1915       Output = DAG.getBuildVector(NewVT, dl, SVOps);
 1918       Output = DAG.getUNDEF(NewVT);
 1923         DAG.getUNDEF(NewVT) : Inputs[InputUsed[1]];
 1925       Output =  DAG.getVectorShuffle(NewVT, dl, Op0, Op1, Ops);
 1934   EVT NVT = OVT.getHalfNumVectorElementsVT(*DAG.getContext());
 1940   const unsigned Alignment = DAG.getDataLayout().getABITypeAlignment(
 1941       NVT.getTypeForEVT(*DAG.getContext()));
 1943   Lo = DAG.getVAArg(NVT, dl, Chain, Ptr, SV, Alignment);
 1944   Hi = DAG.getVAArg(NVT, dl, Lo.getValue(1), Ptr, SV, Alignment);
 1962   LLVM_DEBUG(dbgs() << "Split node operand: "; N->dump(&DAG); dbgs() << "\n");
 1974       N->dump(&DAG);
 2091   std::tie(LoOpVT, HiOpVT) = DAG.GetSplitDestVTs(Src0VT);
 2095   std::tie(LoOp0, HiOp0) = DAG.SplitVector(Src0, DL);
 2096   std::tie(LoOp1, HiOp1) = DAG.SplitVector(Src1, DL);
 2097   std::tie(LoMask, HiMask) = DAG.SplitVector(Mask, DL);
 2100     DAG.getNode(ISD::VSELECT, DL, LoOpVT, LoMask, LoOp0, LoOp1);
 2102     DAG.getNode(ISD::VSELECT, DL, HiOpVT, HiMask, HiOp0, HiOp1);
 2104   return DAG.getNode(ISD::CONCAT_VECTORS, DL, Src0VT, LoSelect, HiSelect);
 2117   std::tie(LoOpVT, HiOpVT) = DAG.GetSplitDestVTs(VecVT);
 2145   SDValue Partial = DAG.getNode(CombineOpc, dl, LoOpVT, Lo, Hi, N->getFlags());
 2146   return DAG.getNode(N->getOpcode(), dl, ResVT, Partial, N->getFlags());
 2157   EVT OutVT = EVT::getVectorVT(*DAG.getContext(), ResVT.getVectorElementType(),
 2161     Lo = DAG.getNode(N->getOpcode(), dl, { OutVT, MVT::Other }, 
 2163     Hi = DAG.getNode(N->getOpcode(), dl, { OutVT, MVT::Other }, 
 2168     SDValue Ch = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
 2175     Lo = DAG.getNode(N->getOpcode(), dl, OutVT, Lo);
 2176     Hi = DAG.getNode(N->getOpcode(), dl, OutVT, Hi);
 2179   return DAG.getNode(ISD::CONCAT_VECTORS, dl, ResVT, Lo, Hi);
 2191   if (DAG.getDataLayout().isBigEndian())
 2194   return DAG.getNode(ISD::BITCAST, SDLoc(N), N->getValueType(0),
 2212     return DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, SubVT, Lo, Idx);
 2214     return DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, SubVT, Hi,
 2215                        DAG.getConstant(IdxVal - LoElts, dl,
 2234       return SDValue(DAG.UpdateNodeOperands(N, Lo, Idx), 0);
 2235     return SDValue(DAG.UpdateNodeOperands(N, Hi,
 2236                                   DAG.getConstant(IdxVal - LoElts, SDLoc(N),
 2249     VecVT = EVT::getVectorVT(*DAG.getContext(), EltVT,
 2251     Vec = DAG.getNode(ISD::ANY_EXTEND, dl, VecVT, Vec);
 2255   SDValue StackPtr = DAG.CreateStackTemporary(VecVT);
 2256   auto &MF = DAG.getMachineFunction();
 2259   SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, Vec, StackPtr, PtrInfo);
 2259   SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, Vec, StackPtr, PtrInfo);
 2262   StackPtr = TLI.getVectorElementPointer(DAG, StackPtr, VecVT, Idx);
 2267     SDValue Load = DAG.getLoad(EltVT, dl, Store, StackPtr,
 2268       MachinePointerInfo::getUnknownStack(DAG.getMachineFunction()));
 2269     return DAG.getZExtOrTrunc(Load, dl, N->getValueType(0));
 2272   return DAG.getExtLoad(
 2274       MachinePointerInfo::getUnknownStack(DAG.getMachineFunction()), EltVT);
 2284   return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), N->getValueType(0), Lo, Hi);
 2291   std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(MGT->getValueType(0));
 2306     std::tie(MaskLo, MaskHi) = DAG.SplitVector(Mask, dl);
 2310   std::tie(LoMemVT, HiMemVT) = DAG.GetSplitDestVTs(MemoryVT);
 2316     std::tie(PassThruLo, PassThruHi) = DAG.SplitVector(PassThru, dl);
 2322     std::tie(IndexLo, IndexHi) = DAG.SplitVector(Index, dl);
 2324   MachineMemOperand *MMO = DAG.getMachineFunction().
 2330   SDValue Lo = DAG.getMaskedGather(DAG.getVTList(LoVT, MVT::Other), LoVT, dl,
 2330   SDValue Lo = DAG.getMaskedGather(DAG.getVTList(LoVT, MVT::Other), LoVT, dl,
 2333   MMO = DAG.getMachineFunction().
 2340   SDValue Hi = DAG.getMaskedGather(DAG.getVTList(HiVT, MVT::Other), HiVT, dl,
 2340   SDValue Hi = DAG.getMaskedGather(DAG.getVTList(HiVT, MVT::Other), HiVT, dl,
 2345   Ch = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
 2352   SDValue Res = DAG.getNode(ISD::CONCAT_VECTORS, dl, MGT->getValueType(0), Lo,
 2369   std::tie(LoMemVT, HiMemVT) = DAG.GetSplitDestVTs(MemoryVT);
 2376     std::tie(DataLo, DataHi) = DAG.SplitVector(Data, DL);
 2386       std::tie(MaskLo, MaskHi) = DAG.SplitVector(Mask, DL);
 2390   MachineMemOperand *MMO = DAG.getMachineFunction().
 2395   Lo = DAG.getMaskedStore(Ch, DL, DataLo, Ptr, MaskLo, LoMemVT, MMO,
 2399   Ptr = TLI.IncrementMemoryAddress(Ptr, MaskLo, DL, LoMemVT, DAG,
 2403   MMO = DAG.getMachineFunction().getMachineMemOperand(
 2408   Hi = DAG.getMaskedStore(Ch, DL, DataHi, Ptr, MaskHi, HiMemVT, MMO,
 2413   return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Lo, Hi);
 2430   std::tie(LoMemVT, HiMemVT) = DAG.GetSplitDestVTs(MemoryVT);
 2437     std::tie(DataLo, DataHi) = DAG.SplitVector(Data, DL);
 2447       std::tie(MaskLo, MaskHi) = DAG.SplitVector(Mask, DL);
 2454     std::tie(IndexLo, IndexHi) = DAG.SplitVector(Index, DL);
 2457   MachineMemOperand *MMO = DAG.getMachineFunction().
 2463   Lo = DAG.getMaskedScatter(DAG.getVTList(MVT::Other), DataLo.getValueType(),
 2463   Lo = DAG.getMaskedScatter(DAG.getVTList(MVT::Other), DataLo.getValueType(),
 2466   MMO = DAG.getMachineFunction().
 2475   return DAG.getMaskedScatter(DAG.getVTList(MVT::Other), DataHi.getValueType(),
 2475   return DAG.getMaskedScatter(DAG.getVTList(MVT::Other), DataHi.getValueType(),
 2495   std::tie(LoMemVT, HiMemVT) = DAG.GetSplitDestVTs(MemoryVT);
 2499     return TLI.scalarizeVectorStore(N, DAG);
 2504     Lo = DAG.getTruncStore(Ch, DL, Lo, Ptr, N->getPointerInfo(), LoMemVT,
 2507     Lo = DAG.getStore(Ch, DL, Lo, Ptr, N->getPointerInfo(), Alignment, MMOFlags,
 2511   Ptr = DAG.getObjectPtrOffset(DL, Ptr, IncrementSize);
 2514     Hi = DAG.getTruncStore(Ch, DL, Hi, Ptr,
 2518     Hi = DAG.getStore(Ch, DL, Hi, Ptr,
 2522   return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Lo, Hi);
 2538       Elts.push_back(DAG.getNode(
 2540           DAG.getConstant(i, DL, TLI.getVectorIdxTy(DAG.getDataLayout()))));
 2540           DAG.getConstant(i, DL, TLI.getVectorIdxTy(DAG.getDataLayout()))));
 2544   return DAG.getBuildVector(N->getValueType(0), DL, Elts);
 2580   std::tie(LoOutVT, HiOutVT) = DAG.GetSplitDestVTs(OutVT);
 2594     FinalVT = FinalVT.getHalfNumVectorElementsVT(*DAG.getContext());
 2606     EVT::getIntegerVT(*DAG.getContext(), InElementSize/2);
 2607   EVT HalfVT = EVT::getVectorVT(*DAG.getContext(), HalfElementVT,
 2609   SDValue HalfLo = DAG.getNode(N->getOpcode(), DL, HalfVT, InLoVec);
 2610   SDValue HalfHi = DAG.getNode(N->getOpcode(), DL, HalfVT, InHiVec);
 2612   EVT InterVT = EVT::getVectorVT(*DAG.getContext(), HalfElementVT, NumElements);
 2613   SDValue InterVec = DAG.getNode(ISD::CONCAT_VECTORS, DL, InterVT, HalfLo,
 2620              ? DAG.getNode(ISD::FP_ROUND, DL, OutVT, InterVec,
 2621                            DAG.getTargetConstant(
 2622                                0, DL, TLI.getPointerTy(DAG.getDataLayout())))
 2623              : DAG.getNode(ISD::TRUNCATE, DL, OutVT, InterVec);
 2636   EVT PartResVT = EVT::getVectorVT(*DAG.getContext(), MVT::i1, PartElements);
 2637   EVT WideResVT = EVT::getVectorVT(*DAG.getContext(), MVT::i1, 2*PartElements);
 2639   LoRes = DAG.getNode(ISD::SETCC, DL, PartResVT, Lo0, Lo1, N->getOperand(2));
 2640   HiRes = DAG.getNode(ISD::SETCC, DL, PartResVT, Hi0, Hi1, N->getOperand(2));
 2641   SDValue Con = DAG.getNode(ISD::CONCAT_VECTORS, DL, WideResVT, LoRes, HiRes);
 2646   return DAG.getNode(ExtendCode, DL, N->getValueType(0), Con);
 2658   EVT OutVT = EVT::getVectorVT(*DAG.getContext(), ResVT.getVectorElementType(),
 2662     Lo = DAG.getNode(N->getOpcode(), DL, { OutVT, MVT::Other }, 
 2664     Hi = DAG.getNode(N->getOpcode(), DL, { OutVT, MVT::Other }, 
 2668     SDValue NewChain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, 
 2672     Lo = DAG.getNode(ISD::FP_ROUND, DL, OutVT, Lo, N->getOperand(1));
 2673     Hi = DAG.getNode(ISD::FP_ROUND, DL, OutVT, Hi, N->getOperand(1));
 2676   return DAG.getNode(ISD::CONCAT_VECTORS, DL, ResVT, Lo, Hi);
 2682   return DAG.UnrollVectorOp(N, N->getValueType(0).getVectorNumElements());
 2691   LLVM_DEBUG(dbgs() << "Widen node result " << ResNo << ": "; N->dump(&DAG);
 2703     N->dump(&DAG);
 2873     EVT WideVecVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 2876       Res = DAG.UnrollVectorOp(N, WideVecVT.getVectorNumElements());
 2910   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 2914   return DAG.getNode(N->getOpcode(), dl, WidenVT, InOp1, InOp2, InOp3);
 2920   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 2923   return DAG.getNode(N->getOpcode(), dl, WidenVT, InOp1, InOp2, N->getFlags());
 2929   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 2933   return DAG.getNode(N->getOpcode(), dl, WidenVT, InOp1, InOp2, InOp3,
 3022   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3029     VT = EVT::getVectorVT(*DAG.getContext(), WidenEltVT, NumElts);
 3036     return DAG.getNode(N->getOpcode(), dl, WidenVT, InOp1, InOp2, Flags);
 3041     return DAG.UnrollVectorOp(N, WidenVT.getVectorNumElements());
 3060       SDValue EOp1 = DAG.getNode(
 3062           DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3062           DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3063       SDValue EOp2 = DAG.getNode(
 3065           DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3065           DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3066       ConcatOps[ConcatEnd++] = DAG.getNode(Opcode, dl, VT, EOp1, EOp2, Flags);
 3072       VT = EVT::getVectorVT(*DAG.getContext(), WidenEltVT, NumElts);
 3077         SDValue EOp1 = DAG.getNode(
 3079             DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3079             DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3080         SDValue EOp2 = DAG.getNode(
 3082             DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3082             DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3083         ConcatOps[ConcatEnd++] = DAG.getNode(Opcode, dl, WidenEltVT,
 3090   return CollectOpsToWiden(DAG, TLI, ConcatOps, ConcatEnd, VT, MaxVT, WidenVT);
 3098   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3104     VT = EVT::getVectorVT(*DAG.getContext(), WidenEltVT, NumElts);
 3150           Op = DAG.getNode(
 3152             DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3152             DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3158       SDValue Oper = DAG.getNode(Opcode, dl, OperVT, EOps);
 3166       VT = EVT::getVectorVT(*DAG.getContext(), WidenEltVT, NumElts);
 3177             Op = DAG.getNode(
 3179               DAG.getConstant(Idx, dl, 
 3180                               TLI.getVectorIdxTy(DAG.getDataLayout())));
 3186         SDValue Oper = DAG.getNode(Opcode, dl, WidenVT, EOps);
 3199     NewChain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Chains);
 3202   return CollectOpsToWiden(DAG, TLI, ConcatOps, ConcatEnd, VT, MaxVT, WidenVT);
 3214     WideResVT = TLI.getTypeToTransformTo(*DAG.getContext(), ResVT);
 3216         *DAG.getContext(), OvVT.getVectorElementType(),
 3222     WideOvVT = TLI.getTypeToTransformTo(*DAG.getContext(), OvVT);
 3224         *DAG.getContext(), ResVT.getVectorElementType(),
 3227     SDValue Zero = DAG.getConstant(
 3228         0, DL, TLI.getVectorIdxTy(DAG.getDataLayout()));
 3229     WideLHS = DAG.getNode(
 3230         ISD::INSERT_SUBVECTOR, DL, WideResVT, DAG.getUNDEF(WideResVT),
 3232     WideRHS = DAG.getNode(
 3233         ISD::INSERT_SUBVECTOR, DL, WideResVT, DAG.getUNDEF(WideResVT),
 3237   SDVTList WideVTs = DAG.getVTList(WideResVT, WideOvVT);
 3238   SDNode *WideNode = DAG.getNode(
 3247     SDValue Zero = DAG.getConstant(
 3248         0, DL, TLI.getVectorIdxTy(DAG.getDataLayout()));
 3249     SDValue OtherVal = DAG.getNode(
 3261   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3266   EVT InWidenVT = EVT::getVectorVT(*DAG.getContext(), InEltVT, WidenNumElts);
 3277         return DAG.getNode(Opcode, DL, WidenVT, InOp);
 3278       return DAG.getNode(Opcode, DL, WidenVT, InOp, N->getOperand(1), Flags);
 3285         return DAG.getNode(ISD::ANY_EXTEND_VECTOR_INREG, DL, WidenVT, InOp);
 3287         return DAG.getNode(ISD::SIGN_EXTEND_VECTOR_INREG, DL, WidenVT, InOp);
 3289         return DAG.getNode(ISD::ZERO_EXTEND_VECTOR_INREG, DL, WidenVT, InOp);
 3302       SmallVector<SDValue, 16> Ops(NumConcat, DAG.getUNDEF(InVT));
 3304       SDValue InVec = DAG.getNode(ISD::CONCAT_VECTORS, DL, InWidenVT, Ops);
 3306         return DAG.getNode(Opcode, DL, WidenVT, InVec);
 3307       return DAG.getNode(Opcode, DL, WidenVT, InVec, N->getOperand(1), Flags);
 3311       SDValue InVal = DAG.getNode(
 3313           DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3313           DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3316         return DAG.getNode(Opcode, DL, WidenVT, InVal);
 3317       return DAG.getNode(Opcode, DL, WidenVT, InVal, N->getOperand(1), Flags);
 3323   SmallVector<SDValue, 16> Ops(WidenNumElts, DAG.getUNDEF(EltVT));
 3328     SDValue Val = DAG.getNode(
 3330         DAG.getConstant(i, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3330         DAG.getConstant(i, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3332       Ops[i] = DAG.getNode(Opcode, DL, EltVT, Val);
 3334       Ops[i] = DAG.getNode(Opcode, DL, EltVT, Val, N->getOperand(1), Flags);
 3337   return DAG.getBuildVector(WidenVT, DL, Ops);
 3345   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3359   SmallVector<SDValue, 16> Ops(WidenNumElts, DAG.getUNDEF(EltVT));
 3365     NewOps[1] = DAG.getNode(
 3367         DAG.getConstant(i, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3367         DAG.getConstant(i, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3368     Ops[i] = DAG.getNode(Opcode, DL, EltVTs, NewOps);
 3371   SDValue NewChain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, OpChains);
 3374   return DAG.getBuildVector(WidenVT, DL, Ops);
 3382   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3398         return DAG.getNode(Opcode, DL, WidenVT, InOp);
 3406     SDValue Val = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, InSVT, InOp,
 3407       DAG.getConstant(i, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3407       DAG.getConstant(i, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3410       Val = DAG.getNode(ISD::ANY_EXTEND, DL, WidenSVT, Val);
 3413       Val = DAG.getNode(ISD::SIGN_EXTEND, DL, WidenSVT, Val);
 3416       Val = DAG.getNode(ISD::ZERO_EXTEND, DL, WidenSVT, Val);
 3425     Ops.push_back(DAG.getUNDEF(WidenSVT));
 3427   return DAG.getBuildVector(WidenVT, DL, Ops);
 3437   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3438   return DAG.UnrollVectorOp(N, WidenVT.getVectorNumElements());
 3442   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3445   return DAG.getNode(N->getOpcode(), SDLoc(N), WidenVT, InOp, ShOp);
 3449   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3458   EVT ShWidenVT = EVT::getVectorVT(*DAG.getContext(),
 3464   return DAG.getNode(N->getOpcode(), SDLoc(N), WidenVT, InOp, ShOp);
 3469   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3471   return DAG.getNode(N->getOpcode(), SDLoc(N), WidenVT, InOp);
 3475   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3476   EVT ExtVT = EVT::getVectorVT(*DAG.getContext(),
 3481   return DAG.getNode(N->getOpcode(), SDLoc(N),
 3482                      WidenVT, WidenLHS, DAG.getValueType(ExtVT));
 3494   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 3512       return DAG.getNode(ISD::BITCAST, dl, WidenVT, InOp);
 3528       return DAG.getNode(ISD::BITCAST, dl, WidenVT, InOp);
 3543       NewInVT = EVT::getVectorVT(*DAG.getContext(), InEltVT,
 3546       NewInVT = EVT::getVectorVT(*DAG.getContext(), InVT, NewNumElts);
 3557         SmallVector<SDValue, 16> Ops(NewNumElts, DAG.getUNDEF(InVT));
 3560         NewVec = DAG.getNode(ISD::CONCAT_VECTORS, dl, NewInVT, Ops);
 3562         NewVec = DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, NewInVT, InOp);
 3564       return DAG.getNode(ISD::BITCAST, dl, WidenVT, NewVec);
 3581   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 3586   NewOps.append(WidenNumElts - NumElts, DAG.getUNDEF(EltVT));
 3588   return DAG.getBuildVector(WidenVT, dl, NewOps);
 3593   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3605       SDValue UndefVal = DAG.getUNDEF(InVT);
 3611       return DAG.getNode(ISD::CONCAT_VECTORS, dl, WidenVT, Ops);
 3615     if (WidenVT == TLI.getTypeToTransformTo(*DAG.getContext(), InVT)) {
 3634         return DAG.getVectorShuffle(WidenVT, dl,
 3651       Ops[Idx++] = DAG.getNode(
 3653           DAG.getConstant(j, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3653           DAG.getConstant(j, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 3655   SDValue UndefVal = DAG.getUNDEF(EltVT);
 3658   return DAG.getBuildVector(WidenVT, dl, Ops);
 3663   EVT      WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 3682     return DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, WidenVT, InOp, Idx);
 3692         DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, EltVT, InOp,
 3693                     DAG.getConstant(IdxVal + i, dl,
 3694                                     TLI.getVectorIdxTy(DAG.getDataLayout())));
 3696   SDValue UndefVal = DAG.getUNDEF(EltVT);
 3699   return DAG.getBuildVector(WidenVT, dl, Ops);
 3704   return DAG.getNode(ISD::INSERT_VECTOR_ELT, SDLoc(N),
 3727     NewChain = DAG.getNode(ISD::TokenFactor, SDLoc(LD), MVT::Other, LdChain);
 3738   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(),N->getValueType(0));
 3746   EVT WideMaskVT = EVT::getVectorVT(*DAG.getContext(),
 3751   SDValue Res = DAG.getMaskedLoad(WidenVT, dl, N->getChain(), N->getBasePtr(),
 3763   EVT WideVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3772   EVT WideMaskVT = EVT::getVectorVT(*DAG.getContext(),
 3779   EVT WideIndexVT = EVT::getVectorVT(*DAG.getContext(),
 3785   SDValue Res = DAG.getMaskedGather(DAG.getVTList(WideVT, MVT::Other),
 3785   SDValue Res = DAG.getMaskedGather(DAG.getVTList(WideVT, MVT::Other),
 3796   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 3797   return DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(N),
 3852   SDValue Mask = DAG.getNode(InMask->getOpcode(), SDLoc(InMask), MaskVT, Ops);
 3856   LLVMContext &Ctx = *DAG.getContext();
 3862     Mask = DAG.getNode(ISD::SIGN_EXTEND, SDLoc(Mask), ExtVT, Mask);
 3866     Mask = DAG.getNode(ISD::TRUNCATE, SDLoc(Mask), TruncVT, Mask);
 3876     MVT IdxTy = TLI.getVectorIdxTy(DAG.getDataLayout());
 3877     SDValue ZeroIdx = DAG.getConstant(0, SDLoc(Mask), IdxTy);
 3878     Mask = DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(Mask), ToMaskVT, Mask,
 3883     SmallVector<SDValue, 16> SubOps(NumSubVecs, DAG.getUNDEF(SubVT));
 3885     Mask = DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(Mask), ToMaskVT, SubOps);
 3899   LLVMContext &Ctx = *DAG.getContext();
 3994     Cond = DAG.getNode(Cond->getOpcode(), SDLoc(Cond), MaskVT, SETCC0, SETCC1);
 4001   return DAG.getNode(ISD::VSELECT, SDLoc(N), VSelVT, Mask, VSelOp1, VSelOp2);
 4005   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 4015     EVT CondWidenVT =  EVT::getVectorVT(*DAG.getContext(),
 4038   return DAG.getNode(N->getOpcode(), SDLoc(N),
 4045   return DAG.getNode(ISD::SELECT_CC, SDLoc(N),
 4051  EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 4052  return DAG.getUNDEF(WidenVT);
 4059   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
 4077   return DAG.getVectorShuffle(WidenVT, dl, InOp1, InOp2, NewMask);
 4084   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
 4090   EVT WidenInVT = EVT::getVectorVT(*DAG.getContext(),
 4108     InOp1 = DAG.WidenVector(InOp1, SDLoc(N));
 4109     InOp2 = DAG.WidenVector(InOp2, SDLoc(N));
 4118   return DAG.getNode(ISD::SETCC, SDLoc(N),
 4127   LLVM_DEBUG(dbgs() << "Widen node operand " << OpNo << ": "; N->dump(&DAG);
 4139     N->dump(&DAG);
 4240           InOp = DAG.getNode(
 4241               ISD::INSERT_SUBVECTOR, DL, FixedVT, DAG.getUNDEF(FixedVT), InOp,
 4242               DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4242               DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4244           InOp = DAG.getNode(
 4246               DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4246               DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4264     return DAG.getNode(ISD::ANY_EXTEND_VECTOR_INREG, DL, VT, InOp);
 4266     return DAG.getNode(ISD::SIGN_EXTEND_VECTOR_INREG, DL, VT, InOp);
 4268     return DAG.getNode(ISD::ZERO_EXTEND_VECTOR_INREG, DL, VT, InOp);
 4276   return DAG.UnrollVectorOp(N);
 4295   EVT WideVT = EVT::getVectorVT(*DAG.getContext(), EltVT,
 4300       Res = DAG.getNode(Opcode, dl, { WideVT, MVT::Other }, 
 4306       Res = DAG.getNode(Opcode, dl, WideVT, InOp);
 4307     return DAG.getNode(
 4309         DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4309         DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4320       NewOps[1] = DAG.getNode(
 4322           DAG.getConstant(i, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4322           DAG.getConstant(i, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4323       Ops[i] = DAG.getNode(Opcode, dl, { EltVT, MVT::Other }, NewOps);
 4326     SDValue NewChain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, OpChains);
 4330       Ops[i] = DAG.getNode(
 4332           DAG.getNode(
 4334               DAG.getConstant(i, dl, TLI.getVectorIdxTy(DAG.getDataLayout()))));
 4334               DAG.getConstant(i, dl, TLI.getVectorIdxTy(DAG.getDataLayout()))));
 4337   return DAG.getBuildVector(VT, dl, Ops);
 4352     EVT NewVT = EVT::getVectorVT(*DAG.getContext(), VT, NewNumElts);
 4354       SDValue BitOp = DAG.getNode(ISD::BITCAST, dl, NewVT, InOp);
 4355       return DAG.getNode(
 4357           DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4357           DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4370       EVT NewVT = EVT::getVectorVT(*DAG.getContext(), EltVT, NewNumElts);
 4372         SDValue BitOp = DAG.getNode(ISD::BITCAST, dl, NewVT, InOp);
 4373         return DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, VT, BitOp,
 4374             DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4374             DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4391   if (VT == TLI.getTypeToTransformTo(*DAG.getContext(), InVT)) {
 4415       Ops[Idx++] = DAG.getNode(
 4417           DAG.getConstant(j, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4417           DAG.getConstant(j, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4419   return DAG.getBuildVector(VT, dl, Ops);
 4424   return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N),
 4430   return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SDLoc(N),
 4440     return TLI.scalarizeVectorStore(ST, DAG);
 4451     return DAG.getNode(ISD::TokenFactor, SDLoc(ST), MVT::Other, StChain);
 4469     EVT WideMaskVT = EVT::getVectorVT(*DAG.getContext(),
 4475     EVT WideMaskVT = TLI.getTypeToTransformTo(*DAG.getContext(), MaskVT);
 4479     EVT WideVT = EVT::getVectorVT(*DAG.getContext(),
 4488   return DAG.getMaskedStore(MST->getChain(), dl, StVal, MST->getBasePtr(),
 4506   SDValue Res = DAG.getMaskedGather(MG->getVTList(), MG->getMemoryVT(), dl, Ops,
 4526     EVT WideIndexVT = EVT::getVectorVT(*DAG.getContext(),
 4532     EVT WideMaskVT = EVT::getVectorVT(*DAG.getContext(),
 4543   return DAG.getMaskedScatter(DAG.getVTList(MVT::Other),
 4543   return DAG.getMaskedScatter(DAG.getVTList(MVT::Other),
 4563     SVT = EVT::getVectorVT(*DAG.getContext(), MVT::i1,
 4566   SDValue WideSETCC = DAG.getNode(ISD::SETCC, SDLoc(N),
 4570   EVT ResVT = EVT::getVectorVT(*DAG.getContext(),
 4573   SDValue CC = DAG.getNode(
 4575       DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4575       DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4580   return DAG.getNode(ExtendCode, dl, VT, CC);
 4596     NeutralElem = DAG.getConstant(0, dl, ElemVT);
 4599     NeutralElem = DAG.getConstant(1, dl, ElemVT);
 4603     NeutralElem = DAG.getAllOnesConstant(dl, ElemVT);
 4606     NeutralElem = DAG.getConstant(
 4610     NeutralElem = DAG.getConstant(
 4614     NeutralElem = DAG.getConstantFP(0.0, dl, ElemVT);
 4617     NeutralElem = DAG.getConstantFP(1.0, dl, ElemVT);
 4620     NeutralElem = DAG.getConstantFP(
 4624     NeutralElem = DAG.getConstantFP(
 4633     Op = DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, WideVT, Op, NeutralElem,
 4634         DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4634         DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4636   return DAG.getNode(N->getOpcode(), dl, N->getValueType(0), Op, N->getFlags());
 4647   SDValue LeftIn = DAG.WidenVector(N->getOperand(1), SDLoc(N));
 4648   SDValue RightIn = DAG.WidenVector(N->getOperand(2), SDLoc(N));
 4651   SDValue Select = DAG.getNode(N->getOpcode(), DL, LeftIn.getValueType(), Cond,
 4653   return DAG.getNode(
 4655       DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4655       DAG.getConstant(0, DL, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4766   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(),LD->getValueType(0));
 4785   EVT NewVT = FindMemType(DAG, TLI, LdWidth, WidenVT, LdAlign, WidthDiff);
 4787   SDValue LdOp = DAG.getLoad(NewVT, dl, Chain, BasePtr, LD->getPointerInfo(),
 4795       EVT NewVecVT = EVT::getVectorVT(*DAG.getContext(), NewVT, NumElts);
 4796       SDValue VecOp = DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, NewVecVT, LdOp);
 4797       return DAG.getNode(ISD::BITCAST, dl, WidenVT, VecOp);
 4805     SDValue UndefVal = DAG.getUNDEF(NewVT);
 4809     return DAG.getNode(ISD::CONCAT_VECTORS, dl, WidenVT, ConcatOps);
 4822     BasePtr = DAG.getObjectPtrOffset(dl, BasePtr, Increment);
 4827       NewVT = FindMemType(DAG, TLI, LdWidth, WidenVT, LdAlign, WidthDiff);
 4829       L = DAG.getLoad(NewVT, dl, Chain, BasePtr,
 4841           Loads.push_back(DAG.getUNDEF(L->getValueType(0)));
 4844         L = DAG.getNode(ISD::CONCAT_VECTORS, dl, LdOp->getValueType(0), Loads);
 4847       L = DAG.getLoad(NewVT, dl, Chain, BasePtr,
 4863     return BuildVectorFromScalar(DAG, WidenVT, LdOps, 0, End);
 4879     ConcatOps[--Idx] = BuildVectorFromScalar(DAG, LdTy, LdOps, i + 1, End);
 4886       ConcatOps[End-1] = DAG.getNode(ISD::CONCAT_VECTORS, dl, NewLdTy,
 4895     return DAG.getNode(ISD::CONCAT_VECTORS, dl, WidenVT,
 4901   SDValue UndefVal = DAG.getUNDEF(LdTy);
 4909   return DAG.getNode(ISD::CONCAT_VECTORS, dl, WidenVT, WidenOps);
 4918   EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(),LD->getValueType(0));
 4939       DAG.getExtLoad(ExtType, dl, EltVT, Chain, BasePtr, LD->getPointerInfo(),
 4944     SDValue NewBasePtr = DAG.getObjectPtrOffset(dl, BasePtr, Offset);
 4945     Ops[i] = DAG.getExtLoad(ExtType, dl, EltVT, Chain, NewBasePtr,
 4952   SDValue UndefVal = DAG.getUNDEF(EltVT);
 4956   return DAG.getBuildVector(WidenVT, dl, Ops);
 4984     EVT NewVT = FindMemType(DAG, TLI, StWidth, ValVT);
 4990         SDValue EOp = DAG.getNode(
 4992             DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4992             DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 4993         StChain.push_back(DAG.getStore(
 5000         BasePtr = DAG.getObjectPtrOffset(dl, BasePtr, Increment);
 5005       EVT NewVecVT = EVT::getVectorVT(*DAG.getContext(), NewVT, NumElts);
 5006       SDValue VecOp = DAG.getNode(ISD::BITCAST, dl, NewVecVT, ValOp);
 5010         SDValue EOp = DAG.getNode(
 5012             DAG.getConstant(Idx++, dl,
 5013                             TLI.getVectorIdxTy(DAG.getDataLayout())));
 5014         StChain.push_back(DAG.getStore(
 5019         BasePtr = DAG.getObjectPtrOffset(dl, BasePtr, Increment);
 5054   SDValue EOp = DAG.getNode(
 5056       DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 5056       DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 5057   StChain.push_back(DAG.getTruncStore(Chain, dl, EOp, BasePtr,
 5062     SDValue NewBasePtr = DAG.getObjectPtrOffset(dl, BasePtr, Offset);
 5063     SDValue EOp = DAG.getNode(
 5065         DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 5065         DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 5066     StChain.push_back(DAG.getTruncStore(
 5093     SDValue FillVal = FillWithZeroes ? DAG.getConstant(0, dl, InVT) :
 5094       DAG.getUNDEF(InVT);
 5099     return DAG.getNode(ISD::CONCAT_VECTORS, dl, NVT, Ops);
 5103     return DAG.getNode(
 5105         DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 5105         DAG.getConstant(0, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 5113     Ops[Idx] = DAG.getNode(
 5115         DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 5115         DAG.getConstant(Idx, dl, TLI.getVectorIdxTy(DAG.getDataLayout())));
 5117   SDValue FillVal = FillWithZeroes ? DAG.getConstant(0, dl, EltVT) :
 5118     DAG.getUNDEF(EltVT);
 5121   return DAG.getBuildVector(NVT, dl, Ops);