[RISCV][VLOPT] Add vector narrowing integer right shift instructions to isSupportedIn...
[llvm-project.git] / llvm / test / tools / llvm-mca / ARM / m55-fp.s
blob6318cfa9d6e9cbf60b2a9b3077264256cebca18a
1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2 # RUN: llvm-mca -mtriple=thumbv8.1-m.main-none-none-eabi -mcpu=cortex-m55 -instruction-tables < %s | FileCheck %s
4 vabs.f16 s0, s2
5 vabs.f32 s0, s2
6 vabs.f64 d0, d2
7 vadd.f16 s0, s2, s1
8 vadd.f32 s0, s2, s1
9 vadd.f64 d0, d2, d1
10 vcmp.f16 s1, s2
11 vcmp.f32 s1, s2
12 vcmp.f64 d1, d2
13 vcmp.f16 s1, #0.0
14 vcmp.f32 s1, #0.0
15 vcmp.f64 d1, #0.0
16 vcmpe.f16 s1, s2
17 vcmpe.f32 s1, s2
18 vcmpe.f64 d1, d2
19 vcmpe.f16 s1, #0.0
20 vcmpe.f32 s1, #0.0
21 vcmpe.f64 d1, #0.0
22 vcvt.f32.f64 s1, d2
23 vcvt.f64.f32 d1, s1
24 vcvt.f16.u16 s1, s2, #8
25 vcvt.f16.s16 s1, s2, #8
26 vcvt.f16.u32 s1, s2, #8
27 vcvt.f16.s32 s1, s2, #8
28 vcvt.u16.f16 s1, s2, #8
29 vcvt.s16.f16 s1, s2, #8
30 vcvt.u32.f16 s1, s2, #8
31 vcvt.s32.f16 s1, s2, #8
32 vcvt.f32.u16 s1, s2, #8
33 vcvt.f32.s16 s1, s2, #8
34 vcvt.f32.u32 s1, s2, #8
35 vcvt.f32.s32 s1, s2, #8
36 vcvt.u16.f32 s1, s2, #8
37 vcvt.s16.f32 s1, s2, #8
38 vcvt.u32.f32 s1, s2, #8
39 vcvt.s32.f32 s1, s2, #8
40 vcvt.f64.u16 d1, d2, #8
41 vcvt.f64.s16 d1, d2, #8
42 vcvt.f64.u32 d1, d2, #8
43 vcvt.f64.s32 d1, d2, #8
44 vcvt.u16.f64 d1, d2, #8
45 vcvt.s16.f64 d1, d2, #8
46 vcvt.u32.f64 d1, d2, #8
47 vcvt.s32.f64 d1, d2, #8
48 vcvt.u32.f16 s1, s2
49 vcvt.s32.f16 s1, s2
50 vcvt.u32.f32 s1, s2
51 vcvt.s32.f32 s1, s2
52 vcvt.u32.f64 s1, d2
53 vcvt.s32.f64 s1, d2
54 vcvt.f16.u32 s1, s2
55 vcvt.f16.s32 s1, s2
56 vcvt.f32.u32 s1, s2
57 vcvt.f32.s32 s1, s2
58 vcvt.f64.u32 d1, s2
59 vcvt.f64.s32 d1, s2
60 vcvta.u32.f16 s1, s2
61 vcvta.s32.f16 s1, s2
62 vcvta.u32.f32 s1, s2
63 vcvta.s32.f32 s1, s2
64 vcvta.u32.f64 s1, d2
65 vcvta.s32.f64 s1, d2
66 vcvtm.u32.f16 s1, s2
67 vcvtm.s32.f16 s1, s2
68 vcvtm.u32.f32 s1, s2
69 vcvtm.s32.f32 s1, s2
70 vcvtm.u32.f64 s1, d2
71 vcvtm.s32.f64 s1, d2
72 vcvtn.u32.f16 s1, s2
73 vcvtn.s32.f16 s1, s2
74 vcvtn.u32.f32 s1, s2
75 vcvtn.s32.f32 s1, s2
76 vcvtn.u32.f64 s1, d2
77 vcvtn.s32.f64 s1, d2
78 vcvtp.u32.f16 s1, s2
79 vcvtp.s32.f16 s1, s2
80 vcvtp.u32.f32 s1, s2
81 vcvtp.s32.f32 s1, s2
82 vcvtp.u32.f64 s1, d2
83 vcvtp.s32.f64 s1, d2
84 vcvtb.f16.f32 s1, s2
85 vcvtb.f16.f64 s1, d2
86 vcvtb.f32.f16 s1, s2
87 vcvtb.f64.f16 d1, s2
88 vcvtr.u32.f16 s1, s2
89 vcvtr.s32.f16 s1, s2
90 vcvtr.u32.f32 s1, s2
91 vcvtr.s32.f32 s1, s2
92 vcvtr.u32.f64 s1, d2
93 vcvtr.s32.f64 s1, d2
94 vcvtt.f16.f32 s1, s2
95 vcvtt.f16.f64 s1, d2
96 vcvtt.f32.f16 s1, s2
97 vcvtt.f64.f16 d1, s2
98 vdiv.f16 s0, s2, s1
99 vdiv.f32 s0, s2, s1
100 vdiv.f64 d0, d2, d1
101 vfma.f16 s0, s2, s1
102 vfma.f32 s0, s2, s1
103 vfma.f64 d0, d2, d1
104 vfms.f16 s0, s2, s1
105 vfms.f32 s0, s2, s1
106 vfms.f64 d0, d2, d1
107 vfnma.f16 s0, s2, s1
108 vfnma.f32 s0, s2, s1
109 vfnma.f64 d0, d2, d1
110 vfnms.f16 s0, s2, s1
111 vfnms.f32 s0, s2, s1
112 vfnms.f64 d0, d2, d1
113 vins.f16 s0, s1
114 vmaxnm.f16 s0, s2, s1
115 vmaxnm.f32 s0, s2, s1
116 vmaxnm.f64 d0, d2, d1
117 vminnm.f16 s0, s2, s1
118 vminnm.f32 s0, s2, s1
119 vminnm.f64 d0, d2, d1
120 vmla.f16 s0, s2, s1
121 vmla.f32 s0, s2, s1
122 vmla.f64 d0, d2, d1
123 vmls.f16 s0, s2, s1
124 vmls.f32 s0, s2, s1
125 vmls.f64 d0, d2, d1
126 vmov.f16 s0, r1
127 vmov.f16 r0, s1
128 vmov.f32 s0, r1
129 vmov.f32 r0, s1
130 vmov.f64 d0, r1, r2
131 vmov.f64 r0, r1, d1
132 vmov s0, s1, r0, r1
133 vmov r0, r1, s0, s1
134 vmov.f16 s0, #1.0
135 vmov.f32 s0, #1.0
136 vmov.f64 d0, #1.0
137 vmov.f32 s0, s1
138 vmov.f64 d0, d1
139 vmovx.f16 s0, s1
140 vmul.f16 s0, s2, s1
141 vmul.f32 s0, s2, s1
142 vmul.f64 d0, d2, d1
143 vneg.f16 s0, s2
144 vneg.f32 s0, s2
145 vneg.f64 d0, d2
146 vnmla.f16 s0, s2, s1
147 vnmla.f32 s0, s2, s1
148 vnmla.f64 d0, d2, d1
149 vnmls.f16 s0, s2, s1
150 vnmls.f32 s0, s2, s1
151 vnmls.f64 d0, d2, d1
152 vnmul.f16 s0, s2, s1
153 vnmul.f32 s0, s2, s1
154 vnmul.f64 d0, d2, d1
155 vrinta.f16 s0, s2
156 vrinta.f32.f32 s0, s2
157 vrinta.f64.f64 d0, d2
158 vrintm.f16 s0, s2
159 vrintm.f32.f32 s0, s2
160 vrintm.f64.f64 d0, d2
161 vrintn.f16 s0, s2
162 vrintn.f32.f32 s0, s2
163 vrintn.f64.f64 d0, d2
164 vrintp.f16 s0, s2
165 vrintp.f32.f32 s0, s2
166 vrintp.f64.f64 d0, d2
167 vrintr.f16.f16 s0, s2
168 vrintr.f32.f32 s0, s2
169 vrintr.f64.f64 d0, d2
170 vrintz.f16.f16 s0, s2
171 vrintz.f32.f32 s0, s2
172 vrintz.f64.f64 d0, d2
173 vrintx.f16.f16 s0, s2
174 vrintx.f32.f32 s0, s2
175 vrintx.f64.f64 d0, d2
176 vseleq.f16 s0, s2, s1
177 vseleq.f32 s0, s2, s1
178 vseleq.f64 d0, d2, d1
179 vsqrt.f16 s0, s2
180 vsqrt.f32 s0, s2
181 vsqrt.f64 d0, d2
182 vsub.f16 s0, s2, s1
183 vsub.f32 s0, s2, s1
184 vsub.f64 d0, d2, d1
186 #vldr pc
187 #vldr [rn + value]
188 #vstr pc
189 #vstr [rn + value]
191 # CHECK: Instruction Info:
192 # CHECK-NEXT: [1]: #uOps
193 # CHECK-NEXT: [2]: Latency
194 # CHECK-NEXT: [3]: RThroughput
195 # CHECK-NEXT: [4]: MayLoad
196 # CHECK-NEXT: [5]: MayStore
197 # CHECK-NEXT: [6]: HasSideEffects (U)
199 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
200 # CHECK-NEXT: 1 2 1.00 vabs.f16 s0, s2
201 # CHECK-NEXT: 1 2 1.00 vabs.f32 s0, s2
202 # CHECK-NEXT: 1 2 1.00 vabs.f64 d0, d2
203 # CHECK-NEXT: 1 2 1.00 vadd.f16 s0, s2, s1
204 # CHECK-NEXT: 1 2 1.00 vadd.f32 s0, s2, s1
205 # CHECK-NEXT: 1 15 1.00 vadd.f64 d0, d2, d1
206 # CHECK-NEXT: 1 1 1.00 vcmp.f16 s1, s2
207 # CHECK-NEXT: 1 1 1.00 vcmp.f32 s1, s2
208 # CHECK-NEXT: 1 1 1.00 vcmp.f64 d1, d2
209 # CHECK-NEXT: 1 1 1.00 vcmp.f16 s1, #0
210 # CHECK-NEXT: 1 1 1.00 vcmp.f32 s1, #0
211 # CHECK-NEXT: 1 1 1.00 vcmp.f64 d1, #0
212 # CHECK-NEXT: 1 1 1.00 vcmpe.f16 s1, s2
213 # CHECK-NEXT: 1 1 1.00 vcmpe.f32 s1, s2
214 # CHECK-NEXT: 1 1 1.00 vcmpe.f64 d1, d2
215 # CHECK-NEXT: 1 1 1.00 vcmpe.f16 s1, #0
216 # CHECK-NEXT: 1 1 1.00 vcmpe.f32 s1, #0
217 # CHECK-NEXT: 1 1 1.00 vcmpe.f64 d1, #0
218 # CHECK-NEXT: 1 2 1.00 vcvt.f32.f64 s1, d2
219 # CHECK-NEXT: 1 2 1.00 vcvt.f64.f32 d1, s1
220 # CHECK-NEXT: 1 2 1.00 vcvt.f16.u16 s1, s1, #8
221 # CHECK-NEXT: 1 2 1.00 vcvt.f16.s16 s1, s1, #8
222 # CHECK-NEXT: 1 2 1.00 vcvt.f16.u32 s1, s1, #8
223 # CHECK-NEXT: 1 2 1.00 vcvt.f16.s32 s1, s1, #8
224 # CHECK-NEXT: 1 2 1.00 vcvt.u16.f16 s1, s1, #8
225 # CHECK-NEXT: 1 2 1.00 vcvt.s16.f16 s1, s1, #8
226 # CHECK-NEXT: 1 2 1.00 vcvt.u32.f16 s1, s1, #8
227 # CHECK-NEXT: 1 2 1.00 vcvt.s32.f16 s1, s1, #8
228 # CHECK-NEXT: 1 2 1.00 vcvt.f32.u16 s1, s1, #8
229 # CHECK-NEXT: 1 2 1.00 vcvt.f32.s16 s1, s1, #8
230 # CHECK-NEXT: 1 2 1.00 vcvt.f32.u32 s1, s1, #8
231 # CHECK-NEXT: 1 2 1.00 vcvt.f32.s32 s1, s1, #8
232 # CHECK-NEXT: 1 2 1.00 vcvt.u16.f32 s1, s1, #8
233 # CHECK-NEXT: 1 2 1.00 vcvt.s16.f32 s1, s1, #8
234 # CHECK-NEXT: 1 2 1.00 vcvt.u32.f32 s1, s1, #8
235 # CHECK-NEXT: 1 2 1.00 vcvt.s32.f32 s1, s1, #8
236 # CHECK-NEXT: 1 2 1.00 vcvt.f64.u16 d1, d1, #8
237 # CHECK-NEXT: 1 2 1.00 vcvt.f64.s16 d1, d1, #8
238 # CHECK-NEXT: 1 2 1.00 vcvt.f64.u32 d1, d1, #8
239 # CHECK-NEXT: 1 2 1.00 vcvt.f64.s32 d1, d1, #8
240 # CHECK-NEXT: 1 2 1.00 vcvt.u16.f64 d1, d1, #8
241 # CHECK-NEXT: 1 2 1.00 vcvt.s16.f64 d1, d1, #8
242 # CHECK-NEXT: 1 2 1.00 vcvt.u32.f64 d1, d1, #8
243 # CHECK-NEXT: 1 2 1.00 vcvt.s32.f64 d1, d1, #8
244 # CHECK-NEXT: 1 2 1.00 vcvt.u32.f16 s1, s2
245 # CHECK-NEXT: 1 2 1.00 vcvt.s32.f16 s1, s2
246 # CHECK-NEXT: 1 2 1.00 vcvt.u32.f32 s1, s2
247 # CHECK-NEXT: 1 2 1.00 vcvt.s32.f32 s1, s2
248 # CHECK-NEXT: 1 2 1.00 vcvt.u32.f64 s1, d2
249 # CHECK-NEXT: 1 2 1.00 vcvt.s32.f64 s1, d2
250 # CHECK-NEXT: 1 2 1.00 vcvt.f16.u32 s1, s2
251 # CHECK-NEXT: 1 2 1.00 vcvt.f16.s32 s1, s2
252 # CHECK-NEXT: 1 2 1.00 vcvt.f32.u32 s1, s2
253 # CHECK-NEXT: 1 2 1.00 vcvt.f32.s32 s1, s2
254 # CHECK-NEXT: 1 2 1.00 vcvt.f64.u32 d1, s2
255 # CHECK-NEXT: 1 2 1.00 vcvt.f64.s32 d1, s2
256 # CHECK-NEXT: 1 2 1.00 vcvta.u32.f16 s1, s2
257 # CHECK-NEXT: 1 2 1.00 vcvta.s32.f16 s1, s2
258 # CHECK-NEXT: 1 2 1.00 vcvta.u32.f32 s1, s2
259 # CHECK-NEXT: 1 2 1.00 vcvta.s32.f32 s1, s2
260 # CHECK-NEXT: 1 2 1.00 vcvta.u32.f64 s1, d2
261 # CHECK-NEXT: 1 2 1.00 vcvta.s32.f64 s1, d2
262 # CHECK-NEXT: 1 2 1.00 vcvtm.u32.f16 s1, s2
263 # CHECK-NEXT: 1 2 1.00 vcvtm.s32.f16 s1, s2
264 # CHECK-NEXT: 1 2 1.00 vcvtm.u32.f32 s1, s2
265 # CHECK-NEXT: 1 2 1.00 vcvtm.s32.f32 s1, s2
266 # CHECK-NEXT: 1 2 1.00 vcvtm.u32.f64 s1, d2
267 # CHECK-NEXT: 1 2 1.00 vcvtm.s32.f64 s1, d2
268 # CHECK-NEXT: 1 2 1.00 vcvtn.u32.f16 s1, s2
269 # CHECK-NEXT: 1 2 1.00 vcvtn.s32.f16 s1, s2
270 # CHECK-NEXT: 1 2 1.00 vcvtn.u32.f32 s1, s2
271 # CHECK-NEXT: 1 2 1.00 vcvtn.s32.f32 s1, s2
272 # CHECK-NEXT: 1 2 1.00 vcvtn.u32.f64 s1, d2
273 # CHECK-NEXT: 1 2 1.00 vcvtn.s32.f64 s1, d2
274 # CHECK-NEXT: 1 2 1.00 vcvtp.u32.f16 s1, s2
275 # CHECK-NEXT: 1 2 1.00 vcvtp.s32.f16 s1, s2
276 # CHECK-NEXT: 1 2 1.00 vcvtp.u32.f32 s1, s2
277 # CHECK-NEXT: 1 2 1.00 vcvtp.s32.f32 s1, s2
278 # CHECK-NEXT: 1 2 1.00 vcvtp.u32.f64 s1, d2
279 # CHECK-NEXT: 1 2 1.00 vcvtp.s32.f64 s1, d2
280 # CHECK-NEXT: 1 2 1.00 vcvtb.f16.f32 s1, s2
281 # CHECK-NEXT: 1 2 1.00 vcvtb.f16.f64 s1, d2
282 # CHECK-NEXT: 1 2 1.00 vcvtb.f32.f16 s1, s2
283 # CHECK-NEXT: 1 2 1.00 vcvtb.f64.f16 d1, s2
284 # CHECK-NEXT: 1 2 1.00 vcvtr.u32.f16 s1, s2
285 # CHECK-NEXT: 1 2 1.00 vcvtr.s32.f16 s1, s2
286 # CHECK-NEXT: 1 2 1.00 vcvtr.u32.f32 s1, s2
287 # CHECK-NEXT: 1 2 1.00 vcvtr.s32.f32 s1, s2
288 # CHECK-NEXT: 1 2 1.00 vcvtr.u32.f64 s1, d2
289 # CHECK-NEXT: 1 2 1.00 vcvtr.s32.f64 s1, d2
290 # CHECK-NEXT: 1 2 1.00 vcvtt.f16.f32 s1, s2
291 # CHECK-NEXT: 1 2 1.00 vcvtt.f16.f64 s1, d2
292 # CHECK-NEXT: 1 2 1.00 vcvtt.f32.f16 s1, s2
293 # CHECK-NEXT: 1 2 1.00 vcvtt.f64.f16 d1, s2
294 # CHECK-NEXT: 1 9 1.00 vdiv.f16 s0, s2, s1
295 # CHECK-NEXT: 1 16 1.00 vdiv.f32 s0, s2, s1
296 # CHECK-NEXT: 1 30 1.00 vdiv.f64 d0, d2, d1
297 # CHECK-NEXT: 1 2 1.00 vfma.f16 s0, s2, s1
298 # CHECK-NEXT: 1 2 1.00 vfma.f32 s0, s2, s1
299 # CHECK-NEXT: 1 24 1.00 vfma.f64 d0, d2, d1
300 # CHECK-NEXT: 1 2 1.00 vfms.f16 s0, s2, s1
301 # CHECK-NEXT: 1 2 1.00 vfms.f32 s0, s2, s1
302 # CHECK-NEXT: 1 24 1.00 vfms.f64 d0, d2, d1
303 # CHECK-NEXT: 1 2 1.00 vfnma.f16 s0, s2, s1
304 # CHECK-NEXT: 1 2 1.00 vfnma.f32 s0, s2, s1
305 # CHECK-NEXT: 1 24 1.00 vfnma.f64 d0, d2, d1
306 # CHECK-NEXT: 1 2 1.00 vfnms.f16 s0, s2, s1
307 # CHECK-NEXT: 1 2 1.00 vfnms.f32 s0, s2, s1
308 # CHECK-NEXT: 1 24 1.00 vfnms.f64 d0, d2, d1
309 # CHECK-NEXT: 1 2 1.00 vins.f16 s0, s1
310 # CHECK-NEXT: 1 2 1.00 vmaxnm.f16 s0, s2, s1
311 # CHECK-NEXT: 1 2 1.00 vmaxnm.f32 s0, s2, s1
312 # CHECK-NEXT: 1 2 1.00 vmaxnm.f64 d0, d2, d1
313 # CHECK-NEXT: 1 2 1.00 vminnm.f16 s0, s2, s1
314 # CHECK-NEXT: 1 2 1.00 vminnm.f32 s0, s2, s1
315 # CHECK-NEXT: 1 2 1.00 vminnm.f64 d0, d2, d1
316 # CHECK-NEXT: 1 4 1.00 vmla.f16 s0, s2, s1
317 # CHECK-NEXT: 1 4 1.00 vmla.f32 s0, s2, s1
318 # CHECK-NEXT: 1 36 1.00 vmla.f64 d0, d2, d1
319 # CHECK-NEXT: 1 4 1.00 vmls.f16 s0, s2, s1
320 # CHECK-NEXT: 1 4 1.00 vmls.f32 s0, s2, s1
321 # CHECK-NEXT: 1 36 1.00 vmls.f64 d0, d2, d1
322 # CHECK-NEXT: 1 2 1.00 vmov.f16 s0, r1
323 # CHECK-NEXT: 1 1 1.00 vmov.f16 r0, s1
324 # CHECK-NEXT: 1 2 1.00 vmov s0, r1
325 # CHECK-NEXT: 1 1 1.00 vmov r0, s1
326 # CHECK-NEXT: 1 2 1.00 vmov d0, r1, r2
327 # CHECK-NEXT: 1 1 1.00 vmov r0, r1, d1
328 # CHECK-NEXT: 1 2 1.00 vmov s0, s1, r0, r1
329 # CHECK-NEXT: 1 1 1.00 vmov r0, r1, s0, s1
330 # CHECK-NEXT: 1 1 1.00 vmov.f16 s0, #1.000000e+00
331 # CHECK-NEXT: 1 1 1.00 vmov.f32 s0, #1.000000e+00
332 # CHECK-NEXT: 1 1 1.00 vmov.f64 d0, #1.000000e+00
333 # CHECK-NEXT: 1 1 1.00 vmov.f32 s0, s1
334 # CHECK-NEXT: 1 1 1.00 vmov.f64 d0, d1
335 # CHECK-NEXT: 1 2 1.00 vmovx.f16 s0, s1
336 # CHECK-NEXT: 1 2 1.00 vmul.f16 s0, s2, s1
337 # CHECK-NEXT: 1 2 1.00 vmul.f32 s0, s2, s1
338 # CHECK-NEXT: 1 21 1.00 vmul.f64 d0, d2, d1
339 # CHECK-NEXT: 1 2 1.00 vneg.f16 s0, s2
340 # CHECK-NEXT: 1 2 1.00 vneg.f32 s0, s2
341 # CHECK-NEXT: 1 2 1.00 vneg.f64 d0, d2
342 # CHECK-NEXT: 1 4 1.00 vnmla.f16 s0, s2, s1
343 # CHECK-NEXT: 1 4 1.00 vnmla.f32 s0, s2, s1
344 # CHECK-NEXT: 1 36 1.00 vnmla.f64 d0, d2, d1
345 # CHECK-NEXT: 1 4 1.00 vnmls.f16 s0, s2, s1
346 # CHECK-NEXT: 1 4 1.00 vnmls.f32 s0, s2, s1
347 # CHECK-NEXT: 1 36 1.00 vnmls.f64 d0, d2, d1
348 # CHECK-NEXT: 1 2 1.00 vnmul.f16 s0, s2, s1
349 # CHECK-NEXT: 1 2 1.00 vnmul.f32 s0, s2, s1
350 # CHECK-NEXT: 1 21 1.00 vnmul.f64 d0, d2, d1
351 # CHECK-NEXT: 1 2 1.00 vrinta.f16 s0, s2
352 # CHECK-NEXT: 1 2 1.00 vrinta.f32 s0, s2
353 # CHECK-NEXT: 1 2 1.00 vrinta.f64 d0, d2
354 # CHECK-NEXT: 1 2 1.00 vrintm.f16 s0, s2
355 # CHECK-NEXT: 1 2 1.00 vrintm.f32 s0, s2
356 # CHECK-NEXT: 1 2 1.00 vrintm.f64 d0, d2
357 # CHECK-NEXT: 1 2 1.00 vrintn.f16 s0, s2
358 # CHECK-NEXT: 1 2 1.00 vrintn.f32 s0, s2
359 # CHECK-NEXT: 1 2 1.00 vrintn.f64 d0, d2
360 # CHECK-NEXT: 1 2 1.00 vrintp.f16 s0, s2
361 # CHECK-NEXT: 1 2 1.00 vrintp.f32 s0, s2
362 # CHECK-NEXT: 1 2 1.00 vrintp.f64 d0, d2
363 # CHECK-NEXT: 1 2 1.00 vrintr.f16 s0, s2
364 # CHECK-NEXT: 1 2 1.00 vrintr.f32 s0, s2
365 # CHECK-NEXT: 1 2 1.00 vrintr.f64 d0, d2
366 # CHECK-NEXT: 1 2 1.00 vrintz.f16 s0, s2
367 # CHECK-NEXT: 1 2 1.00 vrintz.f32 s0, s2
368 # CHECK-NEXT: 1 2 1.00 vrintz.f64 d0, d2
369 # CHECK-NEXT: 1 2 1.00 vrintx.f16 s0, s2
370 # CHECK-NEXT: 1 2 1.00 vrintx.f32 s0, s2
371 # CHECK-NEXT: 1 2 1.00 vrintx.f64 d0, d2
372 # CHECK-NEXT: 1 2 1.00 vseleq.f16 s0, s2, s1
373 # CHECK-NEXT: 1 2 1.00 vseleq.f32 s0, s2, s1
374 # CHECK-NEXT: 1 2 1.00 vseleq.f64 d0, d2, d1
375 # CHECK-NEXT: 1 9 1.00 vsqrt.f16 s0, s2
376 # CHECK-NEXT: 1 16 1.00 vsqrt.f32 s0, s2
377 # CHECK-NEXT: 1 30 1.00 vsqrt.f64 d0, d2
378 # CHECK-NEXT: 1 2 1.00 vsub.f16 s0, s2, s1
379 # CHECK-NEXT: 1 2 1.00 vsub.f32 s0, s2, s1
380 # CHECK-NEXT: 1 15 1.00 vsub.f64 d0, d2, d1
382 # CHECK: Resources:
383 # CHECK-NEXT: [0] - M55UnitALU
384 # CHECK-NEXT: [1] - M55UnitLoadStore
385 # CHECK-NEXT: [2] - M55UnitVecALU
386 # CHECK-NEXT: [3] - M55UnitVecFPALU
387 # CHECK-NEXT: [4] - M55UnitVecSys
389 # CHECK: Resource pressure per iteration:
390 # CHECK-NEXT: [0] [1] [2] [3] [4]
391 # CHECK-NEXT: - - - 181.00 -
393 # CHECK: Resource pressure by instruction:
394 # CHECK-NEXT: [0] [1] [2] [3] [4] Instructions:
395 # CHECK-NEXT: - - - 1.00 - vabs.f16 s0, s2
396 # CHECK-NEXT: - - - 1.00 - vabs.f32 s0, s2
397 # CHECK-NEXT: - - - 1.00 - vabs.f64 d0, d2
398 # CHECK-NEXT: - - - 1.00 - vadd.f16 s0, s2, s1
399 # CHECK-NEXT: - - - 1.00 - vadd.f32 s0, s2, s1
400 # CHECK-NEXT: - - - 1.00 - vadd.f64 d0, d2, d1
401 # CHECK-NEXT: - - - 1.00 - vcmp.f16 s1, s2
402 # CHECK-NEXT: - - - 1.00 - vcmp.f32 s1, s2
403 # CHECK-NEXT: - - - 1.00 - vcmp.f64 d1, d2
404 # CHECK-NEXT: - - - 1.00 - vcmp.f16 s1, #0
405 # CHECK-NEXT: - - - 1.00 - vcmp.f32 s1, #0
406 # CHECK-NEXT: - - - 1.00 - vcmp.f64 d1, #0
407 # CHECK-NEXT: - - - 1.00 - vcmpe.f16 s1, s2
408 # CHECK-NEXT: - - - 1.00 - vcmpe.f32 s1, s2
409 # CHECK-NEXT: - - - 1.00 - vcmpe.f64 d1, d2
410 # CHECK-NEXT: - - - 1.00 - vcmpe.f16 s1, #0
411 # CHECK-NEXT: - - - 1.00 - vcmpe.f32 s1, #0
412 # CHECK-NEXT: - - - 1.00 - vcmpe.f64 d1, #0
413 # CHECK-NEXT: - - - 1.00 - vcvt.f32.f64 s1, d2
414 # CHECK-NEXT: - - - 1.00 - vcvt.f64.f32 d1, s1
415 # CHECK-NEXT: - - - 1.00 - vcvt.f16.u16 s1, s1, #8
416 # CHECK-NEXT: - - - 1.00 - vcvt.f16.s16 s1, s1, #8
417 # CHECK-NEXT: - - - 1.00 - vcvt.f16.u32 s1, s1, #8
418 # CHECK-NEXT: - - - 1.00 - vcvt.f16.s32 s1, s1, #8
419 # CHECK-NEXT: - - - 1.00 - vcvt.u16.f16 s1, s1, #8
420 # CHECK-NEXT: - - - 1.00 - vcvt.s16.f16 s1, s1, #8
421 # CHECK-NEXT: - - - 1.00 - vcvt.u32.f16 s1, s1, #8
422 # CHECK-NEXT: - - - 1.00 - vcvt.s32.f16 s1, s1, #8
423 # CHECK-NEXT: - - - 1.00 - vcvt.f32.u16 s1, s1, #8
424 # CHECK-NEXT: - - - 1.00 - vcvt.f32.s16 s1, s1, #8
425 # CHECK-NEXT: - - - 1.00 - vcvt.f32.u32 s1, s1, #8
426 # CHECK-NEXT: - - - 1.00 - vcvt.f32.s32 s1, s1, #8
427 # CHECK-NEXT: - - - 1.00 - vcvt.u16.f32 s1, s1, #8
428 # CHECK-NEXT: - - - 1.00 - vcvt.s16.f32 s1, s1, #8
429 # CHECK-NEXT: - - - 1.00 - vcvt.u32.f32 s1, s1, #8
430 # CHECK-NEXT: - - - 1.00 - vcvt.s32.f32 s1, s1, #8
431 # CHECK-NEXT: - - - 1.00 - vcvt.f64.u16 d1, d1, #8
432 # CHECK-NEXT: - - - 1.00 - vcvt.f64.s16 d1, d1, #8
433 # CHECK-NEXT: - - - 1.00 - vcvt.f64.u32 d1, d1, #8
434 # CHECK-NEXT: - - - 1.00 - vcvt.f64.s32 d1, d1, #8
435 # CHECK-NEXT: - - - 1.00 - vcvt.u16.f64 d1, d1, #8
436 # CHECK-NEXT: - - - 1.00 - vcvt.s16.f64 d1, d1, #8
437 # CHECK-NEXT: - - - 1.00 - vcvt.u32.f64 d1, d1, #8
438 # CHECK-NEXT: - - - 1.00 - vcvt.s32.f64 d1, d1, #8
439 # CHECK-NEXT: - - - 1.00 - vcvt.u32.f16 s1, s2
440 # CHECK-NEXT: - - - 1.00 - vcvt.s32.f16 s1, s2
441 # CHECK-NEXT: - - - 1.00 - vcvt.u32.f32 s1, s2
442 # CHECK-NEXT: - - - 1.00 - vcvt.s32.f32 s1, s2
443 # CHECK-NEXT: - - - 1.00 - vcvt.u32.f64 s1, d2
444 # CHECK-NEXT: - - - 1.00 - vcvt.s32.f64 s1, d2
445 # CHECK-NEXT: - - - 1.00 - vcvt.f16.u32 s1, s2
446 # CHECK-NEXT: - - - 1.00 - vcvt.f16.s32 s1, s2
447 # CHECK-NEXT: - - - 1.00 - vcvt.f32.u32 s1, s2
448 # CHECK-NEXT: - - - 1.00 - vcvt.f32.s32 s1, s2
449 # CHECK-NEXT: - - - 1.00 - vcvt.f64.u32 d1, s2
450 # CHECK-NEXT: - - - 1.00 - vcvt.f64.s32 d1, s2
451 # CHECK-NEXT: - - - 1.00 - vcvta.u32.f16 s1, s2
452 # CHECK-NEXT: - - - 1.00 - vcvta.s32.f16 s1, s2
453 # CHECK-NEXT: - - - 1.00 - vcvta.u32.f32 s1, s2
454 # CHECK-NEXT: - - - 1.00 - vcvta.s32.f32 s1, s2
455 # CHECK-NEXT: - - - 1.00 - vcvta.u32.f64 s1, d2
456 # CHECK-NEXT: - - - 1.00 - vcvta.s32.f64 s1, d2
457 # CHECK-NEXT: - - - 1.00 - vcvtm.u32.f16 s1, s2
458 # CHECK-NEXT: - - - 1.00 - vcvtm.s32.f16 s1, s2
459 # CHECK-NEXT: - - - 1.00 - vcvtm.u32.f32 s1, s2
460 # CHECK-NEXT: - - - 1.00 - vcvtm.s32.f32 s1, s2
461 # CHECK-NEXT: - - - 1.00 - vcvtm.u32.f64 s1, d2
462 # CHECK-NEXT: - - - 1.00 - vcvtm.s32.f64 s1, d2
463 # CHECK-NEXT: - - - 1.00 - vcvtn.u32.f16 s1, s2
464 # CHECK-NEXT: - - - 1.00 - vcvtn.s32.f16 s1, s2
465 # CHECK-NEXT: - - - 1.00 - vcvtn.u32.f32 s1, s2
466 # CHECK-NEXT: - - - 1.00 - vcvtn.s32.f32 s1, s2
467 # CHECK-NEXT: - - - 1.00 - vcvtn.u32.f64 s1, d2
468 # CHECK-NEXT: - - - 1.00 - vcvtn.s32.f64 s1, d2
469 # CHECK-NEXT: - - - 1.00 - vcvtp.u32.f16 s1, s2
470 # CHECK-NEXT: - - - 1.00 - vcvtp.s32.f16 s1, s2
471 # CHECK-NEXT: - - - 1.00 - vcvtp.u32.f32 s1, s2
472 # CHECK-NEXT: - - - 1.00 - vcvtp.s32.f32 s1, s2
473 # CHECK-NEXT: - - - 1.00 - vcvtp.u32.f64 s1, d2
474 # CHECK-NEXT: - - - 1.00 - vcvtp.s32.f64 s1, d2
475 # CHECK-NEXT: - - - 1.00 - vcvtb.f16.f32 s1, s2
476 # CHECK-NEXT: - - - 1.00 - vcvtb.f16.f64 s1, d2
477 # CHECK-NEXT: - - - 1.00 - vcvtb.f32.f16 s1, s2
478 # CHECK-NEXT: - - - 1.00 - vcvtb.f64.f16 d1, s2
479 # CHECK-NEXT: - - - 1.00 - vcvtr.u32.f16 s1, s2
480 # CHECK-NEXT: - - - 1.00 - vcvtr.s32.f16 s1, s2
481 # CHECK-NEXT: - - - 1.00 - vcvtr.u32.f32 s1, s2
482 # CHECK-NEXT: - - - 1.00 - vcvtr.s32.f32 s1, s2
483 # CHECK-NEXT: - - - 1.00 - vcvtr.u32.f64 s1, d2
484 # CHECK-NEXT: - - - 1.00 - vcvtr.s32.f64 s1, d2
485 # CHECK-NEXT: - - - 1.00 - vcvtt.f16.f32 s1, s2
486 # CHECK-NEXT: - - - 1.00 - vcvtt.f16.f64 s1, d2
487 # CHECK-NEXT: - - - 1.00 - vcvtt.f32.f16 s1, s2
488 # CHECK-NEXT: - - - 1.00 - vcvtt.f64.f16 d1, s2
489 # CHECK-NEXT: - - - 1.00 - vdiv.f16 s0, s2, s1
490 # CHECK-NEXT: - - - 1.00 - vdiv.f32 s0, s2, s1
491 # CHECK-NEXT: - - - 1.00 - vdiv.f64 d0, d2, d1
492 # CHECK-NEXT: - - - 1.00 - vfma.f16 s0, s2, s1
493 # CHECK-NEXT: - - - 1.00 - vfma.f32 s0, s2, s1
494 # CHECK-NEXT: - - - 1.00 - vfma.f64 d0, d2, d1
495 # CHECK-NEXT: - - - 1.00 - vfms.f16 s0, s2, s1
496 # CHECK-NEXT: - - - 1.00 - vfms.f32 s0, s2, s1
497 # CHECK-NEXT: - - - 1.00 - vfms.f64 d0, d2, d1
498 # CHECK-NEXT: - - - 1.00 - vfnma.f16 s0, s2, s1
499 # CHECK-NEXT: - - - 1.00 - vfnma.f32 s0, s2, s1
500 # CHECK-NEXT: - - - 1.00 - vfnma.f64 d0, d2, d1
501 # CHECK-NEXT: - - - 1.00 - vfnms.f16 s0, s2, s1
502 # CHECK-NEXT: - - - 1.00 - vfnms.f32 s0, s2, s1
503 # CHECK-NEXT: - - - 1.00 - vfnms.f64 d0, d2, d1
504 # CHECK-NEXT: - - - 1.00 - vins.f16 s0, s1
505 # CHECK-NEXT: - - - 1.00 - vmaxnm.f16 s0, s2, s1
506 # CHECK-NEXT: - - - 1.00 - vmaxnm.f32 s0, s2, s1
507 # CHECK-NEXT: - - - 1.00 - vmaxnm.f64 d0, d2, d1
508 # CHECK-NEXT: - - - 1.00 - vminnm.f16 s0, s2, s1
509 # CHECK-NEXT: - - - 1.00 - vminnm.f32 s0, s2, s1
510 # CHECK-NEXT: - - - 1.00 - vminnm.f64 d0, d2, d1
511 # CHECK-NEXT: - - - 1.00 - vmla.f16 s0, s2, s1
512 # CHECK-NEXT: - - - 1.00 - vmla.f32 s0, s2, s1
513 # CHECK-NEXT: - - - 1.00 - vmla.f64 d0, d2, d1
514 # CHECK-NEXT: - - - 1.00 - vmls.f16 s0, s2, s1
515 # CHECK-NEXT: - - - 1.00 - vmls.f32 s0, s2, s1
516 # CHECK-NEXT: - - - 1.00 - vmls.f64 d0, d2, d1
517 # CHECK-NEXT: - - - 1.00 - vmov.f16 s0, r1
518 # CHECK-NEXT: - - - 1.00 - vmov.f16 r0, s1
519 # CHECK-NEXT: - - - 1.00 - vmov s0, r1
520 # CHECK-NEXT: - - - 1.00 - vmov r0, s1
521 # CHECK-NEXT: - - - 1.00 - vmov d0, r1, r2
522 # CHECK-NEXT: - - - 1.00 - vmov r0, r1, d1
523 # CHECK-NEXT: - - - 1.00 - vmov s0, s1, r0, r1
524 # CHECK-NEXT: - - - 1.00 - vmov r0, r1, s0, s1
525 # CHECK-NEXT: - - - 1.00 - vmov.f16 s0, #1.000000e+00
526 # CHECK-NEXT: - - - 1.00 - vmov.f32 s0, #1.000000e+00
527 # CHECK-NEXT: - - - 1.00 - vmov.f64 d0, #1.000000e+00
528 # CHECK-NEXT: - - - 1.00 - vmov.f32 s0, s1
529 # CHECK-NEXT: - - - 1.00 - vmov.f64 d0, d1
530 # CHECK-NEXT: - - - 1.00 - vmovx.f16 s0, s1
531 # CHECK-NEXT: - - - 1.00 - vmul.f16 s0, s2, s1
532 # CHECK-NEXT: - - - 1.00 - vmul.f32 s0, s2, s1
533 # CHECK-NEXT: - - - 1.00 - vmul.f64 d0, d2, d1
534 # CHECK-NEXT: - - - 1.00 - vneg.f16 s0, s2
535 # CHECK-NEXT: - - - 1.00 - vneg.f32 s0, s2
536 # CHECK-NEXT: - - - 1.00 - vneg.f64 d0, d2
537 # CHECK-NEXT: - - - 1.00 - vnmla.f16 s0, s2, s1
538 # CHECK-NEXT: - - - 1.00 - vnmla.f32 s0, s2, s1
539 # CHECK-NEXT: - - - 1.00 - vnmla.f64 d0, d2, d1
540 # CHECK-NEXT: - - - 1.00 - vnmls.f16 s0, s2, s1
541 # CHECK-NEXT: - - - 1.00 - vnmls.f32 s0, s2, s1
542 # CHECK-NEXT: - - - 1.00 - vnmls.f64 d0, d2, d1
543 # CHECK-NEXT: - - - 1.00 - vnmul.f16 s0, s2, s1
544 # CHECK-NEXT: - - - 1.00 - vnmul.f32 s0, s2, s1
545 # CHECK-NEXT: - - - 1.00 - vnmul.f64 d0, d2, d1
546 # CHECK-NEXT: - - - 1.00 - vrinta.f16 s0, s2
547 # CHECK-NEXT: - - - 1.00 - vrinta.f32 s0, s2
548 # CHECK-NEXT: - - - 1.00 - vrinta.f64 d0, d2
549 # CHECK-NEXT: - - - 1.00 - vrintm.f16 s0, s2
550 # CHECK-NEXT: - - - 1.00 - vrintm.f32 s0, s2
551 # CHECK-NEXT: - - - 1.00 - vrintm.f64 d0, d2
552 # CHECK-NEXT: - - - 1.00 - vrintn.f16 s0, s2
553 # CHECK-NEXT: - - - 1.00 - vrintn.f32 s0, s2
554 # CHECK-NEXT: - - - 1.00 - vrintn.f64 d0, d2
555 # CHECK-NEXT: - - - 1.00 - vrintp.f16 s0, s2
556 # CHECK-NEXT: - - - 1.00 - vrintp.f32 s0, s2
557 # CHECK-NEXT: - - - 1.00 - vrintp.f64 d0, d2
558 # CHECK-NEXT: - - - 1.00 - vrintr.f16 s0, s2
559 # CHECK-NEXT: - - - 1.00 - vrintr.f32 s0, s2
560 # CHECK-NEXT: - - - 1.00 - vrintr.f64 d0, d2
561 # CHECK-NEXT: - - - 1.00 - vrintz.f16 s0, s2
562 # CHECK-NEXT: - - - 1.00 - vrintz.f32 s0, s2
563 # CHECK-NEXT: - - - 1.00 - vrintz.f64 d0, d2
564 # CHECK-NEXT: - - - 1.00 - vrintx.f16 s0, s2
565 # CHECK-NEXT: - - - 1.00 - vrintx.f32 s0, s2
566 # CHECK-NEXT: - - - 1.00 - vrintx.f64 d0, d2
567 # CHECK-NEXT: - - - 1.00 - vseleq.f16 s0, s2, s1
568 # CHECK-NEXT: - - - 1.00 - vseleq.f32 s0, s2, s1
569 # CHECK-NEXT: - - - 1.00 - vseleq.f64 d0, d2, d1
570 # CHECK-NEXT: - - - 1.00 - vsqrt.f16 s0, s2
571 # CHECK-NEXT: - - - 1.00 - vsqrt.f32 s0, s2
572 # CHECK-NEXT: - - - 1.00 - vsqrt.f64 d0, d2
573 # CHECK-NEXT: - - - 1.00 - vsub.f16 s0, s2, s1
574 # CHECK-NEXT: - - - 1.00 - vsub.f32 s0, s2, s1
575 # CHECK-NEXT: - - - 1.00 - vsub.f64 d0, d2, d1