// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1 < %s \ // RUN: | llvm-objdump --no-print-imm-hex -d --mattr=+sme2p1 - \ // RUN: | FileCheck %s --check-prefix=CHECK-INST // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1 < %s \ // RUN: | llvm-objdump --no-print-imm-hex -d --mattr=-sme2p1 - \ // RUN: | FileCheck %s --check-prefix=CHECK-UNKNOWN // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ // RUN: | llvm-mc -triple=aarch64 -mattr=+sme2p1 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST zero za.d[w8, 0:1] // 11000000-00001100-10000000-00000000 // CHECK-INST: zero za.d[w8, 0:1] // CHECK-ENCODING: [0x00,0x80,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c8000 zero za.d[w10, 10:11] // 11000000-00001100-11000000-00000101 // CHECK-INST: zero za.d[w10, 10:11] // CHECK-ENCODING: [0x05,0xc0,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00cc005 zero za.d[w11, 14:15] // 11000000-00001100-11100000-00000111 // CHECK-INST: zero za.d[w11, 14:15] // CHECK-ENCODING: [0x07,0xe0,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00ce007 zero za.d[w8, 10:11] // 11000000-00001100-10000000-00000101 // CHECK-INST: zero za.d[w8, 10:11] // CHECK-ENCODING: [0x05,0x80,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c8005 zero za.d[w8, 2:3] // 11000000-00001100-10000000-00000001 // CHECK-INST: zero za.d[w8, 2:3] // CHECK-ENCODING: [0x01,0x80,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c8001 zero za.d[w10, 0:1] // 11000000-00001100-11000000-00000000 // CHECK-INST: zero za.d[w10, 0:1] // CHECK-ENCODING: [0x00,0xc0,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00cc000 zero za.d[w10, 2:3] // 11000000-00001100-11000000-00000001 // CHECK-INST: zero za.d[w10, 2:3] // CHECK-ENCODING: [0x01,0xc0,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00cc001 zero za.d[w11, 4:5] // 11000000-00001100-11100000-00000010 // CHECK-INST: zero za.d[w11, 4:5] // CHECK-ENCODING: [0x02,0xe0,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00ce002 zero za.d[w9, 14:15] // 11000000-00001100-10100000-00000111 // CHECK-INST: zero za.d[w9, 14:15] // CHECK-ENCODING: [0x07,0xa0,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00ca007 zero za.d[w8, 0:3] // 11000000-00001110-10000000-00000000 // CHECK-INST: zero za.d[w8, 0:3] // CHECK-ENCODING: [0x00,0x80,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e8000 zero za.d[w10, 4:7] // 11000000-00001110-11000000-00000001 // CHECK-INST: zero za.d[w10, 4:7] // CHECK-ENCODING: [0x01,0xc0,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00ec001 zero za.d[w11, 12:15] // 11000000-00001110-11100000-00000011 // CHECK-INST: zero za.d[w11, 12:15] // CHECK-ENCODING: [0x03,0xe0,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00ee003 zero za.d[w8, 4:7] // 11000000-00001110-10000000-00000001 // CHECK-INST: zero za.d[w8, 4:7] // CHECK-ENCODING: [0x01,0x80,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e8001 zero za.d[w10, 0:3] // 11000000-00001110-11000000-00000000 // CHECK-INST: zero za.d[w10, 0:3] // CHECK-ENCODING: [0x00,0xc0,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00ec000 zero za.d[w11, 8:11] // 11000000-00001110-11100000-00000010 // CHECK-INST: zero za.d[w11, 8:11] // CHECK-ENCODING: [0x02,0xe0,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00ee002 zero za.d[w9, 12:15] // 11000000-00001110-10100000-00000011 // CHECK-INST: zero za.d[w9, 12:15] // CHECK-ENCODING: [0x03,0xa0,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00ea003 zero za.d[w8, 0, vgx2] // 11000000-00001100-00000000-00000000 // CHECK-INST: zero za.d[w8, 0, vgx2] // CHECK-ENCODING: [0x00,0x00,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c0000 zero za.d[w10, 5, vgx2] // 11000000-00001100-01000000-00000101 // CHECK-INST: zero za.d[w10, 5, vgx2] // CHECK-ENCODING: [0x05,0x40,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c4005 zero za.d[w11, 7, vgx2] // 11000000-00001100-01100000-00000111 // CHECK-INST: zero za.d[w11, 7, vgx2] // CHECK-ENCODING: [0x07,0x60,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c6007 zero za.d[w8, 5, vgx2] // 11000000-00001100-00000000-00000101 // CHECK-INST: zero za.d[w8, 5, vgx2] // CHECK-ENCODING: [0x05,0x00,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c0005 zero za.d[w8, 1, vgx2] // 11000000-00001100-00000000-00000001 // CHECK-INST: zero za.d[w8, 1, vgx2] // CHECK-ENCODING: [0x01,0x00,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c0001 zero za.d[w10, 0, vgx2] // 11000000-00001100-01000000-00000000 // CHECK-INST: zero za.d[w10, 0, vgx2] // CHECK-ENCODING: [0x00,0x40,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c4000 zero za.d[w10, 1, vgx2] // 11000000-00001100-01000000-00000001 // CHECK-INST: zero za.d[w10, 1, vgx2] // CHECK-ENCODING: [0x01,0x40,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c4001 zero za.d[w11, 2, vgx2] // 11000000-00001100-01100000-00000010 // CHECK-INST: zero za.d[w11, 2, vgx2] // CHECK-ENCODING: [0x02,0x60,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c6002 zero za.d[w9, 7, vgx2] // 11000000-00001100-00100000-00000111 // CHECK-INST: zero za.d[w9, 7, vgx2] // CHECK-ENCODING: [0x07,0x20,0x0c,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00c2007 zero za.d[w8, 0:1, vgx2] // 11000000-00001101-00000000-00000000 // CHECK-INST: zero za.d[w8, 0:1, vgx2] // CHECK-ENCODING: [0x00,0x00,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00d0000 zero za.d[w10, 2:3, vgx2] // 11000000-00001101-01000000-00000001 // CHECK-INST: zero za.d[w10, 2:3, vgx2] // CHECK-ENCODING: [0x01,0x40,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00d4001 zero za.d[w11, 6:7, vgx2] // 11000000-00001101-01100000-00000011 // CHECK-INST: zero za.d[w11, 6:7, vgx2] // CHECK-ENCODING: [0x03,0x60,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00d6003 zero za.d[w8, 2:3, vgx2] // 11000000-00001101-00000000-00000001 // CHECK-INST: zero za.d[w8, 2:3, vgx2] // CHECK-ENCODING: [0x01,0x00,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00d0001 zero za.d[w10, 0:1, vgx2] // 11000000-00001101-01000000-00000000 // CHECK-INST: zero za.d[w10, 0:1, vgx2] // CHECK-ENCODING: [0x00,0x40,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00d4000 zero za.d[w11, 4:5, vgx2] // 11000000-00001101-01100000-00000010 // CHECK-INST: zero za.d[w11, 4:5, vgx2] // CHECK-ENCODING: [0x02,0x60,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00d6002 zero za.d[w9, 6:7, vgx2] // 11000000-00001101-00100000-00000011 // CHECK-INST: zero za.d[w9, 6:7, vgx2] // CHECK-ENCODING: [0x03,0x20,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00d2003 zero za.d[w8, 0:3, vgx2] // 11000000-00001111-00000000-00000000 // CHECK-INST: zero za.d[w8, 0:3, vgx2] // CHECK-ENCODING: [0x00,0x00,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00f0000 zero za.d[w10, 4:7, vgx2] // 11000000-00001111-01000000-00000001 // CHECK-INST: zero za.d[w10, 4:7, vgx2] // CHECK-ENCODING: [0x01,0x40,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00f4001 zero za.d[w11, 4:7, vgx2] // 11000000-00001111-01100000-00000001 // CHECK-INST: zero za.d[w11, 4:7, vgx2] // CHECK-ENCODING: [0x01,0x60,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00f6001 zero za.d[w8, 4:7, vgx2] // 11000000-00001111-00000000-00000001 // CHECK-INST: zero za.d[w8, 4:7, vgx2] // CHECK-ENCODING: [0x01,0x00,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00f0001 zero za.d[w10, 0:3, vgx2] // 11000000-00001111-01000000-00000000 // CHECK-INST: zero za.d[w10, 0:3, vgx2] // CHECK-ENCODING: [0x00,0x40,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00f4000 zero za.d[w11, 0:3, vgx2] // 11000000-00001111-01100000-00000000 // CHECK-INST: zero za.d[w11, 0:3, vgx2] // CHECK-ENCODING: [0x00,0x60,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00f6000 zero za.d[w9, 4:7, vgx2] // 11000000-00001111-00100000-00000001 // CHECK-INST: zero za.d[w9, 4:7, vgx2] // CHECK-ENCODING: [0x01,0x20,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00f2001 zero za.d[w8, 0, vgx4] // 11000000-00001110-00000000-00000000 // CHECK-INST: zero za.d[w8, 0, vgx4] // CHECK-ENCODING: [0x00,0x00,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e0000 zero za.d[w10, 5, vgx4] // 11000000-00001110-01000000-00000101 // CHECK-INST: zero za.d[w10, 5, vgx4] // CHECK-ENCODING: [0x05,0x40,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e4005 zero za.d[w11, 7, vgx4] // 11000000-00001110-01100000-00000111 // CHECK-INST: zero za.d[w11, 7, vgx4] // CHECK-ENCODING: [0x07,0x60,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e6007 zero za.d[w8, 5, vgx4] // 11000000-00001110-00000000-00000101 // CHECK-INST: zero za.d[w8, 5, vgx4] // CHECK-ENCODING: [0x05,0x00,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e0005 zero za.d[w8, 1, vgx4] // 11000000-00001110-00000000-00000001 // CHECK-INST: zero za.d[w8, 1, vgx4] // CHECK-ENCODING: [0x01,0x00,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e0001 zero za.d[w10, 0, vgx4] // 11000000-00001110-01000000-00000000 // CHECK-INST: zero za.d[w10, 0, vgx4] // CHECK-ENCODING: [0x00,0x40,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e4000 zero za.d[w10, 1, vgx4] // 11000000-00001110-01000000-00000001 // CHECK-INST: zero za.d[w10, 1, vgx4] // CHECK-ENCODING: [0x01,0x40,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e4001 zero za.d[w11, 2, vgx4] // 11000000-00001110-01100000-00000010 // CHECK-INST: zero za.d[w11, 2, vgx4] // CHECK-ENCODING: [0x02,0x60,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e6002 zero za.d[w9, 7, vgx4] // 11000000-00001110-00100000-00000111 // CHECK-INST: zero za.d[w9, 7, vgx4] // CHECK-ENCODING: [0x07,0x20,0x0e,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00e2007 zero za.d[w8, 0:1, vgx4] // 11000000-00001101-10000000-00000000 // CHECK-INST: zero za.d[w8, 0:1, vgx4] // CHECK-ENCODING: [0x00,0x80,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00d8000 zero za.d[w10, 2:3, vgx4] // 11000000-00001101-11000000-00000001 // CHECK-INST: zero za.d[w10, 2:3, vgx4] // CHECK-ENCODING: [0x01,0xc0,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00dc001 zero za.d[w11, 6:7, vgx4] // 11000000-00001101-11100000-00000011 // CHECK-INST: zero za.d[w11, 6:7, vgx4] // CHECK-ENCODING: [0x03,0xe0,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00de003 zero za.d[w8, 2:3, vgx4] // 11000000-00001101-10000000-00000001 // CHECK-INST: zero za.d[w8, 2:3, vgx4] // CHECK-ENCODING: [0x01,0x80,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00d8001 zero za.d[w10, 0:1, vgx4] // 11000000-00001101-11000000-00000000 // CHECK-INST: zero za.d[w10, 0:1, vgx4] // CHECK-ENCODING: [0x00,0xc0,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00dc000 zero za.d[w11, 4:5, vgx4] // 11000000-00001101-11100000-00000010 // CHECK-INST: zero za.d[w11, 4:5, vgx4] // CHECK-ENCODING: [0x02,0xe0,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00de002 zero za.d[w9, 6:7, vgx4] // 11000000-00001101-10100000-00000011 // CHECK-INST: zero za.d[w9, 6:7, vgx4] // CHECK-ENCODING: [0x03,0xa0,0x0d,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00da003 zero za.d[w8, 0:3, vgx4] // 11000000-00001111-10000000-00000000 // CHECK-INST: zero za.d[w8, 0:3, vgx4] // CHECK-ENCODING: [0x00,0x80,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00f8000 zero za.d[w10, 4:7, vgx4] // 11000000-00001111-11000000-00000001 // CHECK-INST: zero za.d[w10, 4:7, vgx4] // CHECK-ENCODING: [0x01,0xc0,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00fc001 zero za.d[w11, 4:7, vgx4] // 11000000-00001111-11100000-00000001 // CHECK-INST: zero za.d[w11, 4:7, vgx4] // CHECK-ENCODING: [0x01,0xe0,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00fe001 zero za.d[w8, 4:7, vgx4] // 11000000-00001111-10000000-00000001 // CHECK-INST: zero za.d[w8, 4:7, vgx4] // CHECK-ENCODING: [0x01,0x80,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00f8001 zero za.d[w10, 0:3, vgx4] // 11000000-00001111-11000000-00000000 // CHECK-INST: zero za.d[w10, 0:3, vgx4] // CHECK-ENCODING: [0x00,0xc0,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00fc000 zero za.d[w11, 0:3, vgx4] // 11000000-00001111-11100000-00000000 // CHECK-INST: zero za.d[w11, 0:3, vgx4] // CHECK-ENCODING: [0x00,0xe0,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00fe000 zero za.d[w9, 4:7, vgx4] // 11000000-00001111-10100000-00000001 // CHECK-INST: zero za.d[w9, 4:7, vgx4] // CHECK-ENCODING: [0x01,0xa0,0x0f,0xc0] // CHECK-ERROR: instruction requires: sme2p1 // CHECK-UNKNOWN: c00fa001