1// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
2
3// Check that the assembler can handle the documented syntax for AArch64
4
5//----------------------------------------------------------------------
6// Floating-point Reciprocal Step
7//----------------------------------------------------------------------
8
9    frecps s21, s16, s13
10    frecps d22, d30, d21
11
12// CHECK: frecps s21, s16, s13   // encoding: [0x15,0xfe,0x2d,0x5e]
13// CHECK: frecps d22, d30, d21   // encoding: [0xd6,0xff,0x75,0x5e]
14
15//----------------------------------------------------------------------
16// Floating-point Reciprocal Square Root Step
17//----------------------------------------------------------------------
18
19    frsqrts s21, s5, s12
20    frsqrts d8, d22, d18
21
22// CHECK: frsqrts s21, s5, s12   // encoding: [0xb5,0xfc,0xac,0x5e]
23// CHECK: frsqrts d8, d22, d18   // encoding: [0xc8,0xfe,0xf2,0x5e]
24
25//----------------------------------------------------------------------
26// Scalar Floating-point Reciprocal Estimate
27//----------------------------------------------------------------------
28
29    frecpe s19, s14
30    frecpe d13, d13
31
32// CHECK: frecpe s19, s14    // encoding: [0xd3,0xd9,0xa1,0x5e]
33// CHECK: frecpe d13, d13    // encoding: [0xad,0xd9,0xe1,0x5e]
34
35//----------------------------------------------------------------------
36// Scalar Floating-point Reciprocal Exponent
37//----------------------------------------------------------------------
38
39    frecpx s18, s10
40    frecpx d16, d19
41
42// CHECK: frecpx s18, s10    // encoding: [0x52,0xf9,0xa1,0x5e]
43// CHECK: frecpx d16, d19    // encoding: [0x70,0xfa,0xe1,0x5e]
44
45//----------------------------------------------------------------------
46// Scalar Floating-point Reciprocal Square Root Estimate
47//----------------------------------------------------------------------
48
49    frsqrte s22, s13
50    frsqrte d21, d12
51
52// CHECK: frsqrte s22, s13    // encoding: [0xb6,0xd9,0xa1,0x7e]
53// CHECK: frsqrte d21, d12    // encoding: [0x95,0xd9,0xe1,0x7e]
54