From f1fa08e32787c1e275ff0bad5036f32c7725dde1 Mon Sep 17 00:00:00 2001
From: Richard Sandiford <rdsandiford@googlemail.com>
Date: Sun, 27 Jul 2014 09:50:56 +0000
Subject: [PATCH] re PR rtl-optimization/61926 (const-anchor optimisation is
 sensitive to ordering)

gcc/testsuite/
	PR rtl-optimization/61926
	* gcc.target/mips/const-anchor-1.c, gcc.target/mips/const-anchor-2.c:
	Reverse argument order.
	* gcc.target/mips/const-anchor-3.c, gcc.target/mips/const-anchor-4.c:
	New XFAILed tests that match the original order.

From-SVN: r213093
---
 gcc/testsuite/ChangeLog                        |  8 ++++++++
 gcc/testsuite/gcc.target/mips/const-anchor-1.c |  4 ++--
 gcc/testsuite/gcc.target/mips/const-anchor-2.c |  4 ++--
 gcc/testsuite/gcc.target/mips/const-anchor-3.c | 11 +++++++++++
 gcc/testsuite/gcc.target/mips/const-anchor-4.c | 10 ++++++++++
 5 files changed, 33 insertions(+), 4 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/mips/const-anchor-3.c
 create mode 100644 gcc/testsuite/gcc.target/mips/const-anchor-4.c

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2d835c9639cf..ba3c09c2401e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2014-07-27  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	PR rtl-optimization/61926
+	* gcc.target/mips/const-anchor-1.c, gcc.target/mips/const-anchor-2.c:
+	Reverse argument order.
+	* gcc.target/mips/const-anchor-3.c, gcc.target/mips/const-anchor-4.c:
+	New XFAILed tests that match the original order.
+
 2014-07-26  Marek Polacek  <polacek@redhat.com>
 
 	PR c/61077
diff --git a/gcc/testsuite/gcc.target/mips/const-anchor-1.c b/gcc/testsuite/gcc.target/mips/const-anchor-1.c
index a5f01e4ec1a5..c2726cc25fbb 100644
--- a/gcc/testsuite/gcc.target/mips/const-anchor-1.c
+++ b/gcc/testsuite/gcc.target/mips/const-anchor-1.c
@@ -2,9 +2,9 @@
    (0x1234000) used to build another constant.  */
 /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
 /* { dg-final { scan-assembler-not "0x12330000|305332224" } } */
-/* { dg-final { scan-assembler "\td?addiu\t\\\$5,\\\$\[0-9\]*,-1" } } */
+/* { dg-final { scan-assembler "\td?addiu\t\\\$4,\\\$\[0-9\]*,-1" } } */
 
 NOMIPS16 void f ()
 {
-  g (0x12340001, 0x1233ffff);
+  g (0x1233ffff, 0x12340001);
 }
diff --git a/gcc/testsuite/gcc.target/mips/const-anchor-2.c b/gcc/testsuite/gcc.target/mips/const-anchor-2.c
index 8dad5a70b271..4932648061b4 100644
--- a/gcc/testsuite/gcc.target/mips/const-anchor-2.c
+++ b/gcc/testsuite/gcc.target/mips/const-anchor-2.c
@@ -1,9 +1,9 @@
 /* Derive a constant (0x30001) from another constant.  */
 /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
 /* { dg-final { scan-assembler-not "0x300000|196608" } } */
-/* { dg-final { scan-assembler "\td?addiu\t\\\$5,\\\$\[0-9\]*,32763" } } */
+/* { dg-final { scan-assembler "\td?addiu\t\\\$4,\\\$\[0-9\]*,32763" } } */
 
 NOMIPS16 void f ()
 {
-  g (0x28006, 0x30001);
+  g (0x30001, 0x28006);
 }
diff --git a/gcc/testsuite/gcc.target/mips/const-anchor-3.c b/gcc/testsuite/gcc.target/mips/const-anchor-3.c
new file mode 100644
index 000000000000..5988cc409674
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/const-anchor-3.c
@@ -0,0 +1,11 @@
+/* Derive a constant (0x1233ffff) from an intermediate value
+   (0x1234000) used to build another constant.  */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
+/* See PR61926 for the XFAILs.  */
+/* { dg-final { scan-assembler-not "0x12330000|305332224" { xfail *-*-* } } } */
+/* { dg-final { scan-assembler "\td?addiu\t\\\$5,\\\$\[0-9\]*,-1" { xfail *-*-* } } } */
+
+NOMIPS16 void f ()
+{
+  g (0x12340001, 0x1233ffff);
+}
diff --git a/gcc/testsuite/gcc.target/mips/const-anchor-4.c b/gcc/testsuite/gcc.target/mips/const-anchor-4.c
new file mode 100644
index 000000000000..a9e2631caf7f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/const-anchor-4.c
@@ -0,0 +1,10 @@
+/* Derive a constant (0x30001) from another constant.  */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
+/* See PR61926 for the XFAILs.  */
+/* { dg-final { scan-assembler-not "0x300000|196608" { xfail *-*-* } } } */
+/* { dg-final { scan-assembler "\td?addiu\t\\\$5,\\\$\[0-9\]*,32763" { xfail *-*-* }  } } */
+
+NOMIPS16 void f ()
+{
+  g (0x28006, 0x30001);
+}
-- 
GitLab