diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-27 16:27:50 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-27 16:27:50 +0000 |
commit | 45bee5d0be8c3aef71e9495a71378fccecaab81d (patch) | |
tree | 357bdb69a5df0d487a6202594a2bc55afd31a94e /gcc/testsuite | |
parent | 69b6195fe8b9cd8150e83ea085aa81ee6459c43f (diff) | |
download | gcc-45bee5d0be8c3aef71e9495a71378fccecaab81d.tar.gz |
gcc/testsuite/
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190718 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
306 files changed, 1078 insertions, 391 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d34a5c19882..aeebb09d5d6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,355 @@ +2012-08-27 Richard Sandiford <rdsandiford@googlemail.com> + + * 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 <dodji@redhat.com> PR preprocessor/53469 diff --git a/gcc/testsuite/gcc.target/mips/20020620-1.c b/gcc/testsuite/gcc.target/mips/20020620-1.c index 1f2affe48fc..8a70dd3b13c 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 ebc5dd67240..75bd1b664be 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 5a776eca988..1649433e633 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 3882e48fa35..03d7c271836 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 5569bf521e8..bb6fa17ac03 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 5cab4c97a62..11dfe2bc89d 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 eb455da96a8..ffbe62c48c5 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 6a0f7023c9d..f6fa20d1203 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 3edf86787cb..a30b573cb18 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 b444209e3b9..f9729a3dc4b 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 868719c445f..b064bf5e926 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 b268d888a46..6a524091215 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 5a0d9172651..6a5203e8c57 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 4227169ec7e..d5f52d94ca5 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 5301cfc5b73..113bbcc5a34 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 f43e9157bad..5f734687cfe 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 a670fe5af91..19e6d91d2de 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 2032b36d9d0..fb1b888d88e 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 5a3e93effaf..64a7f585466 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 bdb9464c74a..790122077c7 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 6340b63252b..2f28aeb61e5 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 1583034b2a3..89cd9a20790 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 4a88739b695..840e9aa130d 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 548ae0d4a13..832550e45cb 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 89d03ab6740..e06b8829293 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 db5893e4527..54ac2d707f3 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 df164b22f6c..94848f4e1be 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 df58d1f0285..8c2ca36d9f7 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 43078f6809a..02633567ca2 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 9f9cb3a3483..8df2689469e 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 bc597ab2d2b..de17ec3c4b4 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 2f4510f8dd6..6ef50e8a187 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 8186030e6e1..e2b1b5f6baa 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 a314740655d..962eb1b5d66 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 3e5b421cf87..4aef160ade8 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 9bd94146a6f..8a6fb049f24 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 4595feafa61..ba5f954378c 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 417507cc48e..cad1c003c3e 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 d825e06176e..f72f2acfb3a 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 23f528ad63f..3b2c4a13e5e 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 da897066d49..f5c3dd307d8 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 7dceefaa3d2..a9c97c329e4 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 8e749919031..7fabb1fd970 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 25f01d2a901..2c564886b1d 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 00000000000..049e33882fa --- /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 9ac7a2735ad..b55c30ab062 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 e178eb0f061..84cdb3b8898 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 2925d98dd07..302aec3f1f5 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 be2e2218bbe..f1f7f819099 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 c35d60c8b1e..34c2c0a770a 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 e0176c3dbd5..71aeb132c0c 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 075ca8d1749..fc785055196 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 d29216f6de1..ae8ff8a1a66 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 66981671d02..2f493d09c42 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 ccb89bb766c..8666edf303e 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 e1976c25e0d..08234a6e1b1 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 23075da2c3d..fb8953def4d 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 68f1658484b..ff129292a34 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 c2384b20a9d..57866ceb021 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 af6e2fa8e1a..257ca923d05 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 684b6a8e441..b9ae3684ef4 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 251b88f8164..5f05d8e78ee 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 a08f3e6f4bd..294cc7f24ac 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 23075da2c3d..fb8953def4d 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 68f1658484b..ff129292a34 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 c2384b20a9d..57866ceb021 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 a08f3e6f4bd..294cc7f24ac 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 87d1da98cb5..a48f561f320 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 9aeb5667acf..fb63a1db80a 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 6ef55cde25e..e53189cadd8 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 bb89e84f239..4bf449b86ca 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 416356f2a03..8fa20a09090 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 a37c42f1a90..42c4688cd0f 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 c685974895d..7c611a3266b 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 7f04315efe5..a567972447b 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 426cbb28573..3306c70941d 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 d6ccce29e04..6b3d4efc415 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 acdbbc9a413..e921c8b1df0 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 f3d2ad92aa3..38362e5d77a 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 64186383cb2..8bab2148f49 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 b4a7dd2515c..e12cbe6e1c4 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 394d41f06c8..2e23dd6525f 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 90241dd2f19..9ceee7b9f76 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 94d199f887b..9240ea55886 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 b91ae209c0c..a2036a899ee 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 76f3b86ec5d..edf4d70c63e 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 6ac908a71bb..ab353b6b1e4 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 e1677b6577a..30f6038b71f 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 f767ae20289..855000df2bf 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 b0779e0ec34..aa2d236f679 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 4a690f59ed1..542e02f9cb0 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 bb5fd743af7..f44a725ec63 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 bac01913405..88a59184197 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 bec7951c1d4..fbeeca10f5e 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 864ab8c1ee4..344c6277b5b 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 62fd70f5f09..a775a6c0e62 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 d8bdb4516de..62f8fdfb4bd 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 d4b558e0115..635326c5c54 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 d48ed263c82..68978494d6e 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 88afad339c9..3d140b1bc8a 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 551d3549d84..5c812f25600 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 8c938b7d219..7227bc8c092 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 7cfad3d2f79..1ea7a7c408b 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 d449283ddf3..a2afabbc73b 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 6cb7d3594e0..0261b16b1c8 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 bd12509d1bd..195a9d10ced 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 3854db8967d..7a66182f524 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 c46300f62db..0c063080068 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 1e33cc4f765..9647a900cdd 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 118ba99dfeb..ddba3038350 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 f2c71c1ef1a..4ae670622ba 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 da9c11364d2..316715c5934 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 b4734f4d522..810c82c2f65 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 9b67704794f..ddd9660f1d4 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 cae48a0e93a..2ddd3c3389e 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 3e1c259f89a..cf0cbbbb51a 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 92977e04e38..51a5f172389 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 3f4f833ba5e..ffe614fcbb2 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 34784d01ce2..80db0710c4c 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 282cf761b37..d8f78586ce5 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 8f685750f75..18d88804904 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 f89a40a3bc1..30a83ec66f3 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 3abd10417d7..56d7ccd637c 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 8b6901b7fc7..bf64193b87e 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 9e19354d1a6..02bb8ae9e2c 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 a71e6c05326..916bc4b5e2d 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 485555c39ff..77a554d21a5 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 eba7983707b..930c36f9f83 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 13b41e11885..9ab32bf5a0d 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 2380123b16e..298e0467779 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 e281a270a6e..4f8dde566f7 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 5e554c497d8..5ccfe5149bd 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 fd7289ceaf7..2efc3ef3f32 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 6f1f1387551..07523aa4a4e 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 1c892d80627..778d7398133 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 <assert.h> diff --git a/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c b/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c index cc15b83ab93..1c4d010b354 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 592b492c308..9695b3f6258 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 53881a4b085..416673b46d7 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 eab7a68454c..ce0d9eb6fa0 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 6b479f59c71..29f4c9b3768 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 f325af74698..28c751b40f7 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 1ad1c91f3e1..d1696a6a869 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 4e5afadceb2..9323b8e104a 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 b43d7207427..a639aa4f8fe 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 35092a8ad93..794a6ff1727 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 25dbd18a510..6d545495c03 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 04161ce3a21..af2b4181cdf 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 a9768f15bf8..ea091e4e1ce 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 b0b4817a47f..27a7350f07b 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 9c1ccd5f926..58c4a7ebe0c 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 f3eda7500db..f4e4698141e 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 <string.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-1.c b/gcc/testsuite/gcc.target/mips/mips-3d-1.c index eb3f8f9a864..f11ffc5a80f 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-2.c b/gcc/testsuite/gcc.target/mips/mips-3d-2.c index dc815748ebd..b04c3bfb5d5 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-3.c b/gcc/testsuite/gcc.target/mips/mips-3d-3.c index 7df590f5c30..e4de8fb19bf 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-4.c b/gcc/testsuite/gcc.target/mips/mips-3d-4.c index 7f9cbdb1b84..3d28d7f2c66 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-5.c b/gcc/testsuite/gcc.target/mips/mips-3d-5.c index c07dbe50580..a433675cab9 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-6.c b/gcc/testsuite/gcc.target/mips/mips-3d-6.c index 848414540f0..e6b44f07585 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-7.c b/gcc/testsuite/gcc.target/mips/mips-3d-7.c index d5d09f99869..2531ddf8b1a 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-8.c b/gcc/testsuite/gcc.target/mips/mips-3d-8.c index c80f2b9c893..1d199d7d0c0 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-9.c b/gcc/testsuite/gcc.target/mips/mips-3d-9.c index 3875391b535..d697efdedf1 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-1.c b/gcc/testsuite/gcc.target/mips/mips-ps-1.c index 9e6c6600617..73598a840bd 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-2.c b/gcc/testsuite/gcc.target/mips/mips-ps-2.c index baec12c1ce6..52642558664 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-3.c b/gcc/testsuite/gcc.target/mips/mips-ps-3.c index e9ed4c03f5f..7e6ffd0667b 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-4.c b/gcc/testsuite/gcc.target/mips/mips-ps-4.c index b4452d09105..06850adb300 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-5.c b/gcc/testsuite/gcc.target/mips/mips-ps-5.c index 94d2f80efc7..7b6d76f790e 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 5b8b2522866..5bdfe436f40 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 <stdlib.h> diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-7.c b/gcc/testsuite/gcc.target/mips/mips-ps-7.c index 65a1104ba39..cfc440bd30c 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 f7988553394..6d5ebaee765 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 2a10f91bd54..c7dcddd2c30 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 c0f9d332a59..1db1550fd49 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 5b1bb7a45a6..fddce3427ac 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 d077f2fae6e..15f7dd87db8 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 ccbdef553ee..ccd9d380fb3 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 <stdlib.h> #include <stdio.h> @@ -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 c2a8ae77505..8a292ef66cc 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 1b3031ff19d..1f7e9287313 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 cf57323db1a..359a845901d 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 d1366761902..02e6166577d 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 8514ed8cb4b..3d07939ca59 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 bb59a1828c9..34b30d9874c 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 8c94c8345e9..17bcb76be50 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 1a930c9ac06..fbc6781e489 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 d42acc1d77c..cb91a9db573 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 e6481777add..a1ddf57fb06 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 803ea77df74..9a222bfda9d 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 e6cdc2c1a9a..c0923cd113d 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 c44f34f4f0e..aedd04302ac 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 d41c3129914..84cb5fe333c 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 dcb124a7198..eba104c7f01 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 ee4ca3d8da0..32411e61faf 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 7ae96acb42e..ee049876e37 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 49d67f24a6c..a66307f1041 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 ae804034644..e1146f8bca9 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 186dc47d6f7..642d1239460 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 272c64818e3..2e936ebe03f 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 8f5fd647b37..a4f6118600e 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 8630ec95d5e..1038797f228 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 0b990c36413..c479ebbc553 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 d2ba695f6dd..8b26c1de7a4 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 bd772d2cd74..bf8d36c7629 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 e0859f629f3..beb6ab9432c 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 c4b54b7ec45..e3cbd75bf28 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 a96049e04e6..da47bd29227 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 cb1707d9125..3e9b3785b1b 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 3539f63d96a..84baff8cd8c 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 cfdac8b0de1..52487f30dff 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 47cdd5c23c3..11cdb17c867 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 8494e14c358..77be3116273 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 fa7cfa34e23..e46978bc409 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 d579f0023d2..939ca5cdb40 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 6df86a1163d..efb06af8559 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 a6b910ec402..82d4f5d453a 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 7c2989baa52..35b07498070 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 3e3acde81e3..18dce2013d6 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 aa2ededa67a..59d450ab2c0 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 f4ae791f1a0..d4d48b1ed53 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 b9aa21fe4f4..0ea07b06205 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 20691ff2c4b..6c942586455 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 67125f78a67..f34f74320e3 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 123d48799ed..46b70820c5b 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 90e4d838d89..dee6fcb3ece 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 df726186128..c553fb7065a 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 093037579b9..c4a7b0aede2 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 ee7f3d54d5d..ecf856ea7fa 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 d1f50a8fbef..419d086b8af 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 8dd5be16765..e7150d29733 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 6629dbb5844..f91c68bcdcc 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 55bf23eae4e..9bd8dce107a 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 bcc37d29e34..2726037bee1 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 ac85e237846..dd0b753ec07 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 2dcff0aad1c..71611bc9ff2 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 6b2308c0bba..cf8da24ca71 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 01f0eefca80..38150a87ec1 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 fc5df639d02..21353d90612 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 9d0e9302a54..be041989070 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 7e6a578a19c..0071ae173bc 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 e7a4738b96f..0e587d7eb29 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 d37ed95559d..b8da271ae31 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 04805d06de4..d22a4b3c942 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 3c9d926d602..4488e3d5117 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 54d2e9c04aa..6a6791ce617 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 8acd9359752..63a73b34836 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 899f145844b..71e09dc6f0e 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 e61bcb361c0..7069e405028 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 34d8af8521f..445e3fc2e7e 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 521a71f961b..b487637bec1 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 51d2e1031cc..110cf8bd7f1 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 dc665dd7399..18fd966715d 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 25c2e8d4c83..c4716cff5ba 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 ead5888cc07..109da4899ef 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 78e761f71c5..f849b396ea0 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 ca6a1e6984d..c3e2cbfd7d6 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 9ecc4d06ea6..acdfaebe338 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 ba578c838c1..129467fb022 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 e932d5ebcd6..65088b52ccd 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 b271e2bf416..b5ffd0aebb8 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 68c4b7ef239..1b8c6f4ab49 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 d1082d910d8..936c2589d32 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 d4163910900..34a12489cbb 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 3e955abf549..ee9c84b5988 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 1fdcee0e25a..92c37f497c6 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 a3e7f0db92c..da655cda147 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 3d06d0ddb6e..ebf45f94f31 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 be2c7fbd76e..9e567898135 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 9dd23eafa78..7780460b2d0 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 a6b53a9ea34..757beefc231 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 c52caaa1ad2..32dd78cb584 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 3f738654cc1..3a7a2538eec 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 394bf486f38..121b907233e 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 67b52f92d35..2f83968aad6 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 f0a9b3aed62..16df42d6d14 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 bc81039d523..eae515d173b 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 cfa771ef86b..f86249007d8 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 726c35403dc..6b6577e2e0a 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 f6a854ee9f3..b3ce1b18dc2 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 <stdarg.h> diff --git a/gcc/testsuite/gcc.target/mips/save-restore-2.c b/gcc/testsuite/gcc.target/mips/save-restore-2.c index 4a11bc21083..899460fe7b6 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 d45fe50ea6b..5d7aeb0edd9 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 ef7722bce09..25f3e6199d2 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 0dd823a6813..b0dc1f057e9 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 819938fcdc0..c3fb22a8570 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 d0dc040151c..17599a83756 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 440c28b84bf..132da7bcf65 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 b295e782c2d..a07a85adad7 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 40460666c7f..05ba6671940 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 f9a25cdc9f7..646a449947e 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 5a9fff2da1d..fe55120f649 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 f232324954f..6705ee35a8e 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 7786c6db9e4..82cfa61f893 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 92f46250eb6..ce64b13a77f 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 e9735b20a52..6300f8f03fd 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 ac4c94df8e2..2d7c5dcd63f 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 360f3c463ff..5e51aa3f018 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 b8b82944540..fc88a9a8263 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 4c456462797..855ff8eadda 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 3d495453dd7..63852154850 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 fc087ee1c35..606fee0cb1a 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 9f3e43c41bd..b6b8ea99ba0 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 7e54aae3eba..d12ebd31116 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 423dc26f4da..06ab58f5a3a 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 90f2c772f83..fcb69e4b44f 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 4c783681ab2..cda90e00cd7 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 6cdb7f71e7f..f2a1875e959 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 1ccd6c59c3d..178d4baa4cd 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 23b6c8c7434..34565fd4c62 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 2ed4f2f9b06..db9ae3430ae 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 7e8be5e4283..58bdc089339 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" } } */ |