1 // RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon < %s 2> %t
2 // RUN: FileCheck --check-prefix=CHECK-ERROR --check-prefix=CHECK-AARCH64-ERROR < %t %s
4 // RUN: not llvm-mc -triple arm64-none-linux-gnu -mattr=+neon < %s 2> %t
5 // RUN: FileCheck --check-prefix=CHECK-ERROR --check-prefix=CHECK-ARM64-ERROR < %t %s
7 //------------------------------------------------------------------------------
8 // Vector Integer Add/sub
9 //------------------------------------------------------------------------------
11 // Mismatched vector types
12 add v0.16b, v1.8b, v2.8b
13 sub v0.2d, v1.2d, v2.2s
15 // CHECK-ERROR: error: invalid operand for instruction
16 // CHECK-ERROR: add v0.16b, v1.8b, v2.8b
18 // CHECK-ERROR: error: invalid operand for instruction
19 // CHECK-ERROR: sub v0.2d, v1.2d, v2.2s
22 //------------------------------------------------------------------------------
23 // Vector Floating-Point Add/sub
24 //------------------------------------------------------------------------------
26 // Mismatched and invalid vector types
27 fadd v0.2d, v1.2s, v2.2s
28 fsub v0.4s, v1.2s, v2.4s
29 fsub v0.8b, v1.8b, v2.8b
31 // CHECK-ERROR: error: invalid operand for instruction
32 // CHECK-ERROR: fadd v0.2d, v1.2s, v2.2s
34 // CHECK-ERROR: error: invalid operand for instruction
35 // CHECK-ERROR: fsub v0.4s, v1.2s, v2.4s
37 // CHECK-ERROR: error: invalid operand for instruction
38 // CHECK-ERROR: fsub v0.8b, v1.8b, v2.8b
41 //----------------------------------------------------------------------
43 //----------------------------------------------------------------------
45 // Mismatched and invalid vector types
46 mul v0.16b, v1.8b, v2.8b
47 mul v0.2d, v1.2d, v2.2d
49 // CHECK-ERROR: error: invalid operand for instruction
50 // CHECK-ERROR: mul v0.16b, v1.8b, v2.8b
52 // CHECK-ERROR: error: invalid operand for instruction
53 // CHECK-ERROR: mul v0.2d, v1.2d, v2.2d
56 //----------------------------------------------------------------------
57 // Vector Floating-Point Mul/Div
58 //----------------------------------------------------------------------
59 // Mismatched vector types
60 fmul v0.16b, v1.8b, v2.8b
61 fdiv v0.2s, v1.2d, v2.2d
63 // CHECK-ERROR: error: invalid operand for instruction
64 // CHECK-ERROR: fmul v0.16b, v1.8b, v2.8b
66 // CHECK-ERROR: error: invalid operand for instruction
67 // CHECK-ERROR: fdiv v0.2s, v1.2d, v2.2d
70 //----------------------------------------------------------------------
71 // Vector And Orr Eor Bsl Bit Bif, Orn, Bic,
72 //----------------------------------------------------------------------
73 // Mismatched and invalid vector types
74 and v0.8b, v1.16b, v2.8b
75 orr v0.4h, v1.4h, v2.4h
76 eor v0.2s, v1.2s, v2.2s
77 bsl v0.8b, v1.16b, v2.8b
78 bsl v0.2s, v1.2s, v2.2s
79 bit v0.2d, v1.2d, v2.2d
80 bif v0.4h, v1.4h, v2.4h
81 orn v0.8b, v1.16b, v2.16b
82 bic v0.2d, v1.2d, v2.2d
84 // CHECK-ERROR: error: invalid operand for instruction
85 // CHECK-ERROR: and v0.8b, v1.16b, v2.8b
87 // CHECK-ERROR: error: invalid operand for instruction
88 // CHECK-ERROR: orr v0.4h, v1.4h, v2.4h
90 // CHECK-ERROR: error: invalid operand for instruction
91 // CHECK-ERROR: eor v0.2s, v1.2s, v2.2s
93 // CHECK-ERROR: error: invalid operand for instruction
94 // CHECK-ERROR: bsl v0.8b, v1.16b, v2.8b
96 // CHECK-ERROR: error: invalid operand for instruction
97 // CHECK-ERROR: bsl v0.2s, v1.2s, v2.2s
99 // CHECK-ERROR: error: invalid operand for instruction
100 // CHECK-ERROR: bit v0.2d, v1.2d, v2.2d
102 // CHECK-ERROR: error: invalid operand for instruction
103 // CHECK-ERROR: bif v0.4h, v1.4h, v2.4h
105 // CHECK-ERROR: error: invalid operand for instruction
106 // CHECK-ERROR: orn v0.8b, v1.16b, v2.16b
108 // CHECK-ERROR: error: invalid operand for instruction
109 // CHECK-ERROR: bic v0.2d, v1.2d, v2.2d
112 //----------------------------------------------------------------------
113 // Vector Integer Multiply-accumulate and Multiply-subtract
114 //----------------------------------------------------------------------
116 // Mismatched and invalid vector types
117 mla v0.16b, v1.8b, v2.8b
118 mls v0.2d, v1.2d, v2.2d
120 // CHECK-ERROR: error: invalid operand for instruction
121 // CHECK-ERROR: mla v0.16b, v1.8b, v2.8b
123 // CHECK-ERROR: error: invalid operand for instruction
124 // CHECK-ERROR: mls v0.2d, v1.2d, v2.2d
127 //----------------------------------------------------------------------
128 // Vector Floating-Point Multiply-accumulate and Multiply-subtract
129 //----------------------------------------------------------------------
130 // Mismatched vector types
131 fmla v0.2s, v1.2d, v2.2d
132 fmls v0.16b, v1.8b, v2.8b
134 // CHECK-ERROR: error: invalid operand for instruction
135 // CHECK-ERROR: fmla v0.2s, v1.2d, v2.2d
137 // CHECK-ERROR: error: invalid operand for instruction
138 // CHECK-ERROR: fmls v0.16b, v1.8b, v2.8b
142 //----------------------------------------------------------------------
143 // Vector Move Immediate Shifted
144 // Vector Move Inverted Immediate Shifted
145 // Vector Bitwise Bit Clear (AND NOT) - immediate
146 // Vector Bitwise OR - immedidate
147 //----------------------------------------------------------------------
148 // out of range immediate (0 to 0xff)
151 // out of range shift (0, 8, 16, 24 and 0, 8)
152 bic v15.4h, #1, lsl #7
153 orr v31.2s, #1, lsl #25
154 movi v5.4h, #10, lsl #16
155 // invalid vector type (2s, 4s, 4h, 8h)
156 movi v5.8b, #1, lsl #8
158 // CHECK-ERROR: error: invalid operand for instruction
159 // CHECK-ERROR: movi v0.2s, #-1
161 // CHECK-ERROR: error: invalid operand for instruction
162 // CHECK-ERROR: mvni v1.4s, #256
164 // CHECK-ERROR: error: invalid operand for instruction
165 // CHECK-ERROR: bic v15.4h, #1, lsl #7
167 // CHECK-ERROR: error: invalid operand for instruction
168 // CHECK-ERROR: orr v31.2s, #1, lsl #25
170 // CHECK-ERROR: error: invalid operand for instruction
171 // CHECK-ERROR: movi v5.4h, #10, lsl #16
173 // CHECK-ERROR: error: invalid operand for instruction
174 // CHECK-ERROR: movi v5.8b, #1, lsl #8
176 //----------------------------------------------------------------------
177 // Vector Move Immediate Masked
178 // Vector Move Inverted Immediate Masked
179 //----------------------------------------------------------------------
180 // out of range immediate (0 to 0xff)
181 movi v0.2s, #-1, msl #8
182 mvni v7.4s, #256, msl #16
183 // out of range shift (8, 16)
184 movi v3.2s, #1, msl #0
185 mvni v17.4s, #255, msl #32
186 // invalid vector type (2s, 4s)
187 movi v5.4h, #31, msl #8
189 // CHECK-ERROR: error: invalid operand for instruction
190 // CHECK-ERROR: movi v0.2s, #-1, msl #8
192 // CHECK-ERROR: error: invalid operand for instruction
193 // CHECK-ERROR: mvni v7.4s, #256, msl #16
195 // CHECK-ERROR: error: invalid operand for instruction
196 // CHECK-ERROR: movi v3.2s, #1, msl #0
198 // CHECK-ERROR: error: invalid operand for instruction
199 // CHECK-ERROR: mvni v17.4s, #255, msl #32
201 // CHECK-ERROR: error: invalid operand for instruction
202 // CHECK-ERROR: movi v5.4h, #31, msl #8
205 //----------------------------------------------------------------------
206 // Vector Immediate - per byte
207 //----------------------------------------------------------------------
208 // out of range immediate (0 to 0xff)
212 // CHECK-ERROR: error: invalid operand for instruction
213 // CHECK-ERROR: movi v0.8b, #-1
215 // CHECK-ERROR: error: invalid operand for instruction
216 // CHECK-ERROR: movi v1.16b, #256
219 //----------------------------------------------------------------------
220 // Scalar Floating-point Reciprocal Estimate
221 //----------------------------------------------------------------------
226 // CHECK-ERROR: error: invalid operand for instruction
227 // CHECK-ERROR: frecpe s19, h14
229 // CHECK-ERROR: error: invalid operand for instruction
230 // CHECK-ERROR: frecpe d13, s13
233 //----------------------------------------------------------------------
234 // Scalar Floating-point Reciprocal Exponent
235 //----------------------------------------------------------------------
240 // CHECK-ERROR: error: invalid operand for instruction
241 // CHECK-ERROR: frecpx s18, h10
243 // CHECK-ERROR: error: invalid operand for instruction
244 // CHECK-ERROR: frecpx d16, s19
247 //----------------------------------------------------------------------
248 // Scalar Floating-point Reciprocal Square Root Estimate
249 //----------------------------------------------------------------------
254 // CHECK-ERROR: error: invalid operand for instruction
255 // CHECK-ERROR: frsqrte s22, h13
257 // CHECK-ERROR: error: invalid operand for instruction
258 // CHECK-ERROR: frsqrte d21, s12
261 //----------------------------------------------------------------------
262 // Vector Move Immediate - bytemask, per doubleword
263 //---------------------------------------------------------------------
264 // invalid bytemask (0x00 or 0xff)
265 movi v0.2d, #0x10ff00ff00ff00ff
267 // CHECK:ERROR: error: invalid operand for instruction
268 // CHECK:ERROR: movi v0.2d, #0x10ff00ff00ff00ff
271 //----------------------------------------------------------------------
272 // Vector Move Immediate - bytemask, one doubleword
273 //----------------------------------------------------------------------
274 // invalid bytemask (0x00 or 0xff)
275 movi v0.2d, #0xffff00ff001f00ff
277 // CHECK:ERROR: error: invalid operand for instruction
278 // CHECK:ERROR: movi v0.2d, #0xffff00ff001f00ff
280 //----------------------------------------------------------------------
281 // Vector Floating Point Move Immediate
282 //----------------------------------------------------------------------
283 // invalid vector type (2s, 4s, 2d)
286 // CHECK:ERROR: error: invalid operand for instruction
287 // CHECK:ERROR: fmov v0.4h, #1.0
290 //----------------------------------------------------------------------
291 // Vector Move - register
292 //----------------------------------------------------------------------
293 // invalid vector type (8b, 16b)
295 // CHECK:ERROR: error: invalid operand for instruction
296 // CHECK:ERROR: mov v0.2s, v31.8b
299 //----------------------------------------------------------------------
300 // Vector Absolute Difference and Accumulate (Signed, Unsigned)
301 //----------------------------------------------------------------------
303 // Mismatched and invalid vector types (2d)
304 saba v0.16b, v1.8b, v2.8b
305 uaba v0.2d, v1.2d, v2.2d
307 // CHECK-ERROR: error: invalid operand for instruction
308 // CHECK-ERROR: saba v0.16b, v1.8b, v2.8b
310 // CHECK-ERROR: error: invalid operand for instruction
311 // CHECK-ERROR: uaba v0.2d, v1.2d, v2.2d
314 //----------------------------------------------------------------------
315 // Vector Absolute Difference and Accumulate (Signed, Unsigned)
316 // Vector Absolute Difference (Signed, Unsigned)
318 // Mismatched and invalid vector types (2d)
319 uaba v0.16b, v1.8b, v2.8b
320 saba v0.2d, v1.2d, v2.2d
321 uabd v0.4s, v1.2s, v2.2s
322 sabd v0.4h, v1.8h, v8.8h
324 // CHECK-ERROR: error: invalid operand for instruction
325 // CHECK-ERROR: uaba v0.16b, v1.8b, v2.8b
327 // CHECK-ERROR: error: invalid operand for instruction
328 // CHECK-ERROR: saba v0.2d, v1.2d, v2.2d
330 // CHECK-ERROR: error: invalid operand for instruction
331 // CHECK-ERROR: uabd v0.4s, v1.2s, v2.2s
333 // CHECK-ERROR: error: invalid operand for instruction
334 // CHECK-ERROR: sabd v0.4h, v1.8h, v8.8h
337 //----------------------------------------------------------------------
338 // Vector Absolute Difference (Floating Point)
339 //----------------------------------------------------------------------
340 // Mismatched and invalid vector types
341 fabd v0.2s, v1.4s, v2.2d
342 fabd v0.4h, v1.4h, v2.4h
344 // CHECK-ERROR: error: invalid operand for instruction
345 // CHECK-ERROR: fabd v0.2s, v1.4s, v2.2d
347 // CHECK-ERROR: error: invalid operand for instruction
348 // CHECK-ERROR: fabd v0.4h, v1.4h, v2.4h
350 //----------------------------------------------------------------------
351 // Vector Multiply (Polynomial)
352 //----------------------------------------------------------------------
354 // Mismatched and invalid vector types
355 pmul v0.8b, v1.8b, v2.16b
356 pmul v0.2s, v1.2s, v2.2s
358 // CHECK-ERROR: error: invalid operand for instruction
359 // CHECK-ERROR: pmul v0.8b, v1.8b, v2.16b
361 // CHECK-ERROR: error: invalid operand for instruction
362 // CHECK-ERROR: pmul v0.2s, v1.2s, v2.2s
365 //----------------------------------------------------------------------
366 // Scalar Integer Add and Sub
367 //----------------------------------------------------------------------
369 // Mismatched registers
373 // CHECK-ERROR: error: invalid operand for instruction
374 // CHECK-ERROR: add d0, s1, d2
376 // CHECK-ERROR: error: invalid operand for instruction
377 // CHECK-ERROR: sub s1, d1, d2
380 //----------------------------------------------------------------------
381 // Vector Reciprocal Step (Floating Point)
382 //----------------------------------------------------------------------
384 // Mismatched and invalid vector types
385 frecps v0.4s, v1.2d, v2.4s
386 frecps v0.8h, v1.8h, v2.8h
388 // CHECK-ERROR: error: invalid operand for instruction
389 // CHECK-ERROR: frecps v0.4s, v1.2d, v2.4s
391 // CHECK-ERROR: error: invalid operand for instruction
392 // CHECK-ERROR: frecps v0.8h, v1.8h, v2.8h
395 //----------------------------------------------------------------------
396 // Vector Reciprocal Square Root Step (Floating Point)
397 //----------------------------------------------------------------------
399 // Mismatched and invalid vector types
400 frsqrts v0.2d, v1.2d, v2.2s
401 frsqrts v0.4h, v1.4h, v2.4h
403 // CHECK-ERROR: error: invalid operand for instruction
404 // CHECK-ERROR: frsqrts v0.2d, v1.2d, v2.2s
406 // CHECK-ERROR: error: invalid operand for instruction
407 // CHECK-ERROR: frsqrts v0.4h, v1.4h, v2.4h
411 //----------------------------------------------------------------------
412 // Vector Absolute Compare Mask Less Than Or Equal (Floating Point)
413 //----------------------------------------------------------------------
415 // Mismatched and invalid vector types
416 facge v0.2d, v1.2s, v2.2d
417 facge v0.4h, v1.4h, v2.4h
418 facle v0.8h, v1.4h, v2.4h
420 // CHECK-ERROR: error: invalid operand for instruction
421 // CHECK-ERROR: facge v0.2d, v1.2s, v2.2d
423 // CHECK-ERROR: error: invalid operand for instruction
424 // CHECK-ERROR: facge v0.4h, v1.4h, v2.4h
426 // CHECK-ERROR: error: invalid operand for instruction
427 // CHECK-ERROR: facle v0.8h, v1.4h, v2.4h
429 //----------------------------------------------------------------------
430 // Vector Absolute Compare Mask Less Than (Floating Point)
431 //----------------------------------------------------------------------
433 // Mismatched and invalid vector types
434 facgt v0.2d, v1.2d, v2.4s
435 facgt v0.8h, v1.8h, v2.8h
436 faclt v0.8b, v1.8b, v2.8b
438 // CHECK-ERROR: error: invalid operand for instruction
439 // CHECK-ERROR: facgt v0.2d, v1.2d, v2.4s
441 // CHECK-ERROR: error: invalid operand for instruction
442 // CHECK-ERROR: facgt v0.8h, v1.8h, v2.8h
444 // CHECK-ERROR: error: invalid operand for instruction
445 // CHECK-ERROR: faclt v0.8b, v1.8b, v2.8b
449 //----------------------------------------------------------------------
450 // Vector Compare Mask Equal (Integer)
451 //----------------------------------------------------------------------
453 // Mismatched vector types
454 cmeq c0.2d, v1.2d, v2.2s
456 // CHECK-ERROR: error: invalid operand for instruction
457 // CHECK-ERROR: cmeq c0.2d, v1.2d, v2.2s
460 //----------------------------------------------------------------------
461 // Vector Compare Mask Higher or Same (Unsigned Integer)
462 // Vector Compare Mask Less or Same (Unsigned Integer)
463 // CMLS is alias for CMHS with operands reversed.
464 //----------------------------------------------------------------------
466 // Mismatched vector types
467 cmhs c0.4h, v1.8b, v2.8b
468 cmls c0.16b, v1.16b, v2.2d
470 // CHECK-ERROR: error: invalid operand for instruction
471 // CHECK-ERROR: cmhs c0.4h, v1.8b, v2.8b
473 // CHECK-ERROR: error: invalid operand for instruction
474 // CHECK-ERROR: cmls c0.16b, v1.16b, v2.2d
477 //----------------------------------------------------------------------
478 // Vector Compare Mask Greater Than or Equal (Integer)
479 // Vector Compare Mask Less Than or Equal (Integer)
480 // CMLE is alias for CMGE with operands reversed.
481 //----------------------------------------------------------------------
483 // Mismatched vector types
484 cmge c0.8h, v1.8b, v2.8b
485 cmle c0.4h, v1.2s, v2.2s
487 // CHECK-ERROR: error: invalid operand for instruction
488 // CHECK-ERROR: cmge c0.8h, v1.8b, v2.8b
490 // CHECK-ERROR: error: invalid operand for instruction
491 // CHECK-ERROR: cmle c0.4h, v1.2s, v2.2s
494 //----------------------------------------------------------------------
495 // Vector Compare Mask Higher (Unsigned Integer)
496 // Vector Compare Mask Lower (Unsigned Integer)
497 // CMLO is alias for CMHI with operands reversed.
498 //----------------------------------------------------------------------
500 // Mismatched vector types
501 cmhi c0.4s, v1.4s, v2.16b
502 cmlo c0.8b, v1.8b, v2.2s
504 // CHECK-ERROR: error: invalid operand for instruction
505 // CHECK-ERROR: cmhi c0.4s, v1.4s, v2.16b
507 // CHECK-ERROR: error: invalid operand for instruction
508 // CHECK-ERROR: cmlo c0.8b, v1.8b, v2.2s
511 //----------------------------------------------------------------------
512 // Vector Compare Mask Greater Than (Integer)
513 // Vector Compare Mask Less Than (Integer)
514 // CMLT is alias for CMGT with operands reversed.
515 //----------------------------------------------------------------------
517 // Mismatched vector types
518 cmgt c0.8b, v1.4s, v2.16b
519 cmlt c0.8h, v1.16b, v2.4s
521 // CHECK-ERROR: error: invalid operand for instruction
522 // CHECK-ERROR: cmgt c0.8b, v1.4s, v2.16b
524 // CHECK-ERROR: error: invalid operand for instruction
525 // CHECK-ERROR: cmlt c0.8h, v1.16b, v2.4s
528 //----------------------------------------------------------------------
529 // Vector Compare Mask Bitwise Test (Integer)
530 //----------------------------------------------------------------------
532 // Mismatched vector types
533 cmtst c0.16b, v1.16b, v2.4s
535 // CHECK-ERROR: error: invalid operand for instruction
536 // CHECK-ERROR: cmtst c0.16b, v1.16b, v2.4s
539 //----------------------------------------------------------------------
540 // Vector Compare Mask Equal (Floating Point)
541 //----------------------------------------------------------------------
543 // Mismatched and invalid vector types
544 fcmeq v0.2d, v1.2s, v2.2d
545 fcmeq v0.16b, v1.16b, v2.16b
546 fcmeq v0.8b, v1.4h, v2.4h
548 // CHECK-ERROR: error: invalid operand for instruction
549 // CHECK-ERROR: fcmeq v0.2d, v1.2s, v2.2d
551 // CHECK-ERROR: error: invalid operand for instruction
552 // CHECK-ERROR: fcmeq v0.16b, v1.16b, v2.16b
554 // CHECK-ERROR: error: invalid operand for instruction
555 // CHECK-ERROR: fcmeq v0.8b, v1.4h, v2.4h
558 //----------------------------------------------------------------------
559 // Vector Compare Mask Greater Than Or Equal (Floating Point)
560 // Vector Compare Mask Less Than Or Equal (Floating Point)
561 // FCMLE is alias for FCMGE with operands reversed.
562 //----------------------------------------------------------------------
564 // Mismatched and invalid vector types
565 fcmge v31.4s, v29.2s, v28.4s
566 fcmge v3.8b, v8.2s, v12.2s
567 fcmle v17.8h, v15.2d, v13.2d
569 // CHECK-ERROR: error: invalid operand for instruction
570 // CHECK-ERROR: fcmge v31.4s, v29.2s, v28.4s
572 // CHECK-ERROR: error: invalid operand for instruction
573 // CHECK-ERROR: fcmge v3.8b, v8.2s, v12.2s
575 // CHECK-ERROR: error: invalid operand for instruction
576 // CHECK-ERROR: fcmle v17.8h, v15.2d, v13.2d
579 //----------------------------------------------------------------------
580 // Vector Compare Mask Greater Than (Floating Point)
581 // Vector Compare Mask Less Than (Floating Point)
582 // FCMLT is alias for FCMGT with operands reversed.
583 //----------------------------------------------------------------------
585 // Mismatched and invalid vector types
586 fcmgt v0.2d, v31.2s, v16.2s
587 fcmgt v4.4s, v7.4s, v15.4h
588 fcmlt v29.2d, v5.2d, v2.16b
590 // CHECK-ERROR: error: invalid operand for instruction
591 // CHECK-ERROR: fcmgt v0.2d, v31.2s, v16.2s
593 // CHECK-AARCH64-ERROR: error: expected floating-point constant #0.0 or invalid register type
594 // CHECK-AARCH64-ERROR: fcmgt v4.4s, v7.4s, v15.4h
595 // CHECK-AARCH64-ERROR: ^
596 // CHECK-AARCH64-ERROR: error: expected floating-point constant #0.0 or invalid register type
597 // CHECK-AARCH64-ERROR: fcmlt v29.2d, v5.2d, v2.16b
598 // CHECK-AARCH64-ERROR: ^
600 // CHECK-ARM64-ERROR: error: invalid operand for instruction
601 // CHECK-ARM64-ERROR: fcmgt v4.4s, v7.4s, v15.4h
602 // CHECK-ARM64-ERROR: ^
603 // CHECK-ARM64-ERROR: error: invalid operand for instruction
604 // CHECK-ARM64-ERROR: fcmlt v29.2d, v5.2d, v2.16b
605 // CHECK-ARM64-ERROR: ^
607 //----------------------------------------------------------------------
608 // Vector Compare Mask Equal to Zero (Integer)
609 //----------------------------------------------------------------------
610 // Mismatched vector types and invalid imm
611 // Mismatched vector types
612 cmeq c0.2d, v1.2s, #0
613 cmeq c0.2d, v1.2d, #1
615 // CHECK-ERROR: error: invalid operand for instruction
616 // CHECK-ERROR: cmeq c0.2d, v1.2s, #0
618 // CHECK-ERROR: error: invalid operand for instruction
619 // CHECK-ERROR: cmeq c0.2d, v1.2d, #1
622 //----------------------------------------------------------------------
623 // Vector Compare Mask Greater Than or Equal to Zero (Signed Integer)
624 //----------------------------------------------------------------------
625 // Mismatched vector types and invalid imm
626 cmge c0.8h, v1.8b, #0
627 cmge c0.4s, v1.4s, #-1
629 // CHECK-ERROR: error: invalid operand for instruction
630 // CHECK-ERROR: cmge c0.8h, v1.8b, #0
632 // CHECK-ERROR: error: invalid operand for instruction
633 // CHECK-ERROR: cmge c0.4s, v1.4s, #-1
636 //----------------------------------------------------------------------
637 // Vector Compare Mask Greater Than Zero (Signed Integer)
638 //----------------------------------------------------------------------
639 // Mismatched vector types and invalid imm
640 cmgt c0.8b, v1.4s, #0
641 cmgt c0.8b, v1.8b, #-255
643 // CHECK-ERROR: error: invalid operand for instruction
644 // CHECK-ERROR: cmgt c0.8b, v1.4s, #0
646 // CHECK-ERROR: error: invalid operand for instruction
647 // CHECK-ERROR: cmgt c0.8b, v1.8b, #-255
650 //----------------------------------------------------------------------
651 // Vector Compare Mask Less Than or Equal To Zero (Signed Integer)
652 //----------------------------------------------------------------------
653 // Mismatched vector types and invalid imm
654 cmle c0.4h, v1.2s, #0
655 cmle c0.16b, v1.16b, #16
657 // CHECK-ERROR: error: invalid operand for instruction
658 // CHECK-ERROR: cmle c0.4h, v1.2s, #0
660 // CHECK-ERROR: error: invalid operand for instruction
661 // CHECK-ERROR: cmle c0.16b, v1.16b, #16
663 //----------------------------------------------------------------------
664 // Vector Compare Mask Less Than Zero (Signed Integer)
665 //----------------------------------------------------------------------
666 // Mismatched vector types and invalid imm
667 cmlt c0.8h, v1.16b, #0
668 cmlt c0.8h, v1.8h, #-15
670 // CHECK-ERROR: error: invalid operand for instruction
671 // CHECK-ERROR: cmlt c0.8h, v1.16b, #0
673 // CHECK-ERROR: error: invalid operand for instruction
674 // CHECK-ERROR: cmlt c0.8h, v1.8h, #-15
677 //----------------------------------------------------------------------
678 // Vector Compare Mask Equal to Zero (Floating Point)
679 //----------------------------------------------------------------------
681 // Mismatched and invalid vector types, invalid imm
682 fcmeq v0.2d, v1.2s, #0.0
683 fcmeq v0.16b, v1.16b, #0.0
684 fcmeq v0.8b, v1.4h, #1.0
685 fcmeq v0.8b, v1.4h, #1
687 // CHECK-ERROR: error: invalid operand for instruction
688 // CHECK-ERROR: fcmeq v0.2d, v1.2s, #0.0
690 // CHECK-ERROR: error: invalid operand for instruction
691 // CHECK-ERROR: fcmeq v0.16b, v1.16b, #0.0
694 // CHECK-AARCH64-ERROR: error: only #0.0 is acceptable as immediate
695 // CHECK-AARCH64-ERROR: fcmeq v0.8b, v1.4h, #1.0
696 // CHECK-AARCH64-ERROR: ^
697 // CHECK-AARCH64-ERROR: error: only #0.0 is acceptable as immediate
698 // CHECK-AARCH64-ERROR: fcmeq v0.8b, v1.4h, #1
699 // CHECK-AARCH64-ERROR: ^
701 // CHECK-ARM64-ERROR: error: expected floating-point constant #0.0
702 // CHECK-ARM64-ERROR: fcmeq v0.8b, v1.4h, #1.0
703 // CHECK-ARM64-ERROR: ^
704 // CHECK-ARM64-ERROR: error: invalid operand for instruction
705 // CHECK-ARM64-ERROR: fcmeq v0.8b, v1.4h, #1
706 // CHECK-ARM64-ERROR: ^
708 //----------------------------------------------------------------------
709 // Vector Compare Mask Greater Than or Equal to Zero (Floating Point)
710 //----------------------------------------------------------------------
712 // Mismatched and invalid vector types, invalid imm
713 fcmge v31.4s, v29.2s, #0.0
714 fcmge v3.8b, v8.2s, #0.0
715 fcmle v17.8h, v15.2d, #-1.0
716 fcmle v17.8h, v15.2d, #2
718 // CHECK-ERROR: error: invalid operand for instruction
719 // CHECK-ERROR: fcmge v31.4s, v29.2s, #0.0
721 // CHECK-ERROR: error: invalid operand for instruction
722 // CHECK-ERROR: fcmge v3.8b, v8.2s, #0.0
725 // CHECK-AARCH64-ERROR: error: only #0.0 is acceptable as immediate
726 // CHECK-AARCH64-ERROR: fcmle v17.8h, v15.2d, #-1.0
727 // CHECK-AARCH64-ERROR: ^
728 // CHECK-AARCH64-ERROR: error: only #0.0 is acceptable as immediate
729 // CHECK-AARCH64-ERROR: fcmle v17.8h, v15.2d, #2
730 // CHECK-AARCH64-ERROR: ^
732 // CHECK-ARM64-ERROR: error: expected floating-point constant #0.0
733 // CHECK-ARM64-ERROR: fcmle v17.8h, v15.2d, #-1.0
734 // CHECK-ARM64-ERROR: ^
735 // CHECK-ARM64-ERROR: error: invalid operand for instruction
736 // CHECK-ARM64-ERROR: fcmle v17.8h, v15.2d, #2
737 // CHECK-ARM64-ERROR: ^
739 //----------------------------------------------------------------------
740 // Vector Compare Mask Greater Than Zero (Floating Point)
741 //----------------------------------------------------------------------
742 // Mismatched and invalid vector types, invalid imm
743 fcmgt v0.2d, v31.2s, #0.0
744 fcmgt v4.4s, v7.4h, #0.0
745 fcmlt v29.2d, v5.2d, #255.0
746 fcmlt v29.2d, v5.2d, #255
748 // CHECK-ERROR: error: invalid operand for instruction
749 // CHECK-ERROR: fcmgt v0.2d, v31.2s, #0.0
751 // CHECK-ERROR: error: invalid operand for instruction
752 // CHECK-ERROR: fcmgt v4.4s, v7.4h, #0.0
755 // CHECK-AARCH64-ERROR: error: only #0.0 is acceptable as immediate
756 // CHECK-AARCH64-ERROR: fcmlt v29.2d, v5.2d, #255.0
757 // CHECK-AARCH64-ERROR: ^
758 // CHECK-AARCH64-ERROR: error: only #0.0 is acceptable as immediate
759 // CHECK-AARCH64-ERROR: fcmlt v29.2d, v5.2d, #255
760 // CHECK-AARCH64-ERROR: ^
762 // CHECK-ARM64-ERROR: error: expected floating-point constant #0.0
763 // CHECK-ARM64-ERROR: fcmlt v29.2d, v5.2d, #255.0
764 // CHECK-ARM64-ERROR: ^
765 // CHECK-ARM64-ERROR: error: invalid operand for instruction
766 // CHECK-ARM64-ERROR: fcmlt v29.2d, v5.2d, #255
767 // CHECK-ARM64-ERROR: ^
769 //----------------------------------------------------------------------
770 // Vector Compare Mask Less Than or Equal To Zero (Floating Point)
771 //----------------------------------------------------------------------
772 // Mismatched and invalid vector types, invalid imm
773 fcmge v31.4s, v29.2s, #0.0
774 fcmge v3.8b, v8.2s, #0.0
775 fcmle v17.2d, v15.2d, #15.0
776 fcmle v17.2d, v15.2d, #15
778 // CHECK-ERROR: error: invalid operand for instruction
779 // CHECK-ERROR: fcmge v31.4s, v29.2s, #0.0
781 // CHECK-ERROR: error: invalid operand for instruction
782 // CHECK-ERROR: fcmge v3.8b, v8.2s, #0.0
785 // CHECK-AARCH64-ERROR: error: only #0.0 is acceptable as immediate
786 // CHECK-AARCH64-ERROR: fcmle v17.2d, v15.2d, #15.0
787 // CHECK-AARCH64-ERROR: ^
788 // CHECK-AARCH64-ERROR: error: only #0.0 is acceptable as immediate
789 // CHECK-AARCH64-ERROR: fcmle v17.2d, v15.2d, #15
790 // CHECK-AARCH64-ERROR: ^
792 // CHECK-ARM64-ERROR: error: expected floating-point constant #0.0
793 // CHECK-ARM64-ERROR: fcmle v17.2d, v15.2d, #15.0
794 // CHECK-ARM64-ERROR: ^
795 // CHECK-ARM64-ERROR: error: invalid operand for instruction
796 // CHECK-ARM64-ERROR: fcmle v17.2d, v15.2d, #15
797 // CHECK-ARM64-ERROR: ^
799 //----------------------------------------------------------------------
800 // Vector Compare Mask Less Than Zero (Floating Point)
801 //----------------------------------------------------------------------
802 // Mismatched and invalid vector types, invalid imm
803 fcmgt v0.2d, v31.2s, #0.0
804 fcmgt v4.4s, v7.4h, #0.0
805 fcmlt v29.2d, v5.2d, #16.0
806 fcmlt v29.2d, v5.2d, #2
808 // CHECK-ERROR: error: invalid operand for instruction
809 // CHECK-ERROR: fcmgt v0.2d, v31.2s, #0.0
811 // CHECK-ERROR: error: invalid operand for instruction
812 // CHECK-ERROR: fcmgt v4.4s, v7.4h, #0.0
815 // CHECK-AARCH64-ERROR: error: only #0.0 is acceptable as immediate
816 // CHECK-AARCH64-ERROR: fcmlt v29.2d, v5.2d, #16.0
817 // CHECK-AARCH64-ERROR: ^
818 // CHECK-AARCH64-ERROR: error: only #0.0 is acceptable as immediate
819 // CHECK-AARCH64-ERROR: fcmlt v29.2d, v5.2d, #2
820 // CHECK-AARCH64-ERROR: ^
822 // CHECK-ARM64-ERROR: error: expected floating-point constant #0.0
823 // CHECK-ARM64-ERROR: fcmlt v29.2d, v5.2d, #16.0
824 // CHECK-ARM64-ERROR: ^
825 // CHECK-ARM64-ERROR: error: invalid operand for instruction
826 // CHECK-ARM64-ERROR: fcmlt v29.2d, v5.2d, #2
827 // CHECK-ARM64-ERROR: ^
829 /-----------------------------------------------------------------------
830 // Vector Integer Halving Add (Signed)
831 // Vector Integer Halving Add (Unsigned)
832 // Vector Integer Halving Sub (Signed)
833 // Vector Integer Halving Sub (Unsigned)
834 //----------------------------------------------------------------------
835 // Mismatched and invalid vector types (2d)
836 shadd v0.2d, v1.2d, v2.2d
837 uhadd v4.2s, v5.2s, v5.4h
838 shsub v11.4h, v12.8h, v13.4h
839 uhsub v31.16b, v29.8b, v28.8b
841 // CHECK-ERROR: error: invalid operand for instruction
842 // CHECK-ERROR: shadd v0.2d, v1.2d, v2.2d
844 // CHECK-ERROR: error: invalid operand for instruction
845 // CHECK-ERROR: uhadd v4.2s, v5.2s, v5.4h
847 // CHECK-ERROR: error: invalid operand for instruction
848 // CHECK-ERROR: shsub v11.4h, v12.8h, v13.4h
850 // CHECK-ERROR: error: invalid operand for instruction
851 // CHECK-ERROR: uhsub v31.16b, v29.8b, v28.8b
854 //----------------------------------------------------------------------
855 // Vector Integer Rouding Halving Add (Signed)
856 // Vector Integer Rouding Halving Add (Unsigned)
857 //----------------------------------------------------------------------
859 // Mismatched and invalid vector types (2d)
860 srhadd v0.2s, v1.2s, v2.2d
861 urhadd v0.16b, v1.16b, v2.8h
863 // CHECK-ERROR: error: invalid operand for instruction
864 // CHECK-ERROR: srhadd v0.2s, v1.2s, v2.2d
866 // CHECK-ERROR: error: invalid operand for instruction
867 // CHECK-ERROR: urhadd v0.16b, v1.16b, v2.8h
870 //----------------------------------------------------------------------
871 // Vector Integer Saturating Add (Signed)
872 // Vector Integer Saturating Add (Unsigned)
873 // Vector Integer Saturating Sub (Signed)
874 // Vector Integer Saturating Sub (Unsigned)
875 //----------------------------------------------------------------------
877 // Mismatched vector types
878 sqadd v0.2s, v1.2s, v2.2d
879 uqadd v31.8h, v1.4h, v2.4h
880 sqsub v10.8h, v1.16b, v2.16b
881 uqsub v31.8b, v1.8b, v2.4s
883 // CHECK-ERROR: error: invalid operand for instruction
884 // CHECK-ERROR: sqadd v0.2s, v1.2s, v2.2d
886 // CHECK-ERROR: error: invalid operand for instruction
887 // CHECK-ERROR: uqadd v31.8h, v1.4h, v2.4h
889 // CHECK-ERROR: error: invalid operand for instruction
890 // CHECK-ERROR: sqsub v10.8h, v1.16b, v2.16b
892 // CHECK-ERROR: error: invalid operand for instruction
893 // CHECK-ERROR: uqsub v31.8b, v1.8b, v2.4s
896 //----------------------------------------------------------------------
897 // Scalar Integer Saturating Add (Signed)
898 // Scalar Integer Saturating Add (Unsigned)
899 // Scalar Integer Saturating Sub (Signed)
900 // Scalar Integer Saturating Sub (Unsigned)
901 //----------------------------------------------------------------------
903 // Mismatched registers
909 // CHECK-ERROR: error: invalid operand for instruction
910 // CHECK-ERROR: sqadd d0, s31, d2
912 // CHECK-ERROR: error: invalid operand for instruction
913 // CHECK-ERROR: uqadd s0, s1, d2
915 // CHECK-ERROR: error: invalid operand for instruction
916 // CHECK-ERROR: sqsub b0, b2, s18
918 // CHECK-ERROR: error: invalid operand for instruction
919 // CHECK-ERROR: uqsub h1, h2, d2
922 //----------------------------------------------------------------------
923 // Scalar Integer Saturating Doubling Multiply Half High (Signed)
924 //----------------------------------------------------------------------
926 sqdmulh h10, s11, h12
929 // CHECK-ERROR: error: invalid operand for instruction
930 // CHECK-ERROR: sqdmulh h10, s11, h12
932 // CHECK-ERROR: error: invalid operand for instruction
933 // CHECK-ERROR: sqdmulh s20, h21, s2
936 //------------------------------------------------------------------------
937 // Scalar Integer Saturating Rounding Doubling Multiply Half High (Signed)
938 //------------------------------------------------------------------------
940 sqrdmulh h10, s11, h12
941 sqrdmulh s20, h21, s2
943 // CHECK-ERROR: error: invalid operand for instruction
944 // CHECK-ERROR: sqrdmulh h10, s11, h12
946 // CHECK-ERROR: error: invalid operand for instruction
947 // CHECK-ERROR: sqrdmulh s20, h21, s2
950 //----------------------------------------------------------------------
951 // Vector Shift Left (Signed and Unsigned Integer)
952 //----------------------------------------------------------------------
953 // Mismatched vector types
954 sshl v0.4s, v15.2s, v16.2s
955 ushl v1.16b, v25.16b, v6.8h
957 // CHECK-ERROR: error: invalid operand for instruction
958 // CHECK-ERROR: sshl v0.4s, v15.2s, v16.2s
960 // CHECK-ERROR: error: invalid operand for instruction
961 // CHECK-ERROR: ushl v1.16b, v25.16b, v6.8h
964 //----------------------------------------------------------------------
965 // Vector Saturating Shift Left (Signed and Unsigned Integer)
966 //----------------------------------------------------------------------
967 // Mismatched vector types
968 sqshl v0.2s, v15.4s, v16.2d
969 uqshl v1.8b, v25.4h, v6.8h
971 // CHECK-ERROR: error: invalid operand for instruction
972 // CHECK-ERROR: sqshl v0.2s, v15.4s, v16.2d
974 // CHECK-ERROR: error: invalid operand for instruction
975 // CHECK-ERROR: uqshl v1.8b, v25.4h, v6.8h
978 //----------------------------------------------------------------------
979 // Vector Rouding Shift Left (Signed and Unsigned Integer)
980 //----------------------------------------------------------------------
981 // Mismatched vector types
982 srshl v0.8h, v15.8h, v16.16b
983 urshl v1.2d, v25.2d, v6.4s
985 // CHECK-ERROR: error: invalid operand for instruction
986 // CHECK-ERROR: srshl v0.8h, v15.8h, v16.16b
988 // CHECK-ERROR: error: invalid operand for instruction
989 // CHECK-ERROR: urshl v1.2d, v25.2d, v6.4s
992 //----------------------------------------------------------------------
993 // Vector Saturating Rouding Shift Left (Signed and Unsigned Integer)
994 //----------------------------------------------------------------------
995 // Mismatched vector types
996 sqrshl v0.2s, v15.8h, v16.16b
997 uqrshl v1.4h, v25.4h, v6.2d
999 // CHECK-ERROR: error: invalid operand for instruction
1000 // CHECK-ERROR: sqrshl v0.2s, v15.8h, v16.16b
1002 // CHECK-ERROR: error: invalid operand for instruction
1003 // CHECK-ERROR: uqrshl v1.4h, v25.4h, v6.2d
1006 //----------------------------------------------------------------------
1007 // Scalar Integer Shift Left (Signed, Unsigned)
1008 //----------------------------------------------------------------------
1009 // Mismatched and invalid vector types
1013 // CHECK-ERROR: error: invalid operand for instruction
1014 // CHECK-ERROR: sshl d0, d1, s2
1016 // CHECK-ERROR: error: invalid operand for instruction
1017 // CHECK-ERROR: ushl b2, b0, b1
1020 //----------------------------------------------------------------------
1021 // Scalar Integer Saturating Shift Left (Signed, Unsigned)
1022 //----------------------------------------------------------------------
1024 // Mismatched vector types
1030 // CHECK-ERROR: error: invalid operand for instruction
1031 // CHECK-ERROR: sqshl b0, s1, b0
1033 // CHECK-ERROR: error: invalid operand for instruction
1034 // CHECK-ERROR: uqshl h0, b1, h0
1036 // CHECK-ERROR: error: invalid operand for instruction
1037 // CHECK-ERROR: sqshl s0, h1, s0
1039 // CHECK-ERROR: error: invalid operand for instruction
1040 // CHECK-ERROR: uqshl d0, b1, d0
1043 //----------------------------------------------------------------------
1044 // Scalar Integer Rouding Shift Left (Signed, Unsigned)
1045 //----------------------------------------------------------------------
1046 // Mismatched and invalid vector types
1050 // CHECK-ERROR: error: invalid operand for instruction
1051 // CHECK-ERROR: srshl h0, h1, h2
1053 // CHECK-ERROR: error: invalid operand for instruction
1054 // CHECK-ERROR: urshl s0, s1, s2
1058 //----------------------------------------------------------------------
1059 // Scalar Integer Saturating Rounding Shift Left (Signed, Unsigned)
1060 //----------------------------------------------------------------------
1062 // Mismatched vector types
1068 // CHECK-ERROR: error: invalid operand for instruction
1069 // CHECK-ERROR: sqrshl b0, b1, s0
1071 // CHECK-ERROR: error: invalid operand for instruction
1072 // CHECK-ERROR: uqrshl h0, h1, b0
1074 // CHECK-ERROR: error: invalid operand for instruction
1075 // CHECK-ERROR: sqrshl s0, s1, h0
1077 // CHECK-ERROR: error: invalid operand for instruction
1078 // CHECK-ERROR: uqrshl d0, d1, b0
1082 //----------------------------------------------------------------------
1083 // Vector Maximum (Signed, Unsigned)
1084 //----------------------------------------------------------------------
1085 // Mismatched and invalid vector types
1086 smax v0.2d, v1.2d, v2.2d
1087 umax v0.4h, v1.4h, v2.2s
1089 // CHECK-ERROR: error: invalid operand for instruction
1090 // CHECK-ERROR: smax v0.2d, v1.2d, v2.2d
1092 // CHECK-ERROR: error: invalid operand for instruction
1093 // CHECK-ERROR: umax v0.4h, v1.4h, v2.2s
1096 //----------------------------------------------------------------------
1097 // Vector Minimum (Signed, Unsigned)
1098 //----------------------------------------------------------------------
1099 // Mismatched and invalid vector types
1100 smin v0.2d, v1.2d, v2.2d
1101 umin v0.2s, v1.2s, v2.8b
1103 // CHECK-ERROR: error: invalid operand for instruction
1104 // CHECK-ERROR: smin v0.2d, v1.2d, v2.2d
1106 // CHECK-ERROR: error: invalid operand for instruction
1107 // CHECK-ERROR: umin v0.2s, v1.2s, v2.8b
1111 //----------------------------------------------------------------------
1112 // Vector Maximum (Floating Point)
1113 //----------------------------------------------------------------------
1114 // Mismatched and invalid vector types
1115 fmax v0.2s, v1.2s, v2.4s
1116 fmax v0.8b, v1.8b, v2.8b
1118 // CHECK-ERROR: error: invalid operand for instruction
1119 // CHECK-ERROR: fmax v0.2s, v1.2s, v2.4s
1121 // CHECK-ERROR: error: invalid operand for instruction
1122 // CHECK-ERROR: fmax v0.8b, v1.8b, v2.8b
1124 //----------------------------------------------------------------------
1125 // Vector Minimum (Floating Point)
1126 //----------------------------------------------------------------------
1127 // Mismatched and invalid vector types
1128 fmin v0.4s, v1.4s, v2.2d
1129 fmin v0.8h, v1.8h, v2.8h
1131 // CHECK-ERROR: error: invalid operand for instruction
1132 // CHECK-ERROR: fmin v0.4s, v1.4s, v2.2d
1134 // CHECK-ERROR: error: invalid operand for instruction
1135 // CHECK-ERROR: fmin v0.8h, v1.8h, v2.8h
1138 //----------------------------------------------------------------------
1139 // Vector maxNum (Floating Point)
1140 //----------------------------------------------------------------------
1141 // Mismatched and invalid vector types
1142 fmaxnm v0.2s, v1.2s, v2.2d
1143 fmaxnm v0.4h, v1.8h, v2.4h
1145 // CHECK-ERROR: error: invalid operand for instruction
1146 // CHECK-ERROR: fmaxnm v0.2s, v1.2s, v2.2d
1148 // CHECK-ERROR: error: invalid operand for instruction
1149 // CHECK-ERROR: fmaxnm v0.4h, v1.8h, v2.4h
1152 //----------------------------------------------------------------------
1153 // Vector minNum (Floating Point)
1154 //----------------------------------------------------------------------
1155 // Mismatched and invalid vector types
1156 fminnm v0.4s, v1.2s, v2.4s
1157 fminnm v0.16b, v0.16b, v0.16b
1159 // CHECK-ERROR: error: invalid operand for instruction
1160 // CHECK-ERROR: fminnm v0.4s, v1.2s, v2.4s
1162 // CHECK-ERROR: error: invalid operand for instruction
1163 // CHECK-ERROR: fminnm v0.16b, v0.16b, v0.16b
1167 //----------------------------------------------------------------------
1168 // Vector Maximum Pairwise (Signed, Unsigned)
1169 //----------------------------------------------------------------------
1170 // Mismatched and invalid vector types
1171 smaxp v0.2d, v1.2d, v2.2d
1172 umaxp v0.4h, v1.4h, v2.2s
1174 // CHECK-ERROR: error: invalid operand for instruction
1175 // CHECK-ERROR: smaxp v0.2d, v1.2d, v2.2d
1177 // CHECK-ERROR: error: invalid operand for instruction
1178 // CHECK-ERROR: umaxp v0.4h, v1.4h, v2.2s
1181 //----------------------------------------------------------------------
1182 // Vector Minimum Pairwise (Signed, Unsigned)
1183 //----------------------------------------------------------------------
1184 // Mismatched and invalid vector types
1185 sminp v0.2d, v1.2d, v2.2d
1186 uminp v0.2s, v1.2s, v2.8b
1188 // CHECK-ERROR: error: invalid operand for instruction
1189 // CHECK-ERROR: sminp v0.2d, v1.2d, v2.2d
1191 // CHECK-ERROR: error: invalid operand for instruction
1192 // CHECK-ERROR: uminp v0.2s, v1.2s, v2.8b
1196 //----------------------------------------------------------------------
1197 // Vector Maximum Pairwise (Floating Point)
1198 //----------------------------------------------------------------------
1199 // Mismatched and invalid vector types
1200 fmaxp v0.2s, v1.2s, v2.4s
1201 fmaxp v0.8b, v1.8b, v2.8b
1203 // CHECK-ERROR: error: invalid operand for instruction
1204 // CHECK-ERROR: fmaxp v0.2s, v1.2s, v2.4s
1206 // CHECK-ERROR: error: invalid operand for instruction
1207 // CHECK-ERROR: fmaxp v0.8b, v1.8b, v2.8b
1209 //----------------------------------------------------------------------
1210 // Vector Minimum Pairwise (Floating Point)
1211 //----------------------------------------------------------------------
1212 // Mismatched and invalid vector types
1213 fminp v0.4s, v1.4s, v2.2d
1214 fminp v0.8h, v1.8h, v2.8h
1216 // CHECK-ERROR: error: invalid operand for instruction
1217 // CHECK-ERROR: fminp v0.4s, v1.4s, v2.2d
1219 // CHECK-ERROR: error: invalid operand for instruction
1220 // CHECK-ERROR: fminp v0.8h, v1.8h, v2.8h
1223 //----------------------------------------------------------------------
1224 // Vector maxNum Pairwise (Floating Point)
1225 //----------------------------------------------------------------------
1226 // Mismatched and invalid vector types
1227 fmaxnmp v0.2s, v1.2s, v2.2d
1228 fmaxnmp v0.4h, v1.8h, v2.4h
1230 // CHECK-ERROR: error: invalid operand for instruction
1231 // CHECK-ERROR: fmaxnmp v0.2s, v1.2s, v2.2d
1233 // CHECK-ERROR: error: invalid operand for instruction
1234 // CHECK-ERROR: fmaxnmp v0.4h, v1.8h, v2.4h
1237 //----------------------------------------------------------------------
1238 // Vector minNum Pairwise (Floating Point)
1239 //----------------------------------------------------------------------
1240 // Mismatched and invalid vector types
1241 fminnmp v0.4s, v1.2s, v2.4s
1242 fminnmp v0.16b, v0.16b, v0.16b
1244 // CHECK-ERROR: error: invalid operand for instruction
1245 // CHECK-ERROR: fminnmp v0.4s, v1.2s, v2.4s
1247 // CHECK-ERROR: error: invalid operand for instruction
1248 // CHECK-ERROR: fminnmp v0.16b, v0.16b, v0.16b
1252 //----------------------------------------------------------------------
1253 // Vector Add Pairwise (Integer)
1254 //----------------------------------------------------------------------
1256 // Mismatched vector types
1257 addp v0.16b, v1.8b, v2.8b
1259 // CHECK-ERROR: error: invalid operand for instruction
1260 // CHECK-ERROR: addp v0.16b, v1.8b, v2.8b
1263 //----------------------------------------------------------------------
1264 // Vector Add Pairwise (Floating Point)
1265 //----------------------------------------------------------------------
1266 // Mismatched and invalid vector types
1267 faddp v0.16b, v1.8b, v2.8b
1268 faddp v0.2d, v1.2d, v2.8h
1270 // CHECK-ERROR: error: invalid operand for instruction
1271 // CHECK-ERROR: faddp v0.16b, v1.8b, v2.8b
1273 // CHECK-ERROR: error: invalid operand for instruction
1274 // CHECK-ERROR: faddp v0.2d, v1.2d, v2.8h
1278 //----------------------------------------------------------------------
1279 // Vector Saturating Doubling Multiply High
1280 //----------------------------------------------------------------------
1281 // Mismatched and invalid vector types
1282 sqdmulh v2.4h, v25.8h, v3.4h
1283 sqdmulh v12.2d, v5.2d, v13.2d
1284 sqdmulh v3.8b, v1.8b, v30.8b
1286 // CHECK-ERROR: error: invalid operand for instruction
1287 // CHECK-ERROR: sqdmulh v2.4h, v25.8h, v3.4h
1289 // CHECK-ERROR: error: invalid operand for instruction
1290 // CHECK-ERROR: sqdmulh v12.2d, v5.2d, v13.2d
1292 // CHECK-ERROR: error: invalid operand for instruction
1293 // CHECK-ERROR: sqdmulh v3.8b, v1.8b, v30.8b
1296 //----------------------------------------------------------------------
1297 // Vector Saturating Rouding Doubling Multiply High
1298 //----------------------------------------------------------------------
1299 // Mismatched and invalid vector types
1300 sqrdmulh v2.2s, v25.4s, v3.4s
1301 sqrdmulh v12.16b, v5.16b, v13.16b
1302 sqrdmulh v3.4h, v1.4h, v30.2d
1305 // CHECK-ERROR: error: invalid operand for instruction
1306 // CHECK-ERROR: sqrdmulh v2.2s, v25.4s, v3.4s
1308 // CHECK-ERROR: error: invalid operand for instruction
1309 // CHECK-ERROR: sqrdmulh v12.16b, v5.16b, v13.16b
1311 // CHECK-ERROR: error: invalid operand for instruction
1312 // CHECK-ERROR: sqrdmulh v3.4h, v1.4h, v30.2d
1315 //----------------------------------------------------------------------
1316 // Vector Multiply Extended
1317 //----------------------------------------------------------------------
1318 // Mismatched and invalid vector types
1319 fmulx v21.2s, v5.2s, v13.2d
1320 fmulx v1.4h, v25.4h, v3.4h
1322 // CHECK-ERROR: error: invalid operand for instruction
1323 // CHECK-ERROR: fmulx v21.2s, v5.2s, v13.2d
1325 // CHECK-ERROR: error: invalid operand for instruction
1326 // CHECK-ERROR: fmulx v1.4h, v25.4h, v3.4h
1329 //------------------------------------------------------------------------------
1330 // Vector Shift Left by Immediate
1331 //------------------------------------------------------------------------------
1332 // Mismatched vector types and out of range
1333 shl v0.4s, v15,2s, #3
1334 shl v0.2d, v17.4s, #3
1335 shl v0.8b, v31.8b, #-1
1336 shl v0.8b, v31.8b, #8
1337 shl v0.4s, v21.4s, #32
1338 shl v0.2d, v1.2d, #64
1340 // CHECK-AARCH64-ERROR: error: expected comma before next operand
1341 // CHECK-AARCH64-ERROR: shl v0.4s, v15,2s, #3
1342 // CHECK-AARCH64-ERROR: ^
1344 // CHECK-ARM64-ERROR: error: unexpected token in argument list
1345 // CHECK-ARM64-ERROR: shl v0.4s, v15,2s, #3
1346 // CHECK-ARM64-ERROR: ^
1348 // CHECK-ERROR: error: invalid operand for instruction
1349 // CHECK-ERROR: shl v0.2d, v17.4s, #3
1351 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
1352 // CHECK-ERROR: shl v0.8b, v31.8b, #-1
1354 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
1355 // CHECK-ERROR: shl v0.8b, v31.8b, #8
1357 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
1358 // CHECK-ERROR: shl v0.4s, v21.4s, #32
1360 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]
1361 // CHECK-ERROR: shl v0.2d, v1.2d, #64
1364 //----------------------------------------------------------------------
1365 // Vector Shift Left Long by Immediate
1366 //----------------------------------------------------------------------
1367 // Mismatched vector types
1368 sshll v0.4s, v15.2s, #3
1369 ushll v1.16b, v25.16b, #6
1370 sshll2 v0.2d, v3.8s, #15
1371 ushll2 v1.4s, v25.4s, #7
1374 sshll v0.8h, v1.8b, #-1
1375 sshll v0.8h, v1.8b, #9
1376 ushll v0.4s, v1.4h, #17
1377 ushll v0.2d, v1.2s, #33
1378 sshll2 v0.8h, v1.16b, #9
1379 sshll2 v0.4s, v1.8h, #17
1380 ushll2 v0.2d, v1.4s, #33
1382 // CHECK-ERROR: error: invalid operand for instruction
1383 // CHECK-ERROR: sshll v0.4s, v15.2s, #3
1385 // CHECK-ERROR: error: invalid operand for instruction
1386 // CHECK-ERROR: ushll v1.16b, v25.16b, #6
1388 // CHECK-ERROR: error: invalid operand for instruction
1389 // CHECK-ERROR: sshll2 v0.2d, v3.8s, #15
1391 // CHECK-ERROR: error: invalid operand for instruction
1392 // CHECK-ERROR: ushll2 v1.4s, v25.4s, #7
1394 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
1395 // CHECK-ERROR: sshll v0.8h, v1.8b, #-1
1397 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
1398 // CHECK-ERROR: sshll v0.8h, v1.8b, #9
1400 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]
1401 // CHECK-ERROR: ushll v0.4s, v1.4h, #17
1403 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
1404 // CHECK-ERROR: ushll v0.2d, v1.2s, #33
1406 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
1407 // CHECK-ERROR: sshll2 v0.8h, v1.16b, #9
1409 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]
1410 // CHECK-ERROR: sshll2 v0.4s, v1.8h, #17
1412 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
1413 // CHECK-ERROR: ushll2 v0.2d, v1.4s, #33
1417 //------------------------------------------------------------------------------
1418 // Vector shift right by immediate
1419 //------------------------------------------------------------------------------
1420 sshr v0.8b, v1.8h, #3
1421 sshr v0.4h, v1.4s, #3
1422 sshr v0.2s, v1.2d, #3
1423 sshr v0.16b, v1.16b, #9
1424 sshr v0.8h, v1.8h, #17
1425 sshr v0.4s, v1.4s, #33
1426 sshr v0.2d, v1.2d, #65
1428 // CHECK-ERROR: error: invalid operand for instruction
1429 // CHECK-ERROR: sshr v0.8b, v1.8h, #3
1431 // CHECK-ERROR: error: invalid operand for instruction
1432 // CHECK-ERROR: sshr v0.4h, v1.4s, #3
1434 // CHECK-ERROR: error: invalid operand for instruction
1435 // CHECK-ERROR: sshr v0.2s, v1.2d, #3
1437 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1438 // CHECK-ERROR: sshr v0.16b, v1.16b, #9
1440 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1441 // CHECK-ERROR: sshr v0.8h, v1.8h, #17
1443 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1444 // CHECK-ERROR: sshr v0.4s, v1.4s, #33
1446 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
1447 // CHECK-ERROR: sshr v0.2d, v1.2d, #65
1450 //------------------------------------------------------------------------------
1451 // Vector shift right by immediate
1452 //------------------------------------------------------------------------------
1453 ushr v0.8b, v1.8h, #3
1454 ushr v0.4h, v1.4s, #3
1455 ushr v0.2s, v1.2d, #3
1456 ushr v0.16b, v1.16b, #9
1457 ushr v0.8h, v1.8h, #17
1458 ushr v0.4s, v1.4s, #33
1459 ushr v0.2d, v1.2d, #65
1461 // CHECK-ERROR: error: invalid operand for instruction
1462 // CHECK-ERROR: ushr v0.8b, v1.8h, #3
1464 // CHECK-ERROR: error: invalid operand for instruction
1465 // CHECK-ERROR: ushr v0.4h, v1.4s, #3
1467 // CHECK-ERROR: error: invalid operand for instruction
1468 // CHECK-ERROR: ushr v0.2s, v1.2d, #3
1470 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1471 // CHECK-ERROR: ushr v0.16b, v1.16b, #9
1473 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1474 // CHECK-ERROR: ushr v0.8h, v1.8h, #17
1476 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1477 // CHECK-ERROR: ushr v0.4s, v1.4s, #33
1479 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
1480 // CHECK-ERROR: ushr v0.2d, v1.2d, #65
1483 //------------------------------------------------------------------------------
1484 // Vector shift right and accumulate by immediate
1485 //------------------------------------------------------------------------------
1486 ssra v0.8b, v1.8h, #3
1487 ssra v0.4h, v1.4s, #3
1488 ssra v0.2s, v1.2d, #3
1489 ssra v0.16b, v1.16b, #9
1490 ssra v0.8h, v1.8h, #17
1491 ssra v0.4s, v1.4s, #33
1492 ssra v0.2d, v1.2d, #65
1494 // CHECK-ERROR: error: invalid operand for instruction
1495 // CHECK-ERROR: ssra v0.8b, v1.8h, #3
1497 // CHECK-ERROR: error: invalid operand for instruction
1498 // CHECK-ERROR: ssra v0.4h, v1.4s, #3
1500 // CHECK-ERROR: error: invalid operand for instruction
1501 // CHECK-ERROR: ssra v0.2s, v1.2d, #3
1503 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1504 // CHECK-ERROR: ssra v0.16b, v1.16b, #9
1506 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1507 // CHECK-ERROR: ssra v0.8h, v1.8h, #17
1509 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1510 // CHECK-ERROR: ssra v0.4s, v1.4s, #33
1512 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
1513 // CHECK-ERROR: ssra v0.2d, v1.2d, #65
1516 //------------------------------------------------------------------------------
1517 // Vector shift right and accumulate by immediate
1518 //------------------------------------------------------------------------------
1519 usra v0.8b, v1.8h, #3
1520 usra v0.4h, v1.4s, #3
1521 usra v0.2s, v1.2d, #3
1522 usra v0.16b, v1.16b, #9
1523 usra v0.8h, v1.8h, #17
1524 usra v0.4s, v1.4s, #33
1525 usra v0.2d, v1.2d, #65
1527 // CHECK-ERROR: error: invalid operand for instruction
1528 // CHECK-ERROR: usra v0.8b, v1.8h, #3
1530 // CHECK-ERROR: error: invalid operand for instruction
1531 // CHECK-ERROR: usra v0.4h, v1.4s, #3
1533 // CHECK-ERROR: error: invalid operand for instruction
1534 // CHECK-ERROR: usra v0.2s, v1.2d, #3
1536 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1537 // CHECK-ERROR: usra v0.16b, v1.16b, #9
1539 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1540 // CHECK-ERROR: usra v0.8h, v1.8h, #17
1542 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1543 // CHECK-ERROR: usra v0.4s, v1.4s, #33
1545 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
1546 // CHECK-ERROR: usra v0.2d, v1.2d, #65
1549 //------------------------------------------------------------------------------
1550 // Vector rounding shift right by immediate
1551 //------------------------------------------------------------------------------
1552 srshr v0.8b, v1.8h, #3
1553 srshr v0.4h, v1.4s, #3
1554 srshr v0.2s, v1.2d, #3
1555 srshr v0.16b, v1.16b, #9
1556 srshr v0.8h, v1.8h, #17
1557 srshr v0.4s, v1.4s, #33
1558 srshr v0.2d, v1.2d, #65
1560 // CHECK-ERROR: error: invalid operand for instruction
1561 // CHECK-ERROR: srshr v0.8b, v1.8h, #3
1563 // CHECK-ERROR: error: invalid operand for instruction
1564 // CHECK-ERROR: srshr v0.4h, v1.4s, #3
1566 // CHECK-ERROR: error: invalid operand for instruction
1567 // CHECK-ERROR: srshr v0.2s, v1.2d, #3
1569 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1570 // CHECK-ERROR: srshr v0.16b, v1.16b, #9
1572 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1573 // CHECK-ERROR: srshr v0.8h, v1.8h, #17
1575 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1576 // CHECK-ERROR: srshr v0.4s, v1.4s, #33
1578 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
1579 // CHECK-ERROR: srshr v0.2d, v1.2d, #65
1582 //------------------------------------------------------------------------------
1583 // Vecotr rounding shift right by immediate
1584 //------------------------------------------------------------------------------
1585 urshr v0.8b, v1.8h, #3
1586 urshr v0.4h, v1.4s, #3
1587 urshr v0.2s, v1.2d, #3
1588 urshr v0.16b, v1.16b, #9
1589 urshr v0.8h, v1.8h, #17
1590 urshr v0.4s, v1.4s, #33
1591 urshr v0.2d, v1.2d, #65
1593 // CHECK-ERROR: error: invalid operand for instruction
1594 // CHECK-ERROR: urshr v0.8b, v1.8h, #3
1596 // CHECK-ERROR: error: invalid operand for instruction
1597 // CHECK-ERROR: urshr v0.4h, v1.4s, #3
1599 // CHECK-ERROR: error: invalid operand for instruction
1600 // CHECK-ERROR: urshr v0.2s, v1.2d, #3
1602 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1603 // CHECK-ERROR: urshr v0.16b, v1.16b, #9
1605 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1606 // CHECK-ERROR: urshr v0.8h, v1.8h, #17
1608 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1609 // CHECK-ERROR: urshr v0.4s, v1.4s, #33
1611 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
1612 // CHECK-ERROR: urshr v0.2d, v1.2d, #65
1615 //------------------------------------------------------------------------------
1616 // Vector rounding shift right and accumulate by immediate
1617 //------------------------------------------------------------------------------
1618 srsra v0.8b, v1.8h, #3
1619 srsra v0.4h, v1.4s, #3
1620 srsra v0.2s, v1.2d, #3
1621 srsra v0.16b, v1.16b, #9
1622 srsra v0.8h, v1.8h, #17
1623 srsra v0.4s, v1.4s, #33
1624 srsra v0.2d, v1.2d, #65
1626 // CHECK-ERROR: error: invalid operand for instruction
1627 // CHECK-ERROR: srsra v0.8b, v1.8h, #3
1629 // CHECK-ERROR: error: invalid operand for instruction
1630 // CHECK-ERROR: srsra v0.4h, v1.4s, #3
1632 // CHECK-ERROR: error: invalid operand for instruction
1633 // CHECK-ERROR: srsra v0.2s, v1.2d, #3
1635 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1636 // CHECK-ERROR: srsra v0.16b, v1.16b, #9
1638 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1639 // CHECK-ERROR: srsra v0.8h, v1.8h, #17
1641 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1642 // CHECK-ERROR: srsra v0.4s, v1.4s, #33
1644 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
1645 // CHECK-ERROR: srsra v0.2d, v1.2d, #65
1648 //------------------------------------------------------------------------------
1649 // Vector rounding shift right and accumulate by immediate
1650 //------------------------------------------------------------------------------
1651 ursra v0.8b, v1.8h, #3
1652 ursra v0.4h, v1.4s, #3
1653 ursra v0.2s, v1.2d, #3
1654 ursra v0.16b, v1.16b, #9
1655 ursra v0.8h, v1.8h, #17
1656 ursra v0.4s, v1.4s, #33
1657 ursra v0.2d, v1.2d, #65
1659 // CHECK-ERROR: error: invalid operand for instruction
1660 // CHECK-ERROR: ursra v0.8b, v1.8h, #3
1662 // CHECK-ERROR: error: invalid operand for instruction
1663 // CHECK-ERROR: ursra v0.4h, v1.4s, #3
1665 // CHECK-ERROR: error: invalid operand for instruction
1666 // CHECK-ERROR: ursra v0.2s, v1.2d, #3
1668 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1669 // CHECK-ERROR: ursra v0.16b, v1.16b, #9
1671 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1672 // CHECK-ERROR: ursra v0.8h, v1.8h, #17
1674 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1675 // CHECK-ERROR: ursra v0.4s, v1.4s, #33
1677 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
1678 // CHECK-ERROR: ursra v0.2d, v1.2d, #65
1681 //------------------------------------------------------------------------------
1682 // Vector shift right and insert by immediate
1683 //------------------------------------------------------------------------------
1684 sri v0.8b, v1.8h, #3
1685 sri v0.4h, v1.4s, #3
1686 sri v0.2s, v1.2d, #3
1687 sri v0.16b, v1.16b, #9
1688 sri v0.8h, v1.8h, #17
1689 sri v0.4s, v1.4s, #33
1690 sri v0.2d, v1.2d, #65
1692 // CHECK-ERROR: error: invalid operand for instruction
1693 // CHECK-ERROR: sri v0.8b, v1.8h, #3
1695 // CHECK-ERROR: error: invalid operand for instruction
1696 // CHECK-ERROR: sri v0.4h, v1.4s, #3
1698 // CHECK-ERROR: error: invalid operand for instruction
1699 // CHECK-ERROR: sri v0.2s, v1.2d, #3
1701 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1702 // CHECK-ERROR: sri v0.16b, v1.16b, #9
1704 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1705 // CHECK-ERROR: sri v0.8h, v1.8h, #17
1707 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1708 // CHECK-ERROR: sri v0.4s, v1.4s, #33
1710 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
1711 // CHECK-ERROR: sri v0.2d, v1.2d, #65
1714 //------------------------------------------------------------------------------
1715 // Vector shift left and insert by immediate
1716 //------------------------------------------------------------------------------
1717 sli v0.8b, v1.8h, #3
1718 sli v0.4h, v1.4s, #3
1719 sli v0.2s, v1.2d, #3
1720 sli v0.16b, v1.16b, #8
1721 sli v0.8h, v1.8h, #16
1722 sli v0.4s, v1.4s, #32
1723 sli v0.2d, v1.2d, #64
1725 // CHECK-ERROR: error: invalid operand for instruction
1726 // CHECK-ERROR: sli v0.8b, v1.8h, #3
1728 // CHECK-ERROR: error: invalid operand for instruction
1729 // CHECK-ERROR: sli v0.4h, v1.4s, #3
1731 // CHECK-ERROR: error: invalid operand for instruction
1732 // CHECK-ERROR: sli v0.2s, v1.2d, #3
1734 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
1735 // CHECK-ERROR: sli v0.16b, v1.16b, #8
1737 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]
1738 // CHECK-ERROR: sli v0.8h, v1.8h, #16
1740 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
1741 // CHECK-ERROR: sli v0.4s, v1.4s, #32
1743 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]
1744 // CHECK-ERROR: sli v0.2d, v1.2d, #64
1747 //------------------------------------------------------------------------------
1748 // Vector saturating shift left unsigned by immediate
1749 //------------------------------------------------------------------------------
1750 sqshlu v0.8b, v1.8h, #3
1751 sqshlu v0.4h, v1.4s, #3
1752 sqshlu v0.2s, v1.2d, #3
1753 sqshlu v0.16b, v1.16b, #8
1754 sqshlu v0.8h, v1.8h, #16
1755 sqshlu v0.4s, v1.4s, #32
1756 sqshlu v0.2d, v1.2d, #64
1758 // CHECK-ERROR: error: invalid operand for instruction
1759 // CHECK-ERROR: sqshlu v0.8b, v1.8h, #3
1761 // CHECK-ERROR: error: invalid operand for instruction
1762 // CHECK-ERROR: sqshlu v0.4h, v1.4s, #3
1764 // CHECK-ERROR: error: invalid operand for instruction
1765 // CHECK-ERROR: sqshlu v0.2s, v1.2d, #3
1767 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
1768 // CHECK-ERROR: sqshlu v0.16b, v1.16b, #8
1770 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]
1771 // CHECK-ERROR: sqshlu v0.8h, v1.8h, #16
1773 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
1774 // CHECK-ERROR: sqshlu v0.4s, v1.4s, #32
1776 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]
1777 // CHECK-ERROR: sqshlu v0.2d, v1.2d, #64
1780 //------------------------------------------------------------------------------
1781 // Vector saturating shift left by immediate
1782 //------------------------------------------------------------------------------
1783 sqshl v0.8b, v1.8h, #3
1784 sqshl v0.4h, v1.4s, #3
1785 sqshl v0.2s, v1.2d, #3
1786 sqshl v0.16b, v1.16b, #8
1787 sqshl v0.8h, v1.8h, #16
1788 sqshl v0.4s, v1.4s, #32
1789 sqshl v0.2d, v1.2d, #64
1791 // CHECK-ERROR: error: invalid operand for instruction
1792 // CHECK-ERROR: sqshl v0.8b, v1.8h, #3
1794 // CHECK-ERROR: error: invalid operand for instruction
1795 // CHECK-ERROR: sqshl v0.4h, v1.4s, #3
1797 // CHECK-ERROR: error: invalid operand for instruction
1798 // CHECK-ERROR: sqshl v0.2s, v1.2d, #3
1800 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
1801 // CHECK-ERROR: sqshl v0.16b, v1.16b, #8
1803 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]
1804 // CHECK-ERROR: sqshl v0.8h, v1.8h, #16
1806 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
1807 // CHECK-ERROR: sqshl v0.4s, v1.4s, #32
1809 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]
1810 // CHECK-ERROR: sqshl v0.2d, v1.2d, #64
1813 //------------------------------------------------------------------------------
1814 // Vector saturating shift left by immediate
1815 //------------------------------------------------------------------------------
1816 uqshl v0.8b, v1.8h, #3
1817 uqshl v0.4h, v1.4s, #3
1818 uqshl v0.2s, v1.2d, #3
1819 uqshl v0.16b, v1.16b, #8
1820 uqshl v0.8h, v1.8h, #16
1821 uqshl v0.4s, v1.4s, #32
1822 uqshl v0.2d, v1.2d, #64
1824 // CHECK-ERROR: error: invalid operand for instruction
1825 // CHECK-ERROR: uqshl v0.8b, v1.8h, #3
1827 // CHECK-ERROR: error: invalid operand for instruction
1828 // CHECK-ERROR: uqshl v0.4h, v1.4s, #3
1830 // CHECK-ERROR: error: invalid operand for instruction
1831 // CHECK-ERROR: uqshl v0.2s, v1.2d, #3
1833 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
1834 // CHECK-ERROR: uqshl v0.16b, v1.16b, #8
1836 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]
1837 // CHECK-ERROR: uqshl v0.8h, v1.8h, #16
1839 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
1840 // CHECK-ERROR: uqshl v0.4s, v1.4s, #32
1842 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]
1843 // CHECK-ERROR: uqshl v0.2d, v1.2d, #64
1846 //------------------------------------------------------------------------------
1847 // Vector shift right narrow by immediate
1848 //------------------------------------------------------------------------------
1849 shrn v0.8b, v1.8b, #3
1850 shrn v0.4h, v1.4h, #3
1851 shrn v0.2s, v1.2s, #3
1852 shrn2 v0.16b, v1.8h, #17
1853 shrn2 v0.8h, v1.4s, #33
1854 shrn2 v0.4s, v1.2d, #65
1856 // CHECK-ERROR: error: invalid operand for instruction
1857 // CHECK-ERROR: shrn v0.8b, v1.8b, #3
1859 // CHECK-ERROR: error: invalid operand for instruction
1860 // CHECK-ERROR: shrn v0.4h, v1.4h, #3
1862 // CHECK-ERROR: error: invalid operand for instruction
1863 // CHECK-ERROR: shrn v0.2s, v1.2s, #3
1865 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1866 // CHECK-ERROR: shrn2 v0.16b, v1.8h, #17
1868 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1869 // CHECK-ERROR: shrn2 v0.8h, v1.4s, #33
1871 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1872 // CHECK-ERROR: shrn2 v0.4s, v1.2d, #65
1875 //------------------------------------------------------------------------------
1876 // Vector saturating shift right unsigned narrow by immediate
1877 //------------------------------------------------------------------------------
1878 sqshrun v0.8b, v1.8b, #3
1879 sqshrun v0.4h, v1.4h, #3
1880 sqshrun v0.2s, v1.2s, #3
1881 sqshrun2 v0.16b, v1.8h, #17
1882 sqshrun2 v0.8h, v1.4s, #33
1883 sqshrun2 v0.4s, v1.2d, #65
1885 // CHECK-ERROR: error: invalid operand for instruction
1886 // CHECK-ERROR: sqshrun v0.8b, v1.8b, #3
1888 // CHECK-ERROR: error: invalid operand for instruction
1889 // CHECK-ERROR: sqshrun v0.4h, v1.4h, #3
1891 // CHECK-ERROR: error: invalid operand for instruction
1892 // CHECK-ERROR: sqshrun v0.2s, v1.2s, #3
1894 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1895 // CHECK-ERROR: sqshrun2 v0.16b, v1.8h, #17
1897 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1898 // CHECK-ERROR: sqshrun2 v0.8h, v1.4s, #33
1900 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1901 // CHECK-ERROR: sqshrun2 v0.4s, v1.2d, #65
1904 //------------------------------------------------------------------------------
1905 // Vector rounding shift right narrow by immediate
1906 //------------------------------------------------------------------------------
1907 rshrn v0.8b, v1.8b, #3
1908 rshrn v0.4h, v1.4h, #3
1909 rshrn v0.2s, v1.2s, #3
1910 rshrn2 v0.16b, v1.8h, #17
1911 rshrn2 v0.8h, v1.4s, #33
1912 rshrn2 v0.4s, v1.2d, #65
1914 // CHECK-ERROR: error: invalid operand for instruction
1915 // CHECK-ERROR: rshrn v0.8b, v1.8b, #3
1917 // CHECK-ERROR: error: invalid operand for instruction
1918 // CHECK-ERROR: rshrn v0.4h, v1.4h, #3
1920 // CHECK-ERROR: error: invalid operand for instruction
1921 // CHECK-ERROR: rshrn v0.2s, v1.2s, #3
1923 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1924 // CHECK-ERROR: rshrn2 v0.16b, v1.8h, #17
1926 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1927 // CHECK-ERROR: rshrn2 v0.8h, v1.4s, #33
1929 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1930 // CHECK-ERROR: rshrn2 v0.4s, v1.2d, #65
1933 //------------------------------------------------------------------------------
1934 // Vector saturating shift right rounded unsigned narrow by immediate
1935 //------------------------------------------------------------------------------
1936 sqrshrun v0.8b, v1.8b, #3
1937 sqrshrun v0.4h, v1.4h, #3
1938 sqrshrun v0.2s, v1.2s, #3
1939 sqrshrun2 v0.16b, v1.8h, #17
1940 sqrshrun2 v0.8h, v1.4s, #33
1941 sqrshrun2 v0.4s, v1.2d, #65
1943 // CHECK-ERROR: error: invalid operand for instruction
1944 // CHECK-ERROR: sqrshrun v0.8b, v1.8b, #3
1946 // CHECK-ERROR: error: invalid operand for instruction
1947 // CHECK-ERROR: sqrshrun v0.4h, v1.4h, #3
1949 // CHECK-ERROR: error: invalid operand for instruction
1950 // CHECK-ERROR: sqrshrun v0.2s, v1.2s, #3
1952 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1953 // CHECK-ERROR: sqrshrun2 v0.16b, v1.8h, #17
1955 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1956 // CHECK-ERROR: sqrshrun2 v0.8h, v1.4s, #33
1958 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1959 // CHECK-ERROR: sqrshrun2 v0.4s, v1.2d, #65
1962 //------------------------------------------------------------------------------
1963 // Vector saturating shift right narrow by immediate
1964 //------------------------------------------------------------------------------
1965 sqshrn v0.8b, v1.8b, #3
1966 sqshrn v0.4h, v1.4h, #3
1967 sqshrn v0.2s, v1.2s, #3
1968 sqshrn2 v0.16b, v1.8h, #17
1969 sqshrn2 v0.8h, v1.4s, #33
1970 sqshrn2 v0.4s, v1.2d, #65
1972 // CHECK-ERROR: error: invalid operand for instruction
1973 // CHECK-ERROR: sqshrn v0.8b, v1.8b, #3
1975 // CHECK-ERROR: error: invalid operand for instruction
1976 // CHECK-ERROR: sqshrn v0.4h, v1.4h, #3
1978 // CHECK-ERROR: error: invalid operand for instruction
1979 // CHECK-ERROR: sqshrn v0.2s, v1.2s, #3
1981 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
1982 // CHECK-ERROR: sqshrn2 v0.16b, v1.8h, #17
1984 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
1985 // CHECK-ERROR: sqshrn2 v0.8h, v1.4s, #33
1987 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
1988 // CHECK-ERROR: sqshrn2 v0.4s, v1.2d, #65
1991 //------------------------------------------------------------------------------
1992 // Vector saturating shift right narrow by immediate
1993 //------------------------------------------------------------------------------
1994 uqshrn v0.8b, v1.8b, #3
1995 uqshrn v0.4h, v1.4h, #3
1996 uqshrn v0.2s, v1.2s, #3
1997 uqshrn2 v0.16b, v1.8h, #17
1998 uqshrn2 v0.8h, v1.4s, #33
1999 uqshrn2 v0.4s, v1.2d, #65
2001 // CHECK-ERROR: error: invalid operand for instruction
2002 // CHECK-ERROR: uqshrn v0.8b, v1.8b, #3
2004 // CHECK-ERROR: error: invalid operand for instruction
2005 // CHECK-ERROR: uqshrn v0.4h, v1.4h, #3
2007 // CHECK-ERROR: error: invalid operand for instruction
2008 // CHECK-ERROR: uqshrn v0.2s, v1.2s, #3
2010 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
2011 // CHECK-ERROR: uqshrn2 v0.16b, v1.8h, #17
2013 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
2014 // CHECK-ERROR: uqshrn2 v0.8h, v1.4s, #33
2016 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
2017 // CHECK-ERROR: uqshrn2 v0.4s, v1.2d, #65
2020 //------------------------------------------------------------------------------
2021 // Vector saturating shift right rounded narrow by immediate
2022 //------------------------------------------------------------------------------
2023 sqrshrn v0.8b, v1.8b, #3
2024 sqrshrn v0.4h, v1.4h, #3
2025 sqrshrn v0.2s, v1.2s, #3
2026 sqrshrn2 v0.16b, v1.8h, #17
2027 sqrshrn2 v0.8h, v1.4s, #33
2028 sqrshrn2 v0.4s, v1.2d, #65
2030 // CHECK-ERROR: error: invalid operand for instruction
2031 // CHECK-ERROR: sqrshrn v0.8b, v1.8b, #3
2033 // CHECK-ERROR: error: invalid operand for instruction
2034 // CHECK-ERROR: sqrshrn v0.4h, v1.4h, #3
2036 // CHECK-ERROR: error: invalid operand for instruction
2037 // CHECK-ERROR: sqrshrn v0.2s, v1.2s, #3
2039 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
2040 // CHECK-ERROR: sqrshrn2 v0.16b, v1.8h, #17
2042 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
2043 // CHECK-ERROR: sqrshrn2 v0.8h, v1.4s, #33
2045 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
2046 // CHECK-ERROR: sqrshrn2 v0.4s, v1.2d, #65
2049 //------------------------------------------------------------------------------
2050 // Vector saturating shift right rounded narrow by immediate
2051 //------------------------------------------------------------------------------
2052 uqrshrn v0.8b, v1.8b, #3
2053 uqrshrn v0.4h, v1.4h, #3
2054 uqrshrn v0.2s, v1.2s, #3
2055 uqrshrn2 v0.16b, v1.8h, #17
2056 uqrshrn2 v0.8h, v1.4s, #33
2057 uqrshrn2 v0.4s, v1.2d, #65
2059 // CHECK-ERROR: error: invalid operand for instruction
2060 // CHECK-ERROR: uqrshrn v0.8b, v1.8b, #3
2062 // CHECK-ERROR: error: invalid operand for instruction
2063 // CHECK-ERROR: uqrshrn v0.4h, v1.4h, #3
2065 // CHECK-ERROR: error: invalid operand for instruction
2066 // CHECK-ERROR: uqrshrn v0.2s, v1.2s, #3
2068 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
2069 // CHECK-ERROR: uqrshrn2 v0.16b, v1.8h, #17
2071 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
2072 // CHECK-ERROR: uqrshrn2 v0.8h, v1.4s, #33
2074 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
2075 // CHECK-ERROR: uqrshrn2 v0.4s, v1.2d, #65
2078 //------------------------------------------------------------------------------
2079 // Fixed-point convert to floating-point
2080 //------------------------------------------------------------------------------
2081 scvtf v0.2s, v1.2d, #3
2082 scvtf v0.4s, v1.4h, #3
2083 scvtf v0.2d, v1.2s, #3
2084 ucvtf v0.2s, v1.2s, #33
2085 ucvtf v0.4s, v1.4s, #33
2086 ucvtf v0.2d, v1.2d, #65
2088 // CHECK-ERROR: error: invalid operand for instruction
2089 // CHECK-ERROR: scvtf v0.2s, v1.2d, #3
2091 // CHECK-ERROR: error: invalid operand for instruction
2092 // CHECK-ERROR: scvtf v0.4s, v1.4h, #3
2094 // CHECK-ERROR: error: invalid operand for instruction
2095 // CHECK-ERROR: scvtf v0.2d, v1.2s, #3
2097 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
2098 // CHECK-ERROR: ucvtf v0.2s, v1.2s, #33
2100 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
2101 // CHECK-ERROR: ucvtf v0.4s, v1.4s, #33
2103 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
2104 // CHECK-ERROR: ucvtf v0.2d, v1.2d, #65
2107 //------------------------------------------------------------------------------
2108 // Floating-point convert to fixed-point
2109 //------------------------------------------------------------------------------
2110 fcvtzs v0.2s, v1.2d, #3
2111 fcvtzs v0.4s, v1.4h, #3
2112 fcvtzs v0.2d, v1.2s, #3
2113 fcvtzu v0.2s, v1.2s, #33
2114 fcvtzu v0.4s, v1.4s, #33
2115 fcvtzu v0.2d, v1.2d, #65
2117 // CHECK-ERROR: error: invalid operand for instruction
2118 // CHECK-ERROR: fcvtzs v0.2s, v1.2d, #3
2120 // CHECK-ERROR: error: invalid operand for instruction
2121 // CHECK-ERROR: fcvtzs v0.4s, v1.4h, #3
2123 // CHECK-ERROR: error: invalid operand for instruction
2124 // CHECK-ERROR: fcvtzs v0.2d, v1.2s, #3
2126 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
2127 // CHECK-ERROR: fcvtzu v0.2s, v1.2s, #33
2129 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
2130 // CHECK-ERROR: fcvtzu v0.4s, v1.4s, #33
2132 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
2133 // CHECK-ERROR: fcvtzu v0.2d, v1.2d, #65
2136 //----------------------------------------------------------------------
2137 // Vector operation on 3 operands with different types
2138 //----------------------------------------------------------------------
2140 // Mismatched and invalid vector types
2141 saddl v0.8h, v1.8h, v2.8b
2142 saddl v0.4s, v1.4s, v2.4h
2143 saddl v0.2d, v1.2d, v2.2s
2145 // CHECK-ERROR: error: invalid operand for instruction
2146 // CHECK-ERROR: saddl v0.8h, v1.8h, v2.8b
2148 // CHECK-ERROR: error: invalid operand for instruction
2149 // CHECK-ERROR: saddl v0.4s, v1.4s, v2.4h
2151 // CHECK-ERROR: error: invalid operand for instruction
2152 // CHECK-ERROR: saddl v0.2d, v1.2d, v2.2s
2155 saddl2 v0.4s, v1.8s, v2.8h
2156 saddl2 v0.8h, v1.16h, v2.16b
2157 saddl2 v0.2d, v1.4d, v2.4s
2159 // CHECK-ERROR: error: invalid operand for instruction
2160 // CHECK-ERROR: saddl2 v0.4s, v1.8s, v2.8h
2162 // CHECK-ERROR: error: invalid operand for instruction
2163 // CHECK-ERROR: saddl2 v0.8h, v1.16h, v2.16b
2165 // CHECK-ERROR: error: invalid operand for instruction
2166 // CHECK-ERROR: saddl2 v0.2d, v1.4d, v2.4s
2169 uaddl v0.8h, v1.8h, v2.8b
2170 uaddl v0.4s, v1.4s, v2.4h
2171 uaddl v0.2d, v1.2d, v2.2s
2173 // CHECK-ERROR: error: invalid operand for instruction
2174 // CHECK-ERROR: uaddl v0.8h, v1.8h, v2.8b
2176 // CHECK-ERROR: error: invalid operand for instruction
2177 // CHECK-ERROR: uaddl v0.4s, v1.4s, v2.4h
2179 // CHECK-ERROR: error: invalid operand for instruction
2180 // CHECK-ERROR: uaddl v0.2d, v1.2d, v2.2s
2183 uaddl2 v0.8h, v1.16h, v2.16b
2184 uaddl2 v0.4s, v1.8s, v2.8h
2185 uaddl2 v0.2d, v1.4d, v2.4s
2187 // CHECK-ERROR: error: invalid operand for instruction
2188 // CHECK-ERROR: uaddl2 v0.8h, v1.16h, v2.16b
2190 // CHECK-ERROR: error: invalid operand for instruction
2191 // CHECK-ERROR: uaddl2 v0.4s, v1.8s, v2.8h
2193 // CHECK-ERROR: error: invalid operand for instruction
2194 // CHECK-ERROR: uaddl2 v0.2d, v1.4d, v2.4s
2197 ssubl v0.8h, v1.8h, v2.8b
2198 ssubl v0.4s, v1.4s, v2.4h
2199 ssubl v0.2d, v1.2d, v2.2s
2201 // CHECK-ERROR: error: invalid operand for instruction
2202 // CHECK-ERROR: ssubl v0.8h, v1.8h, v2.8b
2204 // CHECK-ERROR: error: invalid operand for instruction
2205 // CHECK-ERROR: ssubl v0.4s, v1.4s, v2.4h
2207 // CHECK-ERROR: error: invalid operand for instruction
2208 // CHECK-ERROR: ssubl v0.2d, v1.2d, v2.2s
2211 ssubl2 v0.8h, v1.16h, v2.16b
2212 ssubl2 v0.4s, v1.8s, v2.8h
2213 ssubl2 v0.2d, v1.4d, v2.4s
2215 // CHECK-ERROR: error: invalid operand for instruction
2216 // CHECK-ERROR: ssubl2 v0.8h, v1.16h, v2.16b
2218 // CHECK-ERROR: error: invalid operand for instruction
2219 // CHECK-ERROR: ssubl2 v0.4s, v1.8s, v2.8h
2221 // CHECK-ERROR: error: invalid operand for instruction
2222 // CHECK-ERROR: ssubl2 v0.2d, v1.4d, v2.4s
2225 usubl v0.8h, v1.8h, v2.8b
2226 usubl v0.4s, v1.4s, v2.4h
2227 usubl v0.2d, v1.2d, v2.2s
2229 // CHECK-ERROR: error: invalid operand for instruction
2230 // CHECK-ERROR: usubl v0.8h, v1.8h, v2.8b
2232 // CHECK-ERROR: error: invalid operand for instruction
2233 // CHECK-ERROR: usubl v0.4s, v1.4s, v2.4h
2235 // CHECK-ERROR: error: invalid operand for instruction
2236 // CHECK-ERROR: usubl v0.2d, v1.2d, v2.2s
2239 usubl2 v0.8h, v1.16h, v2.16b
2240 usubl2 v0.4s, v1.8s, v2.8h
2241 usubl2 v0.2d, v1.4d, v2.4s
2243 // CHECK-ERROR: error: invalid operand for instruction
2244 // CHECK-ERROR: usubl2 v0.8h, v1.16h, v2.16b
2246 // CHECK-ERROR: error: invalid operand for instruction
2247 // CHECK-ERROR: usubl2 v0.4s, v1.8s, v2.8h
2249 // CHECK-ERROR: error: invalid operand for instruction
2250 // CHECK-ERROR: usubl2 v0.2d, v1.4d, v2.4s
2253 sabal v0.8h, v1.8h, v2.8b
2254 sabal v0.4s, v1.4s, v2.4h
2255 sabal v0.2d, v1.2d, v2.2s
2257 // CHECK-ERROR: error: invalid operand for instruction
2258 // CHECK-ERROR: sabal v0.8h, v1.8h, v2.8b
2260 // CHECK-ERROR: error: invalid operand for instruction
2261 // CHECK-ERROR: sabal v0.4s, v1.4s, v2.4h
2263 // CHECK-ERROR: error: invalid operand for instruction
2264 // CHECK-ERROR: sabal v0.2d, v1.2d, v2.2s
2267 sabal2 v0.8h, v1.16h, v2.16b
2268 sabal2 v0.4s, v1.8s, v2.8h
2269 sabal2 v0.2d, v1.4d, v2.4s
2271 // CHECK-ERROR: error: invalid operand for instruction
2272 // CHECK-ERROR: sabal2 v0.8h, v1.16h, v2.16b
2274 // CHECK-ERROR: error: invalid operand for instruction
2275 // CHECK-ERROR: sabal2 v0.4s, v1.8s, v2.8h
2277 // CHECK-ERROR: error: invalid operand for instruction
2278 // CHECK-ERROR: sabal2 v0.2d, v1.4d, v2.4s
2281 uabal v0.8h, v1.8h, v2.8b
2282 uabal v0.4s, v1.4s, v2.4h
2283 uabal v0.2d, v1.2d, v2.2s
2285 // CHECK-ERROR: error: invalid operand for instruction
2286 // CHECK-ERROR: uabal v0.8h, v1.8h, v2.8b
2288 // CHECK-ERROR: error: invalid operand for instruction
2289 // CHECK-ERROR: uabal v0.4s, v1.4s, v2.4h
2291 // CHECK-ERROR: error: invalid operand for instruction
2292 // CHECK-ERROR: uabal v0.2d, v1.2d, v2.2s
2295 uabal2 v0.8h, v1.16h, v2.16b
2296 uabal2 v0.4s, v1.8s, v2.8h
2297 uabal2 v0.2d, v1.4d, v2.4s
2299 // CHECK-ERROR: error: invalid operand for instruction
2300 // CHECK-ERROR: uabal2 v0.8h, v1.16h, v2.16b
2302 // CHECK-ERROR: error: invalid operand for instruction
2303 // CHECK-ERROR: uabal2 v0.4s, v1.8s, v2.8h
2305 // CHECK-ERROR: error: invalid operand for instruction
2306 // CHECK-ERROR: uabal2 v0.2d, v1.4d, v2.4s
2309 sabdl v0.8h, v1.8h, v2.8b
2310 sabdl v0.4s, v1.4s, v2.4h
2311 sabdl v0.2d, v1.2d, v2.2s
2313 // CHECK-ERROR: error: invalid operand for instruction
2314 // CHECK-ERROR: sabdl v0.8h, v1.8h, v2.8b
2316 // CHECK-ERROR: error: invalid operand for instruction
2317 // CHECK-ERROR: sabdl v0.4s, v1.4s, v2.4h
2319 // CHECK-ERROR: error: invalid operand for instruction
2320 // CHECK-ERROR: sabdl v0.2d, v1.2d, v2.2s
2323 sabdl2 v0.8h, v1.16h, v2.16b
2324 sabdl2 v0.4s, v1.8s, v2.8h
2325 sabdl2 v0.2d, v1.4d, v2.4s
2327 // CHECK-ERROR: error: invalid operand for instruction
2328 // CHECK-ERROR: sabdl2 v0.8h, v1.16h, v2.16b
2330 // CHECK-ERROR: error: invalid operand for instruction
2331 // CHECK-ERROR: sabdl2 v0.4s, v1.8s, v2.8h
2333 // CHECK-ERROR: error: invalid operand for instruction
2334 // CHECK-ERROR: sabdl2 v0.2d, v1.4d, v2.4s
2337 uabdl v0.8h, v1.8h, v2.8b
2338 uabdl v0.4s, v1.4s, v2.4h
2339 uabdl v0.2d, v1.2d, v2.2s
2341 // CHECK-ERROR: error: invalid operand for instruction
2342 // CHECK-ERROR: uabdl v0.8h, v1.8h, v2.8b
2344 // CHECK-ERROR: error: invalid operand for instruction
2345 // CHECK-ERROR: uabdl v0.4s, v1.4s, v2.4h
2347 // CHECK-ERROR: error: invalid operand for instruction
2348 // CHECK-ERROR: uabdl v0.2d, v1.2d, v2.2s
2351 uabdl2 v0.8h, v1.16h, v2.16b
2352 uabdl2 v0.4s, v1.8s, v2.8h
2353 uabdl2 v0.2d, v1.4d, v2.4s
2355 // CHECK-ERROR: error: invalid operand for instruction
2356 // CHECK-ERROR: uabdl2 v0.8h, v1.16h, v2.16b
2358 // CHECK-ERROR: error: invalid operand for instruction
2359 // CHECK-ERROR: uabdl2 v0.4s, v1.8s, v2.8h
2361 // CHECK-ERROR: error: invalid operand for instruction
2362 // CHECK-ERROR: uabdl2 v0.2d, v1.4d, v2.4s
2365 smlal v0.8h, v1.8h, v2.8b
2366 smlal v0.4s, v1.4s, v2.4h
2367 smlal v0.2d, v1.2d, v2.2s
2369 // CHECK-ERROR: error: invalid operand for instruction
2370 // CHECK-ERROR: smlal v0.8h, v1.8h, v2.8b
2372 // CHECK-ERROR: error: invalid operand for instruction
2373 // CHECK-ERROR: smlal v0.4s, v1.4s, v2.4h
2375 // CHECK-ERROR: error: invalid operand for instruction
2376 // CHECK-ERROR: smlal v0.2d, v1.2d, v2.2s
2379 smlal2 v0.8h, v1.16h, v2.16b
2380 smlal2 v0.4s, v1.8s, v2.8h
2381 smlal2 v0.2d, v1.4d, v2.4s
2383 // CHECK-ERROR: error: invalid operand for instruction
2384 // CHECK-ERROR: smlal2 v0.8h, v1.16h, v2.16b
2386 // CHECK-ERROR: error: invalid operand for instruction
2387 // CHECK-ERROR: smlal2 v0.4s, v1.8s, v2.8h
2389 // CHECK-ERROR: error: invalid operand for instruction
2390 // CHECK-ERROR: smlal2 v0.2d, v1.4d, v2.4s
2393 umlal v0.8h, v1.8h, v2.8b
2394 umlal v0.4s, v1.4s, v2.4h
2395 umlal v0.2d, v1.2d, v2.2s
2397 // CHECK-ERROR: error: invalid operand for instruction
2398 // CHECK-ERROR: umlal v0.8h, v1.8h, v2.8b
2400 // CHECK-ERROR: error: invalid operand for instruction
2401 // CHECK-ERROR: umlal v0.4s, v1.4s, v2.4h
2403 // CHECK-ERROR: error: invalid operand for instruction
2404 // CHECK-ERROR: umlal v0.2d, v1.2d, v2.2s
2407 umlal2 v0.8h, v1.16h, v2.16b
2408 umlal2 v0.4s, v1.8s, v2.8h
2409 umlal2 v0.2d, v1.4d, v2.4s
2411 // CHECK-ERROR: error: invalid operand for instruction
2412 // CHECK-ERROR: umlal2 v0.8h, v1.16h, v2.16b
2414 // CHECK-ERROR: error: invalid operand for instruction
2415 // CHECK-ERROR: umlal2 v0.4s, v1.8s, v2.8h
2417 // CHECK-ERROR: error: invalid operand for instruction
2418 // CHECK-ERROR: umlal2 v0.2d, v1.4d, v2.4s
2421 smlsl v0.8h, v1.8h, v2.8b
2422 smlsl v0.4s, v1.4s, v2.4h
2423 smlsl v0.2d, v1.2d, v2.2s
2425 // CHECK-ERROR: error: invalid operand for instruction
2426 // CHECK-ERROR: smlsl v0.8h, v1.8h, v2.8b
2428 // CHECK-ERROR: error: invalid operand for instruction
2429 // CHECK-ERROR: smlsl v0.4s, v1.4s, v2.4h
2431 // CHECK-ERROR: error: invalid operand for instruction
2432 // CHECK-ERROR: smlsl v0.2d, v1.2d, v2.2s
2435 smlsl2 v0.8h, v1.16h, v2.16b
2436 smlsl2 v0.4s, v1.8s, v2.8h
2437 smlsl2 v0.2d, v1.4d, v2.4s
2439 // CHECK-ERROR: error: invalid operand for instruction
2440 // CHECK-ERROR: smlsl2 v0.8h, v1.16h, v2.16b
2442 // CHECK-ERROR: error: invalid operand for instruction
2443 // CHECK-ERROR: smlsl2 v0.4s, v1.8s, v2.8h
2445 // CHECK-ERROR: error: invalid operand for instruction
2446 // CHECK-ERROR: smlsl2 v0.2d, v1.4d, v2.4s
2449 umlsl v0.8h, v1.8h, v2.8b
2450 umlsl v0.4s, v1.4s, v2.4h
2451 umlsl v0.2d, v1.2d, v2.2s
2453 // CHECK-ERROR: error: invalid operand for instruction
2454 // CHECK-ERROR: umlsl v0.8h, v1.8h, v2.8b
2456 // CHECK-ERROR: error: invalid operand for instruction
2457 // CHECK-ERROR: umlsl v0.4s, v1.4s, v2.4h
2459 // CHECK-ERROR: error: invalid operand for instruction
2460 // CHECK-ERROR: umlsl v0.2d, v1.2d, v2.2s
2463 umlsl2 v0.8h, v1.16h, v2.16b
2464 umlsl2 v0.4s, v1.8s, v2.8h
2465 umlsl2 v0.2d, v1.4d, v2.4s
2467 // CHECK-ERROR: error: invalid operand for instruction
2468 // CHECK-ERROR: umlsl2 v0.8h, v1.16h, v2.16b
2470 // CHECK-ERROR: error: invalid operand for instruction
2471 // CHECK-ERROR: umlsl2 v0.4s, v1.8s, v2.8h
2473 // CHECK-ERROR: error: invalid operand for instruction
2474 // CHECK-ERROR: umlsl2 v0.2d, v1.4d, v2.4s
2477 smull v0.8h, v1.8h, v2.8b
2478 smull v0.4s, v1.4s, v2.4h
2479 smull v0.2d, v1.2d, v2.2s
2481 // CHECK-ERROR: error: invalid operand for instruction
2482 // CHECK-ERROR: smull v0.8h, v1.8h, v2.8b
2484 // CHECK-ERROR: error: invalid operand for instruction
2485 // CHECK-ERROR: smull v0.4s, v1.4s, v2.4h
2487 // CHECK-ERROR: error: invalid operand for instruction
2488 // CHECK-ERROR: smull v0.2d, v1.2d, v2.2s
2491 smull2 v0.8h, v1.16h, v2.16b
2492 smull2 v0.4s, v1.8s, v2.8h
2493 smull2 v0.2d, v1.4d, v2.4s
2495 // CHECK-ERROR: error: invalid operand for instruction
2496 // CHECK-ERROR: smull2 v0.8h, v1.16h, v2.16b
2498 // CHECK-ERROR: error: invalid operand for instruction
2499 // CHECK-ERROR: smull2 v0.4s, v1.8s, v2.8h
2501 // CHECK-ERROR: error: invalid operand for instruction
2502 // CHECK-ERROR: smull2 v0.2d, v1.4d, v2.4s
2505 umull v0.8h, v1.8h, v2.8b
2506 umull v0.4s, v1.4s, v2.4h
2507 umull v0.2d, v1.2d, v2.2s
2509 // CHECK-ERROR: error: invalid operand for instruction
2510 // CHECK-ERROR: umull v0.8h, v1.8h, v2.8b
2512 // CHECK-ERROR: error: invalid operand for instruction
2513 // CHECK-ERROR: umull v0.4s, v1.4s, v2.4h
2515 // CHECK-ERROR: error: invalid operand for instruction
2516 // CHECK-ERROR: umull v0.2d, v1.2d, v2.2s
2519 umull2 v0.8h, v1.16h, v2.16b
2520 umull2 v0.4s, v1.8s, v2.8h
2521 umull2 v0.2d, v1.4d, v2.4s
2523 // CHECK-ERROR: error: invalid operand for instruction
2524 // CHECK-ERROR: umull2 v0.8h, v1.16h, v2.16b
2526 // CHECK-ERROR: error: invalid operand for instruction
2527 // CHECK-ERROR: umull2 v0.4s, v1.8s, v2.8h
2529 // CHECK-ERROR: error: invalid operand for instruction
2530 // CHECK-ERROR: umull2 v0.2d, v1.4d, v2.4s
2533 //------------------------------------------------------------------------------
2535 //------------------------------------------------------------------------------
2537 sqdmlal v0.4s, v1.4s, v2.4h
2538 sqdmlal v0.2d, v1.2d, v2.2s
2540 // CHECK-ERROR: error: invalid operand for instruction
2541 // CHECK-ERROR: sqdmlal v0.4s, v1.4s, v2.4h
2543 // CHECK-ERROR: error: invalid operand for instruction
2544 // CHECK-ERROR: sqdmlal v0.2d, v1.2d, v2.2s
2547 sqdmlal2 v0.4s, v1.8s, v2.8h
2548 sqdmlal2 v0.2d, v1.4d, v2.4s
2550 // CHECK-ERROR: error: invalid operand for instruction
2551 // CHECK-ERROR: sqdmlal2 v0.4s, v1.8s, v2.8h
2553 // CHECK-ERROR: error: invalid operand for instruction
2554 // CHECK-ERROR: sqdmlal2 v0.2d, v1.4d, v2.4s
2557 // Mismatched vector types
2558 sqdmlal v0.8h, v1.8b, v2.8b
2559 sqdmlal2 v0.8h, v1.16b, v2.16b
2561 // CHECK-ERROR: error: invalid operand for instruction
2562 // CHECK-ERROR: sqdmlal v0.8h, v1.8b, v2.8b
2564 // CHECK-ERROR: error: invalid operand for instruction
2565 // CHECK-ERROR: sqdmlal2 v0.8h, v1.16b, v2.16b
2568 sqdmlsl v0.4s, v1.4s, v2.4h
2569 sqdmlsl v0.2d, v1.2d, v2.2s
2571 // CHECK-ERROR: error: invalid operand for instruction
2572 // CHECK-ERROR: sqdmlsl v0.4s, v1.4s, v2.4h
2574 // CHECK-ERROR: error: invalid operand for instruction
2575 // CHECK-ERROR: sqdmlsl v0.2d, v1.2d, v2.2s
2578 sqdmlsl2 v0.4s, v1.8s, v2.8h
2579 sqdmlsl2 v0.2d, v1.4d, v2.4s
2581 // CHECK-ERROR: error: invalid operand for instruction
2582 // CHECK-ERROR: sqdmlsl2 v0.4s, v1.8s, v2.8h
2584 // CHECK-ERROR: error: invalid operand for instruction
2585 // CHECK-ERROR: sqdmlsl2 v0.2d, v1.4d, v2.4s
2588 // Mismatched vector types
2589 sqdmlsl v0.8h, v1.8b, v2.8b
2590 sqdmlsl2 v0.8h, v1.16b, v2.16b
2592 // CHECK-ERROR: error: invalid operand for instruction
2593 // CHECK-ERROR: sqdmlsl v0.8h, v1.8b, v2.8b
2595 // CHECK-ERROR: error: invalid operand for instruction
2596 // CHECK-ERROR: sqdmlsl2 v0.8h, v1.16b, v2.16b
2600 sqdmull v0.4s, v1.4s, v2.4h
2601 sqdmull v0.2d, v1.2d, v2.2s
2603 // CHECK-ERROR: error: invalid operand for instruction
2604 // CHECK-ERROR: sqdmull v0.4s, v1.4s, v2.4h
2606 // CHECK-ERROR: error: invalid operand for instruction
2607 // CHECK-ERROR: sqdmull v0.2d, v1.2d, v2.2s
2610 sqdmull2 v0.4s, v1.8s, v2.8h
2611 sqdmull2 v0.2d, v1.4d, v2.4s
2613 // CHECK-ERROR: error: invalid operand for instruction
2614 // CHECK-ERROR: sqdmull2 v0.4s, v1.8s, v2.8h
2616 // CHECK-ERROR: error: invalid operand for instruction
2617 // CHECK-ERROR: sqdmull2 v0.2d, v1.4d, v2.4s
2620 // Mismatched vector types
2621 sqdmull v0.8h, v1.8b, v2.8b
2622 sqdmull2 v0.8h, v1.16b, v2.16b
2624 // CHECK-ERROR: error: invalid operand for instruction
2625 // CHECK-ERROR: sqdmull v0.8h, v1.8b, v2.8b
2627 // CHECK-ERROR: error: invalid operand for instruction
2628 // CHECK-ERROR: sqdmull2 v0.8h, v1.16b, v2.16b
2632 //------------------------------------------------------------------------------
2634 //------------------------------------------------------------------------------
2636 pmull v0.8h, v1.8h, v2.8b
2638 // CHECK-ERROR: error: invalid operand for instruction
2639 // CHECK-ERROR: pmull v0.8h, v1.8h, v2.8b
2642 pmull v0.1q, v1.2d, v2.2d
2644 // CHECK-ERROR: error: invalid operand for instruction
2645 // CHECK-ERROR: pmull v0.1q, v1.2d, v2.2d
2648 // Mismatched vector types
2649 pmull v0.4s, v1.4h, v2.4h
2650 pmull v0.2d, v1.2s, v2.2s
2652 // CHECK-ERROR: error: invalid operand for instruction
2653 // CHECK-ERROR: pmull v0.4s, v1.4h, v2.4h
2655 // CHECK-ERROR: error: invalid operand for instruction
2656 // CHECK-ERROR: pmull v0.2d, v1.2s, v2.2s
2660 pmull2 v0.8h, v1.16h, v2.16b
2662 // CHECK-ERROR: error: invalid operand for instruction
2663 // CHECK-ERROR: pmull2 v0.8h, v1.16h, v2.16b
2666 pmull2 v0.q, v1.2d, v2.2d
2668 // CHECK-ERROR: error: invalid operand for instruction
2669 // CHECK-ERROR: pmull2 v0.q, v1.2d, v2.2d
2672 // Mismatched vector types
2673 pmull2 v0.4s, v1.8h v2.8h
2674 pmull2 v0.2d, v1.4s, v2.4s
2676 // CHECK-AARCH64-ERROR: error: expected comma before next operand
2677 // CHECK-AARCH64-ERROR: pmull2 v0.4s, v1.8h v2.8h
2678 // CHECK-AARCH64-ERROR: ^
2680 // CHECK-ARM64-ERROR: error: unexpected token in argument list
2681 // CHECK-ARM64-ERROR: pmull2 v0.4s, v1.8h v2.8h
2682 // CHECK-ARM64-ERROR: ^
2684 // CHECK-ERROR: error: invalid operand for instruction
2685 // CHECK-ERROR: pmull2 v0.2d, v1.4s, v2.4s
2688 //------------------------------------------------------------------------------
2690 //------------------------------------------------------------------------------
2692 saddw v0.8h, v1.8h, v2.8h
2693 saddw v0.4s, v1.4s, v2.4s
2694 saddw v0.2d, v1.2d, v2.2d
2696 // CHECK-ERROR: error: invalid operand for instruction
2697 // CHECK-ERROR: saddw v0.8h, v1.8h, v2.8h
2699 // CHECK-ERROR: error: invalid operand for instruction
2700 // CHECK-ERROR: saddw v0.4s, v1.4s, v2.4s
2702 // CHECK-ERROR: error: invalid operand for instruction
2703 // CHECK-ERROR: saddw v0.2d, v1.2d, v2.2d
2706 saddw2 v0.8h, v1.8h, v2.16h
2707 saddw2 v0.4s, v1.4s, v2.8s
2708 saddw2 v0.2d, v1.2d, v2.4d
2710 // CHECK-ERROR: error: invalid operand for instruction
2711 // CHECK-ERROR: saddw2 v0.8h, v1.8h, v2.16h
2713 // CHECK-ERROR: error: invalid operand for instruction
2714 // CHECK-ERROR: saddw2 v0.4s, v1.4s, v2.8s
2716 // CHECK-ERROR: error: invalid operand for instruction
2717 // CHECK-ERROR: saddw2 v0.2d, v1.2d, v2.4d
2720 uaddw v0.8h, v1.8h, v2.8h
2721 uaddw v0.4s, v1.4s, v2.4s
2722 uaddw v0.2d, v1.2d, v2.2d
2724 // CHECK-ERROR: error: invalid operand for instruction
2725 // CHECK-ERROR: uaddw v0.8h, v1.8h, v2.8h
2727 // CHECK-ERROR: error: invalid operand for instruction
2728 // CHECK-ERROR: uaddw v0.4s, v1.4s, v2.4s
2730 // CHECK-ERROR: error: invalid operand for instruction
2731 // CHECK-ERROR: uaddw v0.2d, v1.2d, v2.2d
2734 uaddw2 v0.8h, v1.8h, v2.16h
2735 uaddw2 v0.4s, v1.4s, v2.8s
2736 uaddw2 v0.2d, v1.2d, v2.4d
2738 // CHECK-ERROR: error: invalid operand for instruction
2739 // CHECK-ERROR: uaddw2 v0.8h, v1.8h, v2.16h
2741 // CHECK-ERROR: error: invalid operand for instruction
2742 // CHECK-ERROR: uaddw2 v0.4s, v1.4s, v2.8s
2744 // CHECK-ERROR: error: invalid operand for instruction
2745 // CHECK-ERROR: uaddw2 v0.2d, v1.2d, v2.4d
2748 ssubw v0.8h, v1.8h, v2.8h
2749 ssubw v0.4s, v1.4s, v2.4s
2750 ssubw v0.2d, v1.2d, v2.2d
2752 // CHECK-ERROR: error: invalid operand for instruction
2753 // CHECK-ERROR: ssubw v0.8h, v1.8h, v2.8h
2755 // CHECK-ERROR: error: invalid operand for instruction
2756 // CHECK-ERROR: ssubw v0.4s, v1.4s, v2.4s
2758 // CHECK-ERROR: error: invalid operand for instruction
2759 // CHECK-ERROR: ssubw v0.2d, v1.2d, v2.2d
2762 ssubw2 v0.8h, v1.8h, v2.16h
2763 ssubw2 v0.4s, v1.4s, v2.8s
2764 ssubw2 v0.2d, v1.2d, v2.4d
2766 // CHECK-ERROR: error: invalid operand for instruction
2767 // CHECK-ERROR: ssubw2 v0.8h, v1.8h, v2.16h
2769 // CHECK-ERROR: error: invalid operand for instruction
2770 // CHECK-ERROR: ssubw2 v0.4s, v1.4s, v2.8s
2772 // CHECK-ERROR: error: invalid operand for instruction
2773 // CHECK-ERROR: ssubw2 v0.2d, v1.2d, v2.4d
2776 usubw v0.8h, v1.8h, v2.8h
2777 usubw v0.4s, v1.4s, v2.4s
2778 usubw v0.2d, v1.2d, v2.2d
2780 // CHECK-ERROR: error: invalid operand for instruction
2781 // CHECK-ERROR: usubw v0.8h, v1.8h, v2.8h
2783 // CHECK-ERROR: error: invalid operand for instruction
2784 // CHECK-ERROR: usubw v0.4s, v1.4s, v2.4s
2786 // CHECK-ERROR: error: invalid operand for instruction
2787 // CHECK-ERROR: usubw v0.2d, v1.2d, v2.2d
2790 usubw2 v0.8h, v1.8h, v2.16h
2791 usubw2 v0.4s, v1.4s, v2.8s
2792 usubw2 v0.2d, v1.2d, v2.4d
2794 // CHECK-ERROR: error: invalid operand for instruction
2795 // CHECK-ERROR: usubw2 v0.8h, v1.8h, v2.16h
2797 // CHECK-ERROR: error: invalid operand for instruction
2798 // CHECK-ERROR: usubw2 v0.4s, v1.4s, v2.8s
2800 // CHECK-ERROR: error: invalid operand for instruction
2801 // CHECK-ERROR: usubw2 v0.2d, v1.2d, v2.4d
2804 //------------------------------------------------------------------------------
2806 //------------------------------------------------------------------------------
2808 addhn v0.8b, v1.8h, v2.8d
2809 addhn v0.4h, v1.4s, v2.4h
2810 addhn v0.2s, v1.2d, v2.2s
2812 // CHECK-ERROR: error: invalid operand for instruction
2813 // CHECK-ERROR: addhn v0.8b, v1.8h, v2.8d
2815 // CHECK-ERROR: error: invalid operand for instruction
2816 // CHECK-ERROR: addhn v0.4h, v1.4s, v2.4h
2818 // CHECK-ERROR: error: invalid operand for instruction
2819 // CHECK-ERROR: addhn v0.2s, v1.2d, v2.2s
2822 addhn2 v0.16b, v1.8h, v2.8b
2823 addhn2 v0.8h, v1.4s, v2.4h
2824 addhn2 v0.4s, v1.2d, v2.2s
2826 // CHECK-ERROR: error: invalid operand for instruction
2827 // CHECK-ERROR: addhn2 v0.16b, v1.8h, v2.8b
2829 // CHECK-ERROR: error: invalid operand for instruction
2830 // CHECK-ERROR: addhn2 v0.8h, v1.4s, v2.4h
2832 // CHECK-ERROR: error: invalid operand for instruction
2833 // CHECK-ERROR: addhn2 v0.4s, v1.2d, v2.2s
2836 raddhn v0.8b, v1.8h, v2.8b
2837 raddhn v0.4h, v1.4s, v2.4h
2838 raddhn v0.2s, v1.2d, v2.2s
2840 // CHECK-ERROR: error: invalid operand for instruction
2841 // CHECK-ERROR: raddhn v0.8b, v1.8h, v2.8b
2843 // CHECK-ERROR: error: invalid operand for instruction
2844 // CHECK-ERROR: raddhn v0.4h, v1.4s, v2.4h
2846 // CHECK-ERROR: error: invalid operand for instruction
2847 // CHECK-ERROR: raddhn v0.2s, v1.2d, v2.2s
2850 raddhn2 v0.16b, v1.8h, v2.8b
2851 raddhn2 v0.8h, v1.4s, v2.4h
2852 raddhn2 v0.4s, v1.2d, v2.2s
2854 // CHECK-ERROR: error: invalid operand for instruction
2855 // CHECK-ERROR: raddhn2 v0.16b, v1.8h, v2.8b
2857 // CHECK-ERROR: error: invalid operand for instruction
2858 // CHECK-ERROR: raddhn2 v0.8h, v1.4s, v2.4h
2860 // CHECK-ERROR: error: invalid operand for instruction
2861 // CHECK-ERROR: raddhn2 v0.4s, v1.2d, v2.2s
2864 rsubhn v0.8b, v1.8h, v2.8b
2865 rsubhn v0.4h, v1.4s, v2.4h
2866 rsubhn v0.2s, v1.2d, v2.2s
2868 // CHECK-ERROR: error: invalid operand for instruction
2869 // CHECK-ERROR: rsubhn v0.8b, v1.8h, v2.8b
2871 // CHECK-ERROR: error: invalid operand for instruction
2872 // CHECK-ERROR: rsubhn v0.4h, v1.4s, v2.4h
2874 // CHECK-ERROR: error: invalid operand for instruction
2875 // CHECK-ERROR: rsubhn v0.2s, v1.2d, v2.2s
2878 rsubhn2 v0.16b, v1.8h, v2.8b
2879 rsubhn2 v0.8h, v1.4s, v2.4h
2880 rsubhn2 v0.4s, v1.2d, v2.2s
2882 // CHECK-ERROR: error: invalid operand for instruction
2883 // CHECK-ERROR: rsubhn2 v0.16b, v1.8h, v2.8b
2885 // CHECK-ERROR: error: invalid operand for instruction
2886 // CHECK-ERROR: rsubhn2 v0.8h, v1.4s, v2.4h
2888 // CHECK-ERROR: error: invalid operand for instruction
2889 // CHECK-ERROR: rsubhn2 v0.4s, v1.2d, v2.2s
2892 //----------------------------------------------------------------------
2893 // Scalar Reduce Add Pairwise (Integer)
2894 //----------------------------------------------------------------------
2895 // invalid vector types
2899 // CHECK-ERROR: error: invalid operand for instruction
2900 // CHECK-ERROR: addp s0, d1.2d
2902 // CHECK-ERROR: error: invalid operand for instruction
2903 // CHECK-ERROR: addp d0, d1.2s
2906 //----------------------------------------------------------------------
2907 // Scalar Reduce Add Pairwise (Floating Point)
2908 //----------------------------------------------------------------------
2909 // invalid vector types
2913 // CHECK-ERROR: error: invalid operand for instruction
2914 // CHECK-ERROR: faddp s0, d1.2d
2916 // CHECK-ERROR: error: invalid operand for instruction
2917 // CHECK-ERROR: faddp d0, d1.2s
2920 //----------------------------------------------------------------------
2921 // Scalar Reduce Maximum Pairwise (Floating Point)
2922 //----------------------------------------------------------------------
2923 // mismatched and invalid vector types
2928 // CHECK-ERROR: error: invalid operand for instruction
2929 // CHECK-ERROR: fmaxp s0, v1.2d
2931 // CHECK-ERROR: error: invalid operand for instruction
2932 // CHECK-ERROR: fmaxp d31, v2.2s
2934 // CHECK-ERROR: error: invalid operand for instruction
2935 // CHECK-ERROR: fmaxp h3, v2.2s
2939 //----------------------------------------------------------------------
2940 // Scalar Reduce Minimum Pairwise (Floating Point)
2941 //----------------------------------------------------------------------
2942 // mismatched and invalid vector types
2947 // CHECK-ERROR: error: invalid operand for instruction
2948 // CHECK-ERROR: fminp s0, v1.4h
2950 // CHECK-ERROR: error: invalid operand for instruction
2951 // CHECK-ERROR: fminp d31, v2.8h
2953 // CHECK-ERROR: error: invalid operand for instruction
2954 // CHECK-ERROR: fminp b3, v2.2s
2958 //----------------------------------------------------------------------
2959 // Scalar Reduce maxNum Pairwise (Floating Point)
2960 //----------------------------------------------------------------------
2961 // mismatched and invalid vector types
2964 fmaxnmp v1.2s, v2.2s
2966 // CHECK-ERROR: error: invalid operand for instruction
2967 // CHECK-ERROR: fmaxnmp s0, v1.8b
2969 // CHECK-ERROR: error: invalid operand for instruction
2970 // CHECK-ERROR: fmaxnmp d31, v2.16b
2972 // CHECK-ERROR: error: too few operands for instruction
2973 // CHECK-ERROR: fmaxnmp v1.2s, v2.2s
2976 //----------------------------------------------------------------------
2977 // Scalar Reduce minNum Pairwise (Floating Point)
2978 //----------------------------------------------------------------------
2979 // mismatched and invalid vector types
2982 fminnmp v1.4s, v2.2d
2984 // CHECK-ERROR: error: invalid operand for instruction
2985 // CHECK-ERROR: fminnmp s0, v1.2d
2987 // CHECK-ERROR: error: invalid operand for instruction
2988 // CHECK-ERROR: fminnmp d31, v2.4s
2990 // CHECK-ERROR: error: invalid operand for instruction
2991 // CHECK-ERROR: fminnmp v1.4s, v2.2d
2994 mla v0.2d, v1.2d, v16.d[1]
2995 mla v0.2s, v1.2s, v2.s[4]
2996 mla v0.4s, v1.4s, v2.s[4]
2997 mla v0.2h, v1.2h, v2.h[1]
2998 mla v0.4h, v1.4h, v2.h[8]
2999 mla v0.8h, v1.8h, v2.h[8]
3000 mla v0.4h, v1.4h, v16.h[2]
3001 mla v0.8h, v1.8h, v16.h[2]
3003 // CHECK-ERROR: error: invalid operand for instruction
3004 // CHECK-ERROR: mla v0.2d, v1.2d, v16.d[1]
3006 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3007 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3008 // CHECK-ERROR: mla v0.2s, v1.2s, v2.s[4]
3010 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3011 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3012 // CHECK-ERROR: mla v0.4s, v1.4s, v2.s[4]
3014 // CHECK-ERROR: error: invalid operand for instruction
3015 // CHECK-ERROR: mla v0.2h, v1.2h, v2.h[1]
3017 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3018 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3019 // CHECK-ERROR: mla v0.4h, v1.4h, v2.h[8]
3021 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3022 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3023 // CHECK-ERROR: mla v0.8h, v1.8h, v2.h[8]
3025 // CHECK-ERROR: error: invalid operand for instruction
3026 // CHECK-ERROR: mla v0.4h, v1.4h, v16.h[2]
3028 // CHECK-ERROR: error: invalid operand for instruction
3029 // CHECK-ERROR: mla v0.8h, v1.8h, v16.h[2]
3032 mls v0.2d, v1.2d, v16.d[1]
3033 mls v0.2s, v1.2s, v2.s[4]
3034 mls v0.4s, v1.4s, v2.s[4]
3035 mls v0.2h, v1.2h, v2.h[1]
3036 mls v0.4h, v1.4h, v2.h[8]
3037 mls v0.8h, v1.8h, v2.h[8]
3038 mls v0.4h, v1.4h, v16.h[2]
3039 mls v0.8h, v1.8h, v16.h[2]
3041 // CHECK-ERROR: error: invalid operand for instruction
3042 // CHECK-ERROR: mls v0.2d, v1.2d, v16.d[1]
3044 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3045 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3046 // CHECK-ERROR: mls v0.2s, v1.2s, v2.s[4]
3048 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3049 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3050 // CHECK-ERROR: mls v0.4s, v1.4s, v2.s[4]
3052 // CHECK-ERROR: error: invalid operand for instruction
3053 // CHECK-ERROR: mls v0.2h, v1.2h, v2.h[1]
3055 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3056 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3057 // CHECK-ERROR: mls v0.4h, v1.4h, v2.h[8]
3059 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3060 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3061 // CHECK-ERROR: mls v0.8h, v1.8h, v2.h[8]
3063 // CHECK-ERROR: error: invalid operand for instruction
3064 // CHECK-ERROR: mls v0.4h, v1.4h, v16.h[2]
3066 // CHECK-ERROR: error: invalid operand for instruction
3067 // CHECK-ERROR: mls v0.8h, v1.8h, v16.h[2]
3070 fmla v0.4h, v1.4h, v2.h[2]
3071 fmla v0.8h, v1.8h, v2.h[2]
3072 fmla v0.2s, v1.2s, v2.s[4]
3073 fmla v0.2s, v1.2s, v22.s[4]
3074 fmla v3.4s, v8.4s, v2.s[4]
3075 fmla v3.4s, v8.4s, v22.s[4]
3076 fmla v0.2d, v1.2d, v2.d[2]
3077 fmla v0.2d, v1.2d, v22.d[2]
3079 // CHECK-ERROR: error: invalid operand for instruction
3080 // CHECK-ERROR: fmla v0.4h, v1.4h, v2.h[2]
3082 // CHECK-ERROR: error: invalid operand for instruction
3083 // CHECK-ERROR: fmla v0.8h, v1.8h, v2.h[2]
3085 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3086 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3087 // CHECK-ERROR: fmla v0.2s, v1.2s, v2.s[4]
3089 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3090 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3091 // CHECK-ERROR: fmla v0.2s, v1.2s, v22.s[4]
3093 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3094 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3095 // CHECK-ERROR: fmla v3.4s, v8.4s, v2.s[4]
3097 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3098 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3099 // CHECK-ERROR: fmla v3.4s, v8.4s, v22.s[4]
3101 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3102 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3103 // CHECK-ERROR: fmla v0.2d, v1.2d, v2.d[2]
3105 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3106 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3107 // CHECK-ERROR: fmla v0.2d, v1.2d, v22.d[2]
3110 fmls v0.4h, v1.4h, v2.h[2]
3111 fmls v0.8h, v1.8h, v2.h[2]
3112 fmls v0.2s, v1.2s, v2.s[4]
3113 fmls v0.2s, v1.2s, v22.s[4]
3114 fmls v3.4s, v8.4s, v2.s[4]
3115 fmls v3.4s, v8.4s, v22.s[4]
3116 fmls v0.2d, v1.2d, v2.d[2]
3117 fmls v0.2d, v1.2d, v22.d[2]
3119 // CHECK-ERROR: error: invalid operand for instruction
3120 // CHECK-ERROR: fmls v0.4h, v1.4h, v2.h[2]
3122 // CHECK-ERROR: error: invalid operand for instruction
3123 // CHECK-ERROR: fmls v0.8h, v1.8h, v2.h[2]
3125 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3126 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3127 // CHECK-ERROR: fmls v0.2s, v1.2s, v2.s[4]
3129 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3130 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3131 // CHECK-ERROR: fmls v0.2s, v1.2s, v22.s[4]
3133 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3134 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3135 // CHECK-ERROR: fmls v3.4s, v8.4s, v2.s[4]
3137 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3138 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3139 // CHECK-ERROR: fmls v3.4s, v8.4s, v22.s[4]
3141 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3142 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3143 // CHECK-ERROR: fmls v0.2d, v1.2d, v2.d[2]
3145 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3146 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3147 // CHECK-ERROR: fmls v0.2d, v1.2d, v22.d[2]
3150 smlal v0.4h, v1.4h, v2.h[2]
3151 smlal v0.4s, v1.4h, v2.h[8]
3152 smlal v0.4s, v1.4h, v16.h[2]
3153 smlal v0.2s, v1.2s, v2.s[1]
3154 smlal v0.2d, v1.2s, v2.s[4]
3155 smlal v0.2d, v1.2s, v22.s[4]
3156 smlal2 v0.4h, v1.8h, v1.h[2]
3157 smlal2 v0.4s, v1.8h, v1.h[8]
3158 smlal2 v0.4s, v1.8h, v16.h[2]
3159 smlal2 v0.2s, v1.4s, v1.s[2]
3160 smlal2 v0.2d, v1.4s, v1.s[4]
3161 smlal2 v0.2d, v1.4s, v22.s[4]
3163 // CHECK-ERROR: error: invalid operand for instruction
3164 // CHECK-ERROR: smlal v0.4h, v1.4h, v2.h[2]
3166 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3167 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3168 // CHECK-ERROR: smlal v0.4s, v1.4h, v2.h[8]
3170 // CHECK-ERROR: error: invalid operand for instruction
3171 // CHECK-ERROR: smlal v0.4s, v1.4h, v16.h[2]
3173 // CHECK-ERROR: error: invalid operand for instruction
3174 // CHECK-ERROR: smlal v0.2s, v1.2s, v2.s[1]
3176 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3177 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3178 // CHECK-ERROR: smlal v0.2d, v1.2s, v2.s[4]
3180 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3181 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3182 // CHECK-ERROR: smlal v0.2d, v1.2s, v22.s[4]
3184 // CHECK-ERROR: error: invalid operand for instruction
3185 // CHECK-ERROR: smlal2 v0.4h, v1.8h, v1.h[2]
3187 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3188 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3189 // CHECK-ERROR: smlal2 v0.4s, v1.8h, v1.h[8]
3191 // CHECK-ERROR: error: invalid operand for instruction
3192 // CHECK-ERROR: smlal2 v0.4s, v1.8h, v16.h[2]
3194 // CHECK-ERROR: error: invalid operand for instruction
3195 // CHECK-ERROR: smlal2 v0.2s, v1.4s, v1.s[2]
3197 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3198 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3199 // CHECK-ERROR: smlal2 v0.2d, v1.4s, v1.s[4]
3201 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3202 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3203 // CHECK-ERROR: smlal2 v0.2d, v1.4s, v22.s[4]
3206 smlsl v0.4h, v1.4h, v2.h[2]
3207 smlsl v0.4s, v1.4h, v2.h[8]
3208 smlsl v0.4s, v1.4h, v16.h[2]
3209 smlsl v0.2s, v1.2s, v2.s[1]
3210 smlsl v0.2d, v1.2s, v2.s[4]
3211 smlsl v0.2d, v1.2s, v22.s[4]
3212 smlsl2 v0.4h, v1.8h, v1.h[2]
3213 smlsl2 v0.4s, v1.8h, v1.h[8]
3214 smlsl2 v0.4s, v1.8h, v16.h[2]
3215 smlsl2 v0.2s, v1.4s, v1.s[2]
3216 smlsl2 v0.2d, v1.4s, v1.s[4]
3217 smlsl2 v0.2d, v1.4s, v22.s[4]
3219 // CHECK-ERROR: error: invalid operand for instruction
3220 // CHECK-ERROR: smlsl v0.4h, v1.4h, v2.h[2]
3222 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3223 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3224 // CHECK-ERROR: smlsl v0.4s, v1.4h, v2.h[8]
3226 // CHECK-ERROR: error: invalid operand for instruction
3227 // CHECK-ERROR: smlsl v0.4s, v1.4h, v16.h[2]
3229 // CHECK-ERROR: error: invalid operand for instruction
3230 // CHECK-ERROR: smlsl v0.2s, v1.2s, v2.s[1]
3232 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3233 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3234 // CHECK-ERROR: smlsl v0.2d, v1.2s, v2.s[4]
3236 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3237 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3238 // CHECK-ERROR: smlsl v0.2d, v1.2s, v22.s[4]
3240 // CHECK-ERROR: error: invalid operand for instruction
3241 // CHECK-ERROR: smlsl2 v0.4h, v1.8h, v1.h[2]
3243 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3244 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3245 // CHECK-ERROR: smlsl2 v0.4s, v1.8h, v1.h[8]
3247 // CHECK-ERROR: error: invalid operand for instruction
3248 // CHECK-ERROR: smlsl2 v0.4s, v1.8h, v16.h[2]
3250 // CHECK-ERROR: error: invalid operand for instruction
3251 // CHECK-ERROR: smlsl2 v0.2s, v1.4s, v1.s[2]
3253 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3254 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3255 // CHECK-ERROR: smlsl2 v0.2d, v1.4s, v1.s[4]
3257 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3258 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3259 // CHECK-ERROR: smlsl2 v0.2d, v1.4s, v22.s[4]
3262 umlal v0.4h, v1.4h, v2.h[2]
3263 umlal v0.4s, v1.4h, v2.h[8]
3264 umlal v0.4s, v1.4h, v16.h[2]
3265 umlal v0.2s, v1.2s, v2.s[1]
3266 umlal v0.2d, v1.2s, v2.s[4]
3267 umlal v0.2d, v1.2s, v22.s[4]
3268 umlal2 v0.4h, v1.8h, v1.h[2]
3269 umlal2 v0.4s, v1.8h, v1.h[8]
3270 umlal2 v0.4s, v1.8h, v16.h[2]
3271 umlal2 v0.2s, v1.4s, v1.s[2]
3272 umlal2 v0.2d, v1.4s, v1.s[4]
3273 umlal2 v0.2d, v1.4s, v22.s[4]
3275 // CHECK-ERROR: error: invalid operand for instruction
3276 // CHECK-ERROR: umlal v0.4h, v1.4h, v2.h[2]
3278 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3279 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3280 // CHECK-ERROR: umlal v0.4s, v1.4h, v2.h[8]
3282 // CHECK-ERROR: error: invalid operand for instruction
3283 // CHECK-ERROR: umlal v0.4s, v1.4h, v16.h[2]
3285 // CHECK-ERROR: error: invalid operand for instruction
3286 // CHECK-ERROR: umlal v0.2s, v1.2s, v2.s[1]
3288 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3289 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3290 // CHECK-ERROR: umlal v0.2d, v1.2s, v2.s[4]
3292 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3293 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3294 // CHECK-ERROR: umlal v0.2d, v1.2s, v22.s[4]
3296 // CHECK-ERROR: error: invalid operand for instruction
3297 // CHECK-ERROR: umlal2 v0.4h, v1.8h, v1.h[2]
3299 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3300 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3301 // CHECK-ERROR: umlal2 v0.4s, v1.8h, v1.h[8]
3303 // CHECK-ERROR: error: invalid operand for instruction
3304 // CHECK-ERROR: umlal2 v0.4s, v1.8h, v16.h[2]
3306 // CHECK-ERROR: error: invalid operand for instruction
3307 // CHECK-ERROR: umlal2 v0.2s, v1.4s, v1.s[2]
3309 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3310 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3311 // CHECK-ERROR: umlal2 v0.2d, v1.4s, v1.s[4]
3313 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3314 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3315 // CHECK-ERROR: umlal2 v0.2d, v1.4s, v22.s[4]
3318 umlsl v0.4h, v1.4h, v2.h[2]
3319 umlsl v0.4s, v1.4h, v2.h[8]
3320 umlsl v0.4s, v1.4h, v16.h[2]
3321 umlsl v0.2s, v1.2s, v2.s[3]
3322 umlsl v0.2d, v1.2s, v2.s[4]
3323 umlsl v0.2d, v1.2s, v22.s[4]
3324 umlsl2 v0.4h, v1.8h, v1.h[2]
3325 umlsl2 v0.4s, v1.8h, v1.h[8]
3326 umlsl2 v0.4s, v1.8h, v16.h[2]
3327 umlsl2 v0.2s, v1.4s, v1.s[2]
3328 umlsl2 v0.2d, v1.4s, v1.s[4]
3329 umlsl2 v0.2d, v1.4s, v22.s[4]
3331 // CHECK-ERROR: error: invalid operand for instruction
3332 // CHECK-ERROR: umlsl v0.4h, v1.4h, v2.h[2]
3334 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3335 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3336 // CHECK-ERROR: umlsl v0.4s, v1.4h, v2.h[8]
3338 // CHECK-ERROR: error: invalid operand for instruction
3339 // CHECK-ERROR: umlsl v0.4s, v1.4h, v16.h[2]
3341 // CHECK-ERROR: error: invalid operand for instruction
3342 // CHECK-ERROR: umlsl v0.2s, v1.2s, v2.s[3]
3344 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3345 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3346 // CHECK-ERROR: umlsl v0.2d, v1.2s, v2.s[4]
3348 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3349 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3350 // CHECK-ERROR: umlsl v0.2d, v1.2s, v22.s[4]
3352 // CHECK-ERROR: error: invalid operand for instruction
3353 // CHECK-ERROR: umlsl2 v0.4h, v1.8h, v1.h[2]
3355 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3356 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3357 // CHECK-ERROR: umlsl2 v0.4s, v1.8h, v1.h[8]
3359 // CHECK-ERROR: error: invalid operand for instruction
3360 // CHECK-ERROR: umlsl2 v0.4s, v1.8h, v16.h[2]
3362 // CHECK-ERROR: error: invalid operand for instruction
3363 // CHECK-ERROR: umlsl2 v0.2s, v1.4s, v1.s[2]
3365 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3366 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3367 // CHECK-ERROR: umlsl2 v0.2d, v1.4s, v1.s[4]
3369 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3370 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3371 // CHECK-ERROR: umlsl2 v0.2d, v1.4s, v22.s[4]
3374 sqdmlal v0.4h, v1.4h, v2.h[2]
3375 sqdmlal v0.4s, v1.4h, v2.h[8]
3376 sqdmlal v0.4s, v1.4h, v16.h[2]
3377 sqdmlal v0.2s, v1.2s, v2.s[3]
3378 sqdmlal v0.2d, v1.2s, v2.s[4]
3379 sqdmlal v0.2d, v1.2s, v22.s[4]
3380 sqdmlal2 v0.4h, v1.8h, v1.h[2]
3381 sqdmlal2 v0.4s, v1.8h, v1.h[8]
3382 sqdmlal2 v0.4s, v1.8h, v16.h[2]
3383 sqdmlal2 v0.2s, v1.4s, v1.s[2]
3384 sqdmlal2 v0.2d, v1.4s, v1.s[4]
3385 sqdmlal2 v0.2d, v1.4s, v22.s[4]
3387 // CHECK-ERROR: error: invalid operand for instruction
3388 // CHECK-ERROR: sqdmlal v0.4h, v1.4h, v2.h[2]
3390 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3391 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3392 // CHECK-ERROR: sqdmlal v0.4s, v1.4h, v2.h[8]
3394 // CHECK-ERROR: error: invalid operand for instruction
3395 // CHECK-ERROR: sqdmlal v0.4s, v1.4h, v16.h[2]
3397 // CHECK-ERROR: error: invalid operand for instruction
3398 // CHECK-ERROR: sqdmlal v0.2s, v1.2s, v2.s[3]
3400 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3401 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3402 // CHECK-ERROR: sqdmlal v0.2d, v1.2s, v2.s[4]
3404 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3405 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3406 // CHECK-ERROR: sqdmlal v0.2d, v1.2s, v22.s[4]
3408 // CHECK-ERROR: error: invalid operand for instruction
3409 // CHECK-ERROR: sqdmlal2 v0.4h, v1.8h, v1.h[2]
3411 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3412 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3413 // CHECK-ERROR: sqdmlal2 v0.4s, v1.8h, v1.h[8]
3415 // CHECK-ERROR: error: invalid operand for instruction
3416 // CHECK-ERROR: sqdmlal2 v0.4s, v1.8h, v16.h[2]
3418 // CHECK-ERROR: error: invalid operand for instruction
3419 // CHECK-ERROR: sqdmlal2 v0.2s, v1.4s, v1.s[2]
3421 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3422 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3423 // CHECK-ERROR: sqdmlal2 v0.2d, v1.4s, v1.s[4]
3425 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3426 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3427 // CHECK-ERROR: sqdmlal2 v0.2d, v1.4s, v22.s[4]
3430 sqdmlsl v0.4h, v1.4h, v2.h[2]
3431 sqdmlsl v0.4s, v1.4h, v2.h[8]
3432 sqdmlsl v0.4s, v1.4h, v16.h[2]
3433 sqdmlsl v0.2s, v1.2s, v2.s[3]
3434 sqdmlsl v0.2d, v1.2s, v2.s[4]
3435 sqdmlsl v0.2d, v1.2s, v22.s[4]
3436 sqdmlsl2 v0.4h, v1.8h, v1.h[2]
3437 sqdmlsl2 v0.4s, v1.8h, v1.h[8]
3438 sqdmlsl2 v0.4s, v1.8h, v16.h[2]
3439 sqdmlsl2 v0.2s, v1.4s, v1.s[2]
3440 sqdmlsl2 v0.2d, v1.4s, v1.s[4]
3441 sqdmlsl2 v0.2d, v1.4s, v22.s[4]
3443 // CHECK-ERROR: error: invalid operand for instruction
3444 // CHECK-ERROR: sqdmlsl v0.4h, v1.4h, v2.h[2]
3446 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3447 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3448 // CHECK-ERROR: sqdmlsl v0.4s, v1.4h, v2.h[8]
3450 // CHECK-ERROR: error: invalid operand for instruction
3451 // CHECK-ERROR: sqdmlsl v0.4s, v1.4h, v16.h[2]
3453 // CHECK-ERROR: error: invalid operand for instruction
3454 // CHECK-ERROR: sqdmlsl v0.2s, v1.2s, v2.s[3]
3456 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3457 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3458 // CHECK-ERROR: sqdmlsl v0.2d, v1.2s, v2.s[4]
3460 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3461 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3462 // CHECK-ERROR: sqdmlsl v0.2d, v1.2s, v22.s[4]
3464 // CHECK-ERROR: error: invalid operand for instruction
3465 // CHECK-ERROR: sqdmlsl2 v0.4h, v1.8h, v1.h[2]
3467 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3468 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3469 // CHECK-ERROR: sqdmlsl2 v0.4s, v1.8h, v1.h[8]
3471 // CHECK-ERROR: error: invalid operand for instruction
3472 // CHECK-ERROR: sqdmlsl2 v0.4s, v1.8h, v16.h[2]
3474 // CHECK-ERROR: error: invalid operand for instruction
3475 // CHECK-ERROR: sqdmlsl2 v0.2s, v1.4s, v1.s[2]
3477 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3478 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3479 // CHECK-ERROR: sqdmlsl2 v0.2d, v1.4s, v1.s[4]
3481 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3482 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3483 // CHECK-ERROR: sqdmlsl2 v0.2d, v1.4s, v22.s[4]
3486 mul v0.4h, v1.4h, v2.h[8]
3487 mul v0.4h, v1.4h, v16.h[8]
3488 mul v0.8h, v1.8h, v2.h[8]
3489 mul v0.8h, v1.8h, v16.h[8]
3490 mul v0.2s, v1.2s, v2.s[4]
3491 mul v0.2s, v1.2s, v22.s[4]
3492 mul v0.4s, v1.4s, v2.s[4]
3493 mul v0.4s, v1.4s, v22.s[4]
3494 mul v0.2d, v1.2d, v2.d[1]
3496 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3497 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3498 // CHECK-ERROR: mul v0.4h, v1.4h, v2.h[8]
3500 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3501 // CHECK-ARM64-ERROR: error: invalid operand for instruction
3502 // CHECK-ERROR: mul v0.4h, v1.4h, v16.h[8]
3504 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3505 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3506 // CHECK-ERROR: mul v0.8h, v1.8h, v2.h[8]
3508 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3509 // CHECK-ARM64-ERROR: invalid operand for instruction
3510 // CHECK-ERROR: mul v0.8h, v1.8h, v16.h[8]
3512 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3513 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3514 // CHECK-ERROR: mul v0.2s, v1.2s, v2.s[4]
3516 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3517 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3518 // CHECK-ERROR: mul v0.2s, v1.2s, v22.s[4]
3520 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3521 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3522 // CHECK-ERROR: mul v0.4s, v1.4s, v2.s[4]
3524 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3525 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3526 // CHECK-ERROR: mul v0.4s, v1.4s, v22.s[4]
3529 fmul v0.4h, v1.4h, v2.h[4]
3530 fmul v0.2s, v1.2s, v2.s[4]
3531 fmul v0.2s, v1.2s, v22.s[4]
3532 fmul v0.4s, v1.4s, v2.s[4]
3533 fmul v0.4s, v1.4s, v22.s[4]
3534 fmul v0.2d, v1.2d, v2.d[2]
3535 fmul v0.2d, v1.2d, v22.d[2]
3537 // CHECK-ERROR: error: invalid operand for instruction
3538 // CHECK-ERROR: mul v0.2d, v1.2d, v2.d[1]
3540 // CHECK-ERROR: error: invalid operand for instruction
3541 // CHECK-ERROR: fmul v0.4h, v1.4h, v2.h[4]
3543 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3544 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3545 // CHECK-ERROR: fmul v0.2s, v1.2s, v2.s[4]
3547 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3548 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3549 // CHECK-ERROR: fmul v0.2s, v1.2s, v22.s[4]
3551 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3552 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3553 // CHECK-ERROR: fmul v0.4s, v1.4s, v2.s[4]
3555 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3556 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3557 // CHECK-ERROR: fmul v0.4s, v1.4s, v22.s[4]
3559 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3560 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3561 // CHECK-ERROR: fmul v0.2d, v1.2d, v2.d[2]
3563 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3564 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3565 // CHECK-ERROR: fmul v0.2d, v1.2d, v22.d[2]
3568 fmulx v0.4h, v1.4h, v2.h[4]
3569 fmulx v0.2s, v1.2s, v2.s[4]
3570 fmulx v0.2s, v1.2s, v22.s[4]
3571 fmulx v0.4s, v1.4s, v2.s[4]
3572 fmulx v0.4s, v1.4s, v22.s[4]
3573 fmulx v0.2d, v1.2d, v2.d[2]
3574 fmulx v0.2d, v1.2d, v22.d[2]
3576 // CHECK-ERROR: error: invalid operand for instruction
3577 // CHECK-ERROR: fmulx v0.4h, v1.4h, v2.h[4]
3579 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3580 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3581 // CHECK-ERROR: fmulx v0.2s, v1.2s, v2.s[4]
3583 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3584 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3585 // CHECK-ERROR: fmulx v0.2s, v1.2s, v22.s[4]
3587 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3588 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3589 // CHECK-ERROR: fmulx v0.4s, v1.4s, v2.s[4]
3591 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3592 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3593 // CHECK-ERROR: fmulx v0.4s, v1.4s, v22.s[4]
3595 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3596 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3597 // CHECK-ERROR: fmulx v0.2d, v1.2d, v2.d[2]
3599 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3600 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3601 // CHECK-ERROR: fmulx v0.2d, v1.2d, v22.d[2]
3604 smull v0.4h, v1.4h, v2.h[2]
3605 smull v0.4s, v1.4h, v2.h[8]
3606 smull v0.4s, v1.4h, v16.h[4]
3607 smull v0.2s, v1.2s, v2.s[2]
3608 smull v0.2d, v1.2s, v2.s[4]
3609 smull v0.2d, v1.2s, v22.s[4]
3610 smull2 v0.4h, v1.8h, v2.h[2]
3611 smull2 v0.4s, v1.8h, v2.h[8]
3612 smull2 v0.4s, v1.8h, v16.h[4]
3613 smull2 v0.2s, v1.4s, v2.s[2]
3614 smull2 v0.2d, v1.4s, v2.s[4]
3615 smull2 v0.2d, v1.4s, v22.s[4]
3617 // CHECK-ERROR: error: invalid operand for instruction
3618 // CHECK-ERROR: smull v0.4h, v1.4h, v2.h[2]
3620 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3621 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3622 // CHECK-ERROR: smull v0.4s, v1.4h, v2.h[8]
3624 // CHECK-ERROR: error: invalid operand for instruction
3625 // CHECK-ERROR: smull v0.4s, v1.4h, v16.h[4]
3627 // CHECK-ERROR: error: invalid operand for instruction
3628 // CHECK-ERROR: smull v0.2s, v1.2s, v2.s[2]
3630 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3631 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3632 // CHECK-ERROR: smull v0.2d, v1.2s, v2.s[4]
3634 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3635 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3636 // CHECK-ERROR: smull v0.2d, v1.2s, v22.s[4]
3638 // CHECK-ERROR: error: invalid operand for instruction
3639 // CHECK-ERROR: smull2 v0.4h, v1.8h, v2.h[2]
3641 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3642 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3643 // CHECK-ERROR: smull2 v0.4s, v1.8h, v2.h[8]
3645 // CHECK-ERROR: error: invalid operand for instruction
3646 // CHECK-ERROR: smull2 v0.4s, v1.8h, v16.h[4]
3648 // CHECK-ERROR: error: invalid operand for instruction
3649 // CHECK-ERROR: smull2 v0.2s, v1.4s, v2.s[2]
3651 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3652 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3653 // CHECK-ERROR: smull2 v0.2d, v1.4s, v2.s[4]
3655 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3656 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3657 // CHECK-ERROR: smull2 v0.2d, v1.4s, v22.s[4]
3660 umull v0.4h, v1.4h, v2.h[2]
3661 umull v0.4s, v1.4h, v2.h[8]
3662 umull v0.4s, v1.4h, v16.h[4]
3663 umull v0.2s, v1.2s, v2.s[2]
3664 umull v0.2d, v1.2s, v2.s[4]
3665 umull v0.2d, v1.2s, v22.s[4]
3666 umull2 v0.4h, v1.8h, v2.h[2]
3667 umull2 v0.4s, v1.8h, v2.h[8]
3668 umull2 v0.4s, v1.8h, v16.h[4]
3669 umull2 v0.2s, v1.4s, v2.s[2]
3670 umull2 v0.2d, v1.4s, v2.s[4]
3671 umull2 v0.2d, v1.4s, v22.s[4]
3673 // CHECK-ERROR: error: invalid operand for instruction
3674 // CHECK-ERROR: umull v0.4h, v1.4h, v2.h[2]
3676 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3677 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3678 // CHECK-ERROR: umull v0.4s, v1.4h, v2.h[8]
3680 // CHECK-ERROR: error: invalid operand for instruction
3681 // CHECK-ERROR: umull v0.4s, v1.4h, v16.h[4]
3683 // CHECK-ERROR: error: invalid operand for instruction
3684 // CHECK-ERROR: umull v0.2s, v1.2s, v2.s[2]
3686 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3687 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3688 // CHECK-ERROR: umull v0.2d, v1.2s, v2.s[4]
3690 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3691 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3692 // CHECK-ERROR: umull v0.2d, v1.2s, v22.s[4]
3694 // CHECK-ERROR: error: invalid operand for instruction
3695 // CHECK-ERROR: umull2 v0.4h, v1.8h, v2.h[2]
3697 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3698 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3699 // CHECK-ERROR: umull2 v0.4s, v1.8h, v2.h[8]
3701 // CHECK-ERROR: error: invalid operand for instruction
3702 // CHECK-ERROR: umull2 v0.4s, v1.8h, v16.h[4]
3704 // CHECK-ERROR: error: invalid operand for instruction
3705 // CHECK-ERROR: umull2 v0.2s, v1.4s, v2.s[2]
3707 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3708 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3709 // CHECK-ERROR: umull2 v0.2d, v1.4s, v2.s[4]
3711 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3712 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3713 // CHECK-ERROR: umull2 v0.2d, v1.4s, v22.s[4]
3716 sqdmull v0.4h, v1.4h, v2.h[2]
3717 sqdmull v0.4s, v1.4h, v2.h[8]
3718 sqdmull v0.4s, v1.4h, v16.h[4]
3719 sqdmull v0.2s, v1.2s, v2.s[2]
3720 sqdmull v0.2d, v1.2s, v2.s[4]
3721 sqdmull v0.2d, v1.2s, v22.s[4]
3722 sqdmull2 v0.4h, v1.8h, v2.h[2]
3723 sqdmull2 v0.4s, v1.8h, v2.h[8]
3724 sqdmull2 v0.4s, v1.8h, v16.h[4]
3725 sqdmull2 v0.2s, v1.4s, v2.s[2]
3726 sqdmull2 v0.2d, v1.4s, v2.s[4]
3727 sqdmull2 v0.2d, v1.4s, v22.s[4]
3729 // CHECK-ERROR: error: invalid operand for instruction
3730 // CHECK-ERROR: sqdmull v0.4h, v1.4h, v2.h[2]
3732 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3733 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3734 // CHECK-ERROR: sqdmull v0.4s, v1.4h, v2.h[8]
3736 // CHECK-ERROR: error: invalid operand for instruction
3737 // CHECK-ERROR: sqdmull v0.4s, v1.4h, v16.h[4]
3739 // CHECK-ERROR: error: invalid operand for instruction
3740 // CHECK-ERROR: sqdmull v0.2s, v1.2s, v2.s[2]
3742 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3743 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3744 // CHECK-ERROR: sqdmull v0.2d, v1.2s, v2.s[4]
3746 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3747 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3748 // CHECK-ERROR: sqdmull v0.2d, v1.2s, v22.s[4]
3750 // CHECK-ERROR: error: invalid operand for instruction
3751 // CHECK-ERROR: sqdmull2 v0.4h, v1.8h, v2.h[2]
3753 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3754 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3755 // CHECK-ERROR: sqdmull2 v0.4s, v1.8h, v2.h[8]
3757 // CHECK-ERROR: error: invalid operand for instruction
3758 // CHECK-ERROR: sqdmull2 v0.4s, v1.8h, v16.h[4]
3760 // CHECK-ERROR: error: invalid operand for instruction
3761 // CHECK-ERROR: sqdmull2 v0.2s, v1.4s, v2.s[2]
3763 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3764 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3765 // CHECK-ERROR: sqdmull2 v0.2d, v1.4s, v2.s[4]
3767 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3768 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3769 // CHECK-ERROR: sqdmull2 v0.2d, v1.4s, v22.s[4]
3772 sqdmulh v0.4h, v1.4h, v2.h[8]
3773 sqdmulh v0.4h, v1.4h, v16.h[2]
3774 sqdmulh v0.8h, v1.8h, v2.h[8]
3775 sqdmulh v0.8h, v1.8h, v16.h[2]
3776 sqdmulh v0.2s, v1.2s, v2.s[4]
3777 sqdmulh v0.2s, v1.2s, v22.s[4]
3778 sqdmulh v0.4s, v1.4s, v2.s[4]
3779 sqdmulh v0.4s, v1.4s, v22.s[4]
3780 sqdmulh v0.2d, v1.2d, v22.d[1]
3782 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3783 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3784 // CHECK-ERROR: sqdmulh v0.4h, v1.4h, v2.h[8]
3786 // CHECK-ERROR: error: invalid operand for instruction
3787 // CHECK-ERROR: sqdmulh v0.4h, v1.4h, v16.h[2]
3789 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3790 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3791 // CHECK-ERROR: sqdmulh v0.8h, v1.8h, v2.h[8]
3793 // CHECK-ERROR: error: invalid operand for instruction
3794 // CHECK-ERROR: sqdmulh v0.8h, v1.8h, v16.h[2]
3796 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3797 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3798 // CHECK-ERROR: sqdmulh v0.2s, v1.2s, v2.s[4]
3800 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3801 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3802 // CHECK-ERROR: sqdmulh v0.2s, v1.2s, v22.s[4]
3804 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3805 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3806 // CHECK-ERROR: sqdmulh v0.4s, v1.4s, v2.s[4]
3808 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3809 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3810 // CHECK-ERROR: sqdmulh v0.4s, v1.4s, v22.s[4]
3812 // CHECK-ERROR: error: invalid operand for instruction
3813 // CHECK-ERROR: sqdmulh v0.2d, v1.2d, v22.d[1]
3816 sqrdmulh v0.4h, v1.4h, v2.h[8]
3817 sqrdmulh v0.4h, v1.4h, v16.h[2]
3818 sqrdmulh v0.8h, v1.8h, v2.h[8]
3819 sqrdmulh v0.8h, v1.8h, v16.h[2]
3820 sqrdmulh v0.2s, v1.2s, v2.s[4]
3821 sqrdmulh v0.2s, v1.2s, v22.s[4]
3822 sqrdmulh v0.4s, v1.4s, v2.s[4]
3823 sqrdmulh v0.4s, v1.4s, v22.s[4]
3824 sqrdmulh v0.2d, v1.2d, v22.d[1]
3826 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3827 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3828 // CHECK-ERROR: sqrdmulh v0.4h, v1.4h, v2.h[8]
3830 // CHECK-ERROR: error: invalid operand for instruction
3831 // CHECK-ERROR: sqrdmulh v0.4h, v1.4h, v16.h[2]
3833 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3834 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3835 // CHECK-ERROR: sqrdmulh v0.8h, v1.8h, v2.h[8]
3837 // CHECK-ERROR: error: invalid operand for instruction
3838 // CHECK-ERROR: sqrdmulh v0.8h, v1.8h, v16.h[2]
3840 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3841 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3842 // CHECK-ERROR: sqrdmulh v0.2s, v1.2s, v2.s[4]
3844 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3845 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3846 // CHECK-ERROR: sqrdmulh v0.2s, v1.2s, v22.s[4]
3848 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3849 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3850 // CHECK-ERROR: sqrdmulh v0.4s, v1.4s, v2.s[4]
3852 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
3853 // CHECK-ARM64-ERROR: vector lane must be an integer in range
3854 // CHECK-ERROR: sqrdmulh v0.4s, v1.4s, v22.s[4]
3856 // CHECK-ERROR: error: invalid operand for instruction
3857 // CHECK-ERROR: sqrdmulh v0.2d, v1.2d, v22.d[1]
3860 //----------------------------------------------------------------------
3862 //----------------------------------------------------------------------
3872 // CHECK-ERROR: error: invalid operand for instruction
3873 // CHECK-ERROR: saddlv b0, v1.8b
3875 // CHECK-ERROR: error: invalid operand for instruction
3876 // CHECK-ERROR: saddlv b0, v1.16b
3878 // CHECK-ERROR: error: invalid operand for instruction
3879 // CHECK-ERROR: saddlv h0, v1.4h
3881 // CHECK-ERROR: error: invalid operand for instruction
3882 // CHECK-ERROR: saddlv h0, v1.8h
3884 // CHECK-ERROR: error: invalid operand for instruction
3885 // CHECK-ERROR: saddlv s0, v1.2s
3887 // CHECK-ERROR: error: invalid operand for instruction
3888 // CHECK-ERROR: saddlv s0, v1.4s
3890 // CHECK-ERROR: error: invalid operand for instruction
3891 // CHECK-ERROR: saddlv d0, v1.2s
3902 // CHECK-ERROR: error: invalid operand for instruction
3903 // CHECK-ERROR: uaddlv b0, v1.8b
3905 // CHECK-ERROR: error: invalid operand for instruction
3906 // CHECK-ERROR: uaddlv b0, v1.16b
3908 // CHECK-ERROR: error: invalid operand for instruction
3909 // CHECK-ERROR: uaddlv h0, v1.4h
3911 // CHECK-ERROR: error: invalid operand for instruction
3912 // CHECK-ERROR: uaddlv h0, v1.8h
3914 // CHECK-ERROR: error: invalid operand for instruction
3915 // CHECK-ERROR: uaddlv s0, v1.2s
3917 // CHECK-ERROR: error: invalid operand for instruction
3918 // CHECK-ERROR: uaddlv s0, v1.4s
3920 // CHECK-ERROR: error: invalid operand for instruction
3921 // CHECK-ERROR: uaddlv d0, v1.2s
3930 // CHECK-ERROR: error: invalid operand for instruction
3931 // CHECK-ERROR: smaxv s0, v1.2s
3933 // CHECK-ERROR: error: invalid operand for instruction
3934 // CHECK-ERROR: sminv s0, v1.2s
3936 // CHECK-ERROR: error: invalid operand for instruction
3937 // CHECK-ERROR: umaxv s0, v1.2s
3939 // CHECK-ERROR: error: invalid operand for instruction
3940 // CHECK-ERROR: uminv s0, v1.2s
3942 // CHECK-ERROR: error: invalid operand for instruction
3943 // CHECK-ERROR: addv s0, v1.2s
3952 // CHECK-ERROR: error: invalid operand for instruction
3953 // CHECK-ERROR: smaxv d0, v1.2d
3955 // CHECK-ERROR: error: invalid operand for instruction
3956 // CHECK-ERROR: sminv d0, v1.2d
3958 // CHECK-ERROR: error: invalid operand for instruction
3959 // CHECK-ERROR: umaxv d0, v1.2d
3961 // CHECK-ERROR: error: invalid operand for instruction
3962 // CHECK-ERROR: uminv d0, v1.2d
3964 // CHECK-ERROR: error: invalid operand for instruction
3965 // CHECK-ERROR: addv d0, v1.2d
3973 // CHECK-ERROR: error: invalid operand for instruction
3974 // CHECK-ERROR: fmaxnmv b0, v1.16b
3976 // CHECK-ERROR: error: invalid operand for instruction
3977 // CHECK-ERROR: fminnmv b0, v1.16b
3979 // CHECK-ERROR: error: invalid operand for instruction
3980 // CHECK-ERROR: fmaxv b0, v1.16b
3982 // CHECK-ERROR: error: invalid operand for instruction
3983 // CHECK-ERROR: fminv b0, v1.16b
3991 // CHECK-ERROR: error: invalid operand for instruction
3992 // CHECK-ERROR: fmaxnmv h0, v1.8h
3994 // CHECK-ERROR: error: invalid operand for instruction
3995 // CHECK-ERROR: fminnmv h0, v1.8h
3997 // CHECK-ERROR: error: invalid operand for instruction
3998 // CHECK-ERROR: fmaxv h0, v1.8h
4000 // CHECK-ERROR: error: invalid operand for instruction
4001 // CHECK-ERROR: fminv h0, v1.8h
4009 // CHECK-ERROR: error: invalid operand for instruction
4010 // CHECK-ERROR: fmaxnmv d0, v1.2d
4012 // CHECK-ERROR: error: invalid operand for instruction
4013 // CHECK-ERROR: fminnmv d0, v1.2d
4015 // CHECK-ERROR: error: invalid operand for instruction
4016 // CHECK-ERROR: fmaxv d0, v1.2d
4018 // CHECK-ERROR: error: invalid operand for instruction
4019 // CHECK-ERROR: fminv d0, v1.2d
4022 //----------------------------------------------------------------------
4023 // Floating-point Multiply Extended
4024 //----------------------------------------------------------------------
4029 // CHECK-ERROR: error: invalid operand for instruction
4030 // CHECK-ERROR: fmulx s20, h22, s15
4032 // CHECK-ERROR: error: invalid operand for instruction
4033 // CHECK-ERROR: fmulx d23, d11, s1
4036 //----------------------------------------------------------------------
4037 // Floating-point Reciprocal Step
4038 //----------------------------------------------------------------------
4040 frecps s21, s16, h13
4041 frecps d22, s30, d21
4043 // CHECK-ERROR: error: invalid operand for instruction
4044 // CHECK-ERROR: frecps s21, s16, h13
4046 // CHECK-ERROR: error: invalid operand for instruction
4047 // CHECK-ERROR: frecps d22, s30, d21
4050 //----------------------------------------------------------------------
4051 // Floating-point Reciprocal Square Root Step
4052 //----------------------------------------------------------------------
4054 frsqrts s21, h5, s12
4055 frsqrts d8, s22, d18
4057 // CHECK-ERROR: error: invalid operand for instruction
4058 // CHECK-ERROR: frsqrts s21, h5, s12
4060 // CHECK-ERROR: error: invalid operand for instruction
4061 // CHECK-ERROR: frsqrts d8, s22, d18
4064 //----------------------------------------------------------------------
4065 // Vector load/store multiple N-element structure (class SIMD lselem)
4066 //----------------------------------------------------------------------
4071 // CHECK-AARCH64-ERROR: error: expected vector type register
4072 // CHECK-ARM64-ERROR: error: vector register expected
4073 // CHECK-ERROR: ld1 {x3}, [x2]
4075 // CHECK-AARCH64-ERROR: error: expected vector type register
4076 // CHECK-ARM64-ERROR: error: invalid operand for instruction
4077 // CHECK-ERROR: ld1 {v4}, [x0]
4079 // CHECK-AARCH64-ERROR: error: expected vector type register
4080 // CHECK-ARM64-ERROR: error: vector register expected
4081 // CHECK-ERROR: ld1 {v32.16b}, [x0]
4083 // CHECK-AARCH64-ERROR: error: invalid operand for instruction
4084 // CHECK-ARM64-ERROR: error: register expected
4085 // CHECK-ERROR: ld1 {v15.8h}, [x32]
4088 ld1 {v0.16b, v2.16b}, [x0]
4089 ld1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]
4090 ld1 v0.8b, v1.8b}, [x0]
4091 ld1 {v0.8h-v4.8h}, [x0]
4092 ld1 {v1.8h-v1.8h}, [x0]
4093 ld1 {v15.8h-v17.4h}, [x15]
4094 ld1 {v0.8b-v2.8b, [x0]
4095 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4096 // CHECK-ARM64-ERROR: error: registers must be sequential
4097 // CHECK-ERROR: ld1 {v0.16b, v2.16b}, [x0]
4099 // CHECK-ERROR: error: invalid number of vectors
4100 // CHECK-ERROR: ld1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]
4102 // CHECK-AARCH64-ERROR: error: '{' expected
4103 // CHECK-ARM64-ERROR: error: unexpected token in argument list
4104 // CHECK-ERROR: ld1 v0.8b, v1.8b}, [x0]
4106 // CHECK-ERROR: error: invalid number of vectors
4107 // CHECK-ERROR: ld1 {v0.8h-v4.8h}, [x0]
4109 // CHECK-ERROR: error: invalid number of vectors
4110 // CHECK-ERROR: ld1 {v1.8h-v1.8h}, [x0]
4112 // CHECK-AARCH64-ERROR: error: expected the same vector layout
4113 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4114 // CHECK-ERROR: ld1 {v15.8h-v17.4h}, [x15]
4116 // CHECK-ERROR: error: '}' expected
4117 // CHECK-ERROR: ld1 {v0.8b-v2.8b, [x0]
4120 ld2 {v15.8h, v16.4h}, [x15]
4121 ld2 {v0.8b, v2.8b}, [x0]
4122 ld2 {v15.4h, v16.4h, v17.4h}, [x32]
4123 ld2 {v15.8h-v16.4h}, [x15]
4124 ld2 {v0.2d-v2.2d}, [x0]
4125 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4126 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4127 // CHECK-ERROR: ld2 {v15.8h, v16.4h}, [x15]
4129 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4130 // CHECK-ARM64-ERROR: error: registers must be sequential
4131 // CHECK-ERROR: ld2 {v0.8b, v2.8b}, [x0]
4133 // CHECK-AARCH64-ERROR: error: invalid operand for instruction
4134 // CHECK-ARM64-ERROR: error: register expected
4135 // CHECK-ERROR: ld2 {v15.4h, v16.4h, v17.4h}, [x32]
4137 // CHECK-AARCH64-ERROR: error: expected the same vector layout
4138 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4139 // CHECK-ERROR: ld2 {v15.8h-v16.4h}, [x15]
4141 // CHECK-ERROR: error: invalid operand for instruction
4142 // CHECK-ERROR: ld2 {v0.2d-v2.2d}, [x0]
4145 ld3 {v15.8h, v16.8h, v17.4h}, [x15]
4146 ld3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]
4147 ld3 {v0.8b, v2.8b, v3.8b}, [x0]
4148 ld3 {v15.8h-v17.4h}, [x15]
4149 ld3 {v31.4s-v2.4s}, [sp]
4150 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4151 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4152 // CHECK-ERROR: ld3 {v15.8h, v16.8h, v17.4h}, [x15]
4154 // CHECK-AARCH64-ERROR: error: expected vector type register
4155 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4156 // CHECK-ERROR: ld3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]
4158 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4159 // CHECK-ARM64-ERROR: error: registers must be sequential
4160 // CHECK-ERROR: ld3 {v0.8b, v2.8b, v3.8b}, [x0]
4162 // CHECK-AARCH64-ERROR: error: expected the same vector layout
4163 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4164 // CHECK-ERROR: ld3 {v15.8h-v17.4h}, [x15]
4166 // CHECK-ERROR: error: invalid operand for instruction
4167 // CHECK-ERROR: ld3 {v31.4s-v2.4s}, [sp]
4170 ld4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]
4171 ld4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]
4172 ld4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]
4173 ld4 {v15.8h-v18.4h}, [x15]
4174 ld4 {v31.2s-v1.2s}, [x31]
4175 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4176 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4177 // CHECK-ERROR: ld4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]
4179 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4180 // CHECK-ARM64-ERROR: error: registers must be sequential
4181 // CHECK-ERROR: ld4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]
4183 // CHECK-ERROR: error: invalid number of vectors
4184 // CHECK-ERROR: ld4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]
4186 // CHECK-AARCH64-ERROR: error: expected the same vector layout
4187 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4188 // CHECK-ERROR: ld4 {v15.8h-v18.4h}, [x15]
4190 // CHECK-ERROR: error: invalid operand for instruction
4191 // CHECK-ERROR: ld4 {v31.2s-v1.2s}, [x31]
4198 // CHECK-AARCH64-ERROR: error: expected vector type register
4199 // CHECK-ARM64-ERROR: error: vector register expected
4200 // CHECK-ERROR: st1 {x3}, [x2]
4202 // CHECK-AARCH64-ERROR: error: expected vector type register
4203 // CHECK-ARM64-ERROR: error: invalid operand for instruction
4204 // CHECK-ERROR: st1 {v4}, [x0]
4206 // CHECK-AARCH64-ERROR: error: expected vector type register
4207 // CHECK-ARM64-ERROR: error: vector register expected
4208 // CHECK-ERROR: st1 {v32.16b}, [x0]
4210 // CHECK-AARCH64-ERROR: error: invalid operand for instruction
4211 // CHECK-ARM64-ERROR: error: register expected
4212 // CHECK-ERROR: st1 {v15.8h}, [x32]
4215 st1 {v0.16b, v2.16b}, [x0]
4216 st1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]
4217 st1 v0.8b, v1.8b}, [x0]
4218 st1 {v0.8h-v4.8h}, [x0]
4219 st1 {v1.8h-v1.8h}, [x0]
4220 st1 {v15.8h-v17.4h}, [x15]
4221 st1 {v0.8b-v2.8b, [x0]
4222 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4223 // CHECK-ARM64-ERROR: error: registers must be sequential
4224 // CHECK-ERROR: st1 {v0.16b, v2.16b}, [x0]
4226 // CHECK-ERROR: error: invalid number of vectors
4227 // CHECK-ERROR: st1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]
4229 // CHECK-AARCH64-ERROR: error: '{' expected
4230 // CHECK-ARM64-ERROR: error: unexpected token in argument list
4231 // CHECK-ERROR: st1 v0.8b, v1.8b}, [x0]
4233 // CHECK-ERROR: error: invalid number of vectors
4234 // CHECK-ERROR: st1 {v0.8h-v4.8h}, [x0]
4236 // CHECK-ERROR: error: invalid number of vectors
4237 // CHECK-ERROR: st1 {v1.8h-v1.8h}, [x0]
4239 // CHECK-AARCH64-ERROR: error: expected the same vector layout
4240 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4241 // CHECK-ERROR: st1 {v15.8h-v17.4h}, [x15]
4243 // CHECK-ERROR: error: '}' expected
4244 // CHECK-ERROR: st1 {v0.8b-v2.8b, [x0]
4247 st2 {v15.8h, v16.4h}, [x15]
4248 st2 {v0.8b, v2.8b}, [x0]
4249 st2 {v15.4h, v16.4h, v17.4h}, [x30]
4250 st2 {v15.8h-v16.4h}, [x15]
4251 st2 {v0.2d-v2.2d}, [x0]
4252 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4253 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4254 // CHECK-ERROR: st2 {v15.8h, v16.4h}, [x15]
4256 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4257 // CHECK-ARM64-ERROR: error: registers must be sequential
4258 // CHECK-ERROR: st2 {v0.8b, v2.8b}, [x0]
4260 // CHECK-ERROR: error: invalid operand for instruction
4261 // CHECK-ERROR: st2 {v15.4h, v16.4h, v17.4h}, [x30]
4263 // CHECK-AARCH64-ERROR: error: expected the same vector layout
4264 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4265 // CHECK-ERROR: st2 {v15.8h-v16.4h}, [x15]
4267 // CHECK-ERROR: error: invalid operand for instruction
4268 // CHECK-ERROR: st2 {v0.2d-v2.2d}, [x0]
4271 st3 {v15.8h, v16.8h, v17.4h}, [x15]
4272 st3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]
4273 st3 {v0.8b, v2.8b, v3.8b}, [x0]
4274 st3 {v15.8h-v17.4h}, [x15]
4275 st3 {v31.4s-v2.4s}, [sp]
4276 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4277 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4278 // CHECK-ERROR: st3 {v15.8h, v16.8h, v17.4h}, [x15]
4280 // CHECK-AARCH64-ERROR: error: expected vector type register
4281 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4282 // CHECK-ERROR: st3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]
4284 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4285 // CHECK-ARM64-ERROR: error: registers must be sequential
4286 // CHECK-ERROR: st3 {v0.8b, v2.8b, v3.8b}, [x0]
4288 // CHECK-AARCH64-ERROR: error: expected the same vector layout
4289 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4290 // CHECK-ERROR: st3 {v15.8h-v17.4h}, [x15]
4292 // CHECK-ERROR: error: invalid operand for instruction
4293 // CHECK-ERROR: st3 {v31.4s-v2.4s}, [sp]
4296 st4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]
4297 st4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]
4298 st4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]
4299 st4 {v15.8h-v18.4h}, [x15]
4300 st4 {v31.2s-v1.2s}, [x31]
4301 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4302 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4303 // CHECK-ERROR: st4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]
4305 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4306 // CHECK-ARM64-ERROR: error: registers must be sequential
4307 // CHECK-ERROR: st4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]
4309 // CHECK-ERROR: error: invalid number of vectors
4310 // CHECK-ERROR: st4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]
4312 // CHECK-AARCH64-ERROR: error: expected the same vector layout
4313 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4314 // CHECK-ERROR: st4 {v15.8h-v18.4h}, [x15]
4316 // CHECK-ERROR: error: invalid operand for instruction
4317 // CHECK-ERROR: st4 {v31.2s-v1.2s}, [x31]
4320 //----------------------------------------------------------------------
4321 // Vector post-index load/store multiple N-element structure
4322 // (class SIMD lselem-post)
4323 //----------------------------------------------------------------------
4324 ld1 {v0.16b}, [x0], #8
4325 ld1 {v0.8h, v1.16h}, [x0], x1
4326 ld1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24
4327 // CHECK-ERROR: error: invalid operand for instruction
4328 // CHECK-ERROR: ld1 {v0.16b}, [x0], #8
4330 // CHECK-AARCH64-ERROR: error: expected vector type register
4331 // CHECK-ARM64-ERROR: error: invalid vector kind qualifier
4332 // CHECK-ERROR: ld1 {v0.8h, v1.16h}, [x0], x1
4334 // CHECK-ERROR: error: invalid operand for instruction
4335 // CHECK-ERROR: ld1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24
4338 ld2 {v0.16b, v1.16b}, [x0], #16
4339 ld3 {v5.2s, v6.2s, v7.2s}, [x1], #48
4340 ld4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1
4341 // CHECK-ERROR: error: invalid operand for instruction
4342 // CHECK-ERROR: ld2 {v0.16b, v1.16b}, [x0], #16
4344 // CHECK-ERROR: error: invalid operand for instruction
4345 // CHECK-ERROR: ld3 {v5.2s, v6.2s, v7.2s}, [x1], #48
4347 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4348 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4349 // CHECK-ERROR: ld4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1
4352 st1 {v0.16b}, [x0], #8
4353 st1 {v0.8h, v1.16h}, [x0], x1
4354 st1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24
4355 // CHECK-ERROR: error: invalid operand for instruction
4356 // CHECK-ERROR: st1 {v0.16b}, [x0], #8
4358 // CHECK-AARCH64-ERROR: error: expected vector type register
4359 // CHECK-ARM64-ERROR: error: invalid vector kind qualifier
4360 // CHECK-ERROR: st1 {v0.8h, v1.16h}, [x0], x1
4362 // CHECK-ERROR: error: invalid operand for instruction
4363 // CHECK-ERROR: st1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24
4366 st2 {v0.16b, v1.16b}, [x0], #16
4367 st3 {v5.2s, v6.2s, v7.2s}, [x1], #48
4368 st4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1
4369 // CHECK-ERROR: error: invalid operand for instruction
4370 // CHECK-ERROR: st2 {v0.16b, v1.16b}, [x0], #16
4372 // CHECK-ERROR: error: invalid operand for instruction
4373 // CHECK-ERROR: st3 {v5.2s, v6.2s, v7.2s}, [x1], #48
4375 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4376 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4377 // CHECK-ERROR: st4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1
4380 //------------------------------------------------------------------------------
4381 // Load single N-element structure to all lanes of N consecutive
4382 // registers (N = 1,2,3,4)
4383 //------------------------------------------------------------------------------
4385 ld2r {v31.4s, v0.2s}, [sp]
4386 ld3r {v0.8b, v1.8b, v2.8b, v3.8b}, [x0]
4387 ld4r {v31.2s, v0.2s, v1.2d, v2.2s}, [sp]
4388 // CHECK-AARCH64-ERROR: error: expected vector type register
4389 // CHECK-ARM64-ERROR: error: vector register expected
4390 // CHECK-ERROR: ld1r {x1}, [x0]
4392 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4393 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4394 // CHECK-ERROR: ld2r {v31.4s, v0.2s}, [sp]
4396 // CHECK-ERROR: error: invalid operand for instruction
4397 // CHECK-ERROR: ld3r {v0.8b, v1.8b, v2.8b, v3.8b}, [x0]
4399 // CHECK-AARCH64-ERROR: error: invalid space between two vectors
4400 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4401 // CHECK-ERROR: ld4r {v31.2s, v0.2s, v1.2d, v2.2s}, [sp]
4404 //------------------------------------------------------------------------------
4405 // Load/Store single N-element structure to/from one lane of N consecutive
4406 // registers (N = 1, 2,3,4)
4407 //------------------------------------------------------------------------------
4408 ld1 {v0.b}[16], [x0]
4409 ld2 {v15.h, v16.h}[8], [x15]
4410 ld3 {v31.s, v0.s, v1.s}[-1], [sp]
4411 ld4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]
4412 // CHECK-AARCH64-ERROR:: error: lane number incompatible with layout
4413 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4414 // CHECK-ERROR: ld1 {v0.b}[16], [x0]
4416 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
4417 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4418 // CHECK-ERROR: ld2 {v15.h, v16.h}[8], [x15]
4420 // CHECK-AARCH64-ERROR: error: expected lane number
4421 // CHECK-ARM64-ERROR: error: vector lane must be an integer in range
4422 // CHECK-ERROR: ld3 {v31.s, v0.s, v1.s}[-1], [sp]
4424 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
4425 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4426 // CHECK-ERROR: ld4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]
4429 st1 {v0.d}[16], [x0]
4430 st2 {v31.s, v0.s}[3], [8]
4431 st3 {v15.h, v16.h, v17.h}[-1], [x15]
4432 st4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]
4433 // CHECK-AARCH64-ERROR:: error: lane number incompatible with layout
4434 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4435 // CHECK-ERROR: st1 {v0.d}[16], [x0]
4437 // CHECK-AARCH64-ERROR: error: invalid operand for instruction
4438 // CHECK-ARM64-ERROR: error: register expected
4439 // CHECK-ERROR: st2 {v31.s, v0.s}[3], [8]
4441 // CHECK-AARCH64-ERROR: error: expected lane number
4442 // CHECK-ARM64-ERROR: error: vector lane must be an integer in range
4443 // CHECK-ERROR: st3 {v15.h, v16.h, v17.h}[-1], [x15]
4445 // CHECK-AARCH64-ERROR: lane number incompatible with layout
4446 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4447 // CHECK-ERROR: st4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]
4450 //------------------------------------------------------------------------------
4451 // Post-index of load single N-element structure to all lanes of N consecutive
4452 // registers (N = 1,2,3,4)
4453 //------------------------------------------------------------------------------
4454 ld1r {v15.8h}, [x15], #5
4455 ld2r {v0.2d, v1.2d}, [x0], #7
4456 ld3r {v15.4h, v16.4h, v17.4h}, [x15], #1
4457 ld4r {v31.1d, v0.1d, v1.1d, v2.1d}, [sp], sp
4458 // CHECK-ERROR: error: invalid operand for instruction
4459 // CHECK-ERROR: ld1r {v15.8h}, [x15], #5
4461 // CHECK-ERROR: error: invalid operand for instruction
4462 // CHECK-ERROR: ld2r {v0.2d, v1.2d}, [x0], #7
4464 // CHECK-ERROR: error: invalid operand for instruction
4465 // CHECK-ERROR: ld3r {v15.4h, v16.4h, v17.4h}, [x15], #1
4467 // CHECK-ERROR: error: invalid operand for instruction
4468 // CHECK-ERROR: ld4r {v31.1d, v0.1d, v1.1d, v2.1d}, [sp], sp
4471 //------------------------------------------------------------------------------
4472 // Post-index of Load/Store single N-element structure to/from one lane of N
4473 // consecutive registers (N = 1, 2,3,4)
4474 //------------------------------------------------------------------------------
4475 ld1 {v0.b}[0], [x0], #2
4476 ld2 {v15.h, v16.h}[0], [x15], #3
4477 ld3 {v31.s, v0.s, v1.d}[0], [sp], x9
4478 ld4 {v0.d, v1.d, v2.d, v3.d}[1], [x0], #24
4479 // CHECK-ERROR: error: invalid operand for instruction
4480 // CHECK-ERROR: ld1 {v0.b}[0], [x0], #2
4482 // CHECK-ERROR: error: invalid operand for instruction
4483 // CHECK-ERROR: ld2 {v15.h, v16.h}[0], [x15], #3
4485 // CHECK-AARCH64-ERROR: error: expected the same vector layout
4486 // CHECK-ARM64-ERROR: error: mismatched register size suffix
4487 // CHECK-ERROR: ld3 {v31.s, v0.s, v1.d}[0], [sp], x9
4489 // CHECK-ERROR: error: invalid operand for instruction
4490 // CHECK-ERROR: ld4 {v0.d, v1.d, v2.d, v3.d}[1], [x0], #24
4493 st1 {v0.d}[0], [x0], #7
4494 st2 {v31.s, v0.s}[0], [sp], #6
4495 st3 {v15.h, v16.h, v17.h}[0], [x15], #8
4496 st4 {v0.b, v1.b, v2.b, v3.b}[1], [x0], #1
4497 // CHECK-ERROR: error: invalid operand for instruction
4498 // CHECK-ERROR: st1 {v0.d}[0], [x0], #7
4500 // CHECK-ERROR: error: invalid operand for instruction
4501 // CHECK-ERROR: st2 {v31.s, v0.s}[0], [sp], #6
4503 // CHECK-ERROR: error: invalid operand for instruction
4504 // CHECK-ERROR: st3 {v15.h, v16.h, v17.h}[0], [x15], #8
4506 // CHECK-ERROR: error: invalid operand for instruction
4507 // CHECK-ERROR: st4 {v0.b, v1.b, v2.b, v3.b}[1], [x0], #1
4520 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
4521 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4522 // CHECK-ERROR: ins v2.b[16], w1
4524 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
4525 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4526 // CHECK-ERROR: ins v7.h[8], w14
4528 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
4529 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4530 // CHECK-ERROR: ins v20.s[5], w30
4532 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
4533 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4534 // CHECK-ERROR: ins v1.d[2], x7
4536 // CHECK-ERROR: error: invalid operand for instruction
4537 // CHECK-ERROR: ins v2.b[3], b1
4539 // CHECK-ERROR: error: invalid operand for instruction
4540 // CHECK-ERROR: ins v7.h[2], h14
4542 // CHECK-ERROR: error: invalid operand for instruction
4543 // CHECK-ERROR: ins v20.s[1], s30
4545 // CHECK-ERROR: error: invalid operand for instruction
4546 // CHECK-ERROR: ins v1.d[0], d7
4560 // CHECK-AARCH64-ERROR error: lane number incompatible with layout
4561 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4562 // CHECK-ERROR smov w1, v0.b[16]
4564 // CHECK-AARCH64-ERROR error: lane number incompatible with layout
4565 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4566 // CHECK-ERROR smov w14, v6.h[8]
4568 // CHECK-AARCH64-ERROR error: lane number incompatible with layout
4569 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4570 // CHECK-ERROR smov x1, v0.b[16]
4572 // CHECK-AARCH64-ERROR error: lane number incompatible with layout
4573 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4574 // CHECK-ERROR smov x14, v6.h[8]
4576 // CHECK-AARCH64-ERROR error: lane number incompatible with layout
4577 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4578 // CHECK-ERROR smov x20, v9.s[5]
4580 // CHECK-ERROR error: invalid operand for instruction
4581 // CHECK-ERROR smov w1, v0.d[0]
4583 // CHECK-ERROR error: invalid operand for instruction
4584 // CHECK-ERROR smov w14, v6.d[1]
4586 // CHECK-ERROR error: invalid operand for instruction
4587 // CHECK-ERROR smov x1, v0.d[0]
4589 // CHECK-ERROR error: invalid operand for instruction
4590 // CHECK-ERROR smov x14, v6.d[1]
4592 // CHECK-ERROR error: invalid operand for instruction
4593 // CHECK-ERROR smov x20, v9.d[0]
4604 // CHECK-AARCH64-ERROR error: lane number incompatible with layout
4605 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4606 // CHECK-ERROR umov w1, v0.b[16]
4608 // CHECK-AARCH64-ERROR error: lane number incompatible with layout
4609 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4610 // CHECK-ERROR umov w14, v6.h[8]
4612 // CHECK-AARCH64-ERROR error: lane number incompatible with layout
4613 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4614 // CHECK-ERROR umov w20, v9.s[5]
4616 // CHECK-AARCH64-ERROR error: lane number incompatible with layout
4617 // CHECK-ARM64-ERROR: vector lane must be an integer in range
4618 // CHECK-ERROR umov x7, v18.d[3]
4620 // CHECK-ERROR error: invalid operand for instruction
4621 // CHECK-ERROR umov w1, v0.d[0]
4623 // CHECK-ERROR error: invalid operand for instruction
4624 // CHECK-ERROR umov s20, v9.s[2]
4626 // CHECK-ERROR error: invalid operand for instruction
4627 // CHECK-ERROR umov d7, v18.d[1]
4630 Ins v1.h[2], v3.b[6]
4631 Ins v6.h[7], v7.s[2]
4632 Ins v15.d[0], v22.s[2]
4633 Ins v0.d[0], v4.b[1]
4635 // CHECK-ERROR error: invalid operand for instruction
4636 // CHECK-ERROR Ins v1.h[2], v3.b[6]
4638 // CHECK-ERROR error: invalid operand for instruction
4639 // CHECK-ERROR Ins v6.h[7], v7.s[2]
4641 // CHECK-ERROR error: invalid operand for instruction
4642 // CHECK-ERROR Ins v15.d[0], v22.s[2]
4644 // CHECK-ERROR error: invalid operand for instruction
4645 // CHECK-ERROR Ins v0.d[0], v4.b[1]
4650 dup v17.2d, v20.s[0]
4653 dup v17.4s, v20.d[0]
4656 // CHECK-ERROR error: invalid operand for instruction
4657 // CHECK-ERROR dup v1.8h, v2.b[2]
4659 // CHECK-ERROR error: invalid operand for instruction
4660 // CHECK-ERROR dup v11.4s, v7.h[7]
4662 // CHECK-ERROR error: invalid operand for instruction
4663 // CHECK-ERROR dup v17.2d, v20.s[0]
4665 // CHECK-ERROR error: invalid operand for instruction
4666 // CHECK-ERROR dup v1.16b, v2.h[2]
4668 // CHECK-ERROR invalid operand for instruction
4669 // CHECK-ERROR dup v11.8h, v7.s[3]
4671 // CHECK-ERROR invalid operand for instruction
4672 // CHECK-ERROR dup v17.4s, v20.d[0]
4674 // CHECK-ERROR invalid operand for instruction
4675 // CHECK-ERROR dup v5.2d, v1.b[1]
4686 // CHECK-ERROR error: invalid operand for instruction
4687 // CHECK-ERROR dup v1.8b, b1
4689 // CHECK-ERROR error: invalid operand for instruction
4690 // CHECK-ERROR dup v11.4h, h14
4692 // CHECK-ERROR error: invalid operand for instruction
4693 // CHECK-ERROR dup v17.2s, s30
4695 // CHECK-ERROR error: invalid operand for instruction
4696 // CHECK-ERROR dup v1.16b, d2
4698 // CHECK-ERROR error: invalid operand for instruction
4699 // CHECK-ERROR dup v11.8s, w16
4701 // CHECK-ERROR error: invalid operand for instruction
4702 // CHECK-ERROR dup v17.4d, w28
4704 // CHECK-ERROR error: invalid operand for instruction
4705 // CHECK-ERROR dup v5.2d, w0
4708 //----------------------------------------------------------------------
4709 // Scalar Compare Bitwise Equal
4710 //----------------------------------------------------------------------
4714 // CHECK-ERROR: error: invalid operand for instruction
4715 // CHECK-ERROR: cmeq b20, d21, d22
4718 //----------------------------------------------------------------------
4719 // Scalar Compare Bitwise Equal To Zero
4720 //----------------------------------------------------------------------
4724 // CHECK-ERROR: error: invalid operand for instruction
4725 // CHECK-ERROR: cmeq d20, b21, #0
4728 //----------------------------------------------------------------------
4729 // Scalar Compare Unsigned Higher Or Same
4730 //----------------------------------------------------------------------
4734 // CHECK-ERROR: error: invalid operand for instruction
4735 // CHECK-ERROR: cmhs b20, d21, d22
4739 //----------------------------------------------------------------------
4740 // Scalar Compare Signed Greather Than Or Equal
4741 //----------------------------------------------------------------------
4745 // CHECK-ERROR: error: invalid operand for instruction
4746 // CHECK-ERROR: cmge b20, d21, d22
4749 //----------------------------------------------------------------------
4750 // Scalar Compare Signed Greather Than Or Equal To Zero
4751 //----------------------------------------------------------------------
4755 // CHECK-ERROR: error: invalid operand for instruction
4756 // CHECK-ERROR: cmge d20, b21, #0
4759 //----------------------------------------------------------------------
4760 // Scalar Compare Unsigned Higher
4761 //----------------------------------------------------------------------
4765 // CHECK-ERROR: error: invalid operand for instruction
4766 // CHECK-ERROR: cmhi b20, d21, d22
4769 //----------------------------------------------------------------------
4770 // Scalar Compare Signed Greater Than
4771 //----------------------------------------------------------------------
4775 // CHECK-ERROR: error: invalid operand for instruction
4776 // CHECK-ERROR: cmgt b20, d21, d22
4779 //----------------------------------------------------------------------
4780 // Scalar Compare Signed Greater Than Zero
4781 //----------------------------------------------------------------------
4785 // CHECK-ERROR: error: invalid operand for instruction
4786 // CHECK-ERROR: cmgt d20, b21, #0
4789 //----------------------------------------------------------------------
4790 // Scalar Compare Signed Less Than Or Equal To Zero
4791 //----------------------------------------------------------------------
4795 // CHECK-ERROR: error: invalid operand for instruction
4796 // CHECK-ERROR: cmle d20, b21, #0
4799 //----------------------------------------------------------------------
4800 // Scalar Compare Less Than Zero
4801 //----------------------------------------------------------------------
4805 // CHECK-ERROR: error: invalid operand for instruction
4806 // CHECK-ERROR: cmlt d20, b21, #0
4809 //----------------------------------------------------------------------
4810 // Scalar Compare Bitwise Test Bits
4811 //----------------------------------------------------------------------
4815 // CHECK-ERROR: error: invalid operand for instruction
4816 // CHECK-ERROR: cmtst b20, d21, d22
4819 //----------------------------------------------------------------------
4820 // Scalar Floating-point Compare Mask Equal
4821 //----------------------------------------------------------------------
4826 // CHECK-ERROR: error: invalid operand for instruction
4827 // CHECK-ERROR: fcmeq s10, h11, s12
4829 // CHECK-ERROR: error: invalid operand for instruction
4830 // CHECK-ERROR: fcmeq d20, s21, d22
4833 //----------------------------------------------------------------------
4834 // Scalar Floating-point Compare Mask Equal To Zero
4835 //----------------------------------------------------------------------
4837 fcmeq h10, s11, #0.0
4838 fcmeq d20, s21, #0.0
4840 // CHECK-ERROR: error: invalid operand for instruction
4841 // CHECK-ERROR: fcmeq h10, s11, #0.0
4843 // CHECK-ERROR: error: invalid operand for instruction
4844 // CHECK-ERROR: fcmeq d20, s21, #0.0
4847 //----------------------------------------------------------------------
4848 // Scalar Floating-point Compare Mask Greater Than Or Equal
4849 //----------------------------------------------------------------------
4854 // CHECK-ERROR: error: invalid operand for instruction
4855 // CHECK-ERROR: fcmge s10, h11, s12
4857 // CHECK-ERROR: error: invalid operand for instruction
4858 // CHECK-ERROR: fcmge d20, s21, d22
4861 //----------------------------------------------------------------------
4862 // Scalar Floating-point Compare Mask Greater Than Or Equal To Zero
4863 //----------------------------------------------------------------------
4865 fcmge h10, s11, #0.0
4866 fcmge d20, s21, #0.0
4868 // CHECK-ERROR: error: invalid operand for instruction
4869 // CHECK-ERROR: fcmge h10, s11, #0.0
4871 // CHECK-ERROR: error: invalid operand for instruction
4872 // CHECK-ERROR: fcmge d20, s21, #0.0
4875 //----------------------------------------------------------------------
4876 // Scalar Floating-point Compare Mask Greather Than
4877 //----------------------------------------------------------------------
4882 // CHECK-ERROR: error: invalid operand for instruction
4883 // CHECK-ERROR: fcmgt s10, h11, s12
4885 // CHECK-ERROR: error: invalid operand for instruction
4886 // CHECK-ERROR: fcmgt d20, s21, d22
4889 //----------------------------------------------------------------------
4890 // Scalar Floating-point Compare Mask Greather Than Zero
4891 //----------------------------------------------------------------------
4893 fcmgt h10, s11, #0.0
4894 fcmgt d20, s21, #0.0
4896 // CHECK-ERROR: error: invalid operand for instruction
4897 // CHECK-ERROR: fcmgt h10, s11, #0.0
4899 // CHECK-ERROR: error: invalid operand for instruction
4900 // CHECK-ERROR: fcmgt d20, s21, #0.0
4903 //----------------------------------------------------------------------
4904 // Scalar Floating-point Compare Mask Less Than Or Equal To Zero
4905 //----------------------------------------------------------------------
4907 fcmle h10, s11, #0.0
4908 fcmle d20, s21, #0.0
4910 // CHECK-ERROR: error: invalid operand for instruction
4911 // CHECK-ERROR: fcmle h10, s11, #0.0
4913 // CHECK-ERROR: error: invalid operand for instruction
4914 // CHECK-ERROR: fcmle d20, s21, #0.0
4917 //----------------------------------------------------------------------
4918 // Scalar Floating-point Compare Mask Less Than
4919 //----------------------------------------------------------------------
4921 fcmlt h10, s11, #0.0
4922 fcmlt d20, s21, #0.0
4924 // CHECK-ERROR: error: invalid operand for instruction
4925 // CHECK-ERROR: fcmlt h10, s11, #0.0
4927 // CHECK-ERROR: error: invalid operand for instruction
4928 // CHECK-ERROR: fcmlt d20, s21, #0.0
4931 //----------------------------------------------------------------------
4932 // Scalar Floating-point Absolute Compare Mask Greater Than Or Equal
4933 //----------------------------------------------------------------------
4938 // CHECK-ERROR: error: invalid operand for instruction
4939 // CHECK-ERROR: facge s10, h11, s12
4941 // CHECK-ERROR: error: invalid operand for instruction
4942 // CHECK-ERROR: facge d20, s21, d22
4945 //----------------------------------------------------------------------
4946 // Scalar Floating-point Absolute Compare Mask Greater Than
4947 //----------------------------------------------------------------------
4952 // CHECK-ERROR: error: invalid operand for instruction
4953 // CHECK-ERROR: facgt s10, h11, s12
4955 // CHECK-ERROR: error: invalid operand for instruction
4956 // CHECK-ERROR: facgt d20, d21, s22
4959 //----------------------------------------------------------------------
4960 // Scalar Signed Saturating Accumulated of Unsigned Value
4961 //----------------------------------------------------------------------
4968 // CHECK-ERROR: error: invalid operand for instruction
4969 // CHECK-ERROR: suqadd b0, h1
4971 // CHECK-ERROR: error: invalid operand for instruction
4972 // CHECK-ERROR: suqadd h0, s1
4974 // CHECK-ERROR: error: invalid operand for instruction
4975 // CHECK-ERROR: suqadd s0, d1
4977 // CHECK-ERROR: error: invalid operand for instruction
4978 // CHECK-ERROR: suqadd d0, b0
4981 //----------------------------------------------------------------------
4982 // Scalar Unsigned Saturating Accumulated of Signed Value
4983 //----------------------------------------------------------------------
4990 // CHECK-ERROR: error: invalid operand for instruction
4991 // CHECK-ERROR: usqadd b0, h1
4993 // CHECK-ERROR: error: invalid operand for instruction
4994 // CHECK-ERROR: usqadd h0, s1
4996 // CHECK-ERROR: error: invalid operand for instruction
4997 // CHECK-ERROR: usqadd s0, d1
4999 // CHECK-ERROR: error: invalid operand for instruction
5000 // CHECK-ERROR: usqadd d0, b1
5003 //----------------------------------------------------------------------
5004 // Scalar Absolute Value
5005 //----------------------------------------------------------------------
5009 // CHECK-ERROR: error: invalid operand for instruction
5010 // CHECK-ERROR: abs d29, s24
5013 //----------------------------------------------------------------------
5015 //----------------------------------------------------------------------
5019 // CHECK-ERROR: error: invalid operand for instruction
5020 // CHECK-ERROR: neg d29, s24
5023 //----------------------------------------------------------------------
5024 // Signed Saturating Doubling Multiply-Add Long
5025 //----------------------------------------------------------------------
5027 sqdmlal s17, h27, s12
5028 sqdmlal d19, s24, d12
5030 // CHECK-ERROR: error: invalid operand for instruction
5031 // CHECK-ERROR: sqdmlal s17, h27, s12
5033 // CHECK-AARCH64-ERROR: error: too few operands for instruction
5034 // CHECK-ARM64-ERROR: error: invalid operand for instruction
5035 // CHECK-ERROR: sqdmlal d19, s24, d12
5038 //----------------------------------------------------------------------
5039 // Signed Saturating Doubling Multiply-Subtract Long
5040 //----------------------------------------------------------------------
5042 sqdmlsl s14, h12, s25
5043 sqdmlsl d12, s23, d13
5045 // CHECK-ERROR: error: invalid operand for instruction
5046 // CHECK-ERROR: sqdmlsl s14, h12, s25
5048 // CHECK-AARCH64-ERROR: error: too few operands for instruction
5049 // CHECK-ARM64-ERROR: error: invalid operand for instruction
5050 // CHECK-ERROR: sqdmlsl d12, s23, d13
5053 //----------------------------------------------------------------------
5054 // Signed Saturating Doubling Multiply Long
5055 //----------------------------------------------------------------------
5057 sqdmull s12, h22, s12
5058 sqdmull d15, s22, d12
5060 // CHECK-ERROR: error: invalid operand for instruction
5061 // CHECK-ERROR: sqdmull s12, h22, s12
5063 // CHECK-AARCH64-ERROR: error: too few operands for instruction
5064 // CHECK-ARM64-ERROR: error: invalid operand for instruction
5065 // CHECK-ERROR: sqdmull d15, s22, d12
5068 //----------------------------------------------------------------------
5069 // Scalar Signed Saturating Extract Unsigned Narrow
5070 //----------------------------------------------------------------------
5076 // CHECK-ERROR: error: invalid operand for instruction
5077 // CHECK-ERROR: sqxtun b19, b14
5079 // CHECK-ERROR: error: invalid operand for instruction
5080 // CHECK-ERROR: sqxtun h21, h15
5082 // CHECK-ERROR: error: invalid operand for instruction
5083 // CHECK-ERROR: sqxtun s20, s12
5086 //----------------------------------------------------------------------
5087 // Scalar Signed Saturating Extract Signed Narrow
5088 //----------------------------------------------------------------------
5094 // CHECK-ERROR: error: invalid operand for instruction
5095 // CHECK-ERROR: sqxtn b18, b18
5097 // CHECK-ERROR: error: invalid operand for instruction
5098 // CHECK-ERROR: sqxtn h20, h17
5100 // CHECK-ERROR: error: invalid operand for instruction
5101 // CHECK-ERROR: sqxtn s19, s14
5105 //----------------------------------------------------------------------
5106 // Scalar Unsigned Saturating Extract Narrow
5107 //----------------------------------------------------------------------
5113 // CHECK-ERROR: error: invalid operand for instruction
5114 // CHECK-ERROR: uqxtn b18, b18
5116 // CHECK-ERROR: error: invalid operand for instruction
5117 // CHECK-ERROR: uqxtn h20, h17
5119 // CHECK-ERROR: error: invalid operand for instruction
5120 // CHECK-ERROR: uqxtn s19, s14
5123 //----------------------------------------------------------------------
5124 // Scalar Signed Shift Right (Immediate)
5125 //----------------------------------------------------------------------
5128 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5129 // CHECK-ERROR: sshr d15, d16, #99
5134 // CHECK-ERROR: error: invalid operand for instruction
5135 // CHECK-ERROR: sshr d15, s16, #31
5138 //----------------------------------------------------------------------
5139 // Scalar Unsigned Shift Right (Immediate)
5140 //----------------------------------------------------------------------
5144 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5145 // CHECK-ERROR: ushr d10, d17, #99
5148 //----------------------------------------------------------------------
5149 // Scalar Signed Rounding Shift Right (Immediate)
5150 //----------------------------------------------------------------------
5154 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5155 // CHECK-ERROR: srshr d19, d18, #99
5158 //----------------------------------------------------------------------
5159 // Scalar Unigned Rounding Shift Right (Immediate)
5160 //----------------------------------------------------------------------
5164 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5165 // CHECK-ERROR: urshr d20, d23, #99
5168 //----------------------------------------------------------------------
5169 // Scalar Signed Shift Right and Accumulate (Immediate)
5170 //----------------------------------------------------------------------
5174 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5175 // CHECK-ERROR: ssra d18, d12, #99
5178 //----------------------------------------------------------------------
5179 // Scalar Unsigned Shift Right and Accumulate (Immediate)
5180 //----------------------------------------------------------------------
5184 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5185 // CHECK-ERROR: usra d20, d13, #99
5188 //----------------------------------------------------------------------
5189 // Scalar Signed Rounding Shift Right and Accumulate (Immediate)
5190 //----------------------------------------------------------------------
5194 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5195 // CHECK-ERROR: srsra d15, d11, #99
5198 //----------------------------------------------------------------------
5199 // Scalar Unsigned Rounding Shift Right and Accumulate (Immediate)
5200 //----------------------------------------------------------------------
5204 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5205 // CHECK-ERROR: ursra d18, d10, #99
5208 //----------------------------------------------------------------------
5209 // Scalar Shift Left (Immediate)
5210 //----------------------------------------------------------------------
5214 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]
5215 // CHECK-ERROR: shl d7, d10, #99
5220 // CHECK-ERROR: error: invalid operand for instruction
5221 // CHECK-ERROR: shl d7, s16, #31
5224 //----------------------------------------------------------------------
5225 // Signed Saturating Shift Left (Immediate)
5226 //----------------------------------------------------------------------
5233 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
5234 // CHECK-ERROR: sqshl b11, b19, #99
5236 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]
5237 // CHECK-ERROR: sqshl h13, h18, #99
5239 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
5240 // CHECK-ERROR: sqshl s14, s17, #99
5242 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]
5243 // CHECK-ERROR: sqshl d15, d16, #99
5246 //----------------------------------------------------------------------
5247 // Unsigned Saturating Shift Left (Immediate)
5248 //----------------------------------------------------------------------
5255 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
5256 // CHECK-ERROR: uqshl b18, b15, #99
5258 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]
5259 // CHECK-ERROR: uqshl h11, h18, #99
5261 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
5262 // CHECK-ERROR: uqshl s14, s19, #99
5264 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]
5265 // CHECK-ERROR: uqshl d15, d12, #99
5268 //----------------------------------------------------------------------
5269 // Signed Saturating Shift Left Unsigned (Immediate)
5270 //----------------------------------------------------------------------
5272 sqshlu b15, b18, #99
5273 sqshlu h19, h17, #99
5274 sqshlu s16, s14, #99
5275 sqshlu d11, d13, #99
5277 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]
5278 // CHECK-ERROR: sqshlu b15, b18, #99
5280 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]
5281 // CHECK-ERROR: sqshlu h19, h17, #99
5283 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
5284 // CHECK-ERROR: sqshlu s16, s14, #99
5286 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]
5287 // CHECK-ERROR: sqshlu d11, d13, #99
5290 //----------------------------------------------------------------------
5291 // Shift Right And Insert (Immediate)
5292 //----------------------------------------------------------------------
5296 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5297 // CHECK-ERROR: sri d10, d12, #99
5300 //----------------------------------------------------------------------
5301 // Shift Left And Insert (Immediate)
5302 //----------------------------------------------------------------------
5306 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]
5307 // CHECK-ERROR: sli d10, d14, #99
5310 //----------------------------------------------------------------------
5311 // Signed Saturating Shift Right Narrow (Immediate)
5312 //----------------------------------------------------------------------
5314 sqshrn b10, h15, #99
5315 sqshrn h17, s10, #99
5316 sqshrn s18, d10, #99
5318 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
5319 // CHECK-ERROR: sqshrn b10, h15, #99
5321 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
5322 // CHECK-ERROR: sqshrn h17, s10, #99
5324 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
5325 // CHECK-ERROR: sqshrn s18, d10, #99
5328 //----------------------------------------------------------------------
5329 // Unsigned Saturating Shift Right Narrow (Immediate)
5330 //----------------------------------------------------------------------
5332 uqshrn b12, h10, #99
5333 uqshrn h10, s14, #99
5334 uqshrn s10, d12, #99
5336 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
5337 // CHECK-ERROR: uqshrn b12, h10, #99
5339 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
5340 // CHECK-ERROR: uqshrn h10, s14, #99
5342 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
5343 // CHECK-ERROR: uqshrn s10, d12, #99
5346 //----------------------------------------------------------------------
5347 // Signed Saturating Rounded Shift Right Narrow (Immediate)
5348 //----------------------------------------------------------------------
5350 sqrshrn b10, h13, #99
5351 sqrshrn h15, s10, #99
5352 sqrshrn s15, d12, #99
5354 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
5355 // CHECK-ERROR: sqrshrn b10, h13, #99
5357 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
5358 // CHECK-ERROR: sqrshrn h15, s10, #99
5360 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
5361 // CHECK-ERROR: sqrshrn s15, d12, #99
5364 //----------------------------------------------------------------------
5365 // Unsigned Saturating Rounded Shift Right Narrow (Immediate)
5366 //----------------------------------------------------------------------
5368 uqrshrn b10, h12, #99
5369 uqrshrn h12, s10, #99
5370 uqrshrn s10, d10, #99
5372 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
5373 // CHECK-ERROR: uqrshrn b10, h12, #99
5375 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
5376 // CHECK-ERROR: uqrshrn h12, s10, #99
5378 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
5379 // CHECK-ERROR: uqrshrn s10, d10, #99
5382 //----------------------------------------------------------------------
5383 // Signed Saturating Shift Right Unsigned Narrow (Immediate)
5384 //----------------------------------------------------------------------
5386 sqshrun b15, h10, #99
5387 sqshrun h20, s14, #99
5388 sqshrun s10, d15, #99
5390 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
5391 // CHECK-ERROR: sqshrun b15, h10, #99
5393 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
5394 // CHECK-ERROR: sqshrun h20, s14, #99
5396 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
5397 // CHECK-ERROR: sqshrun s10, d15, #99
5400 //----------------------------------------------------------------------
5401 // Signed Saturating Rounded Shift Right Unsigned Narrow (Immediate)
5402 //----------------------------------------------------------------------
5404 sqrshrun b17, h10, #99
5405 sqrshrun h10, s13, #99
5406 sqrshrun s22, d16, #99
5408 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]
5409 // CHECK-ERROR: sqrshrun b17, h10, #99
5411 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]
5412 // CHECK-ERROR: sqrshrun h10, s13, #99
5414 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
5415 // CHECK-ERROR: sqrshrun s22, d16, #99
5418 //----------------------------------------------------------------------
5419 // Scalar Signed Fixed-point Convert To Floating-Point (Immediate)
5420 //----------------------------------------------------------------------
5427 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
5428 // CHECK-ERROR: scvtf s22, s13, #0
5430 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
5431 // CHECK-ERROR: scvtf s22, s13, #33
5433 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5434 // CHECK-ERROR: scvtf d21, d12, #65
5436 // CHECK-ERROR: error: invalid operand for instruction
5437 // CHECK-ERROR: scvtf d21, s12, #31
5440 //----------------------------------------------------------------------
5441 // Scalar Unsigned Fixed-point Convert To Floating-Point (Immediate)
5442 //----------------------------------------------------------------------
5448 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
5449 // CHECK-ERROR: ucvtf s22, s13, #34
5451 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
5452 // CHECK-ERROR: ucvtf d21, d14, #65
5454 // CHECK-ERROR: error: invalid operand for instruction
5455 // CHECK-ERROR: ucvtf d21, s14, #64
5458 //------------------------------------------------------------------------------
5460 //------------------------------------------------------------------------------
5462 rev32 v30.2s, v31.2s
5463 rev32 v30.4s, v31.4s
5464 rev32 v30.2d, v31.2d
5471 // CHECK-ERROR: error: invalid operand for instruction
5472 // CHECK-ERROR: rev64 v6.2d, v8.2d
5474 // CHECK-ERROR: error: invalid operand for instruction
5475 // CHECK-ERROR: rev32 v30.2s, v31.2s
5477 // CHECK-ERROR: error: invalid operand for instruction
5478 // CHECK-ERROR: rev32 v30.4s, v31.4s
5480 // CHECK-ERROR: error: invalid operand for instruction
5481 // CHECK-ERROR: rev32 v30.2d, v31.2d
5483 // CHECK-ERROR: error: invalid operand for instruction
5484 // CHECK-ERROR: rev16 v21.4h, v1.4h
5486 // CHECK-ERROR: error: invalid operand for instruction
5487 // CHECK-ERROR: rev16 v21.8h, v1.8h
5489 // CHECK-ERROR: error: invalid operand for instruction
5490 // CHECK-ERROR: rev16 v21.2s, v1.2s
5492 // CHECK-ERROR: error: invalid operand for instruction
5493 // CHECK-ERROR: rev16 v21.4s, v1.4s
5495 // CHECK-ERROR: error: invalid operand for instruction
5496 // CHECK-ERROR: rev16 v21.2d, v1.2d
5499 //------------------------------------------------------------------------------
5500 // Signed integer pairwise add long
5501 //------------------------------------------------------------------------------
5503 saddlp v3.8h, v21.8h
5508 // CHECK-ERROR: error: invalid operand for instruction
5509 // CHECK-ERROR: saddlp v3.8h, v21.8h
5511 // CHECK-ERROR: error: invalid operand for instruction
5512 // CHECK-ERROR: saddlp v8.8b, v5.8b
5514 // CHECK-ERROR: error: invalid operand for instruction
5515 // CHECK-ERROR: saddlp v9.8h, v1.4s
5517 // CHECK-ERROR: error: invalid operand for instruction
5518 // CHECK-ERROR: saddlp v0.4s, v1.2d
5521 //------------------------------------------------------------------------------
5522 // Unsigned integer pairwise add long
5523 //------------------------------------------------------------------------------
5525 uaddlp v3.8h, v21.8h
5530 // CHECK-ERROR: error: invalid operand for instruction
5531 // CHECK-ERROR: uaddlp v3.8h, v21.8h
5533 // CHECK-ERROR: error: invalid operand for instruction
5534 // CHECK-ERROR: uaddlp v8.8b, v5.8b
5536 // CHECK-ERROR: error: invalid operand for instruction
5537 // CHECK-ERROR: uaddlp v9.8h, v1.4s
5539 // CHECK-ERROR: error: invalid operand for instruction
5540 // CHECK-ERROR: uaddlp v0.4s, v1.2d
5543 //------------------------------------------------------------------------------
5544 // Signed integer pairwise add and accumulate long
5545 //------------------------------------------------------------------------------
5547 sadalp v3.16b, v21.16b
5551 sadalp v12.2d, v4.8h
5553 // CHECK-ERROR: error: invalid operand for instruction
5554 // CHECK-ERROR: sadalp v3.16b, v21.16b
5556 // CHECK-ERROR: error: invalid operand for instruction
5557 // CHECK-ERROR: sadalp v8.4h, v5.4h
5559 // CHECK-ERROR: error: invalid operand for instruction
5560 // CHECK-ERROR: sadalp v9.4s, v1.4s
5562 // CHECK-ERROR: error: invalid operand for instruction
5563 // CHECK-ERROR: sadalp v0.4h, v1.2s
5565 // CHECK-ERROR: error: invalid operand for instruction
5566 // CHECK-ERROR: sadalp v12.2d, v4.8h
5569 //------------------------------------------------------------------------------
5570 // Unsigned integer pairwise add and accumulate long
5571 //------------------------------------------------------------------------------
5573 uadalp v3.16b, v21.16b
5577 uadalp v12.2d, v4.8h
5579 // CHECK-ERROR: error: invalid operand for instruction
5580 // CHECK-ERROR: uadalp v3.16b, v21.16b
5582 // CHECK-ERROR: error: invalid operand for instruction
5583 // CHECK-ERROR: uadalp v8.4h, v5.4h
5585 // CHECK-ERROR: error: invalid operand for instruction
5586 // CHECK-ERROR: uadalp v9.4s, v1.4s
5588 // CHECK-ERROR: error: invalid operand for instruction
5589 // CHECK-ERROR: uadalp v0.4h, v1.2s
5591 // CHECK-ERROR: error: invalid operand for instruction
5592 // CHECK-ERROR: uadalp v12.2d, v4.8h
5595 //------------------------------------------------------------------------------
5596 // Signed integer saturating accumulate of unsigned value
5597 //------------------------------------------------------------------------------
5599 suqadd v0.16b, v31.8b
5601 suqadd v13.4h, v21.4s
5604 // CHECK-ERROR: error: invalid operand for instruction
5605 // CHECK-ERROR: suqadd v0.16b, v31.8b
5607 // CHECK-ERROR: error: invalid operand for instruction
5608 // CHECK-ERROR: suqadd v1.8b, v9.8h
5610 // CHECK-ERROR: error: invalid operand for instruction
5611 // CHECK-ERROR: suqadd v13.4h, v21.4s
5613 // CHECK-ERROR: error: invalid operand for instruction
5614 // CHECK-ERROR: suqadd v4.2s, v0.2d
5617 //------------------------------------------------------------------------------
5618 // Unsigned integer saturating accumulate of signed value
5619 //------------------------------------------------------------------------------
5621 usqadd v0.16b, v31.8b
5623 usqadd v13.4h, v21.4s
5626 // CHECK-ERROR: error: invalid operand for instruction
5627 // CHECK-ERROR: usqadd v0.16b, v31.8b
5629 // CHECK-ERROR: error: invalid operand for instruction
5630 // CHECK-ERROR: usqadd v2.8h, v4.4h
5632 // CHECK-ERROR: error: invalid operand for instruction
5633 // CHECK-ERROR: usqadd v13.4h, v21.4s
5635 // CHECK-ERROR: error: invalid operand for instruction
5636 // CHECK-ERROR: usqadd v4.2s, v0.2d
5639 //------------------------------------------------------------------------------
5640 // Integer saturating absolute
5641 //------------------------------------------------------------------------------
5643 sqabs v0.16b, v31.8b
5648 // CHECK-ERROR: error: invalid operand for instruction
5649 // CHECK-ERROR: sqabs v0.16b, v31.8b
5651 // CHECK-ERROR: error: invalid operand for instruction
5652 // CHECK-ERROR: sqabs v2.8h, v4.4h
5654 // CHECK-ERROR: error: invalid operand for instruction
5655 // CHECK-ERROR: sqabs v6.4s, v8.2s
5657 // CHECK-ERROR: error: invalid operand for instruction
5658 // CHECK-ERROR: sqabs v6.2d, v8.2s
5661 //------------------------------------------------------------------------------
5662 // Signed integer saturating negate
5663 //------------------------------------------------------------------------------
5665 sqneg v0.16b, v31.8b
5670 // CHECK-ERROR: error: invalid operand for instruction
5671 // CHECK-ERROR: sqneg v0.16b, v31.8b
5673 // CHECK-ERROR: error: invalid operand for instruction
5674 // CHECK-ERROR: sqneg v2.8h, v4.4h
5676 // CHECK-ERROR: error: invalid operand for instruction
5677 // CHECK-ERROR: sqneg v6.4s, v8.2s
5679 // CHECK-ERROR: error: invalid operand for instruction
5680 // CHECK-ERROR: sqneg v6.2d, v8.2s
5683 //------------------------------------------------------------------------------
5685 //------------------------------------------------------------------------------
5692 // CHECK-ERROR: error: invalid operand for instruction
5693 // CHECK-ERROR: abs v0.16b, v31.8b
5695 // CHECK-ERROR: error: invalid operand for instruction
5696 // CHECK-ERROR: abs v2.8h, v4.4h
5698 // CHECK-ERROR: error: invalid operand for instruction
5699 // CHECK-ERROR: abs v6.4s, v8.2s
5701 // CHECK-ERROR: error: invalid operand for instruction
5702 // CHECK-ERROR: abs v6.2d, v8.2s
5705 //------------------------------------------------------------------------------
5706 // Integer count leading sign bits
5707 //------------------------------------------------------------------------------
5711 // CHECK-ERROR: error: invalid operand for instruction
5712 // CHECK-ERROR: cls v0.2d, v31.2d
5715 //------------------------------------------------------------------------------
5716 // Integer count leading zeros
5717 //------------------------------------------------------------------------------
5721 // CHECK-ERROR: error: invalid operand for instruction
5722 // CHECK-ERROR: clz v0.2d, v31.2d
5725 //------------------------------------------------------------------------------
5727 //------------------------------------------------------------------------------
5735 // CHECK-ERROR: error: invalid operand for instruction
5736 // CHECK-ERROR: cnt v2.8h, v4.8h
5738 // CHECK-ERROR: error: invalid operand for instruction
5739 // CHECK-ERROR: cnt v6.4s, v8.4s
5741 // CHECK-ERROR: error: invalid operand for instruction
5742 // CHECK-ERROR: cnt v6.2d, v8.2d
5744 // CHECK-ERROR: error: invalid operand for instruction
5745 // CHECK-ERROR: cnt v13.4h, v21.4h
5747 // CHECK-ERROR: error: invalid operand for instruction
5748 // CHECK-ERROR: cnt v4.2s, v0.2s
5752 //------------------------------------------------------------------------------
5754 //------------------------------------------------------------------------------
5762 // CHECK-ERROR: error: invalid operand for instruction
5763 // CHECK-ERROR: not v2.8h, v4.8h
5765 // CHECK-ERROR: error: invalid operand for instruction
5766 // CHECK-ERROR: not v6.4s, v8.4s
5768 // CHECK-ERROR: error: invalid operand for instruction
5769 // CHECK-ERROR: not v6.2d, v8.2d
5771 // CHECK-ERROR: error: invalid operand for instruction
5772 // CHECK-ERROR: not v13.4h, v21.4h
5774 // CHECK-ERROR: error: invalid operand for instruction
5775 // CHECK-ERROR: not v4.2s, v0.2s
5778 //------------------------------------------------------------------------------
5780 //------------------------------------------------------------------------------
5788 // CHECK-ERROR: error: invalid operand for instruction
5789 // CHECK-ERROR: rbit v2.8h, v4.8h
5791 // CHECK-ERROR: error: invalid operand for instruction
5792 // CHECK-ERROR: rbit v6.4s, v8.4s
5794 // CHECK-ERROR: error: invalid operand for instruction
5795 // CHECK-ERROR: rbit v6.2d, v8.2d
5797 // CHECK-ERROR: error: invalid operand for instruction
5798 // CHECK-ERROR: rbit v13.4h, v21.4h
5800 // CHECK-ERROR: error: invalid operand for instruction
5801 // CHECK-ERROR: rbit v4.2s, v0.2s
5804 //------------------------------------------------------------------------------
5805 // Floating-point absolute
5806 //------------------------------------------------------------------------------
5808 fabs v0.16b, v31.16b
5813 // CHECK-ERROR: error: invalid operand for instruction
5814 // CHECK-ERROR: fabs v0.16b, v31.16b
5816 // CHECK-ERROR: error: invalid operand for instruction
5817 // CHECK-ERROR: fabs v2.8h, v4.8h
5819 // CHECK-ERROR: error: invalid operand for instruction
5820 // CHECK-ERROR: fabs v1.8b, v9.8b
5822 // CHECK-ERROR: error: invalid operand for instruction
5823 // CHECK-ERROR: fabs v13.4h, v21.4h
5826 //------------------------------------------------------------------------------
5827 // Floating-point negate
5828 //------------------------------------------------------------------------------
5830 fneg v0.16b, v31.16b
5835 // CHECK-ERROR: error: invalid operand for instruction
5836 // CHECK-ERROR: fneg v0.16b, v31.16b
5838 // CHECK-ERROR: error: invalid operand for instruction
5839 // CHECK-ERROR: fneg v2.8h, v4.8h
5841 // CHECK-ERROR: error: invalid operand for instruction
5842 // CHECK-ERROR: fneg v1.8b, v9.8b
5844 // CHECK-ERROR: error: invalid operand for instruction
5845 // CHECK-ERROR: fneg v13.4h, v21.4h
5848 //------------------------------------------------------------------------------
5849 // Integer extract and narrow
5850 //------------------------------------------------------------------------------
5859 // CHECK-ERROR: error: invalid operand for instruction
5860 // CHECK-ERROR: xtn v0.16b, v31.8h
5862 // CHECK-ERROR: error: invalid operand for instruction
5863 // CHECK-ERROR: xtn v2.8h, v4.4s
5865 // CHECK-ERROR: error: invalid operand for instruction
5866 // CHECK-ERROR: xtn v6.4s, v8.2d
5868 // CHECK-ERROR: error: invalid operand for instruction
5869 // CHECK-ERROR: xtn2 v1.8b, v9.8h
5871 // CHECK-ERROR: error: invalid operand for instruction
5872 // CHECK-ERROR: xtn2 v13.4h, v21.4s
5874 // CHECK-ERROR: error: invalid operand for instruction
5875 // CHECK-ERROR: xtn2 v4.2s, v0.2d
5878 //------------------------------------------------------------------------------
5879 // Signed integer saturating extract and unsigned narrow
5880 //------------------------------------------------------------------------------
5882 sqxtun v0.16b, v31.8h
5885 sqxtun2 v1.8b, v9.8h
5886 sqxtun2 v13.4h, v21.4s
5887 sqxtun2 v4.2s, v0.2d
5889 // CHECK-ERROR: error: invalid operand for instruction
5890 // CHECK-ERROR: sqxtun v0.16b, v31.8h
5892 // CHECK-ERROR: error: invalid operand for instruction
5893 // CHECK-ERROR: sqxtun v2.8h, v4.4s
5895 // CHECK-ERROR: error: invalid operand for instruction
5896 // CHECK-ERROR: sqxtun v6.4s, v8.2d
5898 // CHECK-ERROR: error: invalid operand for instruction
5899 // CHECK-ERROR: sqxtun2 v1.8b, v9.8h
5901 // CHECK-ERROR: error: invalid operand for instruction
5902 // CHECK-ERROR: sqxtun2 v13.4h, v21.4s
5904 // CHECK-ERROR: error: invalid operand for instruction
5905 // CHECK-ERROR: sqxtun2 v4.2s, v0.2d
5908 //------------------------------------------------------------------------------
5909 // Signed integer saturating extract and narrow
5910 //------------------------------------------------------------------------------
5912 sqxtn v0.16b, v31.8h
5916 sqxtn2 v13.4h, v21.4s
5919 // CHECK-ERROR: error: invalid operand for instruction
5920 // CHECK-ERROR: sqxtn v0.16b, v31.8h
5922 // CHECK-ERROR: error: invalid operand for instruction
5923 // CHECK-ERROR: sqxtn v2.8h, v4.4s
5925 // CHECK-ERROR: error: invalid operand for instruction
5926 // CHECK-ERROR: sqxtn v6.4s, v8.2d
5928 // CHECK-ERROR: error: invalid operand for instruction
5929 // CHECK-ERROR: sqxtn2 v1.8b, v9.8h
5931 // CHECK-ERROR: error: invalid operand for instruction
5932 // CHECK-ERROR: sqxtn2 v13.4h, v21.4s
5934 // CHECK-ERROR: error: invalid operand for instruction
5935 // CHECK-ERROR: sqxtn2 v4.2s, v0.2d
5938 //------------------------------------------------------------------------------
5939 // Unsigned integer saturating extract and narrow
5940 //------------------------------------------------------------------------------
5942 uqxtn v0.16b, v31.8h
5946 uqxtn2 v13.4h, v21.4s
5949 // CHECK-ERROR: error: invalid operand for instruction
5950 // CHECK-ERROR: uqxtn v0.16b, v31.8h
5952 // CHECK-ERROR: error: invalid operand for instruction
5953 // CHECK-ERROR: uqxtn v2.8h, v4.4s
5955 // CHECK-ERROR: error: invalid operand for instruction
5956 // CHECK-ERROR: uqxtn v6.4s, v8.2d
5958 // CHECK-ERROR: error: invalid operand for instruction
5959 // CHECK-ERROR: uqxtn2 v1.8b, v9.8h
5961 // CHECK-ERROR: error: invalid operand for instruction
5962 // CHECK-ERROR: uqxtn2 v13.4h, v21.4s
5964 // CHECK-ERROR: error: invalid operand for instruction
5965 // CHECK-ERROR: uqxtn2 v4.2s, v0.2d
5968 //------------------------------------------------------------------------------
5969 // Integer shift left long
5970 //------------------------------------------------------------------------------
5972 shll2 v2.8h, v4.16b, #7
5973 shll2 v6.4s, v8.8h, #15
5974 shll2 v6.2d, v8.4s, #31
5975 shll v2.8h, v4.16b, #8
5976 shll v6.4s, v8.8h, #16
5977 shll v6.2d, v8.4s, #32
5978 shll v2.8h, v4.8b, #8
5979 shll v6.4s, v8.4h, #16
5980 shll v6.2d, v8.2s, #32
5981 shll2 v2.8h, v4.8b, #5
5982 shll2 v6.4s, v8.4h, #14
5983 shll2 v6.2d, v8.2s, #1
5985 // CHECK-ERROR: error: invalid operand for instruction
5986 // CHECK-ERROR: shll2 v2.8h, v4.16b, #7
5988 // CHECK-ERROR: error: invalid operand for instruction
5989 // CHECK-ERROR: shll2 v6.4s, v8.8h, #15
5991 // CHECK-ERROR: error: invalid operand for instruction
5992 // CHECK-ERROR: shll2 v6.2d, v8.4s, #31
5994 // CHECK-ERROR: error: invalid operand for instruction
5995 // CHECK-ERROR: shll v2.8h, v4.16b, #8
5997 // CHECK-ERROR: error: invalid operand for instruction
5998 // CHECK-ERROR: shll v6.4s, v8.8h, #16
6000 // CHECK-ERROR: error: invalid operand for instruction
6001 // CHECK-ERROR: shll v6.2d, v8.4s, #32
6003 // CHECK-ERROR: error: invalid operand for instruction
6004 // CHECK-ERROR: shll2 v2.8h, v4.8b, #5
6006 // CHECK-ERROR: error: invalid operand for instruction
6007 // CHECK-ERROR: shll2 v6.4s, v8.4h, #14
6009 // CHECK-ERROR: error: invalid operand for instruction
6010 // CHECK-ERROR: shll2 v6.2d, v8.2s, #1
6013 //------------------------------------------------------------------------------
6014 // Floating-point convert downsize
6015 //------------------------------------------------------------------------------
6019 fcvtn2 v13.4h, v21.4s
6022 // CHECK-ERROR: error: invalid operand for instruction
6023 // CHECK-ERROR: fcvtn v2.8h, v4.4s
6025 // CHECK-ERROR: error: invalid operand for instruction
6026 // CHECK-ERROR: fcvtn v6.4s, v8.2d
6028 // CHECK-ERROR: error: invalid operand for instruction
6029 // CHECK-ERROR: fcvtn2 v13.4h, v21.4s
6031 // CHECK-ERROR: error: invalid operand for instruction
6032 // CHECK-ERROR: fcvtn2 v4.2s, v0.2d
6035 //------------------------------------------------------------------------------
6036 // Floating-point convert downsize with inexact
6037 //------------------------------------------------------------------------------
6040 fcvtxn2 v4.2s, v0.2d
6042 // CHECK-ERROR: error: invalid operand for instruction
6043 // CHECK-ERROR: fcvtxn v6.4s, v8.2d
6045 // CHECK-ERROR: error: invalid operand for instruction
6046 // CHECK-ERROR: fcvtxn2 v4.2s, v0.2d
6049 //------------------------------------------------------------------------------
6050 // Floating-point convert upsize
6051 //------------------------------------------------------------------------------
6056 fcvtl v17.2d, v28.4s
6058 // CHECK-ERROR: error: invalid operand for instruction
6059 // CHECK-ERROR: fcvtl2 v9.4s, v1.4h
6061 // CHECK-ERROR: error: invalid operand for instruction
6062 // CHECK-ERROR: fcvtl2 v0.2d, v1.2s
6064 // CHECK-ERROR: error: invalid operand for instruction
6065 // CHECK-ERROR: fcvtl v12.4s, v4.8h
6067 // CHECK-ERROR: error: invalid operand for instruction
6068 // CHECK-ERROR: fcvtl v17.2d, v28.4s
6071 //------------------------------------------------------------------------------
6072 // Floating-point round to integral
6073 //------------------------------------------------------------------------------
6075 frintn v0.16b, v31.16b
6078 frintn v13.4h, v21.4h
6080 frinta v0.16b, v31.16b
6083 frinta v13.4h, v21.4h
6085 frintp v0.16b, v31.16b
6088 frintp v13.4h, v21.4h
6090 frintm v0.16b, v31.16b
6093 frintm v13.4h, v21.4h
6095 frintx v0.16b, v31.16b
6098 frintx v13.4h, v21.4h
6100 frintz v0.16b, v31.16b
6103 frintz v13.4h, v21.4h
6105 frinti v0.16b, v31.16b
6108 frinti v13.4h, v21.4h
6110 fcvtns v0.16b, v31.16b
6113 fcvtns v13.4h, v21.4h
6115 fcvtnu v0.16b, v31.16b
6118 fcvtnu v13.4h, v21.4h
6120 fcvtps v0.16b, v31.16b
6123 fcvtps v13.4h, v21.4h
6125 fcvtpu v0.16b, v31.16b
6128 fcvtpu v13.4h, v21.4h
6130 fcvtms v0.16b, v31.16b
6133 fcvtms v13.4h, v21.4h
6135 fcvtmu v0.16b, v31.16b
6138 fcvtmu v13.4h, v21.4h
6140 fcvtzs v0.16b, v31.16b
6143 fcvtzs v13.4h, v21.4h
6145 fcvtzu v0.16b, v31.16b
6148 fcvtzu v13.4h, v21.4h
6150 fcvtas v0.16b, v31.16b
6153 fcvtas v13.4h, v21.4h
6155 fcvtau v0.16b, v31.16b
6158 fcvtau v13.4h, v21.4h
6160 urecpe v0.16b, v31.16b
6163 urecpe v13.4h, v21.4h
6166 ursqrte v0.16b, v31.16b
6167 ursqrte v2.8h, v4.8h
6168 ursqrte v1.8b, v9.8b
6169 ursqrte v13.4h, v21.4h
6170 ursqrte v1.2d, v9.2d
6172 scvtf v0.16b, v31.16b
6175 scvtf v13.4h, v21.4h
6177 ucvtf v0.16b, v31.16b
6180 ucvtf v13.4h, v21.4h
6182 frecpe v0.16b, v31.16b
6185 frecpe v13.4h, v21.4h
6187 frsqrte v0.16b, v31.16b
6188 frsqrte v2.8h, v4.8h
6189 frsqrte v1.8b, v9.8b
6190 frsqrte v13.4h, v21.4h
6192 fsqrt v0.16b, v31.16b
6195 fsqrt v13.4h, v21.4h
6197 // CHECK-ERROR: error: invalid operand for instruction
6198 // CHECK-ERROR: frintn v0.16b, v31.16b
6200 // CHECK-ERROR: error: invalid operand for instruction
6201 // CHECK-ERROR: frintn v2.8h, v4.8h
6203 // CHECK-ERROR: error: invalid operand for instruction
6204 // CHECK-ERROR: frintn v1.8b, v9.8b
6206 // CHECK-ERROR: error: invalid operand for instruction
6207 // CHECK-ERROR: frintn v13.4h, v21.4h
6209 // CHECK-ERROR: error: invalid operand for instruction
6210 // CHECK-ERROR: frinta v0.16b, v31.16b
6212 // CHECK-ERROR: error: invalid operand for instruction
6213 // CHECK-ERROR: frinta v2.8h, v4.8h
6215 // CHECK-ERROR: error: invalid operand for instruction
6216 // CHECK-ERROR: frinta v1.8b, v9.8b
6218 // CHECK-ERROR: error: invalid operand for instruction
6219 // CHECK-ERROR: frinta v13.4h, v21.4h
6221 // CHECK-ERROR: error: invalid operand for instruction
6222 // CHECK-ERROR: frintp v0.16b, v31.16b
6224 // CHECK-ERROR: error: invalid operand for instruction
6225 // CHECK-ERROR: frintp v2.8h, v4.8h
6227 // CHECK-ERROR: error: invalid operand for instruction
6228 // CHECK-ERROR: frintp v1.8b, v9.8b
6230 // CHECK-ERROR: error: invalid operand for instruction
6231 // CHECK-ERROR: frintp v13.4h, v21.4h
6233 // CHECK-ERROR: error: invalid operand for instruction
6234 // CHECK-ERROR: frintm v0.16b, v31.16b
6236 // CHECK-ERROR: error: invalid operand for instruction
6237 // CHECK-ERROR: frintm v2.8h, v4.8h
6239 // CHECK-ERROR: error: invalid operand for instruction
6240 // CHECK-ERROR: frintm v1.8b, v9.8b
6242 // CHECK-ERROR: error: invalid operand for instruction
6243 // CHECK-ERROR: frintm v13.4h, v21.4h
6245 // CHECK-ERROR: error: invalid operand for instruction
6246 // CHECK-ERROR: frintx v0.16b, v31.16b
6248 // CHECK-ERROR: error: invalid operand for instruction
6249 // CHECK-ERROR: frintx v2.8h, v4.8h
6251 // CHECK-ERROR: error: invalid operand for instruction
6252 // CHECK-ERROR: frintx v1.8b, v9.8b
6254 // CHECK-ERROR: error: invalid operand for instruction
6255 // CHECK-ERROR: frintx v13.4h, v21.4h
6257 // CHECK-ERROR: error: invalid operand for instruction
6258 // CHECK-ERROR: frintz v0.16b, v31.16b
6260 // CHECK-ERROR: error: invalid operand for instruction
6261 // CHECK-ERROR: frintz v2.8h, v4.8h
6263 // CHECK-ERROR: error: invalid operand for instruction
6264 // CHECK-ERROR: frintz v1.8b, v9.8b
6266 // CHECK-ERROR: error: invalid operand for instruction
6267 // CHECK-ERROR: frintz v13.4h, v21.4h
6269 // CHECK-ERROR: error: invalid operand for instruction
6270 // CHECK-ERROR: frinti v0.16b, v31.16b
6272 // CHECK-ERROR: error: invalid operand for instruction
6273 // CHECK-ERROR: frinti v2.8h, v4.8h
6275 // CHECK-ERROR: error: invalid operand for instruction
6276 // CHECK-ERROR: frinti v1.8b, v9.8b
6278 // CHECK-ERROR: error: invalid operand for instruction
6279 // CHECK-ERROR: frinti v13.4h, v21.4h
6281 // CHECK-ERROR: error: invalid operand for instruction
6282 // CHECK-ERROR: fcvtns v0.16b, v31.16b
6284 // CHECK-ERROR: error: invalid operand for instruction
6285 // CHECK-ERROR: fcvtns v2.8h, v4.8h
6287 // CHECK-ERROR: error: invalid operand for instruction
6288 // CHECK-ERROR: fcvtns v1.8b, v9.8b
6290 // CHECK-ERROR: error: invalid operand for instruction
6291 // CHECK-ERROR: fcvtns v13.4h, v21.4h
6293 // CHECK-ERROR: error: invalid operand for instruction
6294 // CHECK-ERROR: fcvtnu v0.16b, v31.16b
6296 // CHECK-ERROR: error: invalid operand for instruction
6297 // CHECK-ERROR: fcvtnu v2.8h, v4.8h
6299 // CHECK-ERROR: error: invalid operand for instruction
6300 // CHECK-ERROR: fcvtnu v1.8b, v9.8b
6302 // CHECK-ERROR: error: invalid operand for instruction
6303 // CHECK-ERROR: fcvtnu v13.4h, v21.4h
6305 // CHECK-ERROR: error: invalid operand for instruction
6306 // CHECK-ERROR: fcvtps v0.16b, v31.16b
6308 // CHECK-ERROR: error: invalid operand for instruction
6309 // CHECK-ERROR: fcvtps v2.8h, v4.8h
6311 // CHECK-ERROR: error: invalid operand for instruction
6312 // CHECK-ERROR: fcvtps v1.8b, v9.8b
6314 // CHECK-ERROR: error: invalid operand for instruction
6315 // CHECK-ERROR: fcvtps v13.4h, v21.4h
6317 // CHECK-ERROR: error: invalid operand for instruction
6318 // CHECK-ERROR: fcvtpu v0.16b, v31.16b
6320 // CHECK-ERROR: error: invalid operand for instruction
6321 // CHECK-ERROR: fcvtpu v2.8h, v4.8h
6323 // CHECK-ERROR: error: invalid operand for instruction
6324 // CHECK-ERROR: fcvtpu v1.8b, v9.8b
6326 // CHECK-ERROR: error: invalid operand for instruction
6327 // CHECK-ERROR: fcvtpu v13.4h, v21.4h
6329 // CHECK-ERROR: error: invalid operand for instruction
6330 // CHECK-ERROR: fcvtms v0.16b, v31.16b
6332 // CHECK-ERROR: error: invalid operand for instruction
6333 // CHECK-ERROR: fcvtms v2.8h, v4.8h
6335 // CHECK-ERROR: error: invalid operand for instruction
6336 // CHECK-ERROR: fcvtms v1.8b, v9.8b
6338 // CHECK-ERROR: error: invalid operand for instruction
6339 // CHECK-ERROR: fcvtms v13.4h, v21.4h
6341 // CHECK-ERROR: error: invalid operand for instruction
6342 // CHECK-ERROR: fcvtmu v0.16b, v31.16b
6344 // CHECK-ERROR: error: invalid operand for instruction
6345 // CHECK-ERROR: fcvtmu v2.8h, v4.8h
6347 // CHECK-ERROR: error: invalid operand for instruction
6348 // CHECK-ERROR: fcvtmu v1.8b, v9.8b
6350 // CHECK-ERROR: error: invalid operand for instruction
6351 // CHECK-ERROR: fcvtmu v13.4h, v21.4h
6353 // CHECK-ERROR: error: invalid operand for instruction
6354 // CHECK-ERROR: fcvtzs v0.16b, v31.16b
6356 // CHECK-ERROR: error: invalid operand for instruction
6357 // CHECK-ERROR: fcvtzs v2.8h, v4.8h
6359 // CHECK-ERROR: error: invalid operand for instruction
6360 // CHECK-ERROR: fcvtzs v1.8b, v9.8b
6362 // CHECK-ERROR: error: invalid operand for instruction
6363 // CHECK-ERROR: fcvtzs v13.4h, v21.4h
6365 // CHECK-ERROR: error: invalid operand for instruction
6366 // CHECK-ERROR: fcvtzu v0.16b, v31.16b
6368 // CHECK-ERROR: error: invalid operand for instruction
6369 // CHECK-ERROR: fcvtzu v2.8h, v4.8h
6371 // CHECK-ERROR: error: invalid operand for instruction
6372 // CHECK-ERROR: fcvtzu v1.8b, v9.8b
6374 // CHECK-ERROR: error: invalid operand for instruction
6375 // CHECK-ERROR: fcvtzu v13.4h, v21.4h
6377 // CHECK-ERROR: error: invalid operand for instruction
6378 // CHECK-ERROR: fcvtas v0.16b, v31.16b
6380 // CHECK-ERROR: error: invalid operand for instruction
6381 // CHECK-ERROR: fcvtas v2.8h, v4.8h
6383 // CHECK-ERROR: error: invalid operand for instruction
6384 // CHECK-ERROR: fcvtas v1.8b, v9.8b
6386 // CHECK-ERROR: error: invalid operand for instruction
6387 // CHECK-ERROR: fcvtas v13.4h, v21.4h
6389 // CHECK-ERROR: error: invalid operand for instruction
6390 // CHECK-ERROR: fcvtau v0.16b, v31.16b
6392 // CHECK-ERROR: error: invalid operand for instruction
6393 // CHECK-ERROR: fcvtau v2.8h, v4.8h
6395 // CHECK-ERROR: error: invalid operand for instruction
6396 // CHECK-ERROR: fcvtau v1.8b, v9.8b
6398 // CHECK-ERROR: error: invalid operand for instruction
6399 // CHECK-ERROR: fcvtau v13.4h, v21.4h
6401 // CHECK-ERROR: error: invalid operand for instruction
6402 // CHECK-ERROR: urecpe v0.16b, v31.16b
6404 // CHECK-ERROR: error: invalid operand for instruction
6405 // CHECK-ERROR: urecpe v2.8h, v4.8h
6407 // CHECK-ERROR: error: invalid operand for instruction
6408 // CHECK-ERROR: urecpe v1.8b, v9.8b
6410 // CHECK-ERROR: error: invalid operand for instruction
6411 // CHECK-ERROR: urecpe v13.4h, v21.4h
6413 // CHECK-ERROR: error: invalid operand for instruction
6414 // CHECK-ERROR: urecpe v1.2d, v9.2d
6416 // CHECK-ERROR: error: invalid operand for instruction
6417 // CHECK-ERROR: ursqrte v0.16b, v31.16b
6419 // CHECK-ERROR: error: invalid operand for instruction
6420 // CHECK-ERROR: ursqrte v2.8h, v4.8h
6422 // CHECK-ERROR: error: invalid operand for instruction
6423 // CHECK-ERROR: ursqrte v1.8b, v9.8b
6425 // CHECK-ERROR: error: invalid operand for instruction
6426 // CHECK-ERROR: ursqrte v13.4h, v21.4h
6428 // CHECK-ERROR: error: invalid operand for instruction
6429 // CHECK-ERROR: ursqrte v1.2d, v9.2d
6431 // CHECK-ERROR: error: invalid operand for instruction
6432 // CHECK-ERROR: scvtf v0.16b, v31.16b
6434 // CHECK-ERROR: error: invalid operand for instruction
6435 // CHECK-ERROR: scvtf v2.8h, v4.8h
6437 // CHECK-ERROR: error: invalid operand for instruction
6438 // CHECK-ERROR: scvtf v1.8b, v9.8b
6440 // CHECK-ERROR: error: invalid operand for instruction
6441 // CHECK-ERROR: scvtf v13.4h, v21.4h
6443 // CHECK-ERROR: error: invalid operand for instruction
6444 // CHECK-ERROR: ucvtf v0.16b, v31.16b
6446 // CHECK-ERROR: error: invalid operand for instruction
6447 // CHECK-ERROR: ucvtf v2.8h, v4.8h
6449 // CHECK-ERROR: error: invalid operand for instruction
6450 // CHECK-ERROR: ucvtf v1.8b, v9.8b
6452 // CHECK-ERROR: error: invalid operand for instruction
6453 // CHECK-ERROR: ucvtf v13.4h, v21.4h
6455 // CHECK-ERROR: error: invalid operand for instruction
6456 // CHECK-ERROR: frecpe v0.16b, v31.16b
6458 // CHECK-ERROR: error: invalid operand for instruction
6459 // CHECK-ERROR: frecpe v2.8h, v4.8h
6461 // CHECK-ERROR: error: invalid operand for instruction
6462 // CHECK-ERROR: frecpe v1.8b, v9.8b
6464 // CHECK-ERROR: error: invalid operand for instruction
6465 // CHECK-ERROR: frecpe v13.4h, v21.4h
6467 // CHECK-ERROR: error: invalid operand for instruction
6468 // CHECK-ERROR: frsqrte v0.16b, v31.16b
6470 // CHECK-ERROR: error: invalid operand for instruction
6471 // CHECK-ERROR: frsqrte v2.8h, v4.8h
6473 // CHECK-ERROR: error: invalid operand for instruction
6474 // CHECK-ERROR: frsqrte v1.8b, v9.8b
6476 // CHECK-ERROR: error: invalid operand for instruction
6477 // CHECK-ERROR: frsqrte v13.4h, v21.4h
6479 // CHECK-ERROR: error: invalid operand for instruction
6480 // CHECK-ERROR: fsqrt v0.16b, v31.16b
6482 // CHECK-ERROR: error: invalid operand for instruction
6483 // CHECK-ERROR: fsqrt v2.8h, v4.8h
6485 // CHECK-ERROR: error: invalid operand for instruction
6486 // CHECK-ERROR: fsqrt v1.8b, v9.8b
6488 // CHECK-ERROR: error: invalid operand for instruction
6489 // CHECK-ERROR: fsqrt v13.4h, v21.4h
6492 //----------------------------------------------------------------------
6493 // Scalar Floating-point Convert To Signed Fixed-point (Immediate)
6494 //----------------------------------------------------------------------
6497 fcvtzs d21, d12, #65
6500 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
6501 // CHECK-ERROR: fcvtzs s21, s12, #0
6503 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
6504 // CHECK-ERROR: fcvtzs d21, d12, #65
6506 // CHECK-ERROR: error: invalid operand for instruction
6507 // CHECK-ERROR: fcvtzs s21, d12, #1
6510 //----------------------------------------------------------------------
6511 // Scalar Floating-point Convert To Unsigned Fixed-point (Immediate)
6512 //----------------------------------------------------------------------
6514 fcvtzu s21, s12, #33
6518 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]
6519 // CHECK-ERROR: fcvtzu s21, s12, #33
6521 // CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]
6522 // CHECK-ERROR: fcvtzu d21, d12, #0
6524 // CHECK-ERROR: error: invalid operand for instruction
6525 // CHECK-ERROR: fcvtzu s21, d12, #1
6528 //----------------------------------------------------------------------
6529 // Scalar Unsigned Saturating Extract Narrow
6530 //----------------------------------------------------------------------
6539 // CHECK: error: invalid operand for instruction
6540 // CHECK: aese v0.8h, v1.8h
6542 // CHECK: error: invalid operand for instruction
6543 // CHECK: aese v0.4s, v1.4s
6545 // CHECK: error: invalid operand for instruction
6546 // CHECK: aese v0.2d, v1.2d
6548 // CHECK: error: invalid operand for instruction
6549 // CHECK: aesd v0.8h, v1.8h
6551 // CHECK: error: invalid operand for instruction
6552 // CHECK: aesmc v0.8h, v1.8h
6554 // CHECK: error: invalid operand for instruction
6555 // CHECK: aesimc v0.8h, v1.8h
6562 sha1su1 v0.16b, v1.16b
6563 sha1su1 v0.8h, v1.8h
6564 sha1su1 v0.2d, v1.2d
6565 sha256su0 v0.16b, v1.16b
6567 // CHECK: error: invalid operand for instruction
6568 // CHECK: sha1h b0, b1
6570 // CHECK: error: invalid operand for instruction
6571 // CHECK: sha1h h0, h1
6573 // CHECK: error: invalid operand for instruction
6574 // CHECK: sha1h d0, d1
6576 // CHECK: error: invalid operand for instruction
6577 // CHECK: sha1h q0, q1
6579 // CHECK: error: invalid operand for instruction
6580 // CHECK: sha1su1 v0.16b, v1.16b
6582 // CHECK: error: invalid operand for instruction
6583 // CHECK: sha1su1 v0.8h, v1.8h
6585 // CHECK: error: invalid operand for instruction
6586 // CHECK: sha1su1 v0.2d, v1.2d
6588 // CHECK: error: invalid operand for instruction
6589 // CHECK: sha256su0 v0.16b, v1.16b
6595 sha1su0 v0.16b, v1.16b, v2.16b
6596 sha1su0 v0.8h, v1.8h, v2.8h
6597 sha1su0 v0.2d, v1.2d, v2.2d
6599 sha256h v0.4s, v1.4s, v2.4s
6601 sha256su1 v0.16b, v1.16b, v2.16b
6603 // CHECK: error: invalid operand for instruction
6604 // CHECK: sha1c q0, q1, v2.4s
6606 // CHECK: error: invalid operand for instruction
6607 // CHECK: sha1p q0, q1, v2.4s
6609 // CHECK: error: invalid operand for instruction
6610 // CHECK: sha1m q0, q1, v2.4s
6612 // CHECK: error: invalid operand for instruction
6613 // CHECK: sha1su0 v0.16b, v1.16b, v2.16b
6615 // CHECK: error: invalid operand for instruction
6616 // CHECK: sha1su0 v0.8h, v1.8h, v2.8h
6618 // CHECK: error: invalid operand for instruction
6619 // CHECK: sha1su0 v0.2d, v1.2d, v2.2d
6621 // CHECK: error: too few operands for instruction
6622 // CHECK: sha256h q0, q1, q2
6624 // CHECK: error: invalid operand for instruction
6625 // CHECK: sha256h v0.4s, v1.4s, v2.4s
6627 // CHECK: error: too few operands for instruction
6628 // CHECK: sha256h2 q0, q1, q2
6630 // CHECK: error: invalid operand for instruction
6631 // CHECK: sha256su1 v0.16b, v1.16b, v2.16b
6634 //----------------------------------------------------------------------
6636 //----------------------------------------------------------------------
6638 ext v0.8b, v1.8b, v2.4h, #0x3
6639 ext v0.4h, v1.4h, v2.4h, #0x3
6640 ext v0.2s, v1.2s, v2.2s, #0x1
6641 ext v0.1d, v1.1d, v2.1d, #0x0
6643 // CHECK-ERROR: error: invalid operand for instruction
6644 // CHECK-ERROR: ext v0.8b, v1.8b, v2.4h, #0x3
6646 // CHECK-ERROR: error: invalid operand for instruction
6647 // CHECK-ERROR: ext v0.4h, v1.4h, v2.4h, #0x3
6649 // CHECK-ERROR: error: invalid operand for instruction
6650 // CHECK-ERROR: ext v0.2s, v1.2s, v2.2s, #0x1
6652 // CHECK-ERROR: error: invalid operand for instruction
6653 // CHECK-ERROR: ext v0.1d, v1.1d, v2.1d, #0x0
6656 ext v0.16b, v1.16b, v2.8h, #0x3
6657 ext v0.8h, v1.8h, v2.8h, #0x3
6658 ext v0.4s, v1.4s, v2.4s, #0x1
6659 ext v0.2d, v1.2d, v2.2d, #0x0
6661 // CHECK-ERROR: error: invalid operand for instruction
6662 // CHECK-ERROR: ext v0.16b, v1.16b, v2.8h, #0x3
6664 // CHECK-ERROR: error: invalid operand for instruction
6665 // CHECK-ERROR: ext v0.8h, v1.8h, v2.8h, #0x3
6667 // CHECK-ERROR: error: invalid operand for instruction
6668 // CHECK-ERROR: ext v0.4s, v1.4s, v2.4s, #0x1
6670 // CHECK-ERROR: error: invalid operand for instruction
6671 // CHECK-ERROR: ext v0.2d, v1.2d, v2.2d, #0x0
6675 //----------------------------------------------------------------------
6676 // Permutation with 3 vectors
6677 //----------------------------------------------------------------------
6679 uzp1 v0.16b, v1.8b, v2.8b
6680 uzp1 v0.8b, v1.4b, v2.4b
6681 uzp1 v0.8h, v1.4h, v2.4h
6682 uzp1 v0.4h, v1.2h, v2.2h
6683 uzp1 v0.4s, v1.2s, v2.2s
6684 uzp1 v0.2s, v1.1s, v2.1s
6685 uzp1 v0.2d, v1.1d, v2.1d
6686 uzp1 v0.1d, v1.1d, v2.1d
6688 // CHECK-ERROR <stdin>:4289:22: error: invalid operand for instruction
6689 // CHECK-ERROR uzp1 v0.16b, v1.8b, v2.8b
6691 // CHECK-ERROR <stdin>:4290:21: error: invalid operand for instruction
6692 // CHECK-ERROR uzp1 v0.8b, v1.4b, v2.4b
6694 // CHECK-ERROR <stdin>:4291:21: error: invalid operand for instruction
6695 // CHECK-ERROR uzp1 v0.8h, v1.4h, v2.4h
6697 // CHECK-ERROR <stdin>:4292:21: error: invalid operand for instruction
6698 // CHECK-ERROR uzp1 v0.4h, v1.2h, v2.2h
6700 // CHECK-ERROR <stdin>:4293:21: error: invalid operand for instruction
6701 // CHECK-ERROR uzp1 v0.4s, v1.2s, v2.2s
6703 // CHECK-ERROR <stdin>:4294:21: error: invalid operand for instruction
6704 // CHECK-ERROR uzp1 v0.2s, v1.1s, v2.1s
6706 // CHECK-ERROR <stdin>:4295:21: error: invalid operand for instruction
6707 // CHECK-ERROR uzp1 v0.2d, v1.1d, v2.1d
6709 // CHECK-ERROR <stdin>:4296:17: error: invalid operand for instruction
6710 // CHECK-ERROR uzp1 v0.1d, v1.1d, v2.1d
6713 uzp2 v0.16b, v1.8b, v2.8b
6714 uzp2 v0.8b, v1.4b, v2.4b
6715 uzp2 v0.8h, v1.4h, v2.4h
6716 uzp2 v0.4h, v1.2h, v2.2h
6717 uzp2 v0.4s, v1.2s, v2.2s
6718 uzp2 v0.2s, v1.1s, v2.1s
6719 uzp2 v0.2d, v1.1d, v2.1d
6720 uzp2 v0.1d, v1.1d, v2.1d
6722 // CHECK-ERROR <stdin>:4298:22: error: invalid operand for instruction
6723 // CHECK-ERROR uzp2 v0.16b, v1.8b, v2.8b
6725 // CHECK-ERROR <stdin>:4299:21: error: invalid operand for instruction
6726 // CHECK-ERROR uzp2 v0.8b, v1.4b, v2.4b
6728 // CHECK-ERROR <stdin>:4300:21: error: invalid operand for instruction
6729 // CHECK-ERROR uzp2 v0.8h, v1.4h, v2.4h
6731 // CHECK-ERROR <stdin>:4301:21: error: invalid operand for instruction
6732 // CHECK-ERROR uzp2 v0.4h, v1.2h, v2.2h
6734 // CHECK-ERROR <stdin>:4302:21: error: invalid operand for instruction
6735 // CHECK-ERROR uzp2 v0.4s, v1.2s, v2.2s
6737 // CHECK-ERROR <stdin>:4303:21: error: invalid operand for instruction
6738 // CHECK-ERROR uzp2 v0.2s, v1.1s, v2.1s
6740 // CHECK-ERROR <stdin>:4304:21: error: invalid operand for instruction
6741 // CHECK-ERROR uzp2 v0.2d, v1.1d, v2.1d
6743 // CHECK-ERROR <stdin>:4305:17: error: invalid operand for instruction
6744 // CHECK-ERROR uzp2 v0.1d, v1.1d, v2.1d
6747 zip1 v0.16b, v1.8b, v2.8b
6748 zip1 v0.8b, v1.4b, v2.4b
6749 zip1 v0.8h, v1.4h, v2.4h
6750 zip1 v0.4h, v1.2h, v2.2h
6751 zip1 v0.4s, v1.2s, v2.2s
6752 zip1 v0.2s, v1.1s, v2.1s
6753 zip1 v0.2d, v1.1d, v2.1d
6754 zip1 v0.1d, v1.1d, v2.1d
6756 // CHECK-ERROR <stdin>:4307:22: error: invalid operand for instruction
6757 // CHECK-ERROR zip1 v0.16b, v1.8b, v2.8b
6759 // CHECK-ERROR <stdin>:4308:21: error: invalid operand for instruction
6760 // CHECK-ERROR zip1 v0.8b, v1.4b, v2.4b
6762 // CHECK-ERROR <stdin>:4309:21: error: invalid operand for instruction
6763 // CHECK-ERROR zip1 v0.8h, v1.4h, v2.4h
6765 // CHECK-ERROR <stdin>:4310:21: error: invalid operand for instruction
6766 // CHECK-ERROR zip1 v0.4h, v1.2h, v2.2h
6768 // CHECK-ERROR <stdin>:4311:21: error: invalid operand for instruction
6769 // CHECK-ERROR zip1 v0.4s, v1.2s, v2.2s
6771 // CHECK-ERROR <stdin>:4312:21: error: invalid operand for instruction
6772 // CHECK-ERROR zip1 v0.2s, v1.1s, v2.1s
6774 // CHECK-ERROR <stdin>:4313:21: error: invalid operand for instruction
6775 // CHECK-ERROR zip1 v0.2d, v1.1d, v2.1d
6777 // CHECK-ERROR <stdin>:4314:17: error: invalid operand for instruction
6778 // CHECK-ERROR zip1 v0.1d, v1.1d, v2.1d
6781 zip2 v0.16b, v1.8b, v2.8b
6782 zip2 v0.8b, v1.4b, v2.4b
6783 zip2 v0.8h, v1.4h, v2.4h
6784 zip2 v0.4h, v1.2h, v2.2h
6785 zip2 v0.4s, v1.2s, v2.2s
6786 zip2 v0.2s, v1.1s, v2.1s
6787 zip2 v0.2d, v1.1d, v2.1d
6788 zip2 v0.1d, v1.1d, v2.1d
6790 // CHECK-ERROR <stdin>:4316:22: error: invalid operand for instruction
6791 // CHECK-ERROR zip2 v0.16b, v1.8b, v2.8b
6793 // CHECK-ERROR <stdin>:4317:21: error: invalid operand for instruction
6794 // CHECK-ERROR zip2 v0.8b, v1.4b, v2.4b
6796 // CHECK-ERROR <stdin>:4318:21: error: invalid operand for instruction
6797 // CHECK-ERROR zip2 v0.8h, v1.4h, v2.4h
6799 // CHECK-ERROR <stdin>:4319:21: error: invalid operand for instruction
6800 // CHECK-ERROR zip2 v0.4h, v1.2h, v2.2h
6802 // CHECK-ERROR <stdin>:4320:21: error: invalid operand for instruction
6803 // CHECK-ERROR zip2 v0.4s, v1.2s, v2.2s
6805 // CHECK-ERROR <stdin>:4321:21: error: invalid operand for instruction
6806 // CHECK-ERROR zip2 v0.2s, v1.1s, v2.1s
6808 // CHECK-ERROR <stdin>:4322:21: error: invalid operand for instruction
6809 // CHECK-ERROR zip2 v0.2d, v1.1d, v2.1d
6811 // CHECK-ERROR <stdin>:4323:17: error: invalid operand for instruction
6812 // CHECK-ERROR zip2 v0.1d, v1.1d, v2.1d
6815 trn1 v0.16b, v1.8b, v2.8b
6816 trn1 v0.8b, v1.4b, v2.4b
6817 trn1 v0.8h, v1.4h, v2.4h
6818 trn1 v0.4h, v1.2h, v2.2h
6819 trn1 v0.4s, v1.2s, v2.2s
6820 trn1 v0.2s, v1.1s, v2.1s
6821 trn1 v0.2d, v1.1d, v2.1d
6822 trn1 v0.1d, v1.1d, v2.1d
6824 // CHECK-ERROR <stdin>:4325:22: error: invalid operand for instruction
6825 // CHECK-ERROR trn1 v0.16b, v1.8b, v2.8b
6827 // CHECK-ERROR <stdin>:4326:21: error: invalid operand for instruction
6828 // CHECK-ERROR trn1 v0.8b, v1.4b, v2.4b
6830 // CHECK-ERROR <stdin>:4327:21: error: invalid operand for instruction
6831 // CHECK-ERROR trn1 v0.8h, v1.4h, v2.4h
6833 // CHECK-ERROR <stdin>:4328:21: error: invalid operand for instruction
6834 // CHECK-ERROR trn1 v0.4h, v1.2h, v2.2h
6836 // CHECK-ERROR <stdin>:4329:21: error: invalid operand for instruction
6837 // CHECK-ERROR trn1 v0.4s, v1.2s, v2.2s
6839 // CHECK-ERROR <stdin>:4330:21: error: invalid operand for instruction
6840 // CHECK-ERROR trn1 v0.2s, v1.1s, v2.1s
6842 // CHECK-ERROR <stdin>:4331:21: error: invalid operand for instruction
6843 // CHECK-ERROR trn1 v0.2d, v1.1d, v2.1d
6845 // CHECK-ERROR <stdin>:4332:17: error: invalid operand for instruction
6846 // CHECK-ERROR trn1 v0.1d, v1.1d, v2.1d
6849 trn2 v0.16b, v1.8b, v2.8b
6850 trn2 v0.8b, v1.4b, v2.4b
6851 trn2 v0.8h, v1.4h, v2.4h
6852 trn2 v0.4h, v1.2h, v2.2h
6853 trn2 v0.4s, v1.2s, v2.2s
6854 trn2 v0.2s, v1.1s, v2.1s
6855 trn2 v0.2d, v1.1d, v2.1d
6856 trn2 v0.1d, v1.1d, v2.1d
6858 // CHECK-ERROR <stdin>:4334:22: error: invalid operand for instruction
6859 // CHECK-ERROR trn2 v0.16b, v1.8b, v2.8b
6861 // CHECK-ERROR <stdin>:4335:21: error: invalid operand for instruction
6862 // CHECK-ERROR trn2 v0.8b, v1.4b, v2.4b
6864 // CHECK-ERROR <stdin>:4336:21: error: invalid operand for instruction
6865 // CHECK-ERROR trn2 v0.8h, v1.4h, v2.4h
6867 // CHECK-ERROR <stdin>:4337:21: error: invalid operand for instruction
6868 // CHECK-ERROR trn2 v0.4h, v1.2h, v2.2h
6870 // CHECK-ERROR <stdin>:4338:21: error: invalid operand for instruction
6871 // CHECK-ERROR trn2 v0.4s, v1.2s, v2.2s
6873 // CHECK-ERROR <stdin>:4339:21: error: invalid operand for instruction
6874 // CHECK-ERROR trn2 v0.2s, v1.1s, v2.1s
6876 // CHECK-ERROR <stdin>:4340:21: error: invalid operand for instruction
6877 // CHECK-ERROR trn2 v0.2d, v1.1d, v2.1d
6879 // CHECK-ERROR <stdin>:4341:17: error: invalid operand for instruction
6880 // CHECK-ERROR trn2 v0.1d, v1.1d, v2.1d
6883 //----------------------------------------------------------------------
6884 // Permutation with 3 vectors
6885 //----------------------------------------------------------------------
6887 uzp1 v0.16b, v1.8b, v2.8b
6888 uzp1 v0.8b, v1.4b, v2.4b
6889 uzp1 v0.8h, v1.4h, v2.4h
6890 uzp1 v0.4h, v1.2h, v2.2h
6891 uzp1 v0.4s, v1.2s, v2.2s
6892 uzp1 v0.2s, v1.1s, v2.1s
6893 uzp1 v0.2d, v1.1d, v2.1d
6894 uzp1 v0.1d, v1.1d, v2.1d
6896 // CHECK-ERROR <stdin>:4289:22: error: invalid operand for instruction
6897 // CHECK-ERROR uzp1 v0.16b, v1.8b, v2.8b
6899 // CHECK-ERROR <stdin>:4290:21: error: invalid operand for instruction
6900 // CHECK-ERROR uzp1 v0.8b, v1.4b, v2.4b
6902 // CHECK-ERROR <stdin>:4291:21: error: invalid operand for instruction
6903 // CHECK-ERROR uzp1 v0.8h, v1.4h, v2.4h
6905 // CHECK-ERROR <stdin>:4292:21: error: invalid operand for instruction
6906 // CHECK-ERROR uzp1 v0.4h, v1.2h, v2.2h
6908 // CHECK-ERROR <stdin>:4293:21: error: invalid operand for instruction
6909 // CHECK-ERROR uzp1 v0.4s, v1.2s, v2.2s
6911 // CHECK-ERROR <stdin>:4294:21: error: invalid operand for instruction
6912 // CHECK-ERROR uzp1 v0.2s, v1.1s, v2.1s
6914 // CHECK-ERROR <stdin>:4295:21: error: invalid operand for instruction
6915 // CHECK-ERROR uzp1 v0.2d, v1.1d, v2.1d
6917 // CHECK-ERROR <stdin>:4296:17: error: invalid operand for instruction
6918 // CHECK-ERROR uzp1 v0.1d, v1.1d, v2.1d
6921 uzp2 v0.16b, v1.8b, v2.8b
6922 uzp2 v0.8b, v1.4b, v2.4b
6923 uzp2 v0.8h, v1.4h, v2.4h
6924 uzp2 v0.4h, v1.2h, v2.2h
6925 uzp2 v0.4s, v1.2s, v2.2s
6926 uzp2 v0.2s, v1.1s, v2.1s
6927 uzp2 v0.2d, v1.1d, v2.1d
6928 uzp2 v0.1d, v1.1d, v2.1d
6930 // CHECK-ERROR <stdin>:4298:22: error: invalid operand for instruction
6931 // CHECK-ERROR uzp2 v0.16b, v1.8b, v2.8b
6933 // CHECK-ERROR <stdin>:4299:21: error: invalid operand for instruction
6934 // CHECK-ERROR uzp2 v0.8b, v1.4b, v2.4b
6936 // CHECK-ERROR <stdin>:4300:21: error: invalid operand for instruction
6937 // CHECK-ERROR uzp2 v0.8h, v1.4h, v2.4h
6939 // CHECK-ERROR <stdin>:4301:21: error: invalid operand for instruction
6940 // CHECK-ERROR uzp2 v0.4h, v1.2h, v2.2h
6942 // CHECK-ERROR <stdin>:4302:21: error: invalid operand for instruction
6943 // CHECK-ERROR uzp2 v0.4s, v1.2s, v2.2s
6945 // CHECK-ERROR <stdin>:4303:21: error: invalid operand for instruction
6946 // CHECK-ERROR uzp2 v0.2s, v1.1s, v2.1s
6948 // CHECK-ERROR <stdin>:4304:21: error: invalid operand for instruction
6949 // CHECK-ERROR uzp2 v0.2d, v1.1d, v2.1d
6951 // CHECK-ERROR <stdin>:4305:17: error: invalid operand for instruction
6952 // CHECK-ERROR uzp2 v0.1d, v1.1d, v2.1d
6955 zip1 v0.16b, v1.8b, v2.8b
6956 zip1 v0.8b, v1.4b, v2.4b
6957 zip1 v0.8h, v1.4h, v2.4h
6958 zip1 v0.4h, v1.2h, v2.2h
6959 zip1 v0.4s, v1.2s, v2.2s
6960 zip1 v0.2s, v1.1s, v2.1s
6961 zip1 v0.2d, v1.1d, v2.1d
6962 zip1 v0.1d, v1.1d, v2.1d
6964 // CHECK-ERROR <stdin>:4307:22: error: invalid operand for instruction
6965 // CHECK-ERROR zip1 v0.16b, v1.8b, v2.8b
6967 // CHECK-ERROR <stdin>:4308:21: error: invalid operand for instruction
6968 // CHECK-ERROR zip1 v0.8b, v1.4b, v2.4b
6970 // CHECK-ERROR <stdin>:4309:21: error: invalid operand for instruction
6971 // CHECK-ERROR zip1 v0.8h, v1.4h, v2.4h
6973 // CHECK-ERROR <stdin>:4310:21: error: invalid operand for instruction
6974 // CHECK-ERROR zip1 v0.4h, v1.2h, v2.2h
6976 // CHECK-ERROR <stdin>:4311:21: error: invalid operand for instruction
6977 // CHECK-ERROR zip1 v0.4s, v1.2s, v2.2s
6979 // CHECK-ERROR <stdin>:4312:21: error: invalid operand for instruction
6980 // CHECK-ERROR zip1 v0.2s, v1.1s, v2.1s
6982 // CHECK-ERROR <stdin>:4313:21: error: invalid operand for instruction
6983 // CHECK-ERROR zip1 v0.2d, v1.1d, v2.1d
6985 // CHECK-ERROR <stdin>:4314:17: error: invalid operand for instruction
6986 // CHECK-ERROR zip1 v0.1d, v1.1d, v2.1d
6989 zip2 v0.16b, v1.8b, v2.8b
6990 zip2 v0.8b, v1.4b, v2.4b
6991 zip2 v0.8h, v1.4h, v2.4h
6992 zip2 v0.4h, v1.2h, v2.2h
6993 zip2 v0.4s, v1.2s, v2.2s
6994 zip2 v0.2s, v1.1s, v2.1s
6995 zip2 v0.2d, v1.1d, v2.1d
6996 zip2 v0.1d, v1.1d, v2.1d
6998 // CHECK-ERROR <stdin>:4316:22: error: invalid operand for instruction
6999 // CHECK-ERROR zip2 v0.16b, v1.8b, v2.8b
7001 // CHECK-ERROR <stdin>:4317:21: error: invalid operand for instruction
7002 // CHECK-ERROR zip2 v0.8b, v1.4b, v2.4b
7004 // CHECK-ERROR <stdin>:4318:21: error: invalid operand for instruction
7005 // CHECK-ERROR zip2 v0.8h, v1.4h, v2.4h
7007 // CHECK-ERROR <stdin>:4319:21: error: invalid operand for instruction
7008 // CHECK-ERROR zip2 v0.4h, v1.2h, v2.2h
7010 // CHECK-ERROR <stdin>:4320:21: error: invalid operand for instruction
7011 // CHECK-ERROR zip2 v0.4s, v1.2s, v2.2s
7013 // CHECK-ERROR <stdin>:4321:21: error: invalid operand for instruction
7014 // CHECK-ERROR zip2 v0.2s, v1.1s, v2.1s
7016 // CHECK-ERROR <stdin>:4322:21: error: invalid operand for instruction
7017 // CHECK-ERROR zip2 v0.2d, v1.1d, v2.1d
7019 // CHECK-ERROR <stdin>:4323:17: error: invalid operand for instruction
7020 // CHECK-ERROR zip2 v0.1d, v1.1d, v2.1d
7023 trn1 v0.16b, v1.8b, v2.8b
7024 trn1 v0.8b, v1.4b, v2.4b
7025 trn1 v0.8h, v1.4h, v2.4h
7026 trn1 v0.4h, v1.2h, v2.2h
7027 trn1 v0.4s, v1.2s, v2.2s
7028 trn1 v0.2s, v1.1s, v2.1s
7029 trn1 v0.2d, v1.1d, v2.1d
7030 trn1 v0.1d, v1.1d, v2.1d
7032 // CHECK-ERROR <stdin>:4325:22: error: invalid operand for instruction
7033 // CHECK-ERROR trn1 v0.16b, v1.8b, v2.8b
7035 // CHECK-ERROR <stdin>:4326:21: error: invalid operand for instruction
7036 // CHECK-ERROR trn1 v0.8b, v1.4b, v2.4b
7038 // CHECK-ERROR <stdin>:4327:21: error: invalid operand for instruction
7039 // CHECK-ERROR trn1 v0.8h, v1.4h, v2.4h
7041 // CHECK-ERROR <stdin>:4328:21: error: invalid operand for instruction
7042 // CHECK-ERROR trn1 v0.4h, v1.2h, v2.2h
7044 // CHECK-ERROR <stdin>:4329:21: error: invalid operand for instruction
7045 // CHECK-ERROR trn1 v0.4s, v1.2s, v2.2s
7047 // CHECK-ERROR <stdin>:4330:21: error: invalid operand for instruction
7048 // CHECK-ERROR trn1 v0.2s, v1.1s, v2.1s
7050 // CHECK-ERROR <stdin>:4331:21: error: invalid operand for instruction
7051 // CHECK-ERROR trn1 v0.2d, v1.1d, v2.1d
7053 // CHECK-ERROR <stdin>:4332:17: error: invalid operand for instruction
7054 // CHECK-ERROR trn1 v0.1d, v1.1d, v2.1d
7057 trn2 v0.16b, v1.8b, v2.8b
7058 trn2 v0.8b, v1.4b, v2.4b
7059 trn2 v0.8h, v1.4h, v2.4h
7060 trn2 v0.4h, v1.2h, v2.2h
7061 trn2 v0.4s, v1.2s, v2.2s
7062 trn2 v0.2s, v1.1s, v2.1s
7063 trn2 v0.2d, v1.1d, v2.1d
7064 trn2 v0.1d, v1.1d, v2.1d
7066 // CHECK-ERROR <stdin>:4334:22: error: invalid operand for instruction
7067 // CHECK-ERROR trn2 v0.16b, v1.8b, v2.8b
7069 // CHECK-ERROR <stdin>:4335:21: error: invalid operand for instruction
7070 // CHECK-ERROR trn2 v0.8b, v1.4b, v2.4b
7072 // CHECK-ERROR <stdin>:4336:21: error: invalid operand for instruction
7073 // CHECK-ERROR trn2 v0.8h, v1.4h, v2.4h
7075 // CHECK-ERROR <stdin>:4337:21: error: invalid operand for instruction
7076 // CHECK-ERROR trn2 v0.4h, v1.2h, v2.2h
7078 // CHECK-ERROR <stdin>:4338:21: error: invalid operand for instruction
7079 // CHECK-ERROR trn2 v0.4s, v1.2s, v2.2s
7081 // CHECK-ERROR <stdin>:4339:21: error: invalid operand for instruction
7082 // CHECK-ERROR trn2 v0.2s, v1.1s, v2.1s
7084 // CHECK-ERROR <stdin>:4340:21: error: invalid operand for instruction
7085 // CHECK-ERROR trn2 v0.2d, v1.1d, v2.1d
7087 // CHECK-ERROR <stdin>:4341:17: error: invalid operand for instruction
7088 // CHECK-ERROR trn2 v0.1d, v1.1d, v2.1d
7091 //----------------------------------------------------------------------
7092 // Floating Point multiply (scalar, by element)
7093 //----------------------------------------------------------------------
7094 // mismatched and invalid vector types
7095 fmul s0, s1, v1.h[0]
7096 fmul h0, h1, v1.s[0]
7098 fmul s2, s29, v10.s[4]
7100 // CHECK-ERROR: error: invalid operand for instruction
7101 // CHECK-ERROR: fmul s0, s1, v1.h[0]
7103 // CHECK-ERROR: error: invalid operand for instruction
7104 // CHECK-ERROR: fmul h0, h1, v1.s[0]
7106 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7107 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7108 // CHECK-ERROR: fmul s2, s29, v10.s[4]
7111 //----------------------------------------------------------------------
7112 // Floating Point multiply extended (scalar, by element)
7113 //----------------------------------------------------------------------
7114 // mismatched and invalid vector types
7115 fmulx d0, d1, v1.b[0]
7116 fmulx h0, h1, v1.d[0]
7118 fmulx d2, d29, v10.d[3]
7120 // CHECK-ERROR: error: invalid operand for instruction
7121 // CHECK-ERROR: fmulx d0, d1, v1.b[0]
7123 // CHECK-ERROR: error: invalid operand for instruction
7124 // CHECK-ERROR: fmulx h0, h1, v1.d[0]
7126 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7127 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7128 // CHECK-ERROR: fmulx d2, d29, v10.d[3]
7131 //----------------------------------------------------------------------
7132 // Floating Point fused multiply-add (scalar, by element)
7133 //----------------------------------------------------------------------
7134 // mismatched and invalid vector types
7135 fmla b0, b1, v1.b[0]
7136 fmla d30, s11, v1.d[1]
7138 fmla s16, s22, v16.s[5]
7140 // CHECK-ERROR: error: invalid operand for instruction
7141 // CHECK-ERROR: fmla b0, b1, v1.b[0]
7143 // CHECK-ERROR: error: invalid operand for instruction
7144 // CHECK-ERROR: fmla d30, s11, v1.d[1]
7146 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7147 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7148 // CHECK-ERROR: fmla s16, s22, v16.s[5]
7151 //----------------------------------------------------------------------
7152 // Floating Point fused multiply-subtract (scalar, by element)
7153 //----------------------------------------------------------------------
7154 // mismatched and invalid vector types
7155 fmls s29, h10, v28.s[1]
7156 fmls h7, h17, v26.s[2]
7158 fmls d16, d22, v16.d[-1]
7160 // CHECK-ERROR: error: invalid operand for instruction
7161 // CHECK-ERROR: fmls s29, h10, v28.s[1]
7163 // CHECK-ERROR: error: invalid operand for instruction
7164 // CHECK-ERROR: fmls h7, h17, v26.s[2]
7166 // CHECK-AARCH64-ERROR: error: expected lane number
7167 // CHECK-ARM64-ERROR: error: vector lane must be an integer in range [0, 1]
7168 // CHECK-ERROR: fmls d16, d22, v16.d[-1]
7171 //----------------------------------------------------------------------
7172 // Scalar Signed saturating doubling multiply-add long
7173 // (scalar, by element)
7174 //----------------------------------------------------------------------
7175 // mismatched and invalid vector types
7176 sqdmlal s0, h0, v0.s[0]
7177 sqdmlal s8, s9, v14.s[1]
7179 sqdmlal d4, s5, v1.s[5]
7180 // invalid vector index
7181 sqdmlal s0, h0, v17.h[0]
7183 // CHECK-ERROR: error: invalid operand for instruction
7184 // CHECK-ERROR: sqdmlal s0, h0, v0.s[0]
7186 // CHECK-ERROR: error: invalid operand for instruction
7187 // CHECK-ERROR: sqdmlal s8, s9, v14.s[1]
7189 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7190 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7191 // CHECK-ERROR: sqdmlal d4, s5, v1.s[5]
7193 // CHECK-ERROR: error: invalid operand for instruction
7194 // CHECK-ERROR: sqdmlal s0, h0, v17.h[0]
7197 //----------------------------------------------------------------------
7198 // Scalar Signed saturating doubling multiply-subtract long
7199 // (scalar, by element)
7200 //----------------------------------------------------------------------
7201 // mismatched and invalid vector types
7202 sqdmlsl s1, h1, v1.d[0]
7203 sqdmlsl d1, h1, v13.s[0]
7205 sqdmlsl d1, s1, v13.s[4]
7206 // invalid vector index
7207 sqdmlsl s1, h1, v20.h[7]
7209 // CHECK-ERROR: error: invalid operand for instruction
7210 // CHECK-ERROR: sqdmlsl s1, h1, v1.d[0]
7212 // CHECK-ERROR: error: invalid operand for instruction
7213 // CHECK-ERROR: sqdmlsl d1, h1, v13.s[0]
7215 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7216 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7217 // CHECK-ERROR: sqdmlsl d1, s1, v13.s[4]
7219 // CHECK-ERROR: error: invalid operand for instruction
7220 // CHECK-ERROR: sqdmlsl s1, h1, v20.h[7]
7223 //----------------------------------------------------------------------
7224 // Scalar Signed saturating doubling multiply long (scalar, by element)
7225 //----------------------------------------------------------------------
7226 // mismatched and invalid vector types
7228 // invalid vector index
7229 // mismatched and invalid vector types
7230 sqdmull s1, h1, v1.s[1]
7231 sqdmull s1, s1, v4.s[0]
7233 sqdmull s12, h17, v9.h[9]
7234 // invalid vector index
7235 sqdmull s1, h1, v16.h[5]
7237 // CHECK-ERROR: error: invalid operand for instruction
7238 // CHECK-ERROR: sqdmull s1, h1, v1.s[1]
7240 // CHECK-ERROR: error: invalid operand for instruction
7241 // CHECK-ERROR: sqdmull s1, s1, v4.s[0]
7243 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7244 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7245 // CHECK-ERROR: sqdmull s12, h17, v9.h[9]
7247 // CHECK-ERROR: error: invalid operand for instruction
7248 // CHECK-ERROR: sqdmull s1, h1, v16.h[5]
7251 //----------------------------------------------------------------------
7252 // Scalar Signed saturating doubling multiply returning
7253 // high half (scalar, by element)
7254 //----------------------------------------------------------------------
7255 // mismatched and invalid vector types
7256 sqdmulh h0, s1, v0.h[0]
7257 sqdmulh s25, s26, v27.h[3]
7259 sqdmulh s25, s26, v27.s[4]
7260 // invalid vector index
7261 sqdmulh s0, h1, v30.h[0]
7263 // CHECK-ERROR: error: invalid operand for instruction
7264 // CHECK-ERROR: sqdmulh h0, s1, v0.h[0]
7266 // CHECK-ERROR: error: invalid operand for instruction
7267 // CHECK-ERROR: sqdmulh s25, s26, v27.h[3]
7269 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7270 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7271 // CHECK-ERROR: sqdmulh s25, s26, v27.s[4]
7273 // CHECK-ERROR: error: invalid operand for instruction
7274 // CHECK-ERROR: sqdmulh s0, h1, v30.h[0]
7277 //----------------------------------------------------------------------
7278 // Scalar Signed saturating rounding doubling multiply
7279 // returning high half (scalar, by element)
7280 //----------------------------------------------------------------------
7281 // mismatched and invalid vector types
7282 sqrdmulh h31, h30, v14.s[2]
7283 sqrdmulh s5, h6, v7.s[2]
7285 sqrdmulh h31, h30, v14.h[9]
7286 // invalid vector index
7287 sqrdmulh h31, h30, v20.h[4]
7289 // CHECK-ERROR: error: invalid operand for instruction
7290 // CHECK-ERROR: sqrdmulh h31, h30, v14.s[2]
7292 // CHECK-ERROR: error: invalid operand for instruction
7293 // CHECK-ERROR: sqrdmulh s5, h6, v7.s[2]
7295 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7296 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7297 // CHECK-ERROR: sqrdmulh h31, h30, v14.h[9]
7299 // CHECK-ERROR: error: invalid operand for instruction
7300 // CHECK-ERROR: sqrdmulh h31, h30, v20.h[4]
7303 //----------------------------------------------------------------------
7304 // Scalar Duplicate element (scalar)
7305 //----------------------------------------------------------------------
7306 // mismatched and invalid vector types
7316 // CHECK-ERROR: error: invalid operand for instruction
7317 // CHECK-ERROR: dup b0, v1.d[0]
7319 // CHECK-ERROR: error: invalid operand for instruction
7320 // CHECK-ERROR: dup h0, v31.b[8]
7322 // CHECK-ERROR: error: invalid operand for instruction
7323 // CHECK-ERROR: dup s0, v2.h[4]
7325 // CHECK-ERROR: error: invalid operand for instruction
7326 // CHECK-ERROR: dup d0, v17.s[3]
7328 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7329 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7330 // CHECK-ERROR: dup d0, v17.d[4]
7332 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7333 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7334 // CHECK-ERROR: dup s0, v1.s[7]
7336 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7337 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7338 // CHECK-ERROR: dup h0, v31.h[16]
7340 // CHECK-AARCH64-ERROR: error: lane number incompatible with layout
7341 // CHECK-ARM64-ERROR: vector lane must be an integer in range
7342 // CHECK-ERROR: dup b1, v3.b[16]
7345 //----------------------------------------------------------------------
7347 //----------------------------------------------------------------------
7349 tbl v0.8b, {v1.8b}, v2.8b
7350 tbl v0.8b, {v1.8b, v2.8b}, v2.8b
7351 tbl v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b
7352 tbl v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b
7353 tbl v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b
7355 // CHECK-ERROR: error: invalid operand for instruction
7356 // CHECK-ERROR: tbl v0.8b, {v1.8b}, v2.8b
7358 // CHECK-ERROR: error: invalid operand for instruction
7359 // CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b}, v2.8b
7361 // CHECK-ERROR: error: invalid operand for instruction
7362 // CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b
7364 // CHECK-ERROR: error: invalid operand for instruction
7365 // CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b
7367 // CHECK-ERROR: error: invalid number of vectors
7368 // CHECK-ERROR: tbl v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b
7371 tbx v0.8b, {v1.8b}, v2.8b
7372 tbx v0.8b, {v1.8b, v2.8b}, v2.8b
7373 tbx v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b
7374 tbx v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b
7375 tbx v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b
7377 // CHECK-ERROR: error: invalid operand for instruction
7378 // CHECK-ERROR: tbx v0.8b, {v1.8b}, v2.8b
7380 // CHECK-ERROR: error: invalid operand for instruction
7381 // CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b}, v2.8b
7383 // CHECK-ERROR: error: invalid operand for instruction
7384 // CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b
7386 // CHECK-ERROR: error: invalid operand for instruction
7387 // CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b
7389 // CHECK-ERROR: error: invalid number of vectors
7390 // CHECK-ERROR: tbx v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b
7393 //----------------------------------------------------------------------
7394 // Scalar Floating-point Convert To Lower Precision Narrow, Rounding To
7396 //----------------------------------------------------------------------
7400 // CHECK-ERROR: error: invalid operand for instruction
7401 // CHECK-ERROR: fcvtxn s0, s1
7404 //----------------------------------------------------------------------
7405 // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest
7406 // With Ties To Away
7407 //----------------------------------------------------------------------
7412 // CHECK-ERROR: error: invalid operand for instruction
7413 // CHECK-ERROR: fcvtas s0, d0
7415 // CHECK-ERROR: error: invalid operand for instruction
7416 // CHECK-ERROR: fcvtas d0, s0
7419 //----------------------------------------------------------------------
7420 // Scalar Floating-point Convert To Unsigned Integer, Rounding To
7421 // Nearest With Ties To Away
7422 //----------------------------------------------------------------------
7427 // CHECK-ERROR: error: invalid operand for instruction
7428 // CHECK-ERROR: fcvtau s0, d0
7430 // CHECK-ERROR: error: invalid operand for instruction
7431 // CHECK-ERROR: fcvtau d0, s0
7434 //----------------------------------------------------------------------
7435 // Scalar Floating-point Convert To Signed Integer, Rounding Toward
7437 //----------------------------------------------------------------------
7442 // CHECK-ERROR: error: invalid operand for instruction
7443 // CHECK-ERROR: fcvtms s0, d0
7445 // CHECK-ERROR: error: invalid operand for instruction
7446 // CHECK-ERROR: fcvtms d0, s0
7449 //----------------------------------------------------------------------
7450 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
7452 //----------------------------------------------------------------------
7457 // CHECK-ERROR: error: invalid operand for instruction
7458 // CHECK-ERROR: fcvtmu s0, d0
7460 // CHECK-ERROR: error: invalid operand for instruction
7461 // CHECK-ERROR: fcvtmu d0, s0
7464 //----------------------------------------------------------------------
7465 // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest
7466 // With Ties To Even
7467 //----------------------------------------------------------------------
7472 // CHECK-ERROR: error: invalid operand for instruction
7473 // CHECK-ERROR: fcvtns s0, d0
7475 // CHECK-ERROR: error: invalid operand for instruction
7476 // CHECK-ERROR: fcvtns d0, s0
7479 //----------------------------------------------------------------------
7480 // Scalar Floating-point Convert To Unsigned Integer, Rounding To
7481 // Nearest With Ties To Even
7482 //----------------------------------------------------------------------
7487 // CHECK-ERROR: error: invalid operand for instruction
7488 // CHECK-ERROR: fcvtnu s0, d0
7490 // CHECK-ERROR: error: invalid operand for instruction
7491 // CHECK-ERROR: fcvtnu d0, s0
7494 //----------------------------------------------------------------------
7495 // Scalar Floating-point Convert To Signed Integer, Rounding Toward
7496 // Positive Infinity
7497 //----------------------------------------------------------------------
7502 // CHECK-ERROR: error: invalid operand for instruction
7503 // CHECK-ERROR: fcvtps s0, d0
7505 // CHECK-ERROR: error: invalid operand for instruction
7506 // CHECK-ERROR: fcvtps d0, s0
7509 //----------------------------------------------------------------------
7510 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
7511 // Positive Infinity
7512 //----------------------------------------------------------------------
7517 // CHECK-ERROR: error: invalid operand for instruction
7518 // CHECK-ERROR: fcvtpu s0, d0
7520 // CHECK-ERROR: error: invalid operand for instruction
7521 // CHECK-ERROR: fcvtpu d0, s0
7524 //----------------------------------------------------------------------
7525 // Scalar Floating-point Convert To Signed Integer, Rounding Toward Zero
7526 //----------------------------------------------------------------------
7531 // CHECK-ERROR: error: invalid operand for instruction
7532 // CHECK-ERROR: fcvtzs s0, d0
7534 // CHECK-ERROR: error: invalid operand for instruction
7535 // CHECK-ERROR: fcvtzs d0, s0
7538 //----------------------------------------------------------------------
7539 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
7541 //----------------------------------------------------------------------
7546 // CHECK-ERROR: error: invalid operand for instruction
7547 // CHECK-ERROR: fcvtzu s0, d0
7549 // CHECK-ERROR: error: invalid operand for instruction
7550 // CHECK-ERROR: fcvtzu d0, s0
7553 //----------------------------------------------------------------------
7554 // Scalar Floating-point Absolute Difference
7555 //----------------------------------------------------------------------
7561 // CHECK-ERROR: error: invalid operand for instruction
7562 // CHECK-ERROR: fabd s29, d24, s20
7564 // CHECK-ERROR: error: invalid operand for instruction
7565 // CHECK-ERROR: fabd d29, s24, d20