[llvm] [AArch64][llvm] Gate some `tlbip` insns with either +tlbid or +d128 (PR #178913)

Jonathan Thackray via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 31 08:51:43 PDT 2026


https://github.com/jthackray updated https://github.com/llvm/llvm-project/pull/178913

>From 2b9ebc2413feaed2c8b761f58dbd34eed1e2ed3c Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Fri, 30 Jan 2026 16:05:07 +0000
Subject: [PATCH 01/10] [AArch64][llvm] Gate some `tlbip` insns with +tlbid or
 +d128

Change the gating of `tlbip` instructions containing `*E1IS*`, `*E1OS*`,
`*E2IS*` or `*E2OS*` to be used with `+tlbid` or `+d128`. This is because
the 2025 Armv9.7-A MemSys specification says:

```
  All TLBIP *E1IS*, TLBIP*E1OS*, TLBIP*E2IS* and TLBIP*E2OS* instructions
  that are currently dependent on FEAT_D128 are updated to be dependent
  on FEAT_D128 or FEAT_TLBID
```
---
 .../AArch64/AsmParser/AArch64AsmParser.cpp    |  20 +-
 .../Target/AArch64/Utils/AArch64BaseInfo.h    |  20 ++
 llvm/test/MC/AArch64/armv9a-tlbip.s           | 132 ++++-----
 llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s    | 259 ++++++++++++++++++
 4 files changed, 360 insertions(+), 71 deletions(-)
 create mode 100644 llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s

diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
index 9cfccaf8fcaba..46d0fc1b5d9c3 100644
--- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -4261,12 +4261,22 @@ bool AArch64AsmParser::parseSyspAlias(StringRef Name, SMLoc NameLoc,
     const AArch64TLBIP::TLBIP *TLBIP = AArch64TLBIP::lookupTLBIPByName(Op);
     if (!TLBIP)
       return TokError("invalid operand for TLBIP instruction");
-    if (!getSTI().hasFeature(AArch64::FeatureD128) &&
-        !getSTI().hasFeature(AArch64::FeatureAll))
-      return TokError("instruction requires: d128");
-    if (!TLBIP->haveFeatures(getSTI().getFeatureBits())) {
+
+    if (!TLBIP.haveFeatures(getSTI().getFeatureBits())) {
+      FeatureBitset Active = getSTI().getFeatureBits();
+      FeatureBitset Missing = TLBIP.getRequiredFeatures() & ~Active;
+      if (TLBIP.allowTLBID()) {
+        Missing.reset(AArch64::FeatureD128);
+        Missing.reset(AArch64::FeatureTLBID);
+        if (!Active[AArch64::FeatureD128] && !Active[AArch64::FeatureTLBID]) {
+          if (Missing.none())
+            return TokError("instruction requires: tlbid or d128");
+          Missing.set(AArch64::FeatureD128);
+          Missing.set(AArch64::FeatureTLBID);
+        }
+      }
       std::string Str("instruction requires: ");
-      setRequiredFeatureString(TLBIP->getRequiredFeatures(), Str);
+      setRequiredFeatureString(Missing, Str);
       return TokError(Str);
     }
     createSysAlias(TLBIP->Encoding, Operands, S);
diff --git a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
index 38b2b3ec1e8dc..65fd245ad2d7f 100644
--- a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+++ b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
@@ -860,6 +860,26 @@ struct TLBI : SysAliasOptionalReg {
 namespace AArch64TLBIP {
 struct TLBIP : SysAliasOptionalReg {
   using SysAliasOptionalReg::SysAliasOptionalReg;
+
+  bool allowTLBID() const {
+    return FeaturesRequired[llvm::AArch64::FeatureTLBID];
+  }
+
+  bool haveFeatures(FeatureBitset ActiveFeatures) const {
+    if (ActiveFeatures[llvm::AArch64::FeatureAll])
+      return true;
+
+    FeatureBitset Required = FeaturesRequired;
+    if (allowTLBID()) {
+      Required.reset(llvm::AArch64::FeatureD128);
+      Required.reset(llvm::AArch64::FeatureTLBID);
+      return (Required & ActiveFeatures) == Required &&
+             (ActiveFeatures[llvm::AArch64::FeatureD128] ||
+              ActiveFeatures[llvm::AArch64::FeatureTLBID]);
+    }
+
+    return (Required & ActiveFeatures) == Required;
+  }
 };
 #define GET_TLBIPTable_DECL
 #include "AArch64GenSystemOperands.inc"
diff --git a/llvm/test/MC/AArch64/armv9a-tlbip.s b/llvm/test/MC/AArch64/armv9a-tlbip.s
index 263059cb7a007..9bea3b955efdb 100644
--- a/llvm/test/MC/AArch64/armv9a-tlbip.s
+++ b/llvm/test/MC/AArch64/armv9a-tlbip.s
@@ -29,25 +29,25 @@ tlbip IPAS2E1NXS, x4, x5
 tlbip IPAS2E1IS, x4, x5
 // CHECK-INST: tlbip ipas2e1is, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8024 sysp #4, c8, c0, #1, x4, x5
 
 tlbip IPAS2E1ISNXS, x4, x5
 // CHECK-INST: tlbip ipas2e1isnxs, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9024 sysp #4, c9, c0, #1, x4, x5
 
 tlbip IPAS2E1OS, x4, x5
 // CHECK-INST: tlbip ipas2e1os, x4, x5
 // CHECK-ENCODING: encoding: [0x04,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8404 sysp #4, c8, c4, #0, x4, x5
 
 tlbip IPAS2E1OSNXS, x4, x5
 // CHECK-INST: tlbip ipas2e1osnxs, x4, x5
 // CHECK-ENCODING: encoding: [0x04,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9404 sysp #4, c9, c4, #0, x4, x5
 
 tlbip IPAS2LE1, x4, x5
@@ -65,25 +65,25 @@ tlbip IPAS2LE1NXS, x4, x5
 tlbip IPAS2LE1IS, x4, x5
 // CHECK-INST: tlbip ipas2le1is, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c80a4 sysp #4, c8, c0, #5, x4, x5
 
 tlbip IPAS2LE1ISNXS, x4, x5
 // CHECK-INST: tlbip ipas2le1isnxs, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c90a4 sysp #4, c9, c0, #5, x4, x5
 
 tlbip IPAS2LE1OS, x4, x5
 // CHECK-INST: tlbip ipas2le1os, x4, x5
 // CHECK-ENCODING: encoding: [0x84,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8484 sysp #4, c8, c4, #4, x4, x5
 
 tlbip IPAS2LE1OSNXS, x4, x5
 // CHECK-INST: tlbip ipas2le1osnxs, x4, x5
 // CHECK-ENCODING: encoding: [0x84,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9484 sysp #4, c9, c4, #4, x4, x5
 
 tlbip VAE1, x8, x9
@@ -101,25 +101,25 @@ tlbip VAE1NXS, x8, x9
 tlbip VAE1IS, x8, x9
 // CHECK-INST: tlbip vae1is, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488328 sysp #0, c8, c3, #1, x8, x9
 
 tlbip VAE1ISNXS, x8, x9
 // CHECK-INST: tlbip vae1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489328 sysp #0, c9, c3, #1, x8, x9
 
 tlbip VAE1OS, x8, x9
 // CHECK-INST: tlbip vae1os, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488128 sysp #0, c8, c1, #1, x8, x9
 
 tlbip VAE1OSNXS, x8, x9
 // CHECK-INST: tlbip vae1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489128 sysp #0, c9, c1, #1, x8, x9
 
 tlbip VALE1, x8, x9
@@ -137,25 +137,25 @@ tlbip VALE1NXS, x8, x9
 tlbip VALE1IS, x8, x9
 // CHECK-INST: tlbip vale1is, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54883a8 sysp #0, c8, c3, #5, x8, x9
 
 tlbip VALE1ISNXS, x8, x9
 // CHECK-INST: tlbip vale1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54893a8 sysp #0, c9, c3, #5, x8, x9
 
 tlbip VALE1OS, x8, x9
 // CHECK-INST: tlbip vale1os, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54881a8 sysp #0, c8, c1, #5, x8, x9
 
 tlbip VALE1OSNXS, x8, x9
 // CHECK-INST: tlbip vale1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54891a8 sysp #0, c9, c1, #5, x8, x9
 
 tlbip VAAE1, x8, x9
@@ -173,25 +173,25 @@ tlbip VAAE1NXS, x8, x9
 tlbip VAAE1IS, x8, x9
 // CHECK-INST: tlbip vaae1is, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488368 sysp #0, c8, c3, #3, x8, x9
 
 tlbip VAAE1ISNXS, x8, x9
 // CHECK-INST: tlbip vaae1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489368 sysp #0, c9, c3, #3, x8, x9
 
 tlbip VAAE1OS, x8, x9
 // CHECK-INST: tlbip vaae1os, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488168 sysp #0, c8, c1, #3, x8, x9
 
 tlbip VAAE1OSNXS, x8, x9
 // CHECK-INST: tlbip vaae1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489168 sysp #0, c9, c1, #3, x8, x9
 
 tlbip VAALE1, x8, x9
@@ -209,25 +209,25 @@ tlbip VAALE1NXS, x8, x9
 tlbip VAALE1IS, x8, x9
 // CHECK-INST: tlbip vaale1is, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54883e8 sysp #0, c8, c3, #7, x8, x9
 
 tlbip VAALE1ISNXS, x8, x9
 // CHECK-INST: tlbip vaale1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54893e8 sysp #0, c9, c3, #7, x8, x9
 
 tlbip VAALE1OS, x8, x9
 // CHECK-INST: tlbip vaale1os, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54881e8 sysp #0, c8, c1, #7, x8, x9
 
 tlbip VAALE1OSNXS, x8, x9
 // CHECK-INST: tlbip vaale1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54891e8 sysp #0, c9, c1, #7, x8, x9
 
 tlbip VAE2, x14, x15
@@ -245,25 +245,25 @@ tlbip VAE2NXS, x14, x15
 tlbip VAE2IS, x14, x15
 // CHECK-INST: tlbip vae2is, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x83,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c832e sysp #4, c8, c3, #1, x14, x15
 
 tlbip VAE2ISNXS, x14, x15
 // CHECK-INST: tlbip vae2isnxs, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x93,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c932e sysp #4, c9, c3, #1, x14, x15
 
 tlbip VAE2OS, x14, x15
 // CHECK-INST: tlbip vae2os, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x81,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c812e sysp #4, c8, c1, #1, x14, x15
 
 tlbip VAE2OSNXS, x14, x15
 // CHECK-INST: tlbip vae2osnxs, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x91,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c912e sysp #4, c9, c1, #1, x14, x15
 
 tlbip VALE2, x14, x15
@@ -281,25 +281,25 @@ tlbip VALE2NXS, x14, x15
 tlbip VALE2IS, x14, x15
 // CHECK-INST: tlbip vale2is, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x83,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c83ae sysp #4, c8, c3, #5, x14, x15
 
 tlbip VALE2ISNXS, x14, x15
 // CHECK-INST: tlbip vale2isnxs, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x93,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c93ae sysp #4, c9, c3, #5, x14, x15
 
 tlbip VALE2OS, x14, x15
 // CHECK-INST: tlbip vale2os, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x81,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c81ae sysp #4, c8, c1, #5, x14, x15
 
 tlbip VALE2OSNXS, x14, x15
 // CHECK-INST: tlbip vale2osnxs, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x91,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c91ae sysp #4, c9, c1, #5, x14, x15
 
 tlbip VAE3, x24, x25
@@ -389,25 +389,25 @@ tlbip RVAE1NXS, x18, x19
 tlbip RVAE1IS, x18, x19
 // CHECK-INST: tlbip rvae1is, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488232 sysp #0, c8, c2, #1, x18, x19
 
 tlbip RVAE1ISNXS, x18, x19
 // CHECK-INST: tlbip rvae1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489232 sysp #0, c9, c2, #1, x18, x19
 
 tlbip RVAE1OS, x18, x19
 // CHECK-INST: tlbip rvae1os, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488532 sysp #0, c8, c5, #1, x18, x19
 
 tlbip RVAE1OSNXS, x18, x19
 // CHECK-INST: tlbip rvae1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489532 sysp #0, c9, c5, #1, x18, x19
 
 tlbip RVAAE1, x18, x19
@@ -425,25 +425,25 @@ tlbip RVAAE1NXS, x18, x19
 tlbip RVAAE1IS, x18, x19
 // CHECK-INST: tlbip rvaae1is, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488272 sysp #0, c8, c2, #3, x18, x19
 
 tlbip RVAAE1ISNXS, x18, x19
 // CHECK-INST: tlbip rvaae1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489272 sysp #0, c9, c2, #3, x18, x19
 
 tlbip RVAAE1OS, x18, x19
 // CHECK-INST: tlbip rvaae1os, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488572 sysp #0, c8, c5, #3, x18, x19
 
 tlbip RVAAE1OSNXS, x18, x19
 // CHECK-INST: tlbip rvaae1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489572 sysp #0, c9, c5, #3, x18, x19
 
 tlbip RVALE1, x18, x19
@@ -461,25 +461,25 @@ tlbip RVALE1NXS, x18, x19
 tlbip RVALE1IS, x18, x19
 // CHECK-INST: tlbip rvale1is, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54882b2 sysp #0, c8, c2, #5, x18, x19
 
 tlbip RVALE1ISNXS, x18, x19
 // CHECK-INST: tlbip rvale1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54892b2 sysp #0, c9, c2, #5, x18, x19
 
 tlbip RVALE1OS, x18, x19
 // CHECK-INST: tlbip rvale1os, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54885b2 sysp #0, c8, c5, #5, x18, x19
 
 tlbip RVALE1OSNXS, x18, x19
 // CHECK-INST: tlbip rvale1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54895b2 sysp #0, c9, c5, #5, x18, x19
 
 tlbip RVAALE1, x18, x19
@@ -497,25 +497,25 @@ tlbip RVAALE1NXS, x18, x19
 tlbip RVAALE1IS, x18, x19
 // CHECK-INST: tlbip rvaale1is, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54882f2 sysp #0, c8, c2, #7, x18, x19
 
 tlbip RVAALE1ISNXS, x18, x19
 // CHECK-INST: tlbip rvaale1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54892f2 sysp #0, c9, c2, #7, x18, x19
 
 tlbip RVAALE1OS, x18, x19
 // CHECK-INST: tlbip rvaale1os, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54885f2 sysp #0, c8, c5, #7, x18, x19
 
 tlbip RVAALE1OSNXS, x18, x19
 // CHECK-INST: tlbip rvaale1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54895f2 sysp #0, c9, c5, #7, x18, x19
 
 tlbip RVAE2, x28, x29
@@ -533,25 +533,25 @@ tlbip RVAE2NXS, x28, x29
 tlbip RVAE2IS, x28, x29
 // CHECK-INST: tlbip rvae2is, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x82,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c823c sysp #4, c8, c2, #1, x28, x29
 
 tlbip RVAE2ISNXS, x28, x29
 // CHECK-INST: tlbip rvae2isnxs, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x92,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c923c sysp #4, c9, c2, #1, x28, x29
 
 tlbip RVAE2OS, x28, x29
 // CHECK-INST: tlbip rvae2os, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x85,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c853c sysp #4, c8, c5, #1, x28, x29
 
 tlbip RVAE2OSNXS, x28, x29
 // CHECK-INST: tlbip rvae2osnxs, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x95,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c953c sysp #4, c9, c5, #1, x28, x29
 
 tlbip RVALE2, x28, x29
@@ -569,25 +569,25 @@ tlbip RVALE2NXS, x28, x29
 tlbip RVALE2IS, x28, x29
 // CHECK-INST: tlbip rvale2is, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x82,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c82bc sysp #4, c8, c2, #5, x28, x29
 
 tlbip RVALE2ISNXS, x28, x29
 // CHECK-INST: tlbip rvale2isnxs, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x92,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c92bc sysp #4, c9, c2, #5, x28, x29
 
 tlbip RVALE2OS, x28, x29
 // CHECK-INST: tlbip rvale2os, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x85,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c85bc sysp #4, c8, c5, #5, x28, x29
 
 tlbip RVALE2OSNXS, x28, x29
 // CHECK-INST: tlbip rvale2osnxs, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x95,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c95bc sysp #4, c9, c5, #5, x28, x29
 
 tlbip RVAE3, x10, x11
@@ -677,25 +677,25 @@ tlbip RIPAS2E1NXS, x20, x21
 tlbip RIPAS2E1IS, x20, x21
 // CHECK-INST: tlbip ripas2e1is, x20, x21
 // CHECK-ENCODING: encoding: [0x54,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8054 sysp #4, c8, c0, #2, x20, x21
 
 tlbip RIPAS2E1ISNXS, x20, x21
 // CHECK-INST: tlbip ripas2e1isnxs, x20, x21
 // CHECK-ENCODING: encoding: [0x54,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9054 sysp #4, c9, c0, #2, x20, x21
 
 tlbip RIPAS2E1OS, x20, x21
 // CHECK-INST: tlbip ripas2e1os, x20, x21
 // CHECK-ENCODING: encoding: [0x74,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8474 sysp #4, c8, c4, #3, x20, x21
 
 tlbip RIPAS2E1OSNXS, x20, x21
 // CHECK-INST: tlbip ripas2e1osnxs, x20, x21
 // CHECK-ENCODING: encoding: [0x74,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9474 sysp #4, c9, c4, #3, x20, x21
 
 tlbip RIPAS2LE1, x20, x21
@@ -713,35 +713,35 @@ tlbip RIPAS2LE1NXS, x20, x21
 tlbip RIPAS2LE1IS, x20, x21
 // CHECK-INST: tlbip ripas2le1is, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c80d4 sysp #4, c8, c0, #6, x20, x21
 
 tlbip RIPAS2LE1ISNXS, x20, x21
 // CHECK-INST: tlbip ripas2le1isnxs, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c90d4 sysp #4, c9, c0, #6, x20, x21
 
 tlbip RIPAS2LE1OS, x20, x21
 // CHECK-INST: tlbip ripas2le1os, x20, x21
 // CHECK-ENCODING: encoding: [0xf4,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c84f4 sysp #4, c8, c4, #7, x20, x21
 
 tlbip RIPAS2LE1OSNXS, x20, x21
 // CHECK-INST: tlbip ripas2le1osnxs, x20, x21
 // CHECK-ENCODING: encoding: [0xf4,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c94f4 sysp #4, c9, c4, #7, x20, x21
 
 tlbip RIPAS2LE1OS, xzr, xzr
 // CHECK-INST: tlbip ripas2le1os, xzr, xzr
 // CHECK-ENCODING: encoding: [0xff,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c84ff sysp #4, c8, c4, #7
 
 tlbip RIPAS2LE1OSNXS, xzr, xzr
 // CHECK-INST: tlbip ripas2le1osnxs, xzr, xzr
 // CHECK-ENCODING: encoding: [0xff,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c94ff sysp #4, c9, c4, #7
diff --git a/llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s b/llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s
new file mode 100644
index 0000000000000..0361fbcc73d4b
--- /dev/null
+++ b/llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s
@@ -0,0 +1,259 @@
+// NOTE: These TLBIP forms are valid with either +tlbid or +d128.
+// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+tlbid,+tlb-rmi,+xs < %s | FileCheck %s --check-prefix=TLBID
+// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+d128,+tlb-rmi,+xs < %s | FileCheck %s --check-prefix=D128
+
+tlbip VAE1OS, x0, x1
+// TLBID: tlbip vae1os, x0, x1
+// D128: tlbip vae1os, x0, x1
+
+tlbip VAAE1OS, x0, x1
+// TLBID: tlbip vaae1os, x0, x1
+// D128: tlbip vaae1os, x0, x1
+
+tlbip VALE1OS, x0, x1
+// TLBID: tlbip vale1os, x0, x1
+// D128: tlbip vale1os, x0, x1
+
+tlbip VAALE1OS, x0, x1
+// TLBID: tlbip vaale1os, x0, x1
+// D128: tlbip vaale1os, x0, x1
+
+tlbip RVAE1IS, x0, x1
+// TLBID: tlbip rvae1is, x0, x1
+// D128: tlbip rvae1is, x0, x1
+
+tlbip RVAAE1IS, x0, x1
+// TLBID: tlbip rvaae1is, x0, x1
+// D128: tlbip rvaae1is, x0, x1
+
+tlbip RVALE1IS, x0, x1
+// TLBID: tlbip rvale1is, x0, x1
+// D128: tlbip rvale1is, x0, x1
+
+tlbip RVAALE1IS, x0, x1
+// TLBID: tlbip rvaale1is, x0, x1
+// D128: tlbip rvaale1is, x0, x1
+
+tlbip VAE1IS, x0, x1
+// TLBID: tlbip vae1is, x0, x1
+// D128: tlbip vae1is, x0, x1
+
+tlbip VAAE1IS, x0, x1
+// TLBID: tlbip vaae1is, x0, x1
+// D128: tlbip vaae1is, x0, x1
+
+tlbip VALE1IS, x0, x1
+// TLBID: tlbip vale1is, x0, x1
+// D128: tlbip vale1is, x0, x1
+
+tlbip VAALE1IS, x0, x1
+// TLBID: tlbip vaale1is, x0, x1
+// D128: tlbip vaale1is, x0, x1
+
+tlbip RVAE1OS, x0, x1
+// TLBID: tlbip rvae1os, x0, x1
+// D128: tlbip rvae1os, x0, x1
+
+tlbip RVAAE1OS, x0, x1
+// TLBID: tlbip rvaae1os, x0, x1
+// D128: tlbip rvaae1os, x0, x1
+
+tlbip RVALE1OS, x0, x1
+// TLBID: tlbip rvale1os, x0, x1
+// D128: tlbip rvale1os, x0, x1
+
+tlbip RVAALE1OS, x0, x1
+// TLBID: tlbip rvaale1os, x0, x1
+// D128: tlbip rvaale1os, x0, x1
+
+tlbip VAE1OSNXS, x0, x1
+// TLBID: tlbip vae1osnxs, x0, x1
+// D128: tlbip vae1osnxs, x0, x1
+
+tlbip VAAE1OSNXS, x0, x1
+// TLBID: tlbip vaae1osnxs, x0, x1
+// D128: tlbip vaae1osnxs, x0, x1
+
+tlbip VALE1OSNXS, x0, x1
+// TLBID: tlbip vale1osnxs, x0, x1
+// D128: tlbip vale1osnxs, x0, x1
+
+tlbip VAALE1OSNXS, x0, x1
+// TLBID: tlbip vaale1osnxs, x0, x1
+// D128: tlbip vaale1osnxs, x0, x1
+
+tlbip RVAE1ISNXS, x0, x1
+// TLBID: tlbip rvae1isnxs, x0, x1
+// D128: tlbip rvae1isnxs, x0, x1
+
+tlbip RVAAE1ISNXS, x0, x1
+// TLBID: tlbip rvaae1isnxs, x0, x1
+// D128: tlbip rvaae1isnxs, x0, x1
+
+tlbip RVALE1ISNXS, x0, x1
+// TLBID: tlbip rvale1isnxs, x0, x1
+// D128: tlbip rvale1isnxs, x0, x1
+
+tlbip RVAALE1ISNXS, x0, x1
+// TLBID: tlbip rvaale1isnxs, x0, x1
+// D128: tlbip rvaale1isnxs, x0, x1
+
+tlbip VAE1ISNXS, x0, x1
+// TLBID: tlbip vae1isnxs, x0, x1
+// D128: tlbip vae1isnxs, x0, x1
+
+tlbip VAAE1ISNXS, x0, x1
+// TLBID: tlbip vaae1isnxs, x0, x1
+// D128: tlbip vaae1isnxs, x0, x1
+
+tlbip VALE1ISNXS, x0, x1
+// TLBID: tlbip vale1isnxs, x0, x1
+// D128: tlbip vale1isnxs, x0, x1
+
+tlbip VAALE1ISNXS, x0, x1
+// TLBID: tlbip vaale1isnxs, x0, x1
+// D128: tlbip vaale1isnxs, x0, x1
+
+tlbip RVAE1OSNXS, x0, x1
+// TLBID: tlbip rvae1osnxs, x0, x1
+// D128: tlbip rvae1osnxs, x0, x1
+
+tlbip RVAAE1OSNXS, x0, x1
+// TLBID: tlbip rvaae1osnxs, x0, x1
+// D128: tlbip rvaae1osnxs, x0, x1
+
+tlbip RVALE1OSNXS, x0, x1
+// TLBID: tlbip rvale1osnxs, x0, x1
+// D128: tlbip rvale1osnxs, x0, x1
+
+tlbip RVAALE1OSNXS, x0, x1
+// TLBID: tlbip rvaale1osnxs, x0, x1
+// D128: tlbip rvaale1osnxs, x0, x1
+
+tlbip IPAS2E1IS, x0, x1
+// TLBID: tlbip ipas2e1is, x0, x1
+// D128: tlbip ipas2e1is, x0, x1
+
+tlbip RIPAS2E1IS, x0, x1
+// TLBID: tlbip ripas2e1is, x0, x1
+// D128: tlbip ripas2e1is, x0, x1
+
+tlbip IPAS2LE1IS, x0, x1
+// TLBID: tlbip ipas2le1is, x0, x1
+// D128: tlbip ipas2le1is, x0, x1
+
+tlbip RIPAS2LE1IS, x0, x1
+// TLBID: tlbip ripas2le1is, x0, x1
+// D128: tlbip ripas2le1is, x0, x1
+
+tlbip VAE2OS, x0, x1
+// TLBID: tlbip vae2os, x0, x1
+// D128: tlbip vae2os, x0, x1
+
+tlbip VALE2OS, x0, x1
+// TLBID: tlbip vale2os, x0, x1
+// D128: tlbip vale2os, x0, x1
+
+tlbip RVAE2IS, x0, x1
+// TLBID: tlbip rvae2is, x0, x1
+// D128: tlbip rvae2is, x0, x1
+
+tlbip RVALE2IS, x0, x1
+// TLBID: tlbip rvale2is, x0, x1
+// D128: tlbip rvale2is, x0, x1
+
+tlbip VAE2IS, x0, x1
+// TLBID: tlbip vae2is, x0, x1
+// D128: tlbip vae2is, x0, x1
+
+tlbip VALE2IS, x0, x1
+// TLBID: tlbip vale2is, x0, x1
+// D128: tlbip vale2is, x0, x1
+
+tlbip IPAS2E1OS, x0, x1
+// TLBID: tlbip ipas2e1os, x0, x1
+// D128: tlbip ipas2e1os, x0, x1
+
+tlbip RIPAS2E1OS, x0, x1
+// TLBID: tlbip ripas2e1os, x0, x1
+// D128: tlbip ripas2e1os, x0, x1
+
+tlbip IPAS2LE1OS, x0, x1
+// TLBID: tlbip ipas2le1os, x0, x1
+// D128: tlbip ipas2le1os, x0, x1
+
+tlbip RIPAS2LE1OS, x0, x1
+// TLBID: tlbip ripas2le1os, x0, x1
+// D128: tlbip ripas2le1os, x0, x1
+
+tlbip RVAE2OS, x0, x1
+// TLBID: tlbip rvae2os, x0, x1
+// D128: tlbip rvae2os, x0, x1
+
+tlbip RVALE2OS, x0, x1
+// TLBID: tlbip rvale2os, x0, x1
+// D128: tlbip rvale2os, x0, x1
+
+tlbip IPAS2E1ISNXS, x0, x1
+// TLBID: tlbip ipas2e1isnxs, x0, x1
+// D128: tlbip ipas2e1isnxs, x0, x1
+
+tlbip RIPAS2E1ISNXS, x0, x1
+// TLBID: tlbip ripas2e1isnxs, x0, x1
+// D128: tlbip ripas2e1isnxs, x0, x1
+
+tlbip IPAS2LE1ISNXS, x0, x1
+// TLBID: tlbip ipas2le1isnxs, x0, x1
+// D128: tlbip ipas2le1isnxs, x0, x1
+
+tlbip RIPAS2LE1ISNXS, x0, x1
+// TLBID: tlbip ripas2le1isnxs, x0, x1
+// D128: tlbip ripas2le1isnxs, x0, x1
+
+tlbip VAE2OSNXS, x0, x1
+// TLBID: tlbip vae2osnxs, x0, x1
+// D128: tlbip vae2osnxs, x0, x1
+
+tlbip VALE2OSNXS, x0, x1
+// TLBID: tlbip vale2osnxs, x0, x1
+// D128: tlbip vale2osnxs, x0, x1
+
+tlbip RVAE2ISNXS, x0, x1
+// TLBID: tlbip rvae2isnxs, x0, x1
+// D128: tlbip rvae2isnxs, x0, x1
+
+tlbip RVALE2ISNXS, x0, x1
+// TLBID: tlbip rvale2isnxs, x0, x1
+// D128: tlbip rvale2isnxs, x0, x1
+
+tlbip VAE2ISNXS, x0, x1
+// TLBID: tlbip vae2isnxs, x0, x1
+// D128: tlbip vae2isnxs, x0, x1
+
+tlbip VALE2ISNXS, x0, x1
+// TLBID: tlbip vale2isnxs, x0, x1
+// D128: tlbip vale2isnxs, x0, x1
+
+tlbip IPAS2E1OSNXS, x0, x1
+// TLBID: tlbip ipas2e1osnxs, x0, x1
+// D128: tlbip ipas2e1osnxs, x0, x1
+
+tlbip RIPAS2E1OSNXS, x0, x1
+// TLBID: tlbip ripas2e1osnxs, x0, x1
+// D128: tlbip ripas2e1osnxs, x0, x1
+
+tlbip IPAS2LE1OSNXS, x0, x1
+// TLBID: tlbip ipas2le1osnxs, x0, x1
+// D128: tlbip ipas2le1osnxs, x0, x1
+
+tlbip RIPAS2LE1OSNXS, x0, x1
+// TLBID: tlbip ripas2le1osnxs, x0, x1
+// D128: tlbip ripas2le1osnxs, x0, x1
+
+tlbip RVAE2OSNXS, x0, x1
+// TLBID: tlbip rvae2osnxs, x0, x1
+// D128: tlbip rvae2osnxs, x0, x1
+
+tlbip RVALE2OSNXS, x0, x1
+// TLBID: tlbip rvale2osnxs, x0, x1
+// D128: tlbip rvale2osnxs, x0, x1

>From a572e600cde9cc6c3e82df26dc5ed2cee03eceee Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Thu, 19 Feb 2026 14:52:20 +0000
Subject: [PATCH 02/10] fixup! Simplify logic after suggestions from Marian

---
 .../AArch64/AsmParser/AArch64AsmParser.cpp    | 23 +++++++++++--------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
index 46d0fc1b5d9c3..d15ce5f82837f 100644
--- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -4262,21 +4262,24 @@ bool AArch64AsmParser::parseSyspAlias(StringRef Name, SMLoc NameLoc,
     if (!TLBIP)
       return TokError("invalid operand for TLBIP instruction");
 
-    if (!TLBIP.haveFeatures(getSTI().getFeatureBits())) {
+    if (!TLBIP->haveFeatures(getSTI().getFeatureBits())) {
+      std::string Str("instruction requires: ");
       FeatureBitset Active = getSTI().getFeatureBits();
-      FeatureBitset Missing = TLBIP.getRequiredFeatures() & ~Active;
-      if (TLBIP.allowTLBID()) {
+      FeatureBitset Missing = TLBIP->getRequiredFeatures() & ~Active;
+      bool HasEither =
+          Active[AArch64::FeatureD128] || Active[AArch64::FeatureTLBID];
+      bool NeedOrTLBID = TLBIP->allowTLBID() && !HasEither;
+      if (TLBIP->allowTLBID()) {
         Missing.reset(AArch64::FeatureD128);
         Missing.reset(AArch64::FeatureTLBID);
-        if (!Active[AArch64::FeatureD128] && !Active[AArch64::FeatureTLBID]) {
-          if (Missing.none())
-            return TokError("instruction requires: tlbid or d128");
-          Missing.set(AArch64::FeatureD128);
-          Missing.set(AArch64::FeatureTLBID);
-        }
       }
-      std::string Str("instruction requires: ");
+      if (Missing.none()) {
+        Str += "tlbid or d128";
+        return TokError(Str);
+      }
       setRequiredFeatureString(Missing, Str);
+      if (NeedOrTLBID)
+        Str += ", tlbid or d128";
       return TokError(Str);
     }
     createSysAlias(TLBIP->Encoding, Operands, S);

>From 41d452d38855a6e969ac04ae2c2959e84a4db0fb Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Tue, 24 Feb 2026 16:59:55 +0000
Subject: [PATCH 03/10] fixup! Don't use ExtraRequires. Instead, set a boolean
 in TLBITableBase

---
 .../Target/AArch64/AArch64SystemOperands.td   | 18 ++++++-
 .../AArch64/AsmParser/AArch64AsmParser.cpp    | 14 +++---
 .../Target/AArch64/Utils/AArch64BaseInfo.h    | 49 ++++++++++---------
 3 files changed, 51 insertions(+), 30 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AArch64SystemOperands.td b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
index b3f03f9ea0c02..f9f35b3954b23 100644
--- a/llvm/lib/Target/AArch64/AArch64SystemOperands.td
+++ b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
@@ -899,7 +899,23 @@ multiclass TLBITableBase {
 }
 
 defm TLBI  : TLBITableBase;
-defm TLBIP : TLBITableBase;
+
+multiclass TLBIPTableBase {
+  def NAME # Table : GenericTable {
+    let FilterClass = NAME # "Entry";
+    let CppTypeName = NAME;
+    let Fields = ["Name", "Encoding", "NeedsReg", "OptionalReg", "RequiresStr",
+                  "d128orTLBID"];
+    let PrimaryKey = ["Encoding"];
+    let PrimaryKeyName = "lookup" # NAME # "ByEncoding";
+  }
+  def lookup # NAME # ByName : SearchIndex {
+    let Table = !cast<GenericTable>(NAME # "Table");
+    let Key = ["Name"];
+  }
+}
+
+defm TLBIP : TLBIPTableBase;
 
 class TLBI<string name, bits<3> op1, bits<4> crm, bits<3> op2,
            RegValue reguse, bit hasTLBIP = 0> {
diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
index d15ce5f82837f..c871e16716ab5 100644
--- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -4263,16 +4263,16 @@ bool AArch64AsmParser::parseSyspAlias(StringRef Name, SMLoc NameLoc,
       return TokError("invalid operand for TLBIP instruction");
 
     if (!TLBIP->haveFeatures(getSTI().getFeatureBits())) {
-      std::string Str("instruction requires: ");
       FeatureBitset Active = getSTI().getFeatureBits();
       FeatureBitset Missing = TLBIP->getRequiredFeatures() & ~Active;
-      bool HasEither =
-          Active[AArch64::FeatureD128] || Active[AArch64::FeatureTLBID];
-      bool NeedOrTLBID = TLBIP->allowTLBID() && !HasEither;
-      if (TLBIP->allowTLBID()) {
-        Missing.reset(AArch64::FeatureD128);
-        Missing.reset(AArch64::FeatureTLBID);
+      bool NeedOrTLBID = false;
+
+      if (TLBIP->d128orTLBID) {
+        Missing &= ~AArch64TLBIP::TLBIP::D128OrTLBIDMask;
+        NeedOrTLBID =
+            !(Active[AArch64::FeatureD128] || Active[AArch64::FeatureTLBID]);
       }
+      std::string Str("instruction requires: ");
       if (Missing.none()) {
         Str += "tlbid or d128";
         return TokError(Str);
diff --git a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
index 65fd245ad2d7f..1f7d7ec5b7b21 100644
--- a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+++ b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
@@ -455,6 +455,31 @@ struct SysAliasOptionalReg : SysAlias {
       : SysAlias(N, E, F), RegUse(R) {}
 };
 
+struct TLBIPSysAlias : SysAliasOptionalReg {
+  bool d128orTLBID;
+  inline static const FeatureBitset D128OrTLBIDMask =
+      FeatureBitset({llvm::AArch64::FeatureD128, llvm::AArch64::FeatureTLBID});
+
+  constexpr TLBIPSysAlias(const char *N, uint16_t E, bool R, bool O,
+                          FeatureBitset F, bool D128OrTLBID)
+      : SysAliasOptionalReg(N, E, R, O, F), d128orTLBID(D128OrTLBID) {}
+
+  bool allowTLBID() const { return d128orTLBID; }
+
+  bool haveFeatures(FeatureBitset ActiveFeatures) const {
+    if (ActiveFeatures[llvm::AArch64::FeatureAll])
+      return true;
+
+    FeatureBitset Required = FeaturesRequired;
+    if (d128orTLBID)
+      Required &= ~D128OrTLBIDMask;
+
+    return (Required & ActiveFeatures) == Required &&
+           (!d128orTLBID || ActiveFeatures[llvm::AArch64::FeatureD128] ||
+            ActiveFeatures[llvm::AArch64::FeatureTLBID]);
+  }
+};
+
 struct SysAliasImm : SysAlias {
   uint16_t ImmValue;
   constexpr SysAliasImm(const char *N, uint16_t E, uint16_t I)
@@ -858,28 +883,8 @@ struct TLBI : SysAliasOptionalReg {
 }
 
 namespace AArch64TLBIP {
-struct TLBIP : SysAliasOptionalReg {
-  using SysAliasOptionalReg::SysAliasOptionalReg;
-
-  bool allowTLBID() const {
-    return FeaturesRequired[llvm::AArch64::FeatureTLBID];
-  }
-
-  bool haveFeatures(FeatureBitset ActiveFeatures) const {
-    if (ActiveFeatures[llvm::AArch64::FeatureAll])
-      return true;
-
-    FeatureBitset Required = FeaturesRequired;
-    if (allowTLBID()) {
-      Required.reset(llvm::AArch64::FeatureD128);
-      Required.reset(llvm::AArch64::FeatureTLBID);
-      return (Required & ActiveFeatures) == Required &&
-             (ActiveFeatures[llvm::AArch64::FeatureD128] ||
-              ActiveFeatures[llvm::AArch64::FeatureTLBID]);
-    }
-
-    return (Required & ActiveFeatures) == Required;
-  }
+struct TLBIP : TLBIPSysAlias {
+  using TLBIPSysAlias::TLBIPSysAlias;
 };
 #define GET_TLBIPTable_DECL
 #include "AArch64GenSystemOperands.inc"

>From ce277ba4e97169489bd5eab1a7e7c7502fafa5eb Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Thu, 5 Mar 2026 12:15:03 +0000
Subject: [PATCH 04/10] fixup! Fix using Marian's suggestion

---
 llvm/test/MC/AArch64/armv9a-tlbip.s        | 160 +++++++++++++
 llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s | 259 ---------------------
 2 files changed, 160 insertions(+), 259 deletions(-)
 delete mode 100644 llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s

diff --git a/llvm/test/MC/AArch64/armv9a-tlbip.s b/llvm/test/MC/AArch64/armv9a-tlbip.s
index 9bea3b955efdb..d77bdcaef195d 100644
--- a/llvm/test/MC/AArch64/armv9a-tlbip.s
+++ b/llvm/test/MC/AArch64/armv9a-tlbip.s
@@ -12,736 +12,896 @@
 // RUN:        | llvm-mc -triple=aarch64 -mattr=+d128 -disassemble -show-encoding \
 // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
 
+// Only check assembly with +tlbid for instructions that match tlbip *e{1,2}[io]s*
+// Errors (for when +tlbid is not allowed) are checked in CHECK-NOT-TLBID
+.ifndef TLBID_ONLY
+  .set TLBID_ONLY, 0
+.endif
+
 // +d128 required for tlbip
 
+.if !TLBID_ONLY
 tlbip IPAS2E1, x4, x5
 // CHECK-INST: tlbip ipas2e1, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x84,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c8424 sysp #4, c8, c4, #1, x4, x5
 
 tlbip IPAS2E1NXS, x4, x5
 // CHECK-INST: tlbip ipas2e1nxs, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x94,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c9424 sysp #4, c9, c4, #1, x4, x5
+.endif
 
 tlbip IPAS2E1IS, x4, x5
 // CHECK-INST: tlbip ipas2e1is, x4, x5
+// CHECK-TLBID: tlbip ipas2e1is, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x80,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8024 sysp #4, c8, c0, #1, x4, x5
 
 tlbip IPAS2E1ISNXS, x4, x5
 // CHECK-INST: tlbip ipas2e1isnxs, x4, x5
+// CHECK-TLBID: tlbip ipas2e1isnxs, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x90,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9024 sysp #4, c9, c0, #1, x4, x5
 
 tlbip IPAS2E1OS, x4, x5
 // CHECK-INST: tlbip ipas2e1os, x4, x5
+// CHECK-TLBID: tlbip ipas2e1os, x4, x5
 // CHECK-ENCODING: encoding: [0x04,0x84,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8404 sysp #4, c8, c4, #0, x4, x5
 
 tlbip IPAS2E1OSNXS, x4, x5
 // CHECK-INST: tlbip ipas2e1osnxs, x4, x5
+// CHECK-TLBID: tlbip ipas2e1osnxs, x4, x5
 // CHECK-ENCODING: encoding: [0x04,0x94,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9404 sysp #4, c9, c4, #0, x4, x5
 
+.if !TLBID_ONLY
 tlbip IPAS2LE1, x4, x5
 // CHECK-INST: tlbip ipas2le1, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x84,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c84a4 sysp #4, c8, c4, #5, x4, x5
 
 tlbip IPAS2LE1NXS, x4, x5
 // CHECK-INST: tlbip ipas2le1nxs, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x94,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c94a4 sysp #4, c9, c4, #5, x4, x5
+.endif
 
 tlbip IPAS2LE1IS, x4, x5
 // CHECK-INST: tlbip ipas2le1is, x4, x5
+// CHECK-TLBID: tlbip ipas2le1is, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x80,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c80a4 sysp #4, c8, c0, #5, x4, x5
 
 tlbip IPAS2LE1ISNXS, x4, x5
 // CHECK-INST: tlbip ipas2le1isnxs, x4, x5
+// CHECK-TLBID: tlbip ipas2le1isnxs, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x90,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c90a4 sysp #4, c9, c0, #5, x4, x5
 
 tlbip IPAS2LE1OS, x4, x5
 // CHECK-INST: tlbip ipas2le1os, x4, x5
+// CHECK-TLBID: tlbip ipas2le1os, x4, x5
 // CHECK-ENCODING: encoding: [0x84,0x84,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8484 sysp #4, c8, c4, #4, x4, x5
 
 tlbip IPAS2LE1OSNXS, x4, x5
 // CHECK-INST: tlbip ipas2le1osnxs, x4, x5
+// CHECK-TLBID: tlbip ipas2le1osnxs, x4, x5
 // CHECK-ENCODING: encoding: [0x84,0x94,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9484 sysp #4, c9, c4, #4, x4, x5
 
+.if !TLBID_ONLY
 tlbip VAE1, x8, x9
 // CHECK-INST: tlbip vae1, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x87,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5488728 sysp #0, c8, c7, #1, x8, x9
 
 tlbip VAE1NXS, x8, x9
 // CHECK-INST: tlbip vae1nxs, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x97,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489728 sysp #0, c9, c7, #1, x8, x9
+.endif
 
 tlbip VAE1IS, x8, x9
 // CHECK-INST: tlbip vae1is, x8, x9
+// CHECK-TLBID: tlbip vae1is, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x83,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488328 sysp #0, c8, c3, #1, x8, x9
 
 tlbip VAE1ISNXS, x8, x9
 // CHECK-INST: tlbip vae1isnxs, x8, x9
+// CHECK-TLBID: tlbip vae1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x93,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489328 sysp #0, c9, c3, #1, x8, x9
 
 tlbip VAE1OS, x8, x9
 // CHECK-INST: tlbip vae1os, x8, x9
+// CHECK-TLBID: tlbip vae1os, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x81,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488128 sysp #0, c8, c1, #1, x8, x9
 
 tlbip VAE1OSNXS, x8, x9
 // CHECK-INST: tlbip vae1osnxs, x8, x9
+// CHECK-TLBID: tlbip vae1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x91,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489128 sysp #0, c9, c1, #1, x8, x9
 
+.if !TLBID_ONLY
 tlbip VALE1, x8, x9
 // CHECK-INST: tlbip vale1, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x87,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54887a8 sysp #0, c8, c7, #5, x8, x9
 
 tlbip VALE1NXS, x8, x9
 // CHECK-INST: tlbip vale1nxs, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x97,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54897a8 sysp #0, c9, c7, #5, x8, x9
+.endif
 
 tlbip VALE1IS, x8, x9
 // CHECK-INST: tlbip vale1is, x8, x9
+// CHECK-TLBID: tlbip vale1is, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x83,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54883a8 sysp #0, c8, c3, #5, x8, x9
 
 tlbip VALE1ISNXS, x8, x9
 // CHECK-INST: tlbip vale1isnxs, x8, x9
+// CHECK-TLBID: tlbip vale1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x93,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54893a8 sysp #0, c9, c3, #5, x8, x9
 
 tlbip VALE1OS, x8, x9
 // CHECK-INST: tlbip vale1os, x8, x9
+// CHECK-TLBID: tlbip vale1os, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x81,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54881a8 sysp #0, c8, c1, #5, x8, x9
 
 tlbip VALE1OSNXS, x8, x9
 // CHECK-INST: tlbip vale1osnxs, x8, x9
+// CHECK-TLBID: tlbip vale1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x91,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54891a8 sysp #0, c9, c1, #5, x8, x9
 
+.if !TLBID_ONLY
 tlbip VAAE1, x8, x9
 // CHECK-INST: tlbip vaae1, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x87,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5488768 sysp #0, c8, c7, #3, x8, x9
 
 tlbip VAAE1NXS, x8, x9
 // CHECK-INST: tlbip vaae1nxs, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x97,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489768 sysp #0, c9, c7, #3, x8, x9
+.endif
 
 tlbip VAAE1IS, x8, x9
 // CHECK-INST: tlbip vaae1is, x8, x9
+// CHECK-TLBID: tlbip vaae1is, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x83,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488368 sysp #0, c8, c3, #3, x8, x9
 
 tlbip VAAE1ISNXS, x8, x9
 // CHECK-INST: tlbip vaae1isnxs, x8, x9
+// CHECK-TLBID: tlbip vaae1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x93,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489368 sysp #0, c9, c3, #3, x8, x9
 
 tlbip VAAE1OS, x8, x9
 // CHECK-INST: tlbip vaae1os, x8, x9
+// CHECK-TLBID: tlbip vaae1os, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x81,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488168 sysp #0, c8, c1, #3, x8, x9
 
 tlbip VAAE1OSNXS, x8, x9
 // CHECK-INST: tlbip vaae1osnxs, x8, x9
+// CHECK-TLBID: tlbip vaae1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x91,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489168 sysp #0, c9, c1, #3, x8, x9
 
+.if !TLBID_ONLY
 tlbip VAALE1, x8, x9
 // CHECK-INST: tlbip vaale1, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x87,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54887e8 sysp #0, c8, c7, #7, x8, x9
 
 tlbip VAALE1NXS, x8, x9
 // CHECK-INST: tlbip vaale1nxs, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x97,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54897e8 sysp #0, c9, c7, #7, x8, x9
+.endif
 
 tlbip VAALE1IS, x8, x9
 // CHECK-INST: tlbip vaale1is, x8, x9
+// CHECK-TLBID: tlbip vaale1is, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x83,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54883e8 sysp #0, c8, c3, #7, x8, x9
 
 tlbip VAALE1ISNXS, x8, x9
 // CHECK-INST: tlbip vaale1isnxs, x8, x9
+// CHECK-TLBID: tlbip vaale1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x93,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54893e8 sysp #0, c9, c3, #7, x8, x9
 
 tlbip VAALE1OS, x8, x9
 // CHECK-INST: tlbip vaale1os, x8, x9
+// CHECK-TLBID: tlbip vaale1os, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x81,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54881e8 sysp #0, c8, c1, #7, x8, x9
 
 tlbip VAALE1OSNXS, x8, x9
 // CHECK-INST: tlbip vaale1osnxs, x8, x9
+// CHECK-TLBID: tlbip vaale1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x91,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54891e8 sysp #0, c9, c1, #7, x8, x9
 
+.if !TLBID_ONLY
 tlbip VAE2, x14, x15
 // CHECK-INST: tlbip vae2, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x87,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c872e sysp #4, c8, c7, #1, x14, x15
 
 tlbip VAE2NXS, x14, x15
 // CHECK-INST: tlbip vae2nxs, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x97,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c972e sysp #4, c9, c7, #1, x14, x15
+.endif
 
 tlbip VAE2IS, x14, x15
 // CHECK-INST: tlbip vae2is, x14, x15
+// CHECK-TLBID: tlbip vae2is, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x83,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c832e sysp #4, c8, c3, #1, x14, x15
 
 tlbip VAE2ISNXS, x14, x15
 // CHECK-INST: tlbip vae2isnxs, x14, x15
+// CHECK-TLBID: tlbip vae2isnxs, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x93,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c932e sysp #4, c9, c3, #1, x14, x15
 
 tlbip VAE2OS, x14, x15
 // CHECK-INST: tlbip vae2os, x14, x15
+// CHECK-TLBID: tlbip vae2os, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x81,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c812e sysp #4, c8, c1, #1, x14, x15
 
 tlbip VAE2OSNXS, x14, x15
 // CHECK-INST: tlbip vae2osnxs, x14, x15
+// CHECK-TLBID: tlbip vae2osnxs, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x91,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c912e sysp #4, c9, c1, #1, x14, x15
 
+.if !TLBID_ONLY
 tlbip VALE2, x14, x15
 // CHECK-INST: tlbip vale2, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x87,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c87ae sysp #4, c8, c7, #5, x14, x15
 
 tlbip VALE2NXS, x14, x15
 // CHECK-INST: tlbip vale2nxs, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x97,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c97ae sysp #4, c9, c7, #5, x14, x15
+.endif
 
 tlbip VALE2IS, x14, x15
 // CHECK-INST: tlbip vale2is, x14, x15
+// CHECK-TLBID: tlbip vale2is, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x83,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c83ae sysp #4, c8, c3, #5, x14, x15
 
 tlbip VALE2ISNXS, x14, x15
 // CHECK-INST: tlbip vale2isnxs, x14, x15
+// CHECK-TLBID: tlbip vale2isnxs, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x93,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c93ae sysp #4, c9, c3, #5, x14, x15
 
 tlbip VALE2OS, x14, x15
 // CHECK-INST: tlbip vale2os, x14, x15
+// CHECK-TLBID: tlbip vale2os, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x81,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c81ae sysp #4, c8, c1, #5, x14, x15
 
 tlbip VALE2OSNXS, x14, x15
 // CHECK-INST: tlbip vale2osnxs, x14, x15
+// CHECK-TLBID: tlbip vale2osnxs, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x91,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c91ae sysp #4, c9, c1, #5, x14, x15
 
+.if !TLBID_ONLY
 tlbip VAE3, x24, x25
 // CHECK-INST: tlbip vae3, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x87,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e8738 sysp #6, c8, c7, #1, x24, x25
 
 tlbip VAE3NXS, x24, x25
 // CHECK-INST: tlbip vae3nxs, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x97,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e9738 sysp #6, c9, c7, #1, x24, x25
 
 tlbip VAE3IS, x24, x25
 // CHECK-INST: tlbip vae3is, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x83,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e8338 sysp #6, c8, c3, #1, x24, x25
 
 tlbip VAE3ISNXS, x24, x25
 // CHECK-INST: tlbip vae3isnxs, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x93,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e9338 sysp #6, c9, c3, #1, x24, x25
 
 tlbip VAE3OS, x24, x25
 // CHECK-INST: tlbip vae3os, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x81,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e8138 sysp #6, c8, c1, #1, x24, x25
 
 tlbip VAE3OSNXS, x24, x25
 // CHECK-INST: tlbip vae3osnxs, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x91,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e9138 sysp #6, c9, c1, #1, x24, x25
 
 tlbip VALE3, x24, x25
 // CHECK-INST: tlbip vale3, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x87,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e87b8 sysp #6, c8, c7, #5, x24, x25
 
 tlbip VALE3NXS, x24, x25
 // CHECK-INST: tlbip vale3nxs, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x97,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e97b8 sysp #6, c9, c7, #5, x24, x25
 
 tlbip VALE3IS, x24, x25
 // CHECK-INST: tlbip vale3is, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x83,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e83b8 sysp #6, c8, c3, #5, x24, x25
 
 tlbip VALE3ISNXS, x24, x25
 // CHECK-INST: tlbip vale3isnxs, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x93,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e93b8 sysp #6, c9, c3, #5, x24, x25
 
 tlbip VALE3OS, x24, x25
 // CHECK-INST: tlbip vale3os, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x81,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e81b8 sysp #6, c8, c1, #5, x24, x25
 
 tlbip VALE3OSNXS, x24, x25
 // CHECK-INST: tlbip vale3osnxs, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x91,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e91b8 sysp #6, c9, c1, #5, x24, x25
 
 tlbip RVAE1, x18, x19
 // CHECK-INST: tlbip rvae1, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x86,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5488632 sysp #0, c8, c6, #1, x18, x19
 
 tlbip RVAE1NXS, x18, x19
 // CHECK-INST: tlbip rvae1nxs, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x96,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489632 sysp #0, c9, c6, #1, x18, x19
+.endif
 
 tlbip RVAE1IS, x18, x19
 // CHECK-INST: tlbip rvae1is, x18, x19
+// CHECK-TLBID: tlbip rvae1is, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x82,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488232 sysp #0, c8, c2, #1, x18, x19
 
 tlbip RVAE1ISNXS, x18, x19
 // CHECK-INST: tlbip rvae1isnxs, x18, x19
+// CHECK-TLBID: tlbip rvae1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x92,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489232 sysp #0, c9, c2, #1, x18, x19
 
 tlbip RVAE1OS, x18, x19
 // CHECK-INST: tlbip rvae1os, x18, x19
+// CHECK-TLBID: tlbip rvae1os, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x85,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488532 sysp #0, c8, c5, #1, x18, x19
 
 tlbip RVAE1OSNXS, x18, x19
 // CHECK-INST: tlbip rvae1osnxs, x18, x19
+// CHECK-TLBID: tlbip rvae1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x95,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489532 sysp #0, c9, c5, #1, x18, x19
 
+.if !TLBID_ONLY
 tlbip RVAAE1, x18, x19
 // CHECK-INST: tlbip rvaae1, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x86,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5488672 sysp #0, c8, c6, #3, x18, x19
 
 tlbip RVAAE1NXS, x18, x19
 // CHECK-INST: tlbip rvaae1nxs, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x96,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489672 sysp #0, c9, c6, #3, x18, x19
+.endif
 
 tlbip RVAAE1IS, x18, x19
 // CHECK-INST: tlbip rvaae1is, x18, x19
+// CHECK-TLBID: tlbip rvaae1is, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x82,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488272 sysp #0, c8, c2, #3, x18, x19
 
 tlbip RVAAE1ISNXS, x18, x19
 // CHECK-INST: tlbip rvaae1isnxs, x18, x19
+// CHECK-TLBID: tlbip rvaae1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x92,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489272 sysp #0, c9, c2, #3, x18, x19
 
 tlbip RVAAE1OS, x18, x19
 // CHECK-INST: tlbip rvaae1os, x18, x19
+// CHECK-TLBID: tlbip rvaae1os, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x85,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488572 sysp #0, c8, c5, #3, x18, x19
 
 tlbip RVAAE1OSNXS, x18, x19
 // CHECK-INST: tlbip rvaae1osnxs, x18, x19
+// CHECK-TLBID: tlbip rvaae1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x95,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489572 sysp #0, c9, c5, #3, x18, x19
 
+.if !TLBID_ONLY
 tlbip RVALE1, x18, x19
 // CHECK-INST: tlbip rvale1, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x86,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54886b2 sysp #0, c8, c6, #5, x18, x19
 
 tlbip RVALE1NXS, x18, x19
 // CHECK-INST: tlbip rvale1nxs, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x96,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54896b2 sysp #0, c9, c6, #5, x18, x19
+.endif
 
 tlbip RVALE1IS, x18, x19
 // CHECK-INST: tlbip rvale1is, x18, x19
+// CHECK-TLBID: tlbip rvale1is, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x82,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54882b2 sysp #0, c8, c2, #5, x18, x19
 
 tlbip RVALE1ISNXS, x18, x19
 // CHECK-INST: tlbip rvale1isnxs, x18, x19
+// CHECK-TLBID: tlbip rvale1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x92,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54892b2 sysp #0, c9, c2, #5, x18, x19
 
 tlbip RVALE1OS, x18, x19
 // CHECK-INST: tlbip rvale1os, x18, x19
+// CHECK-TLBID: tlbip rvale1os, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x85,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54885b2 sysp #0, c8, c5, #5, x18, x19
 
 tlbip RVALE1OSNXS, x18, x19
 // CHECK-INST: tlbip rvale1osnxs, x18, x19
+// CHECK-TLBID: tlbip rvale1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x95,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54895b2 sysp #0, c9, c5, #5, x18, x19
 
+.if !TLBID_ONLY
 tlbip RVAALE1, x18, x19
 // CHECK-INST: tlbip rvaale1, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x86,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54886f2 sysp #0, c8, c6, #7, x18, x19
 
 tlbip RVAALE1NXS, x18, x19
 // CHECK-INST: tlbip rvaale1nxs, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x96,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54896f2 sysp #0, c9, c6, #7, x18, x19
+.endif
 
 tlbip RVAALE1IS, x18, x19
 // CHECK-INST: tlbip rvaale1is, x18, x19
+// CHECK-TLBID: tlbip rvaale1is, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x82,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54882f2 sysp #0, c8, c2, #7, x18, x19
 
 tlbip RVAALE1ISNXS, x18, x19
 // CHECK-INST: tlbip rvaale1isnxs, x18, x19
+// CHECK-TLBID: tlbip rvaale1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x92,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54892f2 sysp #0, c9, c2, #7, x18, x19
 
 tlbip RVAALE1OS, x18, x19
 // CHECK-INST: tlbip rvaale1os, x18, x19
+// CHECK-TLBID: tlbip rvaale1os, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x85,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54885f2 sysp #0, c8, c5, #7, x18, x19
 
 tlbip RVAALE1OSNXS, x18, x19
 // CHECK-INST: tlbip rvaale1osnxs, x18, x19
+// CHECK-TLBID: tlbip rvaale1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x95,0x48,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54895f2 sysp #0, c9, c5, #7, x18, x19
 
+.if !TLBID_ONLY
 tlbip RVAE2, x28, x29
 // CHECK-INST: tlbip rvae2, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x86,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c863c sysp #4, c8, c6, #1, x28, x29
 
 tlbip RVAE2NXS, x28, x29
 // CHECK-INST: tlbip rvae2nxs, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x96,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c963c sysp #4, c9, c6, #1, x28, x29
+.endif
 
 tlbip RVAE2IS, x28, x29
 // CHECK-INST: tlbip rvae2is, x28, x29
+// CHECK-TLBID: tlbip rvae2is, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x82,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c823c sysp #4, c8, c2, #1, x28, x29
 
 tlbip RVAE2ISNXS, x28, x29
 // CHECK-INST: tlbip rvae2isnxs, x28, x29
+// CHECK-TLBID: tlbip rvae2isnxs, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x92,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c923c sysp #4, c9, c2, #1, x28, x29
 
 tlbip RVAE2OS, x28, x29
 // CHECK-INST: tlbip rvae2os, x28, x29
+// CHECK-TLBID: tlbip rvae2os, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x85,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c853c sysp #4, c8, c5, #1, x28, x29
 
 tlbip RVAE2OSNXS, x28, x29
 // CHECK-INST: tlbip rvae2osnxs, x28, x29
+// CHECK-TLBID: tlbip rvae2osnxs, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x95,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c953c sysp #4, c9, c5, #1, x28, x29
 
+.if !TLBID_ONLY
 tlbip RVALE2, x28, x29
 // CHECK-INST: tlbip rvale2, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x86,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c86bc sysp #4, c8, c6, #5, x28, x29
 
 tlbip RVALE2NXS, x28, x29
 // CHECK-INST: tlbip rvale2nxs, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x96,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c96bc sysp #4, c9, c6, #5, x28, x29
+.endif
 
 tlbip RVALE2IS, x28, x29
 // CHECK-INST: tlbip rvale2is, x28, x29
+// CHECK-TLBID: tlbip rvale2is, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x82,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c82bc sysp #4, c8, c2, #5, x28, x29
 
 tlbip RVALE2ISNXS, x28, x29
 // CHECK-INST: tlbip rvale2isnxs, x28, x29
+// CHECK-TLBID: tlbip rvale2isnxs, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x92,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c92bc sysp #4, c9, c2, #5, x28, x29
 
 tlbip RVALE2OS, x28, x29
 // CHECK-INST: tlbip rvale2os, x28, x29
+// CHECK-TLBID: tlbip rvale2os, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x85,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c85bc sysp #4, c8, c5, #5, x28, x29
 
 tlbip RVALE2OSNXS, x28, x29
 // CHECK-INST: tlbip rvale2osnxs, x28, x29
+// CHECK-TLBID: tlbip rvale2osnxs, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x95,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c95bc sysp #4, c9, c5, #5, x28, x29
 
+.if !TLBID_ONLY
 tlbip RVAE3, x10, x11
 // CHECK-INST: tlbip rvae3, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x86,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e862a sysp #6, c8, c6, #1, x10, x11
 
 tlbip RVAE3NXS, x10, x11
 // CHECK-INST: tlbip rvae3nxs, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x96,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e962a sysp #6, c9, c6, #1, x10, x11
 
 tlbip RVAE3IS, x10, x11
 // CHECK-INST: tlbip rvae3is, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x82,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e822a sysp #6, c8, c2, #1, x10, x11
 
 tlbip RVAE3ISNXS, x10, x11
 // CHECK-INST: tlbip rvae3isnxs, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x92,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e922a sysp #6, c9, c2, #1, x10, x11
 
 tlbip RVAE3OS, x10, x11
 // CHECK-INST: tlbip rvae3os, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x85,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e852a sysp #6, c8, c5, #1, x10, x11
 
 tlbip RVAE3OSNXS, x10, x11
 // CHECK-INST: tlbip rvae3osnxs, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x95,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e952a sysp #6, c9, c5, #1, x10, x11
 
 tlbip RVALE3, x10, x11
 // CHECK-INST: tlbip rvale3, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x86,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e86aa sysp #6, c8, c6, #5, x10, x11
 
 tlbip RVALE3NXS, x10, x11
 // CHECK-INST: tlbip rvale3nxs, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x96,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e96aa sysp #6, c9, c6, #5, x10, x11
 
 tlbip RVALE3IS, x10, x11
 // CHECK-INST: tlbip rvale3is, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x82,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e82aa sysp #6, c8, c2, #5, x10, x11
 
 tlbip RVALE3ISNXS, x10, x11
 // CHECK-INST: tlbip rvale3isnxs, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x92,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e92aa sysp #6, c9, c2, #5, x10, x11
 
 tlbip RVALE3OS, x10, x11
 // CHECK-INST: tlbip rvale3os, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x85,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e85aa sysp #6, c8, c5, #5, x10, x11
 
 tlbip RVALE3OSNXS, x10, x11
 // CHECK-INST: tlbip rvale3osnxs, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x95,0x4e,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e95aa sysp #6, c9, c5, #5, x10, x11
 
 tlbip RIPAS2E1, x20, x21
 // CHECK-INST: tlbip ripas2e1, x20, x21
 // CHECK-ENCODING: encoding: [0x54,0x84,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c8454 sysp #4, c8, c4, #2, x20, x21
 
 tlbip RIPAS2E1NXS, x20, x21
 // CHECK-INST: tlbip ripas2e1nxs, x20, x21
 // CHECK-ENCODING: encoding: [0x54,0x94,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c9454 sysp #4, c9, c4, #2, x20, x21
+.endif
 
 tlbip RIPAS2E1IS, x20, x21
 // CHECK-INST: tlbip ripas2e1is, x20, x21
+// CHECK-TLBID: tlbip ripas2e1is, x20, x21
 // CHECK-ENCODING: encoding: [0x54,0x80,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8054 sysp #4, c8, c0, #2, x20, x21
 
 tlbip RIPAS2E1ISNXS, x20, x21
 // CHECK-INST: tlbip ripas2e1isnxs, x20, x21
+// CHECK-TLBID: tlbip ripas2e1isnxs, x20, x21
 // CHECK-ENCODING: encoding: [0x54,0x90,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9054 sysp #4, c9, c0, #2, x20, x21
 
 tlbip RIPAS2E1OS, x20, x21
 // CHECK-INST: tlbip ripas2e1os, x20, x21
+// CHECK-TLBID: tlbip ripas2e1os, x20, x21
 // CHECK-ENCODING: encoding: [0x74,0x84,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8474 sysp #4, c8, c4, #3, x20, x21
 
 tlbip RIPAS2E1OSNXS, x20, x21
 // CHECK-INST: tlbip ripas2e1osnxs, x20, x21
+// CHECK-TLBID: tlbip ripas2e1osnxs, x20, x21
 // CHECK-ENCODING: encoding: [0x74,0x94,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9474 sysp #4, c9, c4, #3, x20, x21
 
+.if !TLBID_ONLY
 tlbip RIPAS2LE1, x20, x21
 // CHECK-INST: tlbip ripas2le1, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x84,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c84d4 sysp #4, c8, c4, #6, x20, x21
 
 tlbip RIPAS2LE1NXS, x20, x21
 // CHECK-INST: tlbip ripas2le1nxs, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x94,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: d128
+// CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c94d4 sysp #4, c9, c4, #6, x20, x21
+.endif
 
 tlbip RIPAS2LE1IS, x20, x21
 // CHECK-INST: tlbip ripas2le1is, x20, x21
+// CHECK-TLBID: tlbip ripas2le1is, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x80,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c80d4 sysp #4, c8, c0, #6, x20, x21
 
 tlbip RIPAS2LE1ISNXS, x20, x21
 // CHECK-INST: tlbip ripas2le1isnxs, x20, x21
+// CHECK-TLBID: tlbip ripas2le1isnxs, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x90,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c90d4 sysp #4, c9, c0, #6, x20, x21
 
 tlbip RIPAS2LE1OS, x20, x21
 // CHECK-INST: tlbip ripas2le1os, x20, x21
+// CHECK-TLBID: tlbip ripas2le1os, x20, x21
 // CHECK-ENCODING: encoding: [0xf4,0x84,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c84f4 sysp #4, c8, c4, #7, x20, x21
 
 tlbip RIPAS2LE1OSNXS, x20, x21
 // CHECK-INST: tlbip ripas2le1osnxs, x20, x21
+// CHECK-TLBID: tlbip ripas2le1osnxs, x20, x21
 // CHECK-ENCODING: encoding: [0xf4,0x94,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c94f4 sysp #4, c9, c4, #7, x20, x21
 
 tlbip RIPAS2LE1OS, xzr, xzr
 // CHECK-INST: tlbip ripas2le1os, xzr, xzr
+// CHECK-TLBID: tlbip ripas2le1os, xzr, xzr
 // CHECK-ENCODING: encoding: [0xff,0x84,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c84ff sysp #4, c8, c4, #7
 
 tlbip RIPAS2LE1OSNXS, xzr, xzr
 // CHECK-INST: tlbip ripas2le1osnxs, xzr, xzr
+// CHECK-TLBID: tlbip ripas2le1osnxs, xzr, xzr
 // CHECK-ENCODING: encoding: [0xff,0x94,0x4c,0xd5]
 // CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c94ff sysp #4, c9, c4, #7
diff --git a/llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s b/llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s
deleted file mode 100644
index 0361fbcc73d4b..0000000000000
--- a/llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s
+++ /dev/null
@@ -1,259 +0,0 @@
-// NOTE: These TLBIP forms are valid with either +tlbid or +d128.
-// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+tlbid,+tlb-rmi,+xs < %s | FileCheck %s --check-prefix=TLBID
-// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+d128,+tlb-rmi,+xs < %s | FileCheck %s --check-prefix=D128
-
-tlbip VAE1OS, x0, x1
-// TLBID: tlbip vae1os, x0, x1
-// D128: tlbip vae1os, x0, x1
-
-tlbip VAAE1OS, x0, x1
-// TLBID: tlbip vaae1os, x0, x1
-// D128: tlbip vaae1os, x0, x1
-
-tlbip VALE1OS, x0, x1
-// TLBID: tlbip vale1os, x0, x1
-// D128: tlbip vale1os, x0, x1
-
-tlbip VAALE1OS, x0, x1
-// TLBID: tlbip vaale1os, x0, x1
-// D128: tlbip vaale1os, x0, x1
-
-tlbip RVAE1IS, x0, x1
-// TLBID: tlbip rvae1is, x0, x1
-// D128: tlbip rvae1is, x0, x1
-
-tlbip RVAAE1IS, x0, x1
-// TLBID: tlbip rvaae1is, x0, x1
-// D128: tlbip rvaae1is, x0, x1
-
-tlbip RVALE1IS, x0, x1
-// TLBID: tlbip rvale1is, x0, x1
-// D128: tlbip rvale1is, x0, x1
-
-tlbip RVAALE1IS, x0, x1
-// TLBID: tlbip rvaale1is, x0, x1
-// D128: tlbip rvaale1is, x0, x1
-
-tlbip VAE1IS, x0, x1
-// TLBID: tlbip vae1is, x0, x1
-// D128: tlbip vae1is, x0, x1
-
-tlbip VAAE1IS, x0, x1
-// TLBID: tlbip vaae1is, x0, x1
-// D128: tlbip vaae1is, x0, x1
-
-tlbip VALE1IS, x0, x1
-// TLBID: tlbip vale1is, x0, x1
-// D128: tlbip vale1is, x0, x1
-
-tlbip VAALE1IS, x0, x1
-// TLBID: tlbip vaale1is, x0, x1
-// D128: tlbip vaale1is, x0, x1
-
-tlbip RVAE1OS, x0, x1
-// TLBID: tlbip rvae1os, x0, x1
-// D128: tlbip rvae1os, x0, x1
-
-tlbip RVAAE1OS, x0, x1
-// TLBID: tlbip rvaae1os, x0, x1
-// D128: tlbip rvaae1os, x0, x1
-
-tlbip RVALE1OS, x0, x1
-// TLBID: tlbip rvale1os, x0, x1
-// D128: tlbip rvale1os, x0, x1
-
-tlbip RVAALE1OS, x0, x1
-// TLBID: tlbip rvaale1os, x0, x1
-// D128: tlbip rvaale1os, x0, x1
-
-tlbip VAE1OSNXS, x0, x1
-// TLBID: tlbip vae1osnxs, x0, x1
-// D128: tlbip vae1osnxs, x0, x1
-
-tlbip VAAE1OSNXS, x0, x1
-// TLBID: tlbip vaae1osnxs, x0, x1
-// D128: tlbip vaae1osnxs, x0, x1
-
-tlbip VALE1OSNXS, x0, x1
-// TLBID: tlbip vale1osnxs, x0, x1
-// D128: tlbip vale1osnxs, x0, x1
-
-tlbip VAALE1OSNXS, x0, x1
-// TLBID: tlbip vaale1osnxs, x0, x1
-// D128: tlbip vaale1osnxs, x0, x1
-
-tlbip RVAE1ISNXS, x0, x1
-// TLBID: tlbip rvae1isnxs, x0, x1
-// D128: tlbip rvae1isnxs, x0, x1
-
-tlbip RVAAE1ISNXS, x0, x1
-// TLBID: tlbip rvaae1isnxs, x0, x1
-// D128: tlbip rvaae1isnxs, x0, x1
-
-tlbip RVALE1ISNXS, x0, x1
-// TLBID: tlbip rvale1isnxs, x0, x1
-// D128: tlbip rvale1isnxs, x0, x1
-
-tlbip RVAALE1ISNXS, x0, x1
-// TLBID: tlbip rvaale1isnxs, x0, x1
-// D128: tlbip rvaale1isnxs, x0, x1
-
-tlbip VAE1ISNXS, x0, x1
-// TLBID: tlbip vae1isnxs, x0, x1
-// D128: tlbip vae1isnxs, x0, x1
-
-tlbip VAAE1ISNXS, x0, x1
-// TLBID: tlbip vaae1isnxs, x0, x1
-// D128: tlbip vaae1isnxs, x0, x1
-
-tlbip VALE1ISNXS, x0, x1
-// TLBID: tlbip vale1isnxs, x0, x1
-// D128: tlbip vale1isnxs, x0, x1
-
-tlbip VAALE1ISNXS, x0, x1
-// TLBID: tlbip vaale1isnxs, x0, x1
-// D128: tlbip vaale1isnxs, x0, x1
-
-tlbip RVAE1OSNXS, x0, x1
-// TLBID: tlbip rvae1osnxs, x0, x1
-// D128: tlbip rvae1osnxs, x0, x1
-
-tlbip RVAAE1OSNXS, x0, x1
-// TLBID: tlbip rvaae1osnxs, x0, x1
-// D128: tlbip rvaae1osnxs, x0, x1
-
-tlbip RVALE1OSNXS, x0, x1
-// TLBID: tlbip rvale1osnxs, x0, x1
-// D128: tlbip rvale1osnxs, x0, x1
-
-tlbip RVAALE1OSNXS, x0, x1
-// TLBID: tlbip rvaale1osnxs, x0, x1
-// D128: tlbip rvaale1osnxs, x0, x1
-
-tlbip IPAS2E1IS, x0, x1
-// TLBID: tlbip ipas2e1is, x0, x1
-// D128: tlbip ipas2e1is, x0, x1
-
-tlbip RIPAS2E1IS, x0, x1
-// TLBID: tlbip ripas2e1is, x0, x1
-// D128: tlbip ripas2e1is, x0, x1
-
-tlbip IPAS2LE1IS, x0, x1
-// TLBID: tlbip ipas2le1is, x0, x1
-// D128: tlbip ipas2le1is, x0, x1
-
-tlbip RIPAS2LE1IS, x0, x1
-// TLBID: tlbip ripas2le1is, x0, x1
-// D128: tlbip ripas2le1is, x0, x1
-
-tlbip VAE2OS, x0, x1
-// TLBID: tlbip vae2os, x0, x1
-// D128: tlbip vae2os, x0, x1
-
-tlbip VALE2OS, x0, x1
-// TLBID: tlbip vale2os, x0, x1
-// D128: tlbip vale2os, x0, x1
-
-tlbip RVAE2IS, x0, x1
-// TLBID: tlbip rvae2is, x0, x1
-// D128: tlbip rvae2is, x0, x1
-
-tlbip RVALE2IS, x0, x1
-// TLBID: tlbip rvale2is, x0, x1
-// D128: tlbip rvale2is, x0, x1
-
-tlbip VAE2IS, x0, x1
-// TLBID: tlbip vae2is, x0, x1
-// D128: tlbip vae2is, x0, x1
-
-tlbip VALE2IS, x0, x1
-// TLBID: tlbip vale2is, x0, x1
-// D128: tlbip vale2is, x0, x1
-
-tlbip IPAS2E1OS, x0, x1
-// TLBID: tlbip ipas2e1os, x0, x1
-// D128: tlbip ipas2e1os, x0, x1
-
-tlbip RIPAS2E1OS, x0, x1
-// TLBID: tlbip ripas2e1os, x0, x1
-// D128: tlbip ripas2e1os, x0, x1
-
-tlbip IPAS2LE1OS, x0, x1
-// TLBID: tlbip ipas2le1os, x0, x1
-// D128: tlbip ipas2le1os, x0, x1
-
-tlbip RIPAS2LE1OS, x0, x1
-// TLBID: tlbip ripas2le1os, x0, x1
-// D128: tlbip ripas2le1os, x0, x1
-
-tlbip RVAE2OS, x0, x1
-// TLBID: tlbip rvae2os, x0, x1
-// D128: tlbip rvae2os, x0, x1
-
-tlbip RVALE2OS, x0, x1
-// TLBID: tlbip rvale2os, x0, x1
-// D128: tlbip rvale2os, x0, x1
-
-tlbip IPAS2E1ISNXS, x0, x1
-// TLBID: tlbip ipas2e1isnxs, x0, x1
-// D128: tlbip ipas2e1isnxs, x0, x1
-
-tlbip RIPAS2E1ISNXS, x0, x1
-// TLBID: tlbip ripas2e1isnxs, x0, x1
-// D128: tlbip ripas2e1isnxs, x0, x1
-
-tlbip IPAS2LE1ISNXS, x0, x1
-// TLBID: tlbip ipas2le1isnxs, x0, x1
-// D128: tlbip ipas2le1isnxs, x0, x1
-
-tlbip RIPAS2LE1ISNXS, x0, x1
-// TLBID: tlbip ripas2le1isnxs, x0, x1
-// D128: tlbip ripas2le1isnxs, x0, x1
-
-tlbip VAE2OSNXS, x0, x1
-// TLBID: tlbip vae2osnxs, x0, x1
-// D128: tlbip vae2osnxs, x0, x1
-
-tlbip VALE2OSNXS, x0, x1
-// TLBID: tlbip vale2osnxs, x0, x1
-// D128: tlbip vale2osnxs, x0, x1
-
-tlbip RVAE2ISNXS, x0, x1
-// TLBID: tlbip rvae2isnxs, x0, x1
-// D128: tlbip rvae2isnxs, x0, x1
-
-tlbip RVALE2ISNXS, x0, x1
-// TLBID: tlbip rvale2isnxs, x0, x1
-// D128: tlbip rvale2isnxs, x0, x1
-
-tlbip VAE2ISNXS, x0, x1
-// TLBID: tlbip vae2isnxs, x0, x1
-// D128: tlbip vae2isnxs, x0, x1
-
-tlbip VALE2ISNXS, x0, x1
-// TLBID: tlbip vale2isnxs, x0, x1
-// D128: tlbip vale2isnxs, x0, x1
-
-tlbip IPAS2E1OSNXS, x0, x1
-// TLBID: tlbip ipas2e1osnxs, x0, x1
-// D128: tlbip ipas2e1osnxs, x0, x1
-
-tlbip RIPAS2E1OSNXS, x0, x1
-// TLBID: tlbip ripas2e1osnxs, x0, x1
-// D128: tlbip ripas2e1osnxs, x0, x1
-
-tlbip IPAS2LE1OSNXS, x0, x1
-// TLBID: tlbip ipas2le1osnxs, x0, x1
-// D128: tlbip ipas2le1osnxs, x0, x1
-
-tlbip RIPAS2LE1OSNXS, x0, x1
-// TLBID: tlbip ripas2le1osnxs, x0, x1
-// D128: tlbip ripas2le1osnxs, x0, x1
-
-tlbip RVAE2OSNXS, x0, x1
-// TLBID: tlbip rvae2osnxs, x0, x1
-// D128: tlbip rvae2osnxs, x0, x1
-
-tlbip RVALE2OSNXS, x0, x1
-// TLBID: tlbip rvale2osnxs, x0, x1
-// D128: tlbip rvale2osnxs, x0, x1

>From 916b5096f8b77f4b2d04a96d95ebf88073a8757c Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Tue, 10 Mar 2026 01:10:19 +0000
Subject: [PATCH 05/10] fixup! More optimisations

---
 .../Target/AArch64/AArch64SystemOperands.td   | 13 ++++++------
 .../AArch64/AsmParser/AArch64AsmParser.cpp    | 21 +++++++++----------
 .../Target/AArch64/Utils/AArch64BaseInfo.h    |  9 +-------
 3 files changed, 18 insertions(+), 25 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AArch64SystemOperands.td b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
index f9f35b3954b23..47eb3ea3acb4b 100644
--- a/llvm/lib/Target/AArch64/AArch64SystemOperands.td
+++ b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
@@ -898,14 +898,11 @@ multiclass TLBITableBase {
   }
 }
 
-defm TLBI  : TLBITableBase;
-
-multiclass TLBIPTableBase {
+multiclass TLBITableBase<list<string> fields> {
   def NAME # Table : GenericTable {
     let FilterClass = NAME # "Entry";
     let CppTypeName = NAME;
-    let Fields = ["Name", "Encoding", "NeedsReg", "OptionalReg", "RequiresStr",
-                  "d128orTLBID"];
+    let Fields = fields;
     let PrimaryKey = ["Encoding"];
     let PrimaryKeyName = "lookup" # NAME # "ByEncoding";
   }
@@ -915,7 +912,11 @@ multiclass TLBIPTableBase {
   }
 }
 
-defm TLBIP : TLBIPTableBase;
+defm TLBI : TLBITableBase<
+    ["Name", "Encoding", "NeedsReg", "OptionalReg", "RequiresStr"]>;
+defm TLBIP : TLBITableBase<
+    ["Name", "Encoding", "NeedsReg", "OptionalReg", "RequiresStr",
+     "d128orTLBID"]>;
 
 class TLBI<string name, bits<3> op1, bits<4> crm, bits<3> op2,
            RegValue reguse, bit hasTLBIP = 0> {
diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
index c871e16716ab5..6c4a11e880ab2 100644
--- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -4265,21 +4265,20 @@ bool AArch64AsmParser::parseSyspAlias(StringRef Name, SMLoc NameLoc,
     if (!TLBIP->haveFeatures(getSTI().getFeatureBits())) {
       FeatureBitset Active = getSTI().getFeatureBits();
       FeatureBitset Missing = TLBIP->getRequiredFeatures() & ~Active;
-      bool NeedOrTLBID = false;
 
-      if (TLBIP->d128orTLBID) {
-        Missing &= ~AArch64TLBIP::TLBIP::D128OrTLBIDMask;
-        NeedOrTLBID =
-            !(Active[AArch64::FeatureD128] || Active[AArch64::FeatureTLBID]);
-      }
+      bool NeedD128OrTLBID =
+          TLBIP->allowTLBID() &&
+          !(Active[AArch64::FeatureD128] || Active[AArch64::FeatureTLBID]);
+
       std::string Str("instruction requires: ");
-      if (Missing.none()) {
+      if (Missing.any())
+        setRequiredFeatureString(Missing, Str);
+
+      if (NeedD128OrTLBID) {
+        if (Missing.any())
+          Str += ", ";
         Str += "tlbid or d128";
-        return TokError(Str);
       }
-      setRequiredFeatureString(Missing, Str);
-      if (NeedOrTLBID)
-        Str += ", tlbid or d128";
       return TokError(Str);
     }
     createSysAlias(TLBIP->Encoding, Operands, S);
diff --git a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
index 1f7d7ec5b7b21..6b959e1516bec 100644
--- a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+++ b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
@@ -467,14 +467,7 @@ struct TLBIPSysAlias : SysAliasOptionalReg {
   bool allowTLBID() const { return d128orTLBID; }
 
   bool haveFeatures(FeatureBitset ActiveFeatures) const {
-    if (ActiveFeatures[llvm::AArch64::FeatureAll])
-      return true;
-
-    FeatureBitset Required = FeaturesRequired;
-    if (d128orTLBID)
-      Required &= ~D128OrTLBIDMask;
-
-    return (Required & ActiveFeatures) == Required &&
+    return SysAliasOptionalReg::haveFeatures(ActiveFeatures) &&
            (!d128orTLBID || ActiveFeatures[llvm::AArch64::FeatureD128] ||
             ActiveFeatures[llvm::AArch64::FeatureTLBID]);
   }

>From 077334650aa4a6a429c52cb4d7d44c8443567902 Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Thu, 12 Mar 2026 11:50:57 +0000
Subject: [PATCH 06/10] fixup! More simplification

---
 .../AArch64/AsmParser/AArch64AsmParser.cpp    |  16 +-
 .../Target/AArch64/Utils/AArch64BaseInfo.h    |  16 +-
 llvm/test/MC/AArch64/armv9a-tlbip.s           | 884 +++++++++---------
 3 files changed, 435 insertions(+), 481 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
index 6c4a11e880ab2..921e5446a3ad5 100644
--- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -4263,22 +4263,8 @@ bool AArch64AsmParser::parseSyspAlias(StringRef Name, SMLoc NameLoc,
       return TokError("invalid operand for TLBIP instruction");
 
     if (!TLBIP->haveFeatures(getSTI().getFeatureBits())) {
-      FeatureBitset Active = getSTI().getFeatureBits();
-      FeatureBitset Missing = TLBIP->getRequiredFeatures() & ~Active;
-
-      bool NeedD128OrTLBID =
-          TLBIP->allowTLBID() &&
-          !(Active[AArch64::FeatureD128] || Active[AArch64::FeatureTLBID]);
-
       std::string Str("instruction requires: ");
-      if (Missing.any())
-        setRequiredFeatureString(Missing, Str);
-
-      if (NeedD128OrTLBID) {
-        if (Missing.any())
-          Str += ", ";
-        Str += "tlbid or d128";
-      }
+      Str += TLBIP->AllowWithTLBID ? "tlbid or d128" : "d128";
       return TokError(Str);
     }
     createSysAlias(TLBIP->Encoding, Operands, S);
diff --git a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
index 6b959e1516bec..62e1bdecda68c 100644
--- a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+++ b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
@@ -456,20 +456,18 @@ struct SysAliasOptionalReg : SysAlias {
 };
 
 struct TLBIPSysAlias : SysAliasOptionalReg {
-  bool d128orTLBID;
-  inline static const FeatureBitset D128OrTLBIDMask =
-      FeatureBitset({llvm::AArch64::FeatureD128, llvm::AArch64::FeatureTLBID});
+  bool AllowWithTLBID;
 
   constexpr TLBIPSysAlias(const char *N, uint16_t E, bool R, bool O,
-                          FeatureBitset F, bool D128OrTLBID)
-      : SysAliasOptionalReg(N, E, R, O, F), d128orTLBID(D128OrTLBID) {}
-
-  bool allowTLBID() const { return d128orTLBID; }
+                          FeatureBitset F, bool AllowWithTLBID)
+      : SysAliasOptionalReg(N, E, R, O, F),
+        AllowWithTLBID(AllowWithTLBID) {}
 
   bool haveFeatures(FeatureBitset ActiveFeatures) const {
     return SysAliasOptionalReg::haveFeatures(ActiveFeatures) &&
-           (!d128orTLBID || ActiveFeatures[llvm::AArch64::FeatureD128] ||
-            ActiveFeatures[llvm::AArch64::FeatureTLBID]);
+           (ActiveFeatures[llvm::AArch64::FeatureD128] ||
+            (AllowWithTLBID &&
+             ActiveFeatures[llvm::AArch64::FeatureTLBID]));
   }
 };
 
diff --git a/llvm/test/MC/AArch64/armv9a-tlbip.s b/llvm/test/MC/AArch64/armv9a-tlbip.s
index d77bdcaef195d..f3edee7ff77e4 100644
--- a/llvm/test/MC/AArch64/armv9a-tlbip.s
+++ b/llvm/test/MC/AArch64/armv9a-tlbip.s
@@ -12,15 +12,12 @@
 // RUN:        | llvm-mc -triple=aarch64 -mattr=+d128 -disassemble -show-encoding \
 // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
 
-// Only check assembly with +tlbid for instructions that match tlbip *e{1,2}[io]s*
-// Errors (for when +tlbid is not allowed) are checked in CHECK-NOT-TLBID
-.ifndef TLBID_ONLY
-  .set TLBID_ONLY, 0
-.endif
+// When assembling with +tlbid, d128-only instructions still fail while the
+// *e{1,2}[io]s* forms assemble. Keep the failing cases first so the combined
+// stderr/stdout stream from 2>&1 matches FileCheck order.
 
 // +d128 required for tlbip
 
-.if !TLBID_ONLY
 tlbip IPAS2E1, x4, x5
 // CHECK-INST: tlbip ipas2e1, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x84,0x4c,0xd5]
@@ -34,37 +31,7 @@ tlbip IPAS2E1NXS, x4, x5
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c9424 sysp #4, c9, c4, #1, x4, x5
-.endif
 
-tlbip IPAS2E1IS, x4, x5
-// CHECK-INST: tlbip ipas2e1is, x4, x5
-// CHECK-TLBID: tlbip ipas2e1is, x4, x5
-// CHECK-ENCODING: encoding: [0x24,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c8024 sysp #4, c8, c0, #1, x4, x5
-
-tlbip IPAS2E1ISNXS, x4, x5
-// CHECK-INST: tlbip ipas2e1isnxs, x4, x5
-// CHECK-TLBID: tlbip ipas2e1isnxs, x4, x5
-// CHECK-ENCODING: encoding: [0x24,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c9024 sysp #4, c9, c0, #1, x4, x5
-
-tlbip IPAS2E1OS, x4, x5
-// CHECK-INST: tlbip ipas2e1os, x4, x5
-// CHECK-TLBID: tlbip ipas2e1os, x4, x5
-// CHECK-ENCODING: encoding: [0x04,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c8404 sysp #4, c8, c4, #0, x4, x5
-
-tlbip IPAS2E1OSNXS, x4, x5
-// CHECK-INST: tlbip ipas2e1osnxs, x4, x5
-// CHECK-TLBID: tlbip ipas2e1osnxs, x4, x5
-// CHECK-ENCODING: encoding: [0x04,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c9404 sysp #4, c9, c4, #0, x4, x5
-
-.if !TLBID_ONLY
 tlbip IPAS2LE1, x4, x5
 // CHECK-INST: tlbip ipas2le1, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x84,0x4c,0xd5]
@@ -78,37 +45,7 @@ tlbip IPAS2LE1NXS, x4, x5
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c94a4 sysp #4, c9, c4, #5, x4, x5
-.endif
-
-tlbip IPAS2LE1IS, x4, x5
-// CHECK-INST: tlbip ipas2le1is, x4, x5
-// CHECK-TLBID: tlbip ipas2le1is, x4, x5
-// CHECK-ENCODING: encoding: [0xa4,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c80a4 sysp #4, c8, c0, #5, x4, x5
-
-tlbip IPAS2LE1ISNXS, x4, x5
-// CHECK-INST: tlbip ipas2le1isnxs, x4, x5
-// CHECK-TLBID: tlbip ipas2le1isnxs, x4, x5
-// CHECK-ENCODING: encoding: [0xa4,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c90a4 sysp #4, c9, c0, #5, x4, x5
-
-tlbip IPAS2LE1OS, x4, x5
-// CHECK-INST: tlbip ipas2le1os, x4, x5
-// CHECK-TLBID: tlbip ipas2le1os, x4, x5
-// CHECK-ENCODING: encoding: [0x84,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c8484 sysp #4, c8, c4, #4, x4, x5
-
-tlbip IPAS2LE1OSNXS, x4, x5
-// CHECK-INST: tlbip ipas2le1osnxs, x4, x5
-// CHECK-TLBID: tlbip ipas2le1osnxs, x4, x5
-// CHECK-ENCODING: encoding: [0x84,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c9484 sysp #4, c9, c4, #4, x4, x5
 
-.if !TLBID_ONLY
 tlbip VAE1, x8, x9
 // CHECK-INST: tlbip vae1, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x87,0x48,0xd5]
@@ -122,37 +59,7 @@ tlbip VAE1NXS, x8, x9
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489728 sysp #0, c9, c7, #1, x8, x9
-.endif
-
-tlbip VAE1IS, x8, x9
-// CHECK-INST: tlbip vae1is, x8, x9
-// CHECK-TLBID: tlbip vae1is, x8, x9
-// CHECK-ENCODING: encoding: [0x28,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5488328 sysp #0, c8, c3, #1, x8, x9
-
-tlbip VAE1ISNXS, x8, x9
-// CHECK-INST: tlbip vae1isnxs, x8, x9
-// CHECK-TLBID: tlbip vae1isnxs, x8, x9
-// CHECK-ENCODING: encoding: [0x28,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5489328 sysp #0, c9, c3, #1, x8, x9
-
-tlbip VAE1OS, x8, x9
-// CHECK-INST: tlbip vae1os, x8, x9
-// CHECK-TLBID: tlbip vae1os, x8, x9
-// CHECK-ENCODING: encoding: [0x28,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5488128 sysp #0, c8, c1, #1, x8, x9
-
-tlbip VAE1OSNXS, x8, x9
-// CHECK-INST: tlbip vae1osnxs, x8, x9
-// CHECK-TLBID: tlbip vae1osnxs, x8, x9
-// CHECK-ENCODING: encoding: [0x28,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5489128 sysp #0, c9, c1, #1, x8, x9
 
-.if !TLBID_ONLY
 tlbip VALE1, x8, x9
 // CHECK-INST: tlbip vale1, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x87,0x48,0xd5]
@@ -166,37 +73,7 @@ tlbip VALE1NXS, x8, x9
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54897a8 sysp #0, c9, c7, #5, x8, x9
-.endif
-
-tlbip VALE1IS, x8, x9
-// CHECK-INST: tlbip vale1is, x8, x9
-// CHECK-TLBID: tlbip vale1is, x8, x9
-// CHECK-ENCODING: encoding: [0xa8,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54883a8 sysp #0, c8, c3, #5, x8, x9
-
-tlbip VALE1ISNXS, x8, x9
-// CHECK-INST: tlbip vale1isnxs, x8, x9
-// CHECK-TLBID: tlbip vale1isnxs, x8, x9
-// CHECK-ENCODING: encoding: [0xa8,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54893a8 sysp #0, c9, c3, #5, x8, x9
-
-tlbip VALE1OS, x8, x9
-// CHECK-INST: tlbip vale1os, x8, x9
-// CHECK-TLBID: tlbip vale1os, x8, x9
-// CHECK-ENCODING: encoding: [0xa8,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54881a8 sysp #0, c8, c1, #5, x8, x9
-
-tlbip VALE1OSNXS, x8, x9
-// CHECK-INST: tlbip vale1osnxs, x8, x9
-// CHECK-TLBID: tlbip vale1osnxs, x8, x9
-// CHECK-ENCODING: encoding: [0xa8,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54891a8 sysp #0, c9, c1, #5, x8, x9
 
-.if !TLBID_ONLY
 tlbip VAAE1, x8, x9
 // CHECK-INST: tlbip vaae1, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x87,0x48,0xd5]
@@ -210,37 +87,7 @@ tlbip VAAE1NXS, x8, x9
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489768 sysp #0, c9, c7, #3, x8, x9
-.endif
-
-tlbip VAAE1IS, x8, x9
-// CHECK-INST: tlbip vaae1is, x8, x9
-// CHECK-TLBID: tlbip vaae1is, x8, x9
-// CHECK-ENCODING: encoding: [0x68,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5488368 sysp #0, c8, c3, #3, x8, x9
-
-tlbip VAAE1ISNXS, x8, x9
-// CHECK-INST: tlbip vaae1isnxs, x8, x9
-// CHECK-TLBID: tlbip vaae1isnxs, x8, x9
-// CHECK-ENCODING: encoding: [0x68,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5489368 sysp #0, c9, c3, #3, x8, x9
-
-tlbip VAAE1OS, x8, x9
-// CHECK-INST: tlbip vaae1os, x8, x9
-// CHECK-TLBID: tlbip vaae1os, x8, x9
-// CHECK-ENCODING: encoding: [0x68,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5488168 sysp #0, c8, c1, #3, x8, x9
-
-tlbip VAAE1OSNXS, x8, x9
-// CHECK-INST: tlbip vaae1osnxs, x8, x9
-// CHECK-TLBID: tlbip vaae1osnxs, x8, x9
-// CHECK-ENCODING: encoding: [0x68,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5489168 sysp #0, c9, c1, #3, x8, x9
 
-.if !TLBID_ONLY
 tlbip VAALE1, x8, x9
 // CHECK-INST: tlbip vaale1, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x87,0x48,0xd5]
@@ -254,37 +101,7 @@ tlbip VAALE1NXS, x8, x9
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54897e8 sysp #0, c9, c7, #7, x8, x9
-.endif
-
-tlbip VAALE1IS, x8, x9
-// CHECK-INST: tlbip vaale1is, x8, x9
-// CHECK-TLBID: tlbip vaale1is, x8, x9
-// CHECK-ENCODING: encoding: [0xe8,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54883e8 sysp #0, c8, c3, #7, x8, x9
-
-tlbip VAALE1ISNXS, x8, x9
-// CHECK-INST: tlbip vaale1isnxs, x8, x9
-// CHECK-TLBID: tlbip vaale1isnxs, x8, x9
-// CHECK-ENCODING: encoding: [0xe8,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54893e8 sysp #0, c9, c3, #7, x8, x9
-
-tlbip VAALE1OS, x8, x9
-// CHECK-INST: tlbip vaale1os, x8, x9
-// CHECK-TLBID: tlbip vaale1os, x8, x9
-// CHECK-ENCODING: encoding: [0xe8,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54881e8 sysp #0, c8, c1, #7, x8, x9
-
-tlbip VAALE1OSNXS, x8, x9
-// CHECK-INST: tlbip vaale1osnxs, x8, x9
-// CHECK-TLBID: tlbip vaale1osnxs, x8, x9
-// CHECK-ENCODING: encoding: [0xe8,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54891e8 sysp #0, c9, c1, #7, x8, x9
 
-.if !TLBID_ONLY
 tlbip VAE2, x14, x15
 // CHECK-INST: tlbip vae2, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x87,0x4c,0xd5]
@@ -298,37 +115,7 @@ tlbip VAE2NXS, x14, x15
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c972e sysp #4, c9, c7, #1, x14, x15
-.endif
-
-tlbip VAE2IS, x14, x15
-// CHECK-INST: tlbip vae2is, x14, x15
-// CHECK-TLBID: tlbip vae2is, x14, x15
-// CHECK-ENCODING: encoding: [0x2e,0x83,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c832e sysp #4, c8, c3, #1, x14, x15
-
-tlbip VAE2ISNXS, x14, x15
-// CHECK-INST: tlbip vae2isnxs, x14, x15
-// CHECK-TLBID: tlbip vae2isnxs, x14, x15
-// CHECK-ENCODING: encoding: [0x2e,0x93,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c932e sysp #4, c9, c3, #1, x14, x15
-
-tlbip VAE2OS, x14, x15
-// CHECK-INST: tlbip vae2os, x14, x15
-// CHECK-TLBID: tlbip vae2os, x14, x15
-// CHECK-ENCODING: encoding: [0x2e,0x81,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c812e sysp #4, c8, c1, #1, x14, x15
-
-tlbip VAE2OSNXS, x14, x15
-// CHECK-INST: tlbip vae2osnxs, x14, x15
-// CHECK-TLBID: tlbip vae2osnxs, x14, x15
-// CHECK-ENCODING: encoding: [0x2e,0x91,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c912e sysp #4, c9, c1, #1, x14, x15
 
-.if !TLBID_ONLY
 tlbip VALE2, x14, x15
 // CHECK-INST: tlbip vale2, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x87,0x4c,0xd5]
@@ -342,37 +129,7 @@ tlbip VALE2NXS, x14, x15
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c97ae sysp #4, c9, c7, #5, x14, x15
-.endif
-
-tlbip VALE2IS, x14, x15
-// CHECK-INST: tlbip vale2is, x14, x15
-// CHECK-TLBID: tlbip vale2is, x14, x15
-// CHECK-ENCODING: encoding: [0xae,0x83,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c83ae sysp #4, c8, c3, #5, x14, x15
-
-tlbip VALE2ISNXS, x14, x15
-// CHECK-INST: tlbip vale2isnxs, x14, x15
-// CHECK-TLBID: tlbip vale2isnxs, x14, x15
-// CHECK-ENCODING: encoding: [0xae,0x93,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c93ae sysp #4, c9, c3, #5, x14, x15
-
-tlbip VALE2OS, x14, x15
-// CHECK-INST: tlbip vale2os, x14, x15
-// CHECK-TLBID: tlbip vale2os, x14, x15
-// CHECK-ENCODING: encoding: [0xae,0x81,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c81ae sysp #4, c8, c1, #5, x14, x15
-
-tlbip VALE2OSNXS, x14, x15
-// CHECK-INST: tlbip vale2osnxs, x14, x15
-// CHECK-TLBID: tlbip vale2osnxs, x14, x15
-// CHECK-ENCODING: encoding: [0xae,0x91,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c91ae sysp #4, c9, c1, #5, x14, x15
 
-.if !TLBID_ONLY
 tlbip VAE3, x24, x25
 // CHECK-INST: tlbip vae3, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x87,0x4e,0xd5]
@@ -470,37 +227,7 @@ tlbip RVAE1NXS, x18, x19
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489632 sysp #0, c9, c6, #1, x18, x19
-.endif
 
-tlbip RVAE1IS, x18, x19
-// CHECK-INST: tlbip rvae1is, x18, x19
-// CHECK-TLBID: tlbip rvae1is, x18, x19
-// CHECK-ENCODING: encoding: [0x32,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5488232 sysp #0, c8, c2, #1, x18, x19
-
-tlbip RVAE1ISNXS, x18, x19
-// CHECK-INST: tlbip rvae1isnxs, x18, x19
-// CHECK-TLBID: tlbip rvae1isnxs, x18, x19
-// CHECK-ENCODING: encoding: [0x32,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5489232 sysp #0, c9, c2, #1, x18, x19
-
-tlbip RVAE1OS, x18, x19
-// CHECK-INST: tlbip rvae1os, x18, x19
-// CHECK-TLBID: tlbip rvae1os, x18, x19
-// CHECK-ENCODING: encoding: [0x32,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5488532 sysp #0, c8, c5, #1, x18, x19
-
-tlbip RVAE1OSNXS, x18, x19
-// CHECK-INST: tlbip rvae1osnxs, x18, x19
-// CHECK-TLBID: tlbip rvae1osnxs, x18, x19
-// CHECK-ENCODING: encoding: [0x32,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5489532 sysp #0, c9, c5, #1, x18, x19
-
-.if !TLBID_ONLY
 tlbip RVAAE1, x18, x19
 // CHECK-INST: tlbip rvaae1, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x86,0x48,0xd5]
@@ -514,37 +241,7 @@ tlbip RVAAE1NXS, x18, x19
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489672 sysp #0, c9, c6, #3, x18, x19
-.endif
 
-tlbip RVAAE1IS, x18, x19
-// CHECK-INST: tlbip rvaae1is, x18, x19
-// CHECK-TLBID: tlbip rvaae1is, x18, x19
-// CHECK-ENCODING: encoding: [0x72,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5488272 sysp #0, c8, c2, #3, x18, x19
-
-tlbip RVAAE1ISNXS, x18, x19
-// CHECK-INST: tlbip rvaae1isnxs, x18, x19
-// CHECK-TLBID: tlbip rvaae1isnxs, x18, x19
-// CHECK-ENCODING: encoding: [0x72,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5489272 sysp #0, c9, c2, #3, x18, x19
-
-tlbip RVAAE1OS, x18, x19
-// CHECK-INST: tlbip rvaae1os, x18, x19
-// CHECK-TLBID: tlbip rvaae1os, x18, x19
-// CHECK-ENCODING: encoding: [0x72,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5488572 sysp #0, c8, c5, #3, x18, x19
-
-tlbip RVAAE1OSNXS, x18, x19
-// CHECK-INST: tlbip rvaae1osnxs, x18, x19
-// CHECK-TLBID: tlbip rvaae1osnxs, x18, x19
-// CHECK-ENCODING: encoding: [0x72,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d5489572 sysp #0, c9, c5, #3, x18, x19
-
-.if !TLBID_ONLY
 tlbip RVALE1, x18, x19
 // CHECK-INST: tlbip rvale1, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x86,0x48,0xd5]
@@ -558,37 +255,7 @@ tlbip RVALE1NXS, x18, x19
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54896b2 sysp #0, c9, c6, #5, x18, x19
-.endif
-
-tlbip RVALE1IS, x18, x19
-// CHECK-INST: tlbip rvale1is, x18, x19
-// CHECK-TLBID: tlbip rvale1is, x18, x19
-// CHECK-ENCODING: encoding: [0xb2,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54882b2 sysp #0, c8, c2, #5, x18, x19
-
-tlbip RVALE1ISNXS, x18, x19
-// CHECK-INST: tlbip rvale1isnxs, x18, x19
-// CHECK-TLBID: tlbip rvale1isnxs, x18, x19
-// CHECK-ENCODING: encoding: [0xb2,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54892b2 sysp #0, c9, c2, #5, x18, x19
-
-tlbip RVALE1OS, x18, x19
-// CHECK-INST: tlbip rvale1os, x18, x19
-// CHECK-TLBID: tlbip rvale1os, x18, x19
-// CHECK-ENCODING: encoding: [0xb2,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54885b2 sysp #0, c8, c5, #5, x18, x19
-
-tlbip RVALE1OSNXS, x18, x19
-// CHECK-INST: tlbip rvale1osnxs, x18, x19
-// CHECK-TLBID: tlbip rvale1osnxs, x18, x19
-// CHECK-ENCODING: encoding: [0xb2,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54895b2 sysp #0, c9, c5, #5, x18, x19
 
-.if !TLBID_ONLY
 tlbip RVAALE1, x18, x19
 // CHECK-INST: tlbip rvaale1, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x86,0x48,0xd5]
@@ -602,37 +269,7 @@ tlbip RVAALE1NXS, x18, x19
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54896f2 sysp #0, c9, c6, #7, x18, x19
-.endif
-
-tlbip RVAALE1IS, x18, x19
-// CHECK-INST: tlbip rvaale1is, x18, x19
-// CHECK-TLBID: tlbip rvaale1is, x18, x19
-// CHECK-ENCODING: encoding: [0xf2,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54882f2 sysp #0, c8, c2, #7, x18, x19
-
-tlbip RVAALE1ISNXS, x18, x19
-// CHECK-INST: tlbip rvaale1isnxs, x18, x19
-// CHECK-TLBID: tlbip rvaale1isnxs, x18, x19
-// CHECK-ENCODING: encoding: [0xf2,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54892f2 sysp #0, c9, c2, #7, x18, x19
-
-tlbip RVAALE1OS, x18, x19
-// CHECK-INST: tlbip rvaale1os, x18, x19
-// CHECK-TLBID: tlbip rvaale1os, x18, x19
-// CHECK-ENCODING: encoding: [0xf2,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54885f2 sysp #0, c8, c5, #7, x18, x19
-
-tlbip RVAALE1OSNXS, x18, x19
-// CHECK-INST: tlbip rvaale1osnxs, x18, x19
-// CHECK-TLBID: tlbip rvaale1osnxs, x18, x19
-// CHECK-ENCODING: encoding: [0xf2,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54895f2 sysp #0, c9, c5, #7, x18, x19
 
-.if !TLBID_ONLY
 tlbip RVAE2, x28, x29
 // CHECK-INST: tlbip rvae2, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x86,0x4c,0xd5]
@@ -646,37 +283,7 @@ tlbip RVAE2NXS, x28, x29
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c963c sysp #4, c9, c6, #1, x28, x29
-.endif
-
-tlbip RVAE2IS, x28, x29
-// CHECK-INST: tlbip rvae2is, x28, x29
-// CHECK-TLBID: tlbip rvae2is, x28, x29
-// CHECK-ENCODING: encoding: [0x3c,0x82,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c823c sysp #4, c8, c2, #1, x28, x29
-
-tlbip RVAE2ISNXS, x28, x29
-// CHECK-INST: tlbip rvae2isnxs, x28, x29
-// CHECK-TLBID: tlbip rvae2isnxs, x28, x29
-// CHECK-ENCODING: encoding: [0x3c,0x92,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c923c sysp #4, c9, c2, #1, x28, x29
-
-tlbip RVAE2OS, x28, x29
-// CHECK-INST: tlbip rvae2os, x28, x29
-// CHECK-TLBID: tlbip rvae2os, x28, x29
-// CHECK-ENCODING: encoding: [0x3c,0x85,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c853c sysp #4, c8, c5, #1, x28, x29
-
-tlbip RVAE2OSNXS, x28, x29
-// CHECK-INST: tlbip rvae2osnxs, x28, x29
-// CHECK-TLBID: tlbip rvae2osnxs, x28, x29
-// CHECK-ENCODING: encoding: [0x3c,0x95,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c953c sysp #4, c9, c5, #1, x28, x29
 
-.if !TLBID_ONLY
 tlbip RVALE2, x28, x29
 // CHECK-INST: tlbip rvale2, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x86,0x4c,0xd5]
@@ -690,37 +297,7 @@ tlbip RVALE2NXS, x28, x29
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c96bc sysp #4, c9, c6, #5, x28, x29
-.endif
-
-tlbip RVALE2IS, x28, x29
-// CHECK-INST: tlbip rvale2is, x28, x29
-// CHECK-TLBID: tlbip rvale2is, x28, x29
-// CHECK-ENCODING: encoding: [0xbc,0x82,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c82bc sysp #4, c8, c2, #5, x28, x29
-
-tlbip RVALE2ISNXS, x28, x29
-// CHECK-INST: tlbip rvale2isnxs, x28, x29
-// CHECK-TLBID: tlbip rvale2isnxs, x28, x29
-// CHECK-ENCODING: encoding: [0xbc,0x92,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c92bc sysp #4, c9, c2, #5, x28, x29
-
-tlbip RVALE2OS, x28, x29
-// CHECK-INST: tlbip rvale2os, x28, x29
-// CHECK-TLBID: tlbip rvale2os, x28, x29
-// CHECK-ENCODING: encoding: [0xbc,0x85,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c85bc sysp #4, c8, c5, #5, x28, x29
-
-tlbip RVALE2OSNXS, x28, x29
-// CHECK-INST: tlbip rvale2osnxs, x28, x29
-// CHECK-TLBID: tlbip rvale2osnxs, x28, x29
-// CHECK-ENCODING: encoding: [0xbc,0x95,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c95bc sysp #4, c9, c5, #5, x28, x29
 
-.if !TLBID_ONLY
 tlbip RVAE3, x10, x11
 // CHECK-INST: tlbip rvae3, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x86,0x4e,0xd5]
@@ -818,37 +395,7 @@ tlbip RIPAS2E1NXS, x20, x21
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c9454 sysp #4, c9, c4, #2, x20, x21
-.endif
-
-tlbip RIPAS2E1IS, x20, x21
-// CHECK-INST: tlbip ripas2e1is, x20, x21
-// CHECK-TLBID: tlbip ripas2e1is, x20, x21
-// CHECK-ENCODING: encoding: [0x54,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c8054 sysp #4, c8, c0, #2, x20, x21
-
-tlbip RIPAS2E1ISNXS, x20, x21
-// CHECK-INST: tlbip ripas2e1isnxs, x20, x21
-// CHECK-TLBID: tlbip ripas2e1isnxs, x20, x21
-// CHECK-ENCODING: encoding: [0x54,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c9054 sysp #4, c9, c0, #2, x20, x21
-
-tlbip RIPAS2E1OS, x20, x21
-// CHECK-INST: tlbip ripas2e1os, x20, x21
-// CHECK-TLBID: tlbip ripas2e1os, x20, x21
-// CHECK-ENCODING: encoding: [0x74,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c8474 sysp #4, c8, c4, #3, x20, x21
-
-tlbip RIPAS2E1OSNXS, x20, x21
-// CHECK-INST: tlbip ripas2e1osnxs, x20, x21
-// CHECK-TLBID: tlbip ripas2e1osnxs, x20, x21
-// CHECK-ENCODING: encoding: [0x74,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
-// CHECK-UNKNOWN: d54c9474 sysp #4, c9, c4, #3, x20, x21
 
-.if !TLBID_ONLY
 tlbip RIPAS2LE1, x20, x21
 // CHECK-INST: tlbip ripas2le1, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x84,0x4c,0xd5]
@@ -862,7 +409,430 @@ tlbip RIPAS2LE1NXS, x20, x21
 // CHECK-ERROR: error: instruction requires: d128
 // CHECK-NOT-TLBID: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c94d4 sysp #4, c9, c4, #6, x20, x21
-.endif
+
+//
+// From here on, +tlbid only is sufficient and aliases should assemble
+//
+
+tlbip IPAS2E1IS, x4, x5
+// CHECK-INST: tlbip ipas2e1is, x4, x5
+// CHECK-TLBID: tlbip ipas2e1is, x4, x5
+// CHECK-ENCODING: encoding: [0x24,0x80,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c8024 sysp #4, c8, c0, #1, x4, x5
+
+tlbip IPAS2E1ISNXS, x4, x5
+// CHECK-INST: tlbip ipas2e1isnxs, x4, x5
+// CHECK-TLBID: tlbip ipas2e1isnxs, x4, x5
+// CHECK-ENCODING: encoding: [0x24,0x90,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c9024 sysp #4, c9, c0, #1, x4, x5
+
+tlbip IPAS2E1OS, x4, x5
+// CHECK-INST: tlbip ipas2e1os, x4, x5
+// CHECK-TLBID: tlbip ipas2e1os, x4, x5
+// CHECK-ENCODING: encoding: [0x04,0x84,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c8404 sysp #4, c8, c4, #0, x4, x5
+
+tlbip IPAS2E1OSNXS, x4, x5
+// CHECK-INST: tlbip ipas2e1osnxs, x4, x5
+// CHECK-TLBID: tlbip ipas2e1osnxs, x4, x5
+// CHECK-ENCODING: encoding: [0x04,0x94,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c9404 sysp #4, c9, c4, #0, x4, x5
+
+tlbip IPAS2LE1IS, x4, x5
+// CHECK-INST: tlbip ipas2le1is, x4, x5
+// CHECK-TLBID: tlbip ipas2le1is, x4, x5
+// CHECK-ENCODING: encoding: [0xa4,0x80,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c80a4 sysp #4, c8, c0, #5, x4, x5
+
+tlbip IPAS2LE1ISNXS, x4, x5
+// CHECK-INST: tlbip ipas2le1isnxs, x4, x5
+// CHECK-TLBID: tlbip ipas2le1isnxs, x4, x5
+// CHECK-ENCODING: encoding: [0xa4,0x90,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c90a4 sysp #4, c9, c0, #5, x4, x5
+
+tlbip IPAS2LE1OS, x4, x5
+// CHECK-INST: tlbip ipas2le1os, x4, x5
+// CHECK-TLBID: tlbip ipas2le1os, x4, x5
+// CHECK-ENCODING: encoding: [0x84,0x84,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c8484 sysp #4, c8, c4, #4, x4, x5
+
+tlbip IPAS2LE1OSNXS, x4, x5
+// CHECK-INST: tlbip ipas2le1osnxs, x4, x5
+// CHECK-TLBID: tlbip ipas2le1osnxs, x4, x5
+// CHECK-ENCODING: encoding: [0x84,0x94,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c9484 sysp #4, c9, c4, #4, x4, x5
+
+tlbip VAE1IS, x8, x9
+// CHECK-INST: tlbip vae1is, x8, x9
+// CHECK-TLBID: tlbip vae1is, x8, x9
+// CHECK-ENCODING: encoding: [0x28,0x83,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5488328 sysp #0, c8, c3, #1, x8, x9
+
+tlbip VAE1ISNXS, x8, x9
+// CHECK-INST: tlbip vae1isnxs, x8, x9
+// CHECK-TLBID: tlbip vae1isnxs, x8, x9
+// CHECK-ENCODING: encoding: [0x28,0x93,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5489328 sysp #0, c9, c3, #1, x8, x9
+
+tlbip VAE1OS, x8, x9
+// CHECK-INST: tlbip vae1os, x8, x9
+// CHECK-TLBID: tlbip vae1os, x8, x9
+// CHECK-ENCODING: encoding: [0x28,0x81,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5488128 sysp #0, c8, c1, #1, x8, x9
+
+tlbip VAE1OSNXS, x8, x9
+// CHECK-INST: tlbip vae1osnxs, x8, x9
+// CHECK-TLBID: tlbip vae1osnxs, x8, x9
+// CHECK-ENCODING: encoding: [0x28,0x91,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5489128 sysp #0, c9, c1, #1, x8, x9
+
+tlbip VALE1IS, x8, x9
+// CHECK-INST: tlbip vale1is, x8, x9
+// CHECK-TLBID: tlbip vale1is, x8, x9
+// CHECK-ENCODING: encoding: [0xa8,0x83,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54883a8 sysp #0, c8, c3, #5, x8, x9
+
+tlbip VALE1ISNXS, x8, x9
+// CHECK-INST: tlbip vale1isnxs, x8, x9
+// CHECK-TLBID: tlbip vale1isnxs, x8, x9
+// CHECK-ENCODING: encoding: [0xa8,0x93,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54893a8 sysp #0, c9, c3, #5, x8, x9
+
+tlbip VALE1OS, x8, x9
+// CHECK-INST: tlbip vale1os, x8, x9
+// CHECK-TLBID: tlbip vale1os, x8, x9
+// CHECK-ENCODING: encoding: [0xa8,0x81,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54881a8 sysp #0, c8, c1, #5, x8, x9
+
+tlbip VALE1OSNXS, x8, x9
+// CHECK-INST: tlbip vale1osnxs, x8, x9
+// CHECK-TLBID: tlbip vale1osnxs, x8, x9
+// CHECK-ENCODING: encoding: [0xa8,0x91,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54891a8 sysp #0, c9, c1, #5, x8, x9
+
+tlbip VAAE1IS, x8, x9
+// CHECK-INST: tlbip vaae1is, x8, x9
+// CHECK-TLBID: tlbip vaae1is, x8, x9
+// CHECK-ENCODING: encoding: [0x68,0x83,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5488368 sysp #0, c8, c3, #3, x8, x9
+
+tlbip VAAE1ISNXS, x8, x9
+// CHECK-INST: tlbip vaae1isnxs, x8, x9
+// CHECK-TLBID: tlbip vaae1isnxs, x8, x9
+// CHECK-ENCODING: encoding: [0x68,0x93,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5489368 sysp #0, c9, c3, #3, x8, x9
+
+tlbip VAAE1OS, x8, x9
+// CHECK-INST: tlbip vaae1os, x8, x9
+// CHECK-TLBID: tlbip vaae1os, x8, x9
+// CHECK-ENCODING: encoding: [0x68,0x81,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5488168 sysp #0, c8, c1, #3, x8, x9
+
+tlbip VAAE1OSNXS, x8, x9
+// CHECK-INST: tlbip vaae1osnxs, x8, x9
+// CHECK-TLBID: tlbip vaae1osnxs, x8, x9
+// CHECK-ENCODING: encoding: [0x68,0x91,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5489168 sysp #0, c9, c1, #3, x8, x9
+
+tlbip VAALE1IS, x8, x9
+// CHECK-INST: tlbip vaale1is, x8, x9
+// CHECK-TLBID: tlbip vaale1is, x8, x9
+// CHECK-ENCODING: encoding: [0xe8,0x83,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54883e8 sysp #0, c8, c3, #7, x8, x9
+
+tlbip VAALE1ISNXS, x8, x9
+// CHECK-INST: tlbip vaale1isnxs, x8, x9
+// CHECK-TLBID: tlbip vaale1isnxs, x8, x9
+// CHECK-ENCODING: encoding: [0xe8,0x93,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54893e8 sysp #0, c9, c3, #7, x8, x9
+
+tlbip VAALE1OS, x8, x9
+// CHECK-INST: tlbip vaale1os, x8, x9
+// CHECK-TLBID: tlbip vaale1os, x8, x9
+// CHECK-ENCODING: encoding: [0xe8,0x81,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54881e8 sysp #0, c8, c1, #7, x8, x9
+
+tlbip VAALE1OSNXS, x8, x9
+// CHECK-INST: tlbip vaale1osnxs, x8, x9
+// CHECK-TLBID: tlbip vaale1osnxs, x8, x9
+// CHECK-ENCODING: encoding: [0xe8,0x91,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54891e8 sysp #0, c9, c1, #7, x8, x9
+
+tlbip VAE2IS, x14, x15
+// CHECK-INST: tlbip vae2is, x14, x15
+// CHECK-TLBID: tlbip vae2is, x14, x15
+// CHECK-ENCODING: encoding: [0x2e,0x83,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c832e sysp #4, c8, c3, #1, x14, x15
+
+tlbip VAE2ISNXS, x14, x15
+// CHECK-INST: tlbip vae2isnxs, x14, x15
+// CHECK-TLBID: tlbip vae2isnxs, x14, x15
+// CHECK-ENCODING: encoding: [0x2e,0x93,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c932e sysp #4, c9, c3, #1, x14, x15
+
+tlbip VAE2OS, x14, x15
+// CHECK-INST: tlbip vae2os, x14, x15
+// CHECK-TLBID: tlbip vae2os, x14, x15
+// CHECK-ENCODING: encoding: [0x2e,0x81,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c812e sysp #4, c8, c1, #1, x14, x15
+
+tlbip VAE2OSNXS, x14, x15
+// CHECK-INST: tlbip vae2osnxs, x14, x15
+// CHECK-TLBID: tlbip vae2osnxs, x14, x15
+// CHECK-ENCODING: encoding: [0x2e,0x91,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c912e sysp #4, c9, c1, #1, x14, x15
+
+tlbip VALE2IS, x14, x15
+// CHECK-INST: tlbip vale2is, x14, x15
+// CHECK-TLBID: tlbip vale2is, x14, x15
+// CHECK-ENCODING: encoding: [0xae,0x83,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c83ae sysp #4, c8, c3, #5, x14, x15
+
+tlbip VALE2ISNXS, x14, x15
+// CHECK-INST: tlbip vale2isnxs, x14, x15
+// CHECK-TLBID: tlbip vale2isnxs, x14, x15
+// CHECK-ENCODING: encoding: [0xae,0x93,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c93ae sysp #4, c9, c3, #5, x14, x15
+
+tlbip VALE2OS, x14, x15
+// CHECK-INST: tlbip vale2os, x14, x15
+// CHECK-TLBID: tlbip vale2os, x14, x15
+// CHECK-ENCODING: encoding: [0xae,0x81,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c81ae sysp #4, c8, c1, #5, x14, x15
+
+tlbip VALE2OSNXS, x14, x15
+// CHECK-INST: tlbip vale2osnxs, x14, x15
+// CHECK-TLBID: tlbip vale2osnxs, x14, x15
+// CHECK-ENCODING: encoding: [0xae,0x91,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c91ae sysp #4, c9, c1, #5, x14, x15
+
+tlbip RVAE1IS, x18, x19
+// CHECK-INST: tlbip rvae1is, x18, x19
+// CHECK-TLBID: tlbip rvae1is, x18, x19
+// CHECK-ENCODING: encoding: [0x32,0x82,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5488232 sysp #0, c8, c2, #1, x18, x19
+
+tlbip RVAE1ISNXS, x18, x19
+// CHECK-INST: tlbip rvae1isnxs, x18, x19
+// CHECK-TLBID: tlbip rvae1isnxs, x18, x19
+// CHECK-ENCODING: encoding: [0x32,0x92,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5489232 sysp #0, c9, c2, #1, x18, x19
+
+tlbip RVAE1OS, x18, x19
+// CHECK-INST: tlbip rvae1os, x18, x19
+// CHECK-TLBID: tlbip rvae1os, x18, x19
+// CHECK-ENCODING: encoding: [0x32,0x85,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5488532 sysp #0, c8, c5, #1, x18, x19
+
+tlbip RVAE1OSNXS, x18, x19
+// CHECK-INST: tlbip rvae1osnxs, x18, x19
+// CHECK-TLBID: tlbip rvae1osnxs, x18, x19
+// CHECK-ENCODING: encoding: [0x32,0x95,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5489532 sysp #0, c9, c5, #1, x18, x19
+
+tlbip RVAAE1IS, x18, x19
+// CHECK-INST: tlbip rvaae1is, x18, x19
+// CHECK-TLBID: tlbip rvaae1is, x18, x19
+// CHECK-ENCODING: encoding: [0x72,0x82,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5488272 sysp #0, c8, c2, #3, x18, x19
+
+tlbip RVAAE1ISNXS, x18, x19
+// CHECK-INST: tlbip rvaae1isnxs, x18, x19
+// CHECK-TLBID: tlbip rvaae1isnxs, x18, x19
+// CHECK-ENCODING: encoding: [0x72,0x92,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5489272 sysp #0, c9, c2, #3, x18, x19
+
+tlbip RVAAE1OS, x18, x19
+// CHECK-INST: tlbip rvaae1os, x18, x19
+// CHECK-TLBID: tlbip rvaae1os, x18, x19
+// CHECK-ENCODING: encoding: [0x72,0x85,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5488572 sysp #0, c8, c5, #3, x18, x19
+
+tlbip RVAAE1OSNXS, x18, x19
+// CHECK-INST: tlbip rvaae1osnxs, x18, x19
+// CHECK-TLBID: tlbip rvaae1osnxs, x18, x19
+// CHECK-ENCODING: encoding: [0x72,0x95,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d5489572 sysp #0, c9, c5, #3, x18, x19
+
+tlbip RVALE1IS, x18, x19
+// CHECK-INST: tlbip rvale1is, x18, x19
+// CHECK-TLBID: tlbip rvale1is, x18, x19
+// CHECK-ENCODING: encoding: [0xb2,0x82,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54882b2 sysp #0, c8, c2, #5, x18, x19
+
+tlbip RVALE1ISNXS, x18, x19
+// CHECK-INST: tlbip rvale1isnxs, x18, x19
+// CHECK-TLBID: tlbip rvale1isnxs, x18, x19
+// CHECK-ENCODING: encoding: [0xb2,0x92,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54892b2 sysp #0, c9, c2, #5, x18, x19
+
+tlbip RVALE1OS, x18, x19
+// CHECK-INST: tlbip rvale1os, x18, x19
+// CHECK-TLBID: tlbip rvale1os, x18, x19
+// CHECK-ENCODING: encoding: [0xb2,0x85,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54885b2 sysp #0, c8, c5, #5, x18, x19
+
+tlbip RVALE1OSNXS, x18, x19
+// CHECK-INST: tlbip rvale1osnxs, x18, x19
+// CHECK-TLBID: tlbip rvale1osnxs, x18, x19
+// CHECK-ENCODING: encoding: [0xb2,0x95,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54895b2 sysp #0, c9, c5, #5, x18, x19
+
+tlbip RVAALE1IS, x18, x19
+// CHECK-INST: tlbip rvaale1is, x18, x19
+// CHECK-TLBID: tlbip rvaale1is, x18, x19
+// CHECK-ENCODING: encoding: [0xf2,0x82,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54882f2 sysp #0, c8, c2, #7, x18, x19
+
+tlbip RVAALE1ISNXS, x18, x19
+// CHECK-INST: tlbip rvaale1isnxs, x18, x19
+// CHECK-TLBID: tlbip rvaale1isnxs, x18, x19
+// CHECK-ENCODING: encoding: [0xf2,0x92,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54892f2 sysp #0, c9, c2, #7, x18, x19
+
+tlbip RVAALE1OS, x18, x19
+// CHECK-INST: tlbip rvaale1os, x18, x19
+// CHECK-TLBID: tlbip rvaale1os, x18, x19
+// CHECK-ENCODING: encoding: [0xf2,0x85,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54885f2 sysp #0, c8, c5, #7, x18, x19
+
+tlbip RVAALE1OSNXS, x18, x19
+// CHECK-INST: tlbip rvaale1osnxs, x18, x19
+// CHECK-TLBID: tlbip rvaale1osnxs, x18, x19
+// CHECK-ENCODING: encoding: [0xf2,0x95,0x48,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54895f2 sysp #0, c9, c5, #7, x18, x19
+
+tlbip RVAE2IS, x28, x29
+// CHECK-INST: tlbip rvae2is, x28, x29
+// CHECK-TLBID: tlbip rvae2is, x28, x29
+// CHECK-ENCODING: encoding: [0x3c,0x82,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c823c sysp #4, c8, c2, #1, x28, x29
+
+tlbip RVAE2ISNXS, x28, x29
+// CHECK-INST: tlbip rvae2isnxs, x28, x29
+// CHECK-TLBID: tlbip rvae2isnxs, x28, x29
+// CHECK-ENCODING: encoding: [0x3c,0x92,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c923c sysp #4, c9, c2, #1, x28, x29
+
+tlbip RVAE2OS, x28, x29
+// CHECK-INST: tlbip rvae2os, x28, x29
+// CHECK-TLBID: tlbip rvae2os, x28, x29
+// CHECK-ENCODING: encoding: [0x3c,0x85,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c853c sysp #4, c8, c5, #1, x28, x29
+
+tlbip RVAE2OSNXS, x28, x29
+// CHECK-INST: tlbip rvae2osnxs, x28, x29
+// CHECK-TLBID: tlbip rvae2osnxs, x28, x29
+// CHECK-ENCODING: encoding: [0x3c,0x95,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c953c sysp #4, c9, c5, #1, x28, x29
+
+tlbip RVALE2IS, x28, x29
+// CHECK-INST: tlbip rvale2is, x28, x29
+// CHECK-TLBID: tlbip rvale2is, x28, x29
+// CHECK-ENCODING: encoding: [0xbc,0x82,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c82bc sysp #4, c8, c2, #5, x28, x29
+
+tlbip RVALE2ISNXS, x28, x29
+// CHECK-INST: tlbip rvale2isnxs, x28, x29
+// CHECK-TLBID: tlbip rvale2isnxs, x28, x29
+// CHECK-ENCODING: encoding: [0xbc,0x92,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c92bc sysp #4, c9, c2, #5, x28, x29
+
+tlbip RVALE2OS, x28, x29
+// CHECK-INST: tlbip rvale2os, x28, x29
+// CHECK-TLBID: tlbip rvale2os, x28, x29
+// CHECK-ENCODING: encoding: [0xbc,0x85,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c85bc sysp #4, c8, c5, #5, x28, x29
+
+tlbip RVALE2OSNXS, x28, x29
+// CHECK-INST: tlbip rvale2osnxs, x28, x29
+// CHECK-TLBID: tlbip rvale2osnxs, x28, x29
+// CHECK-ENCODING: encoding: [0xbc,0x95,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c95bc sysp #4, c9, c5, #5, x28, x29
+
+tlbip RIPAS2E1IS, x20, x21
+// CHECK-INST: tlbip ripas2e1is, x20, x21
+// CHECK-TLBID: tlbip ripas2e1is, x20, x21
+// CHECK-ENCODING: encoding: [0x54,0x80,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c8054 sysp #4, c8, c0, #2, x20, x21
+
+tlbip RIPAS2E1ISNXS, x20, x21
+// CHECK-INST: tlbip ripas2e1isnxs, x20, x21
+// CHECK-TLBID: tlbip ripas2e1isnxs, x20, x21
+// CHECK-ENCODING: encoding: [0x54,0x90,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c9054 sysp #4, c9, c0, #2, x20, x21
+
+tlbip RIPAS2E1OS, x20, x21
+// CHECK-INST: tlbip ripas2e1os, x20, x21
+// CHECK-TLBID: tlbip ripas2e1os, x20, x21
+// CHECK-ENCODING: encoding: [0x74,0x84,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c8474 sysp #4, c8, c4, #3, x20, x21
+
+tlbip RIPAS2E1OSNXS, x20, x21
+// CHECK-INST: tlbip ripas2e1osnxs, x20, x21
+// CHECK-TLBID: tlbip ripas2e1osnxs, x20, x21
+// CHECK-ENCODING: encoding: [0x74,0x94,0x4c,0xd5]
+// CHECK-ERROR: error: instruction requires: tlbid or d128
+// CHECK-UNKNOWN: d54c9474 sysp #4, c9, c4, #3, x20, x21
 
 tlbip RIPAS2LE1IS, x20, x21
 // CHECK-INST: tlbip ripas2le1is, x20, x21

>From 04a3b0fe522ef121469a05f581cd5f1e5f04f3ef Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Mon, 30 Mar 2026 23:40:10 +0100
Subject: [PATCH 07/10] fixup! Fix commits after rebase to main

---
 .../Target/AArch64/AArch64SystemOperands.td   | 44 +++++++------------
 .../Target/AArch64/Utils/AArch64BaseInfo.h    | 11 +++--
 llvm/test/MC/AArch64/armv9a-tlbip.s           |  6 +++
 3 files changed, 28 insertions(+), 33 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AArch64SystemOperands.td b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
index 47eb3ea3acb4b..723cbcb4d78c0 100644
--- a/llvm/lib/Target/AArch64/AArch64SystemOperands.td
+++ b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
@@ -880,22 +880,9 @@ class TLBIEntry<string name, bits<3> op1, bits<4> crm, bits<3> op2, bit nxs,
   : TLBICommon<name, op1, crm, op2, nxs, reguse>;
 
 class TLBIPEntry<string name, bits<3> op1, bits<4> crm, bits<3> op2, bit nxs,
-                RegValue reguse>
-  : TLBICommon<name, op1, crm, op2, nxs, reguse>;
-
-multiclass TLBITableBase {
-  def NAME # Table : GenericTable {
-    let FilterClass = NAME # "Entry";
-    let CppTypeName = NAME;
-    let Fields = ["Name", "Encoding", "RegUse", "RequiresStr"];
-    string TypeOf_RegUse = "SysAliasRegUse";
-    let PrimaryKey = ["Encoding"];
-    let PrimaryKeyName = "lookup" # NAME # "ByEncoding";
-  }
-  def lookup # NAME # ByName : SearchIndex {
-    let Table = !cast<GenericTable>(NAME # "Table");
-    let Key = ["Name"];
-  }
+                 RegValue reguse, bit allowWithTLBID>
+  : TLBICommon<name, op1, crm, op2, nxs, reguse> {
+  bit AllowWithTLBID = allowWithTLBID;
 }
 
 multiclass TLBITableBase<list<string> fields> {
@@ -903,6 +890,7 @@ multiclass TLBITableBase<list<string> fields> {
     let FilterClass = NAME # "Entry";
     let CppTypeName = NAME;
     let Fields = fields;
+    string TypeOf_RegUse = "SysAliasRegUse";
     let PrimaryKey = ["Encoding"];
     let PrimaryKeyName = "lookup" # NAME # "ByEncoding";
   }
@@ -913,10 +901,9 @@ multiclass TLBITableBase<list<string> fields> {
 }
 
 defm TLBI : TLBITableBase<
-    ["Name", "Encoding", "NeedsReg", "OptionalReg", "RequiresStr"]>;
+    ["Name", "Encoding", "RegUse", "RequiresStr"]>;
 defm TLBIP : TLBITableBase<
-    ["Name", "Encoding", "NeedsReg", "OptionalReg", "RequiresStr",
-     "d128orTLBID"]>;
+    ["Name", "Encoding", "RegUse", "RequiresStr", "AllowWithTLBID"]>;
 
 class TLBI<string name, bits<3> op1, bits<4> crm, bits<3> op2,
            RegValue reguse, bit hasTLBIP = 0> {
@@ -972,10 +959,12 @@ foreach I = TLBIBase in {
   }
 
   if I.HasTLBIP then {
-    let Requires = ["AArch64::FeatureD128"] in {
-      def : TLBIPEntry<I.Name, I.Op1, I.CRm, I.Op2, 0, I.RegUse>;
-      def : TLBIPEntry<!strconcat(I.Name, "nXS"), I.Op1, I.CRm, I.Op2, 1, I.RegUse>;
-    }
+    // These TLBIP aliases accept either FEAT_D128 or FEAT_TLBID.
+    defvar AllowWithTLBID = !match(I.Name, ".*E[12][IO]S.*");
+    def : TLBIPEntry<I.Name, I.Op1, I.CRm, I.Op2, 0, I.RegUse,
+                     AllowWithTLBID>;
+    def : TLBIPEntry<!strconcat(I.Name, "nXS"), I.Op1, I.CRm, I.Op2, 1,
+                     I.RegUse, AllowWithTLBID>;
   }
 }
 
@@ -1040,10 +1029,11 @@ foreach I = TLBIRMI in {
   }
 
   if I.HasTLBIP then {
-    let Requires = ["AArch64::FeatureD128"] in {
-      def : TLBIPEntry<I.Name, I.Op1, I.CRm, I.Op2, 0, I.RegUse>;
-      def : TLBIPEntry<!strconcat(I.Name, "nXS"), I.Op1, I.CRm, I.Op2, 1, I.RegUse>;
-    }
+    defvar AllowWithTLBID = !match(I.Name, ".*E[12][IO]S.*");
+    def : TLBIPEntry<I.Name, I.Op1, I.CRm, I.Op2, 0, I.RegUse,
+                     AllowWithTLBID>;
+    def : TLBIPEntry<!strconcat(I.Name, "nXS"), I.Op1, I.CRm, I.Op2, 1,
+                     I.RegUse, AllowWithTLBID>;
   }
 }
 
diff --git a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
index 62e1bdecda68c..3411b28d616d9 100644
--- a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+++ b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
@@ -458,16 +458,15 @@ struct SysAliasOptionalReg : SysAlias {
 struct TLBIPSysAlias : SysAliasOptionalReg {
   bool AllowWithTLBID;
 
-  constexpr TLBIPSysAlias(const char *N, uint16_t E, bool R, bool O,
+  constexpr TLBIPSysAlias(const char *N, uint16_t E, SysAliasRegUse R,
                           FeatureBitset F, bool AllowWithTLBID)
-      : SysAliasOptionalReg(N, E, R, O, F),
-        AllowWithTLBID(AllowWithTLBID) {}
+      : SysAliasOptionalReg(N, E, R, F), AllowWithTLBID(AllowWithTLBID) {}
 
   bool haveFeatures(FeatureBitset ActiveFeatures) const {
     return SysAliasOptionalReg::haveFeatures(ActiveFeatures) &&
-           (ActiveFeatures[llvm::AArch64::FeatureD128] ||
-            (AllowWithTLBID &&
-             ActiveFeatures[llvm::AArch64::FeatureTLBID]));
+           (ActiveFeatures[llvm::AArch64::FeatureAll] ||
+            ActiveFeatures[llvm::AArch64::FeatureD128] ||
+            (AllowWithTLBID && ActiveFeatures[llvm::AArch64::FeatureTLBID]));
   }
 };
 
diff --git a/llvm/test/MC/AArch64/armv9a-tlbip.s b/llvm/test/MC/AArch64/armv9a-tlbip.s
index f3edee7ff77e4..80acf2852c39e 100644
--- a/llvm/test/MC/AArch64/armv9a-tlbip.s
+++ b/llvm/test/MC/AArch64/armv9a-tlbip.s
@@ -1,9 +1,15 @@
 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+d128 < %s \
 // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+all < %s \
+// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
 // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
 // RUN:        | FileCheck %s --check-prefixes=CHECK-ERROR
+// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+tlbid < %s 2>&1 \
+// RUN:        | FileCheck %s --check-prefixes=CHECK-TLBID,CHECK-NOT-TLBID
 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+d128 < %s \
 // RUN:        | llvm-objdump -d --mattr=+d128 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST
+// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+all < %s \
+// RUN:        | llvm-objdump -d --mattr=+all --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST
 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+d128 < %s \
 // RUN:        | llvm-objdump -d --mattr=-d128 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN
 // Disassemble encoding and check the re-encoding (-show-encoding) matches.

>From 007b49c6c4265ea9e06c48a70eb4382af087d3be Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Tue, 31 Mar 2026 12:21:48 +0100
Subject: [PATCH 08/10] fixup! More PR cleanups following comments

---
 .../Target/AArch64/AArch64SystemOperands.td    | 18 +++++++-----------
 llvm/test/MC/AArch64/armv9a-tlbip.s            |  4 ----
 2 files changed, 7 insertions(+), 15 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AArch64SystemOperands.td b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
index 723cbcb4d78c0..e5a8844f078f4 100644
--- a/llvm/lib/Target/AArch64/AArch64SystemOperands.td
+++ b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
@@ -880,9 +880,10 @@ class TLBIEntry<string name, bits<3> op1, bits<4> crm, bits<3> op2, bit nxs,
   : TLBICommon<name, op1, crm, op2, nxs, reguse>;
 
 class TLBIPEntry<string name, bits<3> op1, bits<4> crm, bits<3> op2, bit nxs,
-                 RegValue reguse, bit allowWithTLBID>
+                 RegValue reguse>
   : TLBICommon<name, op1, crm, op2, nxs, reguse> {
-  bit AllowWithTLBID = allowWithTLBID;
+  // TLBIP insns matching regex below allow either FEAT_D128 or FEAT_TLBID.
+  bit AllowWithTLBID = !match(name, ".*E[12][IO]S.*");
 }
 
 multiclass TLBITableBase<list<string> fields> {
@@ -959,12 +960,9 @@ foreach I = TLBIBase in {
   }
 
   if I.HasTLBIP then {
-    // These TLBIP aliases accept either FEAT_D128 or FEAT_TLBID.
-    defvar AllowWithTLBID = !match(I.Name, ".*E[12][IO]S.*");
-    def : TLBIPEntry<I.Name, I.Op1, I.CRm, I.Op2, 0, I.RegUse,
-                     AllowWithTLBID>;
+    def : TLBIPEntry<I.Name, I.Op1, I.CRm, I.Op2, 0, I.RegUse>;
     def : TLBIPEntry<!strconcat(I.Name, "nXS"), I.Op1, I.CRm, I.Op2, 1,
-                     I.RegUse, AllowWithTLBID>;
+                     I.RegUse>;
   }
 }
 
@@ -1029,11 +1027,9 @@ foreach I = TLBIRMI in {
   }
 
   if I.HasTLBIP then {
-    defvar AllowWithTLBID = !match(I.Name, ".*E[12][IO]S.*");
-    def : TLBIPEntry<I.Name, I.Op1, I.CRm, I.Op2, 0, I.RegUse,
-                     AllowWithTLBID>;
+    def : TLBIPEntry<I.Name, I.Op1, I.CRm, I.Op2, 0, I.RegUse>;
     def : TLBIPEntry<!strconcat(I.Name, "nXS"), I.Op1, I.CRm, I.Op2, 1,
-                     I.RegUse, AllowWithTLBID>;
+                     I.RegUse>;
   }
 }
 
diff --git a/llvm/test/MC/AArch64/armv9a-tlbip.s b/llvm/test/MC/AArch64/armv9a-tlbip.s
index 80acf2852c39e..3cf31120b70c5 100644
--- a/llvm/test/MC/AArch64/armv9a-tlbip.s
+++ b/llvm/test/MC/AArch64/armv9a-tlbip.s
@@ -1,15 +1,11 @@
 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+d128 < %s \
 // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
-// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+all < %s \
-// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
 // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
 // RUN:        | FileCheck %s --check-prefixes=CHECK-ERROR
 // RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+tlbid < %s 2>&1 \
 // RUN:        | FileCheck %s --check-prefixes=CHECK-TLBID,CHECK-NOT-TLBID
 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+d128 < %s \
 // RUN:        | llvm-objdump -d --mattr=+d128 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST
-// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+all < %s \
-// RUN:        | llvm-objdump -d --mattr=+all --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST
 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+d128 < %s \
 // RUN:        | llvm-objdump -d --mattr=-d128 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN
 // Disassemble encoding and check the re-encoding (-show-encoding) matches.

>From c0b77b8205f82774ab1cb41d7813433870b98a6a Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Tue, 31 Mar 2026 12:41:18 +0100
Subject: [PATCH 09/10] fixup! Optimise RUN lines in armv9a-tlbip.s

---
 llvm/test/MC/AArch64/armv9a-tlbip.s | 172 ++++++++++------------------
 1 file changed, 58 insertions(+), 114 deletions(-)

diff --git a/llvm/test/MC/AArch64/armv9a-tlbip.s b/llvm/test/MC/AArch64/armv9a-tlbip.s
index 3cf31120b70c5..d2fdf276dd5c2 100644
--- a/llvm/test/MC/AArch64/armv9a-tlbip.s
+++ b/llvm/test/MC/AArch64/armv9a-tlbip.s
@@ -1,9 +1,9 @@
 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+d128 < %s \
 // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
 // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
-// RUN:        | FileCheck %s --check-prefixes=CHECK-ERROR
+// RUN:        | FileCheck %s --check-prefixes=CHECK-D128,CHECK-ERROR
 // RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+tlbid < %s 2>&1 \
-// RUN:        | FileCheck %s --check-prefixes=CHECK-TLBID,CHECK-NOT-TLBID
+// RUN:        | FileCheck %s --check-prefixes=CHECK-D128,CHECK-TLBID
 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+d128 < %s \
 // RUN:        | llvm-objdump -d --mattr=+d128 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST
 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+d128 < %s \
@@ -23,393 +23,337 @@
 tlbip IPAS2E1, x4, x5
 // CHECK-INST: tlbip ipas2e1, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c8424 sysp #4, c8, c4, #1, x4, x5
 
 tlbip IPAS2E1NXS, x4, x5
 // CHECK-INST: tlbip ipas2e1nxs, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c9424 sysp #4, c9, c4, #1, x4, x5
 
 tlbip IPAS2LE1, x4, x5
 // CHECK-INST: tlbip ipas2le1, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c84a4 sysp #4, c8, c4, #5, x4, x5
 
 tlbip IPAS2LE1NXS, x4, x5
 // CHECK-INST: tlbip ipas2le1nxs, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c94a4 sysp #4, c9, c4, #5, x4, x5
 
 tlbip VAE1, x8, x9
 // CHECK-INST: tlbip vae1, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x87,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d5488728 sysp #0, c8, c7, #1, x8, x9
 
 tlbip VAE1NXS, x8, x9
 // CHECK-INST: tlbip vae1nxs, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x97,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489728 sysp #0, c9, c7, #1, x8, x9
 
 tlbip VALE1, x8, x9
 // CHECK-INST: tlbip vale1, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x87,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54887a8 sysp #0, c8, c7, #5, x8, x9
 
 tlbip VALE1NXS, x8, x9
 // CHECK-INST: tlbip vale1nxs, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x97,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54897a8 sysp #0, c9, c7, #5, x8, x9
 
 tlbip VAAE1, x8, x9
 // CHECK-INST: tlbip vaae1, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x87,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d5488768 sysp #0, c8, c7, #3, x8, x9
 
 tlbip VAAE1NXS, x8, x9
 // CHECK-INST: tlbip vaae1nxs, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x97,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489768 sysp #0, c9, c7, #3, x8, x9
 
 tlbip VAALE1, x8, x9
 // CHECK-INST: tlbip vaale1, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x87,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54887e8 sysp #0, c8, c7, #7, x8, x9
 
 tlbip VAALE1NXS, x8, x9
 // CHECK-INST: tlbip vaale1nxs, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x97,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54897e8 sysp #0, c9, c7, #7, x8, x9
 
 tlbip VAE2, x14, x15
 // CHECK-INST: tlbip vae2, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x87,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c872e sysp #4, c8, c7, #1, x14, x15
 
 tlbip VAE2NXS, x14, x15
 // CHECK-INST: tlbip vae2nxs, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x97,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c972e sysp #4, c9, c7, #1, x14, x15
 
 tlbip VALE2, x14, x15
 // CHECK-INST: tlbip vale2, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x87,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c87ae sysp #4, c8, c7, #5, x14, x15
 
 tlbip VALE2NXS, x14, x15
 // CHECK-INST: tlbip vale2nxs, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x97,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c97ae sysp #4, c9, c7, #5, x14, x15
 
 tlbip VAE3, x24, x25
 // CHECK-INST: tlbip vae3, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x87,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e8738 sysp #6, c8, c7, #1, x24, x25
 
 tlbip VAE3NXS, x24, x25
 // CHECK-INST: tlbip vae3nxs, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x97,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e9738 sysp #6, c9, c7, #1, x24, x25
 
 tlbip VAE3IS, x24, x25
 // CHECK-INST: tlbip vae3is, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x83,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e8338 sysp #6, c8, c3, #1, x24, x25
 
 tlbip VAE3ISNXS, x24, x25
 // CHECK-INST: tlbip vae3isnxs, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x93,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e9338 sysp #6, c9, c3, #1, x24, x25
 
 tlbip VAE3OS, x24, x25
 // CHECK-INST: tlbip vae3os, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x81,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e8138 sysp #6, c8, c1, #1, x24, x25
 
 tlbip VAE3OSNXS, x24, x25
 // CHECK-INST: tlbip vae3osnxs, x24, x25
 // CHECK-ENCODING: encoding: [0x38,0x91,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e9138 sysp #6, c9, c1, #1, x24, x25
 
 tlbip VALE3, x24, x25
 // CHECK-INST: tlbip vale3, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x87,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e87b8 sysp #6, c8, c7, #5, x24, x25
 
 tlbip VALE3NXS, x24, x25
 // CHECK-INST: tlbip vale3nxs, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x97,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e97b8 sysp #6, c9, c7, #5, x24, x25
 
 tlbip VALE3IS, x24, x25
 // CHECK-INST: tlbip vale3is, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x83,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e83b8 sysp #6, c8, c3, #5, x24, x25
 
 tlbip VALE3ISNXS, x24, x25
 // CHECK-INST: tlbip vale3isnxs, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x93,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e93b8 sysp #6, c9, c3, #5, x24, x25
 
 tlbip VALE3OS, x24, x25
 // CHECK-INST: tlbip vale3os, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x81,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e81b8 sysp #6, c8, c1, #5, x24, x25
 
 tlbip VALE3OSNXS, x24, x25
 // CHECK-INST: tlbip vale3osnxs, x24, x25
 // CHECK-ENCODING: encoding: [0xb8,0x91,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e91b8 sysp #6, c9, c1, #5, x24, x25
 
 tlbip RVAE1, x18, x19
 // CHECK-INST: tlbip rvae1, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x86,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d5488632 sysp #0, c8, c6, #1, x18, x19
 
 tlbip RVAE1NXS, x18, x19
 // CHECK-INST: tlbip rvae1nxs, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x96,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489632 sysp #0, c9, c6, #1, x18, x19
 
 tlbip RVAAE1, x18, x19
 // CHECK-INST: tlbip rvaae1, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x86,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d5488672 sysp #0, c8, c6, #3, x18, x19
 
 tlbip RVAAE1NXS, x18, x19
 // CHECK-INST: tlbip rvaae1nxs, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x96,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d5489672 sysp #0, c9, c6, #3, x18, x19
 
 tlbip RVALE1, x18, x19
 // CHECK-INST: tlbip rvale1, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x86,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54886b2 sysp #0, c8, c6, #5, x18, x19
 
 tlbip RVALE1NXS, x18, x19
 // CHECK-INST: tlbip rvale1nxs, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x96,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54896b2 sysp #0, c9, c6, #5, x18, x19
 
 tlbip RVAALE1, x18, x19
 // CHECK-INST: tlbip rvaale1, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x86,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54886f2 sysp #0, c8, c6, #7, x18, x19
 
 tlbip RVAALE1NXS, x18, x19
 // CHECK-INST: tlbip rvaale1nxs, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x96,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54896f2 sysp #0, c9, c6, #7, x18, x19
 
 tlbip RVAE2, x28, x29
 // CHECK-INST: tlbip rvae2, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x86,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c863c sysp #4, c8, c6, #1, x28, x29
 
 tlbip RVAE2NXS, x28, x29
 // CHECK-INST: tlbip rvae2nxs, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x96,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c963c sysp #4, c9, c6, #1, x28, x29
 
 tlbip RVALE2, x28, x29
 // CHECK-INST: tlbip rvale2, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x86,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c86bc sysp #4, c8, c6, #5, x28, x29
 
 tlbip RVALE2NXS, x28, x29
 // CHECK-INST: tlbip rvale2nxs, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x96,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c96bc sysp #4, c9, c6, #5, x28, x29
 
 tlbip RVAE3, x10, x11
 // CHECK-INST: tlbip rvae3, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x86,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e862a sysp #6, c8, c6, #1, x10, x11
 
 tlbip RVAE3NXS, x10, x11
 // CHECK-INST: tlbip rvae3nxs, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x96,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e962a sysp #6, c9, c6, #1, x10, x11
 
 tlbip RVAE3IS, x10, x11
 // CHECK-INST: tlbip rvae3is, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x82,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e822a sysp #6, c8, c2, #1, x10, x11
 
 tlbip RVAE3ISNXS, x10, x11
 // CHECK-INST: tlbip rvae3isnxs, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x92,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e922a sysp #6, c9, c2, #1, x10, x11
 
 tlbip RVAE3OS, x10, x11
 // CHECK-INST: tlbip rvae3os, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x85,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e852a sysp #6, c8, c5, #1, x10, x11
 
 tlbip RVAE3OSNXS, x10, x11
 // CHECK-INST: tlbip rvae3osnxs, x10, x11
 // CHECK-ENCODING: encoding: [0x2a,0x95,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e952a sysp #6, c9, c5, #1, x10, x11
 
 tlbip RVALE3, x10, x11
 // CHECK-INST: tlbip rvale3, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x86,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e86aa sysp #6, c8, c6, #5, x10, x11
 
 tlbip RVALE3NXS, x10, x11
 // CHECK-INST: tlbip rvale3nxs, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x96,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e96aa sysp #6, c9, c6, #5, x10, x11
 
 tlbip RVALE3IS, x10, x11
 // CHECK-INST: tlbip rvale3is, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x82,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e82aa sysp #6, c8, c2, #5, x10, x11
 
 tlbip RVALE3ISNXS, x10, x11
 // CHECK-INST: tlbip rvale3isnxs, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x92,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e92aa sysp #6, c9, c2, #5, x10, x11
 
 tlbip RVALE3OS, x10, x11
 // CHECK-INST: tlbip rvale3os, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x85,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e85aa sysp #6, c8, c5, #5, x10, x11
 
 tlbip RVALE3OSNXS, x10, x11
 // CHECK-INST: tlbip rvale3osnxs, x10, x11
 // CHECK-ENCODING: encoding: [0xaa,0x95,0x4e,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54e95aa sysp #6, c9, c5, #5, x10, x11
 
 tlbip RIPAS2E1, x20, x21
 // CHECK-INST: tlbip ripas2e1, x20, x21
 // CHECK-ENCODING: encoding: [0x54,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c8454 sysp #4, c8, c4, #2, x20, x21
 
 tlbip RIPAS2E1NXS, x20, x21
 // CHECK-INST: tlbip ripas2e1nxs, x20, x21
 // CHECK-ENCODING: encoding: [0x54,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c9454 sysp #4, c9, c4, #2, x20, x21
 
 tlbip RIPAS2LE1, x20, x21
 // CHECK-INST: tlbip ripas2le1, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c84d4 sysp #4, c8, c4, #6, x20, x21
 
 tlbip RIPAS2LE1NXS, x20, x21
 // CHECK-INST: tlbip ripas2le1nxs, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: d128
-// CHECK-NOT-TLBID: error: instruction requires: d128
+// CHECK-D128: error: instruction requires: d128
 // CHECK-UNKNOWN: d54c94d4 sysp #4, c9, c4, #6, x20, x21
 
 //

>From 56d4c2407755f554ff4f008825c7cabfdbea8461 Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Tue, 31 Mar 2026 16:26:22 +0100
Subject: [PATCH 10/10] fixup! Split armv9a-tlbip.s into two test files

---
 llvm/test/MC/AArch64/armv9a-tlbip-d128.s      | 351 +++++++++++
 .../{armv9a-tlbip.s => armv9a-tlbip-tlbid.s}  | 552 +++---------------
 2 files changed, 422 insertions(+), 481 deletions(-)
 create mode 100644 llvm/test/MC/AArch64/armv9a-tlbip-d128.s
 rename llvm/test/MC/AArch64/{armv9a-tlbip.s => armv9a-tlbip-tlbid.s} (51%)

diff --git a/llvm/test/MC/AArch64/armv9a-tlbip-d128.s b/llvm/test/MC/AArch64/armv9a-tlbip-d128.s
new file mode 100644
index 0000000000000..60db8ced9909b
--- /dev/null
+++ b/llvm/test/MC/AArch64/armv9a-tlbip-d128.s
@@ -0,0 +1,351 @@
+// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
+// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
+// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+d128 < %s \
+// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+d128 < %s \
+// RUN:        | llvm-objdump -d --mattr=+d128 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST
+// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+d128 < %s \
+// RUN:        | llvm-objdump -d --mattr=-d128 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN
+// Disassemble encoding and check the re-encoding (-show-encoding) matches.
+// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+d128 < %s \
+// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \
+// RUN:        | llvm-mc -triple=aarch64 -mattr=+d128 -disassemble -show-encoding \
+// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+
+// +d128 required for these tlbip SYSP aliases.
+
+tlbip IPAS2E1, x4, x5
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip ipas2e1, x4, x5
+// CHECK-ENCODING: encoding: [0x24,0x84,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c8424 sysp #4, c8, c4, #1, x4, x5
+
+tlbip IPAS2E1NXS, x4, x5
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip ipas2e1nxs, x4, x5
+// CHECK-ENCODING: encoding: [0x24,0x94,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c9424 sysp #4, c9, c4, #1, x4, x5
+
+tlbip IPAS2LE1, x4, x5
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip ipas2le1, x4, x5
+// CHECK-ENCODING: encoding: [0xa4,0x84,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c84a4 sysp #4, c8, c4, #5, x4, x5
+
+tlbip IPAS2LE1NXS, x4, x5
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip ipas2le1nxs, x4, x5
+// CHECK-ENCODING: encoding: [0xa4,0x94,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c94a4 sysp #4, c9, c4, #5, x4, x5
+
+tlbip VAE1, x8, x9
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vae1, x8, x9
+// CHECK-ENCODING: encoding: [0x28,0x87,0x48,0xd5]
+// CHECK-UNKNOWN: d5488728 sysp #0, c8, c7, #1, x8, x9
+
+tlbip VAE1NXS, x8, x9
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vae1nxs, x8, x9
+// CHECK-ENCODING: encoding: [0x28,0x97,0x48,0xd5]
+// CHECK-UNKNOWN: d5489728 sysp #0, c9, c7, #1, x8, x9
+
+tlbip VALE1, x8, x9
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vale1, x8, x9
+// CHECK-ENCODING: encoding: [0xa8,0x87,0x48,0xd5]
+// CHECK-UNKNOWN: d54887a8 sysp #0, c8, c7, #5, x8, x9
+
+tlbip VALE1NXS, x8, x9
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vale1nxs, x8, x9
+// CHECK-ENCODING: encoding: [0xa8,0x97,0x48,0xd5]
+// CHECK-UNKNOWN: d54897a8 sysp #0, c9, c7, #5, x8, x9
+
+tlbip VAAE1, x8, x9
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vaae1, x8, x9
+// CHECK-ENCODING: encoding: [0x68,0x87,0x48,0xd5]
+// CHECK-UNKNOWN: d5488768 sysp #0, c8, c7, #3, x8, x9
+
+tlbip VAAE1NXS, x8, x9
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vaae1nxs, x8, x9
+// CHECK-ENCODING: encoding: [0x68,0x97,0x48,0xd5]
+// CHECK-UNKNOWN: d5489768 sysp #0, c9, c7, #3, x8, x9
+
+tlbip VAALE1, x8, x9
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vaale1, x8, x9
+// CHECK-ENCODING: encoding: [0xe8,0x87,0x48,0xd5]
+// CHECK-UNKNOWN: d54887e8 sysp #0, c8, c7, #7, x8, x9
+
+tlbip VAALE1NXS, x8, x9
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vaale1nxs, x8, x9
+// CHECK-ENCODING: encoding: [0xe8,0x97,0x48,0xd5]
+// CHECK-UNKNOWN: d54897e8 sysp #0, c9, c7, #7, x8, x9
+
+tlbip VAE2, x14, x15
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vae2, x14, x15
+// CHECK-ENCODING: encoding: [0x2e,0x87,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c872e sysp #4, c8, c7, #1, x14, x15
+
+tlbip VAE2NXS, x14, x15
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vae2nxs, x14, x15
+// CHECK-ENCODING: encoding: [0x2e,0x97,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c972e sysp #4, c9, c7, #1, x14, x15
+
+tlbip VALE2, x14, x15
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vale2, x14, x15
+// CHECK-ENCODING: encoding: [0xae,0x87,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c87ae sysp #4, c8, c7, #5, x14, x15
+
+tlbip VALE2NXS, x14, x15
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vale2nxs, x14, x15
+// CHECK-ENCODING: encoding: [0xae,0x97,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c97ae sysp #4, c9, c7, #5, x14, x15
+
+tlbip VAE3, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vae3, x24, x25
+// CHECK-ENCODING: encoding: [0x38,0x87,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e8738 sysp #6, c8, c7, #1, x24, x25
+
+tlbip VAE3NXS, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vae3nxs, x24, x25
+// CHECK-ENCODING: encoding: [0x38,0x97,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e9738 sysp #6, c9, c7, #1, x24, x25
+
+tlbip VAE3IS, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vae3is, x24, x25
+// CHECK-ENCODING: encoding: [0x38,0x83,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e8338 sysp #6, c8, c3, #1, x24, x25
+
+tlbip VAE3ISNXS, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vae3isnxs, x24, x25
+// CHECK-ENCODING: encoding: [0x38,0x93,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e9338 sysp #6, c9, c3, #1, x24, x25
+
+tlbip VAE3OS, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vae3os, x24, x25
+// CHECK-ENCODING: encoding: [0x38,0x81,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e8138 sysp #6, c8, c1, #1, x24, x25
+
+tlbip VAE3OSNXS, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vae3osnxs, x24, x25
+// CHECK-ENCODING: encoding: [0x38,0x91,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e9138 sysp #6, c9, c1, #1, x24, x25
+
+tlbip VALE3, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vale3, x24, x25
+// CHECK-ENCODING: encoding: [0xb8,0x87,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e87b8 sysp #6, c8, c7, #5, x24, x25
+
+tlbip VALE3NXS, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vale3nxs, x24, x25
+// CHECK-ENCODING: encoding: [0xb8,0x97,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e97b8 sysp #6, c9, c7, #5, x24, x25
+
+tlbip VALE3IS, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vale3is, x24, x25
+// CHECK-ENCODING: encoding: [0xb8,0x83,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e83b8 sysp #6, c8, c3, #5, x24, x25
+
+tlbip VALE3ISNXS, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vale3isnxs, x24, x25
+// CHECK-ENCODING: encoding: [0xb8,0x93,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e93b8 sysp #6, c9, c3, #5, x24, x25
+
+tlbip VALE3OS, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vale3os, x24, x25
+// CHECK-ENCODING: encoding: [0xb8,0x81,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e81b8 sysp #6, c8, c1, #5, x24, x25
+
+tlbip VALE3OSNXS, x24, x25
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip vale3osnxs, x24, x25
+// CHECK-ENCODING: encoding: [0xb8,0x91,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e91b8 sysp #6, c9, c1, #5, x24, x25
+
+tlbip RVAE1, x18, x19
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvae1, x18, x19
+// CHECK-ENCODING: encoding: [0x32,0x86,0x48,0xd5]
+// CHECK-UNKNOWN: d5488632 sysp #0, c8, c6, #1, x18, x19
+
+tlbip RVAE1NXS, x18, x19
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvae1nxs, x18, x19
+// CHECK-ENCODING: encoding: [0x32,0x96,0x48,0xd5]
+// CHECK-UNKNOWN: d5489632 sysp #0, c9, c6, #1, x18, x19
+
+tlbip RVAAE1, x18, x19
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvaae1, x18, x19
+// CHECK-ENCODING: encoding: [0x72,0x86,0x48,0xd5]
+// CHECK-UNKNOWN: d5488672 sysp #0, c8, c6, #3, x18, x19
+
+tlbip RVAAE1NXS, x18, x19
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvaae1nxs, x18, x19
+// CHECK-ENCODING: encoding: [0x72,0x96,0x48,0xd5]
+// CHECK-UNKNOWN: d5489672 sysp #0, c9, c6, #3, x18, x19
+
+tlbip RVALE1, x18, x19
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvale1, x18, x19
+// CHECK-ENCODING: encoding: [0xb2,0x86,0x48,0xd5]
+// CHECK-UNKNOWN: d54886b2 sysp #0, c8, c6, #5, x18, x19
+
+tlbip RVALE1NXS, x18, x19
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvale1nxs, x18, x19
+// CHECK-ENCODING: encoding: [0xb2,0x96,0x48,0xd5]
+// CHECK-UNKNOWN: d54896b2 sysp #0, c9, c6, #5, x18, x19
+
+tlbip RVAALE1, x18, x19
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvaale1, x18, x19
+// CHECK-ENCODING: encoding: [0xf2,0x86,0x48,0xd5]
+// CHECK-UNKNOWN: d54886f2 sysp #0, c8, c6, #7, x18, x19
+
+tlbip RVAALE1NXS, x18, x19
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvaale1nxs, x18, x19
+// CHECK-ENCODING: encoding: [0xf2,0x96,0x48,0xd5]
+// CHECK-UNKNOWN: d54896f2 sysp #0, c9, c6, #7, x18, x19
+
+tlbip RVAE2, x28, x29
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvae2, x28, x29
+// CHECK-ENCODING: encoding: [0x3c,0x86,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c863c sysp #4, c8, c6, #1, x28, x29
+
+tlbip RVAE2NXS, x28, x29
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvae2nxs, x28, x29
+// CHECK-ENCODING: encoding: [0x3c,0x96,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c963c sysp #4, c9, c6, #1, x28, x29
+
+tlbip RVALE2, x28, x29
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvale2, x28, x29
+// CHECK-ENCODING: encoding: [0xbc,0x86,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c86bc sysp #4, c8, c6, #5, x28, x29
+
+tlbip RVALE2NXS, x28, x29
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvale2nxs, x28, x29
+// CHECK-ENCODING: encoding: [0xbc,0x96,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c96bc sysp #4, c9, c6, #5, x28, x29
+
+tlbip RVAE3, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvae3, x10, x11
+// CHECK-ENCODING: encoding: [0x2a,0x86,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e862a sysp #6, c8, c6, #1, x10, x11
+
+tlbip RVAE3NXS, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvae3nxs, x10, x11
+// CHECK-ENCODING: encoding: [0x2a,0x96,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e962a sysp #6, c9, c6, #1, x10, x11
+
+tlbip RVAE3IS, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvae3is, x10, x11
+// CHECK-ENCODING: encoding: [0x2a,0x82,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e822a sysp #6, c8, c2, #1, x10, x11
+
+tlbip RVAE3ISNXS, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvae3isnxs, x10, x11
+// CHECK-ENCODING: encoding: [0x2a,0x92,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e922a sysp #6, c9, c2, #1, x10, x11
+
+tlbip RVAE3OS, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvae3os, x10, x11
+// CHECK-ENCODING: encoding: [0x2a,0x85,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e852a sysp #6, c8, c5, #1, x10, x11
+
+tlbip RVAE3OSNXS, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvae3osnxs, x10, x11
+// CHECK-ENCODING: encoding: [0x2a,0x95,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e952a sysp #6, c9, c5, #1, x10, x11
+
+tlbip RVALE3, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvale3, x10, x11
+// CHECK-ENCODING: encoding: [0xaa,0x86,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e86aa sysp #6, c8, c6, #5, x10, x11
+
+tlbip RVALE3NXS, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvale3nxs, x10, x11
+// CHECK-ENCODING: encoding: [0xaa,0x96,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e96aa sysp #6, c9, c6, #5, x10, x11
+
+tlbip RVALE3IS, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvale3is, x10, x11
+// CHECK-ENCODING: encoding: [0xaa,0x82,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e82aa sysp #6, c8, c2, #5, x10, x11
+
+tlbip RVALE3ISNXS, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvale3isnxs, x10, x11
+// CHECK-ENCODING: encoding: [0xaa,0x92,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e92aa sysp #6, c9, c2, #5, x10, x11
+
+tlbip RVALE3OS, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvale3os, x10, x11
+// CHECK-ENCODING: encoding: [0xaa,0x85,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e85aa sysp #6, c8, c5, #5, x10, x11
+
+tlbip RVALE3OSNXS, x10, x11
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip rvale3osnxs, x10, x11
+// CHECK-ENCODING: encoding: [0xaa,0x95,0x4e,0xd5]
+// CHECK-UNKNOWN: d54e95aa sysp #6, c9, c5, #5, x10, x11
+
+tlbip RIPAS2E1, x20, x21
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip ripas2e1, x20, x21
+// CHECK-ENCODING: encoding: [0x54,0x84,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c8454 sysp #4, c8, c4, #2, x20, x21
+
+tlbip RIPAS2E1NXS, x20, x21
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip ripas2e1nxs, x20, x21
+// CHECK-ENCODING: encoding: [0x54,0x94,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c9454 sysp #4, c9, c4, #2, x20, x21
+
+tlbip RIPAS2LE1, x20, x21
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip ripas2le1, x20, x21
+// CHECK-ENCODING: encoding: [0xd4,0x84,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c84d4 sysp #4, c8, c4, #6, x20, x21
+
+tlbip RIPAS2LE1NXS, x20, x21
+// CHECK-ERROR: error: instruction requires: d128
+// CHECK-INST: tlbip ripas2le1nxs, x20, x21
+// CHECK-ENCODING: encoding: [0xd4,0x94,0x4c,0xd5]
+// CHECK-UNKNOWN: d54c94d4 sysp #4, c9, c4, #6, x20, x21
diff --git a/llvm/test/MC/AArch64/armv9a-tlbip.s b/llvm/test/MC/AArch64/armv9a-tlbip-tlbid.s
similarity index 51%
rename from llvm/test/MC/AArch64/armv9a-tlbip.s
rename to llvm/test/MC/AArch64/armv9a-tlbip-tlbid.s
index d2fdf276dd5c2..dcaba7862b0b8 100644
--- a/llvm/test/MC/AArch64/armv9a-tlbip.s
+++ b/llvm/test/MC/AArch64/armv9a-tlbip-tlbid.s
@@ -1,9 +1,9 @@
+// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
+// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
+// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+tlbid < %s \
+// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+d128 < %s \
 // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
-// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
-// RUN:        | FileCheck %s --check-prefixes=CHECK-D128,CHECK-ERROR
-// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+tlbid < %s 2>&1 \
-// RUN:        | FileCheck %s --check-prefixes=CHECK-D128,CHECK-TLBID
 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+d128 < %s \
 // RUN:        | llvm-objdump -d --mattr=+d128 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST
 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+d128 < %s \
@@ -14,810 +14,400 @@
 // RUN:        | llvm-mc -triple=aarch64 -mattr=+d128 -disassemble -show-encoding \
 // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
 
-// When assembling with +tlbid, d128-only instructions still fail while the
-// *e{1,2}[io]s* forms assemble. Keep the failing cases first so the combined
-// stderr/stdout stream from 2>&1 matches FileCheck order.
-
-// +d128 required for tlbip
-
-tlbip IPAS2E1, x4, x5
-// CHECK-INST: tlbip ipas2e1, x4, x5
-// CHECK-ENCODING: encoding: [0x24,0x84,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c8424 sysp #4, c8, c4, #1, x4, x5
-
-tlbip IPAS2E1NXS, x4, x5
-// CHECK-INST: tlbip ipas2e1nxs, x4, x5
-// CHECK-ENCODING: encoding: [0x24,0x94,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c9424 sysp #4, c9, c4, #1, x4, x5
-
-tlbip IPAS2LE1, x4, x5
-// CHECK-INST: tlbip ipas2le1, x4, x5
-// CHECK-ENCODING: encoding: [0xa4,0x84,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c84a4 sysp #4, c8, c4, #5, x4, x5
-
-tlbip IPAS2LE1NXS, x4, x5
-// CHECK-INST: tlbip ipas2le1nxs, x4, x5
-// CHECK-ENCODING: encoding: [0xa4,0x94,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c94a4 sysp #4, c9, c4, #5, x4, x5
-
-tlbip VAE1, x8, x9
-// CHECK-INST: tlbip vae1, x8, x9
-// CHECK-ENCODING: encoding: [0x28,0x87,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d5488728 sysp #0, c8, c7, #1, x8, x9
-
-tlbip VAE1NXS, x8, x9
-// CHECK-INST: tlbip vae1nxs, x8, x9
-// CHECK-ENCODING: encoding: [0x28,0x97,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d5489728 sysp #0, c9, c7, #1, x8, x9
-
-tlbip VALE1, x8, x9
-// CHECK-INST: tlbip vale1, x8, x9
-// CHECK-ENCODING: encoding: [0xa8,0x87,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54887a8 sysp #0, c8, c7, #5, x8, x9
-
-tlbip VALE1NXS, x8, x9
-// CHECK-INST: tlbip vale1nxs, x8, x9
-// CHECK-ENCODING: encoding: [0xa8,0x97,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54897a8 sysp #0, c9, c7, #5, x8, x9
-
-tlbip VAAE1, x8, x9
-// CHECK-INST: tlbip vaae1, x8, x9
-// CHECK-ENCODING: encoding: [0x68,0x87,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d5488768 sysp #0, c8, c7, #3, x8, x9
-
-tlbip VAAE1NXS, x8, x9
-// CHECK-INST: tlbip vaae1nxs, x8, x9
-// CHECK-ENCODING: encoding: [0x68,0x97,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d5489768 sysp #0, c9, c7, #3, x8, x9
-
-tlbip VAALE1, x8, x9
-// CHECK-INST: tlbip vaale1, x8, x9
-// CHECK-ENCODING: encoding: [0xe8,0x87,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54887e8 sysp #0, c8, c7, #7, x8, x9
-
-tlbip VAALE1NXS, x8, x9
-// CHECK-INST: tlbip vaale1nxs, x8, x9
-// CHECK-ENCODING: encoding: [0xe8,0x97,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54897e8 sysp #0, c9, c7, #7, x8, x9
-
-tlbip VAE2, x14, x15
-// CHECK-INST: tlbip vae2, x14, x15
-// CHECK-ENCODING: encoding: [0x2e,0x87,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c872e sysp #4, c8, c7, #1, x14, x15
-
-tlbip VAE2NXS, x14, x15
-// CHECK-INST: tlbip vae2nxs, x14, x15
-// CHECK-ENCODING: encoding: [0x2e,0x97,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c972e sysp #4, c9, c7, #1, x14, x15
-
-tlbip VALE2, x14, x15
-// CHECK-INST: tlbip vale2, x14, x15
-// CHECK-ENCODING: encoding: [0xae,0x87,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c87ae sysp #4, c8, c7, #5, x14, x15
-
-tlbip VALE2NXS, x14, x15
-// CHECK-INST: tlbip vale2nxs, x14, x15
-// CHECK-ENCODING: encoding: [0xae,0x97,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c97ae sysp #4, c9, c7, #5, x14, x15
-
-tlbip VAE3, x24, x25
-// CHECK-INST: tlbip vae3, x24, x25
-// CHECK-ENCODING: encoding: [0x38,0x87,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e8738 sysp #6, c8, c7, #1, x24, x25
-
-tlbip VAE3NXS, x24, x25
-// CHECK-INST: tlbip vae3nxs, x24, x25
-// CHECK-ENCODING: encoding: [0x38,0x97,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e9738 sysp #6, c9, c7, #1, x24, x25
-
-tlbip VAE3IS, x24, x25
-// CHECK-INST: tlbip vae3is, x24, x25
-// CHECK-ENCODING: encoding: [0x38,0x83,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e8338 sysp #6, c8, c3, #1, x24, x25
-
-tlbip VAE3ISNXS, x24, x25
-// CHECK-INST: tlbip vae3isnxs, x24, x25
-// CHECK-ENCODING: encoding: [0x38,0x93,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e9338 sysp #6, c9, c3, #1, x24, x25
-
-tlbip VAE3OS, x24, x25
-// CHECK-INST: tlbip vae3os, x24, x25
-// CHECK-ENCODING: encoding: [0x38,0x81,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e8138 sysp #6, c8, c1, #1, x24, x25
-
-tlbip VAE3OSNXS, x24, x25
-// CHECK-INST: tlbip vae3osnxs, x24, x25
-// CHECK-ENCODING: encoding: [0x38,0x91,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e9138 sysp #6, c9, c1, #1, x24, x25
-
-tlbip VALE3, x24, x25
-// CHECK-INST: tlbip vale3, x24, x25
-// CHECK-ENCODING: encoding: [0xb8,0x87,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e87b8 sysp #6, c8, c7, #5, x24, x25
-
-tlbip VALE3NXS, x24, x25
-// CHECK-INST: tlbip vale3nxs, x24, x25
-// CHECK-ENCODING: encoding: [0xb8,0x97,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e97b8 sysp #6, c9, c7, #5, x24, x25
-
-tlbip VALE3IS, x24, x25
-// CHECK-INST: tlbip vale3is, x24, x25
-// CHECK-ENCODING: encoding: [0xb8,0x83,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e83b8 sysp #6, c8, c3, #5, x24, x25
-
-tlbip VALE3ISNXS, x24, x25
-// CHECK-INST: tlbip vale3isnxs, x24, x25
-// CHECK-ENCODING: encoding: [0xb8,0x93,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e93b8 sysp #6, c9, c3, #5, x24, x25
-
-tlbip VALE3OS, x24, x25
-// CHECK-INST: tlbip vale3os, x24, x25
-// CHECK-ENCODING: encoding: [0xb8,0x81,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e81b8 sysp #6, c8, c1, #5, x24, x25
-
-tlbip VALE3OSNXS, x24, x25
-// CHECK-INST: tlbip vale3osnxs, x24, x25
-// CHECK-ENCODING: encoding: [0xb8,0x91,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e91b8 sysp #6, c9, c1, #5, x24, x25
-
-tlbip RVAE1, x18, x19
-// CHECK-INST: tlbip rvae1, x18, x19
-// CHECK-ENCODING: encoding: [0x32,0x86,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d5488632 sysp #0, c8, c6, #1, x18, x19
-
-tlbip RVAE1NXS, x18, x19
-// CHECK-INST: tlbip rvae1nxs, x18, x19
-// CHECK-ENCODING: encoding: [0x32,0x96,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d5489632 sysp #0, c9, c6, #1, x18, x19
-
-tlbip RVAAE1, x18, x19
-// CHECK-INST: tlbip rvaae1, x18, x19
-// CHECK-ENCODING: encoding: [0x72,0x86,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d5488672 sysp #0, c8, c6, #3, x18, x19
-
-tlbip RVAAE1NXS, x18, x19
-// CHECK-INST: tlbip rvaae1nxs, x18, x19
-// CHECK-ENCODING: encoding: [0x72,0x96,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d5489672 sysp #0, c9, c6, #3, x18, x19
-
-tlbip RVALE1, x18, x19
-// CHECK-INST: tlbip rvale1, x18, x19
-// CHECK-ENCODING: encoding: [0xb2,0x86,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54886b2 sysp #0, c8, c6, #5, x18, x19
-
-tlbip RVALE1NXS, x18, x19
-// CHECK-INST: tlbip rvale1nxs, x18, x19
-// CHECK-ENCODING: encoding: [0xb2,0x96,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54896b2 sysp #0, c9, c6, #5, x18, x19
-
-tlbip RVAALE1, x18, x19
-// CHECK-INST: tlbip rvaale1, x18, x19
-// CHECK-ENCODING: encoding: [0xf2,0x86,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54886f2 sysp #0, c8, c6, #7, x18, x19
-
-tlbip RVAALE1NXS, x18, x19
-// CHECK-INST: tlbip rvaale1nxs, x18, x19
-// CHECK-ENCODING: encoding: [0xf2,0x96,0x48,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54896f2 sysp #0, c9, c6, #7, x18, x19
-
-tlbip RVAE2, x28, x29
-// CHECK-INST: tlbip rvae2, x28, x29
-// CHECK-ENCODING: encoding: [0x3c,0x86,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c863c sysp #4, c8, c6, #1, x28, x29
-
-tlbip RVAE2NXS, x28, x29
-// CHECK-INST: tlbip rvae2nxs, x28, x29
-// CHECK-ENCODING: encoding: [0x3c,0x96,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c963c sysp #4, c9, c6, #1, x28, x29
-
-tlbip RVALE2, x28, x29
-// CHECK-INST: tlbip rvale2, x28, x29
-// CHECK-ENCODING: encoding: [0xbc,0x86,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c86bc sysp #4, c8, c6, #5, x28, x29
-
-tlbip RVALE2NXS, x28, x29
-// CHECK-INST: tlbip rvale2nxs, x28, x29
-// CHECK-ENCODING: encoding: [0xbc,0x96,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c96bc sysp #4, c9, c6, #5, x28, x29
-
-tlbip RVAE3, x10, x11
-// CHECK-INST: tlbip rvae3, x10, x11
-// CHECK-ENCODING: encoding: [0x2a,0x86,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e862a sysp #6, c8, c6, #1, x10, x11
-
-tlbip RVAE3NXS, x10, x11
-// CHECK-INST: tlbip rvae3nxs, x10, x11
-// CHECK-ENCODING: encoding: [0x2a,0x96,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e962a sysp #6, c9, c6, #1, x10, x11
-
-tlbip RVAE3IS, x10, x11
-// CHECK-INST: tlbip rvae3is, x10, x11
-// CHECK-ENCODING: encoding: [0x2a,0x82,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e822a sysp #6, c8, c2, #1, x10, x11
-
-tlbip RVAE3ISNXS, x10, x11
-// CHECK-INST: tlbip rvae3isnxs, x10, x11
-// CHECK-ENCODING: encoding: [0x2a,0x92,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e922a sysp #6, c9, c2, #1, x10, x11
-
-tlbip RVAE3OS, x10, x11
-// CHECK-INST: tlbip rvae3os, x10, x11
-// CHECK-ENCODING: encoding: [0x2a,0x85,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e852a sysp #6, c8, c5, #1, x10, x11
-
-tlbip RVAE3OSNXS, x10, x11
-// CHECK-INST: tlbip rvae3osnxs, x10, x11
-// CHECK-ENCODING: encoding: [0x2a,0x95,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e952a sysp #6, c9, c5, #1, x10, x11
-
-tlbip RVALE3, x10, x11
-// CHECK-INST: tlbip rvale3, x10, x11
-// CHECK-ENCODING: encoding: [0xaa,0x86,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e86aa sysp #6, c8, c6, #5, x10, x11
-
-tlbip RVALE3NXS, x10, x11
-// CHECK-INST: tlbip rvale3nxs, x10, x11
-// CHECK-ENCODING: encoding: [0xaa,0x96,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e96aa sysp #6, c9, c6, #5, x10, x11
-
-tlbip RVALE3IS, x10, x11
-// CHECK-INST: tlbip rvale3is, x10, x11
-// CHECK-ENCODING: encoding: [0xaa,0x82,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e82aa sysp #6, c8, c2, #5, x10, x11
-
-tlbip RVALE3ISNXS, x10, x11
-// CHECK-INST: tlbip rvale3isnxs, x10, x11
-// CHECK-ENCODING: encoding: [0xaa,0x92,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e92aa sysp #6, c9, c2, #5, x10, x11
-
-tlbip RVALE3OS, x10, x11
-// CHECK-INST: tlbip rvale3os, x10, x11
-// CHECK-ENCODING: encoding: [0xaa,0x85,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e85aa sysp #6, c8, c5, #5, x10, x11
-
-tlbip RVALE3OSNXS, x10, x11
-// CHECK-INST: tlbip rvale3osnxs, x10, x11
-// CHECK-ENCODING: encoding: [0xaa,0x95,0x4e,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54e95aa sysp #6, c9, c5, #5, x10, x11
-
-tlbip RIPAS2E1, x20, x21
-// CHECK-INST: tlbip ripas2e1, x20, x21
-// CHECK-ENCODING: encoding: [0x54,0x84,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c8454 sysp #4, c8, c4, #2, x20, x21
-
-tlbip RIPAS2E1NXS, x20, x21
-// CHECK-INST: tlbip ripas2e1nxs, x20, x21
-// CHECK-ENCODING: encoding: [0x54,0x94,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c9454 sysp #4, c9, c4, #2, x20, x21
-
-tlbip RIPAS2LE1, x20, x21
-// CHECK-INST: tlbip ripas2le1, x20, x21
-// CHECK-ENCODING: encoding: [0xd4,0x84,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c84d4 sysp #4, c8, c4, #6, x20, x21
-
-tlbip RIPAS2LE1NXS, x20, x21
-// CHECK-INST: tlbip ripas2le1nxs, x20, x21
-// CHECK-ENCODING: encoding: [0xd4,0x94,0x4c,0xd5]
-// CHECK-D128: error: instruction requires: d128
-// CHECK-UNKNOWN: d54c94d4 sysp #4, c9, c4, #6, x20, x21
-
-//
-// From here on, +tlbid only is sufficient and aliases should assemble
-//
+// +d128 or +tlbid required for these tlbip SYSP aliases.
 
 tlbip IPAS2E1IS, x4, x5
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ipas2e1is, x4, x5
-// CHECK-TLBID: tlbip ipas2e1is, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8024 sysp #4, c8, c0, #1, x4, x5
 
 tlbip IPAS2E1ISNXS, x4, x5
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ipas2e1isnxs, x4, x5
-// CHECK-TLBID: tlbip ipas2e1isnxs, x4, x5
 // CHECK-ENCODING: encoding: [0x24,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9024 sysp #4, c9, c0, #1, x4, x5
 
 tlbip IPAS2E1OS, x4, x5
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ipas2e1os, x4, x5
-// CHECK-TLBID: tlbip ipas2e1os, x4, x5
 // CHECK-ENCODING: encoding: [0x04,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8404 sysp #4, c8, c4, #0, x4, x5
 
 tlbip IPAS2E1OSNXS, x4, x5
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ipas2e1osnxs, x4, x5
-// CHECK-TLBID: tlbip ipas2e1osnxs, x4, x5
 // CHECK-ENCODING: encoding: [0x04,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9404 sysp #4, c9, c4, #0, x4, x5
 
 tlbip IPAS2LE1IS, x4, x5
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ipas2le1is, x4, x5
-// CHECK-TLBID: tlbip ipas2le1is, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c80a4 sysp #4, c8, c0, #5, x4, x5
 
 tlbip IPAS2LE1ISNXS, x4, x5
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ipas2le1isnxs, x4, x5
-// CHECK-TLBID: tlbip ipas2le1isnxs, x4, x5
 // CHECK-ENCODING: encoding: [0xa4,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c90a4 sysp #4, c9, c0, #5, x4, x5
 
 tlbip IPAS2LE1OS, x4, x5
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ipas2le1os, x4, x5
-// CHECK-TLBID: tlbip ipas2le1os, x4, x5
 // CHECK-ENCODING: encoding: [0x84,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8484 sysp #4, c8, c4, #4, x4, x5
 
 tlbip IPAS2LE1OSNXS, x4, x5
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ipas2le1osnxs, x4, x5
-// CHECK-TLBID: tlbip ipas2le1osnxs, x4, x5
 // CHECK-ENCODING: encoding: [0x84,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9484 sysp #4, c9, c4, #4, x4, x5
 
 tlbip VAE1IS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vae1is, x8, x9
-// CHECK-TLBID: tlbip vae1is, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488328 sysp #0, c8, c3, #1, x8, x9
 
 tlbip VAE1ISNXS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vae1isnxs, x8, x9
-// CHECK-TLBID: tlbip vae1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489328 sysp #0, c9, c3, #1, x8, x9
 
 tlbip VAE1OS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vae1os, x8, x9
-// CHECK-TLBID: tlbip vae1os, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488128 sysp #0, c8, c1, #1, x8, x9
 
 tlbip VAE1OSNXS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vae1osnxs, x8, x9
-// CHECK-TLBID: tlbip vae1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x28,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489128 sysp #0, c9, c1, #1, x8, x9
 
 tlbip VALE1IS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vale1is, x8, x9
-// CHECK-TLBID: tlbip vale1is, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54883a8 sysp #0, c8, c3, #5, x8, x9
 
 tlbip VALE1ISNXS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vale1isnxs, x8, x9
-// CHECK-TLBID: tlbip vale1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54893a8 sysp #0, c9, c3, #5, x8, x9
 
 tlbip VALE1OS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vale1os, x8, x9
-// CHECK-TLBID: tlbip vale1os, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54881a8 sysp #0, c8, c1, #5, x8, x9
 
 tlbip VALE1OSNXS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vale1osnxs, x8, x9
-// CHECK-TLBID: tlbip vale1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xa8,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54891a8 sysp #0, c9, c1, #5, x8, x9
 
 tlbip VAAE1IS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vaae1is, x8, x9
-// CHECK-TLBID: tlbip vaae1is, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488368 sysp #0, c8, c3, #3, x8, x9
 
 tlbip VAAE1ISNXS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vaae1isnxs, x8, x9
-// CHECK-TLBID: tlbip vaae1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489368 sysp #0, c9, c3, #3, x8, x9
 
 tlbip VAAE1OS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vaae1os, x8, x9
-// CHECK-TLBID: tlbip vaae1os, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488168 sysp #0, c8, c1, #3, x8, x9
 
 tlbip VAAE1OSNXS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vaae1osnxs, x8, x9
-// CHECK-TLBID: tlbip vaae1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0x68,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489168 sysp #0, c9, c1, #3, x8, x9
 
 tlbip VAALE1IS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vaale1is, x8, x9
-// CHECK-TLBID: tlbip vaale1is, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x83,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54883e8 sysp #0, c8, c3, #7, x8, x9
 
 tlbip VAALE1ISNXS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vaale1isnxs, x8, x9
-// CHECK-TLBID: tlbip vaale1isnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x93,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54893e8 sysp #0, c9, c3, #7, x8, x9
 
 tlbip VAALE1OS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vaale1os, x8, x9
-// CHECK-TLBID: tlbip vaale1os, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x81,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54881e8 sysp #0, c8, c1, #7, x8, x9
 
 tlbip VAALE1OSNXS, x8, x9
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vaale1osnxs, x8, x9
-// CHECK-TLBID: tlbip vaale1osnxs, x8, x9
 // CHECK-ENCODING: encoding: [0xe8,0x91,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54891e8 sysp #0, c9, c1, #7, x8, x9
 
 tlbip VAE2IS, x14, x15
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vae2is, x14, x15
-// CHECK-TLBID: tlbip vae2is, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x83,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c832e sysp #4, c8, c3, #1, x14, x15
 
 tlbip VAE2ISNXS, x14, x15
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vae2isnxs, x14, x15
-// CHECK-TLBID: tlbip vae2isnxs, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x93,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c932e sysp #4, c9, c3, #1, x14, x15
 
 tlbip VAE2OS, x14, x15
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vae2os, x14, x15
-// CHECK-TLBID: tlbip vae2os, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x81,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c812e sysp #4, c8, c1, #1, x14, x15
 
 tlbip VAE2OSNXS, x14, x15
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vae2osnxs, x14, x15
-// CHECK-TLBID: tlbip vae2osnxs, x14, x15
 // CHECK-ENCODING: encoding: [0x2e,0x91,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c912e sysp #4, c9, c1, #1, x14, x15
 
 tlbip VALE2IS, x14, x15
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vale2is, x14, x15
-// CHECK-TLBID: tlbip vale2is, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x83,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c83ae sysp #4, c8, c3, #5, x14, x15
 
 tlbip VALE2ISNXS, x14, x15
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vale2isnxs, x14, x15
-// CHECK-TLBID: tlbip vale2isnxs, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x93,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c93ae sysp #4, c9, c3, #5, x14, x15
 
 tlbip VALE2OS, x14, x15
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vale2os, x14, x15
-// CHECK-TLBID: tlbip vale2os, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x81,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c81ae sysp #4, c8, c1, #5, x14, x15
 
 tlbip VALE2OSNXS, x14, x15
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip vale2osnxs, x14, x15
-// CHECK-TLBID: tlbip vale2osnxs, x14, x15
 // CHECK-ENCODING: encoding: [0xae,0x91,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c91ae sysp #4, c9, c1, #5, x14, x15
 
 tlbip RVAE1IS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvae1is, x18, x19
-// CHECK-TLBID: tlbip rvae1is, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488232 sysp #0, c8, c2, #1, x18, x19
 
 tlbip RVAE1ISNXS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvae1isnxs, x18, x19
-// CHECK-TLBID: tlbip rvae1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489232 sysp #0, c9, c2, #1, x18, x19
 
 tlbip RVAE1OS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvae1os, x18, x19
-// CHECK-TLBID: tlbip rvae1os, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488532 sysp #0, c8, c5, #1, x18, x19
 
 tlbip RVAE1OSNXS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvae1osnxs, x18, x19
-// CHECK-TLBID: tlbip rvae1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x32,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489532 sysp #0, c9, c5, #1, x18, x19
 
 tlbip RVAAE1IS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvaae1is, x18, x19
-// CHECK-TLBID: tlbip rvaae1is, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488272 sysp #0, c8, c2, #3, x18, x19
 
 tlbip RVAAE1ISNXS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvaae1isnxs, x18, x19
-// CHECK-TLBID: tlbip rvaae1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489272 sysp #0, c9, c2, #3, x18, x19
 
 tlbip RVAAE1OS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvaae1os, x18, x19
-// CHECK-TLBID: tlbip rvaae1os, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5488572 sysp #0, c8, c5, #3, x18, x19
 
 tlbip RVAAE1OSNXS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvaae1osnxs, x18, x19
-// CHECK-TLBID: tlbip rvaae1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0x72,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d5489572 sysp #0, c9, c5, #3, x18, x19
 
 tlbip RVALE1IS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvale1is, x18, x19
-// CHECK-TLBID: tlbip rvale1is, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54882b2 sysp #0, c8, c2, #5, x18, x19
 
 tlbip RVALE1ISNXS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvale1isnxs, x18, x19
-// CHECK-TLBID: tlbip rvale1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54892b2 sysp #0, c9, c2, #5, x18, x19
 
 tlbip RVALE1OS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvale1os, x18, x19
-// CHECK-TLBID: tlbip rvale1os, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54885b2 sysp #0, c8, c5, #5, x18, x19
 
 tlbip RVALE1OSNXS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvale1osnxs, x18, x19
-// CHECK-TLBID: tlbip rvale1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xb2,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54895b2 sysp #0, c9, c5, #5, x18, x19
 
 tlbip RVAALE1IS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvaale1is, x18, x19
-// CHECK-TLBID: tlbip rvaale1is, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x82,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54882f2 sysp #0, c8, c2, #7, x18, x19
 
 tlbip RVAALE1ISNXS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvaale1isnxs, x18, x19
-// CHECK-TLBID: tlbip rvaale1isnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x92,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54892f2 sysp #0, c9, c2, #7, x18, x19
 
 tlbip RVAALE1OS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvaale1os, x18, x19
-// CHECK-TLBID: tlbip rvaale1os, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x85,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54885f2 sysp #0, c8, c5, #7, x18, x19
 
 tlbip RVAALE1OSNXS, x18, x19
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvaale1osnxs, x18, x19
-// CHECK-TLBID: tlbip rvaale1osnxs, x18, x19
 // CHECK-ENCODING: encoding: [0xf2,0x95,0x48,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54895f2 sysp #0, c9, c5, #7, x18, x19
 
 tlbip RVAE2IS, x28, x29
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvae2is, x28, x29
-// CHECK-TLBID: tlbip rvae2is, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x82,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c823c sysp #4, c8, c2, #1, x28, x29
 
 tlbip RVAE2ISNXS, x28, x29
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvae2isnxs, x28, x29
-// CHECK-TLBID: tlbip rvae2isnxs, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x92,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c923c sysp #4, c9, c2, #1, x28, x29
 
 tlbip RVAE2OS, x28, x29
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvae2os, x28, x29
-// CHECK-TLBID: tlbip rvae2os, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x85,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c853c sysp #4, c8, c5, #1, x28, x29
 
 tlbip RVAE2OSNXS, x28, x29
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvae2osnxs, x28, x29
-// CHECK-TLBID: tlbip rvae2osnxs, x28, x29
 // CHECK-ENCODING: encoding: [0x3c,0x95,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c953c sysp #4, c9, c5, #1, x28, x29
 
 tlbip RVALE2IS, x28, x29
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvale2is, x28, x29
-// CHECK-TLBID: tlbip rvale2is, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x82,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c82bc sysp #4, c8, c2, #5, x28, x29
 
 tlbip RVALE2ISNXS, x28, x29
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvale2isnxs, x28, x29
-// CHECK-TLBID: tlbip rvale2isnxs, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x92,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c92bc sysp #4, c9, c2, #5, x28, x29
 
 tlbip RVALE2OS, x28, x29
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvale2os, x28, x29
-// CHECK-TLBID: tlbip rvale2os, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x85,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c85bc sysp #4, c8, c5, #5, x28, x29
 
 tlbip RVALE2OSNXS, x28, x29
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip rvale2osnxs, x28, x29
-// CHECK-TLBID: tlbip rvale2osnxs, x28, x29
 // CHECK-ENCODING: encoding: [0xbc,0x95,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c95bc sysp #4, c9, c5, #5, x28, x29
 
 tlbip RIPAS2E1IS, x20, x21
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ripas2e1is, x20, x21
-// CHECK-TLBID: tlbip ripas2e1is, x20, x21
 // CHECK-ENCODING: encoding: [0x54,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8054 sysp #4, c8, c0, #2, x20, x21
 
 tlbip RIPAS2E1ISNXS, x20, x21
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ripas2e1isnxs, x20, x21
-// CHECK-TLBID: tlbip ripas2e1isnxs, x20, x21
 // CHECK-ENCODING: encoding: [0x54,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9054 sysp #4, c9, c0, #2, x20, x21
 
 tlbip RIPAS2E1OS, x20, x21
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ripas2e1os, x20, x21
-// CHECK-TLBID: tlbip ripas2e1os, x20, x21
 // CHECK-ENCODING: encoding: [0x74,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c8474 sysp #4, c8, c4, #3, x20, x21
 
 tlbip RIPAS2E1OSNXS, x20, x21
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ripas2e1osnxs, x20, x21
-// CHECK-TLBID: tlbip ripas2e1osnxs, x20, x21
 // CHECK-ENCODING: encoding: [0x74,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c9474 sysp #4, c9, c4, #3, x20, x21
 
 tlbip RIPAS2LE1IS, x20, x21
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ripas2le1is, x20, x21
-// CHECK-TLBID: tlbip ripas2le1is, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x80,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c80d4 sysp #4, c8, c0, #6, x20, x21
 
 tlbip RIPAS2LE1ISNXS, x20, x21
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ripas2le1isnxs, x20, x21
-// CHECK-TLBID: tlbip ripas2le1isnxs, x20, x21
 // CHECK-ENCODING: encoding: [0xd4,0x90,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c90d4 sysp #4, c9, c0, #6, x20, x21
 
 tlbip RIPAS2LE1OS, x20, x21
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ripas2le1os, x20, x21
-// CHECK-TLBID: tlbip ripas2le1os, x20, x21
 // CHECK-ENCODING: encoding: [0xf4,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c84f4 sysp #4, c8, c4, #7, x20, x21
 
 tlbip RIPAS2LE1OSNXS, x20, x21
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ripas2le1osnxs, x20, x21
-// CHECK-TLBID: tlbip ripas2le1osnxs, x20, x21
 // CHECK-ENCODING: encoding: [0xf4,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c94f4 sysp #4, c9, c4, #7, x20, x21
 
 tlbip RIPAS2LE1OS, xzr, xzr
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ripas2le1os, xzr, xzr
-// CHECK-TLBID: tlbip ripas2le1os, xzr, xzr
 // CHECK-ENCODING: encoding: [0xff,0x84,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c84ff sysp #4, c8, c4, #7
 
 tlbip RIPAS2LE1OSNXS, xzr, xzr
+// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-INST: tlbip ripas2le1osnxs, xzr, xzr
-// CHECK-TLBID: tlbip ripas2le1osnxs, xzr, xzr
 // CHECK-ENCODING: encoding: [0xff,0x94,0x4c,0xd5]
-// CHECK-ERROR: error: instruction requires: tlbid or d128
 // CHECK-UNKNOWN: d54c94ff sysp #4, c9, c4, #7



More information about the llvm-commits mailing list