1# RUN: llvm-mc --disassemble %s -triple=thumbv7-apple-darwin9 -mcpu=cortex-a9-mp | FileCheck %s
2
3# CHECK:	add	r5, sp, #68
40x11 0xad
5
6# CHECK:	adcs	r0, r0, #1
70x50 0xf1 0x01 0x00
8
9# CHECK:	b	#30
100x0f 0xe0
11
12# CHECK:	bgt.w	#-16
130x3f 0xf7 0xf8 0xaf
14
15# CHECK:	bfc	r0, #10, #10
160x6f 0xf3 0x93 0x20
17
18# CHECK:	bfi	r2, r10, #0, #1
190x6a 0xf3 0x00 0x02
20
21# CHECK:	cbnz	r7, #20
220x57 0xb9
23
24# CHECK:	cmp	r3, r4
250xa3 0x42
26
27# CHECK:	cmn.w	r0, #31
280x10 0xf1 0x1f 0x0f
29
30# CHECK:	ldm	r0!, {r1}
310x02 0xc8
32
33# CHECK:	ldr	r5, [pc, #432]
340x6c 0x4d
35
36# CHECK:	str	r0, [r3]
370x18 0x60
38
39# CHECK:	str	r0, [r3, #4]
400x58 0x60
41
42# CHECK:	str	r2, [r5, r3]
430xea 0x50
44
45# CHECK:	ldrb.w	r8, [pc, #-24]
460x1f 0xf8 0x18 0x80
47
48# CHECK:	ldrd	r0, r1, [r7, #64]!
490xf7 0xe9 0x10 0x01
50
51# CHECK:	lsls.w	r0, r5, #1
520x5f 0xea 0x45 0x00
53
54# CHECK:	mov	r11, r7
550xbb 0x46
56
57# CHECK:	pkhtb	r2, r4, r6, asr #16
580xc4 0xea 0x26 0x42
59
60# CHECK-NOT:	pkhbt	r2, r4, r6, lsl #0
61# CHECK:	pkhbt	r2, r4, r6
620xc4 0xea 0x06 0x02
63
64# CHECK:	pop.w	{r2, r4, r6, r8, r10, r12}
650xbd 0xe8 0x54 0x15
66
67# CHECK:	push.w	{r2, r4, r6, r8, r10, r12}
680x2d 0xe9 0x54 0x15
69
70# CHECK:	rsbs	r0, r0, #0
710x40 0x42
72
73# CHECK-NOT:	rsb	r0, r2, r0, lsl #0
74# CHECK:	rsb	r0, r2, r0
750xc2 0xeb 0x00 0x00
76
77# CHECK-NOT:	ssat	r0, #17, r12, lsl #0
78# CHECK:	ssat	r0, #17, r12
790x0c 0xf3 0x10 0x00
80
81# CHECK:	strd	r0, r1, [r7, #64]
820xc7 0xe9 0x10 0x01
83
84# CHECK:	sub	sp, #60
850x8f 0xb0
86
87# CHECK:	subw	r0, pc, #1
880xaf 0xf2 0x01 0x00
89
90# CHECK:	subw	r0, sp, #835
910xad 0xf2 0x43 0x30
92
93# CHECK:	uqadd16	r3, r4, r5
940x94 0xfa 0x55 0xf3
95
96# CHECK:	usada8	r5, r4, r3, r2
970x74 0xfb 0x03 0x25
98
99# CHECK:	uxtab16	r1, r2, r3, ror #8
1000x32 0xfa 0x93 0xf1
101
102# IT block begin
103# CHECK:	ittte	eq
1040x03 0xbf
105
106# CHECK:	moveq	r3, #3
1070x03 0x23
108
109# CHECK:	asreq	r1, r0, #5
1100x41 0x11
111
112# CHECK:	lsleq	r1, r0, #28
1130x01 0x07
114
115# CHECK:	stmne	r0!, {r1, r2, r3}
1160x0e 0xc0
117
118# IT block end
119# CHECK:	rsbs	r1, r2, #0
1200x51 0x42
121
122# CHECK: cpsid.w  f
1230xaf 0xf3 0x20 0x86
124
125# CHECK: cps  #15
1260xaf 0xf3 0x0f 0x81
127
128# CHECK: cpsie  if, #10
1290xaf 0xf3 0x6a 0x85
130
131# CHECK: cpsie aif
1320x67 0xb6
133
134# CHECK: msr CPSR_fc, r0
1350x80 0xf3 0x00 0x89
136
137# CHECK: blx	#-4
1380xff 0xf7 0xfe 0xef
139
140# CHECK:	vpush	{d8, d9, d10}
1410x2d 0xed 0x06 0x8b
142
143# CHECK:	vcmpe.f64	d8, #0
1440xb5 0xee 0xc0 0x8b
145
146# CHECK:	stmdb	sp, {r0, r2, r3, r8, r11, lr}
1470x0d 0xe9 0x0d 0x49
148
149# CHECK:	stm	r5!, {r0, r1, r2, r3, r4}
1500x1f 0xc5
151
152# CHECK:	ldm	r5, {r0, r1, r2, r3, r4, r5}
1530x3f 0xcd
154
155# CHECK:	ldm	r5!, {r0, r1, r2, r3, r4}
1560x1f 0xcd
157
158# CHECK:	addw	r0, pc, #1050
1590x0f 0xf2 0x1a 0x40
160
161# CHECK:	ldrd	r3, r8, [r11, #-60]
1620x5b 0xe9 0x0f 0x38
163
164# CHECK:	ldrex	r8, [r2]
1650x52 0xe8 0x00 0x8f
166
167# CHECK:	ldrexd	r8, r9, [r2]
1680xd2 0xe8 0x7f 0x89
169
170# CHECK:	strexd	r1, r7, r8, [r2]
1710xc2 0xe8 0x71 0x78
172
173# CHECK:	tbh	[r5, r4, lsl #1]
1740xd5 0xe8 0x14 0xf0
175
176# CHECK:	tbb	[r5, r4]
1770xd5 0xe8 0x04 0xf0
178
179# CHECK:	ldr.w	r4, [sp, r4, lsl #3]
1800x5d 0xf8 0x34 0x40
181
182# CHECK:	ldr.w	r5, [r6, #30]
1830xd6 0xf8 0x1e 0x50
184
185# CHECK:	ldrh.w	r5, [r6, #30]
1860xb6 0xf8 0x1e 0x50
187
188# CHECK:	ldrt	r5, [r6, #30]
1890x56 0xf8 0x1e 0x5e
190
191# CHECK:	ldr	r5, [r6, #-30]
1920x56 0xf8 0x1e 0x5c
193
194# CHECK:	sel	r7, r3, r5
1950xa3 0xfa 0x85 0xf7
196
197# CHECK:	lsl.w	r7, r3, r5
1980x03 0xfa 0x05 0xf7
199
200# CHECK:	adds.w	r7, r3, r5
2010x13 0xeb 0x05 0x07
202
203# CHECK:	smlabt	r4, r3, r2, r1
2040x13 0xfb 0x12 0x14
205
206# CHECK:	smmulr	r7, r8, r9
2070x58 0xfb 0x19 0xf7
208
209# CHECK:	umull	r1, r2, r3, r4
2100xa3 0xfb 0x04 0x12
211
212# CHECK:	pld	[r5, r0, lsl #1]
2130x15 0xf8 0x10 0xf0
214
215# CHECK:	pld	[pc, #-16]
2160x1f 0xf8 0x10 0xf0
217
218# CHECK:	pld	[r5, #30]
2190x95 0xf8 0x1e 0xf0
220
221# CHECK:	stc2	p12, c15, [r9], {137}
2220x89 0xfc 0x89 0xfc
223
224# CHECK:	stc2	p0, c0, [r0, #0]!
2250xa0 0xfd 0x00 0x00
226
227# CHECK:	vmov	r1, r0, d11
2280x50 0xec 0x1b 0x1b
229
230# CHECK:	dsb	nsh
2310xbf 0xf3 0x47 0x8f
232
233# CHECK:	isb
2340xbf 0xf3 0x6f 0x8f
235
236# CHECK:	asrs	r1, r0, #32
2370x1 0x10
238
239# CHECK:	lsr.w	r10, r0, #32
2400x4f 0xea 0x10 0x0a
241
242# CHECK:	blx	sp
2430xe8 0x47
244
245# CHECK:	bx	lr
2460x70 0x47
247
248# CHECK:	bx	pc
2490x78 0x47
250
251# CHECK:	svc	#230
2520xe6 0xdf
253
254# CHECK:	rfedb	lr
2550x1e 0xe8 0x00 0xc0
256
257# CHECK:	mov.w	r3, #4294967295
2580x4f 0xf0 0xff 0x33
259
260# CHECK:	mov	pc, sp
2610xef 0x46
262
263# CHECK:	nop
2640x00 0xbf
265
266# CHECK:	nop.w
2670xaf 0xf3 0x00 0x80
268
269# CHECK:	bne	#24
2700x0c 0xd1
271
272# CHECK:	vadd.f32	q0, q1, q2
2730x02 0xef 0x44 0x0d
274
275# CHECK:        ldrsb   r1, [r0, r0]
2760x01 0x56
277
278# CHECK:        ldrsh   r1, [r0, r0]
2790x01 0x5E
280
281# CHECK: and.w	r5, r1, r10, ror #7
2820x1 0xea 0xfa 0x95
283
284# CHECK: ldrsh	r6, [sp], #81
2850x3d 0xf9 0x51 0x6b
286
287# CHECK: usat16	r4, #10, r1
2880xa1 0xf3 0x0a 0x04
289
290# CHECK: smlad	r5, r12, r8, r11
2910x2c 0xfb 0x8 0xb5
292
293# CHECK: teq.w	r0, r11
2940x90 0xea 0xb 0x8f
295
296# CHECK: uxtb16	r9, r12, ror #16
2970x3f 0xfa 0xec 0xf9
298
299# CHECK: pldw	[r11, r12, lsl #2]
3000x3b 0xf8 0x2c 0xf0
301
302# CHECK: msr    CPSR_fc, r0
3030x80 0xf3 0x00 0x89
304
305# CHECK: mrs    r0, apsr
3060xef 0xf3 0x00 0x80
307
308# rdar://11313994
309# CHECK: blx	#2313244
3100x34 0xf2 0x0e 0xee
311
312# rdar://11324693
313# CHECK: bl	#-12303196
3140x44 0xf4 0x52 0xda
315