I've opened PR target/51729 to track the long-standing failures of gcc.target/mips/dspr2-MULT{,U}.c. The problem used to be in the final two scan-assembler tests, but in the last few months, the -ffixed-hi and -ffixed-lo options tripped some cost-consistency checking in IRA. The original scan-assembler failures resurface if that cost checking is disabled.
-ffixed-hi and -ffixed-lo are not supported options, and really, any optimisation test that relies on them is pretty weak. This patch therefore removes them and XFAILs the failing tests. Tested on mips64-linux-gnu and applied. Richard gcc/testsuite/ PR target/51729 * gcc.target/mips/dspr2-MULT.c: Remove -ffixed-hi -ffixed-lo. XFAIL. * gcc.target/mips/dspr2-MULTU.c: Likewise. Index: gcc/testsuite/gcc.target/mips/dspr2-MULT.c =================================================================== --- gcc/testsuite/gcc.target/mips/dspr2-MULT.c 2012-01-02 11:04:58.000000000 +0000 +++ gcc/testsuite/gcc.target/mips/dspr2-MULT.c 2012-01-02 11:28:10.000000000 +0000 @@ -1,11 +1,12 @@ /* Test MIPS32 DSP REV 2 MULT instruction. Tune for a CPU that has pipelined mult. */ /* { dg-do compile } */ -/* { dg-options "-mgp32 -mdspr2 -O2 -ffixed-hi -ffixed-lo -mtune=74kc" } */ +/* { dg-options "-mgp32 -mdspr2 -O2 -mtune=74kc" } */ +/* See PR target/51729 for the reason behind the XFAILs. */ /* { dg-final { scan-assembler "\tmult\t" } } */ -/* { dg-final { scan-assembler "ac1" } } */ -/* { dg-final { scan-assembler "ac2" } } */ +/* { dg-final { scan-assembler "ac1" { xfail *-*-* } } } */ +/* { dg-final { scan-assembler "ac2" { xfail *-*-* } } } */ typedef long long a64; Index: gcc/testsuite/gcc.target/mips/dspr2-MULTU.c =================================================================== --- gcc/testsuite/gcc.target/mips/dspr2-MULTU.c 2012-01-02 11:04:58.000000000 +0000 +++ gcc/testsuite/gcc.target/mips/dspr2-MULTU.c 2012-01-02 11:28:22.000000000 +0000 @@ -1,11 +1,12 @@ /* Test MIPS32 DSP REV 2 MULTU instruction. Tune for a CPU that has pipelined multu. */ /* { dg-do compile } */ -/* { dg-options "-mgp32 -mdspr2 -O2 -ffixed-hi -ffixed-lo -mtune=74kc" } */ +/* { dg-options "-mgp32 -mdspr2 -O2 -mtune=74kc" } */ +/* See PR target/51729 for the reason behind the XFAILs. */ /* { dg-final { scan-assembler "\tmultu\t" } } */ -/* { dg-final { scan-assembler "ac1" } } */ -/* { dg-final { scan-assembler "ac2" } } */ +/* { dg-final { scan-assembler "ac1" { xfail *-*-* } } } */ +/* { dg-final { scan-assembler "ac2" { xfail *-*-* } } } */ typedef unsigned long long a64;