Lines Matching refs:Node
91 SDValue UnrollVSETCC(SDNode *Node);
97 void Expand(SDNode *Node, SmallVectorImpl<SDValue> &Results);
101 void ExpandFP_TO_UINT(SDNode *Node, SmallVectorImpl<SDValue> &Results);
105 void ExpandUINT_TO_FLOAT(SDNode *Node, SmallVectorImpl<SDValue> &Results);
108 SDValue ExpandSEXTINREG(SDNode *Node);
115 SDValue ExpandANY_EXTEND_VECTOR_INREG(SDNode *Node);
122 SDValue ExpandSIGN_EXTEND_VECTOR_INREG(SDNode *Node);
128 SDValue ExpandZERO_EXTEND_VECTOR_INREG(SDNode *Node);
131 SDValue ExpandBSWAP(SDNode *Node);
135 SDValue ExpandVSELECT(SDNode *Node);
136 SDValue ExpandSELECT(SDNode *Node);
139 SDValue ExpandFNEG(SDNode *Node);
140 void ExpandFSUB(SDNode *Node, SmallVectorImpl<SDValue> &Results);
141 void ExpandSETCC(SDNode *Node, SmallVectorImpl<SDValue> &Results);
142 void ExpandBITREVERSE(SDNode *Node, SmallVectorImpl<SDValue> &Results);
143 void ExpandUADDSUBO(SDNode *Node, SmallVectorImpl<SDValue> &Results);
144 void ExpandSADDSUBO(SDNode *Node, SmallVectorImpl<SDValue> &Results);
145 void ExpandMULO(SDNode *Node, SmallVectorImpl<SDValue> &Results);
146 void ExpandFixedPointDiv(SDNode *Node, SmallVectorImpl<SDValue> &Results);
147 void ExpandStrictFPOp(SDNode *Node, SmallVectorImpl<SDValue> &Results);
148 void ExpandREM(SDNode *Node, SmallVectorImpl<SDValue> &Results);
150 void UnrollStrictFPOp(SDNode *Node, SmallVectorImpl<SDValue> &Results);
156 void Promote(SDNode *Node, SmallVectorImpl<SDValue> &Results);
161 void PromoteINT_TO_FP(SDNode *Node, SmallVectorImpl<SDValue> &Results);
167 void PromoteFP_TO_INT(SDNode *Node, SmallVectorImpl<SDValue> &Results);
255 SDNode *Node = DAG.UpdateNodeOperands(Op.getNode(), Ops); in LegalizeOp() local
258 LoadSDNode *LD = cast<LoadSDNode>(Node); in LegalizeOp()
262 Node->dump(&DAG)); in LegalizeOp()
267 return TranslateLegalizeResults(Op, Node); in LegalizeOp()
270 if (LowerOperationWrapper(Node, ResultVals)) { in LegalizeOp()
272 return TranslateLegalizeResults(Op, Node); in LegalizeOp()
281 std::pair<SDValue, SDValue> Tmp = ExpandLoad(Node); in LegalizeOp()
289 StoreSDNode *ST = cast<StoreSDNode>(Node); in LegalizeOp()
294 Node->dump(&DAG)); in LegalizeOp()
298 return TranslateLegalizeResults(Op, Node); in LegalizeOp()
301 if (LowerOperationWrapper(Node, ResultVals)) { in LegalizeOp()
303 return TranslateLegalizeResults(Op, Node); in LegalizeOp()
312 SDValue Chain = ExpandStore(Node); in LegalizeOp()
321 llvm::any_of(Node->values(), [](EVT T) { return T.isVector(); }) || in LegalizeOp()
322 llvm::any_of(Node->op_values(), in LegalizeOp()
325 return TranslateLegalizeResults(Op, Node); in LegalizeOp()
331 return TranslateLegalizeResults(Op, Node); in LegalizeOp()
333 Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0)); in LegalizeOp()
342 ValVT = Node->getValueType(0); in LegalizeOp()
345 ValVT = Node->getOperand(1).getValueType(); in LegalizeOp()
346 Action = TLI.getOperationAction(Node->getOpcode(), ValVT); in LegalizeOp()
353 TLI.getStrictFPOperationAction(Node->getOpcode(), ValVT) == in LegalizeOp()
356 if (TLI.getOperationAction(Node->getOpcode(), EltVT) in LegalizeOp()
358 TLI.getStrictFPOperationAction(Node->getOpcode(), EltVT) in LegalizeOp()
461 Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0)); in LegalizeOp()
471 unsigned Scale = Node->getConstantOperandVal(2); in LegalizeOp()
472 Action = TLI.getFixedPointOperationAction(Node->getOpcode(), in LegalizeOp()
473 Node->getValueType(0), Scale); in LegalizeOp()
491 Action = TLI.getOperationAction(Node->getOpcode(), in LegalizeOp()
492 Node->getOperand(0).getValueType()); in LegalizeOp()
496 Action = TLI.getOperationAction(Node->getOpcode(), in LegalizeOp()
497 Node->getOperand(1).getValueType()); in LegalizeOp()
500 MVT OpVT = Node->getOperand(0).getSimpleValueType(); in LegalizeOp()
501 ISD::CondCode CCCode = cast<CondCodeSDNode>(Node->getOperand(2))->get(); in LegalizeOp()
504 Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0)); in LegalizeOp()
509 LLVM_DEBUG(dbgs() << "\nLegalizing vector op: "; Node->dump(&DAG)); in LegalizeOp()
516 Promote(Node, ResultVals); in LegalizeOp()
524 if (LowerOperationWrapper(Node, ResultVals)) in LegalizeOp()
530 Expand(Node, ResultVals); in LegalizeOp()
535 return TranslateLegalizeResults(Op, Node); in LegalizeOp()
543 bool VectorLegalizer::LowerOperationWrapper(SDNode *Node, in LowerOperationWrapper() argument
545 SDValue Res = TLI.LowerOperation(SDValue(Node, 0), DAG); in LowerOperationWrapper()
550 if (Res == SDValue(Node, 0)) in LowerOperationWrapper()
555 if (Node->getNumValues() == 1) { in LowerOperationWrapper()
562 assert((Node->getNumValues() == Res->getNumValues()) && in LowerOperationWrapper()
566 for (unsigned I = 0, E = Node->getNumValues(); I != E; ++I) in LowerOperationWrapper()
572 void VectorLegalizer::Promote(SDNode *Node, SmallVectorImpl<SDValue> &Results) { in Promote() argument
575 switch (Node->getOpcode()) { in Promote()
581 PromoteINT_TO_FP(Node, Results); in Promote()
588 PromoteFP_TO_INT(Node, Results); in Promote()
602 assert(Node->getNumValues() == 1 && in Promote()
604 MVT VT = Node->getSimpleValueType(0); in Promote()
605 MVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), VT); in Promote()
606 SDLoc dl(Node); in Promote()
607 SmallVector<SDValue, 4> Operands(Node->getNumOperands()); in Promote()
609 for (unsigned j = 0; j != Node->getNumOperands(); ++j) { in Promote()
610 if (Node->getOperand(j).getValueType().isVector()) in Promote()
611 if (Node->getOperand(j) in Promote()
616 Operands[j] = DAG.getNode(ISD::FP_EXTEND, dl, NVT, Node->getOperand(j)); in Promote()
618 Operands[j] = DAG.getNode(ISD::BITCAST, dl, NVT, Node->getOperand(j)); in Promote()
620 Operands[j] = Node->getOperand(j); in Promote()
624 DAG.getNode(Node->getOpcode(), dl, NVT, Operands, Node->getFlags()); in Promote()
636 void VectorLegalizer::PromoteINT_TO_FP(SDNode *Node, in PromoteINT_TO_FP() argument
640 bool IsStrict = Node->isStrictFPOpcode(); in PromoteINT_TO_FP()
641 MVT VT = Node->getOperand(IsStrict ? 1 : 0).getSimpleValueType(); in PromoteINT_TO_FP()
642 MVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), VT); in PromoteINT_TO_FP()
646 SDLoc dl(Node); in PromoteINT_TO_FP()
647 SmallVector<SDValue, 4> Operands(Node->getNumOperands()); in PromoteINT_TO_FP()
649 unsigned Opc = (Node->getOpcode() == ISD::UINT_TO_FP || in PromoteINT_TO_FP()
650 Node->getOpcode() == ISD::STRICT_UINT_TO_FP) in PromoteINT_TO_FP()
653 for (unsigned j = 0; j != Node->getNumOperands(); ++j) { in PromoteINT_TO_FP()
654 if (Node->getOperand(j).getValueType().isVector()) in PromoteINT_TO_FP()
655 Operands[j] = DAG.getNode(Opc, dl, NVT, Node->getOperand(j)); in PromoteINT_TO_FP()
657 Operands[j] = Node->getOperand(j); in PromoteINT_TO_FP()
661 SDValue Res = DAG.getNode(Node->getOpcode(), dl, in PromoteINT_TO_FP()
662 {Node->getValueType(0), MVT::Other}, Operands); in PromoteINT_TO_FP()
669 DAG.getNode(Node->getOpcode(), dl, Node->getValueType(0), Operands); in PromoteINT_TO_FP()
677 void VectorLegalizer::PromoteFP_TO_INT(SDNode *Node, in PromoteFP_TO_INT() argument
679 MVT VT = Node->getSimpleValueType(0); in PromoteFP_TO_INT()
680 MVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), VT); in PromoteFP_TO_INT()
681 bool IsStrict = Node->isStrictFPOpcode(); in PromoteFP_TO_INT()
685 unsigned NewOpc = Node->getOpcode(); in PromoteFP_TO_INT()
696 SDLoc dl(Node); in PromoteFP_TO_INT()
700 {Node->getOperand(0), Node->getOperand(1)}); in PromoteFP_TO_INT()
703 Promoted = DAG.getNode(NewOpc, dl, NVT, Node->getOperand(0)); in PromoteFP_TO_INT()
708 if (Node->getOpcode() == ISD::FP_TO_UINT || in PromoteFP_TO_INT()
709 Node->getOpcode() == ISD::STRICT_FP_TO_UINT) in PromoteFP_TO_INT()
733 void VectorLegalizer::Expand(SDNode *Node, SmallVectorImpl<SDValue> &Results) { in Expand() argument
735 switch (Node->getOpcode()) { in Expand()
737 for (unsigned i = 0, e = Node->getNumValues(); i != e; ++i) in Expand()
738 Results.push_back(Node->getOperand(i)); in Expand()
741 Results.push_back(ExpandSEXTINREG(Node)); in Expand()
744 Results.push_back(ExpandANY_EXTEND_VECTOR_INREG(Node)); in Expand()
747 Results.push_back(ExpandSIGN_EXTEND_VECTOR_INREG(Node)); in Expand()
750 Results.push_back(ExpandZERO_EXTEND_VECTOR_INREG(Node)); in Expand()
753 Results.push_back(ExpandBSWAP(Node)); in Expand()
756 Results.push_back(ExpandVSELECT(Node)); in Expand()
759 Results.push_back(ExpandSELECT(Node)); in Expand()
762 ExpandFP_TO_UINT(Node, Results); in Expand()
765 ExpandUINT_TO_FLOAT(Node, Results); in Expand()
768 Results.push_back(ExpandFNEG(Node)); in Expand()
771 ExpandFSUB(Node, Results); in Expand()
774 ExpandSETCC(Node, Results); in Expand()
777 if (TLI.expandABS(Node, Tmp, DAG)) { in Expand()
783 ExpandBITREVERSE(Node, Results); in Expand()
786 if (TLI.expandCTPOP(Node, Tmp, DAG)) { in Expand()
793 if (TLI.expandCTLZ(Node, Tmp, DAG)) { in Expand()
800 if (TLI.expandCTTZ(Node, Tmp, DAG)) { in Expand()
807 if (TLI.expandFunnelShift(Node, Tmp, DAG)) { in Expand()
814 if (TLI.expandROT(Node, false /*AllowVectorOps*/, Tmp, DAG)) { in Expand()
821 if (SDValue Expanded = TLI.expandFMINNUM_FMAXNUM(Node, DAG)) { in Expand()
830 if (SDValue Expanded = TLI.expandIntMINMAX(Node, DAG)) { in Expand()
837 ExpandUADDSUBO(Node, Results); in Expand()
841 ExpandSADDSUBO(Node, Results); in Expand()
845 ExpandMULO(Node, Results); in Expand()
851 if (SDValue Expanded = TLI.expandAddSubSat(Node, DAG)) { in Expand()
858 if (SDValue Expanded = TLI.expandFixedPointMul(Node, DAG)) { in Expand()
872 ExpandFixedPointDiv(Node, Results); in Expand()
880 ExpandStrictFPOp(Node, Results); in Expand()
895 Results.push_back(TLI.expandVecReduce(Node, DAG)); in Expand()
899 Results.push_back(TLI.expandVecReduceSeq(Node, DAG)); in Expand()
903 ExpandREM(Node, Results); in Expand()
907 Results.push_back(DAG.UnrollVectorOp(Node)); in Expand()
910 SDValue VectorLegalizer::ExpandSELECT(SDNode *Node) { in ExpandSELECT() argument
914 EVT VT = Node->getValueType(0); in ExpandSELECT()
915 SDLoc DL(Node); in ExpandSELECT()
917 SDValue Mask = Node->getOperand(0); in ExpandSELECT()
918 SDValue Op1 = Node->getOperand(1); in ExpandSELECT()
919 SDValue Op2 = Node->getOperand(2); in ExpandSELECT()
938 return DAG.UnrollVectorOp(Node); in ExpandSELECT()
970 return DAG.getNode(ISD::BITCAST, DL, Node->getValueType(0), Val); in ExpandSELECT()
973 SDValue VectorLegalizer::ExpandSEXTINREG(SDNode *Node) { in ExpandSEXTINREG() argument
974 EVT VT = Node->getValueType(0); in ExpandSEXTINREG()
979 return DAG.UnrollVectorOp(Node); in ExpandSEXTINREG()
981 SDLoc DL(Node); in ExpandSEXTINREG()
982 EVT OrigTy = cast<VTSDNode>(Node->getOperand(1))->getVT(); in ExpandSEXTINREG()
988 SDValue Op = DAG.getNode(ISD::SHL, DL, VT, Node->getOperand(0), ShiftSz); in ExpandSEXTINREG()
994 SDValue VectorLegalizer::ExpandANY_EXTEND_VECTOR_INREG(SDNode *Node) { in ExpandANY_EXTEND_VECTOR_INREG() argument
995 SDLoc DL(Node); in ExpandANY_EXTEND_VECTOR_INREG()
996 EVT VT = Node->getValueType(0); in ExpandANY_EXTEND_VECTOR_INREG()
998 SDValue Src = Node->getOperand(0); in ExpandANY_EXTEND_VECTOR_INREG()
1029 SDValue VectorLegalizer::ExpandSIGN_EXTEND_VECTOR_INREG(SDNode *Node) { in ExpandSIGN_EXTEND_VECTOR_INREG() argument
1030 SDLoc DL(Node); in ExpandSIGN_EXTEND_VECTOR_INREG()
1031 EVT VT = Node->getValueType(0); in ExpandSIGN_EXTEND_VECTOR_INREG()
1032 SDValue Src = Node->getOperand(0); in ExpandSIGN_EXTEND_VECTOR_INREG()
1053 SDValue VectorLegalizer::ExpandZERO_EXTEND_VECTOR_INREG(SDNode *Node) { in ExpandZERO_EXTEND_VECTOR_INREG() argument
1054 SDLoc DL(Node); in ExpandZERO_EXTEND_VECTOR_INREG()
1055 EVT VT = Node->getValueType(0); in ExpandZERO_EXTEND_VECTOR_INREG()
1057 SDValue Src = Node->getOperand(0); in ExpandZERO_EXTEND_VECTOR_INREG()
1099 SDValue VectorLegalizer::ExpandBSWAP(SDNode *Node) { in ExpandBSWAP() argument
1100 EVT VT = Node->getValueType(0); in ExpandBSWAP()
1109 return DAG.UnrollVectorOp(Node); in ExpandBSWAP()
1111 SDLoc DL(Node); in ExpandBSWAP()
1112 SDValue Op = DAG.getNode(ISD::BITCAST, DL, ByteVT, Node->getOperand(0)); in ExpandBSWAP()
1117 void VectorLegalizer::ExpandBITREVERSE(SDNode *Node, in ExpandBITREVERSE() argument
1119 EVT VT = Node->getValueType(0); in ExpandBITREVERSE()
1123 SDValue Tmp = DAG.UnrollVectorOp(Node); in ExpandBITREVERSE()
1143 SDLoc DL(Node); in ExpandBITREVERSE()
1144 SDValue Op = DAG.getNode(ISD::BITCAST, DL, ByteVT, Node->getOperand(0)); in ExpandBITREVERSE()
1164 SDValue Tmp = DAG.UnrollVectorOp(Node); in ExpandBITREVERSE()
1168 SDValue VectorLegalizer::ExpandVSELECT(SDNode *Node) { in ExpandVSELECT() argument
1171 SDLoc DL(Node); in ExpandVSELECT()
1173 SDValue Mask = Node->getOperand(0); in ExpandVSELECT()
1174 SDValue Op1 = Node->getOperand(1); in ExpandVSELECT()
1175 SDValue Op2 = Node->getOperand(2); in ExpandVSELECT()
1186 return DAG.UnrollVectorOp(Node); in ExpandVSELECT()
1196 return DAG.UnrollVectorOp(Node); in ExpandVSELECT()
1202 return DAG.UnrollVectorOp(Node); in ExpandVSELECT()
1217 return DAG.getNode(ISD::BITCAST, DL, Node->getValueType(0), Val); in ExpandVSELECT()
1220 void VectorLegalizer::ExpandFP_TO_UINT(SDNode *Node, in ExpandFP_TO_UINT() argument
1224 if (TLI.expandFP_TO_UINT(Node, Result, Chain, DAG)) { in ExpandFP_TO_UINT()
1226 if (Node->isStrictFPOpcode()) in ExpandFP_TO_UINT()
1232 if (Node->isStrictFPOpcode()) { in ExpandFP_TO_UINT()
1233 UnrollStrictFPOp(Node, Results); in ExpandFP_TO_UINT()
1237 Results.push_back(DAG.UnrollVectorOp(Node)); in ExpandFP_TO_UINT()
1240 void VectorLegalizer::ExpandUINT_TO_FLOAT(SDNode *Node, in ExpandUINT_TO_FLOAT() argument
1242 bool IsStrict = Node->isStrictFPOpcode(); in ExpandUINT_TO_FLOAT()
1244 SDValue Src = Node->getOperand(OpNo); in ExpandUINT_TO_FLOAT()
1246 SDLoc DL(Node); in ExpandUINT_TO_FLOAT()
1251 if (TLI.expandUINT_TO_FP(Node, Result, Chain, DAG)) { in ExpandUINT_TO_FLOAT()
1265 UnrollStrictFPOp(Node, Results); in ExpandUINT_TO_FLOAT()
1269 Results.push_back(DAG.UnrollVectorOp(Node)); in ExpandUINT_TO_FLOAT()
1287 DAG.getConstantFP(1ULL << (BW / 2), DL, Node->getValueType(0)); in ExpandUINT_TO_FLOAT()
1298 {Node->getValueType(0), MVT::Other}, in ExpandUINT_TO_FLOAT()
1299 {Node->getOperand(0), HI}); in ExpandUINT_TO_FLOAT()
1300 fHI = DAG.getNode(ISD::STRICT_FMUL, DL, {Node->getValueType(0), MVT::Other}, in ExpandUINT_TO_FLOAT()
1303 {Node->getValueType(0), MVT::Other}, in ExpandUINT_TO_FLOAT()
1304 {Node->getOperand(0), LO}); in ExpandUINT_TO_FLOAT()
1311 DAG.getNode(ISD::STRICT_FADD, DL, {Node->getValueType(0), MVT::Other}, in ExpandUINT_TO_FLOAT()
1322 SDValue fHI = DAG.getNode(ISD::SINT_TO_FP, DL, Node->getValueType(0), HI); in ExpandUINT_TO_FLOAT()
1323 fHI = DAG.getNode(ISD::FMUL, DL, Node->getValueType(0), fHI, TWOHW); in ExpandUINT_TO_FLOAT()
1324 SDValue fLO = DAG.getNode(ISD::SINT_TO_FP, DL, Node->getValueType(0), LO); in ExpandUINT_TO_FLOAT()
1328 DAG.getNode(ISD::FADD, DL, Node->getValueType(0), fHI, fLO)); in ExpandUINT_TO_FLOAT()
1331 SDValue VectorLegalizer::ExpandFNEG(SDNode *Node) { in ExpandFNEG() argument
1332 if (TLI.isOperationLegalOrCustom(ISD::FSUB, Node->getValueType(0))) { in ExpandFNEG()
1333 SDLoc DL(Node); in ExpandFNEG()
1334 SDValue Zero = DAG.getConstantFP(-0.0, DL, Node->getValueType(0)); in ExpandFNEG()
1336 return DAG.getNode(ISD::FSUB, DL, Node->getValueType(0), Zero, in ExpandFNEG()
1337 Node->getOperand(0)); in ExpandFNEG()
1339 return DAG.UnrollVectorOp(Node); in ExpandFNEG()
1342 void VectorLegalizer::ExpandFSUB(SDNode *Node, in ExpandFSUB() argument
1347 EVT VT = Node->getValueType(0); in ExpandFSUB()
1352 SDValue Tmp = DAG.UnrollVectorOp(Node); in ExpandFSUB()
1356 void VectorLegalizer::ExpandSETCC(SDNode *Node, in ExpandSETCC() argument
1359 SDLoc dl(Node); in ExpandSETCC()
1360 MVT OpVT = Node->getOperand(0).getSimpleValueType(); in ExpandSETCC()
1361 ISD::CondCode CCCode = cast<CondCodeSDNode>(Node->getOperand(2))->get(); in ExpandSETCC()
1364 Results.push_back(UnrollVSETCC(Node)); in ExpandSETCC()
1369 SDValue LHS = Node->getOperand(0); in ExpandSETCC()
1370 SDValue RHS = Node->getOperand(1); in ExpandSETCC()
1371 SDValue CC = Node->getOperand(2); in ExpandSETCC()
1372 bool Legalized = TLI.LegalizeSetCCCondCode(DAG, Node->getValueType(0), LHS, in ExpandSETCC()
1379 LHS = DAG.getNode(ISD::SETCC, dl, Node->getValueType(0), LHS, RHS, CC, in ExpandSETCC()
1380 Node->getFlags()); in ExpandSETCC()
1389 EVT VT = Node->getValueType(0); in ExpandSETCC()
1394 LHS->setFlags(Node->getFlags()); in ExpandSETCC()
1400 void VectorLegalizer::ExpandUADDSUBO(SDNode *Node, in ExpandUADDSUBO() argument
1403 TLI.expandUADDSUBO(Node, Result, Overflow, DAG); in ExpandUADDSUBO()
1408 void VectorLegalizer::ExpandSADDSUBO(SDNode *Node, in ExpandSADDSUBO() argument
1411 TLI.expandSADDSUBO(Node, Result, Overflow, DAG); in ExpandSADDSUBO()
1416 void VectorLegalizer::ExpandMULO(SDNode *Node, in ExpandMULO() argument
1419 if (!TLI.expandMULO(Node, Result, Overflow, DAG)) in ExpandMULO()
1420 std::tie(Result, Overflow) = DAG.UnrollVectorOverflowOp(Node); in ExpandMULO()
1426 void VectorLegalizer::ExpandFixedPointDiv(SDNode *Node, in ExpandFixedPointDiv() argument
1428 SDNode *N = Node; in ExpandFixedPointDiv()
1434 void VectorLegalizer::ExpandStrictFPOp(SDNode *Node, in ExpandStrictFPOp() argument
1436 if (Node->getOpcode() == ISD::STRICT_UINT_TO_FP) { in ExpandStrictFPOp()
1437 ExpandUINT_TO_FLOAT(Node, Results); in ExpandStrictFPOp()
1440 if (Node->getOpcode() == ISD::STRICT_FP_TO_UINT) { in ExpandStrictFPOp()
1441 ExpandFP_TO_UINT(Node, Results); in ExpandStrictFPOp()
1445 UnrollStrictFPOp(Node, Results); in ExpandStrictFPOp()
1448 void VectorLegalizer::ExpandREM(SDNode *Node, in ExpandREM() argument
1450 assert((Node->getOpcode() == ISD::SREM || Node->getOpcode() == ISD::UREM) && in ExpandREM()
1454 if (!TLI.expandREM(Node, Result, DAG)) in ExpandREM()
1455 Result = DAG.UnrollVectorOp(Node); in ExpandREM()
1459 void VectorLegalizer::UnrollStrictFPOp(SDNode *Node, in UnrollStrictFPOp() argument
1461 EVT VT = Node->getValueType(0); in UnrollStrictFPOp()
1464 unsigned NumOpers = Node->getNumOperands(); in UnrollStrictFPOp()
1468 if (Node->getOpcode() == ISD::STRICT_FSETCC || in UnrollStrictFPOp()
1469 Node->getOpcode() == ISD::STRICT_FSETCCS) in UnrollStrictFPOp()
1474 SDValue Chain = Node->getOperand(0); in UnrollStrictFPOp()
1475 SDLoc dl(Node); in UnrollStrictFPOp()
1488 SDValue Oper = Node->getOperand(j); in UnrollStrictFPOp()
1498 SDValue ScalarOp = DAG.getNode(Node->getOpcode(), dl, ValueVTs, Opers); in UnrollStrictFPOp()
1502 if (Node->getOpcode() == ISD::STRICT_FSETCC || in UnrollStrictFPOp()
1503 Node->getOpcode() == ISD::STRICT_FSETCCS) in UnrollStrictFPOp()
1520 SDValue VectorLegalizer::UnrollVSETCC(SDNode *Node) { in UnrollVSETCC() argument
1521 EVT VT = Node->getValueType(0); in UnrollVSETCC()
1524 SDValue LHS = Node->getOperand(0); in UnrollVSETCC()
1525 SDValue RHS = Node->getOperand(1); in UnrollVSETCC()
1526 SDValue CC = Node->getOperand(2); in UnrollVSETCC()
1528 SDLoc dl(Node); in UnrollVSETCC()