Lines Matching full:unsigned

48 static constexpr unsigned GFX9 = 1;
49 static constexpr unsigned GFX9_4 = 1;
50 static constexpr unsigned GFX10_1 = 1;
51 static constexpr unsigned GFX10_3 = 1;
52 static constexpr unsigned GFX11 = 1;
53 static constexpr unsigned GFX12 = 1;
64 unsigned getAMDHSACodeObjectVersion(const Module &M);
67 unsigned getAMDHSACodeObjectVersion(unsigned ABIVersion);
72 unsigned getDefaultAMDHSACodeObjectVersion();
76 uint8_t getELFABIVersion(const Triple &OS, unsigned CodeObjectVersion);
79 unsigned getMultigridSyncArgImplicitArgPosition(unsigned COV);
82 unsigned getHostcallImplicitArgPosition(unsigned COV);
84 unsigned getDefaultQueueImplicitArgPosition(unsigned COV);
85 unsigned getCompletionActionImplicitArgPosition(unsigned COV);
88 unsigned Format;
89 unsigned BitsPerComp;
90 unsigned NumComponents;
91 unsigned NumFormat;
92 unsigned DataFormat;
102 unsigned Opcode;
103 unsigned F8F8Opcode;
109 unsigned Opcode;
216 unsigned getWavefrontSize(const MCSubtargetInfo *STI);
219 unsigned getLocalMemorySize(const MCSubtargetInfo *STI);
223 unsigned getAddressableLocalMemorySize(const MCSubtargetInfo *STI);
227 unsigned getEUsPerCU(const MCSubtargetInfo *STI);
231 unsigned getMaxWorkGroupsPerCU(const MCSubtargetInfo *STI,
232 unsigned FlatWorkGroupSize);
236 unsigned getMinWavesPerEU(const MCSubtargetInfo *STI);
240 unsigned getMaxWavesPerEU(const MCSubtargetInfo *STI);
244 unsigned getWavesPerEUForWorkGroup(const MCSubtargetInfo *STI,
245 unsigned FlatWorkGroupSize);
248 unsigned getMinFlatWorkGroupSize(const MCSubtargetInfo *STI);
251 unsigned getMaxFlatWorkGroupSize(const MCSubtargetInfo *STI);
255 unsigned getWavesPerWorkGroup(const MCSubtargetInfo *STI,
256 unsigned FlatWorkGroupSize);
259 unsigned getSGPRAllocGranule(const MCSubtargetInfo *STI);
262 unsigned getSGPREncodingGranule(const MCSubtargetInfo *STI);
265 unsigned getTotalNumSGPRs(const MCSubtargetInfo *STI);
268 unsigned getAddressableNumSGPRs(const MCSubtargetInfo *STI);
272 unsigned getMinNumSGPRs(const MCSubtargetInfo *STI, unsigned WavesPerEU);
276 unsigned getMaxNumSGPRs(const MCSubtargetInfo *STI, unsigned WavesPerEU,
281 unsigned getNumExtraSGPRs(const MCSubtargetInfo *STI, bool VCCUsed,
287 unsigned getNumExtraSGPRs(const MCSubtargetInfo *STI, bool VCCUsed,
293 unsigned getNumSGPRBlocks(const MCSubtargetInfo *STI, unsigned NumSGPRs);
299 unsigned
307 unsigned getVGPREncodingGranule(
312 unsigned getTotalNumVGPRs(const MCSubtargetInfo *STI);
316 unsigned getAddressableNumArchVGPRs(const MCSubtargetInfo *STI);
319 unsigned getAddressableNumVGPRs(const MCSubtargetInfo *STI);
323 unsigned getMinNumVGPRs(const MCSubtargetInfo *STI, unsigned WavesPerEU);
327 unsigned getMaxNumVGPRs(const MCSubtargetInfo *STI, unsigned WavesPerEU);
331 unsigned getNumWavesPerEUWithNumVGPRs(const MCSubtargetInfo *STI,
332 unsigned NumVGPRs);
336 unsigned getNumWavesPerEUWithNumVGPRs(unsigned NumVGPRs, unsigned Granule,
337 unsigned MaxWaves,
338 unsigned TotalNumVGPRs);
342 unsigned getOccupancyWithNumSGPRs(unsigned SGPRs, unsigned MaxWaves,
351 unsigned getEncodedNumVGPRBlocks(
352 const MCSubtargetInfo *STI, unsigned NumVGPRs,
357 unsigned getAllocatedNumVGPRBlocks(
358 const MCSubtargetInfo *STI, unsigned NumVGPRs,
364 template <unsigned HighBit, unsigned LowBit, unsigned D = 0>
367 static constexpr unsigned Offset = LowBit;
368 static constexpr unsigned Width = HighBit - LowBit + 1;
370 using ValueType = unsigned;
381 template <unsigned Bit, unsigned D = 0>
428 const MIMGBaseOpcodeInfo *getMIMGBaseOpcode(unsigned Opc);
431 const MIMGBaseOpcodeInfo *getMIMGBaseOpcodeInfo(unsigned BaseOpcode);
444 const MIMGDimInfo *getMIMGDimInfo(unsigned DimEnum);
478 const MIMGLZMappingInfo *getMIMGLZMappingInfo(unsigned L);
481 unsigned Opcode2Addr;
482 unsigned Opcode3Addr;
486 const MIMGMIPMappingInfo *getMIMGMIPMappingInfo(unsigned MIP);
489 const MIMGBiasMappingInfo *getMIMGBiasMappingInfo(unsigned Bias);
492 const MIMGOffsetMappingInfo *getMIMGOffsetMappingInfo(unsigned Offset);
495 const MIMGG16MappingInfo *getMIMGG16MappingInfo(unsigned G);
498 int getMIMGOpcode(unsigned BaseOpcode, unsigned MIMGEncoding,
499 unsigned VDataDwords, unsigned VAddrDwords);
502 int getMaskedMIMGOp(unsigned Opc, unsigned NewChannels);
505 unsigned getAddrSizeMIMGOp(const MIMGBaseOpcodeInfo *BaseOpcode,
519 const MIMGInfo *getMIMGInfo(unsigned Opc);
522 int getMTBUFBaseOpcode(unsigned Opc);
525 int getMTBUFOpcode(unsigned BaseOpc, unsigned Elements);
528 int getMTBUFElements(unsigned Opc);
531 bool getMTBUFHasVAddr(unsigned Opc);
534 bool getMTBUFHasSrsrc(unsigned Opc);
537 bool getMTBUFHasSoffset(unsigned Opc);
540 int getMUBUFBaseOpcode(unsigned Opc);
543 int getMUBUFOpcode(unsigned BaseOpc, unsigned Elements);
546 int getMUBUFElements(unsigned Opc);
549 bool getMUBUFHasVAddr(unsigned Opc);
552 bool getMUBUFHasSrsrc(unsigned Opc);
555 bool getMUBUFHasSoffset(unsigned Opc);
558 bool getMUBUFIsBufferInv(unsigned Opc);
561 bool getMUBUFTfe(unsigned Opc);
564 bool getSMEMIsBuffer(unsigned Opc);
567 bool getVOP1IsSingle(unsigned Opc);
570 bool getVOP2IsSingle(unsigned Opc);
573 bool getVOP3IsSingle(unsigned Opc);
576 bool isVOPC64DPP(unsigned Opc);
579 bool isVOPCAsmOnly(unsigned Opc);
583 bool getMAIIsDGEMM(unsigned Opc);
586 bool getMAIIsGFX940XDL(unsigned Opc);
595 unsigned getVOPDEncodingFamily(const MCSubtargetInfo &ST);
598 CanBeVOPD getCanBeVOPD(unsigned Opc);
601 uint8_t mfmaScaleF8F6F4FormatToNumRegs(unsigned EncodingVal);
604 const MFMA_F8F6F4_Info *getMFMA_F8F6F4_WithFormatArgs(unsigned CBSZ,
605 unsigned BLGP,
606 unsigned F8F8Opcode);
618 int getMCOpcode(uint16_t Opcode, unsigned Gen);
621 unsigned getVOPDOpcode(unsigned Opc);
624 int getVOPDFull(unsigned OpX, unsigned OpY, unsigned EncodingFamily);
627 bool isVOPD(unsigned Opc);
630 bool isMAC(unsigned Opc);
633 bool isPermlane16(unsigned Opc);
636 bool isGenericAtomic(unsigned Opc);
639 bool isCvt_F32_Fp8_Bf8_e64(unsigned Opc);
643 enum Component : unsigned {
656 constexpr unsigned VOPD_VGPR_BANK_MASKS[] = {1, 3, 3, 1};
658 enum ComponentIndex : unsigned { X = 0, Y = 1 };
659 constexpr unsigned COMPONENTS[] = {ComponentIndex::X, ComponentIndex::Y};
660 constexpr unsigned COMPONENTS_NUM = 2;
665 unsigned SrcOperandsNum = 0;
666 unsigned MandatoryLiteralIdx = ~0u;
674 unsigned getCompSrcOperandsNum() const { return SrcOperandsNum; }
677 unsigned getCompParsedSrcOperandsNum() const {
686 unsigned getMandatoryLiteralCompOperandIndex() const {
693 bool hasRegSrcOperand(unsigned CompSrcIdx) const {
702 bool hasMandatoryLiteralAt(unsigned CompSrcIdx) const {
708 enum ComponentKind : unsigned {
752 static constexpr unsigned MC_DST_IDX[] = {0, 0, 1};
753 static constexpr unsigned FIRST_MC_SRC_IDX[] = {1, 2, 2 /* + OpX.MCSrcNum */};
761 static constexpr unsigned PARSED_DST_IDX[] = {1, 1,
763 static constexpr unsigned FIRST_PARSED_SRC_IDX[] = {
782 unsigned getIndexOfDstInMCOperands() const { return MC_DST_IDX[Kind]; }
785 unsigned getIndexOfSrcInMCOperands(unsigned CompSrcIdx) const {
791 unsigned getIndexOfDstInParsedOperands() const {
796 unsigned getIndexOfSrcInParsedOperands(unsigned CompSrcIdx) const {
802 unsigned getPrevCompSrcNum() const {
805 unsigned getPrevCompParsedSrcNum() const {
824 unsigned getIndexInParsedOperands(unsigned CompOprIdx) const;
833 using RegIndices = std::array<unsigned, Component::MAX_OPR_NUM>;
852 bool hasInvalidOperand(std::function<unsigned(unsigned, unsigned)> GetRegIdx,
861 std::optional<unsigned> getInvalidCompOperandIndex(
862 std::function<unsigned(unsigned, unsigned)> GetRegIdx,
867 getRegIndices(unsigned ComponentIdx,
868 std::function<unsigned(unsigned, unsigned)> GetRegIdx) const;
874 std::pair<unsigned, unsigned> getVOPDComponents(unsigned VOPDOpcode);
884 getVOPDInstInfo(unsigned VOPDOpcode, const MCInstrInfo *InstrInfo);
887 bool isTrue16Inst(unsigned Opc);
890 FPType getFPDstSelType(unsigned Opc);
893 bool isInvalidSingleUseConsumerInst(unsigned Opc);
896 bool isInvalidSingleUseProducerInst(unsigned Opc);
898 bool isDPMACCInstruction(unsigned Opc);
901 unsigned mapWMMA2AddrTo3AddrOpcode(unsigned Opc);
904 unsigned mapWMMA3AddrTo2AddrOpcode(unsigned Opc);
934 std::pair<unsigned, unsigned>
936 std::pair<unsigned, unsigned> Default,
948 std::optional<std::pair<unsigned, std::optional<unsigned>>>
959 SmallVector<unsigned> getIntegerVecAttribute(const Function &F, StringRef Name,
960 unsigned Size,
961 unsigned DefaultVal = 0);
968 unsigned LoadCnt = ~0u; // Corresponds to Vmcnt prior to gfx12.
969 unsigned ExpCnt = ~0u;
970 unsigned DsCnt = ~0u; // Corresponds to LGKMcnt prior to gfx12.
971 unsigned StoreCnt = ~0u; // Corresponds to VScnt on gfx10/gfx11.
972 unsigned SampleCnt = ~0u; // gfx12+ only.
973 unsigned BvhCnt = ~0u; // gfx12+ only.
974 unsigned KmCnt = ~0u; // gfx12+ only.
978 Waitcnt(unsigned VmCnt, unsigned ExpCnt, unsigned LgkmCnt, unsigned VsCnt)
983 Waitcnt(unsigned LoadCnt, unsigned ExpCnt, unsigned DsCnt, unsigned StoreCnt,
984 unsigned SampleCnt, unsigned BvhCnt, unsigned KmCnt)
1012 unsigned getVmcntBitMask(const IsaVersion &Version);
1015 unsigned getExpcntBitMask(const IsaVersion &Version);
1018 unsigned getLgkmcntBitMask(const IsaVersion &Version);
1021 unsigned getWaitcntBitMask(const IsaVersion &Version);
1024 unsigned decodeVmcnt(const IsaVersion &Version, unsigned Waitcnt);
1027 unsigned decodeExpcnt(const IsaVersion &Version, unsigned Waitcnt);
1030 unsigned decodeLgkmcnt(const IsaVersion &Version, unsigned Waitcnt);
1047 void decodeWaitcnt(const IsaVersion &Version, unsigned Waitcnt,
1048 unsigned &Vmcnt, unsigned &Expcnt, unsigned &Lgkmcnt);
1050 Waitcnt decodeWaitcnt(const IsaVersion &Version, unsigned Encoded);
1053 unsigned encodeVmcnt(const IsaVersion &Version, unsigned Waitcnt,
1054 unsigned Vmcnt);
1057 unsigned encodeExpcnt(const IsaVersion &Version, unsigned Waitcnt,
1058 unsigned Expcnt);
1061 unsigned encodeLgkmcnt(const IsaVersion &Version, unsigned Waitcnt,
1062 unsigned Lgkmcnt);
1082 unsigned encodeWaitcnt(const IsaVersion &Version,
1083 unsigned Vmcnt, unsigned Expcnt, unsigned Lgkmcnt);
1085 unsigned encodeWaitcnt(const IsaVersion &Version, const Waitcnt &Decoded);
1092 unsigned getLoadcntBitMask(const IsaVersion &Version);
1096 unsigned getSamplecntBitMask(const IsaVersion &Version);
1100 unsigned getBvhcntBitMask(const IsaVersion &Version);
1104 unsigned getDscntBitMask(const IsaVersion &Version);
1108 unsigned getKmcntBitMask(const IsaVersion &Version);
1114 unsigned getStorecntBitMask(const IsaVersion &Version);
1121 Waitcnt decodeLoadcntDscnt(const IsaVersion &Version, unsigned LoadcntDscnt);
1125 Waitcnt decodeStorecntDscnt(const IsaVersion &Version, unsigned StorecntDscnt);
1130 unsigned encodeLoadcntDscnt(const IsaVersion &Version, const Waitcnt &Decoded);
1135 unsigned encodeStorecntDscnt(const IsaVersion &Version, const Waitcnt &Decoded);
1155 int encodeDepCtr(const StringRef Name, int64_t Val, unsigned &UsedOprMask,
1157 bool isSymbolicDepCtrEncoding(unsigned Code, bool &HasNonDefaultVal,
1159 bool decodeDepCtr(unsigned Code, int &Id, StringRef &Name, unsigned &Val,
1163 unsigned decodeFieldVaVdst(unsigned Encoded);
1166 unsigned decodeFieldVmVsrc(unsigned Encoded);
1169 unsigned decodeFieldSaSdst(unsigned Encoded);
1172 unsigned encodeFieldVmVsrc(unsigned VmVsrc);
1175 unsigned encodeFieldVmVsrc(unsigned Encoded, unsigned VmVsrc);
1178 unsigned encodeFieldVaVdst(unsigned VaVdst);
1181 unsigned encodeFieldVaVdst(unsigned Encoded, unsigned VaVdst);
1184 unsigned encodeFieldSaSdst(unsigned SaSdst);
1187 unsigned encodeFieldSaSdst(unsigned Encoded, unsigned SaSdst);
1193 bool getTgtName(unsigned Id, StringRef &Name, int &Index);
1196 unsigned getTgtId(const StringRef Name);
1199 bool isSupportedTgtId(unsigned Id, const MCSubtargetInfo &STI);
1206 int64_t encodeDfmtNfmt(unsigned Dfmt, unsigned Nfmt);
1208 void decodeDfmtNfmt(unsigned Format, unsigned &Dfmt, unsigned &Nfmt);
1212 StringRef getDfmtName(unsigned Id);
1216 StringRef getNfmtName(unsigned Id, const MCSubtargetInfo &STI);
1218 bool isValidDfmtNfmt(unsigned Val, const MCSubtargetInfo &STI);
1220 bool isValidNfmt(unsigned Val, const MCSubtargetInfo &STI);
1224 StringRef getUnifiedFormatName(unsigned Id, const MCSubtargetInfo &STI);
1226 bool isValidUnifiedFormat(unsigned Val, const MCSubtargetInfo &STI);
1228 int64_t convertDfmtNfmt2Ufmt(unsigned Dfmt, unsigned Nfmt,
1231 bool isValidFormatEncoding(unsigned Val, const MCSubtargetInfo &STI);
1233 unsigned getDefaultFormatEncoding(const MCSubtargetInfo &STI);
1256 void decodeMsg(unsigned Val, uint16_t &MsgId, uint16_t &OpId,
1267 unsigned getInitialPSInputAddr(const Function &F);
1318 unsigned getNSAMaxSize(const MCSubtargetInfo &STI, bool HasSampler = false);
1319 unsigned getMaxNumUserSGPRs(const MCSubtargetInfo &STI);
1354 unsigned hasKernargPreload(const MCSubtargetInfo &STI);
1372 bool isInlineValue(unsigned Reg);
1376 bool isSISrcOperand(const MCInstrDesc &Desc, unsigned OpNo);
1379 bool isKImmOperand(const MCInstrDesc &Desc, unsigned OpNo);
1382 bool isSISrcFPOperand(const MCInstrDesc &Desc, unsigned OpNo);
1385 bool isSISrcInlinableOperand(const MCInstrDesc &Desc, unsigned OpNo);
1388 unsigned getRegBitWidth(unsigned RCID);
1391 unsigned getRegBitWidth(const MCRegisterClass &RC);
1394 unsigned getRegOperandSize(const MCRegisterInfo *MRI, const MCInstrDesc &Desc,
1395 unsigned OpNo);
1398 inline unsigned getOperandSize(const MCOperandInfo &OpInfo) {
1451 inline unsigned getOperandSize(const MCInstrDesc &Desc, unsigned OpNo) {
1482 std::optional<unsigned> getInlineEncodingV2I16(uint32_t Literal);
1485 std::optional<unsigned> getInlineEncodingV2BF16(uint32_t Literal);
1488 std::optional<unsigned> getInlineEncodingV2F16(uint32_t Literal);
1507 bool isArgPassedInSGPR(const CallBase *CB, unsigned ArgNo);
1525 /// unsigned. S_BUFFER has an unsigned offset for all subtargets.
1541 unsigned getNumFlatOffsetBits(const MCSubtargetInfo &ST);
1549 inline bool isLegalDPALU_DPPControl(unsigned DC) {
1560 bool isIntrinsicSourceOfDivergence(unsigned IntrID);
1563 bool isIntrinsicAlwaysUniform(unsigned IntrID);
1568 unsigned getLdsDwGranularity(const MCSubtargetInfo &ST);