summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/MC/AArch64/armv8.2a-uao.s17
-rw-r--r--llvm/test/MC/Disassembler/AArch64/armv8.2a-uao.txt19
2 files changed, 36 insertions, 0 deletions
diff --git a/llvm/test/MC/AArch64/armv8.2a-uao.s b/llvm/test/MC/AArch64/armv8.2a-uao.s
new file mode 100644
index 00000000000..ec5e96261a8
--- /dev/null
+++ b/llvm/test/MC/AArch64/armv8.2a-uao.s
@@ -0,0 +1,17 @@
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.2a < %s 2> %t | FileCheck %s
+// RUN: FileCheck --check-prefix=CHECK-ERROR %s < %t
+
+ msr uao, #0
+ msr uao, #1
+// CHECK: msr UAO, #0 // encoding: [0x7f,0x40,0x00,0xd5]
+// CHECK: msr UAO, #1 // encoding: [0x7f,0x41,0x00,0xd5]
+
+ msr uao, #2
+// CHECK-ERROR: error: immediate must be an integer in range [0, 1].
+// CHECK-ERROR: msr uao, #2
+// CHECK-ERROR: ^
+
+ msr uao, x1
+ mrs x2, uao
+// CHECK: msr UAO, x1 // encoding: [0x81,0x42,0x18,0xd5]
+// CHECK: mrs x2, UAO // encoding: [0x82,0x42,0x38,0xd5]
diff --git a/llvm/test/MC/Disassembler/AArch64/armv8.2a-uao.txt b/llvm/test/MC/Disassembler/AArch64/armv8.2a-uao.txt
new file mode 100644
index 00000000000..b8300f4c726
--- /dev/null
+++ b/llvm/test/MC/Disassembler/AArch64/armv8.2a-uao.txt
@@ -0,0 +1,19 @@
+# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.2a --disassemble < %s | FileCheck %s
+# RUN: llvm-mc -triple aarch64-none-linux-gnu --disassemble < %s 2>&1 | FileCheck --check-prefix=NO_V82A %s
+
+[0x7f,0x40,0x00,0xd5]
+[0x7f,0x41,0x00,0xd5]
+[0x7f,0x42,0x00,0xd5]
+# CHECK: msr UAO, #0
+# CHECK: msr UAO, #1
+# CHECK: msr S0_0_C4_C2_3, xzr
+# NO_V82A: msr S0_0_C4_C0_3, xzr
+# NO_V82A: msr S0_0_C4_C1_3, xzr
+# NO_V82A: msr S0_0_C4_C2_3, xzr
+
+[0x81,0x42,0x18,0xd5]
+[0x82,0x42,0x38,0xd5]
+# CHECK: msr UAO, x1
+# CHECK: mrs x2, UAO
+# NO_V82A: msr S3_0_C4_C2_4, x1
+# NO_V82A: mrs x2, S3_0_C4_C2_4
OpenPOWER on IntegriCloud