Tested with
make -k check RUNTESTFLAGS="--target_board=sh-sim\{-m2/-ml,-m2/-mb,-m2a/-
mb,-m4/-ml,-m4/-mb,-m4a/-ml,-m4a/-mb}"
Committed to master.
Best regards,
Oleg Endo
gcc/testsuite/ChangeLog:
PR target/69765
* gcc.target/sh/pr69765.c: New test.
From ed502f9d4414ecc2e47daacf765f509efc48fb01 Mon Sep 17 00:00:00 2001
From: Oleg Endo <[email protected]>
Date: Sat, 4 Jul 2026 16:46:38 +0900
Subject: [PATCH] SH: Add test case for PR69765
gcc/testsuite/ChangeLog:
PR target/69765
* gcc.target/sh/pr69765.c: New test.
---
gcc/testsuite/gcc.target/sh/pr69765.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
create mode 100644 gcc/testsuite/gcc.target/sh/pr69765.c
diff --git a/gcc/testsuite/gcc.target/sh/pr69765.c b/gcc/testsuite/gcc.target/sh/pr69765.c
new file mode 100644
index 0000000..411d148
--- /dev/null
+++ b/gcc/testsuite/gcc.target/sh/pr69765.c
@@ -0,0 +1,15 @@
+/* Verify that forwarding a double _Complex argument to a tail-called
+ function does not introduce additional reg-reg copies. */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-final { scan-assembler-times "jmp\t@r" 1 } } */
+/* { dg-final { scan-assembler-not "mov\tr" } } */
+/* { dg-final { scan-assembler-not "fmov\tr" } } */
+
+double _Complex foo (double _Complex arg);
+
+double _Complex
+bar (double _Complex arg)
+{
+ return foo (arg);
+}
--
libgit2 1.9.0