test_cases:
  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x00 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredsum.vs v8, v4, v20, v0.t"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x02 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredsum.vs v8, v4, v20"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x18 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredmaxu.vs v8, v4, v20, v0.t"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x1a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredmaxu.vs v8, v4, v20"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x1c ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredmax.vs v8, v4, v20, v0.t"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x1e ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredmax.vs v8, v4, v20"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x10 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredminu.vs v8, v4, v20, v0.t"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x12 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredminu.vs v8, v4, v20"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x14 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredmin.vs v8, v4, v20, v0.t"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x16 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredmin.vs v8, v4, v20"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x04 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredand.vs v8, v4, v20, v0.t"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x06 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredand.vs v8, v4, v20"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x08 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredor.vs v8, v4, v20, v0.t"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x0a ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredor.vs v8, v4, v20"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x0c ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredxor.vs v8, v4, v20, v0.t"

  -
    input:
      bytes: [ 0x57, 0x24, 0x4a, 0x0e ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredxor.vs v8, v4, v20"

  -
    input:
      bytes: [ 0x57, 0x04, 0x4a, 0xc0 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vwredsumu.vs v8, v4, v20, v0.t"

  -
    input:
      bytes: [ 0x57, 0x04, 0x4a, 0xc2 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vwredsumu.vs v8, v4, v20"

  -
    input:
      bytes: [ 0x57, 0x04, 0x4a, 0xc4 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vwredsum.vs v8, v4, v20, v0.t"

  -
    input:
      bytes: [ 0x57, 0x04, 0x4a, 0xc6 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vwredsum.vs v8, v4, v20"

  -
    input:
      bytes: [ 0x57, 0x20, 0x4a, 0x00 ]
      arch: "CS_ARCH_RISCV"
      options: [ "CS_MODE_RISCV64", "CS_MODE_RISCV_V" ]
    expected:
      insns:
        -
          asm_text: "vredsum.vs v0, v4, v20, v0.t"
