test_cases:
  -
    input:
      bytes: [ 0x1f, 0xfc, 0x40, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "fp8dot2", "+fp8dot4" ]
    expected:
      insns:
        -
          asm_text: "fdot v31.4h, v0.8b, v0.8b"

  -
    input:
      bytes: [ 0x1f, 0xfc, 0x5f, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "fp8dot2", "+fp8dot4" ]
    expected:
      insns:
        -
          asm_text: "fdot v31.8h, v0.16b, v31.16b"

  -
    input:
      bytes: [ 0x00, 0xfc, 0x1f, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "fp8dot2", "+fp8dot4" ]
    expected:
      insns:
        -
          asm_text: "fdot v0.2s, v0.8b, v31.8b"

  -
    input:
      bytes: [ 0x1f, 0xfc, 0x1f, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "fp8dot2", "+fp8dot4" ]
    expected:
      insns:
        -
          asm_text: "fdot v31.4s, v0.16b, v31.16b"

  -
    input:
      bytes: [ 0xff, 0x03, 0x4f, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "fp8dot2", "+fp8dot4" ]
    expected:
      insns:
        -
          asm_text: "fdot v31.4h, v31.8b, v15.2b[0]"

  -
    input:
      bytes: [ 0xda, 0x02, 0x49, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "fp8dot2", "+fp8dot4" ]
    expected:
      insns:
        -
          asm_text: "fdot v26.8h, v22.16b, v9.2b[0]"

  -
    input:
      bytes: [ 0x00, 0x08, 0x7f, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "fp8dot2", "+fp8dot4" ]
    expected:
      insns:
        -
          asm_text: "fdot v0.8h, v0.16b, v15.2b[7]"

  -
    input:
      bytes: [ 0x00, 0x00, 0x1f, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "fp8dot2", "+fp8dot4" ]
    expected:
      insns:
        -
          asm_text: "fdot v0.2s, v0.8b, v31.4b[0]"

  -
    input:
      bytes: [ 0xe0, 0x0b, 0x20, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "fp8dot2", "+fp8dot4" ]
    expected:
      insns:
        -
          asm_text: "fdot v0.4s, v31.16b, v0.4b[3]"
