ARM parsing and encodings tests for saturating arithmetic insns.
[oota-llvm.git] / test / MC / ARM / arm_instructions.s
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding %s | FileCheck %s
2
3 @ CHECK: trap
4 @ CHECK: encoding: [0xfe,0xde,0xff,0xe7]
5         trap
6
7 @ CHECK: bx     lr
8 @ CHECK: encoding: [0x1e,0xff,0x2f,0xe1]
9         bx lr
10
11 @ CHECK: vqdmull.s32    q8, d17, d16
12 @ CHECK: encoding: [0xa0,0x0d,0xe1,0xf2]
13         vqdmull.s32     q8, d17, d16
14
15 @ CHECK: and    r1, r2, r3 @ encoding: [0x03,0x10,0x02,0xe0]
16         and r1,r2,r3
17
18 @ CHECK: ands   r1, r2, r3 @ encoding: [0x03,0x10,0x12,0xe0]
19         ands r1,r2,r3
20
21 @ CHECK: eor    r1, r2, r3 @ encoding: [0x03,0x10,0x22,0xe0]
22         eor r1,r2,r3
23
24 @ CHECK: eors   r1, r2, r3 @ encoding: [0x03,0x10,0x32,0xe0]
25         eors r1,r2,r3
26
27 @ CHECK: sub    r1, r2, r3 @ encoding: [0x03,0x10,0x42,0xe0]
28         sub r1,r2,r3
29
30 @ CHECK: subs   r1, r2, r3 @ encoding: [0x03,0x10,0x52,0xe0]
31         subs r1,r2,r3
32
33 @ CHECK: add    r1, r2, r3 @ encoding: [0x03,0x10,0x82,0xe0]
34         add r1,r2,r3
35
36 @ CHECK: adds   r1, r2, r3 @ encoding: [0x03,0x10,0x92,0xe0]
37         adds r1,r2,r3
38
39 @ CHECK: adc    r1, r2, r3 @ encoding: [0x03,0x10,0xa2,0xe0]
40         adc r1,r2,r3
41
42 @ CHECK: sbc    r1, r2, r3 @ encoding: [0x03,0x10,0xc2,0xe0]
43         sbc r1,r2,r3
44
45 @ CHECK: bic    r1, r2, r3 @ encoding: [0x03,0x10,0xc2,0xe1]
46         bic r1,r2,r3
47
48 @ CHECK: bics   r1, r2, r3 @ encoding: [0x03,0x10,0xd2,0xe1]
49         bics r1,r2,r3
50
51 @ CHECK: mov    r1, r2 @ encoding: [0x02,0x10,0xa0,0xe1]
52         mov r1,r2
53
54 @ CHECK: mvn    r1, r2 @ encoding: [0x02,0x10,0xe0,0xe1]
55         mvn r1,r2
56
57 @ CHECK: mvns   r1, r2 @ encoding: [0x02,0x10,0xf0,0xe1]
58         mvns r1,r2
59
60 @ CHECK: rsb    r1, r2, r3 @ encoding: [0x03,0x10,0x62,0xe0]
61         rsb r1,r2,r3
62
63 @ CHECK: rsc    r1, r2, r3 @ encoding: [0x03,0x10,0xe2,0xe0]
64         rsc r1,r2,r3
65
66 @ CHECK: bfi  r0, r0, #5, #7 @ encoding: [0x90,0x02,0xcb,0xe7]
67         bfi  r0, r0, #5, #7
68
69 @ CHECK: bkpt  #10 @ encoding: [0x7a,0x00,0x20,0xe1]
70         bkpt  #10
71
72 @ CHECK: cdp  p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xee]
73         cdp  p7, #1, c1, c1, c1, #4
74 @ CHECK: cdp2  p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xfe]
75         cdp2  p7, #1, c1, c1, c1, #4
76
77 @ CHECK: wfe @ encoding: [0x02,0xf0,0x20,0xe3]
78         wfe
79
80 @ CHECK: wfi @ encoding: [0x03,0xf0,0x20,0xe3]
81         wfi
82
83 @ CHECK: yield @ encoding: [0x01,0xf0,0x20,0xe3]
84         yield
85
86 @ CHECK: cpsie  aif @ encoding: [0xc0,0x01,0x08,0xf1]
87         cpsie  aif
88
89 @ CHECK: cps  #15 @ encoding: [0x0f,0x00,0x02,0xf1]
90         cps  #15
91
92 @ CHECK: cpsie  if, #10 @ encoding: [0xca,0x00,0x0a,0xf1]
93         cpsie  if, #10
94
95 @ CHECK: add    r1, r2, r3, lsl r4      @ encoding: [0x13,0x14,0x82,0xe0]
96   add r1, r2, r3, lsl r4
97
98 @ CHECK: strexb  r0, r1, [r2] @ encoding: [0x91,0x0f,0xc2,0xe1]
99         strexb  r0, r1, [r2]
100
101 @ CHECK: strexh  r0, r1, [r2] @ encoding: [0x91,0x0f,0xe2,0xe1]
102         strexh  r0, r1, [r2]
103
104 @ CHECK: strex  r0, r1, [r2] @ encoding: [0x91,0x0f,0x82,0xe1]
105         strex  r0, r1, [r2]
106
107 @ CHECK: strexd  r0, r2, r3, [r1] @ encoding: [0x92,0x0f,0xa1,0xe1]
108         strexd  r0, r2, r3, [r1]
109
110 @ CHECK: ldrexb  r0, [r0] @ encoding: [0x9f,0x0f,0xd0,0xe1]
111         ldrexb  r0, [r0]
112
113 @ CHECK: ldrexh  r0, [r0] @ encoding: [0x9f,0x0f,0xf0,0xe1]
114         ldrexh  r0, [r0]
115
116 @ CHECK: ldrex  r0, [r0] @ encoding: [0x9f,0x0f,0x90,0xe1]
117         ldrex  r0, [r0]
118
119 @ CHECK: ldrexd  r0, r1, [r0] @ encoding: [0x9f,0x0f,0xb0,0xe1]
120         ldrexd  r0, r1, [r0]
121
122 @ CHECK: ssat16  r0, #7, r0 @ encoding: [0x30,0x0f,0xa6,0xe6]
123         ssat16  r0, #7, r0
124