test_cases:
  -
    input:
      bytes: [ 0x00, 0x30, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x33, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x30, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x33, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x34, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x37, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x34, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x37, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x38, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x3b, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x38, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x3b, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x3c, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x3f, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x3c, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x3f, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x30, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvtlt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x33, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvtlt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x30, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvtlt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x33, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvtlt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x34, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvtlt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x37, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvtlt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x34, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvtlt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x37, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvtlt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x38, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvtlt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x3b, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvtlt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x38, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvtlt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x3b, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvtlt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x3c, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvtlt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x3f, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvtlt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x3c, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvtlt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x3f, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvtlt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x30, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x33, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x30, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x33, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x34, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x37, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x34, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x37, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x38, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x3b, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x38, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x3b, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x3c, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x3f, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x3c, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x3f, 0x08, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x30, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvtlt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x33, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvtlt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x30, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvtlt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x33, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f1cvtlt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x34, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvtlt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x37, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvtlt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x34, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvtlt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x37, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "f2cvtlt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x38, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvtlt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x3b, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvtlt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x38, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvtlt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x3b, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf1cvtlt z31.h, z31.b"

  -
    input:
      bytes: [ 0x00, 0x3c, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvtlt z0.h, z0.b"

  -
    input:
      bytes: [ 0xe0, 0x3f, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvtlt z0.h, z31.b"

  -
    input:
      bytes: [ 0x1f, 0x3c, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvtlt z31.h, z0.b"

  -
    input:
      bytes: [ 0xff, 0x3f, 0x09, 0x65 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme2", "+fp8" ]
    expected:
      insns:
        -
          asm_text: "bf2cvtlt z31.h, z31.b"
