11824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
21824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier
31824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier// Check that the assembler can handle the documented syntax for AArch64
41824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier
51824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier//----------------------------------------------------------------------
61824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier// Scalar Absolute Value
71824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier//----------------------------------------------------------------------
81824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier
9a249914462c7b8f0c25b21eca77df264455290eeChad Rosier    abs d29, d24
10a249914462c7b8f0c25b21eca77df264455290eeChad Rosier
11a249914462c7b8f0c25b21eca77df264455290eeChad Rosier// CHECK: abs d29, d24    // encoding: [0x1d,0xbb,0xe0,0x5e]
125f1f4773d95560b68a9c75856563e45e3a4d57e3Bill Wendling
135f1f4773d95560b68a9c75856563e45e3a4d57e3Bill Wendling//----------------------------------------------------------------------
145f1f4773d95560b68a9c75856563e45e3a4d57e3Bill Wendling// Scalar Floating-point Absolute Difference
155f1f4773d95560b68a9c75856563e45e3a4d57e3Bill Wendling//----------------------------------------------------------------------
165f1f4773d95560b68a9c75856563e45e3a4d57e3Bill Wendling
175f1f4773d95560b68a9c75856563e45e3a4d57e3Bill Wendling    fabd s29, s24, s20
185f1f4773d95560b68a9c75856563e45e3a4d57e3Bill Wendling    fabd d29, d24, d20
195f1f4773d95560b68a9c75856563e45e3a4d57e3Bill Wendling
205f1f4773d95560b68a9c75856563e45e3a4d57e3Bill Wendling// CHECK: fabd s29, s24, s20  // encoding: [0x1d,0xd7,0xb4,0x7e]
215f1f4773d95560b68a9c75856563e45e3a4d57e3Bill Wendling// CHECK: fabd d29, d24, d20  // encoding: [0x1d,0xd7,0xf4,0x7e]
22a249914462c7b8f0c25b21eca77df264455290eeChad Rosier
23a249914462c7b8f0c25b21eca77df264455290eeChad Rosier//----------------------------------------------------------------------
24a249914462c7b8f0c25b21eca77df264455290eeChad Rosier// Scalar Signed Saturating Absolute Value
25a249914462c7b8f0c25b21eca77df264455290eeChad Rosier//----------------------------------------------------------------------
26a249914462c7b8f0c25b21eca77df264455290eeChad Rosier
271824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier    sqabs b19, b14
281824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier    sqabs h21, h15
291824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier    sqabs s20, s12
301824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier    sqabs d18, d12
311824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier
321824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier// CHECK: sqabs b19, b14    // encoding: [0xd3,0x79,0x20,0x5e]
331824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier// CHECK: sqabs h21, h15    // encoding: [0xf5,0x79,0x60,0x5e]
341824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier// CHECK: sqabs s20, s12    // encoding: [0x94,0x79,0xa0,0x5e]
351824bd0ef84bd162065f9d1fad4c325a39736248Chad Rosier// CHECK: sqabs d18, d12    // encoding: [0x92,0x79,0xe0,0x5e]
36