1 # RUN: llvm-mc -triple=aarch64 -disassemble < %s | FileCheck %s
3 #------------------------------------------------------------------------------
5 #------------------------------------------------------------------------------
6 # CHECK: add w4, w5, #0
7 # CHECK: add w2, w3, #4095
8 # CHECK: add w30, w29, #1, lsl #12
9 # CHECK: add w13, w5, #4095, lsl #12
10 # CHECK: add x5, x7, #1638
17 # CHECK: add w20, wsp, #801
18 # CHECK: add wsp, wsp, #1104
19 # CHECK: add wsp, w30, #4084
24 # CHECK: add x0, x24, #291
25 # CHECK: add x3, x24, #4095, lsl #12
26 # CHECK: add x8, sp, #1074
27 # CHECK: add sp, x29, #3816
33 # CHECK: sub w0, wsp, #4077
34 # CHECK: sub w4, w20, #546, lsl #12
35 # CHECK: sub sp, sp, #288
36 # CHECK: sub wsp, w19, #16
43 # CHECK: adds w13, w23, #291, lsl #12
44 # CHECK: cmn w2, #4095
45 # CHECK: adds w20, wsp, #0
46 # CHECK: cmn x3, #1, lsl #12
52 # CHECK: cmp sp, #20, lsl #12
53 # CHECK: cmp x30, #4095
54 # CHECK: subs x4, sp, #3822
59 # These should really be CMN
60 # CHECK: cmn w3, #291, lsl #12
61 # CHECK: cmn wsp, #1365
62 # CHECK: cmn sp, #1092, lsl #12
76 #------------------------------------------------------------------------------
77 # Add-subtract (shifted register)
78 #------------------------------------------------------------------------------
80 # CHECK: add w3, w5, w7
81 # CHECK: add wzr, w3, w5
82 # CHECK: add w20, wzr, w4
83 # CHECK: add w4, w6, wzr
84 # CHECK: add w11, w13, w15
85 # CHECK: add w9, w3, wzr, lsl #10
86 # CHECK: add w17, w29, w20, lsl #31
87 # CHECK: add w21, w22, w23, lsr #0
88 # CHECK: add w24, w25, w26, lsr #18
89 # CHECK: add w27, w28, w29, lsr #31
90 # CHECK: add w2, w3, w4, asr #0
91 # CHECK: add w5, w6, w7, asr #21
92 # CHECK: add w8, w9, w10, asr #31
107 # CHECK: add x3, x5, x7
108 # CHECK: add xzr, x3, x5
109 # CHECK: add x20, xzr, x4
110 # CHECK: add x4, x6, xzr
111 # CHECK: add x11, x13, x15
112 # CHECK: add x9, x3, xzr, lsl #10
113 # CHECK: add x17, x29, x20, lsl #63
114 # CHECK: add x21, x22, x23, lsr #0
115 # CHECK: add x24, x25, x26, lsr #18
116 # CHECK: add x27, x28, x29, lsr #63
117 # CHECK: add x2, x3, x4, asr #0
118 # CHECK: add x5, x6, x7, asr #21
119 # CHECK: add x8, x9, x10, asr #63
134 # CHECK: adds w3, w5, w7
136 # CHECK: adds w20, wzr, w4
137 # CHECK: adds w4, w6, wzr
138 # CHECK: adds w11, w13, w15
139 # CHECK: adds w9, w3, wzr, lsl #10
140 # CHECK: adds w17, w29, w20, lsl #31
141 # CHECK: adds w21, w22, w23, lsr #0
142 # CHECK: adds w24, w25, w26, lsr #18
143 # CHECK: adds w27, w28, w29, lsr #31
144 # CHECK: adds w2, w3, w4, asr #0
145 # CHECK: adds w5, w6, w7, asr #21
146 # CHECK: adds w8, w9, w10, asr #31
161 # CHECK: adds x3, x5, x7
163 # CHECK: adds x20, xzr, x4
164 # CHECK: adds x4, x6, xzr
165 # CHECK: adds x11, x13, x15
166 # CHECK: adds x9, x3, xzr, lsl #10
167 # CHECK: adds x17, x29, x20, lsl #63
168 # CHECK: adds x21, x22, x23, lsr #0
169 # CHECK: adds x24, x25, x26, lsr #18
170 # CHECK: adds x27, x28, x29, lsr #63
171 # CHECK: adds x2, x3, x4, asr #0
172 # CHECK: adds x5, x6, x7, asr #21
173 # CHECK: adds x8, x9, x10, asr #63
188 # CHECK: sub w3, w5, w7
189 # CHECK: sub wzr, w3, w5
190 # CHECK: sub w20, wzr, w4
191 # CHECK: sub w4, w6, wzr
192 # CHECK: sub w11, w13, w15
193 # CHECK: sub w9, w3, wzr, lsl #10
194 # CHECK: sub w17, w29, w20, lsl #31
195 # CHECK: sub w21, w22, w23, lsr #0
196 # CHECK: sub w24, w25, w26, lsr #18
197 # CHECK: sub w27, w28, w29, lsr #31
198 # CHECK: sub w2, w3, w4, asr #0
199 # CHECK: sub w5, w6, w7, asr #21
200 # CHECK: sub w8, w9, w10, asr #31
215 # CHECK: sub x3, x5, x7
216 # CHECK: sub xzr, x3, x5
217 # CHECK: sub x20, xzr, x4
218 # CHECK: sub x4, x6, xzr
219 # CHECK: sub x11, x13, x15
220 # CHECK: sub x9, x3, xzr, lsl #10
221 # CHECK: sub x17, x29, x20, lsl #63
222 # CHECK: sub x21, x22, x23, lsr #0
223 # CHECK: sub x24, x25, x26, lsr #18
224 # CHECK: sub x27, x28, x29, lsr #63
225 # CHECK: sub x2, x3, x4, asr #0
226 # CHECK: sub x5, x6, x7, asr #21
227 # CHECK: sub x8, x9, x10, asr #63
242 # CHECK: subs w3, w5, w7
244 # CHECK: subs w20, wzr, w4
245 # CHECK: subs w4, w6, wzr
246 # CHECK: subs w11, w13, w15
247 # CHECK: subs w9, w3, wzr, lsl #10
248 # CHECK: subs w17, w29, w20, lsl #31
249 # CHECK: subs w21, w22, w23, lsr #0
250 # CHECK: subs w24, w25, w26, lsr #18
251 # CHECK: subs w27, w28, w29, lsr #31
252 # CHECK: subs w2, w3, w4, asr #0
253 # CHECK: subs w5, w6, w7, asr #21
254 # CHECK: subs w8, w9, w10, asr #31
269 # CHECK: subs x3, x5, x7
271 # CHECK: subs x20, xzr, x4
272 # CHECK: subs x4, x6, xzr
273 # CHECK: subs x11, x13, x15
274 # CHECK: subs x9, x3, xzr, lsl #10
275 # CHECK: subs x17, x29, x20, lsl #63
276 # CHECK: subs x21, x22, x23, lsr #0
277 # CHECK: subs x24, x25, x26, lsr #18
278 # CHECK: subs x27, x28, x29, lsr #63
279 # CHECK: subs x2, x3, x4, asr #0
280 # CHECK: subs x5, x6, x7, asr #21
281 # CHECK: subs x8, x9, x10, asr #63
300 # CHECK: cmn w8, w9, lsl #15
301 # CHECK: cmn w10, w11, lsl #31
302 # CHECK: cmn w12, w13, lsr #0
303 # CHECK: cmn w14, w15, lsr #21
304 # CHECK: cmn w16, w17, lsr #31
305 # CHECK: cmn w18, w19, asr #0
306 # CHECK: cmn w20, w21, asr #22
307 # CHECK: cmn w22, w23, asr #31
325 # CHECK: cmn x8, x9, lsl #15
326 # CHECK: cmn x10, x11, lsl #63
327 # CHECK: cmn x12, x13, lsr #0
328 # CHECK: cmn x14, x15, lsr #41
329 # CHECK: cmn x16, x17, lsr #63
330 # CHECK: cmn x18, x19, asr #0
331 # CHECK: cmn x20, x21, asr #55
332 # CHECK: cmn x22, x23, asr #63
350 # CHECK: cmp w8, w9, lsl #15
351 # CHECK: cmp w10, w11, lsl #31
352 # CHECK: cmp w12, w13, lsr #0
353 # CHECK: cmp w14, w15, lsr #21
354 # CHECK: cmp w16, w17, lsr #31
355 # CHECK: cmp w18, w19, asr #0
356 # CHECK: cmp w20, w21, asr #22
357 # CHECK: cmp w22, w23, asr #31
375 # CHECK: cmp x8, x9, lsl #15
376 # CHECK: cmp x10, x11, lsl #63
377 # CHECK: cmp x12, x13, lsr #0
378 # CHECK: cmp x14, x15, lsr #41
379 # CHECK: cmp x16, x17, lsr #63
380 # CHECK: cmp x18, x19, asr #0
381 # CHECK: cmp x20, x21, asr #55
382 # CHECK: cmp x22, x23, asr #63
396 # CHECK: sub w29, wzr, w30
397 # CHECK: sub w30, wzr, wzr
398 # CHECK: sub wzr, wzr, w0
399 # CHECK: sub w28, wzr, w27
400 # CHECK: sub w26, wzr, w25, lsl #29
401 # CHECK: sub w24, wzr, w23, lsl #31
402 # CHECK: sub w22, wzr, w21, lsr #0
403 # CHECK: sub w20, wzr, w19, lsr #1
404 # CHECK: sub w18, wzr, w17, lsr #31
405 # CHECK: sub w16, wzr, w15, asr #0
406 # CHECK: sub w14, wzr, w13, asr #12
407 # CHECK: sub w12, wzr, w11, asr #31
421 # CHECK: sub x29, xzr, x30
422 # CHECK: sub x30, xzr, xzr
423 # CHECK: sub xzr, xzr, x0
424 # CHECK: sub x28, xzr, x27
425 # CHECK: sub x26, xzr, x25, lsl #29
426 # CHECK: sub x24, xzr, x23, lsl #31
427 # CHECK: sub x22, xzr, x21, lsr #0
428 # CHECK: sub x20, xzr, x19, lsr #1
429 # CHECK: sub x18, xzr, x17, lsr #31
430 # CHECK: sub x16, xzr, x15, asr #0
431 # CHECK: sub x14, xzr, x13, asr #12
432 # CHECK: sub x12, xzr, x11, asr #31
446 # CHECK: subs w29, wzr, w30
447 # CHECK: subs w30, wzr, wzr
449 # CHECK: subs w28, wzr, w27
450 # CHECK: subs w26, wzr, w25, lsl #29
451 # CHECK: subs w24, wzr, w23, lsl #31
452 # CHECK: subs w22, wzr, w21, lsr #0
453 # CHECK: subs w20, wzr, w19, lsr #1
454 # CHECK: subs w18, wzr, w17, lsr #31
455 # CHECK: subs w16, wzr, w15, asr #0
456 # CHECK: subs w14, wzr, w13, asr #12
457 # CHECK: subs w12, wzr, w11, asr #31
471 # CHECK: subs x29, xzr, x30
472 # CHECK: subs x30, xzr, xzr
474 # CHECK: subs x28, xzr, x27
475 # CHECK: subs x26, xzr, x25, lsl #29
476 # CHECK: subs x24, xzr, x23, lsl #31
477 # CHECK: subs x22, xzr, x21, lsr #0
478 # CHECK: subs x20, xzr, x19, lsr #1
479 # CHECK: subs x18, xzr, x17, lsr #31
480 # CHECK: subs x16, xzr, x15, asr #0
481 # CHECK: subs x14, xzr, x13, asr #12
482 # CHECK: subs x12, xzr, x11, asr #31
496 #------------------------------------------------------------------------------
497 # Add-subtract (shifted register)
498 #------------------------------------------------------------------------------
500 # CHECK: adc w29, w27, w25
501 # CHECK: adc wzr, w3, w4
502 # CHECK: adc w9, wzr, w10
503 # CHECK: adc w20, w0, wzr
509 # CHECK: adc x29, x27, x25
510 # CHECK: adc xzr, x3, x4
511 # CHECK: adc x9, xzr, x10
512 # CHECK: adc x20, x0, xzr
518 # CHECK: adcs w29, w27, w25
519 # CHECK: adcs wzr, w3, w4
520 # CHECK: adcs w9, wzr, w10
521 # CHECK: adcs w20, w0, wzr
527 # CHECK: adcs x29, x27, x25
528 # CHECK: adcs xzr, x3, x4
529 # CHECK: adcs x9, xzr, x10
530 # CHECK: adcs x20, x0, xzr
536 # CHECK: sbc w29, w27, w25
537 # CHECK: sbc wzr, w3, w4
539 # CHECK: sbc w20, w0, wzr
545 # CHECK: sbc x29, x27, x25
546 # CHECK: sbc xzr, x3, x4
548 # CHECK: sbc x20, x0, xzr
554 # CHECK: sbcs w29, w27, w25
555 # CHECK: sbcs wzr, w3, w4
556 # CHECK: ngcs w9, w10
557 # CHECK: sbcs w20, w0, wzr
563 # CHECK: sbcs x29, x27, x25
564 # CHECK: sbcs xzr, x3, x4
565 # CHECK: ngcs x9, x10
566 # CHECK: sbcs x20, x0, xzr
574 # CHECK: ngc w23, wzr
579 # CHECK: ngc x29, x30
586 # CHECK: ngcs w3, w12
587 # CHECK: ngcs wzr, w9
588 # CHECK: ngcs w23, wzr
593 # CHECK: ngcs x29, x30
594 # CHECK: ngcs xzr, x0
595 # CHECK: ngcs x0, xzr
600 #------------------------------------------------------------------------------
601 # Compare and branch (immediate)
602 #------------------------------------------------------------------------------
604 # CHECK: sbfx x1, x2, #3, #2
605 # CHECK: asr x3, x4, #63
606 # CHECK: asr wzr, wzr, #31
607 # CHECK: sbfx w12, w9, #0, #1
613 # CHECK: ubfiz x4, x5, #52, #11
614 # CHECK: ubfx xzr, x4, #0, #1
615 # CHECK: ubfiz x4, xzr, #1, #6
616 # CHECK: lsr x5, x6, #12
622 # CHECK: bfi x4, x5, #52, #11
623 # CHECK: bfxil xzr, x4, #0, #1
624 # CHECK: bfi x4, xzr, #1, #6
625 # CHECK: bfxil x5, x6, #12, #52
632 # CHECK: sxtb xzr, w3
633 # CHECK: sxth w9, w10
635 # CHECK: sxtw x3, w30
643 # CHECK: uxth w9, w10
644 # CHECK: ubfx x3, x30, #0, #32
649 # CHECK: asr w3, w2, #0
650 # CHECK: asr w9, w10, #31
651 # CHECK: asr x20, x21, #63
652 # CHECK: asr w1, wzr, #3
658 # CHECK: lsr w3, w2, #0
659 # CHECK: lsr w9, w10, #31
660 # CHECK: lsr x20, x21, #63
661 # CHECK: lsr wzr, wzr, #3
667 # CHECK: lsr w3, w2, #0
668 # CHECK: lsl w9, w10, #31
669 # CHECK: lsl x20, x21, #63
670 # CHECK: lsl w1, wzr, #3
676 # CHECK: sbfx w9, w10, #0, #1
677 # CHECK: sbfiz x2, x3, #63, #1
678 # CHECK: asr x19, x20, #0
679 # CHECK: sbfiz x9, x10, #5, #59
680 # CHECK: asr w9, w10, #0
681 # CHECK: sbfiz w11, w12, #31, #1
682 # CHECK: sbfiz w13, w14, #29, #3
683 # CHECK: sbfiz xzr, xzr, #10, #11
693 # CHECK: sbfx w9, w10, #0, #1
694 # CHECK: asr x2, x3, #63
695 # CHECK: asr x19, x20, #0
696 # CHECK: asr x9, x10, #5
697 # CHECK: asr w9, w10, #0
698 # CHECK: asr w11, w12, #31
699 # CHECK: asr w13, w14, #29
700 # CHECK: sbfx xzr, xzr, #10, #11
710 # CHECK: bfxil w9, w10, #0, #1
711 # CHECK: bfi x2, x3, #63, #1
712 # CHECK: bfxil x19, x20, #0, #64
713 # CHECK: bfi x9, x10, #5, #59
714 # CHECK: bfxil w9, w10, #0, #32
715 # CHECK: bfi w11, w12, #31, #1
716 # CHECK: bfi w13, w14, #29, #3
717 # CHECK: bfi xzr, xzr, #10, #11
727 # CHECK: bfxil w9, w10, #0, #1
728 # CHECK: bfxil x2, x3, #63, #1
729 # CHECK: bfxil x19, x20, #0, #64
730 # CHECK: bfxil x9, x10, #5, #59
731 # CHECK: bfxil w9, w10, #0, #32
732 # CHECK: bfxil w11, w12, #31, #1
733 # CHECK: bfxil w13, w14, #29, #3
734 # CHECK: bfxil xzr, xzr, #10, #11
744 # CHECK: ubfx w9, w10, #0, #1
745 # CHECK: lsl x2, x3, #63
746 # CHECK: lsr x19, x20, #0
747 # CHECK: lsl x9, x10, #5
748 # CHECK: lsr w9, w10, #0
749 # CHECK: lsl w11, w12, #31
750 # CHECK: lsl w13, w14, #29
751 # CHECK: ubfiz xzr, xzr, #10, #11
761 # CHECK: ubfx w9, w10, #0, #1
762 # CHECK: lsr x2, x3, #63
763 # CHECK: lsr x19, x20, #0
764 # CHECK: lsr x9, x10, #5
765 # CHECK: lsr w9, w10, #0
766 # CHECK: lsr w11, w12, #31
767 # CHECK: lsr w13, w14, #29
768 # CHECK: ubfx xzr, xzr, #10, #11
779 #------------------------------------------------------------------------------
780 # Compare and branch (immediate)
781 #------------------------------------------------------------------------------
785 # CHECK: cbnz x2, #-4
786 # CHECK: cbnz x26, #1048572
793 # CHECK: cbnz xzr, #0
797 #------------------------------------------------------------------------------
798 # Conditional branch (immediate)
799 #------------------------------------------------------------------------------
802 # CHECK: b.ge #1048572
808 #------------------------------------------------------------------------------
809 # Conditional compare (immediate)
810 #------------------------------------------------------------------------------
812 # CHECK: ccmp w1, #31, #0, eq
813 # CHECK: ccmp w3, #0, #15, hs
814 # CHECK: ccmp wzr, #15, #13, hs
819 # CHECK: ccmp x9, #31, #0, le
820 # CHECK: ccmp x3, #0, #15, gt
821 # CHECK: ccmp xzr, #5, #7, ne
826 # CHECK: ccmn w1, #31, #0, eq
827 # CHECK: ccmn w3, #0, #15, hs
828 # CHECK: ccmn wzr, #15, #13, hs
833 # CHECK: ccmn x9, #31, #0, le
834 # CHECK: ccmn x3, #0, #15, gt
835 # CHECK: ccmn xzr, #5, #7, ne
840 #------------------------------------------------------------------------------
841 # Conditional compare (register)
842 #------------------------------------------------------------------------------
844 # CHECK: ccmp w1, wzr, #0, eq
845 # CHECK: ccmp w3, w0, #15, hs
846 # CHECK: ccmp wzr, w15, #13, hs
851 # CHECK: ccmp x9, xzr, #0, le
852 # CHECK: ccmp x3, x0, #15, gt
853 # CHECK: ccmp xzr, x5, #7, ne
858 # CHECK: ccmn w1, wzr, #0, eq
859 # CHECK: ccmn w3, w0, #15, hs
860 # CHECK: ccmn wzr, w15, #13, hs
865 # CHECK: ccmn x9, xzr, #0, le
866 # CHECK: ccmn x3, x0, #15, gt
867 # CHECK: ccmn xzr, x5, #7, ne
872 #------------------------------------------------------------------------------
873 # Conditional branch (immediate)
874 #------------------------------------------------------------------------------
875 # CHECK: csel w1, w0, w19, ne
876 # CHECK: csel wzr, w5, w9, eq
877 # CHECK: csel w9, wzr, w30, gt
878 # CHECK: csel w1, w28, wzr, mi
879 # CHECK: csel x19, x23, x29, lt
880 # CHECK: csel xzr, x3, x4, ge
881 # CHECK: csel x5, xzr, x6, hs
882 # CHECK: csel x7, x8, xzr, lo
892 # CHECK: csinc w1, w0, w19, ne
893 # CHECK: csinc wzr, w5, w9, eq
894 # CHECK: csinc w9, wzr, w30, gt
895 # CHECK: csinc w1, w28, wzr, mi
896 # CHECK: csinc x19, x23, x29, lt
897 # CHECK: csinc xzr, x3, x4, ge
898 # CHECK: csinc x5, xzr, x6, hs
899 # CHECK: csinc x7, x8, xzr, lo
909 # CHECK: csinv w1, w0, w19, ne
910 # CHECK: csinv wzr, w5, w9, eq
911 # CHECK: csinv w9, wzr, w30, gt
912 # CHECK: csinv w1, w28, wzr, mi
913 # CHECK: csinv x19, x23, x29, lt
914 # CHECK: csinv xzr, x3, x4, ge
915 # CHECK: csinv x5, xzr, x6, hs
916 # CHECK: csinv x7, x8, xzr, lo
926 # CHECK: csneg w1, w0, w19, ne
927 # CHECK: csneg wzr, w5, w9, eq
928 # CHECK: csneg w9, wzr, w30, gt
929 # CHECK: csneg w1, w28, wzr, mi
930 # CHECK: csneg x19, x23, x29, lt
931 # CHECK: csneg xzr, x3, x4, ge
932 # CHECK: csneg x5, xzr, x6, hs
933 # CHECK: csneg x7, x8, xzr, lo
943 # CHECK: csinc w3, wzr, wzr, ne
944 # CHECK: csinc x9, xzr, xzr, mi
945 # CHECK: csinv w20, wzr, wzr, eq
946 # CHECK: csinv x30, xzr, xzr, lt
952 # CHECK: csinc w3, w5, w5, le
953 # CHECK: csinc wzr, w4, w4, gt
954 # CHECK: csinc w9, wzr, wzr, ge
955 # CHECK: csinc x3, x5, x5, le
956 # CHECK: csinc xzr, x4, x4, gt
957 # CHECK: csinc x9, xzr, xzr, ge
965 # CHECK: csinv w3, w5, w5, le
966 # CHECK: csinv wzr, w4, w4, gt
967 # CHECK: csinv w9, wzr, wzr, ge
968 # CHECK: csinv x3, x5, x5, le
969 # CHECK: csinv xzr, x4, x4, gt
970 # CHECK: csinv x9, xzr, xzr, ge
978 # CHECK: csneg w3, w5, w5, le
979 # CHECK: csneg wzr, w4, w4, gt
980 # CHECK: csneg w9, wzr, wzr, ge
981 # CHECK: csneg x3, x5, x5, le
982 # CHECK: csneg xzr, x4, x4, gt
983 # CHECK: csneg x9, xzr, xzr, ge
991 #------------------------------------------------------------------------------
992 # Data-processing (1 source)
993 #------------------------------------------------------------------------------
996 # CHECK: rbit x18, x3
997 # CHECK: rev16 w17, w1
998 # CHECK: rev16 x5, x2
1000 # CHECK: rev32 x20, x1
1008 # CHECK: rev x22, x2
1009 # CHECK: clz w24, w3
1010 # CHECK: clz x26, x4
1012 # CHECK: cls x20, x5
1019 #------------------------------------------------------------------------------
1020 # Data-processing (2 source)
1021 #------------------------------------------------------------------------------
1023 # CHECK: crc32b w5, w7, w20
1024 # CHECK: crc32h w28, wzr, w30
1025 # CHECK: crc32w w0, w1, w2
1026 # CHECK: crc32x w7, w9, x20
1027 # CHECK: crc32cb w9, w5, w4
1028 # CHECK: crc32ch w13, w17, w25
1029 # CHECK: crc32cw wzr, w3, w5
1030 # CHECK: crc32cx w18, w16, xzr
1040 # CHECK: udiv w0, w7, w10
1041 # CHECK: udiv x9, x22, x4
1042 # CHECK: sdiv w12, w21, w0
1043 # CHECK: sdiv x13, x2, x1
1044 # CHECK: lsl w11, w12, w13
1045 # CHECK: lsl x14, x15, x16
1046 # CHECK: lsr w17, w18, w19
1047 # CHECK: lsr x20, x21, x22
1048 # CHECK: asr w23, w24, w25
1049 # CHECK: asr x26, x27, x28
1050 # CHECK: ror w0, w1, w2
1051 # CHECK: ror x3, x4, x5
1065 # CHECK: lsl w6, w7, w8
1066 # CHECK: lsl x9, x10, x11
1067 # CHECK: lsr w12, w13, w14
1068 # CHECK: lsr x15, x16, x17
1069 # CHECK: asr w18, w19, w20
1070 # CHECK: asr x21, x22, x23
1071 # CHECK: ror w24, w25, w26
1072 # CHECK: ror x27, x28, x29
1082 #------------------------------------------------------------------------------
1083 # Data-processing (3 sources)
1084 #------------------------------------------------------------------------------
1086 # First check some non-canonical encodings where Ra is not 0b11111 (only umulh
1087 # and smulh have them).
1089 # CHECK: smulh x30, x29, x28
1090 # CHECK: smulh xzr, x27, x26
1091 # CHECK: umulh x30, x29, x28
1092 # CHECK: umulh x23, x30, xzr
1098 # Now onto the boilerplate stuff
1100 # CHECK: madd w1, w3, w7, w4
1101 # CHECK: madd wzr, w0, w9, w11
1102 # CHECK: madd w13, wzr, w4, w4
1103 # CHECK: madd w19, w30, wzr, w29
1104 # CHECK: mul w4, w5, w6
1111 # CHECK: madd x1, x3, x7, x4
1112 # CHECK: madd xzr, x0, x9, x11
1113 # CHECK: madd x13, xzr, x4, x4
1114 # CHECK: madd x19, x30, xzr, x29
1115 # CHECK: mul x4, x5, x6
1122 # CHECK: msub w1, w3, w7, w4
1123 # CHECK: msub wzr, w0, w9, w11
1124 # CHECK: msub w13, wzr, w4, w4
1125 # CHECK: msub w19, w30, wzr, w29
1126 # CHECK: mneg w4, w5, w6
1133 # CHECK: msub x1, x3, x7, x4
1134 # CHECK: msub xzr, x0, x9, x11
1135 # CHECK: msub x13, xzr, x4, x4
1136 # CHECK: msub x19, x30, xzr, x29
1137 # CHECK: mneg x4, x5, x6
1144 # CHECK: smaddl x3, w5, w2, x9
1145 # CHECK: smaddl xzr, w10, w11, x12
1146 # CHECK: smaddl x13, wzr, w14, x15
1147 # CHECK: smaddl x16, w17, wzr, x18
1148 # CHECK: smull x19, w20, w21
1155 # CHECK: smsubl x3, w5, w2, x9
1156 # CHECK: smsubl xzr, w10, w11, x12
1157 # CHECK: smsubl x13, wzr, w14, x15
1158 # CHECK: smsubl x16, w17, wzr, x18
1159 # CHECK: smnegl x19, w20, w21
1166 # CHECK: umaddl x3, w5, w2, x9
1167 # CHECK: umaddl xzr, w10, w11, x12
1168 # CHECK: umaddl x13, wzr, w14, x15
1169 # CHECK: umaddl x16, w17, wzr, x18
1170 # CHECK: umull x19, w20, w21
1177 # CHECK: umsubl x3, w5, w2, x9
1178 # CHECK: umsubl xzr, w10, w11, x12
1179 # CHECK: umsubl x13, wzr, w14, x15
1180 # CHECK: umsubl x16, w17, wzr, x18
1181 # CHECK: umnegl x19, w20, w21
1188 # CHECK: smulh x30, x29, x28
1189 # CHECK: smulh xzr, x27, x26
1190 # CHECK: smulh x25, xzr, x24
1191 # CHECK: smulh x23, x22, xzr
1197 # CHECK: umulh x30, x29, x28
1198 # CHECK: umulh xzr, x27, x26
1199 # CHECK: umulh x25, xzr, x24
1200 # CHECK: umulh x23, x22, xzr
1206 # CHECK: mul w3, w4, w5
1207 # CHECK: mul wzr, w6, w7
1208 # CHECK: mul w8, wzr, w9
1209 # CHECK: mul w10, w11, wzr
1210 # CHECK: mul x12, x13, x14
1211 # CHECK: mul xzr, x15, x16
1212 # CHECK: mul x17, xzr, x18
1213 # CHECK: mul x19, x20, xzr
1223 # CHECK: mneg w21, w22, w23
1224 # CHECK: mneg wzr, w24, w25
1225 # CHECK: mneg w26, wzr, w27
1226 # CHECK: mneg w28, w29, wzr
1232 # CHECK: smull x11, w13, w17
1233 # CHECK: umull x11, w13, w17
1234 # CHECK: smnegl x11, w13, w17
1235 # CHECK: umnegl x11, w13, w17
1241 #------------------------------------------------------------------------------
1242 # Exception generation
1243 #------------------------------------------------------------------------------
1261 # CHECK: dcps3 #1000
1273 #------------------------------------------------------------------------------
1274 # Extract (immediate)
1275 #------------------------------------------------------------------------------
1277 # CHECK: extr w3, w5, w7, #0
1278 # CHECK: extr w11, w13, w17, #31
1282 # CHECK: extr x3, x5, x7, #15
1283 # CHECK: extr x11, x13, x17, #63
1287 # CHECK: extr x19, x23, x23, #24
1288 # CHECK: extr x29, xzr, xzr, #63
1289 # CHECK: extr w9, w13, w13, #31
1294 #------------------------------------------------------------------------------
1295 # Floating-point compare
1296 #------------------------------------------------------------------------------
1298 # CHECK: fcmp s3, s5
1299 # CHECK: fcmp s31, #0.0
1300 # CHECK: fcmp s31, #0.0
1305 # CHECK: fcmpe s29, s30
1306 # CHECK: fcmpe s15, #0.0
1307 # CHECK: fcmpe s15, #0.0
1312 # CHECK: fcmp d4, d12
1313 # CHECK: fcmp d23, #0.0
1314 # CHECK: fcmp d23, #0.0
1319 # CHECK: fcmpe d26, d22
1320 # CHECK: fcmpe d29, #0.0
1321 # CHECK: fcmpe d29, #0.0
1326 #------------------------------------------------------------------------------
1327 # Floating-point conditional compare
1328 #------------------------------------------------------------------------------
1330 # CHECK: fccmp s1, s31, #0, eq
1331 # CHECK: fccmp s3, s0, #15, hs
1332 # CHECK: fccmp s31, s15, #13, hs
1337 # CHECK: fccmp d9, d31, #0, le
1338 # CHECK: fccmp d3, d0, #15, gt
1339 # CHECK: fccmp d31, d5, #7, ne
1344 # CHECK: fccmpe s1, s31, #0, eq
1345 # CHECK: fccmpe s3, s0, #15, hs
1346 # CHECK: fccmpe s31, s15, #13, hs
1351 # CHECK: fccmpe d9, d31, #0, le
1352 # CHECK: fccmpe d3, d0, #15, gt
1353 # CHECK: fccmpe d31, d5, #7, ne
1358 #-------------------------------------------------------------------------------
1359 # Floating-point conditional compare
1360 #-------------------------------------------------------------------------------
1362 # CHECK: fcsel s3, s20, s9, pl
1363 # CHECK: fcsel d9, d10, d11, mi
1367 #------------------------------------------------------------------------------
1368 # Floating-point data-processing (1 source)
1369 #------------------------------------------------------------------------------
1371 # CHECK: fmov s0, s1
1372 # CHECK: fabs s2, s3
1373 # CHECK: fneg s4, s5
1374 # CHECK: fsqrt s6, s7
1375 # CHECK: fcvt d8, s9
1376 # CHECK: fcvt h10, s11
1377 # CHECK: frintn s12, s13
1378 # CHECK: frintp s14, s15
1379 # CHECK: frintm s16, s17
1380 # CHECK: frintz s18, s19
1381 # CHECK: frinta s20, s21
1382 # CHECK: frintx s22, s23
1383 # CHECK: frinti s24, s25
1398 # CHECK: fmov d0, d1
1399 # CHECK: fabs d2, d3
1400 # CHECK: fneg d4, d5
1401 # CHECK: fsqrt d6, d7
1402 # CHECK: fcvt s8, d9
1403 # CHECK: fcvt h10, d11
1404 # CHECK: frintn d12, d13
1405 # CHECK: frintp d14, d15
1406 # CHECK: frintm d16, d17
1407 # CHECK: frintz d18, d19
1408 # CHECK: frinta d20, d21
1409 # CHECK: frintx d22, d23
1410 # CHECK: frinti d24, d25
1425 # CHECK: fcvt s26, h27
1426 # CHECK: fcvt d28, h29
1430 #------------------------------------------------------------------------------
1431 # Floating-point data-processing (2 sources)
1432 #------------------------------------------------------------------------------
1434 # CHECK: fmul s20, s19, s17
1435 # CHECK: fdiv s1, s2, s3
1436 # CHECK: fadd s4, s5, s6
1437 # CHECK: fsub s7, s8, s9
1438 # CHECK: fmax s10, s11, s12
1439 # CHECK: fmin s13, s14, s15
1440 # CHECK: fmaxnm s16, s17, s18
1441 # CHECK: fminnm s19, s20, s21
1442 # CHECK: fnmul s22, s23, s2
1454 # CHECK: fmul d20, d19, d17
1455 # CHECK: fdiv d1, d2, d3
1456 # CHECK: fadd d4, d5, d6
1457 # CHECK: fsub d7, d8, d9
1458 # CHECK: fmax d10, d11, d12
1459 # CHECK: fmin d13, d14, d15
1460 # CHECK: fmaxnm d16, d17, d18
1461 # CHECK: fminnm d19, d20, d21
1462 # CHECK: fnmul d22, d23, d24
1473 #------------------------------------------------------------------------------
1474 # Floating-point data-processing (1 source)
1475 #------------------------------------------------------------------------------
1477 # CHECK: fmadd s3, s5, s6, s31
1478 # CHECK: fmadd d3, d13, d0, d23
1479 # CHECK: fmsub s3, s5, s6, s31
1480 # CHECK: fmsub d3, d13, d0, d23
1481 # CHECK: fnmadd s3, s5, s6, s31
1482 # CHECK: fnmadd d3, d13, d0, d23
1483 # CHECK: fnmsub s3, s5, s6, s31
1484 # CHECK: fnmsub d3, d13, d0, d23
1494 #------------------------------------------------------------------------------
1495 # Floating-point <-> fixed-point conversion
1496 #------------------------------------------------------------------------------
1498 # CHECK: fcvtzs w3, s5, #1
1499 # CHECK: fcvtzs wzr, s20, #13
1500 # CHECK: fcvtzs w19, s0, #32
1505 # CHECK: fcvtzs x3, s5, #1
1506 # CHECK: fcvtzs x12, s30, #45
1507 # CHECK: fcvtzs x19, s0, #64
1512 # CHECK: fcvtzs w3, d5, #1
1513 # CHECK: fcvtzs wzr, d20, #13
1514 # CHECK: fcvtzs w19, d0, #32
1519 # CHECK: fcvtzs x3, d5, #1
1520 # CHECK: fcvtzs x12, d30, #45
1521 # CHECK: fcvtzs x19, d0, #64
1526 # CHECK: fcvtzu w3, s5, #1
1527 # CHECK: fcvtzu wzr, s20, #13
1528 # CHECK: fcvtzu w19, s0, #32
1533 # CHECK: fcvtzu x3, s5, #1
1534 # CHECK: fcvtzu x12, s30, #45
1535 # CHECK: fcvtzu x19, s0, #64
1540 # CHECK: fcvtzu w3, d5, #1
1541 # CHECK: fcvtzu wzr, d20, #13
1542 # CHECK: fcvtzu w19, d0, #32
1547 # CHECK: fcvtzu x3, d5, #1
1548 # CHECK: fcvtzu x12, d30, #45
1549 # CHECK: fcvtzu x19, d0, #64
1554 # CHECK: scvtf s23, w19, #1
1555 # CHECK: scvtf s31, wzr, #20
1556 # CHECK: scvtf s14, w0, #32
1561 # CHECK: scvtf s23, x19, #1
1562 # CHECK: scvtf s31, xzr, #20
1563 # CHECK: scvtf s14, x0, #64
1568 # CHECK: scvtf d23, w19, #1
1569 # CHECK: scvtf d31, wzr, #20
1570 # CHECK: scvtf d14, w0, #32
1575 # CHECK: scvtf d23, x19, #1
1576 # CHECK: scvtf d31, xzr, #20
1577 # CHECK: scvtf d14, x0, #64
1582 # CHECK: ucvtf s23, w19, #1
1583 # CHECK: ucvtf s31, wzr, #20
1584 # CHECK: ucvtf s14, w0, #32
1589 # CHECK: ucvtf s23, x19, #1
1590 # CHECK: ucvtf s31, xzr, #20
1591 # CHECK: ucvtf s14, x0, #64
1596 # CHECK: ucvtf d23, w19, #1
1597 # CHECK: ucvtf d31, wzr, #20
1598 # CHECK: ucvtf d14, w0, #32
1603 # CHECK: ucvtf d23, x19, #1
1604 # CHECK: ucvtf d31, xzr, #20
1605 # CHECK: ucvtf d14, x0, #64
1610 #------------------------------------------------------------------------------
1611 # Floating-point <-> integer conversion
1612 #------------------------------------------------------------------------------
1613 # CHECK: fcvtns w3, s31
1614 # CHECK: fcvtns xzr, s12
1615 # CHECK: fcvtnu wzr, s12
1616 # CHECK: fcvtnu x0, s0
1622 # CHECK: fcvtps wzr, s9
1623 # CHECK: fcvtps x12, s20
1624 # CHECK: fcvtpu w30, s23
1625 # CHECK: fcvtpu x29, s3
1631 # CHECK: fcvtms w2, s3
1632 # CHECK: fcvtms x4, s5
1633 # CHECK: fcvtmu w6, s7
1634 # CHECK: fcvtmu x8, s9
1640 # CHECK: fcvtzs w10, s11
1641 # CHECK: fcvtzs x12, s13
1642 # CHECK: fcvtzu w14, s15
1643 # CHECK: fcvtzu x15, s16
1649 # CHECK: scvtf s17, w18
1650 # CHECK: scvtf s19, x20
1651 # CHECK: ucvtf s21, w22
1652 # CHECK: scvtf s23, x24
1658 # CHECK: fcvtas w25, s26
1659 # CHECK: fcvtas x27, s28
1660 # CHECK: fcvtau w29, s30
1661 # CHECK: fcvtau xzr, s0
1667 # CHECK: fcvtns w3, d31
1668 # CHECK: fcvtns xzr, d12
1669 # CHECK: fcvtnu wzr, d12
1670 # CHECK: fcvtnu x0, d0
1676 # CHECK: fcvtps wzr, d9
1677 # CHECK: fcvtps x12, d20
1678 # CHECK: fcvtpu w30, d23
1679 # CHECK: fcvtpu x29, d3
1685 # CHECK: fcvtms w2, d3
1686 # CHECK: fcvtms x4, d5
1687 # CHECK: fcvtmu w6, d7
1688 # CHECK: fcvtmu x8, d9
1694 # CHECK: fcvtzs w10, d11
1695 # CHECK: fcvtzs x12, d13
1696 # CHECK: fcvtzu w14, d15
1697 # CHECK: fcvtzu x15, d16
1703 # CHECK: scvtf d17, w18
1704 # CHECK: scvtf d19, x20
1705 # CHECK: ucvtf d21, w22
1706 # CHECK: ucvtf d23, x24
1712 # CHECK: fcvtas w25, d26
1713 # CHECK: fcvtas x27, d28
1714 # CHECK: fcvtau w29, d30
1715 # CHECK: fcvtau xzr, d0
1721 # CHECK: fmov w3, s9
1722 # CHECK: fmov s9, w3
1726 # CHECK: fmov x20, d31
1727 # CHECK: fmov d1, x15
1731 # CHECK: fmov x3, v12.d[1]
1732 # CHECK: fmov v1.d[1], x19
1736 #------------------------------------------------------------------------------
1737 # Floating-point immediate
1738 #------------------------------------------------------------------------------
1740 # CHECK: fmov s2, #0.12500000
1741 # CHECK: fmov s3, #1.00000000
1742 # CHECK: fmov d30, #16.00000000
1747 # CHECK: fmov s4, #1.06250000
1748 # CHECK: fmov d10, #1.93750000
1752 # CHECK: fmov s12, #-1.00000000
1755 # CHECK: fmov d16, #8.50000000
1758 #------------------------------------------------------------------------------
1759 # Load-register (literal)
1760 #------------------------------------------------------------------------------
1763 # CHECK: ldr x29, #4
1764 # CHECK: ldrsw xzr, #-4
1770 # CHECK: ldr d0, #1048572
1771 # CHECK: ldr q0, #-1048576
1776 # CHECK: prfm pldl1strm, #0
1777 # CHECK: prfm #22, #0
1781 #------------------------------------------------------------------------------
1782 # Load/store exclusive
1783 #------------------------------------------------------------------------------
1785 #CHECK: stxrb w18, w8, [sp]
1786 #CHECK: stxrh w24, w15, [x16]
1787 #CHECK: stxr w5, w6, [x17]
1788 #CHECK: stxr w1, x10, [x21]
1789 #CHECK: stxr w1, x10, [x21]
1796 #CHECK: ldxrb w30, [x0]
1797 #CHECK: ldxrh w17, [x4]
1798 #CHECK: ldxr w22, [sp]
1799 #CHECK: ldxr x11, [x29]
1800 #CHECK: ldxr x11, [x29]
1801 #CHECK: ldxr x11, [x29]
1809 #CHECK: stxp w12, w11, w10, [sp]
1810 #CHECK: stxp wzr, x27, x9, [x12]
1814 #CHECK: ldxp w0, wzr, [sp]
1815 #CHECK: ldxp x17, x0, [x18]
1816 #CHECK: ldxp x17, x0, [x18]
1821 #CHECK: stlxrb w12, w22, [x0]
1822 #CHECK: stlxrh w10, w1, [x1]
1823 #CHECK: stlxr w9, w2, [x2]
1824 #CHECK: stlxr w9, x3, [sp]
1831 #CHECK: ldaxrb w8, [x4]
1832 #CHECK: ldaxrh w7, [x5]
1833 #CHECK: ldaxr w6, [sp]
1834 #CHECK: ldaxr x5, [x6]
1835 #CHECK: ldaxr x5, [x6]
1836 #CHECK: ldaxr x5, [x6]
1844 #CHECK: stlxp w4, w5, w6, [sp]
1845 #CHECK: stlxp wzr, x6, x7, [x1]
1849 #CHECK: ldaxp w5, w18, [sp]
1850 #CHECK: ldaxp x6, x19, [x22]
1851 #CHECK: ldaxp x6, x19, [x22]
1856 #CHECK: stlrb w24, [sp]
1857 #CHECK: stlrh w25, [x30]
1858 #CHECK: stlr w26, [x29]
1859 #CHECK: stlr x27, [x28]
1860 #CHECK: stlr x27, [x28]
1861 #CHECK: stlr x27, [x28]
1869 #CHECK: ldarb w23, [sp]
1870 #CHECK: ldarh w22, [x30]
1871 #CHECK: ldar wzr, [x29]
1872 #CHECK: ldar x21, [x28]
1873 #CHECK: ldar x21, [x28]
1874 #CHECK: ldar x21, [x28]
1882 #------------------------------------------------------------------------------
1883 # Load/store (unscaled immediate)
1884 #------------------------------------------------------------------------------
1886 # CHECK: sturb w9, [sp]
1887 # CHECK: sturh wzr, [x12, #255]
1888 # CHECK: stur w16, [x0, #-256]
1889 # CHECK: stur x28, [x14, #1]
1895 # CHECK: ldurb w1, [x20, #255]
1896 # CHECK: ldurh w20, [x1, #255]
1897 # CHECK: ldur w12, [sp, #255]
1898 # CHECK: ldur xzr, [x12, #255]
1904 # CHECK: ldursb x9, [x7, #-256]
1905 # CHECK: ldursh x17, [x19, #-256]
1906 # CHECK: ldursw x20, [x15, #-256]
1907 # CHECK: prfum pldl2keep, [sp, #-256]
1908 # CHECK: ldursb w19, [x1, #-256]
1909 # CHECK: ldursh w15, [x21, #-256]
1917 # CHECK: stur b0, [sp, #1]
1918 # CHECK: stur h12, [x12, #-1]
1919 # CHECK: stur s15, [x0, #255]
1920 # CHECK: stur d31, [x5, #25]
1921 # CHECK: stur q9, [x5]
1928 # CHECK: ldur b3, [sp]
1929 # CHECK: ldur h5, [x4, #-256]
1930 # CHECK: ldur s7, [x12, #-1]
1931 # CHECK: ldur d11, [x19, #4]
1932 # CHECK: ldur q13, [x1, #2]
1939 #------------------------------------------------------------------------------
1940 # Load/store (immediate post-indexed)
1941 #------------------------------------------------------------------------------
1943 # E.g. "str xzr, [sp], #4" is *not* unpredictable
1944 # CHECK-NOT: warning: potentially undefined instruction encoding
1947 # CHECK: strb w9, [x2], #255
1948 # CHECK: strb w10, [x3], #1
1949 # CHECK: strb w10, [x3], #-256
1950 # CHECK: strh w9, [x2], #255
1951 # CHECK: strh w9, [x2], #1
1952 # CHECK: strh w10, [x3], #-256
1960 # CHECK: str w19, [sp], #255
1961 # CHECK: str w20, [x30], #1
1962 # CHECK: str w21, [x12], #-256
1963 # CHECK: str xzr, [x9], #255
1964 # CHECK: str x2, [x3], #1
1965 # CHECK: str x19, [x12], #-256
1973 # CHECK: ldrb w9, [x2], #255
1974 # CHECK: ldrb w10, [x3], #1
1975 # CHECK: ldrb w10, [x3], #-256
1976 # CHECK: ldrh w9, [x2], #255
1977 # CHECK: ldrh w9, [x2], #1
1978 # CHECK: ldrh w10, [x3], #-256
1986 # CHECK: ldr w19, [sp], #255
1987 # CHECK: ldr w20, [x30], #1
1988 # CHECK: ldr w21, [x12], #-256
1989 # CHECK: ldr xzr, [x9], #255
1990 # CHECK: ldr x2, [x3], #1
1991 # CHECK: ldr x19, [x12], #-256
1999 # CHECK: ldrsb xzr, [x9], #255
2000 # CHECK: ldrsb x2, [x3], #1
2001 # CHECK: ldrsb x19, [x12], #-256
2002 # CHECK: ldrsh xzr, [x9], #255
2003 # CHECK: ldrsh x2, [x3], #1
2004 # CHECK: ldrsh x19, [x12], #-256
2005 # CHECK: ldrsw xzr, [x9], #255
2006 # CHECK: ldrsw x2, [x3], #1
2007 # CHECK: ldrsw x19, [x12], #-256
2018 # CHECK: ldrsb wzr, [x9], #255
2019 # CHECK: ldrsb w2, [x3], #1
2020 # CHECK: ldrsb w19, [x12], #-256
2021 # CHECK: ldrsh wzr, [x9], #255
2022 # CHECK: ldrsh w2, [x3], #1
2023 # CHECK: ldrsh w19, [x12], #-256
2031 # CHECK: str b0, [x0], #255
2032 # CHECK: str b3, [x3], #1
2033 # CHECK: str b5, [sp], #-256
2034 # CHECK: str h10, [x10], #255
2035 # CHECK: str h13, [x23], #1
2036 # CHECK: str h15, [sp], #-256
2037 # CHECK: str s20, [x20], #255
2038 # CHECK: str s23, [x23], #1
2039 # CHECK: str s25, [x0], #-256
2040 # CHECK: str d20, [x20], #255
2041 # CHECK: str d23, [x23], #1
2042 # CHECK: str d25, [x0], #-256
2056 # CHECK: ldr b0, [x0], #255
2057 # CHECK: ldr b3, [x3], #1
2058 # CHECK: ldr b5, [sp], #-256
2059 # CHECK: ldr h10, [x10], #255
2060 # CHECK: ldr h13, [x23], #1
2061 # CHECK: ldr h15, [sp], #-256
2062 # CHECK: ldr s20, [x20], #255
2063 # CHECK: ldr s23, [x23], #1
2064 # CHECK: ldr s25, [x0], #-256
2065 # CHECK: ldr d20, [x20], #255
2066 # CHECK: ldr d23, [x23], #1
2067 # CHECK: ldr d25, [x0], #-256
2082 # CHECK: ldr q20, [x1], #255
2083 # CHECK: ldr q23, [x9], #1
2084 # CHECK: ldr q25, [x20], #-256
2085 # CHECK: str q10, [x1], #255
2086 # CHECK: str q22, [sp], #1
2087 # CHECK: str q21, [x20], #-256
2094 #-------------------------------------------------------------------------------
2095 # Load-store register (immediate pre-indexed)
2096 #-------------------------------------------------------------------------------
2098 # E.g. "str xzr, [sp, #4]!" is *not* unpredictable
2099 # CHECK-NOT: warning: potentially undefined instruction encoding
2102 # CHECK: ldr x3, [x4, #0]!
2105 # CHECK: strb w9, [x2, #255]!
2106 # CHECK: strb w10, [x3, #1]!
2107 # CHECK: strb w10, [x3, #-256]!
2108 # CHECK: strh w9, [x2, #255]!
2109 # CHECK: strh w9, [x2, #1]!
2110 # CHECK: strh w10, [x3, #-256]!
2118 # CHECK: str w19, [sp, #255]!
2119 # CHECK: str w20, [x30, #1]!
2120 # CHECK: str w21, [x12, #-256]!
2121 # CHECK: str xzr, [x9, #255]!
2122 # CHECK: str x2, [x3, #1]!
2123 # CHECK: str x19, [x12, #-256]!
2131 # CHECK: ldrb w9, [x2, #255]!
2132 # CHECK: ldrb w10, [x3, #1]!
2133 # CHECK: ldrb w10, [x3, #-256]!
2134 # CHECK: ldrh w9, [x2, #255]!
2135 # CHECK: ldrh w9, [x2, #1]!
2136 # CHECK: ldrh w10, [x3, #-256]!
2144 # CHECK: ldr w19, [sp, #255]!
2145 # CHECK: ldr w20, [x30, #1]!
2146 # CHECK: ldr w21, [x12, #-256]!
2147 # CHECK: ldr xzr, [x9, #255]!
2148 # CHECK: ldr x2, [x3, #1]!
2149 # CHECK: ldr x19, [x12, #-256]!
2157 # CHECK: ldrsb xzr, [x9, #255]!
2158 # CHECK: ldrsb x2, [x3, #1]!
2159 # CHECK: ldrsb x19, [x12, #-256]!
2160 # CHECK: ldrsh xzr, [x9, #255]!
2161 # CHECK: ldrsh x2, [x3, #1]!
2162 # CHECK: ldrsh x19, [x12, #-256]!
2163 # CHECK: ldrsw xzr, [x9, #255]!
2164 # CHECK: ldrsw x2, [x3, #1]!
2165 # CHECK: ldrsw x19, [x12, #-256]!
2176 # CHECK: ldrsb wzr, [x9, #255]!
2177 # CHECK: ldrsb w2, [x3, #1]!
2178 # CHECK: ldrsb w19, [x12, #-256]!
2179 # CHECK: ldrsh wzr, [x9, #255]!
2180 # CHECK: ldrsh w2, [x3, #1]!
2181 # CHECK: ldrsh w19, [x12, #-256]!
2189 # CHECK: str b0, [x0, #255]!
2190 # CHECK: str b3, [x3, #1]!
2191 # CHECK: str b5, [sp, #-256]!
2192 # CHECK: str h10, [x10, #255]!
2193 # CHECK: str h13, [x23, #1]!
2194 # CHECK: str h15, [sp, #-256]!
2195 # CHECK: str s20, [x20, #255]!
2196 # CHECK: str s23, [x23, #1]!
2197 # CHECK: str s25, [x0, #-256]!
2198 # CHECK: str d20, [x20, #255]!
2199 # CHECK: str d23, [x23, #1]!
2200 # CHECK: str d25, [x0, #-256]!
2214 # CHECK: ldr b0, [x0, #255]!
2215 # CHECK: ldr b3, [x3, #1]!
2216 # CHECK: ldr b5, [sp, #-256]!
2217 # CHECK: ldr h10, [x10, #255]!
2218 # CHECK: ldr h13, [x23, #1]!
2219 # CHECK: ldr h15, [sp, #-256]!
2220 # CHECK: ldr s20, [x20, #255]!
2221 # CHECK: ldr s23, [x23, #1]!
2222 # CHECK: ldr s25, [x0, #-256]!
2223 # CHECK: ldr d20, [x20, #255]!
2224 # CHECK: ldr d23, [x23, #1]!
2225 # CHECK: ldr d25, [x0, #-256]!
2239 # CHECK: ldr q20, [x1, #255]!
2240 # CHECK: ldr q23, [x9, #1]!
2241 # CHECK: ldr q25, [x20, #-256]!
2242 # CHECK: str q10, [x1, #255]!
2243 # CHECK: str q22, [sp, #1]!
2244 # CHECK: str q21, [x20, #-256]!
2252 #------------------------------------------------------------------------------
2253 # Load/store (unprivileged)
2254 #------------------------------------------------------------------------------
2256 # CHECK: sttrb w9, [sp]
2257 # CHECK: sttrh wzr, [x12, #255]
2258 # CHECK: sttr w16, [x0, #-256]
2259 # CHECK: sttr x28, [x14, #1]
2265 # CHECK: ldtrb w1, [x20, #255]
2266 # CHECK: ldtrh w20, [x1, #255]
2267 # CHECK: ldtr w12, [sp, #255]
2268 # CHECK: ldtr xzr, [x12, #255]
2274 # CHECK: ldtrsb x9, [x7, #-256]
2275 # CHECK: ldtrsh x17, [x19, #-256]
2276 # CHECK: ldtrsw x20, [x15, #-256]
2277 # CHECK: ldtrsb w19, [x1, #-256]
2278 # CHECK: ldtrsh w15, [x21, #-256]
2285 #------------------------------------------------------------------------------
2286 # Load/store (unsigned immediate)
2287 #------------------------------------------------------------------------------
2289 # CHECK: ldr x0, [x0]
2290 # CHECK: ldr x4, [x29]
2291 # CHECK: ldr x30, [x12, #32760]
2292 # CHECK: ldr x20, [sp, #8]
2298 # CHECK: ldr xzr, [sp]
2301 # CHECK: ldr w2, [sp]
2302 # CHECK: ldr w17, [sp, #16380]
2303 # CHECK: ldr w13, [x2, #4]
2308 # CHECK: ldrsw x2, [x5, #4]
2309 # CHECK: ldrsw x23, [sp, #16380]
2313 # CHECK: ldrh w2, [x4]
2314 # CHECK: ldrsh w23, [x6, #8190]
2315 # CHECK: ldrsh wzr, [sp, #2]
2316 # CHECK: ldrsh x29, [x2, #2]
2322 # CHECK: ldrb w26, [x3, #121]
2323 # CHECK: ldrb w12, [x2]
2324 # CHECK: ldrsb w27, [sp, #4095]
2325 # CHECK: ldrsb xzr, [x15]
2331 # CHECK: str x30, [sp]
2332 # CHECK: str w20, [x4, #16380]
2333 # CHECK: strh w20, [x10, #14]
2334 # CHECK: strh w17, [sp, #8190]
2335 # CHECK: strb w23, [x3, #4095]
2336 # CHECK: strb wzr, [x2]
2344 # CHECK: ldr b31, [sp, #4095]
2345 # CHECK: ldr h20, [x2, #8190]
2346 # CHECK: ldr s10, [x19, #16380]
2347 # CHECK: ldr d3, [x10, #32760]
2348 # CHECK: str q12, [sp, #65520]
2355 # CHECK: prfm pldl1keep, [sp, #8]
2356 # CHECK: prfm pldl1strm, [x3, #0]
2357 # CHECK: prfm pldl2keep, [x5, #16]
2358 # CHECK: prfm pldl2strm, [x2, #0]
2359 # CHECK: prfm pldl3keep, [x5, #0]
2360 # CHECK: prfm pldl3strm, [x6, #0]
2361 # CHECK: prfm plil1keep, [sp, #8]
2362 # CHECK: prfm plil1strm, [x3, #0]
2363 # CHECK: prfm plil2keep, [x5, #16]
2364 # CHECK: prfm plil2strm, [x2, #0]
2365 # CHECK: prfm plil3keep, [x5, #0]
2366 # CHECK: prfm plil3strm, [x6, #0]
2367 # CHECK: prfm pstl1keep, [sp, #8]
2368 # CHECK: prfm pstl1strm, [x3, #0]
2369 # CHECK: prfm pstl2keep, [x5, #16]
2370 # CHECK: prfm pstl2strm, [x2, #0]
2371 # CHECK: prfm pstl3keep, [x5, #0]
2372 # CHECK: prfm pstl3strm, [x6, #0]
2393 #------------------------------------------------------------------------------
2394 # Load/store (register offset)
2395 #------------------------------------------------------------------------------
2397 # CHECK: ldrb w3, [sp, x5]
2398 # CHECK: ldrb w9, [x27, x6]
2399 # CHECK: ldrsb w10, [x30, x7]
2400 # CHECK: ldrb w11, [x29, x3, sxtx]
2401 # CHECK: strb w12, [x28, xzr, sxtx]
2402 # CHECK: ldrb w14, [x26, w6, uxtw]
2403 # CHECK: ldrsb w15, [x25, w7, uxtw]
2404 # CHECK: ldrb w17, [x23, w9, sxtw]
2405 # CHECK: ldrsb x18, [x22, w10, sxtw]
2416 # CHECK: ldrsh w3, [sp, x5]
2417 # CHECK: ldrsh w9, [x27, x6]
2418 # CHECK: ldrh w10, [x30, x7, lsl #1]
2419 # CHECK: strh w11, [x29, x3, sxtx]
2420 # CHECK: ldrh w12, [x28, xzr, sxtx]
2421 # CHECK: ldrsh x13, [x27, x5, sxtx #1]
2422 # CHECK: ldrh w14, [x26, w6, uxtw]
2423 # CHECK: ldrh w15, [x25, w7, uxtw]
2424 # CHECK: ldrsh w16, [x24, w8, uxtw #1]
2425 # CHECK: ldrh w17, [x23, w9, sxtw]
2426 # CHECK: ldrh w18, [x22, w10, sxtw]
2427 # CHECK: strh w19, [x21, wzr, sxtw #1]
2441 # CHECK: ldr w3, [sp, x5]
2442 # CHECK: ldr s9, [x27, x6]
2443 # CHECK: ldr w10, [x30, x7, lsl #2]
2444 # CHECK: ldr w11, [x29, x3, sxtx]
2445 # CHECK: str s12, [x28, xzr, sxtx]
2446 # CHECK: str w13, [x27, x5, sxtx #2]
2447 # CHECK: str w14, [x26, w6, uxtw]
2448 # CHECK: ldr w15, [x25, w7, uxtw]
2449 # CHECK: ldr w16, [x24, w8, uxtw #2]
2450 # CHECK: ldrsw x17, [x23, w9, sxtw]
2451 # CHECK: ldr w18, [x22, w10, sxtw]
2452 # CHECK: ldrsw x19, [x21, wzr, sxtw #2]
2466 # CHECK: ldr x3, [sp, x5]
2467 # CHECK: str x9, [x27, x6]
2468 # CHECK: ldr d10, [x30, x7, lsl #3]
2469 # CHECK: str x11, [x29, x3, sxtx]
2470 # CHECK: ldr x12, [x28, xzr, sxtx]
2471 # CHECK: ldr x13, [x27, x5, sxtx #3]
2472 # CHECK: prfm pldl1keep, [x26, w6, uxtw]
2473 # CHECK: ldr x15, [x25, w7, uxtw]
2474 # CHECK: ldr x16, [x24, w8, uxtw #3]
2475 # CHECK: ldr x17, [x23, w9, sxtw]
2476 # CHECK: ldr x18, [x22, w10, sxtw]
2477 # CHECK: str d19, [x21, wzr, sxtw #3]
2491 # CHECK: ldr q3, [sp, x5]
2492 # CHECK: ldr q9, [x27, x6]
2493 # CHECK: ldr q10, [x30, x7, lsl #4]
2494 # CHECK: str q11, [x29, x3, sxtx]
2495 # CHECK: str q12, [x28, xzr, sxtx]
2496 # CHECK: str q13, [x27, x5, sxtx #4]
2497 # CHECK: ldr q14, [x26, w6, uxtw]
2498 # CHECK: ldr q15, [x25, w7, uxtw]
2499 # CHECK: ldr q16, [x24, w8, uxtw #4]
2500 # CHECK: ldr q17, [x23, w9, sxtw]
2501 # CHECK: str q18, [x22, w10, sxtw]
2502 # CHECK: ldr q19, [x21, wzr, sxtw #4]
2516 #------------------------------------------------------------------------------
2517 # Load/store register pair (offset)
2518 #------------------------------------------------------------------------------
2520 # CHECK: ldp w3, w5, [sp]
2521 # CHECK: stp wzr, w9, [sp, #252]
2522 # CHECK: ldp w2, wzr, [sp, #-256]
2523 # CHECK: ldp w9, w10, [sp, #4]
2529 # CHECK: ldpsw x9, x10, [sp, #4]
2530 # CHECK: ldpsw x9, x10, [x2, #-256]
2531 # CHECK: ldpsw x20, x30, [sp, #252]
2536 # CHECK: ldp x21, x29, [x2, #504]
2537 # CHECK: ldp x22, x23, [x3, #-512]
2538 # CHECK: ldp x24, x25, [x4, #8]
2543 # CHECK: ldp s29, s28, [sp, #252]
2544 # CHECK: stp s27, s26, [sp, #-256]
2545 # CHECK: ldp s1, s2, [x3, #44]
2550 # CHECK: stp d3, d5, [x9, #504]
2551 # CHECK: stp d7, d11, [x10, #-512]
2552 # CHECK: ldp d2, d3, [x30, #-8]
2557 # CHECK: stp q3, q5, [sp]
2558 # CHECK: stp q17, q19, [sp, #1008]
2559 # CHECK: ldp q23, q29, [x1, #-1024]
2564 #------------------------------------------------------------------------------
2565 # Load/store register pair (post-indexed)
2566 #------------------------------------------------------------------------------
2568 # CHECK: ldp w3, w5, [sp], #0
2569 # CHECK: stp wzr, w9, [sp], #252
2570 # CHECK: ldp w2, wzr, [sp], #-256
2571 # CHECK: ldp w9, w10, [sp], #4
2577 # CHECK: ldpsw x9, x10, [sp], #4
2578 # CHECK: ldpsw x9, x10, [x2], #-256
2579 # CHECK: ldpsw x20, x30, [sp], #252
2584 # CHECK: ldp x21, x29, [x2], #504
2585 # CHECK: ldp x22, x23, [x3], #-512
2586 # CHECK: ldp x24, x25, [x4], #8
2591 # CHECK: ldp s29, s28, [sp], #252
2592 # CHECK: stp s27, s26, [sp], #-256
2593 # CHECK: ldp s1, s2, [x3], #44
2598 # CHECK: stp d3, d5, [x9], #504
2599 # CHECK: stp d7, d11, [x10], #-512
2600 # CHECK: ldp d2, d3, [x30], #-8
2605 # CHECK: stp q3, q5, [sp], #0
2606 # CHECK: stp q17, q19, [sp], #1008
2607 # CHECK: ldp q23, q29, [x1], #-1024
2612 #------------------------------------------------------------------------------
2613 # Load/store register pair (pre-indexed)
2614 #------------------------------------------------------------------------------
2616 # CHECK: ldp w3, w5, [sp, #0]!
2617 # CHECK: stp wzr, w9, [sp, #252]!
2618 # CHECK: ldp w2, wzr, [sp, #-256]!
2619 # CHECK: ldp w9, w10, [sp, #4]!
2625 # CHECK: ldpsw x9, x10, [sp, #4]!
2626 # CHECK: ldpsw x9, x10, [x2, #-256]!
2627 # CHECK: ldpsw x20, x30, [sp, #252]!
2632 # CHECK: ldp x21, x29, [x2, #504]!
2633 # CHECK: ldp x22, x23, [x3, #-512]!
2634 # CHECK: ldp x24, x25, [x4, #8]!
2639 # CHECK: ldp s29, s28, [sp, #252]!
2640 # CHECK: stp s27, s26, [sp, #-256]!
2641 # CHECK: ldp s1, s2, [x3, #44]!
2646 # CHECK: stp d3, d5, [x9, #504]!
2647 # CHECK: stp d7, d11, [x10, #-512]!
2648 # CHECK: ldp d2, d3, [x30, #-8]!
2653 # CHECK: stp q3, q5, [sp, #0]!
2654 # CHECK: stp q17, q19, [sp, #1008]!
2655 # CHECK: ldp q23, q29, [x1, #-1024]!
2660 #------------------------------------------------------------------------------
2661 # Load/store register pair (offset)
2662 #------------------------------------------------------------------------------
2664 # CHECK: ldnp w3, w5, [sp]
2665 # CHECK: stnp wzr, w9, [sp, #252]
2666 # CHECK: ldnp w2, wzr, [sp, #-256]
2667 # CHECK: ldnp w9, w10, [sp, #4]
2673 # CHECK: ldnp x21, x29, [x2, #504]
2674 # CHECK: ldnp x22, x23, [x3, #-512]
2675 # CHECK: ldnp x24, x25, [x4, #8]
2680 # CHECK: ldnp s29, s28, [sp, #252]
2681 # CHECK: stnp s27, s26, [sp, #-256]
2682 # CHECK: ldnp s1, s2, [x3, #44]
2687 # CHECK: stnp d3, d5, [x9, #504]
2688 # CHECK: stnp d7, d11, [x10, #-512]
2689 # CHECK: ldnp d2, d3, [x30, #-8]
2694 # CHECK: stnp q3, q5, [sp]
2695 # CHECK: stnp q17, q19, [sp, #1008]
2696 # CHECK: ldnp q23, q29, [x1, #-1024]
2701 #------------------------------------------------------------------------------
2702 # Logical (immediate)
2703 #------------------------------------------------------------------------------
2704 # CHECK: orr w3, w9, #0xffff0000
2705 # CHECK: orr wsp, w10, #0xe00000ff
2706 # CHECK: orr w9, w10, #0x3ff
2711 # CHECK: and w14, w15, #0x80008000
2712 # CHECK: and w12, w13, #0xffc3ffc3
2713 # CHECK: and w11, wzr, #0x30003
2718 # CHECK: eor w3, w6, #0xe0e0e0e0
2719 # CHECK: eor wsp, wzr, #0x3030303
2720 # CHECK: eor w16, w17, #0x81818181
2725 # CHECK: ands wzr, w18, #0xcccccccc
2726 # CHECK: ands w19, w20, #0x33333333
2727 # CHECK: ands w21, w22, #0x99999999
2732 # CHECK: ands wzr, w3, #0xaaaaaaaa
2733 # CHECK: ands wzr, wzr, #0x55555555
2737 # CHECK: eor x3, x5, #0xffffffffc000000
2738 # CHECK: and x9, x10, #0x7fffffffffff
2739 # CHECK: orr x11, x12, #0x8000000000000fff
2744 # CHECK: orr x3, x9, #0xffff0000ffff0000
2745 # CHECK: orr sp, x10, #0xe00000ffe00000ff
2746 # CHECK: orr x9, x10, #0x3ff000003ff
2751 # CHECK: and x14, x15, #0x8000800080008000
2752 # CHECK: and x12, x13, #0xffc3ffc3ffc3ffc3
2753 # CHECK: and x11, xzr, #0x3000300030003
2758 # CHECK: eor x3, x6, #0xe0e0e0e0e0e0e0e0
2759 # CHECK: eor sp, xzr, #0x303030303030303
2760 # CHECK: eor x16, x17, #0x8181818181818181
2765 # CHECK: ands xzr, x18, #0xcccccccccccccccc
2766 # CHECK: ands x19, x20, #0x3333333333333333
2767 # CHECK: ands x21, x22, #0x9999999999999999
2772 # CHECK: ands xzr, x3, #0xaaaaaaaaaaaaaaaa
2773 # CHECK: ands xzr, xzr, #0x5555555555555555
2777 # CHECK: orr w3, wzr, #0xf000f
2778 # CHECK: orr x10, xzr, #0xaaaaaaaaaaaaaaaa
2782 # CHECK: orr w3, wzr, #0xffff
2783 # CHECK: orr x9, xzr, #0xffff00000000
2787 #------------------------------------------------------------------------------
2788 # Logical (shifted register)
2789 #------------------------------------------------------------------------------
2791 # CHECK: and w12, w23, w21
2792 # CHECK: and w16, w15, w1, lsl #1
2793 # CHECK: and w9, w4, w10, lsl #31
2794 # CHECK: and w3, w30, w11
2795 # CHECK: and x3, x5, x7, lsl #63
2802 # CHECK: and x5, x14, x19, asr #4
2803 # CHECK: and w3, w17, w19, ror #31
2804 # CHECK: and w0, w2, wzr, lsr #17
2805 # CHECK: and w3, w30, w11, asr
2811 # CHECK: and xzr, x4, x26
2812 # CHECK: and w3, wzr, w20, ror
2813 # CHECK: and x7, x20, xzr, asr #63
2818 # CHECK: bic x13, x20, x14, lsl #47
2819 # CHECK: bic w2, w7, w9
2820 # CHECK: orr w2, w7, w0, asr #31
2821 # CHECK: orr x8, x9, x10, lsl #12
2822 # CHECK: orn x3, x5, x7, asr
2823 # CHECK: orn w2, w5, w29
2831 # CHECK: ands w7, wzr, w9, lsl #1
2832 # CHECK: ands x3, x5, x20, ror #63
2833 # CHECK: bics w3, w5, w7
2834 # CHECK: bics x3, xzr, x3, lsl #1
2835 # CHECK: tst w3, w7, lsl #31
2836 # CHECK: tst x2, x20, asr
2845 # CHECK: mov x3, xzr
2846 # CHECK: mov wzr, w2
2853 #------------------------------------------------------------------------------
2854 # Move wide (immediate)
2855 #------------------------------------------------------------------------------
2857 # N.b. (FIXME) canonical aliases aren't produced here because of
2858 # limitation in InstAlias. Lots of the "mov[nz]" instructions should
2861 # CHECK: movz w1, #65535
2862 # CHECK: movz w2, #0, lsl #16
2863 # CHECK: movn w2, #1234
2868 # CHECK: movz x2, #1234, lsl #32
2869 # CHECK: movk xzr, #4321, lsl #48
2873 # CHECK: movz x2, #0
2874 # CHECK: movk w3, #0
2875 # CHECK: movz x4, #0, lsl #16
2876 # CHECK: movk w5, #0, lsl #16
2877 # CHECK: movz x6, #0, lsl #32
2878 # CHECK: movk x7, #0, lsl #32
2879 # CHECK: movz x8, #0, lsl #48
2880 # CHECK: movk x9, #0, lsl #48
2890 #------------------------------------------------------------------------------
2891 # PC-relative addressing
2892 #------------------------------------------------------------------------------
2894 # It's slightly dodgy using immediates here, but harmless enough when
2895 # it's all that's available.
2897 # CHECK: adr x2, #1600
2898 # CHECK: adrp x21, #6553600
2899 # CHECK: adr x0, #262144
2904 #------------------------------------------------------------------------------
2906 #------------------------------------------------------------------------------
3001 # CHECK: msr spsel, #0
3002 # CHECK: msr daifset, #15
3003 # CHECK: msr daifclr, #12
3008 # CHECK: sys #7, c5, c9, #7, x5
3009 # CHECK: sys #0, c15, c15, #2
3010 # CHECK: sysl x9, #7, c5, c9, #7
3011 # CHECK: sysl x1, #0, c15, c15, #2
3017 # CHECK: sys #0, c7, c1, #0, xzr
3018 # CHECK: sys #0, c7, c5, #0, xzr
3019 # CHECK: sys #3, c7, c5, #1, x9
3024 # CHECK: sys #3, c7, c4, #1, x12
3025 # CHECK: sys #0, c7, c6, #1, xzr
3026 # CHECK: sys #0, c7, c6, #2, x2
3027 # CHECK: sys #3, c7, c10, #1, x9
3028 # CHECK: sys #0, c7, c10, #2, x10
3029 # CHECK: sys #3, c7, c11, #1, x0
3030 # CHECK: sys #3, c7, c14, #1, x3
3031 # CHECK: sys #0, c7, c14, #2, x30
3042 # CHECK: msr teecr32_el1, x12
3043 # CHECK: msr osdtrrx_el1, x12
3044 # CHECK: msr mdccint_el1, x12
3045 # CHECK: msr mdscr_el1, x12
3046 # CHECK: msr osdtrtx_el1, x12
3047 # CHECK: msr dbgdtr_el0, x12
3048 # CHECK: msr dbgdtrtx_el0, x12
3049 # CHECK: msr oseccr_el1, x12
3050 # CHECK: msr dbgvcr32_el2, x12
3051 # CHECK: msr dbgbvr0_el1, x12
3052 # CHECK: msr dbgbvr1_el1, x12
3053 # CHECK: msr dbgbvr2_el1, x12
3054 # CHECK: msr dbgbvr3_el1, x12
3055 # CHECK: msr dbgbvr4_el1, x12
3056 # CHECK: msr dbgbvr5_el1, x12
3057 # CHECK: msr dbgbvr6_el1, x12
3058 # CHECK: msr dbgbvr7_el1, x12
3059 # CHECK: msr dbgbvr8_el1, x12
3060 # CHECK: msr dbgbvr9_el1, x12
3061 # CHECK: msr dbgbvr10_el1, x12
3062 # CHECK: msr dbgbvr11_el1, x12
3063 # CHECK: msr dbgbvr12_el1, x12
3064 # CHECK: msr dbgbvr13_el1, x12
3065 # CHECK: msr dbgbvr14_el1, x12
3066 # CHECK: msr dbgbvr15_el1, x12
3067 # CHECK: msr dbgbcr0_el1, x12
3068 # CHECK: msr dbgbcr1_el1, x12
3069 # CHECK: msr dbgbcr2_el1, x12
3070 # CHECK: msr dbgbcr3_el1, x12
3071 # CHECK: msr dbgbcr4_el1, x12
3072 # CHECK: msr dbgbcr5_el1, x12
3073 # CHECK: msr dbgbcr6_el1, x12
3074 # CHECK: msr dbgbcr7_el1, x12
3075 # CHECK: msr dbgbcr8_el1, x12
3076 # CHECK: msr dbgbcr9_el1, x12
3077 # CHECK: msr dbgbcr10_el1, x12
3078 # CHECK: msr dbgbcr11_el1, x12
3079 # CHECK: msr dbgbcr12_el1, x12
3080 # CHECK: msr dbgbcr13_el1, x12
3081 # CHECK: msr dbgbcr14_el1, x12
3082 # CHECK: msr dbgbcr15_el1, x12
3083 # CHECK: msr dbgwvr0_el1, x12
3084 # CHECK: msr dbgwvr1_el1, x12
3085 # CHECK: msr dbgwvr2_el1, x12
3086 # CHECK: msr dbgwvr3_el1, x12
3087 # CHECK: msr dbgwvr4_el1, x12
3088 # CHECK: msr dbgwvr5_el1, x12
3089 # CHECK: msr dbgwvr6_el1, x12
3090 # CHECK: msr dbgwvr7_el1, x12
3091 # CHECK: msr dbgwvr8_el1, x12
3092 # CHECK: msr dbgwvr9_el1, x12
3093 # CHECK: msr dbgwvr10_el1, x12
3094 # CHECK: msr dbgwvr11_el1, x12
3095 # CHECK: msr dbgwvr12_el1, x12
3096 # CHECK: msr dbgwvr13_el1, x12
3097 # CHECK: msr dbgwvr14_el1, x12
3098 # CHECK: msr dbgwvr15_el1, x12
3099 # CHECK: msr dbgwcr0_el1, x12
3100 # CHECK: msr dbgwcr1_el1, x12
3101 # CHECK: msr dbgwcr2_el1, x12
3102 # CHECK: msr dbgwcr3_el1, x12
3103 # CHECK: msr dbgwcr4_el1, x12
3104 # CHECK: msr dbgwcr5_el1, x12
3105 # CHECK: msr dbgwcr6_el1, x12
3106 # CHECK: msr dbgwcr7_el1, x12
3107 # CHECK: msr dbgwcr8_el1, x12
3108 # CHECK: msr dbgwcr9_el1, x12
3109 # CHECK: msr dbgwcr10_el1, x12
3110 # CHECK: msr dbgwcr11_el1, x12
3111 # CHECK: msr dbgwcr12_el1, x12
3112 # CHECK: msr dbgwcr13_el1, x12
3113 # CHECK: msr dbgwcr14_el1, x12
3114 # CHECK: msr dbgwcr15_el1, x12
3115 # CHECK: msr teehbr32_el1, x12
3116 # CHECK: msr oslar_el1, x12
3117 # CHECK: msr osdlr_el1, x12
3118 # CHECK: msr dbgprcr_el1, x12
3119 # CHECK: msr dbgclaimset_el1, x12
3120 # CHECK: msr dbgclaimclr_el1, x12
3121 # CHECK: msr csselr_el1, x12
3122 # CHECK: msr vpidr_el2, x12
3123 # CHECK: msr vmpidr_el2, x12
3124 # CHECK: msr sctlr_el1, x12
3125 # CHECK: msr sctlr_el2, x12
3126 # CHECK: msr sctlr_el3, x12
3127 # CHECK: msr actlr_el1, x12
3128 # CHECK: msr actlr_el2, x12
3129 # CHECK: msr actlr_el3, x12
3130 # CHECK: msr cpacr_el1, x12
3131 # CHECK: msr hcr_el2, x12
3132 # CHECK: msr scr_el3, x12
3133 # CHECK: msr mdcr_el2, x12
3134 # CHECK: msr sder32_el3, x12
3135 # CHECK: msr cptr_el2, x12
3136 # CHECK: msr cptr_el3, x12
3137 # CHECK: msr hstr_el2, x12
3138 # CHECK: msr hacr_el2, x12
3139 # CHECK: msr mdcr_el3, x12
3140 # CHECK: msr ttbr0_el1, x12
3141 # CHECK: msr ttbr0_el2, x12
3142 # CHECK: msr ttbr0_el3, x12
3143 # CHECK: msr ttbr1_el1, x12
3144 # CHECK: msr tcr_el1, x12
3145 # CHECK: msr tcr_el2, x12
3146 # CHECK: msr tcr_el3, x12
3147 # CHECK: msr vttbr_el2, x12
3148 # CHECK: msr vtcr_el2, x12
3149 # CHECK: msr dacr32_el2, x12
3150 # CHECK: msr spsr_el1, x12
3151 # CHECK: msr spsr_el2, x12
3152 # CHECK: msr spsr_el3, x12
3153 # CHECK: msr elr_el1, x12
3154 # CHECK: msr elr_el2, x12
3155 # CHECK: msr elr_el3, x12
3156 # CHECK: msr sp_el0, x12
3157 # CHECK: msr sp_el1, x12
3158 # CHECK: msr sp_el2, x12
3159 # CHECK: msr spsel, x12
3160 # CHECK: msr nzcv, x12
3161 # CHECK: msr daif, x12
3162 # CHECK: msr currentel, x12
3163 # CHECK: msr spsr_irq, x12
3164 # CHECK: msr spsr_abt, x12
3165 # CHECK: msr spsr_und, x12
3166 # CHECK: msr spsr_fiq, x12
3167 # CHECK: msr fpcr, x12
3168 # CHECK: msr fpsr, x12
3169 # CHECK: msr dspsr_el0, x12
3170 # CHECK: msr dlr_el0, x12
3171 # CHECK: msr ifsr32_el2, x12
3172 # CHECK: msr afsr0_el1, x12
3173 # CHECK: msr afsr0_el2, x12
3174 # CHECK: msr afsr0_el3, x12
3175 # CHECK: msr afsr1_el1, x12
3176 # CHECK: msr afsr1_el2, x12
3177 # CHECK: msr afsr1_el3, x12
3178 # CHECK: msr esr_el1, x12
3179 # CHECK: msr esr_el2, x12
3180 # CHECK: msr esr_el3, x12
3181 # CHECK: msr fpexc32_el2, x12
3182 # CHECK: msr far_el1, x12
3183 # CHECK: msr far_el2, x12
3184 # CHECK: msr far_el3, x12
3185 # CHECK: msr hpfar_el2, x12
3186 # CHECK: msr par_el1, x12
3187 # CHECK: msr pmcr_el0, x12
3188 # CHECK: msr pmcntenset_el0, x12
3189 # CHECK: msr pmcntenclr_el0, x12
3190 # CHECK: msr pmovsclr_el0, x12
3191 # CHECK: msr pmselr_el0, x12
3192 # CHECK: msr pmccntr_el0, x12
3193 # CHECK: msr pmxevtyper_el0, x12
3194 # CHECK: msr pmxevcntr_el0, x12
3195 # CHECK: msr pmuserenr_el0, x12
3196 # CHECK: msr pmintenset_el1, x12
3197 # CHECK: msr pmintenclr_el1, x12
3198 # CHECK: msr pmovsset_el0, x12
3199 # CHECK: msr mair_el1, x12
3200 # CHECK: msr mair_el2, x12
3201 # CHECK: msr mair_el3, x12
3202 # CHECK: msr amair_el1, x12
3203 # CHECK: msr amair_el2, x12
3204 # CHECK: msr amair_el3, x12
3205 # CHECK: msr vbar_el1, x12
3206 # CHECK: msr vbar_el2, x12
3207 # CHECK: msr vbar_el3, x12
3208 # CHECK: msr rmr_el1, x12
3209 # CHECK: msr rmr_el2, x12
3210 # CHECK: msr rmr_el3, x12
3211 # CHECK: msr tpidr_el0, x12
3212 # CHECK: msr tpidr_el2, x12
3213 # CHECK: msr tpidr_el3, x12
3214 # CHECK: msr tpidrro_el0, x12
3215 # CHECK: msr tpidr_el1, x12
3216 # CHECK: msr cntfrq_el0, x12
3217 # CHECK: msr cntvoff_el2, x12
3218 # CHECK: msr cntkctl_el1, x12
3219 # CHECK: msr cnthctl_el2, x12
3220 # CHECK: msr cntp_tval_el0, x12
3221 # CHECK: msr cnthp_tval_el2, x12
3222 # CHECK: msr cntps_tval_el1, x12
3223 # CHECK: msr cntp_ctl_el0, x12
3224 # CHECK: msr cnthp_ctl_el2, x12
3225 # CHECK: msr cntps_ctl_el1, x12
3226 # CHECK: msr cntp_cval_el0, x12
3227 # CHECK: msr cnthp_cval_el2, x12
3228 # CHECK: msr cntps_cval_el1, x12
3229 # CHECK: msr cntv_tval_el0, x12
3230 # CHECK: msr cntv_ctl_el0, x12
3231 # CHECK: msr cntv_cval_el0, x12
3232 # CHECK: msr pmevcntr0_el0, x12
3233 # CHECK: msr pmevcntr1_el0, x12
3234 # CHECK: msr pmevcntr2_el0, x12
3235 # CHECK: msr pmevcntr3_el0, x12
3236 # CHECK: msr pmevcntr4_el0, x12
3237 # CHECK: msr pmevcntr5_el0, x12
3238 # CHECK: msr pmevcntr6_el0, x12
3239 # CHECK: msr pmevcntr7_el0, x12
3240 # CHECK: msr pmevcntr8_el0, x12
3241 # CHECK: msr pmevcntr9_el0, x12
3242 # CHECK: msr pmevcntr10_el0, x12
3243 # CHECK: msr pmevcntr11_el0, x12
3244 # CHECK: msr pmevcntr12_el0, x12
3245 # CHECK: msr pmevcntr13_el0, x12
3246 # CHECK: msr pmevcntr14_el0, x12
3247 # CHECK: msr pmevcntr15_el0, x12
3248 # CHECK: msr pmevcntr16_el0, x12
3249 # CHECK: msr pmevcntr17_el0, x12
3250 # CHECK: msr pmevcntr18_el0, x12
3251 # CHECK: msr pmevcntr19_el0, x12
3252 # CHECK: msr pmevcntr20_el0, x12
3253 # CHECK: msr pmevcntr21_el0, x12
3254 # CHECK: msr pmevcntr22_el0, x12
3255 # CHECK: msr pmevcntr23_el0, x12
3256 # CHECK: msr pmevcntr24_el0, x12
3257 # CHECK: msr pmevcntr25_el0, x12
3258 # CHECK: msr pmevcntr26_el0, x12
3259 # CHECK: msr pmevcntr27_el0, x12
3260 # CHECK: msr pmevcntr28_el0, x12
3261 # CHECK: msr pmevcntr29_el0, x12
3262 # CHECK: msr pmevcntr30_el0, x12
3263 # CHECK: msr pmccfiltr_el0, x12
3264 # CHECK: msr pmevtyper0_el0, x12
3265 # CHECK: msr pmevtyper1_el0, x12
3266 # CHECK: msr pmevtyper2_el0, x12
3267 # CHECK: msr pmevtyper3_el0, x12
3268 # CHECK: msr pmevtyper4_el0, x12
3269 # CHECK: msr pmevtyper5_el0, x12
3270 # CHECK: msr pmevtyper6_el0, x12
3271 # CHECK: msr pmevtyper7_el0, x12
3272 # CHECK: msr pmevtyper8_el0, x12
3273 # CHECK: msr pmevtyper9_el0, x12
3274 # CHECK: msr pmevtyper10_el0, x12
3275 # CHECK: msr pmevtyper11_el0, x12
3276 # CHECK: msr pmevtyper12_el0, x12
3277 # CHECK: msr pmevtyper13_el0, x12
3278 # CHECK: msr pmevtyper14_el0, x12
3279 # CHECK: msr pmevtyper15_el0, x12
3280 # CHECK: msr pmevtyper16_el0, x12
3281 # CHECK: msr pmevtyper17_el0, x12
3282 # CHECK: msr pmevtyper18_el0, x12
3283 # CHECK: msr pmevtyper19_el0, x12
3284 # CHECK: msr pmevtyper20_el0, x12
3285 # CHECK: msr pmevtyper21_el0, x12
3286 # CHECK: msr pmevtyper22_el0, x12
3287 # CHECK: msr pmevtyper23_el0, x12
3288 # CHECK: msr pmevtyper24_el0, x12
3289 # CHECK: msr pmevtyper25_el0, x12
3290 # CHECK: msr pmevtyper26_el0, x12
3291 # CHECK: msr pmevtyper27_el0, x12
3292 # CHECK: msr pmevtyper28_el0, x12
3293 # CHECK: msr pmevtyper29_el0, x12
3294 # CHECK: msr pmevtyper30_el0, x12
3295 # CHECK: mrs x9, teecr32_el1
3296 # CHECK: mrs x9, osdtrrx_el1
3297 # CHECK: mrs x9, mdccsr_el0
3298 # CHECK: mrs x9, mdccint_el1
3299 # CHECK: mrs x9, mdscr_el1
3300 # CHECK: mrs x9, osdtrtx_el1
3301 # CHECK: mrs x9, dbgdtr_el0
3302 # CHECK: mrs x9, dbgdtrrx_el0
3303 # CHECK: mrs x9, oseccr_el1
3304 # CHECK: mrs x9, dbgvcr32_el2
3305 # CHECK: mrs x9, dbgbvr0_el1
3306 # CHECK: mrs x9, dbgbvr1_el1
3307 # CHECK: mrs x9, dbgbvr2_el1
3308 # CHECK: mrs x9, dbgbvr3_el1
3309 # CHECK: mrs x9, dbgbvr4_el1
3310 # CHECK: mrs x9, dbgbvr5_el1
3311 # CHECK: mrs x9, dbgbvr6_el1
3312 # CHECK: mrs x9, dbgbvr7_el1
3313 # CHECK: mrs x9, dbgbvr8_el1
3314 # CHECK: mrs x9, dbgbvr9_el1
3315 # CHECK: mrs x9, dbgbvr10_el1
3316 # CHECK: mrs x9, dbgbvr11_el1
3317 # CHECK: mrs x9, dbgbvr12_el1
3318 # CHECK: mrs x9, dbgbvr13_el1
3319 # CHECK: mrs x9, dbgbvr14_el1
3320 # CHECK: mrs x9, dbgbvr15_el1
3321 # CHECK: mrs x9, dbgbcr0_el1
3322 # CHECK: mrs x9, dbgbcr1_el1
3323 # CHECK: mrs x9, dbgbcr2_el1
3324 # CHECK: mrs x9, dbgbcr3_el1
3325 # CHECK: mrs x9, dbgbcr4_el1
3326 # CHECK: mrs x9, dbgbcr5_el1
3327 # CHECK: mrs x9, dbgbcr6_el1
3328 # CHECK: mrs x9, dbgbcr7_el1
3329 # CHECK: mrs x9, dbgbcr8_el1
3330 # CHECK: mrs x9, dbgbcr9_el1
3331 # CHECK: mrs x9, dbgbcr10_el1
3332 # CHECK: mrs x9, dbgbcr11_el1
3333 # CHECK: mrs x9, dbgbcr12_el1
3334 # CHECK: mrs x9, dbgbcr13_el1
3335 # CHECK: mrs x9, dbgbcr14_el1
3336 # CHECK: mrs x9, dbgbcr15_el1
3337 # CHECK: mrs x9, dbgwvr0_el1
3338 # CHECK: mrs x9, dbgwvr1_el1
3339 # CHECK: mrs x9, dbgwvr2_el1
3340 # CHECK: mrs x9, dbgwvr3_el1
3341 # CHECK: mrs x9, dbgwvr4_el1
3342 # CHECK: mrs x9, dbgwvr5_el1
3343 # CHECK: mrs x9, dbgwvr6_el1
3344 # CHECK: mrs x9, dbgwvr7_el1
3345 # CHECK: mrs x9, dbgwvr8_el1
3346 # CHECK: mrs x9, dbgwvr9_el1
3347 # CHECK: mrs x9, dbgwvr10_el1
3348 # CHECK: mrs x9, dbgwvr11_el1
3349 # CHECK: mrs x9, dbgwvr12_el1
3350 # CHECK: mrs x9, dbgwvr13_el1
3351 # CHECK: mrs x9, dbgwvr14_el1
3352 # CHECK: mrs x9, dbgwvr15_el1
3353 # CHECK: mrs x9, dbgwcr0_el1
3354 # CHECK: mrs x9, dbgwcr1_el1
3355 # CHECK: mrs x9, dbgwcr2_el1
3356 # CHECK: mrs x9, dbgwcr3_el1
3357 # CHECK: mrs x9, dbgwcr4_el1
3358 # CHECK: mrs x9, dbgwcr5_el1
3359 # CHECK: mrs x9, dbgwcr6_el1
3360 # CHECK: mrs x9, dbgwcr7_el1
3361 # CHECK: mrs x9, dbgwcr8_el1
3362 # CHECK: mrs x9, dbgwcr9_el1
3363 # CHECK: mrs x9, dbgwcr10_el1
3364 # CHECK: mrs x9, dbgwcr11_el1
3365 # CHECK: mrs x9, dbgwcr12_el1
3366 # CHECK: mrs x9, dbgwcr13_el1
3367 # CHECK: mrs x9, dbgwcr14_el1
3368 # CHECK: mrs x9, dbgwcr15_el1
3369 # CHECK: mrs x9, mdrar_el1
3370 # CHECK: mrs x9, teehbr32_el1
3371 # CHECK: mrs x9, oslsr_el1
3372 # CHECK: mrs x9, osdlr_el1
3373 # CHECK: mrs x9, dbgprcr_el1
3374 # CHECK: mrs x9, dbgclaimset_el1
3375 # CHECK: mrs x9, dbgclaimclr_el1
3376 # CHECK: mrs x9, dbgauthstatus_el1
3377 # CHECK: mrs x9, midr_el1
3378 # CHECK: mrs x9, ccsidr_el1
3379 # CHECK: mrs x9, csselr_el1
3380 # CHECK: mrs x9, vpidr_el2
3381 # CHECK: mrs x9, clidr_el1
3382 # CHECK: mrs x9, ctr_el0
3383 # CHECK: mrs x9, mpidr_el1
3384 # CHECK: mrs x9, vmpidr_el2
3385 # CHECK: mrs x9, revidr_el1
3386 # CHECK: mrs x9, aidr_el1
3387 # CHECK: mrs x9, dczid_el0
3388 # CHECK: mrs x9, id_pfr0_el1
3389 # CHECK: mrs x9, id_pfr1_el1
3390 # CHECK: mrs x9, id_dfr0_el1
3391 # CHECK: mrs x9, id_afr0_el1
3392 # CHECK: mrs x9, id_mmfr0_el1
3393 # CHECK: mrs x9, id_mmfr1_el1
3394 # CHECK: mrs x9, id_mmfr2_el1
3395 # CHECK: mrs x9, id_mmfr3_el1
3396 # CHECK: mrs x9, id_isar0_el1
3397 # CHECK: mrs x9, id_isar1_el1
3398 # CHECK: mrs x9, id_isar2_el1
3399 # CHECK: mrs x9, id_isar3_el1
3400 # CHECK: mrs x9, id_isar4_el1
3401 # CHECK: mrs x9, id_isar5_el1
3402 # CHECK: mrs x9, mvfr0_el1
3403 # CHECK: mrs x9, mvfr1_el1
3404 # CHECK: mrs x9, mvfr2_el1
3405 # CHECK: mrs x9, id_aa64pfr0_el1
3406 # CHECK: mrs x9, id_aa64pfr1_el1
3407 # CHECK: mrs x9, id_aa64dfr0_el1
3408 # CHECK: mrs x9, id_aa64dfr1_el1
3409 # CHECK: mrs x9, id_aa64afr0_el1
3410 # CHECK: mrs x9, id_aa64afr1_el1
3411 # CHECK: mrs x9, id_aa64isar0_el1
3412 # CHECK: mrs x9, id_aa64isar1_el1
3413 # CHECK: mrs x9, id_aa64mmfr0_el1
3414 # CHECK: mrs x9, id_aa64mmfr1_el1
3415 # CHECK: mrs x9, sctlr_el1
3416 # CHECK: mrs x9, sctlr_el2
3417 # CHECK: mrs x9, sctlr_el3
3418 # CHECK: mrs x9, actlr_el1
3419 # CHECK: mrs x9, actlr_el2
3420 # CHECK: mrs x9, actlr_el3
3421 # CHECK: mrs x9, cpacr_el1
3422 # CHECK: mrs x9, hcr_el2
3423 # CHECK: mrs x9, scr_el3
3424 # CHECK: mrs x9, mdcr_el2
3425 # CHECK: mrs x9, sder32_el3
3426 # CHECK: mrs x9, cptr_el2
3427 # CHECK: mrs x9, cptr_el3
3428 # CHECK: mrs x9, hstr_el2
3429 # CHECK: mrs x9, hacr_el2
3430 # CHECK: mrs x9, mdcr_el3
3431 # CHECK: mrs x9, ttbr0_el1
3432 # CHECK: mrs x9, ttbr0_el2
3433 # CHECK: mrs x9, ttbr0_el3
3434 # CHECK: mrs x9, ttbr1_el1
3435 # CHECK: mrs x9, tcr_el1
3436 # CHECK: mrs x9, tcr_el2
3437 # CHECK: mrs x9, tcr_el3
3438 # CHECK: mrs x9, vttbr_el2
3439 # CHECK: mrs x9, vtcr_el2
3440 # CHECK: mrs x9, dacr32_el2
3441 # CHECK: mrs x9, spsr_el1
3442 # CHECK: mrs x9, spsr_el2
3443 # CHECK: mrs x9, spsr_el3
3444 # CHECK: mrs x9, elr_el1
3445 # CHECK: mrs x9, elr_el2
3446 # CHECK: mrs x9, elr_el3
3447 # CHECK: mrs x9, sp_el0
3448 # CHECK: mrs x9, sp_el1
3449 # CHECK: mrs x9, sp_el2
3450 # CHECK: mrs x9, spsel
3451 # CHECK: mrs x9, nzcv
3452 # CHECK: mrs x9, daif
3453 # CHECK: mrs x9, currentel
3454 # CHECK: mrs x9, spsr_irq
3455 # CHECK: mrs x9, spsr_abt
3456 # CHECK: mrs x9, spsr_und
3457 # CHECK: mrs x9, spsr_fiq
3458 # CHECK: mrs x9, fpcr
3459 # CHECK: mrs x9, fpsr
3460 # CHECK: mrs x9, dspsr_el0
3461 # CHECK: mrs x9, dlr_el0
3462 # CHECK: mrs x9, ifsr32_el2
3463 # CHECK: mrs x9, afsr0_el1
3464 # CHECK: mrs x9, afsr0_el2
3465 # CHECK: mrs x9, afsr0_el3
3466 # CHECK: mrs x9, afsr1_el1
3467 # CHECK: mrs x9, afsr1_el2
3468 # CHECK: mrs x9, afsr1_el3
3469 # CHECK: mrs x9, esr_el1
3470 # CHECK: mrs x9, esr_el2
3471 # CHECK: mrs x9, esr_el3
3472 # CHECK: mrs x9, fpexc32_el2
3473 # CHECK: mrs x9, far_el1
3474 # CHECK: mrs x9, far_el2
3475 # CHECK: mrs x9, far_el3
3476 # CHECK: mrs x9, hpfar_el2
3477 # CHECK: mrs x9, par_el1
3478 # CHECK: mrs x9, pmcr_el0
3479 # CHECK: mrs x9, pmcntenset_el0
3480 # CHECK: mrs x9, pmcntenclr_el0
3481 # CHECK: mrs x9, pmovsclr_el0
3482 # CHECK: mrs x9, pmselr_el0
3483 # CHECK: mrs x9, pmceid0_el0
3484 # CHECK: mrs x9, pmceid1_el0
3485 # CHECK: mrs x9, pmccntr_el0
3486 # CHECK: mrs x9, pmxevtyper_el0
3487 # CHECK: mrs x9, pmxevcntr_el0
3488 # CHECK: mrs x9, pmuserenr_el0
3489 # CHECK: mrs x9, pmintenset_el1
3490 # CHECK: mrs x9, pmintenclr_el1
3491 # CHECK: mrs x9, pmovsset_el0
3492 # CHECK: mrs x9, mair_el1
3493 # CHECK: mrs x9, mair_el2
3494 # CHECK: mrs x9, mair_el3
3495 # CHECK: mrs x9, amair_el1
3496 # CHECK: mrs x9, amair_el2
3497 # CHECK: mrs x9, amair_el3
3498 # CHECK: mrs x9, vbar_el1
3499 # CHECK: mrs x9, vbar_el2
3500 # CHECK: mrs x9, vbar_el3
3501 # CHECK: mrs x9, rvbar_el1
3502 # CHECK: mrs x9, rvbar_el2
3503 # CHECK: mrs x9, rvbar_el3
3504 # CHECK: mrs x9, rmr_el1
3505 # CHECK: mrs x9, rmr_el2
3506 # CHECK: mrs x9, rmr_el3
3507 # CHECK: mrs x9, isr_el1
3508 # CHECK: mrs x9, contextidr_el1
3509 # CHECK: mrs x9, tpidr_el0
3510 # CHECK: mrs x9, tpidr_el2
3511 # CHECK: mrs x9, tpidr_el3
3512 # CHECK: mrs x9, tpidrro_el0
3513 # CHECK: mrs x9, tpidr_el1
3514 # CHECK: mrs x9, cntfrq_el0
3515 # CHECK: mrs x9, cntpct_el0
3516 # CHECK: mrs x9, cntvct_el0
3517 # CHECK: mrs x9, cntvoff_el2
3518 # CHECK: mrs x9, cntkctl_el1
3519 # CHECK: mrs x9, cnthctl_el2
3520 # CHECK: mrs x9, cntp_tval_el0
3521 # CHECK: mrs x9, cnthp_tval_el2
3522 # CHECK: mrs x9, cntps_tval_el1
3523 # CHECK: mrs x9, cntp_ctl_el0
3524 # CHECK: mrs x9, cnthp_ctl_el2
3525 # CHECK: mrs x9, cntps_ctl_el1
3526 # CHECK: mrs x9, cntp_cval_el0
3527 # CHECK: mrs x9, cnthp_cval_el2
3528 # CHECK: mrs x9, cntps_cval_el1
3529 # CHECK: mrs x9, cntv_tval_el0
3530 # CHECK: mrs x9, cntv_ctl_el0
3531 # CHECK: mrs x9, cntv_cval_el0
3532 # CHECK: mrs x9, pmevcntr0_el0
3533 # CHECK: mrs x9, pmevcntr1_el0
3534 # CHECK: mrs x9, pmevcntr2_el0
3535 # CHECK: mrs x9, pmevcntr3_el0
3536 # CHECK: mrs x9, pmevcntr4_el0
3537 # CHECK: mrs x9, pmevcntr5_el0
3538 # CHECK: mrs x9, pmevcntr6_el0
3539 # CHECK: mrs x9, pmevcntr7_el0
3540 # CHECK: mrs x9, pmevcntr8_el0
3541 # CHECK: mrs x9, pmevcntr9_el0
3542 # CHECK: mrs x9, pmevcntr10_el0
3543 # CHECK: mrs x9, pmevcntr11_el0
3544 # CHECK: mrs x9, pmevcntr12_el0
3545 # CHECK: mrs x9, pmevcntr13_el0
3546 # CHECK: mrs x9, pmevcntr14_el0
3547 # CHECK: mrs x9, pmevcntr15_el0
3548 # CHECK: mrs x9, pmevcntr16_el0
3549 # CHECK: mrs x9, pmevcntr17_el0
3550 # CHECK: mrs x9, pmevcntr18_el0
3551 # CHECK: mrs x9, pmevcntr19_el0
3552 # CHECK: mrs x9, pmevcntr20_el0
3553 # CHECK: mrs x9, pmevcntr21_el0
3554 # CHECK: mrs x9, pmevcntr22_el0
3555 # CHECK: mrs x9, pmevcntr23_el0
3556 # CHECK: mrs x9, pmevcntr24_el0
3557 # CHECK: mrs x9, pmevcntr25_el0
3558 # CHECK: mrs x9, pmevcntr26_el0
3559 # CHECK: mrs x9, pmevcntr27_el0
3560 # CHECK: mrs x9, pmevcntr28_el0
3561 # CHECK: mrs x9, pmevcntr29_el0
3562 # CHECK: mrs x9, pmevcntr30_el0
3563 # CHECK: mrs x9, pmccfiltr_el0
3564 # CHECK: mrs x9, pmevtyper0_el0
3565 # CHECK: mrs x9, pmevtyper1_el0
3566 # CHECK: mrs x9, pmevtyper2_el0
3567 # CHECK: mrs x9, pmevtyper3_el0
3568 # CHECK: mrs x9, pmevtyper4_el0
3569 # CHECK: mrs x9, pmevtyper5_el0
3570 # CHECK: mrs x9, pmevtyper6_el0
3571 # CHECK: mrs x9, pmevtyper7_el0
3572 # CHECK: mrs x9, pmevtyper8_el0
3573 # CHECK: mrs x9, pmevtyper9_el0
3574 # CHECK: mrs x9, pmevtyper10_el0
3575 # CHECK: mrs x9, pmevtyper11_el0
3576 # CHECK: mrs x9, pmevtyper12_el0
3577 # CHECK: mrs x9, pmevtyper13_el0
3578 # CHECK: mrs x9, pmevtyper14_el0
3579 # CHECK: mrs x9, pmevtyper15_el0
3580 # CHECK: mrs x9, pmevtyper16_el0
3581 # CHECK: mrs x9, pmevtyper17_el0
3582 # CHECK: mrs x9, pmevtyper18_el0
3583 # CHECK: mrs x9, pmevtyper19_el0
3584 # CHECK: mrs x9, pmevtyper20_el0
3585 # CHECK: mrs x9, pmevtyper21_el0
3586 # CHECK: mrs x9, pmevtyper22_el0
3587 # CHECK: mrs x9, pmevtyper23_el0
3588 # CHECK: mrs x9, pmevtyper24_el0
3589 # CHECK: mrs x9, pmevtyper25_el0
3590 # CHECK: mrs x9, pmevtyper26_el0
3591 # CHECK: mrs x9, pmevtyper27_el0
3592 # CHECK: mrs x9, pmevtyper28_el0
3593 # CHECK: mrs x9, pmevtyper29_el0
3594 # CHECK: mrs x9, pmevtyper30_el0
4150 # CHECK: mrs x12, s3_7_c15_c1_5
4151 # CHECK: mrs x13, s3_2_c11_c15_7
4152 # CHECK: msr s3_0_c15_c0_0, x12
4153 # CHECK: msr s3_7_c11_c13_7, x5
4159 #------------------------------------------------------------------------------
4160 # Test and branch (immediate)
4161 #------------------------------------------------------------------------------
4163 # CHECK: tbz x12, #62, #0
4164 # CHECK: tbz x12, #62, #4
4165 # CHECK: tbz x12, #62, #-32768
4166 # CHECK: tbnz x12, #60, #32764
4172 #------------------------------------------------------------------------------
4173 # Unconditional branch (immediate)
4174 #------------------------------------------------------------------------------
4178 # CHECK: b #134217724
4183 #------------------------------------------------------------------------------
4184 # Unconditional branch (register)
4185 #------------------------------------------------------------------------------