[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] RISC-V: Update Zba 'shNadd.uw' testcase.`
Jeff Law
law@gcc.gnu.org
Sat Sep 6 16:15:28 GMT 2025
https://gcc.gnu.org/g:2a1bc60cefba1740d422ad9f11fcfd51c899515a
commit 2a1bc60cefba1740d422ad9f11fcfd51c899515a
Author: Jiawei <jiawei@iscas.ac.cn>
Date: Tue Sep 2 07:49:47 2025 -0600
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.
(cherry picked from commit 0ffe59c0b9b88fadc2efcc1a69a8ace30ec6e7b8)
Diff:
---
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 61305d3a357d..445ffb294741 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} } } */
More information about the Gcc-cvs
mailing list