blob: c49daf7361b30c274f0dc76db560fa2003c1979d [file] [log] [blame]
Bob Wilson8d1b7e52010-12-15 22:14:01 +00001@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
Owen Andersonb8d14a62010-11-01 05:23:58 +00002
Bill Wendling7c6b6082011-03-08 23:48:09 +00003_foo:
Owen Andersonb8d14a62010-11-01 05:23:58 +00004 vshl.u8 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +00005 vshl.u16 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +00006 vshl.u32 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +00007 vshl.u64 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +00008 vshl.i8 d16, d16, #7
Owen Andersonb8d14a62010-11-01 05:23:58 +00009 vshl.i16 d16, d16, #15
Owen Andersonb8d14a62010-11-01 05:23:58 +000010 vshl.i32 d16, d16, #31
Owen Andersonb8d14a62010-11-01 05:23:58 +000011 vshl.i64 d16, d16, #63
Owen Andersonb8d14a62010-11-01 05:23:58 +000012 vshl.u8 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +000013 vshl.u16 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +000014 vshl.u32 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +000015 vshl.u64 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +000016 vshl.i8 q8, q8, #7
Owen Andersonb8d14a62010-11-01 05:23:58 +000017 vshl.i16 q8, q8, #15
Owen Andersonb8d14a62010-11-01 05:23:58 +000018 vshl.i32 q8, q8, #31
Owen Andersonb8d14a62010-11-01 05:23:58 +000019 vshl.i64 q8, q8, #63
Jim Grosbach318df742011-12-08 22:04:40 +000020
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
Bill Wendling7c6b6082011-03-08 23:48:09 +000039 vshr.u8 d16, d16, #7
Bill Wendling7c6b6082011-03-08 23:48:09 +000040 vshr.u16 d16, d16, #15
Bill Wendling7c6b6082011-03-08 23:48:09 +000041 vshr.u32 d16, d16, #31
Bill Wendling7c6b6082011-03-08 23:48:09 +000042 vshr.u64 d16, d16, #63
Bill Wendling7c6b6082011-03-08 23:48:09 +000043 vshr.u8 q8, q8, #7
Bill Wendling7c6b6082011-03-08 23:48:09 +000044 vshr.u16 q8, q8, #15
Bill Wendling7c6b6082011-03-08 23:48:09 +000045 vshr.u32 q8, q8, #31
Bill Wendling7c6b6082011-03-08 23:48:09 +000046 vshr.u64 q8, q8, #63
Bill Wendling7c6b6082011-03-08 23:48:09 +000047 vshr.s8 d16, d16, #7
Bill Wendling7c6b6082011-03-08 23:48:09 +000048 vshr.s16 d16, d16, #15
Bill Wendling7c6b6082011-03-08 23:48:09 +000049 vshr.s32 d16, d16, #31
Bill Wendling7c6b6082011-03-08 23:48:09 +000050 vshr.s64 d16, d16, #63
Bill Wendling7c6b6082011-03-08 23:48:09 +000051 vshr.s8 q8, q8, #7
Bill Wendling7c6b6082011-03-08 23:48:09 +000052 vshr.s16 q8, q8, #15
Bill Wendling7c6b6082011-03-08 23:48:09 +000053 vshr.s32 q8, q8, #31
Bill Wendling7c6b6082011-03-08 23:48:09 +000054 vshr.s64 q8, q8, #63
Jim Grosbach318df742011-12-08 22:04:40 +000055
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
Jim Grosbach6b044c22011-12-08 22:06:06 +000073@ 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
Jim Grosbach28f1f912012-01-24 17:46:54 +0000108
Jim Grosbach1ac20602012-01-24 17:55:36 +0000109 vsra.s8 d16, d6, #7
110 vsra.s16 d26, d18, #15
111 vsra.s32 d11, d10, #31
112 vsra.s64 d12, d19, #63
113 vsra.s8 q1, q8, #7
114 vsra.s16 q2, q7, #15
115 vsra.s32 q3, q6, #31
116 vsra.s64 q4, q5, #63
117
118 vsra.s8 d16, #7
119 vsra.s16 d15, #15
120 vsra.s32 d14, #31
121 vsra.s64 d13, #63
122 vsra.s8 q4, #7
123 vsra.s16 q5, #15
124 vsra.s32 q6, #31
125 vsra.s64 q7, #63
126
127@ CHECK: vsra.s8 d16, d6, #7 @ encoding: [0x16,0x01,0xc9,0xf2]
128@ CHECK: vsra.s16 d26, d18, #15 @ encoding: [0x32,0xa1,0xd1,0xf2]
129@ CHECK: vsra.s32 d11, d10, #31 @ encoding: [0x1a,0xb1,0xa1,0xf2]
130@ CHECK: vsra.s64 d12, d19, #63 @ encoding: [0xb3,0xc1,0x81,0xf2]
131@ CHECK: vsra.s8 q1, q8, #7 @ encoding: [0x70,0x21,0x89,0xf2]
132@ CHECK: vsra.s16 q2, q7, #15 @ encoding: [0x5e,0x41,0x91,0xf2]
133@ CHECK: vsra.s32 q3, q6, #31 @ encoding: [0x5c,0x61,0xa1,0xf2]
134@ CHECK: vsra.s64 q4, q5, #63 @ encoding: [0xda,0x81,0x81,0xf2]
135@ CHECK: vsra.s8 d16, d16, #7 @ encoding: [0x30,0x01,0xc9,0xf2]
136@ CHECK: vsra.s16 d15, d15, #15 @ encoding: [0x1f,0xf1,0x91,0xf2]
137@ CHECK: vsra.s32 d14, d14, #31 @ encoding: [0x1e,0xe1,0xa1,0xf2]
138@ CHECK: vsra.s64 d13, d13, #63 @ encoding: [0x9d,0xd1,0x81,0xf2]
139@ CHECK: vsra.s8 q4, q4, #7 @ encoding: [0x58,0x81,0x89,0xf2]
140@ CHECK: vsra.s16 q5, q5, #15 @ encoding: [0x5a,0xa1,0x91,0xf2]
141@ CHECK: vsra.s32 q6, q6, #31 @ encoding: [0x5c,0xc1,0xa1,0xf2]
142@ CHECK: vsra.s64 q7, q7, #63 @ encoding: [0xde,0xe1,0x81,0xf2]
143
144
145 vsra.u8 d16, d6, #7
146 vsra.u16 d26, d18, #15
147 vsra.u32 d11, d10, #31
148 vsra.u64 d12, d19, #63
149 vsra.u8 q1, q8, #7
150 vsra.u16 q2, q7, #15
151 vsra.u32 q3, q6, #31
152 vsra.u64 q4, q5, #63
153
154 vsra.u8 d16, #7
155 vsra.u16 d15, #15
156 vsra.u32 d14, #31
157 vsra.u64 d13, #63
158 vsra.u8 q4, #7
159 vsra.u16 q5, #15
160 vsra.u32 q6, #31
161 vsra.u64 q7, #63
162
163@ CHECK: vsra.u8 d16, d6, #7 @ encoding: [0x16,0x01,0xc9,0xf3]
164@ CHECK: vsra.u16 d26, d18, #15 @ encoding: [0x32,0xa1,0xd1,0xf3]
165@ CHECK: vsra.u32 d11, d10, #31 @ encoding: [0x1a,0xb1,0xa1,0xf3]
166@ CHECK: vsra.u64 d12, d19, #63 @ encoding: [0xb3,0xc1,0x81,0xf3]
167@ CHECK: vsra.u8 q1, q8, #7 @ encoding: [0x70,0x21,0x89,0xf3]
168@ CHECK: vsra.u16 q2, q7, #15 @ encoding: [0x5e,0x41,0x91,0xf3]
169@ CHECK: vsra.u32 q3, q6, #31 @ encoding: [0x5c,0x61,0xa1,0xf3]
170@ CHECK: vsra.u64 q4, q5, #63 @ encoding: [0xda,0x81,0x81,0xf3]
171@ CHECK: vsra.u8 d16, d16, #7 @ encoding: [0x30,0x01,0xc9,0xf3]
172@ CHECK: vsra.u16 d15, d15, #15 @ encoding: [0x1f,0xf1,0x91,0xf3]
173@ CHECK: vsra.u32 d14, d14, #31 @ encoding: [0x1e,0xe1,0xa1,0xf3]
174@ CHECK: vsra.u64 d13, d13, #63 @ encoding: [0x9d,0xd1,0x81,0xf3]
175@ CHECK: vsra.u8 q4, q4, #7 @ encoding: [0x58,0x81,0x89,0xf3]
176@ CHECK: vsra.u16 q5, q5, #15 @ encoding: [0x5a,0xa1,0x91,0xf3]
177@ CHECK: vsra.u32 q6, q6, #31 @ encoding: [0x5c,0xc1,0xa1,0xf3]
178@ CHECK: vsra.u64 q7, q7, #63 @ encoding: [0xde,0xe1,0x81,0xf3]
Jim Grosbach28f1f912012-01-24 17:46:54 +0000179
180
Jim Grosbachd8ee0cc2012-01-24 17:46:58 +0000181 vsri.8 d16, d6, #7
182 vsri.16 d26, d18, #15
183 vsri.32 d11, d10, #31
184 vsri.64 d12, d19, #63
185 vsri.8 q1, q8, #7
186 vsri.16 q2, q7, #15
187 vsri.32 q3, q6, #31
188 vsri.64 q4, q5, #63
Jim Grosbach28f1f912012-01-24 17:46:54 +0000189
Jim Grosbachd8ee0cc2012-01-24 17:46:58 +0000190 vsri.8 d16, #7
191 vsri.16 d15, #15
192 vsri.32 d14, #31
193 vsri.64 d13, #63
194 vsri.8 q4, #7
195 vsri.16 q5, #15
196 vsri.32 q6, #31
197 vsri.64 q7, #63
198
199@ CHECK: vsri.8 d16, d6, #7 @ encoding: [0x16,0x04,0xc9,0xf3]
200@ CHECK: vsri.16 d26, d18, #15 @ encoding: [0x32,0xa4,0xd1,0xf3]
201@ CHECK: vsri.32 d11, d10, #31 @ encoding: [0x1a,0xb4,0xa1,0xf3]
202@ CHECK: vsri.64 d12, d19, #63 @ encoding: [0xb3,0xc4,0x81,0xf3]
203@ CHECK: vsri.8 q1, q8, #7 @ encoding: [0x70,0x24,0x89,0xf3]
204@ CHECK: vsri.16 q2, q7, #15 @ encoding: [0x5e,0x44,0x91,0xf3]
205@ CHECK: vsri.32 q3, q6, #31 @ encoding: [0x5c,0x64,0xa1,0xf3]
206@ CHECK: vsri.64 q4, q5, #63 @ encoding: [0xda,0x84,0x81,0xf3]
207@ CHECK: vsri.8 d16, d16, #7 @ encoding: [0x30,0x04,0xc9,0xf3]
208@ CHECK: vsri.16 d15, d15, #15 @ encoding: [0x1f,0xf4,0x91,0xf3]
209@ CHECK: vsri.32 d14, d14, #31 @ encoding: [0x1e,0xe4,0xa1,0xf3]
210@ CHECK: vsri.64 d13, d13, #63 @ encoding: [0x9d,0xd4,0x81,0xf3]
211@ CHECK: vsri.8 q4, q4, #7 @ encoding: [0x58,0x84,0x89,0xf3]
212@ CHECK: vsri.16 q5, q5, #15 @ encoding: [0x5a,0xa4,0x91,0xf3]
213@ CHECK: vsri.32 q6, q6, #31 @ encoding: [0x5c,0xc4,0xa1,0xf3]
214@ CHECK: vsri.64 q7, q7, #63 @ encoding: [0xde,0xe4,0x81,0xf3]
Jim Grosbach28f1f912012-01-24 17:46:54 +0000215
216
Jim Grosbach5e497d32012-01-24 17:49:15 +0000217 vsli.8 d16, d6, #7
218 vsli.16 d26, d18, #15
219 vsli.32 d11, d10, #31
220 vsli.64 d12, d19, #63
221 vsli.8 q1, q8, #7
222 vsli.16 q2, q7, #15
223 vsli.32 q3, q6, #31
224 vsli.64 q4, q5, #63
Jim Grosbach28f1f912012-01-24 17:46:54 +0000225
Jim Grosbach5e497d32012-01-24 17:49:15 +0000226 vsli.8 d16, #7
227 vsli.16 d15, #15
228 vsli.32 d14, #31
229 vsli.64 d13, #63
230 vsli.8 q4, #7
231 vsli.16 q5, #15
232 vsli.32 q6, #31
233 vsli.64 q7, #63
234
235@ CHECK: vsli.8 d16, d6, #7 @ encoding: [0x16,0x05,0xcf,0xf3]
236@ CHECK: vsli.16 d26, d18, #15 @ encoding: [0x32,0xa5,0xdf,0xf3]
237@ CHECK: vsli.32 d11, d10, #31 @ encoding: [0x1a,0xb5,0xbf,0xf3]
238@ CHECK: vsli.64 d12, d19, #63 @ encoding: [0xb3,0xc5,0xbf,0xf3]
239@ CHECK: vsli.8 q1, q8, #7 @ encoding: [0x70,0x25,0x8f,0xf3]
240@ CHECK: vsli.16 q2, q7, #15 @ encoding: [0x5e,0x45,0x9f,0xf3]
241@ CHECK: vsli.32 q3, q6, #31 @ encoding: [0x5c,0x65,0xbf,0xf3]
242@ CHECK: vsli.64 q4, q5, #63 @ encoding: [0xda,0x85,0xbf,0xf3]
243@ CHECK: vsli.8 d16, d16, #7 @ encoding: [0x30,0x05,0xcf,0xf3]
244@ CHECK: vsli.16 d15, d15, #15 @ encoding: [0x1f,0xf5,0x9f,0xf3]
245@ CHECK: vsli.32 d14, d14, #31 @ encoding: [0x1e,0xe5,0xbf,0xf3]
246@ CHECK: vsli.64 d13, d13, #63 @ encoding: [0x9d,0xd5,0xbf,0xf3]
247@ CHECK: vsli.8 q4, q4, #7 @ encoding: [0x58,0x85,0x8f,0xf3]
248@ CHECK: vsli.16 q5, q5, #15 @ encoding: [0x5a,0xa5,0x9f,0xf3]
249@ CHECK: vsli.32 q6, q6, #31 @ encoding: [0x5c,0xc5,0xbf,0xf3]
250@ CHECK: vsli.64 q7, q7, #63 @ encoding: [0xde,0xe5,0xbf,0xf3]
Jim Grosbach28f1f912012-01-24 17:46:54 +0000251
252
Owen Andersonb8d14a62010-11-01 05:23:58 +0000253 vshll.s8 q8, d16, #7
Owen Andersonb8d14a62010-11-01 05:23:58 +0000254 vshll.s16 q8, d16, #15
Owen Andersonb8d14a62010-11-01 05:23:58 +0000255 vshll.s32 q8, d16, #31
Owen Andersonb8d14a62010-11-01 05:23:58 +0000256 vshll.u8 q8, d16, #7
Owen Andersonb8d14a62010-11-01 05:23:58 +0000257 vshll.u16 q8, d16, #15
Owen Andersonb8d14a62010-11-01 05:23:58 +0000258 vshll.u32 q8, d16, #31
Owen Andersonb8d14a62010-11-01 05:23:58 +0000259 vshll.i8 q8, d16, #8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000260 vshll.i16 q8, d16, #16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000261 vshll.i32 q8, d16, #32
Jim Grosbach695eca62012-04-16 18:03:14 +0000262
263@ CHECK: vshll.s8 q8, d16, #7 @ encoding: [0x30,0x0a,0xcf,0xf2]
264@ CHECK: vshll.s16 q8, d16, #15 @ encoding: [0x30,0x0a,0xdf,0xf2]
265@ CHECK: vshll.s32 q8, d16, #31 @ encoding: [0x30,0x0a,0xff,0xf2]
266@ CHECK: vshll.u8 q8, d16, #7 @ encoding: [0x30,0x0a,0xcf,0xf3]
267@ CHECK: vshll.u16 q8, d16, #15 @ encoding: [0x30,0x0a,0xdf,0xf3]
268@ CHECK: vshll.u32 q8, d16, #31 @ encoding: [0x30,0x0a,0xff,0xf3]
269@ CHECK: vshll.i8 q8, d16, #8 @ encoding: [0x20,0x03,0xf2,0xf3]
270@ CHECK: vshll.i16 q8, d16, #16 @ encoding: [0x20,0x03,0xf6,0xf3]
271@ CHECK: vshll.i32 q8, d16, #32 @ encoding: [0x20,0x03,0xfa,0xf3]
272
Owen Andersonb8d14a62010-11-01 05:23:58 +0000273 vshrn.i16 d16, q8, #8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000274 vshrn.i32 d16, q8, #16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000275 vshrn.i64 d16, q8, #32
Jim Grosbach695eca62012-04-16 18:03:14 +0000276
277@ CHECK: vshrn.i16 d16, q8, #8 @ encoding: [0x30,0x08,0xc8,0xf2]
278@ CHECK: vshrn.i32 d16, q8, #16 @ encoding: [0x30,0x08,0xd0,0xf2]
279@ CHECK: vshrn.i64 d16, q8, #32 @ encoding: [0x30,0x08,0xe0,0xf2]
280
Owen Andersonb8d14a62010-11-01 05:23:58 +0000281 vrshl.s8 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000282 vrshl.s16 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000283 vrshl.s32 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000284 vrshl.s64 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000285 vrshl.u8 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000286 vrshl.u16 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000287 vrshl.u32 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000288 vrshl.u64 d16, d17, d16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000289 vrshl.s8 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000290 vrshl.s16 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000291 vrshl.s32 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000292 vrshl.s64 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000293 vrshl.u8 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000294 vrshl.u16 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000295 vrshl.u32 q8, q9, q8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000296 vrshl.u64 q8, q9, q8
Jim Grosbach695eca62012-04-16 18:03:14 +0000297
298@ CHECK: vrshl.s8 d16, d17, d16 @ encoding: [0xa1,0x05,0x40,0xf2]
299@ CHECK: vrshl.s16 d16, d17, d16 @ encoding: [0xa1,0x05,0x50,0xf2]
300@ CHECK: vrshl.s32 d16, d17, d16 @ encoding: [0xa1,0x05,0x60,0xf2]
301@ CHECK: vrshl.s64 d16, d17, d16 @ encoding: [0xa1,0x05,0x70,0xf2]
302@ CHECK: vrshl.u8 d16, d17, d16 @ encoding: [0xa1,0x05,0x40,0xf3]
303@ CHECK: vrshl.u16 d16, d17, d16 @ encoding: [0xa1,0x05,0x50,0xf3]
304@ CHECK: vrshl.u32 d16, d17, d16 @ encoding: [0xa1,0x05,0x60,0xf3]
305@ CHECK: vrshl.u64 d16, d17, d16 @ encoding: [0xa1,0x05,0x70,0xf3]
306@ CHECK: vrshl.s8 q8, q9, q8 @ encoding: [0xe2,0x05,0x40,0xf2]
307@ CHECK: vrshl.s16 q8, q9, q8 @ encoding: [0xe2,0x05,0x50,0xf2]
308@ CHECK: vrshl.s32 q8, q9, q8 @ encoding: [0xe2,0x05,0x60,0xf2]
309@ CHECK: vrshl.s64 q8, q9, q8 @ encoding: [0xe2,0x05,0x70,0xf2]
310@ CHECK: vrshl.u8 q8, q9, q8 @ encoding: [0xe2,0x05,0x40,0xf3]
311@ CHECK: vrshl.u16 q8, q9, q8 @ encoding: [0xe2,0x05,0x50,0xf3]
312@ CHECK: vrshl.u32 q8, q9, q8 @ encoding: [0xe2,0x05,0x60,0xf3]
313@ CHECK: vrshl.u64 q8, q9, q8 @ encoding: [0xe2,0x05,0x70,0xf3]
314
Owen Andersonb8d14a62010-11-01 05:23:58 +0000315 vrshr.s8 d16, d16, #8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000316 vrshr.s16 d16, d16, #16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000317 vrshr.s32 d16, d16, #32
Owen Andersonb8d14a62010-11-01 05:23:58 +0000318 vrshr.s64 d16, d16, #64
Owen Andersonb8d14a62010-11-01 05:23:58 +0000319 vrshr.u8 d16, d16, #8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000320 vrshr.u16 d16, d16, #16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000321 vrshr.u32 d16, d16, #32
Owen Andersonb8d14a62010-11-01 05:23:58 +0000322 vrshr.u64 d16, d16, #64
Owen Andersonb8d14a62010-11-01 05:23:58 +0000323 vrshr.s8 q8, q8, #8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000324 vrshr.s16 q8, q8, #16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000325 vrshr.s32 q8, q8, #32
Owen Andersonb8d14a62010-11-01 05:23:58 +0000326 vrshr.s64 q8, q8, #64
Owen Andersonb8d14a62010-11-01 05:23:58 +0000327 vrshr.u8 q8, q8, #8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000328 vrshr.u16 q8, q8, #16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000329 vrshr.u32 q8, q8, #32
Owen Andersonb8d14a62010-11-01 05:23:58 +0000330 vrshr.u64 q8, q8, #64
Jim Grosbach695eca62012-04-16 18:03:14 +0000331
332@ CHECK: vrshr.s8 d16, d16, #8 @ encoding: [0x30,0x02,0xc8,0xf2]
333@ CHECK: vrshr.s16 d16, d16, #16 @ encoding: [0x30,0x02,0xd0,0xf2]
334@ CHECK: vrshr.s32 d16, d16, #32 @ encoding: [0x30,0x02,0xe0,0xf2]
335@ CHECK: vrshr.s64 d16, d16, #64 @ encoding: [0xb0,0x02,0xc0,0xf2]
336@ CHECK: vrshr.u8 d16, d16, #8 @ encoding: [0x30,0x02,0xc8,0xf3]
337@ CHECK: vrshr.u16 d16, d16, #16 @ encoding: [0x30,0x02,0xd0,0xf3]
338@ CHECK: vrshr.u32 d16, d16, #32 @ encoding: [0x30,0x02,0xe0,0xf3]
339@ CHECK: vrshr.u64 d16, d16, #64 @ encoding: [0xb0,0x02,0xc0,0xf3]
340@ CHECK: vrshr.s8 q8, q8, #8 @ encoding: [0x70,0x02,0xc8,0xf2]
341@ CHECK: vrshr.s16 q8, q8, #16 @ encoding: [0x70,0x02,0xd0,0xf2]
342@ CHECK: vrshr.s32 q8, q8, #32 @ encoding: [0x70,0x02,0xe0,0xf2]
343@ CHECK: vrshr.s64 q8, q8, #64 @ encoding: [0xf0,0x02,0xc0,0xf2]
344@ CHECK: vrshr.u8 q8, q8, #8 @ encoding: [0x70,0x02,0xc8,0xf3]
345@ CHECK: vrshr.u16 q8, q8, #16 @ encoding: [0x70,0x02,0xd0,0xf3]
346@ CHECK: vrshr.u32 q8, q8, #32 @ encoding: [0x70,0x02,0xe0,0xf3]
347@ CHECK: vrshr.u64 q8, q8, #64 @ encoding: [0xf0,0x02,0xc0,0xf3]
348
349
Owen Andersonb8d14a62010-11-01 05:23:58 +0000350 vrshrn.i16 d16, q8, #8
Owen Andersonb8d14a62010-11-01 05:23:58 +0000351 vrshrn.i32 d16, q8, #16
Owen Andersonb8d14a62010-11-01 05:23:58 +0000352 vrshrn.i64 d16, q8, #32
Bill Wendling7c6b6082011-03-08 23:48:09 +0000353 vqrshrn.s16 d16, q8, #4
Bill Wendling7c6b6082011-03-08 23:48:09 +0000354 vqrshrn.s32 d16, q8, #13
Bill Wendling7c6b6082011-03-08 23:48:09 +0000355 vqrshrn.s64 d16, q8, #13
Bill Wendling7c6b6082011-03-08 23:48:09 +0000356 vqrshrn.u16 d16, q8, #4
Bill Wendling7c6b6082011-03-08 23:48:09 +0000357 vqrshrn.u32 d16, q8, #13
Bill Wendling7c6b6082011-03-08 23:48:09 +0000358 vqrshrn.u64 d16, q8, #13
Jim Grosbachff4cbb42011-12-08 01:12:35 +0000359
Jim Grosbach695eca62012-04-16 18:03:14 +0000360@ CHECK: vrshrn.i16 d16, q8, #8 @ encoding: [0x70,0x08,0xc8,0xf2]
361@ CHECK: vrshrn.i32 d16, q8, #16 @ encoding: [0x70,0x08,0xd0,0xf2]
362@ CHECK: vrshrn.i64 d16, q8, #32 @ encoding: [0x70,0x08,0xe0,0xf2]
363@ CHECK: vqrshrn.s16 d16, q8, #4 @ encoding: [0x70,0x09,0xcc,0xf2]
364@ CHECK: vqrshrn.s32 d16, q8, #13 @ encoding: [0x70,0x09,0xd3,0xf2]
365@ CHECK: vqrshrn.s64 d16, q8, #13 @ encoding: [0x70,0x09,0xf3,0xf2]
366@ CHECK: vqrshrn.u16 d16, q8, #4 @ encoding: [0x70,0x09,0xcc,0xf3]
367@ CHECK: vqrshrn.u32 d16, q8, #13 @ encoding: [0x70,0x09,0xd3,0xf3]
368@ CHECK: vqrshrn.u64 d16, q8, #13 @ encoding: [0x70,0x09,0xf3,0xf3]
369
370
Jim Grosbachff4cbb42011-12-08 01:12:35 +0000371@ Optional destination operand variants.
372 vshl.s8 q4, q5
373 vshl.s16 q4, q5
374 vshl.s32 q4, q5
375 vshl.s64 q4, q5
376
377 vshl.u8 q4, q5
378 vshl.u16 q4, q5
379 vshl.u32 q4, q5
380 vshl.u64 q4, q5
381
382 vshl.s8 d4, d5
383 vshl.s16 d4, d5
384 vshl.s32 d4, d5
385 vshl.s64 d4, d5
386
387 vshl.u8 d4, d5
388 vshl.u16 d4, d5
389 vshl.u32 d4, d5
390 vshl.u64 d4, d5
391
392@ CHECK: vshl.s8 q4, q4, q5 @ encoding: [0x48,0x84,0x0a,0xf2]
393@ CHECK: vshl.s16 q4, q4, q5 @ encoding: [0x48,0x84,0x1a,0xf2]
394@ CHECK: vshl.s32 q4, q4, q5 @ encoding: [0x48,0x84,0x2a,0xf2]
395@ CHECK: vshl.s64 q4, q4, q5 @ encoding: [0x48,0x84,0x3a,0xf2]
396
397@ CHECK: vshl.u8 q4, q4, q5 @ encoding: [0x48,0x84,0x0a,0xf3]
398@ CHECK: vshl.u16 q4, q4, q5 @ encoding: [0x48,0x84,0x1a,0xf3]
399@ CHECK: vshl.u32 q4, q4, q5 @ encoding: [0x48,0x84,0x2a,0xf3]
400@ CHECK: vshl.u64 q4, q4, q5 @ encoding: [0x48,0x84,0x3a,0xf3]
401
402@ CHECK: vshl.s8 d4, d4, d5 @ encoding: [0x04,0x44,0x05,0xf2]
403@ CHECK: vshl.s16 d4, d4, d5 @ encoding: [0x04,0x44,0x15,0xf2]
404@ CHECK: vshl.s32 d4, d4, d5 @ encoding: [0x04,0x44,0x25,0xf2]
405@ CHECK: vshl.s64 d4, d4, d5 @ encoding: [0x04,0x44,0x35,0xf2]
406
407@ CHECK: vshl.u8 d4, d4, d5 @ encoding: [0x04,0x44,0x05,0xf3]
408@ CHECK: vshl.u16 d4, d4, d5 @ encoding: [0x04,0x44,0x15,0xf3]
409@ CHECK: vshl.u32 d4, d4, d5 @ encoding: [0x04,0x44,0x25,0xf3]
410@ CHECK: vshl.u64 d4, d4, d5 @ encoding: [0x04,0x44,0x35,0xf3]
Jim Grosbach730fe6c2011-12-08 01:30:04 +0000411
412 vshl.s8 q4, #2
413 vshl.s16 q4, #14
414 vshl.s32 q4, #27
415 vshl.s64 q4, #35
416
417 vshl.s8 d4, #6
418 vshl.u16 d4, #10
419 vshl.s32 d4, #17
420 vshl.u64 d4, #43
421
422@ CHECK: vshl.i8 q4, q4, #2 @ encoding: [0x58,0x85,0x8a,0xf2]
423@ CHECK: vshl.i16 q4, q4, #14 @ encoding: [0x58,0x85,0x9e,0xf2]
424@ CHECK: vshl.i32 q4, q4, #27 @ encoding: [0x58,0x85,0xbb,0xf2]
425@ CHECK: vshl.i64 q4, q4, #35 @ encoding: [0xd8,0x85,0xa3,0xf2]
426
427@ CHECK: vshl.i8 d4, d4, #6 @ encoding: [0x14,0x45,0x8e,0xf2]
428@ CHECK: vshl.i16 d4, d4, #10 @ encoding: [0x14,0x45,0x9a,0xf2]
429@ CHECK: vshl.i32 d4, d4, #17 @ encoding: [0x14,0x45,0xb1,0xf2]
430@ CHECK: vshl.i64 d4, d4, #43 @ encoding: [0x94,0x45,0xab,0xf2]
Jim Grosbach22378fd2012-04-05 07:23:53 +0000431
432
433@ Two-operand forms.
434 vshr.s8 d15, #8
435 vshr.s16 d12, #16
436 vshr.s32 d13, #32
437 vshr.s64 d14, #64
438 vshr.u8 d16, #8
439 vshr.u16 d17, #16
440 vshr.u32 d6, #32
441 vshr.u64 d10, #64
442 vshr.s8 q1, #8
443 vshr.s16 q2, #16
444 vshr.s32 q3, #32
445 vshr.s64 q4, #64
446 vshr.u8 q5, #8
447 vshr.u16 q6, #16
448 vshr.u32 q7, #32
449 vshr.u64 q8, #64
450
451@ CHECK: vshr.s8 d15, d15, #8 @ encoding: [0x1f,0xf0,0x88,0xf2]
452@ CHECK: vshr.s16 d12, d12, #16 @ encoding: [0x1c,0xc0,0x90,0xf2]
453@ CHECK: vshr.s32 d13, d13, #32 @ encoding: [0x1d,0xd0,0xa0,0xf2]
454@ CHECK: vshr.s64 d14, d14, #64 @ encoding: [0x9e,0xe0,0x80,0xf2]
455@ CHECK: vshr.u8 d16, d16, #8 @ encoding: [0x30,0x00,0xc8,0xf3]
456@ CHECK: vshr.u16 d17, d17, #16 @ encoding: [0x31,0x10,0xd0,0xf3]
457@ CHECK: vshr.u32 d6, d6, #32 @ encoding: [0x16,0x60,0xa0,0xf3]
458@ CHECK: vshr.u64 d10, d10, #64 @ encoding: [0x9a,0xa0,0x80,0xf3]
459@ CHECK: vshr.s8 q1, q1, #8 @ encoding: [0x52,0x20,0x88,0xf2]
460@ CHECK: vshr.s16 q2, q2, #16 @ encoding: [0x54,0x40,0x90,0xf2]
461@ CHECK: vshr.s32 q3, q3, #32 @ encoding: [0x56,0x60,0xa0,0xf2]
462@ CHECK: vshr.s64 q4, q4, #64 @ encoding: [0xd8,0x80,0x80,0xf2]
463@ CHECK: vshr.u8 q5, q5, #8 @ encoding: [0x5a,0xa0,0x88,0xf3]
464@ CHECK: vshr.u16 q6, q6, #16 @ encoding: [0x5c,0xc0,0x90,0xf3]
465@ CHECK: vshr.u32 q7, q7, #32 @ encoding: [0x5e,0xe0,0xa0,0xf3]
466@ CHECK: vshr.u64 q8, q8, #64 @ encoding: [0xf0,0x00,0xc0,0xf3]
467
468 vrshr.s8 d15, #8
469 vrshr.s16 d12, #16
470 vrshr.s32 d13, #32
471 vrshr.s64 d14, #64
472 vrshr.u8 d16, #8
473 vrshr.u16 d17, #16
474 vrshr.u32 d6, #32
475 vrshr.u64 d10, #64
476 vrshr.s8 q1, #8
477 vrshr.s16 q2, #16
478 vrshr.s32 q3, #32
479 vrshr.s64 q4, #64
480 vrshr.u8 q5, #8
481 vrshr.u16 q6, #16
482 vrshr.u32 q7, #32
483 vrshr.u64 q8, #64
484
485@ CHECK: vrshr.s8 d15, d15, #8 @ encoding: [0x1f,0xf2,0x88,0xf2]
486@ CHECK: vrshr.s16 d12, d12, #16 @ encoding: [0x1c,0xc2,0x90,0xf2]
487@ CHECK: vrshr.s32 d13, d13, #32 @ encoding: [0x1d,0xd2,0xa0,0xf2]
488@ CHECK: vrshr.s64 d14, d14, #64 @ encoding: [0x9e,0xe2,0x80,0xf2]
489@ CHECK: vrshr.u8 d16, d16, #8 @ encoding: [0x30,0x02,0xc8,0xf3]
490@ CHECK: vrshr.u16 d17, d17, #16 @ encoding: [0x31,0x12,0xd0,0xf3]
491@ CHECK: vrshr.u32 d6, d6, #32 @ encoding: [0x16,0x62,0xa0,0xf3]
492@ CHECK: vrshr.u64 d10, d10, #64 @ encoding: [0x9a,0xa2,0x80,0xf3]
493@ CHECK: vrshr.s8 q1, q1, #8 @ encoding: [0x52,0x22,0x88,0xf2]
494@ CHECK: vrshr.s16 q2, q2, #16 @ encoding: [0x54,0x42,0x90,0xf2]
495@ CHECK: vrshr.s32 q3, q3, #32 @ encoding: [0x56,0x62,0xa0,0xf2]
496@ CHECK: vrshr.s64 q4, q4, #64 @ encoding: [0xd8,0x82,0x80,0xf2]
497@ CHECK: vrshr.u8 q5, q5, #8 @ encoding: [0x5a,0xa2,0x88,0xf3]
498@ CHECK: vrshr.u16 q6, q6, #16 @ encoding: [0x5c,0xc2,0x90,0xf3]
499@ CHECK: vrshr.u32 q7, q7, #32 @ encoding: [0x5e,0xe2,0xa0,0xf3]
500@ CHECK: vrshr.u64 q8, q8, #64 @ encoding: [0xf0,0x02,0xc0,0xf3]