1.syntax unified
2.arch armv7-a
3.thumb
4	.global foo
5foo:
6	@ldr-immediate
7
8	@!wback && (n == t)
9	ldr r1, [r1, #5]
10
11	@wback && !(n == t)
12	ldr r1, [r2, #5]!
13
14	@!(rt == r15) && rn == r15
15	@  && bits<0..1> (immediate) != 00
16	ldr r1, [r15, #5]
17
18	@rt == r15 && !(rn == r15)
19	@  && bits<0..1> (immediate) != 00
20	ldr r15, [r1, #5]
21
22	@rt == r15 && rn == r15
23	@  && bits<0..1> (immediate) == 00
24	ldr r15, [r15, #4]
25
26	@inITBlock && !(rt == 15) && !lastInITBlock
27	ittt ge
28	ldrge r1, [r15, #4]
29	nopge
30	nopge
31
32	@inITBlock && rt == 15 && lastInITBlock
33	it ge
34	ldrge r15, [r15, #4]
35
36	@ldr-literal
37
38	@inITBlock && !(rt == 15) && !lastInITBlock
39	ittt ge
40	ldrge r1, .-0xab4
41	nopge
42	nopge
43
44	@inITBlock && (rt == 15) && lastInITBlock
45	it ge
46	ldrge r15, .-0xab4
47
48	@!(rt == r15) && bits<0..1> (immediate) != 00
49	ldr r1, .-0xab7
50
51	@rt == r15 && bits<0..1> (immediate) == 00
52	ldr r15, .-0xab4
53
54	@ldr-register
55
56	@inITBlock && !(rt == 15) && !lastInITBlock
57	ittt ge
58	ldrge r1, [r2, r1]
59	nopge
60	nopge
61
62	@inITBlock && (rt == 15) && lastInITBlock
63	it ge
64	ldrge r15, [r2, r1]
65
66	@!(rm == 13 || rm == 15)
67	ldr r1, [r2, r3]
68
69	@str-immediate
70
71	@!(rt == 15 || rn == 15)
72	str r1, [r2, #10]
73
74	@!wback && (n == t)
75	str r1, [r1, #10]
76
77	@wback && !(n == t)
78	str r1, [r2, #10]!
79
80	@str-register
81
82	@!(rt == 15 || rm == 13 || rm == 15)
83	str r1, [r2, r3]
84
85