Lines Matching defs:VTList
688 static void AddNodeIDValueTypes(FoldingSetNodeID &ID, SDVTList VTList) {
689 ID.AddPointer(VTList.VTs);
711 SDVTList VTList, ArrayRef<SDValue> OpList) {
713 AddNodeIDValueTypes(ID, VTList);
8636 SDVTList VTList, ArrayRef<SDValue> Ops,
8640 AddNodeIDNode(ID, Opcode, VTList, Ops);
8650 VTList, MemVT, MMO);
8725 unsigned Opcode, const SDLoc &dl, SDVTList VTList, ArrayRef<SDValue> Ops,
8736 return getMemIntrinsicNode(Opcode, dl, VTList, Ops, MemVT, MMO);
8740 SDVTList VTList,
8752 if (VTList.VTs[VTList.NumVTs-1] != MVT::Glue) {
8754 AddNodeIDNode(ID, Opcode, VTList, Ops);
8756 Opcode, dl.getIROrder(), VTList, MemVT, MMO));
8767 VTList, MemVT, MMO);
8773 VTList, MemVT, MMO);
10154 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10159 return getNode(Opcode, DL, VTList, Ops, Flags);
10162 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10164 if (VTList.NumVTs == 1)
10165 return getNode(Opcode, DL, VTList.VTs[0], Ops, Flags);
10178 assert(VTList.NumVTs == 2 && Ops.size() == 2 &&
10180 assert(VTList.VTs[0].isInteger() && VTList.VTs[1].isInteger() &&
10182 Ops[0].getValueType() == VTList.VTs[0] &&
10191 SDValue ZeroOverFlow = getConstant(0, DL, VTList.VTs[1]);
10192 return getNode(ISD::MERGE_VALUES, DL, VTList, {N1, ZeroOverFlow}, Flags);
10195 if (VTList.VTs[0].isVector() &&
10196 VTList.VTs[0].getVectorElementType() == MVT::i1 &&
10197 VTList.VTs[1].getVectorElementType() == MVT::i1) {
10202 return getNode(ISD::MERGE_VALUES, DL, VTList,
10203 {getNode(ISD::XOR, DL, VTList.VTs[0], F1, F2),
10204 getNode(ISD::AND, DL, VTList.VTs[1], F1, F2)},
10208 SDValue NotF1 = getNOT(DL, F1, VTList.VTs[0]);
10209 return getNode(ISD::MERGE_VALUES, DL, VTList,
10210 {getNode(ISD::XOR, DL, VTList.VTs[0], F1, F2),
10211 getNode(ISD::AND, DL, VTList.VTs[1], NotF1, F2)},
10221 assert(VTList.NumVTs == 2 && Ops.size() == 3 &&
10223 assert(VTList.VTs[0].isInteger() && VTList.VTs[1].isInteger() &&
10225 Ops[0].getValueType() == VTList.VTs[0] &&
10226 Ops[2].getValueType() == VTList.VTs[1] &&
10231 assert(VTList.NumVTs == 2 && Ops.size() == 2 && "Invalid mul lo/hi op!");
10232 assert(VTList.VTs[0].isInteger() && VTList.VTs[0] == VTList.VTs[1] &&
10233 VTList.VTs[0] == Ops[0].getValueType() &&
10234 VTList.VTs[0] == Ops[1].getValueType() &&
10240 unsigned Width = VTList.VTs[0].getScalarSizeInBits();
10254 getConstant(Val.extractBits(Width, Width), DL, VTList.VTs[0]);
10255 SDValue Lo = getConstant(Val.trunc(Width), DL, VTList.VTs[0]);
10256 return getNode(ISD::MERGE_VALUES, DL, VTList, {Lo, Hi}, Flags);
10261 assert(VTList.NumVTs == 2 && Ops.size() == 1 && "Invalid ffrexp op!");
10262 assert(VTList.VTs[0].isFloatingPoint() && VTList.VTs[1].isInteger() &&
10263 VTList.VTs[0] == Ops[0].getValueType() && "frexp type mismatch");
10269 SDValue Result0 = getConstantFP(FrexpMant, DL, VTList.VTs[0]);
10271 getConstant(FrexpMant.isFinite() ? FrexpExp : 0, DL, VTList.VTs[1]);
10272 return getNode(ISD::MERGE_VALUES, DL, VTList, {Result0, Result1}, Flags);
10278 assert(VTList.NumVTs == 2 && Ops.size() == 2 &&
10280 assert(VTList.VTs[0].isFloatingPoint() &&
10282 assert(VTList.VTs[0].isVector() == Ops[1].getValueType().isVector() &&
10285 assert((!VTList.VTs[0].isVector() ||
10286 VTList.VTs[0].getVectorElementCount() ==
10289 assert(Ops[1].getValueType().bitsLT(VTList.VTs[0]) &&
10293 assert(VTList.NumVTs == 2 && Ops.size() == 3 && "Invalid STRICT_FP_ROUND!");
10294 assert(VTList.VTs[0].isVector() == Ops[1].getValueType().isVector() &&
10297 assert((!VTList.VTs[0].isVector() ||
10298 VTList.VTs[0].getVectorElementCount() ==
10301 assert(VTList.VTs[0].isFloatingPoint() &&
10303 VTList.VTs[0].bitsLT(Ops[1].getValueType()) &&
10332 if (VTList.VTs[VTList.NumVTs-1] != MVT::Glue) {
10334 AddNodeIDNode(ID, Opcode, VTList, Ops);
10339 N = newSDNode<SDNode>(Opcode, DL.getIROrder(), DL.getDebugLoc(), VTList);
10343 N = newSDNode<SDNode>(Opcode, DL.getIROrder(), DL.getDebugLoc(), VTList);
10355 SDVTList VTList) {
10356 return getNode(Opcode, DL, VTList, std::nullopt);
10359 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10362 return getNode(Opcode, DL, VTList, Ops);
10365 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10368 return getNode(Opcode, DL, VTList, Ops);
10371 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10374 return getNode(Opcode, DL, VTList, Ops);
10377 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10380 return getNode(Opcode, DL, VTList, Ops);
10383 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10387 return getNode(Opcode, DL, VTList, Ops);
10966 SDNode *SelectionDAG::getNodeIfExists(unsigned Opcode, SDVTList VTList,
10971 return getNodeIfExists(Opcode, VTList, Ops, Flags);
10974 SDNode *SelectionDAG::getNodeIfExists(unsigned Opcode, SDVTList VTList,
10977 if (VTList.VTs[VTList.NumVTs - 1] != MVT::Glue) {
10979 AddNodeIDNode(ID, Opcode, VTList, Ops);
10990 bool SelectionDAG::doesNodeExist(unsigned Opcode, SDVTList VTList,
10992 if (VTList.VTs[VTList.NumVTs - 1] != MVT::Glue) {
10994 AddNodeIDNode(ID, Opcode, VTList, Ops);