aboutsummaryrefslogtreecommitdiffstats
path: root/test/MC/AArch64
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@codeaurora.org>2013-10-16 16:09:02 +0000
committerChad Rosier <mcrosier@codeaurora.org>2013-10-16 16:09:02 +0000
commita2cd42a0a7c46d158714c09047a77b7bc1cf9d69 (patch)
tree5ad3e6549546869c0ecdd97fb4dd2c79dd5d2833 /test/MC/AArch64
parentc4e2060ecc5b74021c5639f7e8b1a063b598feac (diff)
downloadexternal_llvm-a2cd42a0a7c46d158714c09047a77b7bc1cf9d69.zip
external_llvm-a2cd42a0a7c46d158714c09047a77b7bc1cf9d69.tar.gz
external_llvm-a2cd42a0a7c46d158714c09047a77b7bc1cf9d69.tar.bz2
[AArch64] Add support for NEON scalar signed saturating accumulated of unsigned
value and unsigned saturating accumulate of signed value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192800 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/AArch64')
-rw-r--r--test/MC/AArch64/neon-diagnostics.s44
-rw-r--r--test/MC/AArch64/neon-scalar-saturating-add-sub.s27
2 files changed, 71 insertions, 0 deletions
diff --git a/test/MC/AArch64/neon-diagnostics.s b/test/MC/AArch64/neon-diagnostics.s
index e08c5cd..dc49b3a 100644
--- a/test/MC/AArch64/neon-diagnostics.s
+++ b/test/MC/AArch64/neon-diagnostics.s
@@ -4396,3 +4396,47 @@
// CHECK-ERROR: error: invalid operand for instruction
// CHECK-ERROR: cmtst b20, d21, d22
// CHECK-ERROR: ^
+
+//----------------------------------------------------------------------
+// Scalar Signed Saturating Accumulated of Unsigned Value
+//----------------------------------------------------------------------
+
+ suqadd b0, h1
+ suqadd h0, s1
+ suqadd s0, d1
+ suqadd d0, b0
+
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: suqadd b0, h1
+// CHECK-ERROR: ^
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: suqadd h0, s1
+// CHECK-ERROR: ^
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: suqadd s0, d1
+// CHECK-ERROR: ^
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: suqadd d0, b0
+// CHECK-ERROR: ^
+
+//----------------------------------------------------------------------
+// Scalar Unsigned Saturating Accumulated of Unsigned Value
+//----------------------------------------------------------------------
+
+ usqadd b0, h1
+ usqadd h0, s1
+ usqadd s0, d1
+ usqadd d0, b1
+
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: usqadd b0, h1
+// CHECK-ERROR: ^
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: usqadd h0, s1
+// CHECK-ERROR: ^
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: usqadd s0, d1
+// CHECK-ERROR: ^
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: usqadd d0, b1
+// CHECK-ERROR: ^
diff --git a/test/MC/AArch64/neon-scalar-saturating-add-sub.s b/test/MC/AArch64/neon-scalar-saturating-add-sub.s
index fc2d50c..ebd0e09 100644
--- a/test/MC/AArch64/neon-scalar-saturating-add-sub.s
+++ b/test/MC/AArch64/neon-scalar-saturating-add-sub.s
@@ -52,3 +52,30 @@
// CHECK: uqsub s20, s21, s2 // encoding: [0xb4,0x2e,0xa2,0x7e]
// CHECK: uqsub d17, d31, d8 // encoding: [0xf1,0x2f,0xe8,0x7e]
+//----------------------------------------------------------------------
+// Signed Saturating Accumulated of Unsigned Value
+//----------------------------------------------------------------------
+
+ suqadd b19, b14
+ suqadd h20, h15
+ suqadd s21, s12
+ suqadd d18, d22
+
+// CHECK: suqadd b19, b14 // encoding: [0xd3,0x39,0x20,0x5e]
+// CHECK: suqadd h20, h15 // encoding: [0xf4,0x39,0x60,0x5e]
+// CHECK: suqadd s21, s12 // encoding: [0x95,0x39,0xa0,0x5e]
+// CHECK: suqadd d18, d22 // encoding: [0xd2,0x3a,0xe0,0x5e]
+
+//----------------------------------------------------------------------
+// Unsigned Saturating Accumulated of Unsigned Value
+//----------------------------------------------------------------------
+
+ usqadd b19, b14
+ usqadd h20, h15
+ usqadd s21, s12
+ usqadd d18, d22
+
+// CHECK: usqadd b19, b14 // encoding: [0xd3,0x39,0x20,0x7e]
+// CHECK: usqadd h20, h15 // encoding: [0xf4,0x39,0x60,0x7e]
+// CHECK: usqadd s21, s12 // encoding: [0x95,0x39,0xa0,0x7e]
+// CHECK: usqadd d18, d22 // encoding: [0xd2,0x3a,0xe0,0x7e]