Tidy up.
[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         vshl.u8 d16, d17, d16
5         vshl.u16        d16, d17, d16
6         vshl.u32        d16, d17, d16
7         vshl.u64        d16, d17, d16
8         vshl.i8 d16, d16, #7
9         vshl.i16        d16, d16, #15
10         vshl.i32        d16, d16, #31
11         vshl.i64        d16, d16, #63
12         vshl.u8 q8, q9, q8
13         vshl.u16        q8, q9, q8
14         vshl.u32        q8, q9, q8
15         vshl.u64        q8, q9, q8
16         vshl.i8 q8, q8, #7
17         vshl.i16        q8, q8, #15
18         vshl.i32        q8, q8, #31
19         vshl.i64        q8, q8, #63
20
21 @ CHECK: vshl.u8        d16, d17, d16  @ encoding: [0xa1,0x04,0x40,0xf3]
22 @ CHECK: vshl.u16       d16, d17, d16  @ encoding: [0xa1,0x04,0x50,0xf3]
23 @ CHECK: vshl.u32       d16, d17, d16  @ encoding: [0xa1,0x04,0x60,0xf3]
24 @ CHECK: vshl.u64       d16, d17, d16  @ encoding: [0xa1,0x04,0x70,0xf3]
25 @ CHECK: vshl.i8        d16, d16, #7  @ encoding: [0x30,0x05,0xcf,0xf2]
26 @ CHECK: vshl.i16       d16, d16, #15  @ encoding: [0x30,0x05,0xdf,0xf2]
27 @ CHECK: vshl.i32       d16, d16, #31  @ encoding: [0x30,0x05,0xff,0xf2]
28 @ CHECK: vshl.i64       d16, d16, #63  @ encoding: [0xb0,0x05,0xff,0xf2]
29 @ CHECK: vshl.u8        q8, q9, q8  @ encoding: [0xe2,0x04,0x40,0xf3]
30 @ CHECK: vshl.u16       q8, q9, q8  @ encoding: [0xe2,0x04,0x50,0xf3]
31 @ CHECK: vshl.u32       q8, q9, q8  @ encoding: [0xe2,0x04,0x60,0xf3]
32 @ CHECK: vshl.u64       q8, q9, q8  @ encoding: [0xe2,0x04,0x70,0xf3]
33 @ CHECK: vshl.i8        q8, q8, #7  @ encoding: [0x70,0x05,0xcf,0xf2]
34 @ CHECK: vshl.i16       q8, q8, #15  @ encoding: [0x70,0x05,0xdf,0xf2]
35 @ CHECK: vshl.i32       q8, q8, #31  @ encoding: [0x70,0x05,0xff,0xf2]
36 @ CHECK: vshl.i64       q8, q8, #63  @ encoding: [0xf0,0x05,0xff,0xf2]
37
38
39         vshr.u8 d16, d16, #7
40         vshr.u16        d16, d16, #15
41         vshr.u32        d16, d16, #31
42         vshr.u64        d16, d16, #63
43         vshr.u8 q8, q8, #7
44         vshr.u16        q8, q8, #15
45         vshr.u32        q8, q8, #31
46         vshr.u64        q8, q8, #63
47         vshr.s8 d16, d16, #7
48         vshr.s16        d16, d16, #15
49         vshr.s32        d16, d16, #31
50         vshr.s64        d16, d16, #63
51         vshr.s8 q8, q8, #7
52         vshr.s16        q8, q8, #15
53         vshr.s32        q8, q8, #31
54         vshr.s64        q8, q8, #63
55
56 @ CHECK: vshr.u8        d16, d16, #7  @ encoding: [0x30,0x00,0xc9,0xf3]
57 @ CHECK: vshr.u16       d16, d16, #15  @ encoding: [0x30,0x00,0xd1,0xf3]
58 @ CHECK: vshr.u32       d16, d16, #31  @ encoding: [0x30,0x00,0xe1,0xf3]
59 @ CHECK: vshr.u64       d16, d16, #63  @ encoding: [0xb0,0x00,0xc1,0xf3]
60 @ CHECK: vshr.u8        q8, q8, #7  @ encoding: [0x70,0x00,0xc9,0xf3]
61 @ CHECK: vshr.u16       q8, q8, #15  @ encoding: [0x70,0x00,0xd1,0xf3]
62 @ CHECK: vshr.u32       q8, q8, #31  @ encoding: [0x70,0x00,0xe1,0xf3]
63 @ CHECK: vshr.u64       q8, q8, #63  @ encoding: [0xf0,0x00,0xc1,0xf3]
64 @ CHECK: vshr.s8        d16, d16, #7  @ encoding: [0x30,0x00,0xc9,0xf2]
65 @ CHECK: vshr.s16       d16, d16, #15  @ encoding: [0x30,0x00,0xd1,0xf2]
66 @ CHECK: vshr.s32       d16, d16, #31  @ encoding: [0x30,0x00,0xe1,0xf2]
67 @ CHECK: vshr.s64       d16, d16, #63  @ encoding: [0xb0,0x00,0xc1,0xf2]
68 @ CHECK: vshr.s8        q8, q8, #7  @ encoding: [0x70,0x00,0xc9,0xf2]
69 @ CHECK: vshr.s16       q8, q8, #15  @ encoding: [0x70,0x00,0xd1,0xf2]
70 @ CHECK: vshr.s32       q8, q8, #31  @ encoding: [0x70,0x00,0xe1,0xf2]
71 @ CHECK: vshr.s64       q8, q8, #63  @ encoding: [0xf0,0x00,0xc1,0xf2]
72
73 @ implied destination operand variants.
74         vshr.u8 d16, #7
75         vshr.u16        d16, #15
76         vshr.u32        d16, #31
77         vshr.u64        d16, #63
78         vshr.u8 q8, #7
79         vshr.u16        q8, #15
80         vshr.u32        q8, #31
81         vshr.u64        q8, #63
82         vshr.s8 d16, #7
83         vshr.s16        d16, #15
84         vshr.s32        d16, #31
85         vshr.s64        d16, #63
86         vshr.s8 q8, #7
87         vshr.s16        q8, #15
88         vshr.s32        q8, #31
89         vshr.s64        q8, #63
90
91 @ CHECK: vshr.u8        d16, d16, #7  @ encoding: [0x30,0x00,0xc9,0xf3]
92 @ CHECK: vshr.u16       d16, d16, #15  @ encoding: [0x30,0x00,0xd1,0xf3]
93 @ CHECK: vshr.u32       d16, d16, #31  @ encoding: [0x30,0x00,0xe1,0xf3]
94 @ CHECK: vshr.u64       d16, d16, #63  @ encoding: [0xb0,0x00,0xc1,0xf3]
95 @ CHECK: vshr.u8        q8, q8, #7  @ encoding: [0x70,0x00,0xc9,0xf3]
96 @ CHECK: vshr.u16       q8, q8, #15  @ encoding: [0x70,0x00,0xd1,0xf3]
97 @ CHECK: vshr.u32       q8, q8, #31  @ encoding: [0x70,0x00,0xe1,0xf3]
98 @ CHECK: vshr.u64       q8, q8, #63  @ encoding: [0xf0,0x00,0xc1,0xf3]
99 @ CHECK: vshr.s8        d16, d16, #7  @ encoding: [0x30,0x00,0xc9,0xf2]
100 @ CHECK: vshr.s16       d16, d16, #15  @ encoding: [0x30,0x00,0xd1,0xf2]
101 @ CHECK: vshr.s32       d16, d16, #31  @ encoding: [0x30,0x00,0xe1,0xf2]
102 @ CHECK: vshr.s64       d16, d16, #63  @ encoding: [0xb0,0x00,0xc1,0xf2]
103 @ CHECK: vshr.s8        q8, q8, #7  @ encoding: [0x70,0x00,0xc9,0xf2]
104 @ CHECK: vshr.s16       q8, q8, #15  @ encoding: [0x70,0x00,0xd1,0xf2]
105 @ CHECK: vshr.s32       q8, q8, #31  @ encoding: [0x70,0x00,0xe1,0xf2]
106 @ CHECK: vshr.s64       q8, q8, #63  @ encoding: [0xf0,0x00,0xc1,0xf2]
107
108         vsra.u8   d16, d16, #7
109         vsra.u16  d16, d16, #15
110         vsra.u32  d16, d16, #31
111         vsra.u64  d16, d16, #63
112         vsra.u8   q8, q8, #7
113         vsra.u16  q8, q8, #15
114         vsra.u32  q8, q8, #31
115         vsra.u64  q8, q8, #63
116         vsra.s8   d16, d16, #7
117         vsra.s16  d16, d16, #15
118         vsra.s32  d16, d16, #31
119         vsra.s64  d16, d16, #63
120         vsra.s8   q8, q8, #7
121         vsra.s16  q8, q8, #15
122         vsra.s32  q8, q8, #31
123         vsra.s64  q8, q8, #63
124
125 @ CHECK: vsra.u8  d16, d16, #7   @ encoding: [0x30,0x01,0xc9,0xf3]
126 @ CHECK: vsra.u16 d16, d16, #15  @ encoding: [0x30,0x01,0xd1,0xf3]
127 @ CHECK: vsra.u32 d16, d16, #31  @ encoding: [0x30,0x01,0xe1,0xf3]
128 @ CHECK: vsra.u64 d16, d16, #63  @ encoding: [0xb0,0x01,0xc1,0xf3]
129 @ CHECK: vsra.u8  q8, q8, #7     @ encoding: [0x70,0x01,0xc9,0xf3]
130 @ CHECK: vsra.u16 q8, q8, #15    @ encoding: [0x70,0x01,0xd1,0xf3]
131 @ CHECK: vsra.u32 q8, q8, #31    @ encoding: [0x70,0x01,0xe1,0xf3]
132 @ CHECK: vsra.u64 q8, q8, #63    @ encoding: [0xf0,0x01,0xc1,0xf3]
133 @ CHECK: vsra.s8  d16, d16, #7   @ encoding: [0x30,0x01,0xc9,0xf2]
134 @ CHECK: vsra.s16 d16, d16, #15  @ encoding: [0x30,0x01,0xd1,0xf2]
135 @ CHECK: vsra.s32 d16, d16, #31  @ encoding: [0x30,0x01,0xe1,0xf2]
136 @ CHECK: vsra.s64 d16, d16, #63  @ encoding: [0xb0,0x01,0xc1,0xf2]
137 @ CHECK: vsra.s8  q8, q8, #7     @ encoding: [0x70,0x01,0xc9,0xf2]
138 @ CHECK: vsra.s16 q8, q8, #15    @ encoding: [0x70,0x01,0xd1,0xf2]
139 @ CHECK: vsra.s32 q8, q8, #31    @ encoding: [0x70,0x01,0xe1,0xf2]
140 @ CHECK: vsra.s64 q8, q8, #63    @ encoding: [0xf0,0x01,0xc1,0xf2]
141
142
143         vsri.8   d16, d16, #7
144         vsri.16  d16, d16, #15
145         vsri.32  d16, d16, #31
146         vsri.64  d16, d16, #63
147         vsri.8   q8, q8, #7
148         vsri.16  q8, q8, #15
149         vsri.32  q8, q8, #31
150         vsri.64  q8, q8, #63
151
152 @ CHECK: vsri.8   d16, d16, #7  @ encoding: [0x30,0x04,0xc9,0xf3]
153 @ CHECK: vsri.16  d16, d16, #15 @ encoding: [0x30,0x04,0xd1,0xf3]
154 @ CHECK: vsri.32  d16, d16, #31 @ encoding: [0x30,0x04,0xe1,0xf3]
155 @ CHECK: vsri.64  d16, d16, #63 @ encoding: [0xb0,0x04,0xc1,0xf3]
156 @ CHECK: vsri.8   q8, q8, #7    @ encoding: [0x70,0x04,0xc9,0xf3]
157 @ CHECK: vsri.16  q8, q8, #15   @ encoding: [0x70,0x04,0xd1,0xf3]
158 @ CHECK: vsri.32  q8, q8, #31   @ encoding: [0x70,0x04,0xe1,0xf3]
159 @ CHECK: vsri.64  q8, q8, #63   @ encoding: [0xf0,0x04,0xc1,0xf3]
160
161
162         vsli.8   d16, d16, #7
163         vsli.16  d16, d16, #15
164         vsli.32  d16, d16, #31
165         vsli.64  d16, d16, #63
166         vsli.8   q8, q8, #7
167         vsli.16  q8, q8, #15
168         vsli.32  q8, q8, #31
169         vsli.64  q8, q8, #63
170
171 @ CHECK: vsli.8   d16, d16, #7  @ encoding: [0x30,0x05,0xcf,0xf3]
172 @ CHECK: vsli.16  d16, d16, #15 @ encoding: [0x30,0x05,0xdf,0xf3]
173 @ CHECK: vsli.32  d16, d16, #31 @ encoding: [0x30,0x05,0xff,0xf3]
174 @ CHECK: vsli.64  d16, d16, #63 @ encoding: [0xb0,0x05,0xff,0xf3]
175 @ CHECK: vsli.8   q8, q8, #7    @ encoding: [0x70,0x05,0xcf,0xf3]
176 @ CHECK: vsli.16  q8, q8, #15   @ encoding: [0x70,0x05,0xdf,0xf3]
177 @ CHECK: vsli.32  q8, q8, #31   @ encoding: [0x70,0x05,0xff,0xf3]
178 @ CHECK: vsli.64  q8, q8, #63   @ encoding: [0xf0,0x05,0xff,0xf3]
179
180
181 @ CHECK: vshll.s8       q8, d16, #7  @ encoding: [0x30,0x0a,0xcf,0xf2]
182         vshll.s8        q8, d16, #7
183 @ CHECK: vshll.s16      q8, d16, #15  @ encoding: [0x30,0x0a,0xdf,0xf2]
184         vshll.s16       q8, d16, #15
185 @ CHECK: vshll.s32      q8, d16, #31  @ encoding: [0x30,0x0a,0xff,0xf2]
186         vshll.s32       q8, d16, #31
187 @ CHECK: vshll.u8       q8, d16, #7  @ encoding: [0x30,0x0a,0xcf,0xf3]
188         vshll.u8        q8, d16, #7
189 @ CHECK: vshll.u16      q8, d16, #15  @ encoding: [0x30,0x0a,0xdf,0xf3]
190         vshll.u16       q8, d16, #15
191 @ CHECK: vshll.u32      q8, d16, #31  @ encoding: [0x30,0x0a,0xff,0xf3]
192         vshll.u32       q8, d16, #31
193 @ CHECK: vshll.i8       q8, d16, #8  @ encoding: [0x20,0x03,0xf2,0xf3]
194         vshll.i8        q8, d16, #8
195 @ CHECK: vshll.i16      q8, d16, #16  @ encoding: [0x20,0x03,0xf6,0xf3]
196         vshll.i16       q8, d16, #16
197 @ CHECK: vshll.i32      q8, d16, #32  @ encoding: [0x20,0x03,0xfa,0xf3]
198         vshll.i32       q8, d16, #32
199 @ CHECK: vshrn.i16      d16, q8, #8  @ encoding: [0x30,0x08,0xc8,0xf2]
200         vshrn.i16       d16, q8, #8
201 @ CHECK: vshrn.i32      d16, q8, #16  @ encoding: [0x30,0x08,0xd0,0xf2]
202         vshrn.i32       d16, q8, #16
203 @ CHECK: vshrn.i64      d16, q8, #32  @ encoding: [0x30,0x08,0xe0,0xf2]
204         vshrn.i64       d16, q8, #32
205 @ CHECK: vrshl.s8       d16, d17, d16  @ encoding: [0xa1,0x05,0x40,0xf2]
206         vrshl.s8        d16, d17, d16
207 @ CHECK: vrshl.s16      d16, d17, d16  @ encoding: [0xa1,0x05,0x50,0xf2]
208         vrshl.s16       d16, d17, d16
209 @ CHECK: vrshl.s32      d16, d17, d16  @ encoding: [0xa1,0x05,0x60,0xf2]
210         vrshl.s32       d16, d17, d16
211 @ CHECK: vrshl.s64      d16, d17, d16  @ encoding: [0xa1,0x05,0x70,0xf2]
212         vrshl.s64       d16, d17, d16
213 @ CHECK: vrshl.u8       d16, d17, d16  @ encoding: [0xa1,0x05,0x40,0xf3]
214         vrshl.u8        d16, d17, d16
215 @ CHECK: vrshl.u16      d16, d17, d16  @ encoding: [0xa1,0x05,0x50,0xf3]
216         vrshl.u16       d16, d17, d16
217 @ CHECK: vrshl.u32      d16, d17, d16  @ encoding: [0xa1,0x05,0x60,0xf3]
218         vrshl.u32       d16, d17, d16
219 @ CHECK: vrshl.u64      d16, d17, d16  @ encoding: [0xa1,0x05,0x70,0xf3]
220         vrshl.u64       d16, d17, d16
221 @ CHECK: vrshl.s8       q8, q9, q8  @ encoding: [0xe2,0x05,0x40,0xf2]
222         vrshl.s8        q8, q9, q8
223 @ CHECK: vrshl.s16      q8, q9, q8  @ encoding: [0xe2,0x05,0x50,0xf2]
224         vrshl.s16       q8, q9, q8
225 @ CHECK: vrshl.s32      q8, q9, q8  @ encoding: [0xe2,0x05,0x60,0xf2]
226         vrshl.s32       q8, q9, q8
227 @ CHECK: vrshl.s64      q8, q9, q8  @ encoding: [0xe2,0x05,0x70,0xf2]
228         vrshl.s64       q8, q9, q8
229 @ CHECK: vrshl.u8       q8, q9, q8  @ encoding: [0xe2,0x05,0x40,0xf3]
230         vrshl.u8        q8, q9, q8
231 @ CHECK: vrshl.u16      q8, q9, q8  @ encoding: [0xe2,0x05,0x50,0xf3]
232         vrshl.u16       q8, q9, q8
233 @ CHECK: vrshl.u32      q8, q9, q8  @ encoding: [0xe2,0x05,0x60,0xf3]
234         vrshl.u32       q8, q9, q8
235 @ CHECK: vrshl.u64      q8, q9, q8  @ encoding: [0xe2,0x05,0x70,0xf3]
236         vrshl.u64       q8, q9, q8
237 @ CHECK: vrshr.s8       d16, d16, #8  @ encoding: [0x30,0x02,0xc8,0xf2]
238         vrshr.s8        d16, d16, #8
239 @ CHECK: vrshr.s16      d16, d16, #16  @ encoding: [0x30,0x02,0xd0,0xf2]
240         vrshr.s16       d16, d16, #16
241 @ CHECK: vrshr.s32      d16, d16, #32  @ encoding: [0x30,0x02,0xe0,0xf2]
242         vrshr.s32       d16, d16, #32
243 @ CHECK: vrshr.s64      d16, d16, #64  @ encoding: [0xb0,0x02,0xc0,0xf2]
244         vrshr.s64       d16, d16, #64
245 @ CHECK: vrshr.u8       d16, d16, #8  @ encoding: [0x30,0x02,0xc8,0xf3]
246         vrshr.u8        d16, d16, #8
247 @ CHECK: vrshr.u16      d16, d16, #16  @ encoding: [0x30,0x02,0xd0,0xf3]
248         vrshr.u16       d16, d16, #16
249 @ CHECK: vrshr.u32      d16, d16, #32  @ encoding: [0x30,0x02,0xe0,0xf3]
250         vrshr.u32       d16, d16, #32
251 @ CHECK: vrshr.u64      d16, d16, #64  @ encoding: [0xb0,0x02,0xc0,0xf3]
252         vrshr.u64       d16, d16, #64
253 @ CHECK: vrshr.s8       q8, q8, #8  @ encoding: [0x70,0x02,0xc8,0xf2]
254         vrshr.s8        q8, q8, #8
255 @ CHECK: vrshr.s16      q8, q8, #16  @ encoding: [0x70,0x02,0xd0,0xf2]
256         vrshr.s16       q8, q8, #16
257 @ CHECK: vrshr.s32      q8, q8, #32  @ encoding: [0x70,0x02,0xe0,0xf2]
258         vrshr.s32       q8, q8, #32
259 @ CHECK: vrshr.s64      q8, q8, #64  @ encoding: [0xf0,0x02,0xc0,0xf2]
260         vrshr.s64       q8, q8, #64
261 @ CHECK: vrshr.u8       q8, q8, #8  @ encoding: [0x70,0x02,0xc8,0xf3]
262         vrshr.u8        q8, q8, #8
263 @ CHECK: vrshr.u16      q8, q8, #16  @ encoding: [0x70,0x02,0xd0,0xf3]
264         vrshr.u16       q8, q8, #16
265 @ CHECK: vrshr.u32      q8, q8, #32  @ encoding: [0x70,0x02,0xe0,0xf3]
266         vrshr.u32       q8, q8, #32
267 @ CHECK: vrshr.u64      q8, q8, #64  @ encoding: [0xf0,0x02,0xc0,0xf3]
268         vrshr.u64       q8, q8, #64
269 @ CHECK: vrshrn.i16     d16, q8, #8  @ encoding: [0x70,0x08,0xc8,0xf2]
270         vrshrn.i16      d16, q8, #8
271 @ CHECK: vrshrn.i32     d16, q8, #16  @ encoding: [0x70,0x08,0xd0,0xf2]
272         vrshrn.i32      d16, q8, #16
273 @ CHECK: vrshrn.i64     d16, q8, #32  @ encoding: [0x70,0x08,0xe0,0xf2]
274         vrshrn.i64      d16, q8, #32
275 @ CHECK: vqrshrn.s16    d16, q8, #4  @ encoding: [0x70,0x09,0xcc,0xf2]
276         vqrshrn.s16     d16, q8, #4
277 @ CHECK: vqrshrn.s32    d16, q8, #13  @ encoding: [0x70,0x09,0xd3,0xf2]
278         vqrshrn.s32     d16, q8, #13
279 @ CHECK: vqrshrn.s64    d16, q8, #13  @ encoding: [0x70,0x09,0xf3,0xf2]
280         vqrshrn.s64     d16, q8, #13
281 @ CHECK: vqrshrn.u16    d16, q8, #4  @ encoding: [0x70,0x09,0xcc,0xf3]
282         vqrshrn.u16     d16, q8, #4
283 @ CHECK: vqrshrn.u32    d16, q8, #13  @ encoding: [0x70,0x09,0xd3,0xf3]
284         vqrshrn.u32     d16, q8, #13
285 @ CHECK: vqrshrn.u64    d16, q8, #13  @ encoding: [0x70,0x09,0xf3,0xf3]
286         vqrshrn.u64     d16, q8, #13
287
288 @ Optional destination operand variants.
289         vshl.s8 q4, q5
290         vshl.s16 q4, q5
291         vshl.s32 q4, q5
292         vshl.s64 q4, q5
293
294         vshl.u8 q4, q5
295         vshl.u16 q4, q5
296         vshl.u32 q4, q5
297         vshl.u64 q4, q5
298
299         vshl.s8 d4, d5
300         vshl.s16 d4, d5
301         vshl.s32 d4, d5
302         vshl.s64 d4, d5
303
304         vshl.u8 d4, d5
305         vshl.u16 d4, d5
306         vshl.u32 d4, d5
307         vshl.u64 d4, d5
308
309 @ CHECK: vshl.s8        q4, q4, q5      @ encoding: [0x48,0x84,0x0a,0xf2]
310 @ CHECK: vshl.s16       q4, q4, q5      @ encoding: [0x48,0x84,0x1a,0xf2]
311 @ CHECK: vshl.s32       q4, q4, q5      @ encoding: [0x48,0x84,0x2a,0xf2]
312 @ CHECK: vshl.s64       q4, q4, q5      @ encoding: [0x48,0x84,0x3a,0xf2]
313
314 @ CHECK: vshl.u8        q4, q4, q5      @ encoding: [0x48,0x84,0x0a,0xf3]
315 @ CHECK: vshl.u16       q4, q4, q5      @ encoding: [0x48,0x84,0x1a,0xf3]
316 @ CHECK: vshl.u32       q4, q4, q5      @ encoding: [0x48,0x84,0x2a,0xf3]
317 @ CHECK: vshl.u64       q4, q4, q5      @ encoding: [0x48,0x84,0x3a,0xf3]
318
319 @ CHECK: vshl.s8        d4, d4, d5      @ encoding: [0x04,0x44,0x05,0xf2]
320 @ CHECK: vshl.s16       d4, d4, d5      @ encoding: [0x04,0x44,0x15,0xf2]
321 @ CHECK: vshl.s32       d4, d4, d5      @ encoding: [0x04,0x44,0x25,0xf2]
322 @ CHECK: vshl.s64       d4, d4, d5      @ encoding: [0x04,0x44,0x35,0xf2]
323
324 @ CHECK: vshl.u8        d4, d4, d5      @ encoding: [0x04,0x44,0x05,0xf3]
325 @ CHECK: vshl.u16       d4, d4, d5      @ encoding: [0x04,0x44,0x15,0xf3]
326 @ CHECK: vshl.u32       d4, d4, d5      @ encoding: [0x04,0x44,0x25,0xf3]
327 @ CHECK: vshl.u64       d4, d4, d5      @ encoding: [0x04,0x44,0x35,0xf3]
328
329         vshl.s8 q4, #2
330         vshl.s16 q4, #14
331         vshl.s32 q4, #27
332         vshl.s64 q4, #35
333
334         vshl.s8 d4, #6
335         vshl.u16 d4, #10
336         vshl.s32 d4, #17
337         vshl.u64 d4, #43
338
339 @ CHECK: vshl.i8        q4, q4, #2      @ encoding: [0x58,0x85,0x8a,0xf2]
340 @ CHECK: vshl.i16       q4, q4, #14     @ encoding: [0x58,0x85,0x9e,0xf2]
341 @ CHECK: vshl.i32       q4, q4, #27     @ encoding: [0x58,0x85,0xbb,0xf2]
342 @ CHECK: vshl.i64       q4, q4, #35     @ encoding: [0xd8,0x85,0xa3,0xf2]
343
344 @ CHECK: vshl.i8        d4, d4, #6      @ encoding: [0x14,0x45,0x8e,0xf2]
345 @ CHECK: vshl.i16       d4, d4, #10     @ encoding: [0x14,0x45,0x9a,0xf2]
346 @ CHECK: vshl.i32       d4, d4, #17     @ encoding: [0x14,0x45,0xb1,0xf2]
347 @ CHECK: vshl.i64       d4, d4, #43     @ encoding: [0x94,0x45,0xab,0xf2]