Simplify some code with no functionality change. Make the test a lot more
[llvm.git] / test / MC / ARM / arm_instructions.s
blob40e3342ba574c4bcbe42afccec0fb9dc685b6b0e
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding %s | FileCheck %s
3 @ CHECK: nop
4 @ CHECK: encoding: [0x00,0xf0,0x20,0xe3]
5 nop
7 @ CHECK: nopeq
8 @ CHECK: encoding: [0x00,0xf0,0x20,0x03]
9 nopeq
11 @ CHECK: trap
12 @ CHECK: encoding: [0xfe,0xde,0xff,0xe7]
13 trap
15 @ CHECK: bx lr
16 @ CHECK: encoding: [0x1e,0xff,0x2f,0xe1]
17 bx lr
19 @ CHECK: vqdmull.s32 q8, d17, d16
20 @ CHECK: encoding: [0xa0,0x0d,0xe1,0xf2]
21 vqdmull.s32 q8, d17, d16
23 @ CHECK: ldmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8]
24 @ CHECK: ldmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe9]
25 @ CHECK: ldmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe8]
26 @ CHECK: ldmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe9]
27 ldmia r2, {r1,r3-r6,sp}
28 ldmib r2, {r1,r3-r6,sp}
29 ldmda r2, {r1,r3-r6,sp}
30 ldmdb r2, {r1,r3-r6,sp}
32 @ CHECK: stmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8]
33 @ CHECK: stmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe9]
34 @ CHECK: stmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe8]
35 @ CHECK: stmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe9]
36 stmia r2, {r1,r3-r6,sp}
37 stmib r2, {r1,r3-r6,sp}
38 stmda r2, {r1,r3-r6,sp}
39 stmdb r2, {r1,r3-r6,sp}
41 @ CHECK: ldmia r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe8]
42 @ CHECK: ldmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe9]
43 @ CHECK: ldmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe8]
44 @ CHECK: ldmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe9]
45 ldmia r2!, {r1,r3-r6,sp}
46 ldmib r2!, {r1,r3-r6,sp}
47 ldmda r2!, {r1,r3-r6,sp}
48 ldmdb r2!, {r1,r3-r6,sp}
50 @ CHECK: stmia r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe8]
51 @ CHECK: stmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe9]
52 @ CHECK: stmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe8]
53 @ CHECK: stmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe9]
54 stmia r2!, {r1,r3-r6,sp}
55 stmib r2!, {r1,r3-r6,sp}
56 stmda r2!, {r1,r3-r6,sp}
57 stmdb r2!, {r1,r3-r6,sp}
59 @ CHECK: and r1, r2, r3 @ encoding: [0x03,0x10,0x02,0xe0]
60 and r1,r2,r3
62 @ FIXME: This is wrong, we are dropping the 's' for now.
63 @ CHECK-FIXME: ands r1, r2, r3 @ encoding: [0x03,0x10,0x12,0xe0]
64 ands r1,r2,r3
66 @ CHECK: eor r1, r2, r3 @ encoding: [0x03,0x10,0x22,0xe0]
67 eor r1,r2,r3
69 @ FIXME: This is wrong, we are dropping the 's' for now.
70 @ CHECK-FIXME: eors r1, r2, r3 @ encoding: [0x03,0x10,0x32,0xe0]
71 eors r1,r2,r3
73 @ CHECK: sub r1, r2, r3 @ encoding: [0x03,0x10,0x42,0xe0]
74 sub r1,r2,r3
76 @ FIXME: This is wrong, we are dropping the 's' for now.
77 @ CHECK-FIXME: subs r1, r2, r3 @ encoding: [0x03,0x10,0x52,0xe0]
78 subs r1,r2,r3
80 @ CHECK: add r1, r2, r3 @ encoding: [0x03,0x10,0x82,0xe0]
81 add r1,r2,r3
83 @ FIXME: This is wrong, we are dropping the 's' for now.
84 @ CHECK-FIXME: adds r1, r2, r3 @ encoding: [0x03,0x10,0x92,0xe0]
85 adds r1,r2,r3
87 @ CHECK: adc r1, r2, r3 @ encoding: [0x03,0x10,0xa2,0xe0]
88 adc r1,r2,r3
90 @ CHECK: sbc r1, r2, r3 @ encoding: [0x03,0x10,0xc2,0xe0]
91 sbc r1,r2,r3
93 @ CHECK: orr r1, r2, r3 @ encoding: [0x03,0x10,0x82,0xe1]
94 orr r1,r2,r3
96 @ FIXME: This is wrong, we are dropping the 's' for now.
97 @ CHECK-FIXME: orrs r1, r2, r3 @ encoding: [0x03,0x10,0x92,0xe1]
98 orrs r1,r2,r3
100 @ CHECK: bic r1, r2, r3 @ encoding: [0x03,0x10,0xc2,0xe1]
101 bic r1,r2,r3
103 @ FIXME: This is wrong, we are dropping the 's' for now.
104 @ CHECK-FIXME: bics r1, r2, r3 @ encoding: [0x03,0x10,0xd2,0xe1]
105 bics r1,r2,r3
107 @ CHECK: mov r1, r2 @ encoding: [0x02,0x10,0xa0,0xe1]
108 mov r1,r2
110 @ CHECK: mvn r1, r2 @ encoding: [0x02,0x10,0xe0,0xe1]
111 mvn r1,r2
113 @ FIXME: This is wrong, we are dropping the 's' for now.
114 @ CHECK-FIXME: mvns r1, r2 @ encoding: [0x02,0x10,0xf0,0xe1]
115 mvns r1,r2
117 @ CHECK: rsb r1, r2, r3 @ encoding: [0x03,0x10,0x62,0xe0]
118 rsb r1,r2,r3
120 @ CHECK: rsc r1, r2, r3 @ encoding: [0x03,0x10,0xe2,0xe0]
121 rsc r1,r2,r3
123 @ FIXME: This is broken, CCOut operands don't work correctly when their presence
124 @ may depend on flags.
125 @ CHECK-FIXME:: mlas r1, r2, r3, r4 @ encoding: [0x92,0x43,0x31,0xe0]
126 @ mlas r1,r2,r3,r4
128 @ CHECK: bfi r0, r0, #5, #7 @ encoding: [0x90,0x02,0xcb,0xe7]
129 bfi r0, r0, #5, #7
131 @ CHECK: bkpt #10 @ encoding: [0x7a,0x00,0x20,0xe1]
132 bkpt #10
134 @ CHECK: isb @ encoding: [0x6f,0xf0,0x7f,0xf5]
136 @ CHECK: mrs r8, cpsr @ encoding: [0x00,0x80,0x0f,0xe1]
137 mrs r8, cpsr
139 @ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xee]
140 mcr p7, #1, r5, c1, c1, #4
141 @ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x92,0x1e,0x11,0xee]
142 mrc p14, #0, r1, c1, c2, #4
143 @ CHECK: mcrr p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x44,0xec]
144 mcrr p7, #1, r5, r4, c1
145 @ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0xec]
146 mrrc p7, #1, r5, r4, c1
148 @ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xfe]
149 mcr2 p7, #1, r5, c1, c1, #4
150 @ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x92,0x1e,0x11,0xfe]
151 mrc2 p14, #0, r1, c1, c2, #4
152 @ CHECK: mcrr2 p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x44,0xfc]
153 mcrr2 p7, #1, r5, r4, c1
154 @ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0xfc]
155 mrrc2 p7, #1, r5, r4, c1
157 @ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xee]
158 cdp p7, #1, c1, c1, c1, #4
159 @ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xfe]
160 cdp2 p7, #1, c1, c1, c1, #4
162 @ CHECK: clrex @ encoding: [0x1f,0xf0,0x7f,0xf5]
163 clrex
165 @ CHECK: clz r9, r0 @ encoding: [0x10,0x9f,0x6f,0xe1]
166 clz r9, r0
168 @ CHECK: qadd r1, r2, r3 @ encoding: [0x52,0x10,0x03,0xe1]
169 qadd r1, r2, r3
171 @ CHECK: qsub r1, r2, r3 @ encoding: [0x52,0x10,0x23,0xe1]
172 qsub r1, r2, r3
174 @ CHECK: qdadd r1, r2, r3 @ encoding: [0x52,0x10,0x43,0xe1]
175 qdadd r1, r2, r3
177 @ CHECK: qdsub r1, r2, r3 @ encoding: [0x52,0x10,0x63,0xe1]
178 qdsub r1, r2, r3