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]
264