Here comes the build steps from project readme.md:
$ cd riscv-vector-intrinsic-fuzzing
$ mkdir build; cd build
$ cmake ..
$ make
$ ./tool/random_gen
Here comes the test steps script to generate Makefile.
build steps from it:
$(GEN):
ifeq ("$(wildcard $(GEN))","")
mkdir -p build
cd build && cmake $(SRCTOP)
cd build && $(MAKE)
endif
Add mask intrinsic related op to CustomOperator.def CI fail like the following:
Pass / Total: 2397 / 2400
Failed list:
- MsbfM0VBoolVBVB111_m (GEN fail)
- MsifM0VBoolVBVB111_m (GEN fail)
- MsofM0VBoolVBVB111_m (GEN fail)
BUILD AND TEST with test steps
$ mkdir test
$ cd test
$ ../rif-test --cc=<YOUR-COMPILER-PATH>
$ make
Manually run the random_gen with this command:
build/tool/random_gen --root=MsbfM0VBoolVBVB111_m --nodes-to-gen=10 --length=5 --dot=MsbfM0VBoolVBVB111_m.dot --code=MsbfM0VBoolVBVB111_m.c --seed=3735928559 --march=rv64gcv_zfh_zvfh
compile:
{your RISC-V compiler path}/bin/riscv64-unknown-elf-gcc -march=rv64gcv_zvfh_zfh -O0 MsbfM0VBoolVBVB111_m.c -g -o msbf.g.elf
run:
{your qemu path}/qemu-riscv64 -cpu rv64,zfh=true,zvfh=true,v=true,vlen=256 msbf.g.elf
The testcase will not GEN fail, and result follow other issue.
But if follow the build step or download the ci artifact, will segmentation fault like this:
createRandomOp...
Created randomOp - vfnmacc_vf
Receive length > 1 when creating scalar value, ignore
Receive length > 1 when creating scalar value, ignore
growOnExistingValue...
Existing value - OneDBool_value_0
Created op - vmsgeu_vx_operator_2
Receive length > 1 when creating scalar value, ignore
growOnExistingValue...
Existing value - OneDFloat64_value_7
Created op - vmerge_vvm_operator_3
growOnExistingValue...
Existing value - OneDFloat64_value_12
Created op - vfwnmacc_vf_operator_4
Receive length > 1 when creating scalar value, ignore
growOnExistingValue...
Existing value - OneDFloat32_value_14
Created op - vmerge_vvm_operator_5
createRandomOp...
Created randomOp - vfmacc_vf
Receive length > 1 when creating scalar value, ignore
Receive length > 1 when creating scalar value, ignore
growOnExistingValue...
Existing value - OneDBool_value_18
Created op - vmsge_vx_operator_7
Receive length > 1 when creating scalar value, ignore
createRandomOp...
Created randomOp - vfwredusum_vs
Receive length > 1 when creating scalar value, ignore
createRandomOp...
Created randomOp - vmfgt_vv
[1] 1939228 segmentation fault (core dumped) ./tool/random_gen --root=MsbfM0VBoolVBVB111_m --nodes-to-gen=10 --length=5
Here comes the build steps from project readme.md:
Here comes the test steps script to generate Makefile.
build steps from it:
Add mask intrinsic related op to CustomOperator.def CI fail like the following:
BUILD AND TEST with test steps
Manually run the random_gen with this command:
build/tool/random_gen --root=MsbfM0VBoolVBVB111_m --nodes-to-gen=10 --length=5 --dot=MsbfM0VBoolVBVB111_m.dot --code=MsbfM0VBoolVBVB111_m.c --seed=3735928559 --march=rv64gcv_zfh_zvfhcompile:
{your RISC-V compiler path}/bin/riscv64-unknown-elf-gcc -march=rv64gcv_zvfh_zfh -O0 MsbfM0VBoolVBVB111_m.c -g -o msbf.g.elfrun:
{your qemu path}/qemu-riscv64 -cpu rv64,zfh=true,zvfh=true,v=true,vlen=256 msbf.g.elfThe testcase will not GEN fail, and result follow other issue.
But if follow the build step or download the ci artifact, will segmentation fault like this: