xref: /llvm-project/llvm/test/MC/Disassembler/ARM/mve-reductions.txt (revision 0e48bd24e2120e0a9fbf2bc4896266b43496df3d)
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
5
6[0x82 0xee 0x07 0x0f]
7# CHECK: vabav.s8  r0, q1, q3
8# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
9
10[0x92 0xee 0x07 0x0f]
11# CHECK: vabav.s16 r0, q1, q3
12# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
13
14[0xa2 0xee 0x07 0x0f]
15# CHECK: vabav.s32 r0, q1, q3
16# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
17
18[0x82 0xfe 0x07 0x0f]
19# CHECK: vabav.u8 r0, q1, q3
20# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
21
22[0x92 0xfe 0x07 0x0f]
23# CHECK: vabav.u16  r0, q1, q3
24# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
25
26[0xa2 0xfe 0x07 0x0f]
27# CHECK: vabav.u32  r0, q1, q3
28# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding
29
30# CHECK: vaddv.s16 lr, q0  @ encoding: [0xf5,0xee,0x00,0xef]
31# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
32[0xf5,0xee,0x00,0xef]
33
34# CHECK: vaddva.s16 lr, q0  @ encoding: [0xf5,0xee,0x20,0xef]
35# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
36[0xf5,0xee,0x20,0xef]
37
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
44[0x41,0xfe,0x00,0x8f]
45[0xf5,0xee,0x20,0xef]
46[0xf5,0xee,0x20,0xef]
47
48# CHECK: vaddlv.s32 r0, r9, q2  @ encoding: [0xc9,0xee,0x04,0x0f]
49# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
50[0xc9,0xee,0x04,0x0f]
51
52# CHECK: vaddlv.u32 r0, r1, q1  @ encoding: [0x89,0xfe,0x02,0x0f]
53# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
54[0x89,0xfe,0x02,0x0f]
55
56# CHECK: vminnmv.f16 lr, q3  @ encoding: [0xee,0xfe,0x86,0xef]
57# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
58[0xee,0xfe,0x86,0xef]
59
60# CHECK: vminnmv.f32 lr, q1  @ encoding: [0xee,0xee,0x82,0xef]
61# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
62[0xee,0xee,0x82,0xef]
63
64# CHECK: vminnmav.f16 lr, q0  @ encoding: [0xec,0xfe,0x80,0xef]
65# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
66[0xec,0xfe,0x80,0xef]
67
68# CHECK: vminnmav.f32 lr, q3  @ encoding: [0xec,0xee,0x86,0xef]
69# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
70[0xec,0xee,0x86,0xef]
71
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
78[0x41,0xfe,0x00,0x8f]
79[0xec,0xee,0x86,0xef]
80[0xec,0xee,0x86,0xef]
81
82# CHECK: vminv.s8 lr, q0  @ encoding: [0xe2,0xee,0x80,0xef]
83# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
84[0xe2,0xee,0x80,0xef]
85
86# CHECK: vminv.s16 lr, q0  @ encoding: [0xe6,0xee,0x80,0xef]
87# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
88[0xe6,0xee,0x80,0xef]
89
90# CHECK: vminv.s32 lr, q2  @ encoding: [0xea,0xee,0x84,0xef]
91# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
92[0xea,0xee,0x84,0xef]
93
94# CHECK: vminv.u8 r0, q0  @ encoding: [0xe2,0xfe,0x80,0x0f]
95# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
96[0xe2,0xfe,0x80,0x0f]
97
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]
101
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]
105
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]
109
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]
113
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]
117
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]
121
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]
125
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]
129
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]
133
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]
137
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]
141
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]
145
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]
149
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]
153
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]
157
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]
161
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]
165
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]
169
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]
173
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]
177
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]
181
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]
185
186# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
187[0xf8,0xfe,0x2a,0x1e]
188
189# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
190[0xf8,0xfe,0x0a,0x1e]
191
192# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
193[0xf9,0xfe,0x2a,0x1e]
194
195# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
196[0xf9,0xfe,0x0a,0x1e]
197
198# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
199[0xf8,0xfe,0x2a,0x1f]
200
201# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
202[0xf8,0xfe,0x0a,0x1f]
203
204# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
205[0x98,0xfe,0x2a,0x3e]
206
207# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
208[0x98,0xfe,0x0a,0x3e]
209
210# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
211[0x99,0xfe,0x2a,0x3e]
212
213# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
214[0x99,0xfe,0x0a,0x3e]
215
216# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
217[0x98,0xfe,0x2a,0x3f]
218
219# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding
220[0x98,0xfe,0x0a,0x3f]
221
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]
225
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]
229
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]
233
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]
237
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]
241
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]
245
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]
249
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]
253
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]
257
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]
261
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]
265
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]
269
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]
273
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]
277