1	@ We do not bother testing simple cases, e.g. immediates where
2	@ registers belong, trailing junk at end of line.
3	.text
4x:
5	@ pc not allowed
6	bfc	pc,#0,#1
7	bfi	pc,r0,#0,#1
8	movw	pc,#0
9	movt	pc,#0
10
11	@ bitfield range limits
12	bfc	r0,#0,#0
13	bfc	r0,#32,#0
14	bfc	r0,#0,#33
15	bfc	r0,#33,#1
16	bfc	r0,#32,#1
17	bfc	r0,#28,#10
18
19	bfi	r0,r1,#0,#0
20	bfi	r0,r1,#32,#0
21	bfi	r0,r1,#0,#33
22	bfi	r0,r1,#33,#1
23	bfi	r0,r1,#32,#1
24	bfi	r0,r1,#28,#10
25
26	sbfx	r0,r1,#0,#0
27	sbfx	r0,r1,#32,#0
28	sbfx	r0,r1,#0,#33
29	sbfx	r0,r1,#33,#1
30	sbfx	r0,r1,#32,#1
31	sbfx	r0,r1,#28,#10
32
33	ubfx	r0,r1,#0,#0
34	ubfx	r0,r1,#32,#0
35	ubfx	r0,r1,#0,#33
36	ubfx	r0,r1,#33,#1
37	ubfx	r0,r1,#32,#1
38	ubfx	r0,r1,#28,#10
39
40	@ bfi accepts only #0 in Rm position
41	bfi	r0,#1,#2,#3
42
43	@ mov16 range limits
44	movt	r0,#65537
45	movw	r0,#65537
46	movt	r0,#-1
47	movw	r0,#-1
48
49	@ ldsttv4 Rd == Rn (warning)
50	ldrht	r0,[r0]
51	ldrsbt	r0,[r0]
52	ldrsht	r0,[r0]
53	strht	r0,[r0]
54
55	@ Bug reported by user.  GAS used to issue an error message
56	@ "r15 not allowed here" for these two instructions because
57	@ it thought that the "r2" operand was a PC-relative branch
58	@ to a label called "r2".
59	ldrex	r0, r2
60	strex	r1, r0, r2
61