[llvm] [AArch64][llvm] Redefine some insns as an alias of `SYS` (PR #187004)

via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 28 07:27:41 PDT 2026


================
@@ -941,6 +942,38 @@ bool AArch64InstPrinter::printSysAlias(const MCInst *MI,
       case 0: goto Search_IC;
       case 3: goto Search_PRCTX;
       }
+    // BRB aliases.
+    case 2: {
+      switch (Op1Val) {
+      default:
+        return false;
+      case 1:
+        if (!(STI.hasFeature(AArch64::FeatureAll) ||
+              STI.hasFeature(AArch64::FeatureBRBE)))
+          return false;
+
+        NeedsReg = false;
+        switch (Op2Val) {
+        default:
+          return false;
+        case 4:
+          Ins = "brb\t";
+          Name = "iall";
----------------
CarolineConcatto wrote:

I find there switch statements  would be better if written as if statements:
```
   if (Op1Val == 1) {
        if (!(STI.hasFeature(AArch64::FeatureAll) ||
              STI.hasFeature(AArch64::FeatureBRBE)))
          return false;

        NeedsReg = false;
        if (Op2Val == 4) {
          Ins = "brb\t";
          Name = "iall";
        } else if (Op2Val == 5) {
          Ins = "brb\t";
          Name = "inj";
        } else {
          return false;
        }
      }
      if (Op1Val == 3) {
        if (Op2Val != 7 || !(STI.hasFeature(AArch64::FeatureAll) ||
                             STI.hasFeature(AArch64::FeatureITE)))
          return false;

        return false;
      }
```

https://github.com/llvm/llvm-project/pull/187004


More information about the llvm-commits mailing list