1# RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -mattr=+mve.fp,+fp64 -show-encoding %s 2> %t | FileCheck %s 2# RUN: FileCheck --check-prefix=ERROR < %t %s 3# RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -show-encoding %s &> %t 4# RUN: FileCheck --check-prefix=CHECK-NOMVE < %t %s 5 6# CHECK: vpsel q0, q5, q2 @ encoding: [0x3b,0xfe,0x05,0x0f] 7# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 8[0x3b,0xfe,0x05,0x0f] 9 10# CHECK: vpnot @ encoding: [0x31,0xfe,0x4d,0x0f] 11# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 12[0x31,0xfe,0x4d,0x0f] 13 14# CHECK: wlstp.8 lr, r0, #1668 @ encoding: [0x00,0xf0,0x43,0xc3] 15# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 16[0x00,0xf0,0x43,0xc3] 17 18# CHECK: wlstp.16 lr, r0, #1668 @ encoding: [0x10,0xf0,0x43,0xc3] 19# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 20[0x10,0xf0,0x43,0xc3] 21 22# CHECK: wlstp.32 lr, r4, #2706 @ encoding: [0x24,0xf0,0x49,0xcd] 23# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 24[0x24,0xf0,0x49,0xcd] 25 26# CHECK: wlstp.64 lr, lr, #3026 @ encoding: [0x3e,0xf0,0xe9,0xcd] 27# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 28[0x3e,0xf0,0xe9,0xcd] 29 30# CHECK: wlstp.8 lr, r5, #3436 @ encoding: [0x05,0xf0,0xb7,0xc6] 31# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 32[0x05,0xf0,0xb7,0xc6] 33 34# CHECK: wlstp.16 lr, r1, #1060 @ encoding: [0x11,0xf0,0x13,0xc2] 35# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 36[0x11,0xf0,0x13,0xc2] 37 38# CHECK: wlstp.32 lr, r7, #4036 @ encoding: [0x27,0xf0,0xe3,0xc7] 39# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 40[0x27,0xf0,0xe3,0xc7] 41 42# CHECK: wlstp.8 lr, r1, #538 @ encoding: [0x01,0xf0,0x0d,0xc9] 43# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 44[0x01,0xf0,0x0d,0xc9] 45 46# CHECK: wlstp.8 lr, r10, #1404 @ encoding: [0x0a,0xf0,0xbf,0xc2] 47# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 48[0x0a,0xf0,0xbf,0xc2] 49 50# CHECK: wlstp.8 lr, r10, #1408 @ encoding: [0x0a,0xf0,0xc1,0xc2] 51# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 52[0x0a,0xf0,0xc1,0xc2] 53 54# CHECK: wlstp.8 lr, r10, #2358 @ encoding: [0x0a,0xf0,0x9b,0xcc] 55# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 56[0x0a,0xf0,0x9b,0xcc] 57 58# CHECK: wlstp.8 lr, r10, #4086 @ encoding: [0x0a,0xf0,0xfb,0xcf] 59# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 60[0x0a,0xf0,0xfb,0xcf] 61 62# CHECK: wlstp.8 lr, r11, #1442 @ encoding: [0x0b,0xf0,0xd1,0xca] 63# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 64[0x0b,0xf0,0xd1,0xca] 65 66# CHECK: wlstp.64 lr, r5, #0 @ encoding: [0x35,0xf0,0x01,0xc0] 67# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 68[0x35,0xf0,0x01,0xc0] 69 70# CHECK: dlstp.8 lr, r5 @ encoding: [0x05,0xf0,0x01,0xe0] 71# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 72[0x05,0xf0,0x01,0xe0] 73 74# CHECK: dlstp.16 lr, r5 @ encoding: [0x15,0xf0,0x01,0xe0] 75# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 76[0x15,0xf0,0x01,0xe0] 77 78# CHECK: dlstp.32 lr, r7 @ encoding: [0x27,0xf0,0x01,0xe0] 79# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 80[0x27,0xf0,0x01,0xe0] 81 82# CHECK: dlstp.64 lr, r2 @ encoding: [0x32,0xf0,0x01,0xe0] 83# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 84[0x32,0xf0,0x01,0xe0] 85 86# CHECK: letp lr, #-2 @ encoding: [0x1f,0xf0,0x01,0xc8] 87# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 88[0x1f,0xf0,0x01,0xc8] 89 90# CHECK: letp lr, #-8 @ encoding: [0x1f,0xf0,0x05,0xc0] 91# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 92[0x1f,0xf0,0x05,0xc0] 93 94# CHECK: letp lr, #-4094 @ encoding: [0x1f,0xf0,0xff,0xcf] 95# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 96[0x1f,0xf0,0xff,0xcf] 97 98# CHECK: lctp @ encoding: [0x0f,0xf0,0x01,0xe0] 99# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 100[0x0f,0xf0,0x01,0xe0] 101 102# ERROR: [[@LINE+1]]:2: warning: potentially undefined instruction encoding 103[0x1f,0xf0,0x01,0xe0] 104 105# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 106[0x4f,0xf0,0x01,0xe0] 107 108# The following tests have to go last because of the NOMVE-NOT checks. 109 110# CHECK: it eq @ encoding: [0x08,0xbf] 111# CHECK-NOMVE: it eq @ encoding: [0x08,0xbf] 112[0x08,0xbf] 113# CHECK: lctpeq @ encoding: [0x0f,0xf0,0x01,0xe0] 114# CHECK-NOMVE-NOT: lctpeq @ encoding: [0x0f,0xf0,0x01,0xe0] 115[0x0f,0xf0,0x01,0xe0] 116