[CodeGen] Remove some implict conversions of MCRegister to unsigned by using(). NFC
[llvm-project.git] / llvm / test / MC / Disassembler / AArch64 / arm64-scalar-fp.txt
blobc536721f346688c0706332d4f703e69e8053dbaa
1 # RUN: llvm-mc -triple arm64-apple-darwin -mattr=neon --disassemble -output-asm-variant=1 < %s | FileCheck %s
2 # RUN: llvm-mc -triple arm64-apple-darwin -mattr=neon,v8.2a,fullfp16 --disassemble -output-asm-variant=1 < %s | FileCheck %s --check-prefix=CHECK --check-prefix=FP16
4 #-----------------------------------------------------------------------------
5 # Floating-point arithmetic
6 #-----------------------------------------------------------------------------
8 0x41 0xc0 0xe0 0x1e
9 0x41 0xc0 0x20 0x1e
10 0x41 0xc0 0x60 0x1e
12 # FP16: fabs h1, h2
13 # CHECK: fabs s1, s2
14 # CHECK: fabs d1, d2
16 0x41 0x28 0xe3 0x1e
17 0x41 0x28 0x23 0x1e
18 0x41 0x28 0x63 0x1e
20 # FP16:  fadd h1, h2, h3
21 # CHECK: fadd s1, s2, s3
22 # CHECK: fadd d1, d2, d3
24 0x41 0x18 0xe3 0x1e
25 0x41 0x18 0x23 0x1e
26 0x41 0x18 0x63 0x1e
28 # FP16:  fdiv h1, h2, h3
29 # CHECK: fdiv s1, s2, s3
30 # CHECK: fdiv d1, d2, d3
32 0x41 0x10 0xc3 0x1f
33 0x41 0x10 0x03 0x1f
34 0x41 0x10 0x43 0x1f
36 # FP16:  fmadd h1, h2, h3, h4
37 # CHECK: fmadd s1, s2, s3, s4
38 # CHECK: fmadd d1, d2, d3, d4
40 0x41 0x48 0xe3 0x1e
41 0x41 0x48 0x23 0x1e
42 0x41 0x48 0x63 0x1e
43 0x41 0x68 0xe3 0x1e
44 0x41 0x68 0x23 0x1e
45 0x41 0x68 0x63 0x1e
47 # FP16:  fmax   h1, h2, h3
48 # CHECK: fmax   s1, s2, s3
49 # CHECK: fmax   d1, d2, d3
50 # FP16:  fmaxnm h1, h2, h3
51 # CHECK: fmaxnm s1, s2, s3
52 # CHECK: fmaxnm d1, d2, d3
54 0x41 0x58 0xe3 0x1e
55 0x41 0x58 0x23 0x1e
56 0x41 0x58 0x63 0x1e
57 0x41 0x78 0xe3 0x1e
58 0x41 0x78 0x23 0x1e
59 0x41 0x78 0x63 0x1e
61 # FP16:  fmin   h1, h2, h3
62 # CHECK: fmin   s1, s2, s3
63 # CHECK: fmin   d1, d2, d3
64 # FP16:  fminnm h1, h2, h3
65 # CHECK: fminnm s1, s2, s3
66 # CHECK: fminnm d1, d2, d3
68 0x41 0x90 0xc3 0x1f
69 0x41 0x90 0x03 0x1f
70 0x41 0x90 0x43 0x1f
72 # FP16:  fmsub h1, h2, h3, h4
73 # CHECK: fmsub s1, s2, s3, s4
74 # CHECK: fmsub d1, d2, d3, d4
76 0x41 0x08 0xe3 0x1e
77 0x41 0x08 0x23 0x1e
78 0x41 0x08 0x63 0x1e
80 # FP16:  fmul h1, h2, h3
81 # CHECK: fmul s1, s2, s3
82 # CHECK: fmul d1, d2, d3
84 0x41 0x40 0xe1 0x1e
85 0x41 0x40 0x21 0x1e
86 0x41 0x40 0x61 0x1e
88 # FP16:  fneg h1, h2
89 # CHECK: fneg s1, s2
90 # CHECK: fneg d1, d2
92 0x41 0x10 0xe3 0x1f
93 0x41 0x10 0x23 0x1f
94 0x41 0x10 0x63 0x1f
96 # FP16:  fnmadd h1, h2, h3, h4
97 # CHECK: fnmadd s1, s2, s3, s4
98 # CHECK: fnmadd d1, d2, d3, d4
100 0x41 0x90 0xe3 0x1f
101 0x41 0x90 0x23 0x1f
102 0x41 0x90 0x63 0x1f
104 # FP16:  fnmsub h1, h2, h3, h4
105 # CHECK: fnmsub s1, s2, s3, s4
106 # CHECK: fnmsub d1, d2, d3, d4
108 0x41 0x88 0xe3 0x1e
109 0x41 0x88 0x23 0x1e
110 0x41 0x88 0x63 0x1e
112 # FP16:  fnmul h1, h2, h3
113 # CHECK: fnmul s1, s2, s3
114 # CHECK: fnmul d1, d2, d3
116 0x41 0xc0 0xe1 0x1e
117 0x41 0xc0 0x21 0x1e
118 0x41 0xc0 0x61 0x1e
120 # FP16:  fsqrt h1, h2
121 # CHECK: fsqrt s1, s2
122 # CHECK: fsqrt d1, d2
124 0x41 0x38 0xe3 0x1e
125 0x41 0x38 0x23 0x1e
126 0x41 0x38 0x63 0x1e
128 # FP16:  fsub h1, h2, h3
129 # CHECK: fsub s1, s2, s3
130 # CHECK: fsub d1, d2, d3
132 #-----------------------------------------------------------------------------
133 # Floating-point comparison
134 #-----------------------------------------------------------------------------
136 0x20 0x04 0xe2 0x1e
137 0x20 0x04 0x22 0x1e
138 0x20 0x04 0x62 0x1e
139 0x30 0x04 0xe2 0x1e
140 0x30 0x04 0x22 0x1e
141 0x30 0x04 0x62 0x1e
143 # FP16:  fccmp  h1, h2, #0, eq
144 # CHECK: fccmp  s1, s2, #0, eq
145 # CHECK: fccmp  d1, d2, #0, eq
146 # FP16:  fccmpe h1, h2, #0, eq
147 # CHECK: fccmpe s1, s2, #0, eq
148 # CHECK: fccmpe d1, d2, #0, eq
150 0x20 0x20 0xe2 0x1e
151 0x20 0x20 0x22 0x1e
152 0x20 0x20 0x62 0x1e
153 0x28 0x20 0xe0 0x1e
154 0x28 0x20 0x20 0x1e
155 0x28 0x20 0x60 0x1e
156 0x30 0x20 0xe2 0x1e
157 0x30 0x20 0x22 0x1e
158 0x30 0x20 0x62 0x1e
159 0x38 0x20 0xe0 0x1e
160 0x38 0x20 0x20 0x1e
161 0x38 0x20 0x60 0x1e
163 # FP16:  fcmp  h1, h2
164 # CHECK: fcmp  s1, s2
165 # CHECK: fcmp  d1, d2
166 # FP16:  fcmp  h1, #0.0
167 # CHECK: fcmp  s1, #0.0
168 # CHECK: fcmp  d1, #0.0
169 # FP16:  fcmpe h1, h2
170 # CHECK: fcmpe s1, s2
171 # CHECK: fcmpe d1, d2
172 # FP16:  fcmpe h1, #0.0
173 # CHECK: fcmpe s1, #0.0
174 # CHECK: fcmpe d1, #0.0
176 #-----------------------------------------------------------------------------
177 # Floating-point conditional select
178 #-----------------------------------------------------------------------------
180 0x41 0x0c 0xe3 0x1e
181 0x41 0x0c 0x23 0x1e
182 0x41 0x0c 0x63 0x1e
184 # FP16:  fcsel h1, h2, h3, eq
185 # CHECK: fcsel s1, s2, s3, eq
186 # CHECK: fcsel d1, d2, d3, eq
188 #-----------------------------------------------------------------------------
189 # Floating-point convert
190 #-----------------------------------------------------------------------------
192 0x41 0xc0 0x63 0x1e
193 0x41 0x40 0x62 0x1e
194 0x41 0xc0 0xe2 0x1e
195 0x41 0x40 0xe2 0x1e
196 0x41 0xc0 0x22 0x1e
197 0x41 0xc0 0x23 0x1e
199 # CHECK: fcvt h1, d2
200 # CHECK: fcvt s1, d2
201 # CHECK: fcvt d1, h2
202 # CHECK: fcvt s1, h2
203 # CHECK: fcvt d1, s2
204 # CHECK: fcvt h1, s2
206 0x41 0x00 0x44 0x1e
207 0x41 0x04 0x44 0x1e
208 0x41 0x00 0x44 0x9e
209 0x41 0x04 0x44 0x9e
210 0x41 0x00 0x04 0x1e
211 0x41 0x04 0x04 0x1e
212 0x41 0x00 0x04 0x9e
213 0x41 0x04 0x04 0x9e
215 #-----------------------------------------------------------------------------
216 # Floating-point move
217 #-----------------------------------------------------------------------------
219 0x41 0x00 0xe7 0x1e
220 0x41 0x00 0xe6 0x1e
221 0x41 0x00 0x27 0x1e
222 0x41 0x00 0x26 0x1e
223 0x41 0x00 0x67 0x9e
224 0x41 0x00 0x66 0x9e
226 # FP16:  fmov h1, w2
227 # FP16:  fmov w1, h2
228 # CHECK: fmov s1, w2
229 # CHECK: fmov w1, s2
230 # CHECK: fmov d1, x2
231 # CHECK: fmov x1, d2
233 0x01 0x10 0xe8 0x1e
234 0x01 0x10 0x28 0x1e
235 0x01 0x10 0x68 0x1e
236 0x01 0xf0 0x7b 0x1e
237 0x01 0xf0 0x6b 0x1e
239 # FP16:  fmov h1, #0.12500000
240 # CHECK: fmov s1, #0.12500000
241 # CHECK: fmov d1, #0.12500000
242 # CHECK: fmov d1, #-0.48437500
243 # CHECK: fmov d1, #0.48437500
245 0x41 0x40 0xe0 0x1e
246 0x41 0x40 0x20 0x1e
247 0x41 0x40 0x60 0x1e
249 # FP16:  fmov h1, h2
250 # CHECK: fmov s1, s2
251 # CHECK: fmov d1, d2
253 #-----------------------------------------------------------------------------
254 # Floating-point round to integral
255 #-----------------------------------------------------------------------------
257 0x41 0x40 0xe6 0x1e
258 0x41 0x40 0x26 0x1e
259 0x41 0x40 0x66 0x1e
261 # FP16:  frinta h1, h2
262 # CHECK: frinta s1, s2
263 # CHECK: frinta d1, d2
265 0x41 0xc0 0xe7 0x1e
266 0x41 0xc0 0x27 0x1e
267 0x41 0xc0 0x67 0x1e
269 # FP16:  frinti h1, h2
270 # CHECK: frinti s1, s2
271 # CHECK: frinti d1, d2
273 0x41 0x40 0xe5 0x1e
274 0x41 0x40 0x25 0x1e
275 0x41 0x40 0x65 0x1e
277 # FP16:  frintm h1, h2
278 # CHECK: frintm s1, s2
279 # CHECK: frintm d1, d2
281 0x41 0x40 0xe4 0x1e
282 0x41 0x40 0x24 0x1e
283 0x41 0x40 0x64 0x1e
285 # FP16:  frintn h1, h2
286 # CHECK: frintn s1, s2
287 # CHECK: frintn d1, d2
289 0x41 0xc0 0xe4 0x1e
290 0x41 0xc0 0x24 0x1e
291 0x41 0xc0 0x64 0x1e
293 # FP16:  frintp h1, h2
294 # CHECK: frintp s1, s2
295 # CHECK: frintp d1, d2
297 0x41 0x40 0xe7 0x1e
298 0x41 0x40 0x27 0x1e
299 0x41 0x40 0x67 0x1e
301 # FP16:  frintx h1, h2
302 # CHECK: frintx s1, s2
303 # CHECK: frintx d1, d2
305 0x41 0xc0 0xe5 0x1e
306 0x41 0xc0 0x25 0x1e
307 0x41 0xc0 0x65 0x1e
309 # FP16:  frintz h1, h2
310 # CHECK: frintz s1, s2
311 # CHECK: frintz d1, d2
313   0x00 0x3c 0xe0 0x7e
314   0x00 0x8c 0xe0 0x5e
316 # CHECK: cmhs d0, d0, d0
317 # CHECK: cmtst d0, d0, d0
319 0x00 0x00 0xaf 0x9e
320 0x00 0x00 0xae 0x9e
322 # CHECK: fmov.d v0[1], x0
323 # CHECK: fmov.d x0, v0[1]