xref: /aosp_15_r20/external/llvm/test/MC/Disassembler/AArch64/basic-a64-undefined.txt (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker# RUN: not llvm-mc -disassemble -triple=aarch64 %s 2> %t
2*9880d681SAndroid Build Coastguard Worker# RUN: FileCheck %s < %t
3*9880d681SAndroid Build Coastguard Worker# RUN: not llvm-mc -disassemble -triple=arm64 %s 2> %t
4*9880d681SAndroid Build Coastguard Worker# RUN: FileCheck %s < %t
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker# Instructions notionally in the add/sub (extended register) sheet, but with
7*9880d681SAndroid Build Coastguard Worker# invalid shift amount or "opt" field.
8*9880d681SAndroid Build Coastguard Worker[0x00 0x10 0xa0 0x0b]
9*9880d681SAndroid Build Coastguard Worker[0x00 0x10 0x60 0x0b]
10*9880d681SAndroid Build Coastguard Worker[0x00 0x14 0x20 0x0b]
11*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
12*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
13*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker# Instructions notionally in the add/sub (immediate) sheet, but with
16*9880d681SAndroid Build Coastguard Worker# invalid "shift" field.
17*9880d681SAndroid Build Coastguard Worker[0xdf 0x3 0x80 0x91]
18*9880d681SAndroid Build Coastguard Worker[0xed 0x8e 0xc4 0x31]
19*9880d681SAndroid Build Coastguard Worker[0x62 0xfc 0xbf 0x11]
20*9880d681SAndroid Build Coastguard Worker[0x3 0xff 0xff 0x91]
21*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
22*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
23*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
24*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Worker# Instructions notionally in the load/store (unsigned immediate) sheet.
27*9880d681SAndroid Build Coastguard Worker# Only unallocated (int-register) variants are: opc=0b11, size=0b10, 0b11
28*9880d681SAndroid Build Coastguard Worker[0xd7 0xfc 0xff 0xb9]
29*9880d681SAndroid Build Coastguard Worker[0xd7 0xfc 0xcf 0xf9]
30*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
31*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Worker# Instructions notionally in the floating-point <-> fixed-point conversion
34*9880d681SAndroid Build Coastguard Worker# Scale field is 64-<imm> and <imm> should be 1-32 for a 32-bit int register.
35*9880d681SAndroid Build Coastguard Worker[0x23 0x01 0x18 0x1e]
36*9880d681SAndroid Build Coastguard Worker[0x23 0x25 0x42 0x1e]
37*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
38*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard Worker# Instructions notionally in the logical (shifted register) sheet, but with out
41*9880d681SAndroid Build Coastguard Worker# of range shift: w-registers can only have 0-31.
42*9880d681SAndroid Build Coastguard Worker[0x00 0x80 0x00 0x0a]
43*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker# Instructions notionally in the move wide (immediate) sheet, but with out
46*9880d681SAndroid Build Coastguard Worker# of range shift: w-registers can only have 0 or 16.
47*9880d681SAndroid Build Coastguard Worker[0x00 0x00 0xc0 0x12]
48*9880d681SAndroid Build Coastguard Worker[0x12 0x34 0xe0 0x52]
49*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
50*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
51*9880d681SAndroid Build Coastguard Worker
52*9880d681SAndroid Build Coastguard Worker# Data-processing instructions are undefined when S=1 and for the 0b0000111
53*9880d681SAndroid Build Coastguard Worker# value in opcode:sf
54*9880d681SAndroid Build Coastguard Worker[0x00 0x00 0xc0 0x5f]
55*9880d681SAndroid Build Coastguard Worker[0x56 0x0c 0xc0 0x5a]
56*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
57*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Worker# Data-processing instructions (2 source) are undefined for a value of
60*9880d681SAndroid Build Coastguard Worker#  0001xx:0:x or 0011xx:0:x for opcode:S:sf
61*9880d681SAndroid Build Coastguard Worker[0x00 0x30 0xc1 0x1a]
62*9880d681SAndroid Build Coastguard Worker[0x00 0x10 0xc1 0x1a]
63*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
64*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding
65*9880d681SAndroid Build Coastguard Worker
66*9880d681SAndroid Build Coastguard Worker
67