reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/GlobalISel/LegalizerHelper.cpp
  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()})