test_cases:
  -
    input:
      bytes: [ 0x00, 0x0a, 0x31, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, TRCRSR"

  -
    input:
      bytes: [ 0x80, 0x08, 0x31, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, TRCEXTINSELR"

  -
    input:
      bytes: [ 0x80, 0x08, 0x31, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, TRCEXTINSELR"

  -
    input:
      bytes: [ 0x80, 0x09, 0x31, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, TRCEXTINSELR1"

  -
    input:
      bytes: [ 0x80, 0x0a, 0x31, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, TRCEXTINSELR2"

  -
    input:
      bytes: [ 0x80, 0x0b, 0x31, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "mrs x0, TRCEXTINSELR3"

  -
    input:
      bytes: [ 0x00, 0x0a, 0x11, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr TRCRSR, x0"

  -
    input:
      bytes: [ 0x80, 0x08, 0x11, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr TRCEXTINSELR, x0"

  -
    input:
      bytes: [ 0x80, 0x08, 0x11, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr TRCEXTINSELR, x0"

  -
    input:
      bytes: [ 0x80, 0x09, 0x11, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr TRCEXTINSELR1, x0"

  -
    input:
      bytes: [ 0x80, 0x0a, 0x11, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr TRCEXTINSELR2, x0"

  -
    input:
      bytes: [ 0x80, 0x0b, 0x11, 0xd5 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64" ]
    expected:
      insns:
        -
          asm_text: "msr TRCEXTINSELR3, x0"
