1111//
1212//===----------------------------------------------------------------------===//
1313
14- // Mask immediates for MMA instructions (2, 4 and 8 bits).
15- def Msk2Imm : ImmLeaf<i32, [{ return isUInt<2>(Imm); }]>;
16- def Msk4Imm : ImmLeaf<i32, [{ return isUInt<4>(Imm); }]>;
17- def Msk8Imm : ImmLeaf<i32, [{ return isUInt<8>(Imm); }]>;
18-
19- def MMA : Predicate<"Subtarget->hasMMA()">;
20-
2114class XX3Form_AT3_XABp5_P1<bits<6> opcode, bits<8> xo, dag OOL, dag IOL,
2215 string asmstr, list<dag> pattern>
2316 : I<opcode, OOL, IOL, asmstr, NoItinerary> {
@@ -132,7 +125,7 @@ class MMIRR_XX3Form_X8YP4_XAp5B6<bits<6> opcode, bits<8> xo, dag OOL, dag IOL,
132125
133126multiclass DMR_UM_XOEO<bits<6> opcode, bits<8> xo, dag IOL, string asmbase,
134127 string asmstr> {
135- let Predicates = [IsISAFuture] in {
128+ let Predicates = [MMA, IsISAFuture] in {
136129 def NAME :
137130 XX3Form_AT3_XAp5B6<opcode, !or(xo, 0x01), (outs dmr:$AT), IOL,
138131 !strconcat(asmbase#" ", asmstr), IIC_VecFP, []>,
@@ -147,7 +140,7 @@ multiclass DMR_UM_XOEO<bits<6> opcode, bits<8> xo, dag IOL, string asmbase,
147140multiclass DMR_UM_M448_XOEO<bits<6> opcode, bits<8> xo, dag IOL, string asmbase,
148141 string asmstr> {
149142 defm NAME : DMR_UM_XOEO<opcode, xo, IOL, asmbase, asmstr>;
150- let Predicates = [IsISAFuture] in {
143+ let Predicates = [MMA, PrefixInstrs, IsISAFuture] in {
151144 def PM#NAME :
152145 MMIRR_XX3Form_X8YP4_XAp5B6<
153146 opcode, !or(xo, 0x01), (outs dmr:$AT),
0 commit comments