1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Check that the assembler can handle the documented syntax for AArch64
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//----------------------------------------------------------------------
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Floating-point Reciprocal Step
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//----------------------------------------------------------------------
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frecps h21, h16, h13
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frecps s21, s16, s13
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frecps d22, d30, d21
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frecps  h21, h16, h13           // encoding: [0x15,0x3e,0x4d,0x5e]
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frecps s21, s16, s13   // encoding: [0x15,0xfe,0x2d,0x5e]
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frecps d22, d30, d21   // encoding: [0xd6,0xff,0x75,0x5e]
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//----------------------------------------------------------------------
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Floating-point Reciprocal Square Root Step
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//----------------------------------------------------------------------
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frsqrts h21, h5, h12
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frsqrts s21, s5, s12
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frsqrts d8, d22, d18
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frsqrts h21, h5, h12            // encoding: [0xb5,0x3c,0xcc,0x5e]
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frsqrts s21, s5, s12   // encoding: [0xb5,0xfc,0xac,0x5e]
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frsqrts d8, d22, d18   // encoding: [0xc8,0xfe,0xf2,0x5e]
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//----------------------------------------------------------------------
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Scalar Floating-point Reciprocal Estimate
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//----------------------------------------------------------------------
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frecpe h19, h14
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frecpe s19, s14
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frecpe d13, d13
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frecpe  h19, h14                // encoding: [0xd3,0xd9,0xf9,0x5e]
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frecpe s19, s14    // encoding: [0xd3,0xd9,0xa1,0x5e]
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frecpe d13, d13    // encoding: [0xad,0xd9,0xe1,0x5e]
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//----------------------------------------------------------------------
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Scalar Floating-point Reciprocal Exponent
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//----------------------------------------------------------------------
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frecpx h18, h10
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frecpx s18, s10
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frecpx d16, d19
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frecpx  h18, h10                // encoding: [0x52,0xf9,0xf9,0x5e]
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frecpx s18, s10    // encoding: [0x52,0xf9,0xa1,0x5e]
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frecpx d16, d19    // encoding: [0x70,0xfa,0xe1,0x5e]
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//----------------------------------------------------------------------
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Scalar Floating-point Reciprocal Square Root Estimate
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//----------------------------------------------------------------------
56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frsqrte h22, h13
58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frsqrte s22, s13
59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    frsqrte d21, d12
60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frsqrte h22, h13                // encoding: [0xb6,0xd9,0xf9,0x7e]
62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frsqrte s22, s13    // encoding: [0xb6,0xd9,0xa1,0x7e]
63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// CHECK: frsqrte d21, d12    // encoding: [0x95,0xd9,0xe1,0x7e]
64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver