summaryrefslogtreecommitdiff
path: root/test/MC/AArch64
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@codeaurora.org>2013-10-08 22:09:04 +0000
committerChad Rosier <mcrosier@codeaurora.org>2013-10-08 22:09:04 +0000
commitc97650079383110d66ab104ee60d03ded2be8e35 (patch)
treef7eea77c41fceb08f9f337de17e680fe0addd54c /test/MC/AArch64
parent25180dc319774a68d8aa8c3264e3ce63b8e01f00 (diff)
downloadllvm-c97650079383110d66ab104ee60d03ded2be8e35.tar.gz
llvm-c97650079383110d66ab104ee60d03ded2be8e35.tar.bz2
llvm-c97650079383110d66ab104ee60d03ded2be8e35.tar.xz
[AArch64] Add support for NEON scalar floating-point reciprocal estimate,
reciprocal exponent, and reciprocal square root estimate instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192242 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/AArch64')
-rw-r--r--test/MC/AArch64/neon-diagnostics.s41
-rw-r--r--test/MC/AArch64/neon-scalar-recip.s30
2 files changed, 71 insertions, 0 deletions
diff --git a/test/MC/AArch64/neon-diagnostics.s b/test/MC/AArch64/neon-diagnostics.s
index be5a871c50..9127ed840b 100644
--- a/test/MC/AArch64/neon-diagnostics.s
+++ b/test/MC/AArch64/neon-diagnostics.s
@@ -213,6 +213,47 @@
// CHECK-ERROR: movi v1.16b, #256
// CHECK-ERROR: ^
+//----------------------------------------------------------------------
+// Scalar Floating-point Reciprocal Estimate
+//----------------------------------------------------------------------
+
+ frecpe s19, h14
+ frecpe d13, s13
+
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: frecpe s19, h14
+// CHECK-ERROR: ^
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: frecpe d13, s13
+// CHECK-ERROR: ^
+
+//----------------------------------------------------------------------
+// Scalar Floating-point Reciprocal Exponent
+//----------------------------------------------------------------------
+
+ frecpx s18, h10
+ frecpx d16, s19
+
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: frecpx s18, h10
+// CHECK-ERROR: ^
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: frecpx d16, s19
+// CHECK-ERROR: ^
+
+//----------------------------------------------------------------------
+// Scalar Floating-point Reciprocal Square Root Estimate
+//----------------------------------------------------------------------
+
+ frsqrte s22, h13
+ frsqrte d21, s12
+
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: frsqrte s22, h13
+// CHECK-ERROR: ^
+// CHECK-ERROR: error: invalid operand for instruction
+// CHECK-ERROR: frsqrte d21, s12
+// CHECK-ERROR: ^
//----------------------------------------------------------------------
// Vector Move Immediate - bytemask, per doubleword
diff --git a/test/MC/AArch64/neon-scalar-recip.s b/test/MC/AArch64/neon-scalar-recip.s
index bb9c170607..7a886f3b4a 100644
--- a/test/MC/AArch64/neon-scalar-recip.s
+++ b/test/MC/AArch64/neon-scalar-recip.s
@@ -21,3 +21,33 @@
// CHECK: frsqrts s21, s5, s12 // encoding: [0xb5,0xfc,0xac,0x5e]
// CHECK: frsqrts d8, d22, d18 // encoding: [0xc8,0xfe,0xf2,0x5e]
+
+//----------------------------------------------------------------------
+// Scalar Floating-point Reciprocal Estimate
+//----------------------------------------------------------------------
+
+ frecpe s19, s14
+ frecpe d13, d13
+
+// CHECK: frecpe s19, s14 // encoding: [0xd3,0xd9,0xa1,0x5e]
+// CHECK: frecpe d13, d13 // encoding: [0xad,0xd9,0xe1,0x5e]
+
+//----------------------------------------------------------------------
+// Scalar Floating-point Reciprocal Exponent
+//----------------------------------------------------------------------
+
+ frecpx s18, s10
+ frecpx d16, d19
+
+// CHECK: frecpx s18, s10 // encoding: [0x52,0xf9,0xa1,0x5e]
+// CHECK: frecpx d16, d19 // encoding: [0x70,0xfa,0xe1,0x5e]
+
+//----------------------------------------------------------------------
+// Scalar Floating-point Reciprocal Square Root Estimate
+//----------------------------------------------------------------------
+
+ frsqrte s22, s13
+ frsqrte d21, d12
+
+// CHECK: frsqrte s22, s13 // encoding: [0xb6,0xd9,0xa1,0x7e]
+// CHECK: frsqrte d21, d12 // encoding: [0x95,0xd9,0xe1,0x7e]