Lines Matching full:results
76 /// Assuming the node is legal, "legalize" the results.
79 /// Make sure Results are legal and update the translation cache.
81 MutableArrayRef<SDValue> Results);
83 /// Wrapper to interface LowerOperation with a vector of Results.
85 /// returns true. If return is true and the Results are empty, then the
87 bool LowerOperationWrapper(SDNode *N, SmallVectorImpl<SDValue> &Results);
96 void Expand(SDNode *Node, SmallVectorImpl<SDValue> &Results);
100 void ExpandFP_TO_UINT(SDNode *Node, SmallVectorImpl<SDValue> &Results);
104 void ExpandUINT_TO_FLOAT(SDNode *Node, SmallVectorImpl<SDValue> &Results);
147 void ExpandFSUB(SDNode *Node, SmallVectorImpl<SDValue> &Results);
148 void ExpandSETCC(SDNode *Node, SmallVectorImpl<SDValue> &Results);
150 void ExpandUADDSUBO(SDNode *Node, SmallVectorImpl<SDValue> &Results);
151 void ExpandSADDSUBO(SDNode *Node, SmallVectorImpl<SDValue> &Results);
152 void ExpandMULO(SDNode *Node, SmallVectorImpl<SDValue> &Results);
153 void ExpandFixedPointDiv(SDNode *Node, SmallVectorImpl<SDValue> &Results);
154 void ExpandStrictFPOp(SDNode *Node, SmallVectorImpl<SDValue> &Results);
155 void ExpandREM(SDNode *Node, SmallVectorImpl<SDValue> &Results);
158 SmallVectorImpl<SDValue> &Results);
163 SmallVectorImpl<SDValue> &Results);
165 void UnrollStrictFPOp(SDNode *Node, SmallVectorImpl<SDValue> &Results);
171 void Promote(SDNode *Node, SmallVectorImpl<SDValue> &Results);
176 void PromoteINT_TO_FP(SDNode *Node, SmallVectorImpl<SDValue> &Results);
182 void PromoteFP_TO_INT(SDNode *Node, SmallVectorImpl<SDValue> &Results);
188 void PromoteSETCC(SDNode *Node, SmallVectorImpl<SDValue> &Results);
190 void PromoteSTRICT(SDNode *Node, SmallVectorImpl<SDValue> &Results);
246 "Unexpected number of results");
255 MutableArrayRef<SDValue> Results) {
256 assert(Results.size() == Op->getNumValues() &&
257 "Unexpected number of results");
259 for (unsigned i = 0, e = Results.size(); i != e; ++i) {
260 Results[i] = LegalizeOp(Results[i]);
261 AddLegalizedOperand(Op.getValue(i), Results[i]);
264 return Results[Op.getResNo()];
534 /* Defer non-vector results to LegalizeDAG. */ \
555 assert(!ResultVals.empty() && "No results for promotion?");
582 SmallVectorImpl<SDValue> &Results) {
594 Results.push_back(Res);
598 // If the original node has multiple results, then the return node should
599 // have the same number of results.
601 "Lowering returned the wrong number of results!");
605 Results.push_back(Res.getValue(I));
611 SmallVectorImpl<SDValue> &Results) {
632 Results.push_back(Res);
636 SmallVectorImpl<SDValue> &Results) {
672 Results.push_back(Round.getValue(0));
673 Results.push_back(Round.getValue(1));
676 void VectorLegalizer::Promote(SDNode *Node, SmallVectorImpl<SDValue> &Results) {
685 PromoteINT_TO_FP(Node, Results);
692 PromoteFP_TO_INT(Node, Results);
697 PromoteSETCC(Node, Results);
705 PromoteSTRICT(Node, Results);
725 "Can't promote a vector with multiple results!");
776 Results.push_back(Res);
780 SmallVectorImpl<SDValue> &Results) {
806 Results.push_back(Res);
807 Results.push_back(Res.getValue(1));
813 Results.push_back(Res);
821 SmallVectorImpl<SDValue> &Results) {
860 Results.push_back(Promoted);
862 Results.push_back(Chain);
876 void VectorLegalizer::Expand(SDNode *Node, SmallVectorImpl<SDValue> &Results) {
880 Results.push_back(Tmp.first);
881 Results.push_back(Tmp.second);
885 Results.push_back(ExpandStore(Node));
889 Results.push_back(Node->getOperand(i));
893 Results.push_back(Expanded);
898 Results.push_back(ExpandANY_EXTEND_VECTOR_INREG(Node));
901 Results.push_back(ExpandSIGN_EXTEND_VECTOR_INREG(Node));
904 Results.push_back(ExpandZERO_EXTEND_VECTOR_INREG(Node));
908 Results.push_back(Expanded);
913 Results.push_back(TLI.expandVPBSWAP(Node, DAG));
917 Results.push_back(Expanded);
923 Results.push_back(Expanded);
930 Results.push_back(Expanded);
936 Results.push_back(Expanded);
942 Results.push_back(Expanded);
948 Results.push_back(Expanded);
954 Results.push_back(Expanded);
965 Results.push_back(DAG.getSelect(SDLoc(Node), Node->getValueType(0), SetCC,
973 ExpandFP_TO_UINT(Node, Results);
976 ExpandUINT_TO_FLOAT(Node, Results);
980 Results.push_back(Expanded);
986 Results.push_back(Expanded);
992 Results.push_back(Expanded);
997 ExpandFSUB(Node, Results);
1001 ExpandSETCC(Node, Results);
1005 Results.push_back(Expanded);
1012 Results.push_back(Expanded);
1021 Results.push_back(Expanded);
1027 Results.push_back(Expanded);
1033 Results.push_back(Expanded);
1039 Results.push_back(Expanded);
1045 Results.push_back(Expanded);
1052 Results.push_back(Expanded);
1059 Results.push_back(Expanded);
1066 Results.push_back(Expanded);
1073 Results.push_back(Expanded);
1082 Results.push_back(Expanded);
1089 Results.push_back(Expanded);
1096 Results.push_back(Expanded);
1102 Results.push_back(TLI.expandFMINIMUM_FMAXIMUM(Node, DAG));
1106 Results.push_back(TLI.expandFMINIMUMNUM_FMAXIMUMNUM(Node, DAG));
1113 Results.push_back(Expanded);
1119 ExpandUADDSUBO(Node, Results);
1123 ExpandSADDSUBO(Node, Results);
1127 ExpandMULO(Node, Results);
1134 Results.push_back(Expanded);
1141 Results.push_back(Expanded);
1150 Results.push_back(Expanded);
1158 Results.push_back(Expanded);
1165 // why. Maybe it results in worse codegen compared to the unroll for some
1171 ExpandFixedPointDiv(Node, Results);
1179 ExpandStrictFPOp(Node, Results);
1196 Results.push_back(TLI.expandVecReduce(Node, DAG));
1200 Results.push_back(TLI.expandVecReduceSeq(Node, DAG));
1204 ExpandREM(Node, Results);
1208 Results.push_back(Expanded);
1215 RTLIB::REM_PPCF128, Results))
1222 if (DAG.expandMultipleResultFPLibCall(LC, Node, Results))
1227 Results.push_back(TLI.expandVECTOR_COMPRESS(Node, DAG));
1230 Results.push_back(TLI.expandVectorFindLastActive(Node, DAG));
1234 Results.push_back(TLI.expandCMP(Node, DAG));
1250 Results.push_back(Expanded);
1258 Results.push_back(Unrolled);
1261 "VectorLegalizer Expand returned wrong number of results!");
1263 Results.push_back(Unrolled.getValue(I));
1744 SmallVectorImpl<SDValue> &Results) {
1748 Results.push_back(Result);
1750 Results.push_back(Chain);
1756 UnrollStrictFPOp(Node, Results);
1760 Results.push_back(DAG.UnrollVectorOp(Node));
1764 SmallVectorImpl<SDValue> &Results) {
1776 Results.push_back(Result);
1778 Results.push_back(Chain);
1789 UnrollStrictFPOp(Node, Results);
1793 Results.push_back(DAG.UnrollVectorOp(Node));
1815 Results.push_back(Result);
1816 Results.push_back(Result.getValue(1));
1820 Results.push_back(Result);
1859 Results.push_back(Result);
1860 Results.push_back(Result.getValue(1));
1872 Results.push_back(DAG.getNode(ISD::FADD, DL, DstVT, fHI, fLO));
1948 SmallVectorImpl<SDValue> &Results) {
1958 Results.push_back(Expanded);
1963 Results.push_back(Tmp);
1967 SmallVectorImpl<SDValue> &Results) {
1985 UnrollStrictFPOp(Node, Results);
1988 Results.push_back(UnrollVSETCC(Node));
2041 Results.push_back(LHS);
2043 Results.push_back(Chain);
2047 SmallVectorImpl<SDValue> &Results) {
2050 Results.push_back(Result);
2051 Results.push_back(Overflow);
2055 SmallVectorImpl<SDValue> &Results) {
2058 Results.push_back(Result);
2059 Results.push_back(Overflow);
2063 SmallVectorImpl<SDValue> &Results) {
2068 Results.push_back(Result);
2069 Results.push_back(Overflow);
2073 SmallVectorImpl<SDValue> &Results) {
2077 Results.push_back(Expanded);
2081 SmallVectorImpl<SDValue> &Results) {
2083 ExpandUINT_TO_FLOAT(Node, Results);
2087 ExpandFP_TO_UINT(Node, Results);
2093 ExpandSETCC(Node, Results);
2097 UnrollStrictFPOp(Node, Results);
2101 SmallVectorImpl<SDValue> &Results) {
2108 Results.push_back(Result);
2118 SmallVectorImpl<SDValue> &Results) {
2203 Results.push_back(CallResult.first);
2211 RTLIB::Libcall Call_PPCF128, SmallVectorImpl<SDValue> &Results) {
2219 return tryExpandVecMathCall(Node, LC, Results);
2223 SmallVectorImpl<SDValue> &Results) {
2278 Results.push_back(Result);
2279 Results.push_back(NewChain);