30 std::lower_bound(Table, Table +
N, Encoding,
32 return Entry.Encoding < TargetEncoding;
36 for (
auto It =
First; It != Table +
N && It->Encoding == Encoding; ++It) {
37 if (It->Encoding == Encoding && (!It->Cond || It->Cond(STI)))
51 if (Entry.Name != Name)
54 if (!Entry.Cond || Entry.Cond(STI))
55 return Entry.Encoding;
60 return InvalidEncoding;
69 {{
"depctr_sa_sdst"}, 1, 1, 0, 1},
70 {{
"depctr_va_vdst"}, 15, 15, 12, 4},
71 {{
"depctr_va_sdst"}, 7, 7, 9, 3},
72 {{
"depctr_va_ssrc"}, 1, 1, 8, 1},
73 {{
"depctr_va_vcc"}, 1, 1, 1, 1},
74 {{
"depctr_vm_vsrc"}, 7, 7, 2, 3},
164 {{
"{ dont_wait_export_ready: 0 }"}, 0,
isGFX11},
261namespace MTBUFFormat {
264 "BUF_DATA_FORMAT_INVALID",
266 "BUF_DATA_FORMAT_16",
267 "BUF_DATA_FORMAT_8_8",
268 "BUF_DATA_FORMAT_32",
269 "BUF_DATA_FORMAT_16_16",
270 "BUF_DATA_FORMAT_10_11_11",
271 "BUF_DATA_FORMAT_11_11_10",
272 "BUF_DATA_FORMAT_10_10_10_2",
273 "BUF_DATA_FORMAT_2_10_10_10",
274 "BUF_DATA_FORMAT_8_8_8_8",
275 "BUF_DATA_FORMAT_32_32",
276 "BUF_DATA_FORMAT_16_16_16_16",
277 "BUF_DATA_FORMAT_32_32_32",
278 "BUF_DATA_FORMAT_32_32_32_32",
279 "BUF_DATA_FORMAT_RESERVED_15"
283 "BUF_NUM_FORMAT_UNORM",
284 "BUF_NUM_FORMAT_SNORM",
285 "BUF_NUM_FORMAT_USCALED",
286 "BUF_NUM_FORMAT_SSCALED",
287 "BUF_NUM_FORMAT_UINT",
288 "BUF_NUM_FORMAT_SINT",
290 "BUF_NUM_FORMAT_FLOAT"
294 "BUF_NUM_FORMAT_UNORM",
295 "BUF_NUM_FORMAT_SNORM",
296 "BUF_NUM_FORMAT_USCALED",
297 "BUF_NUM_FORMAT_SSCALED",
298 "BUF_NUM_FORMAT_UINT",
299 "BUF_NUM_FORMAT_SINT",
300 "BUF_NUM_FORMAT_SNORM_OGL",
301 "BUF_NUM_FORMAT_FLOAT"
305 "BUF_NUM_FORMAT_UNORM",
306 "BUF_NUM_FORMAT_SNORM",
307 "BUF_NUM_FORMAT_USCALED",
308 "BUF_NUM_FORMAT_SSCALED",
309 "BUF_NUM_FORMAT_UINT",
310 "BUF_NUM_FORMAT_SINT",
311 "BUF_NUM_FORMAT_RESERVED_6",
312 "BUF_NUM_FORMAT_FLOAT"
327 "BUF_FMT_16_USCALED",
328 "BUF_FMT_16_SSCALED",
335 "BUF_FMT_8_8_USCALED",
336 "BUF_FMT_8_8_SSCALED",
344 "BUF_FMT_16_16_UNORM",
345 "BUF_FMT_16_16_SNORM",
346 "BUF_FMT_16_16_USCALED",
347 "BUF_FMT_16_16_SSCALED",
348 "BUF_FMT_16_16_UINT",
349 "BUF_FMT_16_16_SINT",
350 "BUF_FMT_16_16_FLOAT",
352 "BUF_FMT_10_11_11_UNORM",
353 "BUF_FMT_10_11_11_SNORM",
354 "BUF_FMT_10_11_11_USCALED",
355 "BUF_FMT_10_11_11_SSCALED",
356 "BUF_FMT_10_11_11_UINT",
357 "BUF_FMT_10_11_11_SINT",
358 "BUF_FMT_10_11_11_FLOAT",
360 "BUF_FMT_11_11_10_UNORM",
361 "BUF_FMT_11_11_10_SNORM",
362 "BUF_FMT_11_11_10_USCALED",
363 "BUF_FMT_11_11_10_SSCALED",
364 "BUF_FMT_11_11_10_UINT",
365 "BUF_FMT_11_11_10_SINT",
366 "BUF_FMT_11_11_10_FLOAT",
368 "BUF_FMT_10_10_10_2_UNORM",
369 "BUF_FMT_10_10_10_2_SNORM",
370 "BUF_FMT_10_10_10_2_USCALED",
371 "BUF_FMT_10_10_10_2_SSCALED",
372 "BUF_FMT_10_10_10_2_UINT",
373 "BUF_FMT_10_10_10_2_SINT",
375 "BUF_FMT_2_10_10_10_UNORM",
376 "BUF_FMT_2_10_10_10_SNORM",
377 "BUF_FMT_2_10_10_10_USCALED",
378 "BUF_FMT_2_10_10_10_SSCALED",
379 "BUF_FMT_2_10_10_10_UINT",
380 "BUF_FMT_2_10_10_10_SINT",
382 "BUF_FMT_8_8_8_8_UNORM",
383 "BUF_FMT_8_8_8_8_SNORM",
384 "BUF_FMT_8_8_8_8_USCALED",
385 "BUF_FMT_8_8_8_8_SSCALED",
386 "BUF_FMT_8_8_8_8_UINT",
387 "BUF_FMT_8_8_8_8_SINT",
389 "BUF_FMT_32_32_UINT",
390 "BUF_FMT_32_32_SINT",
391 "BUF_FMT_32_32_FLOAT",
393 "BUF_FMT_16_16_16_16_UNORM",
394 "BUF_FMT_16_16_16_16_SNORM",
395 "BUF_FMT_16_16_16_16_USCALED",
396 "BUF_FMT_16_16_16_16_SSCALED",
397 "BUF_FMT_16_16_16_16_UINT",
398 "BUF_FMT_16_16_16_16_SINT",
399 "BUF_FMT_16_16_16_16_FLOAT",
401 "BUF_FMT_32_32_32_UINT",
402 "BUF_FMT_32_32_32_SINT",
403 "BUF_FMT_32_32_32_FLOAT",
404 "BUF_FMT_32_32_32_32_UINT",
405 "BUF_FMT_32_32_32_32_SINT",
406 "BUF_FMT_32_32_32_32_FLOAT"
515 "BUF_FMT_16_USCALED",
516 "BUF_FMT_16_SSCALED",
523 "BUF_FMT_8_8_USCALED",
524 "BUF_FMT_8_8_SSCALED",
532 "BUF_FMT_16_16_UNORM",
533 "BUF_FMT_16_16_SNORM",
534 "BUF_FMT_16_16_USCALED",
535 "BUF_FMT_16_16_SSCALED",
536 "BUF_FMT_16_16_UINT",
537 "BUF_FMT_16_16_SINT",
538 "BUF_FMT_16_16_FLOAT",
540 "BUF_FMT_10_11_11_FLOAT",
542 "BUF_FMT_11_11_10_FLOAT",
544 "BUF_FMT_10_10_10_2_UNORM",
545 "BUF_FMT_10_10_10_2_SNORM",
546 "BUF_FMT_10_10_10_2_UINT",
547 "BUF_FMT_10_10_10_2_SINT",
549 "BUF_FMT_2_10_10_10_UNORM",
550 "BUF_FMT_2_10_10_10_SNORM",
551 "BUF_FMT_2_10_10_10_USCALED",
552 "BUF_FMT_2_10_10_10_SSCALED",
553 "BUF_FMT_2_10_10_10_UINT",
554 "BUF_FMT_2_10_10_10_SINT",
556 "BUF_FMT_8_8_8_8_UNORM",
557 "BUF_FMT_8_8_8_8_SNORM",
558 "BUF_FMT_8_8_8_8_USCALED",
559 "BUF_FMT_8_8_8_8_SSCALED",
560 "BUF_FMT_8_8_8_8_UINT",
561 "BUF_FMT_8_8_8_8_SINT",
563 "BUF_FMT_32_32_UINT",
564 "BUF_FMT_32_32_SINT",
565 "BUF_FMT_32_32_FLOAT",
567 "BUF_FMT_16_16_16_16_UNORM",
568 "BUF_FMT_16_16_16_16_SNORM",
569 "BUF_FMT_16_16_16_16_USCALED",
570 "BUF_FMT_16_16_16_16_SSCALED",
571 "BUF_FMT_16_16_16_16_UINT",
572 "BUF_FMT_16_16_16_16_SINT",
573 "BUF_FMT_16_16_16_16_FLOAT",
575 "BUF_FMT_32_32_32_UINT",
576 "BUF_FMT_32_32_32_SINT",
577 "BUF_FMT_32_32_32_FLOAT",
578 "BUF_FMT_32_32_32_32_UINT",
579 "BUF_FMT_32_32_32_32_SINT",
580 "BUF_FMT_32_32_32_32_FLOAT"
682namespace VGPRIndexMode {
699 static const GFXVersion Versions[] = {{
"UC_VERSION_GFX7", 0},
700 {
"UC_VERSION_GFX10", 4},
701 {
"UC_VERSION_GFX11", 6},
702 {
"UC_VERSION_GFX12", 9}};
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static std::vector< std::pair< int, unsigned > > Swizzle(std::vector< std::pair< int, unsigned > > Src, R600InstrInfo::BankSwizzle Swz)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Generic base class for all target subtargets.
A wrapper around a string literal that serves as a proxy for constructing global tables of StringRefs...
StringRef - Represent a constant reference to a string, i.e.
const CustomOperandVal DepCtrInfo[]
@ ID_PERF_SNAPSHOT_PC_HI_gfx11
@ ID_PERF_SNAPSHOT_PC_LO_gfx11
@ ID_SQ_PERF_SNAPSHOT_PC_LO
@ ID_SQ_PERF_SNAPSHOT_DATA1
@ ID_SQ_PERF_SNAPSHOT_DATA
@ ID_PERF_SNAPSHOT_PC_LO_gfx12
@ ID_PERF_SNAPSHOT_DATA_gfx12
@ ID_PERF_SNAPSHOT_DATA_gfx11
@ ID_PERF_SNAPSHOT_PC_HI_gfx12
@ ID_SQ_PERF_SNAPSHOT_PC_HI
StringRef getHwreg(uint64_t Encoding, const MCSubtargetInfo &STI)
int64_t getHwregId(StringRef Name, const MCSubtargetInfo &STI)
static constexpr CustomOperand Operands[]
int64_t getMsgOpId(int64_t MsgId, StringRef Name, const MCSubtargetInfo &STI)
Map from a symbolic name for a sendmsg operation to the operation portion of the immediate encoding.
int64_t getMsgId(StringRef Name, const MCSubtargetInfo &STI)
Map from a symbolic name for a msg_id to the message portion of the immediate encoding.
static constexpr CustomOperand SysMsgOperands[]
@ ID_RTN_GET_CLUSTER_BARRIER_STATE
@ ID_DEALLOC_VGPRS_GFX11Plus
@ ID_RTN_SAVE_WAVE_HAS_TDM
@ ID_HS_TESSFACTOR_GFX11Plus
static constexpr CustomOperand StreamMsgOperands[]
@ OP_SYS_ECC_ERR_INTERRUPT
StringRef getMsgName(uint64_t Encoding, const MCSubtargetInfo &STI)
Map from an encoding to the symbolic name for a msg_id immediate.
static constexpr CustomOperand MsgOperands[]
StringRef getMsgOpName(int64_t MsgId, uint64_t Encoding, const MCSubtargetInfo &STI)
Map from an encoding to the symbolic name for a sendmsg operation.
bool msgRequiresOp(int64_t MsgId, const MCSubtargetInfo &STI)
const char *const IdSymbolic[]
ArrayRef< GFXVersion > getGFXVersions()
const char *const IdSymbolic[]
static constexpr CustomOperand WaitEventOperands[]
StringRef getWaitEventMaskName(uint64_t Encoding, const MCSubtargetInfo &STI)
int64_t getWaitEventMask(StringRef Name, const MCSubtargetInfo &STI)
bool isGFX10_BEncoding(const MCSubtargetInfo &STI)
bool isGFX10_GFX11(const MCSubtargetInfo &STI)
bool isGFX10Before1030(const MCSubtargetInfo &STI)
const int OPR_ID_UNSUPPORTED
bool isGFX10(const MCSubtargetInfo &STI)
static int64_t getEncodingFromOperandTable(const CustomOperand(&Table)[N], StringRef Name, const MCSubtargetInfo &STI)
Map from a symbolic name for a sendmsg/hwreg asm operand to it's encoding.
bool isGFX12Plus(const MCSubtargetInfo &STI)
bool isGFX940(const MCSubtargetInfo &STI)
bool isGFX11(const MCSubtargetInfo &STI)
bool isGFX10_3_GFX11(const MCSubtargetInfo &STI)
bool isGFX8_GFX9_GFX10(const MCSubtargetInfo &STI)
bool isNotGFX10Plus(const MCSubtargetInfo &STI)
static StringRef getNameFromOperandTable(const CustomOperand(&Table)[N], unsigned Encoding, const MCSubtargetInfo &STI)
Map from the encoding of a sendmsg/hwreg asm operand to it's name.
bool isNotGFX11Plus(const MCSubtargetInfo &STI)
bool isGFX11Plus(const MCSubtargetInfo &STI)
bool isGFX10Plus(const MCSubtargetInfo &STI)
bool isNotGFX9Plus(const MCSubtargetInfo &STI)
bool isGFX9Plus(const MCSubtargetInfo &STI)
bool isGFX1250Plus(const MCSubtargetInfo &STI)
bool isNotGFX12Plus(const MCSubtargetInfo &STI)
bool isGFX9_GFX10_GFX11(const MCSubtargetInfo &STI)
bool isGFX9_GFX10(const MCSubtargetInfo &STI)
@ First
Helpers to iterate all locations in the MemoryEffectsBase class.