Skip to content

Commit 60bb5c5

Browse files
authored
[AMDGPU] Fix predicates for various True16 instructions. (#77581)
Resolves AsmParser ambiguities, e.g., between V_SUBREV_F16_t16_dpp8_gfx11 and V_SUBREV_F16_t16_dpp8_gfx12. Part of <#69256>.
1 parent b8dca4f commit 60bb5c5

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed

llvm/lib/Target/AMDGPU/VOP2Instructions.td

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ class VOP2_Real <VOP2_Pseudo ps, int EncodingFamily, string real_name = ps.Mnemo
111111

112112
class VOP2_Real_Gen <VOP2_Pseudo ps, GFXGen Gen, string real_name = ps.Mnemonic> :
113113
VOP2_Real <ps, Gen.Subtarget, real_name> {
114-
let AssemblerPredicate = !if(ps.Pfl.IsRealTrue16, UseRealTrue16Insts,
115-
Gen.AssemblerPredicate);
114+
let AssemblerPredicate = Gen.AssemblerPredicate;
115+
let OtherPredicates = !if(ps.Pfl.IsRealTrue16, [UseRealTrue16Insts], []);
116116
let DecoderNamespace = Gen.DecoderNamespace#
117117
!if(ps.Pfl.IsRealTrue16, "", "_FAKE16");
118118
}
@@ -1275,8 +1275,8 @@ class VOP2_DPP16<bits<6> op, VOP2_DPP_Pseudo ps, int subtarget,
12751275
class VOP2_DPP16_Gen<bits<6> op, VOP2_DPP_Pseudo ps, GFXGen Gen,
12761276
string opName = ps.OpName, VOPProfile p = ps.Pfl> :
12771277
VOP2_DPP16<op, ps, Gen.Subtarget, opName, p> {
1278-
let AssemblerPredicate = !if(ps.Pfl.IsRealTrue16, UseRealTrue16Insts,
1279-
Gen.AssemblerPredicate);
1278+
let AssemblerPredicate = Gen.AssemblerPredicate;
1279+
let OtherPredicates = !if(ps.Pfl.IsRealTrue16, [UseRealTrue16Insts], []);
12801280
let DecoderNamespace = "DPP"#Gen.DecoderNamespace#
12811281
!if(ps.Pfl.IsRealTrue16, "", "_FAKE16");
12821282
}
@@ -1304,8 +1304,8 @@ class VOP2_DPP8<bits<6> op, VOP2_Pseudo ps,
13041304
class VOP2_DPP8_Gen<bits<6> op, VOP2_Pseudo ps, GFXGen Gen,
13051305
VOPProfile p = ps.Pfl> :
13061306
VOP2_DPP8<op, ps, p> {
1307-
let AssemblerPredicate = !if(ps.Pfl.IsRealTrue16, UseRealTrue16Insts,
1308-
Gen.AssemblerPredicate);
1307+
let AssemblerPredicate = Gen.AssemblerPredicate;
1308+
let OtherPredicates = !if(ps.Pfl.IsRealTrue16, [UseRealTrue16Insts], []);
13091309
let DecoderNamespace = "DPP8"#Gen.DecoderNamespace#
13101310
!if(ps.Pfl.IsRealTrue16, "", "_FAKE16");
13111311
}

llvm/lib/Target/AMDGPU/VOPInstructions.td

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,8 @@ class VOP3_Real <VOP_Pseudo ps, int EncodingFamily, string asm_name = ps.Mnemoni
208208

209209
class VOP3_Real_Gen <VOP_Pseudo ps, GFXGen Gen, string asm_name = ps.Mnemonic> :
210210
VOP3_Real <ps, Gen.Subtarget, asm_name> {
211-
let AssemblerPredicate = !if(ps.Pfl.IsRealTrue16, UseRealTrue16Insts,
212-
Gen.AssemblerPredicate);
211+
let AssemblerPredicate = Gen.AssemblerPredicate;
212+
let OtherPredicates = !if(ps.Pfl.IsRealTrue16, [UseRealTrue16Insts], []);
213213
let DecoderNamespace = Gen.DecoderNamespace#
214214
!if(ps.Pfl.IsRealTrue16, "", "_FAKE16");
215215
}
@@ -1340,8 +1340,8 @@ class VOP3_DPP16<bits<10> op, VOP_DPP_Pseudo ps, int subtarget,
13401340
class VOP3_DPP16_Gen<bits<10> op, VOP_DPP_Pseudo ps, GFXGen Gen,
13411341
string opName = ps.OpName> :
13421342
VOP3_DPP16 <op, ps, Gen.Subtarget, opName> {
1343-
let AssemblerPredicate = !if(ps.Pfl.IsRealTrue16, UseRealTrue16Insts,
1344-
Gen.AssemblerPredicate);
1343+
let AssemblerPredicate = Gen.AssemblerPredicate;
1344+
let OtherPredicates = !if(ps.Pfl.IsRealTrue16, [UseRealTrue16Insts], []);
13451345
let DecoderNamespace = "DPP"#Gen.DecoderNamespace#
13461346
!if(ps.Pfl.IsRealTrue16, "", "_FAKE16");
13471347
}
@@ -1470,9 +1470,8 @@ multiclass VOP3_Real_dpp8_with_name<GFXGen Gen, bits<10> op, string opName,
14701470
let AsmString = asmName # ps.Pfl.AsmVOP3DPP8,
14711471
DecoderNamespace = "DPP8"#Gen.DecoderNamespace#
14721472
!if(ps.Pfl.IsRealTrue16, "", "_FAKE16"),
1473-
AssemblerPredicate = !if(ps.Pfl.IsRealTrue16, UseRealTrue16Insts,
1474-
Gen.AssemblerPredicate) in {
1475-
1473+
OtherPredicates = !if(ps.Pfl.IsRealTrue16, [UseRealTrue16Insts],
1474+
[TruePredicate]) in {
14761475
defm NAME : VOP3_Real_dpp8_Base<Gen, op, opName>;
14771476
}
14781477
}

0 commit comments

Comments
 (0)