test_cases:
  -
    input:
      bytes: [ 0x00, 0xfc, 0xc0, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlalb v0.8h, v0.16b, v0.16b"

  -
    input:
      bytes: [ 0xff, 0xff, 0xdf, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlalt v31.8h, v31.16b, v31.16b"

  -
    input:
      bytes: [ 0x00, 0xc4, 0x1f, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlallbb v0.4s, v0.16b, v31.16b"

  -
    input:
      bytes: [ 0xff, 0xc7, 0x40, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlallbt v31.4s, v31.16b, v0.16b"

  -
    input:
      bytes: [ 0xff, 0xc7, 0x00, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlalltb v31.4s, v31.16b, v0.16b"

  -
    input:
      bytes: [ 0x00, 0xc4, 0x5f, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlalltt v0.4s, v0.16b, v31.16b"

  -
    input:
      bytes: [ 0xff, 0xc7, 0x5f, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlalltt v31.4s, v31.16b, v31.16b"

  -
    input:
      bytes: [ 0x1f, 0x00, 0xc0, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlalb v31.8h, v0.16b, v0.b[0]"

  -
    input:
      bytes: [ 0x1f, 0x08, 0xf8, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlalt v31.8h, v0.16b, v0.b[15]"

  -
    input:
      bytes: [ 0x1f, 0x80, 0x07, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlallbb v31.4s, v0.16b, v7.b[0]"

  -
    input:
      bytes: [ 0x1f, 0x80, 0x47, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlalltt v31.4s, v0.16b, v7.b[0]"

  -
    input:
      bytes: [ 0xe0, 0x8b, 0x3f, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlalltb v0.4s, v31.16b, v7.b[15]"

  -
    input:
      bytes: [ 0xe0, 0x8b, 0x78, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "fp8fma" ]
    expected:
      insns:
        -
          asm_text: "fmlallbt v0.4s, v31.16b, v0.b[15]"
