[llvm] 2d80bbd - [AArch64][SME] Add mova instructions
Cullen Rhodes via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 21 01:35:03 PDT 2021
Author: Cullen Rhodes
Date: 2021-07-21T08:20:01Z
New Revision: 2d80bbd939dc00e1506572f7b53e1368913461d6
URL: https://github.com/llvm/llvm-project/commit/2d80bbd939dc00e1506572f7b53e1368913461d6
DIFF: https://github.com/llvm/llvm-project/commit/2d80bbd939dc00e1506572f7b53e1368913461d6.diff
LOG: [AArch64][SME] Add mova instructions
This patch adds the mova instruction to insert/extract an SVE vector
register to/from a ZA tile vector.
The preferred MOV aliases are also implemented.
Depends on D105572.
The reference can be found here:
https://developer.arm.com/documentation/ddi0602/2021-06
Reviewed By: david-arm, CarolineConcatto
Differential Revision: https://reviews.llvm.org/D105574
Added:
llvm/test/MC/AArch64/SME/mova-diagnostics.s
llvm/test/MC/AArch64/SME/mova.s
Modified:
llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
llvm/lib/Target/AArch64/SMEInstrFormats.td
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td b/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
index bddb5ce0899d..2ef3e9e80533 100644
--- a/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
+++ b/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
@@ -81,6 +81,13 @@ defm ST1_MXIPXX : sme_mem_st_ss<"st1">;
defm LDR_ZA : sme_fill<"ldr">;
defm STR_ZA : sme_spill<"str">;
+//===----------------------------------------------------------------------===//
+// Move instructions
+//===----------------------------------------------------------------------===//
+
+defm INSERT_MXIPZ : sme_vector_to_tile<"mova">;
+defm EXTRACT_ZPMXI : sme_tile_to_vector<"mova">;
+
//===----------------------------------------------------------------------===//
// Mode selection and state access instructions
//===----------------------------------------------------------------------===//
diff --git a/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp b/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
index 1a92786a4ab3..2f68dbcb078f 100644
--- a/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
+++ b/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
@@ -307,8 +307,19 @@ DecodeStatus AArch64Disassembler::getInstruction(MCInst &MI, uint64_t &Size,
case AArch64::LD1_MXIPXX_V_B:
case AArch64::ST1_MXIPXX_H_B:
case AArch64::ST1_MXIPXX_V_B:
+ case AArch64::INSERT_MXIPZ_H_B:
+ case AArch64::INSERT_MXIPZ_V_B:
+ // e.g.
+ // MOVA ZA0<HV>.B[<Ws>, <imm>], <Pg>/M, <Zn>.B
+ // ^ insert implicit 8-bit element tile
MI.insert(MI.begin(), MCOperand::createReg(AArch64::ZAB0));
break;
+ case AArch64::EXTRACT_ZPMXI_H_B:
+ case AArch64::EXTRACT_ZPMXI_V_B:
+ // MOVA <Zd>.B, <Pg>/M, ZA0<HV>.B[<Ws>, <imm>]
+ // ^ insert implicit 8-bit element tile
+ MI.insert(MI.begin()+2, MCOperand::createReg(AArch64::ZAB0));
+ break;
}
if (Result != MCDisassembler::Fail)
diff --git a/llvm/lib/Target/AArch64/SMEInstrFormats.td b/llvm/lib/Target/AArch64/SMEInstrFormats.td
index e18bccd09fed..6dee95edda5d 100644
--- a/llvm/lib/Target/AArch64/SMEInstrFormats.td
+++ b/llvm/lib/Target/AArch64/SMEInstrFormats.td
@@ -442,6 +442,217 @@ multiclass sme_fill<string opcodestr> {
opcodestr>;
}
+//===----------------------------------------------------------------------===//
+// Move instructions
+//===----------------------------------------------------------------------===//
+
+class sme_vector_to_tile_base<bit Q, bit V, bits<2> sz, dag outs, dag ins,
+ string mnemonic, string argstr>
+ : I<outs, ins, mnemonic, argstr, "", []>, Sched<[]> {
+ bits<2> Rv;
+ bits<3> Pg;
+ bits<5> Zn;
+ let Inst{31-24} = 0b11000000;
+ let Inst{23-22} = sz;
+ let Inst{21-17} = 0b00000;
+ let Inst{16} = Q;
+ let Inst{15} = V;
+ let Inst{14-13} = Rv;
+ let Inst{12-10} = Pg;
+ let Inst{9-5} = Zn;
+ let Inst{4} = 0b0;
+}
+
+class sme_vector_to_tile_inst<bits<2> sz, MatrixTileVectorOperand tile_ty,
+ bit is_col, Operand imm_ty, ZPRRegOp zpr_ty,
+ string mnemonic>
+ : sme_vector_to_tile_base<0b0, is_col, sz, (outs tile_ty:$ZAd),
+ (ins MatrixIndexGPR32Op12_15:$Rv, imm_ty:$imm, PPR3bAny:$Pg, zpr_ty:$Zn),
+ mnemonic, "\t$ZAd[$Rv, $imm], $Pg/m, $Zn">;
+
+class sme_vector_to_tile_inst_Q<MatrixTileVectorOperand tile_ty,
+ bit is_col, string mnemonic>
+ : sme_vector_to_tile_base<0b1, is_col, 0b11, (outs tile_ty:$ZAd),
+ (ins MatrixIndexGPR32Op12_15:$Rv, PPR3bAny:$Pg, ZPR128:$Zn),
+ mnemonic, "\t$ZAd[$Rv], $Pg/m, $Zn">;
+
+multiclass sme_vector_to_tile_aliases<Instruction inst,
+ MatrixTileVectorOperand tile_ty,
+ ZPRRegOp zpr_ty, Operand imm_ty> {
+ def : InstAlias<"mov\t$ZAd[$Rv, $imm], $Pg/m, $Zn",
+ (inst tile_ty:$ZAd, MatrixIndexGPR32Op12_15:$Rv, imm0_15:$imm, PPR3bAny:$Pg, zpr_ty:$Zn), 1>;
+}
+
+multiclass sme_vector_v_to_tile<string mnemonic, bit is_col> {
+ def _B : sme_vector_to_tile_inst<0b00, !if(is_col, TileVectorOpV8,
+ TileVectorOpH8),
+ is_col, imm0_15, ZPR8, mnemonic> {
+ bits<4> imm;
+ let Inst{3-0} = imm;
+ }
+ def _H : sme_vector_to_tile_inst<0b01, !if(is_col, TileVectorOpV16,
+ TileVectorOpH16),
+ is_col, imm0_7, ZPR16, mnemonic> {
+ bits<1> ZAd;
+ bits<3> imm;
+ let Inst{3} = ZAd;
+ let Inst{2-0} = imm;
+ }
+ def _S : sme_vector_to_tile_inst<0b10, !if(is_col, TileVectorOpV32,
+ TileVectorOpH32),
+ is_col, imm0_3, ZPR32, mnemonic> {
+ bits<2> ZAd;
+ bits<2> imm;
+ let Inst{3-2} = ZAd;
+ let Inst{1-0} = imm;
+ }
+ def _D : sme_vector_to_tile_inst<0b11, !if(is_col, TileVectorOpV64,
+ TileVectorOpH64),
+ is_col, imm0_1, ZPR64, mnemonic> {
+ bits<3> ZAd;
+ bits<1> imm;
+ let Inst{3-1} = ZAd;
+ let Inst{0} = imm;
+ }
+ def _Q : sme_vector_to_tile_inst_Q<!if(is_col, TileVectorOpV128,
+ TileVectorOpH128),
+ is_col, mnemonic> {
+ bits<4> ZAd;
+ bits<1> imm;
+ let Inst{3-0} = ZAd;
+ }
+
+ defm : sme_vector_to_tile_aliases<!cast<Instruction>(NAME # _B),
+ !if(is_col, TileVectorOpV8,
+ TileVectorOpH8),
+ ZPR8, imm0_15>;
+ defm : sme_vector_to_tile_aliases<!cast<Instruction>(NAME # _H),
+ !if(is_col, TileVectorOpV16,
+ TileVectorOpH16),
+ ZPR16, imm0_7>;
+ defm : sme_vector_to_tile_aliases<!cast<Instruction>(NAME # _S),
+ !if(is_col, TileVectorOpV32,
+ TileVectorOpH32),
+ ZPR32, imm0_3>;
+ defm : sme_vector_to_tile_aliases<!cast<Instruction>(NAME # _D),
+ !if(is_col, TileVectorOpV64,
+ TileVectorOpH64),
+ ZPR64, imm0_1>;
+
+ def : InstAlias<"mov\t$ZAd[$Rv], $Pg/m, $Zn",
+ (!cast<Instruction>(NAME # _Q) !if(is_col,
+ TileVectorOpV128,
+ TileVectorOpH128):$ZAd,
+ MatrixIndexGPR32Op12_15:$Rv,
+ PPR3bAny:$Pg, ZPR128:$Zn), 1>;
+}
+
+multiclass sme_vector_to_tile<string mnemonic> {
+ defm _H : sme_vector_v_to_tile<mnemonic, /*is_col=*/0b0>;
+ defm _V : sme_vector_v_to_tile<mnemonic, /*is_col=*/0b1>;
+}
+
+class sme_tile_to_vector_base<bit Q, bit V, bits<2> sz, dag outs, dag ins,
+ string mnemonic, string argstr>
+ : I<outs, ins, mnemonic, argstr, "", []>, Sched<[]> {
+ bits<2> Rv;
+ bits<3> Pg;
+ bits<5> Zd;
+ let Inst{31-24} = 0b11000000;
+ let Inst{23-22} = sz;
+ let Inst{21-17} = 0b00001;
+ let Inst{16} = Q;
+ let Inst{15} = V;
+ let Inst{14-13} = Rv;
+ let Inst{12-10} = Pg;
+ let Inst{9} = 0b0;
+ let Inst{4-0} = Zd;
+}
+
+class sme_tile_to_vector_inst<bits<2> sz, ZPRRegOp zpr_ty,
+ MatrixTileVectorOperand tile_ty,
+ bit is_col, Operand imm_ty, string mnemonic>
+ : sme_tile_to_vector_base<0b0, is_col, sz, (outs zpr_ty:$Zd),
+ (ins PPR3bAny:$Pg, tile_ty:$ZAn, MatrixIndexGPR32Op12_15:$Rv, imm_ty:$imm),
+ mnemonic, "\t$Zd, $Pg/m, $ZAn[$Rv, $imm]">;
+
+class sme_tile_to_vector_inst_Q<MatrixTileVectorOperand tile_ty,
+ bit is_col, string mnemonic>
+ : sme_tile_to_vector_base<0b1, is_col, 0b11, (outs ZPR128:$Zd),
+ (ins PPR3bAny:$Pg, tile_ty:$ZAn, MatrixIndexGPR32Op12_15:$Rv),
+ mnemonic, "\t$Zd, $Pg/m, $ZAn[$Rv]">;
+
+multiclass sme_tile_to_vector_aliases<Instruction inst, ZPRRegOp zpr_ty,
+ MatrixTileVectorOperand tile_ty,
+ Operand imm_ty > {
+ def : InstAlias<"mov\t$Zd, $Pg/m, $ZAn[$Rv, $imm]",
+ (inst zpr_ty:$Zd, PPR3bAny:$Pg, tile_ty:$ZAn, MatrixIndexGPR32Op12_15:$Rv, imm_ty:$imm), 1>;
+}
+
+multiclass sme_tile_to_vector_v<string mnemonic, bit is_col> {
+ def _B : sme_tile_to_vector_inst<0b00, ZPR8, !if(is_col, TileVectorOpV8,
+ TileVectorOpH8),
+ is_col, imm0_15, mnemonic> {
+ bits<4> imm;
+ let Inst{8-5} = imm;
+ }
+ def _H : sme_tile_to_vector_inst<0b01, ZPR16, !if(is_col, TileVectorOpV16,
+ TileVectorOpH16),
+ is_col, imm0_7, mnemonic> {
+ bits<1> ZAn;
+ bits<3> imm;
+ let Inst{8} = ZAn;
+ let Inst{7-5} = imm;
+ }
+ def _S : sme_tile_to_vector_inst<0b10, ZPR32, !if(is_col, TileVectorOpV32,
+ TileVectorOpH32),
+ is_col, imm0_3, mnemonic> {
+ bits<2> ZAn;
+ bits<2> imm;
+ let Inst{8-7} = ZAn;
+ let Inst{6-5} = imm;
+ }
+ def _D : sme_tile_to_vector_inst<0b11, ZPR64, !if(is_col, TileVectorOpV64,
+ TileVectorOpH64),
+ is_col, imm0_1, mnemonic> {
+ bits<3> ZAn;
+ bits<1> imm;
+ let Inst{8-6} = ZAn;
+ let Inst{5} = imm;
+ }
+ def _Q : sme_tile_to_vector_inst_Q<!if(is_col, TileVectorOpV128,
+ TileVectorOpH128),
+ is_col, mnemonic> {
+ bits<4> ZAn;
+ let Inst{8-5} = ZAn;
+ }
+
+ defm : sme_tile_to_vector_aliases<!cast<Instruction>(NAME # _B), ZPR8,
+ !if(is_col, TileVectorOpV8,
+ TileVectorOpH8), imm0_15>;
+ defm : sme_tile_to_vector_aliases<!cast<Instruction>(NAME # _H), ZPR16,
+ !if(is_col, TileVectorOpV16,
+ TileVectorOpH16), imm0_7>;
+ defm : sme_tile_to_vector_aliases<!cast<Instruction>(NAME # _S), ZPR32,
+ !if(is_col, TileVectorOpV32,
+ TileVectorOpH32), imm0_3>;
+ defm : sme_tile_to_vector_aliases<!cast<Instruction>(NAME # _D), ZPR64,
+ !if(is_col, TileVectorOpV64,
+ TileVectorOpH64), imm0_1>;
+
+ def : InstAlias<"mov\t$Zd, $Pg/m, $ZAn[$Rv]",
+ (!cast<Instruction>(NAME # _Q) ZPR128:$Zd, PPR3bAny:$Pg,
+ !if(is_col,
+ TileVectorOpV128,
+ TileVectorOpH128):$ZAn,
+ MatrixIndexGPR32Op12_15:$Rv), 1>;
+}
+
+multiclass sme_tile_to_vector<string mnemonic> {
+ defm _H : sme_tile_to_vector_v<mnemonic, /*is_col=*/0b0>;
+ defm _V : sme_tile_to_vector_v<mnemonic, /*is_col=*/0b1>;
+}
+
//===----------------------------------------------------------------------===//
// SVE2 Instructions
//===----------------------------------------------------------------------===//
diff --git a/llvm/test/MC/AArch64/SME/mova-diagnostics.s b/llvm/test/MC/AArch64/SME/mova-diagnostics.s
new file mode 100644
index 000000000000..31f177e35bba
--- /dev/null
+++ b/llvm/test/MC/AArch64/SME/mova-diagnostics.s
@@ -0,0 +1,214 @@
+// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme 2>&1 < %s| FileCheck %s
+
+// ------------------------------------------------------------------------- //
+// Invalid predicate (expected: p0-p7)
+
+mova z0.b, p8/m, za0h.b[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)
+// CHECK-NEXT: mova z0.b, p8/m, za0h.b[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+// ------------------------------------------------------------------------- //
+// Invalid tile
+
+// tile-to-vector
+
+mova z0.b, p0/m, za1h.b[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list
+// CHECK-NEXT: mova z0.b, p0/m, za1h.b[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.h, p0/m, za2h.h[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list
+// CHECK-NEXT: mova z0.h, p0/m, za2h.h[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.s, p0/m, za4h.s[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list
+// CHECK-NEXT: mova z0.s, p0/m, za4h.s[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.d, p0/m, za8h.d[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list
+// CHECK-NEXT: mova z0.d, p0/m, za8h.d[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.q, p0/m, za16h.q[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list
+// CHECK-NEXT: mova z0.q, p0/m, za16h.q[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+// vector-to-tile
+
+mova za1h.b[w12, #0], p0/m, z0.b
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list
+// CHECK-NEXT: mova za1h.b[w12, #0], p0/m, z0.b
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za2h.h[w12, #0], p0/m, z0.h
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list
+// CHECK-NEXT: mova za2h.h[w12, #0], p0/m, z0.h
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za4h.s[w12, #0], p0/m, z0.s
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list
+// CHECK-NEXT: mova za4h.s[w12, #0], p0/m, z0.s
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za8h.d[w12, #0], p0/m, z0.d
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list
+// CHECK-NEXT: mova za8h.d[w12, #0], p0/m, z0.d
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za16h.q[w12, #0], p0/m, z0.q
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list
+// CHECK-NEXT: mova za16h.q[w12, #0], p0/m, z0.q
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+// ------------------------------------------------------------------------- //
+// Invalid matrix operand
+
+// tile-to-vector
+
+mova z0.b, p0/m, za0h.h[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za0h.b or za0v.b
+// CHECK-NEXT: mova z0.b, p0/m, za0h.h[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.h, p0/m, za[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-1]h.h or za[0-1]v.h
+// CHECK-NEXT: mova z0.h, p0/m, za[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.s, p0/m, za2.s[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3]h.s or za[0-3]v.s
+// CHECK-NEXT: mova z0.s, p0/m, za2.s[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.d, p0/m, za2v.s[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-7]h.d or za[0-7]v.d
+// CHECK-NEXT: mova z0.d, p0/m, za2v.s[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.q, p0/m, za0h.b[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-15]h.q or za[0-15]v.q
+// CHECK-NEXT: mova z0.q, p0/m, za0h.b[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+// vector-to-tile, only one test here since the intended instruction variant is
+// ambiguous when failing to match on the first operand.
+
+mova za[w12, #0], p0/m, z0.b
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-7]h.d or za[0-7]v.d
+// CHECK-NEXT: mova za[w12, #0], p0/m, z0.b
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+// ------------------------------------------------------------------------- //
+// Invalid vector select register (expected: w12-w15)
+
+mova z0.h, p0/m, za0h.h[w11, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// CHECK-NEXT: mova z0.h, p0/m, za0h.h[w11, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.s, p0/m, za0h.s[w16, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// CHECK-NEXT: mova z0.s, p0/m, za0h.s[w16, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za0h.d[w11, #0], p0/m, z0.d
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// CHECK-NEXT: mova za0h.d[w11, #0], p0/m, z0.d
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za0h.q[w16, #0], p0/m, z0.q
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// CHECK-NEXT: mova za0h.q[w16, #0], p0/m, z0.q
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+// ------------------------------------------------------------------------- //
+// Invalid vector select offset
+//
+// expected: .b => 0-15, .h => 0-7, .s => 0-3, .d => 0-1, .q => NONE
+
+// tile-to-vector
+
+mova z0.b, p0/m, za0h.b[w12, #16]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 15].
+// CHECK-NEXT: mova z0.b, p0/m, za0h.b[w12, #16]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.h, p0/m, za0h.h[w12, #8]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 7].
+// CHECK-NEXT: mova z0.h, p0/m, za0h.h[w12, #8]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.s, p0/m, za0h.s[w12, #4]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 3].
+// CHECK-NEXT: mova z0.s, p0/m, za0h.s[w12, #4]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.d, p0/m, za0h.d[w12, #2]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 1].
+// CHECK-NEXT: mova z0.d, p0/m, za0h.d[w12, #2]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova z0.q, p0/m, za0h.q[w12, #0]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// CHECK-NEXT: mova z0.q, p0/m, za0h.q[w12, #0]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+// vector-to-tile
+
+mova za0h.b[w12, #16], p0/m, z0.b
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 15].
+// CHECK-NEXT: mova za0h.b[w12, #16], p0/m, z0.b
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za0h.h[w12, #8], p0/m, z0.h
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 7].
+// CHECK-NEXT: mova za0h.h[w12, #8], p0/m, z0.h
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za0h.s[w12, #4], p0/m, z0.s
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 3].
+// CHECK-NEXT: mova za0h.s[w12, #4], p0/m, z0.s
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za0h.d[w12, #2], p0/m, z0.d
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 1].
+// CHECK-NEXT: mova za0h.d[w12, #2], p0/m, z0.d
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za0h.q[w12, #0], p0/m, z0.q
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// CHECK-NEXT: mova za0h.q[w12, #0], p0/m, z0.q
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+// ------------------------------------------------------------------------- //
+// Invalid ZPR element width
+
+mova za0h.b[w12, #0], p0/m, z0.h
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
+// CHECK-NEXT: mova za0h.b[w12, #0], p0/m, z0.h
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za0h.h[w12, #0], p0/m, z0.s
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
+// CHECK-NEXT: mova za0h.h[w12, #0], p0/m, z0.s
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za0h.s[w12, #0], p0/m, z0.d
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
+// CHECK-NEXT: mova za0h.s[w12, #0], p0/m, z0.d
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za0h.d[w12, #0], p0/m, z0.q
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
+// CHECK-NEXT: mova za0h.d[w12, #0], p0/m, z0.q
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+mova za0h.q[w12], p0/m, z0.b
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
+// CHECK-NEXT: mova za0h.q[w12], p0/m, z0.b
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
diff --git a/llvm/test/MC/AArch64/SME/mova.s b/llvm/test/MC/AArch64/SME/mova.s
new file mode 100644
index 000000000000..4f736bfefc8a
--- /dev/null
+++ b/llvm/test/MC/AArch64/SME/mova.s
@@ -0,0 +1,2993 @@
+// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme < %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=+sme < %s \
+// RUN: | llvm-objdump -d --mattr=+sme - | FileCheck %s --check-prefix=CHECK-INST
+// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme < %s \
+// RUN: | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN
+// Disassemble encoding and check the re-encoding (-show-encoding) matches.
+// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme < %s \
+// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \
+// RUN: | llvm-mc -triple=aarch64 -mattr=+sme -disassemble -show-encoding \
+// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+
+// --------------------------------------------------------------------------//
+// Extract, tile to vector, horizontal, 8-bit
+
+mova z0.b, p0/m, za0h.b[w12, #0]
+// CHECK-INST: mov z0.b, p0/m, za0h.b[w12, #0]
+// CHECK-ENCODING: [0x00,0x00,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 02 c0 <unknown>
+
+mova z21.b, p5/m, za0h.b[w14, #10]
+// CHECK-INST: mov z21.b, p5/m, za0h.b[w14, #10]
+// CHECK-ENCODING: [0x55,0x55,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 55 02 c0 <unknown>
+
+mova z23.b, p3/m, za0h.b[w15, #13]
+// CHECK-INST: mov z23.b, p3/m, za0h.b[w15, #13]
+// CHECK-ENCODING: [0xb7,0x6d,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 6d 02 c0 <unknown>
+
+mova z31.b, p7/m, za0h.b[w15, #15]
+// CHECK-INST: mov z31.b, p7/m, za0h.b[w15, #15]
+// CHECK-ENCODING: [0xff,0x7d,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff 7d 02 c0 <unknown>
+
+mova z5.b, p3/m, za0h.b[w12, #1]
+// CHECK-INST: mov z5.b, p3/m, za0h.b[w12, #1]
+// CHECK-ENCODING: [0x25,0x0c,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0c 02 c0 <unknown>
+
+mova z1.b, p1/m, za0h.b[w12, #1]
+// CHECK-INST: mov z1.b, p1/m, za0h.b[w12, #1]
+// CHECK-ENCODING: [0x21,0x04,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 02 c0 <unknown>
+
+mova z24.b, p5/m, za0h.b[w14, #3]
+// CHECK-INST: mov z24.b, p5/m, za0h.b[w14, #3]
+// CHECK-ENCODING: [0x78,0x54,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 54 02 c0 <unknown>
+
+mova z0.b, p6/m, za0h.b[w12, #12]
+// CHECK-INST: mov z0.b, p6/m, za0h.b[w12, #12]
+// CHECK-ENCODING: [0x80,0x19,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 02 c0 <unknown>
+
+mova z17.b, p2/m, za0h.b[w14, #1]
+// CHECK-INST: mov z17.b, p2/m, za0h.b[w14, #1]
+// CHECK-ENCODING: [0x31,0x48,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 48 02 c0 <unknown>
+
+mova z29.b, p2/m, za0h.b[w12, #6]
+// CHECK-INST: mov z29.b, p2/m, za0h.b[w12, #6]
+// CHECK-ENCODING: [0xdd,0x08,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 08 02 c0 <unknown>
+
+mova z2.b, p5/m, za0h.b[w15, #9]
+// CHECK-INST: mov z2.b, p5/m, za0h.b[w15, #9]
+// CHECK-ENCODING: [0x22,0x75,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 02 c0 <unknown>
+
+mova z7.b, p2/m, za0h.b[w13, #12]
+// CHECK-INST: mov z7.b, p2/m, za0h.b[w13, #12]
+// CHECK-ENCODING: [0x87,0x29,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 02 c0 <unknown>
+
+// Aliases
+
+mov z0.b, p0/m, za0h.b[w12, #0]
+// CHECK-INST: mov z0.b, p0/m, za0h.b[w12, #0]
+// CHECK-ENCODING: [0x00,0x00,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 02 c0 <unknown>
+
+mov z21.b, p5/m, za0h.b[w14, #10]
+// CHECK-INST: mov z21.b, p5/m, za0h.b[w14, #10]
+// CHECK-ENCODING: [0x55,0x55,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 55 02 c0 <unknown>
+
+mov z23.b, p3/m, za0h.b[w15, #13]
+// CHECK-INST: mov z23.b, p3/m, za0h.b[w15, #13]
+// CHECK-ENCODING: [0xb7,0x6d,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 6d 02 c0 <unknown>
+
+mov z31.b, p7/m, za0h.b[w15, #15]
+// CHECK-INST: mov z31.b, p7/m, za0h.b[w15, #15]
+// CHECK-ENCODING: [0xff,0x7d,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff 7d 02 c0 <unknown>
+
+mov z5.b, p3/m, za0h.b[w12, #1]
+// CHECK-INST: mov z5.b, p3/m, za0h.b[w12, #1]
+// CHECK-ENCODING: [0x25,0x0c,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0c 02 c0 <unknown>
+
+mov z1.b, p1/m, za0h.b[w12, #1]
+// CHECK-INST: mov z1.b, p1/m, za0h.b[w12, #1]
+// CHECK-ENCODING: [0x21,0x04,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 02 c0 <unknown>
+
+mov z24.b, p5/m, za0h.b[w14, #3]
+// CHECK-INST: mov z24.b, p5/m, za0h.b[w14, #3]
+// CHECK-ENCODING: [0x78,0x54,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 54 02 c0 <unknown>
+
+mov z0.b, p6/m, za0h.b[w12, #12]
+// CHECK-INST: mov z0.b, p6/m, za0h.b[w12, #12]
+// CHECK-ENCODING: [0x80,0x19,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 02 c0 <unknown>
+
+mov z17.b, p2/m, za0h.b[w14, #1]
+// CHECK-INST: mov z17.b, p2/m, za0h.b[w14, #1]
+// CHECK-ENCODING: [0x31,0x48,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 48 02 c0 <unknown>
+
+mov z29.b, p2/m, za0h.b[w12, #6]
+// CHECK-INST: mov z29.b, p2/m, za0h.b[w12, #6]
+// CHECK-ENCODING: [0xdd,0x08,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 08 02 c0 <unknown>
+
+mov z2.b, p5/m, za0h.b[w15, #9]
+// CHECK-INST: mov z2.b, p5/m, za0h.b[w15, #9]
+// CHECK-ENCODING: [0x22,0x75,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 02 c0 <unknown>
+
+mov z7.b, p2/m, za0h.b[w13, #12]
+// CHECK-INST: mov z7.b, p2/m, za0h.b[w13, #12]
+// CHECK-ENCODING: [0x87,0x29,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 02 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Extract, tile to vector, vertical, 8-bit
+
+mova z0.b, p0/m, za0v.b[w12, #0]
+// CHECK-INST: mov z0.b, p0/m, za0v.b[w12, #0]
+// CHECK-ENCODING: [0x00,0x80,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 02 c0 <unknown>
+
+mova z21.b, p5/m, za0v.b[w14, #10]
+// CHECK-INST: mov z21.b, p5/m, za0v.b[w14, #10]
+// CHECK-ENCODING: [0x55,0xd5,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 d5 02 c0 <unknown>
+
+mova z23.b, p3/m, za0v.b[w15, #13]
+// CHECK-INST: mov z23.b, p3/m, za0v.b[w15, #13]
+// CHECK-ENCODING: [0xb7,0xed,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 ed 02 c0 <unknown>
+
+mova z31.b, p7/m, za0v.b[w15, #15]
+// CHECK-INST: mov z31.b, p7/m, za0v.b[w15, #15]
+// CHECK-ENCODING: [0xff,0xfd,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff fd 02 c0 <unknown>
+
+mova z5.b, p3/m, za0v.b[w12, #1]
+// CHECK-INST: mov z5.b, p3/m, za0v.b[w12, #1]
+// CHECK-ENCODING: [0x25,0x8c,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8c 02 c0 <unknown>
+
+mova z1.b, p1/m, za0v.b[w12, #1]
+// CHECK-INST: mov z1.b, p1/m, za0v.b[w12, #1]
+// CHECK-ENCODING: [0x21,0x84,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 02 c0 <unknown>
+
+mova z24.b, p5/m, za0v.b[w14, #3]
+// CHECK-INST: mov z24.b, p5/m, za0v.b[w14, #3]
+// CHECK-ENCODING: [0x78,0xd4,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 d4 02 c0 <unknown>
+
+mova z0.b, p6/m, za0v.b[w12, #12]
+// CHECK-INST: mov z0.b, p6/m, za0v.b[w12, #12]
+// CHECK-ENCODING: [0x80,0x99,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 02 c0 <unknown>
+
+mova z17.b, p2/m, za0v.b[w14, #1]
+// CHECK-INST: mov z17.b, p2/m, za0v.b[w14, #1]
+// CHECK-ENCODING: [0x31,0xc8,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 c8 02 c0 <unknown>
+
+mova z29.b, p2/m, za0v.b[w12, #6]
+// CHECK-INST: mov z29.b, p2/m, za0v.b[w12, #6]
+// CHECK-ENCODING: [0xdd,0x88,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 88 02 c0 <unknown>
+
+mova z2.b, p5/m, za0v.b[w15, #9]
+// CHECK-INST: mov z2.b, p5/m, za0v.b[w15, #9]
+// CHECK-ENCODING: [0x22,0xf5,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 02 c0 <unknown>
+
+mova z7.b, p2/m, za0v.b[w13, #12]
+// CHECK-INST: mov z7.b, p2/m, za0v.b[w13, #12]
+// CHECK-ENCODING: [0x87,0xa9,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 02 c0 <unknown>
+
+// Aliases
+
+mov z0.b, p0/m, za0v.b[w12, #0]
+// CHECK-INST: mov z0.b, p0/m, za0v.b[w12, #0]
+// CHECK-ENCODING: [0x00,0x80,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 02 c0 <unknown>
+
+mov z21.b, p5/m, za0v.b[w14, #10]
+// CHECK-INST: mov z21.b, p5/m, za0v.b[w14, #10]
+// CHECK-ENCODING: [0x55,0xd5,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 d5 02 c0 <unknown>
+
+mov z23.b, p3/m, za0v.b[w15, #13]
+// CHECK-INST: mov z23.b, p3/m, za0v.b[w15, #13]
+// CHECK-ENCODING: [0xb7,0xed,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 ed 02 c0 <unknown>
+
+mov z31.b, p7/m, za0v.b[w15, #15]
+// CHECK-INST: mov z31.b, p7/m, za0v.b[w15, #15]
+// CHECK-ENCODING: [0xff,0xfd,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff fd 02 c0 <unknown>
+
+mov z5.b, p3/m, za0v.b[w12, #1]
+// CHECK-INST: mov z5.b, p3/m, za0v.b[w12, #1]
+// CHECK-ENCODING: [0x25,0x8c,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8c 02 c0 <unknown>
+
+mov z1.b, p1/m, za0v.b[w12, #1]
+// CHECK-INST: mov z1.b, p1/m, za0v.b[w12, #1]
+// CHECK-ENCODING: [0x21,0x84,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 02 c0 <unknown>
+
+mov z24.b, p5/m, za0v.b[w14, #3]
+// CHECK-INST: mov z24.b, p5/m, za0v.b[w14, #3]
+// CHECK-ENCODING: [0x78,0xd4,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 d4 02 c0 <unknown>
+
+mov z0.b, p6/m, za0v.b[w12, #12]
+// CHECK-INST: mov z0.b, p6/m, za0v.b[w12, #12]
+// CHECK-ENCODING: [0x80,0x99,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 02 c0 <unknown>
+
+mov z17.b, p2/m, za0v.b[w14, #1]
+// CHECK-INST: mov z17.b, p2/m, za0v.b[w14, #1]
+// CHECK-ENCODING: [0x31,0xc8,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 c8 02 c0 <unknown>
+
+mov z29.b, p2/m, za0v.b[w12, #6]
+// CHECK-INST: mov z29.b, p2/m, za0v.b[w12, #6]
+// CHECK-ENCODING: [0xdd,0x88,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 88 02 c0 <unknown>
+
+mov z2.b, p5/m, za0v.b[w15, #9]
+// CHECK-INST: mov z2.b, p5/m, za0v.b[w15, #9]
+// CHECK-ENCODING: [0x22,0xf5,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 02 c0 <unknown>
+
+mov z7.b, p2/m, za0v.b[w13, #12]
+// CHECK-INST: mov z7.b, p2/m, za0v.b[w13, #12]
+// CHECK-ENCODING: [0x87,0xa9,0x02,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 02 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Extract, tile to vector, horizontal, 16-bit
+
+mova z0.h, p0/m, za0h.h[w12, #0]
+// CHECK-INST: mov z0.h, p0/m, za0h.h[w12, #0]
+// CHECK-ENCODING: [0x00,0x00,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 42 c0 <unknown>
+
+mova z21.h, p5/m, za1h.h[w14, #2]
+// CHECK-INST: mov z21.h, p5/m, za1h.h[w14, #2]
+// CHECK-ENCODING: [0x55,0x55,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 55 42 c0 <unknown>
+
+mova z23.h, p3/m, za1h.h[w15, #5]
+// CHECK-INST: mov z23.h, p3/m, za1h.h[w15, #5]
+// CHECK-ENCODING: [0xb7,0x6d,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 6d 42 c0 <unknown>
+
+mova z31.h, p7/m, za1h.h[w15, #7]
+// CHECK-INST: mov z31.h, p7/m, za1h.h[w15, #7]
+// CHECK-ENCODING: [0xff,0x7d,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff 7d 42 c0 <unknown>
+
+mova z5.h, p3/m, za0h.h[w12, #1]
+// CHECK-INST: mov z5.h, p3/m, za0h.h[w12, #1]
+// CHECK-ENCODING: [0x25,0x0c,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0c 42 c0 <unknown>
+
+mova z1.h, p1/m, za0h.h[w12, #1]
+// CHECK-INST: mov z1.h, p1/m, za0h.h[w12, #1]
+// CHECK-ENCODING: [0x21,0x04,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 42 c0 <unknown>
+
+mova z24.h, p5/m, za0h.h[w14, #3]
+// CHECK-INST: mov z24.h, p5/m, za0h.h[w14, #3]
+// CHECK-ENCODING: [0x78,0x54,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 54 42 c0 <unknown>
+
+mova z0.h, p6/m, za1h.h[w12, #4]
+// CHECK-INST: mov z0.h, p6/m, za1h.h[w12, #4]
+// CHECK-ENCODING: [0x80,0x19,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 42 c0 <unknown>
+
+mova z17.h, p2/m, za0h.h[w14, #1]
+// CHECK-INST: mov z17.h, p2/m, za0h.h[w14, #1]
+// CHECK-ENCODING: [0x31,0x48,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 48 42 c0 <unknown>
+
+mova z29.h, p2/m, za0h.h[w12, #6]
+// CHECK-INST: mov z29.h, p2/m, za0h.h[w12, #6]
+// CHECK-ENCODING: [0xdd,0x08,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 08 42 c0 <unknown>
+
+mova z2.h, p5/m, za1h.h[w15, #1]
+// CHECK-INST: mov z2.h, p5/m, za1h.h[w15, #1]
+// CHECK-ENCODING: [0x22,0x75,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 42 c0 <unknown>
+
+mova z7.h, p2/m, za1h.h[w13, #4]
+// CHECK-INST: mov z7.h, p2/m, za1h.h[w13, #4]
+// CHECK-ENCODING: [0x87,0x29,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 42 c0 <unknown>
+
+// Aliases
+
+mov z0.h, p0/m, za0h.h[w12, #0]
+// CHECK-INST: mov z0.h, p0/m, za0h.h[w12, #0]
+// CHECK-ENCODING: [0x00,0x00,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 42 c0 <unknown>
+
+mov z21.h, p5/m, za1h.h[w14, #2]
+// CHECK-INST: mov z21.h, p5/m, za1h.h[w14, #2]
+// CHECK-ENCODING: [0x55,0x55,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 55 42 c0 <unknown>
+
+mov z23.h, p3/m, za1h.h[w15, #5]
+// CHECK-INST: mov z23.h, p3/m, za1h.h[w15, #5]
+// CHECK-ENCODING: [0xb7,0x6d,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 6d 42 c0 <unknown>
+
+mov z31.h, p7/m, za1h.h[w15, #7]
+// CHECK-INST: mov z31.h, p7/m, za1h.h[w15, #7]
+// CHECK-ENCODING: [0xff,0x7d,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff 7d 42 c0 <unknown>
+
+mov z5.h, p3/m, za0h.h[w12, #1]
+// CHECK-INST: mov z5.h, p3/m, za0h.h[w12, #1]
+// CHECK-ENCODING: [0x25,0x0c,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0c 42 c0 <unknown>
+
+mov z1.h, p1/m, za0h.h[w12, #1]
+// CHECK-INST: mov z1.h, p1/m, za0h.h[w12, #1]
+// CHECK-ENCODING: [0x21,0x04,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 42 c0 <unknown>
+
+mov z24.h, p5/m, za0h.h[w14, #3]
+// CHECK-INST: mov z24.h, p5/m, za0h.h[w14, #3]
+// CHECK-ENCODING: [0x78,0x54,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 54 42 c0 <unknown>
+
+mov z0.h, p6/m, za1h.h[w12, #4]
+// CHECK-INST: mov z0.h, p6/m, za1h.h[w12, #4]
+// CHECK-ENCODING: [0x80,0x19,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 42 c0 <unknown>
+
+mov z17.h, p2/m, za0h.h[w14, #1]
+// CHECK-INST: mov z17.h, p2/m, za0h.h[w14, #1]
+// CHECK-ENCODING: [0x31,0x48,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 48 42 c0 <unknown>
+
+mov z29.h, p2/m, za0h.h[w12, #6]
+// CHECK-INST: mov z29.h, p2/m, za0h.h[w12, #6]
+// CHECK-ENCODING: [0xdd,0x08,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 08 42 c0 <unknown>
+
+mov z2.h, p5/m, za1h.h[w15, #1]
+// CHECK-INST: mov z2.h, p5/m, za1h.h[w15, #1]
+// CHECK-ENCODING: [0x22,0x75,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 42 c0 <unknown>
+
+mov z7.h, p2/m, za1h.h[w13, #4]
+// CHECK-INST: mov z7.h, p2/m, za1h.h[w13, #4]
+// CHECK-ENCODING: [0x87,0x29,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 42 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Extract, tile to vector, vertical, 16-bit
+
+mova z0.h, p0/m, za0v.h[w12, #0]
+// CHECK-INST: mov z0.h, p0/m, za0v.h[w12, #0]
+// CHECK-ENCODING: [0x00,0x80,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 42 c0 <unknown>
+
+mova z21.h, p5/m, za1v.h[w14, #2]
+// CHECK-INST: mov z21.h, p5/m, za1v.h[w14, #2]
+// CHECK-ENCODING: [0x55,0xd5,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 d5 42 c0 <unknown>
+
+mova z23.h, p3/m, za1v.h[w15, #5]
+// CHECK-INST: mov z23.h, p3/m, za1v.h[w15, #5]
+// CHECK-ENCODING: [0xb7,0xed,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 ed 42 c0 <unknown>
+
+mova z31.h, p7/m, za1v.h[w15, #7]
+// CHECK-INST: mov z31.h, p7/m, za1v.h[w15, #7]
+// CHECK-ENCODING: [0xff,0xfd,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff fd 42 c0 <unknown>
+
+mova z5.h, p3/m, za0v.h[w12, #1]
+// CHECK-INST: mov z5.h, p3/m, za0v.h[w12, #1]
+// CHECK-ENCODING: [0x25,0x8c,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8c 42 c0 <unknown>
+
+mova z1.h, p1/m, za0v.h[w12, #1]
+// CHECK-INST: mov z1.h, p1/m, za0v.h[w12, #1]
+// CHECK-ENCODING: [0x21,0x84,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 42 c0 <unknown>
+
+mova z24.h, p5/m, za0v.h[w14, #3]
+// CHECK-INST: mov z24.h, p5/m, za0v.h[w14, #3]
+// CHECK-ENCODING: [0x78,0xd4,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 d4 42 c0 <unknown>
+
+mova z0.h, p6/m, za1v.h[w12, #4]
+// CHECK-INST: mov z0.h, p6/m, za1v.h[w12, #4]
+// CHECK-ENCODING: [0x80,0x99,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 42 c0 <unknown>
+
+mova z17.h, p2/m, za0v.h[w14, #1]
+// CHECK-INST: mov z17.h, p2/m, za0v.h[w14, #1]
+// CHECK-ENCODING: [0x31,0xc8,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 c8 42 c0 <unknown>
+
+mova z29.h, p2/m, za0v.h[w12, #6]
+// CHECK-INST: mov z29.h, p2/m, za0v.h[w12, #6]
+// CHECK-ENCODING: [0xdd,0x88,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 88 42 c0 <unknown>
+
+mova z2.h, p5/m, za1v.h[w15, #1]
+// CHECK-INST: mov z2.h, p5/m, za1v.h[w15, #1]
+// CHECK-ENCODING: [0x22,0xf5,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 42 c0 <unknown>
+
+mova z7.h, p2/m, za1v.h[w13, #4]
+// CHECK-INST: mov z7.h, p2/m, za1v.h[w13, #4]
+// CHECK-ENCODING: [0x87,0xa9,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 42 c0 <unknown>
+
+// Aliases
+
+mov z0.h, p0/m, za0v.h[w12, #0]
+// CHECK-INST: mov z0.h, p0/m, za0v.h[w12, #0]
+// CHECK-ENCODING: [0x00,0x80,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 42 c0 <unknown>
+
+mov z21.h, p5/m, za1v.h[w14, #2]
+// CHECK-INST: mov z21.h, p5/m, za1v.h[w14, #2]
+// CHECK-ENCODING: [0x55,0xd5,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 d5 42 c0 <unknown>
+
+mov z23.h, p3/m, za1v.h[w15, #5]
+// CHECK-INST: mov z23.h, p3/m, za1v.h[w15, #5]
+// CHECK-ENCODING: [0xb7,0xed,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 ed 42 c0 <unknown>
+
+mov z31.h, p7/m, za1v.h[w15, #7]
+// CHECK-INST: mov z31.h, p7/m, za1v.h[w15, #7]
+// CHECK-ENCODING: [0xff,0xfd,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff fd 42 c0 <unknown>
+
+mov z5.h, p3/m, za0v.h[w12, #1]
+// CHECK-INST: mov z5.h, p3/m, za0v.h[w12, #1]
+// CHECK-ENCODING: [0x25,0x8c,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8c 42 c0 <unknown>
+
+mov z1.h, p1/m, za0v.h[w12, #1]
+// CHECK-INST: mov z1.h, p1/m, za0v.h[w12, #1]
+// CHECK-ENCODING: [0x21,0x84,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 42 c0 <unknown>
+
+mov z24.h, p5/m, za0v.h[w14, #3]
+// CHECK-INST: mov z24.h, p5/m, za0v.h[w14, #3]
+// CHECK-ENCODING: [0x78,0xd4,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 d4 42 c0 <unknown>
+
+mov z0.h, p6/m, za1v.h[w12, #4]
+// CHECK-INST: mov z0.h, p6/m, za1v.h[w12, #4]
+// CHECK-ENCODING: [0x80,0x99,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 42 c0 <unknown>
+
+mov z17.h, p2/m, za0v.h[w14, #1]
+// CHECK-INST: mov z17.h, p2/m, za0v.h[w14, #1]
+// CHECK-ENCODING: [0x31,0xc8,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 c8 42 c0 <unknown>
+
+mov z29.h, p2/m, za0v.h[w12, #6]
+// CHECK-INST: mov z29.h, p2/m, za0v.h[w12, #6]
+// CHECK-ENCODING: [0xdd,0x88,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 88 42 c0 <unknown>
+
+mov z2.h, p5/m, za1v.h[w15, #1]
+// CHECK-INST: mov z2.h, p5/m, za1v.h[w15, #1]
+// CHECK-ENCODING: [0x22,0xf5,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 42 c0 <unknown>
+
+mov z7.h, p2/m, za1v.h[w13, #4]
+// CHECK-INST: mov z7.h, p2/m, za1v.h[w13, #4]
+// CHECK-ENCODING: [0x87,0xa9,0x42,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 42 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Extract, tile to vector, horizontal, 32-bit
+
+mova z0.s, p0/m, za0h.s[w12, #0]
+// CHECK-INST: mov z0.s, p0/m, za0h.s[w12, #0]
+// CHECK-ENCODING: [0x00,0x00,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 82 c0 <unknown>
+
+mova z21.s, p5/m, za2h.s[w14, #2]
+// CHECK-INST: mov z21.s, p5/m, za2h.s[w14, #2]
+// CHECK-ENCODING: [0x55,0x55,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 55 82 c0 <unknown>
+
+mova z23.s, p3/m, za3h.s[w15, #1]
+// CHECK-INST: mov z23.s, p3/m, za3h.s[w15, #1]
+// CHECK-ENCODING: [0xb7,0x6d,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 6d 82 c0 <unknown>
+
+mova z31.s, p7/m, za3h.s[w15, #3]
+// CHECK-INST: mov z31.s, p7/m, za3h.s[w15, #3]
+// CHECK-ENCODING: [0xff,0x7d,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff 7d 82 c0 <unknown>
+
+mova z5.s, p3/m, za0h.s[w12, #1]
+// CHECK-INST: mov z5.s, p3/m, za0h.s[w12, #1]
+// CHECK-ENCODING: [0x25,0x0c,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0c 82 c0 <unknown>
+
+mova z1.s, p1/m, za0h.s[w12, #1]
+// CHECK-INST: mov z1.s, p1/m, za0h.s[w12, #1]
+// CHECK-ENCODING: [0x21,0x04,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 82 c0 <unknown>
+
+mova z24.s, p5/m, za0h.s[w14, #3]
+// CHECK-INST: mov z24.s, p5/m, za0h.s[w14, #3]
+// CHECK-ENCODING: [0x78,0x54,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 54 82 c0 <unknown>
+
+mova z0.s, p6/m, za3h.s[w12, #0]
+// CHECK-INST: mov z0.s, p6/m, za3h.s[w12, #0]
+// CHECK-ENCODING: [0x80,0x19,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 82 c0 <unknown>
+
+mova z17.s, p2/m, za0h.s[w14, #1]
+// CHECK-INST: mov z17.s, p2/m, za0h.s[w14, #1]
+// CHECK-ENCODING: [0x31,0x48,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 48 82 c0 <unknown>
+
+mova z29.s, p2/m, za1h.s[w12, #2]
+// CHECK-INST: mov z29.s, p2/m, za1h.s[w12, #2]
+// CHECK-ENCODING: [0xdd,0x08,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 08 82 c0 <unknown>
+
+mova z2.s, p5/m, za2h.s[w15, #1]
+// CHECK-INST: mov z2.s, p5/m, za2h.s[w15, #1]
+// CHECK-ENCODING: [0x22,0x75,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 82 c0 <unknown>
+
+mova z7.s, p2/m, za3h.s[w13, #0]
+// CHECK-INST: mov z7.s, p2/m, za3h.s[w13, #0]
+// CHECK-ENCODING: [0x87,0x29,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 82 c0 <unknown>
+
+// Aliases
+
+mov z0.s, p0/m, za0h.s[w12, #0]
+// CHECK-INST: mov z0.s, p0/m, za0h.s[w12, #0]
+// CHECK-ENCODING: [0x00,0x00,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 82 c0 <unknown>
+
+mov z21.s, p5/m, za2h.s[w14, #2]
+// CHECK-INST: mov z21.s, p5/m, za2h.s[w14, #2]
+// CHECK-ENCODING: [0x55,0x55,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 55 82 c0 <unknown>
+
+mov z23.s, p3/m, za3h.s[w15, #1]
+// CHECK-INST: mov z23.s, p3/m, za3h.s[w15, #1]
+// CHECK-ENCODING: [0xb7,0x6d,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 6d 82 c0 <unknown>
+
+mov z31.s, p7/m, za3h.s[w15, #3]
+// CHECK-INST: mov z31.s, p7/m, za3h.s[w15, #3]
+// CHECK-ENCODING: [0xff,0x7d,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff 7d 82 c0 <unknown>
+
+mov z5.s, p3/m, za0h.s[w12, #1]
+// CHECK-INST: mov z5.s, p3/m, za0h.s[w12, #1]
+// CHECK-ENCODING: [0x25,0x0c,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0c 82 c0 <unknown>
+
+mov z1.s, p1/m, za0h.s[w12, #1]
+// CHECK-INST: mov z1.s, p1/m, za0h.s[w12, #1]
+// CHECK-ENCODING: [0x21,0x04,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 82 c0 <unknown>
+
+mov z24.s, p5/m, za0h.s[w14, #3]
+// CHECK-INST: mov z24.s, p5/m, za0h.s[w14, #3]
+// CHECK-ENCODING: [0x78,0x54,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 54 82 c0 <unknown>
+
+mov z0.s, p6/m, za3h.s[w12, #0]
+// CHECK-INST: mov z0.s, p6/m, za3h.s[w12, #0]
+// CHECK-ENCODING: [0x80,0x19,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 82 c0 <unknown>
+
+mov z17.s, p2/m, za0h.s[w14, #1]
+// CHECK-INST: mov z17.s, p2/m, za0h.s[w14, #1]
+// CHECK-ENCODING: [0x31,0x48,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 48 82 c0 <unknown>
+
+mov z29.s, p2/m, za1h.s[w12, #2]
+// CHECK-INST: mov z29.s, p2/m, za1h.s[w12, #2]
+// CHECK-ENCODING: [0xdd,0x08,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 08 82 c0 <unknown>
+
+mov z2.s, p5/m, za2h.s[w15, #1]
+// CHECK-INST: mov z2.s, p5/m, za2h.s[w15, #1]
+// CHECK-ENCODING: [0x22,0x75,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 82 c0 <unknown>
+
+mov z7.s, p2/m, za3h.s[w13, #0]
+// CHECK-INST: mov z7.s, p2/m, za3h.s[w13, #0]
+// CHECK-ENCODING: [0x87,0x29,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 82 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Extract, tile to vector, vertical, 32-bit
+
+mova z0.s, p0/m, za0v.s[w12, #0]
+// CHECK-INST: mov z0.s, p0/m, za0v.s[w12, #0]
+// CHECK-ENCODING: [0x00,0x80,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 82 c0 <unknown>
+
+mova z21.s, p5/m, za2v.s[w14, #2]
+// CHECK-INST: mov z21.s, p5/m, za2v.s[w14, #2]
+// CHECK-ENCODING: [0x55,0xd5,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 d5 82 c0 <unknown>
+
+mova z23.s, p3/m, za3v.s[w15, #1]
+// CHECK-INST: mov z23.s, p3/m, za3v.s[w15, #1]
+// CHECK-ENCODING: [0xb7,0xed,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 ed 82 c0 <unknown>
+
+mova z31.s, p7/m, za3v.s[w15, #3]
+// CHECK-INST: mov z31.s, p7/m, za3v.s[w15, #3]
+// CHECK-ENCODING: [0xff,0xfd,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff fd 82 c0 <unknown>
+
+mova z5.s, p3/m, za0v.s[w12, #1]
+// CHECK-INST: mov z5.s, p3/m, za0v.s[w12, #1]
+// CHECK-ENCODING: [0x25,0x8c,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8c 82 c0 <unknown>
+
+mova z1.s, p1/m, za0v.s[w12, #1]
+// CHECK-INST: mov z1.s, p1/m, za0v.s[w12, #1]
+// CHECK-ENCODING: [0x21,0x84,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 82 c0 <unknown>
+
+mova z24.s, p5/m, za0v.s[w14, #3]
+// CHECK-INST: mov z24.s, p5/m, za0v.s[w14, #3]
+// CHECK-ENCODING: [0x78,0xd4,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 d4 82 c0 <unknown>
+
+mova z0.s, p6/m, za3v.s[w12, #0]
+// CHECK-INST: mov z0.s, p6/m, za3v.s[w12, #0]
+// CHECK-ENCODING: [0x80,0x99,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 82 c0 <unknown>
+
+mova z17.s, p2/m, za0v.s[w14, #1]
+// CHECK-INST: mov z17.s, p2/m, za0v.s[w14, #1]
+// CHECK-ENCODING: [0x31,0xc8,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 c8 82 c0 <unknown>
+
+mova z29.s, p2/m, za1v.s[w12, #2]
+// CHECK-INST: mov z29.s, p2/m, za1v.s[w12, #2]
+// CHECK-ENCODING: [0xdd,0x88,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 88 82 c0 <unknown>
+
+mova z2.s, p5/m, za2v.s[w15, #1]
+// CHECK-INST: mov z2.s, p5/m, za2v.s[w15, #1]
+// CHECK-ENCODING: [0x22,0xf5,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 82 c0 <unknown>
+
+mova z7.s, p2/m, za3v.s[w13, #0]
+// CHECK-INST: mov z7.s, p2/m, za3v.s[w13, #0]
+// CHECK-ENCODING: [0x87,0xa9,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 82 c0 <unknown>
+
+// Aliases
+
+mov z0.s, p0/m, za0v.s[w12, #0]
+// CHECK-INST: mov z0.s, p0/m, za0v.s[w12, #0]
+// CHECK-ENCODING: [0x00,0x80,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 82 c0 <unknown>
+
+mov z21.s, p5/m, za2v.s[w14, #2]
+// CHECK-INST: mov z21.s, p5/m, za2v.s[w14, #2]
+// CHECK-ENCODING: [0x55,0xd5,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 d5 82 c0 <unknown>
+
+mov z23.s, p3/m, za3v.s[w15, #1]
+// CHECK-INST: mov z23.s, p3/m, za3v.s[w15, #1]
+// CHECK-ENCODING: [0xb7,0xed,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 ed 82 c0 <unknown>
+
+mov z31.s, p7/m, za3v.s[w15, #3]
+// CHECK-INST: mov z31.s, p7/m, za3v.s[w15, #3]
+// CHECK-ENCODING: [0xff,0xfd,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff fd 82 c0 <unknown>
+
+mov z5.s, p3/m, za0v.s[w12, #1]
+// CHECK-INST: mov z5.s, p3/m, za0v.s[w12, #1]
+// CHECK-ENCODING: [0x25,0x8c,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8c 82 c0 <unknown>
+
+mov z1.s, p1/m, za0v.s[w12, #1]
+// CHECK-INST: mov z1.s, p1/m, za0v.s[w12, #1]
+// CHECK-ENCODING: [0x21,0x84,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 82 c0 <unknown>
+
+mov z24.s, p5/m, za0v.s[w14, #3]
+// CHECK-INST: mov z24.s, p5/m, za0v.s[w14, #3]
+// CHECK-ENCODING: [0x78,0xd4,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 d4 82 c0 <unknown>
+
+mov z0.s, p6/m, za3v.s[w12, #0]
+// CHECK-INST: mov z0.s, p6/m, za3v.s[w12, #0]
+// CHECK-ENCODING: [0x80,0x99,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 82 c0 <unknown>
+
+mov z17.s, p2/m, za0v.s[w14, #1]
+// CHECK-INST: mov z17.s, p2/m, za0v.s[w14, #1]
+// CHECK-ENCODING: [0x31,0xc8,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 c8 82 c0 <unknown>
+
+mov z29.s, p2/m, za1v.s[w12, #2]
+// CHECK-INST: mov z29.s, p2/m, za1v.s[w12, #2]
+// CHECK-ENCODING: [0xdd,0x88,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 88 82 c0 <unknown>
+
+mov z2.s, p5/m, za2v.s[w15, #1]
+// CHECK-INST: mov z2.s, p5/m, za2v.s[w15, #1]
+// CHECK-ENCODING: [0x22,0xf5,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 82 c0 <unknown>
+
+mov z7.s, p2/m, za3v.s[w13, #0]
+// CHECK-INST: mov z7.s, p2/m, za3v.s[w13, #0]
+// CHECK-ENCODING: [0x87,0xa9,0x82,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 82 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Extract, tile to vector, horizontal, 64-bit
+
+mova z0.d, p0/m, za0h.d[w12, #0]
+// CHECK-INST: mov z0.d, p0/m, za0h.d[w12, #0]
+// CHECK-ENCODING: [0x00,0x00,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 c2 c0 <unknown>
+
+mova z21.d, p5/m, za5h.d[w14, #0]
+// CHECK-INST: mov z21.d, p5/m, za5h.d[w14, #0]
+// CHECK-ENCODING: [0x55,0x55,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 55 c2 c0 <unknown>
+
+mova z23.d, p3/m, za6h.d[w15, #1]
+// CHECK-INST: mov z23.d, p3/m, za6h.d[w15, #1]
+// CHECK-ENCODING: [0xb7,0x6d,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 6d c2 c0 <unknown>
+
+mova z31.d, p7/m, za7h.d[w15, #1]
+// CHECK-INST: mov z31.d, p7/m, za7h.d[w15, #1]
+// CHECK-ENCODING: [0xff,0x7d,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff 7d c2 c0 <unknown>
+
+mova z5.d, p3/m, za0h.d[w12, #1]
+// CHECK-INST: mov z5.d, p3/m, za0h.d[w12, #1]
+// CHECK-ENCODING: [0x25,0x0c,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0c c2 c0 <unknown>
+
+mova z1.d, p1/m, za0h.d[w12, #1]
+// CHECK-INST: mov z1.d, p1/m, za0h.d[w12, #1]
+// CHECK-ENCODING: [0x21,0x04,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 c2 c0 <unknown>
+
+mova z24.d, p5/m, za1h.d[w14, #1]
+// CHECK-INST: mov z24.d, p5/m, za1h.d[w14, #1]
+// CHECK-ENCODING: [0x78,0x54,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 54 c2 c0 <unknown>
+
+mova z0.d, p6/m, za6h.d[w12, #0]
+// CHECK-INST: mov z0.d, p6/m, za6h.d[w12, #0]
+// CHECK-ENCODING: [0x80,0x19,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 c2 c0 <unknown>
+
+mova z17.d, p2/m, za0h.d[w14, #1]
+// CHECK-INST: mov z17.d, p2/m, za0h.d[w14, #1]
+// CHECK-ENCODING: [0x31,0x48,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 48 c2 c0 <unknown>
+
+mova z29.d, p2/m, za3h.d[w12, #0]
+// CHECK-INST: mov z29.d, p2/m, za3h.d[w12, #0]
+// CHECK-ENCODING: [0xdd,0x08,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 08 c2 c0 <unknown>
+
+mova z2.d, p5/m, za4h.d[w15, #1]
+// CHECK-INST: mov z2.d, p5/m, za4h.d[w15, #1]
+// CHECK-ENCODING: [0x22,0x75,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 c2 c0 <unknown>
+
+mova z7.d, p2/m, za6h.d[w13, #0]
+// CHECK-INST: mov z7.d, p2/m, za6h.d[w13, #0]
+// CHECK-ENCODING: [0x87,0x29,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 c2 c0 <unknown>
+
+// Aliases
+
+mov z0.d, p0/m, za0h.d[w12, #0]
+// CHECK-INST: mov z0.d, p0/m, za0h.d[w12, #0]
+// CHECK-ENCODING: [0x00,0x00,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 c2 c0 <unknown>
+
+mov z21.d, p5/m, za5h.d[w14, #0]
+// CHECK-INST: mov z21.d, p5/m, za5h.d[w14, #0]
+// CHECK-ENCODING: [0x55,0x55,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 55 c2 c0 <unknown>
+
+mov z23.d, p3/m, za6h.d[w15, #1]
+// CHECK-INST: mov z23.d, p3/m, za6h.d[w15, #1]
+// CHECK-ENCODING: [0xb7,0x6d,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 6d c2 c0 <unknown>
+
+mov z31.d, p7/m, za7h.d[w15, #1]
+// CHECK-INST: mov z31.d, p7/m, za7h.d[w15, #1]
+// CHECK-ENCODING: [0xff,0x7d,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff 7d c2 c0 <unknown>
+
+mov z5.d, p3/m, za0h.d[w12, #1]
+// CHECK-INST: mov z5.d, p3/m, za0h.d[w12, #1]
+// CHECK-ENCODING: [0x25,0x0c,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0c c2 c0 <unknown>
+
+mov z1.d, p1/m, za0h.d[w12, #1]
+// CHECK-INST: mov z1.d, p1/m, za0h.d[w12, #1]
+// CHECK-ENCODING: [0x21,0x04,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 c2 c0 <unknown>
+
+mov z24.d, p5/m, za1h.d[w14, #1]
+// CHECK-INST: mov z24.d, p5/m, za1h.d[w14, #1]
+// CHECK-ENCODING: [0x78,0x54,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 54 c2 c0 <unknown>
+
+mov z0.d, p6/m, za6h.d[w12, #0]
+// CHECK-INST: mov z0.d, p6/m, za6h.d[w12, #0]
+// CHECK-ENCODING: [0x80,0x19,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 c2 c0 <unknown>
+
+mov z17.d, p2/m, za0h.d[w14, #1]
+// CHECK-INST: mov z17.d, p2/m, za0h.d[w14, #1]
+// CHECK-ENCODING: [0x31,0x48,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 48 c2 c0 <unknown>
+
+mov z29.d, p2/m, za3h.d[w12, #0]
+// CHECK-INST: mov z29.d, p2/m, za3h.d[w12, #0]
+// CHECK-ENCODING: [0xdd,0x08,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 08 c2 c0 <unknown>
+
+mov z2.d, p5/m, za4h.d[w15, #1]
+// CHECK-INST: mov z2.d, p5/m, za4h.d[w15, #1]
+// CHECK-ENCODING: [0x22,0x75,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 c2 c0 <unknown>
+
+mov z7.d, p2/m, za6h.d[w13, #0]
+// CHECK-INST: mov z7.d, p2/m, za6h.d[w13, #0]
+// CHECK-ENCODING: [0x87,0x29,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 c2 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Extract, tile to vector, vertical, 64-bit
+
+mova z0.d, p0/m, za0v.d[w12, #0]
+// CHECK-INST: mov z0.d, p0/m, za0v.d[w12, #0]
+// CHECK-ENCODING: [0x00,0x80,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 c2 c0 <unknown>
+
+mova z21.d, p5/m, za5v.d[w14, #0]
+// CHECK-INST: mov z21.d, p5/m, za5v.d[w14, #0]
+// CHECK-ENCODING: [0x55,0xd5,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 d5 c2 c0 <unknown>
+
+mova z23.d, p3/m, za6v.d[w15, #1]
+// CHECK-INST: mov z23.d, p3/m, za6v.d[w15, #1]
+// CHECK-ENCODING: [0xb7,0xed,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 ed c2 c0 <unknown>
+
+mova z31.d, p7/m, za7v.d[w15, #1]
+// CHECK-INST: mov z31.d, p7/m, za7v.d[w15, #1]
+// CHECK-ENCODING: [0xff,0xfd,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff fd c2 c0 <unknown>
+
+mova z5.d, p3/m, za0v.d[w12, #1]
+// CHECK-INST: mov z5.d, p3/m, za0v.d[w12, #1]
+// CHECK-ENCODING: [0x25,0x8c,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8c c2 c0 <unknown>
+
+mova z1.d, p1/m, za0v.d[w12, #1]
+// CHECK-INST: mov z1.d, p1/m, za0v.d[w12, #1]
+// CHECK-ENCODING: [0x21,0x84,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 c2 c0 <unknown>
+
+mova z24.d, p5/m, za1v.d[w14, #1]
+// CHECK-INST: mov z24.d, p5/m, za1v.d[w14, #1]
+// CHECK-ENCODING: [0x78,0xd4,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 d4 c2 c0 <unknown>
+
+mova z0.d, p6/m, za6v.d[w12, #0]
+// CHECK-INST: mov z0.d, p6/m, za6v.d[w12, #0]
+// CHECK-ENCODING: [0x80,0x99,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 c2 c0 <unknown>
+
+mova z17.d, p2/m, za0v.d[w14, #1]
+// CHECK-INST: mov z17.d, p2/m, za0v.d[w14, #1]
+// CHECK-ENCODING: [0x31,0xc8,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 c8 c2 c0 <unknown>
+
+mova z29.d, p2/m, za3v.d[w12, #0]
+// CHECK-INST: mov z29.d, p2/m, za3v.d[w12, #0]
+// CHECK-ENCODING: [0xdd,0x88,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 88 c2 c0 <unknown>
+
+mova z2.d, p5/m, za4v.d[w15, #1]
+// CHECK-INST: mov z2.d, p5/m, za4v.d[w15, #1]
+// CHECK-ENCODING: [0x22,0xf5,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 c2 c0 <unknown>
+
+mova z7.d, p2/m, za6v.d[w13, #0]
+// CHECK-INST: mov z7.d, p2/m, za6v.d[w13, #0]
+// CHECK-ENCODING: [0x87,0xa9,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 c2 c0 <unknown>
+
+// Aliases
+
+mov z0.d, p0/m, za0v.d[w12, #0]
+// CHECK-INST: mov z0.d, p0/m, za0v.d[w12, #0]
+// CHECK-ENCODING: [0x00,0x80,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 c2 c0 <unknown>
+
+mov z21.d, p5/m, za5v.d[w14, #0]
+// CHECK-INST: mov z21.d, p5/m, za5v.d[w14, #0]
+// CHECK-ENCODING: [0x55,0xd5,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 d5 c2 c0 <unknown>
+
+mov z23.d, p3/m, za6v.d[w15, #1]
+// CHECK-INST: mov z23.d, p3/m, za6v.d[w15, #1]
+// CHECK-ENCODING: [0xb7,0xed,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 ed c2 c0 <unknown>
+
+mov z31.d, p7/m, za7v.d[w15, #1]
+// CHECK-INST: mov z31.d, p7/m, za7v.d[w15, #1]
+// CHECK-ENCODING: [0xff,0xfd,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff fd c2 c0 <unknown>
+
+mov z5.d, p3/m, za0v.d[w12, #1]
+// CHECK-INST: mov z5.d, p3/m, za0v.d[w12, #1]
+// CHECK-ENCODING: [0x25,0x8c,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8c c2 c0 <unknown>
+
+mov z1.d, p1/m, za0v.d[w12, #1]
+// CHECK-INST: mov z1.d, p1/m, za0v.d[w12, #1]
+// CHECK-ENCODING: [0x21,0x84,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 c2 c0 <unknown>
+
+mov z24.d, p5/m, za1v.d[w14, #1]
+// CHECK-INST: mov z24.d, p5/m, za1v.d[w14, #1]
+// CHECK-ENCODING: [0x78,0xd4,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 d4 c2 c0 <unknown>
+
+mov z0.d, p6/m, za6v.d[w12, #0]
+// CHECK-INST: mov z0.d, p6/m, za6v.d[w12, #0]
+// CHECK-ENCODING: [0x80,0x99,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 c2 c0 <unknown>
+
+mov z17.d, p2/m, za0v.d[w14, #1]
+// CHECK-INST: mov z17.d, p2/m, za0v.d[w14, #1]
+// CHECK-ENCODING: [0x31,0xc8,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 c8 c2 c0 <unknown>
+
+mov z29.d, p2/m, za3v.d[w12, #0]
+// CHECK-INST: mov z29.d, p2/m, za3v.d[w12, #0]
+// CHECK-ENCODING: [0xdd,0x88,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 88 c2 c0 <unknown>
+
+mov z2.d, p5/m, za4v.d[w15, #1]
+// CHECK-INST: mov z2.d, p5/m, za4v.d[w15, #1]
+// CHECK-ENCODING: [0x22,0xf5,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 c2 c0 <unknown>
+
+mov z7.d, p2/m, za6v.d[w13, #0]
+// CHECK-INST: mov z7.d, p2/m, za6v.d[w13, #0]
+// CHECK-ENCODING: [0x87,0xa9,0xc2,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 c2 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Extract, tile to vector, horizontal, 128-bit
+
+mova z0.q, p0/m, za0h.q[w12]
+// CHECK-INST: mov z0.q, p0/m, za0h.q[w12]
+// CHECK-ENCODING: [0x00,0x00,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 c3 c0 <unknown>
+
+mova z21.q, p5/m, za10h.q[w14]
+// CHECK-INST: mov z21.q, p5/m, za10h.q[w14]
+// CHECK-ENCODING: [0x55,0x55,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 55 c3 c0 <unknown>
+
+mova z23.q, p3/m, za13h.q[w15]
+// CHECK-INST: mov z23.q, p3/m, za13h.q[w15]
+// CHECK-ENCODING: [0xb7,0x6d,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 6d c3 c0 <unknown>
+
+mova z31.q, p7/m, za15h.q[w15]
+// CHECK-INST: mov z31.q, p7/m, za15h.q[w15]
+// CHECK-ENCODING: [0xff,0x7d,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff 7d c3 c0 <unknown>
+
+mova z5.q, p3/m, za1h.q[w12]
+// CHECK-INST: mov z5.q, p3/m, za1h.q[w12]
+// CHECK-ENCODING: [0x25,0x0c,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0c c3 c0 <unknown>
+
+mova z1.q, p1/m, za1h.q[w12]
+// CHECK-INST: mov z1.q, p1/m, za1h.q[w12]
+// CHECK-ENCODING: [0x21,0x04,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 c3 c0 <unknown>
+
+mova z24.q, p5/m, za3h.q[w14]
+// CHECK-INST: mov z24.q, p5/m, za3h.q[w14]
+// CHECK-ENCODING: [0x78,0x54,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 54 c3 c0 <unknown>
+
+mova z0.q, p6/m, za12h.q[w12]
+// CHECK-INST: mov z0.q, p6/m, za12h.q[w12]
+// CHECK-ENCODING: [0x80,0x19,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 c3 c0 <unknown>
+
+mova z17.q, p2/m, za1h.q[w14]
+// CHECK-INST: mov z17.q, p2/m, za1h.q[w14]
+// CHECK-ENCODING: [0x31,0x48,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 48 c3 c0 <unknown>
+
+mova z29.q, p2/m, za6h.q[w12]
+// CHECK-INST: mov z29.q, p2/m, za6h.q[w12]
+// CHECK-ENCODING: [0xdd,0x08,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 08 c3 c0 <unknown>
+
+mova z2.q, p5/m, za9h.q[w15]
+// CHECK-INST: mov z2.q, p5/m, za9h.q[w15]
+// CHECK-ENCODING: [0x22,0x75,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 c3 c0 <unknown>
+
+mova z7.q, p2/m, za12h.q[w13]
+// CHECK-INST: mov z7.q, p2/m, za12h.q[w13]
+// CHECK-ENCODING: [0x87,0x29,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 c3 c0 <unknown>
+
+// Aliases
+
+mov z0.q, p0/m, za0h.q[w12]
+// CHECK-INST: mov z0.q, p0/m, za0h.q[w12]
+// CHECK-ENCODING: [0x00,0x00,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 c3 c0 <unknown>
+
+mov z21.q, p5/m, za10h.q[w14]
+// CHECK-INST: mov z21.q, p5/m, za10h.q[w14]
+// CHECK-ENCODING: [0x55,0x55,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 55 c3 c0 <unknown>
+
+mov z23.q, p3/m, za13h.q[w15]
+// CHECK-INST: mov z23.q, p3/m, za13h.q[w15]
+// CHECK-ENCODING: [0xb7,0x6d,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 6d c3 c0 <unknown>
+
+mov z31.q, p7/m, za15h.q[w15]
+// CHECK-INST: mov z31.q, p7/m, za15h.q[w15]
+// CHECK-ENCODING: [0xff,0x7d,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff 7d c3 c0 <unknown>
+
+mov z5.q, p3/m, za1h.q[w12]
+// CHECK-INST: mov z5.q, p3/m, za1h.q[w12]
+// CHECK-ENCODING: [0x25,0x0c,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0c c3 c0 <unknown>
+
+mov z1.q, p1/m, za1h.q[w12]
+// CHECK-INST: mov z1.q, p1/m, za1h.q[w12]
+// CHECK-ENCODING: [0x21,0x04,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 c3 c0 <unknown>
+
+mov z24.q, p5/m, za3h.q[w14]
+// CHECK-INST: mov z24.q, p5/m, za3h.q[w14]
+// CHECK-ENCODING: [0x78,0x54,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 54 c3 c0 <unknown>
+
+mov z0.q, p6/m, za12h.q[w12]
+// CHECK-INST: mov z0.q, p6/m, za12h.q[w12]
+// CHECK-ENCODING: [0x80,0x19,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 c3 c0 <unknown>
+
+mov z17.q, p2/m, za1h.q[w14]
+// CHECK-INST: mov z17.q, p2/m, za1h.q[w14]
+// CHECK-ENCODING: [0x31,0x48,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 48 c3 c0 <unknown>
+
+mov z29.q, p2/m, za6h.q[w12]
+// CHECK-INST: mov z29.q, p2/m, za6h.q[w12]
+// CHECK-ENCODING: [0xdd,0x08,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 08 c3 c0 <unknown>
+
+mov z2.q, p5/m, za9h.q[w15]
+// CHECK-INST: mov z2.q, p5/m, za9h.q[w15]
+// CHECK-ENCODING: [0x22,0x75,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 c3 c0 <unknown>
+
+mov z7.q, p2/m, za12h.q[w13]
+// CHECK-INST: mov z7.q, p2/m, za12h.q[w13]
+// CHECK-ENCODING: [0x87,0x29,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 c3 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Extract, tile to vector, vertical, 128-bit
+
+mova z0.q, p0/m, za0v.q[w12]
+// CHECK-INST: mov z0.q, p0/m, za0v.q[w12]
+// CHECK-ENCODING: [0x00,0x80,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 c3 c0 <unknown>
+
+mova z21.q, p5/m, za10v.q[w14]
+// CHECK-INST: mov z21.q, p5/m, za10v.q[w14]
+// CHECK-ENCODING: [0x55,0xd5,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 d5 c3 c0 <unknown>
+
+mova z23.q, p3/m, za13v.q[w15]
+// CHECK-INST: mov z23.q, p3/m, za13v.q[w15]
+// CHECK-ENCODING: [0xb7,0xed,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 ed c3 c0 <unknown>
+
+mova z31.q, p7/m, za15v.q[w15]
+// CHECK-INST: mov z31.q, p7/m, za15v.q[w15]
+// CHECK-ENCODING: [0xff,0xfd,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff fd c3 c0 <unknown>
+
+mova z5.q, p3/m, za1v.q[w12]
+// CHECK-INST: mov z5.q, p3/m, za1v.q[w12]
+// CHECK-ENCODING: [0x25,0x8c,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8c c3 c0 <unknown>
+
+mova z1.q, p1/m, za1v.q[w12]
+// CHECK-INST: mov z1.q, p1/m, za1v.q[w12]
+// CHECK-ENCODING: [0x21,0x84,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 c3 c0 <unknown>
+
+mova z24.q, p5/m, za3v.q[w14]
+// CHECK-INST: mov z24.q, p5/m, za3v.q[w14]
+// CHECK-ENCODING: [0x78,0xd4,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 d4 c3 c0 <unknown>
+
+mova z0.q, p6/m, za12v.q[w12]
+// CHECK-INST: mov z0.q, p6/m, za12v.q[w12]
+// CHECK-ENCODING: [0x80,0x99,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 c3 c0 <unknown>
+
+mova z17.q, p2/m, za1v.q[w14]
+// CHECK-INST: mov z17.q, p2/m, za1v.q[w14]
+// CHECK-ENCODING: [0x31,0xc8,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 c8 c3 c0 <unknown>
+
+mova z29.q, p2/m, za6v.q[w12]
+// CHECK-INST: mov z29.q, p2/m, za6v.q[w12]
+// CHECK-ENCODING: [0xdd,0x88,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 88 c3 c0 <unknown>
+
+mova z2.q, p5/m, za9v.q[w15]
+// CHECK-INST: mov z2.q, p5/m, za9v.q[w15]
+// CHECK-ENCODING: [0x22,0xf5,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 c3 c0 <unknown>
+
+mova z7.q, p2/m, za12v.q[w13]
+// CHECK-INST: mov z7.q, p2/m, za12v.q[w13]
+// CHECK-ENCODING: [0x87,0xa9,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 c3 c0 <unknown>
+
+// Aliases
+
+mov z0.q, p0/m, za0v.q[w12]
+// CHECK-INST: mov z0.q, p0/m, za0v.q[w12]
+// CHECK-ENCODING: [0x00,0x80,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 c3 c0 <unknown>
+
+mov z21.q, p5/m, za10v.q[w14]
+// CHECK-INST: mov z21.q, p5/m, za10v.q[w14]
+// CHECK-ENCODING: [0x55,0xd5,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 55 d5 c3 c0 <unknown>
+
+mov z23.q, p3/m, za13v.q[w15]
+// CHECK-INST: mov z23.q, p3/m, za13v.q[w15]
+// CHECK-ENCODING: [0xb7,0xed,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: b7 ed c3 c0 <unknown>
+
+mov z31.q, p7/m, za15v.q[w15]
+// CHECK-INST: mov z31.q, p7/m, za15v.q[w15]
+// CHECK-ENCODING: [0xff,0xfd,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ff fd c3 c0 <unknown>
+
+mov z5.q, p3/m, za1v.q[w12]
+// CHECK-INST: mov z5.q, p3/m, za1v.q[w12]
+// CHECK-ENCODING: [0x25,0x8c,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8c c3 c0 <unknown>
+
+mov z1.q, p1/m, za1v.q[w12]
+// CHECK-INST: mov z1.q, p1/m, za1v.q[w12]
+// CHECK-ENCODING: [0x21,0x84,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 c3 c0 <unknown>
+
+mov z24.q, p5/m, za3v.q[w14]
+// CHECK-INST: mov z24.q, p5/m, za3v.q[w14]
+// CHECK-ENCODING: [0x78,0xd4,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 78 d4 c3 c0 <unknown>
+
+mov z0.q, p6/m, za12v.q[w12]
+// CHECK-INST: mov z0.q, p6/m, za12v.q[w12]
+// CHECK-ENCODING: [0x80,0x99,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 c3 c0 <unknown>
+
+mov z17.q, p2/m, za1v.q[w14]
+// CHECK-INST: mov z17.q, p2/m, za1v.q[w14]
+// CHECK-ENCODING: [0x31,0xc8,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 31 c8 c3 c0 <unknown>
+
+mov z29.q, p2/m, za6v.q[w12]
+// CHECK-INST: mov z29.q, p2/m, za6v.q[w12]
+// CHECK-ENCODING: [0xdd,0x88,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: dd 88 c3 c0 <unknown>
+
+mov z2.q, p5/m, za9v.q[w15]
+// CHECK-INST: mov z2.q, p5/m, za9v.q[w15]
+// CHECK-ENCODING: [0x22,0xf5,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 c3 c0 <unknown>
+
+mov z7.q, p2/m, za12v.q[w13]
+// CHECK-INST: mov z7.q, p2/m, za12v.q[w13]
+// CHECK-ENCODING: [0x87,0xa9,0xc3,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 c3 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Insert, vector to tile, horizontal, 8-bit
+
+mova za0h.b[w12, #0], p0/m, z0.b
+// CHECK-INST: mov za0h.b[w12, #0], p0/m, z0.b
+// CHECK-ENCODING: [0x00,0x00,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 00 c0 <unknown>
+
+mova za0h.b[w14, #5], p5/m, z10.b
+// CHECK-INST: mov za0h.b[w14, #5], p5/m, z10.b
+// CHECK-ENCODING: [0x45,0x55,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 55 00 c0 <unknown>
+
+mova za0h.b[w15, #7], p3/m, z13.b
+// CHECK-INST: mov za0h.b[w15, #7], p3/m, z13.b
+// CHECK-ENCODING: [0xa7,0x6d,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 6d 00 c0 <unknown>
+
+mova za0h.b[w15, #15], p7/m, z31.b
+// CHECK-INST: mov za0h.b[w15, #15], p7/m, z31.b
+// CHECK-ENCODING: [0xef,0x7f,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef 7f 00 c0 <unknown>
+
+mova za0h.b[w12, #5], p3/m, z17.b
+// CHECK-INST: mov za0h.b[w12, #5], p3/m, z17.b
+// CHECK-ENCODING: [0x25,0x0e,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0e 00 c0 <unknown>
+
+mova za0h.b[w12, #1], p1/m, z1.b
+// CHECK-INST: mov za0h.b[w12, #1], p1/m, z1.b
+// CHECK-ENCODING: [0x21,0x04,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 00 c0 <unknown>
+
+mova za0h.b[w14, #8], p5/m, z19.b
+// CHECK-INST: mov za0h.b[w14, #8], p5/m, z19.b
+// CHECK-ENCODING: [0x68,0x56,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 56 00 c0 <unknown>
+
+mova za0h.b[w12, #0], p6/m, z12.b
+// CHECK-INST: mov za0h.b[w12, #0], p6/m, z12.b
+// CHECK-ENCODING: [0x80,0x19,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 00 c0 <unknown>
+
+mova za0h.b[w14, #1], p2/m, z1.b
+// CHECK-INST: mov za0h.b[w14, #1], p2/m, z1.b
+// CHECK-ENCODING: [0x21,0x48,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 48 00 c0 <unknown>
+
+mova za0h.b[w12, #13], p2/m, z22.b
+// CHECK-INST: mov za0h.b[w12, #13], p2/m, z22.b
+// CHECK-ENCODING: [0xcd,0x0a,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 0a 00 c0 <unknown>
+
+mova za0h.b[w15, #2], p5/m, z9.b
+// CHECK-INST: mov za0h.b[w15, #2], p5/m, z9.b
+// CHECK-ENCODING: [0x22,0x75,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 00 c0 <unknown>
+
+mova za0h.b[w13, #7], p2/m, z12.b
+// CHECK-INST: mov za0h.b[w13, #7], p2/m, z12.b
+// CHECK-ENCODING: [0x87,0x29,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 00 c0 <unknown>
+
+// Aliases
+
+mov za0h.b[w12, #0], p0/m, z0.b
+// CHECK-INST: mov za0h.b[w12, #0], p0/m, z0.b
+// CHECK-ENCODING: [0x00,0x00,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 00 c0 <unknown>
+
+mov za0h.b[w14, #5], p5/m, z10.b
+// CHECK-INST: mov za0h.b[w14, #5], p5/m, z10.b
+// CHECK-ENCODING: [0x45,0x55,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 55 00 c0 <unknown>
+
+mov za0h.b[w15, #7], p3/m, z13.b
+// CHECK-INST: mov za0h.b[w15, #7], p3/m, z13.b
+// CHECK-ENCODING: [0xa7,0x6d,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 6d 00 c0 <unknown>
+
+mov za0h.b[w15, #15], p7/m, z31.b
+// CHECK-INST: mov za0h.b[w15, #15], p7/m, z31.b
+// CHECK-ENCODING: [0xef,0x7f,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef 7f 00 c0 <unknown>
+
+mov za0h.b[w12, #5], p3/m, z17.b
+// CHECK-INST: mov za0h.b[w12, #5], p3/m, z17.b
+// CHECK-ENCODING: [0x25,0x0e,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0e 00 c0 <unknown>
+
+mov za0h.b[w12, #1], p1/m, z1.b
+// CHECK-INST: mov za0h.b[w12, #1], p1/m, z1.b
+// CHECK-ENCODING: [0x21,0x04,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 00 c0 <unknown>
+
+mov za0h.b[w14, #8], p5/m, z19.b
+// CHECK-INST: mov za0h.b[w14, #8], p5/m, z19.b
+// CHECK-ENCODING: [0x68,0x56,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 56 00 c0 <unknown>
+
+mov za0h.b[w12, #0], p6/m, z12.b
+// CHECK-INST: mov za0h.b[w12, #0], p6/m, z12.b
+// CHECK-ENCODING: [0x80,0x19,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 00 c0 <unknown>
+
+mov za0h.b[w14, #1], p2/m, z1.b
+// CHECK-INST: mov za0h.b[w14, #1], p2/m, z1.b
+// CHECK-ENCODING: [0x21,0x48,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 48 00 c0 <unknown>
+
+mov za0h.b[w12, #13], p2/m, z22.b
+// CHECK-INST: mov za0h.b[w12, #13], p2/m, z22.b
+// CHECK-ENCODING: [0xcd,0x0a,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 0a 00 c0 <unknown>
+
+mov za0h.b[w15, #2], p5/m, z9.b
+// CHECK-INST: mov za0h.b[w15, #2], p5/m, z9.b
+// CHECK-ENCODING: [0x22,0x75,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 00 c0 <unknown>
+
+mov za0h.b[w13, #7], p2/m, z12.b
+// CHECK-INST: mov za0h.b[w13, #7], p2/m, z12.b
+// CHECK-ENCODING: [0x87,0x29,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 00 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Insert, vector to tile, vertical, 8-bit
+
+mova za0v.b[w12, #0], p0/m, z0.b
+// CHECK-INST: mov za0v.b[w12, #0], p0/m, z0.b
+// CHECK-ENCODING: [0x00,0x80,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 00 c0 <unknown>
+
+mova za0v.b[w14, #5], p5/m, z10.b
+// CHECK-INST: mov za0v.b[w14, #5], p5/m, z10.b
+// CHECK-ENCODING: [0x45,0xd5,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 d5 00 c0 <unknown>
+
+mova za0v.b[w15, #7], p3/m, z13.b
+// CHECK-INST: mov za0v.b[w15, #7], p3/m, z13.b
+// CHECK-ENCODING: [0xa7,0xed,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 ed 00 c0 <unknown>
+
+mova za0v.b[w15, #15], p7/m, z31.b
+// CHECK-INST: mov za0v.b[w15, #15], p7/m, z31.b
+// CHECK-ENCODING: [0xef,0xff,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef ff 00 c0 <unknown>
+
+mova za0v.b[w12, #5], p3/m, z17.b
+// CHECK-INST: mov za0v.b[w12, #5], p3/m, z17.b
+// CHECK-ENCODING: [0x25,0x8e,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8e 00 c0 <unknown>
+
+mova za0v.b[w12, #1], p1/m, z1.b
+// CHECK-INST: mov za0v.b[w12, #1], p1/m, z1.b
+// CHECK-ENCODING: [0x21,0x84,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 00 c0 <unknown>
+
+mova za0v.b[w14, #8], p5/m, z19.b
+// CHECK-INST: mov za0v.b[w14, #8], p5/m, z19.b
+// CHECK-ENCODING: [0x68,0xd6,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 d6 00 c0 <unknown>
+
+mova za0v.b[w12, #0], p6/m, z12.b
+// CHECK-INST: mov za0v.b[w12, #0], p6/m, z12.b
+// CHECK-ENCODING: [0x80,0x99,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 00 c0 <unknown>
+
+mova za0v.b[w14, #1], p2/m, z1.b
+// CHECK-INST: mov za0v.b[w14, #1], p2/m, z1.b
+// CHECK-ENCODING: [0x21,0xc8,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 c8 00 c0 <unknown>
+
+mova za0v.b[w12, #13], p2/m, z22.b
+// CHECK-INST: mov za0v.b[w12, #13], p2/m, z22.b
+// CHECK-ENCODING: [0xcd,0x8a,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 8a 00 c0 <unknown>
+
+mova za0v.b[w15, #2], p5/m, z9.b
+// CHECK-INST: mov za0v.b[w15, #2], p5/m, z9.b
+// CHECK-ENCODING: [0x22,0xf5,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 00 c0 <unknown>
+
+mova za0v.b[w13, #7], p2/m, z12.b
+// CHECK-INST: mov za0v.b[w13, #7], p2/m, z12.b
+// CHECK-ENCODING: [0x87,0xa9,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 00 c0 <unknown>
+
+// Aliases
+
+mov za0v.b[w12, #0], p0/m, z0.b
+// CHECK-INST: mov za0v.b[w12, #0], p0/m, z0.b
+// CHECK-ENCODING: [0x00,0x80,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 00 c0 <unknown>
+
+mov za0v.b[w14, #5], p5/m, z10.b
+// CHECK-INST: mov za0v.b[w14, #5], p5/m, z10.b
+// CHECK-ENCODING: [0x45,0xd5,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 d5 00 c0 <unknown>
+
+mov za0v.b[w15, #7], p3/m, z13.b
+// CHECK-INST: mov za0v.b[w15, #7], p3/m, z13.b
+// CHECK-ENCODING: [0xa7,0xed,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 ed 00 c0 <unknown>
+
+mov za0v.b[w15, #15], p7/m, z31.b
+// CHECK-INST: mov za0v.b[w15, #15], p7/m, z31.b
+// CHECK-ENCODING: [0xef,0xff,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef ff 00 c0 <unknown>
+
+mov za0v.b[w12, #5], p3/m, z17.b
+// CHECK-INST: mov za0v.b[w12, #5], p3/m, z17.b
+// CHECK-ENCODING: [0x25,0x8e,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8e 00 c0 <unknown>
+
+mov za0v.b[w12, #1], p1/m, z1.b
+// CHECK-INST: mov za0v.b[w12, #1], p1/m, z1.b
+// CHECK-ENCODING: [0x21,0x84,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 00 c0 <unknown>
+
+mov za0v.b[w14, #8], p5/m, z19.b
+// CHECK-INST: mov za0v.b[w14, #8], p5/m, z19.b
+// CHECK-ENCODING: [0x68,0xd6,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 d6 00 c0 <unknown>
+
+mov za0v.b[w12, #0], p6/m, z12.b
+// CHECK-INST: mov za0v.b[w12, #0], p6/m, z12.b
+// CHECK-ENCODING: [0x80,0x99,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 00 c0 <unknown>
+
+mov za0v.b[w14, #1], p2/m, z1.b
+// CHECK-INST: mov za0v.b[w14, #1], p2/m, z1.b
+// CHECK-ENCODING: [0x21,0xc8,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 c8 00 c0 <unknown>
+
+mov za0v.b[w12, #13], p2/m, z22.b
+// CHECK-INST: mov za0v.b[w12, #13], p2/m, z22.b
+// CHECK-ENCODING: [0xcd,0x8a,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 8a 00 c0 <unknown>
+
+mov za0v.b[w15, #2], p5/m, z9.b
+// CHECK-INST: mov za0v.b[w15, #2], p5/m, z9.b
+// CHECK-ENCODING: [0x22,0xf5,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 00 c0 <unknown>
+
+mov za0v.b[w13, #7], p2/m, z12.b
+// CHECK-INST: mov za0v.b[w13, #7], p2/m, z12.b
+// CHECK-ENCODING: [0x87,0xa9,0x00,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 00 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Insert, vector to tile, horizontal, 16-bit
+
+mova za0h.h[w12, #0], p0/m, z0.h
+// CHECK-INST: mov za0h.h[w12, #0], p0/m, z0.h
+// CHECK-ENCODING: [0x00,0x00,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 40 c0 <unknown>
+
+mova za0h.h[w14, #5], p5/m, z10.h
+// CHECK-INST: mov za0h.h[w14, #5], p5/m, z10.h
+// CHECK-ENCODING: [0x45,0x55,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 55 40 c0 <unknown>
+
+mova za0h.h[w15, #7], p3/m, z13.h
+// CHECK-INST: mov za0h.h[w15, #7], p3/m, z13.h
+// CHECK-ENCODING: [0xa7,0x6d,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 6d 40 c0 <unknown>
+
+mova za1h.h[w15, #7], p7/m, z31.h
+// CHECK-INST: mov za1h.h[w15, #7], p7/m, z31.h
+// CHECK-ENCODING: [0xef,0x7f,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef 7f 40 c0 <unknown>
+
+mova za0h.h[w12, #5], p3/m, z17.h
+// CHECK-INST: mov za0h.h[w12, #5], p3/m, z17.h
+// CHECK-ENCODING: [0x25,0x0e,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0e 40 c0 <unknown>
+
+mova za0h.h[w12, #1], p1/m, z1.h
+// CHECK-INST: mov za0h.h[w12, #1], p1/m, z1.h
+// CHECK-ENCODING: [0x21,0x04,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 40 c0 <unknown>
+
+mova za1h.h[w14, #0], p5/m, z19.h
+// CHECK-INST: mov za1h.h[w14, #0], p5/m, z19.h
+// CHECK-ENCODING: [0x68,0x56,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 56 40 c0 <unknown>
+
+mova za0h.h[w12, #0], p6/m, z12.h
+// CHECK-INST: mov za0h.h[w12, #0], p6/m, z12.h
+// CHECK-ENCODING: [0x80,0x19,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 40 c0 <unknown>
+
+mova za0h.h[w14, #1], p2/m, z1.h
+// CHECK-INST: mov za0h.h[w14, #1], p2/m, z1.h
+// CHECK-ENCODING: [0x21,0x48,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 48 40 c0 <unknown>
+
+mova za1h.h[w12, #5], p2/m, z22.h
+// CHECK-INST: mov za1h.h[w12, #5], p2/m, z22.h
+// CHECK-ENCODING: [0xcd,0x0a,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 0a 40 c0 <unknown>
+
+mova za0h.h[w15, #2], p5/m, z9.h
+// CHECK-INST: mov za0h.h[w15, #2], p5/m, z9.h
+// CHECK-ENCODING: [0x22,0x75,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 40 c0 <unknown>
+
+mova za0h.h[w13, #7], p2/m, z12.h
+// CHECK-INST: mov za0h.h[w13, #7], p2/m, z12.h
+// CHECK-ENCODING: [0x87,0x29,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 40 c0 <unknown>
+
+// Aliases
+
+mov za0h.h[w12, #0], p0/m, z0.h
+// CHECK-INST: mov za0h.h[w12, #0], p0/m, z0.h
+// CHECK-ENCODING: [0x00,0x00,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 40 c0 <unknown>
+
+mov za0h.h[w14, #5], p5/m, z10.h
+// CHECK-INST: mov za0h.h[w14, #5], p5/m, z10.h
+// CHECK-ENCODING: [0x45,0x55,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 55 40 c0 <unknown>
+
+mov za0h.h[w15, #7], p3/m, z13.h
+// CHECK-INST: mov za0h.h[w15, #7], p3/m, z13.h
+// CHECK-ENCODING: [0xa7,0x6d,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 6d 40 c0 <unknown>
+
+mov za1h.h[w15, #7], p7/m, z31.h
+// CHECK-INST: mov za1h.h[w15, #7], p7/m, z31.h
+// CHECK-ENCODING: [0xef,0x7f,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef 7f 40 c0 <unknown>
+
+mov za0h.h[w12, #5], p3/m, z17.h
+// CHECK-INST: mov za0h.h[w12, #5], p3/m, z17.h
+// CHECK-ENCODING: [0x25,0x0e,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0e 40 c0 <unknown>
+
+mov za0h.h[w12, #1], p1/m, z1.h
+// CHECK-INST: mov za0h.h[w12, #1], p1/m, z1.h
+// CHECK-ENCODING: [0x21,0x04,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 40 c0 <unknown>
+
+mov za1h.h[w14, #0], p5/m, z19.h
+// CHECK-INST: mov za1h.h[w14, #0], p5/m, z19.h
+// CHECK-ENCODING: [0x68,0x56,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 56 40 c0 <unknown>
+
+mov za0h.h[w12, #0], p6/m, z12.h
+// CHECK-INST: mov za0h.h[w12, #0], p6/m, z12.h
+// CHECK-ENCODING: [0x80,0x19,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 40 c0 <unknown>
+
+mov za0h.h[w14, #1], p2/m, z1.h
+// CHECK-INST: mov za0h.h[w14, #1], p2/m, z1.h
+// CHECK-ENCODING: [0x21,0x48,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 48 40 c0 <unknown>
+
+mov za1h.h[w12, #5], p2/m, z22.h
+// CHECK-INST: mov za1h.h[w12, #5], p2/m, z22.h
+// CHECK-ENCODING: [0xcd,0x0a,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 0a 40 c0 <unknown>
+
+mov za0h.h[w15, #2], p5/m, z9.h
+// CHECK-INST: mov za0h.h[w15, #2], p5/m, z9.h
+// CHECK-ENCODING: [0x22,0x75,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 40 c0 <unknown>
+
+mov za0h.h[w13, #7], p2/m, z12.h
+// CHECK-INST: mov za0h.h[w13, #7], p2/m, z12.h
+// CHECK-ENCODING: [0x87,0x29,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 40 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Insert, vector to tile, vertical, 16-bit
+
+mova za0v.h[w12, #0], p0/m, z0.h
+// CHECK-INST: mov za0v.h[w12, #0], p0/m, z0.h
+// CHECK-ENCODING: [0x00,0x80,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 40 c0 <unknown>
+
+mova za0v.h[w14, #5], p5/m, z10.h
+// CHECK-INST: mov za0v.h[w14, #5], p5/m, z10.h
+// CHECK-ENCODING: [0x45,0xd5,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 d5 40 c0 <unknown>
+
+mova za0v.h[w15, #7], p3/m, z13.h
+// CHECK-INST: mov za0v.h[w15, #7], p3/m, z13.h
+// CHECK-ENCODING: [0xa7,0xed,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 ed 40 c0 <unknown>
+
+mova za1v.h[w15, #7], p7/m, z31.h
+// CHECK-INST: mov za1v.h[w15, #7], p7/m, z31.h
+// CHECK-ENCODING: [0xef,0xff,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef ff 40 c0 <unknown>
+
+mova za0v.h[w12, #5], p3/m, z17.h
+// CHECK-INST: mov za0v.h[w12, #5], p3/m, z17.h
+// CHECK-ENCODING: [0x25,0x8e,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8e 40 c0 <unknown>
+
+mova za0v.h[w12, #1], p1/m, z1.h
+// CHECK-INST: mov za0v.h[w12, #1], p1/m, z1.h
+// CHECK-ENCODING: [0x21,0x84,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 40 c0 <unknown>
+
+mova za1v.h[w14, #0], p5/m, z19.h
+// CHECK-INST: mov za1v.h[w14, #0], p5/m, z19.h
+// CHECK-ENCODING: [0x68,0xd6,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 d6 40 c0 <unknown>
+
+mova za0v.h[w12, #0], p6/m, z12.h
+// CHECK-INST: mov za0v.h[w12, #0], p6/m, z12.h
+// CHECK-ENCODING: [0x80,0x99,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 40 c0 <unknown>
+
+mova za0v.h[w14, #1], p2/m, z1.h
+// CHECK-INST: mov za0v.h[w14, #1], p2/m, z1.h
+// CHECK-ENCODING: [0x21,0xc8,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 c8 40 c0 <unknown>
+
+mova za1v.h[w12, #5], p2/m, z22.h
+// CHECK-INST: mov za1v.h[w12, #5], p2/m, z22.h
+// CHECK-ENCODING: [0xcd,0x8a,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 8a 40 c0 <unknown>
+
+mova za0v.h[w15, #2], p5/m, z9.h
+// CHECK-INST: mov za0v.h[w15, #2], p5/m, z9.h
+// CHECK-ENCODING: [0x22,0xf5,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 40 c0 <unknown>
+
+mova za0v.h[w13, #7], p2/m, z12.h
+// CHECK-INST: mov za0v.h[w13, #7], p2/m, z12.h
+// CHECK-ENCODING: [0x87,0xa9,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 40 c0 <unknown>
+
+// Aliases
+
+mov za0v.h[w12, #0], p0/m, z0.h
+// CHECK-INST: mov za0v.h[w12, #0], p0/m, z0.h
+// CHECK-ENCODING: [0x00,0x80,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 40 c0 <unknown>
+
+mov za0v.h[w14, #5], p5/m, z10.h
+// CHECK-INST: mov za0v.h[w14, #5], p5/m, z10.h
+// CHECK-ENCODING: [0x45,0xd5,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 d5 40 c0 <unknown>
+
+mov za0v.h[w15, #7], p3/m, z13.h
+// CHECK-INST: mov za0v.h[w15, #7], p3/m, z13.h
+// CHECK-ENCODING: [0xa7,0xed,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 ed 40 c0 <unknown>
+
+mov za1v.h[w15, #7], p7/m, z31.h
+// CHECK-INST: mov za1v.h[w15, #7], p7/m, z31.h
+// CHECK-ENCODING: [0xef,0xff,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef ff 40 c0 <unknown>
+
+mov za0v.h[w12, #5], p3/m, z17.h
+// CHECK-INST: mov za0v.h[w12, #5], p3/m, z17.h
+// CHECK-ENCODING: [0x25,0x8e,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8e 40 c0 <unknown>
+
+mov za0v.h[w12, #1], p1/m, z1.h
+// CHECK-INST: mov za0v.h[w12, #1], p1/m, z1.h
+// CHECK-ENCODING: [0x21,0x84,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 40 c0 <unknown>
+
+mov za1v.h[w14, #0], p5/m, z19.h
+// CHECK-INST: mov za1v.h[w14, #0], p5/m, z19.h
+// CHECK-ENCODING: [0x68,0xd6,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 d6 40 c0 <unknown>
+
+mov za0v.h[w12, #0], p6/m, z12.h
+// CHECK-INST: mov za0v.h[w12, #0], p6/m, z12.h
+// CHECK-ENCODING: [0x80,0x99,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 40 c0 <unknown>
+
+mov za0v.h[w14, #1], p2/m, z1.h
+// CHECK-INST: mov za0v.h[w14, #1], p2/m, z1.h
+// CHECK-ENCODING: [0x21,0xc8,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 c8 40 c0 <unknown>
+
+mov za1v.h[w12, #5], p2/m, z22.h
+// CHECK-INST: mov za1v.h[w12, #5], p2/m, z22.h
+// CHECK-ENCODING: [0xcd,0x8a,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 8a 40 c0 <unknown>
+
+mov za0v.h[w15, #2], p5/m, z9.h
+// CHECK-INST: mov za0v.h[w15, #2], p5/m, z9.h
+// CHECK-ENCODING: [0x22,0xf5,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 40 c0 <unknown>
+
+mov za0v.h[w13, #7], p2/m, z12.h
+// CHECK-INST: mov za0v.h[w13, #7], p2/m, z12.h
+// CHECK-ENCODING: [0x87,0xa9,0x40,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 40 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Insert, vector to tile, horizontal, 32-bit
+
+mova za0h.s[w12, #0], p0/m, z0.s
+// CHECK-INST: mov za0h.s[w12, #0], p0/m, z0.s
+// CHECK-ENCODING: [0x00,0x00,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 80 c0 <unknown>
+
+mova za1h.s[w14, #1], p5/m, z10.s
+// CHECK-INST: mov za1h.s[w14, #1], p5/m, z10.s
+// CHECK-ENCODING: [0x45,0x55,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 55 80 c0 <unknown>
+
+mova za1h.s[w15, #3], p3/m, z13.s
+// CHECK-INST: mov za1h.s[w15, #3], p3/m, z13.s
+// CHECK-ENCODING: [0xa7,0x6d,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 6d 80 c0 <unknown>
+
+mova za3h.s[w15, #3], p7/m, z31.s
+// CHECK-INST: mov za3h.s[w15, #3], p7/m, z31.s
+// CHECK-ENCODING: [0xef,0x7f,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef 7f 80 c0 <unknown>
+
+mova za1h.s[w12, #1], p3/m, z17.s
+// CHECK-INST: mov za1h.s[w12, #1], p3/m, z17.s
+// CHECK-ENCODING: [0x25,0x0e,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0e 80 c0 <unknown>
+
+mova za0h.s[w12, #1], p1/m, z1.s
+// CHECK-INST: mov za0h.s[w12, #1], p1/m, z1.s
+// CHECK-ENCODING: [0x21,0x04,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 80 c0 <unknown>
+
+mova za2h.s[w14, #0], p5/m, z19.s
+// CHECK-INST: mov za2h.s[w14, #0], p5/m, z19.s
+// CHECK-ENCODING: [0x68,0x56,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 56 80 c0 <unknown>
+
+mova za0h.s[w12, #0], p6/m, z12.s
+// CHECK-INST: mov za0h.s[w12, #0], p6/m, z12.s
+// CHECK-ENCODING: [0x80,0x19,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 80 c0 <unknown>
+
+mova za0h.s[w14, #1], p2/m, z1.s
+// CHECK-INST: mov za0h.s[w14, #1], p2/m, z1.s
+// CHECK-ENCODING: [0x21,0x48,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 48 80 c0 <unknown>
+
+mova za3h.s[w12, #1], p2/m, z22.s
+// CHECK-INST: mov za3h.s[w12, #1], p2/m, z22.s
+// CHECK-ENCODING: [0xcd,0x0a,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 0a 80 c0 <unknown>
+
+mova za0h.s[w15, #2], p5/m, z9.s
+// CHECK-INST: mov za0h.s[w15, #2], p5/m, z9.s
+// CHECK-ENCODING: [0x22,0x75,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 80 c0 <unknown>
+
+mova za1h.s[w13, #3], p2/m, z12.s
+// CHECK-INST: mov za1h.s[w13, #3], p2/m, z12.s
+// CHECK-ENCODING: [0x87,0x29,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 80 c0 <unknown>
+
+// Aliases
+
+mov za0h.s[w12, #0], p0/m, z0.s
+// CHECK-INST: mov za0h.s[w12, #0], p0/m, z0.s
+// CHECK-ENCODING: [0x00,0x00,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 80 c0 <unknown>
+
+mov za1h.s[w14, #1], p5/m, z10.s
+// CHECK-INST: mov za1h.s[w14, #1], p5/m, z10.s
+// CHECK-ENCODING: [0x45,0x55,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 55 80 c0 <unknown>
+
+mov za1h.s[w15, #3], p3/m, z13.s
+// CHECK-INST: mov za1h.s[w15, #3], p3/m, z13.s
+// CHECK-ENCODING: [0xa7,0x6d,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 6d 80 c0 <unknown>
+
+mov za3h.s[w15, #3], p7/m, z31.s
+// CHECK-INST: mov za3h.s[w15, #3], p7/m, z31.s
+// CHECK-ENCODING: [0xef,0x7f,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef 7f 80 c0 <unknown>
+
+mov za1h.s[w12, #1], p3/m, z17.s
+// CHECK-INST: mov za1h.s[w12, #1], p3/m, z17.s
+// CHECK-ENCODING: [0x25,0x0e,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0e 80 c0 <unknown>
+
+mov za0h.s[w12, #1], p1/m, z1.s
+// CHECK-INST: mov za0h.s[w12, #1], p1/m, z1.s
+// CHECK-ENCODING: [0x21,0x04,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 80 c0 <unknown>
+
+mov za2h.s[w14, #0], p5/m, z19.s
+// CHECK-INST: mov za2h.s[w14, #0], p5/m, z19.s
+// CHECK-ENCODING: [0x68,0x56,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 56 80 c0 <unknown>
+
+mov za0h.s[w12, #0], p6/m, z12.s
+// CHECK-INST: mov za0h.s[w12, #0], p6/m, z12.s
+// CHECK-ENCODING: [0x80,0x19,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 80 c0 <unknown>
+
+mov za0h.s[w14, #1], p2/m, z1.s
+// CHECK-INST: mov za0h.s[w14, #1], p2/m, z1.s
+// CHECK-ENCODING: [0x21,0x48,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 48 80 c0 <unknown>
+
+mov za3h.s[w12, #1], p2/m, z22.s
+// CHECK-INST: mov za3h.s[w12, #1], p2/m, z22.s
+// CHECK-ENCODING: [0xcd,0x0a,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 0a 80 c0 <unknown>
+
+mov za0h.s[w15, #2], p5/m, z9.s
+// CHECK-INST: mov za0h.s[w15, #2], p5/m, z9.s
+// CHECK-ENCODING: [0x22,0x75,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 80 c0 <unknown>
+
+mov za1h.s[w13, #3], p2/m, z12.s
+// CHECK-INST: mov za1h.s[w13, #3], p2/m, z12.s
+// CHECK-ENCODING: [0x87,0x29,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 80 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Insert, vector to tile, vertical, 32-bit
+
+mova za0v.s[w12, #0], p0/m, z0.s
+// CHECK-INST: mov za0v.s[w12, #0], p0/m, z0.s
+// CHECK-ENCODING: [0x00,0x80,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 80 c0 <unknown>
+
+mova za1v.s[w14, #1], p5/m, z10.s
+// CHECK-INST: mov za1v.s[w14, #1], p5/m, z10.s
+// CHECK-ENCODING: [0x45,0xd5,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 d5 80 c0 <unknown>
+
+mova za1v.s[w15, #3], p3/m, z13.s
+// CHECK-INST: mov za1v.s[w15, #3], p3/m, z13.s
+// CHECK-ENCODING: [0xa7,0xed,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 ed 80 c0 <unknown>
+
+mova za3v.s[w15, #3], p7/m, z31.s
+// CHECK-INST: mov za3v.s[w15, #3], p7/m, z31.s
+// CHECK-ENCODING: [0xef,0xff,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef ff 80 c0 <unknown>
+
+mova za1v.s[w12, #1], p3/m, z17.s
+// CHECK-INST: mov za1v.s[w12, #1], p3/m, z17.s
+// CHECK-ENCODING: [0x25,0x8e,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8e 80 c0 <unknown>
+
+mova za0v.s[w12, #1], p1/m, z1.s
+// CHECK-INST: mov za0v.s[w12, #1], p1/m, z1.s
+// CHECK-ENCODING: [0x21,0x84,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 80 c0 <unknown>
+
+mova za2v.s[w14, #0], p5/m, z19.s
+// CHECK-INST: mov za2v.s[w14, #0], p5/m, z19.s
+// CHECK-ENCODING: [0x68,0xd6,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 d6 80 c0 <unknown>
+
+mova za0v.s[w12, #0], p6/m, z12.s
+// CHECK-INST: mov za0v.s[w12, #0], p6/m, z12.s
+// CHECK-ENCODING: [0x80,0x99,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 80 c0 <unknown>
+
+mova za0v.s[w14, #1], p2/m, z1.s
+// CHECK-INST: mov za0v.s[w14, #1], p2/m, z1.s
+// CHECK-ENCODING: [0x21,0xc8,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 c8 80 c0 <unknown>
+
+mova za3v.s[w12, #1], p2/m, z22.s
+// CHECK-INST: mov za3v.s[w12, #1], p2/m, z22.s
+// CHECK-ENCODING: [0xcd,0x8a,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 8a 80 c0 <unknown>
+
+mova za0v.s[w15, #2], p5/m, z9.s
+// CHECK-INST: mov za0v.s[w15, #2], p5/m, z9.s
+// CHECK-ENCODING: [0x22,0xf5,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 80 c0 <unknown>
+
+mova za1v.s[w13, #3], p2/m, z12.s
+// CHECK-INST: mov za1v.s[w13, #3], p2/m, z12.s
+// CHECK-ENCODING: [0x87,0xa9,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 80 c0 <unknown>
+
+// Aliases
+
+mov za0v.s[w12, #0], p0/m, z0.s
+// CHECK-INST: mov za0v.s[w12, #0], p0/m, z0.s
+// CHECK-ENCODING: [0x00,0x80,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 80 c0 <unknown>
+
+mov za1v.s[w14, #1], p5/m, z10.s
+// CHECK-INST: mov za1v.s[w14, #1], p5/m, z10.s
+// CHECK-ENCODING: [0x45,0xd5,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 d5 80 c0 <unknown>
+
+mov za1v.s[w15, #3], p3/m, z13.s
+// CHECK-INST: mov za1v.s[w15, #3], p3/m, z13.s
+// CHECK-ENCODING: [0xa7,0xed,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 ed 80 c0 <unknown>
+
+mov za3v.s[w15, #3], p7/m, z31.s
+// CHECK-INST: mov za3v.s[w15, #3], p7/m, z31.s
+// CHECK-ENCODING: [0xef,0xff,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef ff 80 c0 <unknown>
+
+mov za1v.s[w12, #1], p3/m, z17.s
+// CHECK-INST: mov za1v.s[w12, #1], p3/m, z17.s
+// CHECK-ENCODING: [0x25,0x8e,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8e 80 c0 <unknown>
+
+mov za0v.s[w12, #1], p1/m, z1.s
+// CHECK-INST: mov za0v.s[w12, #1], p1/m, z1.s
+// CHECK-ENCODING: [0x21,0x84,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 80 c0 <unknown>
+
+mov za2v.s[w14, #0], p5/m, z19.s
+// CHECK-INST: mov za2v.s[w14, #0], p5/m, z19.s
+// CHECK-ENCODING: [0x68,0xd6,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 d6 80 c0 <unknown>
+
+mov za0v.s[w12, #0], p6/m, z12.s
+// CHECK-INST: mov za0v.s[w12, #0], p6/m, z12.s
+// CHECK-ENCODING: [0x80,0x99,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 80 c0 <unknown>
+
+mov za0v.s[w14, #1], p2/m, z1.s
+// CHECK-INST: mov za0v.s[w14, #1], p2/m, z1.s
+// CHECK-ENCODING: [0x21,0xc8,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 c8 80 c0 <unknown>
+
+mov za3v.s[w12, #1], p2/m, z22.s
+// CHECK-INST: mov za3v.s[w12, #1], p2/m, z22.s
+// CHECK-ENCODING: [0xcd,0x8a,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 8a 80 c0 <unknown>
+
+mov za0v.s[w15, #2], p5/m, z9.s
+// CHECK-INST: mov za0v.s[w15, #2], p5/m, z9.s
+// CHECK-ENCODING: [0x22,0xf5,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 80 c0 <unknown>
+
+mov za1v.s[w13, #3], p2/m, z12.s
+// CHECK-INST: mov za1v.s[w13, #3], p2/m, z12.s
+// CHECK-ENCODING: [0x87,0xa9,0x80,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 80 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Insert, vector to tile, horizontal, 64-bit
+
+mova za0h.d[w12, #0], p0/m, z0.d
+// CHECK-INST: mov za0h.d[w12, #0], p0/m, z0.d
+// CHECK-ENCODING: [0x00,0x00,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 c0 c0 <unknown>
+
+mova za2h.d[w14, #1], p5/m, z10.d
+// CHECK-INST: mov za2h.d[w14, #1], p5/m, z10.d
+// CHECK-ENCODING: [0x45,0x55,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 55 c0 c0 <unknown>
+
+mova za3h.d[w15, #1], p3/m, z13.d
+// CHECK-INST: mov za3h.d[w15, #1], p3/m, z13.d
+// CHECK-ENCODING: [0xa7,0x6d,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 6d c0 c0 <unknown>
+
+mova za7h.d[w15, #1], p7/m, z31.d
+// CHECK-INST: mov za7h.d[w15, #1], p7/m, z31.d
+// CHECK-ENCODING: [0xef,0x7f,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef 7f c0 c0 <unknown>
+
+mova za2h.d[w12, #1], p3/m, z17.d
+// CHECK-INST: mov za2h.d[w12, #1], p3/m, z17.d
+// CHECK-ENCODING: [0x25,0x0e,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0e c0 c0 <unknown>
+
+mova za0h.d[w12, #1], p1/m, z1.d
+// CHECK-INST: mov za0h.d[w12, #1], p1/m, z1.d
+// CHECK-ENCODING: [0x21,0x04,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 c0 c0 <unknown>
+
+mova za4h.d[w14, #0], p5/m, z19.d
+// CHECK-INST: mov za4h.d[w14, #0], p5/m, z19.d
+// CHECK-ENCODING: [0x68,0x56,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 56 c0 c0 <unknown>
+
+mova za0h.d[w12, #0], p6/m, z12.d
+// CHECK-INST: mov za0h.d[w12, #0], p6/m, z12.d
+// CHECK-ENCODING: [0x80,0x19,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 c0 c0 <unknown>
+
+mova za0h.d[w14, #1], p2/m, z1.d
+// CHECK-INST: mov za0h.d[w14, #1], p2/m, z1.d
+// CHECK-ENCODING: [0x21,0x48,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 48 c0 c0 <unknown>
+
+mova za6h.d[w12, #1], p2/m, z22.d
+// CHECK-INST: mov za6h.d[w12, #1], p2/m, z22.d
+// CHECK-ENCODING: [0xcd,0x0a,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 0a c0 c0 <unknown>
+
+mova za1h.d[w15, #0], p5/m, z9.d
+// CHECK-INST: mov za1h.d[w15, #0], p5/m, z9.d
+// CHECK-ENCODING: [0x22,0x75,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 c0 c0 <unknown>
+
+mova za3h.d[w13, #1], p2/m, z12.d
+// CHECK-INST: mov za3h.d[w13, #1], p2/m, z12.d
+// CHECK-ENCODING: [0x87,0x29,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 c0 c0 <unknown>
+
+// Aliases
+
+mov za0h.d[w12, #0], p0/m, z0.d
+// CHECK-INST: mov za0h.d[w12, #0], p0/m, z0.d
+// CHECK-ENCODING: [0x00,0x00,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 c0 c0 <unknown>
+
+mov za2h.d[w14, #1], p5/m, z10.d
+// CHECK-INST: mov za2h.d[w14, #1], p5/m, z10.d
+// CHECK-ENCODING: [0x45,0x55,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 55 c0 c0 <unknown>
+
+mov za3h.d[w15, #1], p3/m, z13.d
+// CHECK-INST: mov za3h.d[w15, #1], p3/m, z13.d
+// CHECK-ENCODING: [0xa7,0x6d,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 6d c0 c0 <unknown>
+
+mov za7h.d[w15, #1], p7/m, z31.d
+// CHECK-INST: mov za7h.d[w15, #1], p7/m, z31.d
+// CHECK-ENCODING: [0xef,0x7f,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef 7f c0 c0 <unknown>
+
+mov za2h.d[w12, #1], p3/m, z17.d
+// CHECK-INST: mov za2h.d[w12, #1], p3/m, z17.d
+// CHECK-ENCODING: [0x25,0x0e,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0e c0 c0 <unknown>
+
+mov za0h.d[w12, #1], p1/m, z1.d
+// CHECK-INST: mov za0h.d[w12, #1], p1/m, z1.d
+// CHECK-ENCODING: [0x21,0x04,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 c0 c0 <unknown>
+
+mov za4h.d[w14, #0], p5/m, z19.d
+// CHECK-INST: mov za4h.d[w14, #0], p5/m, z19.d
+// CHECK-ENCODING: [0x68,0x56,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 56 c0 c0 <unknown>
+
+mov za0h.d[w12, #0], p6/m, z12.d
+// CHECK-INST: mov za0h.d[w12, #0], p6/m, z12.d
+// CHECK-ENCODING: [0x80,0x19,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 c0 c0 <unknown>
+
+mov za0h.d[w14, #1], p2/m, z1.d
+// CHECK-INST: mov za0h.d[w14, #1], p2/m, z1.d
+// CHECK-ENCODING: [0x21,0x48,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 48 c0 c0 <unknown>
+
+mov za6h.d[w12, #1], p2/m, z22.d
+// CHECK-INST: mov za6h.d[w12, #1], p2/m, z22.d
+// CHECK-ENCODING: [0xcd,0x0a,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 0a c0 c0 <unknown>
+
+mov za1h.d[w15, #0], p5/m, z9.d
+// CHECK-INST: mov za1h.d[w15, #0], p5/m, z9.d
+// CHECK-ENCODING: [0x22,0x75,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 c0 c0 <unknown>
+
+mov za3h.d[w13, #1], p2/m, z12.d
+// CHECK-INST: mov za3h.d[w13, #1], p2/m, z12.d
+// CHECK-ENCODING: [0x87,0x29,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 c0 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Insert, vector to tile, vertical, 64-bit
+
+mova za0v.d[w12, #0], p0/m, z0.d
+// CHECK-INST: mov za0v.d[w12, #0], p0/m, z0.d
+// CHECK-ENCODING: [0x00,0x80,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 c0 c0 <unknown>
+
+mova za2v.d[w14, #1], p5/m, z10.d
+// CHECK-INST: mov za2v.d[w14, #1], p5/m, z10.d
+// CHECK-ENCODING: [0x45,0xd5,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 d5 c0 c0 <unknown>
+
+mova za3v.d[w15, #1], p3/m, z13.d
+// CHECK-INST: mov za3v.d[w15, #1], p3/m, z13.d
+// CHECK-ENCODING: [0xa7,0xed,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 ed c0 c0 <unknown>
+
+mova za7v.d[w15, #1], p7/m, z31.d
+// CHECK-INST: mov za7v.d[w15, #1], p7/m, z31.d
+// CHECK-ENCODING: [0xef,0xff,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef ff c0 c0 <unknown>
+
+mova za2v.d[w12, #1], p3/m, z17.d
+// CHECK-INST: mov za2v.d[w12, #1], p3/m, z17.d
+// CHECK-ENCODING: [0x25,0x8e,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8e c0 c0 <unknown>
+
+mova za0v.d[w12, #1], p1/m, z1.d
+// CHECK-INST: mov za0v.d[w12, #1], p1/m, z1.d
+// CHECK-ENCODING: [0x21,0x84,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 c0 c0 <unknown>
+
+mova za4v.d[w14, #0], p5/m, z19.d
+// CHECK-INST: mov za4v.d[w14, #0], p5/m, z19.d
+// CHECK-ENCODING: [0x68,0xd6,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 d6 c0 c0 <unknown>
+
+mova za0v.d[w12, #0], p6/m, z12.d
+// CHECK-INST: mov za0v.d[w12, #0], p6/m, z12.d
+// CHECK-ENCODING: [0x80,0x99,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 c0 c0 <unknown>
+
+mova za0v.d[w14, #1], p2/m, z1.d
+// CHECK-INST: mov za0v.d[w14, #1], p2/m, z1.d
+// CHECK-ENCODING: [0x21,0xc8,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 c8 c0 c0 <unknown>
+
+mova za6v.d[w12, #1], p2/m, z22.d
+// CHECK-INST: mov za6v.d[w12, #1], p2/m, z22.d
+// CHECK-ENCODING: [0xcd,0x8a,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 8a c0 c0 <unknown>
+
+mova za1v.d[w15, #0], p5/m, z9.d
+// CHECK-INST: mov za1v.d[w15, #0], p5/m, z9.d
+// CHECK-ENCODING: [0x22,0xf5,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 c0 c0 <unknown>
+
+mova za3v.d[w13, #1], p2/m, z12.d
+// CHECK-INST: mov za3v.d[w13, #1], p2/m, z12.d
+// CHECK-ENCODING: [0x87,0xa9,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 c0 c0 <unknown>
+
+// Aliases
+
+mov za0v.d[w12, #0], p0/m, z0.d
+// CHECK-INST: mov za0v.d[w12, #0], p0/m, z0.d
+// CHECK-ENCODING: [0x00,0x80,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 c0 c0 <unknown>
+
+mov za2v.d[w14, #1], p5/m, z10.d
+// CHECK-INST: mov za2v.d[w14, #1], p5/m, z10.d
+// CHECK-ENCODING: [0x45,0xd5,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 d5 c0 c0 <unknown>
+
+mov za3v.d[w15, #1], p3/m, z13.d
+// CHECK-INST: mov za3v.d[w15, #1], p3/m, z13.d
+// CHECK-ENCODING: [0xa7,0xed,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 ed c0 c0 <unknown>
+
+mov za7v.d[w15, #1], p7/m, z31.d
+// CHECK-INST: mov za7v.d[w15, #1], p7/m, z31.d
+// CHECK-ENCODING: [0xef,0xff,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef ff c0 c0 <unknown>
+
+mov za2v.d[w12, #1], p3/m, z17.d
+// CHECK-INST: mov za2v.d[w12, #1], p3/m, z17.d
+// CHECK-ENCODING: [0x25,0x8e,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8e c0 c0 <unknown>
+
+mov za0v.d[w12, #1], p1/m, z1.d
+// CHECK-INST: mov za0v.d[w12, #1], p1/m, z1.d
+// CHECK-ENCODING: [0x21,0x84,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 c0 c0 <unknown>
+
+mov za4v.d[w14, #0], p5/m, z19.d
+// CHECK-INST: mov za4v.d[w14, #0], p5/m, z19.d
+// CHECK-ENCODING: [0x68,0xd6,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 d6 c0 c0 <unknown>
+
+mov za0v.d[w12, #0], p6/m, z12.d
+// CHECK-INST: mov za0v.d[w12, #0], p6/m, z12.d
+// CHECK-ENCODING: [0x80,0x99,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 c0 c0 <unknown>
+
+mov za0v.d[w14, #1], p2/m, z1.d
+// CHECK-INST: mov za0v.d[w14, #1], p2/m, z1.d
+// CHECK-ENCODING: [0x21,0xc8,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 c8 c0 c0 <unknown>
+
+mov za6v.d[w12, #1], p2/m, z22.d
+// CHECK-INST: mov za6v.d[w12, #1], p2/m, z22.d
+// CHECK-ENCODING: [0xcd,0x8a,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 8a c0 c0 <unknown>
+
+mov za1v.d[w15, #0], p5/m, z9.d
+// CHECK-INST: mov za1v.d[w15, #0], p5/m, z9.d
+// CHECK-ENCODING: [0x22,0xf5,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 c0 c0 <unknown>
+
+mov za3v.d[w13, #1], p2/m, z12.d
+// CHECK-INST: mov za3v.d[w13, #1], p2/m, z12.d
+// CHECK-ENCODING: [0x87,0xa9,0xc0,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 c0 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Insert, vector to tile, horizontal, 128-bit
+
+mova za0h.q[w12], p0/m, z0.q
+// CHECK-INST: mov za0h.q[w12], p0/m, z0.q
+// CHECK-ENCODING: [0x00,0x00,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 c1 c0 <unknown>
+
+mova za5h.q[w14], p5/m, z10.q
+// CHECK-INST: mov za5h.q[w14], p5/m, z10.q
+// CHECK-ENCODING: [0x45,0x55,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 55 c1 c0 <unknown>
+
+mova za7h.q[w15], p3/m, z13.q
+// CHECK-INST: mov za7h.q[w15], p3/m, z13.q
+// CHECK-ENCODING: [0xa7,0x6d,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 6d c1 c0 <unknown>
+
+mova za15h.q[w15], p7/m, z31.q
+// CHECK-INST: mov za15h.q[w15], p7/m, z31.q
+// CHECK-ENCODING: [0xef,0x7f,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef 7f c1 c0 <unknown>
+
+mova za5h.q[w12], p3/m, z17.q
+// CHECK-INST: mov za5h.q[w12], p3/m, z17.q
+// CHECK-ENCODING: [0x25,0x0e,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0e c1 c0 <unknown>
+
+mova za1h.q[w12], p1/m, z1.q
+// CHECK-INST: mov za1h.q[w12], p1/m, z1.q
+// CHECK-ENCODING: [0x21,0x04,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 c1 c0 <unknown>
+
+mova za8h.q[w14], p5/m, z19.q
+// CHECK-INST: mov za8h.q[w14], p5/m, z19.q
+// CHECK-ENCODING: [0x68,0x56,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 56 c1 c0 <unknown>
+
+mova za0h.q[w12], p6/m, z12.q
+// CHECK-INST: mov za0h.q[w12], p6/m, z12.q
+// CHECK-ENCODING: [0x80,0x19,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 c1 c0 <unknown>
+
+mova za1h.q[w14], p2/m, z1.q
+// CHECK-INST: mov za1h.q[w14], p2/m, z1.q
+// CHECK-ENCODING: [0x21,0x48,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 48 c1 c0 <unknown>
+
+mova za13h.q[w12], p2/m, z22.q
+// CHECK-INST: mov za13h.q[w12], p2/m, z22.q
+// CHECK-ENCODING: [0xcd,0x0a,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 0a c1 c0 <unknown>
+
+mova za2h.q[w15], p5/m, z9.q
+// CHECK-INST: mov za2h.q[w15], p5/m, z9.q
+// CHECK-ENCODING: [0x22,0x75,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 c1 c0 <unknown>
+
+mova za7h.q[w13], p2/m, z12.q
+// CHECK-INST: mov za7h.q[w13], p2/m, z12.q
+// CHECK-ENCODING: [0x87,0x29,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 c1 c0 <unknown>
+
+// Aliases
+
+mov za0h.q[w12], p0/m, z0.q
+// CHECK-INST: mov za0h.q[w12], p0/m, z0.q
+// CHECK-ENCODING: [0x00,0x00,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 00 c1 c0 <unknown>
+
+mov za5h.q[w14], p5/m, z10.q
+// CHECK-INST: mov za5h.q[w14], p5/m, z10.q
+// CHECK-ENCODING: [0x45,0x55,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 55 c1 c0 <unknown>
+
+mov za7h.q[w15], p3/m, z13.q
+// CHECK-INST: mov za7h.q[w15], p3/m, z13.q
+// CHECK-ENCODING: [0xa7,0x6d,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 6d c1 c0 <unknown>
+
+mov za15h.q[w15], p7/m, z31.q
+// CHECK-INST: mov za15h.q[w15], p7/m, z31.q
+// CHECK-ENCODING: [0xef,0x7f,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef 7f c1 c0 <unknown>
+
+mov za5h.q[w12], p3/m, z17.q
+// CHECK-INST: mov za5h.q[w12], p3/m, z17.q
+// CHECK-ENCODING: [0x25,0x0e,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 0e c1 c0 <unknown>
+
+mov za1h.q[w12], p1/m, z1.q
+// CHECK-INST: mov za1h.q[w12], p1/m, z1.q
+// CHECK-ENCODING: [0x21,0x04,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 04 c1 c0 <unknown>
+
+mov za8h.q[w14], p5/m, z19.q
+// CHECK-INST: mov za8h.q[w14], p5/m, z19.q
+// CHECK-ENCODING: [0x68,0x56,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 56 c1 c0 <unknown>
+
+mov za0h.q[w12], p6/m, z12.q
+// CHECK-INST: mov za0h.q[w12], p6/m, z12.q
+// CHECK-ENCODING: [0x80,0x19,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 19 c1 c0 <unknown>
+
+mov za1h.q[w14], p2/m, z1.q
+// CHECK-INST: mov za1h.q[w14], p2/m, z1.q
+// CHECK-ENCODING: [0x21,0x48,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 48 c1 c0 <unknown>
+
+mov za13h.q[w12], p2/m, z22.q
+// CHECK-INST: mov za13h.q[w12], p2/m, z22.q
+// CHECK-ENCODING: [0xcd,0x0a,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 0a c1 c0 <unknown>
+
+mov za2h.q[w15], p5/m, z9.q
+// CHECK-INST: mov za2h.q[w15], p5/m, z9.q
+// CHECK-ENCODING: [0x22,0x75,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 75 c1 c0 <unknown>
+
+mov za7h.q[w13], p2/m, z12.q
+// CHECK-INST: mov za7h.q[w13], p2/m, z12.q
+// CHECK-ENCODING: [0x87,0x29,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 29 c1 c0 <unknown>
+
+// --------------------------------------------------------------------------//
+// Insert, vector to tile, vertical, 128-bit
+
+mova za0v.q[w12], p0/m, z0.q
+// CHECK-INST: mov za0v.q[w12], p0/m, z0.q
+// CHECK-ENCODING: [0x00,0x80,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 c1 c0 <unknown>
+
+mova za5v.q[w14], p5/m, z10.q
+// CHECK-INST: mov za5v.q[w14], p5/m, z10.q
+// CHECK-ENCODING: [0x45,0xd5,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 d5 c1 c0 <unknown>
+
+mova za7v.q[w15], p3/m, z13.q
+// CHECK-INST: mov za7v.q[w15], p3/m, z13.q
+// CHECK-ENCODING: [0xa7,0xed,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 ed c1 c0 <unknown>
+
+mova za15v.q[w15], p7/m, z31.q
+// CHECK-INST: mov za15v.q[w15], p7/m, z31.q
+// CHECK-ENCODING: [0xef,0xff,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef ff c1 c0 <unknown>
+
+mova za5v.q[w12], p3/m, z17.q
+// CHECK-INST: mov za5v.q[w12], p3/m, z17.q
+// CHECK-ENCODING: [0x25,0x8e,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8e c1 c0 <unknown>
+
+mova za1v.q[w12], p1/m, z1.q
+// CHECK-INST: mov za1v.q[w12], p1/m, z1.q
+// CHECK-ENCODING: [0x21,0x84,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 c1 c0 <unknown>
+
+mova za8v.q[w14], p5/m, z19.q
+// CHECK-INST: mov za8v.q[w14], p5/m, z19.q
+// CHECK-ENCODING: [0x68,0xd6,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 d6 c1 c0 <unknown>
+
+mova za0v.q[w12], p6/m, z12.q
+// CHECK-INST: mov za0v.q[w12], p6/m, z12.q
+// CHECK-ENCODING: [0x80,0x99,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 c1 c0 <unknown>
+
+mova za1v.q[w14], p2/m, z1.q
+// CHECK-INST: mov za1v.q[w14], p2/m, z1.q
+// CHECK-ENCODING: [0x21,0xc8,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 c8 c1 c0 <unknown>
+
+mova za13v.q[w12], p2/m, z22.q
+// CHECK-INST: mov za13v.q[w12], p2/m, z22.q
+// CHECK-ENCODING: [0xcd,0x8a,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 8a c1 c0 <unknown>
+
+mova za2v.q[w15], p5/m, z9.q
+// CHECK-INST: mov za2v.q[w15], p5/m, z9.q
+// CHECK-ENCODING: [0x22,0xf5,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 c1 c0 <unknown>
+
+mova za7v.q[w13], p2/m, z12.q
+// CHECK-INST: mov za7v.q[w13], p2/m, z12.q
+// CHECK-ENCODING: [0x87,0xa9,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 c1 c0 <unknown>
+
+// Aliases
+
+mov za0v.q[w12], p0/m, z0.q
+// CHECK-INST: mov za0v.q[w12], p0/m, z0.q
+// CHECK-ENCODING: [0x00,0x80,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 00 80 c1 c0 <unknown>
+
+mov za5v.q[w14], p5/m, z10.q
+// CHECK-INST: mov za5v.q[w14], p5/m, z10.q
+// CHECK-ENCODING: [0x45,0xd5,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 45 d5 c1 c0 <unknown>
+
+mov za7v.q[w15], p3/m, z13.q
+// CHECK-INST: mov za7v.q[w15], p3/m, z13.q
+// CHECK-ENCODING: [0xa7,0xed,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: a7 ed c1 c0 <unknown>
+
+mov za15v.q[w15], p7/m, z31.q
+// CHECK-INST: mov za15v.q[w15], p7/m, z31.q
+// CHECK-ENCODING: [0xef,0xff,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: ef ff c1 c0 <unknown>
+
+mov za5v.q[w12], p3/m, z17.q
+// CHECK-INST: mov za5v.q[w12], p3/m, z17.q
+// CHECK-ENCODING: [0x25,0x8e,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 25 8e c1 c0 <unknown>
+
+mov za1v.q[w12], p1/m, z1.q
+// CHECK-INST: mov za1v.q[w12], p1/m, z1.q
+// CHECK-ENCODING: [0x21,0x84,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 84 c1 c0 <unknown>
+
+mov za8v.q[w14], p5/m, z19.q
+// CHECK-INST: mov za8v.q[w14], p5/m, z19.q
+// CHECK-ENCODING: [0x68,0xd6,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 68 d6 c1 c0 <unknown>
+
+mov za0v.q[w12], p6/m, z12.q
+// CHECK-INST: mov za0v.q[w12], p6/m, z12.q
+// CHECK-ENCODING: [0x80,0x99,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 80 99 c1 c0 <unknown>
+
+mov za1v.q[w14], p2/m, z1.q
+// CHECK-INST: mov za1v.q[w14], p2/m, z1.q
+// CHECK-ENCODING: [0x21,0xc8,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 21 c8 c1 c0 <unknown>
+
+mov za13v.q[w12], p2/m, z22.q
+// CHECK-INST: mov za13v.q[w12], p2/m, z22.q
+// CHECK-ENCODING: [0xcd,0x8a,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: cd 8a c1 c0 <unknown>
+
+mov za2v.q[w15], p5/m, z9.q
+// CHECK-INST: mov za2v.q[w15], p5/m, z9.q
+// CHECK-ENCODING: [0x22,0xf5,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 22 f5 c1 c0 <unknown>
+
+mov za7v.q[w13], p2/m, z12.q
+// CHECK-INST: mov za7v.q[w13], p2/m, z12.q
+// CHECK-ENCODING: [0x87,0xa9,0xc1,0xc0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: 87 a9 c1 c0 <unknown>
More information about the llvm-commits
mailing list