1 // RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
2 // RUN: llvm-mc -triple arm64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
4 // Check that the assembler can handle the documented syntax for AArch64
6 //----------------------------------------------------------------------
7 // Scalar Signed Integer Convert To Floating-point
8 //----------------------------------------------------------------------
13 // CHECK: scvtf s22, s13 // encoding: [0xb6,0xd9,0x21,0x5e]
14 // CHECK: scvtf d21, d12 // encoding: [0x95,0xd9,0x61,0x5e]
16 //----------------------------------------------------------------------
17 // Scalar Unsigned Integer Convert To Floating-point
18 //----------------------------------------------------------------------
23 // CHECK: ucvtf s22, s13 // encoding: [0xb6,0xd9,0x21,0x7e]
24 // CHECK: ucvtf d21, d14 // encoding: [0xd5,0xd9,0x61,0x7e]
26 //----------------------------------------------------------------------
27 // Scalar Signed Fixed-point Convert To Floating-Point (Immediate)
28 //----------------------------------------------------------------------
33 // CHECK: scvtf s22, s13, #32 // encoding: [0xb6,0xe5,0x20,0x5f]
34 // CHECK: scvtf d21, d12, #64 // encoding: [0x95,0xe5,0x40,0x5f]
36 //----------------------------------------------------------------------
37 // Scalar Unsigned Fixed-point Convert To Floating-Point (Immediate)
38 //----------------------------------------------------------------------
43 // CHECK: ucvtf s22, s13, #32 // encoding: [0xb6,0xe5,0x20,0x7f]
44 // CHECK: ucvtf d21, d14, #64 // encoding: [0xd5,0xe5,0x40,0x7f]
46 //----------------------------------------------------------------------
47 // Scalar Floating-point Convert To Signed Fixed-point (Immediate)
48 //----------------------------------------------------------------------
53 // CHECK: fcvtzs s21, s12, #1 // encoding: [0x95,0xfd,0x3f,0x5f]
54 // CHECK: fcvtzs d21, d12, #1 // encoding: [0x95,0xfd,0x7f,0x5f]
56 //----------------------------------------------------------------------
57 // Scalar Floating-point Convert To Unsigned Fixed-point (Immediate)
58 //----------------------------------------------------------------------
63 // CHECK: fcvtzu s21, s12, #1 // encoding: [0x95,0xfd,0x3f,0x7f]
64 // CHECK: fcvtzu d21, d12, #1 // encoding: [0x95,0xfd,0x7f,0x7f]
66 //----------------------------------------------------------------------
67 // Scalar Floating-point Convert To Lower Precision Narrow, Rounding To
69 //----------------------------------------------------------------------
73 // CHECK: fcvtxn s22, d13 // encoding: [0xb6,0x69,0x61,0x7e]
75 //----------------------------------------------------------------------
76 // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest
78 //----------------------------------------------------------------------
83 // CHECK: fcvtas s12, s13 // encoding: [0xac,0xc9,0x21,0x5e]
84 // CHECK: fcvtas d21, d14 // encoding: [0xd5,0xc9,0x61,0x5e]
86 //----------------------------------------------------------------------
87 // Scalar Floating-point Convert To Unsigned Integer, Rounding To
88 // Nearest With Ties To Away
89 //----------------------------------------------------------------------
94 // CHECK: fcvtau s12, s13 // encoding: [0xac,0xc9,0x21,0x7e]
95 // CHECK: fcvtau d21, d14 // encoding: [0xd5,0xc9,0x61,0x7e]
97 //----------------------------------------------------------------------
98 // Scalar Floating-point Convert To Signed Integer, Rounding Toward
100 //----------------------------------------------------------------------
105 // CHECK: fcvtms s22, s13 // encoding: [0xb6,0xb9,0x21,0x5e]
106 // CHECK: fcvtms d21, d14 // encoding: [0xd5,0xb9,0x61,0x5e]
108 //----------------------------------------------------------------------
109 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
111 //----------------------------------------------------------------------
116 // CHECK: fcvtmu s12, s13 // encoding: [0xac,0xb9,0x21,0x7e]
117 // CHECK: fcvtmu d21, d14 // encoding: [0xd5,0xb9,0x61,0x7e]
119 //----------------------------------------------------------------------
120 // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest
122 //----------------------------------------------------------------------
127 // CHECK: fcvtns s22, s13 // encoding: [0xb6,0xa9,0x21,0x5e]
128 // CHECK: fcvtns d21, d14 // encoding: [0xd5,0xa9,0x61,0x5e]
130 //----------------------------------------------------------------------
131 // Scalar Floating-point Convert To Unsigned Integer, Rounding To
132 // Nearest With Ties To Even
133 //----------------------------------------------------------------------
138 // CHECK: fcvtnu s12, s13 // encoding: [0xac,0xa9,0x21,0x7e]
139 // CHECK: fcvtnu d21, d14 // encoding: [0xd5,0xa9,0x61,0x7e]
141 //----------------------------------------------------------------------
142 // Scalar Floating-point Convert To Signed Integer, Rounding Toward
144 //----------------------------------------------------------------------
149 // CHECK: fcvtps s22, s13 // encoding: [0xb6,0xa9,0xa1,0x5e]
150 // CHECK: fcvtps d21, d14 // encoding: [0xd5,0xa9,0xe1,0x5e]
152 //----------------------------------------------------------------------
153 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
155 //----------------------------------------------------------------------
160 // CHECK: fcvtpu s12, s13 // encoding: [0xac,0xa9,0xa1,0x7e]
161 // CHECK: fcvtpu d21, d14 // encoding: [0xd5,0xa9,0xe1,0x7e]
163 //----------------------------------------------------------------------
164 // Scalar Floating-point Convert To Signed Integer, Rounding Toward Zero
165 //----------------------------------------------------------------------
170 // CHECK: fcvtzs s12, s13 // encoding: [0xac,0xb9,0xa1,0x5e]
171 // CHECK: fcvtzs d21, d14 // encoding: [0xd5,0xb9,0xe1,0x5e]
173 //----------------------------------------------------------------------
174 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
176 //----------------------------------------------------------------------
181 // CHECK: fcvtzu s12, s13 // encoding: [0xac,0xb9,0xa1,0x7e]
182 // CHECK: fcvtzu d21, d14 // encoding: [0xd5,0xb9,0xe1,0x7e]