Lines Matching refs:Ops

568                               ArrayRef<SDValue> Ops) {  in AddNodeIDOperands()  argument
569 for (auto& Op : Ops) { in AddNodeIDOperands()
577 ArrayRef<SDUse> Ops) { in AddNodeIDOperands() argument
578 for (auto& Op : Ops) { in AddNodeIDOperands()
1076 SDValue Ops[] = { Op }; in FindModifiedNodeSlot() local
1078 AddNodeIDNode(ID, N->getOpcode(), N->getVTList(), Ops); in FindModifiedNodeSlot()
1096 SDValue Ops[] = { Op1, Op2 }; in FindModifiedNodeSlot() local
1098 AddNodeIDNode(ID, N->getOpcode(), N->getVTList(), Ops); in FindModifiedNodeSlot()
1110 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N, ArrayRef<SDValue> Ops, in FindModifiedNodeSlot() argument
1116 AddNodeIDNode(ID, N->getOpcode(), N->getVTList(), Ops); in FindModifiedNodeSlot()
1433 SmallVector<SDValue, 8> Ops; in getConstant() local
1435 llvm::append_range(Ops, EltParts); in getConstant()
1438 getNode(ISD::BITCAST, DL, VT, getBuildVector(ViaVecVT, DL, Ops)); in getConstant()
1924 SDValue Ops[2] = { N1, N2 }; in getVectorShuffle() local
1925 AddNodeIDNode(ID, ISD::VECTOR_SHUFFLE, getVTList(VT), Ops); in getVectorShuffle()
1941 createOperands(N, Ops); in getVectorShuffle()
1997 SDValue Ops[] = { Root }; in getLabelNode() local
1998 AddNodeIDNode(ID, Opcode, getVTList(MVT::Other), Ops); in getLabelNode()
2006 createOperands(N, Ops); in getLabelNode()
2072 SDValue Ops[] = {Ptr}; in getAddrSpaceCast() local
2074 AddNodeIDNode(ID, ISD::ADDRSPACECAST, getVTList(VT), Ops); in getAddrSpaceCast()
2084 createOperands(N, Ops); in getAddrSpaceCast()
4500 ArrayRef<SDValue> Ops, in FoldBUILD_VECTOR() argument
4502 int NumOps = Ops.size(); in FoldBUILD_VECTOR()
4510 if (llvm::all_of(Ops, [](SDValue Op) { return Op.isUndef(); })) in FoldBUILD_VECTOR()
4517 if (Ops[i].getOpcode() != ISD::EXTRACT_VECTOR_ELT || in FoldBUILD_VECTOR()
4518 Ops[i].getOperand(0).getValueType() != VT || in FoldBUILD_VECTOR()
4519 (IdentitySrc && Ops[i].getOperand(0) != IdentitySrc) || in FoldBUILD_VECTOR()
4520 !isa<ConstantSDNode>(Ops[i].getOperand(1)) || in FoldBUILD_VECTOR()
4521 cast<ConstantSDNode>(Ops[i].getOperand(1))->getAPIntValue() != i) { in FoldBUILD_VECTOR()
4525 IdentitySrc = Ops[i].getOperand(0); in FoldBUILD_VECTOR()
4536 ArrayRef<SDValue> Ops, in foldCONCAT_VECTORS() argument
4538 assert(!Ops.empty() && "Can't concatenate an empty list of vectors!"); in foldCONCAT_VECTORS()
4539 assert(llvm::all_of(Ops, in foldCONCAT_VECTORS()
4540 [Ops](SDValue Op) { in foldCONCAT_VECTORS()
4541 return Ops[0].getValueType() == Op.getValueType(); in foldCONCAT_VECTORS()
4544 assert((Ops[0].getValueType().getVectorElementCount() * Ops.size()) == in foldCONCAT_VECTORS()
4548 if (Ops.size() == 1) in foldCONCAT_VECTORS()
4549 return Ops[0]; in foldCONCAT_VECTORS()
4552 if (llvm::all_of(Ops, [](SDValue Op) { return Op.isUndef(); })) in foldCONCAT_VECTORS()
4560 for (unsigned i = 0, e = Ops.size(); i != e; ++i) { in foldCONCAT_VECTORS()
4561 SDValue Op = Ops[i]; in foldCONCAT_VECTORS()
4589 for (SDValue Op : Ops) { in foldCONCAT_VECTORS()
4830 SDValue Ops = {Operand}; in getNode() local
4831 if (SDValue Fold = FoldConstantVectorArithmetic(Opcode, DL, VT, Ops)) in getNode()
4854 SDValue Ops[] = {Operand}; in getNode() local
4855 if (SDValue V = FoldBUILD_VECTOR(DL, VT, Ops, *this)) in getNode()
5074 SDValue Ops[] = {Operand}; in getNode() local
5077 AddNodeIDNode(ID, Opcode, VTs, Ops); in getNode()
5086 createOperands(N, Ops); in getNode()
5090 createOperands(N, Ops); in getNode()
5173 bool SelectionDAG::isUndef(unsigned Opcode, ArrayRef<SDValue> Ops) { in isUndef() argument
5181 assert(Ops.size() == 2 && "Div/rem should have 2 operands"); in isUndef()
5182 SDValue Divisor = Ops[1]; in isUndef()
5199 EVT VT, ArrayRef<SDValue> Ops) { in FoldConstantArithmetic() argument
5212 if (Ops.size() != 2) in FoldConstantArithmetic()
5215 if (isUndef(Opcode, Ops)) in FoldConstantArithmetic()
5218 SDNode *N1 = Ops[0].getNode(); in FoldConstantArithmetic()
5219 SDNode *N2 = Ops[1].getNode(); in FoldConstantArithmetic()
5341 ArrayRef<SDValue> Ops, in FoldConstantVectorArithmetic() argument
5349 if (isUndef(Opcode, Ops)) in FoldConstantVectorArithmetic()
5375 if (!llvm::all_of(Ops, IsConstantBuildVectorSplatVectorOrUndef) || in FoldConstantVectorArithmetic()
5376 !llvm::all_of(Ops, IsScalarOrSameVectorSize)) in FoldConstantVectorArithmetic()
5401 for (SDValue Op : Ops) { in FoldConstantVectorArithmetic()
5577 SDValue Ops[] = {N1, N2}; in getNode() local
5578 if (SDValue V = FoldBUILD_VECTOR(DL, VT, Ops, *this)) in getNode()
5583 SDValue Ops[] = {N1, N2}; in getNode() local
5584 if (SDValue V = foldCONCAT_VECTORS(DL, VT, Ops, *this)) in getNode()
5765 SmallVector<SDValue, 8> Ops; in getNode() local
5770 Ops.push_back(getUNDEF(OpVT)); in getNode()
5775 Ops.push_back(SignExtendInReg(Val, OpVT)); in getNode()
5777 return getBuildVector(VT, DL, Ops); in getNode()
6004 SDValue Ops[] = {N1, N2}; in getNode() local
6007 AddNodeIDNode(ID, Opcode, VTs, Ops); in getNode()
6016 createOperands(N, Ops); in getNode()
6020 createOperands(N, Ops); in getNode()
6064 SDValue Ops[] = {N1, N2, N3}; in getNode() local
6065 if (SDValue V = FoldBUILD_VECTOR(DL, VT, Ops, *this)) in getNode()
6070 SDValue Ops[] = {N1, N2, N3}; in getNode() local
6071 if (SDValue V = foldCONCAT_VECTORS(DL, VT, Ops, *this)) in getNode()
6088 SDValue Ops[] = {N1, N2, N3}; in getNode() local
6089 if (SDValue V = FoldConstantVectorArithmetic(Opcode, DL, VT, Ops)) { in getNode()
6168 SDValue Ops[] = {N1, N2, N3}; in getNode() local
6171 AddNodeIDNode(ID, Opcode, VTs, Ops); in getNode()
6180 createOperands(N, Ops); in getNode()
6184 createOperands(N, Ops); in getNode()
6195 SDValue Ops[] = { N1, N2, N3, N4 }; in getNode() local
6196 return getNode(Opcode, DL, VT, Ops); in getNode()
6202 SDValue Ops[] = { N1, N2, N3, N4, N5 }; in getNode() local
6203 return getNode(Opcode, DL, VT, Ops); in getNode()
7120 SDVTList VTList, ArrayRef<SDValue> Ops, in getAtomic() argument
7124 AddNodeIDNode(ID, Opcode, VTList, Ops); in getAtomic()
7134 createOperands(N, Ops); in getAtomic()
7149 SDValue Ops[] = {Chain, Ptr, Cmp, Swp}; in getAtomicCmpSwap() local
7150 return getAtomic(Opcode, dl, MemVT, VTs, Ops, MMO); in getAtomicCmpSwap()
7177 SDValue Ops[] = {Chain, Ptr, Val}; in getAtomic() local
7178 return getAtomic(Opcode, dl, MemVT, VTs, Ops, MMO); in getAtomic()
7187 SDValue Ops[] = {Chain, Ptr}; in getAtomic() local
7188 return getAtomic(Opcode, dl, MemVT, VTs, Ops, MMO); in getAtomic()
7192 SDValue SelectionDAG::getMergeValues(ArrayRef<SDValue> Ops, const SDLoc &dl) { in getMergeValues() argument
7193 if (Ops.size() == 1) in getMergeValues()
7194 return Ops[0]; in getMergeValues()
7197 VTs.reserve(Ops.size()); in getMergeValues()
7198 for (const SDValue &Op : Ops) in getMergeValues()
7200 return getNode(ISD::MERGE_VALUES, dl, getVTList(VTs), Ops); in getMergeValues()
7204 unsigned Opcode, const SDLoc &dl, SDVTList VTList, ArrayRef<SDValue> Ops, in getMemIntrinsicNode() argument
7216 return getMemIntrinsicNode(Opcode, dl, VTList, Ops, MemVT, MMO); in getMemIntrinsicNode()
7221 ArrayRef<SDValue> Ops, EVT MemVT, in getMemIntrinsicNode() argument
7234 AddNodeIDNode(ID, Opcode, VTList, Ops); in getMemIntrinsicNode()
7246 createOperands(N, Ops); in getMemIntrinsicNode()
7252 createOperands(N, Ops); in getMemIntrinsicNode()
7265 SDValue Ops[2] = { in getLifetimeNode() local
7272 AddNodeIDNode(ID, Opcode, VTs, Ops); in getLifetimeNode()
7282 createOperands(N, Ops); in getLifetimeNode()
7295 SDValue Ops[] = {Chain}; in getPseudoProbeNode() local
7297 AddNodeIDNode(ID, Opcode, VTs, Ops); in getPseudoProbeNode()
7306 createOperands(N, Ops); in getPseudoProbeNode()
7403 SDValue Ops[] = { Chain, Ptr, Offset }; in getLoad() local
7405 AddNodeIDNode(ID, ISD::LOAD, VTs, Ops); in getLoad()
7417 createOperands(N, Ops); in getLoad()
7504 SDValue Ops[] = { Chain, Val, Ptr, Undef }; in getStore() local
7506 AddNodeIDNode(ID, ISD::STORE, VTs, Ops); in getStore()
7518 createOperands(N, Ops); in getStore()
7570 SDValue Ops[] = { Chain, Val, Ptr, Undef }; in getTruncStore() local
7572 AddNodeIDNode(ID, ISD::STORE, VTs, Ops); in getTruncStore()
7584 createOperands(N, Ops); in getTruncStore()
7599 SDValue Ops[] = { ST->getChain(), ST->getValue(), Base, Offset }; in getIndexedStore() local
7601 AddNodeIDNode(ID, ISD::STORE, VTs, Ops); in getIndexedStore()
7612 createOperands(N, Ops); in getIndexedStore()
7632 SDValue Ops[] = {Chain, Base, Offset, Mask, PassThru}; in getMaskedLoad() local
7634 AddNodeIDNode(ID, ISD::MLOAD, VTs, Ops); in getMaskedLoad()
7646 createOperands(N, Ops); in getMaskedLoad()
7679 SDValue Ops[] = {Chain, Val, Base, Offset, Mask}; in getMaskedStore() local
7681 AddNodeIDNode(ID, ISD::MSTORE, VTs, Ops); in getMaskedStore()
7694 createOperands(N, Ops); in getMaskedStore()
7715 ArrayRef<SDValue> Ops, in getMaskedGather() argument
7719 assert(Ops.size() == 6 && "Incompatible number of operands"); in getMaskedGather()
7722 AddNodeIDNode(ID, ISD::MGATHER, VTs, Ops); in getMaskedGather()
7733 IndexType = TLI->getCanonicalIndexType(IndexType, MemVT, Ops[4]); in getMaskedGather()
7736 createOperands(N, Ops); in getMaskedGather()
7762 ArrayRef<SDValue> Ops, in getMaskedScatter() argument
7766 assert(Ops.size() == 6 && "Incompatible number of operands"); in getMaskedScatter()
7769 AddNodeIDNode(ID, ISD::MSCATTER, VTs, Ops); in getMaskedScatter()
7780 IndexType = TLI->getCanonicalIndexType(IndexType, MemVT, Ops[4]); in getMaskedScatter()
7783 createOperands(N, Ops); in getMaskedScatter()
7908 SDValue Ops[] = { Chain, Ptr, SV, getTargetConstant(Align, dl, MVT::i32) }; in getVAArg() local
7909 return getNode(ISD::VAARG, dl, getVTList(VT, MVT::Other), Ops); in getVAArg()
7913 ArrayRef<SDUse> Ops) { in getNode() argument
7914 switch (Ops.size()) { in getNode()
7916 case 1: return getNode(Opcode, DL, VT, static_cast<const SDValue>(Ops[0])); in getNode()
7917 case 2: return getNode(Opcode, DL, VT, Ops[0], Ops[1]); in getNode()
7918 case 3: return getNode(Opcode, DL, VT, Ops[0], Ops[1], Ops[2]); in getNode()
7924 SmallVector<SDValue, 8> NewOps(Ops.begin(), Ops.end()); in getNode()
7929 ArrayRef<SDValue> Ops) { in getNode() argument
7933 return getNode(Opcode, DL, VT, Ops, Flags); in getNode()
7937 ArrayRef<SDValue> Ops, const SDNodeFlags Flags) { in getNode() argument
7938 unsigned NumOps = Ops.size(); in getNode()
7941 case 1: return getNode(Opcode, DL, VT, Ops[0], Flags); in getNode()
7942 case 2: return getNode(Opcode, DL, VT, Ops[0], Ops[1], Flags); in getNode()
7943 case 3: return getNode(Opcode, DL, VT, Ops[0], Ops[1], Ops[2], Flags); in getNode()
7948 for (auto &Op : Ops) in getNode()
7957 if (SDValue V = FoldBUILD_VECTOR(DL, VT, Ops, *this)) in getNode()
7961 if (SDValue V = foldCONCAT_VECTORS(DL, VT, Ops, *this)) in getNode()
7966 assert(Ops[0].getValueType() == Ops[1].getValueType() && in getNode()
7968 assert(Ops[2].getValueType() == Ops[3].getValueType() && in getNode()
7970 assert(Ops[2].getValueType() == VT && in getNode()
7975 assert(Ops[2].getValueType() == Ops[3].getValueType() && in getNode()
7986 AddNodeIDNode(ID, Opcode, VTs, Ops); in getNode()
7993 createOperands(N, Ops); in getNode()
7998 createOperands(N, Ops); in getNode()
8009 ArrayRef<EVT> ResultTys, ArrayRef<SDValue> Ops) { in getNode() argument
8010 return getNode(Opcode, DL, getVTList(ResultTys), Ops); in getNode()
8014 ArrayRef<SDValue> Ops) { in getNode() argument
8018 return getNode(Opcode, DL, VTList, Ops, Flags); in getNode()
8022 ArrayRef<SDValue> Ops, const SDNodeFlags Flags) { in getNode() argument
8024 return getNode(Opcode, DL, VTList.VTs[0], Ops); in getNode()
8027 for (auto &Op : Ops) in getNode()
8034 assert(VTList.NumVTs == 2 && Ops.size() == 2 && in getNode()
8037 Ops[1].getValueType().isFloatingPoint() && "Invalid FP cast!"); in getNode()
8038 assert(VTList.VTs[0].isVector() == Ops[1].getValueType().isVector() && in getNode()
8043 Ops[1].getValueType().getVectorNumElements()) && in getNode()
8045 assert(Ops[1].getValueType().bitsLT(VTList.VTs[0]) && in getNode()
8049 assert(VTList.NumVTs == 2 && Ops.size() == 3 && "Invalid STRICT_FP_ROUND!"); in getNode()
8050 assert(VTList.VTs[0].isVector() == Ops[1].getValueType().isVector() && in getNode()
8055 Ops[1].getValueType().getVectorNumElements()) && in getNode()
8058 Ops[1].getValueType().isFloatingPoint() && in getNode()
8059 VTList.VTs[0].bitsLT(Ops[1].getValueType()) && in getNode()
8060 isa<ConstantSDNode>(Ops[2]) && in getNode()
8061 (cast<ConstantSDNode>(Ops[2])->getZExtValue() == 0 || in getNode()
8062 cast<ConstantSDNode>(Ops[2])->getZExtValue() == 1) && in getNode()
8091 AddNodeIDNode(ID, Opcode, VTList, Ops); in getNode()
8097 createOperands(N, Ops); in getNode()
8101 createOperands(N, Ops); in getNode()
8118 SDValue Ops[] = { N1 }; in getNode() local
8119 return getNode(Opcode, DL, VTList, Ops); in getNode()
8124 SDValue Ops[] = { N1, N2 }; in getNode() local
8125 return getNode(Opcode, DL, VTList, Ops); in getNode()
8130 SDValue Ops[] = { N1, N2, N3 }; in getNode() local
8131 return getNode(Opcode, DL, VTList, Ops); in getNode()
8136 SDValue Ops[] = { N1, N2, N3, N4 }; in getNode() local
8137 return getNode(Opcode, DL, VTList, Ops); in getNode()
8143 SDValue Ops[] = { N1, N2, N3, N4, N5 }; in getNode() local
8144 return getNode(Opcode, DL, VTList, Ops); in getNode()
8293 SDValue Ops[] = { Op1, Op2, Op3 }; in UpdateNodeOperands() local
8294 return UpdateNodeOperands(N, Ops); in UpdateNodeOperands()
8300 SDValue Ops[] = { Op1, Op2, Op3, Op4 }; in UpdateNodeOperands() local
8301 return UpdateNodeOperands(N, Ops); in UpdateNodeOperands()
8307 SDValue Ops[] = { Op1, Op2, Op3, Op4, Op5 }; in UpdateNodeOperands() local
8308 return UpdateNodeOperands(N, Ops); in UpdateNodeOperands()
8312 UpdateNodeOperands(SDNode *N, ArrayRef<SDValue> Ops) { in UpdateNodeOperands() argument
8313 unsigned NumOps = Ops.size(); in UpdateNodeOperands()
8318 if (std::equal(Ops.begin(), Ops.end(), N->op_begin())) in UpdateNodeOperands()
8323 if (SDNode *Existing = FindModifiedNodeSlot(N, Ops, InsertPos)) in UpdateNodeOperands()
8333 if (N->OperandList[i] != Ops[i]) in UpdateNodeOperands()
8334 N->OperandList[i].set(Ops[i]); in UpdateNodeOperands()
8386 SDValue Ops[] = { Op1 }; in SelectNodeTo() local
8387 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
8394 SDValue Ops[] = { Op1, Op2 }; in SelectNodeTo() local
8395 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
8402 SDValue Ops[] = { Op1, Op2, Op3 }; in SelectNodeTo() local
8403 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
8407 EVT VT, ArrayRef<SDValue> Ops) { in SelectNodeTo() argument
8409 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
8413 EVT VT1, EVT VT2, ArrayRef<SDValue> Ops) { in SelectNodeTo() argument
8415 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
8426 ArrayRef<SDValue> Ops) { in SelectNodeTo() argument
8428 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
8435 SDValue Ops[] = { Op1, Op2 }; in SelectNodeTo() local
8436 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
8440 SDVTList VTs,ArrayRef<SDValue> Ops) { in SelectNodeTo() argument
8441 SDNode *New = MorphNodeTo(N, ~MachineOpc, VTs, Ops); in SelectNodeTo()
8485 SDVTList VTs, ArrayRef<SDValue> Ops) { in MorphNodeTo() argument
8490 AddNodeIDNode(ID, Opc, VTs, Ops); in MorphNodeTo()
8520 createOperands(N, Ops); in MorphNodeTo()
8557 SmallVector<SDValue, 3> Ops; in mutateStrictFPToFP() local
8559 Ops.push_back(Node->getOperand(i)); in mutateStrictFPToFP()
8562 SDNode *Res = MorphNodeTo(Node, NewOpc, VTs, Ops); in mutateStrictFPToFP()
8594 SDValue Ops[] = { Op1 }; in getMachineNode() local
8595 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8601 SDValue Ops[] = { Op1, Op2 }; in getMachineNode() local
8602 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8609 SDValue Ops[] = { Op1, Op2, Op3 }; in getMachineNode() local
8610 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8614 EVT VT, ArrayRef<SDValue> Ops) { in getMachineNode() argument
8616 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8623 SDValue Ops[] = { Op1, Op2 }; in getMachineNode() local
8624 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8631 SDValue Ops[] = { Op1, Op2, Op3 }; in getMachineNode() local
8632 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8637 ArrayRef<SDValue> Ops) { in getMachineNode() argument
8639 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8646 SDValue Ops[] = { Op1, Op2 }; in getMachineNode() local
8647 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8655 SDValue Ops[] = { Op1, Op2, Op3 }; in getMachineNode() local
8656 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8661 ArrayRef<SDValue> Ops) { in getMachineNode() argument
8663 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8668 ArrayRef<SDValue> Ops) { in getMachineNode() argument
8670 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
8675 ArrayRef<SDValue> Ops) { in getMachineNode() argument
8682 AddNodeIDNode(ID, ~Opcode, VTs, Ops); in getMachineNode()
8691 createOperands(N, Ops); in getMachineNode()
8724 ArrayRef<SDValue> Ops) { in getNodeIfExists() argument
8728 return getNodeIfExists(Opcode, VTList, Ops, Flags); in getNodeIfExists()
8732 ArrayRef<SDValue> Ops, in getNodeIfExists() argument
8736 AddNodeIDNode(ID, Opcode, VTList, Ops); in getNodeIfExists()
8748 ArrayRef<SDValue> Ops) { in doesNodeExist() argument
8751 AddNodeIDNode(ID, Opcode, VTList, Ops); in doesNodeExist()
10551 SDUse *Ops = OperandRecycler.allocate( in createOperands() local
10556 Ops[I].setUser(Node); in createOperands()
10557 Ops[I].setInitial(Vals[I]); in createOperands()
10558 if (Ops[I].Val.getValueType() != MVT::Other) // Skip Chain. It does not carry divergence. in createOperands()
10559 IsDivergent |= Ops[I].getNode()->isDivergent(); in createOperands()
10562 Node->OperandList = Ops; in createOperands()