test_cases:
  -
    input:
      bytes: [ 0x00, 0xa0, 0xd0, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v0.2d, p0, z0.d"

  -
    input:
      bytes: [ 0x55, 0xb5, 0xd0, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v21.2d, p5, z10.d"

  -
    input:
      bytes: [ 0xb7, 0xad, 0xd0, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v23.2d, p3, z13.d"

  -
    input:
      bytes: [ 0xff, 0xbf, 0xd0, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v31.2d, p7, z31.d"

  -
    input:
      bytes: [ 0x00, 0xa0, 0x50, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v0.8h, p0, z0.h"

  -
    input:
      bytes: [ 0x55, 0xb5, 0x50, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v21.8h, p5, z10.h"

  -
    input:
      bytes: [ 0xb7, 0xad, 0x50, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v23.8h, p3, z13.h"

  -
    input:
      bytes: [ 0xff, 0xbf, 0x50, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v31.8h, p7, z31.h"

  -
    input:
      bytes: [ 0x00, 0xa0, 0x90, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v0.4s, p0, z0.s"

  -
    input:
      bytes: [ 0x55, 0xb5, 0x90, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v21.4s, p5, z10.s"

  -
    input:
      bytes: [ 0xb7, 0xad, 0x90, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v23.4s, p3, z13.s"

  -
    input:
      bytes: [ 0xff, 0xbf, 0x90, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v31.4s, p7, z31.s"

  -
    input:
      bytes: [ 0x00, 0xa0, 0xd0, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v0.2d, p0, z0.d"

  -
    input:
      bytes: [ 0x55, 0xb5, 0xd0, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v21.2d, p5, z10.d"

  -
    input:
      bytes: [ 0xb7, 0xad, 0xd0, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v23.2d, p3, z13.d"

  -
    input:
      bytes: [ 0xff, 0xbf, 0xd0, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v31.2d, p7, z31.d"

  -
    input:
      bytes: [ 0x00, 0xa0, 0x50, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v0.8h, p0, z0.h"

  -
    input:
      bytes: [ 0x55, 0xb5, 0x50, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v21.8h, p5, z10.h"

  -
    input:
      bytes: [ 0xb7, 0xad, 0x50, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v23.8h, p3, z13.h"

  -
    input:
      bytes: [ 0xff, 0xbf, 0x50, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v31.8h, p7, z31.h"

  -
    input:
      bytes: [ 0x00, 0xa0, 0x90, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v0.4s, p0, z0.s"

  -
    input:
      bytes: [ 0x55, 0xb5, 0x90, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v21.4s, p5, z10.s"

  -
    input:
      bytes: [ 0xb7, 0xad, 0x90, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v23.4s, p3, z13.s"

  -
    input:
      bytes: [ 0xff, 0xbf, 0x90, 0x64 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2p1" ]
    expected:
      insns:
        -
          asm_text: "faddqv v31.4s, p7, z31.s"
