1# RUN: llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -mattr=+mve -show-encoding %s | FileCheck %s 2# RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -show-encoding %s &> %t 3# RUN: FileCheck --check-prefix=CHECK-NOMVE < %t %s 4 5# CHECK: vld20.8 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0x00,0x1e] 6# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 7[0x90,0xfc,0x00,0x1e] 8 9# CHECK: vld20.8 {q0, q1}, [r0]! @ encoding: [0xb0,0xfc,0x00,0x1e] 10# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 11[0xb0,0xfc,0x00,0x1e] 12 13# CHECK: vld20.8 {q0, q1}, [r11] @ encoding: [0x9b,0xfc,0x00,0x1e] 14# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 15[0x9b,0xfc,0x00,0x1e] 16 17# CHECK: vld20.8 {q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x00,0xbe] 18# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 19[0xb0,0xfc,0x00,0xbe] 20 21# CHECK: vld21.8 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0x20,0x1e] 22# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 23[0x90,0xfc,0x20,0x1e] 24 25# CHECK: vld21.8 {q3, q4}, [r0]! @ encoding: [0xb0,0xfc,0x20,0x7e] 26# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 27[0xb0,0xfc,0x20,0x7e] 28 29# CHECK: vld20.16 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0x80,0x1e] 30# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 31[0x90,0xfc,0x80,0x1e] 32 33# CHECK: vld20.16 {q0, q1}, [r0]! @ encoding: [0xb0,0xfc,0x80,0x1e] 34# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 35[0xb0,0xfc,0x80,0x1e] 36 37# CHECK: vld20.16 {q0, q1}, [r11] @ encoding: [0x9b,0xfc,0x80,0x1e] 38# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 39[0x9b,0xfc,0x80,0x1e] 40 41# CHECK: vld20.16 {q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x80,0xbe] 42# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 43[0xb0,0xfc,0x80,0xbe] 44 45# CHECK: vld21.16 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0xa0,0x1e] 46# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 47[0x90,0xfc,0xa0,0x1e] 48 49# CHECK: vld21.16 {q3, q4}, [r0]! @ encoding: [0xb0,0xfc,0xa0,0x7e] 50# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 51[0xb0,0xfc,0xa0,0x7e] 52 53# CHECK: vld20.32 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0x00,0x1f] 54# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 55[0x90,0xfc,0x00,0x1f] 56 57# CHECK: vld20.32 {q0, q1}, [r0]! @ encoding: [0xb0,0xfc,0x00,0x1f] 58# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 59[0xb0,0xfc,0x00,0x1f] 60 61# CHECK: vld20.32 {q0, q1}, [r11] @ encoding: [0x9b,0xfc,0x00,0x1f] 62# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 63[0x9b,0xfc,0x00,0x1f] 64 65# CHECK: vld20.32 {q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x00,0xbf] 66# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 67[0xb0,0xfc,0x00,0xbf] 68 69# CHECK: vld21.32 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0x20,0x1f] 70# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 71[0x90,0xfc,0x20,0x1f] 72 73# CHECK: vld21.32 {q3, q4}, [r0]! @ encoding: [0xb0,0xfc,0x20,0x7f] 74# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 75[0xb0,0xfc,0x20,0x7f] 76 77# CHECK: vst20.8 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0x00,0x1e] 78# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 79[0x80,0xfc,0x00,0x1e] 80 81# CHECK: vst20.8 {q0, q1}, [r0]! @ encoding: [0xa0,0xfc,0x00,0x1e] 82# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 83[0xa0,0xfc,0x00,0x1e] 84 85# CHECK: vst20.8 {q0, q1}, [r11] @ encoding: [0x8b,0xfc,0x00,0x1e] 86# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 87[0x8b,0xfc,0x00,0x1e] 88 89# CHECK: vst20.8 {q5, q6}, [r0]! @ encoding: [0xa0,0xfc,0x00,0xbe] 90# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 91[0xa0,0xfc,0x00,0xbe] 92 93# CHECK: vst21.8 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0x20,0x1e] 94# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 95[0x80,0xfc,0x20,0x1e] 96 97# CHECK: vst21.8 {q3, q4}, [r0]! @ encoding: [0xa0,0xfc,0x20,0x7e] 98# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 99[0xa0,0xfc,0x20,0x7e] 100 101# CHECK: vst20.16 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0x80,0x1e] 102# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 103[0x80,0xfc,0x80,0x1e] 104 105# CHECK: vst20.16 {q0, q1}, [r0]! @ encoding: [0xa0,0xfc,0x80,0x1e] 106# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 107[0xa0,0xfc,0x80,0x1e] 108 109# CHECK: vst20.16 {q0, q1}, [r11] @ encoding: [0x8b,0xfc,0x80,0x1e] 110# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 111[0x8b,0xfc,0x80,0x1e] 112 113# CHECK: vst20.16 {q5, q6}, [r0]! @ encoding: [0xa0,0xfc,0x80,0xbe] 114# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 115[0xa0,0xfc,0x80,0xbe] 116 117# CHECK: vst21.16 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0xa0,0x1e] 118# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 119[0x80,0xfc,0xa0,0x1e] 120 121# CHECK: vst21.16 {q3, q4}, [r0]! @ encoding: [0xa0,0xfc,0xa0,0x7e] 122# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 123[0xa0,0xfc,0xa0,0x7e] 124 125# CHECK: vst20.32 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0x00,0x1f] 126# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 127[0x80,0xfc,0x00,0x1f] 128 129# CHECK: vst20.32 {q0, q1}, [r0]! @ encoding: [0xa0,0xfc,0x00,0x1f] 130# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 131[0xa0,0xfc,0x00,0x1f] 132 133# CHECK: vst20.32 {q0, q1}, [r11] @ encoding: [0x8b,0xfc,0x00,0x1f] 134# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 135[0x8b,0xfc,0x00,0x1f] 136 137# CHECK: vst20.32 {q5, q6}, [r0]! @ encoding: [0xa0,0xfc,0x00,0xbf] 138# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 139[0xa0,0xfc,0x00,0xbf] 140 141# CHECK: vst21.32 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0x20,0x1f] 142# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 143[0x80,0xfc,0x20,0x1f] 144 145# CHECK: vst21.32 {q3, q4}, [r0]! @ encoding: [0xa0,0xfc,0x20,0x7f] 146# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 147[0xa0,0xfc,0x20,0x7f] 148 149# CHECK: vld40.8 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x01,0x1e] 150# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 151[0x90,0xfc,0x01,0x1e] 152 153# CHECK: vld40.8 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0x01,0x1e] 154# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 155[0xb0,0xfc,0x01,0x1e] 156 157# CHECK: vld40.8 {q0, q1, q2, q3}, [r11] @ encoding: [0x9b,0xfc,0x01,0x1e] 158# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 159[0x9b,0xfc,0x01,0x1e] 160 161# CHECK: vld40.8 {q3, q4, q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x01,0x7e] 162# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 163[0xb0,0xfc,0x01,0x7e] 164 165# CHECK: vld41.8 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x21,0x1e] 166# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 167[0x90,0xfc,0x21,0x1e] 168 169# CHECK: vld41.8 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0x21,0x9e] 170# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 171[0xb0,0xfc,0x21,0x9e] 172 173# CHECK: vld42.8 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x41,0x1e] 174# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 175[0x90,0xfc,0x41,0x1e] 176 177# CHECK: vld42.8 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0x41,0x1e] 178# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 179[0xb0,0xfc,0x41,0x1e] 180 181# CHECK: vld43.8 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x61,0x1e] 182# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 183[0x90,0xfc,0x61,0x1e] 184 185# CHECK: vld43.8 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0x61,0x9e] 186# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 187[0xb0,0xfc,0x61,0x9e] 188 189# CHECK: vld40.16 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x81,0x1e] 190# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 191[0x90,0xfc,0x81,0x1e] 192 193# CHECK: vld40.16 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0x81,0x1e] 194# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 195[0xb0,0xfc,0x81,0x1e] 196 197# CHECK: vld40.16 {q0, q1, q2, q3}, [r11] @ encoding: [0x9b,0xfc,0x81,0x1e] 198# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 199[0x9b,0xfc,0x81,0x1e] 200 201# CHECK: vld40.16 {q3, q4, q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x81,0x7e] 202# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 203[0xb0,0xfc,0x81,0x7e] 204 205# CHECK: vld41.16 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0xa1,0x1e] 206# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 207[0x90,0xfc,0xa1,0x1e] 208 209# CHECK: vld41.16 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0xa1,0x9e] 210# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 211[0xb0,0xfc,0xa1,0x9e] 212 213# CHECK: vld42.16 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0xc1,0x1e] 214# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 215[0x90,0xfc,0xc1,0x1e] 216 217# CHECK: vld42.16 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0xc1,0x1e] 218# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 219[0xb0,0xfc,0xc1,0x1e] 220 221# CHECK: vld43.16 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0xe1,0x1e] 222# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 223[0x90,0xfc,0xe1,0x1e] 224 225# CHECK: vld43.16 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0xe1,0x9e] 226# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 227[0xb0,0xfc,0xe1,0x9e] 228 229# CHECK: vld40.32 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x01,0x1f] 230# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 231[0x90,0xfc,0x01,0x1f] 232 233# CHECK: vld40.32 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0x01,0x1f] 234# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 235[0xb0,0xfc,0x01,0x1f] 236 237# CHECK: vld40.32 {q0, q1, q2, q3}, [r11] @ encoding: [0x9b,0xfc,0x01,0x1f] 238# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 239[0x9b,0xfc,0x01,0x1f] 240 241# CHECK: vld40.32 {q3, q4, q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x01,0x7f] 242# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 243[0xb0,0xfc,0x01,0x7f] 244 245# CHECK: vld41.32 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x21,0x1f] 246# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 247[0x90,0xfc,0x21,0x1f] 248 249# CHECK: vld41.32 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0x21,0x9f] 250# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 251[0xb0,0xfc,0x21,0x9f] 252 253# CHECK: vld42.32 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x41,0x1f] 254# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 255[0x90,0xfc,0x41,0x1f] 256 257# CHECK: vld42.32 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0x41,0x1f] 258# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 259[0xb0,0xfc,0x41,0x1f] 260 261# CHECK: vld43.32 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x61,0x1f] 262# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 263[0x90,0xfc,0x61,0x1f] 264 265# CHECK: vld43.32 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0x61,0x9f] 266# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 267[0xb0,0xfc,0x61,0x9f] 268