test_cases:
  -
    input:
      bytes: [ 0x73, 0x23, 0x00, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mstatush, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x00, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mstatush, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xa0, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, menvcfgh, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xa0, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, menvcfgh, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x70, 0x75 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mseccfgh, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x70, 0x75 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mseccfgh, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x10, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, pmpcfg1, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x10, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, pmpcfg1, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x30, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, pmpcfg3, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x30, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, pmpcfg3, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x50, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, pmpcfg5, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x50, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, pmpcfg5, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x70, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, pmpcfg7, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x70, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, pmpcfg7, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x90, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, pmpcfg9, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x90, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, pmpcfg9, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xb0, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, pmpcfg11, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xb0, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, pmpcfg11, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xd0, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, pmpcfg13, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xd0, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, pmpcfg13, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xf0, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, pmpcfg15, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xf0, 0x3a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, pmpcfg15, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x00, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mcycleh, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x00, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mcycleh, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x20, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, minstreth, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x20, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, minstreth, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x30, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter3h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x30, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter3h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x40, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter4h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x40, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter4h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x50, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter5h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x50, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter5h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x60, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter6h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x60, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter6h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x70, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter7h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x70, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter7h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x80, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter8h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x80, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter8h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x90, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter9h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x90, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter9h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xa0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter10h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xa0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter10h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xb0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter11h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xb0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter11h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xc0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter12h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xc0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter12h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xd0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter13h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xd0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter13h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xe0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter14h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xe0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter14h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xf0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter15h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xf0, 0xb8 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter15h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x00, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter16h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x00, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter16h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x10, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter17h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x10, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter17h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x20, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter18h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x20, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter18h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x30, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter19h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x30, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter19h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x40, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter20h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x40, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter20h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x50, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter21h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x50, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter21h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x60, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter22h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x60, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter22h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x70, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter23h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x70, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter23h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x80, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter24h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x80, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter24h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x90, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter25h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x90, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter25h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xa0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter26h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xa0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter26h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xb0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter27h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xb0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter27h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xc0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter28h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xc0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter28h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xd0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter29h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xd0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter29h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xe0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter30h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xe0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter30h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xf0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmcounter31h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xf0, 0xb9 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmcounter31h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x30, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent3h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x30, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent3h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x40, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent4h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x40, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent4h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x50, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent5h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x50, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent5h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x60, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent6h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x60, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent6h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x70, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent7h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x70, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent7h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x80, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent8h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x80, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent8h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x90, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent9h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x90, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent9h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xa0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent10h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xa0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent10h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xb0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent11h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xb0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent11h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xc0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent12h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xc0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent12h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xd0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent13h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xd0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent13h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xe0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent14h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xe0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent14h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xf0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent15h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xf0, 0x72 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent15h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x00, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent16h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x00, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent16h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x10, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent17h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x10, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent17h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x20, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent18h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x20, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent18h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x30, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent19h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x30, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent19h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x40, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent20h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x40, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent20h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x50, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent21h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x50, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent21h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x60, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent22h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x60, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent22h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x70, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent23h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x70, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent23h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x80, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent24h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x80, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent24h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x90, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent25h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x90, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent25h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xa0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent26h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xa0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent26h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xb0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent27h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xb0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent27h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xc0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent28h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xc0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent28h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xd0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent29h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xd0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent29h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xe0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent30h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xe0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent30h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xf0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mhpmevent31h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xf0, 0x73 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mhpmevent31h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xc0, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mstateen0h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xc0, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mstateen0h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xd0, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mstateen1h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xd0, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mstateen1h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xe0, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mstateen2h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xe0, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mstateen2h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0xf0, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mstateen3h, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0xf0, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mstateen3h, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x30, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, midelegh, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x30, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, midelegh, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x40, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mieh, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x40, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mieh, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x80, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mvienh, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x80, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mvienh, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x90, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, mviph, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x90, 0x31 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, mviph, zero"

  -
    input:
      bytes: [ 0x73, 0x23, 0x40, 0x35 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t1, miph, zero"

  -
    input:
      bytes: [ 0xf3, 0x23, 0x40, 0x35 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_OPT_SYNTAX_NO_ALIAS_TEXT" ]
    expected:
      insns:
        -
          asm_text: "csrrs t2, miph, zero"
