Heuristic: If the number of operands in the alias are more than the number of
[llvm/stm8.git] / test / MC / ARM / neon-shift-encoding.s
bloba7a1b83860440212a3ee7b8b6597fbc371244b10
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
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