diff mbox series

MIPS/testsuite: Fix umips-save-restore-1.c

Message ID 20240628081903.17992-1-syq@gcc.gnu.org
State New
Headers show
Series MIPS/testsuite: Fix umips-save-restore-1.c | expand

Commit Message

YunQiang Su June 28, 2024, 8:19 a.m. UTC
With some recent optimization, -O1/-O2/-O3 can archive almost same
performace/size by stack load/store.  Thus lwm/swm will save/store
less callee-saved register.  In fact only $16 is saved with swm.

To be sure that this optimization does exist, let's add 2 more
function calls.  So that lwm/swm can be much more profitable.

If we add only once more, -O1 will still use stack load/store.

gcc/testsuite
	* gcc.target/mips/umips-save-restore-1.c: Be sure lwm/swm
	are used for more callee-saved registers with addtional
	2 more function calls.
---
 gcc/testsuite/gcc.target/mips/umips-save-restore-1.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/gcc/testsuite/gcc.target/mips/umips-save-restore-1.c b/gcc/testsuite/gcc.target/mips/umips-save-restore-1.c
index ff1ea4b339a..0e2c4dcc844 100644
--- a/gcc/testsuite/gcc.target/mips/umips-save-restore-1.c
+++ b/gcc/testsuite/gcc.target/mips/umips-save-restore-1.c
@@ -7,12 +7,14 @@  int bar (int, int, int, int, int);
 MICROMIPS int
 foo (int n, int a, int b, int c, int d)
 {
-  int i, j;
+  int i, j, k, l;
 
   i = bar (n, a, b, c, d);
   j = bar (n, a, b, c, d);
-  return i + j;
+  k = bar (n, a, b, c, d);
+  l = bar (n, a, b, c, d);
+  return i + j + k + l;
 }
 
-/* { dg-final { scan-assembler "\tswm\t\\\$16-\\\$2(0|1),\\\$31" } } */
-/* { dg-final { scan-assembler "\tlwm\t\\\$16-\\\$2(0|1),\\\$31" } } */
+/* { dg-final { scan-assembler "\tswm\t\\\$16-\\\$2(2|3),\\\$31" } } */
+/* { dg-final { scan-assembler "\tlwm\t\\\$16-\\\$2(2|3),\\\$31" } } */