test_cases:
  -
    input:
      bytes: [ 0x20, 0xec, 0x22, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.2s, v1.2h, v2.2h"

  -
    input:
      bytes: [ 0x20, 0xec, 0xa2, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.2s, v1.2h, v2.2h"

  -
    input:
      bytes: [ 0x20, 0xec, 0x22, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.4s, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0xec, 0xa2, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.4s, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0xcc, 0x22, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.2s, v1.2h, v2.2h"

  -
    input:
      bytes: [ 0x20, 0xcc, 0xa2, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.2s, v1.2h, v2.2h"

  -
    input:
      bytes: [ 0x20, 0xcc, 0x22, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.4s, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0xcc, 0xa2, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.4s, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0x08, 0xb2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.2s, v1.2h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x48, 0xb2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.2s, v1.2h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x08, 0xb2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.4s, v1.4h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x48, 0xb2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.4s, v1.4h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x88, 0xb2, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.2s, v1.2h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0xc8, 0xb2, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.2s, v1.2h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x88, 0xb2, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.4s, v1.4h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0xc8, 0xb2, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.4s, v1.4h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x08, 0x92, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.2s, v1.2h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0x48, 0x92, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.2s, v1.2h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0x08, 0x92, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.4s, v1.4h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0x48, 0x92, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.4s, v1.4h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0x88, 0x92, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.2s, v1.2h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0xc8, 0x92, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.2s, v1.2h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0x88, 0x92, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.4s, v1.4h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0xc8, 0x92, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.4s, v1.4h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0xec, 0x22, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.2s, v1.2h, v2.2h"

  -
    input:
      bytes: [ 0x20, 0xec, 0xa2, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.2s, v1.2h, v2.2h"

  -
    input:
      bytes: [ 0x20, 0xec, 0x22, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.4s, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0xec, 0xa2, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.4s, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0xcc, 0x22, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.2s, v1.2h, v2.2h"

  -
    input:
      bytes: [ 0x20, 0xcc, 0xa2, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.2s, v1.2h, v2.2h"

  -
    input:
      bytes: [ 0x20, 0xcc, 0x22, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.4s, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0xcc, 0xa2, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.4s, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0x08, 0xb2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.2s, v1.2h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x48, 0xb2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.2s, v1.2h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x08, 0xb2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.4s, v1.4h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x48, 0xb2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.4s, v1.4h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x88, 0xb2, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.2s, v1.2h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0xc8, 0xb2, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.2s, v1.2h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x88, 0xb2, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.4s, v1.4h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0xc8, 0xb2, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.4s, v1.4h, v2.h[7]"

  -
    input:
      bytes: [ 0x20, 0x08, 0x92, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.2s, v1.2h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0x48, 0x92, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.2s, v1.2h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0x08, 0x92, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal v0.4s, v1.4h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0x48, 0x92, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl v0.4s, v1.4h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0x88, 0x92, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.2s, v1.2h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0xc8, 0x92, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.2s, v1.2h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0x88, 0x92, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlal2 v0.4s, v1.4h, v2.h[5]"

  -
    input:
      bytes: [ 0x20, 0xc8, 0x92, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "-fullfp16", "+fp16fml" ]
    expected:
      insns:
        -
          asm_text: "fmlsl2 v0.4s, v1.4h, v2.h[5]"
