1 # RUN: llvm-mc -triple=thumbv7-apple-darwin -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
99 #------------------------------------------------------------------------------
101 #------------------------------------------------------------------------------
102 # CHECK: and r2, r5, #1044480
103 # CHECK: ands r3, r12, #15
104 # CHECK: and r1, r1, #255
111 #------------------------------------------------------------------------------
113 #------------------------------------------------------------------------------
114 # CHECK: and.w r4, r9, r8
115 # CHECK: and.w r1, r4, r8, asr #3
116 # CHECK: ands.w r2, r1, r7, lsl #1
117 # CHECK: ands.w r4, r5, r2, lsr #20
118 # CHECK: and.w r9, r12, r1, ror #17
126 #------------------------------------------------------------------------------
128 #------------------------------------------------------------------------------
129 # CHECK: asr.w r2, r3, #12
130 # CHECK: asrs.w r8, r3, #32
131 # CHECK: asrs.w r2, r3, #1
132 # CHECK: asr.w r2, r3, #4
133 # CHECK: asrs.w r2, r12, #15
135 # CHECK: asr.w r3, r3, #19
136 # CHECK: asrs.w r8, r8, #2
137 # CHECK: asrs.w r7, r7, #5
138 # CHECK: asr.w r12, r12, #21
152 #------------------------------------------------------------------------------
154 #------------------------------------------------------------------------------
155 # CHECK: asr.w r3, r4, r2
156 # CHECK: asr.w r1, r1, r2
157 # CHECK: asrs.w r3, r4, r8
163 #------------------------------------------------------------------------------
165 #------------------------------------------------------------------------------
166 # CHECK: bmi.w #-183396
171 #------------------------------------------------------------------------------
173 #------------------------------------------------------------------------------
174 # CHECK: bfc r5, #3, #17
176 # CHECK: bfclo r5, #3, #17
183 #------------------------------------------------------------------------------
185 #------------------------------------------------------------------------------
186 # CHECK: bfi r5, r2, #3, #17
188 # CHECK: bfine r5, r2, #3, #17
195 #------------------------------------------------------------------------------
197 #------------------------------------------------------------------------------
198 # CHECK: bic r10, r1, #15
199 # CHECK: bic.w r12, r3, r6
200 # CHECK: bic.w r11, r2, r6, lsl #12
201 # CHECK: bic.w r8, r4, r1, lsr #11
202 # CHECK: bic.w r7, r5, r7, lsr #15
203 # CHECK: bic.w r6, r7, r9, asr #32
204 # CHECK: bic.w r5, r6, r8, ror #1
206 # CHECK: bic r1, r1, #15
207 # CHECK: bic.w r1, r1, r1
208 # CHECK: bic.w r4, r4, r2, lsl #31
209 # CHECK: bic.w r6, r6, r3, lsr #12
210 # CHECK: bic.w r7, r7, r4, lsr #7
211 # CHECK: bic.w r8, r8, r5, asr #15
212 # CHECK: bic.w r12, r12, r6, ror #29
231 #------------------------------------------------------------------------------
233 #------------------------------------------------------------------------------
243 #------------------------------------------------------------------------------
245 #------------------------------------------------------------------------------
247 # CHECK: cbnz r7, #12
252 #------------------------------------------------------------------------------
254 #------------------------------------------------------------------------------
255 # CHECK: cdp p7, #1, c1, c1, c1, #4
256 # CHECK: cdp2 p7, #1, c1, c1, c1, #4
262 #------------------------------------------------------------------------------
264 #------------------------------------------------------------------------------
274 #------------------------------------------------------------------------------
276 #------------------------------------------------------------------------------
286 #------------------------------------------------------------------------------
288 #------------------------------------------------------------------------------
289 #CHECK: cmn.w r1, #15
291 #CHECK: cmn.w r1, r6, lsl #10
292 #CHECK: cmn.w r1, r6, lsr #10
293 #CHECK: cmn.w sp, r6, lsr #10
294 #CHECK: cmn.w r1, r6, asr #10
295 #CHECK: cmn.w r1, r6, ror #10
306 #------------------------------------------------------------------------------
308 #------------------------------------------------------------------------------
309 #CHECK: cmp.w r5, #65280
310 #CHECK: cmp.w r4, r12
311 #CHECK: cmp.w r9, r6, lsl #12
312 #CHECK: cmp.w r3, r7, lsr #31
313 #CHECK: cmp.w sp, r6, lsr #1
314 #CHECK: cmp.w r2, r5, asr #24
315 #CHECK: cmp.w r1, r4, ror #15
326 #------------------------------------------------------------------------------
328 #------------------------------------------------------------------------------
338 #------------------------------------------------------------------------------
340 #------------------------------------------------------------------------------
362 #------------------------------------------------------------------------------
364 #------------------------------------------------------------------------------
384 #------------------------------------------------------------------------------
386 #------------------------------------------------------------------------------
387 #CHECK: eor r4, r5, #61440
388 #CHECK: eor.w r4, r5, r6
389 #CHECK: eor.w r4, r5, r6, lsl #5
390 #CHECK: eor.w r4, r5, r6, lsr #5
391 #CHECK: eor.w r4, r5, r6, lsr #5
392 #CHECK: eor.w r4, r5, r6, asr #5
393 #CHECK: eor.w r4, r5, r6, ror #5
404 #------------------------------------------------------------------------------
406 #------------------------------------------------------------------------------
411 #------------------------------------------------------------------------------
413 #------------------------------------------------------------------------------
414 # Test encodings of a few full IT blocks, not just the IT instruction
417 # CHECK: addeq r0, r1, r2
419 # CHECK: subne r5, r6, r7
420 # CHECK: addeq r1, r2, #4
429 # CHECK: addls r0, r1, r2
431 # CHECK: subhi r5, r6, r7
432 # CHECK: addhi r1, r2, #4
441 #------------------------------------------------------------------------------
443 #------------------------------------------------------------------------------
444 # CHECK: ldm.w r4, {r4, r5, r8, r9}
445 # CHECK: ldm.w r4, {r5, r6}
446 # CHECK: ldm.w r5!, {r3, r8}
447 # CHECK: ldm.w r4, {r4, r5, r8, r9}
448 # CHECK: ldm.w r4, {r5, r6}
449 # CHECK: ldm.w r5!, {r3, r8}
450 # CHECK: ldm.w r5!, {r1, r2}
451 # CHECK: ldm.w r2, {r1, r2}
453 # CHECK: ldm.w r4, {r4, r5, r8, r9}
454 # CHECK: ldm.w r4, {r5, r6}
455 # CHECK: ldm.w r5!, {r3, r8}
456 # CHECK: ldm.w r4, {r4, r5, r8, r9}
457 # CHECK: ldm.w r4, {r5, r6}
458 # CHECK: ldm.w r5!, {r3, r8}
459 # CHECK: ldm.w r5!, {r3, r8}
479 #------------------------------------------------------------------------------
481 #------------------------------------------------------------------------------
482 # CHECK: ldmdb r4, {r4, r5, r8, r9}
483 # CHECK: ldmdb r4, {r5, r6}
484 # CHECK: ldmdb r5!, {r3, r8}
485 # CHECK: ldmdb r5!, {r3, r8}
493 #------------------------------------------------------------------------------
495 #------------------------------------------------------------------------------
496 # CHECK: ldr r5, [r5, #-4]
497 # CHECK: ldr r5, [r6, #32]
498 # CHECK: ldr.w r5, [r6, #33]
499 # CHECK: ldr.w r5, [r6, #257]
500 # CHECK: ldr.w pc, [r7, #257]
509 #------------------------------------------------------------------------------
511 #------------------------------------------------------------------------------
512 # CHECK: ldr.w r1, [r8, r1]
513 # CHECK: ldr.w r4, [r5, r2]
514 # CHECK: ldr.w r6, [r0, r2, lsl #3]
515 # CHECK: ldr.w r8, [r8, r2, lsl #2]
516 # CHECK: ldr.w r7, [sp, r2, lsl #1]
517 # CHECK: ldr.w r7, [sp, r2]
518 # CHECK: ldr r2, [r4, #255]!
519 # CHECK: ldr r8, [sp, #4]!
520 # CHECK: ldr lr, [sp, #-4]!
521 # CHECK: ldr r2, [r4], #255
522 # CHECK: ldr r8, [sp], #4
523 # CHECK: ldr lr, [sp], #-4
539 #------------------------------------------------------------------------------
541 #------------------------------------------------------------------------------
542 # CHECK: ldrb r5, [r5, #-4]
543 # CHECK: ldrb.w r5, [r6, #32]
544 # CHECK: ldrb.w r5, [r6, #33]
545 # CHECK: ldrb.w r5, [r6, #257]
546 # CHECK: ldrb.w lr, [r7, #257]
555 #------------------------------------------------------------------------------
557 #------------------------------------------------------------------------------
558 # CHECK: ldrb.w r1, [r8, r1]
559 # CHECK: ldrb.w r4, [r5, r2]
560 # CHECK: ldrb.w r6, [r0, r2, lsl #3]
561 # CHECK: ldrb.w r8, [r8, r2, lsl #2]
562 # CHECK: ldrb.w r7, [sp, r2, lsl #1]
563 # CHECK: ldrb.w r7, [sp, r2]
564 # CHECK: ldrb r5, [r8, #255]!
565 # CHECK: ldrb r2, [r5, #4]!
566 # CHECK: ldrb r1, [r4, #-4]!
567 # CHECK: ldrb lr, [r3], #255
568 # CHECK: ldrb r9, [r2], #4
569 # CHECK: ldrb r3, [sp], #-4
585 #------------------------------------------------------------------------------
587 #------------------------------------------------------------------------------
588 # CHECK: ldrbt r1, [r2]
589 # CHECK: ldrbt r1, [r8]
590 # CHECK: ldrbt r1, [r8, #3]
591 # CHECK: ldrbt r1, [r8, #255]
599 #------------------------------------------------------------------------------
601 #------------------------------------------------------------------------------
602 # CHECK: ldrd r3, r5, [r6, #24]
603 # CHECK: ldrd r3, r5, [r6, #24]!
604 # CHECK: ldrd r3, r5, [r6], #4
605 # CHECK: ldrd r3, r5, [r6], #-8
606 # CHECK: ldrd r3, r5, [r6]
607 # CHECK: ldrd r8, r1, [r3]
617 #------------------------------------------------------------------------------
618 # FIXME: LDRD(literal)
619 #------------------------------------------------------------------------------
622 #------------------------------------------------------------------------------
623 # LDREX/LDREXB/LDREXH/LDREXD
624 #------------------------------------------------------------------------------
625 # CHECK: ldrex r1, [r4]
626 # CHECK: ldrex r8, [r4]
627 # CHECK: ldrex r2, [sp, #128]
628 # CHECK: ldrexb r5, [r7]
629 # CHECK: ldrexh r9, [r12]
630 # CHECK: ldrexd r9, r3, [r4]
640 #------------------------------------------------------------------------------
642 #------------------------------------------------------------------------------
643 # CHECK: ldrh r5, [r5, #-4]
644 # CHECK: ldrh r5, [r6, #32]
645 # CHECK: ldrh.w r5, [r6, #33]
646 # CHECK: ldrh.w r5, [r6, #257]
647 # CHECK: ldrh.w lr, [r7, #257]
656 #------------------------------------------------------------------------------
658 #------------------------------------------------------------------------------
659 # CHECK: ldrh.w r1, [r8, r1]
660 # CHECK: ldrh.w r4, [r5, r2]
661 # CHECK: ldrh.w r6, [r0, r2, lsl #3]
662 # CHECK: ldrh.w r8, [r8, r2, lsl #2]
663 # CHECK: ldrh.w r7, [sp, r2, lsl #1]
664 # CHECK: ldrh.w r7, [sp, r2]
665 # CHECK: ldrh r5, [r8, #255]!
666 # CHECK: ldrh r2, [r5, #4]!
667 # CHECK: ldrh r1, [r4, #-4]!
668 # CHECK: ldrh lr, [r3], #255
669 # CHECK: ldrh r9, [r2], #4
670 # CHECK: ldrh r3, [sp], #-4
686 #------------------------------------------------------------------------------
688 #------------------------------------------------------------------------------
689 # CHECK: ldrsb r5, [r5, #-4]
690 # CHECK: ldrsb.w r5, [r6, #32]
691 # CHECK: ldrsb.w r5, [r6, #33]
692 # CHECK: ldrsb.w r5, [r6, #257]
693 # CHECK: ldrsb.w lr, [r7, #257]
702 #------------------------------------------------------------------------------
704 #------------------------------------------------------------------------------
705 # CHECK: ldrsb.w r1, [r8, r1]
706 # CHECK: ldrsb.w r4, [r5, r2]
707 # CHECK: ldrsb.w r6, [r0, r2, lsl #3]
708 # CHECK: ldrsb.w r8, [r8, r2, lsl #2]
709 # CHECK: ldrsb.w r7, [sp, r2, lsl #1]
710 # CHECK: ldrsb.w r7, [sp, r2]
711 # CHECK: ldrsb r5, [r8, #255]!
712 # CHECK: ldrsb r2, [r5, #4]!
713 # CHECK: ldrsb r1, [r4, #-4]!
714 # CHECK: ldrsb lr, [r3], #255
715 # CHECK: ldrsb r9, [r2], #4
716 # CHECK: ldrsb r3, [sp], #-4
732 #------------------------------------------------------------------------------
734 #------------------------------------------------------------------------------
735 # CHECK: ldrsbt r1, [r2]
736 # CHECK: ldrsbt r1, [r8]
737 # CHECK: ldrsbt r1, [r8, #3]
738 # CHECK: ldrsbt r1, [r8, #255]
746 #------------------------------------------------------------------------------
748 #------------------------------------------------------------------------------
749 # CHECK: ldrsh r5, [r5, #-4]
750 # CHECK: ldrsh.w r5, [r6, #32]
751 # CHECK: ldrsh.w r5, [r6, #33]
752 # CHECK: ldrsh.w r5, [r6, #257]
753 # CHECK: ldrsh.w lr, [r7, #257]
754 # CHECK: ldrsh r10, [r5, #-0]
763 #------------------------------------------------------------------------------
765 #------------------------------------------------------------------------------
766 # CHECK: ldrsh.w r1, [r8, r1]
767 # CHECK: ldrsh.w r4, [r5, r2]
768 # CHECK: ldrsh.w r6, [r0, r2, lsl #3]
769 # CHECK: ldrsh.w r8, [r8, r2, lsl #2]
770 # CHECK: ldrsh.w r7, [sp, r2, lsl #1]
771 # CHECK: ldrsh.w r7, [sp, r2]
772 # CHECK: ldrsh r5, [r8, #255]!
773 # CHECK: ldrsh r2, [r5, #4]!
774 # CHECK: ldrsh r1, [r4, #-4]!
775 # CHECK: ldrsh lr, [r3], #255
776 # CHECK: ldrsh r9, [r2], #4
777 # CHECK: ldrsh r3, [sp], #-4
793 #------------------------------------------------------------------------------
795 #------------------------------------------------------------------------------
796 # CHECK: ldrsht r1, [r2]
797 # CHECK: ldrsht r1, [r8]
798 # CHECK: ldrsht r1, [r8, #3]
799 # CHECK: ldrsht r1, [r8, #255]
807 #------------------------------------------------------------------------------
809 #------------------------------------------------------------------------------
810 # CHECK: ldrt r1, [r2]
811 # CHECK: ldrt r2, [r6]
812 # CHECK: ldrt r3, [r7, #3]
813 # CHECK: ldrt r4, [r9, #255]
821 #------------------------------------------------------------------------------
823 #------------------------------------------------------------------------------
824 # CHECK: lsl.w r2, r3, #12
825 # CHECK: lsls.w r8, r3, #31
826 # CHECK: lsls.w r2, r3, #1
827 # CHECK: lsl.w r2, r3, #4
828 # CHECK: lsls.w r2, r12, #15
830 # CHECK: lsl.w r3, r3, #19
831 # CHECK: lsls.w r8, r8, #2
832 # CHECK: lsls.w r7, r7, #5
833 # CHECK: lsl.w r12, r12, #21
847 #------------------------------------------------------------------------------
849 #------------------------------------------------------------------------------
850 # CHECK: lsl.w r3, r4, r2
851 # CHECK: lsl.w r1, r1, r2
852 # CHECK: lsls.w r3, r4, r8
859 #------------------------------------------------------------------------------
861 #------------------------------------------------------------------------------
862 # CHECK: lsr.w r2, r3, #12
863 # CHECK: lsrs.w r8, r3, #32
864 # CHECK: lsrs.w r2, r3, #1
865 # CHECK: lsr.w r2, r3, #4
866 # CHECK: lsrs.w r2, r12, #15
868 # CHECK: lsr.w r3, r3, #19
869 # CHECK: lsrs.w r8, r8, #2
870 # CHECK: lsrs.w r7, r7, #5
871 # CHECK: lsr.w r12, r12, #21
885 #------------------------------------------------------------------------------
887 #------------------------------------------------------------------------------
888 # CHECK: lsr.w r3, r4, r2
889 # CHECK: lsr.w r1, r1, r2
890 # CHECK: lsrs.w r3, r4, r8
896 #------------------------------------------------------------------------------
898 #------------------------------------------------------------------------------
899 # CHECK: mcr p7, #1, r5, c1, c1, #4
900 # CHECK: mcr2 p7, #1, r5, c1, c1, #4
906 #------------------------------------------------------------------------------
908 #------------------------------------------------------------------------------
909 # CHECK: mcrr p7, #15, r5, r4, c1
910 # CHECK: mcrr2 p7, #15, r5, r4, c1
916 #------------------------------------------------------------------------------
918 #------------------------------------------------------------------------------
919 # CHECK: mla r1, r2, r3, r4
920 # CHECK: mls r1, r2, r3, r4
926 #------------------------------------------------------------------------------
928 #------------------------------------------------------------------------------
929 # CHECK: movs r1, #21
930 # CHECK: movs.w r1, #21
931 # CHECK: movs.w r8, #21
932 # CHECK: movw r0, #65535
933 # CHECK: movw r1, #43777
934 # CHECK: movw r1, #43792
935 # CHECK: mov.w r0, #66846720
936 # CHECK: mov.w r0, #66846720
937 # CHECK: movs.w r0, #66846720
949 #------------------------------------------------------------------------------
951 #------------------------------------------------------------------------------
953 # CHECK: movt r6, #65535
955 # CHECK: movteq r4, #4080
962 #------------------------------------------------------------------------------
964 #------------------------------------------------------------------------------
965 # CHECK: mrc p14, #0, r1, c1, c2, #4
966 # CHECK: mrc2 p14, #0, r1, c1, c2, #4
972 #------------------------------------------------------------------------------
974 #------------------------------------------------------------------------------
975 # CHECK: mrrc p7, #1, r5, r4, c1
976 # CHECK: mrrc2 p7, #1, r5, r4, c1
982 #------------------------------------------------------------------------------
984 #------------------------------------------------------------------------------
985 # CHECK: mrs r8, apsr
986 # CHECK: mrs r8, spsr
992 #------------------------------------------------------------------------------
994 #------------------------------------------------------------------------------
995 # CHECK: msr APSR_nzcvq, r1
996 # CHECK: msr APSR_g, r2
997 # CHECK: msr APSR_nzcvq, r3
998 # CHECK: msr APSR_nzcvq, r4
999 # CHECK: msr APSR_nzcvqg, r5
1000 # CHECK: msr CPSR_fc, r6
1001 # CHECK: msr CPSR_c, r7
1002 # CHECK: msr CPSR_x, r8
1003 # CHECK: msr CPSR_fc, r9
1004 # CHECK: msr CPSR_fc, r11
1005 # CHECK: msr CPSR_fsx, r12
1006 # CHECK: msr SPSR_fc, r0
1007 # CHECK: msr SPSR_fsxc, r5
1008 # CHECK: msr CPSR_fsxc, r8
1026 #------------------------------------------------------------------------------
1028 #------------------------------------------------------------------------------
1029 # CHECK: muls r3, r4, r3
1030 # CHECK: mul r3, r4, r3
1031 # CHECK: mul r3, r4, r6
1033 # CHECK: muleq r3, r4, r5
1042 #------------------------------------------------------------------------------
1044 #------------------------------------------------------------------------------
1045 # CHECK: mvns r8, #21
1046 # CHECK: mvn r0, #66846720
1047 # CHECK: mvns r0, #66846720
1049 # CHECK: mvnseq r1, #12
1050 # CHECK: mvneq r1, #12
1051 # CHECK: mvnne r1, #12
1062 #------------------------------------------------------------------------------
1064 #------------------------------------------------------------------------------
1065 # CHECK: mvn.w r2, r3
1066 # CHECK: mvns r2, r3
1067 # CHECK: mvn.w r5, r6, lsl #19
1068 # CHECK: mvn.w r5, r6, lsr #9
1069 # CHECK: mvn.w r5, r6, asr #4
1070 # CHECK: mvn.w r5, r6, ror #6
1071 # CHECK: mvn.w r5, r6, rrx
1073 # CHECK: mvneq r2, r3
1085 #------------------------------------------------------------------------------
1087 #------------------------------------------------------------------------------
1093 #------------------------------------------------------------------------------
1095 #------------------------------------------------------------------------------
1096 # CHECK: orn r4, r5, #61440
1097 # CHECK: orn r4, r5, r6
1098 # CHECK: orns r4, r5, r6
1099 # CHECK: orn r4, r5, r6, lsl #5
1100 # CHECK: orns r4, r5, r6, lsr #5
1101 # CHECK: orn r4, r5, r6, lsr #5
1102 # CHECK: orns r4, r5, r6, asr #5
1103 # CHECK: orn r4, r5, r6, ror #5
1115 #------------------------------------------------------------------------------
1117 #------------------------------------------------------------------------------
1118 # CHECK: orr r4, r5, #61440
1119 # CHECK: orr.w r4, r5, r6
1120 # CHECK: orr.w r4, r5, r6, lsl #5
1121 # CHECK: orrs.w r4, r5, r6, lsr #5
1122 # CHECK: orr.w r4, r5, r6, lsr #5
1123 # CHECK: orrs.w r4, r5, r6, asr #5
1124 # CHECK: orr.w r4, r5, r6, ror #5
1135 #------------------------------------------------------------------------------
1137 #------------------------------------------------------------------------------
1138 # CHECK: pkhbt r2, r2, r3
1139 # CHECK: pkhbt r2, r2, r3, lsl #31
1140 # CHECK: pkhbt r2, r2, r3, lsl #15
1142 # CHECK: pkhtb r2, r2, r3, asr #31
1143 # CHECK: pkhtb r2, r2, r3, asr #15
1153 #------------------------------------------------------------------------------
1155 #------------------------------------------------------------------------------
1156 # CHECK: pld [r5, #-4]
1157 # CHECK: pld [r6, #32]
1158 # CHECK: pld [r6, #33]
1159 # CHECK: pld [r6, #257]
1160 # CHECK: pld [r7, #257]
1168 #------------------------------------------------------------------------------
1170 #------------------------------------------------------------------------------
1171 # CHECK: pld [r8, r1]
1172 # CHECK: pld [r5, r2]
1173 # CHECK: pld [r0, r2, lsl #3]
1174 # CHECK: pld [r8, r2, lsl #2]
1175 # CHECK: pld [sp, r2, lsl #1]
1176 # CHECK: pld [sp, r2]
1185 #------------------------------------------------------------------------------
1187 #------------------------------------------------------------------------------
1188 # CHECK: pli [r5, #-4]
1189 # CHECK: pli [r6, #32]
1190 # CHECK: pli [r6, #33]
1191 # CHECK: pli [r6, #257]
1192 # CHECK: pli [r7, #257]
1200 #------------------------------------------------------------------------------
1202 #------------------------------------------------------------------------------
1203 # CHECK: pli [r8, r1]
1204 # CHECK: pli [r5, r2]
1205 # CHECK: pli [r0, r2, lsl #3]
1206 # CHECK: pli [r8, r2, lsl #2]
1207 # CHECK: pli [sp, r2, lsl #1]
1208 # CHECK: pli [sp, r2]
1218 #------------------------------------------------------------------------------
1220 #------------------------------------------------------------------------------
1221 # CHECK: qadd r1, r2, r3
1222 # CHECK: qadd16 r1, r2, r3
1223 # CHECK: qadd8 r1, r2, r3
1225 # CHECK: qaddgt r1, r2, r3
1226 # CHECK: qadd16gt r1, r2, r3
1227 # CHECK: qadd8le r1, r2, r3
1238 #------------------------------------------------------------------------------
1240 #------------------------------------------------------------------------------
1241 # CHECK: qdadd r6, r7, r8
1242 # CHECK: qdsub r6, r7, r8
1244 # CHECK: qdaddhi r6, r7, r8
1245 # CHECK: qdsubhi r6, r7, r8
1254 #------------------------------------------------------------------------------
1256 #------------------------------------------------------------------------------
1257 # CHECK: qsax r9, r12, r0
1259 # CHECK: qsaxeq r9, r12, r0
1266 #------------------------------------------------------------------------------
1268 #------------------------------------------------------------------------------
1269 # CHECK: qsub r1, r2, r3
1270 # CHECK: qsub16 r1, r2, r3
1271 # CHECK: qsub8 r1, r2, r3
1273 # CHECK: qsuble r1, r2, r3
1274 # CHECK: qsub16gt r1, r2, r3
1275 # CHECK: qsub8le r1, r2, r3
1286 #------------------------------------------------------------------------------
1288 #------------------------------------------------------------------------------
1289 # CHECK: rbit r1, r2
1291 # CHECK: rbitne r1, r2
1298 #------------------------------------------------------------------------------
1300 #------------------------------------------------------------------------------
1301 # CHECK: rev.w r1, r2
1302 # CHECK: rev.w r2, r8
1304 # CHECK: revne r1, r2
1305 # CHECK: revne.w r1, r8
1314 #------------------------------------------------------------------------------
1316 #------------------------------------------------------------------------------
1317 # CHECK: rev16.w r1, r2
1318 # CHECK: rev16.w r2, r8
1320 # CHECK: rev16ne r1, r2
1321 # CHECK: rev16ne.w r1, r8
1330 #------------------------------------------------------------------------------
1332 #------------------------------------------------------------------------------
1333 # CHECK: revsh.w r1, r2
1334 # CHECK: revsh.w r2, r8
1336 # CHECK: revshne r1, r2
1337 # CHECK: revshne.w r1, r8
1346 #------------------------------------------------------------------------------
1348 #------------------------------------------------------------------------------
1349 # CHECK: ror.w r2, r3, #12
1350 # CHECK: rors.w r8, r3, #31
1351 # CHECK: rors.w r2, r3, #1
1352 # CHECK: ror.w r2, r3, #4
1353 # CHECK: rors.w r2, r12, #15
1355 # CHECK: ror.w r3, r3, #19
1356 # CHECK: rors.w r8, r8, #2
1357 # CHECK: rors.w r7, r7, #5
1358 # CHECK: ror.w r12, r12, #21
1372 #------------------------------------------------------------------------------
1374 #------------------------------------------------------------------------------
1375 # CHECK: ror.w r3, r4, r2
1376 # CHECK: ror.w r1, r1, r2
1377 # CHECK: rors.w r3, r4, r8
1384 #------------------------------------------------------------------------------
1386 #------------------------------------------------------------------------------
1388 # CHECK: rrxs r1, r2
1390 # CHECK: rrxlt r9, r12
1391 # CHECK: rrxsge r8, r3
1399 #------------------------------------------------------------------------------
1401 #------------------------------------------------------------------------------
1402 # CHECK: rsb.w r2, r5, #1044480
1403 # CHECK: rsbs.w r3, r12, #15
1404 # CHECK: rsb.w r1, r1, #255
1411 #------------------------------------------------------------------------------
1413 #------------------------------------------------------------------------------
1414 # CHECK: rsb r4, r4, r8
1415 # CHECK: rsb r4, r9, r8
1416 # CHECK: rsb r1, r4, r8, asr #3
1417 # CHECK: rsbs r2, r1, r7, lsl #1
1425 #------------------------------------------------------------------------------
1427 #------------------------------------------------------------------------------
1428 # CHECK: sadd16 r3, r4, r8
1430 # CHECK: sadd16ne r3, r4, r8
1437 #------------------------------------------------------------------------------
1439 #------------------------------------------------------------------------------
1440 # CHECK: sadd8 r3, r4, r8
1442 # CHECK: sadd8ne r3, r4, r8
1449 #------------------------------------------------------------------------------
1451 #------------------------------------------------------------------------------
1452 # CHECK: sasx r9, r2, r7
1454 # CHECK: sasxne r2, r5, r6
1461 #------------------------------------------------------------------------------
1463 #------------------------------------------------------------------------------
1464 # CHECK: sbc r0, r1, #4
1465 # CHECK: sbcs r0, r1, #0
1466 # CHECK: sbc r1, r2, #255
1467 # CHECK: sbc r3, r7, #5570645
1468 # CHECK: sbc r8, r12, #2852170240
1469 # CHECK: sbc r9, r7, #2779096485
1470 # CHECK: sbc r5, r3, #2264924160
1471 # CHECK: sbc r4, r2, #2139095040
1472 # CHECK: sbc r4, r2, #1664
1485 #------------------------------------------------------------------------------
1487 #------------------------------------------------------------------------------
1488 # CHECK: sbc.w r4, r5, r6
1489 # CHECK: sbcs.w r4, r5, r6
1490 # CHECK: sbc.w r9, r1, r3
1491 # CHECK: sbcs.w r9, r1, r3
1492 # CHECK: sbc.w r0, r1, r3, ror #4
1493 # CHECK: sbcs.w r0, r1, r3, lsl #7
1494 # CHECK: sbc.w r0, r1, r3, lsr #31
1495 # CHECK: sbcs.w r0, r1, r3, asr #32
1507 #------------------------------------------------------------------------------
1509 #------------------------------------------------------------------------------
1510 # CHECK: sbfx r4, r5, #16, #1
1512 # CHECK: sbfxgt r4, r5, #16, #16
1519 #------------------------------------------------------------------------------
1521 #------------------------------------------------------------------------------
1522 # CHECK: sel r5, r9, r2
1524 # CHECK: selle r5, r9, r2
1531 #------------------------------------------------------------------------------
1533 #------------------------------------------------------------------------------
1543 #------------------------------------------------------------------------------
1545 #------------------------------------------------------------------------------
1546 # CHECK: sadd16 r1, r2, r3
1547 # CHECK: sadd8 r1, r2, r3
1549 # CHECK: sadd16gt r1, r2, r3
1550 # CHECK: sadd8le r1, r2, r3
1559 #------------------------------------------------------------------------------
1561 #------------------------------------------------------------------------------
1562 # CHECK: shasx r4, r8, r2
1564 # CHECK: shasxgt r4, r8, r2
1571 #------------------------------------------------------------------------------
1573 #------------------------------------------------------------------------------
1574 # CHECK: shsax r4, r8, r2
1576 # CHECK: shsaxgt r4, r8, r2
1583 #------------------------------------------------------------------------------
1585 #------------------------------------------------------------------------------
1586 # CHECK: shsub16 r4, r8, r2
1587 # CHECK: shsub8 r4, r8, r2
1589 # CHECK: shsub16gt r4, r8, r2
1590 # CHECK: shsub8gt r4, r8, r2
1599 #------------------------------------------------------------------------------
1600 # SMLABB/SMLABT/SMLATB/SMLATT
1601 #------------------------------------------------------------------------------
1602 # CHECK: smlabb r3, r1, r9, r0
1603 # CHECK: smlabt r5, r6, r4, r1
1604 # CHECK: smlatb r4, r2, r3, r2
1605 # CHECK: smlatt r8, r3, r8, r4
1607 # CHECK: smlabbgt r3, r1, r9, r0
1608 # CHECK: smlabtle r5, r6, r4, r1
1609 # CHECK: smlatbgt r4, r2, r3, r2
1610 # CHECK: smlattle r8, r3, r8, r4
1623 #------------------------------------------------------------------------------
1625 #------------------------------------------------------------------------------
1626 # CHECK: smlad r2, r3, r5, r8
1627 # CHECK: smladx r2, r3, r5, r8
1629 # CHECK: smladhi r2, r3, r5, r8
1630 # CHECK: smladxhi r2, r3, r5, r8
1639 #------------------------------------------------------------------------------
1641 #------------------------------------------------------------------------------
1642 # CHECK: smlal r2, r3, r5, r8
1644 # CHECK: smlaleq r2, r3, r5, r8
1651 #------------------------------------------------------------------------------
1652 # SMLALBB/SMLALBT/SMLALTB/SMLALTT
1653 #------------------------------------------------------------------------------
1654 # CHECK: smlalbb r3, r1, r9, r0
1655 # CHECK: smlalbt r5, r6, r4, r1
1656 # CHECK: smlaltb r4, r2, r3, r2
1657 # CHECK: smlaltt r8, r3, r8, r4
1659 # CHECK: smlalbbge r3, r1, r9, r0
1660 # CHECK: smlalbtlt r5, r6, r4, r1
1661 # CHECK: smlaltblt r4, r2, r3, r2
1662 # CHECK: smlalttge r8, r3, r8, r4
1674 #------------------------------------------------------------------------------
1676 #------------------------------------------------------------------------------
1677 # CHECK: smlald r2, r3, r5, r8
1678 # CHECK: smlaldx r2, r3, r5, r8
1680 # CHECK: smlaldeq r2, r3, r5, r8
1681 # CHECK: smlaldxne r2, r3, r5, r8
1690 #------------------------------------------------------------------------------
1692 #------------------------------------------------------------------------------
1693 # CHECK: smlawb r2, r3, r10, r8
1694 # CHECK: smlawt r8, r3, r5, r9
1696 # CHECK: smlawbeq r2, r7, r5, r8
1697 # CHECK: smlawtne r1, r3, r0, r8
1706 #------------------------------------------------------------------------------
1708 #------------------------------------------------------------------------------
1709 # CHECK: smlsd r2, r3, r5, r8
1710 # CHECK: smlsdx r2, r3, r5, r8
1712 # CHECK: smlsdle r2, r3, r5, r8
1713 # CHECK: smlsdxgt r2, r3, r5, r8
1722 #------------------------------------------------------------------------------
1724 #------------------------------------------------------------------------------
1725 # CHECK: smlsld r2, r9, r5, r1
1726 # CHECK: smlsldx r4, r11, r2, r8
1728 # CHECK: smlsldge r8, r2, r5, r6
1729 # CHECK: smlsldxlt r1, r0, r3, r8
1738 #------------------------------------------------------------------------------
1740 #------------------------------------------------------------------------------
1741 # CHECK: smmla r1, r2, r3, r4
1742 # CHECK: smmlar r4, r3, r2, r1
1744 # CHECK: smmlalo r1, r2, r3, r4
1745 # CHECK: smmlarhs r4, r3, r2, r1
1754 #------------------------------------------------------------------------------
1756 #------------------------------------------------------------------------------
1757 # CHECK: smmls r1, r2, r3, r4
1758 # CHECK: smmlsr r4, r3, r2, r1
1760 # CHECK: smmlslo r1, r2, r3, r4
1761 # CHECK: smmlsrhs r4, r3, r2, r1
1770 #------------------------------------------------------------------------------
1772 #------------------------------------------------------------------------------
1773 # CHECK: strd r6, r3, [r5], #-8
1774 # CHECK: strd r8, r5, [r5]{{$}}
1775 # CHECK: strd r7, r4, [r5], #-4