test_cases:
  -
    input:
      bytes: [ 0x00, 0x00, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za0.d, p0/m, p0/m, z0.d"

  -
    input:
      bytes: [ 0x45, 0x55, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za5.d, p5/m, p2/m, z10.d"

  -
    input:
      bytes: [ 0xa7, 0xed, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za7.d, p3/m, p7/m, z13.d"

  -
    input:
      bytes: [ 0xe7, 0xff, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za7.d, p7/m, p7/m, z31.d"

  -
    input:
      bytes: [ 0x25, 0x0e, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za5.d, p3/m, p0/m, z17.d"

  -
    input:
      bytes: [ 0x21, 0x84, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za1.d, p1/m, p4/m, z1.d"

  -
    input:
      bytes: [ 0x60, 0x56, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za0.d, p5/m, p2/m, z19.d"

  -
    input:
      bytes: [ 0x80, 0x19, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za0.d, p6/m, p0/m, z12.d"

  -
    input:
      bytes: [ 0x21, 0xc8, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za1.d, p2/m, p6/m, z1.d"

  -
    input:
      bytes: [ 0xc5, 0x0a, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za5.d, p2/m, p0/m, z22.d"

  -
    input:
      bytes: [ 0x22, 0xf5, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za2.d, p5/m, p7/m, z9.d"

  -
    input:
      bytes: [ 0x87, 0xa9, 0xd0, 0xc0 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme-i16i64" ]
    expected:
      insns:
        -
          asm_text: "addha za7.d, p2/m, p5/m, z12.d"
