Lines Matching defs:NumParts

155                                       const SDValue *Parts, unsigned NumParts,
167 unsigned NumParts, MVT PartVT, EVT ValueVT, const Value *V,
173 if (SDValue Val = TLI.joinRegisterPartsIntoValue(DAG, DL, Parts, NumParts,
178 return getCopyFromPartsVector(DAG, DL, Parts, NumParts, PartVT, ValueVT, V,
181 assert(NumParts > 0 && "No parts to assemble!");
184 if (NumParts > 1) {
191 unsigned RoundParts = llvm::bit_floor(NumParts);
214 if (RoundParts < NumParts) {
216 unsigned OddParts = NumParts - RoundParts;
225 EVT TotalVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits);
249 Val = getCopyFromParts(DAG, DL, Parts, NumParts, PartVT, IntVT, V,
340 const SDValue *Parts, unsigned NumParts,
345 assert(NumParts > 0 && "No parts to assemble!");
352 if (NumParts > 1) {
368 assert(NumRegs == NumParts && "Part count doesn't match vector breakdown!");
369 NumParts = NumRegs; // Silence a compiler warning.
377 if (NumIntermediates == NumParts) {
380 for (unsigned i = 0; i != NumParts; ++i)
383 } else if (NumParts > 0) {
386 assert(NumParts % NumIntermediates == 0 &&
388 unsigned Factor = NumParts / NumIntermediates;
400 IntermediateVT.getVectorElementCount() * NumParts)
497 SDValue Val, SDValue *Parts, unsigned NumParts,
506 unsigned NumParts, MVT PartVT, const Value *V,
511 if (TLI.splitValueIntoRegisterParts(DAG, DL, Val, Parts, NumParts, PartVT,
518 return getCopyToPartsVector(DAG, DL, Val, Parts, NumParts, PartVT, V,
521 unsigned OrigNumParts = NumParts;
525 if (NumParts == 0)
531 assert(NumParts == 1 && "No-op copy with multiple parts!");
537 if (NumParts * PartBits > ValueVT.getSizeInBits()) {
540 assert(NumParts == 1 && "Do not know what to promote to!");
552 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits);
559 assert(NumParts == 1 && PartEVT != ValueVT);
561 } else if (NumParts * PartBits < ValueVT.getSizeInBits()) {
566 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits);
574 assert(NumParts * PartBits == ValueVT.getSizeInBits() &&
577 if (NumParts == 1) {
589 if (NumParts & (NumParts - 1)) {
593 unsigned RoundParts = llvm::bit_floor(NumParts);
595 unsigned OddParts = NumParts - RoundParts;
604 std::reverse(Parts + RoundParts, Parts + NumParts);
606 NumParts = RoundParts;
607 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits);
618 for (unsigned StepSize = NumParts; StepSize > 1; StepSize /= 2) {
619 for (unsigned i = 0; i < NumParts; i += StepSize) {
689 SDValue Val, SDValue *Parts, unsigned NumParts,
697 if (NumParts == 1) {
772 assert(NumRegs == NumParts && "Part count doesn't match vector breakdown!");
773 NumParts = NumRegs; // Silence a compiler warning.
828 if (NumParts == NumIntermediates) {
831 for (unsigned i = 0; i != NumParts; ++i)
833 } else if (NumParts > 0) {
837 assert(NumParts % NumIntermediates == 0 &&
839 unsigned Factor = NumParts / NumIntermediates;
973 unsigned NumParts = RegCount[Value];
984 NumParts, RegisterVT, V, CallConv, ExtendKind);
985 Part += NumParts;
2263 unsigned NumParts = TLI.getNumRegistersForCallingConv(Context, CC, VT);
2265 SmallVector<SDValue, 4> Parts(NumParts);
2268 &Parts[0], NumParts, PartVT, &I, CC, ExtendKind);
2295 for (unsigned i = 0; i < NumParts; ++i) {
11187 unsigned NumParts = getNumRegistersForCallingConv(CLI.RetTy->getContext(),
11189 SmallVector<SDValue, 4> Parts(NumParts);
11216 if ((NumParts * PartVT.getSizeInBits() == VT.getSizeInBits()) ||
11222 getCopyToParts(CLI.DAG, CLI.DL, Op, &Parts[0], NumParts, PartVT, CLI.CB,
11225 for (unsigned j = 0; j != NumParts; ++j) {
11233 if (NumParts > 1 && j == 0)
11237 if (j == NumParts - 1)
11828 unsigned NumParts = 0;
11830 NumParts += TLI->getNumRegistersForCallingConv(*CurDAG->getContext(),
11835 ArrayRef(&InVals[i], NumParts), ArgHasUses);
11856 unsigned NumParts = TLI->getNumRegistersForCallingConv(
11869 ArgValues.push_back(getCopyFromParts(DAG, dl, &InVals[i], NumParts,
11874 i += NumParts;