1 # RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -disassemble < %s | FileCheck %s
3 #------------------------------------------------------------------------------
4 # Vector Integer Add/Sub
5 #------------------------------------------------------------------------------
6 # CHECK: add v31.8b, v31.8b, v31.8b
7 # CHECK: sub v0.2d, v0.2d, v0.2d
11 #------------------------------------------------------------------------------
12 # Vector Floating-Point Add/Sub
13 #------------------------------------------------------------------------------
15 # CHECK: fadd v0.4s, v0.4s, v0.4s
16 # CHECK: fsub v31.2s, v31.2s, v31.2s
20 #------------------------------------------------------------------------------
22 #------------------------------------------------------------------------------
23 # CHECK: mul v0.8b, v1.8b, v2.8b
26 #------------------------------------------------------------------------------
27 # Vector Floating-Point Mul/Div
28 #------------------------------------------------------------------------------
29 # CHECK: fmul v0.2s, v1.2s, v2.2s
30 # CHECK: fdiv v31.2s, v31.2s, v31.2s
34 #----------------------------------------------------------------------
35 # Vector Polynomial Multiply
36 #----------------------------------------------------------------------
37 # CHECK: pmul v0.8b, v15.8b, v16.8b
38 # CHECK: pmul v31.16b, v7.16b, v8.16b
42 #------------------------------------------------------------------------------
43 # Vector And, Orr, Eor, Orn, Bic
44 #------------------------------------------------------------------------------
45 # CHECK: and v2.8b, v2.8b, v2.8b
46 # CHECK: orr v31.16b, v31.16b, v30.16b
47 # CHECK: eor v0.16b, v1.16b, v2.16b
48 # CHECK: orn v9.16b, v10.16b, v11.16b
49 # CHECK: bic v31.8b, v30.8b, v29.8b
56 #------------------------------------------------------------------------------
57 # Vector Bsl, Bit, Bif
58 #------------------------------------------------------------------------------
59 # CHECK: bsl v0.8b, v1.8b, v2.8b
60 # CHECK: bit v31.16b, v31.16b, v31.16b
61 # CHECK: bif v0.16b, v1.16b, v2.16b
67 #------------------------------------------------------------------------------
68 # Vector Integer Multiply-accumulate and Multiply-subtract
69 #------------------------------------------------------------------------------
70 # CHECK: mla v0.8b, v1.8b, v2.8b
71 # CHECK: mls v31.4h, v31.4h, v31.4h
75 #------------------------------------------------------------------------------
76 # Vector Floating-Point Multiply-accumulate and Multiply-subtract
77 #------------------------------------------------------------------------------
78 # CHECK: fmla v0.2s, v1.2s, v2.2s
79 # CHECK: fmls v31.2s, v31.2s, v31.2s
83 #------------------------------------------------------------------------------
84 # Vector Move Immediate Shifted
85 # Vector Move Inverted Immediate Shifted
86 # Vector Bitwise Bit Clear (AND NOT) - immediate
87 # Vector Bitwise OR - immedidate
88 #------------------------------------------------------------------------------
89 # CHECK: movi v31.4s, #0xff, lsl #24
90 # CHECK: mvni v0.2s, #0x0
91 # CHECK: bic v15.4h, #0xf, lsl #8
92 # CHECK: orr v16.8h, #0x1f
98 #------------------------------------------------------------------------------
99 # Vector Move Immediate Masked
100 # Vector Move Inverted Immediate Masked
101 #------------------------------------------------------------------------------
102 # CHECK: movi v8.2s, #0x8, msl #8
103 # CHECK: mvni v16.4s, #0x10, msl #16
107 #------------------------------------------------------------------------------
108 # Vector Immediate - per byte
109 # Vector Move Immediate - bytemask, per doubleword
110 # Vector Move Immediate - bytemask, one doubleword
111 #------------------------------------------------------------------------------
112 # CHECK: movi v16.8b, #0xff
113 # CHECK: movi v31.16b, #0x1f
114 # CHECK: movi d15, #0xff00ff00ff00ff
115 # CHECK: movi v31.2d, #0xff0000ff0000ffff
121 #------------------------------------------------------------------------------
122 # Vector Floating Point Move Immediate
123 #------------------------------------------------------------------------------
124 # CHECK: fmov v0.2s, #13.0
125 # CHECK: fmov v15.4s, #1.0
126 # CHECK: fmov v31.2d, #-1.25
131 #------------------------------------------------------------------------------
132 # Vector Move - register
133 #------------------------------------------------------------------------------
134 # CHECK: mov v1.16b, v15.16b
135 # CHECK: mov v25.8b, v4.8b
139 #----------------------------------------------------------------------
140 # Vector Absolute Difference and Accumulate (Signed, Unsigned)
141 # Vector Absolute Difference (Signed, Unsigned)
142 # Vector Absolute Difference (Floating Point)
143 #----------------------------------------------------------------------
145 # CHECK: uaba v0.8b, v1.8b, v2.8b
146 # CHECK: saba v31.16b, v30.16b, v29.16b
147 # CHECK: uabd v15.4h, v16.4h, v17.4h
148 # CHECK: sabd v5.4h, v4.4h, v6.4h
149 # CHECK: fabd v1.4s, v31.4s, v16.4s
156 #----------------------------------------------------------------------
159 #----------------------------------------------------------------------
161 # CHECK: add d17, d31, d29
162 # CHECK: sub d15, d5, d16
166 #----------------------------------------------------------------------
167 # Vector Reciprocal Square Root Step (Floating Point)
168 #----------------------------------------------------------------------
169 # CHECK: frsqrts v31.2d, v15.2d, v8.2d
172 #----------------------------------------------------------------------
173 # Vector Reciprocal Step (Floating Point)
174 #----------------------------------------------------------------------
175 # CHECK: frecps v5.4s, v7.4s, v16.4s
178 #----------------------------------------------------------------------
179 # Vector Absolute Compare Mask Less Than Or Equal (Floating Point)
180 #----------------------------------------------------------------------
181 # CHECK: facge v0.4s, v31.4s, v16.4s
184 #----------------------------------------------------------------------
185 # Vector Absolute Compare Mask Less Than (Floating Point)
186 #----------------------------------------------------------------------
187 # CHECK: facgt v31.2d, v29.2d, v28.2d
190 #----------------------------------------------------------------------
191 # Vector Compare Mask Equal (Integer)
192 #----------------------------------------------------------------------
193 # CHECK: cmeq v5.16b, v15.16b, v31.16b
196 #----------------------------------------------------------------------
197 # Vector Compare Mask Higher or Same (Unsigned Integer)
198 #----------------------------------------------------------------------
199 # CHECK: cmhs v1.8b, v16.8b, v30.8b
202 #----------------------------------------------------------------------
203 # Vector Compare Mask Greater Than or Equal (Integer)
204 #----------------------------------------------------------------------
205 # CHECK: cmge v20.4h, v11.4h, v23.4h
208 #----------------------------------------------------------------------
209 # Vector Compare Mask Higher (Unsigned Integer)
210 # CHECK: cmhi v13.8h, v3.8h, v27.8h
213 #----------------------------------------------------------------------
214 # Vector Compare Mask Greater Than (Integer)
215 #----------------------------------------------------------------------
216 # CHECK: cmgt v9.4s, v4.4s, v28.4s
219 #----------------------------------------------------------------------
220 # Vector Compare Mask Bitwise Test (Integer)
221 #----------------------------------------------------------------------
222 # CHECK: cmtst v21.2s, v19.2s, v18.2s
225 #----------------------------------------------------------------------
226 # Vector Compare Mask Equal (Floating Point)
227 #----------------------------------------------------------------------
228 # CHECK: fcmeq v0.2s, v15.2s, v16.2s
231 #----------------------------------------------------------------------
232 # Vector Compare Mask Greater Than Or Equal (Floating Point)
233 #----------------------------------------------------------------------
234 # CHECK: fcmge v31.4s, v7.4s, v29.4s
237 #----------------------------------------------------------------------
238 # Vector Compare Mask Greater Than (Floating Point)
239 #----------------------------------------------------------------------
240 # CHECK: fcmgt v17.4s, v8.4s, v25.4s
243 #----------------------------------------------------------------------
244 # Vector Compare Mask Equal to Zero (Integer)
245 #----------------------------------------------------------------------
246 # CHECK: cmeq v31.16b, v15.16b, #0x0
249 #----------------------------------------------------------------------
250 # Vector Compare Mask Greater Than or Equal to Zero (Signed Integer)
251 #----------------------------------------------------------------------
252 # CHECK: cmge v3.8b, v15.8b, #0x0
255 #----------------------------------------------------------------------
256 # Vector Compare Mask Greater Than Zero (Signed Integer)
257 #----------------------------------------------------------------------
258 # CHECK: cmgt v22.2s, v9.2s, #0x0
261 #----------------------------------------------------------------------
262 # Vector Compare Mask Less Than or Equal To Zero (Signed Integer)
263 #----------------------------------------------------------------------
264 # CHECK: cmle v5.2d, v14.2d, #0x0
267 #----------------------------------------------------------------------
268 # Vector Compare Mask Less Than Zero (Signed Integer)
269 #----------------------------------------------------------------------
270 # CHECK: cmlt v13.8h, v11.8h, #0x0
273 #----------------------------------------------------------------------
274 # Vector Compare Mask Equal to Zero (Floating Point)
275 #----------------------------------------------------------------------
276 # CHECK: fcmeq v15.2s, v21.2s, #0.0
279 #----------------------------------------------------------------------
280 # Vector Compare Mask Greater Than or Equal to Zero (Floating Point)
281 #----------------------------------------------------------------------
282 # CHECK: fcmge v14.2d, v13.2d, #0.0
285 #----------------------------------------------------------------------
286 # Vector Compare Mask Greater Than Zero (Floating Point)
287 #----------------------------------------------------------------------
288 # CHECK: fcmgt v9.4s, v23.4s, #0.0
291 #----------------------------------------------------------------------
292 # Vector Compare Mask Less Than or Equal To Zero (Floating Point)
293 #----------------------------------------------------------------------
294 # CHECK: fcmle v11.2d, v6.2d, #0.0
297 #----------------------------------------------------------------------
298 # Vector Compare Mask Less Than Zero (Floating Point)
299 #----------------------------------------------------------------------
300 # CHECK: fcmlt v12.4s, v25.4s, #0.0
304 #------------------------------------------------------------------------------
305 # Vector Integer Halving Add (Signed)
306 # Vector Integer Halving Add (Unsigned)
307 # Vector Integer Halving Sub (Signed)
308 # Vector Integer Halving Sub (Unsigned)
309 #------------------------------------------------------------------------------
310 # CHECK: shadd v0.8b, v31.8b, v29.8b
311 # CHECK: uhadd v15.16b, v16.16b, v17.16b
312 # CHECK: shsub v0.4h, v1.4h, v2.4h
313 # CHECK: uhadd v5.8h, v7.8h, v8.8h
314 # CHECK: shsub v9.2s, v11.2s, v21.2s
315 # CHECK: uhsub v22.4s, v30.4s, v19.4s
323 #------------------------------------------------------------------------------
324 # Vector Integer Rouding Halving Add (Signed)
325 # Vector Integer Rouding Halving Add (Unsigned)
326 #------------------------------------------------------------------------------
327 # CHECK: srhadd v3.8b, v5.8b, v7.8b
328 # CHECK: urhadd v7.16b, v17.16b, v27.16b
329 # CHECK: srhadd v10.4h, v11.4h, v13.4h
330 # CHECK: urhadd v1.8h, v2.8h, v3.8h
331 # CHECK: srhadd v4.2s, v5.2s, v6.2s
332 # CHECK: urhadd v7.4s, v7.4s, v7.4s
340 #------------------------------------------------------------------------------
341 # Vector Integer Saturating Add (Signed)
342 # Vector Integer Saturating Add (Unsigned)
343 # Vector Integer Saturating Sub (Signed)
344 # Vector Integer Saturating Sub (Unsigned)
345 #------------------------------------------------------------------------------
346 # CHECK: sqsub v0.8b, v1.8b, v2.8b
347 # CHECK: sqadd v0.16b, v1.16b, v2.16b
348 # CHECK: uqsub v0.4h, v1.4h, v2.4h
349 # CHECK: uqadd v0.8h, v1.8h, v2.8h
350 # CHECK: sqadd v0.2s, v1.2s, v2.2s
351 # CHECK: sqsub v0.4s, v1.4s, v2.4s
352 # CHECK: sqsub v0.2d, v1.2d, v2.2d
361 #------------------------------------------------------------------------------
362 # Scalar Integer Saturating Add (Signed)
363 # Scalar Integer Saturating Add (Unsigned)
364 # Scalar Integer Saturating Sub (Signed)
365 # Scalar Integer Saturating Add (Unsigned)
366 #------------------------------------------------------------------------------
367 # CHECK: sqadd b20, b11, b15
368 # CHECK: uqadd h0, h1, h5
369 # CHECK: sqsub s20, s10, s7
370 # CHECK: uqsub d16, d16, d16
377 #----------------------------------------------------------------------
378 # Vector Shift Left (Signed and Unsigned Integer)
379 #----------------------------------------------------------------------
380 # CHECK: sshl v10.8b, v15.8b, v22.8b
381 # CHECK: ushl v10.16b, v5.16b, v2.16b
382 # CHECK: sshl v10.4h, v15.4h, v22.4h
383 # CHECK: ushl v10.8h, v5.8h, v2.8h
384 # CHECK: sshl v10.2s, v15.2s, v22.2s
385 # CHECK: ushl v10.4s, v5.4s, v2.4s
386 # CHECK: sshl v0.2d, v1.2d, v2.2d
395 #----------------------------------------------------------------------
396 # Vector Saturating Shift Left (Signed and Unsigned Integer)
397 #----------------------------------------------------------------------
398 # CHECK: sqshl v1.8b, v15.8b, v22.8b
399 # CHECK: uqshl v2.16b, v14.16b, v23.16b
400 # CHECK: sqshl v3.4h, v13.4h, v24.4h
401 # CHECK: uqshl v4.8h, v12.8h, v25.8h
402 # CHECK: sqshl v5.2s, v11.2s, v26.2s
403 # CHECK: uqshl v6.4s, v10.4s, v27.4s
404 # CHECK: uqshl v0.2d, v1.2d, v2.2d
413 #----------------------------------------------------------------------
414 # Vector Rouding Shift Left (Signed and Unsigned Integer)
415 #----------------------------------------------------------------------
416 # CHECK: srshl v10.8b, v5.8b, v22.8b
417 # CHECK: urshl v10.16b, v5.16b, v2.16b
418 # CHECK: srshl v1.4h, v5.4h, v31.4h
419 # CHECK: urshl v1.8h, v5.8h, v2.8h
420 # CHECK: srshl v10.2s, v15.2s, v2.2s
421 # CHECK: urshl v1.4s, v5.4s, v2.4s
422 # CHECK: urshl v0.2d, v1.2d, v2.2d
431 #----------------------------------------------------------------------
432 # Vector Saturating Rouding Shift Left (Signed and Unsigned Integer)
433 #----------------------------------------------------------------------
434 # CHECK: sqrshl v1.8b, v15.8b, v22.8b
435 # CHECK: uqrshl v2.16b, v14.16b, v23.16b
436 # CHECK: sqrshl v3.4h, v13.4h, v24.4h
437 # CHECK: uqrshl v4.8h, v12.8h, v25.8h
438 # CHECK: sqrshl v5.2s, v11.2s, v26.2s
439 # CHECK: uqrshl v6.4s, v10.4s, v27.4s
440 # CHECK: uqrshl v6.4s, v10.4s, v27.4s
449 #----------------------------------------------------------------------
450 # Scalar Integer Shift Left (Signed, Unsigned)
451 #----------------------------------------------------------------------
452 # CHECK: sshl d31, d31, d31
453 # CHECK: ushl d0, d0, d0
457 #----------------------------------------------------------------------
458 # Scalar Integer Saturating Shift Left (Signed, Unsigned)
459 #----------------------------------------------------------------------
460 # CHECK: sqshl d31, d31, d31
461 # CHECK: uqshl s23, s20, s16
462 # CHECK: sqshl h3, h4, h15
463 # CHECK: uqshl b11, b20, b30
469 #----------------------------------------------------------------------
470 # Scalar Integer Rouding Shift Left (Signed, Unsigned)
471 #----------------------------------------------------------------------
472 # CHECK: srshl d16, d16, d16
473 # CHECK: urshl d8, d7, d4
477 #----------------------------------------------------------------------
478 # Scalar Integer Saturating Rounding Shift Left (Signed, Unsigned)
479 #----------------------------------------------------------------------
480 # CHECK: sqrshl d31, d31, d31
481 # CHECK: uqrshl s23, s20, s16
482 # CHECK: sqrshl h3, h4, h15
483 # CHECK: uqrshl b11, b20, b30
489 #----------------------------------------------------------------------
490 # Vector Maximum (Signed and Unsigned Integer)
491 #----------------------------------------------------------------------
492 # CHECK: smax v1.8b, v15.8b, v22.8b
493 # CHECK: umax v2.16b, v14.16b, v23.16b
494 # CHECK: smax v3.4h, v13.4h, v24.4h
495 # CHECK: umax v4.8h, v12.8h, v25.8h
496 # CHECK: smax v5.2s, v11.2s, v26.2s
497 # CHECK: umax v6.4s, v10.4s, v27.4s
505 #----------------------------------------------------------------------
506 # Vector Minimum (Signed and Unsigned Integer)
507 #----------------------------------------------------------------------
508 # CHECK: umin v1.8b, v15.8b, v22.8b
509 # CHECK: smin v2.16b, v14.16b, v23.16b
510 # CHECK: umin v3.4h, v13.4h, v24.4h
511 # CHECK: smin v4.8h, v12.8h, v25.8h
512 # CHECK: umin v5.2s, v11.2s, v26.2s
513 # CHECK: smin v6.4s, v10.4s, v27.4s
521 #----------------------------------------------------------------------
522 # Vector Maximum (Floating Point)
523 #----------------------------------------------------------------------
524 # CHECK: fmax v29.2s, v28.2s, v25.2s
525 # CHECK: fmax v9.4s, v8.4s, v5.4s
526 # CHECK: fmax v11.2d, v10.2d, v7.2d
531 #----------------------------------------------------------------------
532 # Vector Minimum (Floating Point)
533 #----------------------------------------------------------------------
534 # CHECK: fmin v29.2s, v28.2s, v25.2s
535 # CHECK: fmin v9.4s, v8.4s, v5.4s
536 # CHECK: fmin v11.2d, v10.2d, v7.2d
541 #----------------------------------------------------------------------
542 # Vector maxNum (Floating Point)
543 #----------------------------------------------------------------------
544 # CHECK: fmaxnm v9.2s, v8.2s, v5.2s
545 # CHECK: fmaxnm v9.4s, v8.4s, v5.4s
546 # CHECK: fmaxnm v11.2d, v10.2d, v7.2d
551 #----------------------------------------------------------------------
552 # Vector minNum (Floating Point)
553 #----------------------------------------------------------------------
554 # CHECK: fminnm v2.2s, v8.2s, v25.2s
555 # CHECK: fminnm v9.4s, v8.4s, v5.4s
556 # CHECK: fminnm v11.2d, v10.2d, v7.2d
562 #----------------------------------------------------------------------
563 # Vector Maximum Pairwise (Signed and Unsigned Integer)
564 #----------------------------------------------------------------------
565 # CHECK: smaxp v1.8b, v15.8b, v22.8b
566 # CHECK: umaxp v2.16b, v14.16b, v23.16b
567 # CHECK: smaxp v3.4h, v13.4h, v24.4h
568 # CHECK: umaxp v4.8h, v12.8h, v25.8h
569 # CHECK: smaxp v5.2s, v11.2s, v26.2s
570 # CHECK: umaxp v6.4s, v10.4s, v27.4s
578 #----------------------------------------------------------------------
579 # Vector Minimum Pairwise (Signed and Unsigned Integer)
580 #----------------------------------------------------------------------
581 # CHECK: uminp v1.8b, v15.8b, v22.8b
582 # CHECK: sminp v2.16b, v14.16b, v23.16b
583 # CHECK: uminp v3.4h, v13.4h, v24.4h
584 # CHECK: sminp v4.8h, v12.8h, v25.8h
585 # CHECK: uminp v5.2s, v11.2s, v26.2s
586 # CHECK: sminp v6.4s, v10.4s, v27.4s
594 #----------------------------------------------------------------------
595 # Vector Maximum Pairwise (Floating Point)
596 #----------------------------------------------------------------------
597 # CHECK: fmaxp v29.2s, v28.2s, v25.2s
598 # CHECK: fmaxp v9.4s, v8.4s, v5.4s
599 # CHECK: fmaxp v11.2d, v10.2d, v7.2d
604 #----------------------------------------------------------------------
605 # Vector Minimum Pairwise (Floating Point)
606 #----------------------------------------------------------------------
607 # CHECK: fminp v29.2s, v28.2s, v25.2s
608 # CHECK: fminp v9.4s, v8.4s, v5.4s
609 # CHECK: fminp v11.2d, v10.2d, v7.2d
614 #----------------------------------------------------------------------
615 # Vector maxNum Pairwise (Floating Point)
616 #----------------------------------------------------------------------
617 # CHECK: fmaxnmp v9.2s, v8.2s, v5.2s
618 # CHECK: fmaxnmp v9.4s, v8.4s, v5.4s
619 # CHECK: fmaxnmp v11.2d, v10.2d, v7.2d
624 #----------------------------------------------------------------------
625 # Vector minNum Pairwise (Floating Point)
626 #----------------------------------------------------------------------
627 # CHECK: fminnmp v2.2s, v8.2s, v25.2s
628 # CHECK: fminnmp v9.4s, v8.4s, v5.4s
629 # CHECK: fminnmp v11.2d, v10.2d, v7.2d
634 #------------------------------------------------------------------------------
635 # Vector Add Pairwise (Integer)
636 #------------------------------------------------------------------------------
637 # CHECK: addp v31.8b, v31.8b, v31.8b
638 # CHECK: addp v0.2d, v0.2d, v0.2d
642 #------------------------------------------------------------------------------
643 # Vector Add Pairwise (Floating Point)
644 #------------------------------------------------------------------------------
645 # CHECK: faddp v0.4s, v0.4s, v0.4s
646 # CHECK: faddp v31.2s, v31.2s, v31.2s
651 #------------------------------------------------------------------------------
652 # Vector Saturating Doubling Multiply High
653 # Vector Saturating Rouding Doubling Multiply High
654 #------------------------------------------------------------------------------
655 # CHECK: sqdmulh v31.2s, v31.2s, v31.2s
656 # CHECK: sqdmulh v5.4s, v7.4s, v9.4s
657 # CHECK: sqrdmulh v31.4h, v3.4h, v13.4h
658 # CHECK: sqrdmulh v0.8h, v10.8h, v20.8h
664 #------------------------------------------------------------------------------
665 # Vector Multiply Extended
666 #------------------------------------------------------------------------------
667 # CHECK: fmulx v1.2s, v22.2s, v2.2s
668 # CHECK: fmulx v21.4s, v15.4s, v3.4s
669 # CHECK: fmulx v11.2d, v5.2d, v23.2d
674 #----------------------------------------------------------------------
675 # Vector Shift Left by Immediate
676 #----------------------------------------------------------------------
677 # CHECK: shl v0.4h, v1.4h, #3
678 # CHECK: shl v0.16b, v1.16b, #3
679 # CHECK: shl v0.4s, v1.4s, #3
680 # CHECK: shl v0.2d, v1.2d, #3
686 #----------------------------------------------------------------------
687 # Vector Shift Left Long (Signed, Unsigned) by Immediate
688 #----------------------------------------------------------------------
689 # CHECK: sshll v0.2d, v1.2s, #3
690 # CHECK: sshll2 v0.4s, v1.8h, #3
691 # CHECK: ushll v0.4s, v1.4h, #3
692 # CHECK: ushll2 v0.8h, v1.16b, #3
698 #-----------------------------------------------------------------------------
699 #Integer shift right (Signed)
700 #-----------------------------------------------------------------------------
701 # CHECK: sshr v0.8b, v1.8b, #3
702 # CHECK: sshr v0.4h, v1.4h, #3
703 # CHECK: sshr v0.2s, v1.2s, #3
704 # CHECK: sshr v0.16b, v1.16b, #3
705 # CHECK: sshr v0.8h, v1.8h, #3
706 # CHECK: sshr v0.4s, v1.4s, #3
707 # CHECK: sshr v0.2d, v1.2d, #3
716 #-----------------------------------------------------------------------------
717 #Integer shift right (Unsigned)
718 #-----------------------------------------------------------------------------
719 # CHECK: ushr v0.8b, v1.8b, #3
720 # CHECK: ushr v0.4h, v1.4h, #3
721 # CHECK: ushr v0.2s, v1.2s, #3
722 # CHECK: ushr v0.16b, v1.16b, #3
723 # CHECK: ushr v0.8h, v1.8h, #3
724 # CHECK: ushr v0.4s, v1.4s, #3
725 # CHECK: ushr v0.2d, v1.2d, #3
734 #-----------------------------------------------------------------------------
735 #Integer shift right and accumulate (Signed)
736 #-----------------------------------------------------------------------------
737 # CHECK: ssra v0.8b, v1.8b, #3
738 # CHECK: ssra v0.4h, v1.4h, #3
739 # CHECK: ssra v0.2s, v1.2s, #3
740 # CHECK: ssra v0.16b, v1.16b, #3
741 # CHECK: ssra v0.8h, v1.8h, #3
742 # CHECK: ssra v0.4s, v1.4s, #3
743 # CHECK: ssra v0.2d, v1.2d, #3
752 #-----------------------------------------------------------------------------
753 #Integer shift right and accumulate (Unsigned)
754 #-----------------------------------------------------------------------------
755 # CHECK: usra v0.8b, v1.8b, #3
756 # CHECK: usra v0.4h, v1.4h, #3
757 # CHECK: usra v0.2s, v1.2s, #3
758 # CHECK: usra v0.16b, v1.16b, #3
759 # CHECK: usra v0.8h, v1.8h, #3
760 # CHECK: usra v0.4s, v1.4s, #3
761 # CHECK: usra v0.2d, v1.2d, #3
770 #-----------------------------------------------------------------------------
771 #Integer rounding shift right (Signed)
772 #-----------------------------------------------------------------------------
773 # CHECK: srshr v0.8b, v1.8b, #3
774 # CHECK: srshr v0.4h, v1.4h, #3
775 # CHECK: srshr v0.2s, v1.2s, #3
776 # CHECK: srshr v0.16b, v1.16b, #3
777 # CHECK: srshr v0.8h, v1.8h, #3
778 # CHECK: srshr v0.4s, v1.4s, #3
779 # CHECK: srshr v0.2d, v1.2d, #3
788 #-----------------------------------------------------------------------------
789 #Integer rounding shift right (Unsigned)
790 #-----------------------------------------------------------------------------
791 # CHECK: urshr v0.8b, v1.8b, #3
792 # CHECK: urshr v0.4h, v1.4h, #3
793 # CHECK: urshr v0.2s, v1.2s, #3
794 # CHECK: urshr v0.16b, v1.16b, #3
795 # CHECK: urshr v0.8h, v1.8h, #3
796 # CHECK: urshr v0.4s, v1.4s, #3
797 # CHECK: urshr v0.2d, v1.2d, #3
806 #-----------------------------------------------------------------------------
807 #Integer rounding shift right and accumulate (Signed)
808 #-----------------------------------------------------------------------------
809 # CHECK: srsra v0.8b, v1.8b, #3
810 # CHECK: srsra v0.4h, v1.4h, #3
811 # CHECK: srsra v0.2s, v1.2s, #3
812 # CHECK: srsra v0.16b, v1.16b, #3
813 # CHECK: srsra v0.8h, v1.8h, #3
814 # CHECK: srsra v0.4s, v1.4s, #3
815 # CHECK: srsra v0.2d, v1.2d, #3
824 #-----------------------------------------------------------------------------
825 #Integer rounding shift right and accumulate (Unsigned)
826 #-----------------------------------------------------------------------------
827 # CHECK: ursra v0.8b, v1.8b, #3
828 # CHECK: ursra v0.4h, v1.4h, #3
829 # CHECK: ursra v0.2s, v1.2s, #3
830 # CHECK: ursra v0.16b, v1.16b, #3
831 # CHECK: ursra v0.8h, v1.8h, #3
832 # CHECK: ursra v0.4s, v1.4s, #3
833 # CHECK: ursra v0.2d, v1.2d, #3
842 #-----------------------------------------------------------------------------
843 #Integer shift right and insert
844 #-----------------------------------------------------------------------------
845 # CHECK: sri v0.8b, v1.8b, #3
846 # CHECK: sri v0.4h, v1.4h, #3
847 # CHECK: sri v0.2s, v1.2s, #3
848 # CHECK: sri v0.16b, v1.16b, #3
849 # CHECK: sri v0.8h, v1.8h, #3
850 # CHECK: sri v0.4s, v1.4s, #3
851 # CHECK: sri v0.2d, v1.2d, #3
860 #-----------------------------------------------------------------------------
861 #Integer shift left and insert
862 #-----------------------------------------------------------------------------
863 # CHECK: sli v0.8b, v1.8b, #3
864 # CHECK: sli v0.4h, v1.4h, #3
865 # CHECK: sli v0.2s, v1.2s, #3
866 # CHECK: sli v0.16b, v1.16b, #3
867 # CHECK: sli v0.8h, v1.8h, #3
868 # CHECK: sli v0.4s, v1.4s, #3
869 # CHECK: sli v0.2d, v1.2d, #3
878 #-----------------------------------------------------------------------------
879 #Integer saturating shift left unsigned
880 #-----------------------------------------------------------------------------
881 # CHECK: sqshlu v0.8b, v1.8b, #3
882 # CHECK: sqshlu v0.4h, v1.4h, #3
883 # CHECK: sqshlu v0.2s, v1.2s, #3
884 # CHECK: sqshlu v0.16b, v1.16b, #3
885 # CHECK: sqshlu v0.8h, v1.8h, #3
886 # CHECK: sqshlu v0.4s, v1.4s, #3
887 # CHECK: sqshlu v0.2d, v1.2d, #3
896 #-----------------------------------------------------------------------------
897 #Integer saturating shift left (Signed)
898 #-----------------------------------------------------------------------------
899 # CHECK: sqshl v0.8b, v1.8b, #3
900 # CHECK: sqshl v0.4h, v1.4h, #3
901 # CHECK: sqshl v0.2s, v1.2s, #3
902 # CHECK: sqshl v0.16b, v1.16b, #3
903 # CHECK: sqshl v0.8h, v1.8h, #3
904 # CHECK: sqshl v0.4s, v1.4s, #3
905 # CHECK: sqshl v0.2d, v1.2d, #3
914 #-----------------------------------------------------------------------------
915 #Integer saturating shift left (Unsigned)
916 #-----------------------------------------------------------------------------
917 # CHECK: uqshl v0.8b, v1.8b, #3
918 # CHECK: uqshl v0.4h, v1.4h, #3
919 # CHECK: uqshl v0.2s, v1.2s, #3
920 # CHECK: uqshl v0.16b, v1.16b, #3
921 # CHECK: uqshl v0.8h, v1.8h, #3
922 # CHECK: uqshl v0.4s, v1.4s, #3
923 # CHECK: uqshl v0.2d, v1.2d, #3
932 #-----------------------------------------------------------------------------
933 #Integer shift right narrow
934 #-----------------------------------------------------------------------------
935 # CHECK: shrn v0.8b, v1.8h, #3
936 # CHECK: shrn v0.4h, v1.4s, #3
937 # CHECK: shrn v0.2s, v1.2d, #3
938 # CHECK: shrn2 v0.16b, v1.8h, #3
939 # CHECK: shrn2 v0.8h, v1.4s, #3
940 # CHECK: shrn2 v0.4s, v1.2d, #3
948 #-----------------------------------------------------------------------------
949 #Integer saturating shift right unsigned narrow (Signed)
950 #-----------------------------------------------------------------------------
951 # CHECK: sqshrun v0.8b, v1.8h, #3
952 # CHECK: sqshrun v0.4h, v1.4s, #3
953 # CHECK: sqshrun v0.2s, v1.2d, #3
954 # CHECK: sqshrun2 v0.16b, v1.8h, #3
955 # CHECK: sqshrun2 v0.8h, v1.4s, #3
956 # CHECK: sqshrun2 v0.4s, v1.2d, #3
964 #-----------------------------------------------------------------------------
965 #Integer rounding shift right narrow
966 #-----------------------------------------------------------------------------
967 # CHECK: rshrn v0.8b, v1.8h, #3
968 # CHECK: rshrn v0.4h, v1.4s, #3
969 # CHECK: rshrn v0.2s, v1.2d, #3
970 # CHECK: rshrn2 v0.16b, v1.8h, #3
971 # CHECK: rshrn2 v0.8h, v1.4s, #3
972 # CHECK: rshrn2 v0.4s, v1.2d, #3
980 #-----------------------------------------------------------------------------
981 #Integer saturating shift right rounded unsigned narrow (Signed)
982 #-----------------------------------------------------------------------------
983 # CHECK: sqrshrun v0.8b, v1.8h, #3
984 # CHECK: sqrshrun v0.4h, v1.4s, #3
985 # CHECK: sqrshrun v0.2s, v1.2d, #3
986 # CHECK: sqrshrun2 v0.16b, v1.8h, #3
987 # CHECK: sqrshrun2 v0.8h, v1.4s, #3
988 # CHECK: sqrshrun2 v0.4s, v1.2d, #3
996 #-----------------------------------------------------------------------------
997 #Integer saturating shift right narrow (Signed)
998 #-----------------------------------------------------------------------------
999 # CHECK: sqshrn v0.8b, v1.8h, #3
1000 # CHECK: sqshrn v0.4h, v1.4s, #3
1001 # CHECK: sqshrn v0.2s, v1.2d, #3
1002 # CHECK: sqshrn2 v0.16b, v1.8h, #3
1003 # CHECK: sqshrn2 v0.8h, v1.4s, #3
1004 # CHECK: sqshrn2 v0.4s, v1.2d, #3
1012 #-----------------------------------------------------------------------------
1013 #Integer saturating shift right narrow (Unsigned)
1014 #-----------------------------------------------------------------------------
1015 # CHECK: uqshrn v0.8b, v1.8h, #3
1016 # CHECK: uqshrn v0.4h, v1.4s, #3
1017 # CHECK: uqshrn v0.2s, v1.2d, #3
1018 # CHECK: uqshrn2 v0.16b, v1.8h, #3
1019 # CHECK: uqshrn2 v0.8h, v1.4s, #3
1020 # CHECK: uqshrn2 v0.4s, v1.2d, #3
1028 #-----------------------------------------------------------------------------
1029 #Integer saturating shift right rounded narrow (Signed)
1030 #-----------------------------------------------------------------------------
1031 # CHECK: sqrshrn v0.8b, v1.8h, #3
1032 # CHECK: sqrshrn v0.4h, v1.4s, #3
1033 # CHECK: sqrshrn v0.2s, v1.2d, #3
1034 # CHECK: sqrshrn2 v0.16b, v1.8h, #3
1035 # CHECK: sqrshrn2 v0.8h, v1.4s, #3
1036 # CHECK: sqrshrn2 v0.4s, v1.2d, #3
1044 #-----------------------------------------------------------------------------
1045 #Integer saturating shift right rounded narrow (Unsigned)
1046 #-----------------------------------------------------------------------------
1047 # CHECK: uqrshrn v0.8b, v1.8h, #3
1048 # CHECK: uqrshrn v0.4h, v1.4s, #3
1049 # CHECK: uqrshrn v0.2s, v1.2d, #3
1050 # CHECK: uqrshrn2 v0.16b, v1.8h, #3
1051 # CHECK: uqrshrn2 v0.8h, v1.4s, #3
1052 # CHECK: uqrshrn2 v0.4s, v1.2d, #3
1060 #-----------------------------------------------------------------------------
1061 #Fixed-point convert to floating-point
1062 #-----------------------------------------------------------------------------
1063 # CHECK: scvtf v0.2s, v1.2s, #3
1064 # CHECK: scvtf v0.4s, v1.4s, #3
1065 # CHECK: scvtf v0.2d, v1.2d, #3
1066 # CHECK: ucvtf v0.2s, v1.2s, #3
1067 # CHECK: ucvtf v0.4s, v1.4s, #3
1068 # CHECK: ucvtf v0.2d, v1.2d, #3
1077 #-----------------------------------------------------------------------------
1078 #Floating-point convert to fixed-point
1079 #-----------------------------------------------------------------------------
1080 # CHECK: fcvtzs v0.2s, v1.2s, #3
1081 # CHECK: fcvtzs v0.4s, v1.4s, #3
1082 # CHECK: fcvtzs v0.2d, v1.2d, #3
1083 # CHECK: fcvtzu v0.2s, v1.2s, #3
1084 # CHECK: fcvtzu v0.4s, v1.4s, #3
1085 # CHECK: fcvtzu v0.2d, v1.2d, #3