Lines Matching refs:NumParts

158                                       const SDValue *Parts, unsigned NumParts,
170 unsigned NumParts, MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromParts() argument
176 if (SDValue Val = TLI.joinRegisterPartsIntoValue(DAG, DL, Parts, NumParts, in getCopyFromParts()
181 return getCopyFromPartsVector(DAG, DL, Parts, NumParts, PartVT, ValueVT, V, in getCopyFromParts()
184 assert(NumParts > 0 && "No parts to assemble!"); in getCopyFromParts()
187 if (NumParts > 1) { in getCopyFromParts()
194 unsigned RoundParts = llvm::bit_floor(NumParts); in getCopyFromParts()
217 if (RoundParts < NumParts) { in getCopyFromParts()
219 unsigned OddParts = NumParts - RoundParts; in getCopyFromParts()
228 EVT TotalVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyFromParts()
252 Val = getCopyFromParts(DAG, DL, Parts, NumParts, PartVT, IntVT, V, in getCopyFromParts()
342 const SDValue *Parts, unsigned NumParts, in getCopyFromPartsVector() argument
347 assert(NumParts > 0 && "No parts to assemble!"); in getCopyFromPartsVector()
354 if (NumParts > 1) { in getCopyFromPartsVector()
370 assert(NumRegs == NumParts && "Part count doesn't match vector breakdown!"); in getCopyFromPartsVector()
371 NumParts = NumRegs; // Silence a compiler warning. in getCopyFromPartsVector()
379 if (NumIntermediates == NumParts) { in getCopyFromPartsVector()
382 for (unsigned i = 0; i != NumParts; ++i) in getCopyFromPartsVector()
385 } else if (NumParts > 0) { in getCopyFromPartsVector()
388 assert(NumParts % NumIntermediates == 0 && in getCopyFromPartsVector()
390 unsigned Factor = NumParts / NumIntermediates; in getCopyFromPartsVector()
402 IntermediateVT.getVectorElementCount() * NumParts) in getCopyFromPartsVector()
499 SDValue Val, SDValue *Parts, unsigned NumParts,
508 unsigned NumParts, MVT PartVT, const Value *V, in getCopyToParts() argument
513 if (TLI.splitValueIntoRegisterParts(DAG, DL, Val, Parts, NumParts, PartVT, in getCopyToParts()
520 return getCopyToPartsVector(DAG, DL, Val, Parts, NumParts, PartVT, V, in getCopyToParts()
523 unsigned OrigNumParts = NumParts; in getCopyToParts()
527 if (NumParts == 0) in getCopyToParts()
533 assert(NumParts == 1 && "No-op copy with multiple parts!"); in getCopyToParts()
539 if (NumParts * PartBits > ValueVT.getSizeInBits()) { in getCopyToParts()
542 assert(NumParts == 1 && "Do not know what to promote to!"); in getCopyToParts()
554 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
561 assert(NumParts == 1 && PartEVT != ValueVT); in getCopyToParts()
563 } else if (NumParts * PartBits < ValueVT.getSizeInBits()) { in getCopyToParts()
568 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
576 assert(NumParts * PartBits == ValueVT.getSizeInBits() && in getCopyToParts()
579 if (NumParts == 1) { in getCopyToParts()
591 if (NumParts & (NumParts - 1)) { in getCopyToParts()
595 unsigned RoundParts = llvm::bit_floor(NumParts); in getCopyToParts()
597 unsigned OddParts = NumParts - RoundParts; in getCopyToParts()
606 std::reverse(Parts + RoundParts, Parts + NumParts); in getCopyToParts()
608 NumParts = RoundParts; in getCopyToParts()
609 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
620 for (unsigned StepSize = NumParts; StepSize > 1; StepSize /= 2) { in getCopyToParts()
621 for (unsigned i = 0; i < NumParts; i += StepSize) { in getCopyToParts()
691 SDValue Val, SDValue *Parts, unsigned NumParts, in getCopyToPartsVector() argument
699 if (NumParts == 1) { in getCopyToPartsVector()
774 assert(NumRegs == NumParts && "Part count doesn't match vector breakdown!"); in getCopyToPartsVector()
775 NumParts = NumRegs; // Silence a compiler warning. in getCopyToPartsVector()
830 if (NumParts == NumIntermediates) { in getCopyToPartsVector()
833 for (unsigned i = 0; i != NumParts; ++i) in getCopyToPartsVector()
835 } else if (NumParts > 0) { in getCopyToPartsVector()
839 assert(NumParts % NumIntermediates == 0 && in getCopyToPartsVector()
841 unsigned Factor = NumParts / NumIntermediates; in getCopyToPartsVector()
975 unsigned NumParts = RegCount[Value]; in getCopyToRegs() local
986 NumParts, RegisterVT, V, CallConv, ExtendKind); in getCopyToRegs()
987 Part += NumParts; in getCopyToRegs()
2261 unsigned NumParts = TLI.getNumRegistersForCallingConv(Context, CC, VT); in visitRet() local
2263 SmallVector<SDValue, 4> Parts(NumParts); in visitRet()
2266 &Parts[0], NumParts, PartVT, &I, CC, ExtendKind); in visitRet()
2291 for (unsigned i = 0; i < NumParts; ++i) { in visitRet()
11025 unsigned NumParts = getNumRegistersForCallingConv(CLI.RetTy->getContext(), in LowerCallTo() local
11027 SmallVector<SDValue, 4> Parts(NumParts); in LowerCallTo()
11054 if ((NumParts * PartVT.getSizeInBits() == VT.getSizeInBits()) || in LowerCallTo()
11060 getCopyToParts(CLI.DAG, CLI.DL, Op, &Parts[0], NumParts, PartVT, CLI.CB, in LowerCallTo()
11063 for (unsigned j = 0; j != NumParts; ++j) { in LowerCallTo()
11071 if (NumParts > 1 && j == 0) in LowerCallTo()
11075 if (j == NumParts - 1) in LowerCallTo()
11685 unsigned NumParts = 0; in LowerArguments() local
11687 NumParts += TLI->getNumRegistersForCallingConv(*CurDAG->getContext(), in LowerArguments()
11692 ArrayRef(&InVals[i], NumParts), ArgHasUses); in LowerArguments()
11713 unsigned NumParts = TLI->getNumRegistersForCallingConv( in LowerArguments() local
11726 ArgValues.push_back(getCopyFromParts(DAG, dl, &InVals[i], NumParts, in LowerArguments()
11731 i += NumParts; in LowerArguments()