Lines Matching refs:vt

472   ValueType vt,
473 ValueType data_vt = vt,
502 ValueType vt,
503 ValueType data_vt = vt,
535 ValueType vt,
536 ValueType data_vt = vt,
568 ValueType vt,
569 ValueType data_vt = vt,
572 defm "" : FLAT_Global_Atomic_Pseudo_NO_RTN<opName, vdst_rc, vt, data_vt, data_rc>;
573 defm "" : FLAT_Global_Atomic_Pseudo_RTN<opName, vdst_rc, vt, data_vt, data_rc>;
932 class FlatLoadPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
933 (vt (node (FlatOffset i64:$vaddr, i16:$offset))),
937 class FlatLoadPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
938 (node (FlatOffset (i64 VReg_64:$vaddr), i16:$offset), vt:$in),
942 class FlatSignedLoadPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
943 (node (GlobalOffset (i64 VReg_64:$vaddr), i16:$offset), vt:$in),
947 class GlobalLoadSaddrPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
948 (vt (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16:$offset), vt:$in)),
952 class FlatLoadSignedPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
953 (vt (node (GlobalOffset (i64 VReg_64:$vaddr), i16:$offset))),
957 class GlobalLoadSaddrPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
958 (vt (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16:$offset))),
963 ValueType vt> : GCNPat <
964 (node vt:$data, (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16:$offset)),
965 (inst $voffset, getVregSrcForVT<vt>.ret:$data, $saddr, $offset)
969 ValueType vt> : GCNPat <
970 (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16:$offset), vt:$data),
971 (inst $voffset, getVregSrcForVT<vt>.ret:$data, $saddr, $offset)
975 ValueType vt, ValueType data_vt = vt> : GCNPat <
976 …(vt (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16:$offset), data_vt:$data)),
981 ValueType vt> : GCNPat <
982 (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16:$offset), vt:$data),
983 (inst $voffset, getVregSrcForVT<vt>.ret:$data, $saddr, $offset)
986 class FlatStorePat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
987 (node vt:$data, (FlatOffset i64:$vaddr, i16:$offset)),
988 (inst $vaddr, getVregSrcForVT<vt>.ret:$data, $offset)
991 class FlatStoreSignedPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
992 (node vt:$data, (GlobalOffset i64:$vaddr, i16:$offset)),
993 (inst $vaddr, getVregSrcForVT<vt>.ret:$data, $offset)
996 class FlatStoreAtomicPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
999 (node (FlatOffset i64:$vaddr, i16:$offset), vt:$data),
1000 (inst $vaddr, getVregSrcForVT<vt>.ret:$data, $offset)
1004 ValueType vt, ValueType data_vt = vt> : GCNPat <
1011 class FlatAtomicPatNoRtn <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1012 (node (FlatOffset i64:$vaddr, i16:$offset), vt:$data),
1013 (inst VReg_64:$vaddr, getVregSrcForVT<vt>.ret:$data, $offset)
1016 multiclass FlatAtomicPat <string inst, string node, ValueType vt,
1017 ValueType data_vt = vt> {
1018 defvar rtnNode = !cast<PatFrags>(node#"_"#vt.Size);
1019 defvar noRtnNode = !cast<PatFrags>(node#"_noret_"#vt.Size);
1021 def : GCNPat <(vt (rtnNode (FlatOffset i64:$vaddr, i16:$offset), data_vt:$data)),
1025 def : GCNPat <(vt (noRtnNode (FlatOffset i64:$vaddr, i16:$offset), data_vt:$data)),
1029 multiclass FlatSignedAtomicPat <string inst, string node, ValueType vt,
1030 ValueType data_vt = vt, int complexity = 0,
1032 defvar rtnNode = !cast<SDPatternOperator>(node # !if(isIntr, "", "_" # vt.Size));
1033 defvar noRtnNode = !cast<PatFrags>(node # "_noret" # !if(isIntr, "", "_" # vt.Size));
1036 def : GCNPat <(vt (rtnNode (GlobalOffset i64:$vaddr, i16:$offset), data_vt:$data)),
1040 def : GCNPat <(vt (noRtnNode (GlobalOffset i64:$vaddr, i16:$offset), data_vt:$data)),
1044 multiclass FlatSignedAtomicIntrPat <string inst, string node, ValueType vt,
1045 ValueType data_vt = vt> {
1046 defm : FlatSignedAtomicPat<inst, node, vt, data_vt, /* complexity */ 0, /* isIntr */ 1>;
1049 class FlatSignedAtomicPatNoRtn <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1050 (node (GlobalOffset i64:$vaddr, i16:$offset), vt:$data),
1051 (inst VReg_64:$vaddr, getVregSrcForVT<vt>.ret:$data, $offset)
1054 class FlatSignedAtomicPatRtn <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt,
1055 ValueType data_vt = vt> : GCNPat <
1056 (vt (node (GlobalOffset i64:$vaddr, i16:$offset), data_vt:$data)),
1060 class ScratchLoadSignedPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1061 (vt (node (ScratchOffset (i32 VGPR_32:$vaddr), i16:$offset))),
1065 class ScratchLoadSignedPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1066 (node (ScratchOffset (i32 VGPR_32:$vaddr), i16:$offset), vt:$in),
1070 class ScratchStoreSignedPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1071 (node vt:$data, (ScratchOffset (i32 VGPR_32:$vaddr), i16:$offset)),
1072 (inst getVregSrcForVT<vt>.ret:$data, $vaddr, $offset)
1075 class ScratchLoadSaddrPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1076 (vt (node (ScratchSAddr (i32 SGPR_32:$saddr), i16:$offset))),
1080 class ScratchLoadSaddrPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1081 (vt (node (ScratchSAddr (i32 SGPR_32:$saddr), i16:$offset), vt:$in)),
1086 ValueType vt> : GCNPat <
1087 (node vt:$data, (ScratchSAddr (i32 SGPR_32:$saddr), i16:$offset)),
1088 (inst getVregSrcForVT<vt>.ret:$data, $saddr, $offset)
1091 class ScratchLoadSVaddrPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1092 (vt (node (ScratchSVAddr (i32 VGPR_32:$vaddr), (i32 SGPR_32:$saddr), i16:$offset))),
1097 ValueType vt> : GCNPat <
1098 (node vt:$data, (ScratchSVAddr (i32 VGPR_32:$vaddr), (i32 SGPR_32:$saddr), i16:$offset)),
1099 (inst getVregSrcForVT<vt>.ret:$data, $vaddr, $saddr, $offset)
1102 class ScratchLoadSVaddrPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1103 (vt (node (ScratchSVAddr (i32 VGPR_32:$vaddr), (i32 SGPR_32:$saddr), i16:$offset), vt:$in)),
1131 foreach vt = Reg32Types.types in {
1132 def : FlatLoadPat <FLAT_LOAD_DWORD, load_flat, vt>;
1133 def : FlatStorePat <FLAT_STORE_DWORD, store_flat, vt>;
1136 foreach vt = VReg_64.RegTypes in {
1137 def : FlatStorePat <FLAT_STORE_DWORDX2, store_flat, vt>;
1138 def : FlatLoadPat <FLAT_LOAD_DWORDX2, load_flat, vt>;
1143 foreach vt = VReg_128.RegTypes in {
1144 def : FlatLoadPat <FLAT_LOAD_DWORDX4, load_flat, vt>;
1145 def : FlatStorePat <FLAT_STORE_DWORDX4, store_flat, vt>;
1212 multiclass GlobalFLATLoadPats<FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> {
1213 def : FlatLoadSignedPat <inst, node, vt> {
1217 def : GlobalLoadSaddrPat<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SADDR"), node, vt> {
1222 multiclass GlobalFLATLoadPats_D16<FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> {
1223 def : FlatSignedLoadPat_D16 <inst, node, vt> {
1227 def : GlobalLoadSaddrPat_D16<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SADDR"), node, vt> {
1233 ValueType vt> {
1234 def : FlatStoreSignedPat <inst, node, vt> {
1238 def : GlobalStoreSaddrPat<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SADDR"), node, vt> {
1244 multiclass GlobalFLATAtomicStorePats<FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> {
1245 def : FlatStoreSignedAtomicPat <inst, node, vt> {
1249 def : GlobalAtomicStoreSaddrPat<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SADDR"), node, vt> {
1255 ValueType vt, ValueType data_vt = vt> {
1256 def : FlatSignedAtomicPatRtn <!cast<FLAT_Pseudo>(nortn_inst_name#"_RTN"), node, vt, data_vt> {
1260 def : GlobalAtomicSaddrPat<!cast<FLAT_Pseudo>(nortn_inst_name#"_SADDR_RTN"), node, vt, data_vt> {
1265 multiclass GlobalFLATAtomicPats<string inst, string node, ValueType vt,
1266 ValueType data_vt = vt, bit isIntr = 0> {
1267 defvar rtnNode = !cast<SDPatternOperator>(node # !if(isIntr, "", "_" # vt.Size));
1268 defvar noRtnNode = !cast<PatFrags>(node # "_noret" # !if(isIntr, "", "_" # vt.Size));
1270 defm : FlatSignedAtomicPat <inst, node, vt, data_vt, /* complexity */ 10, isIntr>;
1273 def : GlobalAtomicSaddrPat<!cast<FLAT_Pseudo>(inst#"_SADDR"), noRtnNode, vt, data_vt>;
1276 def : GlobalAtomicSaddrPat<!cast<FLAT_Pseudo>(inst#"_SADDR_RTN"), rtnNode, vt, data_vt>;
1279 multiclass GlobalFLATAtomicIntrPats<string inst, string node, ValueType vt,
1280 ValueType data_vt = vt> {
1281 defm : GlobalFLATAtomicPats<inst, node, vt, data_vt, /* isIntr */ 1>;
1285 ValueType vt> {
1286 def : FlatSignedAtomicPatNoRtn <inst, node, vt> {
1290 def : GlobalAtomicNoRtnSaddrPat<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SADDR"), node, vt> {
1295 multiclass ScratchFLATLoadPats<FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> {
1296 def : ScratchLoadSignedPat <inst, node, vt> {
1300 def : ScratchLoadSaddrPat<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SADDR"), node, vt> {
1304 def : ScratchLoadSVaddrPat<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SVS"), node, vt> {
1311 ValueType vt> {
1312 def : ScratchStoreSignedPat <inst, node, vt> {
1316 def : ScratchStoreSaddrPat<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SADDR"), node, vt> {
1320 def : ScratchStoreSVaddrPat<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SVS"), node, vt> {
1326 multiclass ScratchFLATLoadPats_D16<FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> {
1327 def : ScratchLoadSignedPat_D16 <inst, node, vt> {
1331 def : ScratchLoadSaddrPat_D16<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SADDR"), node, vt> {
1335 def : ScratchLoadSVaddrPat_D16 <!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SVS"), node, vt> {
1358 foreach vt = Reg32Types.types in {
1359 defm : GlobalFLATLoadPats <GLOBAL_LOAD_DWORD, load_global, vt>;
1360 defm : GlobalFLATStorePats <GLOBAL_STORE_DWORD, store_global, vt>;
1363 foreach vt = VReg_64.RegTypes in {
1364 defm : GlobalFLATLoadPats <GLOBAL_LOAD_DWORDX2, load_global, vt>;
1365 defm : GlobalFLATStorePats <GLOBAL_STORE_DWORDX2, store_global, vt>;
1370 foreach vt = VReg_128.RegTypes in {
1371 defm : GlobalFLATLoadPats <GLOBAL_LOAD_DWORDX4, load_global, vt>;
1372 defm : GlobalFLATStorePats <GLOBAL_STORE_DWORDX4, store_global, vt>;
1503 foreach vt = Reg32Types.types in {
1504 defm : ScratchFLATLoadPats <SCRATCH_LOAD_DWORD, load_private, vt>;
1505 defm : ScratchFLATStorePats <SCRATCH_STORE_DWORD, store_private, vt>;
1508 foreach vt = VReg_64.RegTypes in {
1509 defm : ScratchFLATLoadPats <SCRATCH_LOAD_DWORDX2, load_private, vt>;
1510 defm : ScratchFLATStorePats <SCRATCH_STORE_DWORDX2, store_private, vt>;
1515 foreach vt = VReg_128.RegTypes in {
1516 defm : ScratchFLATLoadPats <SCRATCH_LOAD_DWORDX4, load_private, vt>;
1517 defm : ScratchFLATStorePats <SCRATCH_STORE_DWORDX4, store_private, vt>;