1 # RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -mattr=+mve.fp,+fp64 -show-encoding %s 2> %t | FileCheck %s
2 # RUN: FileCheck --check-prefix=ERROR < %t %s
3 # RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -show-encoding %s &> %t
4 # RUN: FileCheck --check-prefix=CHECK-NOMVE < %t %s
7 # CHECK: vabav.s8 r0, q1, q3
8 # CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
11 # CHECK: vabav.s16 r0, q1, q3
12 # CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
15 # CHECK: vabav.s32 r0, q1, q3
16 # CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
19 # CHECK: vabav.u8 r0, q1, q3
20 # CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
23 # CHECK: vabav.u16 r0, q1, q3
24 # CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
27 # CHECK: vabav.u32 r0, q1, q3
28 # CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
30 # CHECK: vaddv.s16 lr, q0 @ encoding: [0xf5,0xee,0x00,0xef]
31 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
34 # CHECK: vaddva.s16 lr, q0 @ encoding: [0xf5,0xee,0x20,0xef]
35 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
38 # CHECK: vpte.i8 eq, q0, q0 @ encoding: [0x41,0xfe,0x00,0x8f]
39 # CHECK-NOMVE: [[@LINE+5]]:2: warning: invalid instruction encoding
40 # CHECK: vaddvat.s16 lr, q0 @ encoding: [0xf5,0xee,0x20,0xef]
41 # CHECK-NOMVE: [[@LINE+4]]:2: warning: invalid instruction encoding
42 # CHECK: vaddvae.s16 lr, q0 @ encoding: [0xf5,0xee,0x20,0xef]
43 # CHECK-NOMVE: [[@LINE+3]]:2: warning: invalid instruction encoding
48 # CHECK: vaddlv.s32 r0, r9, q2 @ encoding: [0xc9,0xee,0x04,0x0f]
49 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
52 # CHECK: vaddlv.u32 r0, r1, q1 @ encoding: [0x89,0xfe,0x02,0x0f]
53 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
56 # CHECK: vminnmv.f16 lr, q3 @ encoding: [0xee,0xfe,0x86,0xef]
57 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
60 # CHECK: vminnmv.f32 lr, q1 @ encoding: [0xee,0xee,0x82,0xef]
61 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
64 # CHECK: vminnmav.f16 lr, q0 @ encoding: [0xec,0xfe,0x80,0xef]
65 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
68 # CHECK: vminnmav.f32 lr, q3 @ encoding: [0xec,0xee,0x86,0xef]
69 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
72 # CHECK: vpte.i8 eq, q0, q0 @ encoding: [0x41,0xfe,0x00,0x8f]
73 # CHECK-NOMVE: [[@LINE+5]]:2: warning: invalid instruction encoding
74 # CHECK: vminnmavt.f32 lr, q3 @ encoding: [0xec,0xee,0x86,0xef]
75 # CHECK-NOMVE: [[@LINE+4]]:2: warning: invalid instruction encoding
76 # CHECK: vminnmave.f32 lr, q3 @ encoding: [0xec,0xee,0x86,0xef]
77 # CHECK-NOMVE: [[@LINE+3]]:2: warning: invalid instruction encoding
82 # CHECK: vminv.s8 lr, q0 @ encoding: [0xe2,0xee,0x80,0xef]
83 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
86 # CHECK: vminv.s16 lr, q0 @ encoding: [0xe6,0xee,0x80,0xef]
87 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
90 # CHECK: vminv.s32 lr, q2 @ encoding: [0xea,0xee,0x84,0xef]
91 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
94 # CHECK: vminv.u8 r0, q0 @ encoding: [0xe2,0xfe,0x80,0x0f]
95 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
98 # CHECK: vminv.u32 r10, q3 @ encoding: [0xea,0xfe,0x86,0xaf]
99 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
100 [0xea,0xfe,0x86,0xaf]
102 # CHECK: vminav.s16 r0, q0 @ encoding: [0xe4,0xee,0x80,0x0f]
103 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
104 [0xe4,0xee,0x80,0x0f]
106 # CHECK: vminav.s8 r0, q1 @ encoding: [0xe0,0xee,0x82,0x0f]
107 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
108 [0xe0,0xee,0x82,0x0f]
110 # CHECK: vminav.s32 lr, q1 @ encoding: [0xe8,0xee,0x82,0xef]
111 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
112 [0xe8,0xee,0x82,0xef]
114 # CHECK: vmaxnmv.f16 lr, q1 @ encoding: [0xee,0xfe,0x02,0xef]
115 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
116 [0xee,0xfe,0x02,0xef]
118 # CHECK: vmaxnmv.f32 r10, q1 @ encoding: [0xee,0xee,0x02,0xaf]
119 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
120 [0xee,0xee,0x02,0xaf]
122 # CHECK: vmaxv.s8 lr, q4 @ encoding: [0xe2,0xee,0x08,0xef]
123 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
124 [0xe2,0xee,0x08,0xef]
126 # CHECK: vmaxv.s16 lr, q0 @ encoding: [0xe6,0xee,0x00,0xef]
127 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
128 [0xe6,0xee,0x00,0xef]
130 # CHECK: vmaxv.s32 r1, q1 @ encoding: [0xea,0xee,0x02,0x1f]
131 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
132 [0xea,0xee,0x02,0x1f]
134 # CHECK: vmaxv.u8 r0, q4 @ encoding: [0xe2,0xfe,0x08,0x0f]
135 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
136 [0xe2,0xfe,0x08,0x0f]
138 # CHECK: vmaxv.u16 r0, q1 @ encoding: [0xe6,0xfe,0x02,0x0f]
139 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
140 [0xe6,0xfe,0x02,0x0f]
142 # CHECK: vmaxv.u32 r1, q0 @ encoding: [0xea,0xfe,0x00,0x1f]
143 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
144 [0xea,0xfe,0x00,0x1f]
146 # CHECK: vmaxav.s8 lr, q6 @ encoding: [0xe0,0xee,0x0c,0xef]
147 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
148 [0xe0,0xee,0x0c,0xef]
150 # CHECK: vmaxav.s16 r0, q6 @ encoding: [0xe4,0xee,0x0c,0x0f]
151 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
152 [0xe4,0xee,0x0c,0x0f]
154 # CHECK: vmaxav.s32 r10, q7 @ encoding: [0xe8,0xee,0x0e,0xaf]
155 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
156 [0xe8,0xee,0x0e,0xaf]
158 # CHECK: vmlav.s16 lr, q0, q7 @ encoding: [0xf0,0xee,0x0e,0xee]
159 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
160 [0xf0,0xee,0x0e,0xee]
162 # CHECK: vmlav.s32 lr, q0, q4 @ encoding: [0xf1,0xee,0x08,0xee]
163 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
164 [0xf1,0xee,0x08,0xee]
166 # CHECK: vmlav.u16 lr, q0, q7 @ encoding: [0xf0,0xfe,0x0e,0xee]
167 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
168 [0xf0,0xfe,0x0e,0xee]
170 # CHECK: vmlav.u32 lr, q0, q0 @ encoding: [0xf1,0xfe,0x00,0xee]
171 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
172 [0xf1,0xfe,0x00,0xee]
174 # CHECK: vmlava.s16 lr, q0, q4 @ encoding: [0xf0,0xee,0x28,0xee]
175 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
176 [0xf0,0xee,0x28,0xee]
178 # CHECK: vmladavx.s16 r0, q0, q7 @ encoding: [0xf0,0xee,0x0e,0x1e]
179 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
180 [0xf0,0xee,0x0e,0x1e]
182 # CHECK: vmladavax.s16 lr, q0, q7 @ encoding: [0xf0,0xee,0x2e,0xfe]
183 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
184 [0xf0,0xee,0x2e,0xfe]
186 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
187 [0xf8,0xfe,0x2a,0x1e]
189 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
190 [0xf8,0xfe,0x0a,0x1e]
192 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
193 [0xf9,0xfe,0x2a,0x1e]
195 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
196 [0xf9,0xfe,0x0a,0x1e]
198 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
199 [0xf8,0xfe,0x2a,0x1f]
201 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
202 [0xf8,0xfe,0x0a,0x1f]
204 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
205 [0x98,0xfe,0x2a,0x3e]
207 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
208 [0x98,0xfe,0x0a,0x3e]
210 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
211 [0x99,0xfe,0x2a,0x3e]
213 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
214 [0x99,0xfe,0x0a,0x3e]
216 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
217 [0x98,0xfe,0x2a,0x3f]
219 # ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
220 [0x98,0xfe,0x0a,0x3f]
222 # CHECK: vmlav.s8 lr, q3, q0 @ encoding: [0xf6,0xee,0x00,0xef]
223 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
224 [0xf6,0xee,0x00,0xef]
226 # CHECK: vmlav.u8 lr, q1, q7 @ encoding: [0xf2,0xfe,0x0e,0xef]
227 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
228 [0xf2,0xfe,0x0e,0xef]
230 # CHECK: vrmlalvh.s32 lr, r1, q6, q2 @ encoding: [0x8c,0xee,0x04,0xef]
231 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
232 [0x8c,0xee,0x04,0xef]
234 # CHECK: vrmlalvh.u32 lr, r1, q5, q2 @ encoding: [0x8a,0xfe,0x04,0xef]
235 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
236 [0x8a,0xfe,0x04,0xef]
238 # CHECK: vrmlalvh.u32 lr, r1, q5, q2 @ encoding: [0x8a,0xfe,0x04,0xef]
239 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
240 [0x8a,0xfe,0x04,0xef]
242 # CHECK: vrmlaldavhax.s32 lr, r1, q3, q0 @ encoding: [0x86,0xee,0x20,0xff]
243 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
244 [0x86,0xee,0x20,0xff]
246 # CHECK: vrmlsldavh.s32 lr, r11, q6, q5 @ encoding: [0xdc,0xfe,0x0b,0xee]
247 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
248 [0xdc,0xfe,0x0b,0xee]
250 # CHECK: vmlsdav.s16 lr, q0, q3 @ encoding: [0xf0,0xee,0x07,0xee]
251 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
252 [0xf0,0xee,0x07,0xee]
254 # CHECK: vrmlalvha.u32 lr, r1, q7, q1 @ encoding: [0x8e,0xfe,0x22,0xef]
255 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
256 [0x8e,0xfe,0x22,0xef]
258 # CHECK: vmlsdav.s16 lr, q0, q3 @ encoding: [0xf0,0xee,0x07,0xee]
259 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
260 [0xf0,0xee,0x07,0xee]
262 # CHECK: vmlalv.s16 lr, r1, q4, q1 @ encoding: [0x88,0xee,0x02,0xee]
263 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
264 [0x88,0xee,0x02,0xee]
266 # CHECK: vmlalv.s32 lr, r11, q4, q1 @ encoding: [0xd9,0xee,0x02,0xee]
267 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
268 [0xd9,0xee,0x02,0xee]
270 # CHECK: vmlalv.s32 r0, r1, q7, q6 @ encoding: [0x8f,0xee,0x0c,0x0e]
271 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
272 [0x8f,0xee,0x0c,0x0e]
274 # CHECK: vmlalv.u16 lr, r11, q5, q4 @ encoding: [0xda,0xfe,0x08,0xee]
275 # CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
276 [0xda,0xfe,0x08,0xee]