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[0x82 0xee 0x07 0x0f] 7# CHECK: vabav.s8 r0, q1, q3 8# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding 9 10[0x92 0xee 0x07 0x0f] 11# CHECK: vabav.s16 r0, q1, q3 12# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding 13 14[0xa2 0xee 0x07 0x0f] 15# CHECK: vabav.s32 r0, q1, q3 16# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding 17 18[0x82 0xfe 0x07 0x0f] 19# CHECK: vabav.u8 r0, q1, q3 20# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding 21 22[0x92 0xfe 0x07 0x0f] 23# CHECK: vabav.u16 r0, q1, q3 24# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding 25 26[0xa2 0xfe 0x07 0x0f] 27# CHECK: vabav.u32 r0, q1, q3 28# CHECK-NOMVE: [[@LINE-2]]:2: warning: invalid instruction encoding 29 30# CHECK: vaddv.s16 lr, q0 @ encoding: [0xf5,0xee,0x00,0xef] 31# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 32[0xf5,0xee,0x00,0xef] 33 34# CHECK: vaddva.s16 lr, q0 @ encoding: [0xf5,0xee,0x20,0xef] 35# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 36[0xf5,0xee,0x20,0xef] 37 38# CHECK: vpte.i8 eq, q0, q0 @ encoding: [0x41,0xfe,0x00,0x8f] 39# CHECK-NOMVE: [[@LINE+5]]:2: warning: invalid instruction encoding 40# CHECK: vaddvat.s16 lr, q0 @ encoding: [0xf5,0xee,0x20,0xef] 41# CHECK-NOMVE: [[@LINE+4]]:2: warning: invalid instruction encoding 42# CHECK: vaddvae.s16 lr, q0 @ encoding: [0xf5,0xee,0x20,0xef] 43# CHECK-NOMVE: [[@LINE+3]]:2: warning: invalid instruction encoding 44[0x41,0xfe,0x00,0x8f] 45[0xf5,0xee,0x20,0xef] 46[0xf5,0xee,0x20,0xef] 47 48# CHECK: vaddlv.s32 r0, r9, q2 @ encoding: [0xc9,0xee,0x04,0x0f] 49# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 50[0xc9,0xee,0x04,0x0f] 51 52# CHECK: vaddlv.u32 r0, r1, q1 @ encoding: [0x89,0xfe,0x02,0x0f] 53# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 54[0x89,0xfe,0x02,0x0f] 55 56# CHECK: vminnmv.f16 lr, q3 @ encoding: [0xee,0xfe,0x86,0xef] 57# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 58[0xee,0xfe,0x86,0xef] 59 60# CHECK: vminnmv.f32 lr, q1 @ encoding: [0xee,0xee,0x82,0xef] 61# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 62[0xee,0xee,0x82,0xef] 63 64# CHECK: vminnmav.f16 lr, q0 @ encoding: [0xec,0xfe,0x80,0xef] 65# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 66[0xec,0xfe,0x80,0xef] 67 68# CHECK: vminnmav.f32 lr, q3 @ encoding: [0xec,0xee,0x86,0xef] 69# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 70[0xec,0xee,0x86,0xef] 71 72# CHECK: vpte.i8 eq, q0, q0 @ encoding: [0x41,0xfe,0x00,0x8f] 73# CHECK-NOMVE: [[@LINE+5]]:2: warning: invalid instruction encoding 74# CHECK: vminnmavt.f32 lr, q3 @ encoding: [0xec,0xee,0x86,0xef] 75# CHECK-NOMVE: [[@LINE+4]]:2: warning: invalid instruction encoding 76# CHECK: vminnmave.f32 lr, q3 @ encoding: [0xec,0xee,0x86,0xef] 77# CHECK-NOMVE: [[@LINE+3]]:2: warning: invalid instruction encoding 78[0x41,0xfe,0x00,0x8f] 79[0xec,0xee,0x86,0xef] 80[0xec,0xee,0x86,0xef] 81 82# CHECK: vminv.s8 lr, q0 @ encoding: [0xe2,0xee,0x80,0xef] 83# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 84[0xe2,0xee,0x80,0xef] 85 86# CHECK: vminv.s16 lr, q0 @ encoding: [0xe6,0xee,0x80,0xef] 87# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 88[0xe6,0xee,0x80,0xef] 89 90# CHECK: vminv.s32 lr, q2 @ encoding: [0xea,0xee,0x84,0xef] 91# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 92[0xea,0xee,0x84,0xef] 93 94# CHECK: vminv.u8 r0, q0 @ encoding: [0xe2,0xfe,0x80,0x0f] 95# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 96[0xe2,0xfe,0x80,0x0f] 97 98# CHECK: vminv.u32 r10, q3 @ encoding: [0xea,0xfe,0x86,0xaf] 99# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 100[0xea,0xfe,0x86,0xaf] 101 102# CHECK: vminav.s16 r0, q0 @ encoding: [0xe4,0xee,0x80,0x0f] 103# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 104[0xe4,0xee,0x80,0x0f] 105 106# CHECK: vminav.s8 r0, q1 @ encoding: [0xe0,0xee,0x82,0x0f] 107# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 108[0xe0,0xee,0x82,0x0f] 109 110# CHECK: vminav.s32 lr, q1 @ encoding: [0xe8,0xee,0x82,0xef] 111# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 112[0xe8,0xee,0x82,0xef] 113 114# CHECK: vmaxnmv.f16 lr, q1 @ encoding: [0xee,0xfe,0x02,0xef] 115# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 116[0xee,0xfe,0x02,0xef] 117 118# CHECK: vmaxnmv.f32 r10, q1 @ encoding: [0xee,0xee,0x02,0xaf] 119# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 120[0xee,0xee,0x02,0xaf] 121 122# CHECK: vmaxv.s8 lr, q4 @ encoding: [0xe2,0xee,0x08,0xef] 123# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 124[0xe2,0xee,0x08,0xef] 125 126# CHECK: vmaxv.s16 lr, q0 @ encoding: [0xe6,0xee,0x00,0xef] 127# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 128[0xe6,0xee,0x00,0xef] 129 130# CHECK: vmaxv.s32 r1, q1 @ encoding: [0xea,0xee,0x02,0x1f] 131# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 132[0xea,0xee,0x02,0x1f] 133 134# CHECK: vmaxv.u8 r0, q4 @ encoding: [0xe2,0xfe,0x08,0x0f] 135# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 136[0xe2,0xfe,0x08,0x0f] 137 138# CHECK: vmaxv.u16 r0, q1 @ encoding: [0xe6,0xfe,0x02,0x0f] 139# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 140[0xe6,0xfe,0x02,0x0f] 141 142# CHECK: vmaxv.u32 r1, q0 @ encoding: [0xea,0xfe,0x00,0x1f] 143# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 144[0xea,0xfe,0x00,0x1f] 145 146# CHECK: vmaxav.s8 lr, q6 @ encoding: [0xe0,0xee,0x0c,0xef] 147# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 148[0xe0,0xee,0x0c,0xef] 149 150# CHECK: vmaxav.s16 r0, q6 @ encoding: [0xe4,0xee,0x0c,0x0f] 151# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 152[0xe4,0xee,0x0c,0x0f] 153 154# CHECK: vmaxav.s32 r10, q7 @ encoding: [0xe8,0xee,0x0e,0xaf] 155# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 156[0xe8,0xee,0x0e,0xaf] 157 158# CHECK: vmlav.s16 lr, q0, q7 @ encoding: [0xf0,0xee,0x0e,0xee] 159# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 160[0xf0,0xee,0x0e,0xee] 161 162# CHECK: vmlav.s32 lr, q0, q4 @ encoding: [0xf1,0xee,0x08,0xee] 163# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 164[0xf1,0xee,0x08,0xee] 165 166# CHECK: vmlav.u16 lr, q0, q7 @ encoding: [0xf0,0xfe,0x0e,0xee] 167# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 168[0xf0,0xfe,0x0e,0xee] 169 170# CHECK: vmlav.u32 lr, q0, q0 @ encoding: [0xf1,0xfe,0x00,0xee] 171# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 172[0xf1,0xfe,0x00,0xee] 173 174# CHECK: vmlava.s16 lr, q0, q4 @ encoding: [0xf0,0xee,0x28,0xee] 175# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 176[0xf0,0xee,0x28,0xee] 177 178# CHECK: vmladavx.s16 r0, q0, q7 @ encoding: [0xf0,0xee,0x0e,0x1e] 179# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 180[0xf0,0xee,0x0e,0x1e] 181 182# CHECK: vmladavax.s16 lr, q0, q7 @ encoding: [0xf0,0xee,0x2e,0xfe] 183# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 184[0xf0,0xee,0x2e,0xfe] 185 186# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 187[0xf8,0xfe,0x2a,0x1e] 188 189# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 190[0xf8,0xfe,0x0a,0x1e] 191 192# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 193[0xf9,0xfe,0x2a,0x1e] 194 195# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 196[0xf9,0xfe,0x0a,0x1e] 197 198# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 199[0xf8,0xfe,0x2a,0x1f] 200 201# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 202[0xf8,0xfe,0x0a,0x1f] 203 204# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 205[0x98,0xfe,0x2a,0x3e] 206 207# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 208[0x98,0xfe,0x0a,0x3e] 209 210# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 211[0x99,0xfe,0x2a,0x3e] 212 213# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 214[0x99,0xfe,0x0a,0x3e] 215 216# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 217[0x98,0xfe,0x2a,0x3f] 218 219# ERROR: [[@LINE+1]]:2: warning: invalid instruction encoding 220[0x98,0xfe,0x0a,0x3f] 221 222# CHECK: vmlav.s8 lr, q3, q0 @ encoding: [0xf6,0xee,0x00,0xef] 223# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 224[0xf6,0xee,0x00,0xef] 225 226# CHECK: vmlav.u8 lr, q1, q7 @ encoding: [0xf2,0xfe,0x0e,0xef] 227# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 228[0xf2,0xfe,0x0e,0xef] 229 230# CHECK: vrmlalvh.s32 lr, r1, q6, q2 @ encoding: [0x8c,0xee,0x04,0xef] 231# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 232[0x8c,0xee,0x04,0xef] 233 234# CHECK: vrmlalvh.u32 lr, r1, q5, q2 @ encoding: [0x8a,0xfe,0x04,0xef] 235# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 236[0x8a,0xfe,0x04,0xef] 237 238# CHECK: vrmlalvh.u32 lr, r1, q5, q2 @ encoding: [0x8a,0xfe,0x04,0xef] 239# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 240[0x8a,0xfe,0x04,0xef] 241 242# CHECK: vrmlaldavhax.s32 lr, r1, q3, q0 @ encoding: [0x86,0xee,0x20,0xff] 243# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 244[0x86,0xee,0x20,0xff] 245 246# CHECK: vrmlsldavh.s32 lr, r11, q6, q5 @ encoding: [0xdc,0xfe,0x0b,0xee] 247# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 248[0xdc,0xfe,0x0b,0xee] 249 250# CHECK: vmlsdav.s16 lr, q0, q3 @ encoding: [0xf0,0xee,0x07,0xee] 251# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 252[0xf0,0xee,0x07,0xee] 253 254# CHECK: vrmlalvha.u32 lr, r1, q7, q1 @ encoding: [0x8e,0xfe,0x22,0xef] 255# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 256[0x8e,0xfe,0x22,0xef] 257 258# CHECK: vmlsdav.s16 lr, q0, q3 @ encoding: [0xf0,0xee,0x07,0xee] 259# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 260[0xf0,0xee,0x07,0xee] 261 262# CHECK: vmlalv.s16 lr, r1, q4, q1 @ encoding: [0x88,0xee,0x02,0xee] 263# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 264[0x88,0xee,0x02,0xee] 265 266# CHECK: vmlalv.s32 lr, r11, q4, q1 @ encoding: [0xd9,0xee,0x02,0xee] 267# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 268[0xd9,0xee,0x02,0xee] 269 270# CHECK: vmlalv.s32 r0, r1, q7, q6 @ encoding: [0x8f,0xee,0x0c,0x0e] 271# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 272[0x8f,0xee,0x0c,0x0e] 273 274# CHECK: vmlalv.u16 lr, r11, q5, q4 @ encoding: [0xda,0xfe,0x08,0xee] 275# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 276[0xda,0xfe,0x08,0xee] 277