]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gcc/testsuite/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Aug 2012 16:27:50 +0000 (16:27 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Aug 2012 16:27:50 +0000 (16:27 +0000)
* 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

306 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/20020620-1.c
gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c
gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c
gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c
gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c
gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c
gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c
gcc/testsuite/gcc.target/mips/abi-n32-long32.c
gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c
gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c
gcc/testsuite/gcc.target/mips/abi-n32-long64.c
gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c
gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c
gcc/testsuite/gcc.target/mips/abi-n64-long32.c
gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c
gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c
gcc/testsuite/gcc.target/mips/abi-n64-long64.c
gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c
gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c
gcc/testsuite/gcc.target/mips/abi-o32-long32.c
gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c
gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c
gcc/testsuite/gcc.target/mips/abi-o32-long64.c
gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c
gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c
gcc/testsuite/gcc.target/mips/abi-o64-long32.c
gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c
gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c
gcc/testsuite/gcc.target/mips/abi-o64-long64.c
gcc/testsuite/gcc.target/mips/asm-1.c
gcc/testsuite/gcc.target/mips/atomic-memory-2.c
gcc/testsuite/gcc.target/mips/branch-1.c
gcc/testsuite/gcc.target/mips/branch-10.c
gcc/testsuite/gcc.target/mips/branch-11.c
gcc/testsuite/gcc.target/mips/branch-12.c
gcc/testsuite/gcc.target/mips/branch-13.c
gcc/testsuite/gcc.target/mips/branch-8.c
gcc/testsuite/gcc.target/mips/branch-9.c
gcc/testsuite/gcc.target/mips/branch-cost-1.c
gcc/testsuite/gcc.target/mips/branch-cost-2.c
gcc/testsuite/gcc.target/mips/cache-1.c
gcc/testsuite/gcc.target/mips/call-1.c
gcc/testsuite/gcc.target/mips/call-2.c
gcc/testsuite/gcc.target/mips/call-3.c
gcc/testsuite/gcc.target/mips/call-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/call-saved-2.c
gcc/testsuite/gcc.target/mips/call-saved-3.c
gcc/testsuite/gcc.target/mips/clear-cache-1.c
gcc/testsuite/gcc.target/mips/clear-cache-2.c
gcc/testsuite/gcc.target/mips/code-readable-1.c
gcc/testsuite/gcc.target/mips/code-readable-2.c
gcc/testsuite/gcc.target/mips/code-readable-3.c
gcc/testsuite/gcc.target/mips/code-readable-4.c
gcc/testsuite/gcc.target/mips/const-anchor-1.c
gcc/testsuite/gcc.target/mips/const-anchor-2.c
gcc/testsuite/gcc.target/mips/div-1.c
gcc/testsuite/gcc.target/mips/div-10.c
gcc/testsuite/gcc.target/mips/div-11.c
gcc/testsuite/gcc.target/mips/div-12.c
gcc/testsuite/gcc.target/mips/div-2.c
gcc/testsuite/gcc.target/mips/div-3.c
gcc/testsuite/gcc.target/mips/div-4.c
gcc/testsuite/gcc.target/mips/div-5.c
gcc/testsuite/gcc.target/mips/div-6.c
gcc/testsuite/gcc.target/mips/div-7.c
gcc/testsuite/gcc.target/mips/div-8.c
gcc/testsuite/gcc.target/mips/div-9.c
gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c
gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c
gcc/testsuite/gcc.target/mips/dse-1.c
gcc/testsuite/gcc.target/mips/dsp-ctrl.c
gcc/testsuite/gcc.target/mips/dsp-lhx.c
gcc/testsuite/gcc.target/mips/dsp-no-lhx.c
gcc/testsuite/gcc.target/mips/dspr2-MULT.c
gcc/testsuite/gcc.target/mips/dspr2-MULTU.c
gcc/testsuite/gcc.target/mips/ext-1.c
gcc/testsuite/gcc.target/mips/ext-2.c
gcc/testsuite/gcc.target/mips/ext-3.c
gcc/testsuite/gcc.target/mips/ext-4.c
gcc/testsuite/gcc.target/mips/ext-5.c
gcc/testsuite/gcc.target/mips/ext-6.c
gcc/testsuite/gcc.target/mips/ext-7.c
gcc/testsuite/gcc.target/mips/ext-8.c
gcc/testsuite/gcc.target/mips/extend-1.c
gcc/testsuite/gcc.target/mips/extend-2.c
gcc/testsuite/gcc.target/mips/fix-r10000-1.c
gcc/testsuite/gcc.target/mips/fix-r10000-10.c
gcc/testsuite/gcc.target/mips/fix-r10000-11.c
gcc/testsuite/gcc.target/mips/fix-r10000-12.c
gcc/testsuite/gcc.target/mips/fix-r10000-13.c
gcc/testsuite/gcc.target/mips/fix-r10000-14.c
gcc/testsuite/gcc.target/mips/fix-r10000-15.c
gcc/testsuite/gcc.target/mips/fix-r10000-2.c
gcc/testsuite/gcc.target/mips/fix-r10000-3.c
gcc/testsuite/gcc.target/mips/fix-r10000-4.c
gcc/testsuite/gcc.target/mips/fix-r10000-5.c
gcc/testsuite/gcc.target/mips/fix-r10000-6.c
gcc/testsuite/gcc.target/mips/fix-r10000-7.c
gcc/testsuite/gcc.target/mips/fix-r10000-8.c
gcc/testsuite/gcc.target/mips/fix-r10000-9.c
gcc/testsuite/gcc.target/mips/fix-r4000-1.c
gcc/testsuite/gcc.target/mips/fix-r4000-10.c
gcc/testsuite/gcc.target/mips/fix-r4000-11.c
gcc/testsuite/gcc.target/mips/fix-r4000-12.c
gcc/testsuite/gcc.target/mips/fix-r4000-2.c
gcc/testsuite/gcc.target/mips/fix-r4000-3.c
gcc/testsuite/gcc.target/mips/fix-r4000-4.c
gcc/testsuite/gcc.target/mips/fix-r4000-5.c
gcc/testsuite/gcc.target/mips/fix-r4000-6.c
gcc/testsuite/gcc.target/mips/fix-r4000-7.c
gcc/testsuite/gcc.target/mips/fix-r4000-8.c
gcc/testsuite/gcc.target/mips/fix-r4000-9.c
gcc/testsuite/gcc.target/mips/fixed-scalar-type.c
gcc/testsuite/gcc.target/mips/fixed-vector-type.c
gcc/testsuite/gcc.target/mips/fpcmp-1.c
gcc/testsuite/gcc.target/mips/fpcmp-2.c
gcc/testsuite/gcc.target/mips/fpr-moves-1.c
gcc/testsuite/gcc.target/mips/fpr-moves-2.c
gcc/testsuite/gcc.target/mips/fpr-moves-3.c
gcc/testsuite/gcc.target/mips/fpr-moves-4.c
gcc/testsuite/gcc.target/mips/fpr-moves-5.c
gcc/testsuite/gcc.target/mips/fpr-moves-6.c
gcc/testsuite/gcc.target/mips/fpr-moves-7.c
gcc/testsuite/gcc.target/mips/fpr-moves-8.c
gcc/testsuite/gcc.target/mips/ins-1.c
gcc/testsuite/gcc.target/mips/ins-2.c
gcc/testsuite/gcc.target/mips/int-moves-1.c
gcc/testsuite/gcc.target/mips/int-moves-2.c
gcc/testsuite/gcc.target/mips/interrupt_handler-2.c
gcc/testsuite/gcc.target/mips/interrupt_handler-3.c
gcc/testsuite/gcc.target/mips/lazy-binding-1.c
gcc/testsuite/gcc.target/mips/long-calls-pg.c
gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c
gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c
gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c
gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c
gcc/testsuite/gcc.target/mips/loongson3a-muldiv-2.c
gcc/testsuite/gcc.target/mips/madd-1.c
gcc/testsuite/gcc.target/mips/madd-2.c
gcc/testsuite/gcc.target/mips/madd-3.c
gcc/testsuite/gcc.target/mips/madd-4.c
gcc/testsuite/gcc.target/mips/madd-5.c
gcc/testsuite/gcc.target/mips/madd-6.c
gcc/testsuite/gcc.target/mips/madd-7.c
gcc/testsuite/gcc.target/mips/madd-8.c
gcc/testsuite/gcc.target/mips/madd-9.c
gcc/testsuite/gcc.target/mips/maddu-1.c
gcc/testsuite/gcc.target/mips/maddu-2.c
gcc/testsuite/gcc.target/mips/maddu-3.c
gcc/testsuite/gcc.target/mips/maddu-4.c
gcc/testsuite/gcc.target/mips/memcpy-1.c
gcc/testsuite/gcc.target/mips/mips-3d-1.c
gcc/testsuite/gcc.target/mips/mips-3d-2.c
gcc/testsuite/gcc.target/mips/mips-3d-3.c
gcc/testsuite/gcc.target/mips/mips-3d-4.c
gcc/testsuite/gcc.target/mips/mips-3d-5.c
gcc/testsuite/gcc.target/mips/mips-3d-6.c
gcc/testsuite/gcc.target/mips/mips-3d-7.c
gcc/testsuite/gcc.target/mips/mips-3d-8.c
gcc/testsuite/gcc.target/mips/mips-3d-9.c
gcc/testsuite/gcc.target/mips/mips-ps-1.c
gcc/testsuite/gcc.target/mips/mips-ps-2.c
gcc/testsuite/gcc.target/mips/mips-ps-3.c
gcc/testsuite/gcc.target/mips/mips-ps-4.c
gcc/testsuite/gcc.target/mips/mips-ps-5.c
gcc/testsuite/gcc.target/mips/mips-ps-6.c
gcc/testsuite/gcc.target/mips/mips-ps-7.c
gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
gcc/testsuite/gcc.target/mips/mips-ps-type.c
gcc/testsuite/gcc.target/mips/mips-sched-madd.c
gcc/testsuite/gcc.target/mips/mips.exp
gcc/testsuite/gcc.target/mips/mips16e-extends.c
gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
gcc/testsuite/gcc.target/mips/mips32-dsp.c
gcc/testsuite/gcc.target/mips/mips32-dspr2.c
gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c
gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c
gcc/testsuite/gcc.target/mips/mmcount-ra-address-1.c
gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c
gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c
gcc/testsuite/gcc.target/mips/movcc-1.c
gcc/testsuite/gcc.target/mips/movcc-2.c
gcc/testsuite/gcc.target/mips/movcc-3.c
gcc/testsuite/gcc.target/mips/msub-1.c
gcc/testsuite/gcc.target/mips/msub-2.c
gcc/testsuite/gcc.target/mips/msub-3.c
gcc/testsuite/gcc.target/mips/msub-4.c
gcc/testsuite/gcc.target/mips/msub-5.c
gcc/testsuite/gcc.target/mips/msub-6.c
gcc/testsuite/gcc.target/mips/msub-7.c
gcc/testsuite/gcc.target/mips/msub-8.c
gcc/testsuite/gcc.target/mips/msubu-1.c
gcc/testsuite/gcc.target/mips/msubu-2.c
gcc/testsuite/gcc.target/mips/msubu-3.c
gcc/testsuite/gcc.target/mips/msubu-4.c
gcc/testsuite/gcc.target/mips/mult-1.c
gcc/testsuite/gcc.target/mips/mult-10.c
gcc/testsuite/gcc.target/mips/mult-11.c
gcc/testsuite/gcc.target/mips/mult-12.c
gcc/testsuite/gcc.target/mips/mult-13.c
gcc/testsuite/gcc.target/mips/mult-14.c
gcc/testsuite/gcc.target/mips/mult-15.c
gcc/testsuite/gcc.target/mips/mult-16.c
gcc/testsuite/gcc.target/mips/mult-17.c
gcc/testsuite/gcc.target/mips/mult-18.c
gcc/testsuite/gcc.target/mips/mult-19.c
gcc/testsuite/gcc.target/mips/mult-2.c
gcc/testsuite/gcc.target/mips/mult-3.c
gcc/testsuite/gcc.target/mips/mult-4.c
gcc/testsuite/gcc.target/mips/mult-5.c
gcc/testsuite/gcc.target/mips/mult-6.c
gcc/testsuite/gcc.target/mips/mult-7.c
gcc/testsuite/gcc.target/mips/mult-8.c
gcc/testsuite/gcc.target/mips/mult-9.c
gcc/testsuite/gcc.target/mips/near-far-3.c
gcc/testsuite/gcc.target/mips/near-far-4.c
gcc/testsuite/gcc.target/mips/neg-abs-1.c
gcc/testsuite/gcc.target/mips/neg-abs-2.c
gcc/testsuite/gcc.target/mips/nmadd-1.c
gcc/testsuite/gcc.target/mips/nmadd-2.c
gcc/testsuite/gcc.target/mips/nmadd-3.c
gcc/testsuite/gcc.target/mips/no-dsp-1.c
gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c
gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c
gcc/testsuite/gcc.target/mips/octeon-baddu-1.c
gcc/testsuite/gcc.target/mips/octeon-bbit-1.c
gcc/testsuite/gcc.target/mips/octeon-bbit-2.c
gcc/testsuite/gcc.target/mips/octeon-bbit-3.c
gcc/testsuite/gcc.target/mips/octeon-cins-1.c
gcc/testsuite/gcc.target/mips/octeon-cins-2.c
gcc/testsuite/gcc.target/mips/octeon-dmul-2.c
gcc/testsuite/gcc.target/mips/octeon-dmul-3.c
gcc/testsuite/gcc.target/mips/octeon-exts-2.c
gcc/testsuite/gcc.target/mips/octeon-exts-3.c
gcc/testsuite/gcc.target/mips/octeon-exts-4.c
gcc/testsuite/gcc.target/mips/octeon-exts-5.c
gcc/testsuite/gcc.target/mips/octeon-exts-6.c
gcc/testsuite/gcc.target/mips/octeon-exts-7.c
gcc/testsuite/gcc.target/mips/octeon-pipe-1.c
gcc/testsuite/gcc.target/mips/octeon-pop-1.c
gcc/testsuite/gcc.target/mips/octeon-pop-2.c
gcc/testsuite/gcc.target/mips/octeon-seq-3.c
gcc/testsuite/gcc.target/mips/octeon-seq-4.c
gcc/testsuite/gcc.target/mips/octeon2-lx-1.c
gcc/testsuite/gcc.target/mips/octeon2-lx-2.c
gcc/testsuite/gcc.target/mips/octeon2-lx-3.c
gcc/testsuite/gcc.target/mips/octeon2-pipe-1.c
gcc/testsuite/gcc.target/mips/pr26765.c
gcc/testsuite/gcc.target/mips/pr33256.c
gcc/testsuite/gcc.target/mips/pr33635-1.c
gcc/testsuite/gcc.target/mips/pr33755.c
gcc/testsuite/gcc.target/mips/pr35802.c
gcc/testsuite/gcc.target/mips/pr45074.c
gcc/testsuite/gcc.target/mips/pr54240.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
gcc/testsuite/gcc.target/mips/rsqrt-1.c
gcc/testsuite/gcc.target/mips/rsqrt-2.c
gcc/testsuite/gcc.target/mips/rsqrt-3.c
gcc/testsuite/gcc.target/mips/rsqrt-4.c
gcc/testsuite/gcc.target/mips/save-restore-1.c
gcc/testsuite/gcc.target/mips/save-restore-2.c
gcc/testsuite/gcc.target/mips/save-restore-3.c
gcc/testsuite/gcc.target/mips/save-restore-4.c
gcc/testsuite/gcc.target/mips/save-restore-5.c
gcc/testsuite/gcc.target/mips/sb1-1.c
gcc/testsuite/gcc.target/mips/scc-1.c
gcc/testsuite/gcc.target/mips/scc-2.c
gcc/testsuite/gcc.target/mips/scc-3.c
gcc/testsuite/gcc.target/mips/scc-4.c
gcc/testsuite/gcc.target/mips/sdata-1.c
gcc/testsuite/gcc.target/mips/sdata-2.c
gcc/testsuite/gcc.target/mips/sdata-3.c
gcc/testsuite/gcc.target/mips/sdata-4.c
gcc/testsuite/gcc.target/mips/smartmips-lwxs.c
gcc/testsuite/gcc.target/mips/smartmips-ror-1.c
gcc/testsuite/gcc.target/mips/smartmips-ror-2.c
gcc/testsuite/gcc.target/mips/smartmips-ror-3.c
gcc/testsuite/gcc.target/mips/smartmips-ror-4.c
gcc/testsuite/gcc.target/mips/soft-float-1.c
gcc/testsuite/gcc.target/mips/stack-1.c
gcc/testsuite/gcc.target/mips/timode-1.c
gcc/testsuite/gcc.target/mips/timode-2.c
gcc/testsuite/gcc.target/mips/truncate-1.c
gcc/testsuite/gcc.target/mips/truncate-2.c
gcc/testsuite/gcc.target/mips/truncate-3.c
gcc/testsuite/gcc.target/mips/truncate-4.c
gcc/testsuite/gcc.target/mips/truncate-5.c
gcc/testsuite/gcc.target/mips/truncate-6.c
gcc/testsuite/gcc.target/mips/unaligned-1.c
gcc/testsuite/gcc.target/mips/vr-mult-1.c
gcc/testsuite/gcc.target/mips/vr-mult-2.c

index d34a5c19882ae484b46d3186d90045f2432442c1..aeebb09d5d656bbf570fead780c3db772690de02 100644 (file)
@@ -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
index 1f2affe48fc880b22f197092ce4c01c4607a0c9d..8a70dd3b13cf42a1cf5073e546fe244593ff6d14 100644 (file)
@@ -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;
index ebc5dd67240f15518457c7fe202ae9b160f7e68c..75bd1b664be26191df81f4fd22d1973b9c732a40 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=eabi -mgp32 -mlong32 -O2" } */
+/* { dg-options "-mabi=eabi -mgp32 -mlong32" } */
 #include "abi-main.h"
index 5a776eca988ce320b12ba6390a640b1bd790783c..1649433e63316b719437aac6b665d8436cbd2a33 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=eabi -mgp32 -mlong64 -O2" } */
+/* { dg-options "-mabi=eabi -mgp32 -mlong64" } */
 #include "abi-main.h"
index 3882e48fa350ded5cc675a94ca64f9a1649508da..03d7c27183614ff86c09b53e1c119a41a750ab29 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=eabi -mgp64 -mlong32 -O2" } */
+/* { dg-options "-mabi=eabi -mgp64 -mlong32" } */
 #include "abi-main.h"
index 5569bf521e82e96864acd211351be0990d227d86..bb6fa17ac037dc477a9f2b8789b1ece2f557c958 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=eabi -mgp64 -mlong64 -O2" } */
+/* { dg-options "-mabi=eabi -mgp64 -mlong64" } */
 #include "abi-main.h"
index 5cab4c97a6253bfbb4fbcef38b3c29144d35be47..11dfe2bc89d480200ef92f41e2f192ed0424c71b 100644 (file)
@@ -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"
index eb455da96a83d40f0eaadfdbbdeec5fd225add40..ffbe62c48c5240a6cf93a5db6efc6e790f4b5ee2 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=n32 -mlong32 -fpic -O2" } */
+/* { dg-options "-mabi=n32 -mlong32 -fpic" } */
 #include "abi-main.h"
index 6a0f7023c9df806f25408abc97d7c4c14e82dce5..f6fa20d1203b5b65e1d95e5bd5adf3322e9de1c2 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=n32 -mlong32 addressing=absolute -O2" } */
+/* { dg-options "-mabi=n32 -mlong32 addressing=absolute" } */
 #include "abi-main.h"
index 3edf86787cb5c259ccc5b0c24ed6c6d798d56ddb..a30b573cb18f58f358839357be27937934ffc9ca 100644 (file)
@@ -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"
index b444209e3b9754e5990812b58e094a96a32a89b5..f9729a3dc4b352ebdb854ef6246817c495725e34 100644 (file)
@@ -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"
index 868719c445fd7433d6644f4f41d18329df2f9eec..b064bf5e9260e389ed0c4f764f28a70c638ad165 100644 (file)
@@ -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"
index b268d888a46d2867d3dd04ab5d53131bcef7937c..6a524091215ea416ad9dc6925d122fb5c5b2b557 100644 (file)
@@ -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"
index 5a0d9172651869daa2ebbe4913b6690adf6836ad..6a5203e8c57fc591419471f86cbe2b9b242ac6f5 100644 (file)
@@ -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"
index 4227169ec7ee07ddb151b1dbafb48b207afc2ce6..d5f52d94ca5e010498d595402d509adfb9ea917b 100644 (file)
@@ -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"
index 5301cfc5b73fc10ea28c376dc5e0659df6d4bbcf..113bbcc5a342767326eeb79680e9a69f1a512150 100644 (file)
@@ -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"
index f43e9157bad1011ce47f397e4b2b118a6a0466d7..5f734687cfe20c53f2ed5d5533b7f7e58c12fded 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=64 -mlong64 -fpic -O2" } */
+/* { dg-options "-mabi=64 -mlong64 -fpic" } */
 #include "abi-main.h"
index a670fe5af91c0da4703e17757c89d1c16791a982..19e6d91d2decb37de4aa4205bdf74be6810991bb 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=64 -mlong64 addressing=absolute -O2" } */
+/* { dg-options "-mabi=64 -mlong64 addressing=absolute" } */
 #include "abi-main.h"
index 2032b36d9d0066eb9b07ae0a20d125e4e59ec9fc..fb1b888d88e1834a264b1bd1425203692416a1e4 100644 (file)
@@ -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"
index 5a3e93effafa912990e48c1a5261d43b2a1d29f2..64a7f585466e5d598c96a4c4d0606ae653ab2d14 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=32 -mlong32 -fpic -O2" } */
+/* { dg-options "-mabi=32 -mlong32 -fpic" } */
 #include "abi-main.h"
index bdb9464c74a142a06814ed305510647c1e14e445..790122077c731800b510bd8a5451075016758469 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=32 -mlong32 addressing=absolute -O2" } */
+/* { dg-options "-mabi=32 -mlong32 addressing=absolute" } */
 #include "abi-main.h"
index 6340b63252bb35c14fa45571ea5cfdb244e464e7..2f28aeb61e578a6a19891f1024ed254c78cac4f5 100644 (file)
@@ -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"
index 1583034b2a3def4e568bd1f694b13d97c9f26c98..89cd9a20790a9b5ef271f001fb597f205b82bdba 100644 (file)
@@ -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"
index 4a88739b695e229c3aa082cee4c12c9be8f62095..840e9aa130de094b1ebed4d2956685dc5dd6570e 100644 (file)
@@ -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"
index 548ae0d4a13fe909d4a6efa068e5696a18651a23..832550e45cb91de996af03c693bbbc094b0c9211 100644 (file)
@@ -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"
index 89d03ab674093450cd514177646ee017b093bbe3..e06b88292936a05603e85b3093514561904f3af7 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=o64 -mlong32 -fpic -O2" } */
+/* { dg-options "-mabi=o64 -mlong32 -fpic" } */
 #include "abi-main.h"
index db5893e45274d08e301a64745691d37f667bfd5e..54ac2d707f3ae0423f2e85f002d820ee08f738ea 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=o64 -mlong32 addressing=absolute -O2" } */
+/* { dg-options "-mabi=o64 -mlong32 addressing=absolute" } */
 #include "abi-main.h"
index df164b22f6c92cb7f323cd45edaca88d8aa7bc2c..94848f4e1be40bc3736b78f22b5abc219da302dc 100644 (file)
@@ -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"
index df58d1f0285fa310609ccb280f49412e26a98270..8c2ca36d9f75ef0021e5db63bb32480c9cbe4bcb 100644 (file)
@@ -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"
index 43078f6809a1d838970d489bb875743e92f8862d..02633567ca23834911d377bb3f5065ac532fe763 100644 (file)
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=o64 -mlong64 -mno-abicalls -O2" } */
+/* { dg-options "-mabi=o64 -mlong64 -mno-abicalls" } */
 #include "abi-main.h"
index 9f9cb3a3483c4d6b37c594bbbc69061a0453286e..8df2689469e7ec0c986183790b58be61455cdb3e 100644 (file)
@@ -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)
 {
index bc597ab2d2be885a6327dd4d846ec274017e16cd..de17ec3c4b4ba59db593390a976c7c8c00d265ca 100644 (file)
@@ -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);
 }
index 2f4510f8dd67d79f9ea1c37c3c663d33626e17fb..6ef50e8a187dd6fc3fcd3569cc9afa8eb3e04643 100644 (file)
@@ -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 (); }
index 8186030e6e1457f030ed4cfe8977c56f5488889c..e2b1b5f6baabd53a99c2a5c9fec5d0d743fc5fd5 100644 (file)
@@ -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;
 }
index a314740655df7997787c140404875b4e4a706ad6..962eb1b5d66a2ed99ee00adac51a9bb3ae829979 100644 (file)
@@ -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;
 }
index 3e5b421cf87e745e59c924dabe14052f62637d7e..4aef160ade8a13a6dcb8356d43d5c31878114523 100644 (file)
@@ -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;
 }
index 9bd94146a6f4ad4b8f5e17fe2682f4b1fe2d6ae4..8a6fb049f2444e569eed10b898c83dda8049edf1 100644 (file)
@@ -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;
 }
index 4595feafa619a7e59188f16a2870612730b4be0e..ba5f954378c8435d9f72c342b5713baf39c91a66 100644 (file)
@@ -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;
 }
index 417507cc48e450f380635e6b818d821541c9a971..cad1c003c3ef3416aa1772efedc9279204342aed 100644 (file)
@@ -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;
 }
index d825e06176e3952206dd504deac0ecac7de7e1a1..f72f2acfb3a54703f11733311b47a6bb1a3641df 100644 (file)
@@ -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)
 {
index 23f528ad63fd91b13f464b84e26081c4778ac718..3b2c4a13e5e28bc9f8e7fcb0c8f36b0392eba896 100644 (file)
@@ -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)
 {
index da897066d496c967ce7678633c561d8b2669cf86..f5c3dd307d8b592941efd36e21ec61e53c7c4cb5 100644 (file)
@@ -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)
index 7dceefaa3d23237d899cbb2bbdcbd59f08f7303b..a9c97c329e40dade2e9bb8b3a35ff66038b5d69d 100644 (file)
@@ -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" } } */
index 8e749919031670144148d681f2748a7ce619574a..7fabb1fd97053be3527c16ebb87634ca5d4d5c73 100644 (file)
@@ -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 ();
index 25f01d2a90102a34b8f0253ef6be6153010a636c..2c564886b1d39e0a30c9ead5a5af580ec559db8a 100644 (file)
@@ -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 (file)
index 0000000..049e338
--- /dev/null
@@ -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 ();
+}
index 9ac7a2735adf77189ba4addb8923841f6c0f68e8..b55c30ab06286c8bc6b84cfe04a1a1e7e94a89a8 100644 (file)
@@ -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)
index e178eb0f061a8a5b9d1ff8932b4f447b6a0eee75..84cdb3b88989ed0d65db5d8d30359c0de11387a3 100644 (file)
@@ -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[];
index 2925d98dd0710a050880397d136bb95876bac249..302aec3f1f5359d271497cb4082d8741c606c6b1 100644 (file)
@@ -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" } } */
index be2e2218bbe280493882d544ae55e9edc0ee11b6..f1f7f819099e50cb878e37d9405117f75157b7c5 100644 (file)
@@ -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()
index c35d60c8b1e7b861de99c69427f56aa558b6820c..34c2c0a770a6036d82490b1ed0c7cc62bcd88554 100644 (file)
@@ -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;
     }
 }
index e0176c3dbd54f5edcede543140eb4c87ea2b9485..71aeb132c0c79ef19dd0db1c76ce62b7841efedc 100644 (file)
@@ -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;
     }
 }
index 075ca8d17492ba26d84d3425a3fa326adef346f5..fc7850551967cbbf764ed86c4261d4f2279ebdc2 100644 (file)
@@ -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;
     }
 }
index d29216f6de15053c14ac88b10922ffacd84bdc73..ae8ff8a1a6670b6139547e1e15de9d14c5abb16e 100644 (file)
@@ -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;
     }
 }
index 66981671d02e83b40b01d64893e4703cf8a54a19..2f493d09c4214a4e2f873d4d085622322dc7462e 100644 (file)
@@ -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" } } */
 
index ccb89bb766c84b17c8be625dbf2dbafc9ba6d7ed..8666edf303ef1a8520aca26c21481451337658b1 100644 (file)
@@ -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" } } */
 
index e1976c25e0dae136f92de86da9e72c321e252246..08234a6e1b1c0e7be778bb24c4e72d2e2fe81f47 100644 (file)
@@ -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" } } */
index 23075da2c3deb0e1610b284aa47624a64abacc9e..fb8953def4d2c1c5842997fc1cd46d230878d2c0 100644 (file)
@@ -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" } } */
index 68f1658484b40e955b87f3dc2db1e82f3466a707..ff129292a34e26a9e168f07707191710b9a08a90 100644 (file)
@@ -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" } } */
index c2384b20a9d1894c2098117819f0b06ab9acbb98..57866ceb021bbec2da842b61dadc7f1a1da1568d 100644 (file)
@@ -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" } } */
index af6e2fa8e1aab24ae96cc14c38c3fa48b3dddc08..257ca923d056e6a793b10390c300959357fb5bbe 100644 (file)
@@ -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" } } */
index 684b6a8e441cb0fa8a045fa9eb3cd606d19baa3a..b9ae3684ef4603909328b41ac962f48c5be8bc36 100644 (file)
@@ -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" } } */
index 251b88f8164cc23a8ee376f1e4d6ed13e17f40fb..5f05d8e78eefe74bded99890b75c5820af599188 100644 (file)
@@ -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" } } */
index a08f3e6f4bd80ac2b91b633147b7a74b84fb260e..294cc7f24ac76890e1aeaa7994a5d78cd3ea59a6 100644 (file)
@@ -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" } } */
index 23075da2c3deb0e1610b284aa47624a64abacc9e..fb8953def4d2c1c5842997fc1cd46d230878d2c0 100644 (file)
@@ -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" } } */
index 68f1658484b40e955b87f3dc2db1e82f3466a707..ff129292a34e26a9e168f07707191710b9a08a90 100644 (file)
@@ -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" } } */
index c2384b20a9d1894c2098117819f0b06ab9acbb98..57866ceb021bbec2da842b61dadc7f1a1da1568d 100644 (file)
@@ -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" } } */
index a08f3e6f4bd80ac2b91b633147b7a74b84fb260e..294cc7f24ac76890e1aeaa7994a5d78cd3ea59a6 100644 (file)
@@ -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" } } */
index 87d1da98cb524ccfa30be1da8f9a243157676971..a48f561f3209662a01759125e3e25624771b58a1 100644 (file)
@@ -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
index 9aeb5667acff9150ac3c72f93ce2d733068e7a0c..fb63a1db80a2bfeb5d2eb74db787e0c42b9adc0f 100644 (file)
@@ -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
index 6ef55cde25e54c85ccc90dfd4f4eff0a860b46fe..e53189cadd821040f4c56f0b4ed5e2e449c97fda 100644 (file)
@@ -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 {                                                        \
index bb89e84f239e7973caed12a8c11582c400f62d42..4bf449b86ca4b5fcf49ca7095b1045abd1f3608b 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O2 -mdsp -mgp32" } */
+/* { dg-options "-mdsp -mgp32" } */
 
 extern void abort (void);
 extern void exit (int);
index 416356f2a0307741d194eac855ceb58379350181..8fa20a09090514fe53a3f2a3fb0b75bfec313cb2 100644 (file)
@@ -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" } } */
 
index a37c42f1a9000159b139c7cf2b156043074338fd..42c4688cd0f7b3e90bdfc9d0a10ee9e3ef73a30c 100644 (file)
@@ -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" } } */
 
index c685974895d302cc9cdaed1615ba8c9f3ac669c0..7c611a3266bbc44214a589005b8b5e12ef89e432 100644 (file)
@@ -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" } } */
index 7f04315efe532aa40ce9d4553bac62e16b175e2a..a567972447b6db55ff7778e9c96f2a872f2ae3c0 100644 (file)
@@ -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" } } */
index 426cbb28573d939c8dab86777b7754cf108b7709..3306c70941d85b7b3396e55078897a732fe46dbb 100644 (file)
@@ -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" } } */
 
index d6ccce29e044af70dfa49d0b4bedaf982eedbd4b..6b3d4efc415889b1afadb4c3e7ab87e9a2ef2614 100644 (file)
@@ -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" } } */
index acdbbc9a4139e0530f885823b566a8ed41c57d2b..e921c8b1df046307c07a9aa20ae218128f25f414 100644 (file)
@@ -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" } } */
 
index f3d2ad92aa35e5bbde23e37ce48109ce753ef29f..38362e5d77a67a28a7778dbc49852ee88ab9b4e0 100644 (file)
@@ -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" } } */
 
index 64186383cb2c09c0f24cae826324ee6df7ff4bd9..8bab2148f49c2963b02e4158e5ccb5da39c6b2e6 100644 (file)
@@ -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" } } */
 
index b4a7dd2515ce4f06ba8d988dadc17cbaa658b77a..e12cbe6e1c48f7cac591571b08cb016f42ebb480 100644 (file)
@@ -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" } } */
 
index 394d41f06c883f4c40c5df09dc4521697fbf7f31..2e23dd6525fd450a1416a5a016e2569afae6d08f 100644 (file)
@@ -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" } } */
 
index 90241dd2f19db81861e59b78fbf1c5ff496b6061..9ceee7b9f760760cb99e600524a6986cd1d927f2 100644 (file)
@@ -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" } } */
 
index 94d199f887be08e3eb5535c3f76ae24a5c87e541..9240ea55886eed1da416dec447f2a3e1156e7fb3 100644 (file)
@@ -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" } } */
index b91ae209c0cc81ada7cd9a08a410b37b3a16ff58..a2036a899ee1b50b7b88f85a67854f93e2aedc68 100644 (file)
@@ -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" } } */
index 76f3b86ec5d9e516c93e143b23096a61048090b7..edf4d70c63e6537f06bbf3b4a7b4149318be7c35 100644 (file)
@@ -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
index 6ac908a71bb31efb0585427195da36be1f6789ce..ab353b6b1e441b20b425afa685da942e76b7c7e2 100644 (file)
@@ -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
index e1677b6577a31709389b88b8f0712d5587089751..30f6038b71f9e3b9c19f37fdee7370c98657292c 100644 (file)
@@ -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
index f767ae202891ead9e96fdc7ec4b77ea21e6df28b..855000df2bffa636565bab1666d73473fe3b6f1a 100644 (file)
@@ -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 } */
index b0779e0ec34de27f709971e728df6fb6189ba560..aa2d236f6794ddedcd11d2306fed58455f643db6 100644 (file)
@@ -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
index 4a690f59ed159f3026df691e125baaa9834e27ea..542e02f9cb05a1e0598b13d22d072f1950e37a7b 100644 (file)
@@ -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
index bb5fd743af79ea9bc954dc039fc9873f313938e5..f44a725ec6330fc131b4c782617c68b3008d5a31 100644 (file)
@@ -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
index bac01913405d21f514d9ab9d4c922fe1406fc824..88a591841971e5c0a650d581766116804c00f0c9 100644 (file)
@@ -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
index bec7951c1d4f5fbc48171612bcb16af8371f5969..fbeeca10f5e34bdaee6244476ac542d60857eae3 100644 (file)
@@ -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
index 864ab8c1ee4cac3fd89164a1493b245339a51fa8..344c6277b5bd28db5cd87847fc4701015d0656c7 100644 (file)
@@ -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
index 62fd70f5f09e7fc8ca96aa364c11472cc6945ba1..a775a6c0e627b33ab7db24d2129a16f48f3446b2 100644 (file)
@@ -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
index d8bdb4516decad9941a28a7075e5321ab7957cdf..62f8fdfb4bd9f6700127b6844be266ad9e28c5f2 100644 (file)
@@ -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 } */
index d4b558e0115f5c9ae3f2ab330eec42559588bc43..635326c5c547c9e853aac53a9159f09c6c82379b 100644 (file)
@@ -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
index d48ed263c82661d3c1c0bf53f5958b1a92f87c71..68978494d6ed55dd2ff974e6faad41500a3185ef 100644 (file)
@@ -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
index 88afad339c9b72130e6a1edb952786c0d19bba02..3d140b1bc8a9dde02f372d5935240cb7e0cdc0f9 100644 (file)
@@ -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
index 551d3549d846fcc1d5c4c4a7f836421526e58b47..5c812f25600414582f22b10dcb855a7ff7284794 100644 (file)
@@ -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; }
index 8c938b7d2194bf11f3ab1423d9fe534009d07897..7227bc8c092626f414106f934ba97dc9e17507c5 100644 (file)
@@ -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; }
index 7cfad3d2f79bc0863bf35cd8081e2ae4cd3c75c2..1ea7a7c408bf4567b0ce898c9aec5b750338c649 100644 (file)
@@ -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}]" } } */
index d449283ddf325a8e22aa36155cb8f3c654450bd6..a2afabbc73bfb81339d31570932a56d38258c4f4 100644 (file)
@@ -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}]" } } */
index 6cb7d3594e09ed7060a0fe7e3ff9fa1df326e7ff..0261b16b1c88487c983939ac40a7d1fe66844eb3 100644 (file)
@@ -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; }
index bd12509d1bd9036af1668c16ca24fe0756def985..195a9d10ced2ada11acc9670a2b1bed6bb2a0536 100644 (file)
@@ -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; }
index 3854db8967dc6df385baff279b76f0d9cdc97db0..7a66182f52401126b043ba6b63e553f23b7261b2 100644 (file)
@@ -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; }
index c46300f62dbb6f31308addb4b155485c78765c05..0c0630800680067ad68bba2291f7a532738a26fc 100644 (file)
@@ -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; }
index 1e33cc4f7656bccee4f7e419fef61f48761398a7..9647a900cdd9c395f7ae35cebd3234c111489798 100644 (file)
@@ -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; }
index 118ba99dfebe2096ef9a8e659a96245d21b9f335..ddba3038350341438544c701c5673f575fb7e61a 100644 (file)
@@ -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; }
index f2c71c1ef1a32d43f5d60877b24dafa9d0c92147..4ae670622ba31dd4797613d250f9a889281a2b0b 100644 (file)
@@ -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; }
index da9c11364d2e28411b53ed375933c6219a9b4965..316715c5934a50e16161c80718c9d2608ae179aa 100644 (file)
@@ -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; }
index b4734f4d5224b6c51acfa48763493c5c2d421dc7..810c82c2f65ce741af200e78b6c77c7ade363ccf 100644 (file)
@@ -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" } } */
index 9b67704794fa108a286284d5ea3664bec700c0b5..ddd9660f1d4e1545b279652ac7110e228840a79e 100644 (file)
@@ -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 } } */
index cae48a0e93adbd4d87458afdb40e58aaaa97c9ab..2ddd3c3389e169214faf2cd220108a62dd9137a7 100644 (file)
@@ -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" } } */
index 3e1c259f89a6ba006c0f12447127f4bf0cadd0f7..cf0cbbbb51afcaba8597fe1e0d2096c3519d38ec 100644 (file)
@@ -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" } } */
index 92977e04e38d9555ca28bde58e40912f0212faaf..51a5f172389e51e9cfebc03a0c1b9e0c22aef369 100644 (file)
@@ -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)
index 3f4f833ba5eda978b627fa404edad9380248ca83..ffe614fcbb23793af72607fa42597ca8f1bbd943 100644 (file)
@@ -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)
index 34784d01ce2e1a1541c31e146441003637b05c04..80db0710c4ce662a4419358e6d12e6efefaa9433 100644 (file)
@@ -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)
index 282cf761b374a1ff86f21d5c58a00a0227411e74..d8f78586ce5d33feb1dbdab0a59ae6a059285d8e 100644 (file)
@@ -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)
index 8f685750f759bc46245d12c8f31cb865f186da8d..18d88804904d6de6f3e5bc34b5bc69d871b8df00 100644 (file)
@@ -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
index f89a40a3bc170b57a1d85167169c2644ad864449..30a83ec66f33b9fb87070f0e233ffaababf6f9f5 100644 (file)
@@ -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
index 3abd10417d77c2c820ef9328d8e33f483823706d..56d7ccd637cd6d525fd8f2bed5847f8f6a11d934 100644 (file)
@@ -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];
index 8b6901b7fc7d4f8960fcbb44a960ac303730c698..bf64193b87ebe49e3357bf9fbd6e1905f70a9c87 100644 (file)
@@ -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];
index 9e19354d1a600ef143746490557604b4fb2db878..02bb8ae9e2c7d486db24bd97b76a5810886e84d1 100644 (file)
@@ -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
index a71e6c05326866537e95a69c8f76c05061f5f99c..916bc4b5e2dda3bae1dd5eeed1bf1f54273356cd 100644 (file)
@@ -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 } } */
 
index 485555c39ffea6925380035d9d3293df6fc786df..77a554d21a5b15041bc07a87ef5ef922ff9a3116 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "(-mips16) -mgp64 -O2 -EL" } */
+/* { dg-options "(-mips16) -mgp64 -EL" } */
 
 typedef unsigned uint128_t __attribute__((mode(TI)));
 
index eba7983707b5dd3c6739eacbbd3d10d1d709eff7..930c36f9f83e3332c741092c03c992e288f421a1 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "(-mips16) -mgp64 -O2 -EB" } */
+/* { dg-options "(-mips16) -mgp64 -EB" } */
 
 typedef unsigned uint128_t __attribute__((mode(TI)));
 
index 13b41e11885993195094d9ea43c6b58a198919be..9ab32bf5a0dec28d4904e2257159ceba38efe142 100644 (file)
@@ -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)" } } */
index 2380123b16eebf629b4445fc5b94728b3fd99c21..298e04677792b6af087dcc318f2550bf03c997dd 100644 (file)
@@ -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" } } */
index e281a270a6e29e2bfb0803cc20322fae8bd24fd8..4f8dde566f73d9d24ef8addd298cb5317f5a1dd3 100644 (file)
@@ -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);
 
index 5e554c497d86e6d912c11e1fa29fa0a97d55f1f5..5ccfe5149bdc0dc3b05a65da1da5d268aba25c81 100644 (file)
@@ -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)
index fd7289ceaf7107d6eac91ce72d750455c0cd0268..2efc3ef3f32fb07c5fe6a911e07fa46f8cc01ceb 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 isa=loongson" } */
+/* { dg-options "isa=loongson" } */
 
 typedef int st;
 typedef unsigned int ut;
index 6f1f13875514245c03d39b6f3c6fbdd0bde81bb1..07523aa4a4e413a5e671f33bd282692bdcbb0311 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 isa=loongson -mgp64" } */
+/* { dg-options "isa=loongson -mgp64" } */
 
 typedef long long st;
 typedef unsigned long long ut;
index 1c892d80627042aa759dd90bf5b005c2646ae109..778d7398133f9470eb28c1bd5bef7d1dbee65709 100644 (file)
@@ -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>
index cc15b83ab9340b0a6b9f7fa755083f13a7eefae1..1c4d010b3543db6594b040197bd37096c5af38c6 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -march=loongson3a" } */
+/* { dg-options "-march=loongson3a" } */
 
 typedef int st;
 typedef unsigned int ut;
index 592b492c30840bc8792ba4fd0c3b3d1dbc632739..9695b3f6258c3cc1810ce9b0f39ab1907cc31148 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -march=loongson3a -mgp64" } */
+/* { dg-options "-march=loongson3a -mgp64" } */
 
 typedef long long st;
 typedef unsigned long long ut;
index 53881a4b08587f034099f26d84a4be78344dafa2..416673b46d7922df9b9b349920e33047c103cd42 100644 (file)
@@ -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
index eab7a68454c369f26a608095b97e3e39159c359d..ce0d9eb6fa06435afda8558ce5fa924768961755 100644 (file)
@@ -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
index 6b479f59c718391ad7dffc1a01706efcf33cc76d..29f4c9b3768c36def378ef7a16634fdfa578125c 100644 (file)
@@ -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
index f325af74698dfe086112314f4961642c1d9cff8c..28c751b40f765ee3eafacd7b2fa2ff29674781af 100644 (file)
@@ -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
index 1ad1c91f3e1eecd22e9d3c906f2dad73e7a315a4..d1696a6a86956b0201f5b203fdafddb23e62cf01 100644 (file)
@@ -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 } } */
index 4e5afadceb25884ae9231c380a12ba5d47b95962..9323b8e104abfa1357d7f48635c7dbf3f0be158b 100644 (file)
@@ -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" } } */
index b43d7207427821f281391c11fa590182fb8680f9..a639aa4f8fe41791159214fabad9a747705cb40e 100644 (file)
@@ -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" } } */
 
index 35092a8ad935e321e28b7b4cebafb03008301a3f..794a6ff1727ca04cafd9794d3568518b3f65cdb1 100644 (file)
@@ -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" } } */
index 25dbd18a5106c6dc6f23efafb8a837be9eb6f4fc..6d545495c03cefdf5f59c2bec9e705c436bb527e 100644 (file)
@@ -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" } } */
 
index 04161ce3a2188de7f9ea261c458b9f9b83a149f2..af2b4181cdfb8a8f2f2c63f0b71591967ba2d0fb 100644 (file)
@@ -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;
index a9768f15bf8841871656d16f2c84f5ee899e467a..ea091e4e1ce0db43b982474d8d6edc490a8a3c25 100644 (file)
@@ -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;
index b0b4817a47f4b638555c3499cec7a6409bf89a7f..27a7350f07b836990760123bece8aafdc8fb9505 100644 (file)
@@ -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;
index 9c1ccd5f926716be473a2bac7c224616e7292301..58c4a7ebe0c81ca893810e1ccd81f7b57d254ab9 100644 (file)
@@ -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;
index f3eda7500db8d5f5aaefe71fc1bf2d245ebd3caa..f4e4698141eaea4369869a63e05fe244a30fe654 100644 (file)
@@ -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>
index eb3f8f9a864934f11edfa1bd2f6fdb1d0434827f..f11ffc5a80f3e545a3a3e0224984c0da2d52c559 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
 
 /* Test MIPS-3D builtin functions */
 #include <stdlib.h>
index dc815748ebd74191475f48e55806331eb01d5f82..b04c3bfb5d547462c6ca937e0efc3741b2931403 100644 (file)
@@ -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>
index 7df590f5c308b1b2db32d8cb2a4b0cc6fe54dee6..e4de8fb19bf2f5a0c8c41dcc7e24b523a55911ef 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
 
 /* Test MIPS-3D absolute compare builtin functions */
 #include <stdlib.h>
index 7f9cbdb1b8453cd07142cdba00afe05366161719..3d28d7f2c661683ee2c6fb949c9597dd44113da4 100644 (file)
@@ -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>
index c07dbe50580555344fcd2e4940ac9335f94661dd..a433675cab9b3814169aac3a53a01cd18394fe30 100644 (file)
@@ -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>
index 848414540f0ec1a7ad9e4257b7936daf80e85e22..e6b44f075851b0df9ee6263fd66ef08bf4ec6936 100644 (file)
@@ -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>
index d5d09f99869a2da9a53acd4169e3726a08ed3071..2531ddf8b1ae93771419a19b7e3741b14a93bb33 100644 (file)
@@ -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>
index c80f2b9c893130015405ff4c1752a82146da1a74..1d199d7d0c0897d3e184e839eb491cb9787667e9 100644 (file)
@@ -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>
index 3875391b5359e8e9afc64af9acc1d1a7781b9eea..d697efdedf12e6e4b8263bc525abb9d0a65e63e4 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
 
 /* Matrix Multiplications */
 #include <stdlib.h>
index 9e6c6600617783f6e8b5f812880994d591a9a910..73598a840bd724cf44f15001c0199ee1b0e356ef 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O2 -mpaired-single" } */
+/* { dg-options "-mpaired-single" } */
 
 /* Test v2sf calculations */
 #include <stdlib.h>
index baec12c1ce6f9c329acad301d54612c0ea1defce..52642558664fb82a062e979377c49a8d38018a15 100644 (file)
@@ -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>
index e9ed4c03f5f7dec3628aa96ad9d5ea0bda1bb682..7e6ffd0667b0608d262548975558f7e05aca7f18 100644 (file)
@@ -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>
index b4452d09105c7b8fca472fe3ad86b7ea84889695..06850adb300370572a144ec53b4277b827562a82 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O2 -mpaired-single" } */
+/* { dg-options "-mpaired-single" } */
 
 /* Test MIPS paired-single comparisons */
 #include <stdlib.h>
index 94d2f80efc7591b31769792a8e6d147bf82f5e0f..7b6d76f790e63696e8031d7cecd83202d52e5c1a 100644 (file)
@@ -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[];
 
index 5b8b2522866268649d640e7df1b927b8aba2945a..5bdfe436f40a86544e1b973464f6e4f3f5750180 100644 (file)
@@ -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>
index 65a1104ba39f086a7d2e843154228b693e149e9c..cfc440bd30cd8cc8ad94cb6b9ecd81525c03b15d 100644 (file)
@@ -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[];
 
index f7988553394a231349efc42de70102f5cdcbbaed..6d5ebaee7651ae6145a6038ab0ceeb57b6738a6a 100644 (file)
@@ -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" } } */
index 2a10f91bd54e3948b637387532e242b88e70f6be..c7dcddd2c301cda0d06164eb7412200639f08c41 100644 (file)
@@ -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" } } */ 
index c0f9d332a5944053693e7f3da910c1e4631dffa6..1db1550fd49c1a6213e7c0c8553e201679b8e0ff 100644 (file)
@@ -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)
 {
index 5b1bb7a45a6ef2beb3adcb8714d8ff071ad937af..fddce3427ac17af4c7ae1f87cead9cfbe3116b66 100644 (file)
@@ -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
index d077f2fae6ed21d65d0afe5c5f7a4de6d5f901c6..15f7dd87db86f152a9d593b1d02928a40aa81620 100644 (file)
@@ -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)
 {
index ccbdef553ee086f1a8d04be038e7e51c794ff961..ccd9d380fb3f660da2839259f41cc2bde0913bde 100644 (file)
@@ -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;
index c2a8ae7750511d29b3a132a412b767424acbaefd..8a292ef66cc6008e73104b03d818aee4a5418b4e 100644 (file)
@@ -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;
index 1b3031ff19d3ceddc87a1b63d1b82fe3ae970afc..1f7e9287313c056fd7cef1335ec044098d336a7a 100644 (file)
@@ -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)));
index cf57323db1acaf07114d7e40bdd6ee95cc819c10..359a845901dbd26c41572a60053cc23a555e1ca0 100644 (file)
@@ -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" } } */
 
index d136676190291e27c95398e61dba396fc7b1f7fe..02e6166577dff934141a5e0b13302371aa84f077 100644 (file)
@@ -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" } } */
 
index 8514ed8cb4bfc746cc3b81e03280349524de1f7d..3d07939ca59f142d99e1ed4df232b6caf890db8f 100644 (file)
@@ -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)
 {
index bb59a1828c9ce868507427656e2924b4f6c11472..34b30d9874c6b4cb0f58579dcb854f11b6926c54 100644 (file)
@@ -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)
index 8c94c8345e92837fe2b0e151df698e19f8a2a437..17bcb76be5018fa66fa7eea435138cd4c38a6a01 100644 (file)
@@ -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)
index 1a930c9ac06cc022b766e71df8929bf9e5f7cc36..fbc6781e48963a75dfca5ad81bb4640aa2e47125 100644 (file)
@@ -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" } } */
 
index d42acc1d77caecee2dd2c9b5a6f77631357d085e..cb91a9db57355296bffb932f0cbfbacd19ad9492 100644 (file)
@@ -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" } } */
 
index e6481777addb0076e34c23e697ed55290aba9bf9..a1ddf57fb060a7c84a5a954076c235a4135b0cb7 100644 (file)
@@ -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" } } */
index 803ea77df742e14a951ad772996d879c6d2ab17c..9a222bfda9dceac0db0c84657101fe8a70b926ac 100644 (file)
@@ -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
index e6cdc2c1a9a91aa566fcf44cb6059dab509c800d..c0923cd113dc336bbd5b03eaa2e16990fdb9ed32 100644 (file)
@@ -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
index c44f34f4f0eccc5149a85648e4c10e167f4237eb..aedd04302ac478c7ef82737993263bb8b0596ec1 100644 (file)
@@ -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
index d41c31299144ba145fd72e9a4d67099c0cc896b7..84cb5fe333c69c8e3b205f345cc662e41fb1f1d6 100644 (file)
@@ -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
index dcb124a71983cca773408d2f3818754b83c6eab3..eba104c7f016d8b0bda3d228409a7f9e825aa48a 100644 (file)
@@ -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 } } */
index ee4ca3d8da0631860ffe632fb49065de798806e7..32411e61faf849c94027b9f682b7dca192c3d71c 100644 (file)
@@ -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" } } */
index 7ae96acb42ead34111114cc116c91bf84859fe4d..ee049876e37ed87254341002a0e17da625742456 100644 (file)
@@ -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" } } */
 
index 49d67f24a6c9a7cf9255915d20ea41dbe0deb726..a66307f10412a4822564ae0f56156dbbe44f7d6b 100644 (file)
@@ -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" } } */
index ae80403464400df4db4308d7e8cb207b5e714ae6..e1146f8bca967e6bc24773593ae51fa112290923 100644 (file)
@@ -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;
index 186dc47d6f7225bcbd9f2d282eaf175f291ff668..642d12394609a09798d0833b7696f26a458862fe 100644 (file)
@@ -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;
index 272c64818e31a69157cb08ee757950fa6cc2cb12..2e936ebe03f2a7c5b692626059af478b1116c9e1 100644 (file)
@@ -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;
index 8f5fd647b37931e6a0b208f389d339a7a2df338e..a4f6118600e36f2d53400044820a7e8a731be971 100644 (file)
@@ -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;
index 8630ec95d5eba0807b01054b139558ada92f997f..1038797f22884e3c4830cdc4d75644bccf8462e4 100644 (file)
@@ -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" } } */
index 0b990c364135d51edb5c8eaebe66a5301bfd0e64..c479ebbc553a4aa4e36b163432a38817c9a60307 100644 (file)
@@ -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" } } */
index d2ba695f6dda4ad683c344357b30ee96d0ad243e..8b26c1de7a49f26b72e8473db84625961904bf31 100644 (file)
@@ -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" } } */
index bd772d2cd7420208ea39eda0d82d867d9d89451f..bf8d36c7629ca8017fa737f96886eeaca52d8423 100644 (file)
@@ -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" } } */
index e0859f629f3e342c5d7254140d137f8b9a46d060..beb6ab9432cb6ccb2271db2ff7a28cb067655258 100644 (file)
@@ -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" } } */
index c4b54b7ec455b62fdedc4627b1de6bd29af5d5ce..e3cbd75bf28dd22ad3dbcd2a4ae4fddaa27d5dd5 100644 (file)
@@ -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" } } */
index a96049e04e6cdbdc2f27bf750368e3bd29def642..da47bd29227bd55e4bd99716116a8a0cf98d6b7b 100644 (file)
@@ -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" } } */
index cb1707d912527d5c38b7fa80b14b43f10a2e97d1..3e9b3785b1ba51ea725a93082858883634ac8197 100644 (file)
@@ -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" } } */
index 3539f63d96a946fa516206d0f7c4f398971da35f..84baff8cd8cf52d02731449f433eed33d78ade28 100644 (file)
@@ -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" } } */
index cfdac8b0de168c87efba337c6199898c58313014..52487f30dff49822d4cfe3952763665ec6b4a300 100644 (file)
@@ -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" } } */
index 47cdd5c23c329e1dd3104be356b52daaa42b63ad..11cdb17c8677641d783d6beffb8e318f950f0f27 100644 (file)
@@ -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" } } */
index 8494e14c358ff6a9cd03c4749cb9a60e7a1f1168..77be31162735df047d84b38e85811c214a935825 100644 (file)
@@ -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" } } */
index fa7cfa34e23882919cf040066b947fafff8784ab..e46978bc4091aa369db6a82102cce46f05b60791 100644 (file)
@@ -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" } } */
index d579f0023d2fbcd0eadb254c98c94234c5dd8cc2..939ca5cdb40224060235613429b15b68e929d23e 100644 (file)
@@ -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" } } */
index 6df86a1163dd2371b218880062d5d86cfd73e754..efb06af85598d164a1c16514699a3d359a0bc4e7 100644 (file)
@@ -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" } } */
index a6b910ec4020c53d46d9b17bb959bd38bc2faf2c..82d4f5d453a5ff9c39951d262f721cd699635b8b 100644 (file)
@@ -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" } } */
index 7c2989baa52198093cc89fb49324cade0e6d476f..35b074980708c7328213d3a9de39b738442b4109 100644 (file)
@@ -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" } } */
index 3e3acde81e34fd5701eb28f3578dad030e4cea25..18dce2013d6a1021fb10dd0826318ac922d1bba1 100644 (file)
@@ -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" } } */
index aa2ededa67aa8904d430a197c4e9b71ae0b73e38..59d450ab2c0eb01c50c133e06cae2b0c20dbbe93 100644 (file)
@@ -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" } } */
index f4ae791f1a0e325913474b9fd1d48bdd726fc956..d4d48b1ed53bdb23e62b24ade081ca1c682644a5 100644 (file)
@@ -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" } } */
index b9aa21fe4f4c6a91e7e75f0e0e1705cc93ae517c..0ea07b0620507a2ed3fe8146460616c3e5b073d4 100644 (file)
@@ -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" } } */
index 20691ff2c4b9a9d8ce456c0b2ae26d5171ea19ac..6c942586455f89efa348fc9cba15f1a3467eee66 100644 (file)
@@ -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" } } */
index 67125f78a67171d04275d4399cd7c97e2e3335d3..f34f74320e3f442397e24ef92f292bf49ece852c 100644 (file)
@@ -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" } } */
index 123d48799ed8160e219f690c0e0d77ad64085074..46b70820c5b334848ac497f10ff17d98f70855f6 100644 (file)
@@ -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" } } */
index 90e4d838d892e46af34a67349b8ea3142f84e25e..dee6fcb3ecec01e81bbb033694e2c88dfc6f78b3 100644 (file)
@@ -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" } } */
index df726186128a83bf8d2f4bd381e43724963dd0f1..c553fb7065a0eef718f011c3a81a8e9ce4475565 100644 (file)
@@ -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" } } */
index 093037579b9f4d4cf57357dafb99e6954f09e171..c4a7b0aede2a37bb3e2f28e14f619fe743b99c75 100644 (file)
@@ -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));
 }
index ee7f3d54d5d93b685a7d0daddcc4558e955f7359..ecf856ea7fa08112f91ced8f15d8fa6d85eacc61 100644 (file)
@@ -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)
 {
index d1f50a8fbefc3326b0bff132d4a81eb8e0b3aa4d..419d086b8afc1213bd597f9c88f0d5564dd8a22e 100644 (file)
@@ -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)
 {
index 8dd5be1676598668967e6d10db3a4596311afc68..e7150d2973374f0e920267733324f6867219d891 100644 (file)
@@ -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" } } */
 
index 6629dbb5844889576dee181a8ffbd1075d152d64..f91c68bcdcc7659460a3e2b6fe51e61afbca0cf7 100644 (file)
@@ -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);
index 55bf23eae4e74ecb849d201469bd53fb7519ed33..9bd8dce107ae00d93360d0e13c53903f0a8d8265 100644 (file)
@@ -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" } } */
index bcc37d29e34ba71dc9f408adef2f2d700f34c3f8..2726037bee1798a3396be43dcb2a8e94b03db859 100644 (file)
 
   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);
index ac85e23784640268aecbca43d81c5a8e63dd34b2..dd0b753ec07e2d78a030bc7126ee9fedc91cd0a4 100644 (file)
@@ -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" } } */
 
index 2dcff0aad1c11d1a2b7434e10ea56d2ad00eca26..71611bc9ff238f0b43ff7f014a8f6735d86d410b 100644 (file)
@@ -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
index 6b2308c0bba51683ae6f79078234d9a9ed77fed5..cf8da24ca71cb1b384240062f55566bd784e8576 100644 (file)
@@ -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
index 01f0eefca8001260ac577b7ef051cdc119a40d1f..38150a87ec16dffce531a9d68c93ac5de86ee71f 100644 (file)
@@ -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 } } */
index fc5df639d02bc4d64586da7cc2b4227191ef681f..21353d9061253cbd372ea7fd1fed74e9d062e893 100644 (file)
@@ -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
index 9d0e9302a54e0b2facf8bf9f3f138be7c76a9c22..be041989070ee0ff5481c0d083d0d2d589365f83 100644 (file)
@@ -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
index 7e6a578a19ceec9e310416d1ac0ce951ea32a12d..0071ae173bce59f9a7c069bea4f51e0adaba50c3 100644 (file)
@@ -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 } } */
 
index e7a4738b96fbd97b6264f33dc667fb3096eb97ac..0e587d7eb29f1b5393161809831271cdfb781174 100644 (file)
@@ -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
index d37ed95559d092faf314ecacbbc7d8528bf443d2..b8da271ae31236c055ef58e0a7f4771251b10784 100644 (file)
@@ -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" } } */
index 04805d06de466360fe731778a9c6e8b2ef595c00..d22a4b3c94283c21a6f8a1d0526bfb495fed899c 100644 (file)
@@ -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" } } */
 
index 3c9d926d6021e30bcdb5faed60f1370812e9b16f..4488e3d5117165bb28438d7d0069b156afef3a73 100644 (file)
@@ -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)
 {
index 54d2e9c04aa5a22c3280fff09b5e80de3e800a6a..6a6791ce617800274ecae7f69421ca077ac6d0b6 100644 (file)
@@ -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" } } */
 
index 8acd93597525f60d6a6b39c7886625132d4a7b70..63a73b3483640c77961bb39e0eb77d65d07ada99 100644 (file)
@@ -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" } } */
 
index 899f145844bdd5469766f96be065994b738f1ed0..71e09dc6f0eaa0165fd3a717b0bbd257b0c9a71c 100644 (file)
@@ -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 } } */
index e61bcb361c022af5124d6d0c0d92aabcf0324918..7069e405028bf2624d2abd70cf682e23be76b2f7 100644 (file)
@@ -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
index 34d8af8521f55e946f63078783db815136117b39..445e3fc2e7ec44ff57bc1ca158ad70af4df3c78b 100644 (file)
@@ -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]; } \
index 521a71f961bbef7b4d315a4b181d2f09d3eb609a..b487637bec14ee3f7c4a9fad14a4084d1eab8096 100644 (file)
@@ -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]; } \
index 51d2e1031ccd86cb9073df976e6bdc7b3f11bae6..110cf8bd7f1b204d0236d4cdd9e62ce939a15c6c 100644 (file)
@@ -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]; } \
index dc665dd7399a6a07333563d54a45738e20cf73f8..18fd966715da1a99be06a88872baa31d609a6f67 100644 (file)
@@ -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)
 {
index 25c2e8d4c83a1bec2757ee2415ee6316d0a72fa7..c4716cff5baeedcf3fee71b089404f282f1c133c 100644 (file)
@@ -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;
 
index ead5888cc079167247835b728df6b8ee4a3cc547..109da4899ef6b449eb0460969ead9e060d80a52a 100644 (file)
@@ -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);
 
index 78e761f71c5e638b2a26911fa826350f64f87679..f849b396ea0f1267a3b4dbf44c875ac3f81a7935 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-mabi=64 -O2" } */
+/* { dg-options "-mabi=64" } */
 
 NOMIPS16 long double __powitf2 (long double x, int m)
 {
index ca6a1e6984d806a5fbc2dd0d04028685f0f2a7c2..c3e2cbfd7d6f776370ee686b5cce4b83639fb796 100644 (file)
@@ -1,5 +1,4 @@
 /* { dg-do link } */
-/* { dg-options "-O2" } */
 
 volatile int gv;
 const char *ptrs[2];
index 9ecc4d06ea6fb9f7f6cc6c97c2bac5ce6054d3fb..acdfaebe338ef65f1dda39d02fa72bfb0cf7204c 100644 (file)
@@ -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")));
 
index ba578c838c15742ed1a8d883f561f997aaa5ec5b..129467fb02286dcc9ab9d38e0354584358065806 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-mhard-float -mgp32 -O" } */
+/* { dg-options "-mhard-float -mgp32" } */
 register double g __asm__("$f20");
 
 NOMIPS16 void
index e932d5ebcd67277e851d14f87e9f97e2feaafced..65088b52ccd59fd82f8ae1100ae4e4bf7b73928d 100644 (file)
@@ -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;
index b271e2bf416b152f60842d4d9f2ea583abd68b0e..b5ffd0aebb87f13b71ce9d66da294cf8b1eaef83 100644 (file)
@@ -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.  */
index 68c4b7ef2392103540d44b28a93c7ca5866eb263..1b8c6f4ab49c0e9824c8a338d75b0d1521670520 100644 (file)
@@ -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" } } */
index d1082d910d8825a10282649a7e14bb73a8215704..936c2589d32448e67a812620cf122a5ee6694fef 100644 (file)
@@ -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.  */
 
index d4163910900b8795ceb0bf4cc17a6a351802dc72..34a12489cbb8e352aa7b8446c2ac02d6961ec45d 100644 (file)
@@ -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.  */
 
index 3e955abf549bc7100f04e574c4826138b7b9ed7f..ee9c84b59882a3af9e5fcb8cee2ff972d2741fe0 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store" } */
+/* { dg-options "-mr10k-cache-barrier=store" } */
 
 /* Test that indirect calls are protected.  */
 
index 1fdcee0e25a0fa5dbad02bd7a1f139f2e6407cb3..92c37f497c6bb2ea371554f0caeb460ad995d1af 100644 (file)
@@ -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.  */
 
index a3e7f0db92c42da813c6be2e4d5d6a5b42c3c6a8..da655cda14764faf3204c6ee7a0890a448ce0352 100644 (file)
@@ -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 } */
index 3d06d0ddb6e9382b344bf50b2df64b16e06f65a4..ebf45f94f31da37c22d3afe74ebdc59efd0d0d7d 100644 (file)
@@ -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.  */
index be2c7fbd76e597bc19808b6bf2699839af967fb0..9e5678981357c971351e7e092ac3f7f3924b1c73 100644 (file)
@@ -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.  */
index 9dd23eafa781ec199a4c59f29a90982f62f8ef58..7780460b2d05d7eac59fd47b0668c955ba7338c6 100644 (file)
@@ -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);
 
index a6b53a9ea3483d3581a54d90b2c096571d5ffc1f..757beefc231c1f1ef65b09a3a5e542a33a17609b 100644 (file)
@@ -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.  */
index c52caaa1ad2696bca86f65d2968a8fbea5dc106d..32dd78cb584bee27d23fbd81ae28a6ad34076f97 100644 (file)
@@ -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);
index 3f738654cc166e04cf3f8e8ae719905546e62825..3a7a2538eecf624bd769705540fac6342c3af828 100644 (file)
@@ -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);
index 394bf486f3829529706c493f52686c5013a03f7e..121b907233e768296e304a3a330b51a4d065446a 100644 (file)
@@ -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.  */
index 67b52f92d35be897aa214543af7514d3a413a0b0..2f83968aad65e05ddbc30414935253e2bb17da92 100644 (file)
@@ -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.  */
index f0a9b3aed62429978d2290fc5f5438d78de7ac36..16df42d6d144d4e9d6c0139ff9802db4e18b25f5 100644 (file)
@@ -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" } } */
 
index bc81039d523a125bc6f2747fec20f0b450e59022..eae515d173b3ee7aec9a7e22946b7fce1cc1a246 100644 (file)
@@ -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" } } */
 
index cfa771ef86be6de1c53beb063277a9c42e7a47da..f86249007d89c655b38e4e4bd07a75aa559ae31b 100644 (file)
@@ -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" } } */
 
index 726c35403dcb9e8b61b1d3cca98301a61d4f70f2..6b6577e2e0a9ec9cb2bf207ed94a302ba8ce4107 100644 (file)
@@ -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 } } */
 
index f6a854ee9f3b18f5742c77af76a7f1e6ce8b1166..b3ce1b18dc27e0d6a65f47d0352306c47bd205d4 100644 (file)
@@ -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>
 
index 4a11bc2108315da84b0986789c8a6398f1dcb52b..899460fe7b61ab4b03ee214a928b99a67d0be81e 100644 (file)
@@ -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)
index d45fe50ea6bd75bd5b6a21bd0a6ca75323346911..5d7aeb0edd9df488ac67963b86ff69131d4e46a8 100644 (file)
@@ -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 *);
 
index ef7722bce0948793bdeb7239434fdb426906b674..25f3e6199d243407b9c15b4b4ec8da43d9062afb 100644 (file)
@@ -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);
 
index 0dd823a68138040b04be0a1b47af765d4e9c334a..b0dc1f057e957835bf06a967cc4493beb2f72343 100644 (file)
@@ -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);
index 819938fcdc0f67ba73fb1d6fce44d51d3e8e0486..c3fb22a85703236d8ba41ce4e418934904b1f692 100644 (file)
@@ -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)));
 
index d0dc040151c0fe72de68bc70b659351ebf625b5b..17599a8375600fde8bd03b7fb5dc0f0ba9f9c2f8 100644 (file)
@@ -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 } } */
index 440c28b84bf3bd4aeab6aefeea04e6830eff0af0..132da7bcf65e95a9807b3d6430989c988a376ae5 100644 (file)
@@ -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 } } */
index b295e782c2df63fb0a6042e441cdc9fe66caa29d..a07a85adad7be3a5d2968e7ceec0777d5b600cb0 100644 (file)
@@ -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 } } */
index 40460666c7f2815910407a9ead7ac3d344c9a0d3..05ba667194059587c2700c120ce368369cc22bc5 100644 (file)
@@ -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" } } */
index f9a25cdc9f789e6787febada683d5c70e51eeb9c..646a449947e6fea6cc2ec258bbceec40225fad94 100644 (file)
@@ -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];
index 5a9fff2da1da1772796a1bf5d0508f14590ce77d..fe55120f64949054dc59fc06cf0419b7d4b41ab2 100644 (file)
@@ -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];
index f232324954f40511f52938dab67a373f3fbf2ebe..6705ee35a8e26949f5fb013520efcecf82fd1052 100644 (file)
@@ -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];
index 7786c6db9e4c1465c075d0f4d213a9c22e1ef913..82cfa61f89347b8b216424dddd40ed082d3a89a2 100644 (file)
@@ -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];
index 92f46250eb69d1dc54c33e9101129491a59a64ec..ce64b13a77f539e115bad162f2ad4a972ec7460e 100644 (file)
@@ -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)
 {
index e9735b20a52e135c2b8999310dab90f8199a7cd7..6300f8f03fd228cc7a5aeb238c9e39b35dedef81 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O -msmartmips" } */
+/* { dg-options "-msmartmips" } */
 
 NOMIPS16 int rotate_left (unsigned a, unsigned s)
 {
index ac4c94df8e2d59b433cdacbd65d67f13c0a26436..2d7c5dcd63f4be58331dd7f687dac8b83e87e847 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O -msmartmips" } */
+/* { dg-options "-msmartmips" } */
 
 NOMIPS16 int rotate_right (unsigned a, unsigned s)
 {
index 360f3c463ff39ccffff897488a5eb9bb3a175633..5e51aa3f0185d4247aa1d68e562405b0256923c9 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O -msmartmips" } */
+/* { dg-options "-msmartmips" } */
 
 #define S 13
 
index b8b82944540566480eef1b2510e61822d2f5dbd2..fc88a9a82630fc556686e4c78ad9421262824b8c 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O -msmartmips" } */
+/* { dg-options "-msmartmips" } */
 
 #define S 13
 
index 4c45646279782f1da00ff88ad09aa7c2d0a4d532..855ff8eaddaaab62e5b90c1d14232221ab5a81a7 100644 (file)
@@ -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));
 }
index 3d495453dd75314ada44cebd8185f6a1e79330e7..63852154850c7c458d1054aa08a7b986220e47d5 100644 (file)
@@ -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" } } */
index fc087ee1c351663d76fd03a0fcd4ce6ad8e42786..606fee0cb1a2891e97bb162cd03a40ad09c80680 100644 (file)
@@ -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" } } */
index 9f3e43c41bded6487b26bb13b8be5f8513c85912..b6b8ea99ba096781e17392feec1b28745a95f5be 100644 (file)
@@ -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 ());
+}
index 7e54aae3ebaa67e2bf083a8a9f670bc0edb29946..d12ebd31116d65887e0edb0217348a3d151f266a 100644 (file)
@@ -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))                                \
index 423dc26f4dafa3232a8f1ad5b59aea005b540a51..06ab58f5a3a224071aa423d5f68e61de31a3c4fc 100644 (file)
@@ -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                                         \
index 90f2c772f8374b108bcae4c7dc878989f9f525cd..fcb69e4b44f321ecd37c9931d7d3bd7d9e9ec723 100644 (file)
@@ -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)
index 4c783681ab268a3a6844ab0bbaccb2c894b20011..cda90e00cd78244d960c6bc321e0279fef6a77bc 100644 (file)
@@ -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
index 6cdb7f71e7f711663a88227217218293c9dd66ca..f2a1875e959533fa7e1813478e46b66721ed360b 100644 (file)
@@ -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
index 1ccd6c59c3d623c59724c6bc458ccd8b2dcf9f3a..178d4baa4cdcbcd86c17c53a6989c8a93bcd0ddc 100644 (file)
@@ -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)
index 23b6c8c74344420909b3cc9784cc95eb3ab164b8..34565fd4c622f08b931eb0362bd9aa4a91db07a3 100644 (file)
@@ -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 } } */
index 2ed4f2f9b064a7f6995aac13eb9947de7e9dbb8c..db9ae3430ae3fbf85ed690cd88a0bf4faf78a181 100644 (file)
@@ -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" } } */
index 7e8be5e42837db353bf100bffec0f6185e26107f..58bdc089339f06136e2b53bfd3f5f43e156debe8 100644 (file)
@@ -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" } } */