test_cases:
  -
    input:
      bytes: [ 0x20, 0x40, 0x28, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint32z s0, s1"

  -
    input:
      bytes: [ 0x20, 0x40, 0x68, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint32z d0, d1"

  -
    input:
      bytes: [ 0x62, 0x40, 0x29, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint64z s2, s3"

  -
    input:
      bytes: [ 0x62, 0x40, 0x69, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint64z d2, d3"

  -
    input:
      bytes: [ 0xa4, 0xc0, 0x28, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint32x s4, s5"

  -
    input:
      bytes: [ 0xa4, 0xc0, 0x68, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint32x d4, d5"

  -
    input:
      bytes: [ 0xe6, 0xc0, 0x29, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint64x s6, s7"

  -
    input:
      bytes: [ 0xe6, 0xc0, 0x69, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint64x d6, d7"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x21, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint32z v0.2s, v1.2s"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x61, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint32z v0.2d, v1.2d"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x21, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint32z v0.4s, v1.4s"

  -
    input:
      bytes: [ 0x62, 0xf8, 0x21, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint64z v2.2s, v3.2s"

  -
    input:
      bytes: [ 0x62, 0xf8, 0x61, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint64z v2.2d, v3.2d"

  -
    input:
      bytes: [ 0x62, 0xf8, 0x21, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint64z v2.4s, v3.4s"

  -
    input:
      bytes: [ 0xa4, 0xe8, 0x21, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint32x v4.2s, v5.2s"

  -
    input:
      bytes: [ 0xa4, 0xe8, 0x61, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint32x v4.2d, v5.2d"

  -
    input:
      bytes: [ 0xa4, 0xe8, 0x21, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint32x v4.4s, v5.4s"

  -
    input:
      bytes: [ 0xe6, 0xf8, 0x21, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint64x v6.2s, v7.2s"

  -
    input:
      bytes: [ 0xe6, 0xf8, 0x61, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint64x v6.2d, v7.2d"

  -
    input:
      bytes: [ 0xe6, 0xf8, 0x21, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.5a" ]
    expected:
      insns:
        -
          asm_text: "frint64x v6.4s, v7.4s"

  -
    input:
      bytes: [ 0x20, 0x40, 0x28, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint32z s0, s1"

  -
    input:
      bytes: [ 0x20, 0x40, 0x68, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint32z d0, d1"

  -
    input:
      bytes: [ 0x62, 0x40, 0x29, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint64z s2, s3"

  -
    input:
      bytes: [ 0x62, 0x40, 0x69, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint64z d2, d3"

  -
    input:
      bytes: [ 0xa4, 0xc0, 0x28, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint32x s4, s5"

  -
    input:
      bytes: [ 0xa4, 0xc0, 0x68, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint32x d4, d5"

  -
    input:
      bytes: [ 0xe6, 0xc0, 0x29, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint64x s6, s7"

  -
    input:
      bytes: [ 0xe6, 0xc0, 0x69, 0x1e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint64x d6, d7"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x21, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint32z v0.2s, v1.2s"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x61, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint32z v0.2d, v1.2d"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x21, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint32z v0.4s, v1.4s"

  -
    input:
      bytes: [ 0x62, 0xf8, 0x21, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint64z v2.2s, v3.2s"

  -
    input:
      bytes: [ 0x62, 0xf8, 0x61, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint64z v2.2d, v3.2d"

  -
    input:
      bytes: [ 0x62, 0xf8, 0x21, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint64z v2.4s, v3.4s"

  -
    input:
      bytes: [ 0xa4, 0xe8, 0x21, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint32x v4.2s, v5.2s"

  -
    input:
      bytes: [ 0xa4, 0xe8, 0x61, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint32x v4.2d, v5.2d"

  -
    input:
      bytes: [ 0xa4, 0xe8, 0x21, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint32x v4.4s, v5.4s"

  -
    input:
      bytes: [ 0xe6, 0xf8, 0x21, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint64x v6.2s, v7.2s"

  -
    input:
      bytes: [ 0xe6, 0xf8, 0x61, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint64x v6.2d, v7.2d"

  -
    input:
      bytes: [ 0xe6, 0xf8, 0x21, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "v8.4a", "+fptoint" ]
    expected:
      insns:
        -
          asm_text: "frint64x v6.4s, v7.4s"
