Don't analyze block if it's not considered for ifcvt anymore.
[llvm/stm8.git] / test / MC / ARM / thumb2.s
blob41dda84d3f2c62ef5ad34a1fbcff6ae878f6850b
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
2 @ XFAIL: *
3 .code 16
5 @ CHECK: adc r1, r1, #171 @ encoding: [0xab,0x01,0x41,0xf1]
6 adc r1, r1, #171
7 @ CHECK: adc r1, r1, #1179666 @ encoding: [0x12,0x11,0x41,0xf1]
8 adc r1, r1, #1179666
9 @ CHECK: adc r1, r1, #872428544 @ encoding: [0x34,0x21,0x41,0xf1]
10 adc r1, r1, #872428544
11 @ CHECK: adc r1, r1, #1448498774 @ encoding: [0x56,0x31,0x41,0xf1]
12 adc r1, r1, #1448498774
13 @ CHECK: adc r1, r1, #66846720 @ encoding: [0x7f,0x71,0x41,0xf1]
14 adc r1, r1, #66846720
16 @ CHECK: mvn r0, #187 @ encoding: [0xbb,0x00,0x6f,0xf0]
17 mvn r0, #187
18 @ CHECK: mvn r0, #11141290 @ encoding: [0xaa,0x10,0x6f,0xf0]
19 mvn r0, #11141290
20 @ CHECK: mvn r0, #-872363008 @ encoding: [0xcc,0x20,0x6f,0xf0]
21 mvn r0, #-872363008
22 @ CHECK: mvn r0, #1114112 @ encoding: [0x88,0x10,0x6f,0xf4]
23 mvn r0, #1114112
25 @ CHECK: cmp.w r0, #11141290 @ encoding: [0xaa,0x1f,0xb0,0xf1]
26 cmp.w r0, #11141290
27 @ CHECK: cmp.w r0, #-872363008 @ encoding: [0xcc,0x2f,0xb0,0xf1]
28 cmp.w r0, #-872363008
29 @ CHECK: cmp.w r0, #-572662307 @ encoding: [0xdd,0x3f,0xb0,0xf1]
30 cmp.w r0, #-572662307
31 @ CHECK: cmp.w r0, #1114112 @ encoding: [0x88,0x1f,0xb0,0xf5]
32 cmp.w r0, #1114112
33 @ CHECK: cmp.w r0, r1, lsl #5 @ encoding: [0x41,0x1f,0xb0,0xeb]
34 cmp.w r0, r1, lsl #5
36 @ CHECK: sxtab r0, r1, r0 @ encoding: [0x80,0xf0,0x41,0xfa]
37 sxtab r0, r1, r0 @ encoding: [0x80,0xf0,0x41,0xfa]
39 @ CHECK: movw r0, #65535 @ encoding: [0xff,0x70,0x4f,0xf6]
40 movw r0, #65535
41 @ CHECK: movw r1, #43777 @ encoding: [0x01,0x31,0x4a,0xf6]
42 movw r1, #43777
43 @ CHECK: movt r1, #427 @ encoding: [0xab,0x11,0xc0,0xf2]
44 movt r1, #427
45 @ CHECK: movw r1, #43792 @ encoding: [0x10,0x31,0x4a,0xf6]
46 movw r1, #43792
47 @ CHECK: movt r1, #4267 @ encoding: [0xab,0x01,0xc0,0xf2]
48 movt r1, #4267
49 @ CHECK: mov.w r0, #66846720 @ encoding: [0x7f,0x70,0x4f,0xf0]
50 mov.w r0, #66846720
52 @ Aliases w/ the vanilla 'mov' mnemonic, and explicit alternative selection.
53 mov r2, #0xbf000000
54 mov r1, #0x100
55 mov r3, #32
56 mov.w r3, #32
57 movw r3, #32
59 @ CHECK: mov.w r2, #3204448256 @ encoding: [0x4f,0xf0,0x3f,0x42]
60 @ CHECK: mov.w r1, #256 @ encoding: [0x4f,0xf4,0x80,0x71]
61 @ CHECK: mov r3, #32 @ encoding: [0x20,0x23]
62 @ CHECK: mov.w r3, #32 @ encoding: [0x4f,0xf0,0x20,0x03]
63 @ CHECK: movw r3, #32 @ encoding: [0x40,0xf2,0x20,0x03]
68 @ CHECK: rrx r0, r0 @ encoding: [0x30,0x00,0x4f,0xea]
69 rrx r0, r0
71 @ CHECK: bfc r0, #4, #20 @ encoding: [0x17,0x10,0x6f,0xf3]
72 bfc r0, #4, #20
73 @ CHECK: bfc r0, #0, #23 @ encoding: [0x16,0x00,0x6f,0xf3]
74 bfc r0, #0, #23
75 @ CHECK: bfc r0, #12, #20 @ encoding: [0x1f,0x30,0x6f,0xf3]
76 bfc r0, #12, #20
78 @ CHECK: sbfx r0, r0, #7, #11 @ encoding: [0xca,0x10,0x40,0xf3]
79 sbfx r0, r0, #7, #11
80 @ CHECK: ubfx r0, r0, #7, #11 @ encoding: [0xca,0x10,0xc0,0xf3]
81 ubfx r0, r0, #7, #11
83 @ CHECK: mla r0, r0, r1, r2 @ encoding: [0x01,0x20,0x00,0xfb]
84 mla r0, r0, r1, r2
85 @ CHECK: mls r0, r0, r1, r2 @ encoding: [0x11,0x20,0x00,0xfb]
86 mls r0, r0, r1, r2
88 @ CHECK: smlabt r0, r1, r2, r0 @ encoding: [0x12,0x00,0x11,0xfb]
89 smlabt r0, r1, r2, r0
91 @ CHECK: clz r0, r0 @ encoding: [0x80,0xf0,0xb0,0xfa]
92 clz r0, r0
94 @ CHECK: pkhbt r0, r0, r1, lsl #16 @ encoding: [0x01,0x40,0xc0,0xea]
95 pkhbt r0, r0, r1, lsl #16
96 @ CHECK: pkhbt r0, r0, r1, lsl #12 @ encoding: [0x01,0x30,0xc0,0xea]
97 pkhbt r0, r0, r1, lsl #16
98 @ CHECK: pkhbt r0, r0, r1, lsl #18 @ encoding: [0x81,0x40,0xc0,0xea]
99 pkhbt r0, r0, r1, lsl #18
100 @ CHECK: pkhbt r0, r0, r1 @ encoding: [0x01,0x00,0xc0,0xea]
101 pkhbt r0, r0, r1
102 @ CHECK: pkhtb r0, r0, r1, asr #16 @ encoding: [0x21,0x40,0xc0,0xea]
103 pkhtb r0, r0, r1, asr #16
104 @ CHECK: pkhtb r0, r0, r1, asr #12 @ encoding: [0x21,0x30,0xc0,0xea]
105 pkhtb r0, r0, r1, asr #12
106 @ CHECK: pkhtb r0, r0, r1, asr #18 @ encoding: [0xa1,0x40,0xc0,0xea]
107 pkhtb r0, r0, r1, asr #18
108 @ CHECK: pkhtb r0, r0, r1, asr #22 @ encoding: [0xa1,0x50,0xc0,0xea]
109 pkhtb r0, r0, r1, asr #22
111 @ CHECK: str.w r0, [r1, #4092] @ encoding: [0xfc,0x0f,0xc1,0xf8]
112 str.w r0, [r1, #4092]
113 @ CHECK: str r0, [r1, #-128] @ encoding: [0x80,0x0c,0x41,0xf8]
114 str r0, [r1, #-128]
115 @ CHECK: str.w r0, [r1, r2, lsl #2] @ encoding: [0x22,0x00,0x41,0xf8
116 str.w r0, [r1, r2, lsl #2]
118 @ CHECK: ldr.w r0, [r0, #4092] @ encoding: [0xfc,0x0f,0xd0,0xf8]
119 ldr.w r0, [r0, #4092]
120 @ CHECK: ldr r0, [r0, #-128] @ encoding: [0x80,0x0c,0x50,0xf8]
121 ldr r0, [r0, #-128]
122 @ CHECK: ldr.w r0, [r0, r1, lsl #2] @ encoding: [0x21,0x00,0x50,0xf8]
123 ldr.w r0, [r0, r1, lsl #2]
125 @ CHECK: str r1, [r0, #16]! @ encoding: [0x10,0x1f,0x40,0xf8]
126 str r1, [r0, #16]!
127 @ CHECK: strh r1, [r0, #8]! @ encoding: [0x08,0x1f,0x20,0xf8]
128 strh r1, [r0, #8]!
129 @ CHECK: strh r2, [r0], #-4 @ encoding: [0x04,0x29,0x20,0xf8]
130 strh r2, [r0], #-4
131 @ CHECK: str r2, [r0], #-4 @ encoding: [0x04,0x29,0x40,0xf8]
132 str r2, [r0], #-4
134 @ CHECK: ldr r2, [r0, #16]! @ encoding: [0x10,0x2f,0x50,0xf8]
135 ldr r2, [r0, #16]!
136 @ CHECK: ldr r2, [r0, #-64]! @ encoding: [0x40,0x2d,0x50,0xf8]
137 ldr r2, [r0, #-64]!
138 @ CHECK: ldrsb r2, [r0, #4]! @ encoding: [0x04,0x2f,0x10,0xf9]
139 ldrsb r2, [r0, #4]!
141 @ CHECK: strb.w r0, [r1, #4092] @ encoding: [0xfc,0x0f,0x81,0xf8]
142 strb.w r0, [r1, #4092]
143 @ CHECK: strb r0, [r1, #-128] @ encoding: [0x80,0x0c,0x01,0xf8]
144 strb r0, [r1, #-128]
145 @ CHECK: strb.w r0, [r1, r2, lsl #2] @ encoding: [0x22,0x00,0x01,0xf8]
146 strb.w r0, [r1, r2, lsl #2]
147 @ CHECK: strh.w r0, [r1, #4092] @ encoding: [0xfc,0x0f,0xa1,0xf8]
148 strh.w r0, [r1, #4092]
149 @ CHECK: strh r0, [r1, #-128] @ encoding: [0x80,0x0c,0x21,0xf8]
150 strh r0, [r1, #-128]
151 @ CHECK: strh r0, [r1, #-128] @ encoding: [0x80,0x0c,0x21,0xf8]
152 strh r0, [r1, #-128]
153 @ CHECK: strh.w r0, [r1, r2, lsl #2] @ encoding: [0x22,0x00,0x21,0xf8]
154 strh.w r0, [r1, r2, lsl #2]
156 @ CHECK: ldrb r0, [r0, #-1] @ encoding: [0x01,0x0c,0x10,0xf8]
157 ldrb r0, [r0, #-1]
158 @ CHECK: ldrb r0, [r0, #-128] @ encoding: [0x80,0x0c,0x10,0xf8]
159 ldrb r0, [r0, #-128]
160 @ CHECK: ldrb.w r0, [r0, r1, lsl #2] @ encoding: [0x21,0x00,0x10,0xf8]
161 ldrb.w r0, [r0, r1, lsl #2]
162 @ CHECK: ldrh.w r0, [r0, #2046] @ encoding: [0xfe,0x07,0xb0,0xf8]
163 ldrh.w r0, [r0, #2046]
164 @ CHECK: ldrh r0, [r0, #-128] @ encoding: [0x80,0x0c,0x30,0xf8]
165 ldrh r0, [r0, #-128]
166 @ CHECK: ldrh.w r0, [r0, r1, lsl #2] @ encoding: [0x21,0x00,0x30,0xf8]
167 ldrh.w r0, [r0, r1, lsl #2]
168 @ CHECK: ldrsb.w r0, [r0] @ encoding: [0x00,0x00,0x90,0xf9]
169 ldrsb.w r0, [r0]
170 @ CHECK: ldrsh.w r0, [r0] @ encoding: [0x00,0x00,0xb0,0xf9]
171 ldrsh.w r0, [r0]
172 @ CHECK: bfi r0, r0, #5, #7 @ encoding: [0x60,0xf3,0x4b,0x10]
173 bfi r0, r0, #5, #7
174 @ CHECK: isb @ encoding: [0xbf,0xf3,0x6f,0x8f]
176 @ CHECK: mrs r0, cpsr @ encoding: [0xef,0xf3,0x00,0x80]
177 mrs r0, cpsr
178 @ CHECK: vmrs r0, fpscr @ encoding: [0xf1,0xee,0x10,0x0a]
179 vmrs r0, fpscr
180 @ CHECK: vmrs r0, fpexc @ encoding: [0xf8,0xee,0x10,0x0a]
181 vmrs r0, fpexc
182 @ CHECK: vmrs r0, fpsid @ encoding: [0xf0,0xee,0x10,0x0a]
183 vmrs r0, fpsid
185 @ CHECK: vmsr fpscr, r0 @ encoding: [0xe1,0xee,0x10,0x0a]
186 vmsr fpscr, r0
187 @ CHECK: vmsr fpexc, r0 @ encoding: [0xe8,0xee,0x10,0x0a]
188 vmsr fpexc, r0
189 @ CHECK: vmsr fpsid, r0 @ encoding: [0xe0,0xee,0x10,0x0a]
190 vmsr fpsid, r0
192 @ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xfe,0x91,0x57]
193 mcr2 p7, #1, r5, c1, c1, #4
195 @ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e]
196 mrc2 p14, #0, r1, c1, c2, #4
198 @ CHECK: mcrr2 p7, #1, r5, r4, c1 @ encoding: [0x44,0xfc,0x11,0x57]
199 mcrr2 p7, #1, r5, r4, c1
201 @ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x54,0xfc,0x11,0x57]
202 mrrc2 p7, #1, r5, r4, c1
204 @ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17]
205 cdp2 p7, #1, c1, c1, c1, #4
207 @ CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f]
208 clrex
210 @ CHECK: clz r9, r0 @ encoding: [0xb0,0xfa,0x80,0xf9]
211 clz r9, r0
213 @ CHECK: qadd r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1]
214 qadd r1, r2, r3
216 @ CHECK: qsub r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1]
217 qsub r1, r2, r3
219 @ CHECK: qdadd r1, r2, r3 @ encoding: [0x83,0xfa,0x92,0xf1]
220 qdadd r1, r2, r3
222 @ CHECK: qdsub r1, r2, r3 @ encoding: [0x83,0xfa,0xb2,0xf1]
223 qdsub r1, r2, r3
225 @ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80]
226 nop.w
228 @ CHECK: yield.w @ encoding: [0xaf,0xf3,0x01,0x80]
229 yield.w
231 @ CHECK: wfe.w @ encoding: [0xaf,0xf3,0x02,0x80]
232 wfe.w
234 @ CHECK: wfi.w @ encoding: [0xaf,0xf3,0x03,0x80]
235 wfi.w
237 @ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
238 dmb sy
239 @ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f]
240 dmb st
241 @ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]
242 dmb ish
243 @ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]
244 dmb ishst
245 @ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]
246 dmb nsh
247 @ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]
248 dmb nshst
249 @ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f]
250 dmb osh
251 @ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f]
252 dmb oshst
254 @ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
255 dsb sy
256 @ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f]
257 dsb st
258 @ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]
259 dsb ish
260 @ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]
261 dsb ishst
262 @ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]
263 dsb nsh
264 @ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]
265 dsb nshst
266 @ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f]
267 dsb osh
268 @ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f]
269 dsb oshst
271 @ CHECK: cpsie.w aif @ encoding: [0xaf,0xf3,0xe0,0x84]
272 cpsie.w aif
273 @ CHECK: cps #15 @ encoding: [0xaf,0xf3,0x0f,0x81]
274 cps #15
275 @ CHECK: cpsie.w if, #10 @ encoding: [0xaf,0xf3,0x6a,0x85]
276 cpsie.w if, #10
278 @ CHECK: msr cpsr_fc, r0 @ encoding: [0x80,0xf3,0x00,0x89]
279 msr apsr, r0
280 @ CHECK: msr cpsr_s, r0 @ encoding: [0x80,0xf3,0x00,0x84]
281 msr apsr_g, r0
282 @ CHECK: msr cpsr_f, r0 @ encoding: [0x80,0xf3,0x00,0x88]
283 msr apsr_nzcvq, r0
284 @ CHECK: msr cpsr_fs, r0 @ encoding: [0x80,0xf3,0x00,0x8c]
285 msr apsr_nzcvqg, r0
286 @ CHECK: msr cpsr_fc, r0 @ encoding: [0x80,0xf3,0x00,0x89]
287 msr cpsr_fc, r0
288 @ CHECK: msr cpsr_c, r0 @ encoding: [0x80,0xf3,0x00,0x81]
289 msr cpsr_c, r0
290 @ CHECK: msr cpsr_x, r0 @ encoding: [0x80,0xf3,0x00,0x82]
291 msr cpsr_x, r0
292 @ CHECK: msr cpsr_fc, r0 @ encoding: [0x80,0xf3,0x00,0x89]
293 msr cpsr_fc, r0
294 @ CHECK: msr cpsr_fsx, r0 @ encoding: [0x80,0xf3,0x00,0x8e]
295 msr cpsr_fsx, r0
296 @ CHECK: msr spsr_fc, r0 @ encoding: [0x90,0xf3,0x00,0x89]
297 msr spsr_fc, r0
298 @ CHECK: msr spsr_fsxc, r0 @ encoding: [0x90,0xf3,0x00,0x8f]
299 msr spsr_fsxc, r0
300 @ CHECK: msr cpsr_fsxc, r0 @ encoding: [0x80,0xf3,0x00,0x8f]
301 msr cpsr_fsxc, r0
303 @ CHECK: strexb r0, r1, [r2] @ encoding: [0xc2,0xe8,0x40,0x1f]
304 strexb r0, r1, [r2]
305 @ CHECK: strexh r0, r1, [r2] @ encoding: [0xc2,0xe8,0x50,0x1f]
306 strexh r0, r1, [r2]
307 @ CHECK: strex r0, r1, [r2] @ encoding: [0x42,0xe8,0x00,0x10]
308 strex r0, r1, [r2]
309 @ CHECK: strexd r0, r2, r3, [r1] @ encoding: [0xc1,0xe8,0x70,0x23]
310 strexd r0, r2, r3, [r1]
311 @ CHECK: ldrexb r0, [r0] @ encoding: [0xd0,0xe8,0x4f,0x0f]
312 ldrexb r0, [r0]
313 @ CHECK: ldrexh r0, [r0] @ encoding: [0xd0,0xe8,0x5f,0x0f]
314 ldrexh r0, [r0]
315 @ CHECK: ldrex r0, [r0] @ encoding: [0x50,0xe8,0x00,0x0f]
316 ldrex r0, [r0]
317 @ CHECK: ldrexd r0, r1, [r0] @ encoding: [0xd0,0xe8,0x7f,0x01]
318 ldrexd r0, r1, [r0]
319 @ CHECK: ssat16 r0, #7, r0 @ encoding: [0x20,0xf3,0x06,0x00]
320 ssat16 r0, #7, r0
322 and r1, #0xff
323 and r1, r1, #0xff
324 orr r1, 0x100
325 orr r1, r1, 0x100
326 eor r1, 0x100
327 eor r1, r1, 0x100
328 bic r1, 0x100
329 bic r1, r1, 0x100
331 @ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01]
332 @ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01]
333 @ CHECK: orr r1, r1, #256 @ encoding: [0x41,0xf4,0x80,0x71]
334 @ CHECK: orr r1, r1, #256 @ encoding: [0x41,0xf4,0x80,0x71]
335 @ CHECK: eor r1, r1, #256 @ encoding: [0x81,0xf4,0x80,0x71]
336 @ CHECK: eor r1, r1, #256 @ encoding: [0x81,0xf4,0x80,0x71]
337 @ CHECK: bic r1, r1, #256 @ encoding: [0x21,0xf4,0x80,0x71]
338 @ CHECK: bic r1, r1, #256 @ encoding: [0x21,0xf4,0x80,0x71]