[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