riscv-vector-tests icon indicating copy to clipboard operation
riscv-vector-tests copied to clipboard

how to write configs of custom tests for a new insn

Open wanghuibin0 opened this issue 7 months ago • 1 comments

I'm not very familiar with Go. Right now, I have a custom instruction and I want to use this project to automatically generate test cases for it. I know I need to create a config file like configs/xxx.toml for my new instruction, but I'm not exactly sure how to write it.

I looked at an example:

name = "vwadd.vv"
format = "vd,vs2,vs1,vm"

[tests]
base = [
    [0x0, 0x0],
    [0x1, 0x2],
    [0x3, 0xf]
]
sew8 = [
    [0xf8, 0x00],
    [0xf8, 0x08],
    [0x7f, 0x00],
    [0x7f, 0x07],
    [0x7f, 0x01],
    [0xff, 0x00],
    [0xff, 0xff]
]

The part I don't really get is what the numbers under the [tests] section mean. How are they used when generating the actual test cases? Could you help me understand that?

wanghuibin0 avatar May 02 '25 02:05 wanghuibin0

The numbers are used as an array of operands.

It's a lot of work to add a new custom instruction because this project relies on Spike and the compiler to support the instruction you have in mind.

ksco avatar May 06 '25 05:05 ksco