[llvm] [AMDGPU][MC] Separate VOPC MnemonicAlias from Instruction (PR #89105)
Joe Nash via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 18 08:15:32 PDT 2024
================
@@ -1386,27 +1386,32 @@ multiclass VOPC_Real_Base<GFXGen Gen, bits<9> op> {
multiclass VOPC_Real_with_name<GFXGen Gen, bits<9> op, string OpName,
string asm_name, string pseudo_mnemonic = ""> {
- let AssemblerPredicate = Gen.AssemblerPredicate, DecoderNamespace = Gen.DecoderNamespace in {
- defvar ps32 = !cast<VOPC_Pseudo>(OpName#"_e32");
- defvar ps64 = !cast<VOP3_Pseudo>(OpName#"_e64");
+ defvar ps32 = !cast<VOPC_Pseudo>(OpName#"_e32");
+ defvar ps64 = !cast<VOP3_Pseudo>(OpName#"_e64");
+ let AssemblerPredicate = Gen.AssemblerPredicate in {
+ // MnemonicAlias and GCNPredicateControl both define the field Predicates,
+ // so GCNPredicateControl must come after MnemonicAlias because it contains
+ // the predicates we actually want.
+ def : MnemonicAlias<!if(!empty(pseudo_mnemonic), ps32.Mnemonic,
+ pseudo_mnemonic),
+ asm_name, ps32.AsmVariantName>,
+ GCNPredicateControl;
+ def : MnemonicAlias<!if(!empty(pseudo_mnemonic), ps64.Mnemonic,
+ pseudo_mnemonic),
+ asm_name, ps64.AsmVariantName>,
+ GCNPredicateControl;
+
+ let DecoderNamespace = Gen.DecoderNamespace in {
def _e32#Gen.Suffix :
----------------
Sisyph wrote:
done
https://github.com/llvm/llvm-project/pull/89105
More information about the llvm-commits
mailing list