1# RUN: not llvm-mc -disassemble %s -mcpu cortex-a8 -triple armv7 2>&1 | FileCheck %s
2
3# This file is checking ARMv7 encodings which are globally invalid, usually due
4# to the constraints of the instructions not being met. For example invalid
5# combinations of registers.
6
7
8#------------------------------------------------------------------------------
9# Undefined encodings for bfi
10#------------------------------------------------------------------------------
11
12# Opcode=60 Name=BFI Format=ARM_FORMAT_DPFRM(4)
13#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
14# -------------------------------------------------------------------------------------------------
15# | 1: 1: 1: 0| 0: 1: 1: 1| 1: 1: 0: 0| 1: 1: 1: 1| 1: 1: 1: 1| 0: 0: 0: 0| 0: 0: 0: 1| 0: 1: 1: 0|
16# -------------------------------------------------------------------------------------------------
17#
18# if d == 15 then UNPREDICTABLE;
19[0x16 0xf0 0xcf 0xe7]
20# CHECK: potentially undefined instruction encoding
21# CHECK-NEXT: [0x16 0xf0 0xcf 0xe7]
22
23#------------------------------------------------------------------------------
24# Undefined encodings for cdp2
25#------------------------------------------------------------------------------
26
27[0xe0 0x6a 0x0c 0xfe]
28# CHECK: invalid instruction encoding
29# CHECK-NEXT: [0xe0 0x6a 0x0c 0xfe]
30
31
32#------------------------------------------------------------------------------
33# Undefined encodings for cps*
34#------------------------------------------------------------------------------
35
36# invalid imod value (0b01)
37[0xc0 0x67 0x4 0xf1]
38# CHECK: invalid instruction encoding
39# CHECK-NEXT: [0xc0 0x67 0x4 0xf1]
40
41# invalid (imod, M, iflags) combination
42[0x93 0x00 0x02 0xf1]
43# CHECK: potentially undefined instruction encoding
44# CHECK-NEXT: [0x93 0x00 0x02 0xf1]
45
46# CPS: various encodings that are ambiguous with other instructions
47[0x9f 0xff 0x4e 0xf1]
48# CHECK: invalid instruction encoding
49# CHECK-NEXT: [0x9f 0xff 0x4e 0xf1]
50
51[0x80 0x80 0x2c 0xf1]
52# CHECK: invalid instruction encoding
53# CHECK-NEXT: [0x80 0x80 0x2c 0xf1]
54
55[0xce 0x3f 0x28 0xf1]
56# CHECK: invalid instruction encoding
57# CHECK-NEXT: [0xce 0x3f 0x28 0xf1]
58
59[0x80 0x00 0x20 0xf1]
60# CHECK: invalid instruction encoding
61# CHECK-NEXT: [0x80 0x00 0x20 0xf1]
62
63[0xa0 0x00 0x00 0xf1]
64# CHECK: invalid instruction encoding
65# CHECK-NEXT: [0xa0 0x00 0x00 0xf1]
66
67
68#------------------------------------------------------------------------------
69# Undefined encoding space for hint instructions
70#------------------------------------------------------------------------------
71
72# FIXME: is it "dbg #14" or not????
73[0xfe 0xf0 0x20 0xe3]
74# CHCK: invalid instruction encoding
75
76
77#------------------------------------------------------------------------------
78# Undefined encodings for ldc
79#------------------------------------------------------------------------------
80
81# Opcode=0 Name=PHI Format=(42)
82#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
83# -------------------------------------------------------------------------------------------------
84# | 1: 1: 0: 1| 1: 1: 0: 0| 0: 0: 0: 1| 1: 1: 1: 1| 1: 0: 1: 1| 0: 1: 0: 0| 1: 0: 0: 1| 0: 0: 1: 0|
85# -------------------------------------------------------------------------------------------------
86#
87# The bytes have 0b0000 for P,U,D,W; from A8.6.51, it is undefined.
88
89[0x92 0xb4 0x1f 0xdc]
90# CHECK: invalid instruction encoding
91# CHECK-NEXT: [0x92 0xb4 0x1f 0xdc]
92
93
94#------------------------------------------------------------------------------
95# Undefined encodings for ldm
96#------------------------------------------------------------------------------
97
98# Opcode=134 Name=LDMIA Format=ARM_FORMAT_LDSTMULFRM(10)
99# 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
100# -------------------------------------------------------------------------------------------------
101# | 1: 1: 1: 1| 1: 0: 0: 0| 1: 0: 0: 1| 1: 0: 0: 1| 1: 0: 1: 1| 0: 0: 0: 1| 0: 0: 1: 1| 0: 0: 1: 0|
102# -------------------------------------------------------------------------------------------------
103#
104# B6.1.8 RFE has Inst{15-0} as 0x0a00 ==> Not an RFE instruction
105# A8.6.53 LDM/LDMIA/LDMFD is predicated with Inst{31-28} as cond ==> Not an LDMIA instruction
106
107[0x32 0xb1 0x99 0xf8]
108# CHECK: invalid instruction encoding
109# CHECK-NEXT: [0x32 0xb1 0x99 0xf8]
110
111
112#------------------------------------------------------------------------------
113# Undefined encodings for ldr
114#------------------------------------------------------------------------------
115
116# Opcode=165 Name=LDR_PRE Format=ARM_FORMAT_LDFRM(6)
117#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
118# -------------------------------------------------------------------------------------------------
119# | 1: 1: 1: 0| 0: 1: 1: 1| 1: 0: 1: 1| 0: 1: 1: 1| 0: 1: 1: 0| 0: 0: 0: 0| 1: 0: 0: 0| 1: 1: 1: 1|
120# -------------------------------------------------------------------------------------------------
121#
122# if m == 15 then UNPREDICTABLE
123
124[0x8f 0x60 0xb7 0xe7]
125# CHECK: potentially undefined instruction encoding
126# CHECK-NEXT: [0x8f 0x60 0xb7 0xe7]
127
128# LDR (register) has encoding Inst{4} = 0.
129[0xba 0xae 0x9f 0x57]
130# CHECK: invalid instruction encoding
131# CHECK-NEXT: [0xba 0xae 0x9f 0x57]
132
133# LDR_PRE/POST has encoding Inst{4} = 0.
134[0xde 0x69 0x18 0x46]
135# CHECK: invalid instruction encoding
136# CHECK-NEXT: [0xde 0x69 0x18 0x46]
137
138# Opcode=140 Name=LDRB_POST Format=ARM_FORMAT_LDFRM(6)
139#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
140# -------------------------------------------------------------------------------------------------
141# | 1: 1: 1: 0| 0: 1: 1: 0| 1: 1: 0: 1| 0: 1: 1: 1| 0: 1: 1: 1| 0: 0: 0: 0| 0: 0: 0: 0| 0: 1: 0: 1|
142# -------------------------------------------------------------------------------------------------
143#
144# if wback && (n == 15 || n == t) then UNPREDICTABLE
145[0x05 0x70 0xd7 0xe6]
146# CHECK: potentially undefined instruction encoding
147# CHECK-NEXT: [0x05 0x70 0xd7 0xe6]
148
149
150
151#------------------------------------------------------------------------------
152# Undefined encodings for mcr
153#------------------------------------------------------------------------------
154
155# Opcode=171 Name=MCR Format=ARM_FORMAT_BRFRM(2)
156#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
157# -------------------------------------------------------------------------------------------------
158# | 0: 0: 1: 0| 1: 1: 1: 0| 1: 0: 1: 0| 0: 0: 0: 0| 0: 0: 0: 1| 1: 0: 1: 1| 0: 0: 0: 1| 1: 0: 1: 1|
159# -------------------------------------------------------------------------------------------------
160#
161# Encoding error: coproc == 10 or 11 for MCR[R]/MR[R]C
162
163[0x1b 0x1b 0xa0 0x2e]
164# CHECK: invalid instruction encoding
165# CHECK-NEXT: [0x1b 0x1b 0xa0 0x2e]
166
167
168#------------------------------------------------------------------------------
169# Undefined encodings for mov/lsl
170#------------------------------------------------------------------------------
171
172# Opcode=0 Name=PHI Format=(42)
173#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
174# -------------------------------------------------------------------------------------------------
175# | 1: 1: 1: 1| 0: 0: 0: 1| 1: 0: 1: 1| 1: 1: 0: 0| 1: 1: 0: 1| 0: 0: 0: 1| 0: 0: 0: 0| 0: 0: 1: 0|
176# -------------------------------------------------------------------------------------------------
177# To qualify as an LSL (immediate) instruction, Inst{19-16} "should" be 0b0000, instead it is = 0b1100.
178# The instruction is UNPREDICTABLE, and is not a valid instruction.
179#
180# See also
181# A8.6.88 LSL (immediate)
182# A8.6.98 MOV (shifted register), and
183# I.1 Instruction encoding diagrams and pseudocode
184
185[0x2 0xd1 0xbc 0xf1]
186# CHECK: invalid instruction encoding
187# CHECK-NEXT: [0x2 0xd1 0xbc 0xf1]
188
189
190# Opcode=0 Name=PHI Format=(42)
191#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
192# -------------------------------------------------------------------------------------------------
193# | 1: 1: 1: 1| 0: 0: 0: 1| 1: 0: 1: 1| 1: 1: 0: 0| 1: 1: 0: 1| 0: 0: 0: 0| 0: 0: 0: 0| 0: 0: 1: 0|
194# -------------------------------------------------------------------------------------------------
195# To qualify as a MOV (register) instruction, Inst{19-16} "should" be 0b0000, instead it is = 0b1100.
196# The instruction is UNPREDICTABLE, and is not a valid instruction.
197#
198# See also
199# A8.6.97 MOV (register)
200
201[0x2 0xd0 0xbc 0xf1]
202# CHECK: invalid instruction encoding
203# CHECK-NEXT: [0x2 0xd0 0xbc 0xf1]
204
205# Opcode=196 Name=MOVs Format=ARM_FORMAT_DPSOREGFRM(5)
206#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
207# -------------------------------------------------------------------------------------------------
208# | 1: 1: 0: 1| 0: 0: 0: 1| 1: 0: 1: 0| 0: 0: 0: 0| 0: 1: 0: 0| 0: 0: 1: 0| 1: 0: 0: 1| 0: 0: 1: 1|
209# -------------------------------------------------------------------------------------------------
210# A8.6.89 LSL (register): Inst{7-4} = 0b0001
211[0x93 0x42 0xa0 0xd1]
212# CHECK: invalid instruction encoding
213# CHECK-NEXT: [0x93 0x42 0xa0 0xd1]
214
215# Opcode=185 Name=MOVTi16 Format=ARM_FORMAT_DPFRM(4)
216#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
217# -------------------------------------------------------------------------------------------------
218# | 1: 1: 1: 0| 0: 0: 1: 1| 0: 1: 0: 0| 0: 0: 0: 1| 1: 1: 1: 1| 0: 0: 0: 0| 0: 0: 0: 0| 0: 0: 0: 0|
219# -------------------------------------------------------------------------------------------------
220#
221# if d == 15 then UNPREDICTABLE
222[0x00 0xf0 0x41 0xe3]
223# CHECK: potentially undefined instruction encoding
224# CHECK-NEXT: [0x00 0xf0 0x41 0xe3]
225
226
227#------------------------------------------------------------------------------
228# Undefined encodings for mrrc2
229#------------------------------------------------------------------------------
230
231[0x00 0x1a 0x50 0xfc]
232# CHECK: invalid instruction encoding
233# CHECK-NEXT: [0x00 0x1a 0x50 0xfc]
234
235
236#------------------------------------------------------------------------------
237# Undefined encodings for msr (imm)
238#------------------------------------------------------------------------------
239
240# Opcode=206 Name=MSRi Format=ARM_FORMAT_BRFRM(2)
241#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
242# -------------------------------------------------------------------------------------------------
243# | 0: 0: 0: 0| 0: 0: 1: 1| 0: 0: 1: 0| 0: 0: 0: 0| 1: 1: 1: 1| 0: 0: 0: 1| 1: 0: 1: 0| 0: 1: 1: 1|
244# -------------------------------------------------------------------------------------------------
245#
246# A5.2.11 MSR (immediate), and hints & B6.1.6 MSR (immediate)
247# The hints instructions have more specific encodings, so if mask == 0,
248# we should reject this as an invalid instruction.
249
250[0xa7 0xf1 0x20 0x3]
251# CHECK: invalid instruction encoding
252# CHECK-NEXT: [0xa7 0xf1 0x20 0x3]
253
254
255#------------------------------------------------------------------------------
256# Undefined encodings for sbfx
257#------------------------------------------------------------------------------
258
259# Opcode=271 Name=SBFX Format=ARM_FORMAT_DPFRM(4)
260#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
261# -------------------------------------------------------------------------------------------------
262# | 1: 1: 1: 0| 0: 1: 1: 1| 1: 0: 1: 0| 0: 1: 1: 1| 0: 1: 0: 1| 0: 1: 0: 0| 0: 1: 0: 1| 1: 1: 1: 1|
263# -------------------------------------------------------------------------------------------------
264#
265# if d == 15 || n == 15 then UNPREDICTABLE;
266
267[0x5f 0x54 0xa7 0xe7]
268# CHECK: potentially undefined instruction encoding
269# CHECK-NEXT: [0x5f 0x54 0xa7 0xe7]
270
271#------------------------------------------------------------------------------
272# Undefined encodings for smlad
273#------------------------------------------------------------------------------
274
275# Opcode=284 Name=SMLAD Format=ARM_FORMAT_MULFRM(1)
276#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
277# -------------------------------------------------------------------------------------------------
278# | 1: 0: 0: 1| 0: 1: 1: 1| 0: 0: 0: 0| 1: 1: 1: 1| 0: 1: 1: 0| 1: 0: 0: 0| 0: 0: 0: 1| 1: 0: 1: 1|
279# -------------------------------------------------------------------------------------------------
280#
281# A8.6.167
282# if d == 15 || n == 15 | m == 15 then UNPREDICTABLE
283
284[0x1b 0x68 0xf 0x97]
285# CHECK: potentially undefined instruction encoding
286# CHECK-NEXT: [0x1b 0x68 0xf 0x97]
287
288
289#------------------------------------------------------------------------------
290# Undefined encodings for srs
291#------------------------------------------------------------------------------
292
293# Opcode=0 Name=PHI Format=(42)
294#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
295# -------------------------------------------------------------------------------------------------
296# | 1: 1: 1: 1| 1: 0: 0: 0| 1: 1: 0: 0| 0: 1: 0: 1| 0: 0: 0: 1| 1: 1: 0: 0| 1: 0: 0: 0| 0: 0: 1: 1|
297# -------------------------------------------------------------------------------------------------
298# Unknown format
299#
300# B6.1.10 SRS
301# Inst{19-8} = 0xd05
302# Inst{7-5} = 0b000
303
304[0x83 0x1c 0xc5 0xf8]
305# CHECK: invalid instruction encoding
306# CHECK-NEXT: [0x83 0x1c 0xc5 0xf8]
307
308[0x00 0x00 0x20 0xf8]
309# CHECK: invalid instruction encoding
310# CHECK-NEXT: [0x00 0x00 0x20 0xf8]
311
312[0xff 0xff 0xaf 0xf8]
313# CHECK: invalid instruction encoding
314# CHECK-NEXT: [0xff 0xff 0xaf 0xf8]
315
316[0x13 0x00 0xa0 0xf8]
317# CHECK: invalid instruction encoding
318# CHECK-NEXT: [0x13 0x00 0xa0 0xf8]
319
320#------------------------------------------------------------------------------
321# Undefined encodings for sxtb
322#------------------------------------------------------------------------------
323
324# Opcode=390 Name=SXTBr_rot Format=ARM_FORMAT_EXTFRM(14)
325#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
326# -------------------------------------------------------------------------------------------------
327# | 1: 1: 1: 0| 0: 1: 1: 0| 1: 0: 1: 0| 1: 1: 1: 1| 1: 1: 1: 1| 0: 1: 0: 0| 0: 1: 1: 1| 0: 1: 0: 1|
328# -------------------------------------------------------------------------------------------------
329#
330# A8.6.223 SXTB
331# if d == 15 || m == 15 then UNPREDICTABLE;
332
333[0x75 0xf4 0xaf 0xe6]
334# CHECK: potentially undefined instruction encoding
335# CHECK-NEXT: [0x75 0xf4 0xaf 0xe6]
336
337#------------------------------------------------------------------------------
338# Undefined encodings for NEON umaal
339#------------------------------------------------------------------------------
340
341# Opcode=419 Name=UMAAL Format=ARM_FORMAT_MULFRM(1)
342#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
343# -------------------------------------------------------------------------------------------------
344# | 1: 1: 1: 1| 0: 0: 0: 0| 0: 1: 0: 0| 1: 1: 1: 1| 1: 0: 1: 1| 1: 1: 1: 1| 1: 0: 0: 1| 1: 0: 0: 0|
345# -------------------------------------------------------------------------------------------------
346#
347# A8.6.244 UMAAL
348# if dLo == 15 || dHi == 15 || n == 15 || m == 15 then UNPREDICTABLE;
349[0x98 0xbf 0x4f 0xf0]
350# CHECK: invalid instruction encoding
351# CHECK-NEXT: [0x98 0xbf 0x4f 0xf0]
352
353#------------------------------------------------------------------------------
354# Undefined encodings for NEON vcvt (float <-> fixed)
355#------------------------------------------------------------------------------
356
357# imm6=0b0xxxxx -> UNDEFINED
358[0x1e 0xcf 0x92 0xf3]
359# CHECK: invalid instruction encoding
360# CHECK-NEXT: [0x1e 0xcf 0x92 0xf3]
361
362[0x3e 0xcf 0x92 0xf3]
363# CHECK: invalid instruction encoding
364# CHECK-NEXT: [0x3e 0xcf 0x92 0xf3]
365
366
367#------------------------------------------------------------------------------
368# Undefined encodings for NEON vext
369#------------------------------------------------------------------------------
370
371# invalid imm4 value (0b1xxx)
372# A8.8.316: if Q == '0' && imm4<3> == '1' then UNDEFINED;
373[0x8f 0xf9 0xf7 0xf2]
374# CHECK: invalid instruction encoding
375# CHECK-NEXT: [0x8f 0xf9 0xf7 0xf2]
376
377#------------------------------------------------------------------------------
378# Undefined encodings for NEON vldmsdb
379#------------------------------------------------------------------------------
380
381# core registers out of range
382[0xa5 0xba 0x72 0xed]
383# CHECK: potentially undefined instruction encoding
384# CHECK-NEXT: [0xa5 0xba 0x72 0xed]
385
386
387#------------------------------------------------------------------------------
388# Undefined encodings for NEON vmov
389#------------------------------------------------------------------------------
390
391# VMOV cmode=0b1111 op=1 is UNDEFINED
392[0x70 0xef 0xc7 0xf3]
393# CHECK: invalid instruction encoding
394# CHECK-NEXT: [0x70 0xef 0xc7 0xf3]
395
396#  VMOV cmode=0b1111 op=1 is UNDEFINED
397[0x30 0x0f 0x80 0xf3]
398# CHECK: invalid instruction encoding
399# CHECK-NEXT: [0x30 0x0f 0x80 0xf3]
400
401
402#------------------------------------------------------------------------------
403# Undefined encodings for NEON vqadd
404#------------------------------------------------------------------------------
405
406# Opcode=1225 Name=VQADDsv16i8 Format=ARM_FORMAT_N3Reg(37)
407#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0 
408# -------------------------------------------------------------------------------------------------
409# | 1: 1: 1: 1| 0: 0: 1: 0| 0: 1: 0: 0| 0: 0: 0: 0| 1: 1: 1: 0| 0: 0: 0: 0| 1: 1: 0: 1| 1: 0: 1: 1|
410# -------------------------------------------------------------------------------------------------
411#
412# Qm -> bit[0] == 0, otherwise UNDEFINED
413[0xdb 0xe0 0x40 0xf2]
414# CHECK: invalid instruction encoding
415# CHECK-NEXT: [0xdb 0xe0 0x40 0xf2]
416
417
418#------------------------------------------------------------------------------
419# Undefined encodings for NEON vld/vst
420#------------------------------------------------------------------------------
421
422# A8.6.393 VST2 (multiple 2-element structures)
423[0xb3 0x09 0x03 0xf4]
424# CHECK: invalid instruction encoding
425# CHECK-NEXT: [0xb3 0x09 0x03 0xf4]
426
427# size == '11' ==> UNDEFINED
428[0xc3 0x08 0x03 0xf4]
429# CHECK: invalid instruction encoding
430# CHECK-NEXT: [0xc3 0x08 0x03 0xf4]
431
432# type == '1000' and align == '11' ==> UNDEFINED
433[0xb3 0x08 0x03 0xf4]
434# CHECK: invalid instruction encoding
435# CHECK-NEXT: [0xb3 0x08 0x03 0xf4]
436
437# VST1 multi-element, type == 0b0111, align == 0b10 -> undefined
438[0xaf 0xb7 0x07 0xf4]
439# CHECK: invalid instruction encoding
440# CHECK-NEXT: [0xaf 0xb7 0x07 0xf4]
441
442# VST1 multi-element, type == 0b0111, align == 0b11 -> undefined
443[0xbf 0xb7 0x07 0xf4]
444# CHECK: invalid instruction encoding
445# CHECK-NEXT: [0xbf 0xb7 0x07 0xf4]
446
447# VST1 multi-element, type == 0b1010, align == 0b11 -> undefined
448[0xbf 0x8a 0x03 0xf4]
449# CHECK: invalid instruction encoding
450# CHECK-NEXT: [0xbf 0x8a 0x03 0xf4]
451
452# VST1 multi-element, type == 0b0110, align == 0b10 -> undefined
453[0xaf 0xb6 0x07 0xf4]
454# CHECK: invalid instruction encoding
455# CHECK-NEXT: [0xaf 0xb6 0x07 0xf4]
456
457# VST1 multi-element, type == 0b0110, align == 0b11 -> undefined
458[0xbf 0xb6 0x07 0xf4]
459# CHECK: invalid instruction encoding
460# CHECK-NEXT: [0xbf 0xb6 0x07 0xf4]
461
462# VST2 multi-element, type == 0b0100, align == 0b11 -> undefined
463[0x4f 0xa8 0x07 0xf7]
464# CHECK: invalid instruction encoding
465# CHECK-NEXT: [0x4f 0xa8 0x07 0xf7]
466
467# VST2 multi-element, type == 0b0100, align == 0b11 -> undefined
468[0x4f 0xa9 0x07 0xf7]
469# CHECK: invalid instruction encoding
470# CHECK-NEXT: [0x4f 0xa9 0x07 0xf7]
471
472# VST3 multi-element, size = 0b11 -> undefined
473[0xbf 0xa4 0x0b 0xf4]
474# CHECK: invalid instruction encoding
475# CHECK-NEXT: [0xbf 0xa4 0x0b 0xf4]
476
477# VST3 multi-element, align = 0b10 -> undefined
478[0x6f 0xa4 0x0b 0xf4]
479# CHECK: invalid instruction encoding
480# CHECK-NEXT: [0x6f 0xa4 0x0b 0xf4]
481
482# VST3 multi-element, align = 0b11 -> undefined
483[0x7f 0xa4 0x0b 0xf4]
484# CHECK: invalid instruction encoding
485# CHECK-NEXT: [0x7f 0xa4 0x0b 0xf4]
486
487# VST4 multi-element, size = 0b11 -> undefined
488[0xcf 0x50 0x03 0xf4]
489# CHECK: invalid instruction encoding
490# CHECK-NEXT: [0xcf 0x50 0x03 0xf4]
491
492
493# Opcode=737 Name=VLD1DUPq8_UPD Format=ARM_FORMAT_NLdSt(30)
494#  31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0 
495# -------------------------------------------------------------------------------------------------
496# | 1: 1: 1: 1| 0: 1: 0: 0| 1: 0: 1: 0| 0: 0: 0: 0| 0: 0: 1: 1| 1: 1: 0: 0| 0: 0: 1: 1| 1: 1: 0: 1|
497# -------------------------------------------------------------------------------------------------
498# 
499# 'a' == 1 and data_size == 8 is invalid
500[0x3d 0x3c 0xa0 0xf4]
501# CHECK: invalid instruction encoding
502# CHECK-NEXT: [0x3d 0x3c 0xa0 0xf4]
503