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

References

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
 4124   MVT OVT = Node->getSimpleValueType(0);
 4125   if (Node->getOpcode() == ISD::UINT_TO_FP ||
 4126       Node->getOpcode() == ISD::SINT_TO_FP ||
 4127       Node->getOpcode() == ISD::SETCC ||
 4128       Node->getOpcode() == ISD::EXTRACT_VECTOR_ELT ||
 4129       Node->getOpcode() == ISD::INSERT_VECTOR_ELT) {
 4130     OVT = Node->getOperand(0).getSimpleValueType();
 4132   if (Node->getOpcode() == ISD::BR_CC)
 4133     OVT = Node->getOperand(2).getSimpleValueType();
 4134   MVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), OVT);
 4135   SDLoc dl(Node);
 4137   switch (Node->getOpcode()) {
 4144     Tmp1 = DAG.getNode(ISD::ZERO_EXTEND, dl, NVT, Node->getOperand(0));
 4145     if (Node->getOpcode() == ISD::CTTZ) {
 4156     Tmp1 = DAG.getNode(Node->getOpcode(), dl, NVT, Tmp1);
 4157     if (Node->getOpcode() == ISD::CTLZ ||
 4158         Node->getOpcode() == ISD::CTLZ_ZERO_UNDEF) {
 4169     Tmp1 = DAG.getNode(ISD::ZERO_EXTEND, dl, NVT, Node->getOperand(0));
 4170     Tmp1 = DAG.getNode(Node->getOpcode(), dl, NVT, Tmp1);
 4181     Tmp1 = PromoteLegalFP_TO_INT(Node->getOperand(0), Node->getValueType(0),
 4181     Tmp1 = PromoteLegalFP_TO_INT(Node->getOperand(0), Node->getValueType(0),
 4182                                  Node->getOpcode() == ISD::FP_TO_SINT, dl);
 4187     Tmp1 = PromoteLegalINT_TO_FP(Node->getOperand(0), Node->getValueType(0),
 4187     Tmp1 = PromoteLegalINT_TO_FP(Node->getOperand(0), Node->getValueType(0),
 4188                                  Node->getOpcode() == ISD::SINT_TO_FP, dl);
 4192     SDValue Chain = Node->getOperand(0); // Get the chain.
 4193     SDValue Ptr = Node->getOperand(1); // Get the pointer.
 4205     Tmp1 = DAG.getVAArg(NVT, dl, Chain, Ptr, Node->getOperand(2),
 4206              Node->getConstantOperandVal(3));
 4213     DAG.ReplaceAllUsesOfValueWith(SDValue(Node, 0), Tmp2);
 4214     DAG.ReplaceAllUsesOfValueWith(SDValue(Node, 1), Chain);
 4219     ReplacedNode(Node);
 4237       switch (Node->getOpcode()) {
 4253     Tmp1 = DAG.getNode(ExtOp, dl, NVT, Node->getOperand(0));
 4254     Tmp2 = DAG.getNode(ExtOp, dl, NVT, Node->getOperand(1));
 4256     Tmp1 = DAG.getNode(Node->getOpcode(), dl, NVT, Tmp1, Tmp2);
 4263     unsigned ExtOp = Node->getOpcode() == ISD::UMUL_LOHI ? ISD::ZERO_EXTEND
 4265     Tmp1 = DAG.getNode(ExtOp, dl, NVT, Node->getOperand(0));
 4266     Tmp2 = DAG.getNode(ExtOp, dl, NVT, Node->getOperand(1));
 4280     if (Node->getValueType(0).isVector() ||
 4281         Node->getValueType(0).getSizeInBits() == NVT.getSizeInBits()) {
 4284     } else if (Node->getValueType(0).isInteger()) {
 4291     Tmp1 = Node->getOperand(0);
 4293     Tmp2 = DAG.getNode(ExtOp, dl, NVT, Node->getOperand(1));
 4294     Tmp3 = DAG.getNode(ExtOp, dl, NVT, Node->getOperand(2));
 4297     Tmp1->setFlags(Node->getFlags());
 4299       Tmp1 = DAG.getNode(TruncOp, dl, Node->getValueType(0), Tmp1);
 4301       Tmp1 = DAG.getNode(TruncOp, dl, Node->getValueType(0), Tmp1,
 4307     ArrayRef<int> Mask = cast<ShuffleVectorSDNode>(Node)->getMask();
 4310     Tmp1 = DAG.getNode(ISD::BITCAST, dl, NVT, Node->getOperand(0));
 4311     Tmp2 = DAG.getNode(ISD::BITCAST, dl, NVT, Node->getOperand(1));
 4323         cast<CondCodeSDNode>(Node->getOperand(2))->get();
 4326     Tmp1 = DAG.getNode(ExtOp, dl, NVT, Node->getOperand(0));
 4327     Tmp2 = DAG.getNode(ExtOp, dl, NVT, Node->getOperand(1));
 4328     Results.push_back(DAG.getNode(ISD::SETCC, dl, Node->getValueType(0), Tmp1,
 4329                                   Tmp2, Node->getOperand(2), Node->getFlags()));
 4329                                   Tmp2, Node->getOperand(2), Node->getFlags()));
 4336         cast<CondCodeSDNode>(Node->getOperand(1))->get();
 4339     Tmp1 = DAG.getNode(ExtOp, dl, NVT, Node->getOperand(2));
 4340     Tmp2 = DAG.getNode(ExtOp, dl, NVT, Node->getOperand(3));
 4341     Results.push_back(DAG.getNode(ISD::BR_CC, dl, Node->getValueType(0),
 4342                                   Node->getOperand(0), Node->getOperand(1),
 4342                                   Node->getOperand(0), Node->getOperand(1),
 4343                                   Tmp1, Tmp2, Node->getOperand(4)));
 4354     Tmp1 = DAG.getNode(ISD::FP_EXTEND, dl, NVT, Node->getOperand(0));
 4355     Tmp2 = DAG.getNode(ISD::FP_EXTEND, dl, NVT, Node->getOperand(1));
 4356     Tmp3 = DAG.getNode(Node->getOpcode(), dl, NVT, Tmp1, Tmp2,
 4357                        Node->getFlags());
 4362     Tmp1 = DAG.getNode(ISD::FP_EXTEND, dl, NVT, Node->getOperand(0));
 4363     Tmp2 = DAG.getNode(ISD::FP_EXTEND, dl, NVT, Node->getOperand(1));
 4364     Tmp3 = DAG.getNode(ISD::FP_EXTEND, dl, NVT, Node->getOperand(2));
 4367                     DAG.getNode(Node->getOpcode(), dl, NVT, Tmp1, Tmp2, Tmp3),
 4372     Tmp1 = DAG.getNode(ISD::FP_EXTEND, dl, NVT, Node->getOperand(0));
 4373     Tmp2 = Node->getOperand(1);
 4374     Tmp3 = DAG.getNode(Node->getOpcode(), dl, NVT, Tmp1, Tmp2);
 4381     const bool isTrunc = (Node->getOpcode() == ISD::FCOPYSIGN);
 4402     Tmp1 = DAG.getNode(ISD::FP_EXTEND, dl, NVT, Node->getOperand(0));
 4403     Tmp2 = DAG.getNode(Node->getOpcode(), dl, NVT, Tmp1);
 4424     for (unsigned I = 0, E = Node->getNumOperands(); I != E; ++I) {
 4425       SDValue Op = Node->getOperand(I);
 4429     SDLoc SL(Node);
 4457     SDValue Idx = Node->getOperand(1);
 4459     SDLoc SL(Node);
 4463     SDValue CastVec = DAG.getNode(ISD::BITCAST, SL, NVT, Node->getOperand(0));
 4503     SDValue Val = Node->getOperand(1);
 4504     SDValue Idx = Node->getOperand(2);
 4506     SDLoc SL(Node);
 4511     SDValue CastVec = DAG.getNode(ISD::BITCAST, SL, NVT, Node->getOperand(0));
 4541     SDValue Val = Node->getOperand(0);
 4542     SDLoc SL(Node);
 4558     AtomicSDNode *AM = cast<AtomicSDNode>(Node);
 4559     SDLoc SL(Node);
 4580     ReplaceNode(Node, Results.data());