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// Scalar Signed Integer Convert To Floating-point
7//----------------------------------------------------------------------
8
9    scvtf s22, s13
10    scvtf d21, d12
11
12// CHECK: scvtf s22, s13    // encoding: [0xb6,0xd9,0x21,0x5e]
13// CHECK: scvtf d21, d12    // encoding: [0x95,0xd9,0x61,0x5e]
14
15//----------------------------------------------------------------------
16// Scalar Unsigned Integer Convert To Floating-point
17//----------------------------------------------------------------------
18
19    ucvtf s22, s13
20    ucvtf d21, d14
21
22// CHECK: ucvtf s22, s13    // encoding: [0xb6,0xd9,0x21,0x7e]
23// CHECK: ucvtf d21, d14    // encoding: [0xd5,0xd9,0x61,0x7e]
24
25//----------------------------------------------------------------------
26// Scalar Signed Fixed-point Convert To Floating-Point (Immediate)
27//----------------------------------------------------------------------
28
29    scvtf s22, s13, #32
30    scvtf d21, d12, #64
31
32// CHECK: scvtf s22, s13, #32  // encoding: [0xb6,0xe5,0x20,0x5f]
33// CHECK: scvtf d21, d12, #64  // encoding: [0x95,0xe5,0x40,0x5f]
34
35//----------------------------------------------------------------------
36// Scalar Unsigned Fixed-point Convert To Floating-Point (Immediate)
37//----------------------------------------------------------------------
38
39    ucvtf s22, s13, #32
40    ucvtf d21, d14, #64
41
42// CHECK: ucvtf s22, s13, #32  // encoding: [0xb6,0xe5,0x20,0x7f]
43// CHECK: ucvtf d21, d14, #64  // encoding: [0xd5,0xe5,0x40,0x7f]
44
45//----------------------------------------------------------------------
46// Scalar Floating-point Convert To Signed Fixed-point (Immediate)
47//----------------------------------------------------------------------
48
49    fcvtzs s21, s12, #1
50    fcvtzs d21, d12, #1
51
52// CHECK: fcvtzs s21, s12, #1  // encoding: [0x95,0xfd,0x3f,0x5f]
53// CHECK: fcvtzs d21, d12, #1  // encoding: [0x95,0xfd,0x7f,0x5f]
54
55//----------------------------------------------------------------------
56// Scalar Floating-point Convert To Unsigned Fixed-point (Immediate)
57//----------------------------------------------------------------------
58
59    fcvtzu s21, s12, #1
60    fcvtzu d21, d12, #1
61
62// CHECK: fcvtzu s21, s12, #1  // encoding: [0x95,0xfd,0x3f,0x7f]
63// CHECK: fcvtzu d21, d12, #1  // encoding: [0x95,0xfd,0x7f,0x7f]
64