@@ -741,9 +741,14 @@ def VOPProfileMAI_I32_V4I32_X16 : VOPProfileMAI<VOP_V16I32_V4I32_V4I32_V16I3
741
741
def VOPProfileMAI_I32_V4I32_X16_VCD : VOPProfileMAI<VOP_V16I32_V4I32_V4I32_V16I32, VISrc_512_b32, VDst_512, AVSrc_128>;
742
742
743
743
744
- class MFMATable <bit is_mac, string Name> {
744
+ class MFMATable <bit is_mac, string Kind, string Name,
745
+ string AGPROpName = NAME> {
745
746
bit IsMac = is_mac;
746
747
string FMAOp = Name;
748
+ string AGPROp = AGPROpName;
749
+
750
+ // Does this MFMA use "AGPR" or "VGPR" for srcC/vdst
751
+ string MFMAKind = Kind;
747
752
}
748
753
749
754
class MFMA_F8F6F4_WithSizeTable<int A, int B, Instruction ThisVariant, Instruction F8F8Variant> {
@@ -849,12 +854,12 @@ multiclass MAIInst<string OpName, string P, SDPatternOperator node = null_frag,
849
854
let Constraints = !if(NoDstOverlap, "@earlyclobber $vdst", "") in {
850
855
def _e64 : MAIInst<OpName, !cast<VOPProfileMAI>("VOPProfileMAI_" # P),
851
856
!if(!or(NoDstOverlap, !eq(node, null_frag)), null_frag, AgprMAIFrag<node, HasAbid, Scaled>), Scaled>,
852
- MFMATable<0, NAME # "_e64">;
857
+ MFMATable<0, "AGPR", NAME # "_e64">;
853
858
854
859
let OtherPredicates = [isGFX90APlus], Mnemonic = OpName in
855
860
def _vgprcd_e64 : MAIInst<OpName # "_vgprcd", !cast<VOPProfileMAI>("VOPProfileMAI_" # P # "_VCD"),
856
861
!if(!or(NoDstOverlap, !eq(node, null_frag)), null_frag, VgprMAIFrag<node, HasAbid, Scaled>), Scaled>,
857
- MFMATable<0, NAME # "_vgprcd_e64">;
862
+ MFMATable<0, "VGPR", NAME # "_vgprcd_e64", NAME # "_e64 ">;
858
863
}
859
864
860
865
if NoDstOverlap then {
@@ -863,6 +868,7 @@ multiclass MAIInst<string OpName, string P, SDPatternOperator node = null_frag,
863
868
Mnemonic = OpName in {
864
869
def "_mac_e64" : MAIInst<OpName # "_mac", !cast<VOPProfileMAI>("VOPProfileMAI_" # P),
865
870
!if(!eq(node, null_frag), null_frag, AgprMAIFrag<node, HasAbid, Scaled>), Scaled>,
871
+ MFMATable<1, "AGPR", NAME # "_e64", NAME # "_mac_e64">;
866
872
MFMATable<1, NAME # "_e64">;
867
873
868
874
let OtherPredicates = [isGFX90APlus] in
0 commit comments