mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
[AMDGPU] Simplify tablegen files. NFC.
There is no need to cast records to strings before comparing them.
This commit is contained in:
parent
a394c72e7f
commit
8bb25dfcf8
@ -83,8 +83,7 @@ def FalsePredicate : Predicate<"false">;
|
||||
// Add a predicate to the list if does not already exist to deduplicate it.
|
||||
class PredConcat<list<Predicate> lst, Predicate pred> {
|
||||
list<Predicate> ret =
|
||||
!listconcat([pred], !filter(item, lst,
|
||||
!ne(!cast<string>(item), !cast<string>(pred))));
|
||||
!listconcat([pred], !filter(item, lst, !ne(item, pred)));
|
||||
}
|
||||
|
||||
class PredicateControl {
|
||||
|
@ -436,14 +436,11 @@ class getMUBUFInsDA<list<RegisterClass> vdataList,
|
||||
}
|
||||
|
||||
class getMUBUFElements<ValueType vt> {
|
||||
// eq does not support ValueType for some reason.
|
||||
string vtAsStr = !cast<string>(vt);
|
||||
|
||||
int ret =
|
||||
!if(!eq(vtAsStr, "f16"), 1,
|
||||
!if(!eq(vtAsStr, "v2f16"), 2,
|
||||
!if(!eq(vtAsStr, "v3f16"), 3,
|
||||
!if(!eq(vtAsStr, "v4f16"), 4,
|
||||
!if(!eq(vt, f16), 1,
|
||||
!if(!eq(vt, v2f16), 2,
|
||||
!if(!eq(vt, v3f16), 3,
|
||||
!if(!eq(vt, v4f16), 4,
|
||||
!if(!eq(vt.Size, 32), 1,
|
||||
!if(!eq(vt.Size, 64), 2,
|
||||
!if(!eq(vt.Size, 96), 3,
|
||||
@ -548,7 +545,7 @@ multiclass MUBUF_Pseudo_Loads<string opName,
|
||||
bit TiedDest = 0,
|
||||
bit isLds = 0> {
|
||||
|
||||
defvar legal_load_vt = !if(!eq(!cast<string>(load_vt), !cast<string>(v3f16)), v4f16, load_vt);
|
||||
defvar legal_load_vt = !if(!eq(load_vt, v3f16), v4f16, load_vt);
|
||||
|
||||
def _OFFSET : MUBUF_Load_Pseudo <opName, BUFAddrKind.Offset, legal_load_vt, TiedDest, isLds>,
|
||||
MUBUFAddr64Table<0, NAME # !if(isLds, "_LDS", "")>;
|
||||
@ -598,7 +595,7 @@ multiclass MUBUF_Pseudo_Stores<string opName,
|
||||
ValueType store_vt = i32,
|
||||
SDPatternOperator st = null_frag> {
|
||||
|
||||
defvar legal_store_vt = !if(!eq(!cast<string>(store_vt), !cast<string>(v3f16)), v4f16, store_vt);
|
||||
defvar legal_store_vt = !if(!eq(store_vt, v3f16), v4f16, store_vt);
|
||||
|
||||
def _OFFSET : MUBUF_Store_Pseudo <opName, BUFAddrKind.Offset, legal_store_vt,
|
||||
[(st legal_store_vt:$vdata, (MUBUFOffset v4i32:$srsrc, i32:$soffset,
|
||||
@ -1212,7 +1209,7 @@ let SubtargetPredicate = isGFX10Plus in {
|
||||
|
||||
multiclass MUBUF_LoadIntrinsicPat<SDPatternOperator name, ValueType vt,
|
||||
string opcode, ValueType memoryVt = vt> {
|
||||
defvar st = !if(!eq(!cast<string>(memoryVt), !cast<string>(vt)), name, mubuf_intrinsic_load<name, memoryVt>);
|
||||
defvar st = !if(!eq(memoryVt, vt), name, mubuf_intrinsic_load<name, memoryVt>);
|
||||
|
||||
def : GCNPat<
|
||||
(vt (st v4i32:$rsrc, 0, 0, i32:$soffset, timm:$offset,
|
||||
@ -1294,7 +1291,7 @@ defm : MUBUF_LoadIntrinsicPat<SIbuffer_load_ushort, i32, "BUFFER_LOAD_USHORT">;
|
||||
|
||||
multiclass MUBUF_StoreIntrinsicPat<SDPatternOperator name, ValueType vt,
|
||||
string opcode, ValueType memoryVt = vt> {
|
||||
defvar st = !if(!eq(!cast<string>(memoryVt), !cast<string>(vt)), name, mubuf_intrinsic_store<name, memoryVt>);
|
||||
defvar st = !if(!eq(memoryVt, vt), name, mubuf_intrinsic_store<name, memoryVt>);
|
||||
|
||||
def : GCNPat<
|
||||
(st vt:$vdata, v4i32:$rsrc, 0, 0, i32:$soffset, timm:$offset,
|
||||
@ -1757,7 +1754,7 @@ defm : MUBUFScratchStorePat <BUFFER_STORE_BYTE_D16_HI_OFFEN, BUFFER_STORE_BYTE_D
|
||||
|
||||
multiclass MTBUF_LoadIntrinsicPat<SDPatternOperator name, ValueType vt,
|
||||
string opcode, ValueType memoryVt = vt> {
|
||||
defvar st = !if(!eq(!cast<string>(memoryVt), !cast<string>(vt)), name, mtbuf_intrinsic_load<name, memoryVt>);
|
||||
defvar st = !if(!eq(memoryVt, vt), name, mtbuf_intrinsic_load<name, memoryVt>);
|
||||
|
||||
def : GCNPat<
|
||||
(vt (st v4i32:$rsrc, 0, 0, i32:$soffset, timm:$offset,
|
||||
@ -1821,7 +1818,7 @@ let SubtargetPredicate = HasPackedD16VMem in {
|
||||
|
||||
multiclass MTBUF_StoreIntrinsicPat<SDPatternOperator name, ValueType vt,
|
||||
string opcode, ValueType memoryVt = vt> {
|
||||
defvar st = !if(!eq(!cast<string>(memoryVt), !cast<string>(vt)), name, mtbuf_intrinsic_store<name, memoryVt>);
|
||||
defvar st = !if(!eq(memoryVt, vt), name, mtbuf_intrinsic_store<name, memoryVt>);
|
||||
|
||||
def : GCNPat<
|
||||
(st vt:$vdata, v4i32:$rsrc, 0, 0, i32:$soffset, timm:$offset,
|
||||
|
Loading…
Reference in New Issue
Block a user