Lines Matching refs:Ops
453 ArrayRef<SDValue> Ops) { in AddNodeIDOperands() argument
454 for (auto& Op : Ops) { in AddNodeIDOperands()
462 ArrayRef<SDUse> Ops) { in AddNodeIDOperands() argument
463 for (auto& Op : Ops) { in AddNodeIDOperands()
937 SDValue Ops[] = { Op }; in FindModifiedNodeSlot() local
939 AddNodeIDNode(ID, N->getOpcode(), N->getVTList(), Ops); in FindModifiedNodeSlot()
957 SDValue Ops[] = { Op1, Op2 }; in FindModifiedNodeSlot() local
959 AddNodeIDNode(ID, N->getOpcode(), N->getVTList(), Ops); in FindModifiedNodeSlot()
971 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N, ArrayRef<SDValue> Ops, in FindModifiedNodeSlot() argument
977 AddNodeIDNode(ID, N->getOpcode(), N->getVTList(), Ops); in FindModifiedNodeSlot()
1237 SmallVector<SDValue, 8> Ops; in getConstant() local
1239 Ops.insert(Ops.end(), EltParts.begin(), EltParts.end()); in getConstant()
1241 SDValue V = getNode(ISD::BITCAST, DL, VT, getBuildVector(ViaVecVT, DL, Ops)); in getConstant()
1693 SDValue Ops[2] = { N1, N2 }; in getVectorShuffle() local
1694 AddNodeIDNode(ID, ISD::VECTOR_SHUFFLE, getVTList(VT), Ops); in getVectorShuffle()
1710 createOperands(N, Ops); in getVectorShuffle()
1766 SDValue Ops[] = { Root }; in getLabelNode() local
1767 AddNodeIDNode(ID, Opcode, getVTList(MVT::Other), Ops); in getLabelNode()
1774 createOperands(N, Ops); in getLabelNode()
1844 SDValue Ops[] = {Ptr}; in getAddrSpaceCast() local
1846 AddNodeIDNode(ID, ISD::ADDRSPACECAST, getVTList(VT), Ops); in getAddrSpaceCast()
1856 createOperands(N, Ops); in getAddrSpaceCast()
3985 ArrayRef<SDValue> Ops, in FoldBUILD_VECTOR() argument
3987 int NumOps = Ops.size(); in FoldBUILD_VECTOR()
3993 if (llvm::all_of(Ops, [](SDValue Op) { return Op.isUndef(); })) in FoldBUILD_VECTOR()
4000 if (Ops[i].getOpcode() != ISD::EXTRACT_VECTOR_ELT || in FoldBUILD_VECTOR()
4001 Ops[i].getOperand(0).getValueType() != VT || in FoldBUILD_VECTOR()
4002 (IdentitySrc && Ops[i].getOperand(0) != IdentitySrc) || in FoldBUILD_VECTOR()
4003 !isa<ConstantSDNode>(Ops[i].getOperand(1)) || in FoldBUILD_VECTOR()
4004 cast<ConstantSDNode>(Ops[i].getOperand(1))->getAPIntValue() != i) { in FoldBUILD_VECTOR()
4008 IdentitySrc = Ops[i].getOperand(0); in FoldBUILD_VECTOR()
4017 ArrayRef<SDValue> Ops, in FoldCONCAT_VECTORS() argument
4019 assert(!Ops.empty() && "Can't concatenate an empty list of vectors!"); in FoldCONCAT_VECTORS()
4020 assert(llvm::all_of(Ops, in FoldCONCAT_VECTORS()
4021 [Ops](SDValue Op) { in FoldCONCAT_VECTORS()
4022 return Ops[0].getValueType() == Op.getValueType(); in FoldCONCAT_VECTORS()
4025 assert((Ops.size() * Ops[0].getValueType().getVectorNumElements()) == in FoldCONCAT_VECTORS()
4029 if (Ops.size() == 1) in FoldCONCAT_VECTORS()
4030 return Ops[0]; in FoldCONCAT_VECTORS()
4033 if (llvm::all_of(Ops, [](SDValue Op) { return Op.isUndef(); })) in FoldCONCAT_VECTORS()
4041 for (SDValue Op : Ops) { in FoldCONCAT_VECTORS()
4256 SDValue Ops = { Operand }; in getNode() local
4257 if (SDValue Fold = FoldConstantVectorArithmetic(Opcode, DL, VT, Ops)) in getNode()
4272 SDValue Ops[] = {Operand}; in getNode() local
4273 if (SDValue V = FoldBUILD_VECTOR(DL, VT, Ops, *this)) in getNode()
4448 SDValue Ops[] = {Operand}; in getNode() local
4451 AddNodeIDNode(ID, Opcode, VTs, Ops); in getNode()
4460 createOperands(N, Ops); in getNode()
4464 createOperands(N, Ops); in getNode()
4548 bool SelectionDAG::isUndef(unsigned Opcode, ArrayRef<SDValue> Ops) { in isUndef() argument
4556 assert(Ops.size() == 2 && "Div/rem should have 2 operands"); in isUndef()
4557 SDValue Divisor = Ops[1]; in isUndef()
4664 ArrayRef<SDValue> Ops, in FoldConstantVectorArithmetic() argument
4672 if (isUndef(Opcode, Ops)) in FoldConstantVectorArithmetic()
4695 if (!llvm::all_of(Ops, IsConstantBuildVectorOrUndef) || in FoldConstantVectorArithmetic()
4696 !llvm::all_of(Ops, IsScalarOrSameVectorSize)) in FoldConstantVectorArithmetic()
4716 for (SDValue Op : Ops) { in FoldConstantVectorArithmetic()
4788 SDValue Ops[] = {N1, N2}; in getNode() local
4789 if (SDValue V = FoldBUILD_VECTOR(DL, VT, Ops, *this)) in getNode()
4795 SDValue Ops[] = {N1, N2}; in getNode() local
4796 if (SDValue V = FoldCONCAT_VECTORS(DL, VT, Ops, *this)) in getNode()
4949 SmallVector<SDValue, 8> Ops; in getNode() local
4954 Ops.push_back(getUNDEF(OpVT)); in getNode()
4959 Ops.push_back(SignExtendInReg(Val, OpVT)); in getNode()
4961 return getBuildVector(VT, DL, Ops); in getNode()
5223 SDValue Ops[] = {N1, N2}; in getNode() local
5226 AddNodeIDNode(ID, Opcode, VTs, Ops); in getNode()
5235 createOperands(N, Ops); in getNode()
5239 createOperands(N, Ops); in getNode()
5273 SDValue Ops[] = {N1, N2, N3}; in getNode() local
5274 if (SDValue V = FoldBUILD_VECTOR(DL, VT, Ops, *this)) in getNode()
5280 SDValue Ops[] = {N1, N2, N3}; in getNode() local
5281 if (SDValue V = FoldCONCAT_VECTORS(DL, VT, Ops, *this)) in getNode()
5298 SDValue Ops[] = {N1, N2, N3}; in getNode() local
5299 if (SDValue V = FoldConstantVectorArithmetic(Opcode, DL, VT, Ops)) { in getNode()
5353 SDValue Ops[] = {N1, N2, N3}; in getNode() local
5356 AddNodeIDNode(ID, Opcode, VTs, Ops); in getNode()
5365 createOperands(N, Ops); in getNode()
5369 createOperands(N, Ops); in getNode()
5380 SDValue Ops[] = { N1, N2, N3, N4 }; in getNode() local
5381 return getNode(Opcode, DL, VT, Ops); in getNode()
5387 SDValue Ops[] = { N1, N2, N3, N4, N5 }; in getNode() local
5388 return getNode(Opcode, DL, VT, Ops); in getNode()
6366 SDVTList VTList, ArrayRef<SDValue> Ops, in getAtomic() argument
6370 AddNodeIDNode(ID, Opcode, VTList, Ops); in getAtomic()
6380 createOperands(N, Ops); in getAtomic()
6421 SDValue Ops[] = {Chain, Ptr, Cmp, Swp}; in getAtomicCmpSwap() local
6422 return getAtomic(Opcode, dl, MemVT, VTs, Ops, MMO); in getAtomicCmpSwap()
6476 SDValue Ops[] = {Chain, Ptr, Val}; in getAtomic() local
6477 return getAtomic(Opcode, dl, MemVT, VTs, Ops, MMO); in getAtomic()
6486 SDValue Ops[] = {Chain, Ptr}; in getAtomic() local
6487 return getAtomic(Opcode, dl, MemVT, VTs, Ops, MMO); in getAtomic()
6491 SDValue SelectionDAG::getMergeValues(ArrayRef<SDValue> Ops, const SDLoc &dl) { in getMergeValues() argument
6492 if (Ops.size() == 1) in getMergeValues()
6493 return Ops[0]; in getMergeValues()
6496 VTs.reserve(Ops.size()); in getMergeValues()
6497 for (unsigned i = 0; i < Ops.size(); ++i) in getMergeValues()
6498 VTs.push_back(Ops[i].getValueType()); in getMergeValues()
6499 return getNode(ISD::MERGE_VALUES, dl, getVTList(VTs), Ops); in getMergeValues()
6503 unsigned Opcode, const SDLoc &dl, SDVTList VTList, ArrayRef<SDValue> Ops, in getMemIntrinsicNode() argument
6516 return getMemIntrinsicNode(Opcode, dl, VTList, Ops, MemVT, MMO); in getMemIntrinsicNode()
6521 ArrayRef<SDValue> Ops, EVT MemVT, in getMemIntrinsicNode() argument
6536 AddNodeIDNode(ID, Opcode, VTList, Ops); in getMemIntrinsicNode()
6548 createOperands(N, Ops); in getMemIntrinsicNode()
6554 createOperands(N, Ops); in getMemIntrinsicNode()
6650 SDValue Ops[] = { Chain, Ptr, Offset }; in getLoad() local
6652 AddNodeIDNode(ID, ISD::LOAD, VTs, Ops); in getLoad()
6664 createOperands(N, Ops); in getLoad()
6752 SDValue Ops[] = { Chain, Val, Ptr, Undef }; in getStore() local
6754 AddNodeIDNode(ID, ISD::STORE, VTs, Ops); in getStore()
6766 createOperands(N, Ops); in getStore()
6819 SDValue Ops[] = { Chain, Val, Ptr, Undef }; in getTruncStore() local
6821 AddNodeIDNode(ID, ISD::STORE, VTs, Ops); in getTruncStore()
6833 createOperands(N, Ops); in getTruncStore()
6848 SDValue Ops[] = { ST->getChain(), ST->getValue(), Base, Offset }; in getIndexedStore() local
6850 AddNodeIDNode(ID, ISD::STORE, VTs, Ops); in getIndexedStore()
6861 createOperands(N, Ops); in getIndexedStore()
6875 SDValue Ops[] = { Chain, Ptr, Mask, PassThru }; in getMaskedLoad() local
6877 AddNodeIDNode(ID, ISD::MLOAD, VTs, Ops); in getMaskedLoad()
6889 createOperands(N, Ops); in getMaskedLoad()
6906 SDValue Ops[] = { Chain, Val, Ptr, Mask }; in getMaskedStore() local
6908 AddNodeIDNode(ID, ISD::MSTORE, VTs, Ops); in getMaskedStore()
6920 createOperands(N, Ops); in getMaskedStore()
6930 ArrayRef<SDValue> Ops, in getMaskedGather() argument
6932 assert(Ops.size() == 6 && "Incompatible number of operands"); in getMaskedGather()
6935 AddNodeIDNode(ID, ISD::MGATHER, VTs, Ops); in getMaskedGather()
6948 createOperands(N, Ops); in getMaskedGather()
6970 ArrayRef<SDValue> Ops, in getMaskedScatter() argument
6972 assert(Ops.size() == 6 && "Incompatible number of operands"); in getMaskedScatter()
6975 AddNodeIDNode(ID, ISD::MSCATTER, VTs, Ops); in getMaskedScatter()
6987 createOperands(N, Ops); in getMaskedScatter()
7062 SDValue Ops[] = { Chain, Ptr, SV, getTargetConstant(Align, dl, MVT::i32) }; in getVAArg() local
7063 return getNode(ISD::VAARG, dl, getVTList(VT, MVT::Other), Ops); in getVAArg()
7067 ArrayRef<SDUse> Ops) { in getNode() argument
7068 switch (Ops.size()) { in getNode()
7070 case 1: return getNode(Opcode, DL, VT, static_cast<const SDValue>(Ops[0])); in getNode()
7071 case 2: return getNode(Opcode, DL, VT, Ops[0], Ops[1]); in getNode()
7072 case 3: return getNode(Opcode, DL, VT, Ops[0], Ops[1], Ops[2]); in getNode()
7078 SmallVector<SDValue, 8> NewOps(Ops.begin(), Ops.end()); in getNode()
7083 ArrayRef<SDValue> Ops, const SDNodeFlags Flags) { in getNode() argument
7084 unsigned NumOps = Ops.size(); in getNode()
7087 case 1: return getNode(Opcode, DL, VT, Ops[0], Flags); in getNode()
7088 case 2: return getNode(Opcode, DL, VT, Ops[0], Ops[1], Flags); in getNode()
7089 case 3: return getNode(Opcode, DL, VT, Ops[0], Ops[1], Ops[2], Flags); in getNode()
7097 if (SDValue V = FoldBUILD_VECTOR(DL, VT, Ops, *this)) in getNode()
7102 if (SDValue V = FoldCONCAT_VECTORS(DL, VT, Ops, *this)) in getNode()
7107 assert(Ops[0].getValueType() == Ops[1].getValueType() && in getNode()
7109 assert(Ops[2].getValueType() == Ops[3].getValueType() && in getNode()
7111 assert(Ops[2].getValueType() == VT && in getNode()
7116 assert(Ops[2].getValueType() == Ops[3].getValueType() && in getNode()
7127 AddNodeIDNode(ID, Opcode, VTs, Ops); in getNode()
7134 createOperands(N, Ops); in getNode()
7139 createOperands(N, Ops); in getNode()
7149 ArrayRef<EVT> ResultTys, ArrayRef<SDValue> Ops) { in getNode() argument
7150 return getNode(Opcode, DL, getVTList(ResultTys), Ops); in getNode()
7154 ArrayRef<SDValue> Ops) { in getNode() argument
7156 return getNode(Opcode, DL, VTList.VTs[0], Ops); in getNode()
7185 AddNodeIDNode(ID, Opcode, VTList, Ops); in getNode()
7191 createOperands(N, Ops); in getNode()
7195 createOperands(N, Ops); in getNode()
7210 SDValue Ops[] = { N1 }; in getNode() local
7211 return getNode(Opcode, DL, VTList, Ops); in getNode()
7216 SDValue Ops[] = { N1, N2 }; in getNode() local
7217 return getNode(Opcode, DL, VTList, Ops); in getNode()
7222 SDValue Ops[] = { N1, N2, N3 }; in getNode() local
7223 return getNode(Opcode, DL, VTList, Ops); in getNode()
7228 SDValue Ops[] = { N1, N2, N3, N4 }; in getNode() local
7229 return getNode(Opcode, DL, VTList, Ops); in getNode()
7235 SDValue Ops[] = { N1, N2, N3, N4, N5 }; in getNode() local
7236 return getNode(Opcode, DL, VTList, Ops); in getNode()
7385 SDValue Ops[] = { Op1, Op2, Op3 }; in UpdateNodeOperands() local
7386 return UpdateNodeOperands(N, Ops); in UpdateNodeOperands()
7392 SDValue Ops[] = { Op1, Op2, Op3, Op4 }; in UpdateNodeOperands() local
7393 return UpdateNodeOperands(N, Ops); in UpdateNodeOperands()
7399 SDValue Ops[] = { Op1, Op2, Op3, Op4, Op5 }; in UpdateNodeOperands() local
7400 return UpdateNodeOperands(N, Ops); in UpdateNodeOperands()
7404 UpdateNodeOperands(SDNode *N, ArrayRef<SDValue> Ops) { in UpdateNodeOperands() argument
7405 unsigned NumOps = Ops.size(); in UpdateNodeOperands()
7410 if (std::equal(Ops.begin(), Ops.end(), N->op_begin())) in UpdateNodeOperands()
7415 if (SDNode *Existing = FindModifiedNodeSlot(N, Ops, InsertPos)) in UpdateNodeOperands()
7425 if (N->OperandList[i] != Ops[i]) in UpdateNodeOperands()
7426 N->OperandList[i].set(Ops[i]); in UpdateNodeOperands()
7478 SDValue Ops[] = { Op1 }; in SelectNodeTo() local
7479 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
7486 SDValue Ops[] = { Op1, Op2 }; in SelectNodeTo() local
7487 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
7494 SDValue Ops[] = { Op1, Op2, Op3 }; in SelectNodeTo() local
7495 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
7499 EVT VT, ArrayRef<SDValue> Ops) { in SelectNodeTo() argument
7501 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
7505 EVT VT1, EVT VT2, ArrayRef<SDValue> Ops) { in SelectNodeTo() argument
7507 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
7518 ArrayRef<SDValue> Ops) { in SelectNodeTo() argument
7520 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
7527 SDValue Ops[] = { Op1, Op2 }; in SelectNodeTo() local
7528 return SelectNodeTo(N, MachineOpc, VTs, Ops); in SelectNodeTo()
7532 SDVTList VTs,ArrayRef<SDValue> Ops) { in SelectNodeTo() argument
7533 SDNode *New = MorphNodeTo(N, ~MachineOpc, VTs, Ops); in SelectNodeTo()
7577 SDVTList VTs, ArrayRef<SDValue> Ops) { in MorphNodeTo() argument
7582 AddNodeIDNode(ID, Opc, VTs, Ops); in MorphNodeTo()
7612 createOperands(N, Ops); in MorphNodeTo()
7713 SDValue Ops[] = { Op1 }; in getMachineNode() local
7714 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7720 SDValue Ops[] = { Op1, Op2 }; in getMachineNode() local
7721 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7728 SDValue Ops[] = { Op1, Op2, Op3 }; in getMachineNode() local
7729 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7733 EVT VT, ArrayRef<SDValue> Ops) { in getMachineNode() argument
7735 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7742 SDValue Ops[] = { Op1, Op2 }; in getMachineNode() local
7743 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7750 SDValue Ops[] = { Op1, Op2, Op3 }; in getMachineNode() local
7751 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7756 ArrayRef<SDValue> Ops) { in getMachineNode() argument
7758 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7765 SDValue Ops[] = { Op1, Op2 }; in getMachineNode() local
7766 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7774 SDValue Ops[] = { Op1, Op2, Op3 }; in getMachineNode() local
7775 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7780 ArrayRef<SDValue> Ops) { in getMachineNode() argument
7782 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7787 ArrayRef<SDValue> Ops) { in getMachineNode() argument
7789 return getMachineNode(Opcode, dl, VTs, Ops); in getMachineNode()
7794 ArrayRef<SDValue> Ops) { in getMachineNode() argument
7801 AddNodeIDNode(ID, ~Opcode, VTs, Ops); in getMachineNode()
7810 createOperands(N, Ops); in getMachineNode()
7842 ArrayRef<SDValue> Ops, in getNodeIfExists() argument
7846 AddNodeIDNode(ID, Opcode, VTList, Ops); in getNodeIfExists()
9272 SDUse *Ops = OperandRecycler.allocate( in createOperands() local
9277 Ops[I].setUser(Node); in createOperands()
9278 Ops[I].setInitial(Vals[I]); in createOperands()
9279 if (Ops[I].Val.getValueType() != MVT::Other) // Skip Chain. It does not carry divergence. in createOperands()
9280 IsDivergent = IsDivergent || Ops[I].getNode()->isDivergent(); in createOperands()
9283 Node->OperandList = Ops; in createOperands()