Lines Matching defs:PartLLT
331 LLT PartLLT = MRI.getType(SrcRegs[0]);
334 LLT LCMTy = getCoverTy(LLTy, PartLLT);
344 if (LCMTy != PartLLT) {
372 /// with type \p PartLLT. This is used for incoming values (physregs to vregs).
374 ArrayRef<Register> Regs, LLT LLTy, LLT PartLLT,
378 if (PartLLT == LLTy) {
385 if (PartLLT.getSizeInBits() == LLTy.getSizeInBits() && OrigRegs.size() == 1 &&
391 // A vector PartLLT needs extending to LLTy's element size.
393 if (PartLLT.isVector() == LLTy.isVector() &&
394 PartLLT.getScalarSizeInBits() > LLTy.getScalarSizeInBits() &&
395 (!PartLLT.isVector() ||
396 PartLLT.getElementCount() == LLTy.getElementCount()) &&
422 if (!LLTy.isVector() && !PartLLT.isVector()) {
426 unsigned SrcSize = PartLLT.getSizeInBits().getFixedValue() * Regs.size();
437 if (PartLLT.isVector()) {
441 // If PartLLT is a mismatched vector in both number of elements and element
442 // size, e.g. PartLLT == v2s64 and LLTy is v3s32, then first coerce it to
445 if (TypeSize::isKnownGT(PartLLT.getSizeInBits(), LLTy.getSizeInBits()) &&
446 PartLLT.getScalarSizeInBits() == LLTy.getScalarSizeInBits() * 2 &&
448 LLT NewTy = PartLLT.changeElementType(LLTy.getElementType())
449 .changeElementCount(PartLLT.getElementCount() * 2);
451 PartLLT = NewTy;
454 if (LLTy.getScalarType() == PartLLT.getElementType()) {
458 LLT GCDTy = getGCDType(LLTy, PartLLT);
471 assert(LLTy.isVector() && !PartLLT.isVector());
481 if (DstEltTy == PartLLT) {
490 } else if (DstEltTy.getSizeInBits() > PartLLT.getSizeInBits()) {
495 divideCeil(DstEltTy.getSizeInBits(), PartLLT.getSizeInBits());
496 LLT ExtendedPartTy = LLT::scalar(PartLLT.getSizeInBits() * PartsPerElt);
514 LLT BVType = LLT::fixed_vector(NumElts, PartLLT);
538 BVRegs.push_back(B.buildAnyExt(PartLLT, Unmerge.getReg(K)).getReg(0));