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 #------------------------------------------------------------------------------
135 # FIXME: these should print as "mov", but TableGen can't handle it.
137 # CHECK: orr v1.16b, v15.16b, v15.16b
138 # CHECK: orr v25.8b, v4.8b, v4.8b
142 #----------------------------------------------------------------------
143 # Vector Absolute Difference and Accumulate (Signed, Unsigned)
144 # Vector Absolute Difference (Signed, Unsigned)
145 # Vector Absolute Difference (Floating Point)
146 #----------------------------------------------------------------------
148 # CHECK: uaba v0.8b, v1.8b, v2.8b
149 # CHECK: saba v31.16b, v30.16b, v29.16b
150 # CHECK: uabd v15.4h, v16.4h, v17.4h
151 # CHECK: sabd v5.4h, v4.4h, v6.4h
152 # CHECK: fabd v1.4s, v31.4s, v16.4s
159 #----------------------------------------------------------------------
162 #----------------------------------------------------------------------
164 # CHECK: add d17, d31, d29
165 # CHECK: sub d15, d5, d16
169 #----------------------------------------------------------------------
170 # Vector Reciprocal Square Root Step (Floating Point)
171 #----------------------------------------------------------------------
172 # CHECK: frsqrts v31.2d, v15.2d, v8.2d
175 #----------------------------------------------------------------------
176 # Vector Reciprocal Step (Floating Point)
177 #----------------------------------------------------------------------
178 # CHECK: frecps v5.4s, v7.4s, v16.4s
181 #----------------------------------------------------------------------
182 # Vector Absolute Compare Mask Less Than Or Equal (Floating Point)
183 #----------------------------------------------------------------------
184 # CHECK: facge v0.4s, v31.4s, v16.4s
187 #----------------------------------------------------------------------
188 # Vector Absolute Compare Mask Less Than (Floating Point)
189 #----------------------------------------------------------------------
190 # CHECK: facgt v31.2d, v29.2d, v28.2d
193 #----------------------------------------------------------------------
194 # Vector Compare Mask Equal (Integer)
195 #----------------------------------------------------------------------
196 # CHECK: cmeq v5.16b, v15.16b, v31.16b
199 #----------------------------------------------------------------------
200 # Vector Compare Mask Higher or Same (Unsigned Integer)
201 #----------------------------------------------------------------------
202 # CHECK: cmhs v1.8b, v16.8b, v30.8b
205 #----------------------------------------------------------------------
206 # Vector Compare Mask Greater Than or Equal (Integer)
207 #----------------------------------------------------------------------
208 # CHECK: cmge v20.4h, v11.4h, v23.4h
211 #----------------------------------------------------------------------
212 # Vector Compare Mask Higher (Unsigned Integer)
213 # CHECK: cmhi v13.8h, v3.8h, v27.8h
216 #----------------------------------------------------------------------
217 # Vector Compare Mask Greater Than (Integer)
218 #----------------------------------------------------------------------
219 # CHECK: cmgt v9.4s, v4.4s, v28.4s
222 #----------------------------------------------------------------------
223 # Vector Compare Mask Bitwise Test (Integer)
224 #----------------------------------------------------------------------
225 # CHECK: cmtst v21.2s, v19.2s, v18.2s
228 #----------------------------------------------------------------------
229 # Vector Compare Mask Equal (Floating Point)
230 #----------------------------------------------------------------------
231 # CHECK: fcmeq v0.2s, v15.2s, v16.2s
234 #----------------------------------------------------------------------
235 # Vector Compare Mask Greater Than Or Equal (Floating Point)
236 #----------------------------------------------------------------------
237 # CHECK: fcmge v31.4s, v7.4s, v29.4s
240 #----------------------------------------------------------------------
241 # Vector Compare Mask Greater Than (Floating Point)
242 #----------------------------------------------------------------------
243 # CHECK: fcmgt v17.4s, v8.4s, v25.4s
246 #----------------------------------------------------------------------
247 # Vector Compare Mask Equal to Zero (Integer)
248 #----------------------------------------------------------------------
249 # CHECK: cmeq v31.16b, v15.16b, #0x0
252 #----------------------------------------------------------------------
253 # Vector Compare Mask Greater Than or Equal to Zero (Signed Integer)
254 #----------------------------------------------------------------------
255 # CHECK: cmge v3.8b, v15.8b, #0x0
258 #----------------------------------------------------------------------
259 # Vector Compare Mask Greater Than Zero (Signed Integer)
260 #----------------------------------------------------------------------
261 # CHECK: cmgt v22.2s, v9.2s, #0x0
264 #----------------------------------------------------------------------
265 # Vector Compare Mask Less Than or Equal To Zero (Signed Integer)
266 #----------------------------------------------------------------------
267 # CHECK: cmle v5.2d, v14.2d, #0x0
270 #----------------------------------------------------------------------
271 # Vector Compare Mask Less Than Zero (Signed Integer)
272 #----------------------------------------------------------------------
273 # CHECK: cmlt v13.8h, v11.8h, #0x0
276 #----------------------------------------------------------------------
277 # Vector Compare Mask Equal to Zero (Floating Point)
278 #----------------------------------------------------------------------
279 # CHECK: fcmeq v15.2s, v21.2s, #0.0
282 #----------------------------------------------------------------------
283 # Vector Compare Mask Greater Than or Equal to Zero (Floating Point)
284 #----------------------------------------------------------------------
285 # CHECK: fcmge v14.2d, v13.2d, #0.0
288 #----------------------------------------------------------------------
289 # Vector Compare Mask Greater Than Zero (Floating Point)
290 #----------------------------------------------------------------------
291 # CHECK: fcmgt v9.4s, v23.4s, #0.0
294 #----------------------------------------------------------------------
295 # Vector Compare Mask Less Than or Equal To Zero (Floating Point)
296 #----------------------------------------------------------------------
297 # CHECK: fcmle v11.2d, v6.2d, #0.0
300 #----------------------------------------------------------------------
301 # Vector Compare Mask Less Than Zero (Floating Point)
302 #----------------------------------------------------------------------
303 # CHECK: fcmlt v12.4s, v25.4s, #0.0
307 #------------------------------------------------------------------------------
308 # Vector Integer Halving Add (Signed)
309 # Vector Integer Halving Add (Unsigned)
310 # Vector Integer Halving Sub (Signed)
311 # Vector Integer Halving Sub (Unsigned)
312 #------------------------------------------------------------------------------
313 # CHECK: shadd v0.8b, v31.8b, v29.8b
314 # CHECK: uhadd v15.16b, v16.16b, v17.16b
315 # CHECK: shsub v0.4h, v1.4h, v2.4h
316 # CHECK: uhadd v5.8h, v7.8h, v8.8h
317 # CHECK: shsub v9.2s, v11.2s, v21.2s
318 # CHECK: uhsub v22.4s, v30.4s, v19.4s
326 #------------------------------------------------------------------------------
327 # Vector Integer Rouding Halving Add (Signed)
328 # Vector Integer Rouding Halving Add (Unsigned)
329 #------------------------------------------------------------------------------
330 # CHECK: srhadd v3.8b, v5.8b, v7.8b
331 # CHECK: urhadd v7.16b, v17.16b, v27.16b
332 # CHECK: srhadd v10.4h, v11.4h, v13.4h
333 # CHECK: urhadd v1.8h, v2.8h, v3.8h
334 # CHECK: srhadd v4.2s, v5.2s, v6.2s
335 # CHECK: urhadd v7.4s, v7.4s, v7.4s
343 #------------------------------------------------------------------------------
344 # Vector Integer Saturating Add (Signed)
345 # Vector Integer Saturating Add (Unsigned)
346 # Vector Integer Saturating Sub (Signed)
347 # Vector Integer Saturating Sub (Unsigned)
348 #------------------------------------------------------------------------------
349 # CHECK: sqsub v0.8b, v1.8b, v2.8b
350 # CHECK: sqadd v0.16b, v1.16b, v2.16b
351 # CHECK: uqsub v0.4h, v1.4h, v2.4h
352 # CHECK: uqadd v0.8h, v1.8h, v2.8h
353 # CHECK: sqadd v0.2s, v1.2s, v2.2s
354 # CHECK: sqsub v0.4s, v1.4s, v2.4s
355 # CHECK: sqsub v0.2d, v1.2d, v2.2d
364 #------------------------------------------------------------------------------
365 # Scalar Integer Saturating Add (Signed)
366 # Scalar Integer Saturating Add (Unsigned)
367 # Scalar Integer Saturating Sub (Signed)
368 # Scalar Integer Saturating Add (Unsigned)
369 #------------------------------------------------------------------------------
370 # CHECK: sqadd b20, b11, b15
371 # CHECK: uqadd h0, h1, h5
372 # CHECK: sqsub s20, s10, s7
373 # CHECK: uqsub d16, d16, d16
380 #----------------------------------------------------------------------
381 # Vector Shift Left (Signed and Unsigned Integer)
382 #----------------------------------------------------------------------
383 # CHECK: sshl v10.8b, v15.8b, v22.8b
384 # CHECK: ushl v10.16b, v5.16b, v2.16b
385 # CHECK: sshl v10.4h, v15.4h, v22.4h
386 # CHECK: ushl v10.8h, v5.8h, v2.8h
387 # CHECK: sshl v10.2s, v15.2s, v22.2s
388 # CHECK: ushl v10.4s, v5.4s, v2.4s
389 # CHECK: sshl v0.2d, v1.2d, v2.2d
398 #----------------------------------------------------------------------
399 # Vector Saturating Shift Left (Signed and Unsigned Integer)
400 #----------------------------------------------------------------------
401 # CHECK: sqshl v1.8b, v15.8b, v22.8b
402 # CHECK: uqshl v2.16b, v14.16b, v23.16b
403 # CHECK: sqshl v3.4h, v13.4h, v24.4h
404 # CHECK: uqshl v4.8h, v12.8h, v25.8h
405 # CHECK: sqshl v5.2s, v11.2s, v26.2s
406 # CHECK: uqshl v6.4s, v10.4s, v27.4s
407 # CHECK: uqshl v0.2d, v1.2d, v2.2d
416 #----------------------------------------------------------------------
417 # Vector Rouding Shift Left (Signed and Unsigned Integer)
418 #----------------------------------------------------------------------
419 # CHECK: srshl v10.8b, v5.8b, v22.8b
420 # CHECK: urshl v10.16b, v5.16b, v2.16b
421 # CHECK: srshl v1.4h, v5.4h, v31.4h
422 # CHECK: urshl v1.8h, v5.8h, v2.8h
423 # CHECK: srshl v10.2s, v15.2s, v2.2s
424 # CHECK: urshl v1.4s, v5.4s, v2.4s
425 # CHECK: urshl v0.2d, v1.2d, v2.2d
434 #----------------------------------------------------------------------
435 # Vector Saturating Rouding Shift Left (Signed and Unsigned Integer)
436 #----------------------------------------------------------------------
437 # CHECK: sqrshl v1.8b, v15.8b, v22.8b
438 # CHECK: uqrshl v2.16b, v14.16b, v23.16b
439 # CHECK: sqrshl v3.4h, v13.4h, v24.4h
440 # CHECK: uqrshl v4.8h, v12.8h, v25.8h
441 # CHECK: sqrshl v5.2s, v11.2s, v26.2s
442 # CHECK: uqrshl v6.4s, v10.4s, v27.4s
443 # CHECK: uqrshl v6.4s, v10.4s, v27.4s
452 #----------------------------------------------------------------------
453 # Scalar Integer Shift Left (Signed, Unsigned)
454 #----------------------------------------------------------------------
455 # CHECK: sshl d31, d31, d31
456 # CHECK: ushl d0, d0, d0
460 #----------------------------------------------------------------------
461 # Scalar Integer Saturating Shift Left (Signed, Unsigned)
462 #----------------------------------------------------------------------
463 # CHECK: sqshl d31, d31, d31
464 # CHECK: uqshl s23, s20, s16
465 # CHECK: sqshl h3, h4, h15
466 # CHECK: uqshl b11, b20, b30
472 #----------------------------------------------------------------------
473 # Scalar Integer Rouding Shift Left (Signed, Unsigned)
474 #----------------------------------------------------------------------
475 # CHECK: srshl d16, d16, d16
476 # CHECK: urshl d8, d7, d4
480 #----------------------------------------------------------------------
481 # Scalar Integer Saturating Rounding Shift Left (Signed, Unsigned)
482 #----------------------------------------------------------------------
483 # CHECK: sqrshl d31, d31, d31
484 # CHECK: uqrshl s23, s20, s16
485 # CHECK: sqrshl h3, h4, h15
486 # CHECK: uqrshl b11, b20, b30
492 #----------------------------------------------------------------------
493 # Vector Maximum (Signed and Unsigned Integer)
494 #----------------------------------------------------------------------
495 # CHECK: smax v1.8b, v15.8b, v22.8b
496 # CHECK: umax v2.16b, v14.16b, v23.16b
497 # CHECK: smax v3.4h, v13.4h, v24.4h
498 # CHECK: umax v4.8h, v12.8h, v25.8h
499 # CHECK: smax v5.2s, v11.2s, v26.2s
500 # CHECK: umax v6.4s, v10.4s, v27.4s
508 #----------------------------------------------------------------------
509 # Vector Minimum (Signed and Unsigned Integer)
510 #----------------------------------------------------------------------
511 # CHECK: umin v1.8b, v15.8b, v22.8b
512 # CHECK: smin v2.16b, v14.16b, v23.16b
513 # CHECK: umin v3.4h, v13.4h, v24.4h
514 # CHECK: smin v4.8h, v12.8h, v25.8h
515 # CHECK: umin v5.2s, v11.2s, v26.2s
516 # CHECK: smin v6.4s, v10.4s, v27.4s
524 #----------------------------------------------------------------------
525 # Vector Maximum (Floating Point)
526 #----------------------------------------------------------------------
527 # CHECK: fmax v29.2s, v28.2s, v25.2s
528 # CHECK: fmax v9.4s, v8.4s, v5.4s
529 # CHECK: fmax v11.2d, v10.2d, v7.2d
534 #----------------------------------------------------------------------
535 # Vector Minimum (Floating Point)
536 #----------------------------------------------------------------------
537 # CHECK: fmin v29.2s, v28.2s, v25.2s
538 # CHECK: fmin v9.4s, v8.4s, v5.4s
539 # CHECK: fmin v11.2d, v10.2d, v7.2d
544 #----------------------------------------------------------------------
545 # Vector maxNum (Floating Point)
546 #----------------------------------------------------------------------
547 # CHECK: fmaxnm v9.2s, v8.2s, v5.2s
548 # CHECK: fmaxnm v9.4s, v8.4s, v5.4s
549 # CHECK: fmaxnm v11.2d, v10.2d, v7.2d
554 #----------------------------------------------------------------------
555 # Vector minNum (Floating Point)
556 #----------------------------------------------------------------------
557 # CHECK: fminnm v2.2s, v8.2s, v25.2s
558 # CHECK: fminnm v9.4s, v8.4s, v5.4s
559 # CHECK: fminnm v11.2d, v10.2d, v7.2d
565 #----------------------------------------------------------------------
566 # Vector Maximum Pairwise (Signed and Unsigned Integer)
567 #----------------------------------------------------------------------
568 # CHECK: smaxp v1.8b, v15.8b, v22.8b
569 # CHECK: umaxp v2.16b, v14.16b, v23.16b
570 # CHECK: smaxp v3.4h, v13.4h, v24.4h
571 # CHECK: umaxp v4.8h, v12.8h, v25.8h
572 # CHECK: smaxp v5.2s, v11.2s, v26.2s
573 # CHECK: umaxp v6.4s, v10.4s, v27.4s
581 #----------------------------------------------------------------------
582 # Vector Minimum Pairwise (Signed and Unsigned Integer)
583 #----------------------------------------------------------------------
584 # CHECK: uminp v1.8b, v15.8b, v22.8b
585 # CHECK: sminp v2.16b, v14.16b, v23.16b
586 # CHECK: uminp v3.4h, v13.4h, v24.4h
587 # CHECK: sminp v4.8h, v12.8h, v25.8h
588 # CHECK: uminp v5.2s, v11.2s, v26.2s
589 # CHECK: sminp v6.4s, v10.4s, v27.4s
597 #----------------------------------------------------------------------
598 # Vector Maximum Pairwise (Floating Point)
599 #----------------------------------------------------------------------
600 # CHECK: fmaxp v29.2s, v28.2s, v25.2s
601 # CHECK: fmaxp v9.4s, v8.4s, v5.4s
602 # CHECK: fmaxp v11.2d, v10.2d, v7.2d
607 #----------------------------------------------------------------------
608 # Vector Minimum Pairwise (Floating Point)
609 #----------------------------------------------------------------------
610 # CHECK: fminp v29.2s, v28.2s, v25.2s
611 # CHECK: fminp v9.4s, v8.4s, v5.4s
612 # CHECK: fminp v11.2d, v10.2d, v7.2d
617 #----------------------------------------------------------------------
618 # Vector maxNum Pairwise (Floating Point)
619 #----------------------------------------------------------------------
620 # CHECK: fmaxnmp v9.2s, v8.2s, v5.2s
621 # CHECK: fmaxnmp v9.4s, v8.4s, v5.4s
622 # CHECK: fmaxnmp v11.2d, v10.2d, v7.2d
627 #----------------------------------------------------------------------
628 # Vector minNum Pairwise (Floating Point)
629 #----------------------------------------------------------------------
630 # CHECK: fminnmp v2.2s, v8.2s, v25.2s
631 # CHECK: fminnmp v9.4s, v8.4s, v5.4s
632 # CHECK: fminnmp v11.2d, v10.2d, v7.2d
637 #------------------------------------------------------------------------------
638 # Vector Add Pairwise (Integer)
639 #------------------------------------------------------------------------------
640 # CHECK: addp v31.8b, v31.8b, v31.8b
641 # CHECK: addp v0.2d, v0.2d, v0.2d
645 #------------------------------------------------------------------------------
646 # Vector Add Pairwise (Floating Point)
647 #------------------------------------------------------------------------------
648 # CHECK: faddp v0.4s, v0.4s, v0.4s
649 # CHECK: faddp v31.2s, v31.2s, v31.2s
654 #------------------------------------------------------------------------------
655 # Vector Saturating Doubling Multiply High
656 # Vector Saturating Rouding Doubling Multiply High
657 #------------------------------------------------------------------------------
658 # CHECK: sqdmulh v31.2s, v31.2s, v31.2s
659 # CHECK: sqdmulh v5.4s, v7.4s, v9.4s
660 # CHECK: sqrdmulh v31.4h, v3.4h, v13.4h
661 # CHECK: sqrdmulh v0.8h, v10.8h, v20.8h
667 #------------------------------------------------------------------------------
668 # Vector Multiply Extended
669 #------------------------------------------------------------------------------
670 # CHECK: fmulx v1.2s, v22.2s, v2.2s
671 # CHECK: fmulx v21.4s, v15.4s, v3.4s
672 # CHECK: fmulx v11.2d, v5.2d, v23.2d
677 #----------------------------------------------------------------------
678 # Vector Shift Left by Immediate
679 #----------------------------------------------------------------------
680 # CHECK: shl v0.4h, v1.4h, #3
681 # CHECK: shl v0.16b, v1.16b, #3
682 # CHECK: shl v0.4s, v1.4s, #3
683 # CHECK: shl v0.2d, v1.2d, #3
689 #----------------------------------------------------------------------
690 # Vector Shift Left Long (Signed, Unsigned) by Immediate
691 #----------------------------------------------------------------------
692 # CHECK: sshll v0.2d, v1.2s, #3
693 # CHECK: sshll2 v0.4s, v1.8h, #3
694 # CHECK: ushll v0.4s, v1.4h, #3
695 # CHECK: ushll2 v0.8h, v1.16b, #3
701 #-----------------------------------------------------------------------------
702 #Integer shift right (Signed)
703 #-----------------------------------------------------------------------------
704 # CHECK: sshr v0.8b, v1.8b, #3
705 # CHECK: sshr v0.4h, v1.4h, #3
706 # CHECK: sshr v0.2s, v1.2s, #3
707 # CHECK: sshr v0.16b, v1.16b, #3
708 # CHECK: sshr v0.8h, v1.8h, #3
709 # CHECK: sshr v0.4s, v1.4s, #3
710 # CHECK: sshr v0.2d, v1.2d, #3
719 #-----------------------------------------------------------------------------
720 #Integer shift right (Unsigned)
721 #-----------------------------------------------------------------------------
722 # CHECK: ushr v0.8b, v1.8b, #3
723 # CHECK: ushr v0.4h, v1.4h, #3
724 # CHECK: ushr v0.2s, v1.2s, #3
725 # CHECK: ushr v0.16b, v1.16b, #3
726 # CHECK: ushr v0.8h, v1.8h, #3
727 # CHECK: ushr v0.4s, v1.4s, #3
728 # CHECK: ushr v0.2d, v1.2d, #3
737 #-----------------------------------------------------------------------------
738 #Integer shift right and accumulate (Signed)
739 #-----------------------------------------------------------------------------
740 # CHECK: ssra v0.8b, v1.8b, #3
741 # CHECK: ssra v0.4h, v1.4h, #3
742 # CHECK: ssra v0.2s, v1.2s, #3
743 # CHECK: ssra v0.16b, v1.16b, #3
744 # CHECK: ssra v0.8h, v1.8h, #3
745 # CHECK: ssra v0.4s, v1.4s, #3
746 # CHECK: ssra v0.2d, v1.2d, #3
755 #-----------------------------------------------------------------------------
756 #Integer shift right and accumulate (Unsigned)
757 #-----------------------------------------------------------------------------
758 # CHECK: usra v0.8b, v1.8b, #3
759 # CHECK: usra v0.4h, v1.4h, #3
760 # CHECK: usra v0.2s, v1.2s, #3
761 # CHECK: usra v0.16b, v1.16b, #3
762 # CHECK: usra v0.8h, v1.8h, #3
763 # CHECK: usra v0.4s, v1.4s, #3
764 # CHECK: usra v0.2d, v1.2d, #3
773 #-----------------------------------------------------------------------------
774 #Integer rounding shift right (Signed)
775 #-----------------------------------------------------------------------------
776 # CHECK: srshr v0.8b, v1.8b, #3
777 # CHECK: srshr v0.4h, v1.4h, #3
778 # CHECK: srshr v0.2s, v1.2s, #3
779 # CHECK: srshr v0.16b, v1.16b, #3
780 # CHECK: srshr v0.8h, v1.8h, #3
781 # CHECK: srshr v0.4s, v1.4s, #3
782 # CHECK: srshr v0.2d, v1.2d, #3
791 #-----------------------------------------------------------------------------
792 #Integer rounding shift right (Unsigned)
793 #-----------------------------------------------------------------------------
794 # CHECK: urshr v0.8b, v1.8b, #3
795 # CHECK: urshr v0.4h, v1.4h, #3
796 # CHECK: urshr v0.2s, v1.2s, #3
797 # CHECK: urshr v0.16b, v1.16b, #3
798 # CHECK: urshr v0.8h, v1.8h, #3
799 # CHECK: urshr v0.4s, v1.4s, #3
800 # CHECK: urshr v0.2d, v1.2d, #3
809 #-----------------------------------------------------------------------------
810 #Integer rounding shift right and accumulate (Signed)
811 #-----------------------------------------------------------------------------
812 # CHECK: srsra v0.8b, v1.8b, #3
813 # CHECK: srsra v0.4h, v1.4h, #3
814 # CHECK: srsra v0.2s, v1.2s, #3
815 # CHECK: srsra v0.16b, v1.16b, #3
816 # CHECK: srsra v0.8h, v1.8h, #3
817 # CHECK: srsra v0.4s, v1.4s, #3
818 # CHECK: srsra v0.2d, v1.2d, #3
827 #-----------------------------------------------------------------------------
828 #Integer rounding shift right and accumulate (Unsigned)
829 #-----------------------------------------------------------------------------
830 # CHECK: ursra v0.8b, v1.8b, #3
831 # CHECK: ursra v0.4h, v1.4h, #3
832 # CHECK: ursra v0.2s, v1.2s, #3
833 # CHECK: ursra v0.16b, v1.16b, #3
834 # CHECK: ursra v0.8h, v1.8h, #3
835 # CHECK: ursra v0.4s, v1.4s, #3
836 # CHECK: ursra v0.2d, v1.2d, #3
845 #-----------------------------------------------------------------------------
846 #Integer shift right and insert
847 #-----------------------------------------------------------------------------
848 # CHECK: sri v0.8b, v1.8b, #3
849 # CHECK: sri v0.4h, v1.4h, #3
850 # CHECK: sri v0.2s, v1.2s, #3
851 # CHECK: sri v0.16b, v1.16b, #3
852 # CHECK: sri v0.8h, v1.8h, #3
853 # CHECK: sri v0.4s, v1.4s, #3
854 # CHECK: sri v0.2d, v1.2d, #3
863 #-----------------------------------------------------------------------------
864 #Integer shift left and insert
865 #-----------------------------------------------------------------------------
866 # CHECK: sli v0.8b, v1.8b, #3
867 # CHECK: sli v0.4h, v1.4h, #3
868 # CHECK: sli v0.2s, v1.2s, #3
869 # CHECK: sli v0.16b, v1.16b, #3
870 # CHECK: sli v0.8h, v1.8h, #3
871 # CHECK: sli v0.4s, v1.4s, #3
872 # CHECK: sli v0.2d, v1.2d, #3
881 #-----------------------------------------------------------------------------
882 #Integer saturating shift left unsigned
883 #-----------------------------------------------------------------------------
884 # CHECK: sqshlu v0.8b, v1.8b, #3
885 # CHECK: sqshlu v0.4h, v1.4h, #3
886 # CHECK: sqshlu v0.2s, v1.2s, #3
887 # CHECK: sqshlu v0.16b, v1.16b, #3
888 # CHECK: sqshlu v0.8h, v1.8h, #3
889 # CHECK: sqshlu v0.4s, v1.4s, #3
890 # CHECK: sqshlu v0.2d, v1.2d, #3
899 #-----------------------------------------------------------------------------
900 #Integer saturating shift left (Signed)
901 #-----------------------------------------------------------------------------
902 # CHECK: sqshl v0.8b, v1.8b, #3
903 # CHECK: sqshl v0.4h, v1.4h, #3
904 # CHECK: sqshl v0.2s, v1.2s, #3
905 # CHECK: sqshl v0.16b, v1.16b, #3
906 # CHECK: sqshl v0.8h, v1.8h, #3
907 # CHECK: sqshl v0.4s, v1.4s, #3
908 # CHECK: sqshl v0.2d, v1.2d, #3
917 #-----------------------------------------------------------------------------
918 #Integer saturating shift left (Unsigned)
919 #-----------------------------------------------------------------------------
920 # CHECK: uqshl v0.8b, v1.8b, #3
921 # CHECK: uqshl v0.4h, v1.4h, #3
922 # CHECK: uqshl v0.2s, v1.2s, #3
923 # CHECK: uqshl v0.16b, v1.16b, #3
924 # CHECK: uqshl v0.8h, v1.8h, #3
925 # CHECK: uqshl v0.4s, v1.4s, #3
926 # CHECK: uqshl v0.2d, v1.2d, #3
935 #-----------------------------------------------------------------------------
936 #Integer shift right narrow
937 #-----------------------------------------------------------------------------
938 # CHECK: shrn v0.8b, v1.8h, #3
939 # CHECK: shrn v0.4h, v1.4s, #3
940 # CHECK: shrn v0.2s, v1.2d, #3
941 # CHECK: shrn2 v0.16b, v1.8h, #3
942 # CHECK: shrn2 v0.8h, v1.4s, #3
943 # CHECK: shrn2 v0.4s, v1.2d, #3
951 #-----------------------------------------------------------------------------
952 #Integer saturating shift right unsigned narrow (Signed)
953 #-----------------------------------------------------------------------------
954 # CHECK: sqshrun v0.8b, v1.8h, #3
955 # CHECK: sqshrun v0.4h, v1.4s, #3
956 # CHECK: sqshrun v0.2s, v1.2d, #3
957 # CHECK: sqshrun2 v0.16b, v1.8h, #3
958 # CHECK: sqshrun2 v0.8h, v1.4s, #3
959 # CHECK: sqshrun2 v0.4s, v1.2d, #3
967 #-----------------------------------------------------------------------------
968 #Integer rounding shift right narrow
969 #-----------------------------------------------------------------------------
970 # CHECK: rshrn v0.8b, v1.8h, #3
971 # CHECK: rshrn v0.4h, v1.4s, #3
972 # CHECK: rshrn v0.2s, v1.2d, #3
973 # CHECK: rshrn2 v0.16b, v1.8h, #3
974 # CHECK: rshrn2 v0.8h, v1.4s, #3
975 # CHECK: rshrn2 v0.4s, v1.2d, #3
983 #-----------------------------------------------------------------------------
984 #Integer saturating shift right rounded unsigned narrow (Signed)
985 #-----------------------------------------------------------------------------
986 # CHECK: sqrshrun v0.8b, v1.8h, #3
987 # CHECK: sqrshrun v0.4h, v1.4s, #3
988 # CHECK: sqrshrun v0.2s, v1.2d, #3
989 # CHECK: sqrshrun2 v0.16b, v1.8h, #3
990 # CHECK: sqrshrun2 v0.8h, v1.4s, #3
991 # CHECK: sqrshrun2 v0.4s, v1.2d, #3
999 #-----------------------------------------------------------------------------
1000 #Integer saturating shift right narrow (Signed)
1001 #-----------------------------------------------------------------------------
1002 # CHECK: sqshrn v0.8b, v1.8h, #3
1003 # CHECK: sqshrn v0.4h, v1.4s, #3
1004 # CHECK: sqshrn v0.2s, v1.2d, #3
1005 # CHECK: sqshrn2 v0.16b, v1.8h, #3
1006 # CHECK: sqshrn2 v0.8h, v1.4s, #3
1007 # CHECK: sqshrn2 v0.4s, v1.2d, #3
1015 #-----------------------------------------------------------------------------
1016 #Integer saturating shift right narrow (Unsigned)
1017 #-----------------------------------------------------------------------------
1018 # CHECK: uqshrn v0.8b, v1.8h, #3
1019 # CHECK: uqshrn v0.4h, v1.4s, #3
1020 # CHECK: uqshrn v0.2s, v1.2d, #3
1021 # CHECK: uqshrn2 v0.16b, v1.8h, #3
1022 # CHECK: uqshrn2 v0.8h, v1.4s, #3
1023 # CHECK: uqshrn2 v0.4s, v1.2d, #3
1031 #-----------------------------------------------------------------------------
1032 #Integer saturating shift right rounded narrow (Signed)
1033 #-----------------------------------------------------------------------------
1034 # CHECK: sqrshrn v0.8b, v1.8h, #3
1035 # CHECK: sqrshrn v0.4h, v1.4s, #3
1036 # CHECK: sqrshrn v0.2s, v1.2d, #3
1037 # CHECK: sqrshrn2 v0.16b, v1.8h, #3
1038 # CHECK: sqrshrn2 v0.8h, v1.4s, #3
1039 # CHECK: sqrshrn2 v0.4s, v1.2d, #3
1047 #-----------------------------------------------------------------------------
1048 #Integer saturating shift right rounded narrow (Unsigned)
1049 #-----------------------------------------------------------------------------
1050 # CHECK: uqrshrn v0.8b, v1.8h, #3
1051 # CHECK: uqrshrn v0.4h, v1.4s, #3
1052 # CHECK: uqrshrn v0.2s, v1.2d, #3
1053 # CHECK: uqrshrn2 v0.16b, v1.8h, #3
1054 # CHECK: uqrshrn2 v0.8h, v1.4s, #3
1055 # CHECK: uqrshrn2 v0.4s, v1.2d, #3
1063 #-----------------------------------------------------------------------------
1064 #Fixed-point convert to floating-point
1065 #-----------------------------------------------------------------------------
1066 # CHECK: scvtf v0.2s, v1.2s, #3
1067 # CHECK: scvtf v0.4s, v1.4s, #3
1068 # CHECK: scvtf v0.2d, v1.2d, #3
1069 # CHECK: ucvtf v0.2s, v1.2s, #3
1070 # CHECK: ucvtf v0.4s, v1.4s, #3
1071 # CHECK: ucvtf v0.2d, v1.2d, #3
1080 #-----------------------------------------------------------------------------
1081 #Floating-point convert to fixed-point
1082 #-----------------------------------------------------------------------------
1083 # CHECK: fcvtzs v0.2s, v1.2s, #3
1084 # CHECK: fcvtzs v0.4s, v1.4s, #3
1085 # CHECK: fcvtzs v0.2d, v1.2d, #3
1086 # CHECK: fcvtzu v0.2s, v1.2s, #3
1087 # CHECK: fcvtzu v0.4s, v1.4s, #3
1088 # CHECK: fcvtzu v0.2d, v1.2d, #3
1097 #------------------------------------------------------------------------------
1098 # Vector with 3 operands having different data types
1099 #------------------------------------------------------------------------------
1101 #------------------------------------------------------------------------------
1103 #------------------------------------------------------------------------------
1105 #------------------------------------------------------------------------------
1107 #------------------------------------------------------------------------------
1109 # CHECK: saddl v0.8h, v1.8b, v2.8b
1110 # CHECK: saddl v0.4s, v1.4h, v2.4h
1111 # CHECK: saddl v0.2d, v1.2s, v2.2s
1116 # CHECK: saddl2 v0.4s, v1.8h, v2.8h
1117 # CHECK: saddl2 v0.8h, v1.16b, v2.16b
1118 # CHECK: saddl2 v0.2d, v1.4s, v2.4s
1123 # CHECK: uaddl v0.8h, v1.8b, v2.8b
1124 # CHECK: uaddl v0.4s, v1.4h, v2.4h
1125 # CHECK: uaddl v0.2d, v1.2s, v2.2s
1130 # CHECK: uaddl2 v0.8h, v1.16b, v2.16b
1131 # CHECK: uaddl2 v0.4s, v1.8h, v2.8h
1132 # CHECK: uaddl2 v0.2d, v1.4s, v2.4s
1137 # CHECK: ssubl v0.8h, v1.8b, v2.8b
1138 # CHECK: ssubl v0.4s, v1.4h, v2.4h
1139 # CHECK: ssubl v0.2d, v1.2s, v2.2s
1144 # CHECK: ssubl2 v0.8h, v1.16b, v2.16b
1145 # CHECK: ssubl2 v0.4s, v1.8h, v2.8h
1146 # CHECK: ssubl2 v0.2d, v1.4s, v2.4s
1151 # CHECK: usubl v0.8h, v1.8b, v2.8b
1152 # CHECK: usubl v0.4s, v1.4h, v2.4h
1153 # CHECK: usubl v0.2d, v1.2s, v2.2s
1158 # CHECK: usubl2 v0.8h, v1.16b, v2.16b
1159 # CHECK: usubl2 v0.4s, v1.8h, v2.8h
1160 # CHECK: usubl2 v0.2d, v1.4s, v2.4s
1165 # CHECK: sabal v0.8h, v1.8b, v2.8b
1166 # CHECK: sabal v0.4s, v1.4h, v2.4h
1167 # CHECK: sabal v0.2d, v1.2s, v2.2s
1172 # CHECK: sabal2 v0.8h, v1.16b, v2.16b
1173 # CHECK: sabal2 v0.4s, v1.8h, v2.8h
1174 # CHECK: sabal2 v0.2d, v1.4s, v2.4s
1179 # CHECK: uabal v0.8h, v1.8b, v2.8b
1180 # CHECK: uabal v0.4s, v1.4h, v2.4h
1181 # CHECK: uabal v0.2d, v1.2s, v2.2s
1186 # CHECK: uabal2 v0.8h, v1.16b, v2.16b
1187 # CHECK: uabal2 v0.4s, v1.8h, v2.8h
1188 # CHECK: uabal2 v0.2d, v1.4s, v2.4s
1193 # CHECK: sabdl v0.8h, v1.8b, v2.8b
1194 # CHECK: sabdl v0.4s, v1.4h, v2.4h
1195 # CHECK: sabdl v0.2d, v1.2s, v2.2s
1200 # CHECK: sabdl2 v0.8h, v1.16b, v2.16b
1201 # CHECK: sabdl2 v0.4s, v1.8h, v2.8h
1202 # CHECK: sabdl2 v0.2d, v1.4s, v2.4s
1207 # CHECK: uabdl v0.8h, v1.8b, v2.8b
1208 # CHECK: uabdl v0.4s, v1.4h, v2.4h
1209 # CHECK: uabdl v0.2d, v1.2s, v2.2s
1214 # CHECK: uabdl2 v0.8h, v1.16b, v2.16b
1215 # CHECK: uabdl2 v0.4s, v1.8h, v2.8h
1216 # CHECK: uabdl2 v0.2d, v1.4s, v2.4s
1221 # CHECK: smlal v0.8h, v1.8b, v2.8b
1222 # CHECK: smlal v0.4s, v1.4h, v2.4h
1223 # CHECK: smlal v0.2d, v1.2s, v2.2s
1228 # CHECK: smlal2 v0.8h, v1.16b, v2.16b
1229 # CHECK: smlal2 v0.4s, v1.8h, v2.8h
1230 # CHECK: smlal2 v0.2d, v1.4s, v2.4s
1235 # CHECK: umlal v0.8h, v1.8b, v2.8b
1236 # CHECK: umlal v0.4s, v1.4h, v2.4h
1237 # CHECK: umlal v0.2d, v1.2s, v2.2s
1243 # CHECK: umlal2 v0.8h, v1.16b, v2.16b
1244 # CHECK: umlal2 v0.4s, v1.8h, v2.8h
1245 # CHECK: umlal2 v0.2d, v1.4s, v2.4s
1250 # CHECK: smlsl v0.8h, v1.8b, v2.8b
1251 # CHECK: smlsl v0.4s, v1.4h, v2.4h
1252 # CHECK: smlsl v0.2d, v1.2s, v2.2s
1257 # CHECK: smlsl2 v0.8h, v1.16b, v2.16b
1258 # CHECK: smlsl2 v0.4s, v1.8h, v2.8h
1259 # CHECK: smlsl2 v0.2d, v1.4s, v2.4s
1264 # CHECK: umlsl v0.8h, v1.8b, v2.8b
1265 # CHECK: umlsl v0.4s, v1.4h, v2.4h
1266 # CHECK: umlsl v0.2d, v1.2s, v2.2s
1271 # CHECK: umlsl2 v0.8h, v1.16b, v2.16b
1272 # CHECK: umlsl2 v0.4s, v1.8h, v2.8h
1273 # CHECK: umlsl2 v0.2d, v1.4s, v2.4s
1278 # CHECK: smull v0.8h, v1.8b, v2.8b
1279 # CHECK: smull v0.4s, v1.4h, v2.4h
1280 # CHECK: smull v0.2d, v1.2s, v2.2s
1285 # CHECK: smull2 v0.8h, v1.16b, v2.16b
1286 # CHECK: smull2 v0.4s, v1.8h, v2.8h
1287 # CHECK: smull2 v0.2d, v1.4s, v2.4s
1292 # CHECK: umull v0.8h, v1.8b, v2.8b
1293 # CHECK: umull v0.4s, v1.4h, v2.4h
1294 # CHECK: umull v0.2d, v1.2s, v2.2s
1299 # CHECK: umull2 v0.8h, v1.16b, v2.16b
1300 # CHECK: umull2 v0.4s, v1.8h, v2.8h
1301 # CHECK: umull2 v0.2d, v1.4s, v2.4s
1306 #------------------------------------------------------------------------------
1308 #------------------------------------------------------------------------------
1310 # CHECK: sqdmlal v0.4s, v1.4h, v2.4h
1311 # CHECK: sqdmlal v0.2d, v1.2s, v2.2s
1315 # CHECK: sqdmlal2 v0.4s, v1.8h, v2.8h
1316 # CHECK: sqdmlal2 v0.2d, v1.4s, v2.4s
1320 # CHECK: sqdmlsl v0.4s, v1.4h, v2.4h
1321 # CHECK: sqdmlsl v0.2d, v1.2s, v2.2s
1325 # CHECK: sqdmlsl2 v0.4s, v1.8h, v2.8h
1326 # CHECK: sqdmlsl2 v0.2d, v1.4s, v2.4s
1330 # CHECK: sqdmull v0.4s, v1.4h, v2.4h
1331 # CHECK: sqdmull v0.2d, v1.2s, v2.2s
1335 # CHECK: sqdmull2 v0.4s, v1.8h, v2.8h
1336 # CHECK: sqdmull2 v0.2d, v1.4s, v2.4s
1340 #------------------------------------------------------------------------------
1342 #------------------------------------------------------------------------------
1344 # CHECK: pmull v0.8h, v1.8b, v2.8b
1347 # CHECK: pmull2 v0.8h, v1.16b, v2.16b
1350 #------------------------------------------------------------------------------
1352 #------------------------------------------------------------------------------
1354 # CHECK: saddw v0.8h, v1.8h, v2.8b
1355 # CHECK: saddw v0.4s, v1.4s, v2.4h
1356 # CHECK: saddw v0.2d, v1.2d, v2.2s
1361 # CHECK: saddw2 v0.8h, v1.8h, v2.16b
1362 # CHECK: saddw2 v0.4s, v1.4s, v2.8h
1363 # CHECK: saddw2 v0.2d, v1.2d, v2.4s
1368 # CHECK: uaddw v0.8h, v1.8h, v2.8b
1369 # CHECK: uaddw v0.4s, v1.4s, v2.4h
1370 # CHECK: uaddw v0.2d, v1.2d, v2.2s
1375 # CHECK: uaddw2 v0.8h, v1.8h, v2.16b
1376 # CHECK: uaddw2 v0.4s, v1.4s, v2.8h
1377 # CHECK: uaddw2 v0.2d, v1.2d, v2.4s
1382 # CHECK: ssubw v0.8h, v1.8h, v2.8b
1383 # CHECK: ssubw v0.4s, v1.4s, v2.4h
1384 # CHECK: ssubw v0.2d, v1.2d, v2.2s
1389 # CHECK: ssubw2 v0.8h, v1.8h, v2.16b
1390 # CHECK: ssubw2 v0.4s, v1.4s, v2.8h
1391 # CHECK: ssubw2 v0.2d, v1.2d, v2.4s
1396 # CHECK: usubw v0.8h, v1.8h, v2.8b
1397 # CHECK: usubw v0.4s, v1.4s, v2.4h
1398 # CHECK: usubw v0.2d, v1.2d, v2.2s
1403 # CHECK: usubw2 v0.8h, v1.8h, v2.16b
1404 # CHECK: usubw2 v0.4s, v1.4s, v2.8h
1405 # CHECK: usubw2 v0.2d, v1.2d, v2.4s
1410 #------------------------------------------------------------------------------
1412 #------------------------------------------------------------------------------
1414 # CHECK: addhn v0.8b, v1.8h, v2.8h
1415 # CHECK: addhn v0.4h, v1.4s, v2.4s
1416 # CHECK: addhn v0.2s, v1.2d, v2.2d
1421 # CHECK: addhn2 v0.16b, v1.8h, v2.8h
1422 # CHECK: addhn2 v0.8h, v1.4s, v2.4s
1423 # CHECK: addhn2 v0.4s, v1.2d, v2.2d
1428 # CHECK: raddhn v0.8b, v1.8h, v2.8h
1429 # CHECK: raddhn v0.4h, v1.4s, v2.4s
1430 # CHECK: raddhn v0.2s, v1.2d, v2.2d
1435 # CHECK: raddhn2 v0.16b, v1.8h, v2.8h
1436 # CHECK: raddhn2 v0.8h, v1.4s, v2.4s
1437 # CHECK: raddhn2 v0.4s, v1.2d, v2.2d
1442 # CHECK: rsubhn v0.8b, v1.8h, v2.8h
1443 # CHECK: rsubhn v0.4h, v1.4s, v2.4s
1444 # CHECK: rsubhn v0.2s, v1.2d, v2.2d
1449 # CHECK: rsubhn2 v0.16b, v1.8h, v2.8h
1450 # CHECK: rsubhn2 v0.8h, v1.4s, v2.4s
1451 # CHECK: rsubhn2 v0.4s, v1.2d, v2.2d
1456 #----------------------------------------------------------------------
1457 # Scalar Integer Saturating Doubling Multiply Half High
1458 #----------------------------------------------------------------------
1459 # CHECK: sqdmulh h10, h11, h12
1460 # CHECK: sqdmulh s20, s21, s2
1464 #----------------------------------------------------------------------
1465 # Scalar Integer Saturating Rounding Doubling Multiply Half High
1466 #----------------------------------------------------------------------
1467 # CHECK: sqrdmulh h10, h11, h12
1468 # CHECK: sqrdmulh s20, s21, s2
1472 #----------------------------------------------------------------------
1473 # Floating-point multiply extended
1474 #----------------------------------------------------------------------
1475 # CHECK: fmulx s20, s22, s15
1476 # CHECK: fmulx d23, d11, d1
1480 #----------------------------------------------------------------------
1481 # Floating-point Reciprocal Step
1482 #----------------------------------------------------------------------
1483 # CHECK: frecps s21, s16, s13
1484 # CHECK: frecps d22, d30, d21
1488 #----------------------------------------------------------------------
1489 # Floating-point Reciprocal Square Root Step
1490 #----------------------------------------------------------------------
1491 # CHECK: frsqrts s21, s5, s12
1492 # CHECK: frsqrts d8, d22, d18
1496 #----------------------------------------------------------------------
1497 # Scalar Signed Integer Convert To Floating-point
1498 #----------------------------------------------------------------------
1499 # CHECK: scvtf s22, s13
1500 # CHECK: scvtf d21, d12
1504 #----------------------------------------------------------------------
1505 # Scalar Unsigned Integer Convert To Floating-point
1506 #----------------------------------------------------------------------
1507 # CHECK: ucvtf s22, s13
1508 # CHECK: ucvtf d21, d14
1512 #----------------------------------------------------------------------
1513 # Scalar Floating-point Reciprocal Estimate
1514 #----------------------------------------------------------------------
1515 # CHECK: frecpe s19, s14
1516 # CHECK: frecpe d13, d13
1520 #----------------------------------------------------------------------
1521 # Scalar Floating-point Reciprocal Exponent
1522 #----------------------------------------------------------------------
1523 # CHECK: frecpx s18, s10
1524 # CHECK: frecpx d16, d19
1528 #----------------------------------------------------------------------
1529 # Scalar Floating-point Reciprocal Square Root Estimate
1530 #----------------------------------------------------------------------
1531 # CHECK: frsqrte s22, s13
1532 # CHECK: frsqrte d21, d12
1536 #----------------------------------------------------------------------
1537 # Scalar Compare Bitwise Equal
1538 #----------------------------------------------------------------------
1539 # CHECK: cmeq d20, d21, d22
1542 #----------------------------------------------------------------------
1543 # Scalar Compare Bitwise Equal To Zero
1544 #----------------------------------------------------------------------
1545 # CHECK: cmeq d20, d21, #0x0
1548 #----------------------------------------------------------------------
1549 # Scalar Compare Unsigned Higher Or Same
1550 #----------------------------------------------------------------------
1551 # CHECK: cmhs d20, d21, d22
1555 #----------------------------------------------------------------------
1556 # Scalar Compare Signed Greather Than Or Equal
1557 #----------------------------------------------------------------------
1558 # CHECK: cmge d20, d21, d22
1561 #----------------------------------------------------------------------
1562 # Scalar Compare Signed Greather Than Or Equal To Zero
1563 #----------------------------------------------------------------------
1564 # CHECK: cmge d20, d21, #0x0
1567 #----------------------------------------------------------------------
1568 # Scalar Compare Unsigned Higher
1569 #----------------------------------------------------------------------
1570 # CHECK: cmhi d20, d21, d22
1573 #----------------------------------------------------------------------
1574 # Scalar Compare Signed Greater Than
1575 #----------------------------------------------------------------------
1576 # CHECK: cmgt d20, d21, d22
1579 #----------------------------------------------------------------------
1580 # Scalar Compare Signed Greater Than Zero
1581 #----------------------------------------------------------------------
1582 # CHECK: cmgt d20, d21, #0x0
1585 #----------------------------------------------------------------------
1586 # Scalar Compare Signed Less Than Or Equal To Zero
1587 #----------------------------------------------------------------------
1588 # CHECK: cmle d20, d21, #0x0
1591 #----------------------------------------------------------------------
1592 # Scalar Compare Less Than Zero
1593 #----------------------------------------------------------------------
1594 # CHECK: cmlt d20, d21, #0x0
1597 #----------------------------------------------------------------------
1598 # Scalar Compare Bitwise Test Bits
1599 #----------------------------------------------------------------------
1600 # CHECK: cmtst d20, d21, d22
1603 #----------------------------------------------------------------------
1604 # Scalar Absolute Value
1605 #----------------------------------------------------------------------
1606 # CHECK: sqabs b19, b14
1607 # CHECK: sqabs h21, h15
1608 # CHECK: sqabs s20, s12
1609 # CHECK: sqabs d18, d12
1615 #----------------------------------------------------------------------
1616 # Scalar Signed Saturating Negate
1617 #----------------------------------------------------------------------
1618 # CHECK: sqneg b19, b14
1619 # CHECK: sqneg h21, h15
1620 # CHECK: sqneg s20, s12
1621 # CHECK: sqneg d18, d12