1*9880d681SAndroid Build Coastguard Worker# RUN: not llvm-mc -triple armv8 -show-encoding -disassemble %s 2>&1 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker# Coprocessors other than CP10, CP11, CP14 and CP15 are undefined in ARMv8; 4*9880d681SAndroid Build Coastguard Worker# but in ARMv7, all these instructions are valid 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc -triple armv7 -show-encoding -disassemble %s | FileCheck %s --check-prefix=CHECK-V7 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker[0x00 0x01 0x00 0xee] 9*9880d681SAndroid Build Coastguard Worker# CHECK-V7: cdp 10*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 11*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x01 0x00 0xee] 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker[0x00 0x0e 0x00 0xee] 14*9880d681SAndroid Build Coastguard Worker# CHECK-V7: cdp 15*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 16*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0e 0x00 0xee] 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker[0x00 0x0f 0x00 0xee] 19*9880d681SAndroid Build Coastguard Worker# CHECK-V7: cdp 20*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 21*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0f 0x00 0xee] 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker[0x00 0x01 0x00 0xfe] 24*9880d681SAndroid Build Coastguard Worker# CHECK-V7: cdp2 25*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 26*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x01 0x00 0xfe] 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Worker[0x00 0x0e 0x00 0xfe] 29*9880d681SAndroid Build Coastguard Worker# CHECK-V7: cdp2 30*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 31*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0e 0x00 0xfe] 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker[0x00 0x0f 0x00 0xfe] 34*9880d681SAndroid Build Coastguard Worker# CHECK-V7: cdp2 35*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 36*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0f 0x00 0xfe] 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Worker[0x10 0x01 0x00 0xee] 39*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mcr 40*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 41*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x10 0x01 0x00 0xee] 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker[0x10 0x01 0x00 0xfe] 44*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mcr2 45*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 46*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x10 0x01 0x00 0xfe] 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Worker[0x10 0x0e 0x00 0xfe] 49*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mcr2 50*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 51*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x10 0x0e 0x00 0xfe] 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Worker[0x10 0x0f 0x00 0xfe] 54*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mcr2 55*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 56*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x10 0x0f 0x00 0xfe] 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker[0x10 0x01 0x10 0xee] 59*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mrc 60*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 61*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x10 0x01 0x10 0xee] 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker[0x10 0x01 0x10 0xfe] 64*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mrc2 65*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 66*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x10 0x01 0x10 0xfe] 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Worker[0x10 0x0e 0x10 0xfe] 69*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mrc2 70*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 71*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x10 0x0e 0x10 0xfe] 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Worker[0x10 0x0f 0x10 0xfe] 74*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mrc2 75*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 76*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x10 0x0f 0x10 0xfe] 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Worker[0x00 0x01 0x40 0xec] 79*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mcrr 80*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 81*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x01 0x40 0xec] 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Worker[0x00 0x01 0x40 0xfc] 84*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mcrr2 85*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 86*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x01 0x40 0xfc] 87*9880d681SAndroid Build Coastguard Worker 88*9880d681SAndroid Build Coastguard Worker[0x00 0x0e 0x40 0xfc] 89*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mcrr2 90*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 91*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0e 0x40 0xfc] 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Worker[0x00 0x0f 0x40 0xfc] 94*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mcrr2 95*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 96*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0f 0x40 0xfc] 97*9880d681SAndroid Build Coastguard Worker 98*9880d681SAndroid Build Coastguard Worker[0x00 0x01 0x50 0xec] 99*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mrrc 100*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 101*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x01 0x50 0xec] 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Worker[0x00 0x0e 0x50 0xfc] 104*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mrrc2 105*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 106*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0e 0x50 0xfc] 107*9880d681SAndroid Build Coastguard Worker 108*9880d681SAndroid Build Coastguard Worker[0x00 0x0f 0x50 0xfc] 109*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mrrc2 110*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 111*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0f 0x50 0xfc] 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Worker[0x00 0x01 0x50 0xfc] 114*9880d681SAndroid Build Coastguard Worker# CHECK-V7: mrrc2 115*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 116*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x01 0x50 0xfc] 117*9880d681SAndroid Build Coastguard Worker 118*9880d681SAndroid Build Coastguard Worker[0x00 0x01 0x80 0xec] 119*9880d681SAndroid Build Coastguard Worker# CHECK-V7: stc 120*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 121*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x01 0x80 0xec] 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Worker[0x00 0x0f 0x80 0xec] 124*9880d681SAndroid Build Coastguard Worker# CHECK-V7: stc 125*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 126*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0f 0x80 0xec] 127*9880d681SAndroid Build Coastguard Worker 128*9880d681SAndroid Build Coastguard Worker[0x00 0x01 0x80 0xfc] 129*9880d681SAndroid Build Coastguard Worker# CHECK-V7: stc2 130*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 131*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x01 0x80 0xfc] 132*9880d681SAndroid Build Coastguard Worker 133*9880d681SAndroid Build Coastguard Worker[0x00 0x0e 0x80 0xfc] 134*9880d681SAndroid Build Coastguard Worker# CHECK-V7: stc2 135*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 136*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0e 0x80 0xfc] 137*9880d681SAndroid Build Coastguard Worker 138*9880d681SAndroid Build Coastguard Worker[0x00 0x0f 0x80 0xfc] 139*9880d681SAndroid Build Coastguard Worker# CHECK-V7: stc2 140*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 141*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0f 0x80 0xfc] 142*9880d681SAndroid Build Coastguard Worker 143*9880d681SAndroid Build Coastguard Worker[0x00 0x01 0x90 0xec] 144*9880d681SAndroid Build Coastguard Worker# CHECK-V7: ldc 145*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 146*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x01 0x90 0xec] 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Worker[0x00 0x0f 0x90 0xec] 149*9880d681SAndroid Build Coastguard Worker# CHECK-V7: ldc 150*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 151*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0f 0x90 0xec] 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Worker[0x00 0x01 0x90 0xfc] 154*9880d681SAndroid Build Coastguard Worker# CHECK-V7: ldc2 155*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 156*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x01 0x90 0xfc] 157*9880d681SAndroid Build Coastguard Worker 158*9880d681SAndroid Build Coastguard Worker[0x00 0x0e 0x90 0xfc] 159*9880d681SAndroid Build Coastguard Worker# CHECK-V7: ldc2 160*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 161*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0e 0x90 0xfc] 162*9880d681SAndroid Build Coastguard Worker 163*9880d681SAndroid Build Coastguard Worker[0x00 0x0f 0x90 0xfc] 164*9880d681SAndroid Build Coastguard Worker# CHECK-V7: ldc2 165*9880d681SAndroid Build Coastguard Worker# CHECK: invalid instruction encoding 166*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x00 0x0f 0x90 0xfc] 167*9880d681SAndroid Build Coastguard Worker 168