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