NEON use vmov.i32 to splat some f32 values into vectors.
[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 @ CHECK: vsra.u8  d16, d16, #7   @ encoding: [0x30,0x01,0xc9,0xf3]
109         vsra.u8   d16, d16, #7
110 @ CHECK: vsra.u16 d16, d16, #15  @ encoding: [0x30,0x01,0xd1,0xf3]
111         vsra.u16  d16, d16, #15
112 @ CHECK: vsra.u32 d16, d16, #31  @ encoding: [0x30,0x01,0xe1,0xf3]
113         vsra.u32  d16, d16, #31
114 @ CHECK: vsra.u64 d16, d16, #63  @ encoding: [0xb0,0x01,0xc1,0xf3]
115         vsra.u64  d16, d16, #63
116 @ CHECK: vsra.u8  q8, q8, #7     @ encoding: [0x70,0x01,0xc9,0xf3]
117         vsra.u8   q8, q8, #7
118 @ CHECK: vsra.u16 q8, q8, #15    @ encoding: [0x70,0x01,0xd1,0xf3]
119         vsra.u16  q8, q8, #15
120 @ CHECK: vsra.u32 q8, q8, #31    @ encoding: [0x70,0x01,0xe1,0xf3]
121         vsra.u32  q8, q8, #31
122 @ CHECK: vsra.u64 q8, q8, #63    @ encoding: [0xf0,0x01,0xc1,0xf3]
123         vsra.u64  q8, q8, #63
124 @ CHECK: vsra.s8  d16, d16, #7   @ encoding: [0x30,0x01,0xc9,0xf2]
125         vsra.s8   d16, d16, #7
126 @ CHECK: vsra.s16 d16, d16, #15  @ encoding: [0x30,0x01,0xd1,0xf2]
127         vsra.s16  d16, d16, #15
128 @ CHECK: vsra.s32 d16, d16, #31  @ encoding: [0x30,0x01,0xe1,0xf2]
129         vsra.s32  d16, d16, #31
130 @ CHECK: vsra.s64 d16, d16, #63  @ encoding: [0xb0,0x01,0xc1,0xf2]
131         vsra.s64  d16, d16, #63
132 @ CHECK: vsra.s8  q8, q8, #7     @ encoding: [0x70,0x01,0xc9,0xf2]
133         vsra.s8   q8, q8, #7
134 @ CHECK: vsra.s16 q8, q8, #15    @ encoding: [0x70,0x01,0xd1,0xf2]
135         vsra.s16  q8, q8, #15
136 @ CHECK: vsra.s32 q8, q8, #31    @ encoding: [0x70,0x01,0xe1,0xf2]
137         vsra.s32  q8, q8, #31
138 @ CHECK: vsra.s64 q8, q8, #63    @ encoding: [0xf0,0x01,0xc1,0xf2]
139         vsra.s64  q8, q8, #63
140 @ CHECK: vsri.8   d16, d16, #7  @ encoding: [0x30,0x04,0xc9,0xf3]
141         vsri.8   d16, d16, #7
142 @ CHECK: vsri.16  d16, d16, #15 @ encoding: [0x30,0x04,0xd1,0xf3]
143         vsri.16  d16, d16, #15
144 @ CHECK: vsri.32  d16, d16, #31 @ encoding: [0x30,0x04,0xe1,0xf3]
145         vsri.32  d16, d16, #31
146 @ CHECK: vsri.64  d16, d16, #63 @ encoding: [0xb0,0x04,0xc1,0xf3]
147         vsri.64  d16, d16, #63
148 @ CHECK: vsri.8   q8, q8, #7    @ encoding: [0x70,0x04,0xc9,0xf3]
149         vsri.8   q8, q8, #7
150 @ CHECK: vsri.16  q8, q8, #15   @ encoding: [0x70,0x04,0xd1,0xf3]
151         vsri.16  q8, q8, #15
152 @ CHECK: vsri.32  q8, q8, #31   @ encoding: [0x70,0x04,0xe1,0xf3]
153         vsri.32  q8, q8, #31
154 @ CHECK: vsri.64  q8, q8, #63   @ encoding: [0xf0,0x04,0xc1,0xf3]
155         vsri.64  q8, q8, #63
156 @ CHECK: vsli.8   d16, d16, #7  @ encoding: [0x30,0x05,0xcf,0xf3]
157         vsli.8   d16, d16, #7
158 @ CHECK: vsli.16  d16, d16, #15 @ encoding: [0x30,0x05,0xdf,0xf3]
159         vsli.16  d16, d16, #15
160 @ CHECK: vsli.32  d16, d16, #31 @ encoding: [0x30,0x05,0xff,0xf3]
161         vsli.32  d16, d16, #31
162 @ CHECK: vsli.64  d16, d16, #63 @ encoding: [0xb0,0x05,0xff,0xf3]
163         vsli.64  d16, d16, #63
164 @ CHECK: vsli.8   q8, q8, #7    @ encoding: [0x70,0x05,0xcf,0xf3]
165         vsli.8   q8, q8, #7
166 @ CHECK: vsli.16  q8, q8, #15   @ encoding: [0x70,0x05,0xdf,0xf3]
167         vsli.16  q8, q8, #15
168 @ CHECK: vsli.32  q8, q8, #31   @ encoding: [0x70,0x05,0xff,0xf3]
169         vsli.32  q8, q8, #31
170 @ CHECK: vsli.64  q8, q8, #63   @ encoding: [0xf0,0x05,0xff,0xf3]
171         vsli.64  q8, q8, #63
172 @ CHECK: vshll.s8       q8, d16, #7  @ encoding: [0x30,0x0a,0xcf,0xf2]
173         vshll.s8        q8, d16, #7
174 @ CHECK: vshll.s16      q8, d16, #15  @ encoding: [0x30,0x0a,0xdf,0xf2]
175         vshll.s16       q8, d16, #15
176 @ CHECK: vshll.s32      q8, d16, #31  @ encoding: [0x30,0x0a,0xff,0xf2]
177         vshll.s32       q8, d16, #31
178 @ CHECK: vshll.u8       q8, d16, #7  @ encoding: [0x30,0x0a,0xcf,0xf3]
179         vshll.u8        q8, d16, #7
180 @ CHECK: vshll.u16      q8, d16, #15  @ encoding: [0x30,0x0a,0xdf,0xf3]
181         vshll.u16       q8, d16, #15
182 @ CHECK: vshll.u32      q8, d16, #31  @ encoding: [0x30,0x0a,0xff,0xf3]
183         vshll.u32       q8, d16, #31
184 @ CHECK: vshll.i8       q8, d16, #8  @ encoding: [0x20,0x03,0xf2,0xf3]
185         vshll.i8        q8, d16, #8
186 @ CHECK: vshll.i16      q8, d16, #16  @ encoding: [0x20,0x03,0xf6,0xf3]
187         vshll.i16       q8, d16, #16
188 @ CHECK: vshll.i32      q8, d16, #32  @ encoding: [0x20,0x03,0xfa,0xf3]
189         vshll.i32       q8, d16, #32
190 @ CHECK: vshrn.i16      d16, q8, #8  @ encoding: [0x30,0x08,0xc8,0xf2]
191         vshrn.i16       d16, q8, #8
192 @ CHECK: vshrn.i32      d16, q8, #16  @ encoding: [0x30,0x08,0xd0,0xf2]
193         vshrn.i32       d16, q8, #16
194 @ CHECK: vshrn.i64      d16, q8, #32  @ encoding: [0x30,0x08,0xe0,0xf2]
195         vshrn.i64       d16, q8, #32
196 @ CHECK: vrshl.s8       d16, d17, d16  @ encoding: [0xa1,0x05,0x40,0xf2]
197         vrshl.s8        d16, d17, d16
198 @ CHECK: vrshl.s16      d16, d17, d16  @ encoding: [0xa1,0x05,0x50,0xf2]
199         vrshl.s16       d16, d17, d16
200 @ CHECK: vrshl.s32      d16, d17, d16  @ encoding: [0xa1,0x05,0x60,0xf2]
201         vrshl.s32       d16, d17, d16
202 @ CHECK: vrshl.s64      d16, d17, d16  @ encoding: [0xa1,0x05,0x70,0xf2]
203         vrshl.s64       d16, d17, d16
204 @ CHECK: vrshl.u8       d16, d17, d16  @ encoding: [0xa1,0x05,0x40,0xf3]
205         vrshl.u8        d16, d17, d16
206 @ CHECK: vrshl.u16      d16, d17, d16  @ encoding: [0xa1,0x05,0x50,0xf3]
207         vrshl.u16       d16, d17, d16
208 @ CHECK: vrshl.u32      d16, d17, d16  @ encoding: [0xa1,0x05,0x60,0xf3]
209         vrshl.u32       d16, d17, d16
210 @ CHECK: vrshl.u64      d16, d17, d16  @ encoding: [0xa1,0x05,0x70,0xf3]
211         vrshl.u64       d16, d17, d16
212 @ CHECK: vrshl.s8       q8, q9, q8  @ encoding: [0xe2,0x05,0x40,0xf2]
213         vrshl.s8        q8, q9, q8
214 @ CHECK: vrshl.s16      q8, q9, q8  @ encoding: [0xe2,0x05,0x50,0xf2]
215         vrshl.s16       q8, q9, q8
216 @ CHECK: vrshl.s32      q8, q9, q8  @ encoding: [0xe2,0x05,0x60,0xf2]
217         vrshl.s32       q8, q9, q8
218 @ CHECK: vrshl.s64      q8, q9, q8  @ encoding: [0xe2,0x05,0x70,0xf2]
219         vrshl.s64       q8, q9, q8
220 @ CHECK: vrshl.u8       q8, q9, q8  @ encoding: [0xe2,0x05,0x40,0xf3]
221         vrshl.u8        q8, q9, q8
222 @ CHECK: vrshl.u16      q8, q9, q8  @ encoding: [0xe2,0x05,0x50,0xf3]
223         vrshl.u16       q8, q9, q8
224 @ CHECK: vrshl.u32      q8, q9, q8  @ encoding: [0xe2,0x05,0x60,0xf3]
225         vrshl.u32       q8, q9, q8
226 @ CHECK: vrshl.u64      q8, q9, q8  @ encoding: [0xe2,0x05,0x70,0xf3]
227         vrshl.u64       q8, q9, q8
228 @ CHECK: vrshr.s8       d16, d16, #8  @ encoding: [0x30,0x02,0xc8,0xf2]
229         vrshr.s8        d16, d16, #8
230 @ CHECK: vrshr.s16      d16, d16, #16  @ encoding: [0x30,0x02,0xd0,0xf2]
231         vrshr.s16       d16, d16, #16
232 @ CHECK: vrshr.s32      d16, d16, #32  @ encoding: [0x30,0x02,0xe0,0xf2]
233         vrshr.s32       d16, d16, #32
234 @ CHECK: vrshr.s64      d16, d16, #64  @ encoding: [0xb0,0x02,0xc0,0xf2]
235         vrshr.s64       d16, d16, #64
236 @ CHECK: vrshr.u8       d16, d16, #8  @ encoding: [0x30,0x02,0xc8,0xf3]
237         vrshr.u8        d16, d16, #8
238 @ CHECK: vrshr.u16      d16, d16, #16  @ encoding: [0x30,0x02,0xd0,0xf3]
239         vrshr.u16       d16, d16, #16
240 @ CHECK: vrshr.u32      d16, d16, #32  @ encoding: [0x30,0x02,0xe0,0xf3]
241         vrshr.u32       d16, d16, #32
242 @ CHECK: vrshr.u64      d16, d16, #64  @ encoding: [0xb0,0x02,0xc0,0xf3]
243         vrshr.u64       d16, d16, #64
244 @ CHECK: vrshr.s8       q8, q8, #8  @ encoding: [0x70,0x02,0xc8,0xf2]
245         vrshr.s8        q8, q8, #8
246 @ CHECK: vrshr.s16      q8, q8, #16  @ encoding: [0x70,0x02,0xd0,0xf2]
247         vrshr.s16       q8, q8, #16
248 @ CHECK: vrshr.s32      q8, q8, #32  @ encoding: [0x70,0x02,0xe0,0xf2]
249         vrshr.s32       q8, q8, #32
250 @ CHECK: vrshr.s64      q8, q8, #64  @ encoding: [0xf0,0x02,0xc0,0xf2]
251         vrshr.s64       q8, q8, #64
252 @ CHECK: vrshr.u8       q8, q8, #8  @ encoding: [0x70,0x02,0xc8,0xf3]
253         vrshr.u8        q8, q8, #8
254 @ CHECK: vrshr.u16      q8, q8, #16  @ encoding: [0x70,0x02,0xd0,0xf3]
255         vrshr.u16       q8, q8, #16
256 @ CHECK: vrshr.u32      q8, q8, #32  @ encoding: [0x70,0x02,0xe0,0xf3]
257         vrshr.u32       q8, q8, #32
258 @ CHECK: vrshr.u64      q8, q8, #64  @ encoding: [0xf0,0x02,0xc0,0xf3]
259         vrshr.u64       q8, q8, #64
260 @ CHECK: vrshrn.i16     d16, q8, #8  @ encoding: [0x70,0x08,0xc8,0xf2]
261         vrshrn.i16      d16, q8, #8
262 @ CHECK: vrshrn.i32     d16, q8, #16  @ encoding: [0x70,0x08,0xd0,0xf2]
263         vrshrn.i32      d16, q8, #16
264 @ CHECK: vrshrn.i64     d16, q8, #32  @ encoding: [0x70,0x08,0xe0,0xf2]
265         vrshrn.i64      d16, q8, #32
266 @ CHECK: vqrshrn.s16    d16, q8, #4  @ encoding: [0x70,0x09,0xcc,0xf2]
267         vqrshrn.s16     d16, q8, #4
268 @ CHECK: vqrshrn.s32    d16, q8, #13  @ encoding: [0x70,0x09,0xd3,0xf2]
269         vqrshrn.s32     d16, q8, #13
270 @ CHECK: vqrshrn.s64    d16, q8, #13  @ encoding: [0x70,0x09,0xf3,0xf2]
271         vqrshrn.s64     d16, q8, #13
272 @ CHECK: vqrshrn.u16    d16, q8, #4  @ encoding: [0x70,0x09,0xcc,0xf3]
273         vqrshrn.u16     d16, q8, #4
274 @ CHECK: vqrshrn.u32    d16, q8, #13  @ encoding: [0x70,0x09,0xd3,0xf3]
275         vqrshrn.u32     d16, q8, #13
276 @ CHECK: vqrshrn.u64    d16, q8, #13  @ encoding: [0x70,0x09,0xf3,0xf3]
277         vqrshrn.u64     d16, q8, #13
278
279 @ Optional destination operand variants.
280         vshl.s8 q4, q5
281         vshl.s16 q4, q5
282         vshl.s32 q4, q5
283         vshl.s64 q4, q5
284
285         vshl.u8 q4, q5
286         vshl.u16 q4, q5
287         vshl.u32 q4, q5
288         vshl.u64 q4, q5
289
290         vshl.s8 d4, d5
291         vshl.s16 d4, d5
292         vshl.s32 d4, d5
293         vshl.s64 d4, d5
294
295         vshl.u8 d4, d5
296         vshl.u16 d4, d5
297         vshl.u32 d4, d5
298         vshl.u64 d4, d5
299
300 @ CHECK: vshl.s8        q4, q4, q5      @ encoding: [0x48,0x84,0x0a,0xf2]
301 @ CHECK: vshl.s16       q4, q4, q5      @ encoding: [0x48,0x84,0x1a,0xf2]
302 @ CHECK: vshl.s32       q4, q4, q5      @ encoding: [0x48,0x84,0x2a,0xf2]
303 @ CHECK: vshl.s64       q4, q4, q5      @ encoding: [0x48,0x84,0x3a,0xf2]
304
305 @ CHECK: vshl.u8        q4, q4, q5      @ encoding: [0x48,0x84,0x0a,0xf3]
306 @ CHECK: vshl.u16       q4, q4, q5      @ encoding: [0x48,0x84,0x1a,0xf3]
307 @ CHECK: vshl.u32       q4, q4, q5      @ encoding: [0x48,0x84,0x2a,0xf3]
308 @ CHECK: vshl.u64       q4, q4, q5      @ encoding: [0x48,0x84,0x3a,0xf3]
309
310 @ CHECK: vshl.s8        d4, d4, d5      @ encoding: [0x04,0x44,0x05,0xf2]
311 @ CHECK: vshl.s16       d4, d4, d5      @ encoding: [0x04,0x44,0x15,0xf2]
312 @ CHECK: vshl.s32       d4, d4, d5      @ encoding: [0x04,0x44,0x25,0xf2]
313 @ CHECK: vshl.s64       d4, d4, d5      @ encoding: [0x04,0x44,0x35,0xf2]
314
315 @ CHECK: vshl.u8        d4, d4, d5      @ encoding: [0x04,0x44,0x05,0xf3]
316 @ CHECK: vshl.u16       d4, d4, d5      @ encoding: [0x04,0x44,0x15,0xf3]
317 @ CHECK: vshl.u32       d4, d4, d5      @ encoding: [0x04,0x44,0x25,0xf3]
318 @ CHECK: vshl.u64       d4, d4, d5      @ encoding: [0x04,0x44,0x35,0xf3]
319
320         vshl.s8 q4, #2
321         vshl.s16 q4, #14
322         vshl.s32 q4, #27
323         vshl.s64 q4, #35
324
325         vshl.s8 d4, #6
326         vshl.u16 d4, #10
327         vshl.s32 d4, #17
328         vshl.u64 d4, #43
329
330 @ CHECK: vshl.i8        q4, q4, #2      @ encoding: [0x58,0x85,0x8a,0xf2]
331 @ CHECK: vshl.i16       q4, q4, #14     @ encoding: [0x58,0x85,0x9e,0xf2]
332 @ CHECK: vshl.i32       q4, q4, #27     @ encoding: [0x58,0x85,0xbb,0xf2]
333 @ CHECK: vshl.i64       q4, q4, #35     @ encoding: [0xd8,0x85,0xa3,0xf2]
334
335 @ CHECK: vshl.i8        d4, d4, #6      @ encoding: [0x14,0x45,0x8e,0xf2]
336 @ CHECK: vshl.i16       d4, d4, #10     @ encoding: [0x14,0x45,0x9a,0xf2]
337 @ CHECK: vshl.i32       d4, d4, #17     @ encoding: [0x14,0x45,0xb1,0xf2]
338 @ CHECK: vshl.i64       d4, d4, #43     @ encoding: [0x94,0x45,0xab,0xf2]