[PATCH 2/2] RISC-V: Add Zcb extension testcases.

Jan Beulich jbeulich@suse.com
Tue Jun 13 14:59:30 GMT 2023


On 13.06.2023 16:55, jiawei@iscas.ac.cn wrote:
> > -----原始邮件-----
> > 发件人: "Jan Beulich" <jbeulich@suse.com>
> > 发送时间: 2023-06-13 22:28:38 (星期二)
> > 收件人: Jiawei <jiawei@iscas.ac.cn>
> > 抄送: nelson@rivosinc.com, kito.cheng@sifive.com, palmer@dabbelt.com, christoph.muellner@vrull.eu, jeremy.bennett@embecosm.com, mary.bennett@embecosm.com, nandni.jamnadas@embecosm.com, charlie.keaney@embecosm.com, simon.cook@embecosm.com, tariq.kurd@codasip.com, ibrahim.abu.kharmeh1@huawei.com, gaofei@eswincomputing.com, sinan.lin@linux.alibaba.com, wuwei2016@iscas.ac.cn, shihua@iscas.ac.cn, shiyulong@iscas.ac.cn, chenyixuan@iscas.ac.cn, binutils@sourceware.org
> > 主题: Re: [PATCH 2/2] RISC-V: Add Zcb extension testcases.
> > 
> > On 13.06.2023 15:38, Jiawei wrote:
> > > Add all zcb instructions testcases. Fail testcases check missing depend
> > > extensions cases.
> > > 
> > > Co-Authored by: Charlie Keaney <charlie.keaney@embecosm.com>
> > > Co-Authored by: Mary Bennett <mary.bennett@embecosm.com>
> > > Co-Authored by: Nandni Jamnadas <nandni.jamnadas@embecosm.com>
> > > Co-Authored by: Sinan Lin <sinan.lin@linux.alibaba.com>
> > > Co-Authored by: Simon Cook <simon.cook@embecosm.com>
> > > Co-Authored by: Shihua Liao <shihua@iscas.ac.cn>
> > > Co-Authored by: Yulong Shi <yulong@iscas.ac.cn>
> > > 
> > > gas/ChangeLog:
> > > 
> > >         * testsuite/gas/riscv/zc-zcb-fail-arch-0.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-arch-0.l: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-arch-0.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-arch-1.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-arch-1.l: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-arch-1.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-operand-0.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-operand-0.l: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-operand-0.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-operand-1.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-operand-1.l: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-operand-1.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-xlen.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-xlen.l: New test.
> > >         * testsuite/gas/riscv/zc-zcb-fail-xlen.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-lbu.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-lbu.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-lh.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-lh.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-lhu.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-lhu.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-mul.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-mul.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-not.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-not.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-sb.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-sb.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-sext-b.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-sext-h.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-sextw.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-sextw.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-sh.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-sh.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-test-arch-gc.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-test-arch-no-zcb.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-test-arch.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-test-operand-0.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-test-operand-0.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-test-operand-1.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-test-operand-1.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-test-operand-2.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-test-operand-2.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-zext-b.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-zext-b.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-zext-h.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-zext-h.s: New test.
> > >         * testsuite/gas/riscv/zc-zcb-zextw.d: New test.
> > >         * testsuite/gas/riscv/zc-zcb-zextw.s: New test.
> > 
> > While I'm not a RISC-V maintainer, I still wonder about the overhead
> > of having a single test per insn (rather than e.g. per feature or
> > relevant combination of features): In my experience many small tests
> > consume more time (and space) when running the testsuite than fewer
> > larger ones. (This remark would then also apply to the earlier series
> > consisting of just testsuite additions.)
> > 
> > Jan
> 
> We run these tests on dejagnu, they only do some regex matching, and 
> used to ensure correct generation of instruction opcode, and to handle
> some wrong dependency cases error log.
> 
> We not stats yet on their performance overhead yet, but they still run
> pretty fast with dejagnu currently. Do we need to stat it?

Not sure, but you want to keep the scalability aspect in mind: For the
handful of insns here this is likely fine, but what if every insn now
and in the future had its own testcase(s)?

Jan


More information about the Binutils mailing list