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

Reply via email to