OK for trunk :)
On Mon, Sep 1, 2025 at 12:06 PM Jiawei <jia...@iscas.ac.cn> wrote: > > This patch update RISC-V Zba extension 'shNadd.uw' instruction generation. > Supplemented the instruction generation detection of 'sh1add.uw' and > 'sh3add.uw'. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/zba-shadd.c: New test functions. > > --- > gcc/testsuite/gcc.target/riscv/zba-shadd.c | 20 +++++++++++++++++++- > 1 file changed, 19 insertions(+), 1 deletion(-) > > diff --git a/gcc/testsuite/gcc.target/riscv/zba-shadd.c > b/gcc/testsuite/gcc.target/riscv/zba-shadd.c > index 61305d3a357..445ffb29474 100644 > --- a/gcc/testsuite/gcc.target/riscv/zba-shadd.c > +++ b/gcc/testsuite/gcc.target/riscv/zba-shadd.c > @@ -1,7 +1,15 @@ > /* { dg-do compile } */ > /* { dg-options "-O2 -march=rv64gc_zba -mabi=lp64" } */ > > -unsigned long foo(unsigned int a, unsigned long b) > +unsigned long foo1(unsigned int a, unsigned long b) > +{ > + a = a << 1; > + unsigned long c = (unsigned long) a; > + unsigned long d = b + (c<<1); > + return d; > +} > + > +unsigned long foo2(unsigned int a, unsigned long b) > { > a = a << 1; > unsigned long c = (unsigned long) a; > @@ -9,5 +17,15 @@ unsigned long foo(unsigned int a, unsigned long b) > return d; > } > > +unsigned long foo3(unsigned int a, unsigned long b) > +{ > + a = a << 1; > + unsigned long c = (unsigned long) a; > + unsigned long d = b + (c<<3); > + return d; > +} > + > +/* { dg-final { scan-assembler "sh1add.uw" } } */ > /* { dg-final { scan-assembler "sh2add.uw" } } */ > +/* { dg-final { scan-assembler "sh3add.uw" } } */ > /* { dg-final { scan-assembler-not {\mzext} } } */ > -- > 2.43.0 >