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