diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d34a5c19882a..aeebb09d5d65 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,355 @@ +2012-08-27 Richard Sandiford + + * gcc.target/mips/mips.exp: Use gcc-dg-runtest rather than dg-runtest. + (mips_option_groups): Remove optimization. Add various -f options. + (mips-dg-options): Make -funroll-loops imply -funroll-all-loops + and -pg imply -fno-omit-frame-pointer. + * gcc.target/mips/abi-eabi32-long32.c: Remove optimization flag. + * gcc.target/mips/abi-eabi32-long64.c: Likewise. + * gcc.target/mips/abi-eabi64-long32.c: Likewise. + * gcc.target/mips/abi-eabi64-long64.c: Likewise. + * gcc.target/mips/abi-n32-long32-no-shared.c: Likewise. + * gcc.target/mips/abi-n32-long32-pic.c: Likewise. + * gcc.target/mips/abi-n32-long32.c: Likewise. + * gcc.target/mips/abi-n32-long64-no-shared.c: Likewise. + * gcc.target/mips/abi-n32-long64-pic.c: Likewise. + * gcc.target/mips/abi-n32-long64.c: Likewise. + * gcc.target/mips/abi-n64-long32-no-shared.c: Likewise. + * gcc.target/mips/abi-n64-long32-pic.c: Likewise. + * gcc.target/mips/abi-n64-long32.c: Likewise. + * gcc.target/mips/abi-n64-long64-no-shared.c: Likewise. + * gcc.target/mips/abi-n64-long64-pic.c: Likewise. + * gcc.target/mips/abi-n64-long64.c: Likewise. + * gcc.target/mips/abi-o32-long32-no-shared.c: Likewise. + * gcc.target/mips/abi-o32-long32-pic.c: Likewise. + * gcc.target/mips/abi-o32-long32.c: Likewise. + * gcc.target/mips/abi-o32-long64-no-shared.c: Likewise. + * gcc.target/mips/abi-o32-long64-pic.c: Likewise. + * gcc.target/mips/abi-o32-long64.c: Likewise. + * gcc.target/mips/abi-o64-long32-no-shared.c: Likewise. + * gcc.target/mips/abi-o64-long32-pic.c: Likewise. + * gcc.target/mips/abi-o64-long32.c: Likewise. + * gcc.target/mips/abi-o64-long64-no-shared.c: Likewise. + * gcc.target/mips/abi-o64-long64-pic.c: Likewise. + * gcc.target/mips/abi-o64-long64.c: Likewise. + * gcc.target/mips/asm-1.c: Likewise. + * gcc.target/mips/branch-1.c: Likewise. + * gcc.target/mips/call-3.c: Likewise. + * gcc.target/mips/call-saved-3.c: Likewise. + * gcc.target/mips/clear-cache-1.c: Likewise. + * gcc.target/mips/div-1.c: Likewise. + * gcc.target/mips/div-2.c: Likewise. + * gcc.target/mips/div-3.c: Likewise. + * gcc.target/mips/div-4.c: Likewise. + * gcc.target/mips/div-5.c: Likewise. + * gcc.target/mips/div-6.c: Likewise. + * gcc.target/mips/div-7.c: Likewise. + * gcc.target/mips/div-8.c: Likewise. + * gcc.target/mips/div-9.c: Likewise. + * gcc.target/mips/div-10.c: Likewise. + * gcc.target/mips/div-11.c: Likewise. + * gcc.target/mips/div-12.c: Likewise. + * gcc.target/mips/dsp-ctrl.c: Likewise. + * gcc.target/mips/dsp-no-lhx.c: Likewise. + * gcc.target/mips/ext-8.c: Likewise. + * gcc.target/mips/extend-2.c: Likewise. + * gcc.target/mips/fix-r10000-1.c: Likewise. + * gcc.target/mips/fix-r10000-2.c: Likewise. + * gcc.target/mips/fix-r10000-3.c: Likewise. + * gcc.target/mips/fix-r10000-4.c: Likewise. + * gcc.target/mips/fix-r10000-5.c: Likewise. + * gcc.target/mips/fix-r10000-6.c: Likewise. + * gcc.target/mips/fix-r10000-7.c: Likewise. + * gcc.target/mips/fix-r10000-8.c: Likewise. + * gcc.target/mips/fix-r10000-9.c: Likewise. + * gcc.target/mips/fix-r10000-10.c: Likewise. + * gcc.target/mips/fix-r10000-11.c: Likewise. + * gcc.target/mips/fix-r10000-12.c: Likewise. + * gcc.target/mips/fix-r10000-13.c: Likewise. + * gcc.target/mips/fix-r10000-14.c: Likewise. + * gcc.target/mips/fix-r10000-15.c: Likewise. + * gcc.target/mips/fpcmp-1.c: Likewise. + * gcc.target/mips/fpcmp-2.c: Likewise. + * gcc.target/mips/fpr-moves-7.c: Likewise. + * gcc.target/mips/fpr-moves-8.c: Likewise. + * gcc.target/mips/int-moves-1.c: Likewise. + * gcc.target/mips/int-moves-2.c: Likewise. + * gcc.target/mips/long-calls-pg.c: Likewise. + * gcc.target/mips/loongson-muldiv-1.c: Likewise. + * gcc.target/mips/loongson-muldiv-2.c: Likewise. + * gcc.target/mips/loongson-shift-count-truncated-1.c: Likewise. + * gcc.target/mips/loongson3a-muldiv-1.c: Likewise. + * gcc.target/mips/loongson3a-muldiv-2.c: Likewise. + * gcc.target/mips/mips-3d-1.c: Likewise. + * gcc.target/mips/mips-3d-2.c: Likewise. + * gcc.target/mips/mips-3d-3.c: Likewise. + * gcc.target/mips/mips-3d-4.c: Likewise. + * gcc.target/mips/mips-3d-5.c: Likewise. + * gcc.target/mips/mips-3d-6.c: Likewise. + * gcc.target/mips/mips-3d-7.c: Likewise. + * gcc.target/mips/mips-3d-8.c: Likewise. + * gcc.target/mips/mips-3d-9.c: Likewise. + * gcc.target/mips/mips-ps-1.c: Likewise. + * gcc.target/mips/mips-ps-2.c: Likewise. + * gcc.target/mips/mips-ps-3.c: Likewise. + * gcc.target/mips/mips-ps-4.c: Likewise. + * gcc.target/mips/mips-ps-6.c: Likewise. + * gcc.target/mips/mips32-dspr2.c: Likewise. + * gcc.target/mips/mmcount-ra-address-1.c: Likewise. + * gcc.target/mips/neg-abs-1.c: Likewise. + * gcc.target/mips/neg-abs-2.c: Likewise. + * gcc.target/mips/nmadd-3.c: Likewise. + * gcc.target/mips/no-smartmips-lwxs.c: Likewise. + * gcc.target/mips/no-smartmips-ror-1.c: Likewise. + * gcc.target/mips/octeon-pop-1.c: Likewise. + * gcc.target/mips/pr26765.c: Likewise. + * gcc.target/mips/pr33256.c: Likewise. + * gcc.target/mips/pr33635-1.c: Likewise. + * gcc.target/mips/pr33755.c: Likewise. + * gcc.target/mips/pr35802.c: Likewise. + * gcc.target/mips/pr45074.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-1.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-2.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-3.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-4.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-5.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-6.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-7.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-8.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-9.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-11.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-12.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-13.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-14.c: Likewise. + * gcc.target/mips/r10k-cache-barrier-15.c: Likewise. + * gcc.target/mips/save-restore-1.c: Likewise. + * gcc.target/mips/save-restore-3.c: Likewise. + * gcc.target/mips/save-restore-5.c: Likewise. + * gcc.target/mips/smartmips-ror-1.c: Likewise. + * gcc.target/mips/smartmips-ror-2.c: Likewise. + * gcc.target/mips/smartmips-ror-3.c: Likewise. + * gcc.target/mips/smartmips-ror-4.c: Likewise. + * gcc.target/mips/stack-1.c: Likewise. + + * gcc.target/mips/clear-cache-2.c: Remove optimization flag. + Tighten regexps. + + * gcc.target/mips/branch-8.c: Arrange for the delay slot of the + branch under test to be filled with preceding rather than + following instructions. + * gcc.target/mips/branch-10.c: Likewise. + * gcc.target/mips/branch-11.c: Likewise. + * gcc.target/mips/branch-12.c: Likewise. + * gcc.target/mips/branch-13.c: Likewise. + * gcc.target/mips/branch-9.c: Likewise. Allow the frame pointer + to be eliminated. Tighten $28 scan-assembler-not test. + + * gcc.target/mips/call-2.c: Remove optimization flag. Move second + function to... + * gcc.target/mips/call-4.c: ...this new test. + + * gcc.target/mips/code-readable-2.c: Rework to make a jump table + more likely. + * gcc.target/mips/code-readable-3.c: Likewise. + * gcc.target/mips/code-readable-1.c: Likewise. Remove optimization + flag but skip for -O0. + * gcc.target/mips/code-readable-4.c: Likewise. + + * gcc.target/mips/mips32-dsp-run.c: Prevent compile-time reduction + of operations under test. + * gcc.target/mips/mips32-dsp.c: Likewise. Remove optimization flag. + + * gcc.target/mips/near-far-3.c: Remove optimization flag. + Don't require sibling-call optimization. + * gcc.target/mips/near-far-4.c: Likewise. + + * gcc.target/mips/no-dsp-1.c: Require -ffat-lto-objects. + Make sure that the register variable is used. + * gcc.target/mips/soft-float-1.c: Likewise. + + * gcc.target/mips/sdata-1.c: Make static data volatile. + * gcc.target/mips/sdata-2.c: Likewise. + * gcc.target/mips/sdata-3.c: Likewise. + * gcc.target/mips/sdata-4.c: Likewise. + + * gcc.target/mips/20020620-1.c: Remove optimization flag but + skip for -O0. + * gcc.target/mips/atomic-memory-2.c: Likewise. + * gcc.target/mips/branch-cost-1.c: Likewise. + * gcc.target/mips/branch-cost-2.c: Likewise. + * gcc.target/mips/cache-1.c: Likewise. + * gcc.target/mips/call-1.c: Likewise. + * gcc.target/mips/call-saved-2.c: Likewise. + * gcc.target/mips/const-anchor-1.c: Likewise. + * gcc.target/mips/const-anchor-2.c: Likewise. + * gcc.target/mips/dse-1.c: Likewise. + * gcc.target/mips/dsp-lhx.c: Likewise. + * gcc.target/mips/dspr2-MULTU.c: Likewise. + * gcc.target/mips/ext-1.c: Likewise. + * gcc.target/mips/ext-2.c: Likewise. + * gcc.target/mips/ext-3.c: Likewise. + * gcc.target/mips/ext-4.c: Likewise. + * gcc.target/mips/ext-5.c: Likewise. + * gcc.target/mips/ext-6.c: Likewise. + * gcc.target/mips/ext-7.c: Likewise. + * gcc.target/mips/extend-1.c: Likewise. + * gcc.target/mips/fix-r4000-1.c: Likewise. + * gcc.target/mips/fix-r4000-3.c: Likewise. + * gcc.target/mips/fix-r4000-5.c: Likewise. + * gcc.target/mips/fix-r4000-6.c: Likewise. + * gcc.target/mips/fix-r4000-8.c: Likewise. + * gcc.target/mips/fix-r4000-10.c: Likewise. + * gcc.target/mips/fixed-scalar-type.c: Likewise. + * gcc.target/mips/fixed-vector-type.c: Likewise. + * gcc.target/mips/fpr-moves-1.c: Likewise. + * gcc.target/mips/fpr-moves-2.c: Likewise. + * gcc.target/mips/fpr-moves-3.c: Likewise. + * gcc.target/mips/fpr-moves-4.c: Likewise. + * gcc.target/mips/fpr-moves-5.c: Likewise. + * gcc.target/mips/fpr-moves-6.c: Likewise. + * gcc.target/mips/ins-1.c: Likewise. + * gcc.target/mips/ins-2.c: Likewise. + * gcc.target/mips/interrupt_handler-2.c: Likewise. + * gcc.target/mips/interrupt_handler-3.c: Likewise. + * gcc.target/mips/lazy-binding-1.c: Likewise. + * gcc.target/mips/madd-3.c: Likewise. + * gcc.target/mips/madd-5.c: Likewise. + * gcc.target/mips/madd-6.c: Likewise. + * gcc.target/mips/madd-8.c: Likewise. + * gcc.target/mips/madd-9.c: Likewise. + * gcc.target/mips/memcpy-1.c: Likewise. + * gcc.target/mips/mips-ps-type.c: Likewise. + * gcc.target/mips/mips-ps-type-2.c: Likewise. + * gcc.target/mips/mips-sched-madd.c: Likewise. + * gcc.target/mips/mips16e-extends.c: Likewise. + * gcc.target/mips/mips32r2-mxhc1.c: Likewise. + * gcc.target/mips/mips64-dsp-ldx.c: Likewise. + * gcc.target/mips/movcc-1.c: Likewise. + * gcc.target/mips/movcc-2.c: Likewise. + * gcc.target/mips/movcc-3.c: Likewise. + * gcc.target/mips/msub-5.c: Likewise. + * gcc.target/mips/msub-6.c: Likewise. + * gcc.target/mips/msub-8.c: Likewise. + * gcc.target/mips/mult-2.c: Likewise. + * gcc.target/mips/mult-3.c: Likewise. + * gcc.target/mips/mult-5.c: Likewise. + * gcc.target/mips/mult-6.c: Likewise. + * gcc.target/mips/mult-7.c: Likewise. + * gcc.target/mips/mult-12.c: Likewise. + * gcc.target/mips/mult-13.c: Likewise. + * gcc.target/mips/mult-14.c: Likewise. + * gcc.target/mips/mult-15.c: Likewise. + * gcc.target/mips/mult-17.c: Likewise. + * gcc.target/mips/mult-18.c: Likewise. + * gcc.target/mips/mult-19.c: Likewise. + * gcc.target/mips/nmadd-1.c: Likewise. + * gcc.target/mips/nmadd-2.c: Likewise. + * gcc.target/mips/octeon-baddu-1.c: Likewise. + * gcc.target/mips/octeon-cins-1.c: Likewise. + * gcc.target/mips/octeon-cins-2.c: Likewise. + * gcc.target/mips/octeon-dmul-3.c: Likewise. + * gcc.target/mips/octeon-exts-2.c: Likewise. + * gcc.target/mips/octeon-exts-3.c: Likewise. + * gcc.target/mips/octeon-exts-4.c: Likewise. + * gcc.target/mips/octeon-exts-5.c: Likewise. + * gcc.target/mips/octeon-exts-6.c: Likewise. + * gcc.target/mips/octeon-exts-7.c: Likewise. + * gcc.target/mips/octeon-pop-2.c: Likewise. + * gcc.target/mips/octeon-seq-3.c: Likewise. + * gcc.target/mips/octeon-seq-4.c: Likewise. + * gcc.target/mips/octeon2-lx-1.c: Likewise. + * gcc.target/mips/octeon2-lx-2.c: Likewise. + * gcc.target/mips/octeon2-lx-3.c: Likewise. + * gcc.target/mips/pr54240.c: Likewise. + * gcc.target/mips/rsqrt-1.c: Likewise. + * gcc.target/mips/rsqrt-2.c: Likewise. + * gcc.target/mips/rsqrt-3.c: Likewise. + * gcc.target/mips/rsqrt-4.c: Likewise. + * gcc.target/mips/save-restore-2.c: Likewise. + * gcc.target/mips/save-restore-4.c: Likewise. + * gcc.target/mips/sb1-1.c: Likewise. + * gcc.target/mips/scc-1.c: Likewise. + * gcc.target/mips/scc-2.c: Likewise. + * gcc.target/mips/scc-3.c: Likewise. + * gcc.target/mips/scc-4.c: Likewise. + * gcc.target/mips/smartmips-lwxs.c: Likewise. + * gcc.target/mips/truncate-1.c: Likewise. + * gcc.target/mips/truncate-2.c: Likewise. + * gcc.target/mips/truncate-3.c: Likewise. + * gcc.target/mips/truncate-4.c: Likewise. + * gcc.target/mips/truncate-5.c: Likewise. + * gcc.target/mips/truncate-6.c: Likewise. + * gcc.target/mips/unaligned-1.c: Likewise. + + * gcc.target/mips/dpaq_sa_l_w.c: Remove optimization flag but + skip for -O0. Require -fexpensive-optimizations. + * gcc.target/mips/dpsq_sa_l_w.c: Likewise. + * gcc.target/mips/dspr2-MULT.c: Likewise. + * gcc.target/mips/fix-r4000-2.c: Likewise. + * gcc.target/mips/fix-r4000-4.c: Likewise. + * gcc.target/mips/fix-r4000-7.c: Likewise. + * gcc.target/mips/fix-r4000-9.c: Likewise. + * gcc.target/mips/madd-1.c: Likewise. + * gcc.target/mips/madd-2.c: Likewise. + * gcc.target/mips/madd-4.c: Likewise. + * gcc.target/mips/maddu-1.c: Likewise. + * gcc.target/mips/maddu-2.c: Likewise. + * gcc.target/mips/maddu-3.c: Likewise. + * gcc.target/mips/maddu-4.c: Likewise. + * gcc.target/mips/msub-1.c: Likewise. + * gcc.target/mips/msub-2.c: Likewise. + * gcc.target/mips/msub-3.c: Likewise. + * gcc.target/mips/msub-4.c: Likewise. + * gcc.target/mips/msubu-1.c: Likewise. + * gcc.target/mips/msubu-2.c: Likewise. + * gcc.target/mips/msubu-3.c: Likewise. + * gcc.target/mips/msubu-4.c: Likewise. + * gcc.target/mips/mult-1.c: Likewise. + * gcc.target/mips/mult-4.c: Likewise. + * gcc.target/mips/mult-8.c: Likewise. + * gcc.target/mips/mult-9.c: Likewise. + * gcc.target/mips/mult-10.c: Likewise. + * gcc.target/mips/mult-11.c: Likewise. + * gcc.target/mips/mult-16.c: Likewise. + + * gcc.target/mips/fix-r4000-11.c: Remove optimization flag but + skip for -O0 and -Os. + * gcc.target/mips/fix-r4000-12.c: Likewise. + * gcc.target/mips/madd-7.c: Likewise. + * gcc.target/mips/mips-ps-5.c: Likewise. + * gcc.target/mips/mips-ps-7.c: Likewise. + * gcc.target/mips/msub-7.c: Likewise. + + * gcc.target/mips/mmcount-ra-address-2.c: Remove optimization flag but + skip for -O0. Require -mno-abicalls. + * gcc.target/mips/mmcount-ra-address-3.c: Likewise. + + * gcc.target/mips/octeon-bbit-1.c: Remove optimization flag but + skip for -O0. Require a total number of BBIT instructions and + at least one of each kind. + + * gcc.target/mips/octeon-bbit-2.c: Remove optimization flag but + skip for -O0. Require -fno-unroll-loops. + + * gcc.target/mips/octeon-bbit-3.c: Remove optimization flag but + skip for -O0. Allow BLTZ as well as BGEZ. + + * gcc.target/mips/octeon-dmul-2.c: Skip for -Os. + + * gcc.target/mips/octeon-pipe-1.c: Remove optimization flag but + skip for -O0. Require -fschedule-insns2. + * gcc.target/mips/octeon2-pipe-1.c: Likewise. + + * gcc.target/mips/r10k-cache-barrier-10.c: Remove optimization flag + but skip for -O0. Make a branch-likely more likely. + + * gcc.target/mips/timode-2.c: Split each test into its own function. + * gcc.target/mips/timode-1.c: Likewise. Skip for -Os. + + * gcc.target/mips/vr-mult-1.c: Remove optimization flag but + skip for -O0. Require -fpeephole2. + * gcc.target/mips/vr-mult-2.c: Likewise. + 2012-05-25 Dodji Seketeli PR preprocessor/53469 diff --git a/gcc/testsuite/gcc.target/mips/20020620-1.c b/gcc/testsuite/gcc.target/mips/20020620-1.c index 1f2affe48fc8..8a70dd3b13cf 100644 --- a/gcc/testsuite/gcc.target/mips/20020620-1.c +++ b/gcc/testsuite/gcc.target/mips/20020620-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mlong64" } */ +/* { dg-options "-mlong64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ int foo (int *x, int i) { return x[i] + i; diff --git a/gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c b/gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c index ebc5dd67240f..75bd1b664be2 100644 --- a/gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c +++ b/gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=eabi -mgp32 -mlong32 -O2" } */ +/* { dg-options "-mabi=eabi -mgp32 -mlong32" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c b/gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c index 5a776eca988c..1649433e6331 100644 --- a/gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c +++ b/gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=eabi -mgp32 -mlong64 -O2" } */ +/* { dg-options "-mabi=eabi -mgp32 -mlong64" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c b/gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c index 3882e48fa350..03d7c2718361 100644 --- a/gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c +++ b/gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=eabi -mgp64 -mlong32 -O2" } */ +/* { dg-options "-mabi=eabi -mgp64 -mlong32" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c b/gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c index 5569bf521e82..bb6fa17ac037 100644 --- a/gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c +++ b/gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=eabi -mgp64 -mlong64 -O2" } */ +/* { dg-options "-mabi=eabi -mgp64 -mlong64" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c index 5cab4c97a625..11dfe2bc89d4 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c +++ b/gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=n32 -mlong32 -mabicalls -mno-shared -mno-plt -O2" } */ +/* { dg-options "-mabi=n32 -mlong32 -mabicalls -mno-shared -mno-plt" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c b/gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c index eb455da96a83..ffbe62c48c52 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c +++ b/gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=n32 -mlong32 -fpic -O2" } */ +/* { dg-options "-mabi=n32 -mlong32 -fpic" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long32.c b/gcc/testsuite/gcc.target/mips/abi-n32-long32.c index 6a0f7023c9df..f6fa20d1203b 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n32-long32.c +++ b/gcc/testsuite/gcc.target/mips/abi-n32-long32.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=n32 -mlong32 addressing=absolute -O2" } */ +/* { dg-options "-mabi=n32 -mlong32 addressing=absolute" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c index 3edf86787cb5..a30b573cb18f 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c +++ b/gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=n32 -mlong64 -mabicalls -mno-shared -mno-plt -O2" } */ +/* { dg-options "-mabi=n32 -mlong64 -mabicalls -mno-shared -mno-plt" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c b/gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c index b444209e3b97..f9729a3dc4b3 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c +++ b/gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=n32 -mlong64 -fpic -O2" } */ +/* { dg-options "-mabi=n32 -mlong64 -fpic" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long64.c b/gcc/testsuite/gcc.target/mips/abi-n32-long64.c index 868719c445fd..b064bf5e9260 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n32-long64.c +++ b/gcc/testsuite/gcc.target/mips/abi-n32-long64.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=n32 -mlong64 addressing=absolute -O2" } */ +/* { dg-options "-mabi=n32 -mlong64 addressing=absolute" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c index b268d888a46d..6a524091215e 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c +++ b/gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=64 -mlong32 -mabicalls -mno-shared -mno-plt -O2" } */ +/* { dg-options "-mabi=64 -mlong32 -mabicalls -mno-shared -mno-plt" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c b/gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c index 5a0d91726518..6a5203e8c57f 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c +++ b/gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=64 -mlong32 -fpic -O2" } */ +/* { dg-options "-mabi=64 -mlong32 -fpic" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long32.c b/gcc/testsuite/gcc.target/mips/abi-n64-long32.c index 4227169ec7ee..d5f52d94ca5e 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n64-long32.c +++ b/gcc/testsuite/gcc.target/mips/abi-n64-long32.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=64 -mlong32 addressing=absolute -O2" } */ +/* { dg-options "-mabi=64 -mlong32 addressing=absolute" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c index 5301cfc5b73f..113bbcc5a342 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c +++ b/gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=64 -mlong64 -mabicalls -mno-shared -mno-plt -O2" } */ +/* { dg-options "-mabi=64 -mlong64 -mabicalls -mno-shared -mno-plt" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c b/gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c index f43e9157bad1..5f734687cfe2 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c +++ b/gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=64 -mlong64 -fpic -O2" } */ +/* { dg-options "-mabi=64 -mlong64 -fpic" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long64.c b/gcc/testsuite/gcc.target/mips/abi-n64-long64.c index a670fe5af91c..19e6d91d2dec 100644 --- a/gcc/testsuite/gcc.target/mips/abi-n64-long64.c +++ b/gcc/testsuite/gcc.target/mips/abi-n64-long64.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=64 -mlong64 addressing=absolute -O2" } */ +/* { dg-options "-mabi=64 -mlong64 addressing=absolute" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c index 2032b36d9d00..fb1b888d88e1 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c +++ b/gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=32 -mlong32 -mabicalls -mno-shared -mno-plt -O2" } */ +/* { dg-options "-mabi=32 -mlong32 -mabicalls -mno-shared -mno-plt" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c b/gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c index 5a3e93effafa..64a7f585466e 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c +++ b/gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=32 -mlong32 -fpic -O2" } */ +/* { dg-options "-mabi=32 -mlong32 -fpic" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long32.c b/gcc/testsuite/gcc.target/mips/abi-o32-long32.c index bdb9464c74a1..790122077c73 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o32-long32.c +++ b/gcc/testsuite/gcc.target/mips/abi-o32-long32.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=32 -mlong32 addressing=absolute -O2" } */ +/* { dg-options "-mabi=32 -mlong32 addressing=absolute" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c index 6340b63252bb..2f28aeb61e57 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c +++ b/gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=32 -mlong64 -mabicalls -mno-shared -mno-plt -O2" } */ +/* { dg-options "-mabi=32 -mlong64 -mabicalls -mno-shared -mno-plt" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c b/gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c index 1583034b2a3d..89cd9a20790a 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c +++ b/gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=32 -mlong64 -fpic -O2" } */ +/* { dg-options "-mabi=32 -mlong64 -fpic" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long64.c b/gcc/testsuite/gcc.target/mips/abi-o32-long64.c index 4a88739b695e..840e9aa130de 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o32-long64.c +++ b/gcc/testsuite/gcc.target/mips/abi-o32-long64.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=32 -mlong64 addressing=absolute -O2" } */ +/* { dg-options "-mabi=32 -mlong64 addressing=absolute" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c index 548ae0d4a13f..832550e45cb9 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c +++ b/gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=o64 -mlong32 -mabicalls -mno-shared -mno-plt -O2" } */ +/* { dg-options "-mabi=o64 -mlong32 -mabicalls -mno-shared -mno-plt" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c b/gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c index 89d03ab67409..e06b88292936 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c +++ b/gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=o64 -mlong32 -fpic -O2" } */ +/* { dg-options "-mabi=o64 -mlong32 -fpic" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long32.c b/gcc/testsuite/gcc.target/mips/abi-o64-long32.c index db5893e45274..54ac2d707f3a 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o64-long32.c +++ b/gcc/testsuite/gcc.target/mips/abi-o64-long32.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=o64 -mlong32 addressing=absolute -O2" } */ +/* { dg-options "-mabi=o64 -mlong32 addressing=absolute" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c index df164b22f6c9..94848f4e1be4 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c +++ b/gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=o64 -mlong64 -mabicalls -mno-shared -mno-plt -O2" } */ +/* { dg-options "-mabi=o64 -mlong64 -mabicalls -mno-shared -mno-plt" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c b/gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c index df58d1f0285f..8c2ca36d9f75 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c +++ b/gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c @@ -1,3 +1,3 @@ -/* { dg-options "-mabi=o64 -mlong64 -fpic -O2" } */ +/* { dg-options "-mabi=o64 -mlong64 -fpic" } */ /* { dg-error "is incompatible with" "" { target *-*-* } 0 } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long64.c b/gcc/testsuite/gcc.target/mips/abi-o64-long64.c index 43078f6809a1..02633567ca23 100644 --- a/gcc/testsuite/gcc.target/mips/abi-o64-long64.c +++ b/gcc/testsuite/gcc.target/mips/abi-o64-long64.c @@ -1,2 +1,2 @@ -/* { dg-options "-mabi=o64 -mlong64 -mno-abicalls -O2" } */ +/* { dg-options "-mabi=o64 -mlong64 -mno-abicalls" } */ #include "abi-main.h" diff --git a/gcc/testsuite/gcc.target/mips/asm-1.c b/gcc/testsuite/gcc.target/mips/asm-1.c index 9f9cb3a3483c..8df2689469e7 100644 --- a/gcc/testsuite/gcc.target/mips/asm-1.c +++ b/gcc/testsuite/gcc.target/mips/asm-1.c @@ -1,7 +1,6 @@ /* PR target/17565. GCC used to put the asm into the delay slot of the call. */ /* { dg-do assemble } */ -/* { dg-options "-O" } */ NOMIPS16 int foo (int n) { diff --git a/gcc/testsuite/gcc.target/mips/atomic-memory-2.c b/gcc/testsuite/gcc.target/mips/atomic-memory-2.c index bc597ab2d2be..de17ec3c4b4b 100644 --- a/gcc/testsuite/gcc.target/mips/atomic-memory-2.c +++ b/gcc/testsuite/gcc.target/mips/atomic-memory-2.c @@ -1,10 +1,11 @@ /* { dg-do compile } */ -/* { dg-options "-O2 isa>=2 -mabi=32" } */ +/* { dg-options "isa>=2 -mabi=32" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "addiu" } } */ /* { dg-final { scan-assembler-not "subu" } } */ NOMIPS16 unsigned long f(unsigned long *p) { - return __sync_fetch_and_sub (p, 5); + return __sync_fetch_and_sub (p, 5); } diff --git a/gcc/testsuite/gcc.target/mips/branch-1.c b/gcc/testsuite/gcc.target/mips/branch-1.c index 2f4510f8dd67..6ef50e8a187d 100644 --- a/gcc/testsuite/gcc.target/mips/branch-1.c +++ b/gcc/testsuite/gcc.target/mips/branch-1.c @@ -2,7 +2,7 @@ but we test for "bbit" elsewhere. On other targets, we should implement the "if" statements using an "andi" instruction followed by a branch on zero. */ -/* { dg-options "-O2 forbid_cpu=octeon.*" } */ +/* { dg-options "forbid_cpu=octeon.*" } */ void bar (void); NOMIPS16 void f1 (int x) { if (x & 4) bar (); } diff --git a/gcc/testsuite/gcc.target/mips/branch-10.c b/gcc/testsuite/gcc.target/mips/branch-10.c index 8186030e6e14..e2b1b5f6baab 100644 --- a/gcc/testsuite/gcc.target/mips/branch-10.c +++ b/gcc/testsuite/gcc.target/mips/branch-10.c @@ -5,9 +5,9 @@ #include "branch-helper.h" NOMIPS16 void -foo (void (*bar) (void), volatile int *x) +foo (int (*bar) (void), int *x) { - bar (); + *x = bar (); if (__builtin_expect (*x == 0, 1)) OCCUPY_0x1fff8; } diff --git a/gcc/testsuite/gcc.target/mips/branch-11.c b/gcc/testsuite/gcc.target/mips/branch-11.c index a314740655df..962eb1b5d66a 100644 --- a/gcc/testsuite/gcc.target/mips/branch-11.c +++ b/gcc/testsuite/gcc.target/mips/branch-11.c @@ -9,9 +9,9 @@ #include "branch-helper.h" NOMIPS16 void -foo (void (*bar) (void), volatile int *x) +foo (int (*bar) (void), int *x) { - bar (); + *x = bar (); if (__builtin_expect (*x == 0, 1)) OCCUPY_0x1fffc; } diff --git a/gcc/testsuite/gcc.target/mips/branch-12.c b/gcc/testsuite/gcc.target/mips/branch-12.c index 3e5b421cf87e..4aef160ade8a 100644 --- a/gcc/testsuite/gcc.target/mips/branch-12.c +++ b/gcc/testsuite/gcc.target/mips/branch-12.c @@ -5,9 +5,9 @@ #include "branch-helper.h" NOMIPS16 void -foo (void (*bar) (void), volatile int *x) +foo (int (*bar) (void), int *x) { - bar (); + *x = bar (); if (__builtin_expect (*x == 0, 1)) OCCUPY_0x1fff8; } diff --git a/gcc/testsuite/gcc.target/mips/branch-13.c b/gcc/testsuite/gcc.target/mips/branch-13.c index 9bd94146a6f4..8a6fb049f244 100644 --- a/gcc/testsuite/gcc.target/mips/branch-13.c +++ b/gcc/testsuite/gcc.target/mips/branch-13.c @@ -9,9 +9,9 @@ #include "branch-helper.h" NOMIPS16 void -foo (void (*bar) (void), volatile int *x) +foo (int (*bar) (void), int *x) { - bar (); + *x = bar (); if (__builtin_expect (*x == 0, 1)) OCCUPY_0x1fffc; } diff --git a/gcc/testsuite/gcc.target/mips/branch-8.c b/gcc/testsuite/gcc.target/mips/branch-8.c index 4595feafa619..ba5f954378c8 100644 --- a/gcc/testsuite/gcc.target/mips/branch-8.c +++ b/gcc/testsuite/gcc.target/mips/branch-8.c @@ -5,9 +5,9 @@ #include "branch-helper.h" NOMIPS16 void -foo (void (*bar) (void), volatile int *x) +foo (int (*bar) (void), int *x) { - bar (); + *x = bar (); if (__builtin_expect (*x == 0, 1)) OCCUPY_0x1fff8; } diff --git a/gcc/testsuite/gcc.target/mips/branch-9.c b/gcc/testsuite/gcc.target/mips/branch-9.c index 417507cc48e4..cad1c003c3ef 100644 --- a/gcc/testsuite/gcc.target/mips/branch-9.c +++ b/gcc/testsuite/gcc.target/mips/branch-9.c @@ -1,18 +1,18 @@ /* { dg-options "-mshared -mabi=32" } */ /* { dg-final { scan-assembler "\t\\.cpload\t\\\$25\n" } } */ /* { dg-final { scan-assembler "\t\\.cprestore\t16\n" } } */ -/* { dg-final { scan-assembler "\tlw\t\\\$1,16\\(\\\$fp\\)\n" } } */ +/* { dg-final { scan-assembler "\tlw\t\\\$1,16\\(\\\$(fp|sp)\\)\n" } } */ /* { dg-final { scan-assembler "\tlw\t\\\$1,%got\\(\[^)\]*\\)\\(\\\$1\\)\n" } } */ /* { dg-final { scan-assembler "\taddiu\t\\\$1,\\\$1,%lo\\(\[^)\]*\\)\n" } } */ /* { dg-final { scan-assembler "\tjr\t\\\$1\n" } } */ -/* { dg-final { scan-assembler-not "\tlw\t\\\$28,16\\(\\\$sp\\)\n" } } */ +/* { dg-final { scan-assembler-not "\\\$28" } } */ #include "branch-helper.h" NOMIPS16 void -foo (void (*bar) (void), volatile int *x) +foo (int (*bar) (void), int *x) { - bar (); + *x = bar (); if (__builtin_expect (*x == 0, 1)) OCCUPY_0x1fffc; } diff --git a/gcc/testsuite/gcc.target/mips/branch-cost-1.c b/gcc/testsuite/gcc.target/mips/branch-cost-1.c index d825e06176e3..f72f2acfb3a5 100644 --- a/gcc/testsuite/gcc.target/mips/branch-cost-1.c +++ b/gcc/testsuite/gcc.target/mips/branch-cost-1.c @@ -1,4 +1,5 @@ -/* { dg-options "-mbranch-cost=1 isa>=4 -O2" } */ +/* { dg-options "-mbranch-cost=1 isa>=4" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 int foo (int x, int y, int z, int k) { diff --git a/gcc/testsuite/gcc.target/mips/branch-cost-2.c b/gcc/testsuite/gcc.target/mips/branch-cost-2.c index 23f528ad63fd..3b2c4a13e5e2 100644 --- a/gcc/testsuite/gcc.target/mips/branch-cost-2.c +++ b/gcc/testsuite/gcc.target/mips/branch-cost-2.c @@ -1,4 +1,5 @@ -/* { dg-options "-mbranch-cost=10 isa>=4 -O2" } */ +/* { dg-options "-mbranch-cost=10 isa>=4" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 int foo (int x, int y, int z, int k) { diff --git a/gcc/testsuite/gcc.target/mips/cache-1.c b/gcc/testsuite/gcc.target/mips/cache-1.c index da897066d496..f5c3dd307d8b 100644 --- a/gcc/testsuite/gcc.target/mips/cache-1.c +++ b/gcc/testsuite/gcc.target/mips/cache-1.c @@ -1,4 +1,5 @@ -/* { dg-options "-O2 isa>=3" } */ +/* { dg-options "isa>=3" } */ +/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 void f1 (int *area) diff --git a/gcc/testsuite/gcc.target/mips/call-1.c b/gcc/testsuite/gcc.target/mips/call-1.c index 7dceefaa3d23..a9c97c329e40 100644 --- a/gcc/testsuite/gcc.target/mips/call-1.c +++ b/gcc/testsuite/gcc.target/mips/call-1.c @@ -1,4 +1,5 @@ -/* { dg-options "-O2 -mrelax-pic-calls -mshared" } */ +/* { dg-options "-mrelax-pic-calls -mshared -foptimize-sibling-calls" } */ +/* { dg-skip-if "requires -foptimize-sibling-calls" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,normal\n1:\tjalr\t" } } */ /* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,normal2\n1:\tjalr\t" } } */ /* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,staticfunc\n1:\tjalr\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/call-2.c b/gcc/testsuite/gcc.target/mips/call-2.c index 8e7499190316..7fabb1fd9705 100644 --- a/gcc/testsuite/gcc.target/mips/call-2.c +++ b/gcc/testsuite/gcc.target/mips/call-2.c @@ -1,14 +1,8 @@ /* See through some simple data-flow. */ -/* { dg-options "-O2 -mrelax-pic-calls" } */ -/* { dg-final { scan-assembler-times "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalr\t" 3 } } */ +/* { dg-options "-mrelax-pic-calls" } */ +/* { dg-final { scan-assembler-times "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalr\t" 2 } } */ -NOMIPS16 f (int i) -{ - while (i--) - g (); -} - -NOMIPS16 ff () +NOMIPS16 f () { g (); g (); diff --git a/gcc/testsuite/gcc.target/mips/call-3.c b/gcc/testsuite/gcc.target/mips/call-3.c index 25f01d2a9010..2c564886b1d3 100644 --- a/gcc/testsuite/gcc.target/mips/call-3.c +++ b/gcc/testsuite/gcc.target/mips/call-3.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mrelax-pic-calls -mno-shared" } */ +/* { dg-options "-mrelax-pic-calls -mno-shared" } */ /* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalr\t" } } */ /* { dg-require-visibility "" } */ diff --git a/gcc/testsuite/gcc.target/mips/call-4.c b/gcc/testsuite/gcc.target/mips/call-4.c new file mode 100644 index 000000000000..049e33882fa9 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/call-4.c @@ -0,0 +1,9 @@ +/* See through some simple data-flow. */ +/* { dg-options "-mrelax-pic-calls" } */ +/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalr\t" } } */ + +NOMIPS16 f (int i) +{ + while (i--) + g (); +} diff --git a/gcc/testsuite/gcc.target/mips/call-saved-2.c b/gcc/testsuite/gcc.target/mips/call-saved-2.c index 9ac7a2735adf..b55c30ab0628 100644 --- a/gcc/testsuite/gcc.target/mips/call-saved-2.c +++ b/gcc/testsuite/gcc.target/mips/call-saved-2.c @@ -1,5 +1,6 @@ /* Check that we save non-MIPS16 GPRs if they are explicitly clobbered. */ -/* { dg-options "(-mips16) isa_rev=0 -O2" } */ +/* { dg-options "(-mips16) isa_rev=0" } */ +/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */ MIPS16 void foo (void) diff --git a/gcc/testsuite/gcc.target/mips/call-saved-3.c b/gcc/testsuite/gcc.target/mips/call-saved-3.c index e178eb0f061a..84cdb3b88989 100644 --- a/gcc/testsuite/gcc.target/mips/call-saved-3.c +++ b/gcc/testsuite/gcc.target/mips/call-saved-3.c @@ -1,6 +1,6 @@ /* Check that we save all call-saved GPRs in a MIPS16 __builtin_setjmp function. */ -/* { dg-options "(-mips16) isa_rev=0 -O2" } */ +/* { dg-options "(-mips16) isa_rev=0" } */ void bar (void); extern int buf[]; diff --git a/gcc/testsuite/gcc.target/mips/clear-cache-1.c b/gcc/testsuite/gcc.target/mips/clear-cache-1.c index 2925d98dd071..302aec3f1f53 100644 --- a/gcc/testsuite/gcc.target/mips/clear-cache-1.c +++ b/gcc/testsuite/gcc.target/mips/clear-cache-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -msynci isa_rev>=2" } */ +/* { dg-options "-msynci isa_rev>=2" } */ /* { dg-final { scan-assembler "synci" } } */ /* { dg-final { scan-assembler "jr.hb" } } */ /* { dg-final { scan-assembler-not "_flush_cache|mips_sync_icache|_cacheflush" } } */ diff --git a/gcc/testsuite/gcc.target/mips/clear-cache-2.c b/gcc/testsuite/gcc.target/mips/clear-cache-2.c index be2e2218bbe2..f1f7f819099e 100644 --- a/gcc/testsuite/gcc.target/mips/clear-cache-2.c +++ b/gcc/testsuite/gcc.target/mips/clear-cache-2.c @@ -1,7 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mips32" } */ -/* { dg-final { scan-assembler-not "synci" } } */ -/* { dg-final { scan-assembler-not "jr.hb" } } */ +/* { dg-options "-mips32" } */ +/* { dg-final { scan-assembler-not "\tsynci" } } */ +/* { dg-final { scan-assembler-not "\tjr.hb" } } */ /* { dg-final { scan-assembler "_flush_cache|mips_sync_icache|_cacheflush" } } */ void f() diff --git a/gcc/testsuite/gcc.target/mips/code-readable-1.c b/gcc/testsuite/gcc.target/mips/code-readable-1.c index c35d60c8b1e7..34c2c0a770a6 100644 --- a/gcc/testsuite/gcc.target/mips/code-readable-1.c +++ b/gcc/testsuite/gcc.target/mips/code-readable-1.c @@ -1,17 +1,26 @@ -/* { dg-options "(-mips16) -mcode-readable=yes -mgp32 addressing=absolute -O" } */ +/* { dg-options "(-mips16) -mcode-readable=yes -mgp32 addressing=absolute" } */ +/* { dg-skip-if ".half requires -O" { *-*-* } { "-O0" } { "" } } */ + +volatile int x1; +volatile int x2; +volatile int x3; +volatile int x4; +volatile int x5; +volatile int x6; +volatile int x7; MIPS16 int -foo (int i) +foo (int i, volatile *x) { switch (i) { - case 1: return 40; - case 2: return 11; - case 3: return 29; - case 4: return 10; - case 5: return 12; - case 6: return 35; - case 7: return 23; + case 1: return x1 + x[0]; + case 2: return x2 + x[1]; + case 3: return x3 + x[2]; + case 4: return x4 + x[3]; + case 5: return x5 + x[4]; + case 6: return x6 + x[5]; + case 7: return x7 + x[6]; default: return 0; } } diff --git a/gcc/testsuite/gcc.target/mips/code-readable-2.c b/gcc/testsuite/gcc.target/mips/code-readable-2.c index e0176c3dbd54..71aeb132c0c7 100644 --- a/gcc/testsuite/gcc.target/mips/code-readable-2.c +++ b/gcc/testsuite/gcc.target/mips/code-readable-2.c @@ -1,17 +1,25 @@ /* { dg-options "(-mips16) -mcode-readable=pcrel -mgp32 addressing=absolute" } */ +volatile int x1; +volatile int x2; +volatile int x3; +volatile int x4; +volatile int x5; +volatile int x6; +volatile int x7; + MIPS16 int -foo (int i) +foo (int i, volatile *x) { switch (i) { - case 1: return 40; - case 2: return 11; - case 3: return 29; - case 4: return 10; - case 5: return 12; - case 6: return 35; - case 7: return 23; + case 1: return x1 + x[0]; + case 2: return x2 + x[1]; + case 3: return x3 + x[2]; + case 4: return x4 + x[3]; + case 5: return x5 + x[4]; + case 6: return x6 + x[5]; + case 7: return x7 + x[6]; default: return 0; } } diff --git a/gcc/testsuite/gcc.target/mips/code-readable-3.c b/gcc/testsuite/gcc.target/mips/code-readable-3.c index 075ca8d17492..fc7850551967 100644 --- a/gcc/testsuite/gcc.target/mips/code-readable-3.c +++ b/gcc/testsuite/gcc.target/mips/code-readable-3.c @@ -1,17 +1,25 @@ /* { dg-options "(-mips16) -mcode-readable=no -mgp32 addressing=absolute" } */ +volatile int x1; +volatile int x2; +volatile int x3; +volatile int x4; +volatile int x5; +volatile int x6; +volatile int x7; + MIPS16 int -foo (int i) +foo (int i, volatile *x) { switch (i) { - case 1: return 40; - case 2: return 11; - case 3: return 29; - case 4: return 10; - case 5: return 12; - case 6: return 35; - case 7: return 23; + case 1: return x1 + x[0]; + case 2: return x2 + x[1]; + case 3: return x3 + x[2]; + case 4: return x4 + x[3]; + case 5: return x5 + x[4]; + case 6: return x6 + x[5]; + case 7: return x7 + x[6]; default: return 0; } } diff --git a/gcc/testsuite/gcc.target/mips/code-readable-4.c b/gcc/testsuite/gcc.target/mips/code-readable-4.c index d29216f6de15..ae8ff8a1a667 100644 --- a/gcc/testsuite/gcc.target/mips/code-readable-4.c +++ b/gcc/testsuite/gcc.target/mips/code-readable-4.c @@ -1,17 +1,26 @@ -/* { dg-options "(-mips16) -mcode-readable=yes -mabi=eabi -mgp64 -O" } */ +/* { dg-options "(-mips16) -mcode-readable=yes -mabi=eabi -mgp64" } */ +/* { dg-skip-if ".half requires -O" { *-*-* } { "-O0" } { "" } } */ + +volatile int x1; +volatile int x2; +volatile int x3; +volatile int x4; +volatile int x5; +volatile int x6; +volatile int x7; MIPS16 int -foo (int i) +foo (int i, volatile *x) { switch (i) { - case 1: return 40; - case 2: return 11; - case 3: return 29; - case 4: return 10; - case 5: return 12; - case 6: return 35; - case 7: return 23; + case 1: return x1 + x[0]; + case 2: return x2 + x[1]; + case 3: return x3 + x[2]; + case 4: return x4 + x[3]; + case 5: return x5 + x[4]; + case 6: return x6 + x[5]; + case 7: return x7 + x[6]; default: return 0; } } diff --git a/gcc/testsuite/gcc.target/mips/const-anchor-1.c b/gcc/testsuite/gcc.target/mips/const-anchor-1.c index 66981671d02e..2f493d09c421 100644 --- a/gcc/testsuite/gcc.target/mips/const-anchor-1.c +++ b/gcc/testsuite/gcc.target/mips/const-anchor-1.c @@ -1,6 +1,6 @@ /* Derive a constant (0x1233ffff) from an intermediate value (0x1234000) used to build another constant. */ -/* { dg-options "-O" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "0x12330000|305332224" } } */ /* { dg-final { scan-assembler "addiu\t\\\$5,\\\$\[0-9\]*,-1" } } */ diff --git a/gcc/testsuite/gcc.target/mips/const-anchor-2.c b/gcc/testsuite/gcc.target/mips/const-anchor-2.c index ccb89bb766c8..8666edf303ef 100644 --- a/gcc/testsuite/gcc.target/mips/const-anchor-2.c +++ b/gcc/testsuite/gcc.target/mips/const-anchor-2.c @@ -1,5 +1,5 @@ /* Derive a constant (0x30001) from another constant. */ -/* { dg-options "-O" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "0x300000|196608" } } */ /* { dg-final { scan-assembler "addiu\t\\\$5,\\\$\[0-9\]*,32763" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-1.c b/gcc/testsuite/gcc.target/mips/div-1.c index e1976c25e0da..08234a6e1b1c 100644 --- a/gcc/testsuite/gcc.target/mips/div-1.c +++ b/gcc/testsuite/gcc.target/mips/div-1.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tddiv\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-10.c b/gcc/testsuite/gcc.target/mips/div-10.c index 23075da2c3de..fb8953def4d2 100644 --- a/gcc/testsuite/gcc.target/mips/div-10.c +++ b/gcc/testsuite/gcc.target/mips/div-10.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tdivu\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-11.c b/gcc/testsuite/gcc.target/mips/div-11.c index 68f1658484b4..ff129292a34e 100644 --- a/gcc/testsuite/gcc.target/mips/div-11.c +++ b/gcc/testsuite/gcc.target/mips/div-11.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tdiv\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-12.c b/gcc/testsuite/gcc.target/mips/div-12.c index c2384b20a9d1..57866ceb021b 100644 --- a/gcc/testsuite/gcc.target/mips/div-12.c +++ b/gcc/testsuite/gcc.target/mips/div-12.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tdivu\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-2.c b/gcc/testsuite/gcc.target/mips/div-2.c index af6e2fa8e1aa..257ca923d056 100644 --- a/gcc/testsuite/gcc.target/mips/div-2.c +++ b/gcc/testsuite/gcc.target/mips/div-2.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tddivu\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-3.c b/gcc/testsuite/gcc.target/mips/div-3.c index 684b6a8e441c..b9ae3684ef46 100644 --- a/gcc/testsuite/gcc.target/mips/div-3.c +++ b/gcc/testsuite/gcc.target/mips/div-3.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tddiv\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-4.c b/gcc/testsuite/gcc.target/mips/div-4.c index 251b88f8164c..5f05d8e78eef 100644 --- a/gcc/testsuite/gcc.target/mips/div-4.c +++ b/gcc/testsuite/gcc.target/mips/div-4.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tddivu\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-5.c b/gcc/testsuite/gcc.target/mips/div-5.c index a08f3e6f4bd8..294cc7f24ac7 100644 --- a/gcc/testsuite/gcc.target/mips/div-5.c +++ b/gcc/testsuite/gcc.target/mips/div-5.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tdiv\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-6.c b/gcc/testsuite/gcc.target/mips/div-6.c index 23075da2c3de..fb8953def4d2 100644 --- a/gcc/testsuite/gcc.target/mips/div-6.c +++ b/gcc/testsuite/gcc.target/mips/div-6.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tdivu\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-7.c b/gcc/testsuite/gcc.target/mips/div-7.c index 68f1658484b4..ff129292a34e 100644 --- a/gcc/testsuite/gcc.target/mips/div-7.c +++ b/gcc/testsuite/gcc.target/mips/div-7.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tdiv\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-8.c b/gcc/testsuite/gcc.target/mips/div-8.c index c2384b20a9d1..57866ceb021b 100644 --- a/gcc/testsuite/gcc.target/mips/div-8.c +++ b/gcc/testsuite/gcc.target/mips/div-8.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tdivu\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/div-9.c b/gcc/testsuite/gcc.target/mips/div-9.c index a08f3e6f4bd8..294cc7f24ac7 100644 --- a/gcc/testsuite/gcc.target/mips/div-9.c +++ b/gcc/testsuite/gcc.target/mips/div-9.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ /* { dg-final { scan-assembler "\tdiv\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c b/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c index 87d1da98cb52..a48f561f3209 100644 --- a/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c +++ b/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c @@ -1,5 +1,7 @@ /* { dg-do compile { target { fixed_point } } } */ -/* { dg-options "-O2 -mgp32 -mdsp" } */ +/* This test requires widening_mul */ +/* { dg-options "-mgp32 -mdsp -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tdpaq_sa.l.w\t\\\$ac" 3 } } */ NOMIPS16 _Sat long long _Fract diff --git a/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c b/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c index 9aeb5667acff..fb63a1db80a2 100644 --- a/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c +++ b/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c @@ -1,5 +1,7 @@ /* { dg-do compile { target { fixed_point } } } */ -/* { dg-options "-O2 -mgp32 -mdsp" } */ +/* This test requires widening_mul */ +/* { dg-options "-mgp32 -mdsp -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tdpsq_sa.l.w\t\\\$ac" 2 } } */ NOMIPS16 _Sat long long _Fract diff --git a/gcc/testsuite/gcc.target/mips/dse-1.c b/gcc/testsuite/gcc.target/mips/dse-1.c index 6ef55cde25e5..e53189cadd82 100644 --- a/gcc/testsuite/gcc.target/mips/dse-1.c +++ b/gcc/testsuite/gcc.target/mips/dse-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-mgp64 -O" } */ +/* { dg-options "-mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ #define TEST(ID, TYPE1, TYPE2) \ union u##ID { \ diff --git a/gcc/testsuite/gcc.target/mips/dsp-ctrl.c b/gcc/testsuite/gcc.target/mips/dsp-ctrl.c index bb89e84f239e..4bf449b86ca4 100644 --- a/gcc/testsuite/gcc.target/mips/dsp-ctrl.c +++ b/gcc/testsuite/gcc.target/mips/dsp-ctrl.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mdsp -mgp32" } */ +/* { dg-options "-mdsp -mgp32" } */ extern void abort (void); extern void exit (int); diff --git a/gcc/testsuite/gcc.target/mips/dsp-lhx.c b/gcc/testsuite/gcc.target/mips/dsp-lhx.c index 416356f2a030..8fa20a090905 100644 --- a/gcc/testsuite/gcc.target/mips/dsp-lhx.c +++ b/gcc/testsuite/gcc.target/mips/dsp-lhx.c @@ -1,6 +1,7 @@ /* Test MIPS32 DSP LHX instruction */ /* { dg-do compile } */ -/* { dg-options "-mgp32 -mdsp -O2" } */ +/* { dg-options "-mgp32 -mdsp" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tlhx\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/dsp-no-lhx.c b/gcc/testsuite/gcc.target/mips/dsp-no-lhx.c index a37c42f1a900..42c4688cd0f7 100644 --- a/gcc/testsuite/gcc.target/mips/dsp-no-lhx.c +++ b/gcc/testsuite/gcc.target/mips/dsp-no-lhx.c @@ -1,6 +1,6 @@ /* Test MIPS32 DSP LHX instruction */ /* { dg-do compile } */ -/* { dg-options "-mgp32 -mdsp -O2" } */ +/* { dg-options "-mgp32 -mdsp" } */ /* { dg-final { scan-assembler-not "\tlhx\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/dspr2-MULT.c b/gcc/testsuite/gcc.target/mips/dspr2-MULT.c index c685974895d3..7c611a3266bb 100644 --- a/gcc/testsuite/gcc.target/mips/dspr2-MULT.c +++ b/gcc/testsuite/gcc.target/mips/dspr2-MULT.c @@ -1,7 +1,9 @@ /* Test MIPS32 DSP REV 2 MULT instruction. Tune for a CPU that has pipelined mult. */ /* { dg-do compile } */ -/* { dg-options "-mgp32 -mdspr2 -O2 -mtune=74kc" } */ +/* This test requires widening_mul */ +/* { dg-options "-mgp32 -mdspr2 -mtune=74kc -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* See PR target/51729 for the reason behind the XFAILs. */ /* { dg-final { scan-assembler "\tmult\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c b/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c index 7f04315efe53..a567972447b6 100644 --- a/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c +++ b/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c @@ -1,7 +1,8 @@ /* Test MIPS32 DSP REV 2 MULTU instruction. Tune for a CPU that has pipelined multu. */ /* { dg-do compile } */ -/* { dg-options "-mgp32 -mdspr2 -O2 -mtune=74kc" } */ +/* { dg-options "-mgp32 -mdspr2 -mtune=74kc" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* See PR target/51729 for the reason behind the XFAILs. */ /* { dg-final { scan-assembler "\tmultu\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/ext-1.c b/gcc/testsuite/gcc.target/mips/ext-1.c index 426cbb28573d..3306c70941d8 100644 --- a/gcc/testsuite/gcc.target/mips/ext-1.c +++ b/gcc/testsuite/gcc.target/mips/ext-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O isa_rev>=2 -mgp64" } */ +/* { dg-options "isa_rev>=2 -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdext\t" } } */ /* { dg-final { scan-assembler-not "and" } } */ diff --git a/gcc/testsuite/gcc.target/mips/ext-2.c b/gcc/testsuite/gcc.target/mips/ext-2.c index d6ccce29e044..6b3d4efc4158 100644 --- a/gcc/testsuite/gcc.target/mips/ext-2.c +++ b/gcc/testsuite/gcc.target/mips/ext-2.c @@ -2,7 +2,8 @@ zero_extract. The truncate is due to TARGET_PROMOTE_PROTOTYPES, the zero_extend to PROMOTE_MODE. */ /* { dg-do compile } */ -/* { dg-options "-O isa_rev>=2 -mgp64" } */ +/* { dg-options "isa_rev>=2 -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdext\t" } } */ /* { dg-final { scan-assembler-not "and" } } */ /* { dg-final { scan-assembler-not "srl" } } */ diff --git a/gcc/testsuite/gcc.target/mips/ext-3.c b/gcc/testsuite/gcc.target/mips/ext-3.c index acdbbc9a4139..e921c8b1df04 100644 --- a/gcc/testsuite/gcc.target/mips/ext-3.c +++ b/gcc/testsuite/gcc.target/mips/ext-3.c @@ -1,6 +1,7 @@ /* For MIPS64r2 use DEXT rather than DSLL/DSRL to zero-extend. */ /* { dg-do compile } */ -/* { dg-options "-O isa_rev>=2 -mgp64" } */ +/* { dg-options "isa_rev>=2 -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdext\t" } } */ /* { dg-final { scan-assembler-not "sll" } } */ diff --git a/gcc/testsuite/gcc.target/mips/ext-4.c b/gcc/testsuite/gcc.target/mips/ext-4.c index f3d2ad92aa35..38362e5d77a6 100644 --- a/gcc/testsuite/gcc.target/mips/ext-4.c +++ b/gcc/testsuite/gcc.target/mips/ext-4.c @@ -1,6 +1,7 @@ /* For MIPS64r2 use DEXT rather than DSLL/DSRL for clear_upper32. */ /* { dg-do compile } */ -/* { dg-options "-O isa_rev>=2 -mgp64" } */ +/* { dg-options "isa_rev>=2 -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdext\t" } } */ /* { dg-final { scan-assembler-not "sll" } } */ diff --git a/gcc/testsuite/gcc.target/mips/ext-5.c b/gcc/testsuite/gcc.target/mips/ext-5.c index 64186383cb2c..8bab2148f49c 100644 --- a/gcc/testsuite/gcc.target/mips/ext-5.c +++ b/gcc/testsuite/gcc.target/mips/ext-5.c @@ -1,6 +1,7 @@ /* For MIPS32r2 use EXT when ANDing with low-order bitmasks. */ /* { dg-do compile } */ -/* { dg-options "-O isa_rev>=2" } */ +/* { dg-options "isa_rev>=2" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\text\t" } } */ /* { dg-final { scan-assembler-not "\tandi?\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/ext-6.c b/gcc/testsuite/gcc.target/mips/ext-6.c index b4a7dd2515ce..e12cbe6e1c48 100644 --- a/gcc/testsuite/gcc.target/mips/ext-6.c +++ b/gcc/testsuite/gcc.target/mips/ext-6.c @@ -1,6 +1,7 @@ /* For MIPS64r2 use DEXT when ANDing with low-order bitmasks. */ /* { dg-do compile } */ -/* { dg-options "-O isa_rev>=2 -mgp64" } */ +/* { dg-options "isa_rev>=2 -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdext\t" } } */ /* { dg-final { scan-assembler-not "\tandi?\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/ext-7.c b/gcc/testsuite/gcc.target/mips/ext-7.c index 394d41f06c88..2e23dd6525fd 100644 --- a/gcc/testsuite/gcc.target/mips/ext-7.c +++ b/gcc/testsuite/gcc.target/mips/ext-7.c @@ -1,6 +1,7 @@ /* No need to use ext if we can use andi. */ /* { dg-do compile } */ -/* { dg-options "-O isa_rev>=2" } */ +/* { dg-options "isa_rev>=2" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tandi\t" } } */ /* { dg-final { scan-assembler-not "\td?ext\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/ext-8.c b/gcc/testsuite/gcc.target/mips/ext-8.c index 90241dd2f19d..9ceee7b9f760 100644 --- a/gcc/testsuite/gcc.target/mips/ext-8.c +++ b/gcc/testsuite/gcc.target/mips/ext-8.c @@ -1,6 +1,6 @@ /* Also make sure we don't use ext for MIPS*r1. */ /* { dg-do compile } */ -/* { dg-options "-O isa_rev<=1" } */ +/* { dg-options "isa_rev<=1" } */ /* { dg-final { scan-assembler "\tand\t" } } */ /* { dg-final { scan-assembler-not "\td?ext\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/extend-1.c b/gcc/testsuite/gcc.target/mips/extend-1.c index 94d199f887be..9240ea55886e 100644 --- a/gcc/testsuite/gcc.target/mips/extend-1.c +++ b/gcc/testsuite/gcc.target/mips/extend-1.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp64 forbid_cpu=octeon.*" } */ +/* { dg-options "-mgp64 forbid_cpu=octeon.*" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tdsll\t" 5 } } */ /* { dg-final { scan-assembler-times "\tdsra\t" 5 } } */ /* { dg-final { scan-assembler-not "\tsll\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/extend-2.c b/gcc/testsuite/gcc.target/mips/extend-2.c index b91ae209c0cc..a2036a899ee1 100644 --- a/gcc/testsuite/gcc.target/mips/extend-2.c +++ b/gcc/testsuite/gcc.target/mips/extend-2.c @@ -1,6 +1,6 @@ /* Check the shift_shift alternative of the AND patterns. */ /* { dg-do compile } */ -/* { dg-options "-O isa_rev<=1 -mgp64" } */ +/* { dg-options "isa_rev<=1 -mgp64" } */ /* { dg-final { scan-assembler "\tdsrl\t" } } */ /* { dg-final { scan-assembler "\tdsll\t" } } */ /* { dg-final { scan-assembler-not "\td?ext\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-1.c b/gcc/testsuite/gcc.target/mips/fix-r10000-1.c index 76f3b86ec5d9..edf4d70c63e6 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-1.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-10.c b/gcc/testsuite/gcc.target/mips/fix-r10000-10.c index 6ac908a71bb3..ab353b6b1e44 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-10.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-10.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-11.c b/gcc/testsuite/gcc.target/mips/fix-r10000-11.c index e1677b6577a3..30f6038b71f9 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-11.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-11.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-12.c b/gcc/testsuite/gcc.target/mips/fix-r10000-12.c index f767ae202891..855000df2bff 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-12.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-12.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ /* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-13.c b/gcc/testsuite/gcc.target/mips/fix-r10000-13.c index b0779e0ec34d..aa2d236f6794 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-13.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-13.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-14.c b/gcc/testsuite/gcc.target/mips/fix-r10000-14.c index 4a690f59ed15..542e02f9cb05 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-14.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-14.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-15.c b/gcc/testsuite/gcc.target/mips/fix-r10000-15.c index bb5fd743af79..f44a725ec633 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-15.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-15.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-2.c b/gcc/testsuite/gcc.target/mips/fix-r10000-2.c index bac01913405d..88a591841971 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-2.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-2.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-3.c b/gcc/testsuite/gcc.target/mips/fix-r10000-3.c index bec7951c1d4f..fbeeca10f5e3 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-3.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-3.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-4.c b/gcc/testsuite/gcc.target/mips/fix-r10000-4.c index 864ab8c1ee4c..344c6277b5bd 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-4.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-4.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-5.c b/gcc/testsuite/gcc.target/mips/fix-r10000-5.c index 62fd70f5f09e..a775a6c0e627 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-5.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-5.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-6.c b/gcc/testsuite/gcc.target/mips/fix-r10000-6.c index d8bdb4516dec..62f8fdfb4bd9 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-6.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-6.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ /* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-7.c b/gcc/testsuite/gcc.target/mips/fix-r10000-7.c index d4b558e0115f..635326c5c547 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-7.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-7.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-8.c b/gcc/testsuite/gcc.target/mips/fix-r10000-8.c index d48ed263c826..68978494d6ed 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-8.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-8.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-9.c b/gcc/testsuite/gcc.target/mips/fix-r10000-9.c index 88afad339c9b..3d140b1bc8a9 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r10000-9.c +++ b/gcc/testsuite/gcc.target/mips/fix-r10000-9.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mfix-r10000" } */ +/* { dg-options "-mfix-r10000" } */ /* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */ NOMIPS16 int diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-1.c b/gcc/testsuite/gcc.target/mips/fix-r4000-1.c index 551d3549d846..5c812f256004 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-1.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-1.c @@ -1,4 +1,5 @@ -/* { dg-options "-march=r4000 -mfix-r4000 -O2 -dp" } */ +/* { dg-options "-march=r4000 -mfix-r4000 -dp" } */ +/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */ typedef int int32_t; typedef int uint32_t; NOMIPS16 int32_t foo (int32_t x, int32_t y) { return x * y; } diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-10.c b/gcc/testsuite/gcc.target/mips/fix-r4000-10.c index 8c938b7d2194..7227bc8c0926 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-10.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-10.c @@ -1,7 +1,8 @@ /* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication result to $2, which prevents the register allocators from storing the multiplication result in $2. */ -/* { dg-options "-mips3 -mfix-r4000 -mgp64 -O2 -fno-split-wide-types -dp -EL" } */ +/* { dg-options "-mips3 -mfix-r4000 -mgp64 -EL -fno-split-wide-types -dp" } */ +/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */ typedef unsigned long long uint64_t; typedef unsigned int uint128_t __attribute__((mode(TI))); NOMIPS16 uint128_t foo (uint64_t x, uint64_t y) { return (uint128_t) x * y; } diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-11.c b/gcc/testsuite/gcc.target/mips/fix-r4000-11.c index 7cfad3d2f79b..1ea7a7c408bf 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-11.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-11.c @@ -1,4 +1,6 @@ -/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */ +/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -dp" } */ +/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */ +/* { dg-skip-if "using DDIV gives a shorter sequence" { *-*-* } { "-Os" } { "" } } */ typedef long long int64_t; NOMIPS16 int64_t foo (int64_t x) { return x / 11993; } /* { dg-final { scan-assembler "[concat {\tdmult\t\$4,\$[0-9]+[^\n]+smuldi3_highpart[^\n]+\n\tmfhi\t\$[0-9]+\n}]" } } */ diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-12.c b/gcc/testsuite/gcc.target/mips/fix-r4000-12.c index d449283ddf32..a2afabbc73bf 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-12.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-12.c @@ -1,4 +1,6 @@ -/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */ +/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -dp" } */ +/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */ +/* { dg-skip-if "using DDIVU gives a shorter sequence" { *-*-* } { "-Os" } { "" } } */ typedef unsigned long long uint64_t; NOMIPS16 uint64_t foo (uint64_t x) { return x / 11993; } /* { dg-final { scan-assembler "[concat {\tdmultu\t\$4,\$[0-9]+[^\n]+umuldi3_highpart[^\n]+\n\tmfhi\t\$[0-9]+\n}]" } } */ diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-2.c b/gcc/testsuite/gcc.target/mips/fix-r4000-2.c index 6cb7d3594e09..0261b16b1c88 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-2.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-2.c @@ -1,4 +1,6 @@ -/* { dg-options "-mips1 -mfix-r4000 -O2 -dp -EB" } */ +/* This test requires widening_mul */ +/* { dg-options "-mips1 -mfix-r4000 -dp -EB -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ typedef int int32_t; typedef long long int64_t; NOMIPS16 int32_t foo (int32_t x, int32_t y) { return ((int64_t) x * y) >> 32; } diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-3.c b/gcc/testsuite/gcc.target/mips/fix-r4000-3.c index bd12509d1bd9..195a9d10ced2 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-3.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-3.c @@ -1,4 +1,5 @@ -/* { dg-options "-mips1 -mfix-r4000 -O2 -dp -EB" } */ +/* { dg-options "-mips1 -mfix-r4000 -dp -EB" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ typedef unsigned int uint32_t; typedef unsigned long long uint64_t; NOMIPS16 uint32_t foo (uint32_t x, uint32_t y) { return ((uint64_t) x * y) >> 32; } diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-4.c b/gcc/testsuite/gcc.target/mips/fix-r4000-4.c index 3854db8967dc..7a66182f5240 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-4.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-4.c @@ -1,7 +1,9 @@ /* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication result to $2, which prevents the register allocators from storing the multiplication result in $2. */ -/* { dg-options "-mips1 -mfix-r4000 -O2 -fno-split-wide-types -dp -EL" } */ +/* This test requires widening_mul */ +/* { dg-options "-mips1 -mfix-r4000 -fno-split-wide-types -dp -EL -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ typedef int int32_t; typedef long long int64_t; NOMIPS16 int64_t foo (int32_t x, int32_t y) { return (int64_t) x * y; } diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-5.c b/gcc/testsuite/gcc.target/mips/fix-r4000-5.c index c46300f62dbb..0c0630800680 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-5.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-5.c @@ -1,7 +1,8 @@ /* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication result to $2, which prevents the register allocators from storing the multiplication result in $2. */ -/* { dg-options "-mips1 -mfix-r4000 -O2 -fno-split-wide-types -dp -EL" } */ +/* { dg-options "-mips1 -mfix-r4000 -fno-split-wide-types -dp -EL" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ typedef unsigned int uint32_t; typedef unsigned long long uint64_t; NOMIPS16 uint64_t foo (uint32_t x, uint32_t y) { return (uint64_t) x * y; } diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-6.c b/gcc/testsuite/gcc.target/mips/fix-r4000-6.c index 1e33cc4f7656..9647a900cdd9 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-6.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-6.c @@ -1,4 +1,5 @@ -/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */ +/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -dp" } */ +/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */ typedef long long int64_t; typedef unsigned long long uint64_t; NOMIPS16 int64_t foo (int64_t x, int64_t y) { return x * y; } diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-7.c b/gcc/testsuite/gcc.target/mips/fix-r4000-7.c index 118ba99dfebe..ddba30383503 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-7.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-7.c @@ -1,4 +1,6 @@ -/* { dg-options "-march=r4000 -mfix-r4000 -O2 -mgp64 -dp -EB" } */ +/* This test requires widening_mul */ +/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -dp -EB -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ typedef long long int64_t; typedef int int128_t __attribute__((mode(TI))); NOMIPS16 int64_t foo (int64_t x, int64_t y) { return ((int128_t) x * y) >> 64; } diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-8.c b/gcc/testsuite/gcc.target/mips/fix-r4000-8.c index f2c71c1ef1a3..4ae670622ba3 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-8.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-8.c @@ -1,4 +1,5 @@ -/* { dg-options "-march=r4000 -mfix-r4000 -O2 -mgp64 -dp -EB" } */ +/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -dp -EB" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ typedef unsigned long long uint64_t; typedef unsigned int uint128_t __attribute__((mode(TI))); NOMIPS16 uint64_t foo (uint64_t x, uint64_t y) { return ((uint128_t) x * y) >> 64; } diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-9.c b/gcc/testsuite/gcc.target/mips/fix-r4000-9.c index da9c11364d2e..316715c5934a 100644 --- a/gcc/testsuite/gcc.target/mips/fix-r4000-9.c +++ b/gcc/testsuite/gcc.target/mips/fix-r4000-9.c @@ -1,7 +1,9 @@ /* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication result to $2, which prevents the register allocators from storing the multiplication result in $2. */ -/* { dg-options "-mips3 -mfix-r4000 -mgp64 -O2 -fno-split-wide-types -dp -EL" } */ +/* This test requires widening_mul */ +/* { dg-options "-mips3 -mfix-r4000 -mgp64 -fno-split-wide-types -dp -EL -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ typedef long long int64_t; typedef int int128_t __attribute__((mode(TI))); NOMIPS16 int128_t foo (int64_t x, int64_t y) { return (int128_t) x * y; } diff --git a/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c b/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c index b4734f4d5224..810c82c2f65c 100644 --- a/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c +++ b/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c @@ -1,6 +1,7 @@ /* Test scalar fixed-point instructions */ /* { dg-do compile { target { fixed_point } } } */ -/* { dg-options "-mdspr2 -O2" } */ +/* { dg-options "-mdspr2" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\taddu\t" 10 } } */ /* { dg-final { scan-assembler-times "\tsubu\t" 10 } } */ /* { dg-final { scan-assembler "\taddu_s.qb\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/fixed-vector-type.c b/gcc/testsuite/gcc.target/mips/fixed-vector-type.c index 9b67704794fa..ddd9660f1d4e 100644 --- a/gcc/testsuite/gcc.target/mips/fixed-vector-type.c +++ b/gcc/testsuite/gcc.target/mips/fixed-vector-type.c @@ -1,6 +1,7 @@ /* Test vector fixed-point instructions */ /* { dg-do compile { target { fixed_point } } } */ -/* { dg-options "-mdspr2 -O2" } */ +/* { dg-options "-mdspr2" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\taddq_s.ph\t" 2 } } */ /* { dg-final { scan-assembler-times "\tsubq_s.ph\t" 2 } } */ /* { dg-final { scan-assembler-times "\taddu_s.qb\t" 1 } } */ diff --git a/gcc/testsuite/gcc.target/mips/fpcmp-1.c b/gcc/testsuite/gcc.target/mips/fpcmp-1.c index cae48a0e93ad..2ddd3c3389e1 100644 --- a/gcc/testsuite/gcc.target/mips/fpcmp-1.c +++ b/gcc/testsuite/gcc.target/mips/fpcmp-1.c @@ -1,5 +1,5 @@ /* We used to use c.lt.fmt instead of c.ule.fmt here. */ -/* { dg-options "-mhard-float -O2" } */ +/* { dg-options "-mhard-float" } */ NOMIPS16 int f1 (float x, float y) { return __builtin_isless (x, y); } NOMIPS16 int f2 (double x, double y) { return __builtin_isless (x, y); } /* { dg-final { scan-assembler "c\\.ule\\.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/fpcmp-2.c b/gcc/testsuite/gcc.target/mips/fpcmp-2.c index 3e1c259f89a6..cf0cbbbb51af 100644 --- a/gcc/testsuite/gcc.target/mips/fpcmp-2.c +++ b/gcc/testsuite/gcc.target/mips/fpcmp-2.c @@ -1,5 +1,5 @@ /* We used to use c.le.fmt instead of c.ult.fmt here. */ -/* { dg-options "-mhard-float -O2" } */ +/* { dg-options "-mhard-float" } */ NOMIPS16 int f1 (float x, float y) { return __builtin_islessequal (x, y); } NOMIPS16 int f2 (double x, double y) { return __builtin_islessequal (x, y); } /* { dg-final { scan-assembler "c\\.ult\\.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-1.c b/gcc/testsuite/gcc.target/mips/fpr-moves-1.c index 92977e04e38d..51a5f172389e 100644 --- a/gcc/testsuite/gcc.target/mips/fpr-moves-1.c +++ b/gcc/testsuite/gcc.target/mips/fpr-moves-1.c @@ -1,4 +1,5 @@ -/* { dg-options "-mabi=32 -mhard-float -mips1 -O2 -EL" } */ +/* { dg-options "-mabi=32 -mhard-float -mips1 -EL" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 void foo (double d, double *x) diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-2.c b/gcc/testsuite/gcc.target/mips/fpr-moves-2.c index 3f4f833ba5ed..ffe614fcbb23 100644 --- a/gcc/testsuite/gcc.target/mips/fpr-moves-2.c +++ b/gcc/testsuite/gcc.target/mips/fpr-moves-2.c @@ -1,4 +1,5 @@ -/* { dg-options "-mabi=32 -mhard-float -mips1 -O2 -EB" } */ +/* { dg-options "-mabi=32 -mhard-float -mips1 -EB" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 void foo (double d, double *x) diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-3.c b/gcc/testsuite/gcc.target/mips/fpr-moves-3.c index 34784d01ce2e..80db0710c4ce 100644 --- a/gcc/testsuite/gcc.target/mips/fpr-moves-3.c +++ b/gcc/testsuite/gcc.target/mips/fpr-moves-3.c @@ -1,4 +1,5 @@ -/* { dg-options "-mabi=32 -mfp64 -O2 -EL" } */ +/* { dg-options "-mabi=32 -mfp64 -EL" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 double foo (double d) diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-4.c b/gcc/testsuite/gcc.target/mips/fpr-moves-4.c index 282cf761b374..d8f78586ce5d 100644 --- a/gcc/testsuite/gcc.target/mips/fpr-moves-4.c +++ b/gcc/testsuite/gcc.target/mips/fpr-moves-4.c @@ -1,4 +1,5 @@ -/* { dg-options "-mabi=32 -mfp64 -O2 -EB" } */ +/* { dg-options "-mabi=32 -mfp64 -EB" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 double foo (double d) diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-5.c b/gcc/testsuite/gcc.target/mips/fpr-moves-5.c index 8f685750f759..18d88804904d 100644 --- a/gcc/testsuite/gcc.target/mips/fpr-moves-5.c +++ b/gcc/testsuite/gcc.target/mips/fpr-moves-5.c @@ -1,4 +1,5 @@ -/* { dg-options "-mabi=64 -mhard-float -O2 -EL" } */ +/* { dg-options "-mabi=64 -mhard-float -EL" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-require-effective-target mips_newabi_large_long_double } */ NOMIPS16 void diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-6.c b/gcc/testsuite/gcc.target/mips/fpr-moves-6.c index f89a40a3bc17..30a83ec66f33 100644 --- a/gcc/testsuite/gcc.target/mips/fpr-moves-6.c +++ b/gcc/testsuite/gcc.target/mips/fpr-moves-6.c @@ -1,4 +1,5 @@ -/* { dg-options "-mabi=64 -mhard-float -O2 -EB" } */ +/* { dg-options "-mabi=64 -mhard-float -EB" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-require-effective-target mips_newabi_large_long_double } */ NOMIPS16 void diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-7.c b/gcc/testsuite/gcc.target/mips/fpr-moves-7.c index 3abd10417d77..56d7ccd637cd 100644 --- a/gcc/testsuite/gcc.target/mips/fpr-moves-7.c +++ b/gcc/testsuite/gcc.target/mips/fpr-moves-7.c @@ -1,4 +1,4 @@ -/* { dg-options "(-mips16) -mabi=64 -O2 -EL" } */ +/* { dg-options "(-mips16) -mabi=64 -EL" } */ extern long double g[16]; extern unsigned char gstuff[0x10000]; diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-8.c b/gcc/testsuite/gcc.target/mips/fpr-moves-8.c index 8b6901b7fc7d..bf64193b87eb 100644 --- a/gcc/testsuite/gcc.target/mips/fpr-moves-8.c +++ b/gcc/testsuite/gcc.target/mips/fpr-moves-8.c @@ -1,4 +1,4 @@ -/* { dg-options "(-mips16) -mabi=64 -O2 -EB" } */ +/* { dg-options "(-mips16) -mabi=64 -EB" } */ extern long double g[16]; extern unsigned char gstuff[0x10000]; diff --git a/gcc/testsuite/gcc.target/mips/ins-1.c b/gcc/testsuite/gcc.target/mips/ins-1.c index 9e19354d1a60..02bb8ae9e2c7 100644 --- a/gcc/testsuite/gcc.target/mips/ins-1.c +++ b/gcc/testsuite/gcc.target/mips/ins-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O isa_rev>=2 -mgp32" } */ +/* { dg-options "isa_rev>=2 -mgp32" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tins\t" } } */ struct diff --git a/gcc/testsuite/gcc.target/mips/ins-2.c b/gcc/testsuite/gcc.target/mips/ins-2.c index a71e6c053268..916bc4b5e2dd 100644 --- a/gcc/testsuite/gcc.target/mips/ins-2.c +++ b/gcc/testsuite/gcc.target/mips/ins-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -meb isa_rev>=2 -mgp64" } */ +/* { dg-options "-meb isa_rev>=2 -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tins\t|\tdins\t" 1 } } */ /* { dg-final { scan-assembler-times "\tsll\t|\tins\t" 1 } } */ diff --git a/gcc/testsuite/gcc.target/mips/int-moves-1.c b/gcc/testsuite/gcc.target/mips/int-moves-1.c index 485555c39ffe..77a554d21a5b 100644 --- a/gcc/testsuite/gcc.target/mips/int-moves-1.c +++ b/gcc/testsuite/gcc.target/mips/int-moves-1.c @@ -1,4 +1,4 @@ -/* { dg-options "(-mips16) -mgp64 -O2 -EL" } */ +/* { dg-options "(-mips16) -mgp64 -EL" } */ typedef unsigned uint128_t __attribute__((mode(TI))); diff --git a/gcc/testsuite/gcc.target/mips/int-moves-2.c b/gcc/testsuite/gcc.target/mips/int-moves-2.c index eba7983707b5..930c36f9f83e 100644 --- a/gcc/testsuite/gcc.target/mips/int-moves-2.c +++ b/gcc/testsuite/gcc.target/mips/int-moves-2.c @@ -1,4 +1,4 @@ -/* { dg-options "(-mips16) -mgp64 -O2 -EB" } */ +/* { dg-options "(-mips16) -mgp64 -EB" } */ typedef unsigned uint128_t __attribute__((mode(TI))); diff --git a/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c b/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c index 13b41e118859..9ab32bf5a0de 100644 --- a/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c +++ b/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c @@ -1,5 +1,6 @@ /* Make sure that we emit .cfa_restore notes for LO and HI. */ -/* { dg-options "-mips32r2 -msoft-float -O -g" } */ +/* { dg-options "-mips32r2 -msoft-float -g" } */ +/* { dg-skip-if "forbidding a frame pointer makes this a code quallity test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\t\\\.cfi_restore 64\n" } } */ /* { dg-final { scan-assembler "\t\\\.cfi_restore 65\n" } } */ /* { dg-final { scan-assembler-not "\\\.cfi_def_cfa( |\t)" } } */ diff --git a/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c b/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c index 2380123b16ee..298e04677792 100644 --- a/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c +++ b/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c @@ -1,5 +1,6 @@ /* Make sure that we emit .cfa_restore notes for LO, HI and GPRs. */ -/* { dg-options "-mips32r2 -msoft-float -O -g" } */ +/* { dg-options "-mips32r2 -msoft-float -g" } */ +/* { dg-skip-if "forbidding a frame pointer makes this a code quallity test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\t\\\.cfi_restore 1\n" } } */ /* { dg-final { scan-assembler "\t\\\.cfi_restore 2\n" } } */ /* { dg-final { scan-assembler "\t\\\.cfi_restore 3\n" } } */ diff --git a/gcc/testsuite/gcc.target/mips/lazy-binding-1.c b/gcc/testsuite/gcc.target/mips/lazy-binding-1.c index e281a270a6e2..4f8dde566f73 100644 --- a/gcc/testsuite/gcc.target/mips/lazy-binding-1.c +++ b/gcc/testsuite/gcc.target/mips/lazy-binding-1.c @@ -1,5 +1,8 @@ /* { dg-do compile } */ -/* { dg-options "-mshared -mexplicit-relocs -O2 -fno-delayed-branch" } */ +/* { dg-options "-mshared -mexplicit-relocs -fno-delayed-branch -fno-unroll-loops" } */ +/* We can load into something other than $25 when not optimizing, + then immediately move into $25. */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ void bar (void); diff --git a/gcc/testsuite/gcc.target/mips/long-calls-pg.c b/gcc/testsuite/gcc.target/mips/long-calls-pg.c index 5e554c497d86..5ccfe5149bdc 100644 --- a/gcc/testsuite/gcc.target/mips/long-calls-pg.c +++ b/gcc/testsuite/gcc.target/mips/long-calls-pg.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mabi=32 -pg -mno-abicalls -mlong-calls" } */ +/* { dg-options "-mabi=32 -pg -mno-abicalls -mlong-calls" } */ /* { dg-final { scan-assembler-not "\tjal\t_mcount" } } */ NOMIPS16 void foo (void) diff --git a/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c b/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c index fd7289ceaf71..2efc3ef3f32f 100644 --- a/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c +++ b/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 isa=loongson" } */ +/* { dg-options "isa=loongson" } */ typedef int st; typedef unsigned int ut; diff --git a/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c b/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c index 6f1f13875514..07523aa4a4e4 100644 --- a/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c +++ b/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 isa=loongson -mgp64" } */ +/* { dg-options "isa=loongson -mgp64" } */ typedef long long st; typedef unsigned long long ut; diff --git a/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c b/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c index 1c892d806270..778d7398133f 100644 --- a/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c +++ b/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c @@ -4,9 +4,9 @@ /* loongson.h does not handle or check for MIPS16ness. There doesn't seem any good reason for it to, given that the Loongson processors do not support MIPS16. */ -/* { dg-options "isa=loongson -mhard-float -mno-mips16 -O1" } */ +/* { dg-options "isa=loongson -mhard-float -mno-mips16" } */ /* See PR 52155. */ -/* { dg-options "isa=loongson -mhard-float -mno-mips16 -O1 -mlong64" { mips*-*-elf* && ilp32 } } */ +/* { dg-options "isa=loongson -mhard-float -mno-mips16 -mlong64" { mips*-*-elf* && ilp32 } } */ #include "loongson.h" #include diff --git a/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c b/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c index cc15b83ab934..1c4d010b3543 100644 --- a/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c +++ b/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -march=loongson3a" } */ +/* { dg-options "-march=loongson3a" } */ typedef int st; typedef unsigned int ut; diff --git a/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-2.c b/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-2.c index 592b492c3084..9695b3f6258c 100644 --- a/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-2.c +++ b/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-2.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -march=loongson3a -mgp64" } */ +/* { dg-options "-march=loongson3a -mgp64" } */ typedef long long st; typedef unsigned long long ut; diff --git a/gcc/testsuite/gcc.target/mips/madd-1.c b/gcc/testsuite/gcc.target/mips/madd-1.c index 53881a4b0858..416673b46d79 100644 --- a/gcc/testsuite/gcc.target/mips/madd-1.c +++ b/gcc/testsuite/gcc.target/mips/madd-1.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=vr4130 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-march=vr4130 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmacc\t\\\$1," 3 } } */ NOMIPS16 long long diff --git a/gcc/testsuite/gcc.target/mips/madd-2.c b/gcc/testsuite/gcc.target/mips/madd-2.c index eab7a68454c3..ce0d9eb6fa06 100644 --- a/gcc/testsuite/gcc.target/mips/madd-2.c +++ b/gcc/testsuite/gcc.target/mips/madd-2.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=vr5500 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-march=vr5500 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmadd\t" 3 } } */ NOMIPS16 long long diff --git a/gcc/testsuite/gcc.target/mips/madd-3.c b/gcc/testsuite/gcc.target/mips/madd-3.c index 6b479f59c718..29f4c9b3768c 100644 --- a/gcc/testsuite/gcc.target/mips/madd-3.c +++ b/gcc/testsuite/gcc.target/mips/madd-3.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 isa_rev>=1 -mgp32" } */ +/* { dg-options "isa_rev>=1 -mgp32" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmadd\t" 3 } } */ NOMIPS16 long long diff --git a/gcc/testsuite/gcc.target/mips/madd-4.c b/gcc/testsuite/gcc.target/mips/madd-4.c index f325af74698d..28c751b40f76 100644 --- a/gcc/testsuite/gcc.target/mips/madd-4.c +++ b/gcc/testsuite/gcc.target/mips/madd-4.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mdspr2 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-mdspr2 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmadd\t\\\$ac" 3 } } */ NOMIPS16 long long diff --git a/gcc/testsuite/gcc.target/mips/madd-5.c b/gcc/testsuite/gcc.target/mips/madd-5.c index 1ad1c91f3e1e..d1696a6a8695 100644 --- a/gcc/testsuite/gcc.target/mips/madd-5.c +++ b/gcc/testsuite/gcc.target/mips/madd-5.c @@ -1,4 +1,5 @@ -/* { dg-options "-O2 -march=5kc" } */ +/* { dg-options "-march=5kc" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmadd\t" 4 } } */ /* { dg-final { scan-assembler-not "\tmtlo\t" } } */ /* { dg-final { scan-assembler-times "\tmflo\t" 3 } } */ diff --git a/gcc/testsuite/gcc.target/mips/madd-6.c b/gcc/testsuite/gcc.target/mips/madd-6.c index 4e5afadceb25..9323b8e104ab 100644 --- a/gcc/testsuite/gcc.target/mips/madd-6.c +++ b/gcc/testsuite/gcc.target/mips/madd-6.c @@ -1,4 +1,5 @@ -/* { dg-options "-O2 -march=5kc" } */ +/* { dg-options "-march=5kc" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tmadd\t" } } */ /* { dg-final { scan-assembler "\tmul\t" } } */ /* { dg-final { scan-assembler "\taddu\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/madd-7.c b/gcc/testsuite/gcc.target/mips/madd-7.c index b43d72074278..a639aa4f8fe4 100644 --- a/gcc/testsuite/gcc.target/mips/madd-7.c +++ b/gcc/testsuite/gcc.target/mips/madd-7.c @@ -1,4 +1,6 @@ -/* { dg-options "-O2 -march=5kc" } */ +/* { dg-options "-march=5kc" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ +/* { dg-skip-if "requires -fira-region=all or =mixed" { *-*-* } { "-Os" } { "" } } */ /* { dg-final { scan-assembler-not "\tmul\t" } } */ /* { dg-final { scan-assembler "\tmadd\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/madd-8.c b/gcc/testsuite/gcc.target/mips/madd-8.c index 35092a8ad935..794a6ff1727c 100644 --- a/gcc/testsuite/gcc.target/mips/madd-8.c +++ b/gcc/testsuite/gcc.target/mips/madd-8.c @@ -1,4 +1,5 @@ -/* { dg-options "-O2 -march=5kc" } */ +/* { dg-options "-march=5kc" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmul\t" } } */ /* { dg-final { scan-assembler-not "\tmadd\t" } } */ /* { dg-final { scan-assembler-not "\tmtlo\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/madd-9.c b/gcc/testsuite/gcc.target/mips/madd-9.c index 25dbd18a5106..6d545495c03c 100644 --- a/gcc/testsuite/gcc.target/mips/madd-9.c +++ b/gcc/testsuite/gcc.target/mips/madd-9.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 isa_rev>=1 -mgp32" } */ +/* { dg-options "isa_rev>=1 -mgp32" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tmul\t" } } */ /* { dg-final { scan-assembler "\tmadd\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/maddu-1.c b/gcc/testsuite/gcc.target/mips/maddu-1.c index 04161ce3a218..af2b4181cdfb 100644 --- a/gcc/testsuite/gcc.target/mips/maddu-1.c +++ b/gcc/testsuite/gcc.target/mips/maddu-1.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=vr4130 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-march=vr4130 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmaccu\t\\\$1," 3 } } */ typedef unsigned int ui; diff --git a/gcc/testsuite/gcc.target/mips/maddu-2.c b/gcc/testsuite/gcc.target/mips/maddu-2.c index a9768f15bf88..ea091e4e1ce0 100644 --- a/gcc/testsuite/gcc.target/mips/maddu-2.c +++ b/gcc/testsuite/gcc.target/mips/maddu-2.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=vr5500 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-march=vr5500 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmaddu\t" 3 } } */ typedef unsigned int ui; diff --git a/gcc/testsuite/gcc.target/mips/maddu-3.c b/gcc/testsuite/gcc.target/mips/maddu-3.c index b0b4817a47f4..27a7350f07b8 100644 --- a/gcc/testsuite/gcc.target/mips/maddu-3.c +++ b/gcc/testsuite/gcc.target/mips/maddu-3.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 isa_rev>=1 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "isa_rev>=1 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmaddu\t" 3 } } */ typedef unsigned int ui; diff --git a/gcc/testsuite/gcc.target/mips/maddu-4.c b/gcc/testsuite/gcc.target/mips/maddu-4.c index 9c1ccd5f9267..58c4a7ebe0c8 100644 --- a/gcc/testsuite/gcc.target/mips/maddu-4.c +++ b/gcc/testsuite/gcc.target/mips/maddu-4.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mdspr2 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-mdspr2 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmaddu\t\\\$ac" 3 } } */ typedef unsigned int ui; diff --git a/gcc/testsuite/gcc.target/mips/memcpy-1.c b/gcc/testsuite/gcc.target/mips/memcpy-1.c index f3eda7500db8..f4e4698141ea 100644 --- a/gcc/testsuite/gcc.target/mips/memcpy-1.c +++ b/gcc/testsuite/gcc.target/mips/memcpy-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tlbu\t" } } */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-1.c b/gcc/testsuite/gcc.target/mips/mips-3d-1.c index eb3f8f9a8649..f11ffc5a80f3 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-1.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-1.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mips3d" } */ +/* { dg-options "-mips3d" } */ /* Test MIPS-3D builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-2.c b/gcc/testsuite/gcc.target/mips/mips-3d-2.c index dc815748ebd7..b04c3bfb5d54 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-2.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-2.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mips3d" } */ +/* { dg-options "-mips3d" } */ /* Test MIPS-3D branch-if-any-two builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-3.c b/gcc/testsuite/gcc.target/mips/mips-3d-3.c index 7df590f5c308..e4de8fb19bf2 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-3.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-3.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mips3d" } */ +/* { dg-options "-mips3d" } */ /* Test MIPS-3D absolute compare builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-4.c b/gcc/testsuite/gcc.target/mips/mips-3d-4.c index 7f9cbdb1b845..3d28d7f2c661 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-4.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-4.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mips3d" } */ +/* { dg-options "-mips3d" } */ /* Test MIPS-3D branch-if-any-four builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-5.c b/gcc/testsuite/gcc.target/mips/mips-3d-5.c index c07dbe505805..a433675cab9b 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-5.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-5.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mips3d" } */ +/* { dg-options "-mips3d" } */ /* Test MIPS-3D absolute-compare & branch-if-any-four builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-6.c b/gcc/testsuite/gcc.target/mips/mips-3d-6.c index 848414540f0e..e6b44f075851 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-6.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-6.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mips3d" } */ +/* { dg-options "-mips3d" } */ /* Test MIPS-3D absolute compare (floats) builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-7.c b/gcc/testsuite/gcc.target/mips/mips-3d-7.c index d5d09f99869a..2531ddf8b1ae 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-7.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-7.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mips3d" } */ +/* { dg-options "-mips3d" } */ /* Test MIPS-3D absolute compare (doubles) builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-8.c b/gcc/testsuite/gcc.target/mips/mips-3d-8.c index c80f2b9c8931..1d199d7d0c08 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-8.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-8.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mips3d" } */ +/* { dg-options "-mips3d" } */ /* Test MIPS-3D absolute compare and conditional move builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-9.c b/gcc/testsuite/gcc.target/mips/mips-3d-9.c index 3875391b5359..d697efdedf12 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-9.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-9.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mips3d" } */ +/* { dg-options "-mips3d" } */ /* Matrix Multiplications */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-1.c b/gcc/testsuite/gcc.target/mips/mips-ps-1.c index 9e6c66006177..73598a840bd7 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-1.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-1.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mpaired-single" } */ +/* { dg-options "-mpaired-single" } */ /* Test v2sf calculations */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-2.c b/gcc/testsuite/gcc.target/mips/mips-ps-2.c index baec12c1ce6f..52642558664f 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-2.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-2.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mpaired-single" } */ +/* { dg-options "-mpaired-single" } */ /* Test MIPS paired-single builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-3.c b/gcc/testsuite/gcc.target/mips/mips-ps-3.c index e9ed4c03f5f7..7e6ffd0667b0 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-3.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-3.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mpaired-single" } */ +/* { dg-options "-mpaired-single" } */ /* Test MIPS paired-single conditional move */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-4.c b/gcc/testsuite/gcc.target/mips/mips-ps-4.c index b4452d09105c..06850adb3003 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-4.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-4.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mpaired-single" } */ +/* { dg-options "-mpaired-single" } */ /* Test MIPS paired-single comparisons */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-5.c b/gcc/testsuite/gcc.target/mips/mips-ps-5.c index 94d2f80efc75..7b6d76f790e6 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-5.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-5.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mpaired-single -mgp64 -ftree-vectorize" } */ +/* { dg-options "-mpaired-single -mgp64 -ftree-vectorize" } */ +/* { dg-skip-if "requires vectorization" { *-*-* } { "-O0" "-Os" } { "" } } */ extern float a[], b[], c[]; diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-6.c b/gcc/testsuite/gcc.target/mips/mips-ps-6.c index 5b8b25228662..5bdfe436f40a 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-6.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-6.c @@ -1,7 +1,7 @@ /* mips-ps-2.c with an extra -ffinite-math-only option. This option changes the way that abs.ps is handled. */ /* { dg-do run } */ -/* { dg-options "-O2 -mpaired-single -ffinite-math-only" } */ +/* { dg-options "-mpaired-single -ffinite-math-only" } */ /* Test MIPS paired-single builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-7.c b/gcc/testsuite/gcc.target/mips/mips-ps-7.c index 65a1104ba39f..cfc440bd30cd 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-7.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-7.c @@ -1,6 +1,7 @@ /* mips-ps-5.c with -mgp32 instead of -mgp64. */ /* { dg-do compile } */ -/* { dg-options "-mgp32 -O2 -mpaired-single -ftree-vectorize" } */ +/* { dg-options "-mgp32 -mpaired-single -ftree-vectorize" } */ +/* { dg-skip-if "requires vectorization" { *-*-* } { "-O0" "-Os" } { "" } } */ extern float a[], b[], c[]; diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c b/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c index f7988553394a..6d5ebaee7651 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c @@ -1,7 +1,8 @@ /* Test v2sf calculations. The nmadd and nmsub patterns need -ffinite-math-only. */ /* { dg-do compile } */ -/* { dg-options "isa_rev>=2 -mgp32 -O2 -mpaired-single -ffinite-math-only" } */ +/* { dg-options "isa_rev>=2 -mgp32 -mpaired-single -ffinite-math-only" } */ +/* { dg-skip-if "nmadd and nmsub need combine" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "cvt.ps.s" } } */ /* { dg-final { scan-assembler "mov.ps" } } */ /* { dg-final { scan-assembler "ldc1" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-type.c b/gcc/testsuite/gcc.target/mips/mips-ps-type.c index 2a10f91bd54e..c7dcddd2c301 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-type.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-type.c @@ -1,7 +1,8 @@ /* Test v2sf calculations. The nmadd and nmsub patterns need -ffinite-math-only. */ /* { dg-do compile } */ -/* { dg-options "-O2 -mpaired-single -mgp64 -ffinite-math-only" } */ +/* { dg-options "-mpaired-single -mgp64 -ffinite-math-only" } */ +/* { dg-skip-if "nmadd and nmsub need combine" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "cvt.ps.s" } } */ /* { dg-final { scan-assembler "mov.ps" } } */ /* { dg-final { scan-assembler "ldc1" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mips-sched-madd.c b/gcc/testsuite/gcc.target/mips/mips-sched-madd.c index c0f9d332a594..1db1550fd49c 100644 --- a/gcc/testsuite/gcc.target/mips/mips-sched-madd.c +++ b/gcc/testsuite/gcc.target/mips/mips-sched-madd.c @@ -1,7 +1,8 @@ /* Test for case where another independent multiply insn may interfere with a macc chain. */ /* { dg-do compile } */ -/* { dg-options "-Os -march=24kf" } */ +/* { dg-options "-march=24kf" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 int foo (int a, int b, int c, int d, int e, int f, int g) { diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp index 5b1bb7a45a6e..fddce3427ac1 100644 --- a/gcc/testsuite/gcc.target/mips/mips.exp +++ b/gcc/testsuite/gcc.target/mips/mips.exp @@ -222,6 +222,10 @@ load_lib gcc-dg.exp # A list of GROUP REGEXP pairs. Each GROUP represents a logical group of # options from which only one option should be chosen. REGEXP matches all # the options in that group; it is implicitly wrapped in "^(...)$". +# +# Note that -O* is deliberately omitted from this list. Tests in this +# directory are run at various optimisation levels and should use +# dg-skip-if to skip any incompatible levels. set mips_option_groups { abi "-mabi=.*" addressing "addressing=.*" @@ -236,7 +240,6 @@ set mips_option_groups { long "-mlong(32|64)" mips16 "-mips16|-mno-mips16|-mflip-mips16" mips3d "-mips3d|-mno-mips3d" - optimization "-O(|[0-3s])" pic "-f(no-|)(pic|PIC)" profiling "-pg" small-data "-G[0-9]+" @@ -283,13 +286,21 @@ foreach option { # Add -ffoo/-fno-foo options to mips_option_groups. foreach option { delayed-branch + expensive-optimizations fast-math + fat-lto-objects finite-math-only fixed-hi fixed-lo lax-vector-conversions + omit-frame-pointer + optimize-sibling-calls + peephole2 + schedule-insns2 split-wide-types tree-vectorize + unroll-all-loops + unroll-loops } { lappend mips_option_groups $option "-f(no-|)$option" } @@ -881,6 +892,10 @@ proc mips-dg-options { args } { } } + # Handle dependencies between the test options and the optimization ones. + mips_option_dependency options "-fno-unroll-loops" "-fno-unroll-all-loops" + mips_option_dependency options "-pg" "-fno-omit-frame-pointer" + # Handle dependencies between options on the left of the # dependency diagram. mips_option_dependency options "-mips3d" "-mpaired-single" @@ -1253,8 +1268,7 @@ proc mips-gcc-dg-test { prog do_what extra_tool_flags } { dg-init mips-dg-init -# MIPS16 is defined by "-mips16" or "(-mips16)" in dg-options. -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] "" \ +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] \ "-DNOMIPS16=__attribute__((nomips16))" mips-dg-finish dg-finish diff --git a/gcc/testsuite/gcc.target/mips/mips16e-extends.c b/gcc/testsuite/gcc.target/mips/mips16e-extends.c index d077f2fae6ed..15f7dd87db86 100644 --- a/gcc/testsuite/gcc.target/mips/mips16e-extends.c +++ b/gcc/testsuite/gcc.target/mips/mips16e-extends.c @@ -1,5 +1,6 @@ /* -mlong32 added because of PR target/38595. */ -/* { dg-options "(-mips16) -Os isa_rev>=1 -mlong32" } */ +/* { dg-options "(-mips16) isa_rev>=1 -mlong32" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ MIPS16 short cksum16 (unsigned long n) { diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c index ccbdef553ee0..ccd9d380fb3f 100644 --- a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c +++ b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c @@ -1,6 +1,6 @@ /* Test MIPS32 DSP instructions */ /* { dg-do run } */ -/* { dg-options "-mdsp -O2" } */ +/* { dg-options "-mdsp" } */ #include #include @@ -59,8 +59,10 @@ NOMIPS16 void test_MIPS_DSP () v4i8 v4i8_a,v4i8_b,v4i8_c,v4i8_r,v4i8_s; v2q15 v2q15_a,v2q15_b,v2q15_c,v2q15_r,v2q15_s; q31 q31_a,q31_b,q31_c,q31_r,q31_s; - i32 i32_a,i32_b,i32_c,i32_r,i32_s; - ui32 ui32_a,ui32_b,ui32_c; + /* To protect the multiplication-related tests from being optimized + at compile time. */ + volatile i32 i32_a,i32_b,i32_c,i32_r,i32_s; + volatile ui32 ui32_a,ui32_b,ui32_c; a64 a64_a,a64_b,a64_c,a64_r,a64_s; void *ptr_a; diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp.c b/gcc/testsuite/gcc.target/mips/mips32-dsp.c index c2a8ae775051..8a292ef66cc6 100644 --- a/gcc/testsuite/gcc.target/mips/mips32-dsp.c +++ b/gcc/testsuite/gcc.target/mips/mips32-dsp.c @@ -156,8 +156,10 @@ NOMIPS16 void test_MIPS_DSP () v4i8 v4i8_a,v4i8_b,v4i8_c,v4i8_r,v4i8_s; v2q15 v2q15_a,v2q15_b,v2q15_c,v2q15_r,v2q15_s; q31 q31_a,q31_b,q31_c,q31_r,q31_s; - i32 i32_a,i32_b,i32_c,i32_r,i32_s; - ui32 ui32_a,ui32_b,ui32_c; + /* To protect the multiplication-related tests from being optimized + at compile time. */ + volatile i32 i32_a,i32_b,i32_c,i32_r,i32_s; + volatile ui32 ui32_a,ui32_b,ui32_c; a64 a64_a,a64_b,a64_c,a64_r,a64_s; void *ptr_a; diff --git a/gcc/testsuite/gcc.target/mips/mips32-dspr2.c b/gcc/testsuite/gcc.target/mips/mips32-dspr2.c index 1b3031ff19d3..1f7e9287313c 100644 --- a/gcc/testsuite/gcc.target/mips/mips32-dspr2.c +++ b/gcc/testsuite/gcc.target/mips/mips32-dspr2.c @@ -1,6 +1,6 @@ /* Test MIPS32 DSP REV 2 instructions */ /* { dg-do run } */ -/* { dg-options "-mdspr2 -O2" } */ +/* { dg-options "-mdspr2" } */ typedef signed char v4q7 __attribute__ ((vector_size(4))); typedef signed char v4i8 __attribute__ ((vector_size(4))); diff --git a/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c b/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c index cf57323db1ac..359a845901db 100644 --- a/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c +++ b/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -mabi=32 -mfp64" } */ +/* { dg-options "-mabi=32 -mfp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "mthc1" } } */ /* { dg-final { scan-assembler "mfhc1" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c b/gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c index d13667619029..02e6166577df 100644 --- a/gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c +++ b/gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c @@ -1,6 +1,7 @@ /* Test MIPS64 DSP instructions */ /* { dg-do compile } */ -/* { dg-options "-mgp64 -mdsp -O" } */ +/* { dg-options "-mgp64 -mdsp" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tldx\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-1.c b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-1.c index 8514ed8cb4bf..3d07939ca59f 100644 --- a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-1.c +++ b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -pg -mmcount-ra-address -mabi=64" } */ +/* { dg-options "-pg -mmcount-ra-address -mabi=64" } */ /* { dg-final { scan-assembler "\tmove\t\\\$12,\\\$0" } } */ NOMIPS16 int bazl(int i) { diff --git a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c index bb59a1828c9c..34b30d9874c6 100644 --- a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c +++ b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -pg -mmcount-ra-address -mabi=64" } */ +/* { dg-options "-pg -mmcount-ra-address -mabi=64 -mno-abicalls" } */ +/* { dg-skip-if "requiring a specific frame layout makes this a code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdla\t\\\$12,8\\(\\\$sp\\)" } } */ int foo (int); NOMIPS16 int bar (int i) diff --git a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c index 8c94c8345e92..17bcb76be501 100644 --- a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c +++ b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -pg -mmcount-ra-address -mabi=64" } */ +/* { dg-options "-pg -mmcount-ra-address -mabi=64 -mno-abicalls" } */ +/* { dg-skip-if "requiring a specific frame layout makes this a code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdla\t\\\$12,200008\\(\\\$sp\\)" } } */ int foo (int *); NOMIPS16 int bar(int i) diff --git a/gcc/testsuite/gcc.target/mips/movcc-1.c b/gcc/testsuite/gcc.target/mips/movcc-1.c index 1a930c9ac06c..fbc6781e4896 100644 --- a/gcc/testsuite/gcc.target/mips/movcc-1.c +++ b/gcc/testsuite/gcc.target/mips/movcc-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 isa>=4" } */ +/* { dg-options "isa>=4" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "movz" } } */ /* { dg-final { scan-assembler "movn" } } */ diff --git a/gcc/testsuite/gcc.target/mips/movcc-2.c b/gcc/testsuite/gcc.target/mips/movcc-2.c index d42acc1d77ca..cb91a9db5735 100644 --- a/gcc/testsuite/gcc.target/mips/movcc-2.c +++ b/gcc/testsuite/gcc.target/mips/movcc-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 isa>=4" } */ +/* { dg-options "isa>=4" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "movz" } } */ /* { dg-final { scan-assembler "movn" } } */ diff --git a/gcc/testsuite/gcc.target/mips/movcc-3.c b/gcc/testsuite/gcc.target/mips/movcc-3.c index e6481777addb..a1ddf57fb060 100644 --- a/gcc/testsuite/gcc.target/mips/movcc-3.c +++ b/gcc/testsuite/gcc.target/mips/movcc-3.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 isa>=4 -mhard-float" } */ +/* { dg-options "isa>=4 -mhard-float" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "movt" } } */ /* { dg-final { scan-assembler "movf" } } */ /* { dg-final { scan-assembler "movz.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/msub-1.c b/gcc/testsuite/gcc.target/mips/msub-1.c index 803ea77df742..9a222bfda9dc 100644 --- a/gcc/testsuite/gcc.target/mips/msub-1.c +++ b/gcc/testsuite/gcc.target/mips/msub-1.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=vr5400 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-march=vr5400 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmsac\t\\\$0," 2 } } */ NOMIPS16 long long diff --git a/gcc/testsuite/gcc.target/mips/msub-2.c b/gcc/testsuite/gcc.target/mips/msub-2.c index e6cdc2c1a9a9..c0923cd113dc 100644 --- a/gcc/testsuite/gcc.target/mips/msub-2.c +++ b/gcc/testsuite/gcc.target/mips/msub-2.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=vr5500 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-march=vr5500 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmsub\t" 2 } } */ NOMIPS16 long long diff --git a/gcc/testsuite/gcc.target/mips/msub-3.c b/gcc/testsuite/gcc.target/mips/msub-3.c index c44f34f4f0ec..aedd04302ac4 100644 --- a/gcc/testsuite/gcc.target/mips/msub-3.c +++ b/gcc/testsuite/gcc.target/mips/msub-3.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 isa_rev>=1 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "isa_rev>=1 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmsub\t" 2 } } */ NOMIPS16 long long diff --git a/gcc/testsuite/gcc.target/mips/msub-4.c b/gcc/testsuite/gcc.target/mips/msub-4.c index d41c31299144..84cb5fe333c6 100644 --- a/gcc/testsuite/gcc.target/mips/msub-4.c +++ b/gcc/testsuite/gcc.target/mips/msub-4.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mdspr2 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-mdspr2 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmsub\t\\\$ac" 2 } } */ NOMIPS16 long long diff --git a/gcc/testsuite/gcc.target/mips/msub-5.c b/gcc/testsuite/gcc.target/mips/msub-5.c index dcb124a71983..eba104c7f016 100644 --- a/gcc/testsuite/gcc.target/mips/msub-5.c +++ b/gcc/testsuite/gcc.target/mips/msub-5.c @@ -1,4 +1,5 @@ -/* { dg-options "-O2 -march=5kc" } */ +/* { dg-options "-march=5kc" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmsub\t" 4 } } */ /* { dg-final { scan-assembler-not "\tmtlo\t" } } */ /* { dg-final { scan-assembler-times "\tmflo\t" 3 } } */ diff --git a/gcc/testsuite/gcc.target/mips/msub-6.c b/gcc/testsuite/gcc.target/mips/msub-6.c index ee4ca3d8da06..32411e61faf8 100644 --- a/gcc/testsuite/gcc.target/mips/msub-6.c +++ b/gcc/testsuite/gcc.target/mips/msub-6.c @@ -1,4 +1,5 @@ -/* { dg-options "-O2 -march=5kc" } */ +/* { dg-options "-march=5kc" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tmsub\t" } } */ /* { dg-final { scan-assembler "\tmul\t" } } */ /* { dg-final { scan-assembler "\tsubu\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/msub-7.c b/gcc/testsuite/gcc.target/mips/msub-7.c index 7ae96acb42ea..ee049876e37e 100644 --- a/gcc/testsuite/gcc.target/mips/msub-7.c +++ b/gcc/testsuite/gcc.target/mips/msub-7.c @@ -1,4 +1,6 @@ -/* { dg-options "-O2 -march=5kc" } */ +/* { dg-options "-march=5kc" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ +/* { dg-skip-if "requires -fira-region=all or =mixed" { *-*-* } { "-Os" } { "" } } */ /* { dg-final { scan-assembler-not "\tmul\t" } } */ /* { dg-final { scan-assembler "\tmsub\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/msub-8.c b/gcc/testsuite/gcc.target/mips/msub-8.c index 49d67f24a6c9..a66307f10412 100644 --- a/gcc/testsuite/gcc.target/mips/msub-8.c +++ b/gcc/testsuite/gcc.target/mips/msub-8.c @@ -1,4 +1,5 @@ -/* { dg-options "-O2 -march=5kc" } */ +/* { dg-options "-march=5kc" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmul\t" } } */ /* { dg-final { scan-assembler-not "\tmsub\t" } } */ /* { dg-final { scan-assembler-not "\tmtlo\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/msubu-1.c b/gcc/testsuite/gcc.target/mips/msubu-1.c index ae8040346440..e1146f8bca96 100644 --- a/gcc/testsuite/gcc.target/mips/msubu-1.c +++ b/gcc/testsuite/gcc.target/mips/msubu-1.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=vr5400 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-march=vr5400 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmsacu\t\\\$0," 2 } } */ typedef unsigned int ui; diff --git a/gcc/testsuite/gcc.target/mips/msubu-2.c b/gcc/testsuite/gcc.target/mips/msubu-2.c index 186dc47d6f72..642d12394609 100644 --- a/gcc/testsuite/gcc.target/mips/msubu-2.c +++ b/gcc/testsuite/gcc.target/mips/msubu-2.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=vr5500 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-march=vr5500 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmsubu\t" 2 } } */ typedef unsigned int ui; diff --git a/gcc/testsuite/gcc.target/mips/msubu-3.c b/gcc/testsuite/gcc.target/mips/msubu-3.c index 272c64818e31..2e936ebe03f2 100644 --- a/gcc/testsuite/gcc.target/mips/msubu-3.c +++ b/gcc/testsuite/gcc.target/mips/msubu-3.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 isa_rev>=1 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "isa_rev>=1 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmsubu\t" 2 } } */ typedef unsigned int ui; diff --git a/gcc/testsuite/gcc.target/mips/msubu-4.c b/gcc/testsuite/gcc.target/mips/msubu-4.c index 8f5fd647b379..a4f6118600e3 100644 --- a/gcc/testsuite/gcc.target/mips/msubu-4.c +++ b/gcc/testsuite/gcc.target/mips/msubu-4.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mdspr2 -mgp32" } */ +/* This test requires widening_mul */ +/* { dg-options "-mdspr2 -mgp32 -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tmsubu\t\\\$ac" 2 } } */ typedef unsigned int ui; diff --git a/gcc/testsuite/gcc.target/mips/mult-1.c b/gcc/testsuite/gcc.target/mips/mult-1.c index 8630ec95d5eb..1038797f2288 100644 --- a/gcc/testsuite/gcc.target/mips/mult-1.c +++ b/gcc/testsuite/gcc.target/mips/mult-1.c @@ -1,6 +1,8 @@ /* For SI->DI widening multiplication we should use DINS to combine the two halves. For Octeon use DMUL with explicit widening. */ -/* { dg-options "-O2 -mgp64 isa_rev>=2 forbid_cpu=octeon.*" } */ +/* This test requires widening_mul */ +/* { dg-options "-mgp64 isa_rev>=2 forbid_cpu=octeon.* -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdins\t" } } */ /* { dg-final { scan-assembler-not "\tdsll\t" } } */ /* { dg-final { scan-assembler-not "\tdsrl\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-10.c b/gcc/testsuite/gcc.target/mips/mult-10.c index 0b990c364135..c479ebbc553a 100644 --- a/gcc/testsuite/gcc.target/mips/mult-10.c +++ b/gcc/testsuite/gcc.target/mips/mult-10.c @@ -1,4 +1,6 @@ -/* { dg-options "-O2 -mgp64 (-mips16)" } */ +/* This test requires widening_mul */ +/* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmult\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" { xfail *-*-* } } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-11.c b/gcc/testsuite/gcc.target/mips/mult-11.c index d2ba695f6dda..8b26c1de7a49 100644 --- a/gcc/testsuite/gcc.target/mips/mult-11.c +++ b/gcc/testsuite/gcc.target/mips/mult-11.c @@ -1,4 +1,6 @@ -/* { dg-options "-O2 -mgp64 (-mips16)" } */ +/* This test requires widening_mul */ +/* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmultu\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-12.c b/gcc/testsuite/gcc.target/mips/mult-12.c index bd772d2cd742..bf8d36c7629c 100644 --- a/gcc/testsuite/gcc.target/mips/mult-12.c +++ b/gcc/testsuite/gcc.target/mips/mult-12.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmultu?\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-13.c b/gcc/testsuite/gcc.target/mips/mult-13.c index e0859f629f3e..beb6ab9432cb 100644 --- a/gcc/testsuite/gcc.target/mips/mult-13.c +++ b/gcc/testsuite/gcc.target/mips/mult-13.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmultu?\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-14.c b/gcc/testsuite/gcc.target/mips/mult-14.c index c4b54b7ec455..e3cbd75bf28d 100644 --- a/gcc/testsuite/gcc.target/mips/mult-14.c +++ b/gcc/testsuite/gcc.target/mips/mult-14.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp32 (-mips16)" } */ +/* { dg-options "-mgp32 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmult\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-15.c b/gcc/testsuite/gcc.target/mips/mult-15.c index a96049e04e6c..da47bd29227b 100644 --- a/gcc/testsuite/gcc.target/mips/mult-15.c +++ b/gcc/testsuite/gcc.target/mips/mult-15.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp32 (-mips16)" } */ +/* { dg-options "-mgp32 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmultu\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-16.c b/gcc/testsuite/gcc.target/mips/mult-16.c index cb1707d91252..3e9b3785b1ba 100644 --- a/gcc/testsuite/gcc.target/mips/mult-16.c +++ b/gcc/testsuite/gcc.target/mips/mult-16.c @@ -1,4 +1,6 @@ -/* { dg-options "-O2 -mgp32 (-mips16)" } */ +/* This test requires widening_mul */ +/* { dg-options "-mgp32 (-mips16) -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmult\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-17.c b/gcc/testsuite/gcc.target/mips/mult-17.c index 3539f63d96a9..84baff8cd8cf 100644 --- a/gcc/testsuite/gcc.target/mips/mult-17.c +++ b/gcc/testsuite/gcc.target/mips/mult-17.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp32 (-mips16)" } */ +/* { dg-options "-mgp32 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmultu\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-18.c b/gcc/testsuite/gcc.target/mips/mult-18.c index cfdac8b0de16..52487f30dff4 100644 --- a/gcc/testsuite/gcc.target/mips/mult-18.c +++ b/gcc/testsuite/gcc.target/mips/mult-18.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp32 (-mips16)" } */ +/* { dg-options "-mgp32 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmultu?\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-19.c b/gcc/testsuite/gcc.target/mips/mult-19.c index 47cdd5c23c32..11cdb17c8677 100644 --- a/gcc/testsuite/gcc.target/mips/mult-19.c +++ b/gcc/testsuite/gcc.target/mips/mult-19.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp32 (-mips16)" } */ +/* { dg-options "-mgp32 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmultu?\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-2.c b/gcc/testsuite/gcc.target/mips/mult-2.c index 8494e14c358f..77be31162735 100644 --- a/gcc/testsuite/gcc.target/mips/mult-2.c +++ b/gcc/testsuite/gcc.target/mips/mult-2.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdmult\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-3.c b/gcc/testsuite/gcc.target/mips/mult-3.c index fa7cfa34e238..e46978bc4091 100644 --- a/gcc/testsuite/gcc.target/mips/mult-3.c +++ b/gcc/testsuite/gcc.target/mips/mult-3.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdmultu\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-4.c b/gcc/testsuite/gcc.target/mips/mult-4.c index d579f0023d2f..939ca5cdb402 100644 --- a/gcc/testsuite/gcc.target/mips/mult-4.c +++ b/gcc/testsuite/gcc.target/mips/mult-4.c @@ -1,4 +1,6 @@ -/* { dg-options "-O2 -mgp64 (-mips16)" } */ +/* This test requires widening_mul */ +/* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdmult\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-5.c b/gcc/testsuite/gcc.target/mips/mult-5.c index 6df86a1163dd..efb06af85598 100644 --- a/gcc/testsuite/gcc.target/mips/mult-5.c +++ b/gcc/testsuite/gcc.target/mips/mult-5.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdmultu\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ /* { dg-final { scan-assembler-not "\tmflo\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-6.c b/gcc/testsuite/gcc.target/mips/mult-6.c index a6b910ec4020..82d4f5d453a5 100644 --- a/gcc/testsuite/gcc.target/mips/mult-6.c +++ b/gcc/testsuite/gcc.target/mips/mult-6.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdmultu?\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-7.c b/gcc/testsuite/gcc.target/mips/mult-7.c index 7c2989baa521..35b074980708 100644 --- a/gcc/testsuite/gcc.target/mips/mult-7.c +++ b/gcc/testsuite/gcc.target/mips/mult-7.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp64 (-mips16)" } */ +/* { dg-options "-mgp64 (-mips16)" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tdmultu?\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-8.c b/gcc/testsuite/gcc.target/mips/mult-8.c index 3e3acde81e34..18dce2013d6a 100644 --- a/gcc/testsuite/gcc.target/mips/mult-8.c +++ b/gcc/testsuite/gcc.target/mips/mult-8.c @@ -1,4 +1,6 @@ -/* { dg-options "-O2 -mgp64 (-mips16)" } */ +/* This test requires widening_mul */ +/* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmult\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mult-9.c b/gcc/testsuite/gcc.target/mips/mult-9.c index aa2ededa67aa..59d450ab2c0e 100644 --- a/gcc/testsuite/gcc.target/mips/mult-9.c +++ b/gcc/testsuite/gcc.target/mips/mult-9.c @@ -1,4 +1,6 @@ -/* { dg-options "-O2 -mgp64 (-mips16)" } */ +/* This test requires widening_mul */ +/* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tmultu\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmfhi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/near-far-3.c b/gcc/testsuite/gcc.target/mips/near-far-3.c index f4ae791f1a0e..d4d48b1ed53b 100644 --- a/gcc/testsuite/gcc.target/mips/near-far-3.c +++ b/gcc/testsuite/gcc.target/mips/near-far-3.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mlong-calls addressing=absolute -O2" } */ +/* { dg-options "-mlong-calls addressing=absolute" } */ NOMIPS16 extern int long_call_func () __attribute__((long_call)); NOMIPS16 extern int far_func () __attribute__((far)); @@ -13,5 +13,5 @@ NOMIPS16 int test4 () { return normal_func (); } /* { dg-final { scan-assembler-not "\tj\tlong_call_func\n" } } */ /* { dg-final { scan-assembler-not "\tj\tfar_func\n" } } */ -/* { dg-final { scan-assembler "\tj\tnear_func\n" } } */ +/* { dg-final { scan-assembler "\tj(|al)\tnear_func\n" } } */ /* { dg-final { scan-assembler-not "\tj\tnormal_func\n" } } */ diff --git a/gcc/testsuite/gcc.target/mips/near-far-4.c b/gcc/testsuite/gcc.target/mips/near-far-4.c index b9aa21fe4f4c..0ea07b062050 100644 --- a/gcc/testsuite/gcc.target/mips/near-far-4.c +++ b/gcc/testsuite/gcc.target/mips/near-far-4.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mno-long-calls addressing=absolute -O2" } */ +/* { dg-options "-mno-long-calls addressing=absolute" } */ NOMIPS16 extern int long_call_func () __attribute__((long_call)); NOMIPS16 extern int far_func () __attribute__((far)); @@ -13,5 +13,5 @@ NOMIPS16 int test4 () { return normal_func (); } /* { dg-final { scan-assembler-not "\tj\tlong_call_func\n" } } */ /* { dg-final { scan-assembler-not "\tj\tfar_func\n" } } */ -/* { dg-final { scan-assembler "\tj\tnear_func\n" } } */ -/* { dg-final { scan-assembler "\tj\tnormal_func\n" } } */ +/* { dg-final { scan-assembler "\tj(|al)\tnear_func\n" } } */ +/* { dg-final { scan-assembler "\tj(|al)\tnormal_func\n" } } */ diff --git a/gcc/testsuite/gcc.target/mips/neg-abs-1.c b/gcc/testsuite/gcc.target/mips/neg-abs-1.c index 20691ff2c4b9..6c942586455f 100644 --- a/gcc/testsuite/gcc.target/mips/neg-abs-1.c +++ b/gcc/testsuite/gcc.target/mips/neg-abs-1.c @@ -1,7 +1,7 @@ /* Make sure that we use abs.fmt and neg.fmt when the signs of NaNs don't matter. */ /* { dg-do compile } */ -/* { dg-options "-O2 -mhard-float -ffinite-math-only" } */ +/* { dg-options "-mhard-float -ffinite-math-only" } */ /* { dg-final { scan-assembler "neg.s" } } */ /* { dg-final { scan-assembler "neg.d" } } */ /* { dg-final { scan-assembler "abs.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/neg-abs-2.c b/gcc/testsuite/gcc.target/mips/neg-abs-2.c index 67125f78a671..f34f74320e3f 100644 --- a/gcc/testsuite/gcc.target/mips/neg-abs-2.c +++ b/gcc/testsuite/gcc.target/mips/neg-abs-2.c @@ -1,7 +1,7 @@ /* Make sure that we avoid abs.fmt and neg.fmt when the signs of NaNs matter. */ /* { dg-do compile } */ -/* { dg-options "-O2 -mhard-float -fno-finite-math-only" } */ +/* { dg-options "-mhard-float -fno-finite-math-only" } */ /* { dg-final { scan-assembler-not "neg.s" } } */ /* { dg-final { scan-assembler-not "neg.d" } } */ /* { dg-final { scan-assembler-not "abs.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/nmadd-1.c b/gcc/testsuite/gcc.target/mips/nmadd-1.c index 123d48799ed8..46b70820c5b3 100644 --- a/gcc/testsuite/gcc.target/mips/nmadd-1.c +++ b/gcc/testsuite/gcc.target/mips/nmadd-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ffast-math isa=4 -mhard-float" } */ +/* { dg-options "-ffast-math isa=4 -mhard-float" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "nmadd.s" } } */ /* { dg-final { scan-assembler "nmadd.d" } } */ /* { dg-final { scan-assembler "nmsub.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/nmadd-2.c b/gcc/testsuite/gcc.target/mips/nmadd-2.c index 90e4d838d892..dee6fcb3ecec 100644 --- a/gcc/testsuite/gcc.target/mips/nmadd-2.c +++ b/gcc/testsuite/gcc.target/mips/nmadd-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fno-fast-math -ffinite-math-only isa=4 -mhard-float" } */ +/* { dg-options "-fno-fast-math -ffinite-math-only isa=4 -mhard-float" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "nmadd.s" } } */ /* { dg-final { scan-assembler "nmadd.d" } } */ /* { dg-final { scan-assembler "nmsub.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/nmadd-3.c b/gcc/testsuite/gcc.target/mips/nmadd-3.c index df726186128a..c553fb7065a0 100644 --- a/gcc/testsuite/gcc.target/mips/nmadd-3.c +++ b/gcc/testsuite/gcc.target/mips/nmadd-3.c @@ -1,7 +1,7 @@ /* The same code as nmadd-2.c, but compiled with -fno-finite-math-only. We can't use nmadd and nmsub in that case. */ /* { dg-do compile } */ -/* { dg-options "-O2 -fno-fast-math -fno-finite-math-only isa=4 -mhard-float" } */ +/* { dg-options "-fno-fast-math -fno-finite-math-only isa=4 -mhard-float" } */ /* { dg-final { scan-assembler-not "nmadd.s" } } */ /* { dg-final { scan-assembler-not "nmadd.d" } } */ /* { dg-final { scan-assembler-not "nmsub.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/no-dsp-1.c b/gcc/testsuite/gcc.target/mips/no-dsp-1.c index 093037579b9f..c4a7b0aede2a 100644 --- a/gcc/testsuite/gcc.target/mips/no-dsp-1.c +++ b/gcc/testsuite/gcc.target/mips/no-dsp-1.c @@ -1,7 +1,8 @@ -/* { dg-options "-mno-dsp" } */ +/* { dg-options "-mno-dsp -ffat-lto-objects" } */ void foo (void) { register int x asm ("$ac1hi"); /* { dg-error "cannot be accessed" } */ + asm volatile ("" : "=r" (x)); } diff --git a/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c b/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c index ee7f3d54d5d9..ecf856ea7fa0 100644 --- a/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c +++ b/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -mno-smartmips" } */ +/* { dg-options "-mno-smartmips" } */ NOMIPS16 int scaled_indexed_word_load (int a[], int b) { diff --git a/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c b/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c index d1f50a8fbefc..419d086b8afc 100644 --- a/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c +++ b/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -mno-smartmips -march=mips32" } */ +/* { dg-options "-mno-smartmips -march=mips32" } */ NOMIPS16 int rotate_left (unsigned a, unsigned s) { diff --git a/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c b/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c index 8dd5be167659..e7150d297337 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c +++ b/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -march=octeon" } */ +/* { dg-options "-march=octeon" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tbaddu\t" 4 } } */ /* { dg-final { scan-assembler-not "\tandi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c b/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c index 6629dbb58448..f91c68bcdcc7 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c +++ b/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c @@ -1,7 +1,9 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=octeon" } */ -/* { dg-final { scan-assembler-times "\tbbit1\t" 4 } } */ -/* { dg-final { scan-assembler-times "\tbbit0\t" 2 } } */ +/* { dg-options "-march=octeon" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ +/* { dg-final { scan-assembler "\tbbit1\t" } } */ +/* { dg-final { scan-assembler "\tbbit0\t" } } */ +/* { dg-final { scan-assembler-times "\tbbit.\t" 6 } } */ /* { dg-final { scan-assembler-not "andi\t" } } */ NOMIPS16 void foo (void); diff --git a/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c b/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c index 55bf23eae4e7..9bd8dce107ae 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c +++ b/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=octeon -mbranch-likely" } */ +/* { dg-options "-march=octeon -mbranch-likely -fno-unroll-loops" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "\tbbit\[01\]\t" } } */ /* { dg-final { scan-assembler-not "\tbbit\[01\]l\t" } } */ /* { dg-final { scan-assembler "\tbnel\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c b/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c index bcc37d29e34b..2726037bee17 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c +++ b/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c @@ -11,9 +11,10 @@ which does not get recognized as a valid bbit pattern. The middle-end should be able to simplify this further. */ -/* { dg-options "-O2 -march=octeon -meb" } */ +/* { dg-options "-march=octeon -meb" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ -/* { dg-final { scan-assembler-times "\tbbit\[01\]\t|\tbgez\t" 2 } } */ +/* { dg-final { scan-assembler-times "\tbbit\[01\]\t|\tbgez\t|\tbltz\t" 2 } } */ /* { dg-final { scan-assembler-not "ext\t" } } */ void abort (void); diff --git a/gcc/testsuite/gcc.target/mips/octeon-cins-1.c b/gcc/testsuite/gcc.target/mips/octeon-cins-1.c index ac85e2378464..dd0b753ec07e 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-cins-1.c +++ b/gcc/testsuite/gcc.target/mips/octeon-cins-1.c @@ -1,7 +1,8 @@ /* { dg-do compile } */ /* The tests also work with -mgp32. For long long tests, only one of the 32-bit parts is used. */ -/* { dg-options "-O -march=octeon" } */ +/* { dg-options "-march=octeon" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tcins\t" 3 } } */ /* { dg-final { scan-assembler-not "\tandi\t|sll\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/octeon-cins-2.c b/gcc/testsuite/gcc.target/mips/octeon-cins-2.c index 2dcff0aad1c1..71611bc9ff23 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-cins-2.c +++ b/gcc/testsuite/gcc.target/mips/octeon-cins-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -march=octeon -mgp64" } */ +/* { dg-options "-march=octeon -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tcins\t" } } */ NOMIPS16 unsigned diff --git a/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c b/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c index 6b2308c0bba5..cf8da24ca71c 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c +++ b/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-march=octeon -mgp64" } */ +/* { dg-skip-if "using DMUL is no worse size-wise, and can be better if the constant is used elsewhere" { *-*-* } { "-Os" } { "" } } */ /* { dg-final { scan-assembler-not "\tdmul" } } */ NOMIPS16 long long diff --git a/gcc/testsuite/gcc.target/mips/octeon-dmul-3.c b/gcc/testsuite/gcc.target/mips/octeon-dmul-3.c index 01f0eefca800..38150a87ec16 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-dmul-3.c +++ b/gcc/testsuite/gcc.target/mips/octeon-dmul-3.c @@ -1,5 +1,6 @@ /* Use DMUL for widening multiplication too. */ -/* { dg-options "-O -march=octeon -mgp64" } */ +/* { dg-options "-march=octeon -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\tdmul\t" 2 } } */ /* { dg-final { scan-assembler-not "\td?mult\t" } } */ /* { dg-final { scan-assembler-times "\tdext\t" 2 } } */ diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-2.c b/gcc/testsuite/gcc.target/mips/octeon-exts-2.c index fc5df639d02b..21353d906125 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-exts-2.c +++ b/gcc/testsuite/gcc.target/mips/octeon-exts-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -march=octeon -meb" } */ +/* { dg-options "-march=octeon -meb" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\texts\t" 4 } } */ struct bar diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-3.c b/gcc/testsuite/gcc.target/mips/octeon-exts-3.c index 9d0e9302a54e..be041989070e 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-exts-3.c +++ b/gcc/testsuite/gcc.target/mips/octeon-exts-3.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -march=octeon -mgp64" } */ +/* { dg-options "-march=octeon -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\texts\t" 3 } } */ struct foo diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-4.c b/gcc/testsuite/gcc.target/mips/octeon-exts-4.c index 7e6a578a19ce..0071ae173bce 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-exts-4.c +++ b/gcc/testsuite/gcc.target/mips/octeon-exts-4.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -march=octeon -mgp64" } */ +/* { dg-options "-march=octeon -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tsll\t\[^\n\]*,0" } } */ /* { dg-final { scan-assembler-times "\texts\t" 6 } } */ diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-5.c b/gcc/testsuite/gcc.target/mips/octeon-exts-5.c index e7a4738b96fb..0e587d7eb29f 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-exts-5.c +++ b/gcc/testsuite/gcc.target/mips/octeon-exts-5.c @@ -1,6 +1,7 @@ /* -mel version of octeon-exts-2.c. */ /* { dg-do compile } */ -/* { dg-options "-O -march=octeon -mel" } */ +/* { dg-options "-march=octeon -mel" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\texts\t" 4 } } */ struct bar diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-6.c b/gcc/testsuite/gcc.target/mips/octeon-exts-6.c index d37ed95559d0..b8da271ae312 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-exts-6.c +++ b/gcc/testsuite/gcc.target/mips/octeon-exts-6.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -march=octeon -mgp64" } */ +/* { dg-options "-march=octeon -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\texts\t" 5 } } */ /* { dg-final { scan-assembler-not "\t(dsll|dsra)\t" } } */ /* { dg-final { scan-assembler-not "\tsll\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-7.c b/gcc/testsuite/gcc.target/mips/octeon-exts-7.c index 04805d06de46..d22a4b3c9428 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-exts-7.c +++ b/gcc/testsuite/gcc.target/mips/octeon-exts-7.c @@ -1,6 +1,7 @@ /* Remove the redundant sign-extension after the sign-extraction. */ /* { dg-do compile } */ -/* { dg-options "-O -march=octeon -mgp64" } */ +/* { dg-options "-march=octeon -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "\texts\t" 1 } } */ /* { dg-final { scan-assembler-not "sll|sra" } } */ diff --git a/gcc/testsuite/gcc.target/mips/octeon-pipe-1.c b/gcc/testsuite/gcc.target/mips/octeon-pipe-1.c index 3c9d926d6021..4488e3d51171 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-pipe-1.c +++ b/gcc/testsuite/gcc.target/mips/octeon-pipe-1.c @@ -1,6 +1,7 @@ /* Check that we use the octeon pipeline description. */ /* { dg-do compile } */ -/* { dg-options "-O2 -march=octeon -fdump-rtl-sched2" } */ +/* { dg-options "-march=octeon -fschedule-insns2 -fdump-rtl-sched2" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 int f (int a, int b) { diff --git a/gcc/testsuite/gcc.target/mips/octeon-pop-1.c b/gcc/testsuite/gcc.target/mips/octeon-pop-1.c index 54d2e9c04aa5..6a6791ce6178 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-pop-1.c +++ b/gcc/testsuite/gcc.target/mips/octeon-pop-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -march=octeon -mgp64" } */ +/* { dg-options "-march=octeon -mgp64" } */ /* { dg-final { scan-assembler "\tpop\t" } } */ /* { dg-final { scan-assembler "\tdpop\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/octeon-pop-2.c b/gcc/testsuite/gcc.target/mips/octeon-pop-2.c index 8acd93597525..63a73b348364 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-pop-2.c +++ b/gcc/testsuite/gcc.target/mips/octeon-pop-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -march=octeon -mgp64" } */ +/* { dg-options "-march=octeon -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* The pop instruction does not depend on the word value to be sign extended. */ /* { dg-final { scan-assembler-not "sll\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/octeon-seq-3.c b/gcc/testsuite/gcc.target/mips/octeon-seq-3.c index 899f145844bd..71e09dc6f0ea 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-seq-3.c +++ b/gcc/testsuite/gcc.target/mips/octeon-seq-3.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -march=octeon -mgp64" } */ +/* { dg-options "-march=octeon -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "and\t\|andi\t\|ext\t\|sll\t\|srl\t" } } */ /* { dg-final { scan-assembler-times "\tseqi\t\|\tsnei\t" 4 } } */ diff --git a/gcc/testsuite/gcc.target/mips/octeon-seq-4.c b/gcc/testsuite/gcc.target/mips/octeon-seq-4.c index e61bcb361c02..7069e405028b 100644 --- a/gcc/testsuite/gcc.target/mips/octeon-seq-4.c +++ b/gcc/testsuite/gcc.target/mips/octeon-seq-4.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=octeon" } */ +/* { dg-options "-march=octeon" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "xor" } } */ unsigned diff --git a/gcc/testsuite/gcc.target/mips/octeon2-lx-1.c b/gcc/testsuite/gcc.target/mips/octeon2-lx-1.c index 34d8af8521f5..445e3fc2e7ec 100644 --- a/gcc/testsuite/gcc.target/mips/octeon2-lx-1.c +++ b/gcc/testsuite/gcc.target/mips/octeon2-lx-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-march=octeon2 -O -mgp64" } */ +/* { dg-options "-march=octeon2 -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ #define TEST(N, R, T) \ T fll##N (T j, signed R *b, long long i) { return j + b[i]; } \ diff --git a/gcc/testsuite/gcc.target/mips/octeon2-lx-2.c b/gcc/testsuite/gcc.target/mips/octeon2-lx-2.c index 521a71f961bb..b487637bec14 100644 --- a/gcc/testsuite/gcc.target/mips/octeon2-lx-2.c +++ b/gcc/testsuite/gcc.target/mips/octeon2-lx-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-march=octeon2 -O -mgp64" } */ +/* { dg-options "-march=octeon2 -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ #define TEST(N, T) \ T f##N (T *p, int i) { return p[i]; } \ diff --git a/gcc/testsuite/gcc.target/mips/octeon2-lx-3.c b/gcc/testsuite/gcc.target/mips/octeon2-lx-3.c index 51d2e1031ccd..110cf8bd7f1b 100644 --- a/gcc/testsuite/gcc.target/mips/octeon2-lx-3.c +++ b/gcc/testsuite/gcc.target/mips/octeon2-lx-3.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-march=octeon2 -O -mgp32" } */ +/* { dg-options "-march=octeon2 -mgp32" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ #define TEST(N, T) \ T f##N (T *p, int i) { return p[i]; } \ diff --git a/gcc/testsuite/gcc.target/mips/octeon2-pipe-1.c b/gcc/testsuite/gcc.target/mips/octeon2-pipe-1.c index dc665dd7399a..18fd966715da 100644 --- a/gcc/testsuite/gcc.target/mips/octeon2-pipe-1.c +++ b/gcc/testsuite/gcc.target/mips/octeon2-pipe-1.c @@ -1,6 +1,7 @@ /* Check that we use the octeon2 pipeline description. */ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-rtl-sched2 -march=octeon2" } */ +/* { dg-options "-fschedule-insns2 -fdump-rtl-sched2 -march=octeon2" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 int f (int a, int b) { diff --git a/gcc/testsuite/gcc.target/mips/pr26765.c b/gcc/testsuite/gcc.target/mips/pr26765.c index 25c2e8d4c83a..c4716cff5bae 100644 --- a/gcc/testsuite/gcc.target/mips/pr26765.c +++ b/gcc/testsuite/gcc.target/mips/pr26765.c @@ -2,7 +2,7 @@ This testcase used to trigger an unrecognizable insn. */ /* { dg-do compile } */ -/* { dg-options "-O2 -w" } */ +/* { dg-options "-w" } */ __thread int *a = 0; diff --git a/gcc/testsuite/gcc.target/mips/pr33256.c b/gcc/testsuite/gcc.target/mips/pr33256.c index ead5888cc079..109da4899ef6 100644 --- a/gcc/testsuite/gcc.target/mips/pr33256.c +++ b/gcc/testsuite/gcc.target/mips/pr33256.c @@ -1,6 +1,6 @@ /* GCC used to report an ICE for this test because we generated a LO_SUM for an illegitimate constant. */ -/* { dg-options "-mabi=64 -msym32 -O2 -EB -mno-abicalls" } */ +/* { dg-options "-mabi=64 -msym32 -EB -mno-abicalls" } */ extern unsigned long a[]; int b (int); diff --git a/gcc/testsuite/gcc.target/mips/pr33635-1.c b/gcc/testsuite/gcc.target/mips/pr33635-1.c index 78e761f71c5e..f849b396ea0f 100644 --- a/gcc/testsuite/gcc.target/mips/pr33635-1.c +++ b/gcc/testsuite/gcc.target/mips/pr33635-1.c @@ -1,4 +1,4 @@ -/* { dg-options "-mabi=64 -O2" } */ +/* { dg-options "-mabi=64" } */ NOMIPS16 long double __powitf2 (long double x, int m) { diff --git a/gcc/testsuite/gcc.target/mips/pr33755.c b/gcc/testsuite/gcc.target/mips/pr33755.c index ca6a1e6984d8..c3e2cbfd7d6f 100644 --- a/gcc/testsuite/gcc.target/mips/pr33755.c +++ b/gcc/testsuite/gcc.target/mips/pr33755.c @@ -1,5 +1,4 @@ /* { dg-do link } */ -/* { dg-options "-O2" } */ volatile int gv; const char *ptrs[2]; diff --git a/gcc/testsuite/gcc.target/mips/pr35802.c b/gcc/testsuite/gcc.target/mips/pr35802.c index 9ecc4d06ea6f..acdfaebe338e 100644 --- a/gcc/testsuite/gcc.target/mips/pr35802.c +++ b/gcc/testsuite/gcc.target/mips/pr35802.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -march=74kc -mgp32" } */ +/* { dg-options "-march=74kc -mgp32" } */ __thread int x __attribute__((tls_model("initial-exec"))); __thread int y __attribute__((tls_model("initial-exec"))); diff --git a/gcc/testsuite/gcc.target/mips/pr45074.c b/gcc/testsuite/gcc.target/mips/pr45074.c index ba578c838c15..129467fb0228 100644 --- a/gcc/testsuite/gcc.target/mips/pr45074.c +++ b/gcc/testsuite/gcc.target/mips/pr45074.c @@ -1,4 +1,4 @@ -/* { dg-options "-mhard-float -mgp32 -O" } */ +/* { dg-options "-mhard-float -mgp32" } */ register double g __asm__("$f20"); NOMIPS16 void diff --git a/gcc/testsuite/gcc.target/mips/pr54240.c b/gcc/testsuite/gcc.target/mips/pr54240.c index e932d5ebcd67..65088b52ccd5 100644 --- a/gcc/testsuite/gcc.target/mips/pr54240.c +++ b/gcc/testsuite/gcc.target/mips/pr54240.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-phiopt-details isa>=4" } */ +/* { dg-options "-fdump-tree-phiopt-details isa>=4" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-O1" } { "" } } */ typedef struct s { int v; diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c index b271e2bf416b..b5ffd0aebb87 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mabi=64 -mr10k-cache-barrier=store" } */ +/* { dg-options "-mabi=64 -mr10k-cache-barrier=store" } */ /* Test that stores to uncached addresses do not get unnecessary cache barriers. */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c index 68c4b7ef2392..1b8c6f4ab49c 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c @@ -1,18 +1,20 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store -mips4 -mbranch-likely -mno-abicalls" } */ -int bar (int); +/* { dg-options "-mr10k-cache-barrier=store -mips4 -mbranch-likely -mno-abicalls" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ + +unsigned char *bar (int); /* Test that code after a branch-likely does not get an unnecessary cache barrier. */ NOMIPS16 void -foo (int n, int *x) +foo (unsigned char *n) { do - n = bar (n * 4 + 1); + n = bar (*n + 1); while (n); /* The preceding branch should be a branch likely, with the shift as its delay slot. We therefore don't need a cache barrier here. */ - x[0] = 0; + n[0] = 0; } /* { dg-final { scan-assembler-not "\tcache\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c index d1082d910d88..936c2589d324 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */ +/* { dg-options "-mr10k-cache-barrier=store -mno-abicalls" } */ /* Test that loads are not unnecessarily protected. */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c index d4163910900b..34a12489cbb8 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=load-store -mno-abicalls" } */ +/* { dg-options "-mr10k-cache-barrier=load-store -mno-abicalls" } */ /* Test that loads are correctly protected. */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c index 3e955abf549b..ee9c84b59882 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store" } */ +/* { dg-options "-mr10k-cache-barrier=store" } */ /* Test that indirect calls are protected. */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c index 1fdcee0e25a0..92c37f497c6b 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c @@ -1,4 +1,4 @@ -/* { dg-options "(-mips16) -O2 -mr10k-cache-barrier=store" } */ +/* { dg-options "(-mips16) -mr10k-cache-barrier=store -ffat-lto-objects" } */ /* Test that indirect calls are protected. */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c index a3e7f0db92c4..da655cda1476 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c @@ -1,2 +1,2 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store -mips2" } */ +/* { dg-options "-mr10k-cache-barrier=store -mips2" } */ /* { dg-error "requires.*cache.*instruction" "" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c index 3d06d0ddb6e9..ebf45f94f31d 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mabi=64 -mr10k-cache-barrier=store" } */ +/* { dg-options "-mabi=64 -mr10k-cache-barrier=store" } */ /* Test that stores to constant cached addresses are protected by cache barriers. */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c index be2c7fbd76e5..9e5678981357 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */ +/* { dg-options "-mr10k-cache-barrier=store -mno-abicalls" } */ /* Test that in-range stores to the frame are not protected by cache barriers. */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c index 9dd23eafa781..7780460b2d05 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */ +/* { dg-options "-mr10k-cache-barrier=store -mno-abicalls" } */ void bar (int *x); diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c index a6b53a9ea348..757beefc231c 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls -mabi=64" } */ +/* { dg-options "-mr10k-cache-barrier=store -mno-abicalls -mabi=64" } */ /* Test that in-range stores to static objects do not get an unnecessary cache barrier. */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c index c52caaa1ad26..32dd78cb584b 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store -mabi=64" } */ +/* { dg-options "-mr10k-cache-barrier=store -mabi=64" } */ int x[4]; void bar (void); diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c index 3f738654cc16..3a7a2538eecf 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */ +/* { dg-options "-mr10k-cache-barrier=store -mno-abicalls" } */ void bar1 (void); void bar2 (void); diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c index 394bf486f382..121b907233e7 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store -G8" } */ +/* { dg-options "-mr10k-cache-barrier=store -G8" } */ /* Test that in-range stores to components of static objects do not get an unnecessary cache barrier. */ diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c index 67b52f92d35b..2f83968aad65 100644 --- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c +++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -mr10k-cache-barrier=store -G8" } */ +/* { dg-options "-mr10k-cache-barrier=store -G8" } */ /* Test that out-of-range stores to components of static objects are protected by a cache barrier. */ diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-1.c b/gcc/testsuite/gcc.target/mips/rsqrt-1.c index f0a9b3aed624..16df42d6d144 100644 --- a/gcc/testsuite/gcc.target/mips/rsqrt-1.c +++ b/gcc/testsuite/gcc.target/mips/rsqrt-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ffast-math isa=4 -mhard-float -mgp64" } */ +/* { dg-options "-ffast-math isa=4 -mhard-float -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "rsqrt.d" } } */ /* { dg-final { scan-assembler "rsqrt.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-2.c b/gcc/testsuite/gcc.target/mips/rsqrt-2.c index bc81039d523a..eae515d173b3 100644 --- a/gcc/testsuite/gcc.target/mips/rsqrt-2.c +++ b/gcc/testsuite/gcc.target/mips/rsqrt-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ffast-math isa=4 -mhard-float -mgp64" } */ +/* { dg-options "-ffast-math isa=4 -mhard-float -mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "rsqrt.d" } } */ /* { dg-final { scan-assembler "rsqrt.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-3.c b/gcc/testsuite/gcc.target/mips/rsqrt-3.c index cfa771ef86be..f86249007d89 100644 --- a/gcc/testsuite/gcc.target/mips/rsqrt-3.c +++ b/gcc/testsuite/gcc.target/mips/rsqrt-3.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 isa=4 -mhard-float" } */ +/* { dg-options "isa=4 -mhard-float" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "rsqrt.d" } } */ /* { dg-final { scan-assembler-not "rsqrt.s" } } */ diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-4.c b/gcc/testsuite/gcc.target/mips/rsqrt-4.c index 726c35403dcb..6b6577e2e0a9 100644 --- a/gcc/testsuite/gcc.target/mips/rsqrt-4.c +++ b/gcc/testsuite/gcc.target/mips/rsqrt-4.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ffast-math -mips64 -mhard-float -mgp32" } */ +/* { dg-options "-ffast-math -mips64 -mhard-float -mgp32" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\trsqrt.d\t" } } */ /* { dg-final { scan-assembler-times "\trsqrt.s\t" 2 } } */ diff --git a/gcc/testsuite/gcc.target/mips/save-restore-1.c b/gcc/testsuite/gcc.target/mips/save-restore-1.c index f6a854ee9f3b..b3ce1b18dc27 100644 --- a/gcc/testsuite/gcc.target/mips/save-restore-1.c +++ b/gcc/testsuite/gcc.target/mips/save-restore-1.c @@ -1,5 +1,5 @@ /* Check that we can use the save instruction to save varargs. */ -/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */ +/* { dg-options "(-mips16) isa_rev>=1 -mabi=32" } */ #include diff --git a/gcc/testsuite/gcc.target/mips/save-restore-2.c b/gcc/testsuite/gcc.target/mips/save-restore-2.c index 4a11bc210831..899460fe7b61 100644 --- a/gcc/testsuite/gcc.target/mips/save-restore-2.c +++ b/gcc/testsuite/gcc.target/mips/save-restore-2.c @@ -1,5 +1,6 @@ /* Check that we can use the save instruction to save spilled arguments. */ -/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */ +/* { dg-options "(-mips16) isa_rev>=1 -mabi=32" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ MIPS16 void foo (int *a, int b, int c) diff --git a/gcc/testsuite/gcc.target/mips/save-restore-3.c b/gcc/testsuite/gcc.target/mips/save-restore-3.c index d45fe50ea6bd..5d7aeb0edd9d 100644 --- a/gcc/testsuite/gcc.target/mips/save-restore-3.c +++ b/gcc/testsuite/gcc.target/mips/save-restore-3.c @@ -1,6 +1,6 @@ /* Check that we can use the save instruction to save spilled arguments when the argument save area is out of range of a direct load or store. */ -/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */ +/* { dg-options "(-mips16) isa_rev>=1 -mabi=32" } */ void bar (int *); diff --git a/gcc/testsuite/gcc.target/mips/save-restore-4.c b/gcc/testsuite/gcc.target/mips/save-restore-4.c index ef7722bce094..25f3e6199d24 100644 --- a/gcc/testsuite/gcc.target/mips/save-restore-4.c +++ b/gcc/testsuite/gcc.target/mips/save-restore-4.c @@ -1,5 +1,6 @@ /* Check that we can use the save instruction to save $16, $17 and $31. */ -/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */ +/* { dg-options "(-mips16) isa_rev>=1 -mabi=32" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ void bar (void); diff --git a/gcc/testsuite/gcc.target/mips/save-restore-5.c b/gcc/testsuite/gcc.target/mips/save-restore-5.c index 0dd823a68138..b0dc1f057e95 100644 --- a/gcc/testsuite/gcc.target/mips/save-restore-5.c +++ b/gcc/testsuite/gcc.target/mips/save-restore-5.c @@ -1,5 +1,5 @@ /* Check that we don't try to save the same register twice. */ -/* { dg-options "(-mips16) isa_rev>=1 -mgp32 -O2" } */ +/* { dg-options "(-mips16) isa_rev>=1 -mgp32" } */ int bar (int, int, int, int); void frob (void); diff --git a/gcc/testsuite/gcc.target/mips/sb1-1.c b/gcc/testsuite/gcc.target/mips/sb1-1.c index 819938fcdc0f..c3fb22a85703 100644 --- a/gcc/testsuite/gcc.target/mips/sb1-1.c +++ b/gcc/testsuite/gcc.target/mips/sb1-1.c @@ -1,10 +1,11 @@ /* Test SB-1 v2sf extensions. */ /* { dg-do compile } */ -/* { dg-options "-march=sb1 -O2 -mpaired-single -mgp64 -ffast-math" } */ +/* { dg-options "-march=sb1 -mpaired-single -mgp64 -ffast-math" } */ +/* { dg-skip-if "rsqrt code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "div.ps" } } */ /* { dg-final { scan-assembler "recip.ps" } } */ /* { dg-final { scan-assembler "sqrt.ps" } } */ -/* { dg-final { scan-assembler "rsqrt.ps" } } */ +/* { dg-final { scan-assembler "rsqrt.ps" } } */ typedef float v2sf __attribute__ ((vector_size (8))); diff --git a/gcc/testsuite/gcc.target/mips/scc-1.c b/gcc/testsuite/gcc.target/mips/scc-1.c index d0dc040151c0..17599a837560 100644 --- a/gcc/testsuite/gcc.target/mips/scc-1.c +++ b/gcc/testsuite/gcc.target/mips/scc-1.c @@ -1,4 +1,5 @@ -/* { dg-options "(-mips16) -O isa_rev>=1" } */ +/* { dg-options "(-mips16) isa_rev>=1" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times {slt \$2,\$5,\$4} 1 } } */ /* { dg-final { scan-assembler-times {sltu \$2,\$5,\$4} 1 } } */ diff --git a/gcc/testsuite/gcc.target/mips/scc-2.c b/gcc/testsuite/gcc.target/mips/scc-2.c index 440c28b84bf3..132da7bcf65e 100644 --- a/gcc/testsuite/gcc.target/mips/scc-2.c +++ b/gcc/testsuite/gcc.target/mips/scc-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -mgp64" } */ +/* { dg-options "-mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "and\t\|andi\t\|ext\t\|sll\t\|srl\t" } } */ /* { dg-final { scan-assembler-times "slt\t\|slti?u\t" 12 } } */ diff --git a/gcc/testsuite/gcc.target/mips/scc-3.c b/gcc/testsuite/gcc.target/mips/scc-3.c index b295e782c2df..a07a85adad7b 100644 --- a/gcc/testsuite/gcc.target/mips/scc-3.c +++ b/gcc/testsuite/gcc.target/mips/scc-3.c @@ -1,4 +1,5 @@ -/* { dg-options "(-mips16) -O -mabi=o64" } */ +/* { dg-options "(-mips16) -mabi=o64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "and\t\|andi\t\|ext\t\|sll\t\|srl\t" } } */ /* { dg-final { scan-assembler-times "slt\t\|slti?u\t" 8 } } */ diff --git a/gcc/testsuite/gcc.target/mips/scc-4.c b/gcc/testsuite/gcc.target/mips/scc-4.c index 40460666c7f2..05ba66719405 100644 --- a/gcc/testsuite/gcc.target/mips/scc-4.c +++ b/gcc/testsuite/gcc.target/mips/scc-4.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -mabi=o64" } */ +/* { dg-options "-mabi=o64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler "slt\t" } } */ /* { dg-final { scan-assembler "sltu\t\|xor\t\|xori\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/sdata-1.c b/gcc/testsuite/gcc.target/mips/sdata-1.c index f9a25cdc9f78..646a449947e6 100644 --- a/gcc/testsuite/gcc.target/mips/sdata-1.c +++ b/gcc/testsuite/gcc.target/mips/sdata-1.c @@ -20,9 +20,9 @@ /* { dg-final { scan-assembler-not "%gp_?rel\\(g8b\\)" } } */ /* { dg-final { scan-assembler "%gp_?rel\\(g8c\\)" } } */ -static int l4a; -static int l4b = 1; -static int __attribute__((section(".sdata"))) l4c; +static volatile int l4a; +static volatile int l4b = 1; +static volatile int __attribute__((section(".sdata"))) l4c; extern int e4a; extern int __attribute__((section(".sdata"))) e4b; int __attribute__((common)) c4; @@ -30,9 +30,9 @@ int __attribute__((nocommon)) g4a; int g4b = 1; int __attribute__((section(".sdata"))) g4c = 2; -static int l8a[2]; -static int l8b[2] = { 1, 2 }; -static int __attribute__((section(".sdata"))) l8c[2]; +static volatile int l8a[2]; +static volatile int l8b[2] = { 1, 2 }; +static volatile int __attribute__((section(".sdata"))) l8c[2]; extern int e8a[2]; extern int __attribute__((section(".sdata"))) e8b[2]; int __attribute__((common)) c8[2]; diff --git a/gcc/testsuite/gcc.target/mips/sdata-2.c b/gcc/testsuite/gcc.target/mips/sdata-2.c index 5a9fff2da1da..fe55120f6494 100644 --- a/gcc/testsuite/gcc.target/mips/sdata-2.c +++ b/gcc/testsuite/gcc.target/mips/sdata-2.c @@ -20,9 +20,9 @@ /* { dg-final { scan-assembler-not "%gp_?rel\\(g8b\\)" } } */ /* { dg-final { scan-assembler "%gp_?rel\\(g8c\\)" } } */ -static int l4a; -static int l4b = 1; -static int __attribute__((section(".sdata"))) l4c; +static volatile int l4a; +static volatile int l4b = 1; +static volatile int __attribute__((section(".sdata"))) l4c; extern int e4a; extern int __attribute__((section(".sdata"))) e4b; int __attribute__((common)) c4; @@ -30,9 +30,9 @@ int __attribute__((nocommon)) g4a; int g4b = 1; int __attribute__((section(".sdata"))) g4c = 2; -static int l8a[2]; -static int l8b[2] = { 1, 2 }; -static int __attribute__((section(".sdata"))) l8c[2]; +static volatile int l8a[2]; +static volatile int l8b[2] = { 1, 2 }; +static volatile int __attribute__((section(".sdata"))) l8c[2]; extern int e8a[2]; extern int __attribute__((section(".sdata"))) e8b[2]; int __attribute__((common)) c8[2]; diff --git a/gcc/testsuite/gcc.target/mips/sdata-3.c b/gcc/testsuite/gcc.target/mips/sdata-3.c index f232324954f4..6705ee35a8e2 100644 --- a/gcc/testsuite/gcc.target/mips/sdata-3.c +++ b/gcc/testsuite/gcc.target/mips/sdata-3.c @@ -20,9 +20,9 @@ /* { dg-final { scan-assembler-not "%gp_?rel\\(g8b\\)" } } */ /* { dg-final { scan-assembler "%gp_?rel\\(g8c\\)" } } */ -static int l4a; -static int l4b = 1; -static int __attribute__((section(".sdata"))) l4c; +static volatile int l4a; +static volatile int l4b = 1; +static volatile int __attribute__((section(".sdata"))) l4c; extern int e4a; extern int __attribute__((section(".sdata"))) e4b; int __attribute__((common)) c4; @@ -30,9 +30,9 @@ int __attribute__((nocommon)) g4a; int g4b = 1; int __attribute__((section(".sdata"))) g4c = 2; -static int l8a[2]; -static int l8b[2] = { 1, 2 }; -static int __attribute__((section(".sdata"))) l8c[2]; +static volatile int l8a[2]; +static volatile int l8b[2] = { 1, 2 }; +static volatile int __attribute__((section(".sdata"))) l8c[2]; extern int e8a[2]; extern int __attribute__((section(".sdata"))) e8b[2]; int __attribute__((common)) c8[2]; diff --git a/gcc/testsuite/gcc.target/mips/sdata-4.c b/gcc/testsuite/gcc.target/mips/sdata-4.c index 7786c6db9e4c..82cfa61f8934 100644 --- a/gcc/testsuite/gcc.target/mips/sdata-4.c +++ b/gcc/testsuite/gcc.target/mips/sdata-4.c @@ -3,9 +3,9 @@ /* { dg-final { scan-assembler-not "%gp_?rel" } } */ /* { dg-final { scan-assembler-not "\\\$gp" } } */ -static int l4a; -static int l4b = 1; -static int __attribute__((section(".sdata"))) l4c; +static volatile int l4a; +static volatile int l4b = 1; +static volatile int __attribute__((section(".sdata"))) l4c; extern int e4a; extern int __attribute__((section(".sdata"))) e4b; int __attribute__((common)) c4; @@ -13,9 +13,9 @@ int __attribute__((nocommon)) g4a; int g4b = 1; int __attribute__((section(".sdata"))) g4c = 2; -static int l8a[2]; -static int l8b[2] = { 1, 2 }; -static int __attribute__((section(".sdata"))) l8c[2]; +static volatile int l8a[2]; +static volatile int l8b[2] = { 1, 2 }; +static volatile int __attribute__((section(".sdata"))) l8c[2]; extern int e8a[2]; extern int __attribute__((section(".sdata"))) e8b[2]; int __attribute__((common)) c8[2]; diff --git a/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c b/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c index 92f46250eb69..ce64b13a77f5 100644 --- a/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c +++ b/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O -msmartmips" } */ +/* { dg-options "-msmartmips" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 int scaled_indexed_word_load (int a[], int b) { diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c index e9735b20a52e..6300f8f03fd2 100644 --- a/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c +++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -msmartmips" } */ +/* { dg-options "-msmartmips" } */ NOMIPS16 int rotate_left (unsigned a, unsigned s) { diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c index ac4c94df8e2d..2d7c5dcd63f4 100644 --- a/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c +++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -msmartmips" } */ +/* { dg-options "-msmartmips" } */ NOMIPS16 int rotate_right (unsigned a, unsigned s) { diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c index 360f3c463ff3..5e51aa3f0185 100644 --- a/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c +++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -msmartmips" } */ +/* { dg-options "-msmartmips" } */ #define S 13 diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c index b8b829445405..fc88a9a82630 100644 --- a/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c +++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -msmartmips" } */ +/* { dg-options "-msmartmips" } */ #define S 13 diff --git a/gcc/testsuite/gcc.target/mips/soft-float-1.c b/gcc/testsuite/gcc.target/mips/soft-float-1.c index 4c4564627978..855ff8eaddaa 100644 --- a/gcc/testsuite/gcc.target/mips/soft-float-1.c +++ b/gcc/testsuite/gcc.target/mips/soft-float-1.c @@ -1,7 +1,8 @@ -/* { dg-options "-msoft-float" } */ +/* { dg-options "-msoft-float -ffat-lto-objects" } */ void foo (void) { register float x asm ("$f0"); /* { dg-error "cannot be accessed" } */ + asm volatile ("" : "=r" (x)); } diff --git a/gcc/testsuite/gcc.target/mips/stack-1.c b/gcc/testsuite/gcc.target/mips/stack-1.c index 3d495453dd75..63852154850c 100644 --- a/gcc/testsuite/gcc.target/mips/stack-1.c +++ b/gcc/testsuite/gcc.target/mips/stack-1.c @@ -1,4 +1,3 @@ -/* { dg-options "-O2" } */ /* { dg-final { scan-assembler "addiu\t(\\\$sp,)?\\\$sp,\[1-9\]" } } */ /* { dg-final { scan-assembler "\tlw\t" } } */ /* { dg-final { scan-assembler-not "addiu\t(\\\$sp,)?\\\$sp,\[1-9\].*\tlw\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/timode-1.c b/gcc/testsuite/gcc.target/mips/timode-1.c index fc087ee1c351..606fee0cb1a2 100644 --- a/gcc/testsuite/gcc.target/mips/timode-1.c +++ b/gcc/testsuite/gcc.target/mips/timode-1.c @@ -1,4 +1,5 @@ /* { dg-options "-mgp64" } */ +/* { dg-skip-if "we deliberately use calls when optimizing for size" { *-*-* } { "-Os" } { "" } } */ typedef int int128_t __attribute__((mode(TI))); typedef unsigned int uint128_t __attribute__((mode(TI))); @@ -22,44 +23,84 @@ volatile int amount = 4; volatile uint128_t result; int -main (void) +test1 (void) { result = a * b; if (result != c) return 1; + return 0; +} +int +test2 (void) +{ result = c + d; if (result != e) return 1; + return 0; +} +int +test3 (void) +{ result = e - d; if (result != c) return 1; + return 0; +} +int +test4 (void) +{ result = d & e; if (result != f) return 1; + return 0; +} +int +test5 (void) +{ result = d ^ e; if (result != g) return 1; + return 0; +} +int +test6 (void) +{ result = d | e; if (result != h) return 1; + return 0; +} +int +test7 (void) +{ result = g << amount; if (result != i) return 1; + return 0; +} +int +test8 (void) +{ result = g >> amount; if (result != j) return 1; + return 0; +} +int +test9 (void) +{ result = (int128_t) g >> amount; if (result != k) return 1; - return 0; } + /* { dg-final { scan-assembler-not "\tjal" } } */ diff --git a/gcc/testsuite/gcc.target/mips/timode-2.c b/gcc/testsuite/gcc.target/mips/timode-2.c index 9f3e43c41bde..b6b8ea99ba09 100644 --- a/gcc/testsuite/gcc.target/mips/timode-2.c +++ b/gcc/testsuite/gcc.target/mips/timode-2.c @@ -23,43 +23,96 @@ volatile int amount = 4; volatile uint128_t result; int -main (void) +test1 (void) { result = a * b; if (result != c) return 1; + return 0; +} +int +test2 (void) +{ result = c + d; if (result != e) return 1; + return 0; +} +int +test3 (void) +{ result = e - d; if (result != c) return 1; + return 0; +} +int +test4 (void) +{ result = d & e; if (result != f) return 1; + return 0; +} +int +test5 (void) +{ result = d ^ e; if (result != g) return 1; + return 0; +} +int +test6 (void) +{ result = d | e; if (result != h) return 1; + return 0; +} +int +test7 (void) +{ result = g << amount; if (result != i) return 1; + return 0; +} +int +test8 (void) +{ result = g >> amount; if (result != j) return 1; + return 0; +} +int +test9 (void) +{ result = (int128_t) g >> amount; if (result != k) return 1; - return 0; } + +int +main (void) +{ + return (test1 () + | test2 () + | test3 () + | test4 () + | test5 () + | test6 () + | test7 () + | test8 () + | test9 ()); +} diff --git a/gcc/testsuite/gcc.target/mips/truncate-1.c b/gcc/testsuite/gcc.target/mips/truncate-1.c index 7e54aae3ebaa..d12ebd31116d 100644 --- a/gcc/testsuite/gcc.target/mips/truncate-1.c +++ b/gcc/testsuite/gcc.target/mips/truncate-1.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp64" } */ +/* { dg-options "-mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ #define TEST(ID, TYPE, SHIFT) \ int __attribute__((nomips16)) \ diff --git a/gcc/testsuite/gcc.target/mips/truncate-2.c b/gcc/testsuite/gcc.target/mips/truncate-2.c index 423dc26f4daf..06ab58f5a3a2 100644 --- a/gcc/testsuite/gcc.target/mips/truncate-2.c +++ b/gcc/testsuite/gcc.target/mips/truncate-2.c @@ -1,4 +1,5 @@ -/* { dg-options "-O -mgp64" } */ +/* { dg-options "-mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ #define TEST(ID, TYPE, SHIFT) \ int NOMIPS16 \ diff --git a/gcc/testsuite/gcc.target/mips/truncate-3.c b/gcc/testsuite/gcc.target/mips/truncate-3.c index 90f2c772f837..fcb69e4b44f3 100644 --- a/gcc/testsuite/gcc.target/mips/truncate-3.c +++ b/gcc/testsuite/gcc.target/mips/truncate-3.c @@ -1,5 +1,6 @@ /* Remove redundant operations in truncate's operand. */ -/* { dg-options "-O -mgp64" } */ +/* { dg-options "-mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tandi?\t" } } */ f (long long d) diff --git a/gcc/testsuite/gcc.target/mips/truncate-4.c b/gcc/testsuite/gcc.target/mips/truncate-4.c index 4c783681ab26..cda90e00cd78 100644 --- a/gcc/testsuite/gcc.target/mips/truncate-4.c +++ b/gcc/testsuite/gcc.target/mips/truncate-4.c @@ -1,5 +1,6 @@ /* The and is performed in DI mode so there is no need for truncation. */ -/* { dg-options "-O -mgp64" } */ +/* { dg-options "-mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tsll\t" } } */ NOMIPS16 unsigned long long diff --git a/gcc/testsuite/gcc.target/mips/truncate-5.c b/gcc/testsuite/gcc.target/mips/truncate-5.c index 6cdb7f71e7f7..f2a1875e9595 100644 --- a/gcc/testsuite/gcc.target/mips/truncate-5.c +++ b/gcc/testsuite/gcc.target/mips/truncate-5.c @@ -1,6 +1,7 @@ /* If we AND in DI mode (i.e. replace the order of TRUNCATE and AND) then we can remove the TRUNCATE. */ -/* { dg-options "-O -mgp64" } */ +/* { dg-options "-mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tsll\t\[^\n\]*,0" } } */ struct s diff --git a/gcc/testsuite/gcc.target/mips/truncate-6.c b/gcc/testsuite/gcc.target/mips/truncate-6.c index 1ccd6c59c3d6..178d4baa4cdc 100644 --- a/gcc/testsuite/gcc.target/mips/truncate-6.c +++ b/gcc/testsuite/gcc.target/mips/truncate-6.c @@ -1,7 +1,8 @@ /* setup_incoming_promotions should detect x to be already sign-extended due to PROMOTE_MODE. Thus the truncation should be removed by combine. Based on gcc.c-torture/execute/pr34070-2.c. */ -/* { dg-options "-O -mgp64" } */ +/* { dg-options "-mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tsll\t\[^\n\]*,0" } } */ NOMIPS16 int f(unsigned int x, int n, int *p) diff --git a/gcc/testsuite/gcc.target/mips/unaligned-1.c b/gcc/testsuite/gcc.target/mips/unaligned-1.c index 23b6c8c74344..34565fd4c622 100644 --- a/gcc/testsuite/gcc.target/mips/unaligned-1.c +++ b/gcc/testsuite/gcc.target/mips/unaligned-1.c @@ -1,4 +1,5 @@ -/* { dg-options "-O2 -mgp64" } */ +/* { dg-options "-mgp64" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-times "sdl\t" 1 } } */ /* { dg-final { scan-assembler-times "sdr\t" 1 } } */ /* { dg-final { scan-assembler-times "ldl\t" 1 } } */ diff --git a/gcc/testsuite/gcc.target/mips/vr-mult-1.c b/gcc/testsuite/gcc.target/mips/vr-mult-1.c index 2ed4f2f9b064..db9ae3430ae3 100644 --- a/gcc/testsuite/gcc.target/mips/vr-mult-1.c +++ b/gcc/testsuite/gcc.target/mips/vr-mult-1.c @@ -1,7 +1,8 @@ /* Make sure that mul/addu is preferred over mtlo/macc and that mul/subu is preferred over mtlo/msac. */ /* { dg-do compile } */ -/* { dg-options "-O2 -march=vr5400" } */ +/* { dg-options "-march=vr5400 -fpeephole2" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 int f1 (int a, int b, int c) { return a + b * c; } NOMIPS16 int f2 (int a, int b, int c) { return a - b * c; } /* { dg-final { scan-assembler "\tmul\t.*\tmul\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/vr-mult-2.c b/gcc/testsuite/gcc.target/mips/vr-mult-2.c index 7e8be5e42837..58bdc089339f 100644 --- a/gcc/testsuite/gcc.target/mips/vr-mult-2.c +++ b/gcc/testsuite/gcc.target/mips/vr-mult-2.c @@ -1,7 +1,8 @@ /* Make sure that mul/addu is preferred over mtlo/macc and that mul/subu is preferred over mtlo/msac. */ /* { dg-do compile } */ -/* { dg-options "-O2 -march=vr5500" } */ +/* { dg-options "-march=vr5500 -fpeephole2" } */ +/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ NOMIPS16 int f1 (int a, int b, int c) { return a + b * c; } NOMIPS16 int f2 (int a, int b, int c) { return a - b * c; } /* { dg-final { scan-assembler "\tmul\t.*\tmul\t" } } */