reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
603 uint64_t NarrowSize = NarrowTy.getSizeInBits(); 618 MIRBuilder.buildUndef(NarrowTy)->getOperand(0).getReg()); 632 unsigned NarrowSize = NarrowTy.getSizeInBits(); 638 auto K = MIRBuilder.buildConstant(NarrowTy, 655 Ty, NarrowTy, PartRegs, LeftoverTy, LeftoverRegs); 670 SrcTy.getSizeInBits() != NarrowTy.getSizeInBits()) { 671 LLVM_DEBUG(dbgs() << "Can't narrow sext to type " << NarrowTy << "\n"); 677 MIRBuilder.buildConstant(LLT::scalar(64), NarrowTy.getSizeInBits() - 1); 678 auto Shift = MIRBuilder.buildAShr(NarrowTy, SrcReg, ShiftAmt); 708 if (NarrowTy.getSizeInBits() * 2 != SizeOp1) { 709 LLVM_DEBUG(dbgs() << "Can't narrow trunc to type " << NarrowTy << "\n"); 713 auto Unmerge = MIRBuilder.buildUnmerge(NarrowTy, MI.getOperand(1).getReg()); 725 int NumParts = SizeOp0 / NarrowTy.getSizeInBits(); 728 extractParts(MI.getOperand(1).getReg(), NarrowTy, NumParts, Src1Regs); 729 extractParts(MI.getOperand(2).getReg(), NarrowTy, NumParts, Src2Regs); 733 Register DstReg = MRI.createGenericVirtualRegister(NarrowTy); 760 int NumParts = SizeOp0 / NarrowTy.getSizeInBits(); 763 extractParts(MI.getOperand(1).getReg(), NarrowTy, NumParts, Src1Regs); 764 extractParts(MI.getOperand(2).getReg(), NarrowTy, NumParts, Src2Regs); 766 Register DstReg = MRI.createGenericVirtualRegister(NarrowTy); 773 DstReg = MRI.createGenericVirtualRegister(NarrowTy); 788 return narrowScalarMul(MI, NarrowTy); 790 return narrowScalarExtract(MI, TypeIdx, NarrowTy); 792 return narrowScalarInsert(MI, TypeIdx, NarrowTy); 801 Register TmpReg = MRI.createGenericVirtualRegister(NarrowTy); 809 return reduceLoadStoreWidth(MI, TypeIdx, NarrowTy); 817 Register TmpReg = MRI.createGenericVirtualRegister(NarrowTy); 847 unsigned HandledSize = NumParts * NarrowTy.getSizeInBits(); 853 Register TmpReg = MRI.createGenericVirtualRegister(NarrowTy); 861 return reduceLoadStoreWidth(MI, 0, NarrowTy); 864 return narrowScalarSelect(MI, TypeIdx, NarrowTy); 877 return narrowScalarBasic(MI, TypeIdx, NarrowTy); 882 return narrowScalarShift(MI, TypeIdx, NarrowTy); 892 narrowScalarDst(MI, NarrowTy, 0, TargetOpcode::G_ZEXT); 900 narrowScalarSrc(MI, NarrowTy, 1); 908 narrowScalarDst(MI, NarrowTy, 0, TargetOpcode::G_ZEXT); 921 extractParts(MI.getOperand(i).getReg(), NarrowTy, NumParts, 927 DstRegs[i] = MRI.createGenericVirtualRegister(NarrowTy); 946 narrowScalarSrc(MI, NarrowTy, OpIdx); 956 Register LHSL = MRI.createGenericVirtualRegister(NarrowTy); 957 Register LHSH = MRI.createGenericVirtualRegister(NarrowTy); 960 Register RHSL = MRI.createGenericVirtualRegister(NarrowTy); 961 Register RHSH = MRI.createGenericVirtualRegister(NarrowTy); 969 MachineInstrBuilder XorL = MIRBuilder.buildXor(NarrowTy, LHSL, RHSL); 970 MachineInstrBuilder XorH = MIRBuilder.buildXor(NarrowTy, LHSH, RHSH); 971 MachineInstrBuilder Or = MIRBuilder.buildOr(NarrowTy, XorL, XorH); 972 MachineInstrBuilder Zero = MIRBuilder.buildConstant(NarrowTy, 0); 996 if (NarrowTy.getScalarSizeInBits() >= SizeInBits) { 1001 auto TruncMIB = MIRBuilder.buildTrunc(NarrowTy, MO1.getReg()); 1005 Register DstExt = MRI.createGenericVirtualRegister(NarrowTy); 1028 Register SrcReg = MRI.createGenericVirtualRegister(NarrowTy); 1037 MIRBuilder.buildConstant(NarrowTy, NarrowTy.getScalarSizeInBits() - 1) 1037 MIRBuilder.buildConstant(NarrowTy, NarrowTy.getScalarSizeInBits() - 1) 1045 if ((i + 1) * NarrowTy.getScalarSizeInBits() < SizeInBits) 1047 else if (i * NarrowTy.getScalarSizeInBits() > SizeInBits) { 1055 .buildInstr(TargetOpcode::G_ASHR, {NarrowTy}, 1064 TargetOpcode::G_SEXT_INREG, {NarrowTy}, 1065 {SrcRegs[i], SizeInBits % NarrowTy.getScalarSizeInBits()})