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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  -
    input:
      bytes: [ 0xff, 0x23, 0xff, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "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_ONLY_OFFSET_BRANCH", "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_ONLY_OFFSET_BRANCH", "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_ONLY_OFFSET_BRANCH", "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_ONLY_OFFSET_BRANCH", "aarch64", "sve" ]
    expected:
      insns:
        -
          asm_text: "mov z5.q, z17.q[3]"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  -
    input:
      bytes: [ 0xff, 0x23, 0xff, 0x05 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "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_ONLY_OFFSET_BRANCH", "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_ONLY_OFFSET_BRANCH", "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_ONLY_OFFSET_BRANCH", "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_ONLY_OFFSET_BRANCH", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "mov z5.q, z17.q[3]"

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

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

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