test_cases:
  -
    input:
      bytes: [ 0x20, 0x7c, 0x22, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "uaba v0.8b, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x7c, 0x22, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "uaba v0.16b, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x7c, 0x62, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "uaba v0.4h, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0x7c, 0x62, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "uaba v0.8h, v1.8h, v2.8h"

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

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

  -
    input:
      bytes: [ 0x20, 0x7c, 0x22, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "saba v0.8b, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x7c, 0x22, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "saba v0.16b, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x7c, 0x62, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "saba v0.4h, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0x7c, 0x62, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "saba v0.8h, v1.8h, v2.8h"

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

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

  -
    input:
      bytes: [ 0x20, 0x74, 0x22, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "uabd v0.8b, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x74, 0x22, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "uabd v0.16b, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x74, 0x62, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "uabd v0.4h, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0x74, 0x62, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "uabd v0.8h, v1.8h, v2.8h"

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

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

  -
    input:
      bytes: [ 0x20, 0x74, 0x22, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "sabd v0.8b, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x74, 0x22, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "sabd v0.16b, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x74, 0x62, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "sabd v0.4h, v1.4h, v2.4h"

  -
    input:
      bytes: [ 0x20, 0x74, 0x62, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "sabd v0.8h, v1.8h, v2.8h"

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

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

  -
    input:
      bytes: [ 0x20, 0x14, 0xc2, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fabd v0.4h, v1.4h, v2.4h"

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

  -
    input:
      bytes: [ 0xff, 0xd5, 0xb0, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fabd v31.4s, v15.4s, v16.4s"

  -
    input:
      bytes: [ 0x07, 0xd5, 0xf9, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fabd v7.2d, v8.2d, v25.2d"
