summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/MC/AArch64/armv8.2a-at.s10
-rw-r--r--llvm/test/MC/AArch64/armv8.2a-mmfr2.s6
-rw-r--r--llvm/test/MC/AArch64/armv8.2a-persistent-memory.s7
-rw-r--r--llvm/test/MC/AArch64/armv8.3a-complex.s61
-rw-r--r--llvm/test/MC/AArch64/armv8.3a-js.s24
-rw-r--r--llvm/test/MC/AArch64/armv8.3a-signed-pointer.s339
-rw-r--r--llvm/test/MC/AArch64/armv8.4a-flag.s55
-rw-r--r--llvm/test/MC/AArch64/armv8.4a-ldst.s117
-rw-r--r--llvm/test/MC/AArch64/armv8.4a-tlb.s99
-rw-r--r--llvm/test/MC/AArch64/armv8.4a-trace.s15
10 files changed, 314 insertions, 419 deletions
diff --git a/llvm/test/MC/AArch64/armv8.2a-at.s b/llvm/test/MC/AArch64/armv8.2a-at.s
index 3c26fb9ea3a..741f6922a9e 100644
--- a/llvm/test/MC/AArch64/armv8.2a-at.s
+++ b/llvm/test/MC/AArch64/armv8.2a-at.s
@@ -1,11 +1,9 @@
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.2a %s -o - | FileCheck %s
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.2a,+pan-rwv %s -o - | FileCheck %s
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.2a %s -o - 2>&1 | FileCheck %s --check-prefix=ERROR
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.2a,-pan-rwv %s -o - 2>&1 | FileCheck %s --check-prefix=ERROR
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.2a < %s | FileCheck %s
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.2a < %s 2>&1 | FileCheck %s --check-prefix=ERROR
at s1e1rp, x1
at s1e1wp, x2
// CHECK: at s1e1rp, x1 // encoding: [0x01,0x79,0x08,0xd5]
// CHECK: at s1e1wp, x2 // encoding: [0x22,0x79,0x08,0xd5]
-// ERROR: error: AT S1E1RP requires pan-rwv
-// ERROR: error: AT S1E1WP requires pan-rwv
+// ERROR: error: AT S1E1RP requires ARMv8.2a
+// ERROR: error: AT S1E1WP requires ARMv8.2a
diff --git a/llvm/test/MC/AArch64/armv8.2a-mmfr2.s b/llvm/test/MC/AArch64/armv8.2a-mmfr2.s
new file mode 100644
index 00000000000..5a9b1f1f42a
--- /dev/null
+++ b/llvm/test/MC/AArch64/armv8.2a-mmfr2.s
@@ -0,0 +1,6 @@
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.2a < %s | FileCheck %s
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.2a < %s 2>&1 | FileCheck %s --check-prefix=ERROR
+
+ mrs x3, id_aa64mmfr2_el1
+// CHECK: mrs x3, ID_AA64MMFR2_EL1 // encoding: [0x43,0x07,0x38,0xd5]
+// ERROR: error: expected readable system register
diff --git a/llvm/test/MC/AArch64/armv8.2a-persistent-memory.s b/llvm/test/MC/AArch64/armv8.2a-persistent-memory.s
index 73acd1c6eb6..8a7600ee904 100644
--- a/llvm/test/MC/AArch64/armv8.2a-persistent-memory.s
+++ b/llvm/test/MC/AArch64/armv8.2a-persistent-memory.s
@@ -1,7 +1,6 @@
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.2a -o - %s | FileCheck %s
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+ccpp -o - %s | FileCheck %s
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.2a -o - %s 2>&1 | FileCheck %s --check-prefix=ERROR
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.2a < %s | FileCheck %s
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.2a < %s 2>&1 | FileCheck %s --check-prefix=ERROR
dc cvap, x7
// CHECK: dc cvap, x7 // encoding: [0x27,0x7c,0x0b,0xd5]
-// ERROR: error: DC CVAP requires ccpp
+// ERROR: error: DC CVAP requires ARMv8.2a
diff --git a/llvm/test/MC/AArch64/armv8.3a-complex.s b/llvm/test/MC/AArch64/armv8.3a-complex.s
index 4e09b7e2f13..1a4975b3e89 100644
--- a/llvm/test/MC/AArch64/armv8.3a-complex.s
+++ b/llvm/test/MC/AArch64/armv8.3a-complex.s
@@ -1,44 +1,43 @@
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a,-fullfp16 -o - %s 2>%t | \
-// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=NO-FP16
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a,-fullfp16 < %s 2>%t | FileCheck %s --check-prefix=CHECK --check-prefix=NO-FP16
// RUN: FileCheck --check-prefix=STDERR --check-prefix=STDERR-NO-FP16 %s < %t
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a,+fullfp16 -o - %s 2>%t | \
-// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=FP16
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a,+fullfp16 < %s 2>%t | FileCheck %s --check-prefix=CHECK --check-prefix=FP16
// RUN: FileCheck --check-prefix=STDERR --check-prefix=STDERR-FP16 %s < %t
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.2a,-v8.3a,+fullfp16,+complxnum -o - %s 2>&1 | \
-// RUN: FileCheck %s --check-prefix=FP16
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.2a,-v8.3a,+fullfp16 < %s 2>&1 | FileCheck %s --check-prefix=NO-V83A
+
+
// ==== FCMLA vector ====
// Types
fcmla v0.4h, v1.4h, v2.4h, #0
// FP16: fcmla v0.4h, v1.4h, v2.4h, #0 // encoding: [0x20,0xc4,0x42,0x2e]
// STDERR-NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: fullfp16
-// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.8h, v1.8h, v2.8h, #0
// FP16: fcmla v0.8h, v1.8h, v2.8h, #0 // encoding: [0x20,0xc4,0x42,0x6e]
// STDERR-NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: fullfp16
-// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.2s, v1.2s, v2.2s, #0
// CHECK: fcmla v0.2s, v1.2s, v2.2s, #0 // encoding: [0x20,0xc4,0x82,0x2e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.4s, v1.4s, v2.4s, #0
// CHECK: fcmla v0.4s, v1.4s, v2.4s, #0 // encoding: [0x20,0xc4,0x82,0x6e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.2d, v1.2d, v2.2d, #0
// CHECK: fcmla v0.2d, v1.2d, v2.2d, #0 // encoding: [0x20,0xc4,0xc2,0x6e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
// Rotations
fcmla v0.2s, v1.2s, v2.2s, #0
// CHECK: fcmla v0.2s, v1.2s, v2.2s, #0 // encoding: [0x20,0xc4,0x82,0x2e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.2s, v1.2s, v2.2s, #90
// CHECK: fcmla v0.2s, v1.2s, v2.2s, #90 // encoding: [0x20,0xcc,0x82,0x2e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.2s, v1.2s, v2.2s, #180
// CHECK: fcmla v0.2s, v1.2s, v2.2s, #180 // encoding: [0x20,0xd4,0x82,0x2e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.2s, v1.2s, v2.2s, #270
// CHECK: fcmla v0.2s, v1.2s, v2.2s, #270 // encoding: [0x20,0xdc,0x82,0x2e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
// Invalid rotations
fcmla v0.2s, v1.2s, v2.2s, #1
@@ -53,28 +52,28 @@
fcadd v0.4h, v1.4h, v2.4h, #90
// FP16: fcadd v0.4h, v1.4h, v2.4h, #90 // encoding: [0x20,0xe4,0x42,0x2e]
// STDERR-NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: fullfp16
-// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcadd v0.8h, v1.8h, v2.8h, #90
// FP16: fcadd v0.8h, v1.8h, v2.8h, #90 // encoding: [0x20,0xe4,0x42,0x6e]
// STDERR-NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: fullfp16
-// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcadd v0.2s, v1.2s, v2.2s, #90
// CHECK: fcadd v0.2s, v1.2s, v2.2s, #90 // encoding: [0x20,0xe4,0x82,0x2e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcadd v0.4s, v1.4s, v2.4s, #90
// CHECK: fcadd v0.4s, v1.4s, v2.4s, #90 // encoding: [0x20,0xe4,0x82,0x6e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcadd v0.2d, v1.2d, v2.2d, #90
// CHECK: fcadd v0.2d, v1.2d, v2.2d, #90 // encoding: [0x20,0xe4,0xc2,0x6e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
// Rotations
fcadd v0.2s, v1.2s, v2.2s, #90
// CHECK: fcadd v0.2s, v1.2s, v2.2s, #90 // encoding: [0x20,0xe4,0x82,0x2e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcadd v0.2s, v1.2s, v2.2s, #270
// CHECK: fcadd v0.2s, v1.2s, v2.2s, #270 // encoding: [0x20,0xf4,0x82,0x2e]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
// Invalid rotations
fcadd v0.2s, v1.2s, v2.2s, #1
@@ -93,17 +92,17 @@
fcmla v0.4h, v1.4h, v2.h[0], #0
// FP16: fcmla v0.4h, v1.4h, v2.h[0], #0 // encoding: [0x20,0x10,0x42,0x2f]
// STDERR-NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: fullfp16
-// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.8h, v1.8h, v2.h[0], #0
// FP16: fcmla v0.8h, v1.8h, v2.h[0], #0 // encoding: [0x20,0x10,0x42,0x6f]
// STDERR-NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: fullfp16
-// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.2s, v1.2s, v2.s[0], #0
// STDERR: :[[@LINE-1]]:{{[0-9]*}}: error: invalid operand for instruction
// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: invalid operand for instruction
fcmla v0.4s, v1.4s, v2.s[0], #0
// CHECK: fcmla v0.4s, v1.4s, v2.s[0], #0 // encoding: [0x20,0x10,0x82,0x6f]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.2d, v1.2d, v2.d[0], #0
// STDERR: :[[@LINE-1]]:{{[0-9]*}}: error: invalid operand for instruction
// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: invalid operand for instruction
@@ -111,26 +110,26 @@
// Rotations
fcmla v0.4s, v1.4s, v2.s[0], #90
// CHECK: fcmla v0.4s, v1.4s, v2.s[0], #90 // encoding: [0x20,0x30,0x82,0x6f]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.4s, v1.4s, v2.s[0], #180
// CHECK: fcmla v0.4s, v1.4s, v2.s[0], #180 // encoding: [0x20,0x50,0x82,0x6f]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.4s, v1.4s, v2.s[0], #270
// CHECK: fcmla v0.4s, v1.4s, v2.s[0], #270 // encoding: [0x20,0x70,0x82,0x6f]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
// Valid indices
fcmla v0.4h, v1.4h, v2.h[1], #0
// FP16: fcmla v0.4h, v1.4h, v2.h[1], #0 // encoding: [0x20,0x10,0x62,0x2f]
// STDERR-NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: fullfp16
-// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.8h, v1.8h, v2.h[3], #0
// FP16: fcmla v0.8h, v1.8h, v2.h[3], #0 // encoding: [0x20,0x18,0x62,0x6f]
// STDERR-NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: fullfp16
-// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
fcmla v0.4s, v1.4s, v2.s[1], #0
// CHECK: fcmla v0.4s, v1.4s, v2.s[1], #0 // encoding: [0x20,0x18,0x82,0x6f]
-// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: complxnum
+// NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: error: instruction requires: armv8.3a
// Invalid indices
fcmla v0.4h, v1.4h, v2.h[2], #0
diff --git a/llvm/test/MC/AArch64/armv8.3a-js.s b/llvm/test/MC/AArch64/armv8.3a-js.s
index e3e4f9121ac..23572890338 100644
--- a/llvm/test/MC/AArch64/armv8.3a-js.s
+++ b/llvm/test/MC/AArch64/armv8.3a-js.s
@@ -1,20 +1,10 @@
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a -o - %s 2>&1 | \
-// RUN: FileCheck %s
-
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+jsconv -o - %s 2>&1 | \
-// RUN: FileCheck %s
-
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu %s 2>&1 | \
-// RUN: FileCheck --check-prefix=CHECK-JS %s
-
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+jsconv,-fp-armv8 -o - %s 2>&1 |\
-// RUN: FileCheck --check-prefix=CHECK-REQ %s
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a < %s 2>&1 | FileCheck %s
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu < %s 2> %t
+// RUN: FileCheck --check-prefix=CHECK-REQ < %t %s
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.3a,-fp-armv8 < %s 2> %t
+// RUN: FileCheck --check-prefix=CHECK-NOFP < %t %s
fjcvtzs w0, d0
// CHECK: fjcvtzs w0, d0 // encoding: [0x00,0x00,0x7e,0x1e]
-
-// CHECK-JS: error: instruction requires: jsconv
-
-// NOJS: error: instruction requires: jsconv
-
-// CHECK-REQ: error: instruction requires: fp-armv8 jsconv
+// CHECK-REQ: error: instruction requires: armv8.3a
+// CHECK-NOFP: error: instruction requires: fp-armv8
diff --git a/llvm/test/MC/AArch64/armv8.3a-signed-pointer.s b/llvm/test/MC/AArch64/armv8.3a-signed-pointer.s
index fe34002680e..156ab08e36a 100644
--- a/llvm/test/MC/AArch64/armv8.3a-signed-pointer.s
+++ b/llvm/test/MC/AArch64/armv8.3a-signed-pointer.s
@@ -1,11 +1,7 @@
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a -o - %s 2>&1 | \
-// RUN: FileCheck --check-prefixes=CHECK,ALL %s
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a < %s 2> %t | FileCheck %s
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu < %s 2> %t
+// RUN: FileCheck --check-prefix=CHECK-REQ %s < %t
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu %s -o - > %t.1 2>%t.2
-// RUN: FileCheck --check-prefixes=ALL,NOENC %s < %t.1
-// RUN: FileCheck --check-prefix=CHECK-REQ %s < %t.2
-
-// ALL: .text
mrs x0, apiakeylo_el1
mrs x0, apiakeyhi_el1
mrs x0, apibkeylo_el1
@@ -16,39 +12,28 @@
mrs x0, apdbkeyhi_el1
mrs x0, apgakeylo_el1
mrs x0, apgakeyhi_el1
-// ALL-EMPTY:
-// ALL-EMPTY:
-// CHECK-NEXT: mrs x0, APIAKeyLo_EL1 // encoding: [0x00,0x21,0x38,0xd5]
-// CHECK-NEXT: mrs x0, APIAKeyHi_EL1 // encoding: [0x20,0x21,0x38,0xd5]
-// CHECK-NEXT: mrs x0, APIBKeyLo_EL1 // encoding: [0x40,0x21,0x38,0xd5]
-// CHECK-NEXT: mrs x0, APIBKeyHi_EL1 // encoding: [0x60,0x21,0x38,0xd5]
-// CHECK-NEXT: mrs x0, APDAKeyLo_EL1 // encoding: [0x00,0x22,0x38,0xd5]
-// CHECK-NEXT: mrs x0, APDAKeyHi_EL1 // encoding: [0x20,0x22,0x38,0xd5]
-// CHECK-NEXT: mrs x0, APDBKeyLo_EL1 // encoding: [0x40,0x22,0x38,0xd5]
-// CHECK-NEXT: mrs x0, APDBKeyHi_EL1 // encoding: [0x60,0x22,0x38,0xd5]
-// CHECK-NEXT: mrs x0, APGAKeyLo_EL1 // encoding: [0x00,0x23,0x38,0xd5]
-// CHECK-NEXT: mrs x0, APGAKeyHi_EL1 // encoding: [0x20,0x23,0x38,0xd5]
+
+// CHECK: mrs x0, APIAKeyLo_EL1 // encoding: [0x00,0x21,0x38,0xd5]
+// CHECK: mrs x0, APIAKeyHi_EL1 // encoding: [0x20,0x21,0x38,0xd5]
+// CHECK: mrs x0, APIBKeyLo_EL1 // encoding: [0x40,0x21,0x38,0xd5]
+// CHECK: mrs x0, APIBKeyHi_EL1 // encoding: [0x60,0x21,0x38,0xd5]
+// CHECK: mrs x0, APDAKeyLo_EL1 // encoding: [0x00,0x22,0x38,0xd5]
+// CHECK: mrs x0, APDAKeyHi_EL1 // encoding: [0x20,0x22,0x38,0xd5]
+// CHECK: mrs x0, APDBKeyLo_EL1 // encoding: [0x40,0x22,0x38,0xd5]
+// CHECK: mrs x0, APDBKeyHi_EL1 // encoding: [0x60,0x22,0x38,0xd5]
+// CHECK: mrs x0, APGAKeyLo_EL1 // encoding: [0x00,0x23,0x38,0xd5]
+// CHECK: mrs x0, APGAKeyHi_EL1 // encoding: [0x20,0x23,0x38,0xd5]
// CHECK-REQ: error: expected readable system register
-// CHECK-REQ-NEXT: mrs x0, apiakeylo_el1
// CHECK-REQ: error: expected readable system register
-// CHECK-REQ-NEXT: mrs x0, apiakeyhi_el1
// CHECK-REQ: error: expected readable system register
-// CHECK-REQ-NEXT: mrs x0, apibkeylo_el1
// CHECK-REQ: error: expected readable system register
-// CHECK-REQ-NEXT: mrs x0, apibkeyhi_el1
// CHECK-REQ: error: expected readable system register
-// CHECK-REQ-NEXT: mrs x0, apdakeylo_el1
// CHECK-REQ: error: expected readable system register
-// CHECK-REQ-NEXT: mrs x0, apdakeyhi_el1
// CHECK-REQ: error: expected readable system register
-// CHECK-REQ-NEXT: mrs x0, apdbkeylo_el1
// CHECK-REQ: error: expected readable system register
-// CHECK-REQ-NEXT: mrs x0, apdbkeyhi_el1
// CHECK-REQ: error: expected readable system register
-// CHECK-REQ-NEXT: mrs x0, apgakeylo_el1
// CHECK-REQ: error: expected readable system register
-// CHECK-REQ-NEXT: mrs x0, apgakeyhi_el1
msr apiakeylo_el1, x0
msr apiakeyhi_el1, x0
@@ -60,249 +45,191 @@
msr apdbkeyhi_el1, x0
msr apgakeylo_el1, x0
msr apgakeyhi_el1, x0
-// ALL-EMPTY:
-// ALL-EMPTY:
-// CHECK-NEXT: msr APIAKeyLo_EL1, x0 // encoding: [0x00,0x21,0x18,0xd5]
-// CHECK-NEXT: msr APIAKeyHi_EL1, x0 // encoding: [0x20,0x21,0x18,0xd5]
-// CHECK-NEXT: msr APIBKeyLo_EL1, x0 // encoding: [0x40,0x21,0x18,0xd5]
-// CHECK-NEXT: msr APIBKeyHi_EL1, x0 // encoding: [0x60,0x21,0x18,0xd5]
-// CHECK-NEXT: msr APDAKeyLo_EL1, x0 // encoding: [0x00,0x22,0x18,0xd5]
-// CHECK-NEXT: msr APDAKeyHi_EL1, x0 // encoding: [0x20,0x22,0x18,0xd5]
-// CHECK-NEXT: msr APDBKeyLo_EL1, x0 // encoding: [0x40,0x22,0x18,0xd5]
-// CHECK-NEXT: msr APDBKeyHi_EL1, x0 // encoding: [0x60,0x22,0x18,0xd5]
-// CHECK-NEXT: msr APGAKeyLo_EL1, x0 // encoding: [0x00,0x23,0x18,0xd5]
-// CHECK-NEXT: msr APGAKeyHi_EL1, x0 // encoding: [0x20,0x23,0x18,0xd5]
+
+// CHECK: msr APIAKeyLo_EL1, x0 // encoding: [0x00,0x21,0x18,0xd5]
+// CHECK: msr APIAKeyHi_EL1, x0 // encoding: [0x20,0x21,0x18,0xd5]
+// CHECK: msr APIBKeyLo_EL1, x0 // encoding: [0x40,0x21,0x18,0xd5]
+// CHECK: msr APIBKeyHi_EL1, x0 // encoding: [0x60,0x21,0x18,0xd5]
+// CHECK: msr APDAKeyLo_EL1, x0 // encoding: [0x00,0x22,0x18,0xd5]
+// CHECK: msr APDAKeyHi_EL1, x0 // encoding: [0x20,0x22,0x18,0xd5]
+// CHECK: msr APDBKeyLo_EL1, x0 // encoding: [0x40,0x22,0x18,0xd5]
+// CHECK: msr APDBKeyHi_EL1, x0 // encoding: [0x60,0x22,0x18,0xd5]
+// CHECK: msr APGAKeyLo_EL1, x0 // encoding: [0x00,0x23,0x18,0xd5]
+// CHECK: msr APGAKeyHi_EL1, x0 // encoding: [0x20,0x23,0x18,0xd5]
// CHECK-REQ: error: expected writable system register or pstate
-// CHECK-REQ-NEXT: msr apiakeylo_el1, x0
// CHECK-REQ: error: expected writable system register or pstate
-// CHECK-REQ-NEXT: msr apiakeyhi_el1, x0
// CHECK-REQ: error: expected writable system register or pstate
-// CHECK-REQ-NEXT: msr apibkeylo_el1, x0
// CHECK-REQ: error: expected writable system register or pstate
-// CHECK-REQ-NEXT: msr apibkeyhi_el1, x0
// CHECK-REQ: error: expected writable system register or pstate
-// CHECK-REQ-NEXT: msr apdakeylo_el1, x0
// CHECK-REQ: error: expected writable system register or pstate
-// CHECK-REQ-NEXT: msr apdakeyhi_el1, x0
// CHECK-REQ: error: expected writable system register or pstate
-// CHECK-REQ-NEXT: msr apdbkeylo_el1, x0
// CHECK-REQ: error: expected writable system register or pstate
-// CHECK-REQ-NEXT: msr apdbkeyhi_el1, x0
// CHECK-REQ: error: expected writable system register or pstate
-// CHECK-REQ-NEXT: msr apgakeylo_el1, x0
// CHECK-REQ: error: expected writable system register or pstate
-// CHECK-REQ-NEXT: msr apgakeyhi_el1, x0
-// ALL-EMPTY:
-// ALL-EMPTY:
paciasp
-// CHECK-NEXT: paciasp // encoding: [0x3f,0x23,0x03,0xd5]
-// NOENC-NEXT: paciasp
+// CHECK: paciasp // encoding: [0x3f,0x23,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
autiasp
-// CHECK-NEXT: autiasp // encoding: [0xbf,0x23,0x03,0xd5]
-// NOENC-NEXT: autiasp
+// CHECK: autiasp // encoding: [0xbf,0x23,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
paciaz
-// CHECK-NEXT: paciaz // encoding: [0x1f,0x23,0x03,0xd5]
-// NOENC-NEXT: paciaz
+// CHECK: paciaz // encoding: [0x1f,0x23,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
autiaz
-// CHECK-NEXT: autiaz // encoding: [0x9f,0x23,0x03,0xd5]
-// NOENC-NEXT: autiaz
+// CHECK: autiaz // encoding: [0x9f,0x23,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
pacia1716
-// CHECK-NEXT: pacia1716 // encoding: [0x1f,0x21,0x03,0xd5]
-// NOENC-NEXT: pacia1716
+// CHECK: pacia1716 // encoding: [0x1f,0x21,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
autia1716
-// CHECK-NEXT: autia1716 // encoding: [0x9f,0x21,0x03,0xd5]
-// NOENC-NEXT: autia1716
+// CHECK: autia1716 // encoding: [0x9f,0x21,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
pacibsp
-// CHECK-NEXT: pacibsp // encoding: [0x7f,0x23,0x03,0xd5]
-// NOENC-NEXT: pacibsp
+// CHECK: pacibsp // encoding: [0x7f,0x23,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
autibsp
-// CHECK-NEXT: autibsp // encoding: [0xff,0x23,0x03,0xd5]
-// NOENC-NEXT: autibsp
+// CHECK: autibsp // encoding: [0xff,0x23,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
pacibz
-// CHECK-NEXT: pacibz // encoding: [0x5f,0x23,0x03,0xd5]
-// NOENC-NEXT: pacibz
+// CHECK: pacibz // encoding: [0x5f,0x23,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
autibz
-// CHECK-NEXT: autibz // encoding: [0xdf,0x23,0x03,0xd5]
-// NOENC-NEXT: autibz
+// CHECK: autibz // encoding: [0xdf,0x23,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
pacib1716
-// CHECK-NEXT: pacib1716 // encoding: [0x5f,0x21,0x03,0xd5]
-// NOENC-NEXT: pacib1716
+// CHECK: pacib1716 // encoding: [0x5f,0x21,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
autib1716
-// CHECK-NEXT: autib1716 // encoding: [0xdf,0x21,0x03,0xd5]
-// NOENC-NEXT: autib1716
+// CHECK: autib1716 // encoding: [0xdf,0x21,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
xpaclri
-// CHECK-NEXT: xpaclri // encoding: [0xff,0x20,0x03,0xd5]
-// NOENC-NEXT: xpaclri
+// CHECK: xpaclri // encoding: [0xff,0x20,0x03,0xd5]
+// CHECK-REQ-NOT: error: instruction requires: armv8.3a
-// ALL-EMPTY:
pacia x0, x1
-// CHECK-NEXT: pacia x0, x1 // encoding: [0x20,0x00,0xc1,0xda]
-// CHECK-REQ-NEXT: ^
-// CHECK-REQ-NEXT: error: instruction requires: pa
-// CHECK-REQ-NEXT: pacia x0, x1
+// CHECK: pacia x0, x1 // encoding: [0x20,0x00,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
autia x0, x1
-// CHECK-NEXT: autia x0, x1 // encoding: [0x20,0x10,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: autia x0, x1
+// CHECK: autia x0, x1 // encoding: [0x20,0x10,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
pacda x0, x1
-// CHECK-NEXT: pacda x0, x1 // encoding: [0x20,0x08,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: pacda x0, x1
+// CHECK: pacda x0, x1 // encoding: [0x20,0x08,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
autda x0, x1
-// CHECK-NEXT: autda x0, x1 // encoding: [0x20,0x18,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: autda x0, x1
+// CHECK: autda x0, x1 // encoding: [0x20,0x18,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
pacib x0, x1
-// CHECK-NEXT: pacib x0, x1 // encoding: [0x20,0x04,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: pacib x0, x1
+// CHECK: pacib x0, x1 // encoding: [0x20,0x04,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
autib x0, x1
-// CHECK-NEXT: autib x0, x1 // encoding: [0x20,0x14,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: autib x0, x1
+// CHECK: autib x0, x1 // encoding: [0x20,0x14,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
pacdb x0, x1
-// CHECK-NEXT: pacdb x0, x1 // encoding: [0x20,0x0c,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: pacdb x0, x1
+// CHECK: pacdb x0, x1 // encoding: [0x20,0x0c,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
autdb x0, x1
-// CHECK-NEXT: autdb x0, x1 // encoding: [0x20,0x1c,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: autdb x0, x1
+// CHECK: autdb x0, x1 // encoding: [0x20,0x1c,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
pacga x0, x1, x2
-// CHECK-NEXT: pacga x0, x1, x2 // encoding: [0x20,0x30,0xc2,0x9a]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: pacga x0, x1, x2
+// CHECK: pacga x0, x1, x2 // encoding: [0x20,0x30,0xc2,0x9a]
+// CHECK-REQ: error: instruction requires: armv8.3a
paciza x0
-// CHECK-NEXT: paciza x0 // encoding: [0xe0,0x23,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: paciza x0
+// CHECK: paciza x0 // encoding: [0xe0,0x23,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
autiza x0
-// CHECK-NEXT: autiza x0 // encoding: [0xe0,0x33,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: autiza x0
+// CHECK: autiza x0 // encoding: [0xe0,0x33,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
pacdza x0
-// CHECK-NEXT: pacdza x0 // encoding: [0xe0,0x2b,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: pacdza x0
+// CHECK: pacdza x0 // encoding: [0xe0,0x2b,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
autdza x0
-// CHECK-NEXT: autdza x0 // encoding: [0xe0,0x3b,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: autdza x0
+// CHECK: autdza x0 // encoding: [0xe0,0x3b,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
pacizb x0
-// CHECK-NEXT: pacizb x0 // encoding: [0xe0,0x27,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: pacizb x0
+// CHECK: pacizb x0 // encoding: [0xe0,0x27,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
autizb x0
-// CHECK-NEXT: autizb x0 // encoding: [0xe0,0x37,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: autizb x0
+// CHECK: autizb x0 // encoding: [0xe0,0x37,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
pacdzb x0
-// CHECK-NEXT: pacdzb x0 // encoding: [0xe0,0x2f,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: pacdzb x0
+// CHECK: pacdzb x0 // encoding: [0xe0,0x2f,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
autdzb x0
-// CHECK-NEXT: autdzb x0 // encoding: [0xe0,0x3f,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: autdzb x0
+// CHECK: autdzb x0 // encoding: [0xe0,0x3f,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
xpaci x0
-// CHECK-NEXT: xpaci x0 // encoding: [0xe0,0x43,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: xpaci x0
+// CHECK: xpaci x0 // encoding: [0xe0,0x43,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
xpacd x0
-// CHECK-NEXT: xpacd x0 // encoding: [0xe0,0x47,0xc1,0xda]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: xpacd x0
+// CHECK: xpacd x0 // encoding: [0xe0,0x47,0xc1,0xda]
+// CHECK-REQ: error: instruction requires: armv8.3a
braa x0, x1
-// CHECK-EMPTY:
-// CHECK-NEXT: braa x0, x1 // encoding: [0x01,0x08,0x1f,0xd7]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: braa x0, x1
+// CHECK: braa x0, x1 // encoding: [0x01,0x08,0x1f,0xd7]
+// CHECK-REQ: error: instruction requires: armv8.3a
brab x0, x1
-// CHECK-NEXT: brab x0, x1 // encoding: [0x01,0x0c,0x1f,0xd7]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: brab x0, x1
+// CHECK: brab x0, x1 // encoding: [0x01,0x0c,0x1f,0xd7]
+// CHECK-REQ: error: instruction requires: armv8.3a
blraa x0, x1
-// CHECK-NEXT: blraa x0, x1 // encoding: [0x01,0x08,0x3f,0xd7]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: blraa x0, x1
+// CHECK: blraa x0, x1 // encoding: [0x01,0x08,0x3f,0xd7]
+// CHECK-REQ: error: instruction requires: armv8.3a
blrab x0, x1
-// CHECK-NEXT: blrab x0, x1 // encoding: [0x01,0x0c,0x3f,0xd7]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: blrab x0, x1
+// CHECK: blrab x0, x1 // encoding: [0x01,0x0c,0x3f,0xd7]
+// CHECK-REQ: error: instruction requires: armv8.3a
braaz x0
-// CHECK-EMPTY:
-// CHECK-NEXT: braaz x0 // encoding: [0x1f,0x08,0x1f,0xd6]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: braaz x0
+// CHECK: braaz x0 // encoding: [0x1f,0x08,0x1f,0xd6]
+// CHECK-REQ: error: instruction requires: armv8.3a
brabz x0
-// CHECK-NEXT: brabz x0 // encoding: [0x1f,0x0c,0x1f,0xd6]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: brabz x0
+// CHECK: brabz x0 // encoding: [0x1f,0x0c,0x1f,0xd6]
+// CHECK-REQ: error: instruction requires: armv8.3a
blraaz x0
-// CHECK-NEXT: blraaz x0 // encoding: [0x1f,0x08,0x3f,0xd6]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: blraaz x0
+// CHECK: blraaz x0 // encoding: [0x1f,0x08,0x3f,0xd6]
+// CHECK-REQ: error: instruction requires: armv8.3a
blrabz x0
-// CHECK-NEXT: blrabz x0 // encoding: [0x1f,0x0c,0x3f,0xd6]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: blrabz x0
+// CHECK: blrabz x0 // encoding: [0x1f,0x0c,0x3f,0xd6]
+// CHECK-REQ: error: instruction requires: armv8.3a
retaa
-// CHECK-NEXT: retaa // encoding: [0xff,0x0b,0x5f,0xd6]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: retaa
+// CHECK: retaa // encoding: [0xff,0x0b,0x5f,0xd6]
+// CHECK-REQ: error: instruction requires: armv8.3a
retab
-// CHECK-NEXT: retab // encoding: [0xff,0x0f,0x5f,0xd6]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: retab
+// CHECK: retab // encoding: [0xff,0x0f,0x5f,0xd6]
+// CHECK-REQ: error: instruction requires: armv8.3a
eretaa
-// CHECK-NEXT: eretaa // encoding: [0xff,0x0b,0x9f,0xd6]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: eretaa
+// CHECK: eretaa // encoding: [0xff,0x0b,0x9f,0xd6]
+// CHECK-REQ: error: instruction requires: armv8.3a
eretab
-// CHECK-NEXT: eretab // encoding: [0xff,0x0f,0x9f,0xd6]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: eretab
+// CHECK: eretab // encoding: [0xff,0x0f,0x9f,0xd6]
+// CHECK-REQ: error: instruction requires: armv8.3a
ldraa x0, [x1, 4088]
-// CHECK-NEXT: ldraa x0, [x1, #4088] // encoding: [0x20,0xf4,0x3f,0xf8]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: ldraa x0, [x1, 4088]
+// CHECK: ldraa x0, [x1, #4088] // encoding: [0x20,0xf4,0x3f,0xf8]
+// CHECK-REQ: error: instruction requires: armv8.3a
ldraa x0, [x1, -4096]
-// CHECK-NEXT: ldraa x0, [x1, #-4096] // encoding: [0x20,0x04,0x60,0xf8]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: ldraa x0, [x1, -4096]
+// CHECK: ldraa x0, [x1, #-4096] // encoding: [0x20,0x04,0x60,0xf8]
+// CHECK-REQ: error: instruction requires: armv8.3a
ldrab x0, [x1, 4088]
-// CHECK-NEXT: ldrab x0, [x1, #4088] // encoding: [0x20,0xf4,0xbf,0xf8]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: ldrab x0, [x1, 4088]
+// CHECK: ldrab x0, [x1, #4088] // encoding: [0x20,0xf4,0xbf,0xf8]
+// CHECK-REQ: error: instruction requires: armv8.3a
ldrab x0, [x1, -4096]
-// CHECK-NEXT: ldrab x0, [x1, #-4096] // encoding: [0x20,0x04,0xe0,0xf8]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: ldrab x0, [x1, -4096]
+// CHECK: ldrab x0, [x1, #-4096] // encoding: [0x20,0x04,0xe0,0xf8]
+// CHECK-REQ: error: instruction requires: armv8.3a
ldraa x0, [x1, 4088]!
-// CHECK-NEXT: ldraa x0, [x1, #4088]! // encoding: [0x20,0xfc,0x3f,0xf8]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: ldraa x0, [x1, 4088]!
+// CHECK: ldraa x0, [x1, #4088]! // encoding: [0x20,0xfc,0x3f,0xf8]
+// CHECK-REQ: error: instruction requires: armv8.3a
ldraa x0, [x1, -4096]!
-// CHECK-NEXT: ldraa x0, [x1, #-4096]! // encoding: [0x20,0x0c,0x60,0xf8]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: ldraa x0, [x1, -4096]!
+// CHECK: ldraa x0, [x1, #-4096]! // encoding: [0x20,0x0c,0x60,0xf8]
+// CHECK-REQ: error: instruction requires: armv8.3a
ldrab x0, [x1, 4088]!
-// CHECK-NEXT: ldrab x0, [x1, #4088]! // encoding: [0x20,0xfc,0xbf,0xf8]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: ldrab x0, [x1, 4088]!
+// CHECK: ldrab x0, [x1, #4088]! // encoding: [0x20,0xfc,0xbf,0xf8]
+// CHECK-REQ: error: instruction requires: armv8.3a
ldrab x0, [x1, -4096]!
-// CHECK-NEXT: ldrab x0, [x1, #-4096]! // encoding: [0x20,0x0c,0xe0,0xf8]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: ldrab x0, [x1, -4096]!
+// CHECK: ldrab x0, [x1, #-4096]! // encoding: [0x20,0x0c,0xe0,0xf8]
+// CHECK-REQ: error: instruction requires: armv8.3a
ldraa x0, [x1]
-// CHECK-NEXT: ldraa x0, [x1] // encoding: [0x20,0x04,0x20,0xf8]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: ldraa x0, [x1]
+// CHECK: ldraa x0, [x1] // encoding: [0x20,0x04,0x20,0xf8]
+// CHECK-REQ: error: instruction requires: armv8.3a
ldrab x0, [x1]
-// CHECK-NEXT: ldrab x0, [x1] // encoding: [0x20,0x04,0xa0,0xf8]
-// CHECK-REQ: error: instruction requires: pa
-// CHECK-REQ-NEXT: ldrab x0, [x1]
+// CHECK: ldrab x0, [x1] // encoding: [0x20,0x04,0xa0,0xf8]
+// CHECK-REQ: error: instruction requires: armv8.3a
diff --git a/llvm/test/MC/AArch64/armv8.4a-flag.s b/llvm/test/MC/AArch64/armv8.4a-flag.s
index 154ed425bb6..3c0d80bbedd 100644
--- a/llvm/test/MC/AArch64/armv8.4a-flag.s
+++ b/llvm/test/MC/AArch64/armv8.4a-flag.s
@@ -1,14 +1,5 @@
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a %s -o - | \
-// RUN: FileCheck %s
-
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+fmi %s -o - 2>&1 | \
-// RUN: FileCheck %s
-
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a %s -o - 2>&1 | \
-// RUN: FileCheck %s --check-prefix=ERROR
-
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a,-fmi %s -o - 2>&1 | \
-// RUN: FileCheck %s --check-prefix=ERROR
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s | FileCheck %s --check-prefix=CHECK
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
//------------------------------------------------------------------------------
// Armv8.4-A flag manipulation instructions
@@ -30,24 +21,24 @@
//CHECK-NEXT: rmif x1, #63, #15 // encoding: [0x2f,0x84,0x1f,0xba]
//CHECK-NEXT: rmif xzr, #63, #15 // encoding: [0xef,0x87,0x1f,0xba]
-//ERROR: error: instruction requires: fmi
-//ERROR-NEXT: cfinv
-//ERROR-NEXT: ^
-//ERROR-NEXT: error: instruction requires: fmi
-//ERROR-NEXT: setf8 w1
-//ERROR-NEXT: ^
-//ERROR-NEXT: error: instruction requires: fmi
-//ERROR-NEXT: setf8 wzr
-//ERROR-NEXT: ^
-//ERROR-NEXT: error: instruction requires: fmi
-//ERROR-NEXT: setf16 w1
-//ERROR-NEXT: ^
-//ERROR-NEXT: error: instruction requires: fmi
-//ERROR-NEXT: setf16 wzr
-//ERROR-NEXT: ^
-//ERROR-NEXT: error: instruction requires: fmi
-//ERROR-NEXT: rmif x1, #63, #15
-//ERROR-NEXT: ^
-//ERROR-NEXT: error: instruction requires: fmi
-//ERROR-NEXT: rmif xzr, #63, #15
-//ERROR-NEXT: ^
+//CHECK-ERROR: error: instruction requires: armv8.4a
+//CHECK-ERROR-NEXT: cfinv
+//CHECK-ERROR-NEXT: ^
+//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
+//CHECK-ERROR-NEXT: setf8 w1
+//CHECK-ERROR-NEXT: ^
+//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
+//CHECK-ERROR-NEXT: setf8 wzr
+//CHECK-ERROR-NEXT: ^
+//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
+//CHECK-ERROR-NEXT: setf16 w1
+//CHECK-ERROR-NEXT: ^
+//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
+//CHECK-ERROR-NEXT: setf16 wzr
+//CHECK-ERROR-NEXT: ^
+//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
+//CHECK-ERROR-NEXT: rmif x1, #63, #15
+//CHECK-ERROR-NEXT: ^
+//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
+//CHECK-ERROR-NEXT: rmif xzr, #63, #15
+//CHECK-ERROR-NEXT: ^
diff --git a/llvm/test/MC/AArch64/armv8.4a-ldst.s b/llvm/test/MC/AArch64/armv8.4a-ldst.s
index 8d05c6acc5f..bf2a45ad7df 100644
--- a/llvm/test/MC/AArch64/armv8.4a-ldst.s
+++ b/llvm/test/MC/AArch64/armv8.4a-ldst.s
@@ -1,8 +1,5 @@
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a -o - %s | FileCheck %s
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a,+rcpc-immo -o - %s 2>&1 | FileCheck %s
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a,-rcpc-immo -o - %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-V84
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a -o - %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-V84
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -o - %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-V84
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s | FileCheck %s --check-prefix=CHECK
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-V84
//------------------------------------------------------------------------------
// Armv8.4-A LDAPR and STLR instructions with immediate offsets
@@ -143,168 +140,168 @@ ldapur x14, [sp, #9]
//CHECK-NEXT: ldapur x13, [x4, #255] // encoding: [0x8d,0xf0,0x4f,0xd9]
//CHECK-NEXT: ldapur x14, [sp, #9] // encoding: [0xee,0x93,0x40,0xd9]
-//CHECK-NO-V84: error: instruction requires: rcpc-immo
+//CHECK-NO-V84: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLURB WZR, [X10]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLURB W1, [X10]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLURB W1, [X10, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: stlurb w2, [x11, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLURB W3, [SP, #-3]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapurb wzr, [x12]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapurb w4, [x12]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapurb w4, [x12, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURB W5, [X13, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURB W6, [SP, #-2]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSB W7, [X14]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSB W7, [X14, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapursb w8, [x15, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapursb w9, [sp, #-1]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSB X0, [X16]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSB X0, [X16, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSB X1, [X17, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapursb x2, [sp, #0]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapursb x2, [sp]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: stlurh w10, [x18]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: stlurh w10, [x18, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLURH W11, [X19, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLURH W12, [SP, #1]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURH W13, [X20]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURH W13, [X20, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapurh w14, [x21, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURH W15, [SP, #2]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSH W16, [X22]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSH W16, [X22, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSH W17, [X23, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapursh w18, [sp, #3]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapursh x3, [x24]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapursh x3, [x24, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSH X4, [X25, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSH X5, [SP, #4]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLUR W19, [X26]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLUR W19, [X26, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: stlur w20, [x27, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLUR W21, [SP, #5]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPUR W22, [X28]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPUR W22, [X28, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPUR W23, [X29, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapur w24, [sp, #6]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapursw x6, [x30]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapursw x6, [x30, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSW X7, [X0, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPURSW X8, [SP, #7]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLUR X9, [X1]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLUR X9, [X1, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: stlur x10, [x2, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: STLUR X11, [SP, #8]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPUR X12, [X3]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPUR X12, [X3, #-256]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: LDAPUR X13, [X4, #255]
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: instruction requires: rcpc-immo
+//CHECK-NO-V84-NEXT: error: instruction requires: armv8.4a
//CHECK-NO-V84-NEXT: ldapur x14, [sp, #9]
//CHECK-NO-V84-NEXT: ^
diff --git a/llvm/test/MC/AArch64/armv8.4a-tlb.s b/llvm/test/MC/AArch64/armv8.4a-tlb.s
index 39f8d0dc214..e64be16b661 100644
--- a/llvm/test/MC/AArch64/armv8.4a-tlb.s
+++ b/llvm/test/MC/AArch64/armv8.4a-tlb.s
@@ -1,9 +1,6 @@
// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s 2> %t | FileCheck %s --check-prefix=CHECK
// RUN: FileCheck --check-prefix=CHECK-ERROR < %t %s
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+tlb-rmi < %s 2> %t | FileCheck %s --check-prefix=CHECK
-// RUN: FileCheck --check-prefix=CHECK-ERROR < %t %s
// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-V84
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a,-tlb-rmi < %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-V84
// Outer shareable TLB maintenance instructions:
tlbi vmalle1os
@@ -48,55 +45,55 @@ tlbi vae1os, sp
//CHECK-ERROR-NEXT: tlbi vae1os, sp
//CHECK-ERROR-NEXT: ^
-//CHECK-NO-V84: error: TLBI VMALLE1OS requires tlb-rmi
+//CHECK-NO-V84: error: TLBI VMALLE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vmalle1os
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI VAE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI VAE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vae1os, xzr
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI VAE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI VAE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vae1os, x0
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI ASIDE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI ASIDE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi aside1os, x1
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI VAAE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI VAAE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vaae1os, x2
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI VALE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI VALE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vale1os, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI VAALE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI VAALE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vaale1os, x4
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI IPAS2E1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI IPAS2E1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi ipas2e1os, x5
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI IPAS2LE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI IPAS2LE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi ipas2le1os, x6
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI VAE2OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI VAE2OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vae2os, x7
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI VALE2OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI VALE2OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vale2os, x8
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI VMALLS12E1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI VMALLS12E1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vmalls12e1os
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI VAE3OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI VAE3OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vae3os, x9
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI VALE3OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI VALE3OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi vale3os, x10
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI ALLE2OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI ALLE2OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi alle2os
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI ALLE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI ALLE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi alle1os
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI ALLE3OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI ALLE3OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi alle3os
//CHECK-NO-V84-NEXT: ^
@@ -171,96 +168,96 @@ tlbi rvae1, sp
//CHECK-ERROR-NEXT: tlbi rvae1, sp
//CHECK-ERROR-NEXT: ^
-//CHECK-NO-V84: error: TLBI RVAE1 requires tlb-rmi
+//CHECK-NO-V84: error: TLBI RVAE1 requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvae1, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAAE1 requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAAE1 requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvaae1, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVALE1 requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVALE1 requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvale1, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAALE1 requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAALE1 requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvaale1, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAE1IS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAE1IS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvae1is, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAAE1IS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAAE1IS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvaae1is, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVALE1IS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVALE1IS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvale1is, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAALE1IS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAALE1IS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvaale1is, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvae1os, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAAE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAAE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvaae1os, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVALE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVALE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvale1os, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAALE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAALE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvaale1os, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RIPAS2E1IS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RIPAS2E1IS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi ripas2e1is, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RIPAS2LE1IS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RIPAS2LE1IS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi ripas2le1is, x3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RIPAS2E1 requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RIPAS2E1 requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi ripas2e1, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RIPAS2LE1 requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RIPAS2LE1 requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi ripas2le1, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RIPAS2E1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RIPAS2E1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi ripas2e1os, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RIPAS2LE1OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RIPAS2LE1OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi ripas2le1os, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAE2 requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAE2 requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvae2, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVALE2 requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVALE2 requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvale2, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAE2IS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAE2IS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvae2is, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVALE2IS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVALE2IS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvale2is, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAE2OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAE2OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvae2os, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVALE2OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVALE2OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvale2os, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAE3 requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAE3 requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvae3, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVALE3 requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVALE3 requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvale3, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAE3IS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAE3IS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvae3is, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVALE3IS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVALE3IS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvale3is, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVAE3OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVAE3OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvae3os, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVALE3OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVALE3OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvale3os, X3
//CHECK-NO-V84-NEXT: ^
-//CHECK-NO-V84-NEXT: error: TLBI RVALE3OS requires tlb-rmi
+//CHECK-NO-V84-NEXT: error: TLBI RVALE3OS requires ARMv8.4a
//CHECK-NO-V84-NEXT: tlbi rvale3os, XZR
//CHECK-NO-V84-NEXT: ^
diff --git a/llvm/test/MC/AArch64/armv8.4a-trace.s b/llvm/test/MC/AArch64/armv8.4a-trace.s
index 7227b500be1..d14b0e0ef7e 100644
--- a/llvm/test/MC/AArch64/armv8.4a-trace.s
+++ b/llvm/test/MC/AArch64/armv8.4a-trace.s
@@ -1,14 +1,5 @@
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a -o - 2>&1 %s | \
-// RUN: FileCheck %s
-
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+tracev8.4 -o - 2>&1 %s | \
-// RUN: FileCheck %s
-
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a -o - %s 2>&1 | \
-// RUN: FileCheck %s --check-prefix=CHECK-ERROR
-
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a,-tracev8.4 -o - %s 2>&1 | \
-// RUN: FileCheck %s --check-prefixes NOFEATURE,CHECK-ERROR
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s | FileCheck %s --check-prefix=CHECK
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
//------------------------------------------------------------------------------
// ARMV8.4-A Debug, Trace and PMU Extensions
@@ -54,4 +45,4 @@ tsb csync
//CHECK-ERROR: mrs x0, TRFCR_EL12
//CHECK-ERROR: ^
-//CHECK-ERROR: error: instruction requires: tracev8.4
+//CHECK-ERROR: error: instruction requires: armv8.4a
OpenPOWER on IntegriCloud