From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-sender-0.a4lg.com (mail-sender-0.a4lg.com [IPv6:2401:2500:203:30b:4000:6bfe:4757:0]) by sourceware.org (Postfix) with ESMTPS id AFE623858D1E for ; Thu, 8 Sep 2022 07:20:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AFE623858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=irq.a4lg.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=irq.a4lg.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 24F3B300089; Thu, 8 Sep 2022 07:20:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irq.a4lg.com; s=2017s01; t=1662621632; bh=cquNfxzuqztGxNyeVdia2LD5hotlrXIxtnremktevj0=; h=Message-ID:Date:Mime-Version:Subject:From:To:Cc:References: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=Oqbh2zdkhBv44xm60k1sHWFso3dFI2lBBLCQamygPzaOUsylkxNpiXFFTKeTXnuit kfYVGohfhfqpCdkezUnYO3+HtgNrxCvUZbzJcV3Kqkc1ZK6FudYDujmPcFk9rQQWFb qr/CH52nsF1gqhqwMPHKqLEAzL9VCNhy0NptQLCE= Message-ID: Date: Thu, 8 Sep 2022 16:20:30 +0900 Mime-Version: 1.0 Subject: Re: [PATCH 1/1] RISC-V: Fix vector CSR requirements Content-Language: en-US From: Tsukasa OI To: Nelson Chu Cc: Kito Cheng , Palmer Dabbelt , binutils@sourceware.org References: <1ba51babe09245a77eb2ebee991f04a38d46bdb9.1662619979.git.research_trasio@irq.a4lg.com> <46114c9e-a641-1e28-eb61-60760111e7a8@irq.a4lg.com> In-Reply-To: <46114c9e-a641-1e28-eb61-60760111e7a8@irq.a4lg.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 2022/09/08 16:15, Tsukasa OI wrote: > On 2022/09/08 16:12, Nelson Chu wrote: >> On Thu, Sep 8, 2022 at 2:54 PM Tsukasa OI wrote: >>> >>> Vector CSRs are also required on smaller vector subsets. >>> >>> Not only that the most of vector CSRs are general purpose (and must be >>> accessible for every vector subsets), current minimum vector subset 'Zve32x' >>> requires fixed point arithmetic, making remaining non-general purpose >>> (fixed point arithmetic only) CSRs mandatory for such subsets. >>> >>> So, those CSRs must be accessible from 'Zve32x', not just from 'V'. >>> This commit fixes this issue which caused CSR accessibility warnings. >>> >>> gas/ChangeLog: >>> >>> * config/tc-riscv.c (riscv_csr_address): Change vector CSR >>> requirement from 'V' to 'Zve32x'. >>> * testsuite/gas/riscv/csr-version-1p9p1.l: Change vector CSR >>> requirement from 'V' to 'Zve32x'. >>> * testsuite/gas/riscv/csr-version-1p10.l: Likewise. >>> * testsuite/gas/riscv/csr-version-1p11.l: Likewise. >>> * testsuite/gas/riscv/csr-version-1p12.l: Likewise. >> >>> * testsuite/gas/riscv/vector-csrs.s: New test. >>> * testsuite/gas/riscv/vector-csrs-v.d: Likewise. >>> * testsuite/gas/riscv/vector-csrs-zve32x.d: Likewise. >>> * testsuite/gas/riscv/vector-csrs-zve32f.d: Likewise. >>> * testsuite/gas/riscv/vector-csrs-zve64x.d: Likewise. >>> * testsuite/gas/riscv/vector-csrs-zve64f.d: Likewise. >>> * testsuite/gas/riscv/vector-csrs-zve64d.d: Likewise. >> >> These seem to test the implied rules of vector extensions, not so >> related to the csr tests. Otherwise looks good to me. Please update >> and then commit when you think it's time. > > vector-csrs-zve32x.d and vector-csrs-zve64x.d has additional 'Zicsr' as > I removed a CSR implication rule. Having six tests may be too much but > can I at least keep vector-csrs-zve32x.d? ... and vector-csrs-v.d (to make sure that the 'V' extension is not broken). > > Thanks, > Tsukasa > >> >> Thanks >> Nelson >> >>> --- >>> gas/config/tc-riscv.c | 2 +- >>> gas/testsuite/gas/riscv/csr-version-1p10.l | 28 ++++++++++---------- >>> gas/testsuite/gas/riscv/csr-version-1p11.l | 28 ++++++++++---------- >>> gas/testsuite/gas/riscv/csr-version-1p12.l | 28 ++++++++++---------- >>> gas/testsuite/gas/riscv/csr-version-1p9p1.l | 28 ++++++++++---------- >>> gas/testsuite/gas/riscv/vector-csrs-v.d | 21 +++++++++++++++ >>> gas/testsuite/gas/riscv/vector-csrs-zve32f.d | 21 +++++++++++++++ >>> gas/testsuite/gas/riscv/vector-csrs-zve32x.d | 21 +++++++++++++++ >>> gas/testsuite/gas/riscv/vector-csrs-zve64d.d | 21 +++++++++++++++ >>> gas/testsuite/gas/riscv/vector-csrs-zve64f.d | 21 +++++++++++++++ >>> gas/testsuite/gas/riscv/vector-csrs-zve64x.d | 21 +++++++++++++++ >>> gas/testsuite/gas/riscv/vector-csrs.s | 12 +++++++++ >>> 12 files changed, 195 insertions(+), 57 deletions(-) >>> create mode 100644 gas/testsuite/gas/riscv/vector-csrs-v.d >>> create mode 100644 gas/testsuite/gas/riscv/vector-csrs-zve32f.d >>> create mode 100644 gas/testsuite/gas/riscv/vector-csrs-zve32x.d >>> create mode 100644 gas/testsuite/gas/riscv/vector-csrs-zve64d.d >>> create mode 100644 gas/testsuite/gas/riscv/vector-csrs-zve64f.d >>> create mode 100644 gas/testsuite/gas/riscv/vector-csrs-zve64x.d >>> create mode 100644 gas/testsuite/gas/riscv/vector-csrs.s >>> >>> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c >>> index 34ce68e8252..df2e201fb74 100644 >>> --- a/gas/config/tc-riscv.c >>> +++ b/gas/config/tc-riscv.c >>> @@ -935,7 +935,7 @@ riscv_csr_address (const char *csr_name, >>> extension = "zkr"; >>> break; >>> case CSR_CLASS_V: >>> - extension = "v"; >>> + extension = "zve32x"; >>> break; >>> case CSR_CLASS_SMSTATEEN: >>> case CSR_CLASS_SMSTATEEN_AND_H: >>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas/riscv/csr-version-1p10.l >>> index b778453b556..999e9af1520 100644 >>> --- a/gas/testsuite/gas/riscv/csr-version-1p10.l >>> +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l >>> @@ -652,20 +652,20 @@ >>> .*Warning: invalid CSR `fcsr', needs `f' extension >>> .*Warning: invalid CSR `seed', needs `zkr' extension >>> .*Warning: invalid CSR `seed', needs `zkr' extension >>> -.*Warning: invalid CSR `vstart', needs `v' extension >>> -.*Warning: invalid CSR `vstart', needs `v' extension >>> -.*Warning: invalid CSR `vxsat', needs `v' extension >>> -.*Warning: invalid CSR `vxsat', needs `v' extension >>> -.*Warning: invalid CSR `vxrm', needs `v' extension >>> -.*Warning: invalid CSR `vxrm', needs `v' extension >>> -.*Warning: invalid CSR `vcsr', needs `v' extension >>> -.*Warning: invalid CSR `vcsr', needs `v' extension >>> -.*Warning: invalid CSR `vl', needs `v' extension >>> -.*Warning: invalid CSR `vl', needs `v' extension >>> +.*Warning: invalid CSR `vstart', needs `zve32x' extension >>> +.*Warning: invalid CSR `vstart', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxsat', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxsat', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxrm', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxrm', needs `zve32x' extension >>> +.*Warning: invalid CSR `vcsr', needs `zve32x' extension >>> +.*Warning: invalid CSR `vcsr', needs `zve32x' extension >>> +.*Warning: invalid CSR `vl', needs `zve32x' extension >>> +.*Warning: invalid CSR `vl', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vl,a1' >>> -.*Warning: invalid CSR `vtype', needs `v' extension >>> -.*Warning: invalid CSR `vtype', needs `v' extension >>> +.*Warning: invalid CSR `vtype', needs `zve32x' extension >>> +.*Warning: invalid CSR `vtype', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vtype,a1' >>> -.*Warning: invalid CSR `vlenb', needs `v' extension >>> -.*Warning: invalid CSR `vlenb', needs `v' extension >>> +.*Warning: invalid CSR `vlenb', needs `zve32x' extension >>> +.*Warning: invalid CSR `vlenb', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vlenb,a1' >>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas/riscv/csr-version-1p11.l >>> index 78bae817470..a099e4ecc93 100644 >>> --- a/gas/testsuite/gas/riscv/csr-version-1p11.l >>> +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l >>> @@ -650,20 +650,20 @@ >>> .*Warning: invalid CSR `fcsr', needs `f' extension >>> .*Warning: invalid CSR `seed', needs `zkr' extension >>> .*Warning: invalid CSR `seed', needs `zkr' extension >>> -.*Warning: invalid CSR `vstart', needs `v' extension >>> -.*Warning: invalid CSR `vstart', needs `v' extension >>> -.*Warning: invalid CSR `vxsat', needs `v' extension >>> -.*Warning: invalid CSR `vxsat', needs `v' extension >>> -.*Warning: invalid CSR `vxrm', needs `v' extension >>> -.*Warning: invalid CSR `vxrm', needs `v' extension >>> -.*Warning: invalid CSR `vcsr', needs `v' extension >>> -.*Warning: invalid CSR `vcsr', needs `v' extension >>> -.*Warning: invalid CSR `vl', needs `v' extension >>> -.*Warning: invalid CSR `vl', needs `v' extension >>> +.*Warning: invalid CSR `vstart', needs `zve32x' extension >>> +.*Warning: invalid CSR `vstart', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxsat', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxsat', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxrm', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxrm', needs `zve32x' extension >>> +.*Warning: invalid CSR `vcsr', needs `zve32x' extension >>> +.*Warning: invalid CSR `vcsr', needs `zve32x' extension >>> +.*Warning: invalid CSR `vl', needs `zve32x' extension >>> +.*Warning: invalid CSR `vl', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vl,a1' >>> -.*Warning: invalid CSR `vtype', needs `v' extension >>> -.*Warning: invalid CSR `vtype', needs `v' extension >>> +.*Warning: invalid CSR `vtype', needs `zve32x' extension >>> +.*Warning: invalid CSR `vtype', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vtype,a1' >>> -.*Warning: invalid CSR `vlenb', needs `v' extension >>> -.*Warning: invalid CSR `vlenb', needs `v' extension >>> +.*Warning: invalid CSR `vlenb', needs `zve32x' extension >>> +.*Warning: invalid CSR `vlenb', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vlenb,a1' >>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas/riscv/csr-version-1p12.l >>> index cb026bb55e0..cf8f2e25634 100644 >>> --- a/gas/testsuite/gas/riscv/csr-version-1p12.l >>> +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l >>> @@ -532,20 +532,20 @@ >>> .*Warning: invalid CSR `fcsr', needs `f' extension >>> .*Warning: invalid CSR `seed', needs `zkr' extension >>> .*Warning: invalid CSR `seed', needs `zkr' extension >>> -.*Warning: invalid CSR `vstart', needs `v' extension >>> -.*Warning: invalid CSR `vstart', needs `v' extension >>> -.*Warning: invalid CSR `vxsat', needs `v' extension >>> -.*Warning: invalid CSR `vxsat', needs `v' extension >>> -.*Warning: invalid CSR `vxrm', needs `v' extension >>> -.*Warning: invalid CSR `vxrm', needs `v' extension >>> -.*Warning: invalid CSR `vcsr', needs `v' extension >>> -.*Warning: invalid CSR `vcsr', needs `v' extension >>> -.*Warning: invalid CSR `vl', needs `v' extension >>> -.*Warning: invalid CSR `vl', needs `v' extension >>> +.*Warning: invalid CSR `vstart', needs `zve32x' extension >>> +.*Warning: invalid CSR `vstart', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxsat', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxsat', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxrm', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxrm', needs `zve32x' extension >>> +.*Warning: invalid CSR `vcsr', needs `zve32x' extension >>> +.*Warning: invalid CSR `vcsr', needs `zve32x' extension >>> +.*Warning: invalid CSR `vl', needs `zve32x' extension >>> +.*Warning: invalid CSR `vl', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vl,a1' >>> -.*Warning: invalid CSR `vtype', needs `v' extension >>> -.*Warning: invalid CSR `vtype', needs `v' extension >>> +.*Warning: invalid CSR `vtype', needs `zve32x' extension >>> +.*Warning: invalid CSR `vtype', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vtype,a1' >>> -.*Warning: invalid CSR `vlenb', needs `v' extension >>> -.*Warning: invalid CSR `vlenb', needs `v' extension >>> +.*Warning: invalid CSR `vlenb', needs `zve32x' extension >>> +.*Warning: invalid CSR `vlenb', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vlenb,a1' >>> diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.l b/gas/testsuite/gas/riscv/csr-version-1p9p1.l >>> index 4fac40fb589..5f298c1dda9 100644 >>> --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l >>> +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l >>> @@ -678,20 +678,20 @@ >>> .*Warning: invalid CSR `fcsr', needs `f' extension >>> .*Warning: invalid CSR `seed', needs `zkr' extension >>> .*Warning: invalid CSR `seed', needs `zkr' extension >>> -.*Warning: invalid CSR `vstart', needs `v' extension >>> -.*Warning: invalid CSR `vstart', needs `v' extension >>> -.*Warning: invalid CSR `vxsat', needs `v' extension >>> -.*Warning: invalid CSR `vxsat', needs `v' extension >>> -.*Warning: invalid CSR `vxrm', needs `v' extension >>> -.*Warning: invalid CSR `vxrm', needs `v' extension >>> -.*Warning: invalid CSR `vcsr', needs `v' extension >>> -.*Warning: invalid CSR `vcsr', needs `v' extension >>> -.*Warning: invalid CSR `vl', needs `v' extension >>> -.*Warning: invalid CSR `vl', needs `v' extension >>> +.*Warning: invalid CSR `vstart', needs `zve32x' extension >>> +.*Warning: invalid CSR `vstart', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxsat', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxsat', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxrm', needs `zve32x' extension >>> +.*Warning: invalid CSR `vxrm', needs `zve32x' extension >>> +.*Warning: invalid CSR `vcsr', needs `zve32x' extension >>> +.*Warning: invalid CSR `vcsr', needs `zve32x' extension >>> +.*Warning: invalid CSR `vl', needs `zve32x' extension >>> +.*Warning: invalid CSR `vl', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vl,a1' >>> -.*Warning: invalid CSR `vtype', needs `v' extension >>> -.*Warning: invalid CSR `vtype', needs `v' extension >>> +.*Warning: invalid CSR `vtype', needs `zve32x' extension >>> +.*Warning: invalid CSR `vtype', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vtype,a1' >>> -.*Warning: invalid CSR `vlenb', needs `v' extension >>> -.*Warning: invalid CSR `vlenb', needs `v' extension >>> +.*Warning: invalid CSR `vlenb', needs `zve32x' extension >>> +.*Warning: invalid CSR `vlenb', needs `zve32x' extension >>> .*Warning: read-only CSR is written `csrw vlenb,a1' >>> diff --git a/gas/testsuite/gas/riscv/vector-csrs-v.d b/gas/testsuite/gas/riscv/vector-csrs-v.d >>> new file mode 100644 >>> index 00000000000..1376f01d83e >>> --- /dev/null >>> +++ b/gas/testsuite/gas/riscv/vector-csrs-v.d >>> @@ -0,0 +1,21 @@ >>> +#as: -march=rv32iv -mcsr-check >>> +#source: vector-csrs.s >>> +#objdump: -d >>> + >>> +.*:[ ]+file format .* >>> + >>> + >>> +Disassembly of section .text: >>> + >>> +0+000 : >>> +[ ]+[0-9a-f]+:[ ]+00802573[ ]+csrr[ ]+a0,vstart >>> +[ ]+[0-9a-f]+:[ ]+00801073[ ]+csrw[ ]+vstart,zero >>> +[ ]+[0-9a-f]+:[ ]+00902573[ ]+csrr[ ]+a0,vxsat >>> +[ ]+[0-9a-f]+:[ ]+0090d073[ ]+csrwi[ ]+vxsat,1 >>> +[ ]+[0-9a-f]+:[ ]+00a02573[ ]+csrr[ ]+a0,vxrm >>> +[ ]+[0-9a-f]+:[ ]+00a1d073[ ]+csrwi[ ]+vxrm,3 >>> +[ ]+[0-9a-f]+:[ ]+00f02573[ ]+csrr[ ]+a0,vcsr >>> +[ ]+[0-9a-f]+:[ ]+00f3d073[ ]+csrwi[ ]+vcsr,7 >>> +[ ]+[0-9a-f]+:[ ]+c2002573[ ]+csrr[ ]+a0,vl >>> +[ ]+[0-9a-f]+:[ ]+c2102573[ ]+csrr[ ]+a0,vtype >>> +[ ]+[0-9a-f]+:[ ]+c2202573[ ]+csrr[ ]+a0,vlenb >>> diff --git a/gas/testsuite/gas/riscv/vector-csrs-zve32f.d b/gas/testsuite/gas/riscv/vector-csrs-zve32f.d >>> new file mode 100644 >>> index 00000000000..9613915713b >>> --- /dev/null >>> +++ b/gas/testsuite/gas/riscv/vector-csrs-zve32f.d >>> @@ -0,0 +1,21 @@ >>> +#as: -march=rv32i_zve32f -mcsr-check >>> +#source: vector-csrs.s >>> +#objdump: -d >>> + >>> +.*:[ ]+file format .* >>> + >>> + >>> +Disassembly of section .text: >>> + >>> +0+000 : >>> +[ ]+[0-9a-f]+:[ ]+00802573[ ]+csrr[ ]+a0,vstart >>> +[ ]+[0-9a-f]+:[ ]+00801073[ ]+csrw[ ]+vstart,zero >>> +[ ]+[0-9a-f]+:[ ]+00902573[ ]+csrr[ ]+a0,vxsat >>> +[ ]+[0-9a-f]+:[ ]+0090d073[ ]+csrwi[ ]+vxsat,1 >>> +[ ]+[0-9a-f]+:[ ]+00a02573[ ]+csrr[ ]+a0,vxrm >>> +[ ]+[0-9a-f]+:[ ]+00a1d073[ ]+csrwi[ ]+vxrm,3 >>> +[ ]+[0-9a-f]+:[ ]+00f02573[ ]+csrr[ ]+a0,vcsr >>> +[ ]+[0-9a-f]+:[ ]+00f3d073[ ]+csrwi[ ]+vcsr,7 >>> +[ ]+[0-9a-f]+:[ ]+c2002573[ ]+csrr[ ]+a0,vl >>> +[ ]+[0-9a-f]+:[ ]+c2102573[ ]+csrr[ ]+a0,vtype >>> +[ ]+[0-9a-f]+:[ ]+c2202573[ ]+csrr[ ]+a0,vlenb >>> diff --git a/gas/testsuite/gas/riscv/vector-csrs-zve32x.d b/gas/testsuite/gas/riscv/vector-csrs-zve32x.d >>> new file mode 100644 >>> index 00000000000..1e18d923e8c >>> --- /dev/null >>> +++ b/gas/testsuite/gas/riscv/vector-csrs-zve32x.d >>> @@ -0,0 +1,21 @@ >>> +#as: -march=rv32i_zicsr_zve32x -mcsr-check >>> +#source: vector-csrs.s >>> +#objdump: -d >>> + >>> +.*:[ ]+file format .* >>> + >>> + >>> +Disassembly of section .text: >>> + >>> +0+000 : >>> +[ ]+[0-9a-f]+:[ ]+00802573[ ]+csrr[ ]+a0,vstart >>> +[ ]+[0-9a-f]+:[ ]+00801073[ ]+csrw[ ]+vstart,zero >>> +[ ]+[0-9a-f]+:[ ]+00902573[ ]+csrr[ ]+a0,vxsat >>> +[ ]+[0-9a-f]+:[ ]+0090d073[ ]+csrwi[ ]+vxsat,1 >>> +[ ]+[0-9a-f]+:[ ]+00a02573[ ]+csrr[ ]+a0,vxrm >>> +[ ]+[0-9a-f]+:[ ]+00a1d073[ ]+csrwi[ ]+vxrm,3 >>> +[ ]+[0-9a-f]+:[ ]+00f02573[ ]+csrr[ ]+a0,vcsr >>> +[ ]+[0-9a-f]+:[ ]+00f3d073[ ]+csrwi[ ]+vcsr,7 >>> +[ ]+[0-9a-f]+:[ ]+c2002573[ ]+csrr[ ]+a0,vl >>> +[ ]+[0-9a-f]+:[ ]+c2102573[ ]+csrr[ ]+a0,vtype >>> +[ ]+[0-9a-f]+:[ ]+c2202573[ ]+csrr[ ]+a0,vlenb >>> diff --git a/gas/testsuite/gas/riscv/vector-csrs-zve64d.d b/gas/testsuite/gas/riscv/vector-csrs-zve64d.d >>> new file mode 100644 >>> index 00000000000..f42e670699a >>> --- /dev/null >>> +++ b/gas/testsuite/gas/riscv/vector-csrs-zve64d.d >>> @@ -0,0 +1,21 @@ >>> +#as: -march=rv32i_zve64d -mcsr-check >>> +#source: vector-csrs.s >>> +#objdump: -d >>> + >>> +.*:[ ]+file format .* >>> + >>> + >>> +Disassembly of section .text: >>> + >>> +0+000 : >>> +[ ]+[0-9a-f]+:[ ]+00802573[ ]+csrr[ ]+a0,vstart >>> +[ ]+[0-9a-f]+:[ ]+00801073[ ]+csrw[ ]+vstart,zero >>> +[ ]+[0-9a-f]+:[ ]+00902573[ ]+csrr[ ]+a0,vxsat >>> +[ ]+[0-9a-f]+:[ ]+0090d073[ ]+csrwi[ ]+vxsat,1 >>> +[ ]+[0-9a-f]+:[ ]+00a02573[ ]+csrr[ ]+a0,vxrm >>> +[ ]+[0-9a-f]+:[ ]+00a1d073[ ]+csrwi[ ]+vxrm,3 >>> +[ ]+[0-9a-f]+:[ ]+00f02573[ ]+csrr[ ]+a0,vcsr >>> +[ ]+[0-9a-f]+:[ ]+00f3d073[ ]+csrwi[ ]+vcsr,7 >>> +[ ]+[0-9a-f]+:[ ]+c2002573[ ]+csrr[ ]+a0,vl >>> +[ ]+[0-9a-f]+:[ ]+c2102573[ ]+csrr[ ]+a0,vtype >>> +[ ]+[0-9a-f]+:[ ]+c2202573[ ]+csrr[ ]+a0,vlenb >>> diff --git a/gas/testsuite/gas/riscv/vector-csrs-zve64f.d b/gas/testsuite/gas/riscv/vector-csrs-zve64f.d >>> new file mode 100644 >>> index 00000000000..e88b5a3ff6e >>> --- /dev/null >>> +++ b/gas/testsuite/gas/riscv/vector-csrs-zve64f.d >>> @@ -0,0 +1,21 @@ >>> +#as: -march=rv32i_zve64f -mcsr-check >>> +#source: vector-csrs.s >>> +#objdump: -d >>> + >>> +.*:[ ]+file format .* >>> + >>> + >>> +Disassembly of section .text: >>> + >>> +0+000 : >>> +[ ]+[0-9a-f]+:[ ]+00802573[ ]+csrr[ ]+a0,vstart >>> +[ ]+[0-9a-f]+:[ ]+00801073[ ]+csrw[ ]+vstart,zero >>> +[ ]+[0-9a-f]+:[ ]+00902573[ ]+csrr[ ]+a0,vxsat >>> +[ ]+[0-9a-f]+:[ ]+0090d073[ ]+csrwi[ ]+vxsat,1 >>> +[ ]+[0-9a-f]+:[ ]+00a02573[ ]+csrr[ ]+a0,vxrm >>> +[ ]+[0-9a-f]+:[ ]+00a1d073[ ]+csrwi[ ]+vxrm,3 >>> +[ ]+[0-9a-f]+:[ ]+00f02573[ ]+csrr[ ]+a0,vcsr >>> +[ ]+[0-9a-f]+:[ ]+00f3d073[ ]+csrwi[ ]+vcsr,7 >>> +[ ]+[0-9a-f]+:[ ]+c2002573[ ]+csrr[ ]+a0,vl >>> +[ ]+[0-9a-f]+:[ ]+c2102573[ ]+csrr[ ]+a0,vtype >>> +[ ]+[0-9a-f]+:[ ]+c2202573[ ]+csrr[ ]+a0,vlenb >>> diff --git a/gas/testsuite/gas/riscv/vector-csrs-zve64x.d b/gas/testsuite/gas/riscv/vector-csrs-zve64x.d >>> new file mode 100644 >>> index 00000000000..023dafb0364 >>> --- /dev/null >>> +++ b/gas/testsuite/gas/riscv/vector-csrs-zve64x.d >>> @@ -0,0 +1,21 @@ >>> +#as: -march=rv32i_zicsr_zve64x -mcsr-check >>> +#source: vector-csrs.s >>> +#objdump: -d >>> + >>> +.*:[ ]+file format .* >>> + >>> + >>> +Disassembly of section .text: >>> + >>> +0+000 : >>> +[ ]+[0-9a-f]+:[ ]+00802573[ ]+csrr[ ]+a0,vstart >>> +[ ]+[0-9a-f]+:[ ]+00801073[ ]+csrw[ ]+vstart,zero >>> +[ ]+[0-9a-f]+:[ ]+00902573[ ]+csrr[ ]+a0,vxsat >>> +[ ]+[0-9a-f]+:[ ]+0090d073[ ]+csrwi[ ]+vxsat,1 >>> +[ ]+[0-9a-f]+:[ ]+00a02573[ ]+csrr[ ]+a0,vxrm >>> +[ ]+[0-9a-f]+:[ ]+00a1d073[ ]+csrwi[ ]+vxrm,3 >>> +[ ]+[0-9a-f]+:[ ]+00f02573[ ]+csrr[ ]+a0,vcsr >>> +[ ]+[0-9a-f]+:[ ]+00f3d073[ ]+csrwi[ ]+vcsr,7 >>> +[ ]+[0-9a-f]+:[ ]+c2002573[ ]+csrr[ ]+a0,vl >>> +[ ]+[0-9a-f]+:[ ]+c2102573[ ]+csrr[ ]+a0,vtype >>> +[ ]+[0-9a-f]+:[ ]+c2202573[ ]+csrr[ ]+a0,vlenb >>> diff --git a/gas/testsuite/gas/riscv/vector-csrs.s b/gas/testsuite/gas/riscv/vector-csrs.s >>> new file mode 100644 >>> index 00000000000..7019a0588ef >>> --- /dev/null >>> +++ b/gas/testsuite/gas/riscv/vector-csrs.s >>> @@ -0,0 +1,12 @@ >>> +target: >>> + csrr a0, vstart >>> + csrw vstart, zero >>> + csrr a0, vxsat >>> + csrwi vxsat, 1 >>> + csrr a0, vxrm >>> + csrwi vxrm, 3 >>> + csrr a0, vcsr >>> + csrwi vcsr, 7 >>> + csrr a0, vl >>> + csrr a0, vtype >>> + csrr a0, vlenb >>> -- >>> 2.34.1 >>> >>