Fix and clean up tests. Un-XFAIL.
[oota-llvm.git] / test / MC / ARM / neon-shift-encoding.s
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
2
3 _foo:
4 @ CHECK: vshl.u8        d16, d17, d16  @ encoding: [0xa1,0x04,0x40,0xf3]
5         vshl.u8 d16, d17, d16
6 @ CHECK: vshl.u16       d16, d17, d16  @ encoding: [0xa1,0x04,0x50,0xf3]
7         vshl.u16        d16, d17, d16
8 @ CHECK: vshl.u32       d16, d17, d16  @ encoding: [0xa1,0x04,0x60,0xf3]
9         vshl.u32        d16, d17, d16
10 @ CHECK: vshl.u64       d16, d17, d16  @ encoding: [0xa1,0x04,0x70,0xf3]
11         vshl.u64        d16, d17, d16
12 @ CHECK: vshl.i8        d16, d16, #7  @ encoding: [0x30,0x05,0xcf,0xf2]
13         vshl.i8 d16, d16, #7
14 @ CHECK: vshl.i16       d16, d16, #15  @ encoding: [0x30,0x05,0xdf,0xf2]
15         vshl.i16        d16, d16, #15
16 @ CHECK: vshl.i32       d16, d16, #31  @ encoding: [0x30,0x05,0xff,0xf2]
17         vshl.i32        d16, d16, #31
18 @ CHECK: vshl.i64       d16, d16, #63  @ encoding: [0xb0,0x05,0xff,0xf2]
19         vshl.i64        d16, d16, #63
20 @ CHECK: vshl.u8        q8, q9, q8  @ encoding: [0xe2,0x04,0x40,0xf3]
21         vshl.u8 q8, q9, q8
22 @ CHECK: vshl.u16       q8, q9, q8  @ encoding: [0xe2,0x04,0x50,0xf3]
23         vshl.u16        q8, q9, q8
24 @ CHECK: vshl.u32       q8, q9, q8  @ encoding: [0xe2,0x04,0x60,0xf3]
25         vshl.u32        q8, q9, q8
26 @ CHECK: vshl.u64       q8, q9, q8  @ encoding: [0xe2,0x04,0x70,0xf3]
27         vshl.u64        q8, q9, q8
28 @ CHECK: vshl.i8        q8, q8, #7  @ encoding: [0x70,0x05,0xcf,0xf2]
29         vshl.i8 q8, q8, #7
30 @ CHECK: vshl.i16       q8, q8, #15  @ encoding: [0x70,0x05,0xdf,0xf2]
31         vshl.i16        q8, q8, #15
32 @ CHECK: vshl.i32       q8, q8, #31  @ encoding: [0x70,0x05,0xff,0xf2]
33         vshl.i32        q8, q8, #31
34 @ CHECK: vshl.i64       q8, q8, #63  @ encoding: [0xf0,0x05,0xff,0xf2]
35         vshl.i64        q8, q8, #63
36 @ CHECK: vshr.u8        d16, d16, #7  @ encoding: [0x30,0x00,0xc9,0xf3]
37         vshr.u8 d16, d16, #7
38 @ CHECK: vshr.u16       d16, d16, #15  @ encoding: [0x30,0x00,0xd1,0xf3]
39         vshr.u16        d16, d16, #15
40 @ CHECK: vshr.u32       d16, d16, #31  @ encoding: [0x30,0x00,0xe1,0xf3]
41         vshr.u32        d16, d16, #31
42 @ CHECK: vshr.u64       d16, d16, #63  @ encoding: [0xb0,0x00,0xc1,0xf3]
43         vshr.u64        d16, d16, #63
44 @ CHECK: vshr.u8        q8, q8, #7  @ encoding: [0x70,0x00,0xc9,0xf3]
45         vshr.u8 q8, q8, #7
46 @ CHECK: vshr.u16       q8, q8, #15  @ encoding: [0x70,0x00,0xd1,0xf3]
47         vshr.u16        q8, q8, #15
48 @ CHECK: vshr.u32       q8, q8, #31  @ encoding: [0x70,0x00,0xe1,0xf3]
49         vshr.u32        q8, q8, #31
50 @ CHECK: vshr.u64       q8, q8, #63  @ encoding: [0xf0,0x00,0xc1,0xf3]
51         vshr.u64        q8, q8, #63
52 @ CHECK: vshr.s8        d16, d16, #7  @ encoding: [0x30,0x00,0xc9,0xf2]
53         vshr.s8 d16, d16, #7
54 @ CHECK: vshr.s16       d16, d16, #15  @ encoding: [0x30,0x00,0xd1,0xf2]
55         vshr.s16        d16, d16, #15
56 @ CHECK: vshr.s32       d16, d16, #31  @ encoding: [0x30,0x00,0xe1,0xf2]
57         vshr.s32        d16, d16, #31
58 @ CHECK: vshr.s64       d16, d16, #63  @ encoding: [0xb0,0x00,0xc1,0xf2]
59         vshr.s64        d16, d16, #63
60 @ CHECK: vshr.s8        q8, q8, #7  @ encoding: [0x70,0x00,0xc9,0xf2]
61         vshr.s8 q8, q8, #7
62 @ CHECK: vshr.s16       q8, q8, #15  @ encoding: [0x70,0x00,0xd1,0xf2]
63         vshr.s16        q8, q8, #15
64 @ CHECK: vshr.s32       q8, q8, #31  @ encoding: [0x70,0x00,0xe1,0xf2]
65         vshr.s32        q8, q8, #31
66 @ CHECK: vshr.s64       q8, q8, #63  @ encoding: [0xf0,0x00,0xc1,0xf2]
67         vshr.s64        q8, q8, #63
68 @ CHECK: vsra.u8  d16, d16, #7   @ encoding: [0x30,0x01,0xc9,0xf3]
69         vsra.u8   d16, d16, #7
70 @ CHECK: vsra.u16 d16, d16, #15  @ encoding: [0x30,0x01,0xd1,0xf3]
71         vsra.u16  d16, d16, #15
72 @ CHECK: vsra.u32 d16, d16, #31  @ encoding: [0x30,0x01,0xe1,0xf3]
73         vsra.u32  d16, d16, #31
74 @ CHECK: vsra.u64 d16, d16, #63  @ encoding: [0xb0,0x01,0xc1,0xf3]
75         vsra.u64  d16, d16, #63
76 @ CHECK: vsra.u8  q8, q8, #7     @ encoding: [0x70,0x01,0xc9,0xf3]
77         vsra.u8   q8, q8, #7
78 @ CHECK: vsra.u16 q8, q8, #15    @ encoding: [0x70,0x01,0xd1,0xf3]
79         vsra.u16  q8, q8, #15
80 @ CHECK: vsra.u32 q8, q8, #31    @ encoding: [0x70,0x01,0xe1,0xf3]
81         vsra.u32  q8, q8, #31
82 @ CHECK: vsra.u64 q8, q8, #63    @ encoding: [0xf0,0x01,0xc1,0xf3]
83         vsra.u64  q8, q8, #63
84 @ CHECK: vsra.s8  d16, d16, #7   @ encoding: [0x30,0x01,0xc9,0xf2]
85         vsra.s8   d16, d16, #7
86 @ CHECK: vsra.s16 d16, d16, #15  @ encoding: [0x30,0x01,0xd1,0xf2]
87         vsra.s16  d16, d16, #15
88 @ CHECK: vsra.s32 d16, d16, #31  @ encoding: [0x30,0x01,0xe1,0xf2]
89         vsra.s32  d16, d16, #31
90 @ CHECK: vsra.s64 d16, d16, #63  @ encoding: [0xb0,0x01,0xc1,0xf2]
91         vsra.s64  d16, d16, #63
92 @ CHECK: vsra.s8  q8, q8, #7     @ encoding: [0x70,0x01,0xc9,0xf2]
93         vsra.s8   q8, q8, #7
94 @ CHECK: vsra.s16 q8, q8, #15    @ encoding: [0x70,0x01,0xd1,0xf2]
95         vsra.s16  q8, q8, #15
96 @ CHECK: vsra.s32 q8, q8, #31    @ encoding: [0x70,0x01,0xe1,0xf2]
97         vsra.s32  q8, q8, #31
98 @ CHECK: vsra.s64 q8, q8, #63    @ encoding: [0xf0,0x01,0xc1,0xf2]
99         vsra.s64  q8, q8, #63
100 @ CHECK: vsri.8   d16, d16, #7  @ encoding: [0x30,0x04,0xc9,0xf3]
101         vsri.8   d16, d16, #7
102 @ CHECK: vsri.16  d16, d16, #15 @ encoding: [0x30,0x04,0xd1,0xf3]
103         vsri.16  d16, d16, #15
104 @ CHECK: vsri.32  d16, d16, #31 @ encoding: [0x30,0x04,0xe1,0xf3]
105         vsri.32  d16, d16, #31
106 @ CHECK: vsri.64  d16, d16, #63 @ encoding: [0xb0,0x04,0xc1,0xf3]
107         vsri.64  d16, d16, #63
108 @ CHECK: vsri.8   q8, q8, #7    @ encoding: [0x70,0x04,0xc9,0xf3]
109         vsri.8   q8, q8, #7
110 @ CHECK: vsri.16  q8, q8, #15   @ encoding: [0x70,0x04,0xd1,0xf3]
111         vsri.16  q8, q8, #15
112 @ CHECK: vsri.32  q8, q8, #31   @ encoding: [0x70,0x04,0xe1,0xf3]
113         vsri.32  q8, q8, #31
114 @ CHECK: vsri.64  q8, q8, #63   @ encoding: [0xf0,0x04,0xc1,0xf3]
115         vsri.64  q8, q8, #63
116 @ CHECK: vsli.8   d16, d16, #7  @ encoding: [0x30,0x05,0xcf,0xf3]
117         vsli.8   d16, d16, #7
118 @ CHECK: vsli.16  d16, d16, #15 @ encoding: [0x30,0x05,0xdf,0xf3]
119         vsli.16  d16, d16, #15
120 @ CHECK: vsli.32  d16, d16, #31 @ encoding: [0x30,0x05,0xff,0xf3]
121         vsli.32  d16, d16, #31
122 @ CHECK: vsli.64  d16, d16, #63 @ encoding: [0xb0,0x05,0xff,0xf3]
123         vsli.64  d16, d16, #63
124 @ CHECK: vsli.8   q8, q8, #7    @ encoding: [0x70,0x05,0xcf,0xf3]
125         vsli.8   q8, q8, #7
126 @ CHECK: vsli.16  q8, q8, #15   @ encoding: [0x70,0x05,0xdf,0xf3]
127         vsli.16  q8, q8, #15
128 @ CHECK: vsli.32  q8, q8, #31   @ encoding: [0x70,0x05,0xff,0xf3]
129         vsli.32  q8, q8, #31
130 @ CHECK: vsli.64  q8, q8, #63   @ encoding: [0xf0,0x05,0xff,0xf3]
131         vsli.64  q8, q8, #63
132 @ CHECK: vshll.s8       q8, d16, #7  @ encoding: [0x30,0x0a,0xcf,0xf2]
133         vshll.s8        q8, d16, #7
134 @ CHECK: vshll.s16      q8, d16, #15  @ encoding: [0x30,0x0a,0xdf,0xf2]
135         vshll.s16       q8, d16, #15
136 @ CHECK: vshll.s32      q8, d16, #31  @ encoding: [0x30,0x0a,0xff,0xf2]
137         vshll.s32       q8, d16, #31
138 @ CHECK: vshll.u8       q8, d16, #7  @ encoding: [0x30,0x0a,0xcf,0xf3]
139         vshll.u8        q8, d16, #7
140 @ CHECK: vshll.u16      q8, d16, #15  @ encoding: [0x30,0x0a,0xdf,0xf3]
141         vshll.u16       q8, d16, #15
142 @ CHECK: vshll.u32      q8, d16, #31  @ encoding: [0x30,0x0a,0xff,0xf3]
143         vshll.u32       q8, d16, #31
144 @ CHECK: vshll.i8       q8, d16, #8  @ encoding: [0x20,0x03,0xf2,0xf3]
145         vshll.i8        q8, d16, #8
146 @ CHECK: vshll.i16      q8, d16, #16  @ encoding: [0x20,0x03,0xf6,0xf3]
147         vshll.i16       q8, d16, #16
148 @ CHECK: vshll.i32      q8, d16, #32  @ encoding: [0x20,0x03,0xfa,0xf3]
149         vshll.i32       q8, d16, #32
150 @ CHECK: vshrn.i16      d16, q8, #8  @ encoding: [0x30,0x08,0xc8,0xf2]
151         vshrn.i16       d16, q8, #8
152 @ CHECK: vshrn.i32      d16, q8, #16  @ encoding: [0x30,0x08,0xd0,0xf2]
153         vshrn.i32       d16, q8, #16
154 @ CHECK: vshrn.i64      d16, q8, #32  @ encoding: [0x30,0x08,0xe0,0xf2]
155         vshrn.i64       d16, q8, #32
156 @ CHECK: vrshl.s8       d16, d17, d16  @ encoding: [0xa1,0x05,0x40,0xf2]
157         vrshl.s8        d16, d17, d16
158 @ CHECK: vrshl.s16      d16, d17, d16  @ encoding: [0xa1,0x05,0x50,0xf2]
159         vrshl.s16       d16, d17, d16
160 @ CHECK: vrshl.s32      d16, d17, d16  @ encoding: [0xa1,0x05,0x60,0xf2]
161         vrshl.s32       d16, d17, d16
162 @ CHECK: vrshl.s64      d16, d17, d16  @ encoding: [0xa1,0x05,0x70,0xf2]
163         vrshl.s64       d16, d17, d16
164 @ CHECK: vrshl.u8       d16, d17, d16  @ encoding: [0xa1,0x05,0x40,0xf3]
165         vrshl.u8        d16, d17, d16
166 @ CHECK: vrshl.u16      d16, d17, d16  @ encoding: [0xa1,0x05,0x50,0xf3]
167         vrshl.u16       d16, d17, d16
168 @ CHECK: vrshl.u32      d16, d17, d16  @ encoding: [0xa1,0x05,0x60,0xf3]
169         vrshl.u32       d16, d17, d16
170 @ CHECK: vrshl.u64      d16, d17, d16  @ encoding: [0xa1,0x05,0x70,0xf3]
171         vrshl.u64       d16, d17, d16
172 @ CHECK: vrshl.s8       q8, q9, q8  @ encoding: [0xe2,0x05,0x40,0xf2]
173         vrshl.s8        q8, q9, q8
174 @ CHECK: vrshl.s16      q8, q9, q8  @ encoding: [0xe2,0x05,0x50,0xf2]
175         vrshl.s16       q8, q9, q8
176 @ CHECK: vrshl.s32      q8, q9, q8  @ encoding: [0xe2,0x05,0x60,0xf2]
177         vrshl.s32       q8, q9, q8
178 @ CHECK: vrshl.s64      q8, q9, q8  @ encoding: [0xe2,0x05,0x70,0xf2]
179         vrshl.s64       q8, q9, q8
180 @ CHECK: vrshl.u8       q8, q9, q8  @ encoding: [0xe2,0x05,0x40,0xf3]
181         vrshl.u8        q8, q9, q8
182 @ CHECK: vrshl.u16      q8, q9, q8  @ encoding: [0xe2,0x05,0x50,0xf3]
183         vrshl.u16       q8, q9, q8
184 @ CHECK: vrshl.u32      q8, q9, q8  @ encoding: [0xe2,0x05,0x60,0xf3]
185         vrshl.u32       q8, q9, q8
186 @ CHECK: vrshl.u64      q8, q9, q8  @ encoding: [0xe2,0x05,0x70,0xf3]
187         vrshl.u64       q8, q9, q8
188 @ CHECK: vrshr.s8       d16, d16, #8  @ encoding: [0x30,0x02,0xc8,0xf2]
189         vrshr.s8        d16, d16, #8
190 @ CHECK: vrshr.s16      d16, d16, #16  @ encoding: [0x30,0x02,0xd0,0xf2]
191         vrshr.s16       d16, d16, #16
192 @ CHECK: vrshr.s32      d16, d16, #32  @ encoding: [0x30,0x02,0xe0,0xf2]
193         vrshr.s32       d16, d16, #32
194 @ CHECK: vrshr.s64      d16, d16, #64  @ encoding: [0xb0,0x02,0xc0,0xf2]
195         vrshr.s64       d16, d16, #64
196 @ CHECK: vrshr.u8       d16, d16, #8  @ encoding: [0x30,0x02,0xc8,0xf3]
197         vrshr.u8        d16, d16, #8
198 @ CHECK: vrshr.u16      d16, d16, #16  @ encoding: [0x30,0x02,0xd0,0xf3]
199         vrshr.u16       d16, d16, #16
200 @ CHECK: vrshr.u32      d16, d16, #32  @ encoding: [0x30,0x02,0xe0,0xf3]
201         vrshr.u32       d16, d16, #32
202 @ CHECK: vrshr.u64      d16, d16, #64  @ encoding: [0xb0,0x02,0xc0,0xf3]
203         vrshr.u64       d16, d16, #64
204 @ CHECK: vrshr.s8       q8, q8, #8  @ encoding: [0x70,0x02,0xc8,0xf2]
205         vrshr.s8        q8, q8, #8
206 @ CHECK: vrshr.s16      q8, q8, #16  @ encoding: [0x70,0x02,0xd0,0xf2]
207         vrshr.s16       q8, q8, #16
208 @ CHECK: vrshr.s32      q8, q8, #32  @ encoding: [0x70,0x02,0xe0,0xf2]
209         vrshr.s32       q8, q8, #32
210 @ CHECK: vrshr.s64      q8, q8, #64  @ encoding: [0xf0,0x02,0xc0,0xf2]
211         vrshr.s64       q8, q8, #64
212 @ CHECK: vrshr.u8       q8, q8, #8  @ encoding: [0x70,0x02,0xc8,0xf3]
213         vrshr.u8        q8, q8, #8
214 @ CHECK: vrshr.u16      q8, q8, #16  @ encoding: [0x70,0x02,0xd0,0xf3]
215         vrshr.u16       q8, q8, #16
216 @ CHECK: vrshr.u32      q8, q8, #32  @ encoding: [0x70,0x02,0xe0,0xf3]
217         vrshr.u32       q8, q8, #32
218 @ CHECK: vrshr.u64      q8, q8, #64  @ encoding: [0xf0,0x02,0xc0,0xf3]
219         vrshr.u64       q8, q8, #64
220 @ CHECK: vrshrn.i16     d16, q8, #8  @ encoding: [0x70,0x08,0xc8,0xf2]
221         vrshrn.i16      d16, q8, #8
222 @ CHECK: vrshrn.i32     d16, q8, #16  @ encoding: [0x70,0x08,0xd0,0xf2]
223         vrshrn.i32      d16, q8, #16
224 @ CHECK: vrshrn.i64     d16, q8, #32  @ encoding: [0x70,0x08,0xe0,0xf2]
225         vrshrn.i64      d16, q8, #32
226 @ CHECK: vqrshrn.s16    d16, q8, #4  @ encoding: [0x70,0x09,0xcc,0xf2]
227         vqrshrn.s16     d16, q8, #4
228 @ CHECK: vqrshrn.s32    d16, q8, #13  @ encoding: [0x70,0x09,0xd3,0xf2]
229         vqrshrn.s32     d16, q8, #13
230 @ CHECK: vqrshrn.s64    d16, q8, #13  @ encoding: [0x70,0x09,0xf3,0xf2]
231         vqrshrn.s64     d16, q8, #13
232 @ CHECK: vqrshrn.u16    d16, q8, #4  @ encoding: [0x70,0x09,0xcc,0xf3]
233         vqrshrn.u16     d16, q8, #4
234 @ CHECK: vqrshrn.u32    d16, q8, #13  @ encoding: [0x70,0x09,0xd3,0xf3]
235         vqrshrn.u32     d16, q8, #13
236 @ CHECK: vqrshrn.u64    d16, q8, #13  @ encoding: [0x70,0x09,0xf3,0xf3]
237         vqrshrn.u64     d16, q8, #13