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        vbic q10, q11
34        vbic d9, d1
35
36@ CHECK: vbic	d16, d17, d16           @ encoding: [0xb0,0x01,0x51,0xf2]
37@ CHECK: vbic	q8, q8, q9              @ encoding: [0xf2,0x01,0x50,0xf2]
38@ CHECK: vbic.i32	d16, #0xff000000 @ encoding: [0x3f,0x07,0xc7,0xf3]
39@ CHECK: vbic.i32	q8, #0xff000000 @ encoding: [0x7f,0x07,0xc7,0xf3]
40@ CHECK: vbic	q10, q10, q11           @ encoding: [0xf6,0x41,0x54,0xf2]
41@ CHECK: vbic	d9, d9, d1              @ encoding: [0x11,0x91,0x19,0xf2]
42
43
44	vorn	d16, d17, d16
45	vorn	q8, q8, q9
46
47@ CHECK: vorn	d16, d17, d16           @ encoding: [0xb0,0x01,0x71,0xf2]
48@ CHECK: vorn	q8, q8, q9              @ encoding: [0xf2,0x01,0x70,0xf2]
49
50	vmvn	d16, d16
51	vmvn	q8, q8
52
53@ CHECK: vmvn	d16, d16                @ encoding: [0xa0,0x05,0xf0,0xf3]
54@ CHECK: vmvn	q8, q8                  @ encoding: [0xe0,0x05,0xf0,0xf3]
55
56	vbsl	d18, d17, d16
57	vbsl	q8, q10, q9
58
59@ CHECK: vbsl	d18, d17, d16           @ encoding: [0xb0,0x21,0x51,0xf3]
60@ CHECK: vbsl	q8, q10, q9             @ encoding: [0xf2,0x01,0x54,0xf3]
61
62
63@ Size suffices are optional.
64        veor q4, q7, q3
65        veor.8 q4, q7, q3
66        veor.16 q4, q7, q3
67        veor.32 q4, q7, q3
68        veor.64 q4, q7, q3
69
70        veor.i8 q4, q7, q3
71        veor.i16 q4, q7, q3
72        veor.i32 q4, q7, q3
73        veor.i64 q4, q7, q3
74
75        veor.s8 q4, q7, q3
76        veor.s16 q4, q7, q3
77        veor.s32 q4, q7, q3
78        veor.s64 q4, q7, q3
79
80        veor.u8 q4, q7, q3
81        veor.u16 q4, q7, q3
82        veor.u32 q4, q7, q3
83        veor.u64 q4, q7, q3
84
85        veor.p8 q4, q7, q3
86        veor.p16 q4, q7, q3
87        veor.f32 q4, q7, q3
88        veor.f64 q4, q7, q3
89
90        veor.f q4, q7, q3
91        veor.d q4, q7, q3
92
93@ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
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@ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
117@ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
118
119@ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
120@ CHECK: veor	q4, q7, q3              @ encoding: [0x56,0x81,0x0e,0xf3]
121
122
123        vand d4, d7, d3
124        vand.8 d4, d7, d3
125        vand.16 d4, d7, d3
126        vand.32 d4, d7, d3
127        vand.64 d4, d7, d3
128
129        vand.i8 d4, d7, d3
130        vand.i16 d4, d7, d3
131        vand.i32 d4, d7, d3
132        vand.i64 d4, d7, d3
133
134        vand.s8 d4, d7, d3
135        vand.s16 d4, d7, d3
136        vand.s32 d4, d7, d3
137        vand.s64 d4, d7, d3
138
139        vand.u8 d4, d7, d3
140        vand.u16 d4, d7, d3
141        vand.u32 d4, d7, d3
142        vand.u64 d4, d7, d3
143
144        vand.p8 d4, d7, d3
145        vand.p16 d4, d7, d3
146        vand.f32 d4, d7, d3
147        vand.f64 d4, d7, d3
148
149        vand.f d4, d7, d3
150        vand.d d4, d7, d3
151
152@ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
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@ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
176@ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
177
178@ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
179@ CHECK: vand	d4, d7, d3              @ encoding: [0x13,0x41,0x07,0xf2]
180
181        vorr d4, d7, d3
182        vorr.8 d4, d7, d3
183        vorr.16 d4, d7, d3
184        vorr.32 d4, d7, d3
185        vorr.64 d4, d7, d3
186
187        vorr.i8 d4, d7, d3
188        vorr.i16 d4, d7, d3
189        vorr.i32 d4, d7, d3
190        vorr.i64 d4, d7, d3
191
192        vorr.s8 d4, d7, d3
193        vorr.s16 d4, d7, d3
194        vorr.s32 q4, q7, q3
195        vorr.s64 q4, q7, q3
196
197        vorr.u8 q4, q7, q3
198        vorr.u16 q4, q7, q3
199        vorr.u32 q4, q7, q3
200        vorr.u64 q4, q7, q3
201
202        vorr.p8 q4, q7, q3
203        vorr.p16 q4, q7, q3
204        vorr.f32 q4, q7, q3
205        vorr.f64 q4, q7, q3
206
207        vorr.f q4, q7, q3
208        vorr.d q4, q7, q3
209
210@ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
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	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
219@ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
220
221@ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,0xf2]
222@ CHECK: vorr	d4, d7, d3              @ encoding: [0x13,0x41,0x27,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@ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
234@ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
235
236@ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
237@ CHECK: vorr	q4, q7, q3              @ encoding: [0x56,0x81,0x2e,0xf2]
238
239@ Two-operand aliases
240	vand  q6, q5
241	vand.s8  q6, q5
242	vand.s16 q7, q1
243	vand.s32 q8, q2
244	vand.f64 q8, q2
245
246	veor   q6, q5
247	veor.8   q6, q5
248	veor.p16 q7, q1
249	veor.u32 q8, q2
250	veor.d   q8, q2
251
252	veor  q6, q5
253	veor.i8  q6, q5
254	veor.16  q7, q1
255	veor.f   q8, q2
256	veor.i64 q8, q2
257
258@ CHECK: vand	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf2]
259@ CHECK: vand	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf2]
260@ CHECK: vand	q7, q7, q1              @ encoding: [0x52,0xe1,0x0e,0xf2]
261@ CHECK: vand	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf2]
262@ CHECK: vand	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf2]
263
264@ CHECK: veor	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf3]
265@ CHECK: veor	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf3]
266@ CHECK: veor	q7, q7, q1              @ encoding: [0x52,0xe1,0x0e,0xf3]
267@ CHECK: veor	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
268@ CHECK: veor	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
269
270@ CHECK: veor	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf3]
271@ CHECK: veor	q6, q6, q5              @ encoding: [0x5a,0xc1,0x0c,0xf3]
272@ CHECK: veor	q7, q7, q1              @ encoding: [0x52,0xe1,0x0e,0xf3]
273@ CHECK: veor	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
274@ CHECK: veor	q8, q8, q2              @ encoding: [0xd4,0x01,0x40,0xf3]
275