1 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sve
< %s \
2 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
3 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme
< %s \
4 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
5 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
< %s
2>&1 \
6 // RUN
: | FileCheck
%s
--check-prefix
=CHECK-ERROR
7 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sve
< %s \
8 // RUN
: | llvm-objdump
--no-print-imm-hex
-d
--mattr
=+sve
- | FileCheck
%s
--check-prefix
=CHECK-INST
9 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sve
< %s \
10 // RUN
: | llvm-objdump
--no-print-imm-hex
-d
--mattr
=-sve
- | FileCheck
%s
--check-prefix
=CHECK-UNKNOWN
13 // CHECK-INST
: mov z0.
b, w0
14 // CHECK-ENCODING
: [0x00,0x38,0x20,0x05]
15 // CHECK-ERROR
: instruction requires
: sve
or sme
16 // CHECK-UNKNOWN
: 05203800 <unknown
>
19 // CHECK-INST
: mov z0.h
, w0
20 // CHECK-ENCODING
: [0x00,0x38,0x60,0x05]
21 // CHECK-ERROR
: instruction requires
: sve
or sme
22 // CHECK-UNKNOWN
: 05603800 <unknown
>
25 // CHECK-INST
: mov z0.s
, w0
26 // CHECK-ENCODING
: [0x00,0x38,0xa0,0x05]
27 // CHECK-ERROR
: instruction requires
: sve
or sme
28 // CHECK-UNKNOWN
: 05a03800
<unknown
>
31 // CHECK-INST
: mov z0.d
, x0
32 // CHECK-ENCODING
: [0x00,0x38,0xe0,0x05]
33 // CHECK-ERROR
: instruction requires
: sve
or sme
34 // CHECK-UNKNOWN
: 05e03800
<unknown
>
37 // CHECK-INST
: mov z31.h
, wsp
38 // CHECK-ENCODING
: [0xff,0x3b,0x60,0x05]
39 // CHECK-ERROR
: instruction requires
: sve
or sme
40 // CHECK-UNKNOWN
: 05603bff
<unknown
>
43 // CHECK-INST
: mov z31.s
, wsp
44 // CHECK-ENCODING
: [0xff,0x3b,0xa0,0x05]
45 // CHECK-ERROR
: instruction requires
: sve
or sme
46 // CHECK-UNKNOWN
: 05a03bff
<unknown
>
49 // CHECK-INST
: mov z31.d
, sp
50 // CHECK-ENCODING
: [0xff,0x3b,0xe0,0x05]
51 // CHECK-ERROR
: instruction requires
: sve
or sme
52 // CHECK-UNKNOWN
: 05e03bff
<unknown
>
55 // CHECK-INST
: mov z31.
b, wsp
56 // CHECK-ENCODING
: [0xff,0x3b,0x20,0x05]
57 // CHECK-ERROR
: instruction requires
: sve
or sme
58 // CHECK-UNKNOWN
: 05203bff
<unknown
>
61 // CHECK-INST
: mov z0.d
, z0.d
62 // CHECK-ENCODING
: [0x00,0x30,0x60,0x04]
63 // CHECK-ERROR
: instruction requires
: sve
or sme
64 // CHECK-UNKNOWN
: 04603000 <unknown
>
67 // CHECK-INST
: mov z31.d
, z0.d
68 // CHECK-ENCODING
: [0x1f,0x30,0x60,0x04]
69 // CHECK-ERROR
: instruction requires
: sve
or sme
70 // CHECK-UNKNOWN
: 0460301f
<unknown
>
73 // CHECK-INST
: mov z5.
b, #-128
74 // CHECK-ENCODING
: [0x05,0xd0,0x38,0x25]
75 // CHECK-ERROR
: instruction requires
: sve
or sme
76 // CHECK-UNKNOWN
: 2538d005
<unknown
>
79 // CHECK-INST
: mov z5.
b, #127
80 // CHECK-ENCODING
: [0xe5,0xcf,0x38,0x25]
81 // CHECK-ERROR
: instruction requires
: sve
or sme
82 // CHECK-UNKNOWN
: 2538cfe5
<unknown
>
85 // CHECK-INST
: mov z5.
b, #-1
86 // CHECK-ENCODING
: [0xe5,0xdf,0x38,0x25]
87 // CHECK-ERROR
: instruction requires
: sve
or sme
88 // CHECK-UNKNOWN
: 2538dfe5
<unknown
>
91 // CHECK-INST
: mov z21.h
, #-128
92 // CHECK-ENCODING
: [0x15,0xd0,0x78,0x25]
93 // CHECK-ERROR
: instruction requires
: sve
or sme
94 // CHECK-UNKNOWN
: 2578d015
<unknown
>
96 mov z21.h
, #-128, lsl #8
97 // CHECK-INST
: mov z21.h
, #-32768
98 // CHECK-ENCODING
: [0x15,0xf0,0x78,0x25]
99 // CHECK-ERROR
: instruction requires
: sve
or sme
100 // CHECK-UNKNOWN
: 2578f015
<unknown
>
103 // CHECK-INST
: mov z21.h
, #-32768
104 // CHECK-ENCODING
: [0x15,0xf0,0x78,0x25]
105 // CHECK-ERROR
: instruction requires
: sve
or sme
106 // CHECK-UNKNOWN
: 2578f015
<unknown
>
109 // CHECK-INST
: mov z21.h
, #127
110 // CHECK-ENCODING
: [0xf5,0xcf,0x78,0x25]
111 // CHECK-ERROR
: instruction requires
: sve
or sme
112 // CHECK-UNKNOWN
: 2578cff5
<unknown
>
114 mov z21.h
, #127, lsl #8
115 // CHECK-INST
: mov z21.h
, #32512
116 // CHECK-ENCODING
: [0xf5,0xef,0x78,0x25]
117 // CHECK-ERROR
: instruction requires
: sve
or sme
118 // CHECK-UNKNOWN
: 2578eff5
<unknown
>
121 // CHECK-INST
: mov z21.h
, #32512
122 // CHECK-ENCODING
: [0xf5,0xef,0x78,0x25]
123 // CHECK-ERROR
: instruction requires
: sve
or sme
124 // CHECK-UNKNOWN
: 2578eff5
<unknown
>
127 // CHECK-INST
: mov z21.s
, #-128
128 // CHECK-ENCODING
: [0x15,0xd0,0xb8,0x25]
129 // CHECK-ERROR
: instruction requires
: sve
or sme
130 // CHECK-UNKNOWN
: 25b8d015
<unknown
>
132 mov z21.s
, #-128, lsl #8
133 // CHECK-INST
: mov z21.s
, #-32768
134 // CHECK-ENCODING
: [0x15,0xf0,0xb8,0x25]
135 // CHECK-ERROR
: instruction requires
: sve
or sme
136 // CHECK-UNKNOWN
: 25b8f015
<unknown
>
139 // CHECK-INST
: mov z21.s
, #-32768
140 // CHECK-ENCODING
: [0x15,0xf0,0xb8,0x25]
141 // CHECK-ERROR
: instruction requires
: sve
or sme
142 // CHECK-UNKNOWN
: 25b8f015
<unknown
>
145 // CHECK-INST
: mov z21.s
, #127
146 // CHECK-ENCODING
: [0xf5,0xcf,0xb8,0x25]
147 // CHECK-ERROR
: instruction requires
: sve
or sme
148 // CHECK-UNKNOWN
: 25b8cff5
<unknown
>
150 mov z21.s
, #127, lsl #8
151 // CHECK-INST
: mov z21.s
, #32512
152 // CHECK-ENCODING
: [0xf5,0xef,0xb8,0x25]
153 // CHECK-ERROR
: instruction requires
: sve
or sme
154 // CHECK-UNKNOWN
: 25b8eff5
<unknown
>
157 // CHECK-INST
: mov z21.s
, #32512
158 // CHECK-ENCODING
: [0xf5,0xef,0xb8,0x25]
159 // CHECK-ERROR
: instruction requires
: sve
or sme
160 // CHECK-UNKNOWN
: 25b8eff5
<unknown
>
163 // CHECK-INST
: mov z21.d
, #-128
164 // CHECK-ENCODING
: [0x15,0xd0,0xf8,0x25]
165 // CHECK-ERROR
: instruction requires
: sve
or sme
166 // CHECK-UNKNOWN
: 25f8d015
<unknown
>
168 mov z21.d
, #-128, lsl #8
169 // CHECK-INST
: mov z21.d
, #-32768
170 // CHECK-ENCODING
: [0x15,0xf0,0xf8,0x25]
171 // CHECK-ERROR
: instruction requires
: sve
or sme
172 // CHECK-UNKNOWN
: 25f8f015
<unknown
>
175 // CHECK-INST
: mov z21.d
, #-32768
176 // CHECK-ENCODING
: [0x15,0xf0,0xf8,0x25]
177 // CHECK-ERROR
: instruction requires
: sve
or sme
178 // CHECK-UNKNOWN
: 25f8f015
<unknown
>
181 // CHECK-INST
: mov z21.d
, #127
182 // CHECK-ENCODING
: [0xf5,0xcf,0xf8,0x25]
183 // CHECK-ERROR
: instruction requires
: sve
or sme
184 // CHECK-UNKNOWN
: 25f8cff5
<unknown
>
186 mov z21.d
, #127, lsl #8
187 // CHECK-INST
: mov z21.d
, #32512
188 // CHECK-ENCODING
: [0xf5,0xef,0xf8,0x25]
189 // CHECK-ERROR
: instruction requires
: sve
or sme
190 // CHECK-UNKNOWN
: 25f8eff5
<unknown
>
193 // CHECK-INST
: mov z21.d
, #32512
194 // CHECK-ENCODING
: [0xf5,0xef,0xf8,0x25]
195 // CHECK-ERROR
: instruction requires
: sve
or sme
196 // CHECK-UNKNOWN
: 25f8eff5
<unknown
>
199 // CHECK-INST
: mov z0.h
, #-32768
200 // CHECK-ENCODING
: [0x00,0xf0,0x78,0x25]
201 // CHECK-ERROR
: instruction requires
: sve
or sme
202 // CHECK-UNKNOWN
: 2578f000
<unknown
>
205 // CHECK-INST
: mov z0.h
, #-256
206 // CHECK-ENCODING
: [0xe0,0xff,0x78,0x25]
207 // CHECK-ERROR
: instruction requires
: sve
or sme
208 // CHECK-UNKNOWN
: 2578ffe0
<unknown
>
211 // CHECK-INST
: mov z0.h
, #32512
212 // CHECK-ENCODING
: [0xe0,0xef,0x78,0x25]
213 // CHECK-ERROR
: instruction requires
: sve
or sme
214 // CHECK-UNKNOWN
: 2578efe0
<unknown
>
217 // CHECK-INST
: mov z0.h
, #32767
218 // CHECK-ENCODING
: [0xc0,0x05,0xc0,0x05]
219 // CHECK-ERROR
: instruction requires
: sve
or sme
220 // CHECK-UNKNOWN
: 05c005c0
<unknown
>
223 // CHECK-INST
: mov z0.s
, #0xffff7fff
224 // CHECK-ENCODING
: [0xc0,0x83,0xc0,0x05]
225 // CHECK-ERROR
: instruction requires
: sve
or sme
226 // CHECK-UNKNOWN
: 05c083c0
<unknown
>
229 // CHECK-INST
: mov z0.s
, #32768
230 // CHECK-ENCODING
: [0x00,0x88,0xc0,0x05]
231 // CHECK-ERROR
: instruction requires
: sve
or sme
232 // CHECK-UNKNOWN
: 05c08800
<unknown
>
235 // CHECK-INST
: mov z0.d
, #0xffffffffffff7fff
236 // CHECK-ENCODING
: [0xc0,0x87,0xc3,0x05]
237 // CHECK-ERROR
: instruction requires
: sve
or sme
238 // CHECK-UNKNOWN
: 05c387c0
<unknown
>
241 // CHECK-INST
: mov z0.d
, #32768
242 // CHECK-ENCODING
: [0x00,0x88,0xc3,0x05]
243 // CHECK-ERROR
: instruction requires
: sve
or sme
244 // CHECK-UNKNOWN
: 05c38800
<unknown
>
246 mov z0.d
, #0xe0000000000003ff
247 // CHECK-INST
: mov z0.d
, #0xe0000000000003ff
248 // CHECK-ENCODING
: [0x80,0x19,0xc2,0x05]
249 // CHECK-ERROR
: instruction requires
: sve
or sme
250 // CHECK-UNKNOWN
: 05c21980
<unknown
>
252 mov z5.
b, p0
/z
, #-128
253 // CHECK-INST
: mov z5.
b, p0
/z
, #-128
254 // CHECK-ENCODING
: [0x05,0x10,0x10,0x05]
255 // CHECK-ERROR
: instruction requires
: sve
or sme
256 // CHECK-UNKNOWN
: 05101005 <unknown
>
259 // CHECK-INST
: mov z5.
b, p0
/z
, #127
260 // CHECK-ENCODING
: [0xe5,0x0f,0x10,0x05]
261 // CHECK-ERROR
: instruction requires
: sve
or sme
262 // CHECK-UNKNOWN
: 05100fe5
<unknown
>
265 // CHECK-INST
: mov z5.
b, p0
/z
, #-1
266 // CHECK-ENCODING
: [0xe5,0x1f,0x10,0x05]
267 // CHECK-ERROR
: instruction requires
: sve
or sme
268 // CHECK-UNKNOWN
: 05101fe5
<unknown
>
270 mov z21.h
, p0
/z
, #-128
271 // CHECK-INST
: mov z21.h
, p0
/z
, #-128
272 // CHECK-ENCODING
: [0x15,0x10,0x50,0x05]
273 // CHECK-ERROR
: instruction requires
: sve
or sme
274 // CHECK-UNKNOWN
: 05501015 <unknown
>
276 mov z21.h
, p0
/z
, #-128, lsl #8
277 // CHECK-INST
: mov z21.h
, p0
/z
, #-32768
278 // CHECK-ENCODING
: [0x15,0x30,0x50,0x05]
279 // CHECK-ERROR
: instruction requires
: sve
or sme
280 // CHECK-UNKNOWN
: 05503015 <unknown
>
282 mov z21.h
, p0
/z
, #-32768
283 // CHECK-INST
: mov z21.h
, p0
/z
, #-32768
284 // CHECK-ENCODING
: [0x15,0x30,0x50,0x05]
285 // CHECK-ERROR
: instruction requires
: sve
or sme
286 // CHECK-UNKNOWN
: 05503015 <unknown
>
288 mov z21.h
, p0
/z
, #127
289 // CHECK-INST
: mov z21.h
, p0
/z
, #127
290 // CHECK-ENCODING
: [0xf5,0x0f,0x50,0x05]
291 // CHECK-ERROR
: instruction requires
: sve
or sme
292 // CHECK-UNKNOWN
: 05500ff5
<unknown
>
294 mov z21.h
, p0
/z
, #127, lsl #8
295 // CHECK-INST
: mov z21.h
, p0
/z
, #32512
296 // CHECK-ENCODING
: [0xf5,0x2f,0x50,0x05]
297 // CHECK-ERROR
: instruction requires
: sve
or sme
298 // CHECK-UNKNOWN
: 05502ff5
<unknown
>
300 mov z21.h
, p0
/z
, #32512
301 // CHECK-INST
: mov z21.h
, p0
/z
, #32512
302 // CHECK-ENCODING
: [0xf5,0x2f,0x50,0x05]
303 // CHECK-ERROR
: instruction requires
: sve
or sme
304 // CHECK-UNKNOWN
: 05502ff5
<unknown
>
306 mov z21.s
, p0
/z
, #-128
307 // CHECK-INST
: mov z21.s
, p0
/z
, #-128
308 // CHECK-ENCODING
: [0x15,0x10,0x90,0x05]
309 // CHECK-ERROR
: instruction requires
: sve
or sme
310 // CHECK-UNKNOWN
: 05901015 <unknown
>
312 mov z21.s
, p0
/z
, #-128, lsl #8
313 // CHECK-INST
: mov z21.s
, p0
/z
, #-32768
314 // CHECK-ENCODING
: [0x15,0x30,0x90,0x05]
315 // CHECK-ERROR
: instruction requires
: sve
or sme
316 // CHECK-UNKNOWN
: 05903015 <unknown
>
318 mov z21.s
, p0
/z
, #-32768
319 // CHECK-INST
: mov z21.s
, p0
/z
, #-32768
320 // CHECK-ENCODING
: [0x15,0x30,0x90,0x05]
321 // CHECK-ERROR
: instruction requires
: sve
or sme
322 // CHECK-UNKNOWN
: 05903015 <unknown
>
324 mov z21.s
, p0
/z
, #127
325 // CHECK-INST
: mov z21.s
, p0
/z
, #127
326 // CHECK-ENCODING
: [0xf5,0x0f,0x90,0x05]
327 // CHECK-ERROR
: instruction requires
: sve
or sme
328 // CHECK-UNKNOWN
: 05900ff5
<unknown
>
330 mov z21.s
, p0
/z
, #127, lsl #8
331 // CHECK-INST
: mov z21.s
, p0
/z
, #32512
332 // CHECK-ENCODING
: [0xf5,0x2f,0x90,0x05]
333 // CHECK-ERROR
: instruction requires
: sve
or sme
334 // CHECK-UNKNOWN
: 05902ff5
<unknown
>
336 mov z21.s
, p0
/z
, #32512
337 // CHECK-INST
: mov z21.s
, p0
/z
, #32512
338 // CHECK-ENCODING
: [0xf5,0x2f,0x90,0x05]
339 // CHECK-ERROR
: instruction requires
: sve
or sme
340 // CHECK-UNKNOWN
: 05902ff5
<unknown
>
342 mov z21.d
, p0
/z
, #-128
343 // CHECK-INST
: mov z21.d
, p0
/z
, #-128
344 // CHECK-ENCODING
: [0x15,0x10,0xd0,0x05]
345 // CHECK-ERROR
: instruction requires
: sve
or sme
346 // CHECK-UNKNOWN
: 05d01015
<unknown
>
348 mov z21.d
, p0
/z
, #-128, lsl #8
349 // CHECK-INST
: mov z21.d
, p0
/z
, #-32768
350 // CHECK-ENCODING
: [0x15,0x30,0xd0,0x05]
351 // CHECK-ERROR
: instruction requires
: sve
or sme
352 // CHECK-UNKNOWN
: 05d03015
<unknown
>
354 mov z21.d
, p0
/z
, #-32768
355 // CHECK-INST
: mov z21.d
, p0
/z
, #-32768
356 // CHECK-ENCODING
: [0x15,0x30,0xd0,0x05]
357 // CHECK-ERROR
: instruction requires
: sve
or sme
358 // CHECK-UNKNOWN
: 05d03015
<unknown
>
360 mov z21.d
, p0
/z
, #127
361 // CHECK-INST
: mov z21.d
, p0
/z
, #127
362 // CHECK-ENCODING
: [0xf5,0x0f,0xd0,0x05]
363 // CHECK-ERROR
: instruction requires
: sve
or sme
364 // CHECK-UNKNOWN
: 05d00ff5
<unknown
>
366 mov z21.d
, p0
/z
, #127, lsl #8
367 // CHECK-INST
: mov z21.d
, p0
/z
, #32512
368 // CHECK-ENCODING
: [0xf5,0x2f,0xd0,0x05]
369 // CHECK-ERROR
: instruction requires
: sve
or sme
370 // CHECK-UNKNOWN
: 05d02ff5
<unknown
>
372 mov z21.d
, p0
/z
, #32512
373 // CHECK-INST
: mov z21.d
, p0
/z
, #32512
374 // CHECK-ENCODING
: [0xf5,0x2f,0xd0,0x05]
375 // CHECK-ERROR
: instruction requires
: sve
or sme
376 // CHECK-UNKNOWN
: 05d02ff5
<unknown
>
379 // --------------------------------------------------------------------------//
380 // Tests where the negative immediate is in bounds when interpreted
381 // as the element type.
384 // CHECK-INST
: mov z0.
b, #127
385 // CHECK-ENCODING
: [0xe0,0xcf,0x38,0x25]
386 // CHECK-ERROR
: instruction requires
: sve
or sme
387 // CHECK-UNKNOWN
: 2538cfe0
<unknown
>
389 mov z0.h
, #-129, lsl #8
390 // CHECK-INST
: mov z0.h
, #32512
391 // CHECK-ENCODING
: [0xe0,0xef,0x78,0x25]
392 // CHECK-ERROR
: instruction requires
: sve
or sme
393 // CHECK-UNKNOWN
: 2578efe0
<unknown
>
396 // CHECK-INST
: mov z5.h
, #-6
397 // CHECK-ENCODING
: [0x45,0xdf,0x78,0x25]
398 // CHECK-ERROR
: instruction requires
: sve
or sme
399 // CHECK-UNKNOWN
: 2578df45
<unknown
>
401 mov z5.s
, #0xfffffffa
402 // CHECK-INST
: mov z5.s
, #-6
403 // CHECK-ENCODING
: [0x45,0xdf,0xb8,0x25]
404 // CHECK-ERROR
: instruction requires
: sve
or sme
405 // CHECK-UNKNOWN
: 25b8df45
<unknown
>
407 mov z5.d
, #0xfffffffffffffffa
408 // CHECK-INST
: mov z5.d
, #-6
409 // CHECK-ENCODING
: [0x45,0xdf,0xf8,0x25]
410 // CHECK-ERROR
: instruction requires
: sve
or sme
411 // CHECK-UNKNOWN
: 25f8df45
<unknown
>
413 mov z0.
b, p0
/z
, #-129
414 // CHECK-INST
: mov z0.
b, p0
/z
, #127
415 // CHECK-ENCODING
: [0xe0,0x0f,0x10,0x05]
416 // CHECK-ERROR
: instruction requires
: sve
or sme
417 // CHECK-UNKNOWN
: 05100fe0
<unknown
>
419 mov z0.h
, p0
/z
, #-33024
420 // CHECK-INST
: mov z0.h
, p0
/z
, #32512
421 // CHECK-ENCODING
: [0xe0,0x2f,0x50,0x05]
422 // CHECK-ERROR
: instruction requires
: sve
or sme
423 // CHECK-UNKNOWN
: 05502fe0
<unknown
>
425 mov z0.h
, p0
/z
, #-129, lsl #8
426 // CHECK-INST
: mov z0.h
, p0
/z
, #32512
427 // CHECK-ENCODING
: [0xe0,0x2f,0x50,0x05]
428 // CHECK-ERROR
: instruction requires
: sve
or sme
429 // CHECK-UNKNOWN
: 05502fe0
<unknown
>
431 // --------------------------------------------------------------------------//
432 // Tests for merging variant
(/m
) and testing the range of predicate
(> 7)
435 mov z5.
b, p15
/m
, #-128
436 // CHECK-INST
: mov z5.
b, p15
/m
, #-128
437 // CHECK-ENCODING
: [0x05,0x50,0x1f,0x05]
438 // CHECK-ERROR
: instruction requires
: sve
or sme
439 // CHECK-UNKNOWN
: 051f5005
<unknown
>
441 mov z21.h
, p15
/m
, #-128
442 // CHECK-INST
: mov z21.h
, p15
/m
, #-128
443 // CHECK-ENCODING
: [0x15,0x50,0x5f,0x05]
444 // CHECK-ERROR
: instruction requires
: sve
or sme
445 // CHECK-UNKNOWN
: 055f5015
<unknown
>
447 mov z21.h
, p15
/m
, #-128, lsl #8
448 // CHECK-INST
: mov z21.h
, p15
/m
, #-32768
449 // CHECK-ENCODING
: [0x15,0x70,0x5f,0x05]
450 // CHECK-ERROR
: instruction requires
: sve
or sme
451 // CHECK-UNKNOWN
: 055f7015
<unknown
>
453 mov z21.s
, p15
/m
, #-128
454 // CHECK-INST
: mov z21.s
, p15
/m
, #-128
455 // CHECK-ENCODING
: [0x15,0x50,0x9f,0x05]
456 // CHECK-ERROR
: instruction requires
: sve
or sme
457 // CHECK-UNKNOWN
: 059f5015
<unknown
>
459 mov z21.s
, p15
/m
, #-128, lsl #8
460 // CHECK-INST
: mov z21.s
, p15
/m
, #-32768
461 // CHECK-ENCODING
: [0x15,0x70,0x9f,0x05]
462 // CHECK-ERROR
: instruction requires
: sve
or sme
463 // CHECK-UNKNOWN
: 059f7015
<unknown
>
465 mov z21.d
, p15
/m
, #-128
466 // CHECK-INST
: mov z21.d
, p15
/m
, #-128
467 // CHECK-ENCODING
: [0x15,0x50,0xdf,0x05]
468 // CHECK-ERROR
: instruction requires
: sve
or sme
469 // CHECK-UNKNOWN
: 05df5015
<unknown
>
471 mov z21.d
, p15
/m
, #-128, lsl #8
472 // CHECK-INST
: mov z21.d
, p15
/m
, #-32768
473 // CHECK-ENCODING
: [0x15,0x70,0xdf,0x05]
474 // CHECK-ERROR
: instruction requires
: sve
or sme
475 // CHECK-UNKNOWN
: 05df7015
<unknown
>
477 // --------------------------------------------------------------------------//
478 // Tests for indexed variant
481 // CHECK-INST
: mov z0.
b, b0
482 // CHECK-ENCODING
: [0x00,0x20,0x21,0x05]
483 // CHECK-ERROR
: instruction requires
: sve
or sme
484 // CHECK-UNKNOWN
: 05212000 <unknown
>
487 // CHECK-INST
: mov z0.h
, h0
488 // CHECK-ENCODING
: [0x00,0x20,0x22,0x05]
489 // CHECK-ERROR
: instruction requires
: sve
or sme
490 // CHECK-UNKNOWN
: 05222000 <unknown
>
493 // CHECK-INST
: mov z0.s
, s0
494 // CHECK-ENCODING
: [0x00,0x20,0x24,0x05]
495 // CHECK-ERROR
: instruction requires
: sve
or sme
496 // CHECK-UNKNOWN
: 05242000 <unknown
>
499 // CHECK-INST
: mov z0.d
, d0
500 // CHECK-ENCODING
: [0x00,0x20,0x28,0x05]
501 // CHECK-ERROR
: instruction requires
: sve
or sme
502 // CHECK-UNKNOWN
: 05282000 <unknown
>
505 // CHECK-INST
: mov z0.q
, q0
506 // CHECK-ENCODING
: [0x00,0x20,0x30,0x05]
507 // CHECK-ERROR
: instruction requires
: sve
or sme
508 // CHECK-UNKNOWN
: 05302000 <unknown
>
511 // CHECK-INST
: mov z0.
b, b0
512 // CHECK-ENCODING
: [0x00,0x20,0x21,0x05]
513 // CHECK-ERROR
: instruction requires
: sve
or sme
514 // CHECK-UNKNOWN
: 05212000 <unknown
>
517 // CHECK-INST
: mov z0.h
, h0
518 // CHECK-ENCODING
: [0x00,0x20,0x22,0x05]
519 // CHECK-ERROR
: instruction requires
: sve
or sme
520 // CHECK-UNKNOWN
: 05222000 <unknown
>
523 // CHECK-INST
: mov z0.s
, s0
524 // CHECK-ENCODING
: [0x00,0x20,0x24,0x05]
525 // CHECK-ERROR
: instruction requires
: sve
or sme
526 // CHECK-UNKNOWN
: 05242000 <unknown
>
529 // CHECK-INST
: mov z0.d
, d0
530 // CHECK-ENCODING
: [0x00,0x20,0x28,0x05]
531 // CHECK-ERROR
: instruction requires
: sve
or sme
532 // CHECK-UNKNOWN
: 05282000 <unknown
>
535 // CHECK-INST
: mov z0.q
, q0
536 // CHECK-ENCODING
: [0x00,0x20,0x30,0x05]
537 // CHECK-ERROR
: instruction requires
: sve
or sme
538 // CHECK-UNKNOWN
: 05302000 <unknown
>
541 // CHECK-INST
: mov z31.
b, z31.
b[63]
542 // CHECK-ENCODING
: [0xff,0x23,0xff,0x05]
543 // CHECK-ERROR
: instruction requires
: sve
or sme
544 // CHECK-UNKNOWN
: 05ff23ff
<unknown
>
547 // CHECK-INST
: mov z31.h
, z31.h
[31]
548 // CHECK-ENCODING
: [0xff,0x23,0xfe,0x05]
549 // CHECK-ERROR
: instruction requires
: sve
or sme
550 // CHECK-UNKNOWN
: 05fe23ff
<unknown
>
553 // CHECK-INST
: mov z31.s
, z31.s
[15]
554 // CHECK-ENCODING
: [0xff,0x23,0xfc,0x05]
555 // CHECK-ERROR
: instruction requires
: sve
or sme
556 // CHECK-UNKNOWN
: 05fc23ff
<unknown
>
559 // CHECK-INST
: mov z31.d
, z31.d
[7]
560 // CHECK-ENCODING
: [0xff,0x23,0xf8,0x05]
561 // CHECK-ERROR
: instruction requires
: sve
or sme
562 // CHECK-UNKNOWN
: 05f823ff
<unknown
>
565 // CHECK-INST
: mov z5.q
, z17.q
[3]
566 // CHECK-ENCODING
: [0x25,0x22,0xf0,0x05]
567 // CHECK-ERROR
: instruction requires
: sve
or sme
568 // CHECK-UNKNOWN
: 05f02225
<unknown
>
571 // --------------------------------------------------------------------------//
572 // Tests for predicated copy of SIMD
/FP registers.
575 // CHECK-INST
: mov z0.
b, p0
/m
, w0
576 // CHECK-ENCODING
: [0x00,0xa0,0x28,0x05]
577 // CHECK-ERROR
: instruction requires
: sve
or sme
578 // CHECK-UNKNOWN
: 0528a000
<unknown
>
581 // CHECK-INST
: mov z0.h
, p0
/m
, w0
582 // CHECK-ENCODING
: [0x00,0xa0,0x68,0x05]
583 // CHECK-ERROR
: instruction requires
: sve
or sme
584 // CHECK-UNKNOWN
: 0568a000
<unknown
>
587 // CHECK-INST
: mov z0.s
, p0
/m
, w0
588 // CHECK-ENCODING
: [0x00,0xa0,0xa8,0x05]
589 // CHECK-ERROR
: instruction requires
: sve
or sme
590 // CHECK-UNKNOWN
: 05a8a000
<unknown
>
593 // CHECK-INST
: mov z0.d
, p0
/m
, x0
594 // CHECK-ENCODING
: [0x00,0xa0,0xe8,0x05]
595 // CHECK-ERROR
: instruction requires
: sve
or sme
596 // CHECK-UNKNOWN
: 05e8a000
<unknown
>
599 // CHECK-INST
: mov z31.
b, p7
/m
, wsp
600 // CHECK-ENCODING
: [0xff,0xbf,0x28,0x05]
601 // CHECK-ERROR
: instruction requires
: sve
or sme
602 // CHECK-UNKNOWN
: 0528bfff
<unknown
>
605 // CHECK-INST
: mov z31.h
, p7
/m
, wsp
606 // CHECK-ENCODING
: [0xff,0xbf,0x68,0x05]
607 // CHECK-ERROR
: instruction requires
: sve
or sme
608 // CHECK-UNKNOWN
: 0568bfff
<unknown
>
611 // CHECK-INST
: mov z31.s
, p7
/m
, wsp
612 // CHECK-ENCODING
: [0xff,0xbf,0xa8,0x05]
613 // CHECK-ERROR
: instruction requires
: sve
or sme
614 // CHECK-UNKNOWN
: 05a8bfff
<unknown
>
617 // CHECK-INST
: mov z31.d
, p7
/m
, sp
618 // CHECK-ENCODING
: [0xff,0xbf,0xe8,0x05]
619 // CHECK-ERROR
: instruction requires
: sve
or sme
620 // CHECK-UNKNOWN
: 05e8bfff
<unknown
>
623 // CHECK-INST
: mov z0.
b, p0
/m
, b0
624 // CHECK-ENCODING
: [0x00,0x80,0x20,0x05]
625 // CHECK-ERROR
: instruction requires
: sve
or sme
626 // CHECK-UNKNOWN
: 05208000 <unknown
>
629 // CHECK-INST
: mov z31.
b, p7
/m
, b31
630 // CHECK-ENCODING
: [0xff,0x9f,0x20,0x05]
631 // CHECK-ERROR
: instruction requires
: sve
or sme
632 // CHECK-UNKNOWN
: 05209fff
<unknown
>
635 // CHECK-INST
: mov z0.h
, p0
/m
, h0
636 // CHECK-ENCODING
: [0x00,0x80,0x60,0x05]
637 // CHECK-ERROR
: instruction requires
: sve
or sme
638 // CHECK-UNKNOWN
: 05608000 <unknown
>
641 // CHECK-INST
: mov z31.h
, p7
/m
, h31
642 // CHECK-ENCODING
: [0xff,0x9f,0x60,0x05]
643 // CHECK-ERROR
: instruction requires
: sve
or sme
644 // CHECK-UNKNOWN
: 05609fff
<unknown
>
647 // CHECK-INST
: mov z0.s
, p0
/m
, s0
648 // CHECK-ENCODING
: [0x00,0x80,0xa0,0x05]
649 // CHECK-ERROR
: instruction requires
: sve
or sme
650 // CHECK-UNKNOWN
: 05a08000
<unknown
>
653 // CHECK-INST
: mov z31.s
, p7
/m
, s31
654 // CHECK-ENCODING
: [0xff,0x9f,0xa0,0x05]
655 // CHECK-ERROR
: instruction requires
: sve
or sme
656 // CHECK-UNKNOWN
: 05a09fff
<unknown
>
659 // CHECK-INST
: mov z0.d
, p0
/m
, d0
660 // CHECK-ENCODING
: [0x00,0x80,0xe0,0x05]
661 // CHECK-ERROR
: instruction requires
: sve
or sme
662 // CHECK-UNKNOWN
: 05e08000
<unknown
>
665 // CHECK-INST
: mov z31.d
, p7
/m
, d31
666 // CHECK-ENCODING
: [0xff,0x9f,0xe0,0x05]
667 // CHECK-ERROR
: instruction requires
: sve
or sme
668 // CHECK-UNKNOWN
: 05e09fff
<unknown
>
671 // CHECK-INST
: mov p0.
b, p0
/m
, p0.
b
672 // CHECK-ENCODING
: [0x10,0x42,0x00,0x25]
673 // CHECK-ERROR
: instruction requires
: sve
or sme
674 // CHECK-UNKNOWN
: 25004210 <unknown
>
676 mov p15.
b, p15
/m
, p15.
b
677 // CHECK-INST
: mov p15.
b, p15
/m
, p15.
b
678 // CHECK-ENCODING
: [0xff,0x7f,0x0f,0x25]
679 // CHECK-ERROR
: instruction requires
: sve
or sme
680 // CHECK-UNKNOWN
: 250f7fff
<unknown
>
682 mov z31.
b, p15
/m
, z31.
b
683 // CHECK-INST
: mov z31.
b, p15
/m
, z31.
b
684 // CHECK-ENCODING
: [0xff,0xff,0x3f,0x05]
685 // CHECK-ERROR
: instruction requires
: sve
or sme
686 // CHECK-UNKNOWN
: 053fffff
<unknown
>
688 mov z31.h
, p15
/m
, z31.h
689 // CHECK-INST
: mov z31.h
, p15
/m
, z31.h
690 // CHECK-ENCODING
: [0xff,0xff,0x7f,0x05]
691 // CHECK-ERROR
: instruction requires
: sve
or sme
692 // CHECK-UNKNOWN
: 057fffff
<unknown
>
694 mov z31.s
, p15
/m
, z31.s
695 // CHECK-INST
: mov z31.s
, p15
/m
, z31.s
696 // CHECK-ENCODING
: [0xff,0xff,0xbf,0x05]
697 // CHECK-ERROR
: instruction requires
: sve
or sme
698 // CHECK-UNKNOWN
: 05bfffff
<unknown
>
700 mov z31.d
, p15
/m
, z31.d
701 // CHECK-INST
: mov z31.d
, p15
/m
, z31.d
702 // CHECK-ENCODING
: [0xff,0xff,0xff,0x05]
703 // CHECK-ERROR
: instruction requires
: sve
or sme
704 // CHECK-UNKNOWN
: 05ffffff
<unknown
>
707 // CHECK-INST
: mov p0.
b, p0.
b
708 // CHECK-ENCODING
: [0x00,0x40,0x80,0x25]
709 // CHECK-ERROR
: instruction requires
: sve
or sme
710 // CHECK-UNKNOWN
: 25804000 <unknown
>
713 // CHECK-INST
: mov p15.
b, p15.
b
714 // CHECK-ENCODING
: [0xef,0x7d,0x8f,0x25]
715 // CHECK-ERROR
: instruction requires
: sve
or sme
716 // CHECK-UNKNOWN
: 258f7def
<unknown
>
719 // CHECK-INST
: mov p0.
b, p0
/z
, p0.
b
720 // CHECK-ENCODING
: [0x00,0x40,0x00,0x25]
721 // CHECK-ERROR
: instruction requires
: sve
or sme
722 // CHECK-UNKNOWN
: 25004000 <unknown
>
724 mov p15.
b, p15
/z
, p15.
b
725 // CHECK-INST
: mov p15.
b, p15
/z
, p15.
b
726 // CHECK-ENCODING
: [0xef,0x7d,0x0f,0x25]
727 // CHECK-ERROR
: instruction requires
: sve
or sme
728 // CHECK-UNKNOWN
: 250f7def
<unknown
>
731 // --------------------------------------------------------------------------//
732 // Test compatibility with MOVPRFX instruction.
734 movprfx z31.d
, p7
/z
, z6.d
735 // CHECK-INST
: movprfx z31.d
, p7
/z
, z6.d
736 // CHECK-ENCODING
: [0xdf,0x3c,0xd0,0x04]
737 // CHECK-ERROR
: instruction requires
: sve
or sme
738 // CHECK-UNKNOWN
: 04d03cdf
<unknown
>
741 // CHECK-INST
: mov z31.d
, p7
/m
, sp
742 // CHECK-ENCODING
: [0xff,0xbf,0xe8,0x05]
743 // CHECK-ERROR
: instruction requires
: sve
or sme
744 // CHECK-UNKNOWN
: 05e8bfff
<unknown
>
747 // CHECK-INST
: movprfx z31
, z6
748 // CHECK-ENCODING
: [0xdf,0xbc,0x20,0x04]
749 // CHECK-ERROR
: instruction requires
: sve
or sme
750 // CHECK-UNKNOWN
: 0420bcdf
<unknown
>
753 // CHECK-INST
: mov z31.d
, p7
/m
, sp
754 // CHECK-ENCODING
: [0xff,0xbf,0xe8,0x05]
755 // CHECK-ERROR
: instruction requires
: sve
or sme
756 // CHECK-UNKNOWN
: 05e8bfff
<unknown
>
758 movprfx z21.d
, p7
/z
, z28.d
759 // CHECK-INST
: movprfx z21.d
, p7
/z
, z28.d
760 // CHECK-ENCODING
: [0x95,0x3f,0xd0,0x04]
761 // CHECK-ERROR
: instruction requires
: sve
or sme
762 // CHECK-UNKNOWN
: 04d03f95
<unknown
>
764 mov z21.d
, p7
/m
, #-128, lsl #8
765 // CHECK-INST
: mov z21.d
, p7
/m
, #-32768
766 // CHECK-ENCODING
: [0x15,0x70,0xd7,0x05]
767 // CHECK-ERROR
: instruction requires
: sve
or sme
768 // CHECK-UNKNOWN
: 05d77015
<unknown
>
771 // CHECK-INST
: movprfx z21
, z28
772 // CHECK-ENCODING
: [0x95,0xbf,0x20,0x04]
773 // CHECK-ERROR
: instruction requires
: sve
or sme
774 // CHECK-UNKNOWN
: 0420bf95
<unknown
>
776 mov z21.d
, p15
/m
, #-128, lsl #8
777 // CHECK-INST
: mov z21.d
, p15
/m
, #-32768
778 // CHECK-ENCODING
: [0x15,0x70,0xdf,0x05]
779 // CHECK-ERROR
: instruction requires
: sve
or sme
780 // CHECK-UNKNOWN
: 05df7015
<unknown
>
782 movprfx z4.d
, p7
/z
, z6.d
783 // CHECK-INST
: movprfx z4.d
, p7
/z
, z6.d
784 // CHECK-ENCODING
: [0xc4,0x3c,0xd0,0x04]
785 // CHECK-ERROR
: instruction requires
: sve
or sme
786 // CHECK-UNKNOWN
: 04d03cc4
<unknown
>
789 // CHECK-INST
: mov z4.d
, p7
/m
, d31
790 // CHECK-ENCODING
: [0xe4,0x9f,0xe0,0x05]
791 // CHECK-ERROR
: instruction requires
: sve
or sme
792 // CHECK-UNKNOWN
: 05e09fe4
<unknown
>
795 // CHECK-INST
: movprfx z4
, z6
796 // CHECK-ENCODING
: [0xc4,0xbc,0x20,0x04]
797 // CHECK-ERROR
: instruction requires
: sve
or sme
798 // CHECK-UNKNOWN
: 0420bcc4
<unknown
>
801 // CHECK-INST
: mov z4.d
, p7
/m
, d31
802 // CHECK-ENCODING
: [0xe4,0x9f,0xe0,0x05]
803 // CHECK-ERROR
: instruction requires
: sve
or sme
804 // CHECK-UNKNOWN
: 05e09fe4
<unknown
>