summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCullen Rhodes <cullen.rhodes@arm.com>2019-06-03 10:42:02 +0000
committerCullen Rhodes <cullen.rhodes@arm.com>2019-06-03 10:42:02 +0000
commit3901dd3e4126d6349deb63686be99ac7fd7b94f6 (patch)
treebbbb403d68204f3de557f2d5912f4e8401dee715
parentab93e6e0feaee5c3b1eb27d88df38cb05f4e7e9e (diff)
downloadbcm5719-llvm-3901dd3e4126d6349deb63686be99ac7fd7b94f6.tar.gz
bcm5719-llvm-3901dd3e4126d6349deb63686be99ac7fd7b94f6.zip
[AArch64][SVE2] Add CPU and arch directive tests
Summary: This patch adds tests for directives .arch, .arch_extension and .cpu for all features defined in Arm SVE2 architecture extension. Reviewed By: chill Differential Revision: https://reviews.llvm.org/D62602 llvm-svn: 362378
-rw-r--r--llvm/test/MC/AArch64/SVE2/directive-arch-negative.s31
-rw-r--r--llvm/test/MC/AArch64/SVE2/directive-arch.s21
-rw-r--r--llvm/test/MC/AArch64/SVE2/directive-arch_extension-negative.s31
-rw-r--r--llvm/test/MC/AArch64/SVE2/directive-arch_extension.s21
-rw-r--r--llvm/test/MC/AArch64/SVE2/directive-cpu-negative.s31
-rw-r--r--llvm/test/MC/AArch64/SVE2/directive-cpu.s21
6 files changed, 156 insertions, 0 deletions
diff --git a/llvm/test/MC/AArch64/SVE2/directive-arch-negative.s b/llvm/test/MC/AArch64/SVE2/directive-arch-negative.s
new file mode 100644
index 00000000000..4b2ba039dc3
--- /dev/null
+++ b/llvm/test/MC/AArch64/SVE2/directive-arch-negative.s
@@ -0,0 +1,31 @@
+// RUN: not llvm-mc -triple aarch64 -filetype asm -o - %s 2>&1 | FileCheck %s
+
+.arch armv8-a+sve2
+.arch armv8-a+nosve2
+tbx z0.b, z1.b, z2.b
+// CHECK: error: instruction requires: sve2
+// CHECK-NEXT: tbx z0.b, z1.b, z2.b
+
+.arch armv8-a+sve2-aes
+.arch armv8-a+nosve2-aes
+aesd z23.b, z23.b, z13.b
+// CHECK: error: instruction requires: sve2-aes
+// CHECK-NEXT: aesd z23.b, z23.b, z13.b
+
+.arch armv8-a+sve2-sm4
+.arch armv8-a+nosve2-sm4
+sm4e z0.s, z0.s, z0.s
+// CHECK: error: instruction requires: sve2-sm4
+// CHECK-NEXT: sm4e z0.s, z0.s, z0.s
+
+.arch armv8-a+sve2-sha3
+.arch armv8-a+nosve2-sha3
+rax1 z0.d, z0.d, z0.d
+// CHECK: error: instruction requires: sve2-sha3
+// CHECK-NEXT: rax1 z0.d, z0.d, z0.d
+
+.arch armv8-a+bitperm
+.arch armv8-a+nobitperm
+bgrp z21.s, z10.s, z21.s
+// CHECK: error: instruction requires: bitperm
+// CHECK-NEXT: bgrp z21.s, z10.s, z21.s
diff --git a/llvm/test/MC/AArch64/SVE2/directive-arch.s b/llvm/test/MC/AArch64/SVE2/directive-arch.s
new file mode 100644
index 00000000000..94ef6470075
--- /dev/null
+++ b/llvm/test/MC/AArch64/SVE2/directive-arch.s
@@ -0,0 +1,21 @@
+// RUN: llvm-mc -triple aarch64 -filetype asm -o - %s 2>&1 | FileCheck %s
+
+.arch armv8-a+sve2
+tbx z0.b, z1.b, z2.b
+// CHECK: tbx z0.b, z1.b, z2.b
+
+.arch armv8-a+sve2-aes
+aesd z23.b, z23.b, z13.b
+// CHECK: aesd z23.b, z23.b, z13.b
+
+.arch armv8-a+sve2-sm4
+sm4e z0.s, z0.s, z0.s
+// CHECK: sm4e z0.s, z0.s, z0.s
+
+.arch armv8-a+sve2-sha3
+rax1 z0.d, z0.d, z0.d
+// CHECK: rax1 z0.d, z0.d, z0.d
+
+.arch armv8-a+bitperm
+bgrp z21.s, z10.s, z21.s
+// CHECK: bgrp z21.s, z10.s, z21.s
diff --git a/llvm/test/MC/AArch64/SVE2/directive-arch_extension-negative.s b/llvm/test/MC/AArch64/SVE2/directive-arch_extension-negative.s
new file mode 100644
index 00000000000..5db80e11a91
--- /dev/null
+++ b/llvm/test/MC/AArch64/SVE2/directive-arch_extension-negative.s
@@ -0,0 +1,31 @@
+// RUN: not llvm-mc -triple aarch64 -filetype asm -o - %s 2>&1 | FileCheck %s
+
+.arch_extension sve2
+.arch_extension nosve2
+tbx z0.b, z1.b, z2.b
+// CHECK: error: instruction requires: sve2
+// CHECK-NEXT: tbx z0.b, z1.b, z2.b
+
+.arch_extension sve2-aes
+.arch_extension nosve2-aes
+aesd z23.b, z23.b, z13.b
+// CHECK: error: instruction requires: sve2-aes
+// CHECK-NEXT: aesd z23.b, z23.b, z13.b
+
+.arch_extension sve2-sm4
+.arch_extension nosve2-sm4
+sm4e z0.s, z0.s, z0.s
+// CHECK: error: instruction requires: sve2-sm4
+// CHECK-NEXT: sm4e z0.s, z0.s, z0.s
+
+.arch_extension sve2-sha3
+.arch_extension nosve2-sha3
+rax1 z0.d, z0.d, z0.d
+// CHECK: error: instruction requires: sve2-sha3
+// CHECK-NEXT: rax1 z0.d, z0.d, z0.d
+
+.arch_extension bitperm
+.arch_extension nobitperm
+bgrp z21.s, z10.s, z21.s
+// CHECK: error: instruction requires: bitperm
+// CHECK-NEXT: bgrp z21.s, z10.s, z21.s
diff --git a/llvm/test/MC/AArch64/SVE2/directive-arch_extension.s b/llvm/test/MC/AArch64/SVE2/directive-arch_extension.s
new file mode 100644
index 00000000000..257f5721d72
--- /dev/null
+++ b/llvm/test/MC/AArch64/SVE2/directive-arch_extension.s
@@ -0,0 +1,21 @@
+// RUN: llvm-mc -triple aarch64 -filetype asm -o - %s 2>&1 | FileCheck %s
+
+.arch_extension sve2
+tbx z0.b, z1.b, z2.b
+// CHECK: tbx z0.b, z1.b, z2.b
+
+.arch_extension sve2-aes
+aesd z23.b, z23.b, z13.b
+// CHECK: aesd z23.b, z23.b, z13.b
+
+.arch_extension sve2-sm4
+sm4e z0.s, z0.s, z0.s
+// CHECK: sm4e z0.s, z0.s, z0.s
+
+.arch_extension sve2-sha3
+rax1 z0.d, z0.d, z0.d
+// CHECK: rax1 z0.d, z0.d, z0.d
+
+.arch_extension bitperm
+bgrp z21.s, z10.s, z21.s
+// CHECK: bgrp z21.s, z10.s, z21.s
diff --git a/llvm/test/MC/AArch64/SVE2/directive-cpu-negative.s b/llvm/test/MC/AArch64/SVE2/directive-cpu-negative.s
new file mode 100644
index 00000000000..542a6f692ca
--- /dev/null
+++ b/llvm/test/MC/AArch64/SVE2/directive-cpu-negative.s
@@ -0,0 +1,31 @@
+// RUN: not llvm-mc -triple aarch64 -filetype asm -o - %s 2>&1 | FileCheck %s
+
+.cpu generic+sve2
+.cpu generic+nosve2
+tbx z0.b, z1.b, z2.b
+// CHECK: error: instruction requires: sve2
+// CHECK-NEXT: tbx z0.b, z1.b, z2.b
+
+.cpu generic+sve2-aes
+.cpu generic+nosve2-aes
+aesd z23.b, z23.b, z13.b
+// CHECK: error: instruction requires: sve2-aes
+// CHECK-NEXT: aesd z23.b, z23.b, z13.b
+
+.cpu generic+sve2-sm4
+.cpu generic+nosve2-sm4
+sm4e z0.s, z0.s, z0.s
+// CHECK: error: instruction requires: sve2-sm4
+// CHECK-NEXT: sm4e z0.s, z0.s, z0.s
+
+.cpu generic+sve2-sha3
+.cpu generic+nosve2-sha3
+rax1 z0.d, z0.d, z0.d
+// CHECK: error: instruction requires: sve2-sha3
+// CHECK-NEXT: rax1 z0.d, z0.d, z0.d
+
+.cpu generic+bitperm
+.cpu generic+nobitperm
+bgrp z21.s, z10.s, z21.s
+// CHECK: error: instruction requires: bitperm
+// CHECK-NEXT: bgrp z21.s, z10.s, z21.s
diff --git a/llvm/test/MC/AArch64/SVE2/directive-cpu.s b/llvm/test/MC/AArch64/SVE2/directive-cpu.s
new file mode 100644
index 00000000000..a8ca7b389e9
--- /dev/null
+++ b/llvm/test/MC/AArch64/SVE2/directive-cpu.s
@@ -0,0 +1,21 @@
+// RUN: llvm-mc -triple aarch64 -filetype asm -o - %s 2>&1 | FileCheck %s
+
+.cpu generic+sve2
+tbx z0.b, z1.b, z2.b
+// CHECK: tbx z0.b, z1.b, z2.b
+
+.cpu generic+sve2-aes
+aesd z23.b, z23.b, z13.b
+// CHECK: aesd z23.b, z23.b, z13.b
+
+.cpu generic+sve2-sm4
+sm4e z0.s, z0.s, z0.s
+// CHECK: sm4e z0.s, z0.s, z0.s
+
+.cpu generic+sve2-sha3
+rax1 z0.d, z0.d, z0.d
+// CHECK: rax1 z0.d, z0.d, z0.d
+
+.cpu generic+bitperm
+bgrp z21.s, z10.s, z21.s
+// CHECK: bgrp z21.s, z10.s, z21.s
OpenPOWER on IntegriCloud