1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1 < %s \ 2// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST 3// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ 4// RUN: | FileCheck %s --check-prefix=CHECK-ERROR 5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1 < %s \ 6// RUN: | llvm-objdump --no-print-imm-hex -d --mattr=+sme2p1 - \ 7// RUN: | FileCheck %s --check-prefix=CHECK-INST 8// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1 < %s \ 9// RUN: | llvm-objdump --no-print-imm-hex -d --mattr=-sme2p1 - \ 10// RUN: | FileCheck %s --check-prefix=CHECK-UNKNOWN 11// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1 < %s \ 12// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ 13// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2p1 -disassemble -show-encoding \ 14// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST 15 16zero za.d[w8, 0:1] // 11000000-00001100-10000000-00000000 17// CHECK-INST: zero za.d[w8, 0:1] 18// CHECK-ENCODING: [0x00,0x80,0x0c,0xc0] 19// CHECK-ERROR: instruction requires: sme2p1 20// CHECK-UNKNOWN: c00c8000 <unknown> 21 22zero za.d[w10, 10:11] // 11000000-00001100-11000000-00000101 23// CHECK-INST: zero za.d[w10, 10:11] 24// CHECK-ENCODING: [0x05,0xc0,0x0c,0xc0] 25// CHECK-ERROR: instruction requires: sme2p1 26// CHECK-UNKNOWN: c00cc005 <unknown> 27 28zero za.d[w11, 14:15] // 11000000-00001100-11100000-00000111 29// CHECK-INST: zero za.d[w11, 14:15] 30// CHECK-ENCODING: [0x07,0xe0,0x0c,0xc0] 31// CHECK-ERROR: instruction requires: sme2p1 32// CHECK-UNKNOWN: c00ce007 <unknown> 33 34zero za.d[w8, 10:11] // 11000000-00001100-10000000-00000101 35// CHECK-INST: zero za.d[w8, 10:11] 36// CHECK-ENCODING: [0x05,0x80,0x0c,0xc0] 37// CHECK-ERROR: instruction requires: sme2p1 38// CHECK-UNKNOWN: c00c8005 <unknown> 39 40zero za.d[w8, 2:3] // 11000000-00001100-10000000-00000001 41// CHECK-INST: zero za.d[w8, 2:3] 42// CHECK-ENCODING: [0x01,0x80,0x0c,0xc0] 43// CHECK-ERROR: instruction requires: sme2p1 44// CHECK-UNKNOWN: c00c8001 <unknown> 45 46zero za.d[w10, 0:1] // 11000000-00001100-11000000-00000000 47// CHECK-INST: zero za.d[w10, 0:1] 48// CHECK-ENCODING: [0x00,0xc0,0x0c,0xc0] 49// CHECK-ERROR: instruction requires: sme2p1 50// CHECK-UNKNOWN: c00cc000 <unknown> 51 52zero za.d[w10, 2:3] // 11000000-00001100-11000000-00000001 53// CHECK-INST: zero za.d[w10, 2:3] 54// CHECK-ENCODING: [0x01,0xc0,0x0c,0xc0] 55// CHECK-ERROR: instruction requires: sme2p1 56// CHECK-UNKNOWN: c00cc001 <unknown> 57 58zero za.d[w11, 4:5] // 11000000-00001100-11100000-00000010 59// CHECK-INST: zero za.d[w11, 4:5] 60// CHECK-ENCODING: [0x02,0xe0,0x0c,0xc0] 61// CHECK-ERROR: instruction requires: sme2p1 62// CHECK-UNKNOWN: c00ce002 <unknown> 63 64zero za.d[w9, 14:15] // 11000000-00001100-10100000-00000111 65// CHECK-INST: zero za.d[w9, 14:15] 66// CHECK-ENCODING: [0x07,0xa0,0x0c,0xc0] 67// CHECK-ERROR: instruction requires: sme2p1 68// CHECK-UNKNOWN: c00ca007 <unknown> 69 70 71zero za.d[w8, 0:3] // 11000000-00001110-10000000-00000000 72// CHECK-INST: zero za.d[w8, 0:3] 73// CHECK-ENCODING: [0x00,0x80,0x0e,0xc0] 74// CHECK-ERROR: instruction requires: sme2p1 75// CHECK-UNKNOWN: c00e8000 <unknown> 76 77zero za.d[w10, 4:7] // 11000000-00001110-11000000-00000001 78// CHECK-INST: zero za.d[w10, 4:7] 79// CHECK-ENCODING: [0x01,0xc0,0x0e,0xc0] 80// CHECK-ERROR: instruction requires: sme2p1 81// CHECK-UNKNOWN: c00ec001 <unknown> 82 83zero za.d[w11, 12:15] // 11000000-00001110-11100000-00000011 84// CHECK-INST: zero za.d[w11, 12:15] 85// CHECK-ENCODING: [0x03,0xe0,0x0e,0xc0] 86// CHECK-ERROR: instruction requires: sme2p1 87// CHECK-UNKNOWN: c00ee003 <unknown> 88 89zero za.d[w8, 4:7] // 11000000-00001110-10000000-00000001 90// CHECK-INST: zero za.d[w8, 4:7] 91// CHECK-ENCODING: [0x01,0x80,0x0e,0xc0] 92// CHECK-ERROR: instruction requires: sme2p1 93// CHECK-UNKNOWN: c00e8001 <unknown> 94 95zero za.d[w10, 0:3] // 11000000-00001110-11000000-00000000 96// CHECK-INST: zero za.d[w10, 0:3] 97// CHECK-ENCODING: [0x00,0xc0,0x0e,0xc0] 98// CHECK-ERROR: instruction requires: sme2p1 99// CHECK-UNKNOWN: c00ec000 <unknown> 100 101zero za.d[w11, 8:11] // 11000000-00001110-11100000-00000010 102// CHECK-INST: zero za.d[w11, 8:11] 103// CHECK-ENCODING: [0x02,0xe0,0x0e,0xc0] 104// CHECK-ERROR: instruction requires: sme2p1 105// CHECK-UNKNOWN: c00ee002 <unknown> 106 107zero za.d[w9, 12:15] // 11000000-00001110-10100000-00000011 108// CHECK-INST: zero za.d[w9, 12:15] 109// CHECK-ENCODING: [0x03,0xa0,0x0e,0xc0] 110// CHECK-ERROR: instruction requires: sme2p1 111// CHECK-UNKNOWN: c00ea003 <unknown> 112 113 114zero za.d[w8, 0, vgx2] // 11000000-00001100-00000000-00000000 115// CHECK-INST: zero za.d[w8, 0, vgx2] 116// CHECK-ENCODING: [0x00,0x00,0x0c,0xc0] 117// CHECK-ERROR: instruction requires: sme2p1 118// CHECK-UNKNOWN: c00c0000 <unknown> 119 120zero za.d[w10, 5, vgx2] // 11000000-00001100-01000000-00000101 121// CHECK-INST: zero za.d[w10, 5, vgx2] 122// CHECK-ENCODING: [0x05,0x40,0x0c,0xc0] 123// CHECK-ERROR: instruction requires: sme2p1 124// CHECK-UNKNOWN: c00c4005 <unknown> 125 126zero za.d[w11, 7, vgx2] // 11000000-00001100-01100000-00000111 127// CHECK-INST: zero za.d[w11, 7, vgx2] 128// CHECK-ENCODING: [0x07,0x60,0x0c,0xc0] 129// CHECK-ERROR: instruction requires: sme2p1 130// CHECK-UNKNOWN: c00c6007 <unknown> 131 132zero za.d[w8, 5, vgx2] // 11000000-00001100-00000000-00000101 133// CHECK-INST: zero za.d[w8, 5, vgx2] 134// CHECK-ENCODING: [0x05,0x00,0x0c,0xc0] 135// CHECK-ERROR: instruction requires: sme2p1 136// CHECK-UNKNOWN: c00c0005 <unknown> 137 138zero za.d[w8, 1, vgx2] // 11000000-00001100-00000000-00000001 139// CHECK-INST: zero za.d[w8, 1, vgx2] 140// CHECK-ENCODING: [0x01,0x00,0x0c,0xc0] 141// CHECK-ERROR: instruction requires: sme2p1 142// CHECK-UNKNOWN: c00c0001 <unknown> 143 144zero za.d[w10, 0, vgx2] // 11000000-00001100-01000000-00000000 145// CHECK-INST: zero za.d[w10, 0, vgx2] 146// CHECK-ENCODING: [0x00,0x40,0x0c,0xc0] 147// CHECK-ERROR: instruction requires: sme2p1 148// CHECK-UNKNOWN: c00c4000 <unknown> 149 150zero za.d[w10, 1, vgx2] // 11000000-00001100-01000000-00000001 151// CHECK-INST: zero za.d[w10, 1, vgx2] 152// CHECK-ENCODING: [0x01,0x40,0x0c,0xc0] 153// CHECK-ERROR: instruction requires: sme2p1 154// CHECK-UNKNOWN: c00c4001 <unknown> 155 156zero za.d[w11, 2, vgx2] // 11000000-00001100-01100000-00000010 157// CHECK-INST: zero za.d[w11, 2, vgx2] 158// CHECK-ENCODING: [0x02,0x60,0x0c,0xc0] 159// CHECK-ERROR: instruction requires: sme2p1 160// CHECK-UNKNOWN: c00c6002 <unknown> 161 162zero za.d[w9, 7, vgx2] // 11000000-00001100-00100000-00000111 163// CHECK-INST: zero za.d[w9, 7, vgx2] 164// CHECK-ENCODING: [0x07,0x20,0x0c,0xc0] 165// CHECK-ERROR: instruction requires: sme2p1 166// CHECK-UNKNOWN: c00c2007 <unknown> 167 168 169zero za.d[w8, 0:1, vgx2] // 11000000-00001101-00000000-00000000 170// CHECK-INST: zero za.d[w8, 0:1, vgx2] 171// CHECK-ENCODING: [0x00,0x00,0x0d,0xc0] 172// CHECK-ERROR: instruction requires: sme2p1 173// CHECK-UNKNOWN: c00d0000 <unknown> 174 175zero za.d[w10, 2:3, vgx2] // 11000000-00001101-01000000-00000001 176// CHECK-INST: zero za.d[w10, 2:3, vgx2] 177// CHECK-ENCODING: [0x01,0x40,0x0d,0xc0] 178// CHECK-ERROR: instruction requires: sme2p1 179// CHECK-UNKNOWN: c00d4001 <unknown> 180 181zero za.d[w11, 6:7, vgx2] // 11000000-00001101-01100000-00000011 182// CHECK-INST: zero za.d[w11, 6:7, vgx2] 183// CHECK-ENCODING: [0x03,0x60,0x0d,0xc0] 184// CHECK-ERROR: instruction requires: sme2p1 185// CHECK-UNKNOWN: c00d6003 <unknown> 186 187zero za.d[w8, 2:3, vgx2] // 11000000-00001101-00000000-00000001 188// CHECK-INST: zero za.d[w8, 2:3, vgx2] 189// CHECK-ENCODING: [0x01,0x00,0x0d,0xc0] 190// CHECK-ERROR: instruction requires: sme2p1 191// CHECK-UNKNOWN: c00d0001 <unknown> 192 193zero za.d[w10, 0:1, vgx2] // 11000000-00001101-01000000-00000000 194// CHECK-INST: zero za.d[w10, 0:1, vgx2] 195// CHECK-ENCODING: [0x00,0x40,0x0d,0xc0] 196// CHECK-ERROR: instruction requires: sme2p1 197// CHECK-UNKNOWN: c00d4000 <unknown> 198 199zero za.d[w11, 4:5, vgx2] // 11000000-00001101-01100000-00000010 200// CHECK-INST: zero za.d[w11, 4:5, vgx2] 201// CHECK-ENCODING: [0x02,0x60,0x0d,0xc0] 202// CHECK-ERROR: instruction requires: sme2p1 203// CHECK-UNKNOWN: c00d6002 <unknown> 204 205zero za.d[w9, 6:7, vgx2] // 11000000-00001101-00100000-00000011 206// CHECK-INST: zero za.d[w9, 6:7, vgx2] 207// CHECK-ENCODING: [0x03,0x20,0x0d,0xc0] 208// CHECK-ERROR: instruction requires: sme2p1 209// CHECK-UNKNOWN: c00d2003 <unknown> 210 211 212zero za.d[w8, 0:3, vgx2] // 11000000-00001111-00000000-00000000 213// CHECK-INST: zero za.d[w8, 0:3, vgx2] 214// CHECK-ENCODING: [0x00,0x00,0x0f,0xc0] 215// CHECK-ERROR: instruction requires: sme2p1 216// CHECK-UNKNOWN: c00f0000 <unknown> 217 218zero za.d[w10, 4:7, vgx2] // 11000000-00001111-01000000-00000001 219// CHECK-INST: zero za.d[w10, 4:7, vgx2] 220// CHECK-ENCODING: [0x01,0x40,0x0f,0xc0] 221// CHECK-ERROR: instruction requires: sme2p1 222// CHECK-UNKNOWN: c00f4001 <unknown> 223 224zero za.d[w11, 4:7, vgx2] // 11000000-00001111-01100000-00000001 225// CHECK-INST: zero za.d[w11, 4:7, vgx2] 226// CHECK-ENCODING: [0x01,0x60,0x0f,0xc0] 227// CHECK-ERROR: instruction requires: sme2p1 228// CHECK-UNKNOWN: c00f6001 <unknown> 229 230zero za.d[w8, 4:7, vgx2] // 11000000-00001111-00000000-00000001 231// CHECK-INST: zero za.d[w8, 4:7, vgx2] 232// CHECK-ENCODING: [0x01,0x00,0x0f,0xc0] 233// CHECK-ERROR: instruction requires: sme2p1 234// CHECK-UNKNOWN: c00f0001 <unknown> 235 236zero za.d[w10, 0:3, vgx2] // 11000000-00001111-01000000-00000000 237// CHECK-INST: zero za.d[w10, 0:3, vgx2] 238// CHECK-ENCODING: [0x00,0x40,0x0f,0xc0] 239// CHECK-ERROR: instruction requires: sme2p1 240// CHECK-UNKNOWN: c00f4000 <unknown> 241 242zero za.d[w11, 0:3, vgx2] // 11000000-00001111-01100000-00000000 243// CHECK-INST: zero za.d[w11, 0:3, vgx2] 244// CHECK-ENCODING: [0x00,0x60,0x0f,0xc0] 245// CHECK-ERROR: instruction requires: sme2p1 246// CHECK-UNKNOWN: c00f6000 <unknown> 247 248zero za.d[w9, 4:7, vgx2] // 11000000-00001111-00100000-00000001 249// CHECK-INST: zero za.d[w9, 4:7, vgx2] 250// CHECK-ENCODING: [0x01,0x20,0x0f,0xc0] 251// CHECK-ERROR: instruction requires: sme2p1 252// CHECK-UNKNOWN: c00f2001 <unknown> 253 254 255zero za.d[w8, 0, vgx4] // 11000000-00001110-00000000-00000000 256// CHECK-INST: zero za.d[w8, 0, vgx4] 257// CHECK-ENCODING: [0x00,0x00,0x0e,0xc0] 258// CHECK-ERROR: instruction requires: sme2p1 259// CHECK-UNKNOWN: c00e0000 <unknown> 260 261zero za.d[w10, 5, vgx4] // 11000000-00001110-01000000-00000101 262// CHECK-INST: zero za.d[w10, 5, vgx4] 263// CHECK-ENCODING: [0x05,0x40,0x0e,0xc0] 264// CHECK-ERROR: instruction requires: sme2p1 265// CHECK-UNKNOWN: c00e4005 <unknown> 266 267zero za.d[w11, 7, vgx4] // 11000000-00001110-01100000-00000111 268// CHECK-INST: zero za.d[w11, 7, vgx4] 269// CHECK-ENCODING: [0x07,0x60,0x0e,0xc0] 270// CHECK-ERROR: instruction requires: sme2p1 271// CHECK-UNKNOWN: c00e6007 <unknown> 272 273zero za.d[w8, 5, vgx4] // 11000000-00001110-00000000-00000101 274// CHECK-INST: zero za.d[w8, 5, vgx4] 275// CHECK-ENCODING: [0x05,0x00,0x0e,0xc0] 276// CHECK-ERROR: instruction requires: sme2p1 277// CHECK-UNKNOWN: c00e0005 <unknown> 278 279zero za.d[w8, 1, vgx4] // 11000000-00001110-00000000-00000001 280// CHECK-INST: zero za.d[w8, 1, vgx4] 281// CHECK-ENCODING: [0x01,0x00,0x0e,0xc0] 282// CHECK-ERROR: instruction requires: sme2p1 283// CHECK-UNKNOWN: c00e0001 <unknown> 284 285zero za.d[w10, 0, vgx4] // 11000000-00001110-01000000-00000000 286// CHECK-INST: zero za.d[w10, 0, vgx4] 287// CHECK-ENCODING: [0x00,0x40,0x0e,0xc0] 288// CHECK-ERROR: instruction requires: sme2p1 289// CHECK-UNKNOWN: c00e4000 <unknown> 290 291zero za.d[w10, 1, vgx4] // 11000000-00001110-01000000-00000001 292// CHECK-INST: zero za.d[w10, 1, vgx4] 293// CHECK-ENCODING: [0x01,0x40,0x0e,0xc0] 294// CHECK-ERROR: instruction requires: sme2p1 295// CHECK-UNKNOWN: c00e4001 <unknown> 296 297zero za.d[w11, 2, vgx4] // 11000000-00001110-01100000-00000010 298// CHECK-INST: zero za.d[w11, 2, vgx4] 299// CHECK-ENCODING: [0x02,0x60,0x0e,0xc0] 300// CHECK-ERROR: instruction requires: sme2p1 301// CHECK-UNKNOWN: c00e6002 <unknown> 302 303zero za.d[w9, 7, vgx4] // 11000000-00001110-00100000-00000111 304// CHECK-INST: zero za.d[w9, 7, vgx4] 305// CHECK-ENCODING: [0x07,0x20,0x0e,0xc0] 306// CHECK-ERROR: instruction requires: sme2p1 307// CHECK-UNKNOWN: c00e2007 <unknown> 308 309 310zero za.d[w8, 0:1, vgx4] // 11000000-00001101-10000000-00000000 311// CHECK-INST: zero za.d[w8, 0:1, vgx4] 312// CHECK-ENCODING: [0x00,0x80,0x0d,0xc0] 313// CHECK-ERROR: instruction requires: sme2p1 314// CHECK-UNKNOWN: c00d8000 <unknown> 315 316zero za.d[w10, 2:3, vgx4] // 11000000-00001101-11000000-00000001 317// CHECK-INST: zero za.d[w10, 2:3, vgx4] 318// CHECK-ENCODING: [0x01,0xc0,0x0d,0xc0] 319// CHECK-ERROR: instruction requires: sme2p1 320// CHECK-UNKNOWN: c00dc001 <unknown> 321 322zero za.d[w11, 6:7, vgx4] // 11000000-00001101-11100000-00000011 323// CHECK-INST: zero za.d[w11, 6:7, vgx4] 324// CHECK-ENCODING: [0x03,0xe0,0x0d,0xc0] 325// CHECK-ERROR: instruction requires: sme2p1 326// CHECK-UNKNOWN: c00de003 <unknown> 327 328zero za.d[w8, 2:3, vgx4] // 11000000-00001101-10000000-00000001 329// CHECK-INST: zero za.d[w8, 2:3, vgx4] 330// CHECK-ENCODING: [0x01,0x80,0x0d,0xc0] 331// CHECK-ERROR: instruction requires: sme2p1 332// CHECK-UNKNOWN: c00d8001 <unknown> 333 334zero za.d[w10, 0:1, vgx4] // 11000000-00001101-11000000-00000000 335// CHECK-INST: zero za.d[w10, 0:1, vgx4] 336// CHECK-ENCODING: [0x00,0xc0,0x0d,0xc0] 337// CHECK-ERROR: instruction requires: sme2p1 338// CHECK-UNKNOWN: c00dc000 <unknown> 339 340zero za.d[w11, 4:5, vgx4] // 11000000-00001101-11100000-00000010 341// CHECK-INST: zero za.d[w11, 4:5, vgx4] 342// CHECK-ENCODING: [0x02,0xe0,0x0d,0xc0] 343// CHECK-ERROR: instruction requires: sme2p1 344// CHECK-UNKNOWN: c00de002 <unknown> 345 346zero za.d[w9, 6:7, vgx4] // 11000000-00001101-10100000-00000011 347// CHECK-INST: zero za.d[w9, 6:7, vgx4] 348// CHECK-ENCODING: [0x03,0xa0,0x0d,0xc0] 349// CHECK-ERROR: instruction requires: sme2p1 350// CHECK-UNKNOWN: c00da003 <unknown> 351 352 353zero za.d[w8, 0:3, vgx4] // 11000000-00001111-10000000-00000000 354// CHECK-INST: zero za.d[w8, 0:3, vgx4] 355// CHECK-ENCODING: [0x00,0x80,0x0f,0xc0] 356// CHECK-ERROR: instruction requires: sme2p1 357// CHECK-UNKNOWN: c00f8000 <unknown> 358 359zero za.d[w10, 4:7, vgx4] // 11000000-00001111-11000000-00000001 360// CHECK-INST: zero za.d[w10, 4:7, vgx4] 361// CHECK-ENCODING: [0x01,0xc0,0x0f,0xc0] 362// CHECK-ERROR: instruction requires: sme2p1 363// CHECK-UNKNOWN: c00fc001 <unknown> 364 365zero za.d[w11, 4:7, vgx4] // 11000000-00001111-11100000-00000001 366// CHECK-INST: zero za.d[w11, 4:7, vgx4] 367// CHECK-ENCODING: [0x01,0xe0,0x0f,0xc0] 368// CHECK-ERROR: instruction requires: sme2p1 369// CHECK-UNKNOWN: c00fe001 <unknown> 370 371zero za.d[w8, 4:7, vgx4] // 11000000-00001111-10000000-00000001 372// CHECK-INST: zero za.d[w8, 4:7, vgx4] 373// CHECK-ENCODING: [0x01,0x80,0x0f,0xc0] 374// CHECK-ERROR: instruction requires: sme2p1 375// CHECK-UNKNOWN: c00f8001 <unknown> 376 377zero za.d[w10, 0:3, vgx4] // 11000000-00001111-11000000-00000000 378// CHECK-INST: zero za.d[w10, 0:3, vgx4] 379// CHECK-ENCODING: [0x00,0xc0,0x0f,0xc0] 380// CHECK-ERROR: instruction requires: sme2p1 381// CHECK-UNKNOWN: c00fc000 <unknown> 382 383zero za.d[w11, 0:3, vgx4] // 11000000-00001111-11100000-00000000 384// CHECK-INST: zero za.d[w11, 0:3, vgx4] 385// CHECK-ENCODING: [0x00,0xe0,0x0f,0xc0] 386// CHECK-ERROR: instruction requires: sme2p1 387// CHECK-UNKNOWN: c00fe000 <unknown> 388 389zero za.d[w9, 4:7, vgx4] // 11000000-00001111-10100000-00000001 390// CHECK-INST: zero za.d[w9, 4:7, vgx4] 391// CHECK-ENCODING: [0x01,0xa0,0x0f,0xc0] 392// CHECK-ERROR: instruction requires: sme2p1 393// CHECK-UNKNOWN: c00fa001 <unknown> 394 395