From: Jiawei Date: Tue, 2 Sep 2025 13:49:47 +0000 (-0600) Subject: RISC-V: Update Zba 'shNadd.uw' testcase.` X-Git-Tag: basepoints/gcc-17~5286 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0ffe59c0b9b88fadc2efcc1a69a8ace30ec6e7b8;p=thirdparty%2Fgcc.git RISC-V: Update Zba 'shNadd.uw' testcase.` 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. --- 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} } } */