diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2d835c9639cf7f49e379affe7826cbed0f1dd0e5..ba3c09c2401eba802f75688918074c11b066d109 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 a5f01e4ec1a5f6e26d766b14c920b1d36a0dd734..c2726cc25fbb4ec58edbd593e7a7d52e49231a2f 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 8dad5a70b271b52b47c22e2be187a31b57263b0b..4932648061b4ab7c45f200092ae7149d251903fb 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 0000000000000000000000000000000000000000..5988cc409674845024f9d918f6ef22ba049d9605
--- /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 0000000000000000000000000000000000000000..a9e2631caf7fbc88733ed08a04957044df827b54
--- /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);
+}