1 # RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s
3 #------------------------------------------------------------------------------
5 #------------------------------------------------------------------------------
6 # CHECK: adc r0, r1, #4
7 # CHECK: adcs r0, r1, #0
8 # CHECK: adc r1, r2, #255
9 # CHECK: adc r3, r7, #5570645
10 # CHECK: adc r8, r12, #2852170240
11 # CHECK: adc r9, r7, #2779096485
12 # CHECK: adc r5, r3, #2264924160
13 # CHECK: adc r4, r2, #2139095040
14 # CHECK: adc r4, r2, #1664
26 #------------------------------------------------------------------------------
28 #------------------------------------------------------------------------------
29 # CHECK: adc.w r4, r5, r6
30 # CHECK: adcs.w r4, r5, r6
31 # CHECK: adc.w r9, r1, r3
32 # CHECK: adcs.w r9, r1, r3
33 # CHECK: adc.w r0, r1, r3, ror #4
34 # CHECK: adcs.w r0, r1, r3, lsl #7
35 # CHECK: adc.w r0, r1, r3, lsr #31
36 # CHECK: adcs.w r0, r1, r3, asr #32
48 #------------------------------------------------------------------------------
50 #------------------------------------------------------------------------------
52 # CHECK: addeq r1, r2, #4
53 # CHECK: addwne r5, r3, #1023
54 # CHECK: addweq r4, r5, #293
55 # CHECK: add.w r2, sp, #1024
56 # CHECK: add.w r2, r8, #65280
57 # CHECK: addw r2, r3, #257
58 # CHECK: add.w r12, r6, #256
59 # CHECK: addw r12, r6, #256
60 # CHECK: adds.w r1, r2, #496
74 #------------------------------------------------------------------------------
76 #------------------------------------------------------------------------------
77 # CHECK: add.w r1, r2, r8
78 # CHECK: add.w r5, r9, r2, asr #32
79 # CHECK: adds.w r7, r3, r1, lsl #31
80 # CHECK: adds.w r0, r3, r6, lsr #25
81 # CHECK: add.w r4, r8, r1, ror #12
90 #------------------------------------------------------------------------------
92 #------------------------------------------------------------------------------
93 # CHECK: subw r11, pc, #3270
94 # CHECK: subw r11, pc, #826
95 # CHECK: subw r1, pc, #0
101 #------------------------------------------------------------------------------
103 #------------------------------------------------------------------------------
104 # CHECK: and r2, r5, #1044480
105 # CHECK: ands r3, r12, #15
106 # CHECK: and r1, r1, #255
113 #------------------------------------------------------------------------------
115 #------------------------------------------------------------------------------
116 # CHECK: and.w r4, r9, r8
117 # CHECK: and.w r1, r4, r8, asr #3
118 # CHECK: ands.w r2, r1, r7, lsl #1
119 # CHECK: ands.w r4, r5, r2, lsr #20
120 # CHECK: and.w r9, r12, r1, ror #17
128 #------------------------------------------------------------------------------
130 #------------------------------------------------------------------------------
131 # CHECK: asr.w r2, r3, #12
132 # CHECK: asrs.w r8, r3, #32
133 # CHECK: asrs.w r2, r3, #1
134 # CHECK: asr.w r2, r3, #4
135 # CHECK: asrs.w r2, r12, #15
137 # CHECK: asr.w r3, r3, #19
138 # CHECK: asrs.w r8, r8, #2
139 # CHECK: asrs.w r7, r7, #5
140 # CHECK: asr.w r12, r12, #21
154 #------------------------------------------------------------------------------
156 #------------------------------------------------------------------------------
157 # CHECK: asr.w r3, r4, r2
158 # CHECK: asr.w r1, r1, r2
159 # CHECK: asrs.w r3, r4, r8
165 #------------------------------------------------------------------------------
167 #------------------------------------------------------------------------------
168 # CHECK: bmi.w #-183396
173 # CHECK: b.w #-16777216
175 0x33 0xf0 0x21 0xb8 # rdar://12585795
178 #------------------------------------------------------------------------------
180 #------------------------------------------------------------------------------
181 # CHECK: bfc r5, #3, #17
183 # CHECK: bfclo r5, #3, #17
190 #------------------------------------------------------------------------------
192 #------------------------------------------------------------------------------
193 # CHECK: bfi r5, r2, #3, #17
195 # CHECK: bfine r5, r2, #3, #17
196 # CHECK: bfi r6, r0, #0, #32
197 # CHECK: bfi r6, r0, #31, #1
206 #------------------------------------------------------------------------------
208 #------------------------------------------------------------------------------
209 # CHECK: bic r10, r1, #15
210 # CHECK: bic.w r12, r3, r6
211 # CHECK: bic.w r11, r2, r6, lsl #12
212 # CHECK: bic.w r8, r4, r1, lsr #11
213 # CHECK: bic.w r7, r5, r7, lsr #15
214 # CHECK: bic.w r6, r7, r9, asr #32
215 # CHECK: bic.w r5, r6, r8, ror #1
217 # CHECK: bic r1, r1, #15
218 # CHECK: bic.w r1, r1, r1
219 # CHECK: bic.w r4, r4, r2, lsl #31
220 # CHECK: bic.w r6, r6, r3, lsr #12
221 # CHECK: bic.w r7, r7, r4, lsr #7
222 # CHECK: bic.w r8, r8, r5, asr #15
223 # CHECK: bic.w r12, r12, r6, ror #29
242 #------------------------------------------------------------------------------
244 #------------------------------------------------------------------------------
254 #------------------------------------------------------------------------------
256 #------------------------------------------------------------------------------
258 # CHECK: cbnz r7, #12
266 #------------------------------------------------------------------------------
268 #------------------------------------------------------------------------------
269 # CHECK: cdp p7, #1, c1, c1, c1, #4
270 # CHECK: cdp2 p7, #1, c1, c1, c1, #4
276 #------------------------------------------------------------------------------
278 #------------------------------------------------------------------------------
288 #------------------------------------------------------------------------------
290 #------------------------------------------------------------------------------
300 #------------------------------------------------------------------------------
302 #------------------------------------------------------------------------------
303 #CHECK: cmn.w r1, #15
305 #CHECK: cmn.w r1, r6, lsl #10
306 #CHECK: cmn.w r1, r6, lsr #10
307 #CHECK: cmn.w sp, r6, lsr #10
308 #CHECK: cmn.w r1, r6, asr #10
309 #CHECK: cmn.w r1, r6, ror #10
320 #------------------------------------------------------------------------------
322 #------------------------------------------------------------------------------
323 #CHECK: cmp.w r5, #65280
324 #CHECK: cmp.w r4, r12
325 #CHECK: cmp.w r9, r6, lsl #12
326 #CHECK: cmp.w r3, r7, lsr #31
327 #CHECK: cmp.w sp, r6, lsr #1
328 #CHECK: cmp.w r2, r5, asr #24
329 #CHECK: cmp.w r1, r4, ror #15
340 #------------------------------------------------------------------------------
342 #------------------------------------------------------------------------------
352 #------------------------------------------------------------------------------
354 #------------------------------------------------------------------------------
390 #------------------------------------------------------------------------------
392 #------------------------------------------------------------------------------
428 #------------------------------------------------------------------------------
430 #------------------------------------------------------------------------------
431 #CHECK: eor r4, r5, #61440
432 #CHECK: eor.w r4, r5, r6
433 #CHECK: eor.w r4, r5, r6, lsl #5
434 #CHECK: eor.w r4, r5, r6, lsr #5
435 #CHECK: eor.w r4, r5, r6, lsr #5
436 #CHECK: eor.w r4, r5, r6, asr #5
437 #CHECK: eor.w r4, r5, r6, ror #5
448 #------------------------------------------------------------------------------
450 #------------------------------------------------------------------------------
457 #------------------------------------------------------------------------------
459 #------------------------------------------------------------------------------
460 # Test encodings of a few full IT blocks, not just the IT instruction
463 # CHECK: addeq r0, r1, r2
465 # CHECK: subne r5, r6, r7
466 # CHECK: addeq r1, r2, #4
475 # CHECK: addls r0, r1, r2
477 # CHECK: subhi r5, r6, r7
478 # CHECK: addhi r1, r2, #4
487 #------------------------------------------------------------------------------
489 #------------------------------------------------------------------------------
490 # CHECK: ldm.w r4, {r4, r5, r8, r9}
491 # CHECK: ldm.w r4, {r5, r6}
492 # CHECK: ldm.w r5!, {r3, r8}
493 # CHECK: ldm.w r4, {r4, r5, r8, r9}
494 # CHECK: ldm.w r4, {r5, r6}
495 # CHECK: ldm.w r5!, {r3, r8}
496 # CHECK: ldm.w r5!, {r1, r2}
497 # CHECK: ldm.w r2, {r1, r2}
499 # CHECK: ldm.w r4, {r4, r5, r8, r9}
500 # CHECK: ldm.w r4, {r5, r6}
501 # CHECK: ldm.w r5!, {r3, r8}
502 # CHECK: ldm.w r4, {r4, r5, r8, r9}
503 # CHECK: ldm.w r4, {r5, r6}
504 # CHECK: ldm.w r5!, {r3, r8}
505 # CHECK: ldm.w r5!, {r3, r8}
525 #------------------------------------------------------------------------------
527 #------------------------------------------------------------------------------
528 # CHECK: ldmdb r4, {r4, r5, r8, r9}
529 # CHECK: ldmdb r4, {r5, r6}
530 # CHECK: ldmdb r5!, {r3, r8}
531 # CHECK: ldmdb r5!, {r3, r8}
539 #------------------------------------------------------------------------------
541 #------------------------------------------------------------------------------
542 # CHECK: ldr r5, [r5, #-4]
543 # CHECK: ldr r5, [r6, #32]
544 # CHECK: ldr.w r5, [r6, #33]
545 # CHECK: ldr.w r5, [r6, #257]
546 # CHECK: ldr.w pc, [r7, #257]
555 #------------------------------------------------------------------------------
557 #------------------------------------------------------------------------------
558 # CHECK: ldr.w r4, [pc, #-0]
559 # CHECK: ldr.w r2, [pc, #-40]
560 # CHECK: ldr.w r1, [pc, #1024]
566 #------------------------------------------------------------------------------
568 #------------------------------------------------------------------------------
569 # CHECK: ldr.w r1, [r8, r1]
570 # CHECK: ldr.w r4, [r5, r2]
571 # CHECK: ldr.w r6, [r0, r2, lsl #3]
572 # CHECK: ldr.w r8, [r8, r2, lsl #2]
573 # CHECK: ldr.w r7, [sp, r2, lsl #1]
574 # CHECK: ldr.w r7, [sp, r2]
575 # CHECK: ldr pc, [sp], #12
576 # CHECK: ldr r2, [r4, #255]!
577 # CHECK: ldr r8, [sp, #4]!
578 # CHECK: ldr lr, [sp, #-4]!
579 # CHECK: ldr lr, [sp, #0]!
580 # CHECK: ldr r2, [r4], #255
581 # CHECK: ldr r8, [sp], #4
582 # CHECK: ldr lr, [sp], #-4
600 #------------------------------------------------------------------------------
602 #------------------------------------------------------------------------------
603 # CHECK: ldrb r5, [r5, #-4]
604 # CHECK: ldrb.w r5, [r6, #32]
605 # CHECK: ldrb.w r5, [r6, #33]
606 # CHECK: ldrb.w r5, [r6, #257]
607 # CHECK: ldrb.w lr, [r7, #257]
616 #------------------------------------------------------------------------------
618 #------------------------------------------------------------------------------
619 # CHECK: ldrb.w r1, [r8, r1]
620 # CHECK: ldrb.w r4, [r5, r2]
621 # CHECK: ldrb.w r6, [r0, r2, lsl #3]
622 # CHECK: ldrb.w r8, [r8, r2, lsl #2]
623 # CHECK: ldrb.w r7, [sp, r2, lsl #1]
624 # CHECK: ldrb.w r7, [sp, r2]
625 # CHECK: ldrb r5, [r8, #255]!
626 # CHECK: ldrb r2, [r5, #4]!
627 # CHECK: ldrb r1, [r4, #-4]!
628 # CHECK: ldrb r1, [r4, #0]!
629 # CHECK: ldrb lr, [r3], #255
630 # CHECK: ldrb r9, [r2], #4
631 # CHECK: ldrb r3, [sp], #-4
648 #------------------------------------------------------------------------------
650 #------------------------------------------------------------------------------
651 # CHECK: ldrb.w r6, [pc, #-0]
652 # CHECK: ldrb.w r10, [pc, #227]
653 # CHECK: ldrb.w r5, [pc, #0]
659 #------------------------------------------------------------------------------
661 #------------------------------------------------------------------------------
662 # CHECK: ldrbt r1, [r2]
663 # CHECK: ldrbt r1, [r8]
664 # CHECK: ldrbt r1, [r8, #3]
665 # CHECK: ldrbt r1, [r8, #255]
673 #------------------------------------------------------------------------------
675 #------------------------------------------------------------------------------
676 # CHECK: ldrd r3, r5, [r6, #24]
677 # CHECK: ldrd r3, r5, [r6, #24]!
678 # CHECK: ldrd r3, r5, [r6], #4
679 # CHECK: ldrd r3, r5, [r6], #-8
680 # CHECK: ldrd r3, r5, [r6]
681 # CHECK: ldrd r8, r1, [r3]
682 # CHECK: ldrd r0, r1, [r2], #-0
683 # CHECK: ldrd r0, r1, [r2, #-0]!
684 # CHECK: ldrd r0, r1, [r2, #0]!
685 # CHECK: ldrd r0, r1, [r2, #-0]
686 # CHECK: ldrd r1, r1, [r0], #0
701 #------------------------------------------------------------------------------
702 # FIXME: LDRD(literal)
703 #------------------------------------------------------------------------------
706 #------------------------------------------------------------------------------
707 # LDREX/LDREXB/LDREXH/LDREXD
708 #------------------------------------------------------------------------------
709 # CHECK: ldrex r1, [r4]
710 # CHECK: ldrex r8, [r4]
711 # CHECK: ldrex r2, [sp, #128]
712 # CHECK: ldrexb r5, [r7]
713 # CHECK: ldrexh r9, [r12]
714 # CHECK: ldrexd r9, r3, [r4]
724 #------------------------------------------------------------------------------
726 #------------------------------------------------------------------------------
727 # CHECK: ldrh r5, [r5, #-4]
728 # CHECK: ldrh r5, [r6, #32]
729 # CHECK: ldrh.w r5, [r6, #33]
730 # CHECK: ldrh.w r5, [r6, #257]
731 # CHECK: ldrh.w lr, [r7, #257]
740 #------------------------------------------------------------------------------
742 #------------------------------------------------------------------------------
743 # CHECK: ldrh.w r1, [r8, r1]
744 # CHECK: ldrh.w r4, [r5, r2]
745 # CHECK: ldrh.w r6, [r0, r2, lsl #3]
746 # CHECK: ldrh.w r8, [r8, r2, lsl #2]
747 # CHECK: ldrh.w r7, [sp, r2, lsl #1]
748 # CHECK: ldrh.w r7, [sp, r2]
749 # CHECK: ldrh r5, [r8, #255]!
750 # CHECK: ldrh r2, [r5, #4]!
751 # CHECK: ldrh r1, [r4, #-4]!
752 # CHECK: ldrh r1, [r4, #0]!
753 # CHECK: ldrh lr, [r3], #255
754 # CHECK: ldrh r9, [r2], #4
755 # CHECK: ldrh r3, [sp], #-4
772 #------------------------------------------------------------------------------
774 #------------------------------------------------------------------------------
775 # CHECK: ldrh.w r7, [pc, #-0]
776 # CHECK: ldrh.w r5, [pc, #121]
777 # CHECK: ldrh.w r4, [pc, #0]
783 #------------------------------------------------------------------------------
785 #------------------------------------------------------------------------------
786 # CHECK: ldrsb r5, [r5, #-4]
787 # CHECK: ldrsb.w r5, [r6, #32]
788 # CHECK: ldrsb.w r5, [r6, #33]
789 # CHECK: ldrsb.w r5, [r6, #257]
790 # CHECK: ldrsb.w lr, [r7, #257]
799 #------------------------------------------------------------------------------
801 #------------------------------------------------------------------------------
802 # CHECK: ldrsb.w r1, [r8, r1]
803 # CHECK: ldrsb.w r4, [r5, r2]
804 # CHECK: ldrsb.w r6, [r0, r2, lsl #3]
805 # CHECK: ldrsb.w r8, [r8, r2, lsl #2]
806 # CHECK: ldrsb.w r7, [sp, r2, lsl #1]
807 # CHECK: ldrsb.w r7, [sp, r2]
808 # CHECK: ldrsb r5, [r8, #255]!
809 # CHECK: ldrsb r2, [r5, #4]!
810 # CHECK: ldrsb r1, [r4, #-4]!
811 # CHECK: ldrsb r1, [r4, #0]!
812 # CHECK: ldrsb lr, [r3], #255
813 # CHECK: ldrsb r9, [r2], #4
814 # CHECK: ldrsb r3, [sp], #-4
831 #------------------------------------------------------------------------------
833 #------------------------------------------------------------------------------
834 # CHECK: ldrsb.w r0, [pc, #-0]
835 # CHECK: ldrsb.w r12, [pc, #80]
836 # CHECK: ldrsb.w r3, [pc, #0]
842 #------------------------------------------------------------------------------
844 #------------------------------------------------------------------------------
845 # CHECK: ldrsbt r1, [r2]
846 # CHECK: ldrsbt r1, [r8]
847 # CHECK: ldrsbt r1, [r8, #3]
848 # CHECK: ldrsbt r1, [r8, #255]
856 #------------------------------------------------------------------------------
858 #------------------------------------------------------------------------------
859 # CHECK: ldrsh r5, [r5, #-4]
860 # CHECK: ldrsh.w r5, [r6, #32]
861 # CHECK: ldrsh.w r5, [r6, #33]
862 # CHECK: ldrsh.w r5, [r6, #257]
863 # CHECK: ldrsh.w lr, [r7, #257]
864 # CHECK: ldrsh r10, [r5, #-0]
873 #------------------------------------------------------------------------------
875 #------------------------------------------------------------------------------
876 # CHECK: ldrsh.w r1, [r8, r1]
877 # CHECK: ldrsh.w r4, [r5, r2]
878 # CHECK: ldrsh.w r6, [r0, r2, lsl #3]
879 # CHECK: ldrsh.w r8, [r8, r2, lsl #2]
880 # CHECK: ldrsh.w r7, [sp, r2, lsl #1]
881 # CHECK: ldrsh.w r7, [sp, r2]
882 # CHECK: ldrsh r5, [r8, #255]!
883 # CHECK: ldrsh r2, [r5, #4]!
884 # CHECK: ldrsh r1, [r4, #-4]!
885 # CHECK: ldrsh r1, [r4, #0]!
886 # CHECK: ldrsh lr, [r3], #255
887 # CHECK: ldrsh r9, [r2], #4
888 # CHECK: ldrsh r3, [sp], #-4
905 #------------------------------------------------------------------------------
907 #------------------------------------------------------------------------------
908 # CHECK: ldrsh.w r0, [pc, #-0]
909 # CHECK: ldrsh.w r10, [pc, #-231]
910 # CHECK: ldrsh.w r6, [pc, #0]
916 #------------------------------------------------------------------------------
918 #------------------------------------------------------------------------------
919 # CHECK: ldrsht r1, [r2]
920 # CHECK: ldrsht r1, [r8]
921 # CHECK: ldrsht r1, [r8, #3]
922 # CHECK: ldrsht r1, [r8, #255]
930 #------------------------------------------------------------------------------
932 #------------------------------------------------------------------------------
933 # CHECK: ldrt r1, [r2]
934 # CHECK: ldrt r2, [r6]
935 # CHECK: ldrt r3, [r7, #3]
936 # CHECK: ldrt r4, [r9, #255]
944 #------------------------------------------------------------------------------
946 #------------------------------------------------------------------------------
947 # CHECK: lsl.w r2, r3, #12
948 # CHECK: lsls.w r8, r3, #31
949 # CHECK: lsls.w r2, r3, #1
950 # CHECK: lsl.w r2, r3, #4
951 # CHECK: lsls.w r2, r12, #15
953 # CHECK: lsl.w r3, r3, #19
954 # CHECK: lsls.w r8, r8, #2
955 # CHECK: lsls.w r7, r7, #5
956 # CHECK: lsl.w r12, r12, #21
970 #------------------------------------------------------------------------------
972 #------------------------------------------------------------------------------
973 # CHECK: lsl.w r3, r4, r2
974 # CHECK: lsl.w r1, r1, r2
975 # CHECK: lsls.w r3, r4, r8
982 #------------------------------------------------------------------------------
984 #------------------------------------------------------------------------------
985 # CHECK: lsr.w r2, r3, #12
986 # CHECK: lsrs.w r8, r3, #32
987 # CHECK: lsrs.w r2, r3, #1
988 # CHECK: lsr.w r2, r3, #4
989 # CHECK: lsrs.w r2, r12, #15
991 # CHECK: lsr.w r3, r3, #19
992 # CHECK: lsrs.w r8, r8, #2
993 # CHECK: lsrs.w r7, r7, #5
994 # CHECK: lsr.w r12, r12, #21
1008 #------------------------------------------------------------------------------
1010 #------------------------------------------------------------------------------
1011 # CHECK: lsr.w r3, r4, r2
1012 # CHECK: lsr.w r1, r1, r2
1013 # CHECK: lsrs.w r3, r4, r8
1019 #------------------------------------------------------------------------------
1021 #------------------------------------------------------------------------------
1022 # CHECK: mcr p7, #1, r5, c1, c1, #4
1023 # CHECK: mcr2 p7, #1, r5, c1, c1, #4
1029 #------------------------------------------------------------------------------
1031 #------------------------------------------------------------------------------
1032 # CHECK: mcrr p7, #15, r5, r4, c1
1033 # CHECK: mcrr2 p7, #15, r5, r4, c1
1039 #------------------------------------------------------------------------------
1041 #------------------------------------------------------------------------------
1042 # CHECK: mla r1, r2, r3, r4
1043 # CHECK: mls r1, r2, r3, r4
1049 #------------------------------------------------------------------------------
1051 #------------------------------------------------------------------------------
1052 # CHECK: movs r1, #21
1053 # CHECK: movs.w r1, #21
1054 # CHECK: movs.w r8, #21
1055 # CHECK: movw r0, #65535
1056 # CHECK: movw r1, #43777
1057 # CHECK: movw r1, #43792
1058 # CHECK: mov.w r0, #66846720
1059 # CHECK: mov.w r0, #66846720
1060 # CHECK: movs.w r0, #66846720
1072 #------------------------------------------------------------------------------
1074 #------------------------------------------------------------------------------
1075 # CHECK: movt r3, #7
1076 # CHECK: movt r6, #65535
1078 # CHECK: movteq r4, #4080
1085 #------------------------------------------------------------------------------
1087 #------------------------------------------------------------------------------
1088 # CHECK: mrc p14, #0, r1, c1, c2, #4
1089 # CHECK: mrc2 p14, #0, r1, c1, c2, #4
1095 #------------------------------------------------------------------------------
1097 #------------------------------------------------------------------------------
1098 # CHECK: mrrc p7, #1, r5, r4, c1
1099 # CHECK: mrrc2 p7, #1, r5, r4, c1
1105 #------------------------------------------------------------------------------
1107 #------------------------------------------------------------------------------
1108 # CHECK: mrs r8, apsr
1109 # CHECK: mrs r8, spsr
1115 #------------------------------------------------------------------------------
1117 #------------------------------------------------------------------------------
1118 # CHECK: msr APSR_nzcvq, r1
1119 # CHECK: msr APSR_g, r2
1120 # CHECK: msr APSR_nzcvq, r3
1121 # CHECK: msr APSR_nzcvq, r4
1122 # CHECK: msr APSR_nzcvqg, r5
1123 # CHECK: msr CPSR_fc, r6
1124 # CHECK: msr CPSR_c, r7
1125 # CHECK: msr CPSR_x, r8
1126 # CHECK: msr CPSR_fc, r9
1127 # CHECK: msr CPSR_fc, r11
1128 # CHECK: msr CPSR_fsx, r12
1129 # CHECK: msr SPSR_fc, r0
1130 # CHECK: msr SPSR_fsxc, r5
1131 # CHECK: msr CPSR_fsxc, r8
1149 #------------------------------------------------------------------------------
1151 #------------------------------------------------------------------------------
1152 # CHECK: muls r3, r4, r3
1153 # CHECK: mul r3, r4, r3
1154 # CHECK: mul r3, r4, r6
1156 # CHECK: muleq r3, r4, r5
1165 #------------------------------------------------------------------------------
1167 #------------------------------------------------------------------------------
1168 # CHECK: mvns r8, #21
1169 # CHECK: mvn r0, #66846720
1170 # CHECK: mvns r0, #66846720
1172 # CHECK: mvnseq r1, #12
1173 # CHECK: mvneq r1, #12
1174 # CHECK: mvnne r1, #12
1185 #------------------------------------------------------------------------------
1187 #------------------------------------------------------------------------------
1188 # CHECK: mvn.w r2, r3
1189 # CHECK: mvns r2, r3
1190 # CHECK: mvn.w r5, r6, lsl #19
1191 # CHECK: mvn.w r5, r6, lsr #9
1192 # CHECK: mvn.w r5, r6, asr #4
1193 # CHECK: mvn.w r5, r6, ror #6
1194 # CHECK: mvn.w r5, r6, rrx
1196 # CHECK: mvneq r2, r3
1208 #------------------------------------------------------------------------------
1210 #------------------------------------------------------------------------------
1216 #------------------------------------------------------------------------------
1218 #------------------------------------------------------------------------------
1219 # CHECK: orn r4, r5, #61440
1220 # CHECK: orn r4, r5, r6
1221 # CHECK: orns r4, r5, r6
1222 # CHECK: orn r4, r5, r6, lsl #5
1223 # CHECK: orns r4, r5, r6, lsr #5
1224 # CHECK: orn r4, r5, r6, lsr #5
1225 # CHECK: orns r4, r5, r6, asr #5
1226 # CHECK: orn r4, r5, r6, ror #5
1238 #------------------------------------------------------------------------------
1240 #------------------------------------------------------------------------------
1241 # CHECK: orr r4, r5, #61440
1242 # CHECK: orr.w r4, r5, r6
1243 # CHECK: orr.w r4, r5, r6, lsl #5
1244 # CHECK: orrs.w r4, r5, r6, lsr #5
1245 # CHECK: orr.w r4, r5, r6, lsr #5
1246 # CHECK: orrs.w r4, r5, r6, asr #5
1247 # CHECK: orr.w r4, r5, r6, ror #5
1258 #------------------------------------------------------------------------------
1260 #------------------------------------------------------------------------------
1261 # CHECK: pkhbt r2, r2, r3
1262 # CHECK: pkhbt r2, r2, r3, lsl #31
1263 # CHECK: pkhbt r2, r2, r3, lsl #15
1265 # CHECK: pkhtb r2, r2, r3, asr #31
1266 # CHECK: pkhtb r2, r2, r3, asr #15
1276 #------------------------------------------------------------------------------
1278 #------------------------------------------------------------------------------
1279 # CHECK: pld [r5, #-4]
1280 # CHECK: pld [r6, #32]
1281 # CHECK: pld [r6, #33]
1282 # CHECK: pld [r6, #257]
1283 # CHECK: pld [r7, #257]
1291 #------------------------------------------------------------------------------
1293 #------------------------------------------------------------------------------
1294 # CHECK: pld [r8, r1]
1295 # CHECK: pld [r5, r2]
1296 # CHECK: pld [r0, r2, lsl #3]
1297 # CHECK: pld [r8, r2, lsl #2]
1298 # CHECK: pld [sp, r2, lsl #1]
1299 # CHECK: pld [sp, r2]
1308 #------------------------------------------------------------------------------
1310 #------------------------------------------------------------------------------
1311 # CHECK: pld [pc, #-0]
1312 # CHECK: pld [pc, #455]
1313 # CHECK: pld [pc, #0]
1319 #------------------------------------------------------------------------------
1321 #------------------------------------------------------------------------------
1322 # CHECK: pli [r5, #-4]
1323 # CHECK: pli [r6, #32]
1324 # CHECK: pli [r6, #33]
1325 # CHECK: pli [r6, #257]
1326 # CHECK: pli [r7, #257]
1334 #------------------------------------------------------------------------------
1336 #------------------------------------------------------------------------------
1337 # CHECK: pli [r8, r1]
1338 # CHECK: pli [r5, r2]
1339 # CHECK: pli [r0, r2, lsl #3]
1340 # CHECK: pli [r8, r2, lsl #2]
1341 # CHECK: pli [sp, r2, lsl #1]
1342 # CHECK: pli [sp, r2]
1351 #------------------------------------------------------------------------------
1353 #------------------------------------------------------------------------------
1354 # CHECK: pli [pc, #-0]
1355 # CHECK: pli [pc, #-328]
1356 # CHECK: pli [pc, #0]
1363 #------------------------------------------------------------------------------
1365 #------------------------------------------------------------------------------
1366 # CHECK: qadd r1, r2, r3
1367 # CHECK: qadd16 r1, r2, r3
1368 # CHECK: qadd8 r1, r2, r3
1370 # CHECK: qaddgt r1, r2, r3
1371 # CHECK: qadd16gt r1, r2, r3
1372 # CHECK: qadd8le r1, r2, r3
1383 #------------------------------------------------------------------------------
1385 #------------------------------------------------------------------------------
1386 # CHECK: qdadd r6, r7, r8
1387 # CHECK: qdsub r6, r7, r8
1389 # CHECK: qdaddhi r6, r7, r8
1390 # CHECK: qdsubhi r6, r7, r8
1399 #------------------------------------------------------------------------------
1401 #------------------------------------------------------------------------------
1402 # CHECK: qsax r9, r12, r0
1404 # CHECK: qsaxeq r9, r12, r0
1411 #------------------------------------------------------------------------------
1413 #------------------------------------------------------------------------------
1414 # CHECK: qsub r1, r2, r3
1415 # CHECK: qsub16 r1, r2, r3
1416 # CHECK: qsub8 r1, r2, r3
1418 # CHECK: qsuble r1, r2, r3
1419 # CHECK: qsub16gt r1, r2, r3
1420 # CHECK: qsub8le r1, r2, r3
1431 #------------------------------------------------------------------------------
1433 #------------------------------------------------------------------------------
1434 # CHECK: rbit r1, r2
1436 # CHECK: rbitne r1, r2
1443 #------------------------------------------------------------------------------
1445 #------------------------------------------------------------------------------
1446 # CHECK: rev.w r1, r2
1447 # CHECK: rev.w r2, r8
1449 # CHECK: revne r1, r2
1450 # CHECK: revne.w r1, r8
1459 #------------------------------------------------------------------------------
1461 #------------------------------------------------------------------------------
1462 # CHECK: rev16.w r1, r2
1463 # CHECK: rev16.w r2, r8
1465 # CHECK: rev16ne r1, r2
1466 # CHECK: rev16ne.w r1, r8
1475 #------------------------------------------------------------------------------
1477 #------------------------------------------------------------------------------
1478 # CHECK: revsh.w r1, r2
1479 # CHECK: revsh.w r2, r8
1481 # CHECK: revshne r1, r2
1482 # CHECK: revshne.w r1, r8
1491 #------------------------------------------------------------------------------
1493 #------------------------------------------------------------------------------
1494 # CHECK: ror.w r2, r3, #12
1495 # CHECK: rors.w r8, r3, #31
1496 # CHECK: rors.w r2, r3, #1
1497 # CHECK: ror.w r2, r3, #4
1498 # CHECK: rors.w r2, r12, #15
1500 # CHECK: ror.w r3, r3, #19
1501 # CHECK: rors.w r8, r8, #2
1502 # CHECK: rors.w r7, r7, #5
1503 # CHECK: ror.w r12, r12, #21
1517 #------------------------------------------------------------------------------
1519 #------------------------------------------------------------------------------
1520 # CHECK: ror.w r3, r4, r2
1521 # CHECK: ror.w r1, r1, r2
1522 # CHECK: rors.w r3, r4, r8
1529 #------------------------------------------------------------------------------
1531 #------------------------------------------------------------------------------
1533 # CHECK: rrxs r1, r2
1535 # CHECK: rrxlt r9, r12
1536 # CHECK: rrxsge r8, r3
1544 #------------------------------------------------------------------------------
1546 #------------------------------------------------------------------------------
1547 # CHECK: rsb.w r2, r5, #1044480
1548 # CHECK: rsbs.w r3, r12, #15
1549 # CHECK: rsb.w r1, r1, #255
1556 #------------------------------------------------------------------------------
1558 #------------------------------------------------------------------------------
1559 # CHECK: rsb r4, r4, r8
1560 # CHECK: rsb r4, r9, r8
1561 # CHECK: rsb r1, r4, r8, asr #3
1562 # CHECK: rsbs r2, r1, r7, lsl #1
1570 #------------------------------------------------------------------------------
1572 #------------------------------------------------------------------------------
1573 # CHECK: sadd16 r3, r4, r8
1575 # CHECK: sadd16ne r3, r4, r8
1582 #------------------------------------------------------------------------------
1584 #------------------------------------------------------------------------------
1585 # CHECK: sadd8 r3, r4, r8
1587 # CHECK: sadd8ne r3, r4, r8
1594 #------------------------------------------------------------------------------
1596 #------------------------------------------------------------------------------
1597 # CHECK: sasx r9, r2, r7
1599 # CHECK: sasxne r2, r5, r6
1606 #------------------------------------------------------------------------------
1608 #------------------------------------------------------------------------------
1609 # CHECK: sbc r0, r1, #4
1610 # CHECK: sbcs r0, r1, #0
1611 # CHECK: sbc r1, r2, #255
1612 # CHECK: sbc r3, r7, #5570645
1613 # CHECK: sbc r8, r12, #2852170240
1614 # CHECK: sbc r9, r7, #2779096485
1615 # CHECK: sbc r5, r3, #2264924160
1616 # CHECK: sbc r4, r2, #2139095040
1617 # CHECK: sbc r4, r2, #1664
1630 #------------------------------------------------------------------------------
1632 #------------------------------------------------------------------------------
1633 # CHECK: sbc.w r4, r5, r6
1634 # CHECK: sbcs.w r4, r5, r6
1635 # CHECK: sbc.w r9, r1, r3
1636 # CHECK: sbcs.w r9, r1, r3
1637 # CHECK: sbc.w r0, r1, r3, ror #4
1638 # CHECK: sbcs.w r0, r1, r3, lsl #7
1639 # CHECK: sbc.w r0, r1, r3, lsr #31
1640 # CHECK: sbcs.w r0, r1, r3, asr #32
1652 #------------------------------------------------------------------------------
1654 #------------------------------------------------------------------------------
1655 # CHECK: sbfx r4, r5, #16, #1
1657 # CHECK: sbfxgt r4, r5, #16, #16
1664 #------------------------------------------------------------------------------
1666 #------------------------------------------------------------------------------
1667 # CHECK: sel r5, r9, r2
1669 # CHECK: selle r5, r9, r2
1676 #------------------------------------------------------------------------------
1678 #------------------------------------------------------------------------------
1688 #------------------------------------------------------------------------------
1690 #------------------------------------------------------------------------------
1691 # CHECK: sadd16 r1, r2, r3
1692 # CHECK: sadd8 r1, r2, r3
1694 # CHECK: sadd16gt r1, r2, r3
1695 # CHECK: sadd8le r1, r2, r3
1704 #------------------------------------------------------------------------------
1706 #------------------------------------------------------------------------------
1707 # CHECK: shasx r4, r8, r2
1709 # CHECK: shasxgt r4, r8, r2
1716 #------------------------------------------------------------------------------
1718 #------------------------------------------------------------------------------
1719 # CHECK: shsax r4, r8, r2
1721 # CHECK: shsaxgt r4, r8, r2
1728 #------------------------------------------------------------------------------
1730 #------------------------------------------------------------------------------
1731 # CHECK: shsub16 r4, r8, r2
1732 # CHECK: shsub8 r4, r8, r2
1734 # CHECK: shsub16gt r4, r8, r2
1735 # CHECK: shsub8gt r4, r8, r2
1744 #------------------------------------------------------------------------------
1745 # SMLABB/SMLABT/SMLATB/SMLATT
1746 #------------------------------------------------------------------------------
1747 # CHECK: smlabb r3, r1, r9, r0
1748 # CHECK: smlabt r5, r6, r4, r1
1749 # CHECK: smlatb r4, r2, r3, r2
1750 # CHECK: smlatt r8, r3, r8, r4
1752 # CHECK: smlabbgt r3, r1, r9, r0
1753 # CHECK: smlabtle r5, r6, r4, r1
1754 # CHECK: smlatbgt r4, r2, r3, r2
1755 # CHECK: smlattle r8, r3, r8, r4
1768 #------------------------------------------------------------------------------
1770 #------------------------------------------------------------------------------
1771 # CHECK: smlad r2, r3, r5, r8
1772 # CHECK: smladx r2, r3, r5, r8
1774 # CHECK: smladhi r2, r3, r5, r8
1775 # CHECK: smladxhi r2, r3, r5, r8
1784 #------------------------------------------------------------------------------
1786 #------------------------------------------------------------------------------
1787 # CHECK: smlal r2, r3, r5, r8
1789 # CHECK: smlaleq r2, r3, r5, r8
1796 #------------------------------------------------------------------------------
1797 # SMLALBB/SMLALBT/SMLALTB/SMLALTT
1798 #------------------------------------------------------------------------------
1799 # CHECK: smlalbb r3, r1, r9, r0
1800 # CHECK: smlalbt r5, r6, r4, r1
1801 # CHECK: smlaltb r4, r2, r3, r2
1802 # CHECK: smlaltt r8, r3, r8, r4
1804 # CHECK: smlalbbge r3, r1, r9, r0
1805 # CHECK: smlalbtlt r5, r6, r4, r1
1806 # CHECK: smlaltblt r4, r2, r3, r2
1807 # CHECK: smlalttge r8, r3, r8, r4
1819 #------------------------------------------------------------------------------
1821 #------------------------------------------------------------------------------
1822 # CHECK: smlald r2, r3, r5, r8
1823 # CHECK: smlaldx r2, r3, r5, r8
1825 # CHECK: smlaldeq r2, r3, r5, r8
1826 # CHECK: smlaldxne r2, r3, r5, r8
1835 #------------------------------------------------------------------------------
1837 #------------------------------------------------------------------------------
1838 # CHECK: smlawb r2, r3, r10, r8
1839 # CHECK: smlawt r8, r3, r5, r9
1841 # CHECK: smlawbeq r2, r7, r5, r8
1842 # CHECK: smlawtne r1, r3, r0, r8
1851 #------------------------------------------------------------------------------
1853 #------------------------------------------------------------------------------
1854 # CHECK: smlsd r2, r3, r5, r8
1855 # CHECK: smlsdx r2, r3, r5, r8
1857 # CHECK: smlsdle r2, r3, r5, r8
1858 # CHECK: smlsdxgt r2, r3, r5, r8
1867 #------------------------------------------------------------------------------
1869 #------------------------------------------------------------------------------
1870 # CHECK: smlsld r2, r9, r5, r1
1871 # CHECK: smlsldx r4, r11, r2, r8
1873 # CHECK: smlsldge r8, r2, r5, r6
1874 # CHECK: smlsldxlt r1, r0, r3, r8
1883 #------------------------------------------------------------------------------
1885 #------------------------------------------------------------------------------
1886 # CHECK: smmla r1, r2, r3, r4
1887 # CHECK: smmlar r4, r3, r2, r1
1889 # CHECK: smmlalo r1, r2, r3, r4
1890 # CHECK: smmlarhs r4, r3, r2, r1
1899 #------------------------------------------------------------------------------
1901 #------------------------------------------------------------------------------
1902 # CHECK: smmls r1, r2, r3, r4
1903 # CHECK: smmlsr r4, r3, r2, r1
1905 # CHECK: smmlslo r1, r2, r3, r4
1906 # CHECK: smmlsrhs r4, r3, r2, r1
1914 #------------------------------------------------------------------------------
1916 #------------------------------------------------------------------------------
1917 # CHECK: ssat r9, #30, r0, asr #2
1921 #------------------------------------------------------------------------------
1923 #------------------------------------------------------------------------------
1924 # CHECK: str r10, [r11], #0
1928 #------------------------------------------------------------------------------
1930 #------------------------------------------------------------------------------
1931 # CHECK: strd r1, r1, [r0], #0
1932 # CHECK: strd r6, r3, [r5], #-8
1933 # CHECK: strd r8, r5, [r5], #-0
1934 # CHECK: strd r7, r4, [r5], #-4
1935 # CHECK: strd r0, r1, [r2, #-0]!
1936 # CHECK: strd r0, r1, [r2, #0]!
1937 # CHECK: strd r0, r1, [r2, #-0]
1947 #------------------------------------------------------------------------------
1948 # STREX/STREXB/STREXH/STREXD
1949 #------------------------------------------------------------------------------
1950 # CHECK: strex r1, r8, [r4]
1951 # CHECK: strex r8, r2, [r4]
1952 # CHECK: strex r2, r12, [sp, #128]
1953 # CHECK: strexb r5, r1, [r7]
1954 # CHECK: strexh r9, r7, [r12]
1955 # CHECK: strexd r9, r3, r6, [r4]
1965 #------------------------------------------------------------------------------
1967 #------------------------------------------------------------------------------
1968 # CHECK: strh r5, [r5, #-4]
1969 # CHECK: strh r5, [r6, #32]
1970 # CHECK: strh.w r5, [r6, #33]
1971 # CHECK: strh.w r5, [r6, #257]
1972 # CHECK: strh.w lr, [r7, #257]
1973 # CHECK: strh r5, [r8, #255]!
1974 # CHECK: strh r2, [r5, #4]!
1975 # CHECK: strh r1, [r4, #-4]!
1976 # CHECK: strh r1, [r4, #0]!
1977 # CHECK: strh lr, [r3], #255
1978 # CHECK: strh r9, [r2], #4
1979 # CHECK: strh r3, [sp], #-4
1995 #------------------------------------------------------------------------------
1997 #------------------------------------------------------------------------------
1998 # CHECK: strh.w r1, [r8, r1]
1999 # CHECK: strh.w r4, [r5, r2]
2000 # CHECK: strh.w r6, [r0, r2, lsl #3]
2001 # CHECK: strh.w r8, [r8, r2, lsl #2]
2002 # CHECK: strh.w r7, [sp, r2, lsl #1]
2003 # CHECK: strh.w r7, [sp, r2]
2013 #------------------------------------------------------------------------------
2015 #------------------------------------------------------------------------------
2016 # CHECK: strht r1, [r2]
2017 # CHECK: strht r1, [r8]
2018 # CHECK: strht r1, [r8, #3]
2019 # CHECK: strht r1, [r8, #255]
2027 #------------------------------------------------------------------------------
2029 #------------------------------------------------------------------------------
2030 # CHECK: strt r1, [r2]
2031 # CHECK: strt r1, [r8]
2032 # CHECK: strt r1, [r8, #3]
2033 # CHECK: strt r1, [r8, #255]
2041 #------------------------------------------------------------------------------
2043 #------------------------------------------------------------------------------
2045 # CHECK: subeq r1, r2, #4
2046 # CHECK: subwne r5, r3, #1023
2047 # CHECK: subweq r4, r5, #293
2048 # CHECK: sub.w r2, sp, #1024
2049 # CHECK: sub.w r2, r8, #65280
2050 # CHECK: subw r2, r3, #257
2051 # CHECK: sub.w r12, r6, #256
2052 # CHECK: subw r12, r6, #256
2053 # CHECK: subs.w r1, r2, #496
2054 # CHECK: subs pc, lr, #4
2069 #------------------------------------------------------------------------------
2071 #------------------------------------------------------------------------------
2072 # CHECK: sub.w r4, r5, r6
2073 # CHECK: sub.w r4, r5, r6, lsl #5
2074 # CHECK: sub.w r4, r5, r6, lsr #5
2075 # CHECK: sub.w r4, r5, r6, lsr #5
2076 # CHECK: sub.w r4, r5, r6, asr #5
2077 # CHECK: sub.w r4, r5, r6, ror #5
2078 # CHECK: sub.w r5, r2, r12, rrx
2089 #------------------------------------------------------------------------------
2091 #------------------------------------------------------------------------------
2102 #------------------------------------------------------------------------------
2104 #------------------------------------------------------------------------------
2105 # CHECK: sxtab r2, r3, r4
2106 # CHECK: sxtab r4, r5, r6
2108 # CHECK: sxtablt r6, r2, r9, ror #8
2109 # CHECK: sxtab r5, r1, r4, ror #16
2110 # CHECK: sxtab r7, r8, r3, ror #24
2120 #------------------------------------------------------------------------------
2122 #------------------------------------------------------------------------------
2123 # CHECK: sxtab16 r6, r2, r7
2124 # CHECK: sxtab16 r3, r5, r8, ror #8
2125 # CHECK: sxtab16 r3, r2, r1, ror #16
2127 # CHECK: sxtab16ne r0, r1, r4
2128 # CHECK: sxtab16eq r1, r2, r3, ror #24
2138 #------------------------------------------------------------------------------
2140 #------------------------------------------------------------------------------
2141 # CHECK: sxtah r1, r3, r9
2142 # CHECK: sxtah r3, r8, r3, ror #8
2143 # CHECK: sxtah r9, r3, r3, ror #24
2145 # CHECK: sxtahhi r6, r1, r6
2146 # CHECK: sxtahls r2, r2, r4, ror #16
2156 #------------------------------------------------------------------------------
2158 #------------------------------------------------------------------------------
2159 # CHECK: sxtb r5, r6
2160 # CHECK: sxtb.w r6, r9, ror #8
2161 # CHECK: sxtb.w r8, r3, ror #24
2163 # CHECK: sxtbge r2, r4
2164 # CHECK: sxtblt.w r5, r1, ror #16
2174 #------------------------------------------------------------------------------
2176 #------------------------------------------------------------------------------
2177 # CHECK: sxtb16 r1, r4
2178 # CHECK: sxtb16 r6, r7
2179 # CHECK: sxtb16 r3, r1, ror #16
2181 # CHECK: sxtb16hs r3, r5, ror #8
2182 # CHECK: sxtb16lo r2, r3, ror #24
2192 #------------------------------------------------------------------------------
2194 #------------------------------------------------------------------------------
2195 # CHECK: sxth r1, r6
2196 # CHECK: sxth.w r3, r8, ror #8
2197 # CHECK: sxth.w r9, r3, ror #24
2199 # CHECK: sxthne.w r3, r9
2200 # CHECK: sxthne.w r2, r2, ror #16
2210 #------------------------------------------------------------------------------
2212 #------------------------------------------------------------------------------
2213 # CHECK: sxtb r5, r6
2214 # CHECK: sxtb.w r6, r9, ror #8
2215 # CHECK: sxtb.w r8, r3, ror #24
2217 # CHECK: sxtbge r2, r4
2218 # CHECK: sxtblt.w r5, r1, ror #16
2228 #------------------------------------------------------------------------------
2230 #------------------------------------------------------------------------------
2231 # CHECK: sxtb16 r1, r4
2232 # CHECK: sxtb16 r6, r7
2233 # CHECK: sxtb16 r3, r1, ror #16
2235 # CHECK: sxtb16hs r3, r5, ror #8
2236 # CHECK: sxtb16lo r2, r3, ror #24
2246 #------------------------------------------------------------------------------
2248 #------------------------------------------------------------------------------
2249 # CHECK: sxth r1, r6
2250 # CHECK: sxth.w r3, r8, ror #8
2251 # CHECK: sxth.w r9, r3, ror #24
2253 # CHECK: sxthne.w r3, r9
2254 # CHECK: sxthne.w r2, r2, ror #16
2264 #------------------------------------------------------------------------------
2266 #------------------------------------------------------------------------------
2267 # CHECK: tbb [r3, r8]
2268 # CHECK: tbh [r3, r8, lsl #1]
2270 # CHECK: tbbeq [r3, r8]
2272 # CHECK: tbhhs [r3, r8, lsl #1]
2282 #------------------------------------------------------------------------------
2284 #------------------------------------------------------------------------------
2285 # CHECK: teq.w r5, #61440
2286 # CHECK: teq.w r4, r5
2287 # CHECK: teq.w r4, r5, lsl #5
2288 # CHECK: teq.w r4, r5, lsr #5
2289 # CHECK: teq.w r4, r5, lsr #5
2290 # CHECK: teq.w r4, r5, asr #5
2291 # CHECK: teq.w r4, r5, ror #5
2302 #------------------------------------------------------------------------------
2304 #------------------------------------------------------------------------------
2305 # CHECK: tst.w r5, #61440
2307 # CHECK: tst.w r3, r12, lsl #5
2308 # CHECK: tst.w r4, r11, lsr #4
2309 # CHECK: tst.w r5, r10, lsr #12
2310 # CHECK: tst.w r6, r9, asr #30
2311 # CHECK: tst.w r7, r8, ror #2
2322 #------------------------------------------------------------------------------
2324 #------------------------------------------------------------------------------
2325 # CHECK: uadd16 r1, r2, r3
2326 # CHECK: uadd8 r1, r2, r3
2328 # CHECK: uadd16gt r1, r2, r3
2329 # CHECK: uadd8le r1, r2, r3
2338 #------------------------------------------------------------------------------
2340 #------------------------------------------------------------------------------
2341 # CHECK: uasx r9, r12, r0
2343 # CHECK: uasxeq r9, r12, r0
2344 # CHECK: uasx r9, r12, r0
2346 # CHECK: uasxeq r9, r12, r0
2356 #------------------------------------------------------------------------------
2358 #------------------------------------------------------------------------------
2359 # CHECK: ubfx r4, r5, #16, #1
2361 # CHECK: ubfxgt r4, r5, #16, #16
2368 #------------------------------------------------------------------------------
2370 #------------------------------------------------------------------------------
2371 # CHECK: uhadd16 r4, r8, r2
2372 # CHECK: uhadd8 r4, r8, r2
2374 # CHECK: uhadd16gt r4, r8, r2
2375 # CHECK: uhadd8gt r4, r8, r2
2384 #------------------------------------------------------------------------------
2386 #------------------------------------------------------------------------------
2387 # CHECK: uhasx r4, r1, r5
2388 # CHECK: uhsax r5, r6, r6
2390 # CHECK: uhasxgt r6, r9, r8
2391 # CHECK: uhsaxgt r7, r8, r12
2399 #------------------------------------------------------------------------------
2401 #------------------------------------------------------------------------------
2402 # CHECK: uhsub16 r5, r8, r3
2403 # CHECK: uhsub8 r1, r7, r6
2405 # CHECK: uhsub16lt r4, r9, r12
2406 # CHECK: uhsub8lt r3, r1, r5
2415 #------------------------------------------------------------------------------
2417 #------------------------------------------------------------------------------
2418 # CHECK: umaal r3, r4, r5, r6
2420 # CHECK: umaallt r3, r4, r5, r6
2427 #------------------------------------------------------------------------------
2429 #------------------------------------------------------------------------------
2430 # CHECK: umlal r2, r4, r6, r8
2432 # CHECK: umlalgt r6, r1, r2, r6
2439 #------------------------------------------------------------------------------
2441 #------------------------------------------------------------------------------
2442 # CHECK: umull r2, r4, r6, r8
2444 # CHECK: umullgt r6, r1, r2, r6
2451 #------------------------------------------------------------------------------
2453 #------------------------------------------------------------------------------
2454 # CHECK: uqadd16 r1, r2, r3
2455 # CHECK: uqadd8 r3, r4, r8
2457 # CHECK: uqadd16gt r4, r7, r9
2458 # CHECK: uqadd8le r8, r1, r2
2467 #------------------------------------------------------------------------------
2469 #------------------------------------------------------------------------------
2470 # CHECK: uqasx r1, r2, r3
2471 # CHECK: uqsax r3, r4, r8
2473 # CHECK: uqasxgt r4, r7, r9
2474 # CHECK: uqsaxle r8, r1, r2
2483 #------------------------------------------------------------------------------
2485 #------------------------------------------------------------------------------
2486 # CHECK: uqsub8 r8, r2, r9
2487 # CHECK: uqsub16 r1, r9, r7
2489 # CHECK: uqsub8gt r3, r1, r6
2490 # CHECK: uqsub16le r4, r6, r4
2499 #------------------------------------------------------------------------------
2501 #------------------------------------------------------------------------------
2502 # CHECK: usad8 r1, r9, r7
2503 # CHECK: usada8 r8, r2, r9, r12
2505 # CHECK: usada8gt r3, r1, r6, r9
2506 # CHECK: usad8le r4, r6, r4
2515 #------------------------------------------------------------------------------
2517 #------------------------------------------------------------------------------
2518 # CHECK: usat r8, #1, r10
2519 # CHECK: usat r8, #4, r10
2520 # CHECK: usat r8, #5, r10, lsl #31
2521 # CHECK: usat r8, #16, r10, asr #1
2529 #------------------------------------------------------------------------------
2531 #------------------------------------------------------------------------------
2532 # CHECK: usat16 r2, #2, r7
2533 # CHECK: usat16 r3, #15, r5
2539 #------------------------------------------------------------------------------
2541 #------------------------------------------------------------------------------
2542 # CHECK: usax r2, r3, r4
2544 # CHECK: usaxne r6, r1, r9
2545 # CHECK: usax r2, r3, r4
2547 # CHECK: usaxne r6, r1, r9
2557 #------------------------------------------------------------------------------
2559 #------------------------------------------------------------------------------
2560 # CHECK: usub16 r4, r2, r7
2561 # CHECK: usub8 r1, r8, r5
2563 # CHECK: usub16hi r1, r1, r3
2564 # CHECK: usub8ls r9, r2, r3
2573 #------------------------------------------------------------------------------
2575 #------------------------------------------------------------------------------
2576 # CHECK: uxtab r2, r3, r4
2577 # CHECK: uxtab r4, r5, r6
2579 # CHECK: uxtablt r6, r2, r9, ror #8
2580 # CHECK: uxtab r5, r1, r4, ror #16
2581 # CHECK: uxtab r7, r8, r3, ror #24
2591 #------------------------------------------------------------------------------
2593 #------------------------------------------------------------------------------
2595 # CHECK: uxtab16ge r0, r1, r4
2596 # CHECK: uxtab16 r6, r2, r7
2597 # CHECK: uxtab16 r3, r5, r8, ror #8
2598 # CHECK: uxtab16 r3, r2, r1, ror #16
2600 # CHECK: uxtab16eq r1, r2, r3, ror #24
2611 #------------------------------------------------------------------------------
2613 #------------------------------------------------------------------------------
2614 # CHECK: uxtah r1, r3, r9
2616 # CHECK: uxtahhi r6, r1, r6
2617 # CHECK: uxtah r3, r8, r3, ror #8
2619 # CHECK: uxtahlo r2, r2, r4, ror #16
2620 # CHECK: uxtah r9, r3, r3, ror #24
2631 #------------------------------------------------------------------------------
2633 #------------------------------------------------------------------------------
2635 # CHECK: uxtbge r2, r4
2636 # CHECK: uxtb r5, r6
2637 # CHECK: uxtb.w r6, r9, ror #8
2639 # CHECK: uxtblo.w r5, r1, ror #16
2640 # CHECK: uxtb.w r8, r3, ror #24
2651 #------------------------------------------------------------------------------
2653 #------------------------------------------------------------------------------
2654 # CHECK: uxtb16 r1, r4
2655 # CHECK: uxtb16 r6, r7
2657 # CHECK: uxtb16hs r3, r5, ror #8
2658 # CHECK: uxtb16 r3, r1, ror #16
2660 # CHECK: uxtb16ge r2, r3, ror #24
2671 #------------------------------------------------------------------------------
2673 #------------------------------------------------------------------------------
2675 # CHECK: uxthne.w r3, r9
2676 # CHECK: uxth r1, r6
2677 # CHECK: uxth.w r3, r8, ror #8
2679 # CHECK: uxthle.w r2, r2, ror #16
2680 # CHECK: uxth.w r9, r3, ror #24
2691 #------------------------------------------------------------------------------
2693 #------------------------------------------------------------------------------
2710 #------------------------------------------------------------------------------
2711 # Unallocated hints (They execute as NOPs, but software must not use them.)
2712 #------------------------------------------------------------------------------
2715 # CHECK: hint.w #102