Lines Matching refs:Res

136 MachineInstrBuilder MachineIRBuilder::buildDynStackAlloc(const DstOp &Res,  in buildDynStackAlloc()  argument
139 assert(Res.getLLTTy(*getMRI()).isPointer() && "expected ptr dst type"); in buildDynStackAlloc()
141 Res.addDefToMIB(*getMRI(), MIB); in buildDynStackAlloc()
147 MachineInstrBuilder MachineIRBuilder::buildFrameIndex(const DstOp &Res, in buildFrameIndex() argument
149 assert(Res.getLLTTy(*getMRI()).isPointer() && "invalid operand type"); in buildFrameIndex()
151 Res.addDefToMIB(*getMRI(), MIB); in buildFrameIndex()
156 MachineInstrBuilder MachineIRBuilder::buildGlobalValue(const DstOp &Res, in buildGlobalValue() argument
158 assert(Res.getLLTTy(*getMRI()).isPointer() && "invalid operand type"); in buildGlobalValue()
159 assert(Res.getLLTTy(*getMRI()).getAddressSpace() == in buildGlobalValue()
164 Res.addDefToMIB(*getMRI(), MIB); in buildGlobalValue()
169 MachineInstrBuilder MachineIRBuilder::buildConstantPool(const DstOp &Res, in buildConstantPool() argument
171 assert(Res.getLLTTy(*getMRI()).isPointer() && "invalid operand type"); in buildConstantPool()
173 Res.addDefToMIB(*getMRI(), MIB); in buildConstantPool()
184 void MachineIRBuilder::validateUnaryOp(const LLT Res, const LLT Op0) { in validateUnaryOp() argument
185 assert((Res.isScalar() || Res.isVector()) && "invalid operand type"); in validateUnaryOp()
186 assert((Res == Op0) && "type mismatch"); in validateUnaryOp()
189 void MachineIRBuilder::validateBinaryOp(const LLT Res, const LLT Op0, in validateBinaryOp() argument
191 assert((Res.isScalar() || Res.isVector()) && "invalid operand type"); in validateBinaryOp()
192 assert((Res == Op0 && Res == Op1) && "type mismatch"); in validateBinaryOp()
195 void MachineIRBuilder::validateShiftOp(const LLT Res, const LLT Op0, in validateShiftOp() argument
197 assert((Res.isScalar() || Res.isVector()) && "invalid operand type"); in validateShiftOp()
198 assert((Res == Op0) && "type mismatch"); in validateShiftOp()
202 MachineIRBuilder::buildPtrAdd(const DstOp &Res, const SrcOp &Op0, in buildPtrAdd() argument
204 assert(Res.getLLTTy(*getMRI()).isPointerOrPointerVector() && in buildPtrAdd()
205 Res.getLLTTy(*getMRI()) == Op0.getLLTTy(*getMRI()) && "type mismatch"); in buildPtrAdd()
208 return buildInstr(TargetOpcode::G_PTR_ADD, {Res}, {Op0, Op1}, Flags); in buildPtrAdd()
212 MachineIRBuilder::materializePtrAdd(Register &Res, Register Op0, in materializePtrAdd() argument
214 assert(Res == 0 && "Res is a result argument"); in materializePtrAdd()
218 Res = Op0; in materializePtrAdd()
222 Res = getMRI()->createGenericVirtualRegister(getMRI()->getType(Op0)); in materializePtrAdd()
224 return buildPtrAdd(Res, Op0, Cst.getReg(0)); in materializePtrAdd()
227 MachineInstrBuilder MachineIRBuilder::buildMaskLowPtrBits(const DstOp &Res, in buildMaskLowPtrBits() argument
230 LLT PtrTy = Res.getLLTTy(*getMRI()); in buildMaskLowPtrBits()
234 return buildPtrMask(Res, Op0, MaskReg); in buildMaskLowPtrBits()
238 MachineIRBuilder::buildPadVectorWithUndefElements(const DstOp &Res, in buildPadVectorWithUndefElements() argument
240 LLT ResTy = Res.getLLTTy(*getMRI()); in buildPadVectorWithUndefElements()
265 return buildMergeLikeInstr(Res, Regs); in buildPadVectorWithUndefElements()
269 MachineIRBuilder::buildDeleteTrailingVectorElements(const DstOp &Res, in buildDeleteTrailingVectorElements() argument
271 LLT ResTy = Res.getLLTTy(*getMRI()); in buildDeleteTrailingVectorElements()
285 return buildCopy(Res, Unmerge.getReg(0)); in buildDeleteTrailingVectorElements()
289 return buildMergeLikeInstr(Res, Regs); in buildDeleteTrailingVectorElements()
312 MachineInstrBuilder MachineIRBuilder::buildCopy(const DstOp &Res, in buildCopy() argument
314 return buildInstr(TargetOpcode::COPY, Res, Op); in buildCopy()
317 MachineInstrBuilder MachineIRBuilder::buildConstant(const DstOp &Res, in buildConstant() argument
319 LLT Ty = Res.getLLTTy(*getMRI()); in buildConstant()
331 return buildSplatBuildVector(Res, Const); in buildConstant()
336 Res.addDefToMIB(*getMRI(), Const); in buildConstant()
341 MachineInstrBuilder MachineIRBuilder::buildConstant(const DstOp &Res, in buildConstant() argument
344 Res.getLLTTy(*getMRI()).getScalarSizeInBits()); in buildConstant()
346 return buildConstant(Res, *CI); in buildConstant()
349 MachineInstrBuilder MachineIRBuilder::buildFConstant(const DstOp &Res, in buildFConstant() argument
351 LLT Ty = Res.getLLTTy(*getMRI()); in buildFConstant()
368 return buildSplatBuildVector(Res, Const); in buildFConstant()
373 Res.addDefToMIB(*getMRI(), Const); in buildFConstant()
378 MachineInstrBuilder MachineIRBuilder::buildConstant(const DstOp &Res, in buildConstant() argument
381 return buildConstant(Res, *CI); in buildConstant()
384 MachineInstrBuilder MachineIRBuilder::buildFConstant(const DstOp &Res, in buildFConstant() argument
386 LLT DstTy = Res.getLLTTy(*getMRI()); in buildFConstant()
390 return buildFConstant(Res, *CFP); in buildFConstant()
393 MachineInstrBuilder MachineIRBuilder::buildFConstant(const DstOp &Res, in buildFConstant() argument
397 return buildFConstant(Res, *CFP); in buildFConstant()
401 MachineIRBuilder::buildConstantPtrAuth(const DstOp &Res, in buildConstantPtrAuth() argument
405 Res.addDefToMIB(*getMRI(), MIB); in buildConstantPtrAuth()
438 const DstOp &Res, in buildLoadInstr() argument
441 assert(Res.getLLTTy(*getMRI()).isValid() && "invalid operand type"); in buildLoadInstr()
445 Res.addDefToMIB(*getMRI(), MIB); in buildLoadInstr()
495 MachineInstrBuilder MachineIRBuilder::buildAnyExt(const DstOp &Res, in buildAnyExt() argument
497 return buildInstr(TargetOpcode::G_ANYEXT, Res, Op); in buildAnyExt()
500 MachineInstrBuilder MachineIRBuilder::buildSExt(const DstOp &Res, in buildSExt() argument
502 return buildInstr(TargetOpcode::G_SEXT, Res, Op); in buildSExt()
505 MachineInstrBuilder MachineIRBuilder::buildZExt(const DstOp &Res, in buildZExt() argument
508 return buildInstr(TargetOpcode::G_ZEXT, Res, Op, Flags); in buildZExt()
523 MachineInstrBuilder MachineIRBuilder::buildBoolExt(const DstOp &Res, in buildBoolExt() argument
527 return buildInstr(ExtOp, Res, Op); in buildBoolExt()
530 MachineInstrBuilder MachineIRBuilder::buildBoolExtInReg(const DstOp &Res, in buildBoolExtInReg() argument
537 return buildSExtInReg(Res, Op, 1); in buildBoolExtInReg()
539 return buildZExtInReg(Res, Op, 1); in buildBoolExtInReg()
541 return buildCopy(Res, Op); in buildBoolExtInReg()
548 const DstOp &Res, in buildExtOrTrunc() argument
553 assert(Res.getLLTTy(*getMRI()).isScalar() || in buildExtOrTrunc()
554 Res.getLLTTy(*getMRI()).isVector()); in buildExtOrTrunc()
555 assert(Res.getLLTTy(*getMRI()).isScalar() == in buildExtOrTrunc()
559 if (Res.getLLTTy(*getMRI()).getSizeInBits() > in buildExtOrTrunc()
562 else if (Res.getLLTTy(*getMRI()).getSizeInBits() < in buildExtOrTrunc()
566 assert(Res.getLLTTy(*getMRI()) == Op.getLLTTy(*getMRI())); in buildExtOrTrunc()
568 return buildInstr(Opcode, Res, Op); in buildExtOrTrunc()
571 MachineInstrBuilder MachineIRBuilder::buildSExtOrTrunc(const DstOp &Res, in buildSExtOrTrunc() argument
573 return buildExtOrTrunc(TargetOpcode::G_SEXT, Res, Op); in buildSExtOrTrunc()
576 MachineInstrBuilder MachineIRBuilder::buildZExtOrTrunc(const DstOp &Res, in buildZExtOrTrunc() argument
578 return buildExtOrTrunc(TargetOpcode::G_ZEXT, Res, Op); in buildZExtOrTrunc()
581 MachineInstrBuilder MachineIRBuilder::buildAnyExtOrTrunc(const DstOp &Res, in buildAnyExtOrTrunc() argument
583 return buildExtOrTrunc(TargetOpcode::G_ANYEXT, Res, Op); in buildAnyExtOrTrunc()
586 MachineInstrBuilder MachineIRBuilder::buildZExtInReg(const DstOp &Res, in buildZExtInReg() argument
589 LLT ResTy = Res.getLLTTy(*getMRI()); in buildZExtInReg()
592 return buildAnd(Res, Op, Mask); in buildZExtInReg()
640 MachineInstrBuilder MachineIRBuilder::buildUndef(const DstOp &Res) { in buildUndef() argument
641 return buildInstr(TargetOpcode::G_IMPLICIT_DEF, {Res}, {}); in buildUndef()
644 MachineInstrBuilder MachineIRBuilder::buildMergeValues(const DstOp &Res, in buildMergeValues() argument
651 return buildInstr(TargetOpcode::G_MERGE_VALUES, Res, TmpVec); in buildMergeValues()
655 MachineIRBuilder::buildMergeLikeInstr(const DstOp &Res, in buildMergeLikeInstr() argument
662 return buildInstr(getOpcodeForMerge(Res, TmpVec), Res, TmpVec); in buildMergeLikeInstr()
666 MachineIRBuilder::buildMergeLikeInstr(const DstOp &Res, in buildMergeLikeInstr() argument
669 return buildInstr(getOpcodeForMerge(Res, Ops), Res, Ops); in buildMergeLikeInstr()
683 MachineInstrBuilder MachineIRBuilder::buildUnmerge(ArrayRef<LLT> Res, in buildUnmerge() argument
688 SmallVector<DstOp, 8> TmpVec(Res.begin(), Res.end()); in buildUnmerge()
693 MachineInstrBuilder MachineIRBuilder::buildUnmerge(LLT Res, in buildUnmerge() argument
695 unsigned NumReg = Op.getLLTTy(*getMRI()).getSizeInBits() / Res.getSizeInBits(); in buildUnmerge()
696 SmallVector<DstOp, 8> TmpVec(NumReg, Res); in buildUnmerge()
700 MachineInstrBuilder MachineIRBuilder::buildUnmerge(ArrayRef<Register> Res, in buildUnmerge() argument
705 SmallVector<DstOp, 8> TmpVec(Res.begin(), Res.end()); in buildUnmerge()
710 MachineInstrBuilder MachineIRBuilder::buildBuildVector(const DstOp &Res, in buildBuildVector() argument
716 return buildInstr(TargetOpcode::G_BUILD_VECTOR, Res, TmpVec); in buildBuildVector()
720 MachineIRBuilder::buildBuildVectorConstant(const DstOp &Res, in buildBuildVectorConstant() argument
724 LLT EltTy = Res.getLLTTy(*getMRI()).getElementType(); in buildBuildVectorConstant()
727 return buildInstr(TargetOpcode::G_BUILD_VECTOR, Res, TmpVec); in buildBuildVectorConstant()
730 MachineInstrBuilder MachineIRBuilder::buildSplatBuildVector(const DstOp &Res, in buildSplatBuildVector() argument
732 SmallVector<SrcOp, 8> TmpVec(Res.getLLTTy(*getMRI()).getNumElements(), Src); in buildSplatBuildVector()
733 return buildInstr(TargetOpcode::G_BUILD_VECTOR, Res, TmpVec); in buildSplatBuildVector()
737 MachineIRBuilder::buildBuildVectorTrunc(const DstOp &Res, in buildBuildVectorTrunc() argument
744 Res.getLLTTy(*getMRI()).getElementType().getSizeInBits()) in buildBuildVectorTrunc()
745 return buildInstr(TargetOpcode::G_BUILD_VECTOR, Res, TmpVec); in buildBuildVectorTrunc()
746 return buildInstr(TargetOpcode::G_BUILD_VECTOR_TRUNC, Res, TmpVec); in buildBuildVectorTrunc()
749 MachineInstrBuilder MachineIRBuilder::buildShuffleSplat(const DstOp &Res, in buildShuffleSplat() argument
751 LLT DstTy = Res.getLLTTy(*getMRI()); in buildShuffleSplat()
761 MachineInstrBuilder MachineIRBuilder::buildSplatVector(const DstOp &Res, in buildSplatVector() argument
763 assert(Src.getLLTTy(*getMRI()) == Res.getLLTTy(*getMRI()).getElementType() && in buildSplatVector()
765 return buildInstr(TargetOpcode::G_SPLAT_VECTOR, Res, Src); in buildSplatVector()
768 MachineInstrBuilder MachineIRBuilder::buildShuffleVector(const DstOp &Res, in buildShuffleVector() argument
772 LLT DstTy = Res.getLLTTy(*getMRI()); in buildShuffleVector()
783 return buildInstr(TargetOpcode::G_SHUFFLE_VECTOR, {Res}, {Src1, Src2}) in buildShuffleVector()
788 MachineIRBuilder::buildConcatVectors(const DstOp &Res, ArrayRef<Register> Ops) { in buildConcatVectors() argument
793 return buildInstr(TargetOpcode::G_CONCAT_VECTORS, Res, TmpVec); in buildConcatVectors()
796 MachineInstrBuilder MachineIRBuilder::buildInsert(const DstOp &Res, in buildInsert() argument
801 Res.getLLTTy(*getMRI()).getSizeInBits() && in buildInsert()
804 if (Res.getLLTTy(*getMRI()).getSizeInBits() == in buildInsert()
806 return buildCast(Res, Op); in buildInsert()
809 return buildInstr(TargetOpcode::G_INSERT, Res, {Src, Op, uint64_t(Index)}); in buildInsert()
812 MachineInstrBuilder MachineIRBuilder::buildVScale(const DstOp &Res, in buildVScale() argument
816 Res.getLLTTy(*getMRI()).getScalarSizeInBits()); in buildVScale()
818 return buildVScale(Res, *CI); in buildVScale()
821 MachineInstrBuilder MachineIRBuilder::buildVScale(const DstOp &Res, in buildVScale() argument
825 Res.addDefToMIB(*getMRI(), VScale); in buildVScale()
830 MachineInstrBuilder MachineIRBuilder::buildVScale(const DstOp &Res, in buildVScale() argument
834 return buildVScale(Res, *CI); in buildVScale()
887 MachineIRBuilder::buildTrunc(const DstOp &Res, const SrcOp &Op, in buildTrunc() argument
889 return buildInstr(TargetOpcode::G_TRUNC, Res, Op, Flags); in buildTrunc()
893 MachineIRBuilder::buildFPTrunc(const DstOp &Res, const SrcOp &Op, in buildFPTrunc() argument
895 return buildInstr(TargetOpcode::G_FPTRUNC, Res, Op, Flags); in buildFPTrunc()
899 const DstOp &Res, in buildICmp() argument
902 return buildInstr(TargetOpcode::G_ICMP, Res, {Pred, Op0, Op1}); in buildICmp()
906 const DstOp &Res, in buildFCmp() argument
911 return buildInstr(TargetOpcode::G_FCMP, Res, {Pred, Op0, Op1}, Flags); in buildFCmp()
914 MachineInstrBuilder MachineIRBuilder::buildSCmp(const DstOp &Res, in buildSCmp() argument
917 return buildInstr(TargetOpcode::G_SCMP, Res, {Op0, Op1}); in buildSCmp()
920 MachineInstrBuilder MachineIRBuilder::buildUCmp(const DstOp &Res, in buildUCmp() argument
923 return buildInstr(TargetOpcode::G_UCMP, Res, {Op0, Op1}); in buildUCmp()
927 MachineIRBuilder::buildSelect(const DstOp &Res, const SrcOp &Tst, in buildSelect() argument
931 return buildInstr(TargetOpcode::G_SELECT, {Res}, {Tst, Op0, Op1}, Flags); in buildSelect()
934 MachineInstrBuilder MachineIRBuilder::buildInsertSubvector(const DstOp &Res, in buildInsertSubvector() argument
938 return buildInstr(TargetOpcode::G_INSERT_SUBVECTOR, Res, in buildInsertSubvector()
942 MachineInstrBuilder MachineIRBuilder::buildExtractSubvector(const DstOp &Res, in buildExtractSubvector() argument
945 return buildInstr(TargetOpcode::G_INSERT_SUBVECTOR, Res, in buildExtractSubvector()
950 MachineIRBuilder::buildInsertVectorElement(const DstOp &Res, const SrcOp &Val, in buildInsertVectorElement() argument
952 return buildInstr(TargetOpcode::G_INSERT_VECTOR_ELT, Res, {Val, Elt, Idx}); in buildInsertVectorElement()
956 MachineIRBuilder::buildExtractVectorElement(const DstOp &Res, const SrcOp &Val, in buildExtractVectorElement() argument
958 return buildInstr(TargetOpcode::G_EXTRACT_VECTOR_ELT, Res, {Val, Idx}); in buildExtractVectorElement()
1155 MachineIRBuilder::buildBlockAddress(Register Res, const BlockAddress *BA) { in buildBlockAddress() argument
1157 assert(getMRI()->getType(Res).isPointer() && "invalid res type"); in buildBlockAddress()
1160 return buildInstr(TargetOpcode::G_BLOCK_ADDR).addDef(Res).addBlockAddress(BA); in buildBlockAddress()