summaryrefslogtreecommitdiff
path: root/test/MC/AArch64/neon-crypto.s
diff options
context:
space:
mode:
authorJiangning Liu <jiangning.liu@arm.com>2013-11-05 17:42:05 +0000
committerJiangning Liu <jiangning.liu@arm.com>2013-11-05 17:42:05 +0000
commit3ff3a8aa7511bede13e836303a083af37fec4f4e (patch)
tree77908c2206d5aac8b873984de1d506891298644c /test/MC/AArch64/neon-crypto.s
parente05744ba850dd6c9aa438f6e2f60c77df8fcce74 (diff)
downloadllvm-3ff3a8aa7511bede13e836303a083af37fec4f4e.tar.gz
llvm-3ff3a8aa7511bede13e836303a083af37fec4f4e.tar.bz2
llvm-3ff3a8aa7511bede13e836303a083af37fec4f4e.tar.xz
Implement AArch64 Neon Crypto instruction classes AES, SHA, and 3 SHA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194085 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/AArch64/neon-crypto.s')
-rw-r--r--test/MC/AArch64/neon-crypto.s42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/MC/AArch64/neon-crypto.s b/test/MC/AArch64/neon-crypto.s
new file mode 100644
index 0000000000..df6eee851d
--- /dev/null
+++ b/test/MC/AArch64/neon-crypto.s
@@ -0,0 +1,42 @@
+// RUN: llvm-mc -triple=aarch64 -mattr=+neon -show-encoding < %s | FileCheck %s
+
+// Check that the assembler can handle the documented syntax for AArch64
+
+//------------------------------------------------------------------------------
+// Instructions for crypto
+//------------------------------------------------------------------------------
+
+ aese v0.16b, v1.16b
+ aesd v0.16b, v1.16b
+ aesmc v0.16b, v1.16b
+ aesimc v0.16b, v1.16b
+
+// CHECK: aese v0.16b, v1.16b // encoding: [0x20,0x48,0x28,0x4e]
+// CHECK: aesd v0.16b, v1.16b // encoding: [0x20,0x58,0x28,0x4e]
+// CHECK: aesmc v0.16b, v1.16b // encoding: [0x20,0x68,0x28,0x4e]
+// CHECK: aesimc v0.16b, v1.16b // encoding: [0x20,0x78,0x28,0x4e]
+
+ sha1h s0, s1
+ sha1su1 v0.4s, v1.4s
+ sha256su0 v0.4s, v1.4s
+
+// CHECK: sha1h s0, s1 // encoding: [0x20,0x08,0x28,0x5e]
+// CHECK: sha1su1 v0.4s, v1.4s // encoding: [0x20,0x18,0x28,0x5e]
+// CHECK: sha256su0 v0.4s, v1.4s // encoding: [0x20,0x28,0x28,0x5e]
+
+ sha1c q0, s1, v2.4s
+ sha1p q0, s1, v2.4s
+ sha1m q0, s1, v2.4s
+ sha1su0 v0.4s, v1.4s, v2.4s
+ sha256h q0, q1, v2.4s
+ sha256h2 q0, q1, v2.4s
+ sha256su1 v0.4s, v1.4s, v2.4s
+
+// CHECK: sha1c q0, s1, v2.4s // encoding: [0x20,0x00,0x02,0x5e]
+// CHECK: sha1p q0, s1, v2.4s // encoding: [0x20,0x10,0x02,0x5e]
+// CHECK: sha1m q0, s1, v2.4s // encoding: [0x20,0x20,0x02,0x5e]
+// CHECK: sha1su0 v0.4s, v1.4s, v2.4s // encoding: [0x20,0x30,0x02,0x5e]
+// CHECK: sha256h q0, q1, v2.4s // encoding: [0x20,0x40,0x02,0x5e]
+// CHECK: sha256h2 q0, q1, v2.4s // encoding: [0x20,0x50,0x02,0x5e]
+// CHECK: sha256su1 v0.4s, v1.4s, v2.4s // encoding: [0x20,0x60,0x02,0x5e]
+