test_cases:
  -
    input:
      bytes: [ 0x6a, 0x25, 0x4c, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmeq h10, h11, h12"

  -
    input:
      bytes: [ 0x6a, 0xe5, 0x2c, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmeq s10, s11, s12"

  -
    input:
      bytes: [ 0xb4, 0xe6, 0x76, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmeq d20, d21, d22"

  -
    input:
      bytes: [ 0x6a, 0xd9, 0xf8, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmeq h10, h11, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xd9, 0xa0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmeq s10, s11, #0.0"

  -
    input:
      bytes: [ 0xb4, 0xda, 0xe0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmeq d20, d21, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xd9, 0xf8, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmeq h10, h11, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xd9, 0xa0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmeq s10, s11, #0.0"

  -
    input:
      bytes: [ 0xb4, 0xda, 0xe0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmeq d20, d21, #0.0"

  -
    input:
      bytes: [ 0x6a, 0x25, 0x4c, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmge h10, h11, h12"

  -
    input:
      bytes: [ 0x6a, 0xe5, 0x2c, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmge s10, s11, s12"

  -
    input:
      bytes: [ 0xb4, 0xe6, 0x76, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmge d20, d21, d22"

  -
    input:
      bytes: [ 0x6a, 0xc9, 0xf8, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmge h10, h11, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xc9, 0xa0, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmge s10, s11, #0.0"

  -
    input:
      bytes: [ 0xb4, 0xca, 0xe0, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmge d20, d21, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xc9, 0xf8, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmge h10, h11, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xc9, 0xa0, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmge s10, s11, #0.0"

  -
    input:
      bytes: [ 0xb4, 0xca, 0xe0, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmge d20, d21, #0.0"

  -
    input:
      bytes: [ 0x6a, 0x25, 0xcc, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmgt h10, h11, h12"

  -
    input:
      bytes: [ 0x6a, 0xe5, 0xac, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmgt s10, s11, s12"

  -
    input:
      bytes: [ 0xb4, 0xe6, 0xf6, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmgt d20, d21, d22"

  -
    input:
      bytes: [ 0x6a, 0xc9, 0xf8, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmgt h10, h11, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xc9, 0xa0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmgt s10, s11, #0.0"

  -
    input:
      bytes: [ 0xb4, 0xca, 0xe0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmgt d20, d21, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xc9, 0xf8, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmgt h10, h11, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xc9, 0xa0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmgt s10, s11, #0.0"

  -
    input:
      bytes: [ 0xb4, 0xca, 0xe0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmgt d20, d21, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xd9, 0xf8, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmle h10, h11, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xd9, 0xa0, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmle s10, s11, #0.0"

  -
    input:
      bytes: [ 0xb4, 0xda, 0xe0, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmle d20, d21, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xd9, 0xf8, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmle h10, h11, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xd9, 0xa0, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmle s10, s11, #0.0"

  -
    input:
      bytes: [ 0xb4, 0xda, 0xe0, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmle d20, d21, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xe9, 0xf8, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmlt h10, h11, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xe9, 0xa0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmlt s10, s11, #0.0"

  -
    input:
      bytes: [ 0xb4, 0xea, 0xe0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmlt d20, d21, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xe9, 0xf8, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmlt h10, h11, #0.0"

  -
    input:
      bytes: [ 0x6a, 0xe9, 0xa0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmlt s10, s11, #0.0"

  -
    input:
      bytes: [ 0xb4, 0xea, 0xe0, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "fcmlt d20, d21, #0.0"

  -
    input:
      bytes: [ 0x6a, 0x2d, 0x4c, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "facge h10, h11, h12"

  -
    input:
      bytes: [ 0x6a, 0xed, 0x2c, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "facge s10, s11, s12"

  -
    input:
      bytes: [ 0xb4, 0xee, 0x76, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "facge d20, d21, d22"

  -
    input:
      bytes: [ 0x6a, 0x2d, 0xcc, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "facgt h10, h11, h12"

  -
    input:
      bytes: [ 0x6a, 0xed, 0xac, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "facgt s10, s11, s12"

  -
    input:
      bytes: [ 0xb4, 0xee, 0xf6, 0x7e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon", "+fullfp16" ]
    expected:
      insns:
        -
          asm_text: "facgt d20, d21, d22"
