1# RUN: 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: vbic q0, q1, q7 @ encoding: [0x12,0xef,0x5e,0x01] 7# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 8[0x12,0xef,0x5e,0x01] 9 10# CHECK: vrev64.8 q0, q4 @ encoding: [0xb0,0xff,0x48,0x00] 11# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 12[0xb0,0xff,0x48,0x00] 13 14# CHECK: vrev64.16 q1, q3 @ encoding: [0xb4,0xff,0x46,0x20] 15# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 16[0xb4,0xff,0x46,0x20] 17 18# CHECK: vrev64.32 q0, q2 @ encoding: [0xb8,0xff,0x44,0x00] 19# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 20[0xb8,0xff,0x44,0x00] 21 22# CHECK: vrev32.8 q0, q1 @ encoding: [0xb0,0xff,0xc2,0x00] 23# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 24[0xb0,0xff,0xc2,0x00] 25 26# CHECK: vrev32.16 q0, q5 @ encoding: [0xb4,0xff,0xca,0x00] 27# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 28[0xb4,0xff,0xca,0x00] 29 30# CHECK: vrev16.8 q0, q2 @ encoding: [0xb0,0xff,0x44,0x01] 31# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 32[0xb0,0xff,0x44,0x01] 33 34# CHECK: vmvn q0, q2 @ encoding: [0xb0,0xff,0xc4,0x05] 35# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 36[0xb0,0xff,0xc4,0x05] 37 38# CHECK: veor q2, q1, q7 @ encoding: [0x02,0xff,0x5e,0x41] 39# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 40[0x02,0xff,0x5e,0x41] 41 42# CHECK: vorn q0, q3, q2 @ encoding: [0x36,0xef,0x54,0x01] 43# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 44[0x36,0xef,0x54,0x01] 45 46# CHECK: vorr q1, q2, q1 @ encoding: [0x24,0xef,0x52,0x21] 47# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 48[0x24,0xef,0x52,0x21] 49 50# CHECK: vand q0, q2, q0 @ encoding: [0x04,0xef,0x50,0x01] 51# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 52[0x04,0xef,0x50,0x01] 53 54# CHECK: vorr.i16 q0, #0x12 @ encoding: [0x81,0xef,0x52,0x09] 55# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 56[0x81,0xef,0x52,0x09] 57 58# CHECK: vorr.i32 q0, #0x1200 @ encoding: [0x81,0xef,0x52,0x03] 59# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 60[0x81,0xef,0x52,0x03] 61 62# CHECK: vbic.i32 q0, #0x35 @ encoding: [0x83,0xef,0x75,0x01] 63[0x83,0xef,0x75,0x01] 64 65# CHECK: vbic.i32 q0, #0x3500 @ encoding: [0x83,0xef,0x75,0x03] 66[0x83,0xef,0x75,0x03] 67 68# CHECK: vbic.i32 q0, #0x350000 @ encoding: [0x83,0xef,0x75,0x05] 69[0x83,0xef,0x75,0x05] 70 71# CHECK: vbic.i32 q0, #0x35000000 @ encoding: [0x83,0xef,0x75,0x07] 72[0x83,0xef,0x75,0x07] 73 74# CHECK: vbic.i16 q0, #0x35 @ encoding: [0x83,0xef,0x75,0x09] 75[0x83,0xef,0x75,0x09] 76 77# CHECK: vbic.i16 q0, #0x3500 @ encoding: [0x83,0xef,0x75,0x0b] 78[0x83,0xef,0x75,0x0b] 79 80# CHECK: vmov.8 q0[1], r8 @ encoding: [0x40,0xee,0x30,0x8b] 81# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 82[0x40,0xee,0x30,0x8b] 83 84# CHECK: vmov.16 q0[2], r5 @ encoding: [0x20,0xee,0x30,0x5b] 85# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 86[0x20,0xee,0x30,0x5b] 87 88# CHECK: vmov.32 q6[3], r11 @ encoding: [0x2d,0xee,0x10,0xbb] 89# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 90[0x2d,0xee,0x10,0xbb] 91 92# CHECK: vmov.32 r0, q1[0] @ encoding: [0x12,0xee,0x10,0x0b] 93# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 94[0x12,0xee,0x10,0x0b] 95 96# CHECK: vmov.s16 r1, q2[7] @ encoding: [0x35,0xee,0x70,0x1b] 97# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 98[0x35,0xee,0x70,0x1b] 99 100# CHECK: vmov.s8 r0, q4[13] @ encoding: [0x79,0xee,0x30,0x0b] 101# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 102[0x79,0xee,0x30,0x0b] 103 104# CHECK: vmov.u16 r0, q1[4] @ encoding: [0x93,0xee,0x30,0x0b] 105# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 106[0x93,0xee,0x30,0x0b] 107 108# CHECK: vmov.u8 r0, q5[7] @ encoding: [0xfa,0xee,0x70,0x0b] 109# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 110[0xfa,0xee,0x70,0x0b] 111 112# CHECK: vmov.f16 s7, r8 @ encoding: [0x03,0xee,0x90,0x89] 113# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 114[0x03,0xee,0x90,0x89] 115 116# CHECK: vmov.f16 s10, r5 @ encoding: [0x05,0xee,0x10,0x59] 117# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 118[0x05,0xee,0x10,0x59] 119 120# CHECK: vmov.f16 s10, sp @ encoding: [0x05,0xee,0x10,0xd9] 121# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 122[0x05,0xee,0x10,0xd9] 123 124# CHECK: vmov.f16 s31, r10 @ encoding: [0x0f,0xee,0x90,0xa9] 125# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 126[0x0f,0xee,0x90,0xa9] 127 128# CHECK: vmov.f16 r8, s7 @ encoding: [0x13,0xee,0x90,0x89] 129# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 130[0x13,0xee,0x90,0x89] 131 132# CHECK: vmov.f16 r5, s10 @ encoding: [0x15,0xee,0x10,0x59] 133# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 134[0x15,0xee,0x10,0x59] 135 136# CHECK: vmov.f16 sp, s10 @ encoding: [0x15,0xee,0x10,0xd9] 137# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 138[0x15,0xee,0x10,0xd9] 139 140# CHECK: vmov.f16 r10, s31 @ encoding: [0x1f,0xee,0x90,0xa9] 141# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 142[0x1f,0xee,0x90,0xa9] 143 144# ERROR: [[@LINE+2]]:2: warning: potentially undefined instruction encoding 145# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 146[0x05,0xee,0x10,0xf9] 147 148# ERROR: [[@LINE+2]]:2: warning: potentially undefined instruction encoding 149# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 150[0x1f,0xee,0x90,0xf9] 151