ARM64: initial backend import
[oota-llvm.git] / test / MC / ARM64 / fp-encoding.s
1 ; RUN: llvm-mc -triple arm64-apple-darwin -show-encoding < %s | FileCheck %s
2
3 foo:
4 ;-----------------------------------------------------------------------------
5 ; Floating-point arithmetic
6 ;-----------------------------------------------------------------------------
7
8   fabs s1, s2
9   fabs d1, d2
10
11 ; CHECK: fabs s1, s2                 ; encoding: [0x41,0xc0,0x20,0x1e]
12 ; CHECK: fabs d1, d2                 ; encoding: [0x41,0xc0,0x60,0x1e]
13
14   fadd s1, s2, s3
15   fadd d1, d2, d3
16
17 ; CHECK: fadd s1, s2, s3             ; encoding: [0x41,0x28,0x23,0x1e]
18 ; CHECK: fadd d1, d2, d3             ; encoding: [0x41,0x28,0x63,0x1e]
19
20   fdiv s1, s2, s3
21   fdiv d1, d2, d3
22
23 ; CHECK: fdiv s1, s2, s3             ; encoding: [0x41,0x18,0x23,0x1e]
24 ; CHECK: fdiv d1, d2, d3             ; encoding: [0x41,0x18,0x63,0x1e]
25
26   fmadd s1, s2, s3, s4
27   fmadd d1, d2, d3, d4
28
29 ; CHECK: fmadd s1, s2, s3, s4        ; encoding: [0x41,0x10,0x03,0x1f]
30 ; CHECK: fmadd d1, d2, d3, d4        ; encoding: [0x41,0x10,0x43,0x1f]
31
32   fmax   s1, s2, s3
33   fmax   d1, d2, d3
34   fmaxnm s1, s2, s3
35   fmaxnm d1, d2, d3
36
37 ; CHECK: fmax   s1, s2, s3           ; encoding: [0x41,0x48,0x23,0x1e]
38 ; CHECK: fmax   d1, d2, d3           ; encoding: [0x41,0x48,0x63,0x1e]
39 ; CHECK: fmaxnm s1, s2, s3           ; encoding: [0x41,0x68,0x23,0x1e]
40 ; CHECK: fmaxnm d1, d2, d3           ; encoding: [0x41,0x68,0x63,0x1e]
41
42   fmin   s1, s2, s3
43   fmin   d1, d2, d3
44   fminnm s1, s2, s3
45   fminnm d1, d2, d3
46
47 ; CHECK: fmin   s1, s2, s3           ; encoding: [0x41,0x58,0x23,0x1e]
48 ; CHECK: fmin   d1, d2, d3           ; encoding: [0x41,0x58,0x63,0x1e]
49 ; CHECK: fminnm s1, s2, s3           ; encoding: [0x41,0x78,0x23,0x1e]
50 ; CHECK: fminnm d1, d2, d3           ; encoding: [0x41,0x78,0x63,0x1e]
51
52   fmsub s1, s2, s3, s4
53   fmsub d1, d2, d3, d4
54
55 ; CHECK: fmsub s1, s2, s3, s4        ; encoding: [0x41,0x90,0x03,0x1f]
56 ; CHECK: fmsub d1, d2, d3, d4        ; encoding: [0x41,0x90,0x43,0x1f]
57
58   fmul s1, s2, s3
59   fmul d1, d2, d3
60
61 ; CHECK: fmul s1, s2, s3             ; encoding: [0x41,0x08,0x23,0x1e]
62 ; CHECK: fmul d1, d2, d3             ; encoding: [0x41,0x08,0x63,0x1e]
63
64   fneg s1, s2
65   fneg d1, d2
66
67 ; CHECK: fneg s1, s2                 ; encoding: [0x41,0x40,0x21,0x1e]
68 ; CHECK: fneg d1, d2                 ; encoding: [0x41,0x40,0x61,0x1e]
69
70   fnmadd s1, s2, s3, s4
71   fnmadd d1, d2, d3, d4
72
73 ; CHECK: fnmadd s1, s2, s3, s4       ; encoding: [0x41,0x10,0x23,0x1f]
74 ; CHECK: fnmadd d1, d2, d3, d4       ; encoding: [0x41,0x10,0x63,0x1f]
75
76   fnmsub s1, s2, s3, s4
77   fnmsub d1, d2, d3, d4
78
79 ; CHECK: fnmsub s1, s2, s3, s4       ; encoding: [0x41,0x90,0x23,0x1f]
80 ; CHECK: fnmsub d1, d2, d3, d4       ; encoding: [0x41,0x90,0x63,0x1f]
81
82   fnmul s1, s2, s3
83   fnmul d1, d2, d3
84
85 ; CHECK: fnmul s1, s2, s3            ; encoding: [0x41,0x88,0x23,0x1e]
86 ; CHECK: fnmul d1, d2, d3            ; encoding: [0x41,0x88,0x63,0x1e]
87
88   fsqrt s1, s2
89   fsqrt d1, d2
90
91 ; CHECK: fsqrt s1, s2                ; encoding: [0x41,0xc0,0x21,0x1e]
92 ; CHECK: fsqrt d1, d2                ; encoding: [0x41,0xc0,0x61,0x1e]
93
94   fsub s1, s2, s3
95   fsub d1, d2, d3
96
97 ; CHECK: fsub s1, s2, s3             ; encoding: [0x41,0x38,0x23,0x1e]
98 ; CHECK: fsub d1, d2, d3             ; encoding: [0x41,0x38,0x63,0x1e]
99
100 ;-----------------------------------------------------------------------------
101 ; Floating-point comparison
102 ;-----------------------------------------------------------------------------
103
104   fccmp  s1, s2, #0, eq
105   fccmp  d1, d2, #0, eq
106   fccmpe s1, s2, #0, eq
107   fccmpe d1, d2, #0, eq
108
109 ; CHECK: fccmp  s1, s2, #0, eq       ; encoding: [0x20,0x04,0x22,0x1e]
110 ; CHECK: fccmp  d1, d2, #0, eq       ; encoding: [0x20,0x04,0x62,0x1e]
111 ; CHECK: fccmpe s1, s2, #0, eq       ; encoding: [0x30,0x04,0x22,0x1e]
112 ; CHECK: fccmpe d1, d2, #0, eq       ; encoding: [0x30,0x04,0x62,0x1e]
113
114   fcmp  s1, s2
115   fcmp  d1, d2
116   fcmp  s1, #0.0
117   fcmp  d1, #0.0
118   fcmpe s1, s2
119   fcmpe d1, d2
120   fcmpe s1, #0.0
121   fcmpe d1, #0.0
122
123 ; CHECK: fcmp  s1, s2                ; encoding: [0x20,0x20,0x22,0x1e]
124 ; CHECK: fcmp  d1, d2                ; encoding: [0x20,0x20,0x62,0x1e]
125 ; CHECK: fcmp  s1, #0.0              ; encoding: [0x28,0x20,0x20,0x1e]
126 ; CHECK: fcmp  d1, #0.0              ; encoding: [0x28,0x20,0x60,0x1e]
127 ; CHECK: fcmpe s1, s2                ; encoding: [0x30,0x20,0x22,0x1e]
128 ; CHECK: fcmpe d1, d2                ; encoding: [0x30,0x20,0x62,0x1e]
129 ; CHECK: fcmpe s1, #0.0              ; encoding: [0x38,0x20,0x20,0x1e]
130 ; CHECK: fcmpe d1, #0.0              ; encoding: [0x38,0x20,0x60,0x1e]
131
132 ;-----------------------------------------------------------------------------
133 ; Floating-point conditional select
134 ;-----------------------------------------------------------------------------
135
136   fcsel s1, s2, s3, eq
137   fcsel d1, d2, d3, eq
138
139 ; CHECK: fcsel s1, s2, s3, eq        ; encoding: [0x41,0x0c,0x23,0x1e]
140 ; CHECK: fcsel d1, d2, d3, eq        ; encoding: [0x41,0x0c,0x63,0x1e]
141
142 ;-----------------------------------------------------------------------------
143 ; Floating-point convert
144 ;-----------------------------------------------------------------------------
145
146   fcvt h1, d2
147   fcvt s1, d2
148   fcvt d1, h2
149   fcvt s1, h2
150   fcvt d1, s2
151   fcvt h1, s2
152
153 ; CHECK: fcvt h1, d2                 ; encoding: [0x41,0xc0,0x63,0x1e]
154 ; CHECK: fcvt s1, d2                 ; encoding: [0x41,0x40,0x62,0x1e]
155 ; CHECK: fcvt d1, h2                 ; encoding: [0x41,0xc0,0xe2,0x1e]
156 ; CHECK: fcvt s1, h2                 ; encoding: [0x41,0x40,0xe2,0x1e]
157 ; CHECK: fcvt d1, s2                 ; encoding: [0x41,0xc0,0x22,0x1e]
158 ; CHECK: fcvt h1, s2                 ; encoding: [0x41,0xc0,0x23,0x1e]
159
160   fcvtas w1, d2
161   fcvtas w1, d2, #1
162   fcvtas x1, d2
163   fcvtas x1, d2, #1
164   fcvtas w1, s2
165   fcvtas w1, s2, #1
166   fcvtas x1, s2
167   fcvtas x1, s2, #1
168
169 ; CHECK: fcvtas w1, d2                  ; encoding: [0x41,0x00,0x64,0x1e]
170 ; CHECK: fcvtas w1, d2, #1              ; encoding: [0x41,0xfc,0x44,0x1e]
171 ; CHECK: fcvtas x1, d2                  ; encoding: [0x41,0x00,0x64,0x9e]
172 ; CHECK: fcvtas x1, d2, #1              ; encoding: [0x41,0xfc,0x44,0x9e]
173 ; CHECK: fcvtas w1, s2                  ; encoding: [0x41,0x00,0x24,0x1e]
174 ; CHECK: fcvtas w1, s2, #1              ; encoding: [0x41,0xfc,0x04,0x1e]
175 ; CHECK: fcvtas x1, s2                  ; encoding: [0x41,0x00,0x24,0x9e]
176 ; CHECK: fcvtas x1, s2, #1              ; encoding: [0x41,0xfc,0x04,0x9e]
177
178   fcvtau w1, s2
179   fcvtau w1, s2, #1
180   fcvtau w1, d2
181   fcvtau w1, d2, #1
182   fcvtau x1, s2
183   fcvtau x1, s2, #1
184   fcvtau x1, d2
185   fcvtau x1, d2, #1
186
187 ; CHECK: fcvtau w1, s2                  ; encoding: [0x41,0x00,0x25,0x1e]
188 ; CHECK: fcvtau w1, s2, #1              ; encoding: [0x41,0xfc,0x05,0x1e]
189 ; CHECK: fcvtau w1, d2                  ; encoding: [0x41,0x00,0x65,0x1e]
190 ; CHECK: fcvtau w1, d2, #1              ; encoding: [0x41,0xfc,0x45,0x1e]
191 ; CHECK: fcvtau x1, s2                  ; encoding: [0x41,0x00,0x25,0x9e]
192 ; CHECK: fcvtau x1, s2, #1              ; encoding: [0x41,0xfc,0x05,0x9e]
193 ; CHECK: fcvtau x1, d2                  ; encoding: [0x41,0x00,0x65,0x9e]
194 ; CHECK: fcvtau x1, d2, #1              ; encoding: [0x41,0xfc,0x45,0x9e]
195
196   fcvtms w1, s2
197   fcvtms w1, s2, #1
198   fcvtms w1, d2
199   fcvtms w1, d2, #1
200   fcvtms x1, s2
201   fcvtms x1, s2, #1
202   fcvtms x1, d2
203   fcvtms x1, d2, #1
204
205 ; CHECK: fcvtms w1, s2                  ; encoding: [0x41,0x00,0x30,0x1e]
206 ; CHECK: fcvtms w1, s2, #1              ; encoding: [0x41,0xfc,0x10,0x1e]
207 ; CHECK: fcvtms w1, d2                  ; encoding: [0x41,0x00,0x70,0x1e]
208 ; CHECK: fcvtms w1, d2, #1              ; encoding: [0x41,0xfc,0x50,0x1e]
209 ; CHECK: fcvtms x1, s2                  ; encoding: [0x41,0x00,0x30,0x9e]
210 ; CHECK: fcvtms x1, s2, #1              ; encoding: [0x41,0xfc,0x10,0x9e]
211 ; CHECK: fcvtms x1, d2                  ; encoding: [0x41,0x00,0x70,0x9e]
212 ; CHECK: fcvtms x1, d2, #1              ; encoding: [0x41,0xfc,0x50,0x9e]
213
214   fcvtmu w1, s2
215   fcvtmu w1, s2, #1
216   fcvtmu w1, d2
217   fcvtmu w1, d2, #1
218   fcvtmu x1, s2
219   fcvtmu x1, s2, #1
220   fcvtmu x1, d2
221   fcvtmu x1, d2, #1
222
223 ; CHECK: fcvtmu w1, s2                  ; encoding: [0x41,0x00,0x31,0x1e]
224 ; CHECK: fcvtmu w1, s2, #1              ; encoding: [0x41,0xfc,0x11,0x1e]
225 ; CHECK: fcvtmu w1, d2                  ; encoding: [0x41,0x00,0x71,0x1e]
226 ; CHECK: fcvtmu w1, d2, #1              ; encoding: [0x41,0xfc,0x51,0x1e]
227 ; CHECK: fcvtmu x1, s2                  ; encoding: [0x41,0x00,0x31,0x9e]
228 ; CHECK: fcvtmu x1, s2, #1              ; encoding: [0x41,0xfc,0x11,0x9e]
229 ; CHECK: fcvtmu x1, d2                  ; encoding: [0x41,0x00,0x71,0x9e]
230 ; CHECK: fcvtmu x1, d2, #1              ; encoding: [0x41,0xfc,0x51,0x9e]
231
232   fcvtns w1, s2
233   fcvtns w1, s2, #1
234   fcvtns w1, d2
235   fcvtns w1, d2, #1
236   fcvtns x1, s2
237   fcvtns x1, s2, #1
238   fcvtns x1, d2
239   fcvtns x1, d2, #1
240
241 ; CHECK: fcvtns w1, s2                  ; encoding: [0x41,0x00,0x20,0x1e]
242 ; CHECK: fcvtns w1, s2, #1              ; encoding: [0x41,0xfc,0x00,0x1e]
243 ; CHECK: fcvtns w1, d2                  ; encoding: [0x41,0x00,0x60,0x1e]
244 ; CHECK: fcvtns w1, d2, #1              ; encoding: [0x41,0xfc,0x40,0x1e]
245 ; CHECK: fcvtns x1, s2                  ; encoding: [0x41,0x00,0x20,0x9e]
246 ; CHECK: fcvtns x1, s2, #1              ; encoding: [0x41,0xfc,0x00,0x9e]
247 ; CHECK: fcvtns x1, d2                  ; encoding: [0x41,0x00,0x60,0x9e]
248 ; CHECK: fcvtns x1, d2, #1              ; encoding: [0x41,0xfc,0x40,0x9e]
249
250   fcvtnu w1, s2
251   fcvtnu w1, s2, #1
252   fcvtnu w1, d2
253   fcvtnu w1, d2, #1
254   fcvtnu x1, s2
255   fcvtnu x1, s2, #1
256   fcvtnu x1, d2
257   fcvtnu x1, d2, #1
258
259 ; CHECK: fcvtnu w1, s2                  ; encoding: [0x41,0x00,0x21,0x1e]
260 ; CHECK: fcvtnu w1, s2, #1              ; encoding: [0x41,0xfc,0x01,0x1e]
261 ; CHECK: fcvtnu w1, d2                  ; encoding: [0x41,0x00,0x61,0x1e]
262 ; CHECK: fcvtnu w1, d2, #1              ; encoding: [0x41,0xfc,0x41,0x1e]
263 ; CHECK: fcvtnu x1, s2                  ; encoding: [0x41,0x00,0x21,0x9e]
264 ; CHECK: fcvtnu x1, s2, #1              ; encoding: [0x41,0xfc,0x01,0x9e]
265 ; CHECK: fcvtnu x1, d2                  ; encoding: [0x41,0x00,0x61,0x9e]
266 ; CHECK: fcvtnu x1, d2, #1              ; encoding: [0x41,0xfc,0x41,0x9e]
267
268   fcvtps w1, s2
269   fcvtps w1, s2, #1
270   fcvtps w1, d2
271   fcvtps w1, d2, #1
272   fcvtps x1, s2
273   fcvtps x1, s2, #1
274   fcvtps x1, d2
275   fcvtps x1, d2, #1
276
277 ; CHECK: fcvtps w1, s2                  ; encoding: [0x41,0x00,0x28,0x1e]
278 ; CHECK: fcvtps w1, s2, #1              ; encoding: [0x41,0xfc,0x08,0x1e]
279 ; CHECK: fcvtps w1, d2                  ; encoding: [0x41,0x00,0x68,0x1e]
280 ; CHECK: fcvtps w1, d2, #1              ; encoding: [0x41,0xfc,0x48,0x1e]
281 ; CHECK: fcvtps x1, s2                  ; encoding: [0x41,0x00,0x28,0x9e]
282 ; CHECK: fcvtps x1, s2, #1              ; encoding: [0x41,0xfc,0x08,0x9e]
283 ; CHECK: fcvtps x1, d2                  ; encoding: [0x41,0x00,0x68,0x9e]
284 ; CHECK: fcvtps x1, d2, #1              ; encoding: [0x41,0xfc,0x48,0x9e]
285
286   fcvtpu w1, s2
287   fcvtpu w1, s2, #1
288   fcvtpu w1, d2
289   fcvtpu w1, d2, #1
290   fcvtpu x1, s2
291   fcvtpu x1, s2, #1
292   fcvtpu x1, d2
293   fcvtpu x1, d2, #1
294
295 ; CHECK: fcvtpu w1, s2                  ; encoding: [0x41,0x00,0x29,0x1e]
296 ; CHECK: fcvtpu w1, s2, #1              ; encoding: [0x41,0xfc,0x09,0x1e]
297 ; CHECK: fcvtpu w1, d2                  ; encoding: [0x41,0x00,0x69,0x1e]
298 ; CHECK: fcvtpu w1, d2, #1              ; encoding: [0x41,0xfc,0x49,0x1e]
299 ; CHECK: fcvtpu x1, s2                  ; encoding: [0x41,0x00,0x29,0x9e]
300 ; CHECK: fcvtpu x1, s2, #1              ; encoding: [0x41,0xfc,0x09,0x9e]
301 ; CHECK: fcvtpu x1, d2                  ; encoding: [0x41,0x00,0x69,0x9e]
302 ; CHECK: fcvtpu x1, d2, #1              ; encoding: [0x41,0xfc,0x49,0x9e]
303
304   fcvtzs w1, s2
305   fcvtzs w1, s2, #1
306   fcvtzs w1, d2
307   fcvtzs w1, d2, #1
308   fcvtzs x1, s2
309   fcvtzs x1, s2, #1
310   fcvtzs x1, d2
311   fcvtzs x1, d2, #1
312
313 ; CHECK: fcvtzs w1, s2                  ; encoding: [0x41,0x00,0x38,0x1e]
314 ; CHECK: fcvtzs w1, s2, #1              ; encoding: [0x41,0xfc,0x18,0x1e]
315 ; CHECK: fcvtzs w1, d2                  ; encoding: [0x41,0x00,0x78,0x1e]
316 ; CHECK: fcvtzs w1, d2, #1              ; encoding: [0x41,0xfc,0x58,0x1e]
317 ; CHECK: fcvtzs x1, s2                  ; encoding: [0x41,0x00,0x38,0x9e]
318 ; CHECK: fcvtzs x1, s2, #1              ; encoding: [0x41,0xfc,0x18,0x9e]
319 ; CHECK: fcvtzs x1, d2                  ; encoding: [0x41,0x00,0x78,0x9e]
320 ; CHECK: fcvtzs x1, d2, #1              ; encoding: [0x41,0xfc,0x58,0x9e]
321
322   fcvtzu w1, s2
323   fcvtzu w1, s2, #1
324   fcvtzu w1, d2
325   fcvtzu w1, d2, #1
326   fcvtzu x1, s2
327   fcvtzu x1, s2, #1
328   fcvtzu x1, d2
329   fcvtzu x1, d2, #1
330
331 ; CHECK: fcvtzu w1, s2                  ; encoding: [0x41,0x00,0x39,0x1e]
332 ; CHECK: fcvtzu w1, s2, #1              ; encoding: [0x41,0xfc,0x19,0x1e]
333 ; CHECK: fcvtzu w1, d2                  ; encoding: [0x41,0x00,0x79,0x1e]
334 ; CHECK: fcvtzu w1, d2, #1              ; encoding: [0x41,0xfc,0x59,0x1e]
335 ; CHECK: fcvtzu x1, s2                  ; encoding: [0x41,0x00,0x39,0x9e]
336 ; CHECK: fcvtzu x1, s2, #1              ; encoding: [0x41,0xfc,0x19,0x9e]
337 ; CHECK: fcvtzu x1, d2                  ; encoding: [0x41,0x00,0x79,0x9e]
338 ; CHECK: fcvtzu x1, d2, #1              ; encoding: [0x41,0xfc,0x59,0x9e]
339
340   scvtf s1, w2
341   scvtf s1, w2, #1
342   scvtf d1, w2
343   scvtf d1, w2, #1
344   scvtf s1, x2
345   scvtf s1, x2, #1
346   scvtf d1, x2
347   scvtf d1, x2, #1
348
349 ; CHECK: scvtf  s1, w2                  ; encoding: [0x41,0x00,0x22,0x1e]
350 ; CHECK: scvtf  s1, w2, #1              ; encoding: [0x41,0xfc,0x02,0x1e]
351 ; CHECK: scvtf  d1, w2                  ; encoding: [0x41,0x00,0x62,0x1e]
352 ; CHECK: scvtf  d1, w2, #1              ; encoding: [0x41,0xfc,0x42,0x1e]
353 ; CHECK: scvtf  s1, x2                  ; encoding: [0x41,0x00,0x22,0x9e]
354 ; CHECK: scvtf  s1, x2, #1              ; encoding: [0x41,0xfc,0x02,0x9e]
355 ; CHECK: scvtf  d1, x2                  ; encoding: [0x41,0x00,0x62,0x9e]
356 ; CHECK: scvtf  d1, x2, #1              ; encoding: [0x41,0xfc,0x42,0x9e]
357
358   ucvtf s1, w2
359   ucvtf s1, w2, #1
360   ucvtf d1, w2
361   ucvtf d1, w2, #1
362   ucvtf s1, x2
363   ucvtf s1, x2, #1
364   ucvtf d1, x2
365   ucvtf d1, x2, #1
366
367 ; CHECK: ucvtf  s1, w2                  ; encoding: [0x41,0x00,0x23,0x1e]
368 ; CHECK: ucvtf  s1, w2, #1              ; encoding: [0x41,0xfc,0x03,0x1e]
369 ; CHECK: ucvtf  d1, w2                  ; encoding: [0x41,0x00,0x63,0x1e]
370 ; CHECK: ucvtf  d1, w2, #1              ; encoding: [0x41,0xfc,0x43,0x1e]
371 ; CHECK: ucvtf  s1, x2                  ; encoding: [0x41,0x00,0x23,0x9e]
372 ; CHECK: ucvtf  s1, x2, #1              ; encoding: [0x41,0xfc,0x03,0x9e]
373 ; CHECK: ucvtf  d1, x2                  ; encoding: [0x41,0x00,0x63,0x9e]
374 ; CHECK: ucvtf  d1, x2, #1              ; encoding: [0x41,0xfc,0x43,0x9e]
375
376 ;-----------------------------------------------------------------------------
377 ; Floating-point move
378 ;-----------------------------------------------------------------------------
379
380   fmov s1, w2
381   fmov w1, s2
382   fmov d1, x2
383   fmov x1, d2
384
385 ; CHECK: fmov s1, w2                 ; encoding: [0x41,0x00,0x27,0x1e]
386 ; CHECK: fmov w1, s2                 ; encoding: [0x41,0x00,0x26,0x1e]
387 ; CHECK: fmov d1, x2                 ; encoding: [0x41,0x00,0x67,0x9e]
388 ; CHECK: fmov x1, d2                 ; encoding: [0x41,0x00,0x66,0x9e]
389
390   fmov s1, #0.125
391   fmov s1, #0x40
392   fmov d1, #0.125
393   fmov d1, #0x40
394   fmov d1, #-4.843750e-01
395   fmov d1, #4.843750e-01
396   fmov d3, #3
397   fmov s2, #0.0
398   fmov d2, #0.0
399
400 ; CHECK: fmov s1, #1.250000e-01      ; encoding: [0x01,0x10,0x28,0x1e]
401 ; CHECK: fmov s1, #1.250000e-01      ; encoding: [0x01,0x10,0x28,0x1e]
402 ; CHECK: fmov d1, #1.250000e-01      ; encoding: [0x01,0x10,0x68,0x1e]
403 ; CHECK: fmov d1, #1.250000e-01      ; encoding: [0x01,0x10,0x68,0x1e]
404 ; CHECK: fmov d1, #-4.843750e-01     ; encoding: [0x01,0xf0,0x7b,0x1e]
405 ; CHECK: fmov d1, #4.843750e-01      ; encoding: [0x01,0xf0,0x6b,0x1e]
406 ; CHECK: fmov d3, #3.000000e+00      ; encoding: [0x03,0x10,0x61,0x1e]
407 ; CHECK: fmov s2, wzr                ; encoding: [0xe2,0x03,0x27,0x1e]
408 ; CHECK: fmov d2, xzr                ; encoding: [0xe2,0x03,0x67,0x9e]
409
410   fmov s1, s2
411   fmov d1, d2
412
413 ; CHECK: fmov s1, s2                 ; encoding: [0x41,0x40,0x20,0x1e]
414 ; CHECK: fmov d1, d2                 ; encoding: [0x41,0x40,0x60,0x1e]
415
416
417   fmov x2, v5.d[1]
418   fmov.d x9, v7[1]
419   fmov v1.d[1], x1
420   fmov.d v8[1], x6
421
422 ; CHECK: fmov.d x2, v5[1]               ; encoding: [0xa2,0x00,0xae,0x9e]
423 ; CHECK: fmov.d x9, v7[1]               ; encoding: [0xe9,0x00,0xae,0x9e]
424 ; CHECK: fmov.d v1[1], x1               ; encoding: [0x21,0x00,0xaf,0x9e]
425 ; CHECK: fmov.d v8[1], x6               ; encoding: [0xc8,0x00,0xaf,0x9e]
426
427
428 ;-----------------------------------------------------------------------------
429 ; Floating-point round to integral
430 ;-----------------------------------------------------------------------------
431
432   frinta s1, s2
433   frinta d1, d2
434
435 ; CHECK: frinta s1, s2               ; encoding: [0x41,0x40,0x26,0x1e]
436 ; CHECK: frinta d1, d2               ; encoding: [0x41,0x40,0x66,0x1e]
437
438   frinti s1, s2
439   frinti d1, d2
440
441 ; CHECK: frinti s1, s2               ; encoding: [0x41,0xc0,0x27,0x1e]
442 ; CHECK: frinti d1, d2               ; encoding: [0x41,0xc0,0x67,0x1e]
443
444   frintm s1, s2
445   frintm d1, d2
446
447 ; CHECK: frintm s1, s2               ; encoding: [0x41,0x40,0x25,0x1e]
448 ; CHECK: frintm d1, d2               ; encoding: [0x41,0x40,0x65,0x1e]
449
450   frintn s1, s2
451   frintn d1, d2
452
453 ; CHECK: frintn s1, s2               ; encoding: [0x41,0x40,0x24,0x1e]
454 ; CHECK: frintn d1, d2               ; encoding: [0x41,0x40,0x64,0x1e]
455
456   frintp s1, s2
457   frintp d1, d2
458
459 ; CHECK: frintp s1, s2               ; encoding: [0x41,0xc0,0x24,0x1e]
460 ; CHECK: frintp d1, d2               ; encoding: [0x41,0xc0,0x64,0x1e]
461
462   frintx s1, s2
463   frintx d1, d2
464
465 ; CHECK: frintx s1, s2               ; encoding: [0x41,0x40,0x27,0x1e]
466 ; CHECK: frintx d1, d2               ; encoding: [0x41,0x40,0x67,0x1e]
467
468   frintz s1, s2
469   frintz d1, d2
470
471 ; CHECK: frintz s1, s2               ; encoding: [0x41,0xc0,0x25,0x1e]
472 ; CHECK: frintz d1, d2               ; encoding: [0x41,0xc0,0x65,0x1e]
473
474   cmhs d0, d0, d0
475   cmtst d0, d0, d0
476
477 ; CHECK: cmhs   d0, d0, d0              ; encoding: [0x00,0x3c,0xe0,0x7e]
478 ; CHECK: cmtst  d0, d0, d0              ; encoding: [0x00,0x8c,0xe0,0x5e]
479
480
481
482 ;-----------------------------------------------------------------------------
483 ; Floating-point extract and narrow
484 ;-----------------------------------------------------------------------------
485   sqxtn b4, h2
486   sqxtn h2, s3
487   sqxtn s9, d2
488
489 ; CHECK: sqxtn b4, h2                  ; encoding: [0x44,0x48,0x21,0x5e]
490 ; CHECK: sqxtn h2, s3                  ; encoding: [0x62,0x48,0x61,0x5e]
491 ; CHECK: sqxtn s9, d2                  ; encoding: [0x49,0x48,0xa1,0x5e]
492
493   sqxtun b4, h2
494   sqxtun h2, s3
495   sqxtun s9, d2
496
497 ; CHECK: sqxtun b4, h2                  ; encoding: [0x44,0x28,0x21,0x7e]
498 ; CHECK: sqxtun h2, s3                  ; encoding: [0x62,0x28,0x61,0x7e]
499 ; CHECK: sqxtun s9, d2                  ; encoding: [0x49,0x28,0xa1,0x7e]
500
501   uqxtn b4, h2
502   uqxtn h2, s3
503   uqxtn s9, d2
504
505 ; CHECK: uqxtn b4, h2                  ; encoding: [0x44,0x48,0x21,0x7e]
506 ; CHECK: uqxtn h2, s3                  ; encoding: [0x62,0x48,0x61,0x7e]
507 ; CHECK: uqxtn s9, d2                  ; encoding: [0x49,0x48,0xa1,0x7e]