test_cases:
  -
    input:
      bytes: [ 0x00, 0x00, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za0h.h[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0x40, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h, z21.h }, za0h.h[w14, 4:5]"

  -
    input:
      bytes: [ 0xb6, 0x60, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.h, z23.h }, za1h.h[w15, 2:3]"

  -
    input:
      bytes: [ 0xfe, 0x60, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.h, z31.h }, za1h.h[w15, 6:7]"

  -
    input:
      bytes: [ 0x24, 0x00, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h, z5.h }, za0h.h[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x00, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za0h.h[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0x40, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.h, z25.h }, za0h.h[w14, 6:7]"

  -
    input:
      bytes: [ 0x80, 0x00, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za1h.h[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0x40, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.h, z17.h }, za0h.h[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x00, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h, z29.h }, za1h.h[w12, 4:5]"

  -
    input:
      bytes: [ 0x22, 0x60, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.h, z3.h }, za0h.h[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0x20, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.h, z7.h }, za1h.h[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x00, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za0h.h[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0x40, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h, z21.h }, za0h.h[w14, 4:5]"

  -
    input:
      bytes: [ 0xb6, 0x60, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.h, z23.h }, za1h.h[w15, 2:3]"

  -
    input:
      bytes: [ 0xfe, 0x60, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.h, z31.h }, za1h.h[w15, 6:7]"

  -
    input:
      bytes: [ 0x24, 0x00, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h, z5.h }, za0h.h[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x00, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za0h.h[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0x40, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.h, z25.h }, za0h.h[w14, 6:7]"

  -
    input:
      bytes: [ 0x80, 0x00, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za1h.h[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0x40, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.h, z17.h }, za0h.h[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x00, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h, z29.h }, za1h.h[w12, 4:5]"

  -
    input:
      bytes: [ 0x22, 0x60, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.h, z3.h }, za0h.h[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0x20, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.h, z7.h }, za1h.h[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x80, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za0v.h[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0xc0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h, z21.h }, za0v.h[w14, 4:5]"

  -
    input:
      bytes: [ 0xb6, 0xe0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.h, z23.h }, za1v.h[w15, 2:3]"

  -
    input:
      bytes: [ 0xfe, 0xe0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.h, z31.h }, za1v.h[w15, 6:7]"

  -
    input:
      bytes: [ 0x24, 0x80, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h, z5.h }, za0v.h[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x80, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za0v.h[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0xc0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.h, z25.h }, za0v.h[w14, 6:7]"

  -
    input:
      bytes: [ 0x80, 0x80, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za1v.h[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0xc0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.h, z17.h }, za0v.h[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x80, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h, z29.h }, za1v.h[w12, 4:5]"

  -
    input:
      bytes: [ 0x22, 0xe0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.h, z3.h }, za0v.h[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0xa0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.h, z7.h }, za1v.h[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x80, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za0v.h[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0xc0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h, z21.h }, za0v.h[w14, 4:5]"

  -
    input:
      bytes: [ 0xb6, 0xe0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.h, z23.h }, za1v.h[w15, 2:3]"

  -
    input:
      bytes: [ 0xfe, 0xe0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.h, z31.h }, za1v.h[w15, 6:7]"

  -
    input:
      bytes: [ 0x24, 0x80, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h, z5.h }, za0v.h[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x80, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za0v.h[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0xc0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.h, z25.h }, za0v.h[w14, 6:7]"

  -
    input:
      bytes: [ 0x80, 0x80, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h, z1.h }, za1v.h[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0xc0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.h, z17.h }, za0v.h[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x80, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h, z29.h }, za1v.h[w12, 4:5]"

  -
    input:
      bytes: [ 0x22, 0xe0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.h, z3.h }, za0v.h[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0xa0, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.h, z7.h }, za1v.h[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x00, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 0:1], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0x45, 0x41, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w14, 2:3], { z10.h, z11.h }"

  -
    input:
      bytes: [ 0x87, 0x61, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w15, 6:7], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0xc7, 0x63, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w15, 6:7], { z30.h, z31.h }"

  -
    input:
      bytes: [ 0x05, 0x02, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w12, 2:3], { z16.h, z17.h }"

  -
    input:
      bytes: [ 0x01, 0x00, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 2:3], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0x40, 0x42, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w14, 0:1], { z18.h, z19.h }"

  -
    input:
      bytes: [ 0x80, 0x01, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 0:1], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0x01, 0x40, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w14, 2:3], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0xc5, 0x02, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w12, 2:3], { z22.h, z23.h }"

  -
    input:
      bytes: [ 0x02, 0x61, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w15, 4:5], { z8.h, z9.h }"

  -
    input:
      bytes: [ 0x87, 0x21, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w13, 6:7], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0x00, 0x00, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 0:1], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0x45, 0x41, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w14, 2:3], { z10.h, z11.h }"

  -
    input:
      bytes: [ 0x87, 0x61, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w15, 6:7], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0xc7, 0x63, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w15, 6:7], { z30.h, z31.h }"

  -
    input:
      bytes: [ 0x05, 0x02, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w12, 2:3], { z16.h, z17.h }"

  -
    input:
      bytes: [ 0x01, 0x00, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 2:3], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0x40, 0x42, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w14, 0:1], { z18.h, z19.h }"

  -
    input:
      bytes: [ 0x80, 0x01, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 0:1], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0x01, 0x40, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w14, 2:3], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0xc5, 0x02, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w12, 2:3], { z22.h, z23.h }"

  -
    input:
      bytes: [ 0x02, 0x61, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w15, 4:5], { z8.h, z9.h }"

  -
    input:
      bytes: [ 0x87, 0x21, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w13, 6:7], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0x00, 0x80, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 0:1], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0x45, 0xc1, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w14, 2:3], { z10.h, z11.h }"

  -
    input:
      bytes: [ 0x87, 0xe1, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w15, 6:7], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0xc7, 0xe3, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w15, 6:7], { z30.h, z31.h }"

  -
    input:
      bytes: [ 0x05, 0x82, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w12, 2:3], { z16.h, z17.h }"

  -
    input:
      bytes: [ 0x01, 0x80, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 2:3], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0x40, 0xc2, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w14, 0:1], { z18.h, z19.h }"

  -
    input:
      bytes: [ 0x80, 0x81, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 0:1], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0x01, 0xc0, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w14, 2:3], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0xc5, 0x82, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w12, 2:3], { z22.h, z23.h }"

  -
    input:
      bytes: [ 0x02, 0xe1, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w15, 4:5], { z8.h, z9.h }"

  -
    input:
      bytes: [ 0x87, 0xa1, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w13, 6:7], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0x00, 0x80, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 0:1], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0x45, 0xc1, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w14, 2:3], { z10.h, z11.h }"

  -
    input:
      bytes: [ 0x87, 0xe1, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w15, 6:7], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0xc7, 0xe3, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w15, 6:7], { z30.h, z31.h }"

  -
    input:
      bytes: [ 0x05, 0x82, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w12, 2:3], { z16.h, z17.h }"

  -
    input:
      bytes: [ 0x01, 0x80, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 2:3], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0x40, 0xc2, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w14, 0:1], { z18.h, z19.h }"

  -
    input:
      bytes: [ 0x80, 0x81, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 0:1], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0x01, 0xc0, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w14, 2:3], { z0.h, z1.h }"

  -
    input:
      bytes: [ 0xc5, 0x82, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w12, 2:3], { z22.h, z23.h }"

  -
    input:
      bytes: [ 0x02, 0xe1, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w15, 4:5], { z8.h, z9.h }"

  -
    input:
      bytes: [ 0x87, 0xa1, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w13, 6:7], { z12.h, z13.h }"

  -
    input:
      bytes: [ 0x00, 0x00, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za0h.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0x40, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s, z21.s }, za1h.s[w14, 0:1]"

  -
    input:
      bytes: [ 0xb6, 0x60, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.s, z23.s }, za2h.s[w15, 2:3]"

  -
    input:
      bytes: [ 0xfe, 0x60, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.s, z31.s }, za3h.s[w15, 2:3]"

  -
    input:
      bytes: [ 0x24, 0x00, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s, z5.s }, za0h.s[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x00, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za0h.s[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0x40, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.s, z25.s }, za1h.s[w14, 2:3]"

  -
    input:
      bytes: [ 0x80, 0x00, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za2h.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0x40, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.s, z17.s }, za0h.s[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x00, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s, z29.s }, za3h.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x22, 0x60, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.s, z3.s }, za0h.s[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0x20, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.s, z7.s }, za2h.s[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x00, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za0h.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0x40, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s, z21.s }, za1h.s[w14, 0:1]"

  -
    input:
      bytes: [ 0xb6, 0x60, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.s, z23.s }, za2h.s[w15, 2:3]"

  -
    input:
      bytes: [ 0xfe, 0x60, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.s, z31.s }, za3h.s[w15, 2:3]"

  -
    input:
      bytes: [ 0x24, 0x00, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s, z5.s }, za0h.s[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x00, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za0h.s[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0x40, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.s, z25.s }, za1h.s[w14, 2:3]"

  -
    input:
      bytes: [ 0x80, 0x00, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za2h.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0x40, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.s, z17.s }, za0h.s[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x00, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s, z29.s }, za3h.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x22, 0x60, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.s, z3.s }, za0h.s[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0x20, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.s, z7.s }, za2h.s[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x80, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za0v.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0xc0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s, z21.s }, za1v.s[w14, 0:1]"

  -
    input:
      bytes: [ 0xb6, 0xe0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.s, z23.s }, za2v.s[w15, 2:3]"

  -
    input:
      bytes: [ 0xfe, 0xe0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.s, z31.s }, za3v.s[w15, 2:3]"

  -
    input:
      bytes: [ 0x24, 0x80, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s, z5.s }, za0v.s[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x80, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za0v.s[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0xc0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.s, z25.s }, za1v.s[w14, 2:3]"

  -
    input:
      bytes: [ 0x80, 0x80, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za2v.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0xc0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.s, z17.s }, za0v.s[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x80, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s, z29.s }, za3v.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x22, 0xe0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.s, z3.s }, za0v.s[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0xa0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.s, z7.s }, za2v.s[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x80, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za0v.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0xc0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s, z21.s }, za1v.s[w14, 0:1]"

  -
    input:
      bytes: [ 0xb6, 0xe0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.s, z23.s }, za2v.s[w15, 2:3]"

  -
    input:
      bytes: [ 0xfe, 0xe0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.s, z31.s }, za3v.s[w15, 2:3]"

  -
    input:
      bytes: [ 0x24, 0x80, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s, z5.s }, za0v.s[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x80, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za0v.s[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0xc0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.s, z25.s }, za1v.s[w14, 2:3]"

  -
    input:
      bytes: [ 0x80, 0x80, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s, z1.s }, za2v.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0xc0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.s, z17.s }, za0v.s[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x80, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s, z29.s }, za3v.s[w12, 0:1]"

  -
    input:
      bytes: [ 0x22, 0xe0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.s, z3.s }, za0v.s[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0xa0, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.s, z7.s }, za2v.s[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x00, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w12, 0:1], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0x45, 0x41, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.s[w14, 2:3], { z10.s, z11.s }"

  -
    input:
      bytes: [ 0x87, 0x61, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w15, 2:3], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0xc7, 0x63, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w15, 2:3], { z30.s, z31.s }"

  -
    input:
      bytes: [ 0x05, 0x02, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.s[w12, 2:3], { z16.s, z17.s }"

  -
    input:
      bytes: [ 0x01, 0x00, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w12, 2:3], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0x40, 0x42, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w14, 0:1], { z18.s, z19.s }"

  -
    input:
      bytes: [ 0x80, 0x01, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w12, 0:1], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0x01, 0x40, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w14, 2:3], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0xc5, 0x02, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.s[w12, 2:3], { z22.s, z23.s }"

  -
    input:
      bytes: [ 0x02, 0x61, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w15, 0:1], { z8.s, z9.s }"

  -
    input:
      bytes: [ 0x87, 0x21, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w13, 2:3], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0x00, 0x00, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w12, 0:1], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0x45, 0x41, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.s[w14, 2:3], { z10.s, z11.s }"

  -
    input:
      bytes: [ 0x87, 0x61, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w15, 2:3], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0xc7, 0x63, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w15, 2:3], { z30.s, z31.s }"

  -
    input:
      bytes: [ 0x05, 0x02, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.s[w12, 2:3], { z16.s, z17.s }"

  -
    input:
      bytes: [ 0x01, 0x00, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w12, 2:3], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0x40, 0x42, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w14, 0:1], { z18.s, z19.s }"

  -
    input:
      bytes: [ 0x80, 0x01, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w12, 0:1], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0x01, 0x40, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w14, 2:3], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0xc5, 0x02, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.s[w12, 2:3], { z22.s, z23.s }"

  -
    input:
      bytes: [ 0x02, 0x61, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w15, 0:1], { z8.s, z9.s }"

  -
    input:
      bytes: [ 0x87, 0x21, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w13, 2:3], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0x00, 0x80, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w12, 0:1], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0x45, 0xc1, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.s[w14, 2:3], { z10.s, z11.s }"

  -
    input:
      bytes: [ 0x87, 0xe1, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w15, 2:3], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0xc7, 0xe3, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w15, 2:3], { z30.s, z31.s }"

  -
    input:
      bytes: [ 0x05, 0x82, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.s[w12, 2:3], { z16.s, z17.s }"

  -
    input:
      bytes: [ 0x01, 0x80, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w12, 2:3], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0x40, 0xc2, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w14, 0:1], { z18.s, z19.s }"

  -
    input:
      bytes: [ 0x80, 0x81, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w12, 0:1], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0x01, 0xc0, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w14, 2:3], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0xc5, 0x82, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.s[w12, 2:3], { z22.s, z23.s }"

  -
    input:
      bytes: [ 0x02, 0xe1, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w15, 0:1], { z8.s, z9.s }"

  -
    input:
      bytes: [ 0x87, 0xa1, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w13, 2:3], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0x00, 0x80, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w12, 0:1], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0x45, 0xc1, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.s[w14, 2:3], { z10.s, z11.s }"

  -
    input:
      bytes: [ 0x87, 0xe1, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w15, 2:3], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0xc7, 0xe3, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w15, 2:3], { z30.s, z31.s }"

  -
    input:
      bytes: [ 0x05, 0x82, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.s[w12, 2:3], { z16.s, z17.s }"

  -
    input:
      bytes: [ 0x01, 0x80, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w12, 2:3], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0x40, 0xc2, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w14, 0:1], { z18.s, z19.s }"

  -
    input:
      bytes: [ 0x80, 0x81, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w12, 0:1], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0x01, 0xc0, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w14, 2:3], { z0.s, z1.s }"

  -
    input:
      bytes: [ 0xc5, 0x82, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.s[w12, 2:3], { z22.s, z23.s }"

  -
    input:
      bytes: [ 0x02, 0xe1, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w15, 0:1], { z8.s, z9.s }"

  -
    input:
      bytes: [ 0x87, 0xa1, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w13, 2:3], { z12.s, z13.s }"

  -
    input:
      bytes: [ 0x00, 0x00, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za0h.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0x40, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d, z21.d }, za2h.d[w14, 0:1]"

  -
    input:
      bytes: [ 0xb6, 0x60, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.d, z23.d }, za5h.d[w15, 0:1]"

  -
    input:
      bytes: [ 0xfe, 0x60, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.d, z31.d }, za7h.d[w15, 0:1]"

  -
    input:
      bytes: [ 0x24, 0x00, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d, z5.d }, za1h.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x20, 0x00, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za1h.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x78, 0x40, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d, z25.d }, za3h.d[w14, 0:1]"

  -
    input:
      bytes: [ 0x80, 0x00, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za4h.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0x40, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d, z17.d }, za1h.d[w14, 0:1]"

  -
    input:
      bytes: [ 0xdc, 0x00, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d, z29.d }, za6h.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x22, 0x60, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.d, z3.d }, za1h.d[w15, 0:1]"

  -
    input:
      bytes: [ 0x86, 0x20, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.d, z7.d }, za4h.d[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x00, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za0h.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0x40, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d, z21.d }, za2h.d[w14, 0:1]"

  -
    input:
      bytes: [ 0xb6, 0x60, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.d, z23.d }, za5h.d[w15, 0:1]"

  -
    input:
      bytes: [ 0xfe, 0x60, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.d, z31.d }, za7h.d[w15, 0:1]"

  -
    input:
      bytes: [ 0x24, 0x00, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d, z5.d }, za1h.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x20, 0x00, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za1h.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x78, 0x40, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d, z25.d }, za3h.d[w14, 0:1]"

  -
    input:
      bytes: [ 0x80, 0x00, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za4h.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0x40, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d, z17.d }, za1h.d[w14, 0:1]"

  -
    input:
      bytes: [ 0xdc, 0x00, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d, z29.d }, za6h.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x22, 0x60, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.d, z3.d }, za1h.d[w15, 0:1]"

  -
    input:
      bytes: [ 0x86, 0x20, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.d, z7.d }, za4h.d[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x80, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za0v.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0xc0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d, z21.d }, za2v.d[w14, 0:1]"

  -
    input:
      bytes: [ 0xb6, 0xe0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.d, z23.d }, za5v.d[w15, 0:1]"

  -
    input:
      bytes: [ 0xfe, 0xe0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.d, z31.d }, za7v.d[w15, 0:1]"

  -
    input:
      bytes: [ 0x24, 0x80, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d, z5.d }, za1v.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x20, 0x80, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za1v.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x78, 0xc0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d, z25.d }, za3v.d[w14, 0:1]"

  -
    input:
      bytes: [ 0x80, 0x80, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za4v.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0xc0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d, z17.d }, za1v.d[w14, 0:1]"

  -
    input:
      bytes: [ 0xdc, 0x80, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d, z29.d }, za6v.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x22, 0xe0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.d, z3.d }, za1v.d[w15, 0:1]"

  -
    input:
      bytes: [ 0x86, 0xa0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.d, z7.d }, za4v.d[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x80, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za0v.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0xc0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d, z21.d }, za2v.d[w14, 0:1]"

  -
    input:
      bytes: [ 0xb6, 0xe0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.d, z23.d }, za5v.d[w15, 0:1]"

  -
    input:
      bytes: [ 0xfe, 0xe0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.d, z31.d }, za7v.d[w15, 0:1]"

  -
    input:
      bytes: [ 0x24, 0x80, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d, z5.d }, za1v.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x20, 0x80, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za1v.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x78, 0xc0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d, z25.d }, za3v.d[w14, 0:1]"

  -
    input:
      bytes: [ 0x80, 0x80, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za4v.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x30, 0xc0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d, z17.d }, za1v.d[w14, 0:1]"

  -
    input:
      bytes: [ 0xdc, 0x80, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d, z29.d }, za6v.d[w12, 0:1]"

  -
    input:
      bytes: [ 0x22, 0xe0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.d, z3.d }, za1v.d[w15, 0:1]"

  -
    input:
      bytes: [ 0x86, 0xa0, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.d, z7.d }, za4v.d[w13, 0:1]"

  -
    input:
      bytes: [ 0x00, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za.d[w8, 0, vgx2]"

  -
    input:
      bytes: [ 0x00, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za.d[w8, 0, vgx2]"

  -
    input:
      bytes: [ 0x54, 0x48, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d, z21.d }, za.d[w10, 2, vgx2]"

  -
    input:
      bytes: [ 0x54, 0x48, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d, z21.d }, za.d[w10, 2, vgx2]"

  -
    input:
      bytes: [ 0xb6, 0x68, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.d, z23.d }, za.d[w11, 5, vgx2]"

  -
    input:
      bytes: [ 0xb6, 0x68, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.d, z23.d }, za.d[w11, 5, vgx2]"

  -
    input:
      bytes: [ 0xfe, 0x68, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.d, z31.d }, za.d[w11, 7, vgx2]"

  -
    input:
      bytes: [ 0xfe, 0x68, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.d, z31.d }, za.d[w11, 7, vgx2]"

  -
    input:
      bytes: [ 0x24, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d, z5.d }, za.d[w8, 1, vgx2]"

  -
    input:
      bytes: [ 0x24, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d, z5.d }, za.d[w8, 1, vgx2]"

  -
    input:
      bytes: [ 0x20, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za.d[w8, 1, vgx2]"

  -
    input:
      bytes: [ 0x20, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za.d[w8, 1, vgx2]"

  -
    input:
      bytes: [ 0x78, 0x48, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d, z25.d }, za.d[w10, 3, vgx2]"

  -
    input:
      bytes: [ 0x78, 0x48, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d, z25.d }, za.d[w10, 3, vgx2]"

  -
    input:
      bytes: [ 0x80, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za.d[w8, 4, vgx2]"

  -
    input:
      bytes: [ 0x80, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za.d[w8, 4, vgx2]"

  -
    input:
      bytes: [ 0x30, 0x48, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d, z17.d }, za.d[w10, 1, vgx2]"

  -
    input:
      bytes: [ 0x30, 0x48, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d, z17.d }, za.d[w10, 1, vgx2]"

  -
    input:
      bytes: [ 0xdc, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d, z29.d }, za.d[w8, 6, vgx2]"

  -
    input:
      bytes: [ 0xdc, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d, z29.d }, za.d[w8, 6, vgx2]"

  -
    input:
      bytes: [ 0x22, 0x68, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.d, z3.d }, za.d[w11, 1, vgx2]"

  -
    input:
      bytes: [ 0x22, 0x68, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.d, z3.d }, za.d[w11, 1, vgx2]"

  -
    input:
      bytes: [ 0x86, 0x28, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.d, z7.d }, za.d[w9, 4, vgx2]"

  -
    input:
      bytes: [ 0x86, 0x28, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.d, z7.d }, za.d[w9, 4, vgx2]"

  -
    input:
      bytes: [ 0x00, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za.d[w8, 0, vgx2]"

  -
    input:
      bytes: [ 0x54, 0x48, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d, z21.d }, za.d[w10, 2, vgx2]"

  -
    input:
      bytes: [ 0xb6, 0x68, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.d, z23.d }, za.d[w11, 5, vgx2]"

  -
    input:
      bytes: [ 0xfe, 0x68, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.d, z31.d }, za.d[w11, 7, vgx2]"

  -
    input:
      bytes: [ 0x24, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d, z5.d }, za.d[w8, 1, vgx2]"

  -
    input:
      bytes: [ 0x20, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za.d[w8, 1, vgx2]"

  -
    input:
      bytes: [ 0x78, 0x48, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d, z25.d }, za.d[w10, 3, vgx2]"

  -
    input:
      bytes: [ 0x80, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d, z1.d }, za.d[w8, 4, vgx2]"

  -
    input:
      bytes: [ 0x30, 0x48, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d, z17.d }, za.d[w10, 1, vgx2]"

  -
    input:
      bytes: [ 0xdc, 0x08, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d, z29.d }, za.d[w8, 6, vgx2]"

  -
    input:
      bytes: [ 0x22, 0x68, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.d, z3.d }, za.d[w11, 1, vgx2]"

  -
    input:
      bytes: [ 0x86, 0x28, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.d, z7.d }, za.d[w9, 4, vgx2]"

  -
    input:
      bytes: [ 0x00, 0x00, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w12, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x45, 0x41, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w14, 0:1], { z10.d, z11.d }"

  -
    input:
      bytes: [ 0x87, 0x61, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w15, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0xc7, 0x63, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w15, 0:1], { z30.d, z31.d }"

  -
    input:
      bytes: [ 0x05, 0x02, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w12, 0:1], { z16.d, z17.d }"

  -
    input:
      bytes: [ 0x01, 0x00, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.d[w12, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x40, 0x42, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w14, 0:1], { z18.d, z19.d }"

  -
    input:
      bytes: [ 0x80, 0x01, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w12, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x01, 0x40, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.d[w14, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0xc5, 0x02, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w12, 0:1], { z22.d, z23.d }"

  -
    input:
      bytes: [ 0x02, 0x61, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.d[w15, 0:1], { z8.d, z9.d }"

  -
    input:
      bytes: [ 0x87, 0x21, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w13, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x00, 0x00, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w12, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x45, 0x41, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w14, 0:1], { z10.d, z11.d }"

  -
    input:
      bytes: [ 0x87, 0x61, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w15, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0xc7, 0x63, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w15, 0:1], { z30.d, z31.d }"

  -
    input:
      bytes: [ 0x05, 0x02, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w12, 0:1], { z16.d, z17.d }"

  -
    input:
      bytes: [ 0x01, 0x00, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.d[w12, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x40, 0x42, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w14, 0:1], { z18.d, z19.d }"

  -
    input:
      bytes: [ 0x80, 0x01, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w12, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x01, 0x40, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.d[w14, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0xc5, 0x02, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w12, 0:1], { z22.d, z23.d }"

  -
    input:
      bytes: [ 0x02, 0x61, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.d[w15, 0:1], { z8.d, z9.d }"

  -
    input:
      bytes: [ 0x87, 0x21, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w13, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x00, 0x80, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w12, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x45, 0xc1, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w14, 0:1], { z10.d, z11.d }"

  -
    input:
      bytes: [ 0x87, 0xe1, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w15, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0xc7, 0xe3, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w15, 0:1], { z30.d, z31.d }"

  -
    input:
      bytes: [ 0x05, 0x82, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w12, 0:1], { z16.d, z17.d }"

  -
    input:
      bytes: [ 0x01, 0x80, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.d[w12, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x40, 0xc2, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w14, 0:1], { z18.d, z19.d }"

  -
    input:
      bytes: [ 0x80, 0x81, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w12, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x01, 0xc0, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.d[w14, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0xc5, 0x82, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w12, 0:1], { z22.d, z23.d }"

  -
    input:
      bytes: [ 0x02, 0xe1, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.d[w15, 0:1], { z8.d, z9.d }"

  -
    input:
      bytes: [ 0x87, 0xa1, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w13, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x00, 0x80, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w12, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x45, 0xc1, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w14, 0:1], { z10.d, z11.d }"

  -
    input:
      bytes: [ 0x87, 0xe1, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w15, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0xc7, 0xe3, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w15, 0:1], { z30.d, z31.d }"

  -
    input:
      bytes: [ 0x05, 0x82, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w12, 0:1], { z16.d, z17.d }"

  -
    input:
      bytes: [ 0x01, 0x80, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.d[w12, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x40, 0xc2, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w14, 0:1], { z18.d, z19.d }"

  -
    input:
      bytes: [ 0x80, 0x81, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w12, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x01, 0xc0, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.d[w14, 0:1], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0xc5, 0x82, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w12, 0:1], { z22.d, z23.d }"

  -
    input:
      bytes: [ 0x02, 0xe1, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.d[w15, 0:1], { z8.d, z9.d }"

  -
    input:
      bytes: [ 0x87, 0xa1, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w13, 0:1], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x00, 0x08, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx2], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x00, 0x08, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx2], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x45, 0x49, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 5, vgx2], { z10.d, z11.d }"

  -
    input:
      bytes: [ 0x45, 0x49, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 5, vgx2], { z10.d, z11.d }"

  -
    input:
      bytes: [ 0x87, 0x69, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx2], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x87, 0x69, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx2], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0xc7, 0x6b, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx2], { z30.d, z31.d }"

  -
    input:
      bytes: [ 0xc7, 0x6b, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx2], { z30.d, z31.d }"

  -
    input:
      bytes: [ 0x05, 0x0a, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx2], { z16.d, z17.d }"

  -
    input:
      bytes: [ 0x05, 0x0a, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx2], { z16.d, z17.d }"

  -
    input:
      bytes: [ 0x01, 0x08, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 1, vgx2], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x01, 0x08, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 1, vgx2], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x40, 0x4a, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 0, vgx2], { z18.d, z19.d }"

  -
    input:
      bytes: [ 0x40, 0x4a, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 0, vgx2], { z18.d, z19.d }"

  -
    input:
      bytes: [ 0x80, 0x09, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx2], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x80, 0x09, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx2], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x01, 0x48, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 1, vgx2], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x01, 0x48, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 1, vgx2], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0xc5, 0x0a, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx2], { z22.d, z23.d }"

  -
    input:
      bytes: [ 0xc5, 0x0a, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx2], { z22.d, z23.d }"

  -
    input:
      bytes: [ 0x02, 0x69, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 2, vgx2], { z8.d, z9.d }"

  -
    input:
      bytes: [ 0x02, 0x69, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 2, vgx2], { z8.d, z9.d }"

  -
    input:
      bytes: [ 0x87, 0x29, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w9, 7, vgx2], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x87, 0x29, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w9, 7, vgx2], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x00, 0x08, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx2], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x45, 0x49, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 5, vgx2], { z10.d, z11.d }"

  -
    input:
      bytes: [ 0x87, 0x69, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx2], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0xc7, 0x6b, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx2], { z30.d, z31.d }"

  -
    input:
      bytes: [ 0x05, 0x0a, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx2], { z16.d, z17.d }"

  -
    input:
      bytes: [ 0x01, 0x08, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 1, vgx2], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0x40, 0x4a, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 0, vgx2], { z18.d, z19.d }"

  -
    input:
      bytes: [ 0x80, 0x09, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx2], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x01, 0x48, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 1, vgx2], { z0.d, z1.d }"

  -
    input:
      bytes: [ 0xc5, 0x0a, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx2], { z22.d, z23.d }"

  -
    input:
      bytes: [ 0x02, 0x69, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 2, vgx2], { z8.d, z9.d }"

  -
    input:
      bytes: [ 0x87, 0x29, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w9, 7, vgx2], { z12.d, z13.d }"

  -
    input:
      bytes: [ 0x00, 0x00, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0h.b[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0x40, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b, z21.b }, za0h.b[w14, 4:5]"

  -
    input:
      bytes: [ 0xb6, 0x60, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.b, z23.b }, za0h.b[w15, 10:11]"

  -
    input:
      bytes: [ 0xfe, 0x60, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.b, z31.b }, za0h.b[w15, 14:15]"

  -
    input:
      bytes: [ 0x24, 0x00, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b, z5.b }, za0h.b[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x00, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0h.b[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0x40, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.b, z25.b }, za0h.b[w14, 6:7]"

  -
    input:
      bytes: [ 0x80, 0x00, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0h.b[w12, 8:9]"

  -
    input:
      bytes: [ 0x30, 0x40, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.b, z17.b }, za0h.b[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x00, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b, z29.b }, za0h.b[w12, 12:13]"

  -
    input:
      bytes: [ 0x22, 0x60, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.b, z3.b }, za0h.b[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0x20, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.b, z7.b }, za0h.b[w13, 8:9]"

  -
    input:
      bytes: [ 0x00, 0x00, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0h.b[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0x40, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b, z21.b }, za0h.b[w14, 4:5]"

  -
    input:
      bytes: [ 0xb6, 0x60, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.b, z23.b }, za0h.b[w15, 10:11]"

  -
    input:
      bytes: [ 0xfe, 0x60, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.b, z31.b }, za0h.b[w15, 14:15]"

  -
    input:
      bytes: [ 0x24, 0x00, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b, z5.b }, za0h.b[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x00, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0h.b[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0x40, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.b, z25.b }, za0h.b[w14, 6:7]"

  -
    input:
      bytes: [ 0x80, 0x00, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0h.b[w12, 8:9]"

  -
    input:
      bytes: [ 0x30, 0x40, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.b, z17.b }, za0h.b[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x00, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b, z29.b }, za0h.b[w12, 12:13]"

  -
    input:
      bytes: [ 0x22, 0x60, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.b, z3.b }, za0h.b[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0x20, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.b, z7.b }, za0h.b[w13, 8:9]"

  -
    input:
      bytes: [ 0x00, 0x80, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0v.b[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0xc0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b, z21.b }, za0v.b[w14, 4:5]"

  -
    input:
      bytes: [ 0xb6, 0xe0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.b, z23.b }, za0v.b[w15, 10:11]"

  -
    input:
      bytes: [ 0xfe, 0xe0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.b, z31.b }, za0v.b[w15, 14:15]"

  -
    input:
      bytes: [ 0x24, 0x80, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b, z5.b }, za0v.b[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x80, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0v.b[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0xc0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.b, z25.b }, za0v.b[w14, 6:7]"

  -
    input:
      bytes: [ 0x80, 0x80, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0v.b[w12, 8:9]"

  -
    input:
      bytes: [ 0x30, 0xc0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.b, z17.b }, za0v.b[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x80, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b, z29.b }, za0v.b[w12, 12:13]"

  -
    input:
      bytes: [ 0x22, 0xe0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.b, z3.b }, za0v.b[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0xa0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.b, z7.b }, za0v.b[w13, 8:9]"

  -
    input:
      bytes: [ 0x00, 0x80, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0v.b[w12, 0:1]"

  -
    input:
      bytes: [ 0x54, 0xc0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b, z21.b }, za0v.b[w14, 4:5]"

  -
    input:
      bytes: [ 0xb6, 0xe0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z22.b, z23.b }, za0v.b[w15, 10:11]"

  -
    input:
      bytes: [ 0xfe, 0xe0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z30.b, z31.b }, za0v.b[w15, 14:15]"

  -
    input:
      bytes: [ 0x24, 0x80, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b, z5.b }, za0v.b[w12, 2:3]"

  -
    input:
      bytes: [ 0x20, 0x80, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0v.b[w12, 2:3]"

  -
    input:
      bytes: [ 0x78, 0xc0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.b, z25.b }, za0v.b[w14, 6:7]"

  -
    input:
      bytes: [ 0x80, 0x80, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b, z1.b }, za0v.b[w12, 8:9]"

  -
    input:
      bytes: [ 0x30, 0xc0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.b, z17.b }, za0v.b[w14, 2:3]"

  -
    input:
      bytes: [ 0xdc, 0x80, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b, z29.b }, za0v.b[w12, 12:13]"

  -
    input:
      bytes: [ 0x22, 0xe0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z2.b, z3.b }, za0v.b[w15, 2:3]"

  -
    input:
      bytes: [ 0x86, 0xa0, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z6.b, z7.b }, za0v.b[w13, 8:9]"

  -
    input:
      bytes: [ 0x00, 0x00, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 0:1], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0x45, 0x41, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 10:11], { z10.b, z11.b }"

  -
    input:
      bytes: [ 0x87, 0x61, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 14:15], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0xc7, 0x63, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 14:15], { z30.b, z31.b }"

  -
    input:
      bytes: [ 0x05, 0x02, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 10:11], { z16.b, z17.b }"

  -
    input:
      bytes: [ 0x01, 0x00, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 2:3], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0x40, 0x42, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 0:1], { z18.b, z19.b }"

  -
    input:
      bytes: [ 0x80, 0x01, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 0:1], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0x01, 0x40, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 2:3], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0xc5, 0x02, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 10:11], { z22.b, z23.b }"

  -
    input:
      bytes: [ 0x02, 0x61, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 4:5], { z8.b, z9.b }"

  -
    input:
      bytes: [ 0x87, 0x21, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w13, 14:15], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0x00, 0x00, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 0:1], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0x45, 0x41, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 10:11], { z10.b, z11.b }"

  -
    input:
      bytes: [ 0x87, 0x61, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 14:15], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0xc7, 0x63, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 14:15], { z30.b, z31.b }"

  -
    input:
      bytes: [ 0x05, 0x02, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 10:11], { z16.b, z17.b }"

  -
    input:
      bytes: [ 0x01, 0x00, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 2:3], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0x40, 0x42, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 0:1], { z18.b, z19.b }"

  -
    input:
      bytes: [ 0x80, 0x01, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 0:1], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0x01, 0x40, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 2:3], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0xc5, 0x02, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 10:11], { z22.b, z23.b }"

  -
    input:
      bytes: [ 0x02, 0x61, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 4:5], { z8.b, z9.b }"

  -
    input:
      bytes: [ 0x87, 0x21, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w13, 14:15], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0x00, 0x80, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 0:1], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0x45, 0xc1, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 10:11], { z10.b, z11.b }"

  -
    input:
      bytes: [ 0x87, 0xe1, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 14:15], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0xc7, 0xe3, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 14:15], { z30.b, z31.b }"

  -
    input:
      bytes: [ 0x05, 0x82, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 10:11], { z16.b, z17.b }"

  -
    input:
      bytes: [ 0x01, 0x80, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 2:3], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0x40, 0xc2, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 0:1], { z18.b, z19.b }"

  -
    input:
      bytes: [ 0x80, 0x81, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 0:1], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0x01, 0xc0, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 2:3], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0xc5, 0x82, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 10:11], { z22.b, z23.b }"

  -
    input:
      bytes: [ 0x02, 0xe1, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 4:5], { z8.b, z9.b }"

  -
    input:
      bytes: [ 0x87, 0xa1, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w13, 14:15], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0x00, 0x80, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 0:1], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0x45, 0xc1, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 10:11], { z10.b, z11.b }"

  -
    input:
      bytes: [ 0x87, 0xe1, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 14:15], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0xc7, 0xe3, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 14:15], { z30.b, z31.b }"

  -
    input:
      bytes: [ 0x05, 0x82, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 10:11], { z16.b, z17.b }"

  -
    input:
      bytes: [ 0x01, 0x80, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 2:3], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0x40, 0xc2, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 0:1], { z18.b, z19.b }"

  -
    input:
      bytes: [ 0x80, 0x81, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 0:1], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0x01, 0xc0, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 2:3], { z0.b, z1.b }"

  -
    input:
      bytes: [ 0xc5, 0x82, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 10:11], { z22.b, z23.b }"

  -
    input:
      bytes: [ 0x02, 0xe1, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 4:5], { z8.b, z9.b }"

  -
    input:
      bytes: [ 0x87, 0xa1, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w13, 14:15], { z12.b, z13.b }"

  -
    input:
      bytes: [ 0x00, 0x04, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0h.h[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0x44, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h - z23.h }, za1h.h[w14, 0:3]"

  -
    input:
      bytes: [ 0x34, 0x64, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h - z23.h }, za0h.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x7c, 0x64, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h - z31.h }, za1h.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x24, 0x04, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h - z7.h }, za0h.h[w12, 4:7]"

  -
    input:
      bytes: [ 0x20, 0x04, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0h.h[w12, 4:7]"

  -
    input:
      bytes: [ 0x78, 0x44, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.h - z27.h }, za1h.h[w14, 4:7]"

  -
    input:
      bytes: [ 0x30, 0x44, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.h - z19.h }, za0h.h[w14, 4:7]"

  -
    input:
      bytes: [ 0x5c, 0x04, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h - z31.h }, za1h.h[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x64, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0h.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x04, 0x24, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h - z7.h }, za0h.h[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x04, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0h.h[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0x44, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h - z23.h }, za1h.h[w14, 0:3]"

  -
    input:
      bytes: [ 0x34, 0x64, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h - z23.h }, za0h.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x7c, 0x64, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h - z31.h }, za1h.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x24, 0x04, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h - z7.h }, za0h.h[w12, 4:7]"

  -
    input:
      bytes: [ 0x20, 0x04, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0h.h[w12, 4:7]"

  -
    input:
      bytes: [ 0x78, 0x44, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.h - z27.h }, za1h.h[w14, 4:7]"

  -
    input:
      bytes: [ 0x30, 0x44, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.h - z19.h }, za0h.h[w14, 4:7]"

  -
    input:
      bytes: [ 0x5c, 0x04, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h - z31.h }, za1h.h[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x64, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0h.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x04, 0x24, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h - z7.h }, za0h.h[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x84, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0v.h[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0xc4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h - z23.h }, za1v.h[w14, 0:3]"

  -
    input:
      bytes: [ 0x34, 0xe4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h - z23.h }, za0v.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x7c, 0xe4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h - z31.h }, za1v.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x24, 0x84, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h - z7.h }, za0v.h[w12, 4:7]"

  -
    input:
      bytes: [ 0x20, 0x84, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0v.h[w12, 4:7]"

  -
    input:
      bytes: [ 0x78, 0xc4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.h - z27.h }, za1v.h[w14, 4:7]"

  -
    input:
      bytes: [ 0x30, 0xc4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.h - z19.h }, za0v.h[w14, 4:7]"

  -
    input:
      bytes: [ 0x5c, 0x84, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h - z31.h }, za1v.h[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0xe4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0v.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x04, 0xa4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h - z7.h }, za0v.h[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x84, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0v.h[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0xc4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h - z23.h }, za1v.h[w14, 0:3]"

  -
    input:
      bytes: [ 0x34, 0xe4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.h - z23.h }, za0v.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x7c, 0xe4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h - z31.h }, za1v.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x24, 0x84, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h - z7.h }, za0v.h[w12, 4:7]"

  -
    input:
      bytes: [ 0x20, 0x84, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0v.h[w12, 4:7]"

  -
    input:
      bytes: [ 0x78, 0xc4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.h - z27.h }, za1v.h[w14, 4:7]"

  -
    input:
      bytes: [ 0x30, 0xc4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.h - z19.h }, za0v.h[w14, 4:7]"

  -
    input:
      bytes: [ 0x5c, 0x84, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.h - z31.h }, za1v.h[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0xe4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.h - z3.h }, za0v.h[w15, 4:7]"

  -
    input:
      bytes: [ 0x04, 0xa4, 0x46, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.h - z7.h }, za0v.h[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x04, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 0:3], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x01, 0x45, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w14, 4:7], { z8.h - z11.h }"

  -
    input:
      bytes: [ 0x83, 0x65, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w15, 4:7], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x83, 0x67, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w15, 4:7], { z28.h - z31.h }"

  -
    input:
      bytes: [ 0x01, 0x06, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 4:7], { z16.h - z19.h }"

  -
    input:
      bytes: [ 0x01, 0x04, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 4:7], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x00, 0x46, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w14, 0:3], { z16.h - z19.h }"

  -
    input:
      bytes: [ 0x80, 0x05, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 0:3], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x01, 0x44, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w14, 4:7], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x81, 0x06, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 4:7], { z20.h - z23.h }"

  -
    input:
      bytes: [ 0x02, 0x65, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w15, 0:3], { z8.h - z11.h }"

  -
    input:
      bytes: [ 0x83, 0x25, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w13, 4:7], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x00, 0x04, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 0:3], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x01, 0x45, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w14, 4:7], { z8.h - z11.h }"

  -
    input:
      bytes: [ 0x83, 0x65, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w15, 4:7], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x83, 0x67, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w15, 4:7], { z28.h - z31.h }"

  -
    input:
      bytes: [ 0x01, 0x06, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 4:7], { z16.h - z19.h }"

  -
    input:
      bytes: [ 0x01, 0x04, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 4:7], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x00, 0x46, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w14, 0:3], { z16.h - z19.h }"

  -
    input:
      bytes: [ 0x80, 0x05, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 0:3], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x01, 0x44, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w14, 4:7], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x81, 0x06, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.h[w12, 4:7], { z20.h - z23.h }"

  -
    input:
      bytes: [ 0x02, 0x65, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w15, 0:3], { z8.h - z11.h }"

  -
    input:
      bytes: [ 0x83, 0x25, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.h[w13, 4:7], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x00, 0x84, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 0:3], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x01, 0xc5, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w14, 4:7], { z8.h - z11.h }"

  -
    input:
      bytes: [ 0x83, 0xe5, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w15, 4:7], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x83, 0xe7, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w15, 4:7], { z28.h - z31.h }"

  -
    input:
      bytes: [ 0x01, 0x86, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 4:7], { z16.h - z19.h }"

  -
    input:
      bytes: [ 0x01, 0x84, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 4:7], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x00, 0xc6, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w14, 0:3], { z16.h - z19.h }"

  -
    input:
      bytes: [ 0x80, 0x85, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 0:3], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x01, 0xc4, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w14, 4:7], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x81, 0x86, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 4:7], { z20.h - z23.h }"

  -
    input:
      bytes: [ 0x02, 0xe5, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w15, 0:3], { z8.h - z11.h }"

  -
    input:
      bytes: [ 0x83, 0xa5, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w13, 4:7], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x00, 0x84, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 0:3], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x01, 0xc5, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w14, 4:7], { z8.h - z11.h }"

  -
    input:
      bytes: [ 0x83, 0xe5, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w15, 4:7], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x83, 0xe7, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w15, 4:7], { z28.h - z31.h }"

  -
    input:
      bytes: [ 0x01, 0x86, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 4:7], { z16.h - z19.h }"

  -
    input:
      bytes: [ 0x01, 0x84, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 4:7], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x00, 0xc6, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w14, 0:3], { z16.h - z19.h }"

  -
    input:
      bytes: [ 0x80, 0x85, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 0:3], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x01, 0xc4, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w14, 4:7], { z0.h - z3.h }"

  -
    input:
      bytes: [ 0x81, 0x86, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.h[w12, 4:7], { z20.h - z23.h }"

  -
    input:
      bytes: [ 0x02, 0xe5, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w15, 0:3], { z8.h - z11.h }"

  -
    input:
      bytes: [ 0x83, 0xa5, 0x44, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.h[w13, 4:7], { z12.h - z15.h }"

  -
    input:
      bytes: [ 0x00, 0x04, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za0h.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0x44, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s - z23.s }, za2h.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x34, 0x64, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s - z23.s }, za1h.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x7c, 0x64, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s - z31.s }, za3h.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x24, 0x04, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s - z7.s }, za1h.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x04, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za1h.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x78, 0x44, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.s - z27.s }, za3h.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x30, 0x44, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.s - z19.s }, za1h.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x5c, 0x04, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s - z31.s }, za2h.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x64, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za1h.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x04, 0x24, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s - z7.s }, za0h.s[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x04, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za0h.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0x44, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s - z23.s }, za2h.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x34, 0x64, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s - z23.s }, za1h.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x7c, 0x64, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s - z31.s }, za3h.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x24, 0x04, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s - z7.s }, za1h.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x04, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za1h.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x78, 0x44, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.s - z27.s }, za3h.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x30, 0x44, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.s - z19.s }, za1h.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x5c, 0x04, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s - z31.s }, za2h.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x64, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za1h.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x04, 0x24, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s - z7.s }, za0h.s[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x84, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za0v.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0xc4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s - z23.s }, za2v.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x34, 0xe4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s - z23.s }, za1v.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x7c, 0xe4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s - z31.s }, za3v.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x24, 0x84, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s - z7.s }, za1v.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x84, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za1v.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x78, 0xc4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.s - z27.s }, za3v.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x30, 0xc4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.s - z19.s }, za1v.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x5c, 0x84, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s - z31.s }, za2v.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0xe4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za1v.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x04, 0xa4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s - z7.s }, za0v.s[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x84, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za0v.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0xc4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s - z23.s }, za2v.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x34, 0xe4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.s - z23.s }, za1v.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x7c, 0xe4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s - z31.s }, za3v.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x24, 0x84, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s - z7.s }, za1v.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x84, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za1v.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x78, 0xc4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.s - z27.s }, za3v.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x30, 0xc4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.s - z19.s }, za1v.s[w14, 0:3]"

  -
    input:
      bytes: [ 0x5c, 0x84, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.s - z31.s }, za2v.s[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0xe4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.s - z3.s }, za1v.s[w15, 0:3]"

  -
    input:
      bytes: [ 0x04, 0xa4, 0x86, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.s - z7.s }, za0v.s[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x04, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w12, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x01, 0x45, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w14, 0:3], { z8.s - z11.s }"

  -
    input:
      bytes: [ 0x83, 0x65, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w15, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x83, 0x67, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w15, 0:3], { z28.s - z31.s }"

  -
    input:
      bytes: [ 0x01, 0x06, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w12, 0:3], { z16.s - z19.s }"

  -
    input:
      bytes: [ 0x01, 0x04, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w12, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x00, 0x46, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w14, 0:3], { z16.s - z19.s }"

  -
    input:
      bytes: [ 0x80, 0x05, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w12, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x01, 0x44, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w14, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x81, 0x06, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w12, 0:3], { z20.s - z23.s }"

  -
    input:
      bytes: [ 0x02, 0x65, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.s[w15, 0:3], { z8.s - z11.s }"

  -
    input:
      bytes: [ 0x83, 0x25, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w13, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x00, 0x04, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w12, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x01, 0x45, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w14, 0:3], { z8.s - z11.s }"

  -
    input:
      bytes: [ 0x83, 0x65, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w15, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x83, 0x67, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w15, 0:3], { z28.s - z31.s }"

  -
    input:
      bytes: [ 0x01, 0x06, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w12, 0:3], { z16.s - z19.s }"

  -
    input:
      bytes: [ 0x01, 0x04, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w12, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x00, 0x46, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w14, 0:3], { z16.s - z19.s }"

  -
    input:
      bytes: [ 0x80, 0x05, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.s[w12, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x01, 0x44, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w14, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x81, 0x06, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.s[w12, 0:3], { z20.s - z23.s }"

  -
    input:
      bytes: [ 0x02, 0x65, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.s[w15, 0:3], { z8.s - z11.s }"

  -
    input:
      bytes: [ 0x83, 0x25, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3h.s[w13, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x00, 0x84, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w12, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x01, 0xc5, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w14, 0:3], { z8.s - z11.s }"

  -
    input:
      bytes: [ 0x83, 0xe5, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w15, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x83, 0xe7, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w15, 0:3], { z28.s - z31.s }"

  -
    input:
      bytes: [ 0x01, 0x86, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w12, 0:3], { z16.s - z19.s }"

  -
    input:
      bytes: [ 0x01, 0x84, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w12, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x00, 0xc6, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w14, 0:3], { z16.s - z19.s }"

  -
    input:
      bytes: [ 0x80, 0x85, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w12, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x01, 0xc4, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w14, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x81, 0x86, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w12, 0:3], { z20.s - z23.s }"

  -
    input:
      bytes: [ 0x02, 0xe5, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.s[w15, 0:3], { z8.s - z11.s }"

  -
    input:
      bytes: [ 0x83, 0xa5, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w13, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x00, 0x84, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w12, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x01, 0xc5, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w14, 0:3], { z8.s - z11.s }"

  -
    input:
      bytes: [ 0x83, 0xe5, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w15, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x83, 0xe7, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w15, 0:3], { z28.s - z31.s }"

  -
    input:
      bytes: [ 0x01, 0x86, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w12, 0:3], { z16.s - z19.s }"

  -
    input:
      bytes: [ 0x01, 0x84, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w12, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x00, 0xc6, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w14, 0:3], { z16.s - z19.s }"

  -
    input:
      bytes: [ 0x80, 0x85, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.s[w12, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x01, 0xc4, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w14, 0:3], { z0.s - z3.s }"

  -
    input:
      bytes: [ 0x81, 0x86, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.s[w12, 0:3], { z20.s - z23.s }"

  -
    input:
      bytes: [ 0x02, 0xe5, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.s[w15, 0:3], { z8.s - z11.s }"

  -
    input:
      bytes: [ 0x83, 0xa5, 0x84, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za3v.s[w13, 0:3], { z12.s - z15.s }"

  -
    input:
      bytes: [ 0x00, 0x04, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za0h.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0x44, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za2h.d[w14, 0:3]"

  -
    input:
      bytes: [ 0xb4, 0x64, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za5h.d[w15, 0:3]"

  -
    input:
      bytes: [ 0xfc, 0x64, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za7h.d[w15, 0:3]"

  -
    input:
      bytes: [ 0x24, 0x04, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za1h.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x04, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za1h.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x78, 0x44, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d - z27.d }, za3h.d[w14, 0:3]"

  -
    input:
      bytes: [ 0x80, 0x04, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za4h.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x30, 0x44, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d - z19.d }, za1h.d[w14, 0:3]"

  -
    input:
      bytes: [ 0xdc, 0x04, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za6h.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x64, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za1h.d[w15, 0:3]"

  -
    input:
      bytes: [ 0x84, 0x24, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za4h.d[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x04, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za0h.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0x44, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za2h.d[w14, 0:3]"

  -
    input:
      bytes: [ 0xb4, 0x64, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za5h.d[w15, 0:3]"

  -
    input:
      bytes: [ 0xfc, 0x64, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za7h.d[w15, 0:3]"

  -
    input:
      bytes: [ 0x24, 0x04, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za1h.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x04, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za1h.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x78, 0x44, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d - z27.d }, za3h.d[w14, 0:3]"

  -
    input:
      bytes: [ 0x80, 0x04, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za4h.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x30, 0x44, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d - z19.d }, za1h.d[w14, 0:3]"

  -
    input:
      bytes: [ 0xdc, 0x04, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za6h.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x64, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za1h.d[w15, 0:3]"

  -
    input:
      bytes: [ 0x84, 0x24, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za4h.d[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x84, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za0v.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0xc4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za2v.d[w14, 0:3]"

  -
    input:
      bytes: [ 0xb4, 0xe4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za5v.d[w15, 0:3]"

  -
    input:
      bytes: [ 0xfc, 0xe4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za7v.d[w15, 0:3]"

  -
    input:
      bytes: [ 0x24, 0x84, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za1v.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x84, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za1v.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x78, 0xc4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d - z27.d }, za3v.d[w14, 0:3]"

  -
    input:
      bytes: [ 0x80, 0x84, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za4v.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x30, 0xc4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d - z19.d }, za1v.d[w14, 0:3]"

  -
    input:
      bytes: [ 0xdc, 0x84, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za6v.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0xe4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za1v.d[w15, 0:3]"

  -
    input:
      bytes: [ 0x84, 0xa4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za4v.d[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x84, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za0v.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0xc4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za2v.d[w14, 0:3]"

  -
    input:
      bytes: [ 0xb4, 0xe4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za5v.d[w15, 0:3]"

  -
    input:
      bytes: [ 0xfc, 0xe4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za7v.d[w15, 0:3]"

  -
    input:
      bytes: [ 0x24, 0x84, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za1v.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0x84, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za1v.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x78, 0xc4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d - z27.d }, za3v.d[w14, 0:3]"

  -
    input:
      bytes: [ 0x80, 0x84, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za4v.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x30, 0xc4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d - z19.d }, za1v.d[w14, 0:3]"

  -
    input:
      bytes: [ 0xdc, 0x84, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za6v.d[w12, 0:3]"

  -
    input:
      bytes: [ 0x20, 0xe4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za1v.d[w15, 0:3]"

  -
    input:
      bytes: [ 0x84, 0xa4, 0xc6, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za4v.d[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w8, 0, vgx4]"

  -
    input:
      bytes: [ 0x00, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w8, 0, vgx4]"

  -
    input:
      bytes: [ 0x54, 0x4c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za.d[w10, 2, vgx4]"

  -
    input:
      bytes: [ 0x54, 0x4c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za.d[w10, 2, vgx4]"

  -
    input:
      bytes: [ 0xb4, 0x6c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za.d[w11, 5, vgx4]"

  -
    input:
      bytes: [ 0xb4, 0x6c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za.d[w11, 5, vgx4]"

  -
    input:
      bytes: [ 0xfc, 0x6c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za.d[w11, 7, vgx4]"

  -
    input:
      bytes: [ 0xfc, 0x6c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za.d[w11, 7, vgx4]"

  -
    input:
      bytes: [ 0x24, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za.d[w8, 1, vgx4]"

  -
    input:
      bytes: [ 0x24, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za.d[w8, 1, vgx4]"

  -
    input:
      bytes: [ 0x20, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w8, 1, vgx4]"

  -
    input:
      bytes: [ 0x20, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w8, 1, vgx4]"

  -
    input:
      bytes: [ 0x78, 0x4c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d - z27.d }, za.d[w10, 3, vgx4]"

  -
    input:
      bytes: [ 0x78, 0x4c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d - z27.d }, za.d[w10, 3, vgx4]"

  -
    input:
      bytes: [ 0x80, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w8, 4, vgx4]"

  -
    input:
      bytes: [ 0x80, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w8, 4, vgx4]"

  -
    input:
      bytes: [ 0x30, 0x4c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d - z19.d }, za.d[w10, 1, vgx4]"

  -
    input:
      bytes: [ 0x30, 0x4c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d - z19.d }, za.d[w10, 1, vgx4]"

  -
    input:
      bytes: [ 0xdc, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za.d[w8, 6, vgx4]"

  -
    input:
      bytes: [ 0xdc, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za.d[w8, 6, vgx4]"

  -
    input:
      bytes: [ 0x20, 0x6c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w11, 1, vgx4]"

  -
    input:
      bytes: [ 0x20, 0x6c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w11, 1, vgx4]"

  -
    input:
      bytes: [ 0x84, 0x2c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za.d[w9, 4, vgx4]"

  -
    input:
      bytes: [ 0x84, 0x2c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za.d[w9, 4, vgx4]"

  -
    input:
      bytes: [ 0x00, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w8, 0, vgx4]"

  -
    input:
      bytes: [ 0x54, 0x4c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za.d[w10, 2, vgx4]"

  -
    input:
      bytes: [ 0xb4, 0x6c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.d - z23.d }, za.d[w11, 5, vgx4]"

  -
    input:
      bytes: [ 0xfc, 0x6c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za.d[w11, 7, vgx4]"

  -
    input:
      bytes: [ 0x24, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za.d[w8, 1, vgx4]"

  -
    input:
      bytes: [ 0x20, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w8, 1, vgx4]"

  -
    input:
      bytes: [ 0x78, 0x4c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.d - z27.d }, za.d[w10, 3, vgx4]"

  -
    input:
      bytes: [ 0x80, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w8, 4, vgx4]"

  -
    input:
      bytes: [ 0x30, 0x4c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.d - z19.d }, za.d[w10, 1, vgx4]"

  -
    input:
      bytes: [ 0xdc, 0x0c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.d - z31.d }, za.d[w8, 6, vgx4]"

  -
    input:
      bytes: [ 0x20, 0x6c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.d - z3.d }, za.d[w11, 1, vgx4]"

  -
    input:
      bytes: [ 0x84, 0x2c, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.d - z7.d }, za.d[w9, 4, vgx4]"

  -
    input:
      bytes: [ 0x00, 0x04, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w12, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x05, 0x45, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w14, 0:3], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0x65, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w15, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x87, 0x67, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w15, 0:3], { z28.d - z31.d }"

  -
    input:
      bytes: [ 0x05, 0x06, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w12, 0:3], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x01, 0x04, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.d[w12, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x00, 0x46, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w14, 0:3], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x80, 0x05, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w12, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x01, 0x44, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.d[w14, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x85, 0x06, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w12, 0:3], { z20.d - z23.d }"

  -
    input:
      bytes: [ 0x02, 0x65, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.d[w15, 0:3], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0x25, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w13, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x00, 0x04, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w12, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x05, 0x45, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w14, 0:3], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0x65, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w15, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x87, 0x67, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w15, 0:3], { z28.d - z31.d }"

  -
    input:
      bytes: [ 0x05, 0x06, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w12, 0:3], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x01, 0x04, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.d[w12, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x00, 0x46, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w14, 0:3], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x80, 0x05, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.d[w12, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x01, 0x44, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1h.d[w14, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x85, 0x06, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5h.d[w12, 0:3], { z20.d - z23.d }"

  -
    input:
      bytes: [ 0x02, 0x65, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2h.d[w15, 0:3], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0x25, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7h.d[w13, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x00, 0x84, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w12, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x05, 0xc5, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w14, 0:3], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0xe5, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w15, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x87, 0xe7, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w15, 0:3], { z28.d - z31.d }"

  -
    input:
      bytes: [ 0x05, 0x86, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w12, 0:3], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x01, 0x84, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.d[w12, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x00, 0xc6, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w14, 0:3], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x80, 0x85, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w12, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x01, 0xc4, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.d[w14, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x85, 0x86, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w12, 0:3], { z20.d - z23.d }"

  -
    input:
      bytes: [ 0x02, 0xe5, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.d[w15, 0:3], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0xa5, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w13, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x00, 0x84, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w12, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x05, 0xc5, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w14, 0:3], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0xe5, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w15, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x87, 0xe7, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w15, 0:3], { z28.d - z31.d }"

  -
    input:
      bytes: [ 0x05, 0x86, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w12, 0:3], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x01, 0x84, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.d[w12, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x00, 0xc6, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w14, 0:3], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x80, 0x85, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.d[w12, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x01, 0xc4, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za1v.d[w14, 0:3], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x85, 0x86, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za5v.d[w12, 0:3], { z20.d - z23.d }"

  -
    input:
      bytes: [ 0x02, 0xe5, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za2v.d[w15, 0:3], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0xa5, 0xc4, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za7v.d[w13, 0:3], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x00, 0x0c, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx4], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x00, 0x0c, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx4], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x05, 0x4d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 5, vgx4], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x05, 0x4d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 5, vgx4], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0x6d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx4], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x87, 0x6d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx4], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x87, 0x6f, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx4], { z28.d - z31.d }"

  -
    input:
      bytes: [ 0x87, 0x6f, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx4], { z28.d - z31.d }"

  -
    input:
      bytes: [ 0x05, 0x0e, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx4], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x05, 0x0e, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx4], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x01, 0x0c, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 1, vgx4], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x01, 0x0c, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 1, vgx4], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x00, 0x4e, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 0, vgx4], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x00, 0x4e, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 0, vgx4], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x80, 0x0d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx4], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x80, 0x0d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx4], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x01, 0x4c, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 1, vgx4], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x01, 0x4c, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 1, vgx4], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x85, 0x0e, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx4], { z20.d - z23.d }"

  -
    input:
      bytes: [ 0x85, 0x0e, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx4], { z20.d - z23.d }"

  -
    input:
      bytes: [ 0x02, 0x6d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 2, vgx4], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x02, 0x6d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 2, vgx4], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0x2d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w9, 7, vgx4], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x87, 0x2d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w9, 7, vgx4], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x00, 0x0c, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx4], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x05, 0x4d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 5, vgx4], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0x6d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx4], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x87, 0x6f, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 7, vgx4], { z28.d - z31.d }"

  -
    input:
      bytes: [ 0x05, 0x0e, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx4], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x01, 0x0c, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 1, vgx4], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x00, 0x4e, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 0, vgx4], { z16.d - z19.d }"

  -
    input:
      bytes: [ 0x80, 0x0d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 0, vgx4], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x01, 0x4c, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w10, 1, vgx4], { z0.d - z3.d }"

  -
    input:
      bytes: [ 0x85, 0x0e, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w8, 5, vgx4], { z20.d - z23.d }"

  -
    input:
      bytes: [ 0x02, 0x6d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w11, 2, vgx4], { z8.d - z11.d }"

  -
    input:
      bytes: [ 0x87, 0x2d, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za.d[w9, 7, vgx4], { z12.d - z15.d }"

  -
    input:
      bytes: [ 0x00, 0x04, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0h.b[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0x44, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b - z23.b }, za0h.b[w14, 8:11]"

  -
    input:
      bytes: [ 0x34, 0x64, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b - z23.b }, za0h.b[w15, 4:7]"

  -
    input:
      bytes: [ 0x7c, 0x64, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b - z31.b }, za0h.b[w15, 12:15]"

  -
    input:
      bytes: [ 0x24, 0x04, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b - z7.b }, za0h.b[w12, 4:7]"

  -
    input:
      bytes: [ 0x20, 0x04, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0h.b[w12, 4:7]"

  -
    input:
      bytes: [ 0x78, 0x44, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.b - z27.b }, za0h.b[w14, 12:15]"

  -
    input:
      bytes: [ 0x30, 0x44, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.b - z19.b }, za0h.b[w14, 4:7]"

  -
    input:
      bytes: [ 0x5c, 0x04, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b - z31.b }, za0h.b[w12, 8:11]"

  -
    input:
      bytes: [ 0x20, 0x64, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0h.b[w15, 4:7]"

  -
    input:
      bytes: [ 0x04, 0x24, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b - z7.b }, za0h.b[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x04, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0h.b[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0x44, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b - z23.b }, za0h.b[w14, 8:11]"

  -
    input:
      bytes: [ 0x34, 0x64, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b - z23.b }, za0h.b[w15, 4:7]"

  -
    input:
      bytes: [ 0x7c, 0x64, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b - z31.b }, za0h.b[w15, 12:15]"

  -
    input:
      bytes: [ 0x24, 0x04, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b - z7.b }, za0h.b[w12, 4:7]"

  -
    input:
      bytes: [ 0x20, 0x04, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0h.b[w12, 4:7]"

  -
    input:
      bytes: [ 0x78, 0x44, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.b - z27.b }, za0h.b[w14, 12:15]"

  -
    input:
      bytes: [ 0x30, 0x44, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.b - z19.b }, za0h.b[w14, 4:7]"

  -
    input:
      bytes: [ 0x5c, 0x04, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b - z31.b }, za0h.b[w12, 8:11]"

  -
    input:
      bytes: [ 0x20, 0x64, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0h.b[w15, 4:7]"

  -
    input:
      bytes: [ 0x04, 0x24, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b - z7.b }, za0h.b[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x84, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0v.b[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0xc4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b - z23.b }, za0v.b[w14, 8:11]"

  -
    input:
      bytes: [ 0x34, 0xe4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b - z23.b }, za0v.b[w15, 4:7]"

  -
    input:
      bytes: [ 0x7c, 0xe4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b - z31.b }, za0v.b[w15, 12:15]"

  -
    input:
      bytes: [ 0x24, 0x84, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b - z7.b }, za0v.b[w12, 4:7]"

  -
    input:
      bytes: [ 0x20, 0x84, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0v.b[w12, 4:7]"

  -
    input:
      bytes: [ 0x78, 0xc4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.b - z27.b }, za0v.b[w14, 12:15]"

  -
    input:
      bytes: [ 0x30, 0xc4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.b - z19.b }, za0v.b[w14, 4:7]"

  -
    input:
      bytes: [ 0x5c, 0x84, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b - z31.b }, za0v.b[w12, 8:11]"

  -
    input:
      bytes: [ 0x20, 0xe4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0v.b[w15, 4:7]"

  -
    input:
      bytes: [ 0x04, 0xa4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b - z7.b }, za0v.b[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x84, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0v.b[w12, 0:3]"

  -
    input:
      bytes: [ 0x54, 0xc4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b - z23.b }, za0v.b[w14, 8:11]"

  -
    input:
      bytes: [ 0x34, 0xe4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z20.b - z23.b }, za0v.b[w15, 4:7]"

  -
    input:
      bytes: [ 0x7c, 0xe4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b - z31.b }, za0v.b[w15, 12:15]"

  -
    input:
      bytes: [ 0x24, 0x84, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b - z7.b }, za0v.b[w12, 4:7]"

  -
    input:
      bytes: [ 0x20, 0x84, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0v.b[w12, 4:7]"

  -
    input:
      bytes: [ 0x78, 0xc4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z24.b - z27.b }, za0v.b[w14, 12:15]"

  -
    input:
      bytes: [ 0x30, 0xc4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z16.b - z19.b }, za0v.b[w14, 4:7]"

  -
    input:
      bytes: [ 0x5c, 0x84, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z28.b - z31.b }, za0v.b[w12, 8:11]"

  -
    input:
      bytes: [ 0x20, 0xe4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z0.b - z3.b }, za0v.b[w15, 4:7]"

  -
    input:
      bytes: [ 0x04, 0xa4, 0x06, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov { z4.b - z7.b }, za0v.b[w13, 0:3]"

  -
    input:
      bytes: [ 0x00, 0x04, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 0:3], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x01, 0x45, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 4:7], { z8.b - z11.b }"

  -
    input:
      bytes: [ 0x83, 0x65, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 12:15], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x83, 0x67, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 12:15], { z28.b - z31.b }"

  -
    input:
      bytes: [ 0x01, 0x06, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 4:7], { z16.b - z19.b }"

  -
    input:
      bytes: [ 0x01, 0x04, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 4:7], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x00, 0x46, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 0:3], { z16.b - z19.b }"

  -
    input:
      bytes: [ 0x80, 0x05, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 0:3], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x01, 0x44, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 4:7], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x81, 0x06, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 4:7], { z20.b - z23.b }"

  -
    input:
      bytes: [ 0x02, 0x65, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 8:11], { z8.b - z11.b }"

  -
    input:
      bytes: [ 0x83, 0x25, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w13, 12:15], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x00, 0x04, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 0:3], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x01, 0x45, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 4:7], { z8.b - z11.b }"

  -
    input:
      bytes: [ 0x83, 0x65, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 12:15], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x83, 0x67, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 12:15], { z28.b - z31.b }"

  -
    input:
      bytes: [ 0x01, 0x06, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 4:7], { z16.b - z19.b }"

  -
    input:
      bytes: [ 0x01, 0x04, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 4:7], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x00, 0x46, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 0:3], { z16.b - z19.b }"

  -
    input:
      bytes: [ 0x80, 0x05, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 0:3], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x01, 0x44, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w14, 4:7], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x81, 0x06, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w12, 4:7], { z20.b - z23.b }"

  -
    input:
      bytes: [ 0x02, 0x65, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w15, 8:11], { z8.b - z11.b }"

  -
    input:
      bytes: [ 0x83, 0x25, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0h.b[w13, 12:15], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x00, 0x84, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 0:3], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x01, 0xc5, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 4:7], { z8.b - z11.b }"

  -
    input:
      bytes: [ 0x83, 0xe5, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 12:15], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x83, 0xe7, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 12:15], { z28.b - z31.b }"

  -
    input:
      bytes: [ 0x01, 0x86, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 4:7], { z16.b - z19.b }"

  -
    input:
      bytes: [ 0x01, 0x84, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 4:7], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x00, 0xc6, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 0:3], { z16.b - z19.b }"

  -
    input:
      bytes: [ 0x80, 0x85, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 0:3], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x01, 0xc4, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 4:7], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x81, 0x86, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 4:7], { z20.b - z23.b }"

  -
    input:
      bytes: [ 0x02, 0xe5, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 8:11], { z8.b - z11.b }"

  -
    input:
      bytes: [ 0x83, 0xa5, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w13, 12:15], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x00, 0x84, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 0:3], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x01, 0xc5, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 4:7], { z8.b - z11.b }"

  -
    input:
      bytes: [ 0x83, 0xe5, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 12:15], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x83, 0xe7, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 12:15], { z28.b - z31.b }"

  -
    input:
      bytes: [ 0x01, 0x86, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 4:7], { z16.b - z19.b }"

  -
    input:
      bytes: [ 0x01, 0x84, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 4:7], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x00, 0xc6, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 0:3], { z16.b - z19.b }"

  -
    input:
      bytes: [ 0x80, 0x85, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 0:3], { z12.b - z15.b }"

  -
    input:
      bytes: [ 0x01, 0xc4, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w14, 4:7], { z0.b - z3.b }"

  -
    input:
      bytes: [ 0x81, 0x86, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w12, 4:7], { z20.b - z23.b }"

  -
    input:
      bytes: [ 0x02, 0xe5, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w15, 8:11], { z8.b - z11.b }"

  -
    input:
      bytes: [ 0x83, 0xa5, 0x04, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2" ]
    expected:
      insns:
        -
          asm_text: "mov za0v.b[w13, 12:15], { z12.b - z15.b }"
