395 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1 < %s \2// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST3// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \4// RUN: | FileCheck %s --check-prefix=CHECK-ERROR5// 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-INST8// 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-UNKNOWN11// 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-INST15 16zero za.d[w8, 0:1] // 11000000-00001100-10000000-0000000017// CHECK-INST: zero za.d[w8, 0:1]18// CHECK-ENCODING: [0x00,0x80,0x0c,0xc0]19// CHECK-ERROR: instruction requires: sme2p120// CHECK-UNKNOWN: c00c8000 <unknown>21 22zero za.d[w10, 10:11] // 11000000-00001100-11000000-0000010123// CHECK-INST: zero za.d[w10, 10:11]24// CHECK-ENCODING: [0x05,0xc0,0x0c,0xc0]25// CHECK-ERROR: instruction requires: sme2p126// CHECK-UNKNOWN: c00cc005 <unknown>27 28zero za.d[w11, 14:15] // 11000000-00001100-11100000-0000011129// CHECK-INST: zero za.d[w11, 14:15]30// CHECK-ENCODING: [0x07,0xe0,0x0c,0xc0]31// CHECK-ERROR: instruction requires: sme2p132// CHECK-UNKNOWN: c00ce007 <unknown>33 34zero za.d[w8, 10:11] // 11000000-00001100-10000000-0000010135// CHECK-INST: zero za.d[w8, 10:11]36// CHECK-ENCODING: [0x05,0x80,0x0c,0xc0]37// CHECK-ERROR: instruction requires: sme2p138// CHECK-UNKNOWN: c00c8005 <unknown>39 40zero za.d[w8, 2:3] // 11000000-00001100-10000000-0000000141// CHECK-INST: zero za.d[w8, 2:3]42// CHECK-ENCODING: [0x01,0x80,0x0c,0xc0]43// CHECK-ERROR: instruction requires: sme2p144// CHECK-UNKNOWN: c00c8001 <unknown>45 46zero za.d[w10, 0:1] // 11000000-00001100-11000000-0000000047// CHECK-INST: zero za.d[w10, 0:1]48// CHECK-ENCODING: [0x00,0xc0,0x0c,0xc0]49// CHECK-ERROR: instruction requires: sme2p150// CHECK-UNKNOWN: c00cc000 <unknown>51 52zero za.d[w10, 2:3] // 11000000-00001100-11000000-0000000153// CHECK-INST: zero za.d[w10, 2:3]54// CHECK-ENCODING: [0x01,0xc0,0x0c,0xc0]55// CHECK-ERROR: instruction requires: sme2p156// CHECK-UNKNOWN: c00cc001 <unknown>57 58zero za.d[w11, 4:5] // 11000000-00001100-11100000-0000001059// CHECK-INST: zero za.d[w11, 4:5]60// CHECK-ENCODING: [0x02,0xe0,0x0c,0xc0]61// CHECK-ERROR: instruction requires: sme2p162// CHECK-UNKNOWN: c00ce002 <unknown>63 64zero za.d[w9, 14:15] // 11000000-00001100-10100000-0000011165// CHECK-INST: zero za.d[w9, 14:15]66// CHECK-ENCODING: [0x07,0xa0,0x0c,0xc0]67// CHECK-ERROR: instruction requires: sme2p168// CHECK-UNKNOWN: c00ca007 <unknown>69 70 71zero za.d[w8, 0:3] // 11000000-00001110-10000000-0000000072// CHECK-INST: zero za.d[w8, 0:3]73// CHECK-ENCODING: [0x00,0x80,0x0e,0xc0]74// CHECK-ERROR: instruction requires: sme2p175// CHECK-UNKNOWN: c00e8000 <unknown>76 77zero za.d[w10, 4:7] // 11000000-00001110-11000000-0000000178// CHECK-INST: zero za.d[w10, 4:7]79// CHECK-ENCODING: [0x01,0xc0,0x0e,0xc0]80// CHECK-ERROR: instruction requires: sme2p181// CHECK-UNKNOWN: c00ec001 <unknown>82 83zero za.d[w11, 12:15] // 11000000-00001110-11100000-0000001184// CHECK-INST: zero za.d[w11, 12:15]85// CHECK-ENCODING: [0x03,0xe0,0x0e,0xc0]86// CHECK-ERROR: instruction requires: sme2p187// CHECK-UNKNOWN: c00ee003 <unknown>88 89zero za.d[w8, 4:7] // 11000000-00001110-10000000-0000000190// CHECK-INST: zero za.d[w8, 4:7]91// CHECK-ENCODING: [0x01,0x80,0x0e,0xc0]92// CHECK-ERROR: instruction requires: sme2p193// CHECK-UNKNOWN: c00e8001 <unknown>94 95zero za.d[w10, 0:3] // 11000000-00001110-11000000-0000000096// CHECK-INST: zero za.d[w10, 0:3]97// CHECK-ENCODING: [0x00,0xc0,0x0e,0xc0]98// CHECK-ERROR: instruction requires: sme2p199// CHECK-UNKNOWN: c00ec000 <unknown>100 101zero za.d[w11, 8:11] // 11000000-00001110-11100000-00000010102// CHECK-INST: zero za.d[w11, 8:11]103// CHECK-ENCODING: [0x02,0xe0,0x0e,0xc0]104// CHECK-ERROR: instruction requires: sme2p1105// CHECK-UNKNOWN: c00ee002 <unknown>106 107zero za.d[w9, 12:15] // 11000000-00001110-10100000-00000011108// CHECK-INST: zero za.d[w9, 12:15]109// CHECK-ENCODING: [0x03,0xa0,0x0e,0xc0]110// CHECK-ERROR: instruction requires: sme2p1111// CHECK-UNKNOWN: c00ea003 <unknown>112 113 114zero za.d[w8, 0, vgx2] // 11000000-00001100-00000000-00000000115// CHECK-INST: zero za.d[w8, 0, vgx2]116// CHECK-ENCODING: [0x00,0x00,0x0c,0xc0]117// CHECK-ERROR: instruction requires: sme2p1118// CHECK-UNKNOWN: c00c0000 <unknown>119 120zero za.d[w10, 5, vgx2] // 11000000-00001100-01000000-00000101121// CHECK-INST: zero za.d[w10, 5, vgx2]122// CHECK-ENCODING: [0x05,0x40,0x0c,0xc0]123// CHECK-ERROR: instruction requires: sme2p1124// CHECK-UNKNOWN: c00c4005 <unknown>125 126zero za.d[w11, 7, vgx2] // 11000000-00001100-01100000-00000111127// CHECK-INST: zero za.d[w11, 7, vgx2]128// CHECK-ENCODING: [0x07,0x60,0x0c,0xc0]129// CHECK-ERROR: instruction requires: sme2p1130// CHECK-UNKNOWN: c00c6007 <unknown>131 132zero za.d[w8, 5, vgx2] // 11000000-00001100-00000000-00000101133// CHECK-INST: zero za.d[w8, 5, vgx2]134// CHECK-ENCODING: [0x05,0x00,0x0c,0xc0]135// CHECK-ERROR: instruction requires: sme2p1136// CHECK-UNKNOWN: c00c0005 <unknown>137 138zero za.d[w8, 1, vgx2] // 11000000-00001100-00000000-00000001139// CHECK-INST: zero za.d[w8, 1, vgx2]140// CHECK-ENCODING: [0x01,0x00,0x0c,0xc0]141// CHECK-ERROR: instruction requires: sme2p1142// CHECK-UNKNOWN: c00c0001 <unknown>143 144zero za.d[w10, 0, vgx2] // 11000000-00001100-01000000-00000000145// CHECK-INST: zero za.d[w10, 0, vgx2]146// CHECK-ENCODING: [0x00,0x40,0x0c,0xc0]147// CHECK-ERROR: instruction requires: sme2p1148// CHECK-UNKNOWN: c00c4000 <unknown>149 150zero za.d[w10, 1, vgx2] // 11000000-00001100-01000000-00000001151// CHECK-INST: zero za.d[w10, 1, vgx2]152// CHECK-ENCODING: [0x01,0x40,0x0c,0xc0]153// CHECK-ERROR: instruction requires: sme2p1154// CHECK-UNKNOWN: c00c4001 <unknown>155 156zero za.d[w11, 2, vgx2] // 11000000-00001100-01100000-00000010157// CHECK-INST: zero za.d[w11, 2, vgx2]158// CHECK-ENCODING: [0x02,0x60,0x0c,0xc0]159// CHECK-ERROR: instruction requires: sme2p1160// CHECK-UNKNOWN: c00c6002 <unknown>161 162zero za.d[w9, 7, vgx2] // 11000000-00001100-00100000-00000111163// CHECK-INST: zero za.d[w9, 7, vgx2]164// CHECK-ENCODING: [0x07,0x20,0x0c,0xc0]165// CHECK-ERROR: instruction requires: sme2p1166// CHECK-UNKNOWN: c00c2007 <unknown>167 168 169zero za.d[w8, 0:1, vgx2] // 11000000-00001101-00000000-00000000170// CHECK-INST: zero za.d[w8, 0:1, vgx2]171// CHECK-ENCODING: [0x00,0x00,0x0d,0xc0]172// CHECK-ERROR: instruction requires: sme2p1173// CHECK-UNKNOWN: c00d0000 <unknown>174 175zero za.d[w10, 2:3, vgx2] // 11000000-00001101-01000000-00000001176// CHECK-INST: zero za.d[w10, 2:3, vgx2]177// CHECK-ENCODING: [0x01,0x40,0x0d,0xc0]178// CHECK-ERROR: instruction requires: sme2p1179// CHECK-UNKNOWN: c00d4001 <unknown>180 181zero za.d[w11, 6:7, vgx2] // 11000000-00001101-01100000-00000011182// CHECK-INST: zero za.d[w11, 6:7, vgx2]183// CHECK-ENCODING: [0x03,0x60,0x0d,0xc0]184// CHECK-ERROR: instruction requires: sme2p1185// CHECK-UNKNOWN: c00d6003 <unknown>186 187zero za.d[w8, 2:3, vgx2] // 11000000-00001101-00000000-00000001188// CHECK-INST: zero za.d[w8, 2:3, vgx2]189// CHECK-ENCODING: [0x01,0x00,0x0d,0xc0]190// CHECK-ERROR: instruction requires: sme2p1191// CHECK-UNKNOWN: c00d0001 <unknown>192 193zero za.d[w10, 0:1, vgx2] // 11000000-00001101-01000000-00000000194// CHECK-INST: zero za.d[w10, 0:1, vgx2]195// CHECK-ENCODING: [0x00,0x40,0x0d,0xc0]196// CHECK-ERROR: instruction requires: sme2p1197// CHECK-UNKNOWN: c00d4000 <unknown>198 199zero za.d[w11, 4:5, vgx2] // 11000000-00001101-01100000-00000010200// CHECK-INST: zero za.d[w11, 4:5, vgx2]201// CHECK-ENCODING: [0x02,0x60,0x0d,0xc0]202// CHECK-ERROR: instruction requires: sme2p1203// CHECK-UNKNOWN: c00d6002 <unknown>204 205zero za.d[w9, 6:7, vgx2] // 11000000-00001101-00100000-00000011206// CHECK-INST: zero za.d[w9, 6:7, vgx2]207// CHECK-ENCODING: [0x03,0x20,0x0d,0xc0]208// CHECK-ERROR: instruction requires: sme2p1209// CHECK-UNKNOWN: c00d2003 <unknown>210 211 212zero za.d[w8, 0:3, vgx2] // 11000000-00001111-00000000-00000000213// CHECK-INST: zero za.d[w8, 0:3, vgx2]214// CHECK-ENCODING: [0x00,0x00,0x0f,0xc0]215// CHECK-ERROR: instruction requires: sme2p1216// CHECK-UNKNOWN: c00f0000 <unknown>217 218zero za.d[w10, 4:7, vgx2] // 11000000-00001111-01000000-00000001219// CHECK-INST: zero za.d[w10, 4:7, vgx2]220// CHECK-ENCODING: [0x01,0x40,0x0f,0xc0]221// CHECK-ERROR: instruction requires: sme2p1222// CHECK-UNKNOWN: c00f4001 <unknown>223 224zero za.d[w11, 4:7, vgx2] // 11000000-00001111-01100000-00000001225// CHECK-INST: zero za.d[w11, 4:7, vgx2]226// CHECK-ENCODING: [0x01,0x60,0x0f,0xc0]227// CHECK-ERROR: instruction requires: sme2p1228// CHECK-UNKNOWN: c00f6001 <unknown>229 230zero za.d[w8, 4:7, vgx2] // 11000000-00001111-00000000-00000001231// CHECK-INST: zero za.d[w8, 4:7, vgx2]232// CHECK-ENCODING: [0x01,0x00,0x0f,0xc0]233// CHECK-ERROR: instruction requires: sme2p1234// CHECK-UNKNOWN: c00f0001 <unknown>235 236zero za.d[w10, 0:3, vgx2] // 11000000-00001111-01000000-00000000237// CHECK-INST: zero za.d[w10, 0:3, vgx2]238// CHECK-ENCODING: [0x00,0x40,0x0f,0xc0]239// CHECK-ERROR: instruction requires: sme2p1240// CHECK-UNKNOWN: c00f4000 <unknown>241 242zero za.d[w11, 0:3, vgx2] // 11000000-00001111-01100000-00000000243// CHECK-INST: zero za.d[w11, 0:3, vgx2]244// CHECK-ENCODING: [0x00,0x60,0x0f,0xc0]245// CHECK-ERROR: instruction requires: sme2p1246// CHECK-UNKNOWN: c00f6000 <unknown>247 248zero za.d[w9, 4:7, vgx2] // 11000000-00001111-00100000-00000001249// CHECK-INST: zero za.d[w9, 4:7, vgx2]250// CHECK-ENCODING: [0x01,0x20,0x0f,0xc0]251// CHECK-ERROR: instruction requires: sme2p1252// CHECK-UNKNOWN: c00f2001 <unknown>253 254 255zero za.d[w8, 0, vgx4] // 11000000-00001110-00000000-00000000256// CHECK-INST: zero za.d[w8, 0, vgx4]257// CHECK-ENCODING: [0x00,0x00,0x0e,0xc0]258// CHECK-ERROR: instruction requires: sme2p1259// CHECK-UNKNOWN: c00e0000 <unknown>260 261zero za.d[w10, 5, vgx4] // 11000000-00001110-01000000-00000101262// CHECK-INST: zero za.d[w10, 5, vgx4]263// CHECK-ENCODING: [0x05,0x40,0x0e,0xc0]264// CHECK-ERROR: instruction requires: sme2p1265// CHECK-UNKNOWN: c00e4005 <unknown>266 267zero za.d[w11, 7, vgx4] // 11000000-00001110-01100000-00000111268// CHECK-INST: zero za.d[w11, 7, vgx4]269// CHECK-ENCODING: [0x07,0x60,0x0e,0xc0]270// CHECK-ERROR: instruction requires: sme2p1271// CHECK-UNKNOWN: c00e6007 <unknown>272 273zero za.d[w8, 5, vgx4] // 11000000-00001110-00000000-00000101274// CHECK-INST: zero za.d[w8, 5, vgx4]275// CHECK-ENCODING: [0x05,0x00,0x0e,0xc0]276// CHECK-ERROR: instruction requires: sme2p1277// CHECK-UNKNOWN: c00e0005 <unknown>278 279zero za.d[w8, 1, vgx4] // 11000000-00001110-00000000-00000001280// CHECK-INST: zero za.d[w8, 1, vgx4]281// CHECK-ENCODING: [0x01,0x00,0x0e,0xc0]282// CHECK-ERROR: instruction requires: sme2p1283// CHECK-UNKNOWN: c00e0001 <unknown>284 285zero za.d[w10, 0, vgx4] // 11000000-00001110-01000000-00000000286// CHECK-INST: zero za.d[w10, 0, vgx4]287// CHECK-ENCODING: [0x00,0x40,0x0e,0xc0]288// CHECK-ERROR: instruction requires: sme2p1289// CHECK-UNKNOWN: c00e4000 <unknown>290 291zero za.d[w10, 1, vgx4] // 11000000-00001110-01000000-00000001292// CHECK-INST: zero za.d[w10, 1, vgx4]293// CHECK-ENCODING: [0x01,0x40,0x0e,0xc0]294// CHECK-ERROR: instruction requires: sme2p1295// CHECK-UNKNOWN: c00e4001 <unknown>296 297zero za.d[w11, 2, vgx4] // 11000000-00001110-01100000-00000010298// CHECK-INST: zero za.d[w11, 2, vgx4]299// CHECK-ENCODING: [0x02,0x60,0x0e,0xc0]300// CHECK-ERROR: instruction requires: sme2p1301// CHECK-UNKNOWN: c00e6002 <unknown>302 303zero za.d[w9, 7, vgx4] // 11000000-00001110-00100000-00000111304// CHECK-INST: zero za.d[w9, 7, vgx4]305// CHECK-ENCODING: [0x07,0x20,0x0e,0xc0]306// CHECK-ERROR: instruction requires: sme2p1307// CHECK-UNKNOWN: c00e2007 <unknown>308 309 310zero za.d[w8, 0:1, vgx4] // 11000000-00001101-10000000-00000000311// CHECK-INST: zero za.d[w8, 0:1, vgx4]312// CHECK-ENCODING: [0x00,0x80,0x0d,0xc0]313// CHECK-ERROR: instruction requires: sme2p1314// CHECK-UNKNOWN: c00d8000 <unknown>315 316zero za.d[w10, 2:3, vgx4] // 11000000-00001101-11000000-00000001317// CHECK-INST: zero za.d[w10, 2:3, vgx4]318// CHECK-ENCODING: [0x01,0xc0,0x0d,0xc0]319// CHECK-ERROR: instruction requires: sme2p1320// CHECK-UNKNOWN: c00dc001 <unknown>321 322zero za.d[w11, 6:7, vgx4] // 11000000-00001101-11100000-00000011323// CHECK-INST: zero za.d[w11, 6:7, vgx4]324// CHECK-ENCODING: [0x03,0xe0,0x0d,0xc0]325// CHECK-ERROR: instruction requires: sme2p1326// CHECK-UNKNOWN: c00de003 <unknown>327 328zero za.d[w8, 2:3, vgx4] // 11000000-00001101-10000000-00000001329// CHECK-INST: zero za.d[w8, 2:3, vgx4]330// CHECK-ENCODING: [0x01,0x80,0x0d,0xc0]331// CHECK-ERROR: instruction requires: sme2p1332// CHECK-UNKNOWN: c00d8001 <unknown>333 334zero za.d[w10, 0:1, vgx4] // 11000000-00001101-11000000-00000000335// CHECK-INST: zero za.d[w10, 0:1, vgx4]336// CHECK-ENCODING: [0x00,0xc0,0x0d,0xc0]337// CHECK-ERROR: instruction requires: sme2p1338// CHECK-UNKNOWN: c00dc000 <unknown>339 340zero za.d[w11, 4:5, vgx4] // 11000000-00001101-11100000-00000010341// CHECK-INST: zero za.d[w11, 4:5, vgx4]342// CHECK-ENCODING: [0x02,0xe0,0x0d,0xc0]343// CHECK-ERROR: instruction requires: sme2p1344// CHECK-UNKNOWN: c00de002 <unknown>345 346zero za.d[w9, 6:7, vgx4] // 11000000-00001101-10100000-00000011347// CHECK-INST: zero za.d[w9, 6:7, vgx4]348// CHECK-ENCODING: [0x03,0xa0,0x0d,0xc0]349// CHECK-ERROR: instruction requires: sme2p1350// CHECK-UNKNOWN: c00da003 <unknown>351 352 353zero za.d[w8, 0:3, vgx4] // 11000000-00001111-10000000-00000000354// CHECK-INST: zero za.d[w8, 0:3, vgx4]355// CHECK-ENCODING: [0x00,0x80,0x0f,0xc0]356// CHECK-ERROR: instruction requires: sme2p1357// CHECK-UNKNOWN: c00f8000 <unknown>358 359zero za.d[w10, 4:7, vgx4] // 11000000-00001111-11000000-00000001360// CHECK-INST: zero za.d[w10, 4:7, vgx4]361// CHECK-ENCODING: [0x01,0xc0,0x0f,0xc0]362// CHECK-ERROR: instruction requires: sme2p1363// CHECK-UNKNOWN: c00fc001 <unknown>364 365zero za.d[w11, 4:7, vgx4] // 11000000-00001111-11100000-00000001366// CHECK-INST: zero za.d[w11, 4:7, vgx4]367// CHECK-ENCODING: [0x01,0xe0,0x0f,0xc0]368// CHECK-ERROR: instruction requires: sme2p1369// CHECK-UNKNOWN: c00fe001 <unknown>370 371zero za.d[w8, 4:7, vgx4] // 11000000-00001111-10000000-00000001372// CHECK-INST: zero za.d[w8, 4:7, vgx4]373// CHECK-ENCODING: [0x01,0x80,0x0f,0xc0]374// CHECK-ERROR: instruction requires: sme2p1375// CHECK-UNKNOWN: c00f8001 <unknown>376 377zero za.d[w10, 0:3, vgx4] // 11000000-00001111-11000000-00000000378// CHECK-INST: zero za.d[w10, 0:3, vgx4]379// CHECK-ENCODING: [0x00,0xc0,0x0f,0xc0]380// CHECK-ERROR: instruction requires: sme2p1381// CHECK-UNKNOWN: c00fc000 <unknown>382 383zero za.d[w11, 0:3, vgx4] // 11000000-00001111-11100000-00000000384// CHECK-INST: zero za.d[w11, 0:3, vgx4]385// CHECK-ENCODING: [0x00,0xe0,0x0f,0xc0]386// CHECK-ERROR: instruction requires: sme2p1387// CHECK-UNKNOWN: c00fe000 <unknown>388 389zero za.d[w9, 4:7, vgx4] // 11000000-00001111-10100000-00000001390// CHECK-INST: zero za.d[w9, 4:7, vgx4]391// CHECK-ENCODING: [0x01,0xa0,0x0f,0xc0]392// CHECK-ERROR: instruction requires: sme2p1393// CHECK-UNKNOWN: c00fa001 <unknown>394 395