test_cases:
  -
    input:
      bytes: [ 0xc0, 0xd2, 0x1b, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr S3_3_C13_C2_6, x0"

  -
    input:
      bytes: [ 0xc0, 0xd2, 0x3b, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMCG1IDR_EL0"

  -
    input:
      bytes: [ 0x00, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF00_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF01_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF02_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF03_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF04_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF05_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF06_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF07_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF08_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF09_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF010_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF011_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF012_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF013_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF014_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF015_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF00_EL2"

  -
    input:
      bytes: [ 0x20, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF01_EL2"

  -
    input:
      bytes: [ 0x40, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF02_EL2"

  -
    input:
      bytes: [ 0x60, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF03_EL2"

  -
    input:
      bytes: [ 0x80, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF04_EL2"

  -
    input:
      bytes: [ 0xa0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF05_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF06_EL2"

  -
    input:
      bytes: [ 0xe0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF07_EL2"

  -
    input:
      bytes: [ 0x00, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF08_EL2"

  -
    input:
      bytes: [ 0x20, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF09_EL2"

  -
    input:
      bytes: [ 0x40, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF010_EL2"

  -
    input:
      bytes: [ 0x60, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF011_EL2"

  -
    input:
      bytes: [ 0x80, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF012_EL2"

  -
    input:
      bytes: [ 0xa0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF013_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF014_EL2"

  -
    input:
      bytes: [ 0xe0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF015_EL2"

  -
    input:
      bytes: [ 0x00, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF10_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF11_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF12_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF13_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF14_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF15_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF16_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF17_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF18_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF19_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF110_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF111_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF112_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF113_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF114_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF115_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF10_EL2"

  -
    input:
      bytes: [ 0x20, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF11_EL2"

  -
    input:
      bytes: [ 0x40, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF12_EL2"

  -
    input:
      bytes: [ 0x60, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF13_EL2"

  -
    input:
      bytes: [ 0x80, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF14_EL2"

  -
    input:
      bytes: [ 0xa0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF15_EL2"

  -
    input:
      bytes: [ 0xc0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF16_EL2"

  -
    input:
      bytes: [ 0xe0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF17_EL2"

  -
    input:
      bytes: [ 0x00, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF18_EL2"

  -
    input:
      bytes: [ 0x20, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF19_EL2"

  -
    input:
      bytes: [ 0x40, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF110_EL2"

  -
    input:
      bytes: [ 0x60, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF111_EL2"

  -
    input:
      bytes: [ 0x80, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF112_EL2"

  -
    input:
      bytes: [ 0xa0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF113_EL2"

  -
    input:
      bytes: [ 0xc0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF114_EL2"

  -
    input:
      bytes: [ 0xe0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF115_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd2, 0x1b, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr S3_3_C13_C2_6, x0"

  -
    input:
      bytes: [ 0xc0, 0xd2, 0x3b, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMCG1IDR_EL0"

  -
    input:
      bytes: [ 0x00, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF00_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF01_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF02_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF03_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF04_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF05_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF06_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF07_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF08_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF09_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF010_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF011_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF012_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF013_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF014_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF015_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF00_EL2"

  -
    input:
      bytes: [ 0x20, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF01_EL2"

  -
    input:
      bytes: [ 0x40, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF02_EL2"

  -
    input:
      bytes: [ 0x60, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF03_EL2"

  -
    input:
      bytes: [ 0x80, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF04_EL2"

  -
    input:
      bytes: [ 0xa0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF05_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF06_EL2"

  -
    input:
      bytes: [ 0xe0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF07_EL2"

  -
    input:
      bytes: [ 0x00, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF08_EL2"

  -
    input:
      bytes: [ 0x20, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF09_EL2"

  -
    input:
      bytes: [ 0x40, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF010_EL2"

  -
    input:
      bytes: [ 0x60, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF011_EL2"

  -
    input:
      bytes: [ 0x80, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF012_EL2"

  -
    input:
      bytes: [ 0xa0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF013_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF014_EL2"

  -
    input:
      bytes: [ 0xe0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF015_EL2"

  -
    input:
      bytes: [ 0x00, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF10_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF11_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF12_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF13_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF14_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF15_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF16_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF17_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF18_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF19_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF110_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF111_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF112_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF113_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF114_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF115_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF10_EL2"

  -
    input:
      bytes: [ 0x20, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF11_EL2"

  -
    input:
      bytes: [ 0x40, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF12_EL2"

  -
    input:
      bytes: [ 0x60, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF13_EL2"

  -
    input:
      bytes: [ 0x80, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF14_EL2"

  -
    input:
      bytes: [ 0xa0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF15_EL2"

  -
    input:
      bytes: [ 0xc0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF16_EL2"

  -
    input:
      bytes: [ 0xe0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF17_EL2"

  -
    input:
      bytes: [ 0x00, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF18_EL2"

  -
    input:
      bytes: [ 0x20, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF19_EL2"

  -
    input:
      bytes: [ 0x40, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF110_EL2"

  -
    input:
      bytes: [ 0x60, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF111_EL2"

  -
    input:
      bytes: [ 0x80, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF112_EL2"

  -
    input:
      bytes: [ 0xa0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF113_EL2"

  -
    input:
      bytes: [ 0xc0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF114_EL2"

  -
    input:
      bytes: [ 0xe0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF115_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd2, 0x1b, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr S3_3_C13_C2_6, x0"

  -
    input:
      bytes: [ 0xc0, 0xd2, 0x3b, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMCG1IDR_EL0"

  -
    input:
      bytes: [ 0x00, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF00_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF01_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF02_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF03_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF04_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF05_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF06_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF07_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF08_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF09_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF010_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF011_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF012_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF013_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF014_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF015_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF00_EL2"

  -
    input:
      bytes: [ 0x20, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF01_EL2"

  -
    input:
      bytes: [ 0x40, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF02_EL2"

  -
    input:
      bytes: [ 0x60, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF03_EL2"

  -
    input:
      bytes: [ 0x80, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF04_EL2"

  -
    input:
      bytes: [ 0xa0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF05_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF06_EL2"

  -
    input:
      bytes: [ 0xe0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF07_EL2"

  -
    input:
      bytes: [ 0x00, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF08_EL2"

  -
    input:
      bytes: [ 0x20, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF09_EL2"

  -
    input:
      bytes: [ 0x40, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF010_EL2"

  -
    input:
      bytes: [ 0x60, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF011_EL2"

  -
    input:
      bytes: [ 0x80, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF012_EL2"

  -
    input:
      bytes: [ 0xa0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF013_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF014_EL2"

  -
    input:
      bytes: [ 0xe0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF015_EL2"

  -
    input:
      bytes: [ 0x00, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF10_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF11_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF12_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF13_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF14_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF15_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF16_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF17_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF18_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF19_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF110_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF111_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF112_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF113_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF114_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF115_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF10_EL2"

  -
    input:
      bytes: [ 0x20, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF11_EL2"

  -
    input:
      bytes: [ 0x40, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF12_EL2"

  -
    input:
      bytes: [ 0x60, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF13_EL2"

  -
    input:
      bytes: [ 0x80, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF14_EL2"

  -
    input:
      bytes: [ 0xa0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF15_EL2"

  -
    input:
      bytes: [ 0xc0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF16_EL2"

  -
    input:
      bytes: [ 0xe0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF17_EL2"

  -
    input:
      bytes: [ 0x00, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF18_EL2"

  -
    input:
      bytes: [ 0x20, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF19_EL2"

  -
    input:
      bytes: [ 0x40, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF110_EL2"

  -
    input:
      bytes: [ 0x60, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF111_EL2"

  -
    input:
      bytes: [ 0x80, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF112_EL2"

  -
    input:
      bytes: [ 0xa0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF113_EL2"

  -
    input:
      bytes: [ 0xc0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF114_EL2"

  -
    input:
      bytes: [ 0xe0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF115_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd2, 0x3b, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMCG1IDR_EL0"

  -
    input:
      bytes: [ 0x00, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF00_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF01_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF02_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF03_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF04_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF05_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF06_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF07_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF08_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF09_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF010_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF011_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF012_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF013_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF014_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF015_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF00_EL2"

  -
    input:
      bytes: [ 0x20, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF01_EL2"

  -
    input:
      bytes: [ 0x40, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF02_EL2"

  -
    input:
      bytes: [ 0x60, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF03_EL2"

  -
    input:
      bytes: [ 0x80, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF04_EL2"

  -
    input:
      bytes: [ 0xa0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF05_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF06_EL2"

  -
    input:
      bytes: [ 0xe0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF07_EL2"

  -
    input:
      bytes: [ 0x00, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF08_EL2"

  -
    input:
      bytes: [ 0x20, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF09_EL2"

  -
    input:
      bytes: [ 0x40, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF010_EL2"

  -
    input:
      bytes: [ 0x60, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF011_EL2"

  -
    input:
      bytes: [ 0x80, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF012_EL2"

  -
    input:
      bytes: [ 0xa0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF013_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF014_EL2"

  -
    input:
      bytes: [ 0xe0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF015_EL2"

  -
    input:
      bytes: [ 0x00, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF10_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF11_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF12_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF13_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF14_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF15_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF16_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF17_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF18_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF19_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF110_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF111_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF112_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF113_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF114_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF115_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF10_EL2"

  -
    input:
      bytes: [ 0x20, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF11_EL2"

  -
    input:
      bytes: [ 0x40, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF12_EL2"

  -
    input:
      bytes: [ 0x60, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF13_EL2"

  -
    input:
      bytes: [ 0x80, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF14_EL2"

  -
    input:
      bytes: [ 0xa0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF15_EL2"

  -
    input:
      bytes: [ 0xc0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF16_EL2"

  -
    input:
      bytes: [ 0xe0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF17_EL2"

  -
    input:
      bytes: [ 0x00, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF18_EL2"

  -
    input:
      bytes: [ 0x20, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF19_EL2"

  -
    input:
      bytes: [ 0x40, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF110_EL2"

  -
    input:
      bytes: [ 0x60, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF111_EL2"

  -
    input:
      bytes: [ 0x80, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF112_EL2"

  -
    input:
      bytes: [ 0xa0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF113_EL2"

  -
    input:
      bytes: [ 0xc0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF114_EL2"

  -
    input:
      bytes: [ 0xe0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "amvs" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF115_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd2, 0x3b, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMCG1IDR_EL0"

  -
    input:
      bytes: [ 0x00, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF00_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF01_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF02_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF03_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF04_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF05_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF06_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xd8, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF07_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF08_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF09_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF010_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF011_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF012_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF013_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF014_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xd9, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF015_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF00_EL2"

  -
    input:
      bytes: [ 0x20, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF01_EL2"

  -
    input:
      bytes: [ 0x40, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF02_EL2"

  -
    input:
      bytes: [ 0x60, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF03_EL2"

  -
    input:
      bytes: [ 0x80, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF04_EL2"

  -
    input:
      bytes: [ 0xa0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF05_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF06_EL2"

  -
    input:
      bytes: [ 0xe0, 0xd8, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF07_EL2"

  -
    input:
      bytes: [ 0x00, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF08_EL2"

  -
    input:
      bytes: [ 0x20, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF09_EL2"

  -
    input:
      bytes: [ 0x40, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF010_EL2"

  -
    input:
      bytes: [ 0x60, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF011_EL2"

  -
    input:
      bytes: [ 0x80, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF012_EL2"

  -
    input:
      bytes: [ 0xa0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF013_EL2"

  -
    input:
      bytes: [ 0xc0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF014_EL2"

  -
    input:
      bytes: [ 0xe0, 0xd9, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF015_EL2"

  -
    input:
      bytes: [ 0x00, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF10_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF11_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF12_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF13_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF14_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF15_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF16_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xda, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF17_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF18_EL2, x0"

  -
    input:
      bytes: [ 0x20, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF19_EL2, x0"

  -
    input:
      bytes: [ 0x40, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF110_EL2, x0"

  -
    input:
      bytes: [ 0x60, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF111_EL2, x0"

  -
    input:
      bytes: [ 0x80, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF112_EL2, x0"

  -
    input:
      bytes: [ 0xa0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF113_EL2, x0"

  -
    input:
      bytes: [ 0xc0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF114_EL2, x0"

  -
    input:
      bytes: [ 0xe0, 0xdb, 0x1c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "msr AMEVCNTVOFF115_EL2, x0"

  -
    input:
      bytes: [ 0x00, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF10_EL2"

  -
    input:
      bytes: [ 0x20, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF11_EL2"

  -
    input:
      bytes: [ 0x40, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF12_EL2"

  -
    input:
      bytes: [ 0x60, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF13_EL2"

  -
    input:
      bytes: [ 0x80, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF14_EL2"

  -
    input:
      bytes: [ 0xa0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF15_EL2"

  -
    input:
      bytes: [ 0xc0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF16_EL2"

  -
    input:
      bytes: [ 0xe0, 0xda, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF17_EL2"

  -
    input:
      bytes: [ 0x00, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF18_EL2"

  -
    input:
      bytes: [ 0x20, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF19_EL2"

  -
    input:
      bytes: [ 0x40, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF110_EL2"

  -
    input:
      bytes: [ 0x60, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF111_EL2"

  -
    input:
      bytes: [ 0x80, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF112_EL2"

  -
    input:
      bytes: [ 0xa0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF113_EL2"

  -
    input:
      bytes: [ 0xc0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF114_EL2"

  -
    input:
      bytes: [ 0xe0, 0xdb, 0x3c, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8.6a" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, AMEVCNTVOFF115_EL2"
