1 // RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon < %s 2> %t
2 // RUN: FileCheck --check-prefix=CHECK-ERROR < %t %s
4 //------------------------------------------------------------------------------
5 // Vector Integer Add/sub
6 //------------------------------------------------------------------------------
8 // Mismatched vector types
9 add v0.16b, v1.8b, v2.8b
10 sub v0.2d, v1.2d, v2.2s
12 // CHECK-ERROR: error: invalid operand for instruction
13 // CHECK-ERROR: add v0.16b, v1.8b, v2.8b
15 // CHECK-ERROR: error: invalid operand for instruction
16 // CHECK-ERROR: sub v0.2d, v1.2d, v2.2s
19 //------------------------------------------------------------------------------
20 // Vector Floating-Point Add/sub
21 //------------------------------------------------------------------------------
23 // Mismatched and invalid vector types
24 fadd v0.2d, v1.2s, v2.2s
25 fsub v0.4s, v1.2s, v2.4s
26 fsub v0.8b, v1.8b, v2.8b
28 // CHECK-ERROR: error: invalid operand for instruction
29 // CHECK-ERROR: fadd v0.2d, v1.2s, v2.2s
31 // CHECK-ERROR: error: invalid operand for instruction
32 // CHECK-ERROR: fsub v0.4s, v1.2s, v2.4s
34 // CHECK-ERROR: error: invalid operand for instruction
35 // CHECK-ERROR: fsub v0.8b, v1.8b, v2.8b
38 //----------------------------------------------------------------------
40 //----------------------------------------------------------------------
42 // Mismatched and invalid vector types
43 mul v0.16b, v1.8b, v2.8b
44 mul v0.2d, v1.2d, v2.2d
46 // CHECK-ERROR: error: invalid operand for instruction
47 // CHECK-ERROR: mul v0.16b, v1.8b, v2.8b
49 // CHECK-ERROR: error: invalid operand for instruction
50 // CHECK-ERROR: mul v0.2d, v1.2d, v2.2d
53 //----------------------------------------------------------------------
54 // Vector Floating-Point Mul/Div
55 //----------------------------------------------------------------------
56 // Mismatched vector types
57 fmul v0.16b, v1.8b, v2.8b
58 fdiv v0.2s, v1.2d, v2.2d
60 // CHECK-ERROR: error: invalid operand for instruction
61 // CHECK-ERROR: fmul v0.16b, v1.8b, v2.8b
63 // CHECK-ERROR: error: invalid operand for instruction
64 // CHECK-ERROR: fdiv v0.2s, v1.2d, v2.2d
67 //----------------------------------------------------------------------
68 // Vector And Orr Eor Bsl Bit Bif, Orn, Bic,
69 //----------------------------------------------------------------------
70 // Mismatched and invalid vector types
71 and v0.8b, v1.16b, v2.8b
72 orr v0.4h, v1.4h, v2.4h
73 eor v0.2s, v1.2s, v2.2s
74 bsl v0.8b, v1.16b, v2.8b
75 bsl v0.2s, v1.2s, v2.2s
76 bit v0.2d, v1.2d, v2.2d
77 bif v0.4h, v1.4h, v2.4h
78 orn v0.8b, v1.16b, v2.16b
79 bic v0.2d, v1.2d, v2.2d
81 // CHECK-ERROR: error: invalid operand for instruction
82 // CHECK-ERROR: and v0.8b, v1.16b, v2.8b
84 // CHECK-ERROR: error: invalid operand for instruction
85 // CHECK-ERROR: orr v0.4h, v1.4h, v2.4h
87 // CHECK-ERROR: error: invalid operand for instruction
88 // CHECK-ERROR: eor v0.2s, v1.2s, v2.2s
90 // CHECK-ERROR: error: invalid operand for instruction
91 // CHECK-ERROR: bsl v0.8b, v1.16b, v2.8b
93 // CHECK-ERROR: error: invalid operand for instruction
94 // CHECK-ERROR: bsl v0.2s, v1.2s, v2.2s
96 // CHECK-ERROR: error: invalid operand for instruction
97 // CHECK-ERROR: bit v0.2d, v1.2d, v2.2d
99 // CHECK-ERROR: error: invalid operand for instruction
100 // CHECK-ERROR: bif v0.4h, v1.4h, v2.4h
102 // CHECK-ERROR: error: invalid operand for instruction
103 // CHECK-ERROR: orn v0.8b, v1.16b, v2.16b
105 // CHECK-ERROR: error: invalid operand for instruction
106 // CHECK-ERROR: bic v0.2d, v1.2d, v2.2d
109 //----------------------------------------------------------------------
110 // Vector Integer Multiply-accumulate and Multiply-subtract
111 //----------------------------------------------------------------------
113 // Mismatched and invalid vector types
114 mla v0.16b, v1.8b, v2.8b
115 mls v0.2d, v1.2d, v2.2d
117 // CHECK-ERROR: error: invalid operand for instruction
118 // CHECK-ERROR: mla v0.16b, v1.8b, v2.8b
120 // CHECK-ERROR: error: invalid operand for instruction
121 // CHECK-ERROR: mls v0.2d, v1.2d, v2.2d
124 //----------------------------------------------------------------------
125 // Vector Floating-Point Multiply-accumulate and Multiply-subtract
126 //----------------------------------------------------------------------
127 // Mismatched vector types
128 fmla v0.2s, v1.2d, v2.2d
129 fmls v0.16b, v1.8b, v2.8b
131 // CHECK-ERROR: error: invalid operand for instruction
132 // CHECK-ERROR: fmla v0.2s, v1.2d, v2.2d
134 // CHECK-ERROR: error: invalid operand for instruction
135 // CHECK-ERROR: fmls v0.16b, v1.8b, v2.8b
139 //----------------------------------------------------------------------
140 // Vector Move Immediate Shifted
141 // Vector Move Inverted Immediate Shifted
142 // Vector Bitwise Bit Clear (AND NOT) - immediate
143 // Vector Bitwise OR - immedidate
144 //----------------------------------------------------------------------
145 // out of range immediate (0 to 0xff)
148 // out of range shift (0, 8, 16, 24 and 0, 8)
149 bic v15.4h, #1, lsl #7
150 orr v31.2s, #1, lsl #25
151 movi v5.4h, #10, lsl #16
152 // invalid vector type (2s, 4s, 4h, 8h)
153 movi v5.8b, #1, lsl #8
155 // CHECK-ERROR: error: invalid operand for instruction
156 // CHECK-ERROR: movi v0.2s, #-1
158 // CHECK-ERROR: error: invalid operand for instruction
159 // CHECK-ERROR: mvni v1.4s, #256
161 // CHECK-ERROR: error: invalid operand for instruction
162 // CHECK-ERROR: bic v15.4h, #1, lsl #7
164 // CHECK-ERROR: error: invalid operand for instruction
165 // CHECK-ERROR: orr v31.2s, #1, lsl #25
167 // CHECK-ERROR: error: invalid operand for instruction
168 // CHECK-ERROR: movi v5.4h, #10, lsl #16
170 // CHECK-ERROR: error: invalid operand for instruction
171 // CHECK-ERROR: movi v5.8b, #1, lsl #8
173 //----------------------------------------------------------------------
174 // Vector Move Immediate Masked
175 // Vector Move Inverted Immediate Masked
176 //----------------------------------------------------------------------
177 // out of range immediate (0 to 0xff)
178 movi v0.2s, #-1, msl #8
179 mvni v7.4s, #256, msl #16
180 // out of range shift (8, 16)
181 movi v3.2s, #1, msl #0
182 mvni v17.4s, #255, msl #32
183 // invalid vector type (2s, 4s)
184 movi v5.4h, #31, msl #8
186 // CHECK-ERROR: error: invalid operand for instruction
187 // CHECK-ERROR: movi v0.2s, #-1, msl #8
189 // CHECK-ERROR: error: invalid operand for instruction
190 // CHECK-ERROR: mvni v7.4s, #256, msl #16
192 // CHECK-ERROR: error: invalid operand for instruction
193 // CHECK-ERROR: movi v3.2s, #1, msl #0
195 // CHECK-ERROR: error: invalid operand for instruction
196 // CHECK-ERROR: mvni v17.4s, #255, msl #32
198 // CHECK-ERROR: error: invalid operand for instruction
199 // CHECK-ERROR: movi v5.4h, #31, msl #8
202 //----------------------------------------------------------------------
203 // Vector Immediate - per byte
204 //----------------------------------------------------------------------
205 // out of range immediate (0 to 0xff)
209 // CHECK-ERROR: error: invalid operand for instruction
210 // CHECK-ERROR: movi v0.8b, #-1
212 // CHECK-ERROR: error: invalid operand for instruction
213 // CHECK-ERROR: movi v1.16b, #256
216 //----------------------------------------------------------------------
217 // Scalar Floating-point Reciprocal Estimate
218 //----------------------------------------------------------------------
223 // CHECK-ERROR: error: invalid operand for instruction
224 // CHECK-ERROR: frecpe s19, h14
226 // CHECK-ERROR: error: invalid operand for instruction
227 // CHECK-ERROR: frecpe d13, s13
230 //----------------------------------------------------------------------
231 // Scalar Floating-point Reciprocal Exponent
232 //----------------------------------------------------------------------
237 // CHECK-ERROR: error: invalid operand for instruction
238 // CHECK-ERROR: frecpx s18, h10
240 // CHECK-ERROR: error: invalid operand for instruction
241 // CHECK-ERROR: frecpx d16, s19
244 //----------------------------------------------------------------------
245 // Scalar Floating-point Reciprocal Square Root Estimate
246 //----------------------------------------------------------------------
251 // CHECK-ERROR: error: invalid operand for instruction
252 // CHECK-ERROR: frsqrte s22, h13
254 // CHECK-ERROR: error: invalid operand for instruction
255 // CHECK-ERROR: frsqrte d21, s12
258 //----------------------------------------------------------------------
259 // Vector Move Immediate - bytemask, per doubleword
260 //---------------------------------------------------------------------
261 // invalid bytemask (0x00 or 0xff)
262 movi v0.2d, #0x10ff00ff00ff00ff
264 // CHECK:ERROR: error: invalid operand for instruction
265 // CHECK:ERROR: movi v0.2d, #0x10ff00ff00ff00ff
268 //----------------------------------------------------------------------
269 // Vector Move Immediate - bytemask, one doubleword
270 //----------------------------------------------------------------------
271 // invalid bytemask (0x00 or 0xff)
272 movi v0.2d, #0xffff00ff001f00ff
274 // CHECK:ERROR: error: invalid operand for instruction
275 // CHECK:ERROR: movi v0.2d, #0xffff00ff001f00ff
277 //----------------------------------------------------------------------
278 // Vector Floating Point Move Immediate
279 //----------------------------------------------------------------------
280 // invalid vector type (2s, 4s, 2d)
283 // CHECK:ERROR: error: invalid operand for instruction
284 // CHECK:ERROR: fmov v0.4h, #1.0
287 //----------------------------------------------------------------------
288 // Vector Move - register
289 //----------------------------------------------------------------------
290 // invalid vector type (8b, 16b)
292 // CHECK:ERROR: error: invalid operand for instruction
293 // CHECK:ERROR: mov v0.2s, v31.8b
296 //----------------------------------------------------------------------
297 // Vector Absolute Difference and Accumulate (Signed, Unsigned)
298 //----------------------------------------------------------------------
300 // Mismatched and invalid vector types (2d)
301 saba v0.16b, v1.8b, v2.8b
302 uaba v0.2d, v1.2d, v2.2d
304 // CHECK-ERROR: error: invalid operand for instruction
305 // CHECK-ERROR: saba v0.16b, v1.8b, v2.8b
307 // CHECK-ERROR: error: invalid operand for instruction
308 // CHECK-ERROR: uaba v0.2d, v1.2d, v2.2d
311 //----------------------------------------------------------------------
312 // Vector Absolute Difference and Accumulate (Signed, Unsigned)
313 // Vector Absolute Difference (Signed, Unsigned)
315 // Mismatched and invalid vector types (2d)
316 uaba v0.16b, v1.8b, v2.8b
317 saba v0.2d, v1.2d, v2.2d
318 uabd v0.4s, v1.2s, v2.2s
319 sabd v0.4h, v1.8h, v8.8h
321 // CHECK-ERROR: error: invalid operand for instruction
322 // CHECK-ERROR: uaba v0.16b, v1.8b, v2.8b
324 // CHECK-ERROR: error: invalid operand for instruction
325 // CHECK-ERROR: saba v0.2d, v1.2d, v2.2d
327 // CHECK-ERROR: error: invalid operand for instruction
328 // CHECK-ERROR: uabd v0.4s, v1.2s, v2.2s
330 // CHECK-ERROR: error: invalid operand for instruction
331 // CHECK-ERROR: sabd v0.4h, v1.8h, v8.8h
334 //----------------------------------------------------------------------
335 // Vector Absolute Difference (Floating Point)
336 //----------------------------------------------------------------------
337 // Mismatched and invalid vector types
338 fabd v0.2s, v1.4s, v2.2d
339 fabd v0.4h, v1.4h, v2.4h
341 // CHECK-ERROR: error: invalid operand for instruction
342 // CHECK-ERROR: fabd v0.2s, v1.4s, v2.2d
344 // CHECK-ERROR: error: invalid operand for instruction
345 // CHECK-ERROR: fabd v0.4h, v1.4h, v2.4h
347 //----------------------------------------------------------------------
348 // Vector Multiply (Polynomial)
349 //----------------------------------------------------------------------
351 // Mismatched and invalid vector types
352 pmul v0.8b, v1.8b, v2.16b
353 pmul v0.2s, v1.2s, v2.2s
355 // CHECK-ERROR: error: invalid operand for instruction
356 // CHECK-ERROR: pmul v0.8b, v1.8b, v2.16b
358 // CHECK-ERROR: error: invalid operand for instruction
359 // CHECK-ERROR: pmul v0.2s, v1.2s, v2.2s
362 //----------------------------------------------------------------------
363 // Scalar Integer Add and Sub
364 //----------------------------------------------------------------------
366 // Mismatched registers
370 // CHECK-ERROR: error: invalid operand for instruction
371 // CHECK-ERROR: add d0, s1, d2
373 // CHECK-ERROR: error: invalid operand for instruction
374 // CHECK-ERROR: sub s1, d1, d2
377 //----------------------------------------------------------------------
378 // Vector Reciprocal Step (Floating Point)
379 //----------------------------------------------------------------------
381 // Mismatched and invalid vector types
382 frecps v0.4s, v1.2d, v2.4s
383 frecps v0.8h, v1.8h, v2.8h
385 // CHECK-ERROR: error: invalid operand for instruction
386 // CHECK-ERROR: frecps v0.4s, v1.2d, v2.4s
388 // CHECK-ERROR: error: invalid operand for instruction
389 // CHECK-ERROR: frecps v0.8h, v1.8h, v2.8h
392 //----------------------------------------------------------------------
393 // Vector Reciprocal Square Root Step (Floating Point)
394 //----------------------------------------------------------------------
396 // Mismatched and invalid vector types
397 frsqrts v0.2d, v1.2d, v2.2s
398 frsqrts v0.4h, v1.4h, v2.4h
400 // CHECK-ERROR: error: invalid operand for instruction
401 // CHECK-ERROR: frsqrts v0.2d, v1.2d, v2.2s
403 // CHECK-ERROR: error: invalid operand for instruction
404 // CHECK-ERROR: frsqrts v0.4h, v1.4h, v2.4h
408 //----------------------------------------------------------------------
409 // Vector Absolute Compare Mask Less Than Or Equal (Floating Point)
410 //----------------------------------------------------------------------
412 // Mismatched and invalid vector types
413 facge v0.2d, v1.2s, v2.2d
414 facge v0.4h, v1.4h, v2.4h
415 facle v0.8h, v1.4h, v2.4h
417 // CHECK-ERROR: error: invalid operand for instruction
418 // CHECK-ERROR: facge v0.2d, v1.2s, v2.2d
420 // CHECK-ERROR: error: invalid operand for instruction
421 // CHECK-ERROR: facge v0.4h, v1.4h, v2.4h
423 // CHECK-ERROR: error: invalid operand for instruction
424 // CHECK-ERROR: facle v0.8h, v1.4h, v2.4h
426 //----------------------------------------------------------------------
427 // Vector Absolute Compare Mask Less Than (Floating Point)
428 //----------------------------------------------------------------------
430 // Mismatched and invalid vector types
431 facgt v0.2d, v1.2d, v2.4s
432 facgt v0.8h, v1.8h, v2.8h
433 faclt v0.8b, v1.8b, v2.8b
435 // CHECK-ERROR: error: invalid operand for instruction
436 // CHECK-ERROR: facgt v0.2d, v1.2d, v2.4s
438 // CHECK-ERROR: error: invalid operand for instruction
439 // CHECK-ERROR: facgt v0.8h, v1.8h, v2.8h
441 // CHECK-ERROR: error: invalid operand for instruction
442 // CHECK-ERROR: faclt v0.8b, v1.8b, v2.8b
446 //----------------------------------------------------------------------
447 // Vector Compare Mask Equal (Integer)
448 //----------------------------------------------------------------------
450 // Mismatched vector types
451 cmeq c0.2d, v1.2d, v2.2s
453 // CHECK-ERROR: error: invalid operand for instruction
454 // CHECK-ERROR: cmeq c0.2d, v1.2d, v2.2s
457 //----------------------------------------------------------------------
458 // Vector Compare Mask Higher or Same (Unsigned Integer)
459 // Vector Compare Mask Less or Same (Unsigned Integer)
460 // CMLS is alias for CMHS with operands reversed.
461 //----------------------------------------------------------------------
463 // Mismatched vector types
464 cmhs c0.4h, v1.8b, v2.8b
465 cmls c0.16b, v1.16b, v2.2d
467 // CHECK-ERROR: error: invalid operand for instruction
468 // CHECK-ERROR: cmhs c0.4h, v1.8b, v2.8b
470 // CHECK-ERROR: error: invalid operand for instruction
471 // CHECK-ERROR: cmls c0.16b, v1.16b, v2.2d
474 //----------------------------------------------------------------------
475 // Vector Compare Mask Greater Than or Equal (Integer)
476 // Vector Compare Mask Less Than or Equal (Integer)
477 // CMLE is alias for CMGE with operands reversed.
478 //----------------------------------------------------------------------
480 // Mismatched vector types
481 cmge c0.8h, v1.8b, v2.8b
482 cmle c0.4h, v1.2s, v2.2s
484 // CHECK-ERROR: error: invalid operand for instruction
485 // CHECK-ERROR: cmge c0.8h, v1.8b, v2.8b
487 // CHECK-ERROR: error: invalid operand for instruction
488 // CHECK-ERROR: cmle c0.4h, v1.2s, v2.2s
491 //----------------------------------------------------------------------
492 // Vector Compare Mask Higher (Unsigned Integer)
493 // Vector Compare Mask Lower (Unsigned Integer)
494 // CMLO is alias for CMHI with operands reversed.
495 //----------------------------------------------------------------------
497 // Mismatched vector types
498 cmhi c0.4s, v1.4s, v2.16b
499 cmlo c0.8b, v1.8b, v2.2s
501 // CHECK-ERROR: error: invalid operand for instruction
502 // CHECK-ERROR: cmhi c0.4s, v1.4s, v2.16b
504 // CHECK-ERROR: error: invalid operand for instruction
505 // CHECK-ERROR: cmlo c0.8b, v1.8b, v2.2s
508 //----------------------------------------------------------------------
509 // Vector Compare Mask Greater Than (Integer)
510 // Vector Compare Mask Less Than (Integer)
511 // CMLT is alias for CMGT with operands reversed.
512 //----------------------------------------------------------------------
514 // Mismatched vector types
515 cmgt c0.8b, v1.4s, v2.16b
516 cmlt c0.8h, v1.16b, v2.4s
518 // CHECK-ERROR: error: invalid operand for instruction
519 // CHECK-ERROR: cmgt c0.8b, v1.4s, v2.16b
521 // CHECK-ERROR: error: invalid operand for instruction
522 // CHECK-ERROR: cmlt c0.8h, v1.16b, v2.4s
525 //----------------------------------------------------------------------
526 // Vector Compare Mask Bitwise Test (Integer)
527 //----------------------------------------------------------------------
529 // Mismatched vector types
530 cmtst c0.16b, v1.16b, v2.4s
532 // CHECK-ERROR: error: invalid operand for instruction
533 // CHECK-ERROR: cmtst c0.16b, v1.16b, v2.4s
536 //----------------------------------------------------------------------
537 // Vector Compare Mask Equal (Floating Point)
538 //----------------------------------------------------------------------
540 // Mismatched and invalid vector types
541 fcmeq v0.2d, v1.2s, v2.2d
542 fcmeq v0.16b, v1.16b, v2.16b
543 fcmeq v0.8b, v1.4h, v2.4h
545 // CHECK-ERROR: error: invalid operand for instruction
546 // CHECK-ERROR: fcmeq v0.2d, v1.2s, v2.2d
548 // CHECK-ERROR: error: invalid operand for instruction
549 // CHECK-ERROR: fcmeq v0.16b, v1.16b, v2.16b
551 // CHECK-ERROR: error: invalid operand for instruction
552 // CHECK-ERROR: fcmeq v0.8b, v1.4h, v2.4h
555 //----------------------------------------------------------------------
556 // Vector Compare Mask Greater Than Or Equal (Floating Point)
557 // Vector Compare Mask Less Than Or Equal (Floating Point)
558 // FCMLE is alias for FCMGE with operands reversed.
559 //----------------------------------------------------------------------
561 // Mismatched and invalid vector types
562 fcmge v31.4s, v29.2s, v28.4s
563 fcmge v3.8b, v8.2s, v12.2s
564 fcmle v17.8h, v15.2d, v13.2d
566 // CHECK-ERROR: error: invalid operand for instruction
567 // CHECK-ERROR: fcmge v31.4s, v29.2s, v28.4s
569 // CHECK-ERROR: error: invalid operand for instruction
570 // CHECK-ERROR: fcmge v3.8b, v8.2s, v12.2s
572 // CHECK-ERROR: error: invalid operand for instruction
573 // CHECK-ERROR: fcmle v17.8h, v15.2d, v13.2d
576 //----------------------------------------------------------------------
577 // Vector Compare Mask Greater Than (Floating Point)
578 // Vector Compare Mask Less Than (Floating Point)
579 // FCMLT is alias for FCMGT with operands reversed.
580 //----------------------------------------------------------------------
582 // Mismatched and invalid vector types
583 fcmgt v0.2d, v31.2s, v16.2s
584 fcmgt v4.4s, v7.4s, v15.4h
585 fcmlt v29.2d, v5.2d, v2.16b
587 // CHECK-ERROR: error: invalid operand for instruction
588 // CHECK-ERROR: fcmgt v0.2d, v31.2s, v16.2s
590 // CHECK-ERROR: error: expected floating-point constant #0.0 or invalid register type
591 // CHECK-ERROR: fcmgt v4.4s, v7.4s, v15.4h
593 // CHECK-ERROR: error: expected floating-point constant #0.0 or invalid register type
594 // CHECK-ERROR: fcmlt v29.2d, v5.2d, v2.16b
597 //----------------------------------------------------------------------
598 // Vector Compare Mask Equal to Zero (Integer)
599 //----------------------------------------------------------------------
600 // Mismatched vector types and invalid imm
601 // Mismatched vector types
602 cmeq c0.2d, v1.2s, #0
603 cmeq c0.2d, v1.2d, #1
605 // CHECK-ERROR: error: invalid operand for instruction
606 // CHECK-ERROR: cmeq c0.2d, v1.2s, #0
608 // CHECK-ERROR: error: invalid operand for instruction
609 // CHECK-ERROR: cmeq c0.2d, v1.2d, #1
612 //----------------------------------------------------------------------
613 // Vector Compare Mask Greater Than or Equal to Zero (Signed Integer)
614 //----------------------------------------------------------------------
615 // Mismatched vector types and invalid imm
616 cmge c0.8h, v1.8b, #0
617 cmge c0.4s, v1.4s, #-1
619 // CHECK-ERROR: error: invalid operand for instruction
620 // CHECK-ERROR: cmge c0.8h, v1.8b, #0
622 // CHECK-ERROR: error: invalid operand for instruction
623 // CHECK-ERROR: cmge c0.4s, v1.4s, #-1
626 //----------------------------------------------------------------------
627 // Vector Compare Mask Greater Than Zero (Signed Integer)
628 //----------------------------------------------------------------------
629 // Mismatched vector types and invalid imm
630 cmgt c0.8b, v1.4s, #0
631 cmgt c0.8b, v1.8b, #-255
633 // CHECK-ERROR: error: invalid operand for instruction
634 // CHECK-ERROR: cmgt c0.8b, v1.4s, #0
636 // CHECK-ERROR: error: invalid operand for instruction
637 // CHECK-ERROR: cmgt c0.8b, v1.8b, #-255
640 //----------------------------------------------------------------------
641 // Vector Compare Mask Less Than or Equal To Zero (Signed Integer)
642 //----------------------------------------------------------------------
643 // Mismatched vector types and invalid imm
644 cmle c0.4h, v1.2s, #0
645 cmle c0.16b, v1.16b, #16
647 // CHECK-ERROR: error: invalid operand for instruction
648 // CHECK-ERROR: cmle c0.4h, v1.2s, #0
650 // CHECK-ERROR: error: invalid operand for instruction
651 // CHECK-ERROR: cmle c0.16b, v1.16b, #16
653 //----------------------------------------------------------------------
654 // Vector Compare Mask Less Than Zero (Signed Integer)
655 //----------------------------------------------------------------------
656 // Mismatched vector types and invalid imm
657 cmlt c0.8h, v1.16b, #0
658 cmlt c0.8h, v1.8h, #-15
660 // CHECK-ERROR: error: invalid operand for instruction
661 // CHECK-ERROR: cmlt c0.8h, v1.16b, #0
663 // CHECK-ERROR: error: invalid operand for instruction
664 // CHECK-ERROR: cmlt c0.8h, v1.8h, #-15
667 //----------------------------------------------------------------------
668 // Vector Compare Mask Equal to Zero (Floating Point)
669 //----------------------------------------------------------------------
671 // Mismatched and invalid vector types, invalid imm
672 fcmeq v0.2d, v1.2s, #0.0
673 fcmeq v0.16b, v1.16b, #0.0
674 fcmeq v0.8b, v1.4h, #1.0
675 fcmeq v0.8b, v1.4h, #1
677 // CHECK-ERROR: error: invalid operand for instruction
678 // CHECK-ERROR: fcmeq v0.2d, v1.2s, #0.0
680 // CHECK-ERROR: error: invalid operand for instruction
681 // CHECK-ERROR: fcmeq v0.16b, v1.16b, #0.0
683 // CHECK-ERROR: error: only #0.0 is acceptable as immediate
684 // CHECK-ERROR: fcmeq v0.8b, v1.4h, #1.0
686 // CHECK-ERROR: error: only #0.0 is acceptable as immediate
687 // CHECK-ERROR: fcmeq v0.8b, v1.4h, #1
689 //----------------------------------------------------------------------
690 // Vector Compare Mask Greater Than or Equal to Zero (Floating Point)
691 //----------------------------------------------------------------------
693 // Mismatched and invalid vector types, invalid imm
694 fcmge v31.4s, v29.2s, #0.0
695 fcmge v3.8b, v8.2s, #0.0
696 fcmle v17.8h, v15.2d, #-1.0
697 fcmle v17.8h, v15.2d, #2
699 // CHECK-ERROR: error: invalid operand for instruction
700 // CHECK-ERROR: fcmge v31.4s, v29.2s, #0.0
702 // CHECK-ERROR: error: invalid operand for instruction
703 // CHECK-ERROR: fcmge v3.8b, v8.2s, #0.0
705 // CHECK-ERROR: error: only #0.0 is acceptable as immediate
706 // CHECK-ERROR: fcmle v17.8h, v15.2d, #-1.0
708 // CHECK-ERROR: error: only #0.0 is acceptable as immediate
709 // CHECK-ERROR: fcmle v17.8h, v15.2d, #2
711 //----------------------------------------------------------------------
712 // Vector Compare Mask Greater Than Zero (Floating Point)
713 //----------------------------------------------------------------------
714 // Mismatched and invalid vector types, invalid imm
715 fcmgt v0.2d, v31.2s, #0.0
716 fcmgt v4.4s, v7.4h, #0.0
717 fcmlt v29.2d, v5.2d, #255.0
718 fcmlt v29.2d, v5.2d, #255
720 // CHECK-ERROR: error: invalid operand for instruction
721 // CHECK-ERROR: fcmgt v0.2d, v31.2s, #0.0
723 // CHECK-ERROR: error: invalid operand for instruction
724 // CHECK-ERROR: fcmgt v4.4s, v7.4h, #0.0
726 // CHECK-ERROR: error: only #0.0 is acceptable as immediate
727 // CHECK-ERROR: fcmlt v29.2d, v5.2d, #255.0
729 // CHECK-ERROR: error: only #0.0 is acceptable as immediate
730 // CHECK-ERROR: fcmlt v29.2d, v5.2d, #255
733 //----------------------------------------------------------------------
734 // Vector Compare Mask Less Than or Equal To Zero (Floating Point)
735 //----------------------------------------------------------------------
736 // Mismatched and invalid vector types, invalid imm
737 fcmge v31.4s, v29.2s, #0.0
738 fcmge v3.8b, v8.2s, #0.0
739 fcmle v17.2d, v15.2d, #15.0
740 fcmle v17.2d, v15.2d, #15
742 // CHECK-ERROR: error: invalid operand for instruction
743 // CHECK-ERROR: fcmge v31.4s, v29.2s, #0.0
745 // CHECK-ERROR: error: invalid operand for instruction
746 // CHECK-ERROR: fcmge v3.8b, v8.2s, #0.0
748 // CHECK-ERROR: error: only #0.0 is acceptable as immediate
749 // CHECK-ERROR: fcmle v17.2d, v15.2d, #15.0
751 // CHECK-ERROR: error: only #0.0 is acceptable as immediate
752 // CHECK-ERROR: fcmle v17.2d, v15.2d, #15
755 //----------------------------------------------------------------------
756 // Vector Compare Mask Less Than Zero (Floating Point)
757 //----------------------------------------------------------------------
758 // Mismatched and invalid vector types, invalid imm
759 fcmgt v0.2d, v31.2s, #0.0
760 fcmgt v4.4s, v7.4h, #0.0
761 fcmlt v29.2d, v5.2d, #16.0
762 fcmlt v29.2d, v5.2d, #2
764 // CHECK-ERROR: error: invalid operand for instruction
765 // CHECK-ERROR: fcmgt v0.2d, v31.2s, #0.0
767 // CHECK-ERROR: error: invalid operand for instruction
768 // CHECK-ERROR: fcmgt v4.4s, v7.4h, #0.0
770 // CHECK-ERROR: error: only #0.0 is acceptable as immediate
771 // CHECK-ERROR: fcmlt v29.2d, v5.2d, #16.0
773 // CHECK-ERROR: error: only #0.0 is acceptable as immediate
774 // CHECK-ERROR: fcmlt v29.2d, v5.2d, #2
777 /-----------------------------------------------------------------------
778 // Vector Integer Halving Add (Signed)
779 // Vector Integer Halving Add (Unsigned)
780 // Vector Integer Halving Sub (Signed)
781 // Vector Integer Halving Sub (Unsigned)
782 //----------------------------------------------------------------------
783 // Mismatched and invalid vector types (2d)
784 shadd v0.2d, v1.2d, v2.2d
785 uhadd v4.2s, v5.2s, v5.4h
786 shsub v11.4h, v12.8h, v13.4h
787 uhsub v31.16b, v29.8b, v28.8b
789 // CHECK-ERROR: error: invalid operand for instruction
790 // CHECK-ERROR: shadd v0.2d, v1.2d, v2.2d
792 // CHECK-ERROR: error: invalid operand for instruction
793 // CHECK-ERROR: uhadd v4.2s, v5.2s, v5.4h
795 // CHECK-ERROR: error: invalid operand for instruction
796 // CHECK-ERROR: shsub v11.4h, v12.8h, v13.4h
798 // CHECK-ERROR: error: invalid operand for instruction
799 // CHECK-ERROR: uhsub v31.16b, v29.8b, v28.8b
802 //----------------------------------------------------------------------
803 // Vector Integer Rouding Halving Add (Signed)
804 // Vector Integer Rouding Halving Add (Unsigned)
805 //----------------------------------------------------------------------
807 // Mismatched and invalid vector types (2d)
808 srhadd v0.2s, v1.2s, v2.2d
809 urhadd v0.16b, v1.16b, v2.8h
811 // CHECK-ERROR: error: invalid operand for instruction
812 // CHECK-ERROR: srhadd v0.2s, v1.2s, v2.2d
814 // CHECK-ERROR: error: invalid operand for instruction
815 // CHECK-ERROR: urhadd v0.16b, v1.16b, v2.8h
818 //----------------------------------------------------------------------
819 // Vector Integer Saturating Add (Signed)
820 // Vector Integer Saturating Add (Unsigned)
821 // Vector Integer Saturating Sub (Signed)
822 // Vector Integer Saturating Sub (Unsigned)
823 //----------------------------------------------------------------------
825 // Mismatched vector types
826 sqadd v0.2s, v1.2s, v2.2d
827 uqadd v31.8h, v1.4h, v2.4h
828 sqsub v10.8h, v1.16b, v2.16b
829 uqsub v31.8b, v1.8b, v2.4s
831 // CHECK-ERROR: error: invalid operand for instruction
832 // CHECK-ERROR: sqadd v0.2s, v1.2s, v2.2d
834 // CHECK-ERROR: error: invalid operand for instruction
835 // CHECK-ERROR: uqadd v31.8h, v1.4h, v2.4h
837 // CHECK-ERROR: error: invalid operand for instruction
838 // CHECK-ERROR: sqsub v10.8h, v1.16b, v2.16b
840 // CHECK-ERROR: error: invalid operand for instruction
841 // CHECK-ERROR: uqsub v31.8b, v1.8b, v2.4s
844 //----------------------------------------------------------------------
845 // Scalar Integer Saturating Add (Signed)
846 // Scalar Integer Saturating Add (Unsigned)
847 // Scalar Integer Saturating Sub (Signed)
848 // Scalar Integer Saturating Sub (Unsigned)
849 //----------------------------------------------------------------------
851 // Mismatched registers
857 // CHECK-ERROR: error: invalid operand for instruction
858 // CHECK-ERROR: sqadd d0, s31, d2
860 // CHECK-ERROR: error: invalid operand for instruction
861 // CHECK-ERROR: uqadd s0, s1, d2
863 // CHECK-ERROR: error: invalid operand for instruction
864 // CHECK-ERROR: sqsub b0, b2, s18
866 // CHECK-ERROR: error: invalid operand for instruction
867 // CHECK-ERROR: uqsub h1, h2, d2
870 //----------------------------------------------------------------------
871 // Scalar Integer Saturating Doubling Multiply Half High (Signed)
872 //----------------------------------------------------------------------
874 sqdmulh h10, s11, h12
877 // CHECK-ERROR: error: invalid operand for instruction
878 // CHECK-ERROR: sqdmulh h10, s11, h12
880 // CHECK-ERROR: error: invalid operand for instruction
881 // CHECK-ERROR: sqdmulh s20, h21, s2
884 //------------------------------------------------------------------------
885 // Scalar Integer Saturating Rounding Doubling Multiply Half High (Signed)
886 //------------------------------------------------------------------------
888 sqrdmulh h10, s11, h12
889 sqrdmulh s20, h21, s2
891 // CHECK-ERROR: error: invalid operand for instruction
892 // CHECK-ERROR: sqrdmulh h10, s11, h12
894 // CHECK-ERROR: error: invalid operand for instruction
895 // CHECK-ERROR: sqrdmulh s20, h21, s2
898 //----------------------------------------------------------------------
899 // Vector Shift Left (Signed and Unsigned Integer)
900 //----------------------------------------------------------------------
901 // Mismatched vector types
902 sshl v0.4s, v15.2s, v16.2s
903 ushl v1.16b, v25.16b, v6.8h
905 // CHECK-ERROR: error: invalid operand for instruction
906 // CHECK-ERROR: sshl v0.4s, v15.2s, v16.2s
908 // CHECK-ERROR: error: invalid operand for instruction
909 // CHECK-ERROR: ushl v1.16b, v25.16b, v6.8h
912 //----------------------------------------------------------------------
913 // Vector Saturating Shift Left (Signed and Unsigned Integer)
914 //----------------------------------------------------------------------
915 // Mismatched vector types
916 sqshl v0.2s, v15.4s, v16.2d
917 uqshl v1.8b, v25.4h, v6.8h
919 // CHECK-ERROR: error: invalid operand for instruction
920 // CHECK-ERROR: sqshl v0.2s, v15.4s, v16.2d
922 // CHECK-ERROR: error: invalid operand for instruction
923 // CHECK-ERROR: uqshl v1.8b, v25.4h, v6.8h
926 //----------------------------------------------------------------------
927 // Vector Rouding Shift Left (Signed and Unsigned Integer)
928 //----------------------------------------------------------------------
929 // Mismatched vector types
930 srshl v0.8h, v15.8h, v16.16b
931 urshl v1.2d, v25.2d, v6.4s
933 // CHECK-ERROR: error: invalid operand for instruction
934 // CHECK-ERROR: srshl v0.8h, v15.8h, v16.16b
936 // CHECK-ERROR: error: invalid operand for instruction
937 // CHECK-ERROR: urshl v1.2d, v25.2d, v6.4s
940 //----------------------------------------------------------------------
941 // Vector Saturating Rouding Shift Left (Signed and Unsigned Integer)
942 //----------------------------------------------------------------------
943 // Mismatched vector types
944 sqrshl v0.2s, v15.8h, v16.16b
945 uqrshl v1.4h, v25.4h, v6.2d
947 // CHECK-ERROR: error: invalid operand for instruction
948 // CHECK-ERROR: sqrshl v0.2s, v15.8h, v16.16b
950 // CHECK-ERROR: error: invalid operand for instruction
951 // CHECK-ERROR: uqrshl v1.4h, v25.4h, v6.2d
954 //----------------------------------------------------------------------
955 // Scalar Integer Shift Left (Signed, Unsigned)
956 //----------------------------------------------------------------------
957 // Mismatched and invalid vector types
961 // CHECK-ERROR: error: invalid operand for instruction
962 // CHECK-ERROR: sshl d0, d1, s2
964 // CHECK-ERROR: error: invalid operand for instruction
965 // CHECK-ERROR: ushl b2, b0, b1
968 //----------------------------------------------------------------------
969 // Scalar Integer Saturating Shift Left (Signed, Unsigned)
970 //----------------------------------------------------------------------
972 // Mismatched vector types
978 // CHECK-ERROR: error: invalid operand for instruction
979 // CHECK-ERROR: sqshl b0, s1, b0
981 // CHECK-ERROR: error: invalid operand for instruction
982 // CHECK-ERROR: uqshl h0, b1, h0
984 // CHECK-ERROR: error: invalid operand for instruction
985 // CHECK-ERROR: sqshl s0, h1, s0
987 // CHECK-ERROR: error: invalid operand for instruction
988 // CHECK-ERROR: uqshl d0, b1, d0
991 //----------------------------------------------------------------------
992 // Scalar Integer Rouding Shift Left (Signed, Unsigned)
993 //----------------------------------------------------------------------
994 // Mismatched and invalid vector types
998 // CHECK-ERROR: error: invalid operand for instruction
999 // CHECK-ERROR: srshl h0, h1, h2
1001 // CHECK-ERROR: error: invalid operand for instruction
1002 // CHECK-ERROR: urshl s0, s1, s2
1006 //----------------------------------------------------------------------
1007 // Scalar Integer Saturating Rounding Shift Left (Signed, Unsigned)
1008 //----------------------------------------------------------------------
1010 // Mismatched vector types
1016 // CHECK-ERROR: error: invalid operand for instruction
1017 // CHECK-ERROR: sqrshl b0, b1, s0
1019 // CHECK-ERROR: error: invalid operand for instruction
1020 // CHECK-ERROR: uqrshl h0, h1, b0
1022 // CHECK-ERROR: error: invalid operand for instruction
1023 // CHECK-ERROR: sqrshl s0, s1, h0
1025 // CHECK-ERROR: error: invalid operand for instruction
1026 // CHECK-ERROR: uqrshl d0, d1, b0
1030 //----------------------------------------------------------------------
1031 // Vector Maximum (Signed, Unsigned)
1032 //----------------------------------------------------------------------
1033 // Mismatched and invalid vector types
1034 smax v0.2d, v1.2d, v2.2d
1035 umax v0.4h, v1.4h, v2.2s
1037 // CHECK-ERROR: error: invalid operand for instruction
1038 // CHECK-ERROR: smax v0.2d, v1.2d, v2.2d
1040 // CHECK-ERROR: error: invalid operand for instruction
1041 // CHECK-ERROR: umax v0.4h, v1.4h, v2.2s
1044 //----------------------------------------------------------------------
1045 // Vector Minimum (Signed, Unsigned)
1046 //----------------------------------------------------------------------
1047 // Mismatched and invalid vector types
1048 smin v0.2d, v1.2d, v2.2d
1049 umin v0.2s, v1.2s, v2.8b
1051 // CHECK-ERROR: error: invalid operand for instruction
1052 // CHECK-ERROR: smin v0.2d, v1.2d, v2.2d
1054 // CHECK-ERROR: error: invalid operand for instruction
1055 // CHECK-ERROR: umin v0.2s, v1.2s, v2.8b
1059 //----------------------------------------------------------------------
1060 // Vector Maximum (Floating Point)
1061 //----------------------------------------------------------------------
1062 // Mismatched and invalid vector types
1063 fmax v0.2s, v1.2s, v2.4s
1064 fmax v0.8b, v1.8b, v2.8b
1066 // CHECK-ERROR: error: invalid operand for instruction
1067 // CHECK-ERROR: fmax v0.2s, v1.2s, v2.4s
1069 // CHECK-ERROR: error: invalid operand for instruction
1070 // CHECK-ERROR: fmax v0.8b, v1.8b, v2.8b
1072 //----------------------------------------------------------------------
1073 // Vector Minimum (Floating Point)
1074 //----------------------------------------------------------------------
1075 // Mismatched and invalid vector types
1076 fmin v0.4s, v1.4s, v2.2d
1077 fmin v0.8h, v1.8h, v2.8h
1079 // CHECK-ERROR: error: invalid operand for instruction
1080 // CHECK-ERROR: fmin v0.4s, v1.4s, v2.2d
1082 // CHECK-ERROR: error: invalid operand for instruction
1083 // CHECK-ERROR: fmin v0.8h, v1.8h, v2.8h
1086 //----------------------------------------------------------------------
1087 // Vector maxNum (Floating Point)
1088 //----------------------------------------------------------------------
1089 // Mismatched and invalid vector types
1090 fmaxnm v0.2s, v1.2s, v2.2d
1091 fmaxnm v0.4h, v1.8h, v2.4h
1093 // CHECK-ERROR: error: invalid operand for instruction
1094 // CHECK-ERROR: fmaxnm v0.2s, v1.2s, v2.2d
1096 // CHECK-ERROR: error: invalid operand for instruction
1097 // CHECK-ERROR: fmaxnm v0.4h, v1.8h, v2.4h
1100 //----------------------------------------------------------------------
1101 // Vector minNum (Floating Point)
1102 //----------------------------------------------------------------------
1103 // Mismatched and invalid vector types
1104 fminnm v0.4s, v1.2s, v2.4s
1105 fminnm v0.16b, v0.16b, v0.16b
1107 // CHECK-ERROR: error: invalid operand for instruction
1108 // CHECK-ERROR: fminnm v0.4s, v1.2s, v2.4s
1110 // CHECK-ERROR: error: invalid operand for instruction
1111 // CHECK-ERROR: fminnm v0.16b, v0.16b, v0.16b
1115 //----------------------------------------------------------------------
1116 // Vector Maximum Pairwise (Signed, Unsigned)
1117 //----------------------------------------------------------------------
1118 // Mismatched and invalid vector types
1119 smaxp v0.2d, v1.2d, v2.2d
1120 umaxp v0.4h, v1.4h, v2.2s
1122 // CHECK-ERROR: error: invalid operand for instruction
1123 // CHECK-ERROR: smaxp v0.2d, v1.2d, v2.2d
1125 // CHECK-ERROR: error: invalid operand for instruction
1126 // CHECK-ERROR: umaxp v0.4h, v1.4h, v2.2s
1129 //----------------------------------------------------------------------
1130 // Vector Minimum Pairwise (Signed, Unsigned)
1131 //----------------------------------------------------------------------
1132 // Mismatched and invalid vector types
1133 sminp v0.2d, v1.2d, v2.2d
1134 uminp v0.2s, v1.2s, v2.8b
1136 // CHECK-ERROR: error: invalid operand for instruction
1137 // CHECK-ERROR: sminp v0.2d, v1.2d, v2.2d
1139 // CHECK-ERROR: error: invalid operand for instruction
1140 // CHECK-ERROR: uminp v0.2s, v1.2s, v2.8b
1144 //----------------------------------------------------------------------
1145 // Vector Maximum Pairwise (Floating Point)
1146 //----------------------------------------------------------------------
1147 // Mismatched and invalid vector types
1148 fmaxp v0.2s, v1.2s, v2.4s
1149 fmaxp v0.8b, v1.8b, v2.8b
1151 // CHECK-ERROR: error: invalid operand for instruction
1152 // CHECK-ERROR: fmaxp v0.2s, v1.2s, v2.4s
1154 // CHECK-ERROR: error: invalid operand for instruction
1155 // CHECK-ERROR: fmaxp v0.8b, v1.8b, v2.8b
1157 //----------------------------------------------------------------------
1158 // Vector Minimum Pairwise (Floating Point)
1159 //----------------------------------------------------------------------
1160 // Mismatched and invalid vector types
1161 fminp v0.4s, v1.4s, v2.2d
1162 fminp v0.8h, v1.8h, v2.8h
1164 // CHECK-ERROR: error: invalid operand for instruction
1165 // CHECK-ERROR: fminp v0.4s, v1.4s, v2.2d
1167 // CHECK-ERROR: error: invalid operand for instruction
1168 // CHECK-ERROR: fminp v0.8h, v1.8h, v2.8h
1171 //----------------------------------------------------------------------
1172 // Vector maxNum Pairwise (Floating Point)
1173 //----------------------------------------------------------------------
1174 // Mismatched and invalid vector types
1175 fmaxnmp v0.2s, v1.2s, v2.2d
1176 fmaxnmp v0.4h, v1.8h, v2.4h
1178 // CHECK-ERROR: error: invalid operand for instruction
1179 // CHECK-ERROR: fmaxnmp v0.2s, v1.2s, v2.2d
1181 // CHECK-ERROR: error: invalid operand for instruction
1182 // CHECK-ERROR: fmaxnmp v0.4h, v1.8h, v2.4h
1185 //----------------------------------------------------------------------
1186 // Vector minNum Pairwise (Floating Point)
1187 //----------------------------------------------------------------------
1188 // Mismatched and invalid vector types
1189 fminnmp v0.4s, v1.2s, v2.4s
1190 fminnmp v0.16b, v0.16b, v0.16b
1192 // CHECK-ERROR: error: invalid operand for instruction
1193 // CHECK-ERROR: fminnmp v0.4s, v1.2s, v2.4s
1195 // CHECK-ERROR: error: invalid operand for instruction
1196 // CHECK-ERROR: fminnmp v0.16b, v0.16b, v0.16b
1200 //----------------------------------------------------------------------
1201 // Vector Add Pairwise (Integer)
1202 //----------------------------------------------------------------------
1204 // Mismatched vector types
1205 addp v0.16b, v1.8b, v2.8b
1207 // CHECK-ERROR: error: invalid operand for instruction
1208 // CHECK-ERROR: addp v0.16b, v1.8b, v2.8b
1211 //----------------------------------------------------------------------
1212 // Vector Add Pairwise (Floating Point)
1213 //----------------------------------------------------------------------
1214 // Mismatched and invalid vector types
1215 faddp v0.16b, v1.8b, v2.8b
1216 faddp v0.2d, v1.2d, v2.8h
1218 // CHECK-ERROR: error: invalid operand for instruction
1219 // CHECK-ERROR: faddp v0.16b, v1.8b, v2.8b
1221 // CHECK-ERROR: error: invalid operand for instruction
1222 // CHECK-ERROR: faddp v0.2d, v1.2d, v2.8h
1226 //----------------------------------------------------------------------
1227 // Vector Saturating Doubling Multiply High
1228 //----------------------------------------------------------------------
1229 // Mismatched and invalid vector types
1230 sqdmulh v2.4h, v25.8h, v3.4h
1231 sqdmulh v12.2d, v5.2d, v13.2d
1232 sqdmulh v3.8b, v1.8b, v30.8b
1234 // CHECK-ERROR: error: invalid operand for instruction
1235 // CHECK-ERROR: sqdmulh v2.4h, v25.8h, v3.4h
1237 // CHECK-ERROR: error: invalid operand for instruction
1238 // CHECK-ERROR: sqdmulh v12.2d, v5.2d, v13.2d
1240 // CHECK-ERROR: error: invalid operand for instruction
1241 // CHECK-ERROR: sqdmulh v3.8b, v1.8b, v30.8b
1244 //----------------------------------------------------------------------
1245 // Vector Saturating Rouding Doubling Multiply High
1246 //----------------------------------------------------------------------
1247 // Mismatched and invalid vector types
1248 sqrdmulh v2.2s, v25.4s, v3.4s
1249 sqrdmulh v12.16b, v5.16b, v13.16b
1250 sqrdmulh v3.4h, v1.4h, v30.2d
1253 // CHECK-ERROR: error: invalid operand for instruction
1254 // CHECK-ERROR: sqrdmulh v2.2s, v25.4s, v3.4s
1256 // CHECK-ERROR: error: invalid operand for instruction
1257 // CHECK-ERROR: sqrdmulh v12.16b, v5.16b, v13.16b
1259 // CHECK-ERROR: error: invalid operand for instruction
1260 // CHECK-ERROR: sqrdmulh v3.4h, v1.4h, v30.2d
1263 //----------------------------------------------------------------------
1264 // Vector Multiply Extended
1265 //----------------------------------------------------------------------
1266 // Mismatched and invalid vector types
1267 fmulx v21.2s, v5.2s, v13.2d
1268 fmulx v1.4h, v25.4h, v3.4h
1270 // CHECK-ERROR: error: invalid operand for instruction
1271 // CHECK-ERROR: fmulx v21.2s, v5.2s, v13.2d
1273 // CHECK-ERROR: error: invalid operand for instruction
1274 // CHECK-ERROR: fmulx v1.4h, v25.4h, v3.4h
1277 //------------------------------------------------------------------------------
1278 // Vector Shift Left by Immediate
1279 //------------------------------------------------------------------------------
1280 // Mismatched vector types and out of range
1281 shl v0.4s, v15,2s, #3
1282 shl v0.2d, v17.4s, #3
1283 shl v0.8b, v31.8b, #-1
1284 shl v0.8b, v31.8b, #8
1285 shl v0.4s, v21.4s, #32
1286 shl v0.2d, v1.2d, #64
1288 // CHECK-ERROR: error: expected comma before next operand
1289 // CHECK-ERROR: shl v0.4s, v15,2s, #3
1291 // CHECK-ERROR: error: invalid operand for instruction
1292 // CHECK-ERROR: shl v0.2d, v17.4s, #3
1294 // CHECK-ERROR: error: expected integer in range [0, 7]
1295 // CHECK-ERROR: shl v0.8b, v31.8b, #-1
1297 // CHECK-ERROR: error: expected integer in range [0, 7]
1298 // CHECK-ERROR: shl v0.8b, v31.8b, #8
1300 // CHECK-ERROR: error: expected integer in range [0, 31]
1301 // CHECK-ERROR: shl v0.4s, v21.4s, #32
1303 // CHECK-ERROR: error: expected integer in range [0, 63]
1304 // CHECK-ERROR: shl v0.2d, v1.2d, #64
1307 //----------------------------------------------------------------------
1308 // Vector Shift Left Long by Immediate
1309 //----------------------------------------------------------------------
1310 // Mismatched vector types
1311 sshll v0.4s, v15.2s, #3
1312 ushll v1.16b, v25.16b, #6
1313 sshll2 v0.2d, v3.8s, #15
1314 ushll2 v1.4s, v25.4s, #7
1317 sshll v0.8h, v1.8b, #-1
1318 sshll v0.8h, v1.8b, #9
1319 ushll v0.4s, v1.4h, #17
1320 ushll v0.2d, v1.2s, #33
1321 sshll2 v0.8h, v1.16b, #9
1322 sshll2 v0.4s, v1.8h, #17
1323 ushll2 v0.2d, v1.4s, #33
1325 // CHECK-ERROR: error: invalid operand for instruction
1326 // CHECK-ERROR: sshll v0.4s, v15.2s, #3
1328 // CHECK-ERROR: error: invalid operand for instruction
1329 // CHECK-ERROR: ushll v1.16b, v25.16b, #6
1331 // CHECK-ERROR: error: invalid operand for instruction
1332 // CHECK-ERROR: sshll2 v0.2d, v3.8s, #15
1334 // CHECK-ERROR: error: invalid operand for instruction
1335 // CHECK-ERROR: ushll2 v1.4s, v25.4s, #7
1337 // CHECK-ERROR: error: expected integer in range [0, 7]
1338 // CHECK-ERROR: sshll v0.8h, v1.8b, #-1
1340 // CHECK-ERROR: error: expected integer in range [0, 7]
1341 // CHECK-ERROR: sshll v0.8h, v1.8b, #9
1343 // CHECK-ERROR: error: expected integer in range [0, 15]
1344 // CHECK-ERROR: ushll v0.4s, v1.4h, #17
1346 // CHECK-ERROR: error: expected integer in range [0, 31]
1347 // CHECK-ERROR: ushll v0.2d, v1.2s, #33
1349 // CHECK-ERROR: error: expected integer in range [0, 7]
1350 // CHECK-ERROR: sshll2 v0.8h, v1.16b, #9
1352 // CHECK-ERROR: error: expected integer in range [0, 15]
1353 // CHECK-ERROR: sshll2 v0.4s, v1.8h, #17
1355 // CHECK-ERROR: error: expected integer in range [0, 31]
1356 // CHECK-ERROR: ushll2 v0.2d, v1.4s, #33
1360 //------------------------------------------------------------------------------
1361 // Vector shift right by immediate
1362 //------------------------------------------------------------------------------
1363 sshr v0.8b, v1.8h, #3
1364 sshr v0.4h, v1.4s, #3
1365 sshr v0.2s, v1.2d, #3
1366 sshr v0.16b, v1.16b, #9
1367 sshr v0.8h, v1.8h, #17
1368 sshr v0.4s, v1.4s, #33
1369 sshr v0.2d, v1.2d, #65
1371 // CHECK-ERROR: error: invalid operand for instruction
1372 // CHECK-ERROR: sshr v0.8b, v1.8h, #3
1374 // CHECK-ERROR: error: invalid operand for instruction
1375 // CHECK-ERROR: sshr v0.4h, v1.4s, #3
1377 // CHECK-ERROR: error: invalid operand for instruction
1378 // CHECK-ERROR: sshr v0.2s, v1.2d, #3
1380 // CHECK-ERROR: error: expected integer in range [1, 8]
1381 // CHECK-ERROR: sshr v0.16b, v1.16b, #9
1383 // CHECK-ERROR: error: expected integer in range [1, 16]
1384 // CHECK-ERROR: sshr v0.8h, v1.8h, #17
1386 // CHECK-ERROR: error: expected integer in range [1, 32]
1387 // CHECK-ERROR: sshr v0.4s, v1.4s, #33
1389 // CHECK-ERROR: error: expected integer in range [1, 64]
1390 // CHECK-ERROR: sshr v0.2d, v1.2d, #65
1393 //------------------------------------------------------------------------------
1394 // Vector shift right by immediate
1395 //------------------------------------------------------------------------------
1396 ushr v0.8b, v1.8h, #3
1397 ushr v0.4h, v1.4s, #3
1398 ushr v0.2s, v1.2d, #3
1399 ushr v0.16b, v1.16b, #9
1400 ushr v0.8h, v1.8h, #17
1401 ushr v0.4s, v1.4s, #33
1402 ushr v0.2d, v1.2d, #65
1404 // CHECK-ERROR: error: invalid operand for instruction
1405 // CHECK-ERROR: ushr v0.8b, v1.8h, #3
1407 // CHECK-ERROR: error: invalid operand for instruction
1408 // CHECK-ERROR: ushr v0.4h, v1.4s, #3
1410 // CHECK-ERROR: error: invalid operand for instruction
1411 // CHECK-ERROR: ushr v0.2s, v1.2d, #3
1413 // CHECK-ERROR: error: expected integer in range [1, 8]
1414 // CHECK-ERROR: ushr v0.16b, v1.16b, #9
1416 // CHECK-ERROR: error: expected integer in range [1, 16]
1417 // CHECK-ERROR: ushr v0.8h, v1.8h, #17
1419 // CHECK-ERROR: error: expected integer in range [1, 32]
1420 // CHECK-ERROR: ushr v0.4s, v1.4s, #33
1422 // CHECK-ERROR: error: expected integer in range [1, 64]
1423 // CHECK-ERROR: ushr v0.2d, v1.2d, #65
1426 //------------------------------------------------------------------------------
1427 // Vector shift right and accumulate by immediate
1428 //------------------------------------------------------------------------------
1429 ssra v0.8b, v1.8h, #3
1430 ssra v0.4h, v1.4s, #3
1431 ssra v0.2s, v1.2d, #3
1432 ssra v0.16b, v1.16b, #9
1433 ssra v0.8h, v1.8h, #17
1434 ssra v0.4s, v1.4s, #33
1435 ssra v0.2d, v1.2d, #65
1437 // CHECK-ERROR: error: invalid operand for instruction
1438 // CHECK-ERROR: ssra v0.8b, v1.8h, #3
1440 // CHECK-ERROR: error: invalid operand for instruction
1441 // CHECK-ERROR: ssra v0.4h, v1.4s, #3
1443 // CHECK-ERROR: error: invalid operand for instruction
1444 // CHECK-ERROR: ssra v0.2s, v1.2d, #3
1446 // CHECK-ERROR: error: expected integer in range [1, 8]
1447 // CHECK-ERROR: ssra v0.16b, v1.16b, #9
1449 // CHECK-ERROR: error: expected integer in range [1, 16]
1450 // CHECK-ERROR: ssra v0.8h, v1.8h, #17
1452 // CHECK-ERROR: error: expected integer in range [1, 32]
1453 // CHECK-ERROR: ssra v0.4s, v1.4s, #33
1455 // CHECK-ERROR: error: expected integer in range [1, 64]
1456 // CHECK-ERROR: ssra v0.2d, v1.2d, #65
1459 //------------------------------------------------------------------------------
1460 // Vector shift right and accumulate by immediate
1461 //------------------------------------------------------------------------------
1462 usra v0.8b, v1.8h, #3
1463 usra v0.4h, v1.4s, #3
1464 usra v0.2s, v1.2d, #3
1465 usra v0.16b, v1.16b, #9
1466 usra v0.8h, v1.8h, #17
1467 usra v0.4s, v1.4s, #33
1468 usra v0.2d, v1.2d, #65
1470 // CHECK-ERROR: error: invalid operand for instruction
1471 // CHECK-ERROR: usra v0.8b, v1.8h, #3
1473 // CHECK-ERROR: error: invalid operand for instruction
1474 // CHECK-ERROR: usra v0.4h, v1.4s, #3
1476 // CHECK-ERROR: error: invalid operand for instruction
1477 // CHECK-ERROR: usra v0.2s, v1.2d, #3
1479 // CHECK-ERROR: error: expected integer in range [1, 8]
1480 // CHECK-ERROR: usra v0.16b, v1.16b, #9
1482 // CHECK-ERROR: error: expected integer in range [1, 16]
1483 // CHECK-ERROR: usra v0.8h, v1.8h, #17
1485 // CHECK-ERROR: error: expected integer in range [1, 32]
1486 // CHECK-ERROR: usra v0.4s, v1.4s, #33
1488 // CHECK-ERROR: error: expected integer in range [1, 64]
1489 // CHECK-ERROR: usra v0.2d, v1.2d, #65
1492 //------------------------------------------------------------------------------
1493 // Vector rounding shift right by immediate
1494 //------------------------------------------------------------------------------
1495 srshr v0.8b, v1.8h, #3
1496 srshr v0.4h, v1.4s, #3
1497 srshr v0.2s, v1.2d, #3
1498 srshr v0.16b, v1.16b, #9
1499 srshr v0.8h, v1.8h, #17
1500 srshr v0.4s, v1.4s, #33
1501 srshr v0.2d, v1.2d, #65
1503 // CHECK-ERROR: error: invalid operand for instruction
1504 // CHECK-ERROR: srshr v0.8b, v1.8h, #3
1506 // CHECK-ERROR: error: invalid operand for instruction
1507 // CHECK-ERROR: srshr v0.4h, v1.4s, #3
1509 // CHECK-ERROR: error: invalid operand for instruction
1510 // CHECK-ERROR: srshr v0.2s, v1.2d, #3
1512 // CHECK-ERROR: error: expected integer in range [1, 8]
1513 // CHECK-ERROR: srshr v0.16b, v1.16b, #9
1515 // CHECK-ERROR: error: expected integer in range [1, 16]
1516 // CHECK-ERROR: srshr v0.8h, v1.8h, #17
1518 // CHECK-ERROR: error: expected integer in range [1, 32]
1519 // CHECK-ERROR: srshr v0.4s, v1.4s, #33
1521 // CHECK-ERROR: error: expected integer in range [1, 64]
1522 // CHECK-ERROR: srshr v0.2d, v1.2d, #65
1525 //------------------------------------------------------------------------------
1526 // Vecotr rounding shift right by immediate
1527 //------------------------------------------------------------------------------
1528 urshr v0.8b, v1.8h, #3
1529 urshr v0.4h, v1.4s, #3
1530 urshr v0.2s, v1.2d, #3
1531 urshr v0.16b, v1.16b, #9
1532 urshr v0.8h, v1.8h, #17
1533 urshr v0.4s, v1.4s, #33
1534 urshr v0.2d, v1.2d, #65
1536 // CHECK-ERROR: error: invalid operand for instruction
1537 // CHECK-ERROR: urshr v0.8b, v1.8h, #3
1539 // CHECK-ERROR: error: invalid operand for instruction
1540 // CHECK-ERROR: urshr v0.4h, v1.4s, #3
1542 // CHECK-ERROR: error: invalid operand for instruction
1543 // CHECK-ERROR: urshr v0.2s, v1.2d, #3
1545 // CHECK-ERROR: error: expected integer in range [1, 8]
1546 // CHECK-ERROR: urshr v0.16b, v1.16b, #9
1548 // CHECK-ERROR: error: expected integer in range [1, 16]
1549 // CHECK-ERROR: urshr v0.8h, v1.8h, #17
1551 // CHECK-ERROR: error: expected integer in range [1, 32]
1552 // CHECK-ERROR: urshr v0.4s, v1.4s, #33
1554 // CHECK-ERROR: error: expected integer in range [1, 64]
1555 // CHECK-ERROR: urshr v0.2d, v1.2d, #65
1558 //------------------------------------------------------------------------------
1559 // Vector rounding shift right and accumulate by immediate
1560 //------------------------------------------------------------------------------
1561 srsra v0.8b, v1.8h, #3
1562 srsra v0.4h, v1.4s, #3
1563 srsra v0.2s, v1.2d, #3
1564 srsra v0.16b, v1.16b, #9
1565 srsra v0.8h, v1.8h, #17
1566 srsra v0.4s, v1.4s, #33
1567 srsra v0.2d, v1.2d, #65
1569 // CHECK-ERROR: error: invalid operand for instruction
1570 // CHECK-ERROR: srsra v0.8b, v1.8h, #3
1572 // CHECK-ERROR: error: invalid operand for instruction
1573 // CHECK-ERROR: srsra v0.4h, v1.4s, #3
1575 // CHECK-ERROR: error: invalid operand for instruction
1576 // CHECK-ERROR: srsra v0.2s, v1.2d, #3
1578 // CHECK-ERROR: error: expected integer in range [1, 8]
1579 // CHECK-ERROR: srsra v0.16b, v1.16b, #9
1581 // CHECK-ERROR: error: expected integer in range [1, 16]
1582 // CHECK-ERROR: srsra v0.8h, v1.8h, #17
1584 // CHECK-ERROR: error: expected integer in range [1, 32]
1585 // CHECK-ERROR: srsra v0.4s, v1.4s, #33
1587 // CHECK-ERROR: error: expected integer in range [1, 64]
1588 // CHECK-ERROR: srsra v0.2d, v1.2d, #65
1591 //------------------------------------------------------------------------------
1592 // Vector rounding shift right and accumulate by immediate
1593 //------------------------------------------------------------------------------
1594 ursra v0.8b, v1.8h, #3
1595 ursra v0.4h, v1.4s, #3
1596 ursra v0.2s, v1.2d, #3
1597 ursra v0.16b, v1.16b, #9
1598 ursra v0.8h, v1.8h, #17
1599 ursra v0.4s, v1.4s, #33
1600 ursra v0.2d, v1.2d, #65
1602 // CHECK-ERROR: error: invalid operand for instruction
1603 // CHECK-ERROR: ursra v0.8b, v1.8h, #3
1605 // CHECK-ERROR: error: invalid operand for instruction
1606 // CHECK-ERROR: ursra v0.4h, v1.4s, #3
1608 // CHECK-ERROR: error: invalid operand for instruction
1609 // CHECK-ERROR: ursra v0.2s, v1.2d, #3
1611 // CHECK-ERROR: error: expected integer in range [1, 8]
1612 // CHECK-ERROR: ursra v0.16b, v1.16b, #9
1614 // CHECK-ERROR: error: expected integer in range [1, 16]
1615 // CHECK-ERROR: ursra v0.8h, v1.8h, #17
1617 // CHECK-ERROR: error: expected integer in range [1, 32]
1618 // CHECK-ERROR: ursra v0.4s, v1.4s, #33
1620 // CHECK-ERROR: error: expected integer in range [1, 64]
1621 // CHECK-ERROR: ursra v0.2d, v1.2d, #65
1624 //------------------------------------------------------------------------------
1625 // Vector shift right and insert by immediate
1626 //------------------------------------------------------------------------------
1627 sri v0.8b, v1.8h, #3
1628 sri v0.4h, v1.4s, #3
1629 sri v0.2s, v1.2d, #3
1630 sri v0.16b, v1.16b, #9
1631 sri v0.8h, v1.8h, #17
1632 sri v0.4s, v1.4s, #33
1633 sri v0.2d, v1.2d, #65
1635 // CHECK-ERROR: error: invalid operand for instruction
1636 // CHECK-ERROR: sri v0.8b, v1.8h, #3
1638 // CHECK-ERROR: error: invalid operand for instruction
1639 // CHECK-ERROR: sri v0.4h, v1.4s, #3
1641 // CHECK-ERROR: error: invalid operand for instruction
1642 // CHECK-ERROR: sri v0.2s, v1.2d, #3
1644 // CHECK-ERROR: error: expected integer in range [1, 8]
1645 // CHECK-ERROR: sri v0.16b, v1.16b, #9
1647 // CHECK-ERROR: error: expected integer in range [1, 16]
1648 // CHECK-ERROR: sri v0.8h, v1.8h, #17
1650 // CHECK-ERROR: error: expected integer in range [1, 32]
1651 // CHECK-ERROR: sri v0.4s, v1.4s, #33
1653 // CHECK-ERROR: error: expected integer in range [1, 64]
1654 // CHECK-ERROR: sri v0.2d, v1.2d, #65
1657 //------------------------------------------------------------------------------
1658 // Vector shift left and insert by immediate
1659 //------------------------------------------------------------------------------
1660 sli v0.8b, v1.8h, #3
1661 sli v0.4h, v1.4s, #3
1662 sli v0.2s, v1.2d, #3
1663 sli v0.16b, v1.16b, #8
1664 sli v0.8h, v1.8h, #16
1665 sli v0.4s, v1.4s, #32
1666 sli v0.2d, v1.2d, #64
1668 // CHECK-ERROR: error: invalid operand for instruction
1669 // CHECK-ERROR: sli v0.8b, v1.8h, #3
1671 // CHECK-ERROR: error: invalid operand for instruction
1672 // CHECK-ERROR: sli v0.4h, v1.4s, #3
1674 // CHECK-ERROR: error: invalid operand for instruction
1675 // CHECK-ERROR: sli v0.2s, v1.2d, #3
1677 // CHECK-ERROR: error: expected integer in range [0, 7]
1678 // CHECK-ERROR: sli v0.16b, v1.16b, #8
1680 // CHECK-ERROR: error: expected integer in range [0, 15]
1681 // CHECK-ERROR: sli v0.8h, v1.8h, #16
1683 // CHECK-ERROR: error: expected integer in range [0, 31]
1684 // CHECK-ERROR: sli v0.4s, v1.4s, #32
1686 // CHECK-ERROR: error: expected integer in range [0, 63]
1687 // CHECK-ERROR: sli v0.2d, v1.2d, #64
1690 //------------------------------------------------------------------------------
1691 // Vector saturating shift left unsigned by immediate
1692 //------------------------------------------------------------------------------
1693 sqshlu v0.8b, v1.8h, #3
1694 sqshlu v0.4h, v1.4s, #3
1695 sqshlu v0.2s, v1.2d, #3
1696 sqshlu v0.16b, v1.16b, #8
1697 sqshlu v0.8h, v1.8h, #16
1698 sqshlu v0.4s, v1.4s, #32
1699 sqshlu v0.2d, v1.2d, #64
1701 // CHECK-ERROR: error: invalid operand for instruction
1702 // CHECK-ERROR: sqshlu v0.8b, v1.8h, #3
1704 // CHECK-ERROR: error: invalid operand for instruction
1705 // CHECK-ERROR: sqshlu v0.4h, v1.4s, #3
1707 // CHECK-ERROR: error: invalid operand for instruction
1708 // CHECK-ERROR: sqshlu v0.2s, v1.2d, #3
1710 // CHECK-ERROR: error: expected integer in range [0, 7]
1711 // CHECK-ERROR: sqshlu v0.16b, v1.16b, #8
1713 // CHECK-ERROR: error: expected integer in range [0, 15]
1714 // CHECK-ERROR: sqshlu v0.8h, v1.8h, #16
1716 // CHECK-ERROR: error: expected integer in range [0, 31]
1717 // CHECK-ERROR: sqshlu v0.4s, v1.4s, #32
1719 // CHECK-ERROR: error: expected integer in range [0, 63]
1720 // CHECK-ERROR: sqshlu v0.2d, v1.2d, #64
1723 //------------------------------------------------------------------------------
1724 // Vector saturating shift left by immediate
1725 //------------------------------------------------------------------------------
1726 sqshl v0.8b, v1.8h, #3
1727 sqshl v0.4h, v1.4s, #3
1728 sqshl v0.2s, v1.2d, #3
1729 sqshl v0.16b, v1.16b, #8
1730 sqshl v0.8h, v1.8h, #16
1731 sqshl v0.4s, v1.4s, #32
1732 sqshl v0.2d, v1.2d, #64
1734 // CHECK-ERROR: error: invalid operand for instruction
1735 // CHECK-ERROR: sqshl v0.8b, v1.8h, #3
1737 // CHECK-ERROR: error: invalid operand for instruction
1738 // CHECK-ERROR: sqshl v0.4h, v1.4s, #3
1740 // CHECK-ERROR: error: invalid operand for instruction
1741 // CHECK-ERROR: sqshl v0.2s, v1.2d, #3
1743 // CHECK-ERROR: error: expected integer in range [0, 7]
1744 // CHECK-ERROR: sqshl v0.16b, v1.16b, #8
1746 // CHECK-ERROR: error: expected integer in range [0, 15]
1747 // CHECK-ERROR: sqshl v0.8h, v1.8h, #16
1749 // CHECK-ERROR: error: expected integer in range [0, 31]
1750 // CHECK-ERROR: sqshl v0.4s, v1.4s, #32
1752 // CHECK-ERROR: error: expected integer in range [0, 63]
1753 // CHECK-ERROR: sqshl v0.2d, v1.2d, #64
1756 //------------------------------------------------------------------------------
1757 // Vector saturating shift left by immediate
1758 //------------------------------------------------------------------------------
1759 uqshl v0.8b, v1.8h, #3
1760 uqshl v0.4h, v1.4s, #3
1761 uqshl v0.2s, v1.2d, #3
1762 uqshl v0.16b, v1.16b, #8
1763 uqshl v0.8h, v1.8h, #16
1764 uqshl v0.4s, v1.4s, #32
1765 uqshl v0.2d, v1.2d, #64
1767 // CHECK-ERROR: error: invalid operand for instruction
1768 // CHECK-ERROR: uqshl v0.8b, v1.8h, #3
1770 // CHECK-ERROR: error: invalid operand for instruction
1771 // CHECK-ERROR: uqshl v0.4h, v1.4s, #3
1773 // CHECK-ERROR: error: invalid operand for instruction
1774 // CHECK-ERROR: uqshl v0.2s, v1.2d, #3
1776 // CHECK-ERROR: error: expected integer in range [0, 7]
1777 // CHECK-ERROR: uqshl v0.16b, v1.16b, #8
1779 // CHECK-ERROR: error: expected integer in range [0, 15]
1780 // CHECK-ERROR: uqshl v0.8h, v1.8h, #16
1782 // CHECK-ERROR: error: expected integer in range [0, 31]
1783 // CHECK-ERROR: uqshl v0.4s, v1.4s, #32
1785 // CHECK-ERROR: error: expected integer in range [0, 63]
1786 // CHECK-ERROR: uqshl v0.2d, v1.2d, #64
1789 //------------------------------------------------------------------------------
1790 // Vector shift right narrow by immediate
1791 //------------------------------------------------------------------------------
1792 shrn v0.8b, v1.8b, #3
1793 shrn v0.4h, v1.4h, #3
1794 shrn v0.2s, v1.2s, #3
1795 shrn2 v0.16b, v1.8h, #17
1796 shrn2 v0.8h, v1.4s, #33
1797 shrn2 v0.4s, v1.2d, #65
1799 // CHECK-ERROR: error: invalid operand for instruction
1800 // CHECK-ERROR: shrn v0.8b, v1.8b, #3
1802 // CHECK-ERROR: error: invalid operand for instruction
1803 // CHECK-ERROR: shrn v0.4h, v1.4h, #3
1805 // CHECK-ERROR: error: invalid operand for instruction
1806 // CHECK-ERROR: shrn v0.2s, v1.2s, #3
1808 // CHECK-ERROR: error: expected integer in range [1, 8]
1809 // CHECK-ERROR: shrn2 v0.16b, v1.8h, #17
1811 // CHECK-ERROR: error: expected integer in range [1, 16]
1812 // CHECK-ERROR: shrn2 v0.8h, v1.4s, #33
1814 // CHECK-ERROR: error: expected integer in range [1, 32]
1815 // CHECK-ERROR: shrn2 v0.4s, v1.2d, #65
1818 //------------------------------------------------------------------------------
1819 // Vector saturating shift right unsigned narrow by immediate
1820 //------------------------------------------------------------------------------
1821 sqshrun v0.8b, v1.8b, #3
1822 sqshrun v0.4h, v1.4h, #3
1823 sqshrun v0.2s, v1.2s, #3
1824 sqshrun2 v0.16b, v1.8h, #17
1825 sqshrun2 v0.8h, v1.4s, #33
1826 sqshrun2 v0.4s, v1.2d, #65
1828 // CHECK-ERROR: error: invalid operand for instruction
1829 // CHECK-ERROR: sqshrun v0.8b, v1.8b, #3
1831 // CHECK-ERROR: error: invalid operand for instruction
1832 // CHECK-ERROR: sqshrun v0.4h, v1.4h, #3
1834 // CHECK-ERROR: error: invalid operand for instruction
1835 // CHECK-ERROR: sqshrun v0.2s, v1.2s, #3
1837 // CHECK-ERROR: error: expected integer in range [1, 8]
1838 // CHECK-ERROR: sqshrun2 v0.16b, v1.8h, #17
1840 // CHECK-ERROR: error: expected integer in range [1, 16]
1841 // CHECK-ERROR: sqshrun2 v0.8h, v1.4s, #33
1843 // CHECK-ERROR: error: expected integer in range [1, 32]
1844 // CHECK-ERROR: sqshrun2 v0.4s, v1.2d, #65
1847 //------------------------------------------------------------------------------
1848 // Vector rounding shift right narrow by immediate
1849 //------------------------------------------------------------------------------
1850 rshrn v0.8b, v1.8b, #3
1851 rshrn v0.4h, v1.4h, #3
1852 rshrn v0.2s, v1.2s, #3
1853 rshrn2 v0.16b, v1.8h, #17
1854 rshrn2 v0.8h, v1.4s, #33
1855 rshrn2 v0.4s, v1.2d, #65
1857 // CHECK-ERROR: error: invalid operand for instruction
1858 // CHECK-ERROR: rshrn v0.8b, v1.8b, #3
1860 // CHECK-ERROR: error: invalid operand for instruction
1861 // CHECK-ERROR: rshrn v0.4h, v1.4h, #3
1863 // CHECK-ERROR: error: invalid operand for instruction
1864 // CHECK-ERROR: rshrn v0.2s, v1.2s, #3
1866 // CHECK-ERROR: error: expected integer in range [1, 8]
1867 // CHECK-ERROR: rshrn2 v0.16b, v1.8h, #17
1869 // CHECK-ERROR: error: expected integer in range [1, 16]
1870 // CHECK-ERROR: rshrn2 v0.8h, v1.4s, #33
1872 // CHECK-ERROR: error: expected integer in range [1, 32]
1873 // CHECK-ERROR: rshrn2 v0.4s, v1.2d, #65
1876 //------------------------------------------------------------------------------
1877 // Vector saturating shift right rounded unsigned narrow by immediate
1878 //------------------------------------------------------------------------------
1879 sqrshrun v0.8b, v1.8b, #3
1880 sqrshrun v0.4h, v1.4h, #3
1881 sqrshrun v0.2s, v1.2s, #3
1882 sqrshrun2 v0.16b, v1.8h, #17
1883 sqrshrun2 v0.8h, v1.4s, #33
1884 sqrshrun2 v0.4s, v1.2d, #65
1886 // CHECK-ERROR: error: invalid operand for instruction
1887 // CHECK-ERROR: sqrshrun v0.8b, v1.8b, #3
1889 // CHECK-ERROR: error: invalid operand for instruction
1890 // CHECK-ERROR: sqrshrun v0.4h, v1.4h, #3
1892 // CHECK-ERROR: error: invalid operand for instruction
1893 // CHECK-ERROR: sqrshrun v0.2s, v1.2s, #3
1895 // CHECK-ERROR: error: expected integer in range [1, 8]
1896 // CHECK-ERROR: sqrshrun2 v0.16b, v1.8h, #17
1898 // CHECK-ERROR: error: expected integer in range [1, 16]
1899 // CHECK-ERROR: sqrshrun2 v0.8h, v1.4s, #33
1901 // CHECK-ERROR: error: expected integer in range [1, 32]
1902 // CHECK-ERROR: sqrshrun2 v0.4s, v1.2d, #65
1905 //------------------------------------------------------------------------------
1906 // Vector saturating shift right narrow by immediate
1907 //------------------------------------------------------------------------------
1908 sqshrn v0.8b, v1.8b, #3
1909 sqshrn v0.4h, v1.4h, #3
1910 sqshrn v0.2s, v1.2s, #3
1911 sqshrn2 v0.16b, v1.8h, #17
1912 sqshrn2 v0.8h, v1.4s, #33
1913 sqshrn2 v0.4s, v1.2d, #65
1915 // CHECK-ERROR: error: invalid operand for instruction
1916 // CHECK-ERROR: sqshrn v0.8b, v1.8b, #3
1918 // CHECK-ERROR: error: invalid operand for instruction
1919 // CHECK-ERROR: sqshrn v0.4h, v1.4h, #3
1921 // CHECK-ERROR: error: invalid operand for instruction
1922 // CHECK-ERROR: sqshrn v0.2s, v1.2s, #3
1924 // CHECK-ERROR: error: expected integer in range [1, 8]
1925 // CHECK-ERROR: sqshrn2 v0.16b, v1.8h, #17
1927 // CHECK-ERROR: error: expected integer in range [1, 16]
1928 // CHECK-ERROR: sqshrn2 v0.8h, v1.4s, #33
1930 // CHECK-ERROR: error: expected integer in range [1, 32]
1931 // CHECK-ERROR: sqshrn2 v0.4s, v1.2d, #65
1934 //------------------------------------------------------------------------------
1935 // Vector saturating shift right narrow by immediate
1936 //------------------------------------------------------------------------------
1937 uqshrn v0.8b, v1.8b, #3
1938 uqshrn v0.4h, v1.4h, #3
1939 uqshrn v0.2s, v1.2s, #3
1940 uqshrn2 v0.16b, v1.8h, #17
1941 uqshrn2 v0.8h, v1.4s, #33
1942 uqshrn2 v0.4s, v1.2d, #65
1944 // CHECK-ERROR: error: invalid operand for instruction
1945 // CHECK-ERROR: uqshrn v0.8b, v1.8b, #3
1947 // CHECK-ERROR: error: invalid operand for instruction
1948 // CHECK-ERROR: uqshrn v0.4h, v1.4h, #3
1950 // CHECK-ERROR: error: invalid operand for instruction
1951 // CHECK-ERROR: uqshrn v0.2s, v1.2s, #3
1953 // CHECK-ERROR: error: expected integer in range [1, 8]
1954 // CHECK-ERROR: uqshrn2 v0.16b, v1.8h, #17
1956 // CHECK-ERROR: error: expected integer in range [1, 16]
1957 // CHECK-ERROR: uqshrn2 v0.8h, v1.4s, #33
1959 // CHECK-ERROR: error: expected integer in range [1, 32]
1960 // CHECK-ERROR: uqshrn2 v0.4s, v1.2d, #65
1963 //------------------------------------------------------------------------------
1964 // Vector saturating shift right rounded narrow by immediate
1965 //------------------------------------------------------------------------------
1966 sqrshrn v0.8b, v1.8b, #3
1967 sqrshrn v0.4h, v1.4h, #3
1968 sqrshrn v0.2s, v1.2s, #3
1969 sqrshrn2 v0.16b, v1.8h, #17
1970 sqrshrn2 v0.8h, v1.4s, #33
1971 sqrshrn2 v0.4s, v1.2d, #65
1973 // CHECK-ERROR: error: invalid operand for instruction
1974 // CHECK-ERROR: sqrshrn v0.8b, v1.8b, #3
1976 // CHECK-ERROR: error: invalid operand for instruction
1977 // CHECK-ERROR: sqrshrn v0.4h, v1.4h, #3
1979 // CHECK-ERROR: error: invalid operand for instruction
1980 // CHECK-ERROR: sqrshrn v0.2s, v1.2s, #3
1982 // CHECK-ERROR: error: expected integer in range [1, 8]
1983 // CHECK-ERROR: sqrshrn2 v0.16b, v1.8h, #17
1985 // CHECK-ERROR: error: expected integer in range [1, 16]
1986 // CHECK-ERROR: sqrshrn2 v0.8h, v1.4s, #33
1988 // CHECK-ERROR: error: expected integer in range [1, 32]
1989 // CHECK-ERROR: sqrshrn2 v0.4s, v1.2d, #65
1992 //------------------------------------------------------------------------------
1993 // Vector saturating shift right rounded narrow by immediate
1994 //------------------------------------------------------------------------------
1995 uqrshrn v0.8b, v1.8b, #3
1996 uqrshrn v0.4h, v1.4h, #3
1997 uqrshrn v0.2s, v1.2s, #3
1998 uqrshrn2 v0.16b, v1.8h, #17
1999 uqrshrn2 v0.8h, v1.4s, #33
2000 uqrshrn2 v0.4s, v1.2d, #65
2002 // CHECK-ERROR: error: invalid operand for instruction
2003 // CHECK-ERROR: uqrshrn v0.8b, v1.8b, #3
2005 // CHECK-ERROR: error: invalid operand for instruction
2006 // CHECK-ERROR: uqrshrn v0.4h, v1.4h, #3
2008 // CHECK-ERROR: error: invalid operand for instruction
2009 // CHECK-ERROR: uqrshrn v0.2s, v1.2s, #3
2011 // CHECK-ERROR: error: expected integer in range [1, 8]
2012 // CHECK-ERROR: uqrshrn2 v0.16b, v1.8h, #17
2014 // CHECK-ERROR: error: expected integer in range [1, 16]
2015 // CHECK-ERROR: uqrshrn2 v0.8h, v1.4s, #33
2017 // CHECK-ERROR: error: expected integer in range [1, 32]
2018 // CHECK-ERROR: uqrshrn2 v0.4s, v1.2d, #65
2021 //------------------------------------------------------------------------------
2022 // Fixed-point convert to floating-point
2023 //------------------------------------------------------------------------------
2024 scvtf v0.2s, v1.2d, #3
2025 scvtf v0.4s, v1.4h, #3
2026 scvtf v0.2d, v1.2s, #3
2027 ucvtf v0.2s, v1.2s, #33
2028 ucvtf v0.4s, v1.4s, #33
2029 ucvtf v0.2d, v1.2d, #65
2031 // CHECK-ERROR: error: invalid operand for instruction
2032 // CHECK-ERROR: scvtf v0.2s, v1.2d, #3
2034 // CHECK-ERROR: error: invalid operand for instruction
2035 // CHECK-ERROR: scvtf v0.4s, v1.4h, #3
2037 // CHECK-ERROR: error: invalid operand for instruction
2038 // CHECK-ERROR: scvtf v0.2d, v1.2s, #3
2040 // CHECK-ERROR: error: expected integer in range [1, 32]
2041 // CHECK-ERROR: ucvtf v0.2s, v1.2s, #33
2043 // CHECK-ERROR: error: expected integer in range [1, 32]
2044 // CHECK-ERROR: ucvtf v0.4s, v1.4s, #33
2046 // CHECK-ERROR: error: expected integer in range [1, 64]
2047 // CHECK-ERROR: ucvtf v0.2d, v1.2d, #65
2050 //------------------------------------------------------------------------------
2051 // Floating-point convert to fixed-point
2052 //------------------------------------------------------------------------------
2053 fcvtzs v0.2s, v1.2d, #3
2054 fcvtzs v0.4s, v1.4h, #3
2055 fcvtzs v0.2d, v1.2s, #3
2056 fcvtzu v0.2s, v1.2s, #33
2057 fcvtzu v0.4s, v1.4s, #33
2058 fcvtzu v0.2d, v1.2d, #65
2060 // CHECK-ERROR: error: invalid operand for instruction
2061 // CHECK-ERROR: fcvtzs v0.2s, v1.2d, #3
2063 // CHECK-ERROR: error: invalid operand for instruction
2064 // CHECK-ERROR: fcvtzs v0.4s, v1.4h, #3
2066 // CHECK-ERROR: error: invalid operand for instruction
2067 // CHECK-ERROR: fcvtzs v0.2d, v1.2s, #3
2069 // CHECK-ERROR: error: expected integer in range [1, 32]
2070 // CHECK-ERROR: fcvtzu v0.2s, v1.2s, #33
2072 // CHECK-ERROR: error: expected integer in range [1, 32]
2073 // CHECK-ERROR: fcvtzu v0.4s, v1.4s, #33
2075 // CHECK-ERROR: error: expected integer in range [1, 64]
2076 // CHECK-ERROR: fcvtzu v0.2d, v1.2d, #65
2079 //----------------------------------------------------------------------
2080 // Vector operation on 3 operands with different types
2081 //----------------------------------------------------------------------
2083 // Mismatched and invalid vector types
2084 saddl v0.8h, v1.8h, v2.8b
2085 saddl v0.4s, v1.4s, v2.4h
2086 saddl v0.2d, v1.2d, v2.2s
2088 // CHECK-ERROR: error: invalid operand for instruction
2089 // CHECK-ERROR: saddl v0.8h, v1.8h, v2.8b
2091 // CHECK-ERROR: error: invalid operand for instruction
2092 // CHECK-ERROR: saddl v0.4s, v1.4s, v2.4h
2094 // CHECK-ERROR: error: invalid operand for instruction
2095 // CHECK-ERROR: saddl v0.2d, v1.2d, v2.2s
2098 saddl2 v0.4s, v1.8s, v2.8h
2099 saddl2 v0.8h, v1.16h, v2.16b
2100 saddl2 v0.2d, v1.4d, v2.4s
2102 // CHECK-ERROR: error: invalid operand for instruction
2103 // CHECK-ERROR: saddl2 v0.4s, v1.8s, v2.8h
2105 // CHECK-ERROR: error: invalid operand for instruction
2106 // CHECK-ERROR: saddl2 v0.8h, v1.16h, v2.16b
2108 // CHECK-ERROR: error: invalid operand for instruction
2109 // CHECK-ERROR: saddl2 v0.2d, v1.4d, v2.4s
2112 uaddl v0.8h, v1.8h, v2.8b
2113 uaddl v0.4s, v1.4s, v2.4h
2114 uaddl v0.2d, v1.2d, v2.2s
2116 // CHECK-ERROR: error: invalid operand for instruction
2117 // CHECK-ERROR: uaddl v0.8h, v1.8h, v2.8b
2119 // CHECK-ERROR: error: invalid operand for instruction
2120 // CHECK-ERROR: uaddl v0.4s, v1.4s, v2.4h
2122 // CHECK-ERROR: error: invalid operand for instruction
2123 // CHECK-ERROR: uaddl v0.2d, v1.2d, v2.2s
2126 uaddl2 v0.8h, v1.16h, v2.16b
2127 uaddl2 v0.4s, v1.8s, v2.8h
2128 uaddl2 v0.2d, v1.4d, v2.4s
2130 // CHECK-ERROR: error: invalid operand for instruction
2131 // CHECK-ERROR: uaddl2 v0.8h, v1.16h, v2.16b
2133 // CHECK-ERROR: error: invalid operand for instruction
2134 // CHECK-ERROR: uaddl2 v0.4s, v1.8s, v2.8h
2136 // CHECK-ERROR: error: invalid operand for instruction
2137 // CHECK-ERROR: uaddl2 v0.2d, v1.4d, v2.4s
2140 ssubl v0.8h, v1.8h, v2.8b
2141 ssubl v0.4s, v1.4s, v2.4h
2142 ssubl v0.2d, v1.2d, v2.2s
2144 // CHECK-ERROR: error: invalid operand for instruction
2145 // CHECK-ERROR: ssubl v0.8h, v1.8h, v2.8b
2147 // CHECK-ERROR: error: invalid operand for instruction
2148 // CHECK-ERROR: ssubl v0.4s, v1.4s, v2.4h
2150 // CHECK-ERROR: error: invalid operand for instruction
2151 // CHECK-ERROR: ssubl v0.2d, v1.2d, v2.2s
2154 ssubl2 v0.8h, v1.16h, v2.16b
2155 ssubl2 v0.4s, v1.8s, v2.8h
2156 ssubl2 v0.2d, v1.4d, v2.4s
2158 // CHECK-ERROR: error: invalid operand for instruction
2159 // CHECK-ERROR: ssubl2 v0.8h, v1.16h, v2.16b
2161 // CHECK-ERROR: error: invalid operand for instruction
2162 // CHECK-ERROR: ssubl2 v0.4s, v1.8s, v2.8h
2164 // CHECK-ERROR: error: invalid operand for instruction
2165 // CHECK-ERROR: ssubl2 v0.2d, v1.4d, v2.4s
2168 usubl v0.8h, v1.8h, v2.8b
2169 usubl v0.4s, v1.4s, v2.4h
2170 usubl v0.2d, v1.2d, v2.2s
2172 // CHECK-ERROR: error: invalid operand for instruction
2173 // CHECK-ERROR: usubl v0.8h, v1.8h, v2.8b
2175 // CHECK-ERROR: error: invalid operand for instruction
2176 // CHECK-ERROR: usubl v0.4s, v1.4s, v2.4h
2178 // CHECK-ERROR: error: invalid operand for instruction
2179 // CHECK-ERROR: usubl v0.2d, v1.2d, v2.2s
2182 usubl2 v0.8h, v1.16h, v2.16b
2183 usubl2 v0.4s, v1.8s, v2.8h
2184 usubl2 v0.2d, v1.4d, v2.4s
2186 // CHECK-ERROR: error: invalid operand for instruction
2187 // CHECK-ERROR: usubl2 v0.8h, v1.16h, v2.16b
2189 // CHECK-ERROR: error: invalid operand for instruction
2190 // CHECK-ERROR: usubl2 v0.4s, v1.8s, v2.8h
2192 // CHECK-ERROR: error: invalid operand for instruction
2193 // CHECK-ERROR: usubl2 v0.2d, v1.4d, v2.4s
2196 sabal v0.8h, v1.8h, v2.8b
2197 sabal v0.4s, v1.4s, v2.4h
2198 sabal v0.2d, v1.2d, v2.2s
2200 // CHECK-ERROR: error: invalid operand for instruction
2201 // CHECK-ERROR: sabal v0.8h, v1.8h, v2.8b
2203 // CHECK-ERROR: error: invalid operand for instruction
2204 // CHECK-ERROR: sabal v0.4s, v1.4s, v2.4h
2206 // CHECK-ERROR: error: invalid operand for instruction
2207 // CHECK-ERROR: sabal v0.2d, v1.2d, v2.2s
2210 sabal2 v0.8h, v1.16h, v2.16b
2211 sabal2 v0.4s, v1.8s, v2.8h
2212 sabal2 v0.2d, v1.4d, v2.4s
2214 // CHECK-ERROR: error: invalid operand for instruction
2215 // CHECK-ERROR: sabal2 v0.8h, v1.16h, v2.16b
2217 // CHECK-ERROR: error: invalid operand for instruction
2218 // CHECK-ERROR: sabal2 v0.4s, v1.8s, v2.8h
2220 // CHECK-ERROR: error: invalid operand for instruction
2221 // CHECK-ERROR: sabal2 v0.2d, v1.4d, v2.4s
2224 uabal v0.8h, v1.8h, v2.8b
2225 uabal v0.4s, v1.4s, v2.4h
2226 uabal v0.2d, v1.2d, v2.2s
2228 // CHECK-ERROR: error: invalid operand for instruction
2229 // CHECK-ERROR: uabal v0.8h, v1.8h, v2.8b
2231 // CHECK-ERROR: error: invalid operand for instruction
2232 // CHECK-ERROR: uabal v0.4s, v1.4s, v2.4h
2234 // CHECK-ERROR: error: invalid operand for instruction
2235 // CHECK-ERROR: uabal v0.2d, v1.2d, v2.2s
2238 uabal2 v0.8h, v1.16h, v2.16b
2239 uabal2 v0.4s, v1.8s, v2.8h
2240 uabal2 v0.2d, v1.4d, v2.4s
2242 // CHECK-ERROR: error: invalid operand for instruction
2243 // CHECK-ERROR: uabal2 v0.8h, v1.16h, v2.16b
2245 // CHECK-ERROR: error: invalid operand for instruction
2246 // CHECK-ERROR: uabal2 v0.4s, v1.8s, v2.8h
2248 // CHECK-ERROR: error: invalid operand for instruction
2249 // CHECK-ERROR: uabal2 v0.2d, v1.4d, v2.4s
2252 sabdl v0.8h, v1.8h, v2.8b
2253 sabdl v0.4s, v1.4s, v2.4h
2254 sabdl v0.2d, v1.2d, v2.2s
2256 // CHECK-ERROR: error: invalid operand for instruction
2257 // CHECK-ERROR: sabdl v0.8h, v1.8h, v2.8b
2259 // CHECK-ERROR: error: invalid operand for instruction
2260 // CHECK-ERROR: sabdl v0.4s, v1.4s, v2.4h
2262 // CHECK-ERROR: error: invalid operand for instruction
2263 // CHECK-ERROR: sabdl v0.2d, v1.2d, v2.2s
2266 sabdl2 v0.8h, v1.16h, v2.16b
2267 sabdl2 v0.4s, v1.8s, v2.8h
2268 sabdl2 v0.2d, v1.4d, v2.4s
2270 // CHECK-ERROR: error: invalid operand for instruction
2271 // CHECK-ERROR: sabdl2 v0.8h, v1.16h, v2.16b
2273 // CHECK-ERROR: error: invalid operand for instruction
2274 // CHECK-ERROR: sabdl2 v0.4s, v1.8s, v2.8h
2276 // CHECK-ERROR: error: invalid operand for instruction
2277 // CHECK-ERROR: sabdl2 v0.2d, v1.4d, v2.4s
2280 uabdl v0.8h, v1.8h, v2.8b
2281 uabdl v0.4s, v1.4s, v2.4h
2282 uabdl v0.2d, v1.2d, v2.2s
2284 // CHECK-ERROR: error: invalid operand for instruction
2285 // CHECK-ERROR: uabdl v0.8h, v1.8h, v2.8b
2287 // CHECK-ERROR: error: invalid operand for instruction
2288 // CHECK-ERROR: uabdl v0.4s, v1.4s, v2.4h
2290 // CHECK-ERROR: error: invalid operand for instruction
2291 // CHECK-ERROR: uabdl v0.2d, v1.2d, v2.2s
2294 uabdl2 v0.8h, v1.16h, v2.16b
2295 uabdl2 v0.4s, v1.8s, v2.8h
2296 uabdl2 v0.2d, v1.4d, v2.4s
2298 // CHECK-ERROR: error: invalid operand for instruction
2299 // CHECK-ERROR: uabdl2 v0.8h, v1.16h, v2.16b
2301 // CHECK-ERROR: error: invalid operand for instruction
2302 // CHECK-ERROR: uabdl2 v0.4s, v1.8s, v2.8h
2304 // CHECK-ERROR: error: invalid operand for instruction
2305 // CHECK-ERROR: uabdl2 v0.2d, v1.4d, v2.4s
2308 smlal v0.8h, v1.8h, v2.8b
2309 smlal v0.4s, v1.4s, v2.4h
2310 smlal v0.2d, v1.2d, v2.2s
2312 // CHECK-ERROR: error: invalid operand for instruction
2313 // CHECK-ERROR: smlal v0.8h, v1.8h, v2.8b
2315 // CHECK-ERROR: error: invalid operand for instruction
2316 // CHECK-ERROR: smlal v0.4s, v1.4s, v2.4h
2318 // CHECK-ERROR: error: invalid operand for instruction
2319 // CHECK-ERROR: smlal v0.2d, v1.2d, v2.2s
2322 smlal2 v0.8h, v1.16h, v2.16b
2323 smlal2 v0.4s, v1.8s, v2.8h
2324 smlal2 v0.2d, v1.4d, v2.4s
2326 // CHECK-ERROR: error: invalid operand for instruction
2327 // CHECK-ERROR: smlal2 v0.8h, v1.16h, v2.16b
2329 // CHECK-ERROR: error: invalid operand for instruction
2330 // CHECK-ERROR: smlal2 v0.4s, v1.8s, v2.8h
2332 // CHECK-ERROR: error: invalid operand for instruction
2333 // CHECK-ERROR: smlal2 v0.2d, v1.4d, v2.4s
2336 umlal v0.8h, v1.8h, v2.8b
2337 umlal v0.4s, v1.4s, v2.4h
2338 umlal v0.2d, v1.2d, v2.2s
2340 // CHECK-ERROR: error: invalid operand for instruction
2341 // CHECK-ERROR: umlal v0.8h, v1.8h, v2.8b
2343 // CHECK-ERROR: error: invalid operand for instruction
2344 // CHECK-ERROR: umlal v0.4s, v1.4s, v2.4h
2346 // CHECK-ERROR: error: invalid operand for instruction
2347 // CHECK-ERROR: umlal v0.2d, v1.2d, v2.2s
2350 umlal2 v0.8h, v1.16h, v2.16b
2351 umlal2 v0.4s, v1.8s, v2.8h
2352 umlal2 v0.2d, v1.4d, v2.4s
2354 // CHECK-ERROR: error: invalid operand for instruction
2355 // CHECK-ERROR: umlal2 v0.8h, v1.16h, v2.16b
2357 // CHECK-ERROR: error: invalid operand for instruction
2358 // CHECK-ERROR: umlal2 v0.4s, v1.8s, v2.8h
2360 // CHECK-ERROR: error: invalid operand for instruction
2361 // CHECK-ERROR: umlal2 v0.2d, v1.4d, v2.4s
2364 smlsl v0.8h, v1.8h, v2.8b
2365 smlsl v0.4s, v1.4s, v2.4h
2366 smlsl v0.2d, v1.2d, v2.2s
2368 // CHECK-ERROR: error: invalid operand for instruction
2369 // CHECK-ERROR: smlsl v0.8h, v1.8h, v2.8b
2371 // CHECK-ERROR: error: invalid operand for instruction
2372 // CHECK-ERROR: smlsl v0.4s, v1.4s, v2.4h
2374 // CHECK-ERROR: error: invalid operand for instruction
2375 // CHECK-ERROR: smlsl v0.2d, v1.2d, v2.2s
2378 smlsl2 v0.8h, v1.16h, v2.16b
2379 smlsl2 v0.4s, v1.8s, v2.8h
2380 smlsl2 v0.2d, v1.4d, v2.4s
2382 // CHECK-ERROR: error: invalid operand for instruction
2383 // CHECK-ERROR: smlsl2 v0.8h, v1.16h, v2.16b
2385 // CHECK-ERROR: error: invalid operand for instruction
2386 // CHECK-ERROR: smlsl2 v0.4s, v1.8s, v2.8h
2388 // CHECK-ERROR: error: invalid operand for instruction
2389 // CHECK-ERROR: smlsl2 v0.2d, v1.4d, v2.4s
2392 umlsl v0.8h, v1.8h, v2.8b
2393 umlsl v0.4s, v1.4s, v2.4h
2394 umlsl v0.2d, v1.2d, v2.2s
2396 // CHECK-ERROR: error: invalid operand for instruction
2397 // CHECK-ERROR: umlsl v0.8h, v1.8h, v2.8b
2399 // CHECK-ERROR: error: invalid operand for instruction
2400 // CHECK-ERROR: umlsl v0.4s, v1.4s, v2.4h
2402 // CHECK-ERROR: error: invalid operand for instruction
2403 // CHECK-ERROR: umlsl v0.2d, v1.2d, v2.2s
2406 umlsl2 v0.8h, v1.16h, v2.16b
2407 umlsl2 v0.4s, v1.8s, v2.8h
2408 umlsl2 v0.2d, v1.4d, v2.4s
2410 // CHECK-ERROR: error: invalid operand for instruction
2411 // CHECK-ERROR: umlsl2 v0.8h, v1.16h, v2.16b
2413 // CHECK-ERROR: error: invalid operand for instruction
2414 // CHECK-ERROR: umlsl2 v0.4s, v1.8s, v2.8h
2416 // CHECK-ERROR: error: invalid operand for instruction
2417 // CHECK-ERROR: umlsl2 v0.2d, v1.4d, v2.4s
2420 smull v0.8h, v1.8h, v2.8b
2421 smull v0.4s, v1.4s, v2.4h
2422 smull v0.2d, v1.2d, v2.2s
2424 // CHECK-ERROR: error: invalid operand for instruction
2425 // CHECK-ERROR: smull v0.8h, v1.8h, v2.8b
2427 // CHECK-ERROR: error: invalid operand for instruction
2428 // CHECK-ERROR: smull v0.4s, v1.4s, v2.4h
2430 // CHECK-ERROR: error: invalid operand for instruction
2431 // CHECK-ERROR: smull v0.2d, v1.2d, v2.2s
2434 smull2 v0.8h, v1.16h, v2.16b
2435 smull2 v0.4s, v1.8s, v2.8h
2436 smull2 v0.2d, v1.4d, v2.4s
2438 // CHECK-ERROR: error: invalid operand for instruction
2439 // CHECK-ERROR: smull2 v0.8h, v1.16h, v2.16b
2441 // CHECK-ERROR: error: invalid operand for instruction
2442 // CHECK-ERROR: smull2 v0.4s, v1.8s, v2.8h
2444 // CHECK-ERROR: error: invalid operand for instruction
2445 // CHECK-ERROR: smull2 v0.2d, v1.4d, v2.4s
2448 umull v0.8h, v1.8h, v2.8b
2449 umull v0.4s, v1.4s, v2.4h
2450 umull v0.2d, v1.2d, v2.2s
2452 // CHECK-ERROR: error: invalid operand for instruction
2453 // CHECK-ERROR: umull v0.8h, v1.8h, v2.8b
2455 // CHECK-ERROR: error: invalid operand for instruction
2456 // CHECK-ERROR: umull v0.4s, v1.4s, v2.4h
2458 // CHECK-ERROR: error: invalid operand for instruction
2459 // CHECK-ERROR: umull v0.2d, v1.2d, v2.2s
2462 umull2 v0.8h, v1.16h, v2.16b
2463 umull2 v0.4s, v1.8s, v2.8h
2464 umull2 v0.2d, v1.4d, v2.4s
2466 // CHECK-ERROR: error: invalid operand for instruction
2467 // CHECK-ERROR: umull2 v0.8h, v1.16h, v2.16b
2469 // CHECK-ERROR: error: invalid operand for instruction
2470 // CHECK-ERROR: umull2 v0.4s, v1.8s, v2.8h
2472 // CHECK-ERROR: error: invalid operand for instruction
2473 // CHECK-ERROR: umull2 v0.2d, v1.4d, v2.4s
2476 //------------------------------------------------------------------------------
2478 //------------------------------------------------------------------------------
2480 sqdmlal v0.4s, v1.4s, v2.4h
2481 sqdmlal v0.2d, v1.2d, v2.2s
2483 // CHECK-ERROR: error: invalid operand for instruction
2484 // CHECK-ERROR: sqdmlal v0.4s, v1.4s, v2.4h
2486 // CHECK-ERROR: error: invalid operand for instruction
2487 // CHECK-ERROR: sqdmlal v0.2d, v1.2d, v2.2s
2490 sqdmlal2 v0.4s, v1.8s, v2.8h
2491 sqdmlal2 v0.2d, v1.4d, v2.4s
2493 // CHECK-ERROR: error: invalid operand for instruction
2494 // CHECK-ERROR: sqdmlal2 v0.4s, v1.8s, v2.8h
2496 // CHECK-ERROR: error: invalid operand for instruction
2497 // CHECK-ERROR: sqdmlal2 v0.2d, v1.4d, v2.4s
2500 // Mismatched vector types
2501 sqdmlal v0.8h, v1.8b, v2.8b
2502 sqdmlal2 v0.8h, v1.16b, v2.16b
2504 // CHECK-ERROR: error: invalid operand for instruction
2505 // CHECK-ERROR: sqdmlal v0.8h, v1.8b, v2.8b
2507 // CHECK-ERROR: error: invalid operand for instruction
2508 // CHECK-ERROR: sqdmlal2 v0.8h, v1.16b, v2.16b
2511 sqdmlsl v0.4s, v1.4s, v2.4h
2512 sqdmlsl v0.2d, v1.2d, v2.2s
2514 // CHECK-ERROR: error: invalid operand for instruction
2515 // CHECK-ERROR: sqdmlsl v0.4s, v1.4s, v2.4h
2517 // CHECK-ERROR: error: invalid operand for instruction
2518 // CHECK-ERROR: sqdmlsl v0.2d, v1.2d, v2.2s
2521 sqdmlsl2 v0.4s, v1.8s, v2.8h
2522 sqdmlsl2 v0.2d, v1.4d, v2.4s
2524 // CHECK-ERROR: error: invalid operand for instruction
2525 // CHECK-ERROR: sqdmlsl2 v0.4s, v1.8s, v2.8h
2527 // CHECK-ERROR: error: invalid operand for instruction
2528 // CHECK-ERROR: sqdmlsl2 v0.2d, v1.4d, v2.4s
2531 // Mismatched vector types
2532 sqdmlsl v0.8h, v1.8b, v2.8b
2533 sqdmlsl2 v0.8h, v1.16b, v2.16b
2535 // CHECK-ERROR: error: invalid operand for instruction
2536 // CHECK-ERROR: sqdmlsl v0.8h, v1.8b, v2.8b
2538 // CHECK-ERROR: error: invalid operand for instruction
2539 // CHECK-ERROR: sqdmlsl2 v0.8h, v1.16b, v2.16b
2543 sqdmull v0.4s, v1.4s, v2.4h
2544 sqdmull v0.2d, v1.2d, v2.2s
2546 // CHECK-ERROR: error: invalid operand for instruction
2547 // CHECK-ERROR: sqdmull v0.4s, v1.4s, v2.4h
2549 // CHECK-ERROR: error: invalid operand for instruction
2550 // CHECK-ERROR: sqdmull v0.2d, v1.2d, v2.2s
2553 sqdmull2 v0.4s, v1.8s, v2.8h
2554 sqdmull2 v0.2d, v1.4d, v2.4s
2556 // CHECK-ERROR: error: invalid operand for instruction
2557 // CHECK-ERROR: sqdmull2 v0.4s, v1.8s, v2.8h
2559 // CHECK-ERROR: error: invalid operand for instruction
2560 // CHECK-ERROR: sqdmull2 v0.2d, v1.4d, v2.4s
2563 // Mismatched vector types
2564 sqdmull v0.8h, v1.8b, v2.8b
2565 sqdmull2 v0.8h, v1.16b, v2.16b
2567 // CHECK-ERROR: error: invalid operand for instruction
2568 // CHECK-ERROR: sqdmull v0.8h, v1.8b, v2.8b
2570 // CHECK-ERROR: error: invalid operand for instruction
2571 // CHECK-ERROR: sqdmull2 v0.8h, v1.16b, v2.16b
2575 //------------------------------------------------------------------------------
2577 //------------------------------------------------------------------------------
2579 pmull v0.8h, v1.8h, v2.8b
2581 // CHECK-ERROR: error: invalid operand for instruction
2582 // CHECK-ERROR: pmull v0.8h, v1.8h, v2.8b
2585 pmull v0.1q, v1.2d, v2.2d
2587 // CHECK-ERROR: error: invalid operand for instruction
2588 // CHECK-ERROR: pmull v0.1q, v1.2d, v2.2d
2591 // Mismatched vector types
2592 pmull v0.4s, v1.4h, v2.4h
2593 pmull v0.2d, v1.2s, v2.2s
2595 // CHECK-ERROR: error: invalid operand for instruction
2596 // CHECK-ERROR: pmull v0.4s, v1.4h, v2.4h
2598 // CHECK-ERROR: error: invalid operand for instruction
2599 // CHECK-ERROR: pmull v0.2d, v1.2s, v2.2s
2603 pmull2 v0.8h, v1.16h, v2.16b
2605 // CHECK-ERROR: error: invalid operand for instruction
2606 // CHECK-ERROR: pmull2 v0.8h, v1.16h, v2.16b
2609 pmull2 v0.q, v1.2d, v2.2d
2611 // CHECK-ERROR: error: invalid operand for instruction
2612 // CHECK-ERROR: pmull2 v0.q, v1.2d, v2.2d
2615 // Mismatched vector types
2616 pmull2 v0.4s, v1.8h v2.8h
2617 pmull2 v0.2d, v1.4s, v2.4s
2619 // CHECK-ERROR: error: expected comma before next operand
2620 // CHECK-ERROR: pmull2 v0.4s, v1.8h v2.8h
2622 // CHECK-ERROR: error: invalid operand for instruction
2623 // CHECK-ERROR: pmull2 v0.2d, v1.4s, v2.4s
2626 //------------------------------------------------------------------------------
2628 //------------------------------------------------------------------------------
2630 saddw v0.8h, v1.8h, v2.8h
2631 saddw v0.4s, v1.4s, v2.4s
2632 saddw v0.2d, v1.2d, v2.2d
2634 // CHECK-ERROR: error: invalid operand for instruction
2635 // CHECK-ERROR: saddw v0.8h, v1.8h, v2.8h
2637 // CHECK-ERROR: error: invalid operand for instruction
2638 // CHECK-ERROR: saddw v0.4s, v1.4s, v2.4s
2640 // CHECK-ERROR: error: invalid operand for instruction
2641 // CHECK-ERROR: saddw v0.2d, v1.2d, v2.2d
2644 saddw2 v0.8h, v1.8h, v2.16h
2645 saddw2 v0.4s, v1.4s, v2.8s
2646 saddw2 v0.2d, v1.2d, v2.4d
2648 // CHECK-ERROR: error: invalid operand for instruction
2649 // CHECK-ERROR: saddw2 v0.8h, v1.8h, v2.16h
2651 // CHECK-ERROR: error: invalid operand for instruction
2652 // CHECK-ERROR: saddw2 v0.4s, v1.4s, v2.8s
2654 // CHECK-ERROR: error: invalid operand for instruction
2655 // CHECK-ERROR: saddw2 v0.2d, v1.2d, v2.4d
2658 uaddw v0.8h, v1.8h, v2.8h
2659 uaddw v0.4s, v1.4s, v2.4s
2660 uaddw v0.2d, v1.2d, v2.2d
2662 // CHECK-ERROR: error: invalid operand for instruction
2663 // CHECK-ERROR: uaddw v0.8h, v1.8h, v2.8h
2665 // CHECK-ERROR: error: invalid operand for instruction
2666 // CHECK-ERROR: uaddw v0.4s, v1.4s, v2.4s
2668 // CHECK-ERROR: error: invalid operand for instruction
2669 // CHECK-ERROR: uaddw v0.2d, v1.2d, v2.2d
2672 uaddw2 v0.8h, v1.8h, v2.16h
2673 uaddw2 v0.4s, v1.4s, v2.8s
2674 uaddw2 v0.2d, v1.2d, v2.4d
2676 // CHECK-ERROR: error: invalid operand for instruction
2677 // CHECK-ERROR: uaddw2 v0.8h, v1.8h, v2.16h
2679 // CHECK-ERROR: error: invalid operand for instruction
2680 // CHECK-ERROR: uaddw2 v0.4s, v1.4s, v2.8s
2682 // CHECK-ERROR: error: invalid operand for instruction
2683 // CHECK-ERROR: uaddw2 v0.2d, v1.2d, v2.4d
2686 ssubw v0.8h, v1.8h, v2.8h
2687 ssubw v0.4s, v1.4s, v2.4s
2688 ssubw v0.2d, v1.2d, v2.2d
2690 // CHECK-ERROR: error: invalid operand for instruction
2691 // CHECK-ERROR: ssubw v0.8h, v1.8h, v2.8h
2693 // CHECK-ERROR: error: invalid operand for instruction
2694 // CHECK-ERROR: ssubw v0.4s, v1.4s, v2.4s
2696 // CHECK-ERROR: error: invalid operand for instruction
2697 // CHECK-ERROR: ssubw v0.2d, v1.2d, v2.2d
2700 ssubw2 v0.8h, v1.8h, v2.16h
2701 ssubw2 v0.4s, v1.4s, v2.8s
2702 ssubw2 v0.2d, v1.2d, v2.4d
2704 // CHECK-ERROR: error: invalid operand for instruction
2705 // CHECK-ERROR: ssubw2 v0.8h, v1.8h, v2.16h
2707 // CHECK-ERROR: error: invalid operand for instruction
2708 // CHECK-ERROR: ssubw2 v0.4s, v1.4s, v2.8s
2710 // CHECK-ERROR: error: invalid operand for instruction
2711 // CHECK-ERROR: ssubw2 v0.2d, v1.2d, v2.4d
2714 usubw v0.8h, v1.8h, v2.8h
2715 usubw v0.4s, v1.4s, v2.4s
2716 usubw v0.2d, v1.2d, v2.2d
2718 // CHECK-ERROR: error: invalid operand for instruction
2719 // CHECK-ERROR: usubw v0.8h, v1.8h, v2.8h
2721 // CHECK-ERROR: error: invalid operand for instruction
2722 // CHECK-ERROR: usubw v0.4s, v1.4s, v2.4s
2724 // CHECK-ERROR: error: invalid operand for instruction
2725 // CHECK-ERROR: usubw v0.2d, v1.2d, v2.2d
2728 usubw2 v0.8h, v1.8h, v2.16h
2729 usubw2 v0.4s, v1.4s, v2.8s
2730 usubw2 v0.2d, v1.2d, v2.4d
2732 // CHECK-ERROR: error: invalid operand for instruction
2733 // CHECK-ERROR: usubw2 v0.8h, v1.8h, v2.16h
2735 // CHECK-ERROR: error: invalid operand for instruction
2736 // CHECK-ERROR: usubw2 v0.4s, v1.4s, v2.8s
2738 // CHECK-ERROR: error: invalid operand for instruction
2739 // CHECK-ERROR: usubw2 v0.2d, v1.2d, v2.4d
2742 //------------------------------------------------------------------------------
2744 //------------------------------------------------------------------------------
2746 addhn v0.8b, v1.8h, v2.8d
2747 addhn v0.4h, v1.4s, v2.4h
2748 addhn v0.2s, v1.2d, v2.2s
2750 // CHECK-ERROR: error: invalid operand for instruction
2751 // CHECK-ERROR: addhn v0.8b, v1.8h, v2.8d
2753 // CHECK-ERROR: error: invalid operand for instruction
2754 // CHECK-ERROR: addhn v0.4h, v1.4s, v2.4h
2756 // CHECK-ERROR: error: invalid operand for instruction
2757 // CHECK-ERROR: addhn v0.2s, v1.2d, v2.2s
2760 addhn2 v0.16b, v1.8h, v2.8b
2761 addhn2 v0.8h, v1.4s, v2.4h
2762 addhn2 v0.4s, v1.2d, v2.2s
2764 // CHECK-ERROR: error: invalid operand for instruction
2765 // CHECK-ERROR: addhn2 v0.16b, v1.8h, v2.8b
2767 // CHECK-ERROR: error: invalid operand for instruction
2768 // CHECK-ERROR: addhn2 v0.8h, v1.4s, v2.4h
2770 // CHECK-ERROR: error: invalid operand for instruction
2771 // CHECK-ERROR: addhn2 v0.4s, v1.2d, v2.2s
2774 raddhn v0.8b, v1.8h, v2.8b
2775 raddhn v0.4h, v1.4s, v2.4h
2776 raddhn v0.2s, v1.2d, v2.2s
2778 // CHECK-ERROR: error: invalid operand for instruction
2779 // CHECK-ERROR: raddhn v0.8b, v1.8h, v2.8b
2781 // CHECK-ERROR: error: invalid operand for instruction
2782 // CHECK-ERROR: raddhn v0.4h, v1.4s, v2.4h
2784 // CHECK-ERROR: error: invalid operand for instruction
2785 // CHECK-ERROR: raddhn v0.2s, v1.2d, v2.2s
2788 raddhn2 v0.16b, v1.8h, v2.8b
2789 raddhn2 v0.8h, v1.4s, v2.4h
2790 raddhn2 v0.4s, v1.2d, v2.2s
2792 // CHECK-ERROR: error: invalid operand for instruction
2793 // CHECK-ERROR: raddhn2 v0.16b, v1.8h, v2.8b
2795 // CHECK-ERROR: error: invalid operand for instruction
2796 // CHECK-ERROR: raddhn2 v0.8h, v1.4s, v2.4h
2798 // CHECK-ERROR: error: invalid operand for instruction
2799 // CHECK-ERROR: raddhn2 v0.4s, v1.2d, v2.2s
2802 rsubhn v0.8b, v1.8h, v2.8b
2803 rsubhn v0.4h, v1.4s, v2.4h
2804 rsubhn v0.2s, v1.2d, v2.2s
2806 // CHECK-ERROR: error: invalid operand for instruction
2807 // CHECK-ERROR: rsubhn v0.8b, v1.8h, v2.8b
2809 // CHECK-ERROR: error: invalid operand for instruction
2810 // CHECK-ERROR: rsubhn v0.4h, v1.4s, v2.4h
2812 // CHECK-ERROR: error: invalid operand for instruction
2813 // CHECK-ERROR: rsubhn v0.2s, v1.2d, v2.2s
2816 rsubhn2 v0.16b, v1.8h, v2.8b
2817 rsubhn2 v0.8h, v1.4s, v2.4h
2818 rsubhn2 v0.4s, v1.2d, v2.2s
2820 // CHECK-ERROR: error: invalid operand for instruction
2821 // CHECK-ERROR: rsubhn2 v0.16b, v1.8h, v2.8b
2823 // CHECK-ERROR: error: invalid operand for instruction
2824 // CHECK-ERROR: rsubhn2 v0.8h, v1.4s, v2.4h
2826 // CHECK-ERROR: error: invalid operand for instruction
2827 // CHECK-ERROR: rsubhn2 v0.4s, v1.2d, v2.2s
2830 //----------------------------------------------------------------------
2831 // Scalar Reduce Add Pairwise (Integer)
2832 //----------------------------------------------------------------------
2833 // invalid vector types
2837 // CHECK-ERROR: error: invalid operand for instruction
2838 // CHECK-ERROR: addp s0, d1.2d
2840 // CHECK-ERROR: error: invalid operand for instruction
2841 // CHECK-ERROR: addp d0, d1.2s
2844 //----------------------------------------------------------------------
2845 // Scalar Reduce Add Pairwise (Floating Point)
2846 //----------------------------------------------------------------------
2847 // invalid vector types
2851 // CHECK-ERROR: error: invalid operand for instruction
2852 // CHECK-ERROR: faddp s0, d1.2d
2854 // CHECK-ERROR: error: invalid operand for instruction
2855 // CHECK-ERROR: faddp d0, d1.2s
2858 //----------------------------------------------------------------------
2859 // Scalar Reduce Maximum Pairwise (Floating Point)
2860 //----------------------------------------------------------------------
2861 // mismatched and invalid vector types
2866 // CHECK-ERROR: error: invalid operand for instruction
2867 // CHECK-ERROR: fmaxp s0, v1.2d
2869 // CHECK-ERROR: error: invalid operand for instruction
2870 // CHECK-ERROR: fmaxp d31, v2.2s
2872 // CHECK-ERROR: error: invalid operand for instruction
2873 // CHECK-ERROR: fmaxp h3, v2.2s
2877 //----------------------------------------------------------------------
2878 // Scalar Reduce Minimum Pairwise (Floating Point)
2879 //----------------------------------------------------------------------
2880 // mismatched and invalid vector types
2885 // CHECK-ERROR: error: invalid operand for instruction
2886 // CHECK-ERROR: fminp s0, v1.4h
2888 // CHECK-ERROR: error: invalid operand for instruction
2889 // CHECK-ERROR: fminp d31, v2.8h
2891 // CHECK-ERROR: error: invalid operand for instruction
2892 // CHECK-ERROR: fminp b3, v2.2s
2896 //----------------------------------------------------------------------
2897 // Scalar Reduce maxNum Pairwise (Floating Point)
2898 //----------------------------------------------------------------------
2899 // mismatched and invalid vector types
2902 fmaxnmp v1.2s, v2.2s
2904 // CHECK-ERROR: error: invalid operand for instruction
2905 // CHECK-ERROR: fmaxnmp s0, v1.8b
2907 // CHECK-ERROR: error: invalid operand for instruction
2908 // CHECK-ERROR: fmaxnmp d31, v2.16b
2910 // CHECK-ERROR: error: too few operands for instruction
2911 // CHECK-ERROR: fmaxnmp v1.2s, v2.2s
2914 //----------------------------------------------------------------------
2915 // Scalar Reduce minNum Pairwise (Floating Point)
2916 //----------------------------------------------------------------------
2917 // mismatched and invalid vector types
2920 fminnmp v1.4s, v2.2d
2922 // CHECK-ERROR: error: invalid operand for instruction
2923 // CHECK-ERROR: fminnmp s0, v1.2d
2925 // CHECK-ERROR: error: invalid operand for instruction
2926 // CHECK-ERROR: fminnmp d31, v2.4s
2928 // CHECK-ERROR: error: invalid operand for instruction
2929 // CHECK-ERROR: fminnmp v1.4s, v2.2d
2932 mla v0.2d, v1.2d, v16.d[1]
2933 mla v0.2s, v1.2s, v2.s[4]
2934 mla v0.4s, v1.4s, v2.s[4]
2935 mla v0.2h, v1.2h, v2.h[1]
2936 mla v0.4h, v1.4h, v2.h[8]
2937 mla v0.8h, v1.8h, v2.h[8]
2938 mla v0.4h, v1.4h, v16.h[2]
2939 mla v0.8h, v1.8h, v16.h[2]
2941 // CHECK-ERROR: error: invalid operand for instruction
2942 // CHECK-ERROR: mla v0.2d, v1.2d, v16.d[1]
2944 // CHECK-ERROR: error: lane number incompatible with layout
2945 // CHECK-ERROR: mla v0.2s, v1.2s, v2.s[4]
2947 // CHECK-ERROR: error: lane number incompatible with layout
2948 // CHECK-ERROR: mla v0.4s, v1.4s, v2.s[4]
2950 // CHECK-ERROR: error: invalid operand for instruction
2951 // CHECK-ERROR: mla v0.2h, v1.2h, v2.h[1]
2953 // CHECK-ERROR: error: lane number incompatible with layout
2954 // CHECK-ERROR: mla v0.4h, v1.4h, v2.h[8]
2956 // CHECK-ERROR: error: lane number incompatible with layout
2957 // CHECK-ERROR: mla v0.8h, v1.8h, v2.h[8]
2959 // CHECK-ERROR: error: invalid operand for instruction
2960 // CHECK-ERROR: mla v0.4h, v1.4h, v16.h[2]
2962 // CHECK-ERROR: error: invalid operand for instruction
2963 // CHECK-ERROR: mla v0.8h, v1.8h, v16.h[2]
2966 mls v0.2d, v1.2d, v16.d[1]
2967 mls v0.2s, v1.2s, v2.s[4]
2968 mls v0.4s, v1.4s, v2.s[4]
2969 mls v0.2h, v1.2h, v2.h[1]
2970 mls v0.4h, v1.4h, v2.h[8]
2971 mls v0.8h, v1.8h, v2.h[8]
2972 mls v0.4h, v1.4h, v16.h[2]
2973 mls v0.8h, v1.8h, v16.h[2]
2975 // CHECK-ERROR: error: invalid operand for instruction
2976 // CHECK-ERROR: mls v0.2d, v1.2d, v16.d[1]
2978 // CHECK-ERROR: error: lane number incompatible with layout
2979 // CHECK-ERROR: mls v0.2s, v1.2s, v2.s[4]
2981 // CHECK-ERROR: error: lane number incompatible with layout
2982 // CHECK-ERROR: mls v0.4s, v1.4s, v2.s[4]
2984 // CHECK-ERROR: error: invalid operand for instruction
2985 // CHECK-ERROR: mls v0.2h, v1.2h, v2.h[1]
2987 // CHECK-ERROR: error: lane number incompatible with layout
2988 // CHECK-ERROR: mls v0.4h, v1.4h, v2.h[8]
2990 // CHECK-ERROR: error: lane number incompatible with layout
2991 // CHECK-ERROR: mls v0.8h, v1.8h, v2.h[8]
2993 // CHECK-ERROR: error: invalid operand for instruction
2994 // CHECK-ERROR: mls v0.4h, v1.4h, v16.h[2]
2996 // CHECK-ERROR: error: invalid operand for instruction
2997 // CHECK-ERROR: mls v0.8h, v1.8h, v16.h[2]
3000 fmla v0.4h, v1.4h, v2.h[2]
3001 fmla v0.8h, v1.8h, v2.h[2]
3002 fmla v0.2s, v1.2s, v2.s[4]
3003 fmla v0.2s, v1.2s, v22.s[4]
3004 fmla v3.4s, v8.4s, v2.s[4]
3005 fmla v3.4s, v8.4s, v22.s[4]
3006 fmla v0.2d, v1.2d, v2.d[2]
3007 fmla v0.2d, v1.2d, v22.d[2]
3009 // CHECK-ERROR: error: invalid operand for instruction
3010 // CHECK-ERROR: fmla v0.4h, v1.4h, v2.h[2]
3012 // CHECK-ERROR: error: invalid operand for instruction
3013 // CHECK-ERROR: fmla v0.8h, v1.8h, v2.h[2]
3015 // CHECK-ERROR: error: lane number incompatible with layout
3016 // CHECK-ERROR: fmla v0.2s, v1.2s, v2.s[4]
3018 // CHECK-ERROR: error: lane number incompatible with layout
3019 // CHECK-ERROR: fmla v0.2s, v1.2s, v22.s[4]
3021 // CHECK-ERROR: error: lane number incompatible with layout
3022 // CHECK-ERROR: fmla v3.4s, v8.4s, v2.s[4]
3024 // CHECK-ERROR: error: lane number incompatible with layout
3025 // CHECK-ERROR: fmla v3.4s, v8.4s, v22.s[4]
3027 // CHECK-ERROR: error: lane number incompatible with layout
3028 // CHECK-ERROR: fmla v0.2d, v1.2d, v2.d[2]
3030 // CHECK-ERROR: error: lane number incompatible with layout
3031 // CHECK-ERROR: fmla v0.2d, v1.2d, v22.d[2]
3034 fmls v0.4h, v1.4h, v2.h[2]
3035 fmls v0.8h, v1.8h, v2.h[2]
3036 fmls v0.2s, v1.2s, v2.s[4]
3037 fmls v0.2s, v1.2s, v22.s[4]
3038 fmls v3.4s, v8.4s, v2.s[4]
3039 fmls v3.4s, v8.4s, v22.s[4]
3040 fmls v0.2d, v1.2d, v2.d[2]
3041 fmls v0.2d, v1.2d, v22.d[2]
3043 // CHECK-ERROR: error: invalid operand for instruction
3044 // CHECK-ERROR: fmls v0.4h, v1.4h, v2.h[2]
3046 // CHECK-ERROR: error: invalid operand for instruction
3047 // CHECK-ERROR: fmls v0.8h, v1.8h, v2.h[2]
3049 // CHECK-ERROR: error: lane number incompatible with layout
3050 // CHECK-ERROR: fmls v0.2s, v1.2s, v2.s[4]
3052 // CHECK-ERROR: error: lane number incompatible with layout
3053 // CHECK-ERROR: fmls v0.2s, v1.2s, v22.s[4]
3055 // CHECK-ERROR: error: lane number incompatible with layout
3056 // CHECK-ERROR: fmls v3.4s, v8.4s, v2.s[4]
3058 // CHECK-ERROR: error: lane number incompatible with layout
3059 // CHECK-ERROR: fmls v3.4s, v8.4s, v22.s[4]
3061 // CHECK-ERROR: error: lane number incompatible with layout
3062 // CHECK-ERROR: fmls v0.2d, v1.2d, v2.d[2]
3064 // CHECK-ERROR: error: lane number incompatible with layout
3065 // CHECK-ERROR: fmls v0.2d, v1.2d, v22.d[2]
3068 smlal v0.4h, v1.4h, v2.h[2]
3069 smlal v0.4s, v1.4h, v2.h[8]
3070 smlal v0.4s, v1.4h, v16.h[2]
3071 smlal v0.2s, v1.2s, v2.s[4]
3072 smlal v0.2d, v1.2s, v2.s[4]
3073 smlal v0.2d, v1.2s, v22.s[4]
3074 smlal2 v0.4h, v1.8h, v1.h[2]
3075 smlal2 v0.4s, v1.8h, v1.h[8]
3076 smlal2 v0.4s, v1.8h, v16.h[2]
3077 smlal2 v0.2s, v1.4s, v1.s[2]
3078 smlal2 v0.2d, v1.4s, v1.s[4]
3079 smlal2 v0.2d, v1.4s, v22.s[4]
3081 // CHECK-ERROR: error: invalid operand for instruction
3082 // CHECK-ERROR: smlal v0.4h, v1.4h, v2.h[2]
3084 // CHECK-ERROR: error: lane number incompatible with layout
3085 // CHECK-ERROR: smlal v0.4s, v1.4h, v2.h[8]
3087 // CHECK-ERROR: error: invalid operand for instruction
3088 // CHECK-ERROR: smlal v0.4s, v1.4h, v16.h[2]
3090 // CHECK-ERROR: error: lane number incompatible with layout
3091 // CHECK-ERROR: smlal v0.2s, v1.2s, v2.s[4]
3093 // CHECK-ERROR: error: lane number incompatible with layout
3094 // CHECK-ERROR: smlal v0.2d, v1.2s, v2.s[4]
3096 // CHECK-ERROR: error: lane number incompatible with layout
3097 // CHECK-ERROR: smlal v0.2d, v1.2s, v22.s[4]
3099 // CHECK-ERROR: error: invalid operand for instruction
3100 // CHECK-ERROR: smlal2 v0.4h, v1.8h, v1.h[2]
3102 // CHECK-ERROR: error: lane number incompatible with layout
3103 // CHECK-ERROR: smlal2 v0.4s, v1.8h, v1.h[8]
3105 // CHECK-ERROR: error: invalid operand for instruction
3106 // CHECK-ERROR: smlal2 v0.4s, v1.8h, v16.h[2]
3108 // CHECK-ERROR: error: invalid operand for instruction
3109 // CHECK-ERROR: smlal2 v0.2s, v1.4s, v1.s[2]
3111 // CHECK-ERROR: error: lane number incompatible with layout
3112 // CHECK-ERROR: smlal2 v0.2d, v1.4s, v1.s[4]
3114 // CHECK-ERROR: error: lane number incompatible with layout
3115 // CHECK-ERROR: smlal2 v0.2d, v1.4s, v22.s[4]
3118 smlsl v0.4h, v1.4h, v2.h[2]
3119 smlsl v0.4s, v1.4h, v2.h[8]
3120 smlsl v0.4s, v1.4h, v16.h[2]
3121 smlsl v0.2s, v1.2s, v2.s[4]
3122 smlsl v0.2d, v1.2s, v2.s[4]
3123 smlsl v0.2d, v1.2s, v22.s[4]
3124 smlsl2 v0.4h, v1.8h, v1.h[2]
3125 smlsl2 v0.4s, v1.8h, v1.h[8]
3126 smlsl2 v0.4s, v1.8h, v16.h[2]
3127 smlsl2 v0.2s, v1.4s, v1.s[2]
3128 smlsl2 v0.2d, v1.4s, v1.s[4]
3129 smlsl2 v0.2d, v1.4s, v22.s[4]
3131 // CHECK-ERROR: error: invalid operand for instruction
3132 // CHECK-ERROR: smlsl v0.4h, v1.4h, v2.h[2]
3134 // CHECK-ERROR: error: lane number incompatible with layout
3135 // CHECK-ERROR: smlsl v0.4s, v1.4h, v2.h[8]
3137 // CHECK-ERROR: error: invalid operand for instruction
3138 // CHECK-ERROR: smlsl v0.4s, v1.4h, v16.h[2]
3140 // CHECK-ERROR: error: lane number incompatible with layout
3141 // CHECK-ERROR: smlsl v0.2s, v1.2s, v2.s[4]
3143 // CHECK-ERROR: error: lane number incompatible with layout
3144 // CHECK-ERROR: smlsl v0.2d, v1.2s, v2.s[4]
3146 // CHECK-ERROR: error: lane number incompatible with layout
3147 // CHECK-ERROR: smlsl v0.2d, v1.2s, v22.s[4]
3149 // CHECK-ERROR: error: invalid operand for instruction
3150 // CHECK-ERROR: smlsl2 v0.4h, v1.8h, v1.h[2]
3152 // CHECK-ERROR: error: lane number incompatible with layout
3153 // CHECK-ERROR: smlsl2 v0.4s, v1.8h, v1.h[8]
3155 // CHECK-ERROR: error: invalid operand for instruction
3156 // CHECK-ERROR: smlsl2 v0.4s, v1.8h, v16.h[2]
3158 // CHECK-ERROR: error: invalid operand for instruction
3159 // CHECK-ERROR: smlsl2 v0.2s, v1.4s, v1.s[2]
3161 // CHECK-ERROR: error: lane number incompatible with layout
3162 // CHECK-ERROR: smlsl2 v0.2d, v1.4s, v1.s[4]
3164 // CHECK-ERROR: error: lane number incompatible with layout
3165 // CHECK-ERROR: smlsl2 v0.2d, v1.4s, v22.s[4]
3168 umlal v0.4h, v1.4h, v2.h[2]
3169 umlal v0.4s, v1.4h, v2.h[8]
3170 umlal v0.4s, v1.4h, v16.h[2]
3171 umlal v0.2s, v1.2s, v2.s[4]
3172 umlal v0.2d, v1.2s, v2.s[4]
3173 umlal v0.2d, v1.2s, v22.s[4]
3174 umlal2 v0.4h, v1.8h, v1.h[2]
3175 umlal2 v0.4s, v1.8h, v1.h[8]
3176 umlal2 v0.4s, v1.8h, v16.h[2]
3177 umlal2 v0.2s, v1.4s, v1.s[2]
3178 umlal2 v0.2d, v1.4s, v1.s[4]
3179 umlal2 v0.2d, v1.4s, v22.s[4]
3181 // CHECK-ERROR: error: invalid operand for instruction
3182 // CHECK-ERROR: umlal v0.4h, v1.4h, v2.h[2]
3184 // CHECK-ERROR: error: lane number incompatible with layout
3185 // CHECK-ERROR: umlal v0.4s, v1.4h, v2.h[8]
3187 // CHECK-ERROR: error: invalid operand for instruction
3188 // CHECK-ERROR: umlal v0.4s, v1.4h, v16.h[2]
3190 // CHECK-ERROR: error: lane number incompatible with layout
3191 // CHECK-ERROR: umlal v0.2s, v1.2s, v2.s[4]
3193 // CHECK-ERROR: error: lane number incompatible with layout
3194 // CHECK-ERROR: umlal v0.2d, v1.2s, v2.s[4]
3196 // CHECK-ERROR: error: lane number incompatible with layout
3197 // CHECK-ERROR: umlal v0.2d, v1.2s, v22.s[4]
3199 // CHECK-ERROR: error: invalid operand for instruction
3200 // CHECK-ERROR: umlal2 v0.4h, v1.8h, v1.h[2]
3202 // CHECK-ERROR: error: lane number incompatible with layout
3203 // CHECK-ERROR: umlal2 v0.4s, v1.8h, v1.h[8]
3205 // CHECK-ERROR: error: invalid operand for instruction
3206 // CHECK-ERROR: umlal2 v0.4s, v1.8h, v16.h[2]
3208 // CHECK-ERROR: error: invalid operand for instruction
3209 // CHECK-ERROR: umlal2 v0.2s, v1.4s, v1.s[2]
3211 // CHECK-ERROR: error: lane number incompatible with layout
3212 // CHECK-ERROR: umlal2 v0.2d, v1.4s, v1.s[4]
3214 // CHECK-ERROR: error: lane number incompatible with layout
3215 // CHECK-ERROR: umlal2 v0.2d, v1.4s, v22.s[4]
3218 umlsl v0.4h, v1.4h, v2.h[2]
3219 umlsl v0.4s, v1.4h, v2.h[8]
3220 umlsl v0.4s, v1.4h, v16.h[2]
3221 umlsl v0.2s, v1.2s, v2.s[4]
3222 umlsl v0.2d, v1.2s, v2.s[4]
3223 umlsl v0.2d, v1.2s, v22.s[4]
3224 umlsl2 v0.4h, v1.8h, v1.h[2]
3225 umlsl2 v0.4s, v1.8h, v1.h[8]
3226 umlsl2 v0.4s, v1.8h, v16.h[2]
3227 umlsl2 v0.2s, v1.4s, v1.s[2]
3228 umlsl2 v0.2d, v1.4s, v1.s[4]
3229 umlsl2 v0.2d, v1.4s, v22.s[4]
3231 // CHECK-ERROR: error: invalid operand for instruction
3232 // CHECK-ERROR: umlsl v0.4h, v1.4h, v2.h[2]
3234 // CHECK-ERROR: error: lane number incompatible with layout
3235 // CHECK-ERROR: umlsl v0.4s, v1.4h, v2.h[8]
3237 // CHECK-ERROR: error: invalid operand for instruction
3238 // CHECK-ERROR: umlsl v0.4s, v1.4h, v16.h[2]
3240 // CHECK-ERROR: error: lane number incompatible with layout
3241 // CHECK-ERROR: umlsl v0.2s, v1.2s, v2.s[4]
3243 // CHECK-ERROR: error: lane number incompatible with layout
3244 // CHECK-ERROR: umlsl v0.2d, v1.2s, v2.s[4]
3246 // CHECK-ERROR: error: lane number incompatible with layout
3247 // CHECK-ERROR: umlsl v0.2d, v1.2s, v22.s[4]
3249 // CHECK-ERROR: error: invalid operand for instruction
3250 // CHECK-ERROR: umlsl2 v0.4h, v1.8h, v1.h[2]
3252 // CHECK-ERROR: error: lane number incompatible with layout
3253 // CHECK-ERROR: umlsl2 v0.4s, v1.8h, v1.h[8]
3255 // CHECK-ERROR: error: invalid operand for instruction
3256 // CHECK-ERROR: umlsl2 v0.4s, v1.8h, v16.h[2]
3258 // CHECK-ERROR: error: invalid operand for instruction
3259 // CHECK-ERROR: umlsl2 v0.2s, v1.4s, v1.s[2]
3261 // CHECK-ERROR: error: lane number incompatible with layout
3262 // CHECK-ERROR: umlsl2 v0.2d, v1.4s, v1.s[4]
3264 // CHECK-ERROR: error: lane number incompatible with layout
3265 // CHECK-ERROR: umlsl2 v0.2d, v1.4s, v22.s[4]
3268 sqdmlal v0.4h, v1.4h, v2.h[2]
3269 sqdmlal v0.4s, v1.4h, v2.h[8]
3270 sqdmlal v0.4s, v1.4h, v16.h[2]
3271 sqdmlal v0.2s, v1.2s, v2.s[4]
3272 sqdmlal v0.2d, v1.2s, v2.s[4]
3273 sqdmlal v0.2d, v1.2s, v22.s[4]
3274 sqdmlal2 v0.4h, v1.8h, v1.h[2]
3275 sqdmlal2 v0.4s, v1.8h, v1.h[8]
3276 sqdmlal2 v0.4s, v1.8h, v16.h[2]
3277 sqdmlal2 v0.2s, v1.4s, v1.s[2]
3278 sqdmlal2 v0.2d, v1.4s, v1.s[4]
3279 sqdmlal2 v0.2d, v1.4s, v22.s[4]
3281 // CHECK-ERROR: error: invalid operand for instruction
3282 // CHECK-ERROR: sqdmlal v0.4h, v1.4h, v2.h[2]
3284 // CHECK-ERROR: error: lane number incompatible with layout
3285 // CHECK-ERROR: sqdmlal v0.4s, v1.4h, v2.h[8]
3287 // CHECK-ERROR: error: invalid operand for instruction
3288 // CHECK-ERROR: sqdmlal v0.4s, v1.4h, v16.h[2]
3290 // CHECK-ERROR: error: lane number incompatible with layout
3291 // CHECK-ERROR: sqdmlal v0.2s, v1.2s, v2.s[4]
3293 // CHECK-ERROR: error: lane number incompatible with layout
3294 // CHECK-ERROR: sqdmlal v0.2d, v1.2s, v2.s[4]
3296 // CHECK-ERROR: error: lane number incompatible with layout
3297 // CHECK-ERROR: sqdmlal v0.2d, v1.2s, v22.s[4]
3299 // CHECK-ERROR: error: invalid operand for instruction
3300 // CHECK-ERROR: sqdmlal2 v0.4h, v1.8h, v1.h[2]
3302 // CHECK-ERROR: error: lane number incompatible with layout
3303 // CHECK-ERROR: sqdmlal2 v0.4s, v1.8h, v1.h[8]
3305 // CHECK-ERROR: error: invalid operand for instruction
3306 // CHECK-ERROR: sqdmlal2 v0.4s, v1.8h, v16.h[2]
3308 // CHECK-ERROR: error: invalid operand for instruction
3309 // CHECK-ERROR: sqdmlal2 v0.2s, v1.4s, v1.s[2]
3311 // CHECK-ERROR: error: lane number incompatible with layout
3312 // CHECK-ERROR: sqdmlal2 v0.2d, v1.4s, v1.s[4]
3314 // CHECK-ERROR: error: lane number incompatible with layout
3315 // CHECK-ERROR: sqdmlal2 v0.2d, v1.4s, v22.s[4]
3318 sqdmlsl v0.4h, v1.4h, v2.h[2]
3319 sqdmlsl v0.4s, v1.4h, v2.h[8]
3320 sqdmlsl v0.4s, v1.4h, v16.h[2]
3321 sqdmlsl v0.2s, v1.2s, v2.s[4]
3322 sqdmlsl v0.2d, v1.2s, v2.s[4]
3323 sqdmlsl v0.2d, v1.2s, v22.s[4]
3324 sqdmlsl2 v0.4h, v1.8h, v1.h[2]
3325 sqdmlsl2 v0.4s, v1.8h, v1.h[8]
3326 sqdmlsl2 v0.4s, v1.8h, v16.h[2]
3327 sqdmlsl2 v0.2s, v1.4s, v1.s[2]
3328 sqdmlsl2 v0.2d, v1.4s, v1.s[4]
3329 sqdmlsl2 v0.2d, v1.4s, v22.s[4]
3331 // CHECK-ERROR: error: invalid operand for instruction
3332 // CHECK-ERROR: sqdmlsl v0.4h, v1.4h, v2.h[2]
3334 // CHECK-ERROR: error: lane number incompatible with layout
3335 // CHECK-ERROR: sqdmlsl v0.4s, v1.4h, v2.h[8]
3337 // CHECK-ERROR: error: invalid operand for instruction
3338 // CHECK-ERROR: sqdmlsl v0.4s, v1.4h, v16.h[2]
3340 // CHECK-ERROR: error: lane number incompatible with layout
3341 // CHECK-ERROR: sqdmlsl v0.2s, v1.2s, v2.s[4]
3343 // CHECK-ERROR: error: lane number incompatible with layout
3344 // CHECK-ERROR: sqdmlsl v0.2d, v1.2s, v2.s[4]
3346 // CHECK-ERROR: error: lane number incompatible with layout
3347 // CHECK-ERROR: sqdmlsl v0.2d, v1.2s, v22.s[4]
3349 // CHECK-ERROR: error: invalid operand for instruction
3350 // CHECK-ERROR: sqdmlsl2 v0.4h, v1.8h, v1.h[2]
3352 // CHECK-ERROR: error: lane number incompatible with layout
3353 // CHECK-ERROR: sqdmlsl2 v0.4s, v1.8h, v1.h[8]
3355 // CHECK-ERROR: error: invalid operand for instruction
3356 // CHECK-ERROR: sqdmlsl2 v0.4s, v1.8h, v16.h[2]
3358 // CHECK-ERROR: error: invalid operand for instruction
3359 // CHECK-ERROR: sqdmlsl2 v0.2s, v1.4s, v1.s[2]
3361 // CHECK-ERROR: error: lane number incompatible with layout
3362 // CHECK-ERROR: sqdmlsl2 v0.2d, v1.4s, v1.s[4]
3364 // CHECK-ERROR: error: lane number incompatible with layout
3365 // CHECK-ERROR: sqdmlsl2 v0.2d, v1.4s, v22.s[4]
3368 mul v0.4h, v1.4h, v2.h[8]
3369 mul v0.4h, v1.4h, v16.h[8]
3370 mul v0.8h, v1.8h, v2.h[8]
3371 mul v0.8h, v1.8h, v16.h[8]
3372 mul v0.2s, v1.2s, v2.s[4]
3373 mul v0.2s, v1.2s, v22.s[4]
3374 mul v0.4s, v1.4s, v2.s[4]
3375 mul v0.4s, v1.4s, v22.s[4]
3376 mul v0.2d, v1.2d, v2.d[1]
3378 // CHECK-ERROR: error: lane number incompatible with layout
3379 // CHECK-ERROR: mul v0.4h, v1.4h, v2.h[8]
3381 // CHECK-ERROR: error: lane number incompatible with layout
3382 // CHECK-ERROR: mul v0.4h, v1.4h, v16.h[8]
3384 // CHECK-ERROR: error: lane number incompatible with layout
3385 // CHECK-ERROR: mul v0.8h, v1.8h, v2.h[8]
3387 // CHECK-ERROR: error: lane number incompatible with layout
3388 // CHECK-ERROR: mul v0.8h, v1.8h, v16.h[8]
3390 // CHECK-ERROR: error: lane number incompatible with layout
3391 // CHECK-ERROR: mul v0.2s, v1.2s, v2.s[4]
3393 // CHECK-ERROR: error: lane number incompatible with layout
3394 // CHECK-ERROR: mul v0.2s, v1.2s, v22.s[4]
3396 // CHECK-ERROR: error: lane number incompatible with layout
3397 // CHECK-ERROR: mul v0.4s, v1.4s, v2.s[4]
3399 // CHECK-ERROR: error: lane number incompatible with layout
3400 // CHECK-ERROR: mul v0.4s, v1.4s, v22.s[4]
3403 fmul v0.4h, v1.4h, v2.h[4]
3404 fmul v0.2s, v1.2s, v2.s[4]
3405 fmul v0.2s, v1.2s, v22.s[4]
3406 fmul v0.4s, v1.4s, v2.s[4]
3407 fmul v0.4s, v1.4s, v22.s[4]
3408 fmul v0.2d, v1.2d, v2.d[2]
3409 fmul v0.2d, v1.2d, v22.d[2]
3411 // CHECK-ERROR: error: invalid operand for instruction
3412 // CHECK-ERROR: mul v0.2d, v1.2d, v2.d[1]
3414 // CHECK-ERROR: error: invalid operand for instruction
3415 // CHECK-ERROR: fmul v0.4h, v1.4h, v2.h[4]
3417 // CHECK-ERROR: error: lane number incompatible with layout
3418 // CHECK-ERROR: fmul v0.2s, v1.2s, v2.s[4]
3420 // CHECK-ERROR: error: lane number incompatible with layout
3421 // CHECK-ERROR: fmul v0.2s, v1.2s, v22.s[4]
3423 // CHECK-ERROR: error: lane number incompatible with layout
3424 // CHECK-ERROR: fmul v0.4s, v1.4s, v2.s[4]
3426 // CHECK-ERROR: error: lane number incompatible with layout
3427 // CHECK-ERROR: fmul v0.4s, v1.4s, v22.s[4]
3429 // CHECK-ERROR: error: lane number incompatible with layout
3430 // CHECK-ERROR: fmul v0.2d, v1.2d, v2.d[2]
3432 // CHECK-ERROR: error: lane number incompatible with layout
3433 // CHECK-ERROR: fmul v0.2d, v1.2d, v22.d[2]
3436 fmulx v0.4h, v1.4h, v2.h[4]
3437 fmulx v0.2s, v1.2s, v2.s[4]
3438 fmulx v0.2s, v1.2s, v22.s[4]
3439 fmulx v0.4s, v1.4s, v2.s[4]
3440 fmulx v0.4s, v1.4s, v22.s[4]
3441 fmulx v0.2d, v1.2d, v2.d[2]
3442 fmulx v0.2d, v1.2d, v22.d[2]
3444 // CHECK-ERROR: error: invalid operand for instruction
3445 // CHECK-ERROR: fmulx v0.4h, v1.4h, v2.h[4]
3447 // CHECK-ERROR: error: lane number incompatible with layout
3448 // CHECK-ERROR: fmulx v0.2s, v1.2s, v2.s[4]
3450 // CHECK-ERROR: error: lane number incompatible with layout
3451 // CHECK-ERROR: fmulx v0.2s, v1.2s, v22.s[4]
3453 // CHECK-ERROR: error: lane number incompatible with layout
3454 // CHECK-ERROR: fmulx v0.4s, v1.4s, v2.s[4]
3456 // CHECK-ERROR: error: lane number incompatible with layout
3457 // CHECK-ERROR: fmulx v0.4s, v1.4s, v22.s[4]
3459 // CHECK-ERROR: error: lane number incompatible with layout
3460 // CHECK-ERROR: fmulx v0.2d, v1.2d, v2.d[2]
3462 // CHECK-ERROR: error: lane number incompatible with layout
3463 // CHECK-ERROR: fmulx v0.2d, v1.2d, v22.d[2]
3466 smull v0.4h, v1.4h, v2.h[2]
3467 smull v0.4s, v1.4h, v2.h[8]
3468 smull v0.4s, v1.4h, v16.h[4]
3469 smull v0.2s, v1.2s, v2.s[2]
3470 smull v0.2d, v1.2s, v2.s[4]
3471 smull v0.2d, v1.2s, v22.s[4]
3472 smull2 v0.4h, v1.8h, v2.h[2]
3473 smull2 v0.4s, v1.8h, v2.h[8]
3474 smull2 v0.4s, v1.8h, v16.h[4]
3475 smull2 v0.2s, v1.4s, v2.s[2]
3476 smull2 v0.2d, v1.4s, v2.s[4]
3477 smull2 v0.2d, v1.4s, v22.s[4]
3479 // CHECK-ERROR: error: invalid operand for instruction
3480 // CHECK-ERROR: smull v0.4h, v1.4h, v2.h[2]
3482 // CHECK-ERROR: error: lane number incompatible with layout
3483 // CHECK-ERROR: smull v0.4s, v1.4h, v2.h[8]
3485 // CHECK-ERROR: error: invalid operand for instruction
3486 // CHECK-ERROR: smull v0.4s, v1.4h, v16.h[4]
3488 // CHECK-ERROR: error: invalid operand for instruction
3489 // CHECK-ERROR: smull v0.2s, v1.2s, v2.s[2]
3491 // CHECK-ERROR: error: lane number incompatible with layout
3492 // CHECK-ERROR: smull v0.2d, v1.2s, v2.s[4]
3494 // CHECK-ERROR: error: lane number incompatible with layout
3495 // CHECK-ERROR: smull v0.2d, v1.2s, v22.s[4]
3497 // CHECK-ERROR: error: invalid operand for instruction
3498 // CHECK-ERROR: smull2 v0.4h, v1.8h, v2.h[2]
3500 // CHECK-ERROR: error: lane number incompatible with layout
3501 // CHECK-ERROR: smull2 v0.4s, v1.8h, v2.h[8]
3503 // CHECK-ERROR: error: invalid operand for instruction
3504 // CHECK-ERROR: smull2 v0.4s, v1.8h, v16.h[4]
3506 // CHECK-ERROR: error: invalid operand for instruction
3507 // CHECK-ERROR: smull2 v0.2s, v1.4s, v2.s[2]
3509 // CHECK-ERROR: error: lane number incompatible with layout
3510 // CHECK-ERROR: smull2 v0.2d, v1.4s, v2.s[4]
3512 // CHECK-ERROR: error: lane number incompatible with layout
3513 // CHECK-ERROR: smull2 v0.2d, v1.4s, v22.s[4]
3516 umull v0.4h, v1.4h, v2.h[2]
3517 umull v0.4s, v1.4h, v2.h[8]
3518 umull v0.4s, v1.4h, v16.h[4]
3519 umull v0.2s, v1.2s, v2.s[2]
3520 umull v0.2d, v1.2s, v2.s[4]
3521 umull v0.2d, v1.2s, v22.s[4]
3522 umull2 v0.4h, v1.8h, v2.h[2]
3523 umull2 v0.4s, v1.8h, v2.h[8]
3524 umull2 v0.4s, v1.8h, v16.h[4]
3525 umull2 v0.2s, v1.4s, v2.s[2]
3526 umull2 v0.2d, v1.4s, v2.s[4]
3527 umull2 v0.2d, v1.4s, v22.s[4]
3529 // CHECK-ERROR: error: invalid operand for instruction
3530 // CHECK-ERROR: umull v0.4h, v1.4h, v2.h[2]
3532 // CHECK-ERROR: error: lane number incompatible with layout
3533 // CHECK-ERROR: umull v0.4s, v1.4h, v2.h[8]
3535 // CHECK-ERROR: error: invalid operand for instruction
3536 // CHECK-ERROR: umull v0.4s, v1.4h, v16.h[4]
3538 // CHECK-ERROR: error: invalid operand for instruction
3539 // CHECK-ERROR: umull v0.2s, v1.2s, v2.s[2]
3541 // CHECK-ERROR: error: lane number incompatible with layout
3542 // CHECK-ERROR: umull v0.2d, v1.2s, v2.s[4]
3544 // CHECK-ERROR: error: lane number incompatible with layout
3545 // CHECK-ERROR: umull v0.2d, v1.2s, v22.s[4]
3547 // CHECK-ERROR: error: invalid operand for instruction
3548 // CHECK-ERROR: umull2 v0.4h, v1.8h, v2.h[2]
3550 // CHECK-ERROR: error: lane number incompatible with layout
3551 // CHECK-ERROR: umull2 v0.4s, v1.8h, v2.h[8]
3553 // CHECK-ERROR: error: invalid operand for instruction
3554 // CHECK-ERROR: umull2 v0.4s, v1.8h, v16.h[4]
3556 // CHECK-ERROR: error: invalid operand for instruction
3557 // CHECK-ERROR: umull2 v0.2s, v1.4s, v2.s[2]
3559 // CHECK-ERROR: error: lane number incompatible with layout
3560 // CHECK-ERROR: umull2 v0.2d, v1.4s, v2.s[4]
3562 // CHECK-ERROR: error: lane number incompatible with layout
3563 // CHECK-ERROR: umull2 v0.2d, v1.4s, v22.s[4]
3566 sqdmull v0.4h, v1.4h, v2.h[2]
3567 sqdmull v0.4s, v1.4h, v2.h[8]
3568 sqdmull v0.4s, v1.4h, v16.h[4]
3569 sqdmull v0.2s, v1.2s, v2.s[2]
3570 sqdmull v0.2d, v1.2s, v2.s[4]
3571 sqdmull v0.2d, v1.2s, v22.s[4]
3572 sqdmull2 v0.4h, v1.8h, v2.h[2]
3573 sqdmull2 v0.4s, v1.8h, v2.h[8]
3574 sqdmull2 v0.4s, v1.8h, v16.h[4]
3575 sqdmull2 v0.2s, v1.4s, v2.s[2]
3576 sqdmull2 v0.2d, v1.4s, v2.s[4]
3577 sqdmull2 v0.2d, v1.4s, v22.s[4]
3579 // CHECK-ERROR: error: invalid operand for instruction
3580 // CHECK-ERROR: sqdmull v0.4h, v1.4h, v2.h[2]
3582 // CHECK-ERROR: error: lane number incompatible with layout
3583 // CHECK-ERROR: sqdmull v0.4s, v1.4h, v2.h[8]
3585 // CHECK-ERROR: error: invalid operand for instruction
3586 // CHECK-ERROR: sqdmull v0.4s, v1.4h, v16.h[4]
3588 // CHECK-ERROR: error: invalid operand for instruction
3589 // CHECK-ERROR: sqdmull v0.2s, v1.2s, v2.s[2]
3591 // CHECK-ERROR: error: lane number incompatible with layout
3592 // CHECK-ERROR: sqdmull v0.2d, v1.2s, v2.s[4]
3594 // CHECK-ERROR: error: lane number incompatible with layout
3595 // CHECK-ERROR: sqdmull v0.2d, v1.2s, v22.s[4]
3597 // CHECK-ERROR: error: invalid operand for instruction
3598 // CHECK-ERROR: sqdmull2 v0.4h, v1.8h, v2.h[2]
3600 // CHECK-ERROR: error: lane number incompatible with layout
3601 // CHECK-ERROR: sqdmull2 v0.4s, v1.8h, v2.h[8]
3603 // CHECK-ERROR: error: invalid operand for instruction
3604 // CHECK-ERROR: sqdmull2 v0.4s, v1.8h, v16.h[4]
3606 // CHECK-ERROR: error: invalid operand for instruction
3607 // CHECK-ERROR: sqdmull2 v0.2s, v1.4s, v2.s[2]
3609 // CHECK-ERROR: error: lane number incompatible with layout
3610 // CHECK-ERROR: sqdmull2 v0.2d, v1.4s, v2.s[4]
3612 // CHECK-ERROR: error: lane number incompatible with layout
3613 // CHECK-ERROR: sqdmull2 v0.2d, v1.4s, v22.s[4]
3616 sqdmulh v0.4h, v1.4h, v2.h[8]
3617 sqdmulh v0.4h, v1.4h, v16.h[2]
3618 sqdmulh v0.8h, v1.8h, v2.h[8]
3619 sqdmulh v0.8h, v1.8h, v16.h[2]
3620 sqdmulh v0.2s, v1.2s, v2.s[4]
3621 sqdmulh v0.2s, v1.2s, v22.s[4]
3622 sqdmulh v0.4s, v1.4s, v2.s[4]
3623 sqdmulh v0.4s, v1.4s, v22.s[4]
3624 sqdmulh v0.2d, v1.2d, v22.d[1]
3626 // CHECK-ERROR: error: lane number incompatible with layout
3627 // CHECK-ERROR: sqdmulh v0.4h, v1.4h, v2.h[8]
3629 // CHECK-ERROR: error: invalid operand for instruction
3630 // CHECK-ERROR: sqdmulh v0.4h, v1.4h, v16.h[2]
3632 // CHECK-ERROR: error: lane number incompatible with layout
3633 // CHECK-ERROR: sqdmulh v0.8h, v1.8h, v2.h[8]
3635 // CHECK-ERROR: error: invalid operand for instruction
3636 // CHECK-ERROR: sqdmulh v0.8h, v1.8h, v16.h[2]
3638 // CHECK-ERROR: error: lane number incompatible with layout
3639 // CHECK-ERROR: sqdmulh v0.2s, v1.2s, v2.s[4]
3641 // CHECK-ERROR: error: lane number incompatible with layout
3642 // CHECK-ERROR: sqdmulh v0.2s, v1.2s, v22.s[4]
3644 // CHECK-ERROR: error: lane number incompatible with layout
3645 // CHECK-ERROR: sqdmulh v0.4s, v1.4s, v2.s[4]
3647 // CHECK-ERROR: error: lane number incompatible with layout
3648 // CHECK-ERROR: sqdmulh v0.4s, v1.4s, v22.s[4]
3650 // CHECK-ERROR: error: invalid operand for instruction
3651 // CHECK-ERROR: sqdmulh v0.2d, v1.2d, v22.d[1]
3654 sqrdmulh v0.4h, v1.4h, v2.h[8]
3655 sqrdmulh v0.4h, v1.4h, v16.h[2]
3656 sqrdmulh v0.8h, v1.8h, v2.h[8]
3657 sqrdmulh v0.8h, v1.8h, v16.h[2]
3658 sqrdmulh v0.2s, v1.2s, v2.s[4]
3659 sqrdmulh v0.2s, v1.2s, v22.s[4]
3660 sqrdmulh v0.4s, v1.4s, v2.s[4]
3661 sqrdmulh v0.4s, v1.4s, v22.s[4]
3662 sqrdmulh v0.2d, v1.2d, v22.d[1]
3664 // CHECK-ERROR: error: lane number incompatible with layout
3665 // CHECK-ERROR: sqrdmulh v0.4h, v1.4h, v2.h[8]
3667 // CHECK-ERROR: error: invalid operand for instruction
3668 // CHECK-ERROR: sqrdmulh v0.4h, v1.4h, v16.h[2]
3670 // CHECK-ERROR: error: lane number incompatible with layout
3671 // CHECK-ERROR: sqrdmulh v0.8h, v1.8h, v2.h[8]
3673 // CHECK-ERROR: error: invalid operand for instruction
3674 // CHECK-ERROR: sqrdmulh v0.8h, v1.8h, v16.h[2]
3676 // CHECK-ERROR: error: lane number incompatible with layout
3677 // CHECK-ERROR: sqrdmulh v0.2s, v1.2s, v2.s[4]
3679 // CHECK-ERROR: error: lane number incompatible with layout
3680 // CHECK-ERROR: sqrdmulh v0.2s, v1.2s, v22.s[4]
3682 // CHECK-ERROR: error: lane number incompatible with layout
3683 // CHECK-ERROR: sqrdmulh v0.4s, v1.4s, v2.s[4]
3685 // CHECK-ERROR: error: lane number incompatible with layout
3686 // CHECK-ERROR: sqrdmulh v0.4s, v1.4s, v22.s[4]
3688 // CHECK-ERROR: error: invalid operand for instruction
3689 // CHECK-ERROR: sqrdmulh v0.2d, v1.2d, v22.d[1]
3692 //----------------------------------------------------------------------
3694 //----------------------------------------------------------------------
3704 // CHECK-ERROR: error: invalid operand for instruction
3705 // CHECK-ERROR: saddlv b0, v1.8b
3707 // CHECK-ERROR: error: invalid operand for instruction
3708 // CHECK-ERROR: saddlv b0, v1.16b
3710 // CHECK-ERROR: error: invalid operand for instruction
3711 // CHECK-ERROR: saddlv h0, v1.4h
3713 // CHECK-ERROR: error: invalid operand for instruction
3714 // CHECK-ERROR: saddlv h0, v1.8h
3716 // CHECK-ERROR: error: invalid operand for instruction
3717 // CHECK-ERROR: saddlv s0, v1.2s
3719 // CHECK-ERROR: error: invalid operand for instruction
3720 // CHECK-ERROR: saddlv s0, v1.4s
3722 // CHECK-ERROR: error: invalid operand for instruction
3723 // CHECK-ERROR: saddlv d0, v1.2s
3734 // CHECK-ERROR: error: invalid operand for instruction
3735 // CHECK-ERROR: uaddlv b0, v1.8b
3737 // CHECK-ERROR: error: invalid operand for instruction
3738 // CHECK-ERROR: uaddlv b0, v1.16b
3740 // CHECK-ERROR: error: invalid operand for instruction
3741 // CHECK-ERROR: uaddlv h0, v1.4h
3743 // CHECK-ERROR: error: invalid operand for instruction
3744 // CHECK-ERROR: uaddlv h0, v1.8h
3746 // CHECK-ERROR: error: invalid operand for instruction
3747 // CHECK-ERROR: uaddlv s0, v1.2s
3749 // CHECK-ERROR: error: invalid operand for instruction
3750 // CHECK-ERROR: uaddlv s0, v1.4s
3752 // CHECK-ERROR: error: invalid operand for instruction
3753 // CHECK-ERROR: uaddlv d0, v1.2s
3762 // CHECK-ERROR: error: invalid operand for instruction
3763 // CHECK-ERROR: smaxv s0, v1.2s
3765 // CHECK-ERROR: error: invalid operand for instruction
3766 // CHECK-ERROR: sminv s0, v1.2s
3768 // CHECK-ERROR: error: invalid operand for instruction
3769 // CHECK-ERROR: umaxv s0, v1.2s
3771 // CHECK-ERROR: error: invalid operand for instruction
3772 // CHECK-ERROR: uminv s0, v1.2s
3774 // CHECK-ERROR: error: invalid operand for instruction
3775 // CHECK-ERROR: addv s0, v1.2s
3784 // CHECK-ERROR: error: invalid operand for instruction
3785 // CHECK-ERROR: smaxv d0, v1.2d
3787 // CHECK-ERROR: error: invalid operand for instruction
3788 // CHECK-ERROR: sminv d0, v1.2d
3790 // CHECK-ERROR: error: invalid operand for instruction
3791 // CHECK-ERROR: umaxv d0, v1.2d
3793 // CHECK-ERROR: error: invalid operand for instruction
3794 // CHECK-ERROR: uminv d0, v1.2d
3796 // CHECK-ERROR: error: invalid operand for instruction
3797 // CHECK-ERROR: addv d0, v1.2d
3805 // CHECK-ERROR: error: invalid operand for instruction
3806 // CHECK-ERROR: fmaxnmv b0, v1.16b
3808 // CHECK-ERROR: error: invalid operand for instruction
3809 // CHECK-ERROR: fminnmv b0, v1.16b
3811 // CHECK-ERROR: error: invalid operand for instruction
3812 // CHECK-ERROR: fmaxv b0, v1.16b
3814 // CHECK-ERROR: error: invalid operand for instruction
3815 // CHECK-ERROR: fminv b0, v1.16b
3823 // CHECK-ERROR: error: invalid operand for instruction
3824 // CHECK-ERROR: fmaxnmv h0, v1.8h
3826 // CHECK-ERROR: error: invalid operand for instruction
3827 // CHECK-ERROR: fminnmv h0, v1.8h
3829 // CHECK-ERROR: error: invalid operand for instruction
3830 // CHECK-ERROR: fmaxv h0, v1.8h
3832 // CHECK-ERROR: error: invalid operand for instruction
3833 // CHECK-ERROR: fminv h0, v1.8h
3841 // CHECK-ERROR: error: invalid operand for instruction
3842 // CHECK-ERROR: fmaxnmv d0, v1.2d
3844 // CHECK-ERROR: error: invalid operand for instruction
3845 // CHECK-ERROR: fminnmv d0, v1.2d
3847 // CHECK-ERROR: error: invalid operand for instruction
3848 // CHECK-ERROR: fmaxv d0, v1.2d
3850 // CHECK-ERROR: error: invalid operand for instruction
3851 // CHECK-ERROR: fminv d0, v1.2d
3854 //----------------------------------------------------------------------
3855 // Floating-point Multiply Extended
3856 //----------------------------------------------------------------------
3861 // CHECK-ERROR: error: invalid operand for instruction
3862 // CHECK-ERROR: fmulx s20, h22, s15
3864 // CHECK-ERROR: error: invalid operand for instruction
3865 // CHECK-ERROR: fmulx d23, d11, s1
3868 //----------------------------------------------------------------------
3869 // Floating-point Reciprocal Step
3870 //----------------------------------------------------------------------
3872 frecps s21, s16, h13
3873 frecps d22, s30, d21
3875 // CHECK-ERROR: error: invalid operand for instruction
3876 // CHECK-ERROR: frecps s21, s16, h13
3878 // CHECK-ERROR: error: invalid operand for instruction
3879 // CHECK-ERROR: frecps d22, s30, d21
3882 //----------------------------------------------------------------------
3883 // Floating-point Reciprocal Square Root Step
3884 //----------------------------------------------------------------------
3886 frsqrts s21, h5, s12
3887 frsqrts d8, s22, d18
3889 // CHECK-ERROR: error: invalid operand for instruction
3890 // CHECK-ERROR: frsqrts s21, h5, s12
3892 // CHECK-ERROR: error: invalid operand for instruction
3893 // CHECK-ERROR: frsqrts d8, s22, d18
3896 //----------------------------------------------------------------------
3897 // Vector load/store multiple N-element structure (class SIMD lselem)
3898 //----------------------------------------------------------------------
3903 // CHECK-ERROR: error: expected vector type register
3904 // CHECK-ERROR: ld1 {x3}, [x2]
3906 // CHECK-ERROR: error: expected vector type register
3907 // CHECK-ERROR: ld1 {v4}, [x0]
3909 // CHECK-ERROR: error: expected vector type register
3910 // CHECK-ERROR: ld1 {v32.16b}, [x0]
3912 // CHECK-ERROR: error: invalid operand for instruction
3913 // CHECK-ERROR: ld1 {v15.8h}, [x32]
3916 ld1 {v0.16b, v2.16b}, [x0]
3917 ld1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]
3918 ld1 v0.8b, v1.8b}, [x0]
3919 ld1 {v0.8h-v4.8h}, [x0]
3920 ld1 {v1.8h-v1.8h}, [x0]
3921 ld1 {v15.8h-v17.4h}, [x15]
3922 ld1 {v0.8b-v2.8b, [x0]
3923 // CHECK-ERROR: error: invalid space between two vectors
3924 // CHECK-ERROR: ld1 {v0.16b, v2.16b}, [x0]
3926 // CHECK-ERROR: error: invalid number of vectors
3927 // CHECK-ERROR: ld1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]
3929 // CHECK-ERROR: error: '{' expected
3930 // CHECK-ERROR: ld1 v0.8b, v1.8b}, [x0]
3932 // CHECK-ERROR: error: invalid number of vectors
3933 // CHECK-ERROR: ld1 {v0.8h-v4.8h}, [x0]
3935 // CHECK-ERROR: error: invalid number of vectors
3936 // CHECK-ERROR: ld1 {v1.8h-v1.8h}, [x0]
3938 // CHECK-ERROR: error: expected the same vector layout
3939 // CHECK-ERROR: ld1 {v15.8h-v17.4h}, [x15]
3941 // CHECK-ERROR: error: '}' expected
3942 // CHECK-ERROR: ld1 {v0.8b-v2.8b, [x0]
3945 ld2 {v15.8h, v16.4h}, [x15]
3946 ld2 {v0.8b, v2.8b}, [x0]
3947 ld2 {v15.4h, v16.4h, v17.4h}, [x32]
3948 ld2 {v15.8h-v16.4h}, [x15]
3949 ld2 {v0.2d-v2.2d}, [x0]
3950 // CHECK-ERROR: error: invalid space between two vectors
3951 // CHECK-ERROR: ld2 {v15.8h, v16.4h}, [x15]
3953 // CHECK-ERROR: error: invalid space between two vectors
3954 // CHECK-ERROR: ld2 {v0.8b, v2.8b}, [x0]
3956 // CHECK-ERROR: error: invalid operand for instruction
3957 // CHECK-ERROR: ld2 {v15.4h, v16.4h, v17.4h}, [x32]
3959 // CHECK-ERROR: error: expected the same vector layout
3960 // CHECK-ERROR: ld2 {v15.8h-v16.4h}, [x15]
3962 // CHECK-ERROR: error: invalid operand for instruction
3963 // CHECK-ERROR: ld2 {v0.2d-v2.2d}, [x0]
3966 ld3 {v15.8h, v16.8h, v17.4h}, [x15]
3967 ld3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]
3968 ld3 {v0.8b, v2.8b, v3.8b}, [x0]
3969 ld3 {v15.8h-v17.4h}, [x15]
3970 ld3 {v31.4s-v2.4s}, [sp]
3971 // CHECK-ERROR: error: invalid space between two vectors
3972 // CHECK-ERROR: ld3 {v15.8h, v16.8h, v17.4h}, [x15]
3974 // CHECK-ERROR: error: expected vector type register
3975 // CHECK-ERROR: ld3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]
3977 // CHECK-ERROR: error: invalid space between two vectors
3978 // CHECK-ERROR: ld3 {v0.8b, v2.8b, v3.8b}, [x0]
3980 // CHECK-ERROR: error: expected the same vector layout
3981 // CHECK-ERROR: ld3 {v15.8h-v17.4h}, [x15]
3983 // CHECK-ERROR: error: invalid operand for instruction
3984 // CHECK-ERROR: ld3 {v31.4s-v2.4s}, [sp]
3987 ld4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]
3988 ld4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]
3989 ld4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]
3990 ld4 {v15.8h-v18.4h}, [x15]
3991 ld4 {v31.2s-v1.2s}, [x31]
3992 // CHECK-ERROR: error: invalid space between two vectors
3993 // CHECK-ERROR: ld4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]
3995 // CHECK-ERROR: error: invalid space between two vectors
3996 // CHECK-ERROR: ld4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]
3998 // CHECK-ERROR: error: invalid number of vectors
3999 // CHECK-ERROR: ld4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]
4001 // CHECK-ERROR: error: expected the same vector layout
4002 // CHECK-ERROR: ld4 {v15.8h-v18.4h}, [x15]
4004 // CHECK-ERROR: error: invalid operand for instruction
4005 // CHECK-ERROR: ld4 {v31.2s-v1.2s}, [x31]
4012 // CHECK-ERROR: error: expected vector type register
4013 // CHECK-ERROR: st1 {x3}, [x2]
4015 // CHECK-ERROR: error: expected vector type register
4016 // CHECK-ERROR: st1 {v4}, [x0]
4018 // CHECK-ERROR: error: expected vector type register
4019 // CHECK-ERROR: st1 {v32.16b}, [x0]
4021 // CHECK-ERROR: error: invalid operand for instruction
4022 // CHECK-ERROR: st1 {v15.8h}, [x32]
4025 st1 {v0.16b, v2.16b}, [x0]
4026 st1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]
4027 st1 v0.8b, v1.8b}, [x0]
4028 st1 {v0.8h-v4.8h}, [x0]
4029 st1 {v1.8h-v1.8h}, [x0]
4030 st1 {v15.8h-v17.4h}, [x15]
4031 st1 {v0.8b-v2.8b, [x0]
4032 // CHECK-ERROR: error: invalid space between two vectors
4033 // CHECK-ERROR: st1 {v0.16b, v2.16b}, [x0]
4035 // CHECK-ERROR: error: invalid number of vectors
4036 // CHECK-ERROR: st1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]
4038 // CHECK-ERROR: error: '{' expected
4039 // CHECK-ERROR: st1 v0.8b, v1.8b}, [x0]
4041 // CHECK-ERROR: error: invalid number of vectors
4042 // CHECK-ERROR: st1 {v0.8h-v4.8h}, [x0]
4044 // CHECK-ERROR: error: invalid number of vectors
4045 // CHECK-ERROR: st1 {v1.8h-v1.8h}, [x0]
4047 // CHECK-ERROR: error: expected the same vector layout
4048 // CHECK-ERROR: st1 {v15.8h-v17.4h}, [x15]
4050 // CHECK-ERROR: error: '}' expected
4051 // CHECK-ERROR: st1 {v0.8b-v2.8b, [x0]
4054 st2 {v15.8h, v16.4h}, [x15]
4055 st2 {v0.8b, v2.8b}, [x0]
4056 st2 {v15.4h, v16.4h, v17.4h}, [x30]
4057 st2 {v15.8h-v16.4h}, [x15]
4058 st2 {v0.2d-v2.2d}, [x0]
4059 // CHECK-ERROR: error: invalid space between two vectors
4060 // CHECK-ERROR: st2 {v15.8h, v16.4h}, [x15]
4062 // CHECK-ERROR: error: invalid space between two vectors
4063 // CHECK-ERROR: st2 {v0.8b, v2.8b}, [x0]
4065 // CHECK-ERROR: error: invalid operand for instruction
4066 // CHECK-ERROR: st2 {v15.4h, v16.4h, v17.4h}, [x30]
4068 // CHECK-ERROR: error: expected the same vector layout
4069 // CHECK-ERROR: st2 {v15.8h-v16.4h}, [x15]
4071 // CHECK-ERROR: error: invalid operand for instruction
4072 // CHECK-ERROR: st2 {v0.2d-v2.2d}, [x0]
4075 st3 {v15.8h, v16.8h, v17.4h}, [x15]
4076 st3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]
4077 st3 {v0.8b, v2.8b, v3.8b}, [x0]
4078 st3 {v15.8h-v17.4h}, [x15]
4079 st3 {v31.4s-v2.4s}, [sp]
4080 // CHECK-ERROR: error: invalid space between two vectors
4081 // CHECK-ERROR: st3 {v15.8h, v16.8h, v17.4h}, [x15]
4083 // CHECK-ERROR: error: expected vector type register
4084 // CHECK-ERROR: st3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]
4086 // CHECK-ERROR: error: invalid space between two vectors
4087 // CHECK-ERROR: st3 {v0.8b, v2.8b, v3.8b}, [x0]
4089 // CHECK-ERROR: error: expected the same vector layout
4090 // CHECK-ERROR: st3 {v15.8h-v17.4h}, [x15]
4092 // CHECK-ERROR: error: invalid operand for instruction
4093 // CHECK-ERROR: st3 {v31.4s-v2.4s}, [sp]
4096 st4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]
4097 st4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]
4098 st4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]
4099 st4 {v15.8h-v18.4h}, [x15]
4100 st4 {v31.2s-v1.2s}, [x31]
4101 // CHECK-ERROR: error: invalid space between two vectors
4102 // CHECK-ERROR: st4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]
4104 // CHECK-ERROR: error: invalid space between two vectors
4105 // CHECK-ERROR: st4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]
4107 // CHECK-ERROR: error: invalid number of vectors
4108 // CHECK-ERROR: st4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]
4110 // CHECK-ERROR: error: expected the same vector layout
4111 // CHECK-ERROR: st4 {v15.8h-v18.4h}, [x15]
4113 // CHECK-ERROR: error: invalid operand for instruction
4114 // CHECK-ERROR: st4 {v31.2s-v1.2s}, [x31]
4117 //----------------------------------------------------------------------
4118 // Vector post-index load/store multiple N-element structure
4119 // (class SIMD lselem-post)
4120 //----------------------------------------------------------------------
4121 ld1 {v0.16b}, [x0], #8
4122 ld1 {v0.8h, v1.16h}, [x0], x1
4123 ld1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24
4124 // CHECK-ERROR: error: invalid operand for instruction
4125 // CHECK-ERROR: ld1 {v0.16b}, [x0], #8
4127 // CHECK-ERROR: error: expected vector type register
4128 // CHECK-ERROR: ld1 {v0.8h, v1.16h}, [x0], x1
4130 // CHECK-ERROR: error: invalid operand for instruction
4131 // CHECK-ERROR: ld1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24
4134 ld2 {v0.16b, v1.16b}, [x0], #16
4135 ld3 {v5.2s, v6.2s, v7.2s}, [x1], #48
4136 ld4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1
4137 // CHECK-ERROR: error: invalid operand for instruction
4138 // CHECK-ERROR: ld2 {v0.16b, v1.16b}, [x0], #16
4140 // CHECK-ERROR: error: invalid operand for instruction
4141 // CHECK-ERROR: ld3 {v5.2s, v6.2s, v7.2s}, [x1], #48
4143 // CHECK-ERROR: error: invalid space between two vectors
4144 // CHECK-ERROR: ld4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1
4147 st1 {v0.16b}, [x0], #8
4148 st1 {v0.8h, v1.16h}, [x0], x1
4149 st1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24
4150 // CHECK-ERROR: error: invalid operand for instruction
4151 // CHECK-ERROR: st1 {v0.16b}, [x0], #8
4153 // CHECK-ERROR: error: expected vector type register
4154 // CHECK-ERROR: st1 {v0.8h, v1.16h}, [x0], x1
4156 // CHECK-ERROR: error: invalid operand for instruction
4157 // CHECK-ERROR: st1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24
4160 st2 {v0.16b, v1.16b}, [x0], #16
4161 st3 {v5.2s, v6.2s, v7.2s}, [x1], #48
4162 st4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1
4163 // CHECK-ERROR: error: invalid operand for instruction
4164 // CHECK-ERROR: st2 {v0.16b, v1.16b}, [x0], #16
4166 // CHECK-ERROR: error: invalid operand for instruction
4167 // CHECK-ERROR: st3 {v5.2s, v6.2s, v7.2s}, [x1], #48
4169 // CHECK-ERROR: error: invalid space between two vectors
4170 // CHECK-ERROR: st4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1
4173 //------------------------------------------------------------------------------
4174 // Load single N-element structure to all lanes of N consecutive
4175 // registers (N = 1,2,3,4)
4176 //------------------------------------------------------------------------------
4178 ld2r {v31.4s, v0.2s}, [sp]
4179 ld3r {v0.8b, v1.8b, v2.8b, v3.8b}, [x0]
4180 ld4r {v31.2s, v0.2s, v1.2d, v2.2s}, [sp]
4181 // CHECK-ERROR: error: expected vector type register
4182 // CHECK-ERROR: ld1r {x1}, [x0]
4184 // CHECK-ERROR: error: invalid space between two vectors
4185 // CHECK-ERROR: ld2r {v31.4s, v0.2s}, [sp]
4187 // CHECK-ERROR: error: invalid operand for instruction
4188 // CHECK-ERROR: ld3r {v0.8b, v1.8b, v2.8b, v3.8b}, [x0]
4190 // CHECK-ERROR: error: invalid space between two vectors
4191 // CHECK-ERROR: ld4r {v31.2s, v0.2s, v1.2d, v2.2s}, [sp]
4194 //------------------------------------------------------------------------------
4195 // Load/Store single N-element structure to/from one lane of N consecutive
4196 // registers (N = 1, 2,3,4)
4197 //------------------------------------------------------------------------------
4198 ld1 {v0.b}[16], [x0]
4199 ld2 {v15.h, v16.h}[8], [x15]
4200 ld3 {v31.s, v0.s, v1.s}[-1], [sp]
4201 ld4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]
4202 // CHECK-ERROR:: error: lane number incompatible with layout
4203 // CHECK-ERROR: ld1 {v0.b}[16], [x0]
4205 // CHECK-ERROR: error: lane number incompatible with layout
4206 // CHECK-ERROR: ld2 {v15.h, v16.h}[8], [x15]
4208 // CHECK-ERROR: error: expected lane number
4209 // CHECK-ERROR: ld3 {v31.s, v0.s, v1.s}[-1], [sp]
4211 // CHECK-ERROR: error: lane number incompatible with layout
4212 // CHECK-ERROR: ld4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]
4215 st1 {v0.d}[16], [x0]
4216 st2 {v31.s, v0.s}[3], [8]
4217 st3 {v15.h, v16.h, v17.h}[-1], [x15]
4218 st4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]
4219 // CHECK-ERROR:: error: lane number incompatible with layout
4220 // CHECK-ERROR: st1 {v0.d}[16], [x0]
4222 // CHECK-ERROR: error: invalid operand for instruction
4223 // CHECK-ERROR: st2 {v31.s, v0.s}[3], [8]
4225 // CHECK-ERROR: error: expected lane number
4226 // CHECK-ERROR: st3 {v15.h, v16.h, v17.h}[-1], [x15]
4228 // CHECK-ERROR: lane number incompatible with layout
4229 // CHECK-ERROR: st4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]
4232 //------------------------------------------------------------------------------
4233 // Post-index of load single N-element structure to all lanes of N consecutive
4234 // registers (N = 1,2,3,4)
4235 //------------------------------------------------------------------------------
4236 ld1r {v15.8h}, [x15], #5
4237 ld2r {v0.2d, v1.2d}, [x0], #7
4238 ld3r {v15.4h, v16.4h, v17.4h}, [x15], #1
4239 ld4r {v31.1d, v0.1d, v1.1d, v2.1d}, [sp], sp
4240 // CHECK-ERROR: error: invalid operand for instruction
4241 // CHECK-ERROR: ld1r {v15.8h}, [x15], #5
4243 // CHECK-ERROR: error: invalid operand for instruction
4244 // CHECK-ERROR: ld2r {v0.2d, v1.2d}, [x0], #7
4246 // CHECK-ERROR: error: invalid operand for instruction
4247 // CHECK-ERROR: ld3r {v15.4h, v16.4h, v17.4h}, [x15], #1
4249 // CHECK-ERROR: error: invalid operand for instruction
4250 // CHECK-ERROR: ld4r {v31.1d, v0.1d, v1.1d, v2.1d}, [sp], sp
4253 //------------------------------------------------------------------------------
4254 // Post-index of Load/Store single N-element structure to/from one lane of N
4255 // consecutive registers (N = 1, 2,3,4)
4256 //------------------------------------------------------------------------------
4257 ld1 {v0.b}[0], [x0], #2
4258 ld2 {v15.h, v16.h}[0], [x15], #3
4259 ld3 {v31.s, v0.s, v1.d}[0], [sp], x9
4260 ld4 {v0.d, v1.d, v2.d, v3.d}[1], [x0], #24
4261 // CHECK-ERROR: error: invalid operand for instruction
4262 // CHECK-ERROR: ld1 {v0.b}[0], [x0], #2
4264 // CHECK-ERROR: error: invalid operand for instruction
4265 // CHECK-ERROR: ld2 {v15.h, v16.h}[0], [x15], #3
4267 // CHECK-ERROR: error: expected the same vector layout
4268 // CHECK-ERROR: ld3 {v31.s, v0.s, v1.d}[0], [sp], x9
4270 // CHECK-ERROR: error: invalid operand for instruction
4271 // CHECK-ERROR: ld4 {v0.d, v1.d, v2.d, v3.d}[1], [x0], #24
4274 st1 {v0.d}[0], [x0], #7
4275 st2 {v31.s, v0.s}[0], [sp], #6
4276 st3 {v15.h, v16.h, v17.h}[0], [x15], #8
4277 st4 {v0.b, v1.b, v2.b, v3.b}[1], [x0], #1
4278 // CHECK-ERROR: error: invalid operand for instruction
4279 // CHECK-ERROR: st1 {v0.d}[0], [x0], #7
4281 // CHECK-ERROR: error: invalid operand for instruction
4282 // CHECK-ERROR: st2 {v31.s, v0.s}[0], [sp], #6
4284 // CHECK-ERROR: error: invalid operand for instruction
4285 // CHECK-ERROR: st3 {v15.h, v16.h, v17.h}[0], [x15], #8
4287 // CHECK-ERROR: error: invalid operand for instruction
4288 // CHECK-ERROR: st4 {v0.b, v1.b, v2.b, v3.b}[1], [x0], #1
4301 // CHECK-ERROR: error: lane number incompatible with layout
4302 // CHECK-ERROR: ins v2.b[16], w1
4304 // CHECK-ERROR: error: lane number incompatible with layout
4305 // CHECK-ERROR: ins v7.h[8], w14
4307 // CHECK-ERROR: error: lane number incompatible with layout
4308 // CHECK-ERROR: ins v20.s[5], w30
4310 // CHECK-ERROR: error: lane number incompatible with layout
4311 // CHECK-ERROR: ins v1.d[2], x7
4313 // CHECK-ERROR: error: invalid operand for instruction
4314 // CHECK-ERROR: ins v2.b[3], b1
4316 // CHECK-ERROR: error: invalid operand for instruction
4317 // CHECK-ERROR: ins v7.h[2], h14
4319 // CHECK-ERROR: error: invalid operand for instruction
4320 // CHECK-ERROR: ins v20.s[1], s30
4322 // CHECK-ERROR: error: invalid operand for instruction
4323 // CHECK-ERROR: ins v1.d[0], d7
4337 // CHECK-ERROR error: lane number incompatible with layout
4338 // CHECK-ERROR smov w1, v0.b[16]
4340 // CHECK-ERROR error: lane number incompatible with layout
4341 // CHECK-ERROR smov w14, v6.h[8]
4343 // CHECK-ERROR error: lane number incompatible with layout
4344 // CHECK-ERROR smov x1, v0.b[16]
4346 // CHECK-ERROR error: lane number incompatible with layout
4347 // CHECK-ERROR smov x14, v6.h[8]
4349 // CHECK-ERROR error: lane number incompatible with layout
4350 // CHECK-ERROR smov x20, v9.s[5]
4352 // CHECK-ERROR error: invalid operand for instruction
4353 // CHECK-ERROR smov w1, v0.d[0]
4355 // CHECK-ERROR error: invalid operand for instruction
4356 // CHECK-ERROR smov w14, v6.d[1]
4358 // CHECK-ERROR error: invalid operand for instruction
4359 // CHECK-ERROR smov x1, v0.d[0]
4361 // CHECK-ERROR error: invalid operand for instruction
4362 // CHECK-ERROR smov x14, v6.d[1]
4364 // CHECK-ERROR error: invalid operand for instruction
4365 // CHECK-ERROR smov x20, v9.d[0]
4376 // CHECK-ERROR error: lane number incompatible with layout
4377 // CHECK-ERROR umov w1, v0.b[16]
4379 // CHECK-ERROR error: lane number incompatible with layout
4380 // CHECK-ERROR umov w14, v6.h[8]
4382 // CHECK-ERROR error: lane number incompatible with layout
4383 // CHECK-ERROR umov w20, v9.s[5]
4385 // CHECK-ERROR error: lane number incompatible with layout
4386 // CHECK-ERROR umov x7, v18.d[3]
4388 // CHECK-ERROR error: invalid operand for instruction
4389 // CHECK-ERROR umov w1, v0.d[0]
4391 // CHECK-ERROR error: invalid operand for instruction
4392 // CHECK-ERROR umov s20, v9.s[2]
4394 // CHECK-ERROR error: invalid operand for instruction
4395 // CHECK-ERROR umov d7, v18.d[1]
4398 Ins v1.h[2], v3.b[6]
4399 Ins v6.h[7], v7.s[2]
4400 Ins v15.d[0], v22.s[2]
4401 Ins v0.d[0], v4.b[1]
4403 // CHECK-ERROR error: invalid operand for instruction
4404 // CHECK-ERROR Ins v1.h[2], v3.b[6]
4406 // CHECK-ERROR error: invalid operand for instruction
4407 // CHECK-ERROR Ins v6.h[7], v7.s[2]
4409 // CHECK-ERROR error: invalid operand for instruction
4410 // CHECK-ERROR Ins v15.d[0], v22.s[2]
4412 // CHECK-ERROR error: invalid operand for instruction
4413 // CHECK-ERROR Ins v0.d[0], v4.b[1]
4418 dup v17.2d, v20.s[0]
4421 dup v17.4s, v20.d[0]
4424 // CHECK-ERROR error: invalid operand for instruction
4425 // CHECK-ERROR dup v1.8h, v2.b[2]
4427 // CHECK-ERROR error: invalid operand for instruction
4428 // CHECK-ERROR dup v11.4s, v7.h[7]
4430 // CHECK-ERROR error: invalid operand for instruction
4431 // CHECK-ERROR dup v17.2d, v20.s[0]
4433 // CHECK-ERROR error: invalid operand for instruction
4434 // CHECK-ERROR dup v1.16b, v2.h[2]
4436 // CHECK-ERROR invalid operand for instruction
4437 // CHECK-ERROR dup v11.8h, v7.s[3]
4439 // CHECK-ERROR invalid operand for instruction
4440 // CHECK-ERROR dup v17.4s, v20.d[0]
4442 // CHECK-ERROR invalid operand for instruction
4443 // CHECK-ERROR dup v5.2d, v1.b[1]
4454 // CHECK-ERROR error: invalid operand for instruction
4455 // CHECK-ERROR dup v1.8b, b1
4457 // CHECK-ERROR error: invalid operand for instruction
4458 // CHECK-ERROR dup v11.4h, h14
4460 // CHECK-ERROR error: invalid operand for instruction
4461 // CHECK-ERROR dup v17.2s, s30
4463 // CHECK-ERROR error: invalid operand for instruction
4464 // CHECK-ERROR dup v1.16b, d2
4466 // CHECK-ERROR error: invalid operand for instruction
4467 // CHECK-ERROR dup v11.8s, w16
4469 // CHECK-ERROR error: invalid operand for instruction
4470 // CHECK-ERROR dup v17.4d, w28
4472 // CHECK-ERROR error: invalid operand for instruction
4473 // CHECK-ERROR dup v5.2d, w0
4476 //----------------------------------------------------------------------
4477 // Scalar Compare Bitwise Equal
4478 //----------------------------------------------------------------------
4482 // CHECK-ERROR: error: invalid operand for instruction
4483 // CHECK-ERROR: cmeq b20, d21, d22
4486 //----------------------------------------------------------------------
4487 // Scalar Compare Bitwise Equal To Zero
4488 //----------------------------------------------------------------------
4492 // CHECK-ERROR: error: invalid operand for instruction
4493 // CHECK-ERROR: cmeq d20, b21, #0
4496 //----------------------------------------------------------------------
4497 // Scalar Compare Unsigned Higher Or Same
4498 //----------------------------------------------------------------------
4502 // CHECK-ERROR: error: invalid operand for instruction
4503 // CHECK-ERROR: cmhs b20, d21, d22
4507 //----------------------------------------------------------------------
4508 // Scalar Compare Signed Greather Than Or Equal
4509 //----------------------------------------------------------------------
4513 // CHECK-ERROR: error: invalid operand for instruction
4514 // CHECK-ERROR: cmge b20, d21, d22
4517 //----------------------------------------------------------------------
4518 // Scalar Compare Signed Greather Than Or Equal To Zero
4519 //----------------------------------------------------------------------
4523 // CHECK-ERROR: error: invalid operand for instruction
4524 // CHECK-ERROR: cmge d20, b21, #0
4527 //----------------------------------------------------------------------
4528 // Scalar Compare Unsigned Higher
4529 //----------------------------------------------------------------------
4533 // CHECK-ERROR: error: invalid operand for instruction
4534 // CHECK-ERROR: cmhi b20, d21, d22
4537 //----------------------------------------------------------------------
4538 // Scalar Compare Signed Greater Than
4539 //----------------------------------------------------------------------
4543 // CHECK-ERROR: error: invalid operand for instruction
4544 // CHECK-ERROR: cmgt b20, d21, d22
4547 //----------------------------------------------------------------------
4548 // Scalar Compare Signed Greater Than Zero
4549 //----------------------------------------------------------------------
4553 // CHECK-ERROR: error: invalid operand for instruction
4554 // CHECK-ERROR: cmgt d20, b21, #0
4557 //----------------------------------------------------------------------
4558 // Scalar Compare Signed Less Than Or Equal To Zero
4559 //----------------------------------------------------------------------
4563 // CHECK-ERROR: error: invalid operand for instruction
4564 // CHECK-ERROR: cmle d20, b21, #0
4567 //----------------------------------------------------------------------
4568 // Scalar Compare Less Than Zero
4569 //----------------------------------------------------------------------
4573 // CHECK-ERROR: error: invalid operand for instruction
4574 // CHECK-ERROR: cmlt d20, b21, #0
4577 //----------------------------------------------------------------------
4578 // Scalar Compare Bitwise Test Bits
4579 //----------------------------------------------------------------------
4583 // CHECK-ERROR: error: invalid operand for instruction
4584 // CHECK-ERROR: cmtst b20, d21, d22
4587 //----------------------------------------------------------------------
4588 // Scalar Floating-point Compare Mask Equal
4589 //----------------------------------------------------------------------
4594 // CHECK-ERROR: error: invalid operand for instruction
4595 // CHECK-ERROR: fcmeq s10, h11, s12
4597 // CHECK-ERROR: error: invalid operand for instruction
4598 // CHECK-ERROR: fcmeq d20, s21, d22
4601 //----------------------------------------------------------------------
4602 // Scalar Floating-point Compare Mask Equal To Zero
4603 //----------------------------------------------------------------------
4605 fcmeq h10, s11, #0.0
4606 fcmeq d20, s21, #0.0
4608 // CHECK-ERROR: error: invalid operand for instruction
4609 // CHECK-ERROR: fcmeq h10, s11, #0.0
4611 // CHECK-ERROR: error: invalid operand for instruction
4612 // CHECK-ERROR: fcmeq d20, s21, #0.0
4615 //----------------------------------------------------------------------
4616 // Scalar Floating-point Compare Mask Greater Than Or Equal
4617 //----------------------------------------------------------------------
4622 // CHECK-ERROR: error: invalid operand for instruction
4623 // CHECK-ERROR: fcmge s10, h11, s12
4625 // CHECK-ERROR: error: invalid operand for instruction
4626 // CHECK-ERROR: fcmge d20, s21, d22
4629 //----------------------------------------------------------------------
4630 // Scalar Floating-point Compare Mask Greater Than Or Equal To Zero
4631 //----------------------------------------------------------------------
4633 fcmge h10, s11, #0.0
4634 fcmge d20, s21, #0.0
4636 // CHECK-ERROR: error: invalid operand for instruction
4637 // CHECK-ERROR: fcmge h10, s11, #0.0
4639 // CHECK-ERROR: error: invalid operand for instruction
4640 // CHECK-ERROR: fcmge d20, s21, #0.0
4643 //----------------------------------------------------------------------
4644 // Scalar Floating-point Compare Mask Greather Than
4645 //----------------------------------------------------------------------
4650 // CHECK-ERROR: error: invalid operand for instruction
4651 // CHECK-ERROR: fcmgt s10, h11, s12
4653 // CHECK-ERROR: error: invalid operand for instruction
4654 // CHECK-ERROR: fcmgt d20, s21, d22
4657 //----------------------------------------------------------------------
4658 // Scalar Floating-point Compare Mask Greather Than Zero
4659 //----------------------------------------------------------------------
4661 fcmgt h10, s11, #0.0
4662 fcmgt d20, s21, #0.0
4664 // CHECK-ERROR: error: invalid operand for instruction
4665 // CHECK-ERROR: fcmgt h10, s11, #0.0
4667 // CHECK-ERROR: error: invalid operand for instruction
4668 // CHECK-ERROR: fcmgt d20, s21, #0.0
4671 //----------------------------------------------------------------------
4672 // Scalar Floating-point Compare Mask Less Than Or Equal To Zero
4673 //----------------------------------------------------------------------
4675 fcmle h10, s11, #0.0
4676 fcmle d20, s21, #0.0
4678 // CHECK-ERROR: error: invalid operand for instruction
4679 // CHECK-ERROR: fcmle h10, s11, #0.0
4681 // CHECK-ERROR: error: invalid operand for instruction
4682 // CHECK-ERROR: fcmle d20, s21, #0.0
4685 //----------------------------------------------------------------------
4686 // Scalar Floating-point Compare Mask Less Than
4687 //----------------------------------------------------------------------
4689 fcmlt h10, s11, #0.0
4690 fcmlt d20, s21, #0.0
4692 // CHECK-ERROR: error: invalid operand for instruction
4693 // CHECK-ERROR: fcmlt h10, s11, #0.0
4695 // CHECK-ERROR: error: invalid operand for instruction
4696 // CHECK-ERROR: fcmlt d20, s21, #0.0
4699 //----------------------------------------------------------------------
4700 // Scalar Floating-point Absolute Compare Mask Greater Than Or Equal
4701 //----------------------------------------------------------------------
4706 // CHECK-ERROR: error: invalid operand for instruction
4707 // CHECK-ERROR: facge s10, h11, s12
4709 // CHECK-ERROR: error: invalid operand for instruction
4710 // CHECK-ERROR: facge d20, s21, d22
4713 //----------------------------------------------------------------------
4714 // Scalar Floating-point Absolute Compare Mask Greater Than
4715 //----------------------------------------------------------------------
4720 // CHECK-ERROR: error: invalid operand for instruction
4721 // CHECK-ERROR: facgt s10, h11, s12
4723 // CHECK-ERROR: error: invalid operand for instruction
4724 // CHECK-ERROR: facgt d20, d21, s22
4727 //----------------------------------------------------------------------
4728 // Scalar Signed Saturating Accumulated of Unsigned Value
4729 //----------------------------------------------------------------------
4736 // CHECK-ERROR: error: invalid operand for instruction
4737 // CHECK-ERROR: suqadd b0, h1
4739 // CHECK-ERROR: error: invalid operand for instruction
4740 // CHECK-ERROR: suqadd h0, s1
4742 // CHECK-ERROR: error: invalid operand for instruction
4743 // CHECK-ERROR: suqadd s0, d1
4745 // CHECK-ERROR: error: invalid operand for instruction
4746 // CHECK-ERROR: suqadd d0, b0
4749 //----------------------------------------------------------------------
4750 // Scalar Unsigned Saturating Accumulated of Signed Value
4751 //----------------------------------------------------------------------
4758 // CHECK-ERROR: error: invalid operand for instruction
4759 // CHECK-ERROR: usqadd b0, h1
4761 // CHECK-ERROR: error: invalid operand for instruction
4762 // CHECK-ERROR: usqadd h0, s1
4764 // CHECK-ERROR: error: invalid operand for instruction
4765 // CHECK-ERROR: usqadd s0, d1
4767 // CHECK-ERROR: error: invalid operand for instruction
4768 // CHECK-ERROR: usqadd d0, b1
4771 //----------------------------------------------------------------------
4772 // Scalar Absolute Value
4773 //----------------------------------------------------------------------
4777 // CHECK-ERROR: error: invalid operand for instruction
4778 // CHECK-ERROR: abs d29, s24
4781 //----------------------------------------------------------------------
4783 //----------------------------------------------------------------------
4787 // CHECK-ERROR: error: invalid operand for instruction
4788 // CHECK-ERROR: neg d29, s24
4791 //----------------------------------------------------------------------
4792 // Signed Saturating Doubling Multiply-Add Long
4793 //----------------------------------------------------------------------
4795 sqdmlal s17, h27, s12
4796 sqdmlal d19, s24, d12
4798 // CHECK-ERROR: error: invalid operand for instruction
4799 // CHECK-ERROR: sqdmlal s17, h27, s12
4801 // CHECK-ERROR: error: too few operands for instruction
4802 // CHECK-ERROR: sqdmlal d19, s24, d12
4805 //----------------------------------------------------------------------
4806 // Signed Saturating Doubling Multiply-Subtract Long
4807 //----------------------------------------------------------------------
4809 sqdmlsl s14, h12, s25
4810 sqdmlsl d12, s23, d13
4812 // CHECK-ERROR: error: invalid operand for instruction
4813 // CHECK-ERROR: sqdmlsl s14, h12, s25
4815 // CHECK-ERROR: error: too few operands for instruction
4816 // CHECK-ERROR: sqdmlsl d12, s23, d13
4819 //----------------------------------------------------------------------
4820 // Signed Saturating Doubling Multiply Long
4821 //----------------------------------------------------------------------
4823 sqdmull s12, h22, s12
4824 sqdmull d15, s22, d12
4826 // CHECK-ERROR: error: invalid operand for instruction
4827 // CHECK-ERROR: sqdmull s12, h22, s12
4829 // CHECK-ERROR: error: too few operands for instruction
4830 // CHECK-ERROR: sqdmull d15, s22, d12
4833 //----------------------------------------------------------------------
4834 // Scalar Signed Saturating Extract Unsigned Narrow
4835 //----------------------------------------------------------------------
4841 // CHECK-ERROR: error: invalid operand for instruction
4842 // CHECK-ERROR: sqxtun b19, b14
4844 // CHECK-ERROR: error: invalid operand for instruction
4845 // CHECK-ERROR: sqxtun h21, h15
4847 // CHECK-ERROR: error: invalid operand for instruction
4848 // CHECK-ERROR: sqxtun s20, s12
4851 //----------------------------------------------------------------------
4852 // Scalar Signed Saturating Extract Signed Narrow
4853 //----------------------------------------------------------------------
4859 // CHECK-ERROR: error: invalid operand for instruction
4860 // CHECK-ERROR: sqxtn b18, b18
4862 // CHECK-ERROR: error: invalid operand for instruction
4863 // CHECK-ERROR: sqxtn h20, h17
4865 // CHECK-ERROR: error: invalid operand for instruction
4866 // CHECK-ERROR: sqxtn s19, s14
4870 //----------------------------------------------------------------------
4871 // Scalar Unsigned Saturating Extract Narrow
4872 //----------------------------------------------------------------------
4878 // CHECK-ERROR: error: invalid operand for instruction
4879 // CHECK-ERROR: uqxtn b18, b18
4881 // CHECK-ERROR: error: invalid operand for instruction
4882 // CHECK-ERROR: uqxtn h20, h17
4884 // CHECK-ERROR: error: invalid operand for instruction
4885 // CHECK-ERROR: uqxtn s19, s14
4888 //----------------------------------------------------------------------
4889 // Scalar Signed Shift Right (Immediate)
4890 //----------------------------------------------------------------------
4893 // CHECK-ERROR: error: expected integer in range [1, 64]
4894 // CHECK-ERROR: sshr d15, d16, #99
4899 // CHECK-ERROR: error: invalid operand for instruction
4900 // CHECK-ERROR: sshr d15, s16, #31
4903 //----------------------------------------------------------------------
4904 // Scalar Unsigned Shift Right (Immediate)
4905 //----------------------------------------------------------------------
4909 // CHECK-ERROR: error: expected integer in range [1, 64]
4910 // CHECK-ERROR: ushr d10, d17, #99
4913 //----------------------------------------------------------------------
4914 // Scalar Signed Rounding Shift Right (Immediate)
4915 //----------------------------------------------------------------------
4919 // CHECK-ERROR: error: expected integer in range [1, 64]
4920 // CHECK-ERROR: srshr d19, d18, #99
4923 //----------------------------------------------------------------------
4924 // Scalar Unigned Rounding Shift Right (Immediate)
4925 //----------------------------------------------------------------------
4929 // CHECK-ERROR: error: expected integer in range [1, 64]
4930 // CHECK-ERROR: urshr d20, d23, #99
4933 //----------------------------------------------------------------------
4934 // Scalar Signed Shift Right and Accumulate (Immediate)
4935 //----------------------------------------------------------------------
4939 // CHECK-ERROR: error: expected integer in range [1, 64]
4940 // CHECK-ERROR: ssra d18, d12, #99
4943 //----------------------------------------------------------------------
4944 // Scalar Unsigned Shift Right and Accumulate (Immediate)
4945 //----------------------------------------------------------------------
4949 // CHECK-ERROR: error: expected integer in range [1, 64]
4950 // CHECK-ERROR: usra d20, d13, #99
4953 //----------------------------------------------------------------------
4954 // Scalar Signed Rounding Shift Right and Accumulate (Immediate)
4955 //----------------------------------------------------------------------
4959 // CHECK-ERROR: error: expected integer in range [1, 64]
4960 // CHECK-ERROR: srsra d15, d11, #99
4963 //----------------------------------------------------------------------
4964 // Scalar Unsigned Rounding Shift Right and Accumulate (Immediate)
4965 //----------------------------------------------------------------------
4969 // CHECK-ERROR: error: expected integer in range [1, 64]
4970 // CHECK-ERROR: ursra d18, d10, #99
4973 //----------------------------------------------------------------------
4974 // Scalar Shift Left (Immediate)
4975 //----------------------------------------------------------------------
4979 // CHECK-ERROR: error: expected integer in range [0, 63]
4980 // CHECK-ERROR: shl d7, d10, #99
4985 // CHECK-ERROR: error: invalid operand for instruction
4986 // CHECK-ERROR: shl d7, s16, #31
4989 //----------------------------------------------------------------------
4990 // Signed Saturating Shift Left (Immediate)
4991 //----------------------------------------------------------------------
4998 // CHECK-ERROR: error: expected integer in range [0, 7]
4999 // CHECK-ERROR: sqshl b11, b19, #99
5001 // CHECK-ERROR: error: expected integer in range [0, 15]
5002 // CHECK-ERROR: sqshl h13, h18, #99
5004 // CHECK-ERROR: error: expected integer in range [0, 31]
5005 // CHECK-ERROR: sqshl s14, s17, #99
5007 // CHECK-ERROR: error: expected integer in range [0, 63]
5008 // CHECK-ERROR: sqshl d15, d16, #99
5011 //----------------------------------------------------------------------
5012 // Unsigned Saturating Shift Left (Immediate)
5013 //----------------------------------------------------------------------
5020 // CHECK-ERROR: error: expected integer in range [0, 7]
5021 // CHECK-ERROR: uqshl b18, b15, #99
5023 // CHECK-ERROR: error: expected integer in range [0, 15]
5024 // CHECK-ERROR: uqshl h11, h18, #99
5026 // CHECK-ERROR: error: expected integer in range [0, 31]
5027 // CHECK-ERROR: uqshl s14, s19, #99
5029 // CHECK-ERROR: error: expected integer in range [0, 63]
5030 // CHECK-ERROR: uqshl d15, d12, #99
5033 //----------------------------------------------------------------------
5034 // Signed Saturating Shift Left Unsigned (Immediate)
5035 //----------------------------------------------------------------------
5037 sqshlu b15, b18, #99
5038 sqshlu h19, h17, #99
5039 sqshlu s16, s14, #99
5040 sqshlu d11, d13, #99
5042 // CHECK-ERROR: error: expected integer in range [0, 7]
5043 // CHECK-ERROR: sqshlu b15, b18, #99
5045 // CHECK-ERROR: error: expected integer in range [0, 15]
5046 // CHECK-ERROR: sqshlu h19, h17, #99
5048 // CHECK-ERROR: error: expected integer in range [0, 31]
5049 // CHECK-ERROR: sqshlu s16, s14, #99
5051 // CHECK-ERROR: error: expected integer in range [0, 63]
5052 // CHECK-ERROR: sqshlu d11, d13, #99
5055 //----------------------------------------------------------------------
5056 // Shift Right And Insert (Immediate)
5057 //----------------------------------------------------------------------
5061 // CHECK-ERROR: error: expected integer in range [1, 64]
5062 // CHECK-ERROR: sri d10, d12, #99
5065 //----------------------------------------------------------------------
5066 // Shift Left And Insert (Immediate)
5067 //----------------------------------------------------------------------
5071 // CHECK-ERROR: error: expected integer in range [0, 63]
5072 // CHECK-ERROR: sli d10, d14, #99
5075 //----------------------------------------------------------------------
5076 // Signed Saturating Shift Right Narrow (Immediate)
5077 //----------------------------------------------------------------------
5079 sqshrn b10, h15, #99
5080 sqshrn h17, s10, #99
5081 sqshrn s18, d10, #99
5083 // CHECK-ERROR: error: expected integer in range [1, 8]
5084 // CHECK-ERROR: sqshrn b10, h15, #99
5086 // CHECK-ERROR: error: expected integer in range [1, 16]
5087 // CHECK-ERROR: sqshrn h17, s10, #99
5089 // CHECK-ERROR: error: expected integer in range [1, 32]
5090 // CHECK-ERROR: sqshrn s18, d10, #99
5093 //----------------------------------------------------------------------
5094 // Unsigned Saturating Shift Right Narrow (Immediate)
5095 //----------------------------------------------------------------------
5097 uqshrn b12, h10, #99
5098 uqshrn h10, s14, #99
5099 uqshrn s10, d12, #99
5101 // CHECK-ERROR: error: expected integer in range [1, 8]
5102 // CHECK-ERROR: uqshrn b12, h10, #99
5104 // CHECK-ERROR: error: expected integer in range [1, 16]
5105 // CHECK-ERROR: uqshrn h10, s14, #99
5107 // CHECK-ERROR: error: expected integer in range [1, 32]
5108 // CHECK-ERROR: uqshrn s10, d12, #99
5111 //----------------------------------------------------------------------
5112 // Signed Saturating Rounded Shift Right Narrow (Immediate)
5113 //----------------------------------------------------------------------
5115 sqrshrn b10, h13, #99
5116 sqrshrn h15, s10, #99
5117 sqrshrn s15, d12, #99
5119 // CHECK-ERROR: error: expected integer in range [1, 8]
5120 // CHECK-ERROR: sqrshrn b10, h13, #99
5122 // CHECK-ERROR: error: expected integer in range [1, 16]
5123 // CHECK-ERROR: sqrshrn h15, s10, #99
5125 // CHECK-ERROR: error: expected integer in range [1, 32]
5126 // CHECK-ERROR: sqrshrn s15, d12, #99
5129 //----------------------------------------------------------------------
5130 // Unsigned Saturating Rounded Shift Right Narrow (Immediate)
5131 //----------------------------------------------------------------------
5133 uqrshrn b10, h12, #99
5134 uqrshrn h12, s10, #99
5135 uqrshrn s10, d10, #99
5137 // CHECK-ERROR: error: expected integer in range [1, 8]
5138 // CHECK-ERROR: uqrshrn b10, h12, #99
5140 // CHECK-ERROR: error: expected integer in range [1, 16]
5141 // CHECK-ERROR: uqrshrn h12, s10, #99
5143 // CHECK-ERROR: error: expected integer in range [1, 32]
5144 // CHECK-ERROR: uqrshrn s10, d10, #99
5147 //----------------------------------------------------------------------
5148 // Signed Saturating Shift Right Unsigned Narrow (Immediate)
5149 //----------------------------------------------------------------------
5151 sqshrun b15, h10, #99
5152 sqshrun h20, s14, #99
5153 sqshrun s10, d15, #99
5155 // CHECK-ERROR: error: expected integer in range [1, 8]
5156 // CHECK-ERROR: sqshrun b15, h10, #99
5158 // CHECK-ERROR: error: expected integer in range [1, 16]
5159 // CHECK-ERROR: sqshrun h20, s14, #99
5161 // CHECK-ERROR: error: expected integer in range [1, 32]
5162 // CHECK-ERROR: sqshrun s10, d15, #99
5165 //----------------------------------------------------------------------
5166 // Signed Saturating Rounded Shift Right Unsigned Narrow (Immediate)
5167 //----------------------------------------------------------------------
5169 sqrshrun b17, h10, #99
5170 sqrshrun h10, s13, #99
5171 sqrshrun s22, d16, #99
5173 // CHECK-ERROR: error: expected integer in range [1, 8]
5174 // CHECK-ERROR: sqrshrun b17, h10, #99
5176 // CHECK-ERROR: error: expected integer in range [1, 16]
5177 // CHECK-ERROR: sqrshrun h10, s13, #99
5179 // CHECK-ERROR: error: expected integer in range [1, 32]
5180 // CHECK-ERROR: sqrshrun s22, d16, #99
5183 //----------------------------------------------------------------------
5184 // Scalar Signed Fixed-point Convert To Floating-Point (Immediate)
5185 //----------------------------------------------------------------------
5192 // CHECK-ERROR: error: expected integer in range [1, 32]
5193 // CHECK-ERROR: scvtf s22, s13, #0
5195 // CHECK-ERROR: error: expected integer in range [1, 32]
5196 // CHECK-ERROR: scvtf s22, s13, #33
5198 // CHECK-ERROR: error: expected integer in range [1, 64]
5199 // CHECK-ERROR: scvtf d21, d12, #65
5201 // CHECK-ERROR: error: invalid operand for instruction
5202 // CHECK-ERROR: scvtf d21, s12, #31
5205 //----------------------------------------------------------------------
5206 // Scalar Unsigned Fixed-point Convert To Floating-Point (Immediate)
5207 //----------------------------------------------------------------------
5213 // CHECK-ERROR: error: expected integer in range [1, 32]
5214 // CHECK-ERROR: ucvtf s22, s13, #34
5216 // CHECK-ERROR: error: expected integer in range [1, 64]
5217 // CHECK-ERROR: ucvtf d21, d14, #65
5219 // CHECK-ERROR: error: invalid operand for instruction
5220 // CHECK-ERROR: ucvtf d21, s14, #64
5223 //------------------------------------------------------------------------------
5225 //------------------------------------------------------------------------------
5227 rev32 v30.2s, v31.2s
5228 rev32 v30.4s, v31.4s
5229 rev32 v30.2d, v31.2d
5236 // CHECK-ERROR: error: invalid operand for instruction
5237 // CHECK-ERROR: rev64 v6.2d, v8.2d
5239 // CHECK-ERROR: error: invalid operand for instruction
5240 // CHECK-ERROR: rev32 v30.2s, v31.2s
5242 // CHECK-ERROR: error: invalid operand for instruction
5243 // CHECK-ERROR: rev32 v30.4s, v31.4s
5245 // CHECK-ERROR: error: invalid operand for instruction
5246 // CHECK-ERROR: rev32 v30.2d, v31.2d
5248 // CHECK-ERROR: error: invalid operand for instruction
5249 // CHECK-ERROR: rev16 v21.4h, v1.4h
5251 // CHECK-ERROR: error: invalid operand for instruction
5252 // CHECK-ERROR: rev16 v21.8h, v1.8h
5254 // CHECK-ERROR: error: invalid operand for instruction
5255 // CHECK-ERROR: rev16 v21.2s, v1.2s
5257 // CHECK-ERROR: error: invalid operand for instruction
5258 // CHECK-ERROR: rev16 v21.4s, v1.4s
5260 // CHECK-ERROR: error: invalid operand for instruction
5261 // CHECK-ERROR: rev16 v21.2d, v1.2d
5264 //------------------------------------------------------------------------------
5265 // Signed integer pairwise add long
5266 //------------------------------------------------------------------------------
5268 saddlp v3.8h, v21.8h
5273 // CHECK-ERROR: error: invalid operand for instruction
5274 // CHECK-ERROR: saddlp v3.8h, v21.8h
5276 // CHECK-ERROR: error: invalid operand for instruction
5277 // CHECK-ERROR: saddlp v8.8b, v5.8b
5279 // CHECK-ERROR: error: invalid operand for instruction
5280 // CHECK-ERROR: saddlp v9.8h, v1.4s
5282 // CHECK-ERROR: error: invalid operand for instruction
5283 // CHECK-ERROR: saddlp v0.4s, v1.2d
5286 //------------------------------------------------------------------------------
5287 // Unsigned integer pairwise add long
5288 //------------------------------------------------------------------------------
5290 uaddlp v3.8h, v21.8h
5295 // CHECK-ERROR: error: invalid operand for instruction
5296 // CHECK-ERROR: uaddlp v3.8h, v21.8h
5298 // CHECK-ERROR: error: invalid operand for instruction
5299 // CHECK-ERROR: uaddlp v8.8b, v5.8b
5301 // CHECK-ERROR: error: invalid operand for instruction
5302 // CHECK-ERROR: uaddlp v9.8h, v1.4s
5304 // CHECK-ERROR: error: invalid operand for instruction
5305 // CHECK-ERROR: uaddlp v0.4s, v1.2d
5308 //------------------------------------------------------------------------------
5309 // Signed integer pairwise add and accumulate long
5310 //------------------------------------------------------------------------------
5312 sadalp v3.16b, v21.16b
5316 sadalp v12.2d, v4.8h
5318 // CHECK-ERROR: error: invalid operand for instruction
5319 // CHECK-ERROR: sadalp v3.16b, v21.16b
5321 // CHECK-ERROR: error: invalid operand for instruction
5322 // CHECK-ERROR: sadalp v8.4h, v5.4h
5324 // CHECK-ERROR: error: invalid operand for instruction
5325 // CHECK-ERROR: sadalp v9.4s, v1.4s
5327 // CHECK-ERROR: error: invalid operand for instruction
5328 // CHECK-ERROR: sadalp v0.4h, v1.2s
5330 // CHECK-ERROR: error: invalid operand for instruction
5331 // CHECK-ERROR: sadalp v12.2d, v4.8h
5334 //------------------------------------------------------------------------------
5335 // Unsigned integer pairwise add and accumulate long
5336 //------------------------------------------------------------------------------
5338 uadalp v3.16b, v21.16b
5342 uadalp v12.2d, v4.8h
5344 // CHECK-ERROR: error: invalid operand for instruction
5345 // CHECK-ERROR: uadalp v3.16b, v21.16b
5347 // CHECK-ERROR: error: invalid operand for instruction
5348 // CHECK-ERROR: uadalp v8.4h, v5.4h
5350 // CHECK-ERROR: error: invalid operand for instruction
5351 // CHECK-ERROR: uadalp v9.4s, v1.4s
5353 // CHECK-ERROR: error: invalid operand for instruction
5354 // CHECK-ERROR: uadalp v0.4h, v1.2s
5356 // CHECK-ERROR: error: invalid operand for instruction
5357 // CHECK-ERROR: uadalp v12.2d, v4.8h
5360 //------------------------------------------------------------------------------
5361 // Signed integer saturating accumulate of unsigned value
5362 //------------------------------------------------------------------------------
5364 suqadd v0.16b, v31.8b
5366 suqadd v13.4h, v21.4s
5369 // CHECK-ERROR: error: invalid operand for instruction
5370 // CHECK-ERROR: suqadd v0.16b, v31.8b
5372 // CHECK-ERROR: error: invalid operand for instruction
5373 // CHECK-ERROR: suqadd v1.8b, v9.8h
5375 // CHECK-ERROR: error: invalid operand for instruction
5376 // CHECK-ERROR: suqadd v13.4h, v21.4s
5378 // CHECK-ERROR: error: invalid operand for instruction
5379 // CHECK-ERROR: suqadd v4.2s, v0.2d
5382 //------------------------------------------------------------------------------
5383 // Unsigned integer saturating accumulate of signed value
5384 //------------------------------------------------------------------------------
5386 usqadd v0.16b, v31.8b
5388 usqadd v13.4h, v21.4s
5391 // CHECK-ERROR: error: invalid operand for instruction
5392 // CHECK-ERROR: usqadd v0.16b, v31.8b
5394 // CHECK-ERROR: error: invalid operand for instruction
5395 // CHECK-ERROR: usqadd v2.8h, v4.4h
5397 // CHECK-ERROR: error: invalid operand for instruction
5398 // CHECK-ERROR: usqadd v13.4h, v21.4s
5400 // CHECK-ERROR: error: invalid operand for instruction
5401 // CHECK-ERROR: usqadd v4.2s, v0.2d
5404 //------------------------------------------------------------------------------
5405 // Integer saturating absolute
5406 //------------------------------------------------------------------------------
5408 sqabs v0.16b, v31.8b
5413 // CHECK-ERROR: error: invalid operand for instruction
5414 // CHECK-ERROR: sqabs v0.16b, v31.8b
5416 // CHECK-ERROR: error: invalid operand for instruction
5417 // CHECK-ERROR: sqabs v2.8h, v4.4h
5419 // CHECK-ERROR: error: invalid operand for instruction
5420 // CHECK-ERROR: sqabs v6.4s, v8.2s
5422 // CHECK-ERROR: error: invalid operand for instruction
5423 // CHECK-ERROR: sqabs v6.2d, v8.2s
5426 //------------------------------------------------------------------------------
5427 // Signed integer saturating negate
5428 //------------------------------------------------------------------------------
5430 sqneg v0.16b, v31.8b
5435 // CHECK-ERROR: error: invalid operand for instruction
5436 // CHECK-ERROR: sqneg v0.16b, v31.8b
5438 // CHECK-ERROR: error: invalid operand for instruction
5439 // CHECK-ERROR: sqneg v2.8h, v4.4h
5441 // CHECK-ERROR: error: invalid operand for instruction
5442 // CHECK-ERROR: sqneg v6.4s, v8.2s
5444 // CHECK-ERROR: error: invalid operand for instruction
5445 // CHECK-ERROR: sqneg v6.2d, v8.2s
5448 //------------------------------------------------------------------------------
5450 //------------------------------------------------------------------------------
5457 // CHECK-ERROR: error: invalid operand for instruction
5458 // CHECK-ERROR: abs v0.16b, v31.8b
5460 // CHECK-ERROR: error: invalid operand for instruction
5461 // CHECK-ERROR: abs v2.8h, v4.4h
5463 // CHECK-ERROR: error: invalid operand for instruction
5464 // CHECK-ERROR: abs v6.4s, v8.2s
5466 // CHECK-ERROR: error: invalid operand for instruction
5467 // CHECK-ERROR: abs v6.2d, v8.2s
5470 //------------------------------------------------------------------------------
5471 // Integer count leading sign bits
5472 //------------------------------------------------------------------------------
5476 // CHECK-ERROR: error: invalid operand for instruction
5477 // CHECK-ERROR: cls v0.2d, v31.2d
5480 //------------------------------------------------------------------------------
5481 // Integer count leading zeros
5482 //------------------------------------------------------------------------------
5486 // CHECK-ERROR: error: invalid operand for instruction
5487 // CHECK-ERROR: clz v0.2d, v31.2d
5490 //------------------------------------------------------------------------------
5492 //------------------------------------------------------------------------------
5500 // CHECK-ERROR: error: invalid operand for instruction
5501 // CHECK-ERROR: cnt v2.8h, v4.8h
5503 // CHECK-ERROR: error: invalid operand for instruction
5504 // CHECK-ERROR: cnt v6.4s, v8.4s
5506 // CHECK-ERROR: error: invalid operand for instruction
5507 // CHECK-ERROR: cnt v6.2d, v8.2d
5509 // CHECK-ERROR: error: invalid operand for instruction
5510 // CHECK-ERROR: cnt v13.4h, v21.4h
5512 // CHECK-ERROR: error: invalid operand for instruction
5513 // CHECK-ERROR: cnt v4.2s, v0.2s
5517 //------------------------------------------------------------------------------
5519 //------------------------------------------------------------------------------
5527 // CHECK-ERROR: error: invalid operand for instruction
5528 // CHECK-ERROR: not v2.8h, v4.8h
5530 // CHECK-ERROR: error: invalid operand for instruction
5531 // CHECK-ERROR: not v6.4s, v8.4s
5533 // CHECK-ERROR: error: invalid operand for instruction
5534 // CHECK-ERROR: not v6.2d, v8.2d
5536 // CHECK-ERROR: error: invalid operand for instruction
5537 // CHECK-ERROR: not v13.4h, v21.4h
5539 // CHECK-ERROR: error: invalid operand for instruction
5540 // CHECK-ERROR: not v4.2s, v0.2s
5543 //------------------------------------------------------------------------------
5545 //------------------------------------------------------------------------------
5553 // CHECK-ERROR: error: invalid operand for instruction
5554 // CHECK-ERROR: rbit v2.8h, v4.8h
5556 // CHECK-ERROR: error: invalid operand for instruction
5557 // CHECK-ERROR: rbit v6.4s, v8.4s
5559 // CHECK-ERROR: error: invalid operand for instruction
5560 // CHECK-ERROR: rbit v6.2d, v8.2d
5562 // CHECK-ERROR: error: invalid operand for instruction
5563 // CHECK-ERROR: rbit v13.4h, v21.4h
5565 // CHECK-ERROR: error: invalid operand for instruction
5566 // CHECK-ERROR: rbit v4.2s, v0.2s
5569 //------------------------------------------------------------------------------
5570 // Floating-point absolute
5571 //------------------------------------------------------------------------------
5573 fabs v0.16b, v31.16b
5578 // CHECK-ERROR: error: invalid operand for instruction
5579 // CHECK-ERROR: fabs v0.16b, v31.16b
5581 // CHECK-ERROR: error: invalid operand for instruction
5582 // CHECK-ERROR: fabs v2.8h, v4.8h
5584 // CHECK-ERROR: error: invalid operand for instruction
5585 // CHECK-ERROR: fabs v1.8b, v9.8b
5587 // CHECK-ERROR: error: invalid operand for instruction
5588 // CHECK-ERROR: fabs v13.4h, v21.4h
5591 //------------------------------------------------------------------------------
5592 // Floating-point negate
5593 //------------------------------------------------------------------------------
5595 fneg v0.16b, v31.16b
5600 // CHECK-ERROR: error: invalid operand for instruction
5601 // CHECK-ERROR: fneg v0.16b, v31.16b
5603 // CHECK-ERROR: error: invalid operand for instruction
5604 // CHECK-ERROR: fneg v2.8h, v4.8h
5606 // CHECK-ERROR: error: invalid operand for instruction
5607 // CHECK-ERROR: fneg v1.8b, v9.8b
5609 // CHECK-ERROR: error: invalid operand for instruction
5610 // CHECK-ERROR: fneg v13.4h, v21.4h
5613 //------------------------------------------------------------------------------
5614 // Integer extract and narrow
5615 //------------------------------------------------------------------------------
5624 // CHECK-ERROR: error: invalid operand for instruction
5625 // CHECK-ERROR: xtn v0.16b, v31.8h
5627 // CHECK-ERROR: error: invalid operand for instruction
5628 // CHECK-ERROR: xtn v2.8h, v4.4s
5630 // CHECK-ERROR: error: invalid operand for instruction
5631 // CHECK-ERROR: xtn v6.4s, v8.2d
5633 // CHECK-ERROR: error: invalid operand for instruction
5634 // CHECK-ERROR: xtn2 v1.8b, v9.8h
5636 // CHECK-ERROR: error: invalid operand for instruction
5637 // CHECK-ERROR: xtn2 v13.4h, v21.4s
5639 // CHECK-ERROR: error: invalid operand for instruction
5640 // CHECK-ERROR: xtn2 v4.2s, v0.2d
5643 //------------------------------------------------------------------------------
5644 // Signed integer saturating extract and unsigned narrow
5645 //------------------------------------------------------------------------------
5647 sqxtun v0.16b, v31.8h
5650 sqxtun2 v1.8b, v9.8h
5651 sqxtun2 v13.4h, v21.4s
5652 sqxtun2 v4.2s, v0.2d
5654 // CHECK-ERROR: error: invalid operand for instruction
5655 // CHECK-ERROR: sqxtun v0.16b, v31.8h
5657 // CHECK-ERROR: error: invalid operand for instruction
5658 // CHECK-ERROR: sqxtun v2.8h, v4.4s
5660 // CHECK-ERROR: error: invalid operand for instruction
5661 // CHECK-ERROR: sqxtun v6.4s, v8.2d
5663 // CHECK-ERROR: error: invalid operand for instruction
5664 // CHECK-ERROR: sqxtun2 v1.8b, v9.8h
5666 // CHECK-ERROR: error: invalid operand for instruction
5667 // CHECK-ERROR: sqxtun2 v13.4h, v21.4s
5669 // CHECK-ERROR: error: invalid operand for instruction
5670 // CHECK-ERROR: sqxtun2 v4.2s, v0.2d
5673 //------------------------------------------------------------------------------
5674 // Signed integer saturating extract and narrow
5675 //------------------------------------------------------------------------------
5677 sqxtn v0.16b, v31.8h
5681 sqxtn2 v13.4h, v21.4s
5684 // CHECK-ERROR: error: invalid operand for instruction
5685 // CHECK-ERROR: sqxtn v0.16b, v31.8h
5687 // CHECK-ERROR: error: invalid operand for instruction
5688 // CHECK-ERROR: sqxtn v2.8h, v4.4s
5690 // CHECK-ERROR: error: invalid operand for instruction
5691 // CHECK-ERROR: sqxtn v6.4s, v8.2d
5693 // CHECK-ERROR: error: invalid operand for instruction
5694 // CHECK-ERROR: sqxtn2 v1.8b, v9.8h
5696 // CHECK-ERROR: error: invalid operand for instruction
5697 // CHECK-ERROR: sqxtn2 v13.4h, v21.4s
5699 // CHECK-ERROR: error: invalid operand for instruction
5700 // CHECK-ERROR: sqxtn2 v4.2s, v0.2d
5703 //------------------------------------------------------------------------------
5704 // Unsigned integer saturating extract and narrow
5705 //------------------------------------------------------------------------------
5707 uqxtn v0.16b, v31.8h
5711 uqxtn2 v13.4h, v21.4s
5714 // CHECK-ERROR: error: invalid operand for instruction
5715 // CHECK-ERROR: uqxtn v0.16b, v31.8h
5717 // CHECK-ERROR: error: invalid operand for instruction
5718 // CHECK-ERROR: uqxtn v2.8h, v4.4s
5720 // CHECK-ERROR: error: invalid operand for instruction
5721 // CHECK-ERROR: uqxtn v6.4s, v8.2d
5723 // CHECK-ERROR: error: invalid operand for instruction
5724 // CHECK-ERROR: uqxtn2 v1.8b, v9.8h
5726 // CHECK-ERROR: error: invalid operand for instruction
5727 // CHECK-ERROR: uqxtn2 v13.4h, v21.4s
5729 // CHECK-ERROR: error: invalid operand for instruction
5730 // CHECK-ERROR: uqxtn2 v4.2s, v0.2d
5733 //------------------------------------------------------------------------------
5734 // Integer shift left long
5735 //------------------------------------------------------------------------------
5737 shll2 v2.8h, v4.16b, #7
5738 shll2 v6.4s, v8.8h, #15
5739 shll2 v6.2d, v8.4s, #31
5740 shll v2.8h, v4.16b, #8
5741 shll v6.4s, v8.8h, #16
5742 shll v6.2d, v8.4s, #32
5743 shll v2.8h, v4.8b, #8
5744 shll v6.4s, v8.4h, #16
5745 shll v6.2d, v8.2s, #32
5746 shll2 v2.8h, v4.8b, #5
5747 shll2 v6.4s, v8.4h, #14
5748 shll2 v6.2d, v8.2s, #1
5750 // CHECK-ERROR: error: invalid operand for instruction
5751 // CHECK-ERROR: shll2 v2.8h, v4.16b, #7
5753 // CHECK-ERROR: error: invalid operand for instruction
5754 // CHECK-ERROR: shll2 v6.4s, v8.8h, #15
5756 // CHECK-ERROR: error: invalid operand for instruction
5757 // CHECK-ERROR: shll2 v6.2d, v8.4s, #31
5759 // CHECK-ERROR: error: invalid operand for instruction
5760 // CHECK-ERROR: shll v2.8h, v4.16b, #8
5762 // CHECK-ERROR: error: invalid operand for instruction
5763 // CHECK-ERROR: shll v6.4s, v8.8h, #16
5765 // CHECK-ERROR: error: invalid operand for instruction
5766 // CHECK-ERROR: shll v6.2d, v8.4s, #32
5768 // CHECK-ERROR: error: invalid operand for instruction
5769 // CHECK-ERROR: shll2 v2.8h, v4.8b, #5
5771 // CHECK-ERROR: error: invalid operand for instruction
5772 // CHECK-ERROR: shll2 v6.4s, v8.4h, #14
5774 // CHECK-ERROR: error: invalid operand for instruction
5775 // CHECK-ERROR: shll2 v6.2d, v8.2s, #1
5778 //------------------------------------------------------------------------------
5779 // Floating-point convert downsize
5780 //------------------------------------------------------------------------------
5784 fcvtn2 v13.4h, v21.4s
5787 // CHECK-ERROR: error: invalid operand for instruction
5788 // CHECK-ERROR: fcvtn v2.8h, v4.4s
5790 // CHECK-ERROR: error: invalid operand for instruction
5791 // CHECK-ERROR: fcvtn v6.4s, v8.2d
5793 // CHECK-ERROR: error: invalid operand for instruction
5794 // CHECK-ERROR: fcvtn2 v13.4h, v21.4s
5796 // CHECK-ERROR: error: invalid operand for instruction
5797 // CHECK-ERROR: fcvtn2 v4.2s, v0.2d
5800 //------------------------------------------------------------------------------
5801 // Floating-point convert downsize with inexact
5802 //------------------------------------------------------------------------------
5805 fcvtxn2 v4.2s, v0.2d
5807 // CHECK-ERROR: error: invalid operand for instruction
5808 // CHECK-ERROR: fcvtxn v6.4s, v8.2d
5810 // CHECK-ERROR: error: invalid operand for instruction
5811 // CHECK-ERROR: fcvtxn2 v4.2s, v0.2d
5814 //------------------------------------------------------------------------------
5815 // Floating-point convert upsize
5816 //------------------------------------------------------------------------------
5821 fcvtl v17.2d, v28.4s
5823 // CHECK-ERROR: error: invalid operand for instruction
5824 // CHECK-ERROR: fcvtl2 v9.4s, v1.4h
5826 // CHECK-ERROR: error: invalid operand for instruction
5827 // CHECK-ERROR: fcvtl2 v0.2d, v1.2s
5829 // CHECK-ERROR: error: invalid operand for instruction
5830 // CHECK-ERROR: fcvtl v12.4s, v4.8h
5832 // CHECK-ERROR: error: invalid operand for instruction
5833 // CHECK-ERROR: fcvtl v17.2d, v28.4s
5836 //------------------------------------------------------------------------------
5837 // Floating-point round to integral
5838 //------------------------------------------------------------------------------
5840 frintn v0.16b, v31.16b
5843 frintn v13.4h, v21.4h
5845 frinta v0.16b, v31.16b
5848 frinta v13.4h, v21.4h
5850 frintp v0.16b, v31.16b
5853 frintp v13.4h, v21.4h
5855 frintm v0.16b, v31.16b
5858 frintm v13.4h, v21.4h
5860 frintx v0.16b, v31.16b
5863 frintx v13.4h, v21.4h
5865 frintz v0.16b, v31.16b
5868 frintz v13.4h, v21.4h
5870 frinti v0.16b, v31.16b
5873 frinti v13.4h, v21.4h
5875 fcvtns v0.16b, v31.16b
5878 fcvtns v13.4h, v21.4h
5880 fcvtnu v0.16b, v31.16b
5883 fcvtnu v13.4h, v21.4h
5885 fcvtps v0.16b, v31.16b
5888 fcvtps v13.4h, v21.4h
5890 fcvtpu v0.16b, v31.16b
5893 fcvtpu v13.4h, v21.4h
5895 fcvtms v0.16b, v31.16b
5898 fcvtms v13.4h, v21.4h
5900 fcvtmu v0.16b, v31.16b
5903 fcvtmu v13.4h, v21.4h
5905 fcvtzs v0.16b, v31.16b
5908 fcvtzs v13.4h, v21.4h
5910 fcvtzu v0.16b, v31.16b
5913 fcvtzu v13.4h, v21.4h
5915 fcvtas v0.16b, v31.16b
5918 fcvtas v13.4h, v21.4h
5920 fcvtau v0.16b, v31.16b
5923 fcvtau v13.4h, v21.4h
5925 urecpe v0.16b, v31.16b
5928 urecpe v13.4h, v21.4h
5931 ursqrte v0.16b, v31.16b
5932 ursqrte v2.8h, v4.8h
5933 ursqrte v1.8b, v9.8b
5934 ursqrte v13.4h, v21.4h
5935 ursqrte v1.2d, v9.2d
5937 scvtf v0.16b, v31.16b
5940 scvtf v13.4h, v21.4h
5942 ucvtf v0.16b, v31.16b
5945 ucvtf v13.4h, v21.4h
5947 frecpe v0.16b, v31.16b
5950 frecpe v13.4h, v21.4h
5952 frsqrte v0.16b, v31.16b
5953 frsqrte v2.8h, v4.8h
5954 frsqrte v1.8b, v9.8b
5955 frsqrte v13.4h, v21.4h
5957 fsqrt v0.16b, v31.16b
5960 fsqrt v13.4h, v21.4h
5962 // CHECK-ERROR: error: invalid operand for instruction
5963 // CHECK-ERROR: frintn v0.16b, v31.16b
5965 // CHECK-ERROR: error: invalid operand for instruction
5966 // CHECK-ERROR: frintn v2.8h, v4.8h
5968 // CHECK-ERROR: error: invalid operand for instruction
5969 // CHECK-ERROR: frintn v1.8b, v9.8b
5971 // CHECK-ERROR: error: invalid operand for instruction
5972 // CHECK-ERROR: frintn v13.4h, v21.4h
5974 // CHECK-ERROR: error: invalid operand for instruction
5975 // CHECK-ERROR: frinta v0.16b, v31.16b
5977 // CHECK-ERROR: error: invalid operand for instruction
5978 // CHECK-ERROR: frinta v2.8h, v4.8h
5980 // CHECK-ERROR: error: invalid operand for instruction
5981 // CHECK-ERROR: frinta v1.8b, v9.8b
5983 // CHECK-ERROR: error: invalid operand for instruction
5984 // CHECK-ERROR: frinta v13.4h, v21.4h
5986 // CHECK-ERROR: error: invalid operand for instruction
5987 // CHECK-ERROR: frintp v0.16b, v31.16b
5989 // CHECK-ERROR: error: invalid operand for instruction
5990 // CHECK-ERROR: frintp v2.8h, v4.8h
5992 // CHECK-ERROR: error: invalid operand for instruction
5993 // CHECK-ERROR: frintp v1.8b, v9.8b
5995 // CHECK-ERROR: error: invalid operand for instruction
5996 // CHECK-ERROR: frintp v13.4h, v21.4h
5998 // CHECK-ERROR: error: invalid operand for instruction
5999 // CHECK-ERROR: frintm v0.16b, v31.16b
6001 // CHECK-ERROR: error: invalid operand for instruction
6002 // CHECK-ERROR: frintm v2.8h, v4.8h
6004 // CHECK-ERROR: error: invalid operand for instruction
6005 // CHECK-ERROR: frintm v1.8b, v9.8b
6007 // CHECK-ERROR: error: invalid operand for instruction
6008 // CHECK-ERROR: frintm v13.4h, v21.4h
6010 // CHECK-ERROR: error: invalid operand for instruction
6011 // CHECK-ERROR: frintx v0.16b, v31.16b
6013 // CHECK-ERROR: error: invalid operand for instruction
6014 // CHECK-ERROR: frintx v2.8h, v4.8h
6016 // CHECK-ERROR: error: invalid operand for instruction
6017 // CHECK-ERROR: frintx v1.8b, v9.8b
6019 // CHECK-ERROR: error: invalid operand for instruction
6020 // CHECK-ERROR: frintx v13.4h, v21.4h
6022 // CHECK-ERROR: error: invalid operand for instruction
6023 // CHECK-ERROR: frintz v0.16b, v31.16b
6025 // CHECK-ERROR: error: invalid operand for instruction
6026 // CHECK-ERROR: frintz v2.8h, v4.8h
6028 // CHECK-ERROR: error: invalid operand for instruction
6029 // CHECK-ERROR: frintz v1.8b, v9.8b
6031 // CHECK-ERROR: error: invalid operand for instruction
6032 // CHECK-ERROR: frintz v13.4h, v21.4h
6034 // CHECK-ERROR: error: invalid operand for instruction
6035 // CHECK-ERROR: frinti v0.16b, v31.16b
6037 // CHECK-ERROR: error: invalid operand for instruction
6038 // CHECK-ERROR: frinti v2.8h, v4.8h
6040 // CHECK-ERROR: error: invalid operand for instruction
6041 // CHECK-ERROR: frinti v1.8b, v9.8b
6043 // CHECK-ERROR: error: invalid operand for instruction
6044 // CHECK-ERROR: frinti v13.4h, v21.4h
6046 // CHECK-ERROR: error: invalid operand for instruction
6047 // CHECK-ERROR: fcvtns v0.16b, v31.16b
6049 // CHECK-ERROR: error: invalid operand for instruction
6050 // CHECK-ERROR: fcvtns v2.8h, v4.8h
6052 // CHECK-ERROR: error: invalid operand for instruction
6053 // CHECK-ERROR: fcvtns v1.8b, v9.8b
6055 // CHECK-ERROR: error: invalid operand for instruction
6056 // CHECK-ERROR: fcvtns v13.4h, v21.4h
6058 // CHECK-ERROR: error: invalid operand for instruction
6059 // CHECK-ERROR: fcvtnu v0.16b, v31.16b
6061 // CHECK-ERROR: error: invalid operand for instruction
6062 // CHECK-ERROR: fcvtnu v2.8h, v4.8h
6064 // CHECK-ERROR: error: invalid operand for instruction
6065 // CHECK-ERROR: fcvtnu v1.8b, v9.8b
6067 // CHECK-ERROR: error: invalid operand for instruction
6068 // CHECK-ERROR: fcvtnu v13.4h, v21.4h
6070 // CHECK-ERROR: error: invalid operand for instruction
6071 // CHECK-ERROR: fcvtps v0.16b, v31.16b
6073 // CHECK-ERROR: error: invalid operand for instruction
6074 // CHECK-ERROR: fcvtps v2.8h, v4.8h
6076 // CHECK-ERROR: error: invalid operand for instruction
6077 // CHECK-ERROR: fcvtps v1.8b, v9.8b
6079 // CHECK-ERROR: error: invalid operand for instruction
6080 // CHECK-ERROR: fcvtps v13.4h, v21.4h
6082 // CHECK-ERROR: error: invalid operand for instruction
6083 // CHECK-ERROR: fcvtpu v0.16b, v31.16b
6085 // CHECK-ERROR: error: invalid operand for instruction
6086 // CHECK-ERROR: fcvtpu v2.8h, v4.8h
6088 // CHECK-ERROR: error: invalid operand for instruction
6089 // CHECK-ERROR: fcvtpu v1.8b, v9.8b
6091 // CHECK-ERROR: error: invalid operand for instruction
6092 // CHECK-ERROR: fcvtpu v13.4h, v21.4h
6094 // CHECK-ERROR: error: invalid operand for instruction
6095 // CHECK-ERROR: fcvtms v0.16b, v31.16b
6097 // CHECK-ERROR: error: invalid operand for instruction
6098 // CHECK-ERROR: fcvtms v2.8h, v4.8h
6100 // CHECK-ERROR: error: invalid operand for instruction
6101 // CHECK-ERROR: fcvtms v1.8b, v9.8b
6103 // CHECK-ERROR: error: invalid operand for instruction
6104 // CHECK-ERROR: fcvtms v13.4h, v21.4h
6106 // CHECK-ERROR: error: invalid operand for instruction
6107 // CHECK-ERROR: fcvtmu v0.16b, v31.16b
6109 // CHECK-ERROR: error: invalid operand for instruction
6110 // CHECK-ERROR: fcvtmu v2.8h, v4.8h
6112 // CHECK-ERROR: error: invalid operand for instruction
6113 // CHECK-ERROR: fcvtmu v1.8b, v9.8b
6115 // CHECK-ERROR: error: invalid operand for instruction
6116 // CHECK-ERROR: fcvtmu v13.4h, v21.4h
6118 // CHECK-ERROR: error: invalid operand for instruction
6119 // CHECK-ERROR: fcvtzs v0.16b, v31.16b
6121 // CHECK-ERROR: error: invalid operand for instruction
6122 // CHECK-ERROR: fcvtzs v2.8h, v4.8h
6124 // CHECK-ERROR: error: invalid operand for instruction
6125 // CHECK-ERROR: fcvtzs v1.8b, v9.8b
6127 // CHECK-ERROR: error: invalid operand for instruction
6128 // CHECK-ERROR: fcvtzs v13.4h, v21.4h
6130 // CHECK-ERROR: error: invalid operand for instruction
6131 // CHECK-ERROR: fcvtzu v0.16b, v31.16b
6133 // CHECK-ERROR: error: invalid operand for instruction
6134 // CHECK-ERROR: fcvtzu v2.8h, v4.8h
6136 // CHECK-ERROR: error: invalid operand for instruction
6137 // CHECK-ERROR: fcvtzu v1.8b, v9.8b
6139 // CHECK-ERROR: error: invalid operand for instruction
6140 // CHECK-ERROR: fcvtzu v13.4h, v21.4h
6142 // CHECK-ERROR: error: invalid operand for instruction
6143 // CHECK-ERROR: fcvtas v0.16b, v31.16b
6145 // CHECK-ERROR: error: invalid operand for instruction
6146 // CHECK-ERROR: fcvtas v2.8h, v4.8h
6148 // CHECK-ERROR: error: invalid operand for instruction
6149 // CHECK-ERROR: fcvtas v1.8b, v9.8b
6151 // CHECK-ERROR: error: invalid operand for instruction
6152 // CHECK-ERROR: fcvtas v13.4h, v21.4h
6154 // CHECK-ERROR: error: invalid operand for instruction
6155 // CHECK-ERROR: fcvtau v0.16b, v31.16b
6157 // CHECK-ERROR: error: invalid operand for instruction
6158 // CHECK-ERROR: fcvtau v2.8h, v4.8h
6160 // CHECK-ERROR: error: invalid operand for instruction
6161 // CHECK-ERROR: fcvtau v1.8b, v9.8b
6163 // CHECK-ERROR: error: invalid operand for instruction
6164 // CHECK-ERROR: fcvtau v13.4h, v21.4h
6166 // CHECK-ERROR: error: invalid operand for instruction
6167 // CHECK-ERROR: urecpe v0.16b, v31.16b
6169 // CHECK-ERROR: error: invalid operand for instruction
6170 // CHECK-ERROR: urecpe v2.8h, v4.8h
6172 // CHECK-ERROR: error: invalid operand for instruction
6173 // CHECK-ERROR: urecpe v1.8b, v9.8b
6175 // CHECK-ERROR: error: invalid operand for instruction
6176 // CHECK-ERROR: urecpe v13.4h, v21.4h
6178 // CHECK-ERROR: error: invalid operand for instruction
6179 // CHECK-ERROR: urecpe v1.2d, v9.2d
6181 // CHECK-ERROR: error: invalid operand for instruction
6182 // CHECK-ERROR: ursqrte v0.16b, v31.16b
6184 // CHECK-ERROR: error: invalid operand for instruction
6185 // CHECK-ERROR: ursqrte v2.8h, v4.8h
6187 // CHECK-ERROR: error: invalid operand for instruction
6188 // CHECK-ERROR: ursqrte v1.8b, v9.8b
6190 // CHECK-ERROR: error: invalid operand for instruction
6191 // CHECK-ERROR: ursqrte v13.4h, v21.4h
6193 // CHECK-ERROR: error: invalid operand for instruction
6194 // CHECK-ERROR: ursqrte v1.2d, v9.2d
6196 // CHECK-ERROR: error: invalid operand for instruction
6197 // CHECK-ERROR: scvtf v0.16b, v31.16b
6199 // CHECK-ERROR: error: invalid operand for instruction
6200 // CHECK-ERROR: scvtf v2.8h, v4.8h
6202 // CHECK-ERROR: error: invalid operand for instruction
6203 // CHECK-ERROR: scvtf v1.8b, v9.8b
6205 // CHECK-ERROR: error: invalid operand for instruction
6206 // CHECK-ERROR: scvtf v13.4h, v21.4h
6208 // CHECK-ERROR: error: invalid operand for instruction
6209 // CHECK-ERROR: ucvtf v0.16b, v31.16b
6211 // CHECK-ERROR: error: invalid operand for instruction
6212 // CHECK-ERROR: ucvtf v2.8h, v4.8h
6214 // CHECK-ERROR: error: invalid operand for instruction
6215 // CHECK-ERROR: ucvtf v1.8b, v9.8b
6217 // CHECK-ERROR: error: invalid operand for instruction
6218 // CHECK-ERROR: ucvtf v13.4h, v21.4h
6220 // CHECK-ERROR: error: invalid operand for instruction
6221 // CHECK-ERROR: frecpe v0.16b, v31.16b
6223 // CHECK-ERROR: error: invalid operand for instruction
6224 // CHECK-ERROR: frecpe v2.8h, v4.8h
6226 // CHECK-ERROR: error: invalid operand for instruction
6227 // CHECK-ERROR: frecpe v1.8b, v9.8b
6229 // CHECK-ERROR: error: invalid operand for instruction
6230 // CHECK-ERROR: frecpe v13.4h, v21.4h
6232 // CHECK-ERROR: error: invalid operand for instruction
6233 // CHECK-ERROR: frsqrte v0.16b, v31.16b
6235 // CHECK-ERROR: error: invalid operand for instruction
6236 // CHECK-ERROR: frsqrte v2.8h, v4.8h
6238 // CHECK-ERROR: error: invalid operand for instruction
6239 // CHECK-ERROR: frsqrte v1.8b, v9.8b
6241 // CHECK-ERROR: error: invalid operand for instruction
6242 // CHECK-ERROR: frsqrte v13.4h, v21.4h
6244 // CHECK-ERROR: error: invalid operand for instruction
6245 // CHECK-ERROR: fsqrt v0.16b, v31.16b
6247 // CHECK-ERROR: error: invalid operand for instruction
6248 // CHECK-ERROR: fsqrt v2.8h, v4.8h
6250 // CHECK-ERROR: error: invalid operand for instruction
6251 // CHECK-ERROR: fsqrt v1.8b, v9.8b
6253 // CHECK-ERROR: error: invalid operand for instruction
6254 // CHECK-ERROR: fsqrt v13.4h, v21.4h
6257 //----------------------------------------------------------------------
6258 // Scalar Floating-point Convert To Signed Fixed-point (Immediate)
6259 //----------------------------------------------------------------------
6262 fcvtzs d21, d12, #65
6265 // CHECK-ERROR: error: expected integer in range [1, 32]
6266 // CHECK-ERROR: fcvtzs s21, s12, #0
6268 // CHECK-ERROR: error: expected integer in range [1, 64]
6269 // CHECK-ERROR: fcvtzs d21, d12, #65
6271 // CHECK-ERROR: error: invalid operand for instruction
6272 // CHECK-ERROR: fcvtzs s21, d12, #1
6275 //----------------------------------------------------------------------
6276 // Scalar Floating-point Convert To Unsigned Fixed-point (Immediate)
6277 //----------------------------------------------------------------------
6279 fcvtzu s21, s12, #33
6283 // CHECK-ERROR: error: expected integer in range [1, 32]
6284 // CHECK-ERROR: fcvtzu s21, s12, #33
6286 // CHECK-ERROR: error: expected integer in range [1, 64]
6287 // CHECK-ERROR: fcvtzu d21, d12, #0
6289 // CHECK-ERROR: error: invalid operand for instruction
6290 // CHECK-ERROR: fcvtzu s21, d12, #1
6293 //----------------------------------------------------------------------
6294 // Scalar Unsigned Saturating Extract Narrow
6295 //----------------------------------------------------------------------
6304 // CHECK: error: invalid operand for instruction
6305 // CHECK: aese v0.8h, v1.8h
6307 // CHECK: error: invalid operand for instruction
6308 // CHECK: aese v0.4s, v1.4s
6310 // CHECK: error: invalid operand for instruction
6311 // CHECK: aese v0.2d, v1.2d
6313 // CHECK: error: invalid operand for instruction
6314 // CHECK: aesd v0.8h, v1.8h
6316 // CHECK: error: invalid operand for instruction
6317 // CHECK: aesmc v0.8h, v1.8h
6319 // CHECK: error: invalid operand for instruction
6320 // CHECK: aesimc v0.8h, v1.8h
6327 sha1su1 v0.16b, v1.16b
6328 sha1su1 v0.8h, v1.8h
6329 sha1su1 v0.2d, v1.2d
6330 sha256su0 v0.16b, v1.16b
6332 // CHECK: error: invalid operand for instruction
6333 // CHECK: sha1h b0, b1
6335 // CHECK: error: invalid operand for instruction
6336 // CHECK: sha1h h0, h1
6338 // CHECK: error: invalid operand for instruction
6339 // CHECK: sha1h d0, d1
6341 // CHECK: error: invalid operand for instruction
6342 // CHECK: sha1h q0, q1
6344 // CHECK: error: invalid operand for instruction
6345 // CHECK: sha1su1 v0.16b, v1.16b
6347 // CHECK: error: invalid operand for instruction
6348 // CHECK: sha1su1 v0.8h, v1.8h
6350 // CHECK: error: invalid operand for instruction
6351 // CHECK: sha1su1 v0.2d, v1.2d
6353 // CHECK: error: invalid operand for instruction
6354 // CHECK: sha256su0 v0.16b, v1.16b
6360 sha1su0 v0.16b, v1.16b, v2.16b
6361 sha1su0 v0.8h, v1.8h, v2.8h
6362 sha1su0 v0.2d, v1.2d, v2.2d
6364 sha256h v0.4s, v1.4s, v2.4s
6366 sha256su1 v0.16b, v1.16b, v2.16b
6368 // CHECK: error: invalid operand for instruction
6369 // CHECK: sha1c q0, q1, v2.4s
6371 // CHECK: error: invalid operand for instruction
6372 // CHECK: sha1p q0, q1, v2.4s
6374 // CHECK: error: invalid operand for instruction
6375 // CHECK: sha1m q0, q1, v2.4s
6377 // CHECK: error: invalid operand for instruction
6378 // CHECK: sha1su0 v0.16b, v1.16b, v2.16b
6380 // CHECK: error: invalid operand for instruction
6381 // CHECK: sha1su0 v0.8h, v1.8h, v2.8h
6383 // CHECK: error: invalid operand for instruction
6384 // CHECK: sha1su0 v0.2d, v1.2d, v2.2d
6386 // CHECK: error: too few operands for instruction
6387 // CHECK: sha256h q0, q1, q2
6389 // CHECK: error: invalid operand for instruction
6390 // CHECK: sha256h v0.4s, v1.4s, v2.4s
6392 // CHECK: error: too few operands for instruction
6393 // CHECK: sha256h2 q0, q1, q2
6395 // CHECK: error: invalid operand for instruction
6396 // CHECK: sha256su1 v0.16b, v1.16b, v2.16b
6399 //----------------------------------------------------------------------
6401 //----------------------------------------------------------------------
6403 ext v0.8b, v1.8b, v2.4h, #0x3
6404 ext v0.4h, v1.4h, v2.4h, #0x3
6405 ext v0.2s, v1.2s, v2.2s, #0x1
6406 ext v0.1d, v1.1d, v2.1d, #0x0
6408 // CHECK-ERROR: error: invalid operand for instruction
6409 // CHECK-ERROR: ext v0.8b, v1.8b, v2.4h, #0x3
6411 // CHECK-ERROR: error: invalid operand for instruction
6412 // CHECK-ERROR: ext v0.4h, v1.4h, v2.4h, #0x3
6414 // CHECK-ERROR: error: invalid operand for instruction
6415 // CHECK-ERROR: ext v0.2s, v1.2s, v2.2s, #0x1
6417 // CHECK-ERROR: error: invalid operand for instruction
6418 // CHECK-ERROR: ext v0.1d, v1.1d, v2.1d, #0x0
6421 ext v0.16b, v1.16b, v2.8h, #0x3
6422 ext v0.8h, v1.8h, v2.8h, #0x3
6423 ext v0.4s, v1.4s, v2.4s, #0x1
6424 ext v0.2d, v1.2d, v2.2d, #0x0
6426 // CHECK-ERROR: error: invalid operand for instruction
6427 // CHECK-ERROR: ext v0.16b, v1.16b, v2.8h, #0x3
6429 // CHECK-ERROR: error: invalid operand for instruction
6430 // CHECK-ERROR: ext v0.8h, v1.8h, v2.8h, #0x3
6432 // CHECK-ERROR: error: invalid operand for instruction
6433 // CHECK-ERROR: ext v0.4s, v1.4s, v2.4s, #0x1
6435 // CHECK-ERROR: error: invalid operand for instruction
6436 // CHECK-ERROR: ext v0.2d, v1.2d, v2.2d, #0x0
6440 //----------------------------------------------------------------------
6441 // Permutation with 3 vectors
6442 //----------------------------------------------------------------------
6444 uzp1 v0.16b, v1.8b, v2.8b
6445 uzp1 v0.8b, v1.4b, v2.4b
6446 uzp1 v0.8h, v1.4h, v2.4h
6447 uzp1 v0.4h, v1.2h, v2.2h
6448 uzp1 v0.4s, v1.2s, v2.2s
6449 uzp1 v0.2s, v1.1s, v2.1s
6450 uzp1 v0.2d, v1.1d, v2.1d
6451 uzp1 v0.1d, v1.1d, v2.1d
6453 // CHECK-ERROR <stdin>:4289:22: error: invalid operand for instruction
6454 // CHECK-ERROR uzp1 v0.16b, v1.8b, v2.8b
6456 // CHECK-ERROR <stdin>:4290:21: error: invalid operand for instruction
6457 // CHECK-ERROR uzp1 v0.8b, v1.4b, v2.4b
6459 // CHECK-ERROR <stdin>:4291:21: error: invalid operand for instruction
6460 // CHECK-ERROR uzp1 v0.8h, v1.4h, v2.4h
6462 // CHECK-ERROR <stdin>:4292:21: error: invalid operand for instruction
6463 // CHECK-ERROR uzp1 v0.4h, v1.2h, v2.2h
6465 // CHECK-ERROR <stdin>:4293:21: error: invalid operand for instruction
6466 // CHECK-ERROR uzp1 v0.4s, v1.2s, v2.2s
6468 // CHECK-ERROR <stdin>:4294:21: error: invalid operand for instruction
6469 // CHECK-ERROR uzp1 v0.2s, v1.1s, v2.1s
6471 // CHECK-ERROR <stdin>:4295:21: error: invalid operand for instruction
6472 // CHECK-ERROR uzp1 v0.2d, v1.1d, v2.1d
6474 // CHECK-ERROR <stdin>:4296:17: error: invalid operand for instruction
6475 // CHECK-ERROR uzp1 v0.1d, v1.1d, v2.1d
6478 uzp2 v0.16b, v1.8b, v2.8b
6479 uzp2 v0.8b, v1.4b, v2.4b
6480 uzp2 v0.8h, v1.4h, v2.4h
6481 uzp2 v0.4h, v1.2h, v2.2h
6482 uzp2 v0.4s, v1.2s, v2.2s
6483 uzp2 v0.2s, v1.1s, v2.1s
6484 uzp2 v0.2d, v1.1d, v2.1d
6485 uzp2 v0.1d, v1.1d, v2.1d
6487 // CHECK-ERROR <stdin>:4298:22: error: invalid operand for instruction
6488 // CHECK-ERROR uzp2 v0.16b, v1.8b, v2.8b
6490 // CHECK-ERROR <stdin>:4299:21: error: invalid operand for instruction
6491 // CHECK-ERROR uzp2 v0.8b, v1.4b, v2.4b
6493 // CHECK-ERROR <stdin>:4300:21: error: invalid operand for instruction
6494 // CHECK-ERROR uzp2 v0.8h, v1.4h, v2.4h
6496 // CHECK-ERROR <stdin>:4301:21: error: invalid operand for instruction
6497 // CHECK-ERROR uzp2 v0.4h, v1.2h, v2.2h
6499 // CHECK-ERROR <stdin>:4302:21: error: invalid operand for instruction
6500 // CHECK-ERROR uzp2 v0.4s, v1.2s, v2.2s
6502 // CHECK-ERROR <stdin>:4303:21: error: invalid operand for instruction
6503 // CHECK-ERROR uzp2 v0.2s, v1.1s, v2.1s
6505 // CHECK-ERROR <stdin>:4304:21: error: invalid operand for instruction
6506 // CHECK-ERROR uzp2 v0.2d, v1.1d, v2.1d
6508 // CHECK-ERROR <stdin>:4305:17: error: invalid operand for instruction
6509 // CHECK-ERROR uzp2 v0.1d, v1.1d, v2.1d
6512 zip1 v0.16b, v1.8b, v2.8b
6513 zip1 v0.8b, v1.4b, v2.4b
6514 zip1 v0.8h, v1.4h, v2.4h
6515 zip1 v0.4h, v1.2h, v2.2h
6516 zip1 v0.4s, v1.2s, v2.2s
6517 zip1 v0.2s, v1.1s, v2.1s
6518 zip1 v0.2d, v1.1d, v2.1d
6519 zip1 v0.1d, v1.1d, v2.1d
6521 // CHECK-ERROR <stdin>:4307:22: error: invalid operand for instruction
6522 // CHECK-ERROR zip1 v0.16b, v1.8b, v2.8b
6524 // CHECK-ERROR <stdin>:4308:21: error: invalid operand for instruction
6525 // CHECK-ERROR zip1 v0.8b, v1.4b, v2.4b
6527 // CHECK-ERROR <stdin>:4309:21: error: invalid operand for instruction
6528 // CHECK-ERROR zip1 v0.8h, v1.4h, v2.4h
6530 // CHECK-ERROR <stdin>:4310:21: error: invalid operand for instruction
6531 // CHECK-ERROR zip1 v0.4h, v1.2h, v2.2h
6533 // CHECK-ERROR <stdin>:4311:21: error: invalid operand for instruction
6534 // CHECK-ERROR zip1 v0.4s, v1.2s, v2.2s
6536 // CHECK-ERROR <stdin>:4312:21: error: invalid operand for instruction
6537 // CHECK-ERROR zip1 v0.2s, v1.1s, v2.1s
6539 // CHECK-ERROR <stdin>:4313:21: error: invalid operand for instruction
6540 // CHECK-ERROR zip1 v0.2d, v1.1d, v2.1d
6542 // CHECK-ERROR <stdin>:4314:17: error: invalid operand for instruction
6543 // CHECK-ERROR zip1 v0.1d, v1.1d, v2.1d
6546 zip2 v0.16b, v1.8b, v2.8b
6547 zip2 v0.8b, v1.4b, v2.4b
6548 zip2 v0.8h, v1.4h, v2.4h
6549 zip2 v0.4h, v1.2h, v2.2h
6550 zip2 v0.4s, v1.2s, v2.2s
6551 zip2 v0.2s, v1.1s, v2.1s
6552 zip2 v0.2d, v1.1d, v2.1d
6553 zip2 v0.1d, v1.1d, v2.1d
6555 // CHECK-ERROR <stdin>:4316:22: error: invalid operand for instruction
6556 // CHECK-ERROR zip2 v0.16b, v1.8b, v2.8b
6558 // CHECK-ERROR <stdin>:4317:21: error: invalid operand for instruction
6559 // CHECK-ERROR zip2 v0.8b, v1.4b, v2.4b
6561 // CHECK-ERROR <stdin>:4318:21: error: invalid operand for instruction
6562 // CHECK-ERROR zip2 v0.8h, v1.4h, v2.4h
6564 // CHECK-ERROR <stdin>:4319:21: error: invalid operand for instruction
6565 // CHECK-ERROR zip2 v0.4h, v1.2h, v2.2h
6567 // CHECK-ERROR <stdin>:4320:21: error: invalid operand for instruction
6568 // CHECK-ERROR zip2 v0.4s, v1.2s, v2.2s
6570 // CHECK-ERROR <stdin>:4321:21: error: invalid operand for instruction
6571 // CHECK-ERROR zip2 v0.2s, v1.1s, v2.1s
6573 // CHECK-ERROR <stdin>:4322:21: error: invalid operand for instruction
6574 // CHECK-ERROR zip2 v0.2d, v1.1d, v2.1d
6576 // CHECK-ERROR <stdin>:4323:17: error: invalid operand for instruction
6577 // CHECK-ERROR zip2 v0.1d, v1.1d, v2.1d
6580 trn1 v0.16b, v1.8b, v2.8b
6581 trn1 v0.8b, v1.4b, v2.4b
6582 trn1 v0.8h, v1.4h, v2.4h
6583 trn1 v0.4h, v1.2h, v2.2h
6584 trn1 v0.4s, v1.2s, v2.2s
6585 trn1 v0.2s, v1.1s, v2.1s
6586 trn1 v0.2d, v1.1d, v2.1d
6587 trn1 v0.1d, v1.1d, v2.1d
6589 // CHECK-ERROR <stdin>:4325:22: error: invalid operand for instruction
6590 // CHECK-ERROR trn1 v0.16b, v1.8b, v2.8b
6592 // CHECK-ERROR <stdin>:4326:21: error: invalid operand for instruction
6593 // CHECK-ERROR trn1 v0.8b, v1.4b, v2.4b
6595 // CHECK-ERROR <stdin>:4327:21: error: invalid operand for instruction
6596 // CHECK-ERROR trn1 v0.8h, v1.4h, v2.4h
6598 // CHECK-ERROR <stdin>:4328:21: error: invalid operand for instruction
6599 // CHECK-ERROR trn1 v0.4h, v1.2h, v2.2h
6601 // CHECK-ERROR <stdin>:4329:21: error: invalid operand for instruction
6602 // CHECK-ERROR trn1 v0.4s, v1.2s, v2.2s
6604 // CHECK-ERROR <stdin>:4330:21: error: invalid operand for instruction
6605 // CHECK-ERROR trn1 v0.2s, v1.1s, v2.1s
6607 // CHECK-ERROR <stdin>:4331:21: error: invalid operand for instruction
6608 // CHECK-ERROR trn1 v0.2d, v1.1d, v2.1d
6610 // CHECK-ERROR <stdin>:4332:17: error: invalid operand for instruction
6611 // CHECK-ERROR trn1 v0.1d, v1.1d, v2.1d
6614 trn2 v0.16b, v1.8b, v2.8b
6615 trn2 v0.8b, v1.4b, v2.4b
6616 trn2 v0.8h, v1.4h, v2.4h
6617 trn2 v0.4h, v1.2h, v2.2h
6618 trn2 v0.4s, v1.2s, v2.2s
6619 trn2 v0.2s, v1.1s, v2.1s
6620 trn2 v0.2d, v1.1d, v2.1d
6621 trn2 v0.1d, v1.1d, v2.1d
6623 // CHECK-ERROR <stdin>:4334:22: error: invalid operand for instruction
6624 // CHECK-ERROR trn2 v0.16b, v1.8b, v2.8b
6626 // CHECK-ERROR <stdin>:4335:21: error: invalid operand for instruction
6627 // CHECK-ERROR trn2 v0.8b, v1.4b, v2.4b
6629 // CHECK-ERROR <stdin>:4336:21: error: invalid operand for instruction
6630 // CHECK-ERROR trn2 v0.8h, v1.4h, v2.4h
6632 // CHECK-ERROR <stdin>:4337:21: error: invalid operand for instruction
6633 // CHECK-ERROR trn2 v0.4h, v1.2h, v2.2h
6635 // CHECK-ERROR <stdin>:4338:21: error: invalid operand for instruction
6636 // CHECK-ERROR trn2 v0.4s, v1.2s, v2.2s
6638 // CHECK-ERROR <stdin>:4339:21: error: invalid operand for instruction
6639 // CHECK-ERROR trn2 v0.2s, v1.1s, v2.1s
6641 // CHECK-ERROR <stdin>:4340:21: error: invalid operand for instruction
6642 // CHECK-ERROR trn2 v0.2d, v1.1d, v2.1d
6644 // CHECK-ERROR <stdin>:4341:17: error: invalid operand for instruction
6645 // CHECK-ERROR trn2 v0.1d, v1.1d, v2.1d
6648 //----------------------------------------------------------------------
6649 // Permutation with 3 vectors
6650 //----------------------------------------------------------------------
6652 uzp1 v0.16b, v1.8b, v2.8b
6653 uzp1 v0.8b, v1.4b, v2.4b
6654 uzp1 v0.8h, v1.4h, v2.4h
6655 uzp1 v0.4h, v1.2h, v2.2h
6656 uzp1 v0.4s, v1.2s, v2.2s
6657 uzp1 v0.2s, v1.1s, v2.1s
6658 uzp1 v0.2d, v1.1d, v2.1d
6659 uzp1 v0.1d, v1.1d, v2.1d
6661 // CHECK-ERROR <stdin>:4289:22: error: invalid operand for instruction
6662 // CHECK-ERROR uzp1 v0.16b, v1.8b, v2.8b
6664 // CHECK-ERROR <stdin>:4290:21: error: invalid operand for instruction
6665 // CHECK-ERROR uzp1 v0.8b, v1.4b, v2.4b
6667 // CHECK-ERROR <stdin>:4291:21: error: invalid operand for instruction
6668 // CHECK-ERROR uzp1 v0.8h, v1.4h, v2.4h
6670 // CHECK-ERROR <stdin>:4292:21: error: invalid operand for instruction
6671 // CHECK-ERROR uzp1 v0.4h, v1.2h, v2.2h
6673 // CHECK-ERROR <stdin>:4293:21: error: invalid operand for instruction
6674 // CHECK-ERROR uzp1 v0.4s, v1.2s, v2.2s
6676 // CHECK-ERROR <stdin>:4294:21: error: invalid operand for instruction
6677 // CHECK-ERROR uzp1 v0.2s, v1.1s, v2.1s
6679 // CHECK-ERROR <stdin>:4295:21: error: invalid operand for instruction
6680 // CHECK-ERROR uzp1 v0.2d, v1.1d, v2.1d
6682 // CHECK-ERROR <stdin>:4296:17: error: invalid operand for instruction
6683 // CHECK-ERROR uzp1 v0.1d, v1.1d, v2.1d
6686 uzp2 v0.16b, v1.8b, v2.8b
6687 uzp2 v0.8b, v1.4b, v2.4b
6688 uzp2 v0.8h, v1.4h, v2.4h
6689 uzp2 v0.4h, v1.2h, v2.2h
6690 uzp2 v0.4s, v1.2s, v2.2s
6691 uzp2 v0.2s, v1.1s, v2.1s
6692 uzp2 v0.2d, v1.1d, v2.1d
6693 uzp2 v0.1d, v1.1d, v2.1d
6695 // CHECK-ERROR <stdin>:4298:22: error: invalid operand for instruction
6696 // CHECK-ERROR uzp2 v0.16b, v1.8b, v2.8b
6698 // CHECK-ERROR <stdin>:4299:21: error: invalid operand for instruction
6699 // CHECK-ERROR uzp2 v0.8b, v1.4b, v2.4b
6701 // CHECK-ERROR <stdin>:4300:21: error: invalid operand for instruction
6702 // CHECK-ERROR uzp2 v0.8h, v1.4h, v2.4h
6704 // CHECK-ERROR <stdin>:4301:21: error: invalid operand for instruction
6705 // CHECK-ERROR uzp2 v0.4h, v1.2h, v2.2h
6707 // CHECK-ERROR <stdin>:4302:21: error: invalid operand for instruction
6708 // CHECK-ERROR uzp2 v0.4s, v1.2s, v2.2s
6710 // CHECK-ERROR <stdin>:4303:21: error: invalid operand for instruction
6711 // CHECK-ERROR uzp2 v0.2s, v1.1s, v2.1s
6713 // CHECK-ERROR <stdin>:4304:21: error: invalid operand for instruction
6714 // CHECK-ERROR uzp2 v0.2d, v1.1d, v2.1d
6716 // CHECK-ERROR <stdin>:4305:17: error: invalid operand for instruction
6717 // CHECK-ERROR uzp2 v0.1d, v1.1d, v2.1d
6720 zip1 v0.16b, v1.8b, v2.8b
6721 zip1 v0.8b, v1.4b, v2.4b
6722 zip1 v0.8h, v1.4h, v2.4h
6723 zip1 v0.4h, v1.2h, v2.2h
6724 zip1 v0.4s, v1.2s, v2.2s
6725 zip1 v0.2s, v1.1s, v2.1s
6726 zip1 v0.2d, v1.1d, v2.1d
6727 zip1 v0.1d, v1.1d, v2.1d
6729 // CHECK-ERROR <stdin>:4307:22: error: invalid operand for instruction
6730 // CHECK-ERROR zip1 v0.16b, v1.8b, v2.8b
6732 // CHECK-ERROR <stdin>:4308:21: error: invalid operand for instruction
6733 // CHECK-ERROR zip1 v0.8b, v1.4b, v2.4b
6735 // CHECK-ERROR <stdin>:4309:21: error: invalid operand for instruction
6736 // CHECK-ERROR zip1 v0.8h, v1.4h, v2.4h
6738 // CHECK-ERROR <stdin>:4310:21: error: invalid operand for instruction
6739 // CHECK-ERROR zip1 v0.4h, v1.2h, v2.2h
6741 // CHECK-ERROR <stdin>:4311:21: error: invalid operand for instruction
6742 // CHECK-ERROR zip1 v0.4s, v1.2s, v2.2s
6744 // CHECK-ERROR <stdin>:4312:21: error: invalid operand for instruction
6745 // CHECK-ERROR zip1 v0.2s, v1.1s, v2.1s
6747 // CHECK-ERROR <stdin>:4313:21: error: invalid operand for instruction
6748 // CHECK-ERROR zip1 v0.2d, v1.1d, v2.1d
6750 // CHECK-ERROR <stdin>:4314:17: error: invalid operand for instruction
6751 // CHECK-ERROR zip1 v0.1d, v1.1d, v2.1d
6754 zip2 v0.16b, v1.8b, v2.8b
6755 zip2 v0.8b, v1.4b, v2.4b
6756 zip2 v0.8h, v1.4h, v2.4h
6757 zip2 v0.4h, v1.2h, v2.2h
6758 zip2 v0.4s, v1.2s, v2.2s
6759 zip2 v0.2s, v1.1s, v2.1s
6760 zip2 v0.2d, v1.1d, v2.1d
6761 zip2 v0.1d, v1.1d, v2.1d
6763 // CHECK-ERROR <stdin>:4316:22: error: invalid operand for instruction
6764 // CHECK-ERROR zip2 v0.16b, v1.8b, v2.8b
6766 // CHECK-ERROR <stdin>:4317:21: error: invalid operand for instruction
6767 // CHECK-ERROR zip2 v0.8b, v1.4b, v2.4b
6769 // CHECK-ERROR <stdin>:4318:21: error: invalid operand for instruction
6770 // CHECK-ERROR zip2 v0.8h, v1.4h, v2.4h
6772 // CHECK-ERROR <stdin>:4319:21: error: invalid operand for instruction
6773 // CHECK-ERROR zip2 v0.4h, v1.2h, v2.2h
6775 // CHECK-ERROR <stdin>:4320:21: error: invalid operand for instruction
6776 // CHECK-ERROR zip2 v0.4s, v1.2s, v2.2s
6778 // CHECK-ERROR <stdin>:4321:21: error: invalid operand for instruction
6779 // CHECK-ERROR zip2 v0.2s, v1.1s, v2.1s
6781 // CHECK-ERROR <stdin>:4322:21: error: invalid operand for instruction
6782 // CHECK-ERROR zip2 v0.2d, v1.1d, v2.1d
6784 // CHECK-ERROR <stdin>:4323:17: error: invalid operand for instruction
6785 // CHECK-ERROR zip2 v0.1d, v1.1d, v2.1d
6788 trn1 v0.16b, v1.8b, v2.8b
6789 trn1 v0.8b, v1.4b, v2.4b
6790 trn1 v0.8h, v1.4h, v2.4h
6791 trn1 v0.4h, v1.2h, v2.2h
6792 trn1 v0.4s, v1.2s, v2.2s
6793 trn1 v0.2s, v1.1s, v2.1s
6794 trn1 v0.2d, v1.1d, v2.1d
6795 trn1 v0.1d, v1.1d, v2.1d
6797 // CHECK-ERROR <stdin>:4325:22: error: invalid operand for instruction
6798 // CHECK-ERROR trn1 v0.16b, v1.8b, v2.8b
6800 // CHECK-ERROR <stdin>:4326:21: error: invalid operand for instruction
6801 // CHECK-ERROR trn1 v0.8b, v1.4b, v2.4b
6803 // CHECK-ERROR <stdin>:4327:21: error: invalid operand for instruction
6804 // CHECK-ERROR trn1 v0.8h, v1.4h, v2.4h
6806 // CHECK-ERROR <stdin>:4328:21: error: invalid operand for instruction
6807 // CHECK-ERROR trn1 v0.4h, v1.2h, v2.2h
6809 // CHECK-ERROR <stdin>:4329:21: error: invalid operand for instruction
6810 // CHECK-ERROR trn1 v0.4s, v1.2s, v2.2s
6812 // CHECK-ERROR <stdin>:4330:21: error: invalid operand for instruction
6813 // CHECK-ERROR trn1 v0.2s, v1.1s, v2.1s
6815 // CHECK-ERROR <stdin>:4331:21: error: invalid operand for instruction
6816 // CHECK-ERROR trn1 v0.2d, v1.1d, v2.1d
6818 // CHECK-ERROR <stdin>:4332:17: error: invalid operand for instruction
6819 // CHECK-ERROR trn1 v0.1d, v1.1d, v2.1d
6822 trn2 v0.16b, v1.8b, v2.8b
6823 trn2 v0.8b, v1.4b, v2.4b
6824 trn2 v0.8h, v1.4h, v2.4h
6825 trn2 v0.4h, v1.2h, v2.2h
6826 trn2 v0.4s, v1.2s, v2.2s
6827 trn2 v0.2s, v1.1s, v2.1s
6828 trn2 v0.2d, v1.1d, v2.1d
6829 trn2 v0.1d, v1.1d, v2.1d
6831 // CHECK-ERROR <stdin>:4334:22: error: invalid operand for instruction
6832 // CHECK-ERROR trn2 v0.16b, v1.8b, v2.8b
6834 // CHECK-ERROR <stdin>:4335:21: error: invalid operand for instruction
6835 // CHECK-ERROR trn2 v0.8b, v1.4b, v2.4b
6837 // CHECK-ERROR <stdin>:4336:21: error: invalid operand for instruction
6838 // CHECK-ERROR trn2 v0.8h, v1.4h, v2.4h
6840 // CHECK-ERROR <stdin>:4337:21: error: invalid operand for instruction
6841 // CHECK-ERROR trn2 v0.4h, v1.2h, v2.2h
6843 // CHECK-ERROR <stdin>:4338:21: error: invalid operand for instruction
6844 // CHECK-ERROR trn2 v0.4s, v1.2s, v2.2s
6846 // CHECK-ERROR <stdin>:4339:21: error: invalid operand for instruction
6847 // CHECK-ERROR trn2 v0.2s, v1.1s, v2.1s
6849 // CHECK-ERROR <stdin>:4340:21: error: invalid operand for instruction
6850 // CHECK-ERROR trn2 v0.2d, v1.1d, v2.1d
6852 // CHECK-ERROR <stdin>:4341:17: error: invalid operand for instruction
6853 // CHECK-ERROR trn2 v0.1d, v1.1d, v2.1d
6856 //----------------------------------------------------------------------
6857 // Floating Point multiply (scalar, by element)
6858 //----------------------------------------------------------------------
6859 // mismatched and invalid vector types
6860 fmul s0, s1, v1.h[0]
6861 fmul h0, h1, v1.s[0]
6863 fmul s2, s29, v10.s[4]
6865 // CHECK-ERROR: error: invalid operand for instruction
6866 // CHECK-ERROR: fmul s0, s1, v1.h[0]
6868 // CHECK-ERROR: error: invalid operand for instruction
6869 // CHECK-ERROR: fmul h0, h1, v1.s[0]
6871 // CHECK-ERROR: error: lane number incompatible with layout
6872 // CHECK-ERROR: fmul s2, s29, v10.s[4]
6875 //----------------------------------------------------------------------
6876 // Floating Point multiply extended (scalar, by element)
6877 //----------------------------------------------------------------------
6878 // mismatched and invalid vector types
6879 fmulx d0, d1, v1.b[0]
6880 fmulx h0, h1, v1.d[0]
6882 fmulx d2, d29, v10.d[3]
6884 // CHECK-ERROR: error: invalid operand for instruction
6885 // CHECK-ERROR: fmulx d0, d1, v1.b[0]
6887 // CHECK-ERROR: error: invalid operand for instruction
6888 // CHECK-ERROR: fmulx h0, h1, v1.d[0]
6890 // CHECK-ERROR: error: lane number incompatible with layout
6891 // CHECK-ERROR: fmulx d2, d29, v10.d[3]
6894 //----------------------------------------------------------------------
6895 // Floating Point fused multiply-add (scalar, by element)
6896 //----------------------------------------------------------------------
6897 // mismatched and invalid vector types
6898 fmla b0, b1, v1.b[0]
6899 fmla d30, s11, v1.d[1]
6901 fmla s16, s22, v16.s[5]
6903 // CHECK-ERROR: error: invalid operand for instruction
6904 // CHECK-ERROR: fmla b0, b1, v1.b[0]
6906 // CHECK-ERROR: error: invalid operand for instruction
6907 // CHECK-ERROR: fmla d30, s11, v1.d[1]
6909 // CHECK-ERROR: error: lane number incompatible with layout
6910 // CHECK-ERROR: fmla s16, s22, v16.s[5]
6913 //----------------------------------------------------------------------
6914 // Floating Point fused multiply-subtract (scalar, by element)
6915 //----------------------------------------------------------------------
6916 // mismatched and invalid vector types
6917 fmls s29, h10, v28.s[1]
6918 fmls h7, h17, v26.s[2]
6920 fmls d16, d22, v16.d[-1]
6922 // CHECK-ERROR: error: invalid operand for instruction
6923 // CHECK-ERROR: fmls s29, h10, v28.s[1]
6925 // CHECK-ERROR: error: invalid operand for instruction
6926 // CHECK-ERROR: fmls h7, h17, v26.s[2]
6928 // CHECK-ERROR: error: expected lane number
6929 // CHECK-ERROR: fmls d16, d22, v16.d[-1]
6932 //----------------------------------------------------------------------
6933 // Scalar Signed saturating doubling multiply-add long
6934 // (scalar, by element)
6935 //----------------------------------------------------------------------
6936 // mismatched and invalid vector types
6937 sqdmlal s0, h0, v0.s[0]
6938 sqdmlal s8, s9, v14.s[1]
6940 sqdmlal s4, s5, v1.s[5]
6941 // invalid vector index
6942 sqdmlal s0, h0, v17.h[0]
6944 // CHECK-ERROR: error: invalid operand for instruction
6945 // CHECK-ERROR: sqdmlal s0, h0, v0.s[0]
6947 // CHECK-ERROR: error: invalid operand for instruction
6948 // CHECK-ERROR: sqdmlal s8, s9, v14.s[1]
6950 // CHECK-ERROR: error: lane number incompatible with layout
6951 // CHECK-ERROR: sqdmlal s4, s5, v1.s[5]
6953 // CHECK-ERROR: error: invalid operand for instruction
6954 // CHECK-ERROR: sqdmlal s0, h0, v17.h[0]
6957 //----------------------------------------------------------------------
6958 // Scalar Signed saturating doubling multiply-subtract long
6959 // (scalar, by element)
6960 //----------------------------------------------------------------------
6961 // mismatched and invalid vector types
6962 sqdmlsl s1, h1, v1.d[0]
6963 sqdmlsl d1, h1, v13.s[0]
6965 sqdmlsl d1, s1, v13.s[4]
6966 // invalid vector index
6967 sqdmlsl s1, h1, v20.h[7]
6969 // CHECK-ERROR: error: invalid operand for instruction
6970 // CHECK-ERROR: sqdmlsl s1, h1, v1.d[0]
6972 // CHECK-ERROR: error: invalid operand for instruction
6973 // CHECK-ERROR: sqdmlsl d1, h1, v13.s[0]
6975 // CHECK-ERROR: error: lane number incompatible with layout
6976 // CHECK-ERROR: sqdmlsl d1, s1, v13.s[4]
6978 // CHECK-ERROR: error: invalid operand for instruction
6979 // CHECK-ERROR: sqdmlsl s1, h1, v20.h[7]
6982 //----------------------------------------------------------------------
6983 // Scalar Signed saturating doubling multiply long (scalar, by element)
6984 //----------------------------------------------------------------------
6985 // mismatched and invalid vector types
6987 // invalid vector index
6988 // mismatched and invalid vector types
6989 sqdmull s1, h1, v1.s[1]
6990 sqdmull s1, s1, v4.s[0]
6992 sqdmull s12, h17, v9.h[9]
6993 // invalid vector index
6994 sqdmull s1, h1, v16.h[5]
6996 // CHECK-ERROR: error: invalid operand for instruction
6997 // CHECK-ERROR: sqdmull s1, h1, v1.s[1]
6999 // CHECK-ERROR: error: invalid operand for instruction
7000 // CHECK-ERROR: sqdmull s1, s1, v4.s[0]
7002 // CHECK-ERROR: error: lane number incompatible with layout
7003 // CHECK-ERROR: sqdmull s12, h17, v9.h[9]
7005 // CHECK-ERROR: error: invalid operand for instruction
7006 // CHECK-ERROR: sqdmull s1, h1, v16.h[5]
7009 //----------------------------------------------------------------------
7010 // Scalar Signed saturating doubling multiply returning
7011 // high half (scalar, by element)
7012 //----------------------------------------------------------------------
7013 // mismatched and invalid vector types
7014 sqdmulh h0, s1, v0.h[0]
7015 sqdmulh s25, s26, v27.h[3]
7017 sqdmulh s25, s26, v27.s[4]
7018 // invalid vector index
7019 sqdmulh s0, h1, v30.h[0]
7021 // CHECK-ERROR: error: invalid operand for instruction
7022 // CHECK-ERROR: sqdmulh h0, s1, v0.h[0]
7024 // CHECK-ERROR: error: invalid operand for instruction
7025 // CHECK-ERROR: sqdmulh s25, s26, v27.h[3]
7027 // CHECK-ERROR: error: lane number incompatible with layout
7028 // CHECK-ERROR: sqdmulh s25, s26, v27.s[4]
7030 // CHECK-ERROR: error: invalid operand for instruction
7031 // CHECK-ERROR: sqdmulh s0, h1, v30.h[0]
7034 //----------------------------------------------------------------------
7035 // Scalar Signed saturating rounding doubling multiply
7036 // returning high half (scalar, by element)
7037 //----------------------------------------------------------------------
7038 // mismatched and invalid vector types
7039 sqrdmulh h31, h30, v14.s[2]
7040 sqrdmulh s5, h6, v7.s[2]
7042 sqrdmulh h31, h30, v14.h[9]
7043 // invalid vector index
7044 sqrdmulh h31, h30, v20.h[4]
7046 // CHECK-ERROR: error: invalid operand for instruction
7047 // CHECK-ERROR: sqrdmulh h31, h30, v14.s[2]
7049 // CHECK-ERROR: error: invalid operand for instruction
7050 // CHECK-ERROR: sqrdmulh s5, h6, v7.s[2]
7052 // CHECK-ERROR: error: lane number incompatible with layout
7053 // CHECK-ERROR: sqrdmulh h31, h30, v14.h[9]
7055 // CHECK-ERROR: error: invalid operand for instruction
7056 // CHECK-ERROR: sqrdmulh h31, h30, v20.h[4]
7059 //----------------------------------------------------------------------
7060 // Scalar Duplicate element (scalar)
7061 //----------------------------------------------------------------------
7062 // mismatched and invalid vector types
7072 // CHECK-ERROR: error: invalid operand for instruction
7073 // CHECK-ERROR: dup b0, v1.d[0]
7075 // CHECK-ERROR: error: invalid operand for instruction
7076 // CHECK-ERROR: dup h0, v31.b[8]
7078 // CHECK-ERROR: error: invalid operand for instruction
7079 // CHECK-ERROR: dup s0, v2.h[4]
7081 // CHECK-ERROR: error: invalid operand for instruction
7082 // CHECK-ERROR: dup d0, v17.s[3]
7084 // CHECK-ERROR: error: lane number incompatible with layout
7085 // CHECK-ERROR: dup d0, v17.d[4]
7087 // CHECK-ERROR: error: lane number incompatible with layout
7088 // CHECK-ERROR: dup s0, v1.s[7]
7090 // CHECK-ERROR: error: lane number incompatible with layout
7091 // CHECK-ERROR: dup h0, v31.h[16]
7093 // CHECK-ERROR: error: lane number incompatible with layout
7094 // CHECK-ERROR: dup b1, v3.b[16]
7097 //----------------------------------------------------------------------
7099 //----------------------------------------------------------------------
7101 tbl v0.8b, {v1.8b}, v2.8b
7102 tbl v0.8b, {v1.8b, v2.8b}, v2.8b
7103 tbl v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b
7104 tbl v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b
7105 tbl v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b
7107 // CHECK-ERROR: error: invalid operand for instruction
7108 // CHECK-ERROR: tbl v0.8b, {v1.8b}, v2.8b
7110 // CHECK-ERROR: error: invalid operand for instruction
7111 // CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b}, v2.8b
7113 // CHECK-ERROR: error: invalid operand for instruction
7114 // CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b
7116 // CHECK-ERROR: error: invalid operand for instruction
7117 // CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b
7119 // CHECK-ERROR: error: invalid number of vectors
7120 // CHECK-ERROR: tbl v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b
7123 tbx v0.8b, {v1.8b}, v2.8b
7124 tbx v0.8b, {v1.8b, v2.8b}, v2.8b
7125 tbx v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b
7126 tbx v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b
7127 tbx v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b
7129 // CHECK-ERROR: error: invalid operand for instruction
7130 // CHECK-ERROR: tbx v0.8b, {v1.8b}, v2.8b
7132 // CHECK-ERROR: error: invalid operand for instruction
7133 // CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b}, v2.8b
7135 // CHECK-ERROR: error: invalid operand for instruction
7136 // CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b
7138 // CHECK-ERROR: error: invalid operand for instruction
7139 // CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b
7141 // CHECK-ERROR: error: invalid number of vectors
7142 // CHECK-ERROR: tbx v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b
7145 //----------------------------------------------------------------------
7146 // Scalar Floating-point Convert To Lower Precision Narrow, Rounding To
7148 //----------------------------------------------------------------------
7152 // CHECK-ERROR: error: invalid operand for instruction
7153 // CHECK-ERROR: fcvtxn s0, s1
7156 //----------------------------------------------------------------------
7157 // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest
7158 // With Ties To Away
7159 //----------------------------------------------------------------------
7164 // CHECK-ERROR: error: invalid operand for instruction
7165 // CHECK-ERROR: fcvtas s0, d0
7167 // CHECK-ERROR: error: invalid operand for instruction
7168 // CHECK-ERROR: fcvtas d0, s0
7171 //----------------------------------------------------------------------
7172 // Scalar Floating-point Convert To Unsigned Integer, Rounding To
7173 // Nearest With Ties To Away
7174 //----------------------------------------------------------------------
7179 // CHECK-ERROR: error: invalid operand for instruction
7180 // CHECK-ERROR: fcvtau s0, d0
7182 // CHECK-ERROR: error: invalid operand for instruction
7183 // CHECK-ERROR: fcvtau d0, s0
7186 //----------------------------------------------------------------------
7187 // Scalar Floating-point Convert To Signed Integer, Rounding Toward
7189 //----------------------------------------------------------------------
7194 // CHECK-ERROR: error: invalid operand for instruction
7195 // CHECK-ERROR: fcvtms s0, d0
7197 // CHECK-ERROR: error: invalid operand for instruction
7198 // CHECK-ERROR: fcvtms d0, s0
7201 //----------------------------------------------------------------------
7202 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
7204 //----------------------------------------------------------------------
7209 // CHECK-ERROR: error: invalid operand for instruction
7210 // CHECK-ERROR: fcvtmu s0, d0
7212 // CHECK-ERROR: error: invalid operand for instruction
7213 // CHECK-ERROR: fcvtmu d0, s0
7216 //----------------------------------------------------------------------
7217 // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest
7218 // With Ties To Even
7219 //----------------------------------------------------------------------
7224 // CHECK-ERROR: error: invalid operand for instruction
7225 // CHECK-ERROR: fcvtns s0, d0
7227 // CHECK-ERROR: error: invalid operand for instruction
7228 // CHECK-ERROR: fcvtns d0, s0
7231 //----------------------------------------------------------------------
7232 // Scalar Floating-point Convert To Unsigned Integer, Rounding To
7233 // Nearest With Ties To Even
7234 //----------------------------------------------------------------------
7239 // CHECK-ERROR: error: invalid operand for instruction
7240 // CHECK-ERROR: fcvtnu s0, d0
7242 // CHECK-ERROR: error: invalid operand for instruction
7243 // CHECK-ERROR: fcvtnu d0, s0
7246 //----------------------------------------------------------------------
7247 // Scalar Floating-point Convert To Signed Integer, Rounding Toward
7248 // Positive Infinity
7249 //----------------------------------------------------------------------
7254 // CHECK-ERROR: error: invalid operand for instruction
7255 // CHECK-ERROR: fcvtps s0, d0
7257 // CHECK-ERROR: error: invalid operand for instruction
7258 // CHECK-ERROR: fcvtps d0, s0
7261 //----------------------------------------------------------------------
7262 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
7263 // Positive Infinity
7264 //----------------------------------------------------------------------
7269 // CHECK-ERROR: error: invalid operand for instruction
7270 // CHECK-ERROR: fcvtpu s0, d0
7272 // CHECK-ERROR: error: invalid operand for instruction
7273 // CHECK-ERROR: fcvtpu d0, s0
7276 //----------------------------------------------------------------------
7277 // Scalar Floating-point Convert To Signed Integer, Rounding Toward Zero
7278 //----------------------------------------------------------------------
7283 // CHECK-ERROR: error: invalid operand for instruction
7284 // CHECK-ERROR: fcvtzs s0, d0
7286 // CHECK-ERROR: error: invalid operand for instruction
7287 // CHECK-ERROR: fcvtzs d0, s0
7290 //----------------------------------------------------------------------
7291 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
7293 //----------------------------------------------------------------------
7298 // CHECK-ERROR: error: invalid operand for instruction
7299 // CHECK-ERROR: fcvtzu s0, d0
7301 // CHECK-ERROR: error: invalid operand for instruction
7302 // CHECK-ERROR: fcvtzu d0, s0
7305 //----------------------------------------------------------------------
7306 // Scalar Floating-point Absolute Difference
7307 //----------------------------------------------------------------------
7313 // CHECK-ERROR: error: invalid operand for instruction
7314 // CHECK-ERROR: fabd s29, d24, s20
7316 // CHECK-ERROR: error: invalid operand for instruction
7317 // CHECK-ERROR: fabd d29, s24, d20