test_cases:
  -
    input:
      bytes: [ 0x37, 0x34, 0x00, 0x00 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32" ]
    expected:
      insns:
        -
          asm_text: "lui s0, 3"
  -
    input:
      bytes: [ 0x97, 0x82, 0x00, 0x00 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32" ]
    expected:
      insns:
        -
          asm_text: "auipc t0, 8"
  -
    input:
      bytes: [ 0x2f, 0xae, 0xaa, 0x0a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_MODE_RISCV_A" ]
    expected:
      insns:
        -
          asm_text: "amoswap.w.rl t3, a0, (s5)"
  -
    input:
      bytes: [ 0xe3, 0x1f, 0x31, 0x5e ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32" ]
    expected:
      insns:
        -
          asm_text: "bne sp, gp, 0xdfe"
  -
    input:
      bytes: [ 0x73, 0x00, 0x00, 0x00 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32" ]
    expected:
      insns:
        -
          asm_text: "ecall"
  -
    input:
      bytes: [ 0x33, 0x00, 0x31, 0x02 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32" ]
    expected:
      insns:
        -
          asm_text: "mul zero, sp, gp"
  -
    input:
      bytes: [ 0x53, 0x00, 0x31, 0x28 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_MODE_RISCV_F" ]
    expected:
      insns:
        -
          asm_text: "fmin.s ft0, ft2, ft3"
  -
    input:
      bytes: [ 0x53, 0x10, 0x31, 0x2a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32" , "CS_MODE_RISCV_F"]
    expected:
      insns:
        -
          asm_text: "fmax.d ft0, ft2, ft3"
  -
    input:
      bytes: [ 0x27, 0xaa, 0x6a, 0x00 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32", "CS_MODE_RISCV_F" ]
    expected:
      insns:
        -
          asm_text: "fsw ft6, 0x14(s5)"
  -
    input:
      bytes: [ 0xef, 0xf0, 0x1f, 0xff ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV32" ]
    expected:
      insns:
        -
          asm_text: "jal -0x10"
