Enable and fix a test.
[oota-llvm.git] / test / MC / ARM / neon-bitwise-encoding.s
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
2
3         vand    d16, d17, d16
4         vand    q8, q8, q9
5
6 @ CHECK: vand   d16, d17, d16           @ encoding: [0xb0,0x01,0x41,0xf2]
7 @ CHECK: vand   q8, q8, q9              @ encoding: [0xf2,0x01,0x40,0xf2]
8
9         veor    d16, d17, d16
10         veor    q8, q8, q9
11
12 @ CHECK: veor   d16, d17, d16           @ encoding: [0xb0,0x01,0x41,0xf3]
13 @ CHECK: veor   q8, q8, q9              @ encoding: [0xf2,0x01,0x40,0xf3]
14
15         vorr    d16, d17, d16
16         vorr    q8, q8, q9
17
18 @ CHECK: vorr   d16, d17, d16           @ encoding: [0xb0,0x01,0x61,0xf2]
19 @ CHECK: vorr   q8, q8, q9              @ encoding: [0xf2,0x01,0x60,0xf2]
20
21         vorr.i32        d16, #0x1000000
22         vorr.i32        q8, #0x1000000
23         vorr.i32        q8, #0x0
24
25 @ CHECK: vorr.i32       d16, #0x1000000 @ encoding: [0x11,0x07,0xc0,0xf2]
26 @ CHECK: vorr.i32       q8, #0x1000000  @ encoding: [0x51,0x07,0xc0,0xf2]
27 @ CHECK: vorr.i32       q8, #0x0        @ encoding: [0x50,0x01,0xc0,0xf2]
28
29         vbic    d16, d17, d16
30         vbic    q8, q8, q9
31         vbic.i32        d16, #0xFF000000
32         vbic.i32        q8, #0xFF000000
33
34 @ CHECK: vbic   d16, d17, d16           @ encoding: [0xb0,0x01,0x51,0xf2]
35 @ CHECK: vbic   q8, q8, q9              @ encoding: [0xf2,0x01,0x50,0xf2]
36 @ CHECK: vbic.i32       d16, #0xff000000 @ encoding: [0x3f,0x07,0xc7,0xf3]
37 @ CHECK: vbic.i32       q8, #0xff000000 @ encoding: [0x7f,0x07,0xc7,0xf3]
38
39         vorn    d16, d17, d16
40         vorn    q8, q8, q9
41
42 @ CHECK: vorn   d16, d17, d16           @ encoding: [0xb0,0x01,0x71,0xf2]
43 @ CHECK: vorn   q8, q8, q9              @ encoding: [0xf2,0x01,0x70,0xf2]
44
45         vmvn    d16, d16
46         vmvn    q8, q8
47
48 @ CHECK: vmvn   d16, d16                @ encoding: [0xa0,0x05,0xf0,0xf3]
49 @ CHECK: vmvn   q8, q8                  @ encoding: [0xe0,0x05,0xf0,0xf3]
50
51         vbsl    d18, d17, d16
52         vbsl    q8, q10, q9
53
54 @ CHECK: vbsl   d18, d17, d16           @ encoding: [0xb0,0x21,0x51,0xf3]
55 @ CHECK: vbsl   q8, q10, q9             @ encoding: [0xf2,0x01,0x54,0xf3]
56
57
58 @ Size suffices are optional.
59         veor q4, q7, q3
60         veor.8 q4, q7, q3
61         veor.16 q4, q7, q3
62         veor.32 q4, q7, q3
63         veor.64 q4, q7, q3
64
65         veor.i8 q4, q7, q3
66         veor.i16 q4, q7, q3
67         veor.i32 q4, q7, q3
68         veor.i64 q4, q7, q3
69
70         veor.s8 q4, q7, q3
71         veor.s16 q4, q7, q3
72         veor.s32 q4, q7, q3
73         veor.s64 q4, q7, q3
74
75         veor.u8 q4, q7, q3
76         veor.u16 q4, q7, q3
77         veor.u32 q4, q7, q3
78         veor.u64 q4, q7, q3
79
80         veor.p8 q4, q7, q3
81         veor.p16 q4, q7, q3
82         veor.f32 q4, q7, q3
83         veor.f64 q4, q7, q3
84
85         veor.f q4, q7, q3
86         veor.d q4, q7, q3
87
88 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
89 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
90 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
91 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
92 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
93
94 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
95 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
96 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
97 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
98
99 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
100 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
101 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
102 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
103
104 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
105 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
106 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
107 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
108
109 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
110 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
111 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
112 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
113
114 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
115 @ CHECK: veor   q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
116
117
118         vand d4, d7, d3
119         vand.8 d4, d7, d3
120         vand.16 d4, d7, d3
121         vand.32 d4, d7, d3
122         vand.64 d4, d7, d3
123
124         vand.i8 d4, d7, d3
125         vand.i16 d4, d7, d3
126         vand.i32 d4, d7, d3
127         vand.i64 d4, d7, d3
128
129         vand.s8 d4, d7, d3
130         vand.s16 d4, d7, d3
131         vand.s32 d4, d7, d3
132         vand.s64 d4, d7, d3
133
134         vand.u8 d4, d7, d3
135         vand.u16 d4, d7, d3
136         vand.u32 d4, d7, d3
137         vand.u64 d4, d7, d3
138
139         vand.p8 d4, d7, d3
140         vand.p16 d4, d7, d3
141         vand.f32 d4, d7, d3
142         vand.f64 d4, d7, d3
143
144         vand.f d4, d7, d3
145         vand.d d4, d7, d3
146
147 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
148 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
149 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
150 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
151 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
152
153 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
154 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
155 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
156 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
157
158 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
159 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
160 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
161 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
162
163 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
164 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
165 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
166 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
167
168 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
169 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
170 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
171 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
172
173 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
174 @ CHECK: vand   d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
175
176         vorr d4, d7, d3
177         vorr.8 d4, d7, d3
178         vorr.16 d4, d7, d3
179         vorr.32 d4, d7, d3
180         vorr.64 d4, d7, d3
181
182         vorr.i8 d4, d7, d3
183         vorr.i16 d4, d7, d3
184         vorr.i32 d4, d7, d3
185         vorr.i64 d4, d7, d3
186
187         vorr.s8 d4, d7, d3
188         vorr.s16 d4, d7, d3
189         vorr.s32 q4, q7, q3
190         vorr.s64 q4, q7, q3
191
192         vorr.u8 q4, q7, q3
193         vorr.u16 q4, q7, q3
194         vorr.u32 q4, q7, q3
195         vorr.u64 q4, q7, q3
196
197         vorr.p8 q4, q7, q3
198         vorr.p16 q4, q7, q3
199         vorr.f32 q4, q7, q3
200         vorr.f64 q4, q7, q3
201
202         vorr.f q4, q7, q3
203         vorr.d q4, q7, q3
204
205 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
206 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
207 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
208 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
209 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
210
211 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
212 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
213 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
214 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
215
216 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
217 @ CHECK: vorr   d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
218 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
219 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
220
221 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
222 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
223 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
224 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
225
226 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
227 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
228 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
229 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
230
231 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
232 @ CHECK: vorr   q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
233
234 @ Two-operand aliases
235         vand.s8  q6, q5
236         vand.s16 q7, q1
237         vand.s32 q8, q2
238         vand.f64 q8, q2
239
240         veor.8   q6, q5
241         veor.p16 q7, q1
242         veor.u32 q8, q2
243         veor.d   q8, q2
244
245         veor.i8  q6, q5
246         veor.16  q7, q1
247         veor.f   q8, q2
248         veor.i64 q8, q2
249
250 @ CHECK: vand   q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf2]
251 @ CHECK: vand   q7, q7, q1              @ encoding: [0x52,0xe1,0x0e,0xf2]
252 @ CHECK: vand   q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf2]
253 @ CHECK: vand   q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf2]
254
255 @ CHECK: veor   q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf3]
256 @ CHECK: veor   q7, q7, q1              @ encoding: [0x52,0xe1,0x0e,0xf3]
257 @ CHECK: veor   q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
258 @ CHECK: veor   q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
259
260 @ CHECK: veor   q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf3]
261 @ CHECK: veor   q7, q7, q1              @ encoding: [0x52,0xe1,0x0e,0xf3]
262 @ CHECK: veor   q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
263 @ CHECK: veor   q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]