Lines Matching refs:NumParts
92 const SDValue *Parts, unsigned NumParts,
102 unsigned NumParts, MVT PartVT, EVT ValueVT,
106 return getCopyFromPartsVector(DAG, DL, Parts, NumParts,
109 assert(NumParts > 0 && "No parts to assemble!");
113 if (NumParts > 1) {
120 unsigned RoundParts = NumParts & (NumParts - 1) ?
121 1 << Log2_32(NumParts) : NumParts;
144 if (RoundParts < NumParts) {
146 unsigned OddParts = NumParts - RoundParts;
155 EVT TotalVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits);
178 Val = getCopyFromParts(DAG, DL, Parts, NumParts, PartVT, IntVT, V);
222 const SDValue *Parts, unsigned NumParts,
225 assert(NumParts > 0 && "No parts to assemble!");
230 if (NumParts > 1) {
237 assert(NumRegs == NumParts && "Part count doesn't match vector breakdown!");
238 NumParts = NumRegs; // Silence a compiler warning.
245 if (NumIntermediates == NumParts) {
248 for (unsigned i = 0; i != NumParts; ++i)
251 } else if (NumParts > 0) {
254 assert(NumParts % NumIntermediates == 0 &&
256 unsigned Factor = NumParts / NumIntermediates;
332 SDValue Val, SDValue *Parts, unsigned NumParts,
339 SDValue Val, SDValue *Parts, unsigned NumParts,
346 return getCopyToPartsVector(DAG, DL, Val, Parts, NumParts, PartVT, V);
350 unsigned OrigNumParts = NumParts;
353 if (NumParts == 0)
359 assert(NumParts == 1 && "No-op copy with multiple parts!");
364 if (NumParts * PartBits > ValueVT.getSizeInBits()) {
367 assert(NumParts == 1 && "Do not know what to promote to!");
373 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits);
380 assert(NumParts == 1 && PartEVT != ValueVT);
382 } else if (NumParts * PartBits < ValueVT.getSizeInBits()) {
387 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits);
395 assert(NumParts * PartBits == ValueVT.getSizeInBits() &&
398 if (NumParts == 1) {
417 if (NumParts & (NumParts - 1)) {
421 unsigned RoundParts = 1 << Log2_32(NumParts);
423 unsigned OddParts = NumParts - RoundParts;
430 std::reverse(Parts + RoundParts, Parts + NumParts);
432 NumParts = RoundParts;
433 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits);
444 for (unsigned StepSize = NumParts; StepSize > 1; StepSize /= 2) {
445 for (unsigned i = 0; i < NumParts; i += StepSize) {
471 SDValue Val, SDValue *Parts, unsigned NumParts,
477 if (NumParts == 1) {
540 assert(NumRegs == NumParts && "Part count doesn't match vector breakdown!");
541 NumParts = NumRegs; // Silence a compiler warning.
559 if (NumParts == NumIntermediates) {
562 for (unsigned i = 0; i != NumParts; ++i)
564 } else if (NumParts > 0) {
567 assert(NumParts % NumIntermediates == 0 &&
569 unsigned Factor = NumParts / NumIntermediates;
786 unsigned NumParts = TLI.getNumRegisters(*DAG.getContext(), ValueVT);
792 &Parts[Part], NumParts, RegisterVT, V, ExtendKind);
793 Part += NumParts;
1250 unsigned NumParts = TLI->getNumRegisters(*DAG.getContext(), VT);
1252 SmallVector<SDValue, 4> Parts(NumParts);
1255 &Parts[0], NumParts, PartVT, &I, ExtendKind);
1269 for (unsigned i = 0; i < NumParts; ++i) {
6496 unsigned NumParts = getNumRegisters(CLI.RetTy->getContext(), VT);
6497 SmallVector<SDValue, 4> Parts(NumParts);
6519 if ((NumParts * PartVT.getSizeInBits() == VT.getSizeInBits()) ||
6525 getCopyToParts(CLI.DAG, CLI.DL, Op, &Parts[0], NumParts,
6528 for (unsigned j = 0; j != NumParts; ++j) {
6533 if (NumParts
6800 unsigned NumParts = TLI->getNumRegisters(*CurDAG->getContext(), VT);
6810 NumParts, PartVT, VT,
6814 i += NumParts;