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