Lines Matching defs:PartLLT
330 LLT PartLLT = MRI.getType(SrcRegs[0]);
333 LLT LCMTy = getCoverTy(LLTy, PartLLT);
343 if (LCMTy != PartLLT) {
371 /// with type \p PartLLT. This is used for incoming values (physregs to vregs).
373 ArrayRef<Register> Regs, LLT LLTy, LLT PartLLT,
377 if (PartLLT == LLTy) {
384 if (PartLLT.getSizeInBits() == LLTy.getSizeInBits() && OrigRegs.size() == 1 &&
390 // A vector PartLLT needs extending to LLTy's element size.
392 if (PartLLT.isVector() == LLTy.isVector() &&
393 PartLLT.getScalarSizeInBits() > LLTy.getScalarSizeInBits() &&
394 (!PartLLT.isVector() ||
395 PartLLT.getElementCount() == LLTy.getElementCount()) &&
421 if (!LLTy.isVector() && !PartLLT.isVector()) {
425 unsigned SrcSize = PartLLT.getSizeInBits().getFixedValue() * Regs.size();
436 if (PartLLT.isVector()) {
440 // If PartLLT is a mismatched vector in both number of elements and element
441 // size, e.g. PartLLT == v2s64 and LLTy is v3s32, then first coerce it to
444 if (TypeSize::isKnownGT(PartLLT.getSizeInBits(), LLTy.getSizeInBits()) &&
445 PartLLT.getScalarSizeInBits() == LLTy.getScalarSizeInBits() * 2 &&
447 LLT NewTy = PartLLT.changeElementType(LLTy.getElementType())
448 .changeElementCount(PartLLT.getElementCount() * 2);
450 PartLLT = NewTy;
453 if (LLTy.getScalarType() == PartLLT.getElementType()) {
457 LLT GCDTy = getGCDType(LLTy, PartLLT);
470 assert(LLTy.isVector() && !PartLLT.isVector());
480 if (DstEltTy == PartLLT) {
489 } else if (DstEltTy.getSizeInBits() > PartLLT.getSizeInBits()) {
494 divideCeil(DstEltTy.getSizeInBits(), PartLLT.getSizeInBits());
495 LLT ExtendedPartTy = LLT::scalar(PartLLT.getSizeInBits() * PartsPerElt);
513 LLT BVType = LLT::fixed_vector(NumElts, PartLLT);
537 BVRegs.push_back(B.buildAnyExt(PartLLT, Unmerge.getReg(K)).getReg(0));