test_cases:
  -
    input:
      bytes: [ 0x00, 0x38, 0x20, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, w0"

  -
    input:
      bytes: [ 0x00, 0x38, 0x60, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, w0"

  -
    input:
      bytes: [ 0x00, 0x38, 0xa0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, w0"

  -
    input:
      bytes: [ 0x00, 0x38, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, x0"

  -
    input:
      bytes: [ 0xff, 0x3b, 0x60, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.h, wsp"

  -
    input:
      bytes: [ 0xff, 0x3b, 0xa0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.s, wsp"

  -
    input:
      bytes: [ 0xff, 0x3b, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, sp"

  -
    input:
      bytes: [ 0xff, 0x3b, 0x20, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.b, wsp"

  -
    input:
      bytes: [ 0x00, 0x30, 0x60, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, z0.d"

  -
    input:
      bytes: [ 0x1f, 0x30, 0x60, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, z0.d"

  -
    input:
      bytes: [ 0x05, 0xd0, 0x38, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, #-128"

  -
    input:
      bytes: [ 0xe5, 0xcf, 0x38, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, #127"

  -
    input:
      bytes: [ 0xe5, 0xdf, 0x38, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, #-1"

  -
    input:
      bytes: [ 0x15, 0xd0, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #-128"

  -
    input:
      bytes: [ 0x15, 0xf0, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #-32768"

  -
    input:
      bytes: [ 0x15, 0xf0, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #-32768"

  -
    input:
      bytes: [ 0xf5, 0xcf, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #127"

  -
    input:
      bytes: [ 0xf5, 0xef, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #32512"

  -
    input:
      bytes: [ 0xf5, 0xef, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #32512"

  -
    input:
      bytes: [ 0x15, 0xd0, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #-128"

  -
    input:
      bytes: [ 0x15, 0xf0, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #-32768"

  -
    input:
      bytes: [ 0x15, 0xf0, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #-32768"

  -
    input:
      bytes: [ 0xf5, 0xcf, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #127"

  -
    input:
      bytes: [ 0xf5, 0xef, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #32512"

  -
    input:
      bytes: [ 0xf5, 0xef, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #32512"

  -
    input:
      bytes: [ 0x15, 0xd0, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #-128"

  -
    input:
      bytes: [ 0x15, 0xf0, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #-32768"

  -
    input:
      bytes: [ 0x15, 0xf0, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #-32768"

  -
    input:
      bytes: [ 0xf5, 0xcf, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #127"

  -
    input:
      bytes: [ 0xf5, 0xef, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #32512"

  -
    input:
      bytes: [ 0xf5, 0xef, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #32512"

  -
    input:
      bytes: [ 0x00, 0xf0, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, #-32768"

  -
    input:
      bytes: [ 0xe0, 0xff, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, #-256"

  -
    input:
      bytes: [ 0xe0, 0xef, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, #32512"

  -
    input:
      bytes: [ 0xc0, 0x05, 0xc0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, #32767"

  -
    input:
      bytes: [ 0xc0, 0x83, 0xc0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, #0xffff7fff"

  -
    input:
      bytes: [ 0x00, 0x88, 0xc0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, #32768"

  -
    input:
      bytes: [ 0xc0, 0x87, 0xc3, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, #0xffffffffffff7fff"

  -
    input:
      bytes: [ 0x00, 0x88, 0xc3, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, #32768"

  -
    input:
      bytes: [ 0x80, 0x19, 0xc2, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, #0xe0000000000003ff"

  -
    input:
      bytes: [ 0x05, 0x10, 0x10, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, p0/z, #-128"

  -
    input:
      bytes: [ 0xe5, 0x0f, 0x10, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, p0/z, #127"

  -
    input:
      bytes: [ 0xe5, 0x1f, 0x10, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, p0/z, #-1"

  -
    input:
      bytes: [ 0x15, 0x10, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #-128"

  -
    input:
      bytes: [ 0x15, 0x30, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #-32768"

  -
    input:
      bytes: [ 0x15, 0x30, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #-32768"

  -
    input:
      bytes: [ 0xf5, 0x0f, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #127"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #32512"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #32512"

  -
    input:
      bytes: [ 0x15, 0x10, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #-128"

  -
    input:
      bytes: [ 0x15, 0x30, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #-32768"

  -
    input:
      bytes: [ 0x15, 0x30, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #-32768"

  -
    input:
      bytes: [ 0xf5, 0x0f, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #127"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #32512"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #32512"

  -
    input:
      bytes: [ 0x15, 0x10, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #-128"

  -
    input:
      bytes: [ 0x15, 0x30, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #-32768"

  -
    input:
      bytes: [ 0x15, 0x30, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #-32768"

  -
    input:
      bytes: [ 0xf5, 0x0f, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #127"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #32512"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #32512"

  -
    input:
      bytes: [ 0xe0, 0xcf, 0x38, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, #127"

  -
    input:
      bytes: [ 0xe0, 0xef, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, #32512"

  -
    input:
      bytes: [ 0x45, 0xdf, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.h, #-6"

  -
    input:
      bytes: [ 0x45, 0xdf, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.s, #-6"

  -
    input:
      bytes: [ 0x45, 0xdf, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.d, #-6"

  -
    input:
      bytes: [ 0xe0, 0x0f, 0x10, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, p0/z, #127"

  -
    input:
      bytes: [ 0xe0, 0x2f, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, p0/z, #32512"

  -
    input:
      bytes: [ 0xe0, 0x2f, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, p0/z, #32512"

  -
    input:
      bytes: [ 0x05, 0x50, 0x1f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, p15/m, #-128"

  -
    input:
      bytes: [ 0x15, 0x50, 0x5f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p15/m, #-128"

  -
    input:
      bytes: [ 0x15, 0x70, 0x5f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p15/m, #-32768"

  -
    input:
      bytes: [ 0x15, 0x50, 0x9f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p15/m, #-128"

  -
    input:
      bytes: [ 0x15, 0x70, 0x9f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p15/m, #-32768"

  -
    input:
      bytes: [ 0x15, 0x50, 0xdf, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p15/m, #-128"

  -
    input:
      bytes: [ 0x15, 0x70, 0xdf, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p15/m, #-32768"

  -
    input:
      bytes: [ 0x00, 0x20, 0x21, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, b0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x22, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, h0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x24, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, s0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x28, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, d0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x30, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.q, q0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x21, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, b0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x22, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, h0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x24, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, s0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x28, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, d0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x30, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.q, q0"

  -
    input:
      bytes: [ 0xff, 0x23, 0xff, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.b, z31.b[63]"

  -
    input:
      bytes: [ 0xff, 0x23, 0xfe, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.h, z31.h[31]"

  -
    input:
      bytes: [ 0xff, 0x23, 0xfc, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.s, z31.s[15]"

  -
    input:
      bytes: [ 0xff, 0x23, 0xf8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, z31.d[7]"

  -
    input:
      bytes: [ 0x25, 0x22, 0xf0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.q, z17.q[3]"

  -
    input:
      bytes: [ 0x00, 0xa0, 0x28, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, p0/m, w0"

  -
    input:
      bytes: [ 0x00, 0xa0, 0x68, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, p0/m, w0"

  -
    input:
      bytes: [ 0x00, 0xa0, 0xa8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, p0/m, w0"

  -
    input:
      bytes: [ 0x00, 0xa0, 0xe8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, p0/m, x0"

  -
    input:
      bytes: [ 0xff, 0xbf, 0x28, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.b, p7/m, wsp"

  -
    input:
      bytes: [ 0xff, 0xbf, 0x68, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.h, p7/m, wsp"

  -
    input:
      bytes: [ 0xff, 0xbf, 0xa8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.s, p7/m, wsp"

  -
    input:
      bytes: [ 0xff, 0xbf, 0xe8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, p7/m, sp"

  -
    input:
      bytes: [ 0x00, 0x80, 0x20, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, p0/m, b0"

  -
    input:
      bytes: [ 0xff, 0x9f, 0x20, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.b, p7/m, b31"

  -
    input:
      bytes: [ 0x00, 0x80, 0x60, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, p0/m, h0"

  -
    input:
      bytes: [ 0xff, 0x9f, 0x60, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.h, p7/m, h31"

  -
    input:
      bytes: [ 0x00, 0x80, 0xa0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, p0/m, s0"

  -
    input:
      bytes: [ 0xff, 0x9f, 0xa0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.s, p7/m, s31"

  -
    input:
      bytes: [ 0x00, 0x80, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, p0/m, d0"

  -
    input:
      bytes: [ 0xff, 0x9f, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, p7/m, d31"

  -
    input:
      bytes: [ 0x10, 0x42, 0x00, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov p0.b, p0/m, p0.b"

  -
    input:
      bytes: [ 0xff, 0x7f, 0x0f, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov p15.b, p15/m, p15.b"

  -
    input:
      bytes: [ 0xff, 0xff, 0x3f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.b, p15/m, z31.b"

  -
    input:
      bytes: [ 0xff, 0xff, 0x7f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.h, p15/m, z31.h"

  -
    input:
      bytes: [ 0xff, 0xff, 0xbf, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.s, p15/m, z31.s"

  -
    input:
      bytes: [ 0xff, 0xff, 0xff, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, p15/m, z31.d"

  -
    input:
      bytes: [ 0x00, 0x40, 0x80, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov p0.b, p0.b"

  -
    input:
      bytes: [ 0xef, 0x7d, 0x8f, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov p15.b, p15.b"

  -
    input:
      bytes: [ 0x00, 0x40, 0x00, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov p0.b, p0/z, p0.b"

  -
    input:
      bytes: [ 0xef, 0x7d, 0x0f, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov p15.b, p15/z, p15.b"

  -
    input:
      bytes: [ 0xdf, 0x3c, 0xd0, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "movprfx z31.d, p7/z, z6.d"

  -
    input:
      bytes: [ 0xff, 0xbf, 0xe8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, p7/m, sp"

  -
    input:
      bytes: [ 0xdf, 0xbc, 0x20, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "movprfx z31, z6"

  -
    input:
      bytes: [ 0xff, 0xbf, 0xe8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, p7/m, sp"

  -
    input:
      bytes: [ 0x95, 0x3f, 0xd0, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "movprfx z21.d, p7/z, z28.d"

  -
    input:
      bytes: [ 0x15, 0x70, 0xd7, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p7/m, #-32768"

  -
    input:
      bytes: [ 0x95, 0xbf, 0x20, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "movprfx z21, z28"

  -
    input:
      bytes: [ 0x15, 0x70, 0xdf, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p15/m, #-32768"

  -
    input:
      bytes: [ 0xc4, 0x3c, 0xd0, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "movprfx z4.d, p7/z, z6.d"

  -
    input:
      bytes: [ 0xe4, 0x9f, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z4.d, p7/m, d31"

  -
    input:
      bytes: [ 0xc4, 0xbc, 0x20, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "movprfx z4, z6"

  -
    input:
      bytes: [ 0xe4, 0x9f, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z4.d, p7/m, d31"

  -
    input:
      bytes: [ 0x00, 0x38, 0x20, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, w0"

  -
    input:
      bytes: [ 0x00, 0x38, 0x60, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, w0"

  -
    input:
      bytes: [ 0x00, 0x38, 0xa0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, w0"

  -
    input:
      bytes: [ 0x00, 0x38, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, x0"

  -
    input:
      bytes: [ 0xff, 0x3b, 0x60, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.h, wsp"

  -
    input:
      bytes: [ 0xff, 0x3b, 0xa0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.s, wsp"

  -
    input:
      bytes: [ 0xff, 0x3b, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, sp"

  -
    input:
      bytes: [ 0xff, 0x3b, 0x20, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.b, wsp"

  -
    input:
      bytes: [ 0x00, 0x30, 0x60, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, z0.d"

  -
    input:
      bytes: [ 0x1f, 0x30, 0x60, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, z0.d"

  -
    input:
      bytes: [ 0x05, 0xd0, 0x38, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, #-128"

  -
    input:
      bytes: [ 0xe5, 0xcf, 0x38, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, #127"

  -
    input:
      bytes: [ 0xe5, 0xdf, 0x38, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, #-1"

  -
    input:
      bytes: [ 0x15, 0xd0, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #-128"

  -
    input:
      bytes: [ 0x15, 0xf0, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #-32768"

  -
    input:
      bytes: [ 0x15, 0xf0, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #-32768"

  -
    input:
      bytes: [ 0xf5, 0xcf, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #127"

  -
    input:
      bytes: [ 0xf5, 0xef, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #32512"

  -
    input:
      bytes: [ 0xf5, 0xef, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, #32512"

  -
    input:
      bytes: [ 0x15, 0xd0, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #-128"

  -
    input:
      bytes: [ 0x15, 0xf0, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #-32768"

  -
    input:
      bytes: [ 0x15, 0xf0, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #-32768"

  -
    input:
      bytes: [ 0xf5, 0xcf, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #127"

  -
    input:
      bytes: [ 0xf5, 0xef, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #32512"

  -
    input:
      bytes: [ 0xf5, 0xef, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, #32512"

  -
    input:
      bytes: [ 0x15, 0xd0, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #-128"

  -
    input:
      bytes: [ 0x15, 0xf0, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #-32768"

  -
    input:
      bytes: [ 0x15, 0xf0, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #-32768"

  -
    input:
      bytes: [ 0xf5, 0xcf, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #127"

  -
    input:
      bytes: [ 0xf5, 0xef, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #32512"

  -
    input:
      bytes: [ 0xf5, 0xef, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, #32512"

  -
    input:
      bytes: [ 0x00, 0xf0, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, #-32768"

  -
    input:
      bytes: [ 0xe0, 0xff, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, #-256"

  -
    input:
      bytes: [ 0xe0, 0xef, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, #32512"

  -
    input:
      bytes: [ 0xc0, 0x05, 0xc0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, #32767"

  -
    input:
      bytes: [ 0xc0, 0x83, 0xc0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, #0xffff7fff"

  -
    input:
      bytes: [ 0x00, 0x88, 0xc0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, #32768"

  -
    input:
      bytes: [ 0xc0, 0x87, 0xc3, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, #0xffffffffffff7fff"

  -
    input:
      bytes: [ 0x00, 0x88, 0xc3, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, #32768"

  -
    input:
      bytes: [ 0x80, 0x19, 0xc2, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, #0xe0000000000003ff"

  -
    input:
      bytes: [ 0x05, 0x10, 0x10, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, p0/z, #-128"

  -
    input:
      bytes: [ 0xe5, 0x0f, 0x10, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, p0/z, #127"

  -
    input:
      bytes: [ 0xe5, 0x1f, 0x10, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, p0/z, #-1"

  -
    input:
      bytes: [ 0x15, 0x10, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #-128"

  -
    input:
      bytes: [ 0x15, 0x30, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #-32768"

  -
    input:
      bytes: [ 0x15, 0x30, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #-32768"

  -
    input:
      bytes: [ 0xf5, 0x0f, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #127"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #32512"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p0/z, #32512"

  -
    input:
      bytes: [ 0x15, 0x10, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #-128"

  -
    input:
      bytes: [ 0x15, 0x30, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #-32768"

  -
    input:
      bytes: [ 0x15, 0x30, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #-32768"

  -
    input:
      bytes: [ 0xf5, 0x0f, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #127"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #32512"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0x90, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p0/z, #32512"

  -
    input:
      bytes: [ 0x15, 0x10, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #-128"

  -
    input:
      bytes: [ 0x15, 0x30, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #-32768"

  -
    input:
      bytes: [ 0x15, 0x30, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #-32768"

  -
    input:
      bytes: [ 0xf5, 0x0f, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #127"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #32512"

  -
    input:
      bytes: [ 0xf5, 0x2f, 0xd0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p0/z, #32512"

  -
    input:
      bytes: [ 0xe0, 0xcf, 0x38, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, #127"

  -
    input:
      bytes: [ 0xe0, 0xef, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, #32512"

  -
    input:
      bytes: [ 0x45, 0xdf, 0x78, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.h, #-6"

  -
    input:
      bytes: [ 0x45, 0xdf, 0xb8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.s, #-6"

  -
    input:
      bytes: [ 0x45, 0xdf, 0xf8, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.d, #-6"

  -
    input:
      bytes: [ 0xe0, 0x0f, 0x10, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, p0/z, #127"

  -
    input:
      bytes: [ 0xe0, 0x2f, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, p0/z, #32512"

  -
    input:
      bytes: [ 0xe0, 0x2f, 0x50, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, p0/z, #32512"

  -
    input:
      bytes: [ 0x05, 0x50, 0x1f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.b, p15/m, #-128"

  -
    input:
      bytes: [ 0x15, 0x50, 0x5f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p15/m, #-128"

  -
    input:
      bytes: [ 0x15, 0x70, 0x5f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.h, p15/m, #-32768"

  -
    input:
      bytes: [ 0x15, 0x50, 0x9f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p15/m, #-128"

  -
    input:
      bytes: [ 0x15, 0x70, 0x9f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.s, p15/m, #-32768"

  -
    input:
      bytes: [ 0x15, 0x50, 0xdf, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p15/m, #-128"

  -
    input:
      bytes: [ 0x15, 0x70, 0xdf, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p15/m, #-32768"

  -
    input:
      bytes: [ 0x00, 0x20, 0x21, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, b0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x22, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, h0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x24, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, s0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x28, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, d0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x30, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.q, q0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x21, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, b0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x22, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, h0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x24, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, s0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x28, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, d0"

  -
    input:
      bytes: [ 0x00, 0x20, 0x30, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.q, q0"

  -
    input:
      bytes: [ 0xff, 0x23, 0xff, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.b, z31.b[63]"

  -
    input:
      bytes: [ 0xff, 0x23, 0xfe, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.h, z31.h[31]"

  -
    input:
      bytes: [ 0xff, 0x23, 0xfc, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.s, z31.s[15]"

  -
    input:
      bytes: [ 0xff, 0x23, 0xf8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, z31.d[7]"

  -
    input:
      bytes: [ 0x25, 0x22, 0xf0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.q, z17.q[3]"

  -
    input:
      bytes: [ 0x00, 0xa0, 0x28, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, p0/m, w0"

  -
    input:
      bytes: [ 0x00, 0xa0, 0x68, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, p0/m, w0"

  -
    input:
      bytes: [ 0x00, 0xa0, 0xa8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, p0/m, w0"

  -
    input:
      bytes: [ 0x00, 0xa0, 0xe8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, p0/m, x0"

  -
    input:
      bytes: [ 0xff, 0xbf, 0x28, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.b, p7/m, wsp"

  -
    input:
      bytes: [ 0xff, 0xbf, 0x68, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.h, p7/m, wsp"

  -
    input:
      bytes: [ 0xff, 0xbf, 0xa8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.s, p7/m, wsp"

  -
    input:
      bytes: [ 0xff, 0xbf, 0xe8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, p7/m, sp"

  -
    input:
      bytes: [ 0x00, 0x80, 0x20, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.b, p0/m, b0"

  -
    input:
      bytes: [ 0xff, 0x9f, 0x20, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.b, p7/m, b31"

  -
    input:
      bytes: [ 0x00, 0x80, 0x60, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.h, p0/m, h0"

  -
    input:
      bytes: [ 0xff, 0x9f, 0x60, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.h, p7/m, h31"

  -
    input:
      bytes: [ 0x00, 0x80, 0xa0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.s, p0/m, s0"

  -
    input:
      bytes: [ 0xff, 0x9f, 0xa0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.s, p7/m, s31"

  -
    input:
      bytes: [ 0x00, 0x80, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z0.d, p0/m, d0"

  -
    input:
      bytes: [ 0xff, 0x9f, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, p7/m, d31"

  -
    input:
      bytes: [ 0x10, 0x42, 0x00, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov p0.b, p0/m, p0.b"

  -
    input:
      bytes: [ 0xff, 0x7f, 0x0f, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov p15.b, p15/m, p15.b"

  -
    input:
      bytes: [ 0xff, 0xff, 0x3f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.b, p15/m, z31.b"

  -
    input:
      bytes: [ 0xff, 0xff, 0x7f, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.h, p15/m, z31.h"

  -
    input:
      bytes: [ 0xff, 0xff, 0xbf, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.s, p15/m, z31.s"

  -
    input:
      bytes: [ 0xff, 0xff, 0xff, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, p15/m, z31.d"

  -
    input:
      bytes: [ 0x00, 0x40, 0x80, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov p0.b, p0.b"

  -
    input:
      bytes: [ 0xef, 0x7d, 0x8f, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov p15.b, p15.b"

  -
    input:
      bytes: [ 0x00, 0x40, 0x00, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov p0.b, p0/z, p0.b"

  -
    input:
      bytes: [ 0xef, 0x7d, 0x0f, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov p15.b, p15/z, p15.b"

  -
    input:
      bytes: [ 0xdf, 0x3c, 0xd0, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "movprfx z31.d, p7/z, z6.d"

  -
    input:
      bytes: [ 0xff, 0xbf, 0xe8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, p7/m, sp"

  -
    input:
      bytes: [ 0xdf, 0xbc, 0x20, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "movprfx z31, z6"

  -
    input:
      bytes: [ 0xff, 0xbf, 0xe8, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z31.d, p7/m, sp"

  -
    input:
      bytes: [ 0x95, 0x3f, 0xd0, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "movprfx z21.d, p7/z, z28.d"

  -
    input:
      bytes: [ 0x15, 0x70, 0xd7, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p7/m, #-32768"

  -
    input:
      bytes: [ 0x95, 0xbf, 0x20, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "movprfx z21, z28"

  -
    input:
      bytes: [ 0x15, 0x70, 0xdf, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z21.d, p15/m, #-32768"

  -
    input:
      bytes: [ 0xc4, 0x3c, 0xd0, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "movprfx z4.d, p7/z, z6.d"

  -
    input:
      bytes: [ 0xe4, 0x9f, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z4.d, p7/m, d31"

  -
    input:
      bytes: [ 0xc4, 0xbc, 0x20, 0x04 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "movprfx z4, z6"

  -
    input:
      bytes: [ 0xe4, 0x9f, 0xe0, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z4.d, p7/m, d31"
