aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2012-08-27 16:27:50 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2012-08-27 16:27:50 +0000
commit0c436cbd61581ab7788c6fae025877b3d6d33a42 (patch)
tree357bdb69a5df0d487a6202594a2bc55afd31a94e /gcc
parentcb038fd20d3d744471b887658786e7a765fb3e1b (diff)
downloadgcc-0c436cbd61581ab7788c6fae025877b3d6d33a42.zip
gcc-0c436cbd61581ab7788c6fae025877b3d6d33a42.tar.gz
gcc-0c436cbd61581ab7788c6fae025877b3d6d33a42.tar.bz2
mips.exp: Use gcc-dg-runtest rather than dg-runtest.
gcc/testsuite/ * gcc.target/mips/mips.exp: Use gcc-dg-runtest rather than dg-runtest. (mips_option_groups): Remove optimization. Add various -f options. (mips-dg-options): Make -funroll-loops imply -funroll-all-loops and -pg imply -fno-omit-frame-pointer. * gcc.target/mips/abi-eabi32-long32.c: Remove optimization flag. * gcc.target/mips/abi-eabi32-long64.c: Likewise. * gcc.target/mips/abi-eabi64-long32.c: Likewise. * gcc.target/mips/abi-eabi64-long64.c: Likewise. * gcc.target/mips/abi-n32-long32-no-shared.c: Likewise. * gcc.target/mips/abi-n32-long32-pic.c: Likewise. * gcc.target/mips/abi-n32-long32.c: Likewise. * gcc.target/mips/abi-n32-long64-no-shared.c: Likewise. * gcc.target/mips/abi-n32-long64-pic.c: Likewise. * gcc.target/mips/abi-n32-long64.c: Likewise. * gcc.target/mips/abi-n64-long32-no-shared.c: Likewise. * gcc.target/mips/abi-n64-long32-pic.c: Likewise. * gcc.target/mips/abi-n64-long32.c: Likewise. * gcc.target/mips/abi-n64-long64-no-shared.c: Likewise. * gcc.target/mips/abi-n64-long64-pic.c: Likewise. * gcc.target/mips/abi-n64-long64.c: Likewise. * gcc.target/mips/abi-o32-long32-no-shared.c: Likewise. * gcc.target/mips/abi-o32-long32-pic.c: Likewise. * gcc.target/mips/abi-o32-long32.c: Likewise. * gcc.target/mips/abi-o32-long64-no-shared.c: Likewise. * gcc.target/mips/abi-o32-long64-pic.c: Likewise. * gcc.target/mips/abi-o32-long64.c: Likewise. * gcc.target/mips/abi-o64-long32-no-shared.c: Likewise. * gcc.target/mips/abi-o64-long32-pic.c: Likewise. * gcc.target/mips/abi-o64-long32.c: Likewise. * gcc.target/mips/abi-o64-long64-no-shared.c: Likewise. * gcc.target/mips/abi-o64-long64-pic.c: Likewise. * gcc.target/mips/abi-o64-long64.c: Likewise. * gcc.target/mips/asm-1.c: Likewise. * gcc.target/mips/branch-1.c: Likewise. * gcc.target/mips/call-3.c: Likewise. * gcc.target/mips/call-saved-3.c: Likewise. * gcc.target/mips/clear-cache-1.c: Likewise. * gcc.target/mips/div-1.c: Likewise. * gcc.target/mips/div-2.c: Likewise. * gcc.target/mips/div-3.c: Likewise. * gcc.target/mips/div-4.c: Likewise. * gcc.target/mips/div-5.c: Likewise. * gcc.target/mips/div-6.c: Likewise. * gcc.target/mips/div-7.c: Likewise. * gcc.target/mips/div-8.c: Likewise. * gcc.target/mips/div-9.c: Likewise. * gcc.target/mips/div-10.c: Likewise. * gcc.target/mips/div-11.c: Likewise. * gcc.target/mips/div-12.c: Likewise. * gcc.target/mips/dsp-ctrl.c: Likewise. * gcc.target/mips/dsp-no-lhx.c: Likewise. * gcc.target/mips/ext-8.c: Likewise. * gcc.target/mips/extend-2.c: Likewise. * gcc.target/mips/fix-r10000-1.c: Likewise. * gcc.target/mips/fix-r10000-2.c: Likewise. * gcc.target/mips/fix-r10000-3.c: Likewise. * gcc.target/mips/fix-r10000-4.c: Likewise. * gcc.target/mips/fix-r10000-5.c: Likewise. * gcc.target/mips/fix-r10000-6.c: Likewise. * gcc.target/mips/fix-r10000-7.c: Likewise. * gcc.target/mips/fix-r10000-8.c: Likewise. * gcc.target/mips/fix-r10000-9.c: Likewise. * gcc.target/mips/fix-r10000-10.c: Likewise. * gcc.target/mips/fix-r10000-11.c: Likewise. * gcc.target/mips/fix-r10000-12.c: Likewise. * gcc.target/mips/fix-r10000-13.c: Likewise. * gcc.target/mips/fix-r10000-14.c: Likewise. * gcc.target/mips/fix-r10000-15.c: Likewise. * gcc.target/mips/fpcmp-1.c: Likewise. * gcc.target/mips/fpcmp-2.c: Likewise. * gcc.target/mips/fpr-moves-7.c: Likewise. * gcc.target/mips/fpr-moves-8.c: Likewise. * gcc.target/mips/int-moves-1.c: Likewise. * gcc.target/mips/int-moves-2.c: Likewise. * gcc.target/mips/long-calls-pg.c: Likewise. * gcc.target/mips/loongson-muldiv-1.c: Likewise. * gcc.target/mips/loongson-muldiv-2.c: Likewise. * gcc.target/mips/loongson-shift-count-truncated-1.c: Likewise. * gcc.target/mips/loongson3a-muldiv-1.c: Likewise. * gcc.target/mips/loongson3a-muldiv-2.c: Likewise. * gcc.target/mips/mips-3d-1.c: Likewise. * gcc.target/mips/mips-3d-2.c: Likewise. * gcc.target/mips/mips-3d-3.c: Likewise. * gcc.target/mips/mips-3d-4.c: Likewise. * gcc.target/mips/mips-3d-5.c: Likewise. * gcc.target/mips/mips-3d-6.c: Likewise. * gcc.target/mips/mips-3d-7.c: Likewise. * gcc.target/mips/mips-3d-8.c: Likewise. * gcc.target/mips/mips-3d-9.c: Likewise. * gcc.target/mips/mips-ps-1.c: Likewise. * gcc.target/mips/mips-ps-2.c: Likewise. * gcc.target/mips/mips-ps-3.c: Likewise. * gcc.target/mips/mips-ps-4.c: Likewise. * gcc.target/mips/mips-ps-6.c: Likewise. * gcc.target/mips/mips32-dspr2.c: Likewise. * gcc.target/mips/mmcount-ra-address-1.c: Likewise. * gcc.target/mips/neg-abs-1.c: Likewise. * gcc.target/mips/neg-abs-2.c: Likewise. * gcc.target/mips/nmadd-3.c: Likewise. * gcc.target/mips/no-smartmips-lwxs.c: Likewise. * gcc.target/mips/no-smartmips-ror-1.c: Likewise. * gcc.target/mips/octeon-pop-1.c: Likewise. * gcc.target/mips/pr26765.c: Likewise. * gcc.target/mips/pr33256.c: Likewise. * gcc.target/mips/pr33635-1.c: Likewise. * gcc.target/mips/pr33755.c: Likewise. * gcc.target/mips/pr35802.c: Likewise. * gcc.target/mips/pr45074.c: Likewise. * gcc.target/mips/r10k-cache-barrier-1.c: Likewise. * gcc.target/mips/r10k-cache-barrier-2.c: Likewise. * gcc.target/mips/r10k-cache-barrier-3.c: Likewise. * gcc.target/mips/r10k-cache-barrier-4.c: Likewise. * gcc.target/mips/r10k-cache-barrier-5.c: Likewise. * gcc.target/mips/r10k-cache-barrier-6.c: Likewise. * gcc.target/mips/r10k-cache-barrier-7.c: Likewise. * gcc.target/mips/r10k-cache-barrier-8.c: Likewise. * gcc.target/mips/r10k-cache-barrier-9.c: Likewise. * gcc.target/mips/r10k-cache-barrier-11.c: Likewise. * gcc.target/mips/r10k-cache-barrier-12.c: Likewise. * gcc.target/mips/r10k-cache-barrier-13.c: Likewise. * gcc.target/mips/r10k-cache-barrier-14.c: Likewise. * gcc.target/mips/r10k-cache-barrier-15.c: Likewise. * gcc.target/mips/save-restore-1.c: Likewise. * gcc.target/mips/save-restore-3.c: Likewise. * gcc.target/mips/save-restore-5.c: Likewise. * gcc.target/mips/smartmips-ror-1.c: Likewise. * gcc.target/mips/smartmips-ror-2.c: Likewise. * gcc.target/mips/smartmips-ror-3.c: Likewise. * gcc.target/mips/smartmips-ror-4.c: Likewise. * gcc.target/mips/stack-1.c: Likewise. * gcc.target/mips/clear-cache-2.c: Remove optimization flag. Tighten regexps. * gcc.target/mips/branch-8.c: Arrange for the delay slot of the branch under test to be filled with preceding rather than following instructions. * gcc.target/mips/branch-10.c: Likewise. * gcc.target/mips/branch-11.c: Likewise. * gcc.target/mips/branch-12.c: Likewise. * gcc.target/mips/branch-13.c: Likewise. * gcc.target/mips/branch-9.c: Likewise. Allow the frame pointer to be eliminated. Tighten $28 scan-assembler-not test. * gcc.target/mips/call-2.c: Remove optimization flag. Move second function to... * gcc.target/mips/call-4.c: ...this new test. * gcc.target/mips/code-readable-2.c: Rework to make a jump table more likely. * gcc.target/mips/code-readable-3.c: Likewise. * gcc.target/mips/code-readable-1.c: Likewise. Remove optimization flag but skip for -O0. * gcc.target/mips/code-readable-4.c: Likewise. * gcc.target/mips/mips32-dsp-run.c: Prevent compile-time reduction of operations under test. * gcc.target/mips/mips32-dsp.c: Likewise. Remove optimization flag. * gcc.target/mips/near-far-3.c: Remove optimization flag. Don't require sibling-call optimization. * gcc.target/mips/near-far-4.c: Likewise. * gcc.target/mips/no-dsp-1.c: Require -ffat-lto-objects. Make sure that the register variable is used. * gcc.target/mips/soft-float-1.c: Likewise. * gcc.target/mips/sdata-1.c: Make static data volatile. * gcc.target/mips/sdata-2.c: Likewise. * gcc.target/mips/sdata-3.c: Likewise. * gcc.target/mips/sdata-4.c: Likewise. * gcc.target/mips/20020620-1.c: Remove optimization flag but skip for -O0. * gcc.target/mips/atomic-memory-2.c: Likewise. * gcc.target/mips/branch-cost-1.c: Likewise. * gcc.target/mips/branch-cost-2.c: Likewise. * gcc.target/mips/cache-1.c: Likewise. * gcc.target/mips/call-1.c: Likewise. * gcc.target/mips/call-saved-2.c: Likewise. * gcc.target/mips/const-anchor-1.c: Likewise. * gcc.target/mips/const-anchor-2.c: Likewise. * gcc.target/mips/dse-1.c: Likewise. * gcc.target/mips/dsp-lhx.c: Likewise. * gcc.target/mips/dspr2-MULTU.c: Likewise. * gcc.target/mips/ext-1.c: Likewise. * gcc.target/mips/ext-2.c: Likewise. * gcc.target/mips/ext-3.c: Likewise. * gcc.target/mips/ext-4.c: Likewise. * gcc.target/mips/ext-5.c: Likewise. * gcc.target/mips/ext-6.c: Likewise. * gcc.target/mips/ext-7.c: Likewise. * gcc.target/mips/extend-1.c: Likewise. * gcc.target/mips/fix-r4000-1.c: Likewise. * gcc.target/mips/fix-r4000-3.c: Likewise. * gcc.target/mips/fix-r4000-5.c: Likewise. * gcc.target/mips/fix-r4000-6.c: Likewise. * gcc.target/mips/fix-r4000-8.c: Likewise. * gcc.target/mips/fix-r4000-10.c: Likewise. * gcc.target/mips/fixed-scalar-type.c: Likewise. * gcc.target/mips/fixed-vector-type.c: Likewise. * gcc.target/mips/fpr-moves-1.c: Likewise. * gcc.target/mips/fpr-moves-2.c: Likewise. * gcc.target/mips/fpr-moves-3.c: Likewise. * gcc.target/mips/fpr-moves-4.c: Likewise. * gcc.target/mips/fpr-moves-5.c: Likewise. * gcc.target/mips/fpr-moves-6.c: Likewise. * gcc.target/mips/ins-1.c: Likewise. * gcc.target/mips/ins-2.c: Likewise. * gcc.target/mips/interrupt_handler-2.c: Likewise. * gcc.target/mips/interrupt_handler-3.c: Likewise. * gcc.target/mips/lazy-binding-1.c: Likewise. * gcc.target/mips/madd-3.c: Likewise. * gcc.target/mips/madd-5.c: Likewise. * gcc.target/mips/madd-6.c: Likewise. * gcc.target/mips/madd-8.c: Likewise. * gcc.target/mips/madd-9.c: Likewise. * gcc.target/mips/memcpy-1.c: Likewise. * gcc.target/mips/mips-ps-type.c: Likewise. * gcc.target/mips/mips-ps-type-2.c: Likewise. * gcc.target/mips/mips-sched-madd.c: Likewise. * gcc.target/mips/mips16e-extends.c: Likewise. * gcc.target/mips/mips32r2-mxhc1.c: Likewise. * gcc.target/mips/mips64-dsp-ldx.c: Likewise. * gcc.target/mips/movcc-1.c: Likewise. * gcc.target/mips/movcc-2.c: Likewise. * gcc.target/mips/movcc-3.c: Likewise. * gcc.target/mips/msub-5.c: Likewise. * gcc.target/mips/msub-6.c: Likewise. * gcc.target/mips/msub-8.c: Likewise. * gcc.target/mips/mult-2.c: Likewise. * gcc.target/mips/mult-3.c: Likewise. * gcc.target/mips/mult-5.c: Likewise. * gcc.target/mips/mult-6.c: Likewise. * gcc.target/mips/mult-7.c: Likewise. * gcc.target/mips/mult-12.c: Likewise. * gcc.target/mips/mult-13.c: Likewise. * gcc.target/mips/mult-14.c: Likewise. * gcc.target/mips/mult-15.c: Likewise. * gcc.target/mips/mult-17.c: Likewise. * gcc.target/mips/mult-18.c: Likewise. * gcc.target/mips/mult-19.c: Likewise. * gcc.target/mips/nmadd-1.c: Likewise. * gcc.target/mips/nmadd-2.c: Likewise. * gcc.target/mips/octeon-baddu-1.c: Likewise. * gcc.target/mips/octeon-cins-1.c: Likewise. * gcc.target/mips/octeon-cins-2.c: Likewise. * gcc.target/mips/octeon-dmul-3.c: Likewise. * gcc.target/mips/octeon-exts-2.c: Likewise. * gcc.target/mips/octeon-exts-3.c: Likewise. * gcc.target/mips/octeon-exts-4.c: Likewise. * gcc.target/mips/octeon-exts-5.c: Likewise. * gcc.target/mips/octeon-exts-6.c: Likewise. * gcc.target/mips/octeon-exts-7.c: Likewise. * gcc.target/mips/octeon-pop-2.c: Likewise. * gcc.target/mips/octeon-seq-3.c: Likewise. * gcc.target/mips/octeon-seq-4.c: Likewise. * gcc.target/mips/octeon2-lx-1.c: Likewise. * gcc.target/mips/octeon2-lx-2.c: Likewise. * gcc.target/mips/octeon2-lx-3.c: Likewise. * gcc.target/mips/pr54240.c: Likewise. * gcc.target/mips/rsqrt-1.c: Likewise. * gcc.target/mips/rsqrt-2.c: Likewise. * gcc.target/mips/rsqrt-3.c: Likewise. * gcc.target/mips/rsqrt-4.c: Likewise. * gcc.target/mips/save-restore-2.c: Likewise. * gcc.target/mips/save-restore-4.c: Likewise. * gcc.target/mips/sb1-1.c: Likewise. * gcc.target/mips/scc-1.c: Likewise. * gcc.target/mips/scc-2.c: Likewise. * gcc.target/mips/scc-3.c: Likewise. * gcc.target/mips/scc-4.c: Likewise. * gcc.target/mips/smartmips-lwxs.c: Likewise. * gcc.target/mips/truncate-1.c: Likewise. * gcc.target/mips/truncate-2.c: Likewise. * gcc.target/mips/truncate-3.c: Likewise. * gcc.target/mips/truncate-4.c: Likewise. * gcc.target/mips/truncate-5.c: Likewise. * gcc.target/mips/truncate-6.c: Likewise. * gcc.target/mips/unaligned-1.c: Likewise. * gcc.target/mips/dpaq_sa_l_w.c: Remove optimization flag but skip for -O0. Require -fexpensive-optimizations. * gcc.target/mips/dpsq_sa_l_w.c: Likewise. * gcc.target/mips/dspr2-MULT.c: Likewise. * gcc.target/mips/fix-r4000-2.c: Likewise. * gcc.target/mips/fix-r4000-4.c: Likewise. * gcc.target/mips/fix-r4000-7.c: Likewise. * gcc.target/mips/fix-r4000-9.c: Likewise. * gcc.target/mips/madd-1.c: Likewise. * gcc.target/mips/madd-2.c: Likewise. * gcc.target/mips/madd-4.c: Likewise. * gcc.target/mips/maddu-1.c: Likewise. * gcc.target/mips/maddu-2.c: Likewise. * gcc.target/mips/maddu-3.c: Likewise. * gcc.target/mips/maddu-4.c: Likewise. * gcc.target/mips/msub-1.c: Likewise. * gcc.target/mips/msub-2.c: Likewise. * gcc.target/mips/msub-3.c: Likewise. * gcc.target/mips/msub-4.c: Likewise. * gcc.target/mips/msubu-1.c: Likewise. * gcc.target/mips/msubu-2.c: Likewise. * gcc.target/mips/msubu-3.c: Likewise. * gcc.target/mips/msubu-4.c: Likewise. * gcc.target/mips/mult-1.c: Likewise. * gcc.target/mips/mult-4.c: Likewise. * gcc.target/mips/mult-8.c: Likewise. * gcc.target/mips/mult-9.c: Likewise. * gcc.target/mips/mult-10.c: Likewise. * gcc.target/mips/mult-11.c: Likewise. * gcc.target/mips/mult-16.c: Likewise. * gcc.target/mips/fix-r4000-11.c: Remove optimization flag but skip for -O0 and -Os. * gcc.target/mips/fix-r4000-12.c: Likewise. * gcc.target/mips/madd-7.c: Likewise. * gcc.target/mips/mips-ps-5.c: Likewise. * gcc.target/mips/mips-ps-7.c: Likewise. * gcc.target/mips/msub-7.c: Likewise. * gcc.target/mips/mmcount-ra-address-2.c: Remove optimization flag but skip for -O0. Require -mno-abicalls. * gcc.target/mips/mmcount-ra-address-3.c: Likewise. * gcc.target/mips/octeon-bbit-1.c: Remove optimization flag but skip for -O0. Require a total number of BBIT instructions and at least one of each kind. * gcc.target/mips/octeon-bbit-2.c: Remove optimization flag but skip for -O0. Require -fno-unroll-loops. * gcc.target/mips/octeon-bbit-3.c: Remove optimization flag but skip for -O0. Allow BLTZ as well as BGEZ. * gcc.target/mips/octeon-dmul-2.c: Skip for -Os. * gcc.target/mips/octeon-pipe-1.c: Remove optimization flag but skip for -O0. Require -fschedule-insns2. * gcc.target/mips/octeon2-pipe-1.c: Likewise. * gcc.target/mips/r10k-cache-barrier-10.c: Remove optimization flag but skip for -O0. Make a branch-likely more likely. * gcc.target/mips/timode-2.c: Split each test into its own function. * gcc.target/mips/timode-1.c: Likewise. Skip for -Os. * gcc.target/mips/vr-mult-1.c: Remove optimization flag but skip for -O0. Require -fpeephole2. * gcc.target/mips/vr-mult-2.c: Likewise. From-SVN: r190718
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog352
-rw-r--r--gcc/testsuite/gcc.target/mips/20020620-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n32-long32.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n32-long64.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n64-long32.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-n64-long64.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o32-long32.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o32-long64.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o64-long32.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/abi-o64-long64.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/asm-1.c1
-rw-r--r--gcc/testsuite/gcc.target/mips/atomic-memory-2.c5
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-10.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-11.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-12.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-13.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-8.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-9.c8
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-cost-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/branch-cost-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/cache-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/call-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/call-2.c12
-rw-r--r--gcc/testsuite/gcc.target/mips/call-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/call-4.c9
-rw-r--r--gcc/testsuite/gcc.target/mips/call-saved-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/call-saved-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/clear-cache-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/clear-cache-2.c6
-rw-r--r--gcc/testsuite/gcc.target/mips/code-readable-1.c27
-rw-r--r--gcc/testsuite/gcc.target/mips/code-readable-2.c24
-rw-r--r--gcc/testsuite/gcc.target/mips/code-readable-3.c24
-rw-r--r--gcc/testsuite/gcc.target/mips/code-readable-4.c27
-rw-r--r--gcc/testsuite/gcc.target/mips/const-anchor-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/const-anchor-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-10.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-11.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-12.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-7.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/div-9.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/dse-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/dsp-ctrl.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/dsp-lhx.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/dsp-no-lhx.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/dspr2-MULT.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/dspr2-MULTU.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/ext-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/ext-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/ext-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/ext-4.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/ext-5.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/ext-6.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/ext-7.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/ext-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/extend-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/extend-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-10.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-11.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-12.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-13.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-14.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-15.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-7.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r10000-9.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-10.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-11.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-12.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-4.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-5.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-6.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-7.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-8.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-r4000-9.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/fixed-scalar-type.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fixed-vector-type.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fpcmp-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpcmp-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-4.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-5.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-6.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-7.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fpr-moves-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/ins-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/ins-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/int-moves-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/int-moves-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/interrupt_handler-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/interrupt_handler-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/lazy-binding-1.c5
-rw-r--r--gcc/testsuite/gcc.target/mips/long-calls-pg.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/loongson3a-muldiv-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-4.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-5.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-6.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-7.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-8.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/madd-9.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/maddu-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/maddu-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/maddu-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/maddu-4.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/memcpy-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-7.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-3d-9.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-5.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-7.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-type-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-ps-type.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mips-sched-madd.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mips.exp20
-rw-r--r--gcc/testsuite/gcc.target/mips/mips16e-extends.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32-dsp-run.c8
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32-dsp.c6
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32-dspr2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mmcount-ra-address-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/movcc-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/movcc-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/movcc-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-4.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-5.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-6.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-7.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/msub-8.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/msubu-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/msubu-2.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/msubu-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/msubu-4.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-1.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-10.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-11.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-12.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-13.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-14.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-15.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-16.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-17.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-18.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-19.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-4.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-5.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-6.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-7.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-8.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/mult-9.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/near-far-3.c4
-rw-r--r--gcc/testsuite/gcc.target/mips/near-far-4.c6
-rw-r--r--gcc/testsuite/gcc.target/mips/neg-abs-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/neg-abs-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/nmadd-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/nmadd-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/nmadd-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/no-dsp-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-baddu-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-bbit-1.c8
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-bbit-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-bbit-3.c5
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-cins-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-cins-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-dmul-2.c1
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-dmul-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-4.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-5.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-6.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-7.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-pipe-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-pop-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-pop-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-seq-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-seq-4.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon2-lx-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon2-lx-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon2-lx-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon2-pipe-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/pr26765.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr33256.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr33635-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr33755.c1
-rw-r--r--gcc/testsuite/gcc.target/mips/pr35802.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr45074.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr54240.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c12
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/rsqrt-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/rsqrt-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/rsqrt-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/rsqrt-4.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-4.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/save-restore-5.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/sb1-1.c5
-rw-r--r--gcc/testsuite/gcc.target/mips/scc-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/scc-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/scc-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/scc-4.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/sdata-1.c12
-rw-r--r--gcc/testsuite/gcc.target/mips/sdata-2.c12
-rw-r--r--gcc/testsuite/gcc.target/mips/sdata-3.c12
-rw-r--r--gcc/testsuite/gcc.target/mips/sdata-4.c12
-rw-r--r--gcc/testsuite/gcc.target/mips/smartmips-lwxs.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/smartmips-ror-1.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/smartmips-ror-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/smartmips-ror-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/smartmips-ror-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/soft-float-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/stack-1.c1
-rw-r--r--gcc/testsuite/gcc.target/mips/timode-1.c45
-rw-r--r--gcc/testsuite/gcc.target/mips/timode-2.c57
-rw-r--r--gcc/testsuite/gcc.target/mips/truncate-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/truncate-2.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/truncate-3.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/truncate-4.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/truncate-5.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/truncate-6.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/unaligned-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/vr-mult-1.c3
-rw-r--r--gcc/testsuite/gcc.target/mips/vr-mult-2.c3
306 files changed, 1078 insertions, 391 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d34a5c1..aeebb09 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,355 @@
+2012-08-27 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gcc.target/mips/mips.exp: Use gcc-dg-runtest rather than dg-runtest.
+ (mips_option_groups): Remove optimization. Add various -f options.
+ (mips-dg-options): Make -funroll-loops imply -funroll-all-loops
+ and -pg imply -fno-omit-frame-pointer.
+ * gcc.target/mips/abi-eabi32-long32.c: Remove optimization flag.
+ * gcc.target/mips/abi-eabi32-long64.c: Likewise.
+ * gcc.target/mips/abi-eabi64-long32.c: Likewise.
+ * gcc.target/mips/abi-eabi64-long64.c: Likewise.
+ * gcc.target/mips/abi-n32-long32-no-shared.c: Likewise.
+ * gcc.target/mips/abi-n32-long32-pic.c: Likewise.
+ * gcc.target/mips/abi-n32-long32.c: Likewise.
+ * gcc.target/mips/abi-n32-long64-no-shared.c: Likewise.
+ * gcc.target/mips/abi-n32-long64-pic.c: Likewise.
+ * gcc.target/mips/abi-n32-long64.c: Likewise.
+ * gcc.target/mips/abi-n64-long32-no-shared.c: Likewise.
+ * gcc.target/mips/abi-n64-long32-pic.c: Likewise.
+ * gcc.target/mips/abi-n64-long32.c: Likewise.
+ * gcc.target/mips/abi-n64-long64-no-shared.c: Likewise.
+ * gcc.target/mips/abi-n64-long64-pic.c: Likewise.
+ * gcc.target/mips/abi-n64-long64.c: Likewise.
+ * gcc.target/mips/abi-o32-long32-no-shared.c: Likewise.
+ * gcc.target/mips/abi-o32-long32-pic.c: Likewise.
+ * gcc.target/mips/abi-o32-long32.c: Likewise.
+ * gcc.target/mips/abi-o32-long64-no-shared.c: Likewise.
+ * gcc.target/mips/abi-o32-long64-pic.c: Likewise.
+ * gcc.target/mips/abi-o32-long64.c: Likewise.
+ * gcc.target/mips/abi-o64-long32-no-shared.c: Likewise.
+ * gcc.target/mips/abi-o64-long32-pic.c: Likewise.
+ * gcc.target/mips/abi-o64-long32.c: Likewise.
+ * gcc.target/mips/abi-o64-long64-no-shared.c: Likewise.
+ * gcc.target/mips/abi-o64-long64-pic.c: Likewise.
+ * gcc.target/mips/abi-o64-long64.c: Likewise.
+ * gcc.target/mips/asm-1.c: Likewise.
+ * gcc.target/mips/branch-1.c: Likewise.
+ * gcc.target/mips/call-3.c: Likewise.
+ * gcc.target/mips/call-saved-3.c: Likewise.
+ * gcc.target/mips/clear-cache-1.c: Likewise.
+ * gcc.target/mips/div-1.c: Likewise.
+ * gcc.target/mips/div-2.c: Likewise.
+ * gcc.target/mips/div-3.c: Likewise.
+ * gcc.target/mips/div-4.c: Likewise.
+ * gcc.target/mips/div-5.c: Likewise.
+ * gcc.target/mips/div-6.c: Likewise.
+ * gcc.target/mips/div-7.c: Likewise.
+ * gcc.target/mips/div-8.c: Likewise.
+ * gcc.target/mips/div-9.c: Likewise.
+ * gcc.target/mips/div-10.c: Likewise.
+ * gcc.target/mips/div-11.c: Likewise.
+ * gcc.target/mips/div-12.c: Likewise.
+ * gcc.target/mips/dsp-ctrl.c: Likewise.
+ * gcc.target/mips/dsp-no-lhx.c: Likewise.
+ * gcc.target/mips/ext-8.c: Likewise.
+ * gcc.target/mips/extend-2.c: Likewise.
+ * gcc.target/mips/fix-r10000-1.c: Likewise.
+ * gcc.target/mips/fix-r10000-2.c: Likewise.
+ * gcc.target/mips/fix-r10000-3.c: Likewise.
+ * gcc.target/mips/fix-r10000-4.c: Likewise.
+ * gcc.target/mips/fix-r10000-5.c: Likewise.
+ * gcc.target/mips/fix-r10000-6.c: Likewise.
+ * gcc.target/mips/fix-r10000-7.c: Likewise.
+ * gcc.target/mips/fix-r10000-8.c: Likewise.
+ * gcc.target/mips/fix-r10000-9.c: Likewise.
+ * gcc.target/mips/fix-r10000-10.c: Likewise.
+ * gcc.target/mips/fix-r10000-11.c: Likewise.
+ * gcc.target/mips/fix-r10000-12.c: Likewise.
+ * gcc.target/mips/fix-r10000-13.c: Likewise.
+ * gcc.target/mips/fix-r10000-14.c: Likewise.
+ * gcc.target/mips/fix-r10000-15.c: Likewise.
+ * gcc.target/mips/fpcmp-1.c: Likewise.
+ * gcc.target/mips/fpcmp-2.c: Likewise.
+ * gcc.target/mips/fpr-moves-7.c: Likewise.
+ * gcc.target/mips/fpr-moves-8.c: Likewise.
+ * gcc.target/mips/int-moves-1.c: Likewise.
+ * gcc.target/mips/int-moves-2.c: Likewise.
+ * gcc.target/mips/long-calls-pg.c: Likewise.
+ * gcc.target/mips/loongson-muldiv-1.c: Likewise.
+ * gcc.target/mips/loongson-muldiv-2.c: Likewise.
+ * gcc.target/mips/loongson-shift-count-truncated-1.c: Likewise.
+ * gcc.target/mips/loongson3a-muldiv-1.c: Likewise.
+ * gcc.target/mips/loongson3a-muldiv-2.c: Likewise.
+ * gcc.target/mips/mips-3d-1.c: Likewise.
+ * gcc.target/mips/mips-3d-2.c: Likewise.
+ * gcc.target/mips/mips-3d-3.c: Likewise.
+ * gcc.target/mips/mips-3d-4.c: Likewise.
+ * gcc.target/mips/mips-3d-5.c: Likewise.
+ * gcc.target/mips/mips-3d-6.c: Likewise.
+ * gcc.target/mips/mips-3d-7.c: Likewise.
+ * gcc.target/mips/mips-3d-8.c: Likewise.
+ * gcc.target/mips/mips-3d-9.c: Likewise.
+ * gcc.target/mips/mips-ps-1.c: Likewise.
+ * gcc.target/mips/mips-ps-2.c: Likewise.
+ * gcc.target/mips/mips-ps-3.c: Likewise.
+ * gcc.target/mips/mips-ps-4.c: Likewise.
+ * gcc.target/mips/mips-ps-6.c: Likewise.
+ * gcc.target/mips/mips32-dspr2.c: Likewise.
+ * gcc.target/mips/mmcount-ra-address-1.c: Likewise.
+ * gcc.target/mips/neg-abs-1.c: Likewise.
+ * gcc.target/mips/neg-abs-2.c: Likewise.
+ * gcc.target/mips/nmadd-3.c: Likewise.
+ * gcc.target/mips/no-smartmips-lwxs.c: Likewise.
+ * gcc.target/mips/no-smartmips-ror-1.c: Likewise.
+ * gcc.target/mips/octeon-pop-1.c: Likewise.
+ * gcc.target/mips/pr26765.c: Likewise.
+ * gcc.target/mips/pr33256.c: Likewise.
+ * gcc.target/mips/pr33635-1.c: Likewise.
+ * gcc.target/mips/pr33755.c: Likewise.
+ * gcc.target/mips/pr35802.c: Likewise.
+ * gcc.target/mips/pr45074.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-1.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-2.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-3.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-4.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-5.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-6.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-7.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-8.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-9.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-11.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-12.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-13.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-14.c: Likewise.
+ * gcc.target/mips/r10k-cache-barrier-15.c: Likewise.
+ * gcc.target/mips/save-restore-1.c: Likewise.
+ * gcc.target/mips/save-restore-3.c: Likewise.
+ * gcc.target/mips/save-restore-5.c: Likewise.
+ * gcc.target/mips/smartmips-ror-1.c: Likewise.
+ * gcc.target/mips/smartmips-ror-2.c: Likewise.
+ * gcc.target/mips/smartmips-ror-3.c: Likewise.
+ * gcc.target/mips/smartmips-ror-4.c: Likewise.
+ * gcc.target/mips/stack-1.c: Likewise.
+
+ * gcc.target/mips/clear-cache-2.c: Remove optimization flag.
+ Tighten regexps.
+
+ * gcc.target/mips/branch-8.c: Arrange for the delay slot of the
+ branch under test to be filled with preceding rather than
+ following instructions.
+ * gcc.target/mips/branch-10.c: Likewise.
+ * gcc.target/mips/branch-11.c: Likewise.
+ * gcc.target/mips/branch-12.c: Likewise.
+ * gcc.target/mips/branch-13.c: Likewise.
+ * gcc.target/mips/branch-9.c: Likewise. Allow the frame pointer
+ to be eliminated. Tighten $28 scan-assembler-not test.
+
+ * gcc.target/mips/call-2.c: Remove optimization flag. Move second
+ function to...
+ * gcc.target/mips/call-4.c: ...this new test.
+
+ * gcc.target/mips/code-readable-2.c: Rework to make a jump table
+ more likely.
+ * gcc.target/mips/code-readable-3.c: Likewise.
+ * gcc.target/mips/code-readable-1.c: Likewise. Remove optimization
+ flag but skip for -O0.
+ * gcc.target/mips/code-readable-4.c: Likewise.
+
+ * gcc.target/mips/mips32-dsp-run.c: Prevent compile-time reduction
+ of operations under test.
+ * gcc.target/mips/mips32-dsp.c: Likewise. Remove optimization flag.
+
+ * gcc.target/mips/near-far-3.c: Remove optimization flag.
+ Don't require sibling-call optimization.
+ * gcc.target/mips/near-far-4.c: Likewise.
+
+ * gcc.target/mips/no-dsp-1.c: Require -ffat-lto-objects.
+ Make sure that the register variable is used.
+ * gcc.target/mips/soft-float-1.c: Likewise.
+
+ * gcc.target/mips/sdata-1.c: Make static data volatile.
+ * gcc.target/mips/sdata-2.c: Likewise.
+ * gcc.target/mips/sdata-3.c: Likewise.
+ * gcc.target/mips/sdata-4.c: Likewise.
+
+ * gcc.target/mips/20020620-1.c: Remove optimization flag but
+ skip for -O0.
+ * gcc.target/mips/atomic-memory-2.c: Likewise.
+ * gcc.target/mips/branch-cost-1.c: Likewise.
+ * gcc.target/mips/branch-cost-2.c: Likewise.
+ * gcc.target/mips/cache-1.c: Likewise.
+ * gcc.target/mips/call-1.c: Likewise.
+ * gcc.target/mips/call-saved-2.c: Likewise.
+ * gcc.target/mips/const-anchor-1.c: Likewise.
+ * gcc.target/mips/const-anchor-2.c: Likewise.
+ * gcc.target/mips/dse-1.c: Likewise.
+ * gcc.target/mips/dsp-lhx.c: Likewise.
+ * gcc.target/mips/dspr2-MULTU.c: Likewise.
+ * gcc.target/mips/ext-1.c: Likewise.
+ * gcc.target/mips/ext-2.c: Likewise.
+ * gcc.target/mips/ext-3.c: Likewise.
+ * gcc.target/mips/ext-4.c: Likewise.
+ * gcc.target/mips/ext-5.c: Likewise.
+ * gcc.target/mips/ext-6.c: Likewise.
+ * gcc.target/mips/ext-7.c: Likewise.
+ * gcc.target/mips/extend-1.c: Likewise.
+ * gcc.target/mips/fix-r4000-1.c: Likewise.
+ * gcc.target/mips/fix-r4000-3.c: Likewise.
+ * gcc.target/mips/fix-r4000-5.c: Likewise.
+ * gcc.target/mips/fix-r4000-6.c: Likewise.
+ * gcc.target/mips/fix-r4000-8.c: Likewise.
+ * gcc.target/mips/fix-r4000-10.c: Likewise.
+ * gcc.target/mips/fixed-scalar-type.c: Likewise.
+ * gcc.target/mips/fixed-vector-type.c: Likewise.
+ * gcc.target/mips/fpr-moves-1.c: Likewise.
+ * gcc.target/mips/fpr-moves-2.c: Likewise.
+ * gcc.target/mips/fpr-moves-3.c: Likewise.
+ * gcc.target/mips/fpr-moves-4.c: Likewise.
+ * gcc.target/mips/fpr-moves-5.c: Likewise.
+ * gcc.target/mips/fpr-moves-6.c: Likewise.
+ * gcc.target/mips/ins-1.c: Likewise.
+ * gcc.target/mips/ins-2.c: Likewise.
+ * gcc.target/mips/interrupt_handler-2.c: Likewise.
+ * gcc.target/mips/interrupt_handler-3.c: Likewise.
+ * gcc.target/mips/lazy-binding-1.c: Likewise.
+ * gcc.target/mips/madd-3.c: Likewise.
+ * gcc.target/mips/madd-5.c: Likewise.
+ * gcc.target/mips/madd-6.c: Likewise.
+ * gcc.target/mips/madd-8.c: Likewise.
+ * gcc.target/mips/madd-9.c: Likewise.
+ * gcc.target/mips/memcpy-1.c: Likewise.
+ * gcc.target/mips/mips-ps-type.c: Likewise.
+ * gcc.target/mips/mips-ps-type-2.c: Likewise.
+ * gcc.target/mips/mips-sched-madd.c: Likewise.
+ * gcc.target/mips/mips16e-extends.c: Likewise.
+ * gcc.target/mips/mips32r2-mxhc1.c: Likewise.
+ * gcc.target/mips/mips64-dsp-ldx.c: Likewise.
+ * gcc.target/mips/movcc-1.c: Likewise.
+ * gcc.target/mips/movcc-2.c: Likewise.
+ * gcc.target/mips/movcc-3.c: Likewise.
+ * gcc.target/mips/msub-5.c: Likewise.
+ * gcc.target/mips/msub-6.c: Likewise.
+ * gcc.target/mips/msub-8.c: Likewise.
+ * gcc.target/mips/mult-2.c: Likewise.
+ * gcc.target/mips/mult-3.c: Likewise.
+ * gcc.target/mips/mult-5.c: Likewise.
+ * gcc.target/mips/mult-6.c: Likewise.
+ * gcc.target/mips/mult-7.c: Likewise.
+ * gcc.target/mips/mult-12.c: Likewise.
+ * gcc.target/mips/mult-13.c: Likewise.
+ * gcc.target/mips/mult-14.c: Likewise.
+ * gcc.target/mips/mult-15.c: Likewise.
+ * gcc.target/mips/mult-17.c: Likewise.
+ * gcc.target/mips/mult-18.c: Likewise.
+ * gcc.target/mips/mult-19.c: Likewise.
+ * gcc.target/mips/nmadd-1.c: Likewise.
+ * gcc.target/mips/nmadd-2.c: Likewise.
+ * gcc.target/mips/octeon-baddu-1.c: Likewise.
+ * gcc.target/mips/octeon-cins-1.c: Likewise.
+ * gcc.target/mips/octeon-cins-2.c: Likewise.
+ * gcc.target/mips/octeon-dmul-3.c: Likewise.
+ * gcc.target/mips/octeon-exts-2.c: Likewise.
+ * gcc.target/mips/octeon-exts-3.c: Likewise.
+ * gcc.target/mips/octeon-exts-4.c: Likewise.
+ * gcc.target/mips/octeon-exts-5.c: Likewise.
+ * gcc.target/mips/octeon-exts-6.c: Likewise.
+ * gcc.target/mips/octeon-exts-7.c: Likewise.
+ * gcc.target/mips/octeon-pop-2.c: Likewise.
+ * gcc.target/mips/octeon-seq-3.c: Likewise.
+ * gcc.target/mips/octeon-seq-4.c: Likewise.
+ * gcc.target/mips/octeon2-lx-1.c: Likewise.
+ * gcc.target/mips/octeon2-lx-2.c: Likewise.
+ * gcc.target/mips/octeon2-lx-3.c: Likewise.
+ * gcc.target/mips/pr54240.c: Likewise.
+ * gcc.target/mips/rsqrt-1.c: Likewise.
+ * gcc.target/mips/rsqrt-2.c: Likewise.
+ * gcc.target/mips/rsqrt-3.c: Likewise.
+ * gcc.target/mips/rsqrt-4.c: Likewise.
+ * gcc.target/mips/save-restore-2.c: Likewise.
+ * gcc.target/mips/save-restore-4.c: Likewise.
+ * gcc.target/mips/sb1-1.c: Likewise.
+ * gcc.target/mips/scc-1.c: Likewise.
+ * gcc.target/mips/scc-2.c: Likewise.
+ * gcc.target/mips/scc-3.c: Likewise.
+ * gcc.target/mips/scc-4.c: Likewise.
+ * gcc.target/mips/smartmips-lwxs.c: Likewise.
+ * gcc.target/mips/truncate-1.c: Likewise.
+ * gcc.target/mips/truncate-2.c: Likewise.
+ * gcc.target/mips/truncate-3.c: Likewise.
+ * gcc.target/mips/truncate-4.c: Likewise.
+ * gcc.target/mips/truncate-5.c: Likewise.
+ * gcc.target/mips/truncate-6.c: Likewise.
+ * gcc.target/mips/unaligned-1.c: Likewise.
+
+ * gcc.target/mips/dpaq_sa_l_w.c: Remove optimization flag but
+ skip for -O0. Require -fexpensive-optimizations.
+ * gcc.target/mips/dpsq_sa_l_w.c: Likewise.
+ * gcc.target/mips/dspr2-MULT.c: Likewise.
+ * gcc.target/mips/fix-r4000-2.c: Likewise.
+ * gcc.target/mips/fix-r4000-4.c: Likewise.
+ * gcc.target/mips/fix-r4000-7.c: Likewise.
+ * gcc.target/mips/fix-r4000-9.c: Likewise.
+ * gcc.target/mips/madd-1.c: Likewise.
+ * gcc.target/mips/madd-2.c: Likewise.
+ * gcc.target/mips/madd-4.c: Likewise.
+ * gcc.target/mips/maddu-1.c: Likewise.
+ * gcc.target/mips/maddu-2.c: Likewise.
+ * gcc.target/mips/maddu-3.c: Likewise.
+ * gcc.target/mips/maddu-4.c: Likewise.
+ * gcc.target/mips/msub-1.c: Likewise.
+ * gcc.target/mips/msub-2.c: Likewise.
+ * gcc.target/mips/msub-3.c: Likewise.
+ * gcc.target/mips/msub-4.c: Likewise.
+ * gcc.target/mips/msubu-1.c: Likewise.
+ * gcc.target/mips/msubu-2.c: Likewise.
+ * gcc.target/mips/msubu-3.c: Likewise.
+ * gcc.target/mips/msubu-4.c: Likewise.
+ * gcc.target/mips/mult-1.c: Likewise.
+ * gcc.target/mips/mult-4.c: Likewise.
+ * gcc.target/mips/mult-8.c: Likewise.
+ * gcc.target/mips/mult-9.c: Likewise.
+ * gcc.target/mips/mult-10.c: Likewise.
+ * gcc.target/mips/mult-11.c: Likewise.
+ * gcc.target/mips/mult-16.c: Likewise.
+
+ * gcc.target/mips/fix-r4000-11.c: Remove optimization flag but
+ skip for -O0 and -Os.
+ * gcc.target/mips/fix-r4000-12.c: Likewise.
+ * gcc.target/mips/madd-7.c: Likewise.
+ * gcc.target/mips/mips-ps-5.c: Likewise.
+ * gcc.target/mips/mips-ps-7.c: Likewise.
+ * gcc.target/mips/msub-7.c: Likewise.
+
+ * gcc.target/mips/mmcount-ra-address-2.c: Remove optimization flag but
+ skip for -O0. Require -mno-abicalls.
+ * gcc.target/mips/mmcount-ra-address-3.c: Likewise.
+
+ * gcc.target/mips/octeon-bbit-1.c: Remove optimization flag but
+ skip for -O0. Require a total number of BBIT instructions and
+ at least one of each kind.
+
+ * gcc.target/mips/octeon-bbit-2.c: Remove optimization flag but
+ skip for -O0. Require -fno-unroll-loops.
+
+ * gcc.target/mips/octeon-bbit-3.c: Remove optimization flag but
+ skip for -O0. Allow BLTZ as well as BGEZ.
+
+ * gcc.target/mips/octeon-dmul-2.c: Skip for -Os.
+
+ * gcc.target/mips/octeon-pipe-1.c: Remove optimization flag but
+ skip for -O0. Require -fschedule-insns2.
+ * gcc.target/mips/octeon2-pipe-1.c: Likewise.
+
+ * gcc.target/mips/r10k-cache-barrier-10.c: Remove optimization flag
+ but skip for -O0. Make a branch-likely more likely.
+
+ * gcc.target/mips/timode-2.c: Split each test into its own function.
+ * gcc.target/mips/timode-1.c: Likewise. Skip for -Os.
+
+ * gcc.target/mips/vr-mult-1.c: Remove optimization flag but
+ skip for -O0. Require -fpeephole2.
+ * gcc.target/mips/vr-mult-2.c: Likewise.
+
2012-05-25 Dodji Seketeli <dodji@redhat.com>
PR preprocessor/53469
diff --git a/gcc/testsuite/gcc.target/mips/20020620-1.c b/gcc/testsuite/gcc.target/mips/20020620-1.c
index 1f2affe..8a70dd3 100644
--- a/gcc/testsuite/gcc.target/mips/20020620-1.c
+++ b/gcc/testsuite/gcc.target/mips/20020620-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mlong64" } */
+/* { dg-options "-mlong64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
int foo (int *x, int i)
{
return x[i] + i;
diff --git a/gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c b/gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c
index ebc5dd6..75bd1b6 100644
--- a/gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c
+++ b/gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=eabi -mgp32 -mlong32 -O2" } */
+/* { dg-options "-mabi=eabi -mgp32 -mlong32" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c b/gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c
index 5a776ec..1649433 100644
--- a/gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c
+++ b/gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=eabi -mgp32 -mlong64 -O2" } */
+/* { dg-options "-mabi=eabi -mgp32 -mlong64" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c b/gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c
index 3882e48..03d7c27 100644
--- a/gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c
+++ b/gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=eabi -mgp64 -mlong32 -O2" } */
+/* { dg-options "-mabi=eabi -mgp64 -mlong32" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c b/gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c
index 5569bf5..bb6fa17 100644
--- a/gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c
+++ b/gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=eabi -mgp64 -mlong64 -O2" } */
+/* { dg-options "-mabi=eabi -mgp64 -mlong64" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c
index 5cab4c9..11dfe2b 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=n32 -mlong32 -mabicalls -mno-shared -mno-plt -O2" } */
+/* { dg-options "-mabi=n32 -mlong32 -mabicalls -mno-shared -mno-plt" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c b/gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c
index eb455da..ffbe62c 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=n32 -mlong32 -fpic -O2" } */
+/* { dg-options "-mabi=n32 -mlong32 -fpic" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long32.c b/gcc/testsuite/gcc.target/mips/abi-n32-long32.c
index 6a0f702..f6fa20d 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n32-long32.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n32-long32.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=n32 -mlong32 addressing=absolute -O2" } */
+/* { dg-options "-mabi=n32 -mlong32 addressing=absolute" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c
index 3edf867..a30b573 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=n32 -mlong64 -mabicalls -mno-shared -mno-plt -O2" } */
+/* { dg-options "-mabi=n32 -mlong64 -mabicalls -mno-shared -mno-plt" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c b/gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c
index b444209..f9729a3 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=n32 -mlong64 -fpic -O2" } */
+/* { dg-options "-mabi=n32 -mlong64 -fpic" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n32-long64.c b/gcc/testsuite/gcc.target/mips/abi-n32-long64.c
index 868719c..b064bf5 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n32-long64.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n32-long64.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=n32 -mlong64 addressing=absolute -O2" } */
+/* { dg-options "-mabi=n32 -mlong64 addressing=absolute" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c
index b268d88..6a52409 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=64 -mlong32 -mabicalls -mno-shared -mno-plt -O2" } */
+/* { dg-options "-mabi=64 -mlong32 -mabicalls -mno-shared -mno-plt" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c b/gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c
index 5a0d917..6a5203e 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=64 -mlong32 -fpic -O2" } */
+/* { dg-options "-mabi=64 -mlong32 -fpic" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long32.c b/gcc/testsuite/gcc.target/mips/abi-n64-long32.c
index 4227169..d5f52d9 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n64-long32.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n64-long32.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=64 -mlong32 addressing=absolute -O2" } */
+/* { dg-options "-mabi=64 -mlong32 addressing=absolute" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c
index 5301cfc..113bbcc 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=64 -mlong64 -mabicalls -mno-shared -mno-plt -O2" } */
+/* { dg-options "-mabi=64 -mlong64 -mabicalls -mno-shared -mno-plt" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c b/gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c
index f43e915..5f73468 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=64 -mlong64 -fpic -O2" } */
+/* { dg-options "-mabi=64 -mlong64 -fpic" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-n64-long64.c b/gcc/testsuite/gcc.target/mips/abi-n64-long64.c
index a670fe5..19e6d91 100644
--- a/gcc/testsuite/gcc.target/mips/abi-n64-long64.c
+++ b/gcc/testsuite/gcc.target/mips/abi-n64-long64.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=64 -mlong64 addressing=absolute -O2" } */
+/* { dg-options "-mabi=64 -mlong64 addressing=absolute" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c
index 2032b36..fb1b888 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=32 -mlong32 -mabicalls -mno-shared -mno-plt -O2" } */
+/* { dg-options "-mabi=32 -mlong32 -mabicalls -mno-shared -mno-plt" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c b/gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c
index 5a3e93e..64a7f58 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=32 -mlong32 -fpic -O2" } */
+/* { dg-options "-mabi=32 -mlong32 -fpic" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long32.c b/gcc/testsuite/gcc.target/mips/abi-o32-long32.c
index bdb9464..7901220 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o32-long32.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o32-long32.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=32 -mlong32 addressing=absolute -O2" } */
+/* { dg-options "-mabi=32 -mlong32 addressing=absolute" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c
index 6340b63..2f28aeb 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=32 -mlong64 -mabicalls -mno-shared -mno-plt -O2" } */
+/* { dg-options "-mabi=32 -mlong64 -mabicalls -mno-shared -mno-plt" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c b/gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c
index 1583034..89cd9a2 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=32 -mlong64 -fpic -O2" } */
+/* { dg-options "-mabi=32 -mlong64 -fpic" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o32-long64.c b/gcc/testsuite/gcc.target/mips/abi-o32-long64.c
index 4a88739..840e9aa 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o32-long64.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o32-long64.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=32 -mlong64 addressing=absolute -O2" } */
+/* { dg-options "-mabi=32 -mlong64 addressing=absolute" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c
index 548ae0d..832550e 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=o64 -mlong32 -mabicalls -mno-shared -mno-plt -O2" } */
+/* { dg-options "-mabi=o64 -mlong32 -mabicalls -mno-shared -mno-plt" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c b/gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c
index 89d03ab..e06b882 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=o64 -mlong32 -fpic -O2" } */
+/* { dg-options "-mabi=o64 -mlong32 -fpic" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long32.c b/gcc/testsuite/gcc.target/mips/abi-o64-long32.c
index db5893e..54ac2d7 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o64-long32.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o64-long32.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=o64 -mlong32 addressing=absolute -O2" } */
+/* { dg-options "-mabi=o64 -mlong32 addressing=absolute" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c b/gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c
index df164b2..94848f4 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=o64 -mlong64 -mabicalls -mno-shared -mno-plt -O2" } */
+/* { dg-options "-mabi=o64 -mlong64 -mabicalls -mno-shared -mno-plt" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c b/gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c
index df58d1f..8c2ca36 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c
@@ -1,3 +1,3 @@
-/* { dg-options "-mabi=o64 -mlong64 -fpic -O2" } */
+/* { dg-options "-mabi=o64 -mlong64 -fpic" } */
/* { dg-error "is incompatible with" "" { target *-*-* } 0 } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/abi-o64-long64.c b/gcc/testsuite/gcc.target/mips/abi-o64-long64.c
index 43078f6..0263356 100644
--- a/gcc/testsuite/gcc.target/mips/abi-o64-long64.c
+++ b/gcc/testsuite/gcc.target/mips/abi-o64-long64.c
@@ -1,2 +1,2 @@
-/* { dg-options "-mabi=o64 -mlong64 -mno-abicalls -O2" } */
+/* { dg-options "-mabi=o64 -mlong64 -mno-abicalls" } */
#include "abi-main.h"
diff --git a/gcc/testsuite/gcc.target/mips/asm-1.c b/gcc/testsuite/gcc.target/mips/asm-1.c
index 9f9cb3a..8df2689 100644
--- a/gcc/testsuite/gcc.target/mips/asm-1.c
+++ b/gcc/testsuite/gcc.target/mips/asm-1.c
@@ -1,7 +1,6 @@
/* PR target/17565. GCC used to put the asm into the delay slot
of the call. */
/* { dg-do assemble } */
-/* { dg-options "-O" } */
NOMIPS16 int foo (int n)
{
diff --git a/gcc/testsuite/gcc.target/mips/atomic-memory-2.c b/gcc/testsuite/gcc.target/mips/atomic-memory-2.c
index bc597ab..de17ec3 100644
--- a/gcc/testsuite/gcc.target/mips/atomic-memory-2.c
+++ b/gcc/testsuite/gcc.target/mips/atomic-memory-2.c
@@ -1,10 +1,11 @@
/* { dg-do compile } */
-/* { dg-options "-O2 isa>=2 -mabi=32" } */
+/* { dg-options "isa>=2 -mabi=32" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "addiu" } } */
/* { dg-final { scan-assembler-not "subu" } } */
NOMIPS16 unsigned long
f(unsigned long *p)
{
- return __sync_fetch_and_sub (p, 5);
+ return __sync_fetch_and_sub (p, 5);
}
diff --git a/gcc/testsuite/gcc.target/mips/branch-1.c b/gcc/testsuite/gcc.target/mips/branch-1.c
index 2f4510f..6ef50e8 100644
--- a/gcc/testsuite/gcc.target/mips/branch-1.c
+++ b/gcc/testsuite/gcc.target/mips/branch-1.c
@@ -2,7 +2,7 @@
but we test for "bbit" elsewhere. On other targets, we should implement
the "if" statements using an "andi" instruction followed by a branch
on zero. */
-/* { dg-options "-O2 forbid_cpu=octeon.*" } */
+/* { dg-options "forbid_cpu=octeon.*" } */
void bar (void);
NOMIPS16 void f1 (int x) { if (x & 4) bar (); }
diff --git a/gcc/testsuite/gcc.target/mips/branch-10.c b/gcc/testsuite/gcc.target/mips/branch-10.c
index 8186030..e2b1b5f 100644
--- a/gcc/testsuite/gcc.target/mips/branch-10.c
+++ b/gcc/testsuite/gcc.target/mips/branch-10.c
@@ -5,9 +5,9 @@
#include "branch-helper.h"
NOMIPS16 void
-foo (void (*bar) (void), volatile int *x)
+foo (int (*bar) (void), int *x)
{
- bar ();
+ *x = bar ();
if (__builtin_expect (*x == 0, 1))
OCCUPY_0x1fff8;
}
diff --git a/gcc/testsuite/gcc.target/mips/branch-11.c b/gcc/testsuite/gcc.target/mips/branch-11.c
index a314740..962eb1b 100644
--- a/gcc/testsuite/gcc.target/mips/branch-11.c
+++ b/gcc/testsuite/gcc.target/mips/branch-11.c
@@ -9,9 +9,9 @@
#include "branch-helper.h"
NOMIPS16 void
-foo (void (*bar) (void), volatile int *x)
+foo (int (*bar) (void), int *x)
{
- bar ();
+ *x = bar ();
if (__builtin_expect (*x == 0, 1))
OCCUPY_0x1fffc;
}
diff --git a/gcc/testsuite/gcc.target/mips/branch-12.c b/gcc/testsuite/gcc.target/mips/branch-12.c
index 3e5b421..4aef160 100644
--- a/gcc/testsuite/gcc.target/mips/branch-12.c
+++ b/gcc/testsuite/gcc.target/mips/branch-12.c
@@ -5,9 +5,9 @@
#include "branch-helper.h"
NOMIPS16 void
-foo (void (*bar) (void), volatile int *x)
+foo (int (*bar) (void), int *x)
{
- bar ();
+ *x = bar ();
if (__builtin_expect (*x == 0, 1))
OCCUPY_0x1fff8;
}
diff --git a/gcc/testsuite/gcc.target/mips/branch-13.c b/gcc/testsuite/gcc.target/mips/branch-13.c
index 9bd9414..8a6fb04 100644
--- a/gcc/testsuite/gcc.target/mips/branch-13.c
+++ b/gcc/testsuite/gcc.target/mips/branch-13.c
@@ -9,9 +9,9 @@
#include "branch-helper.h"
NOMIPS16 void
-foo (void (*bar) (void), volatile int *x)
+foo (int (*bar) (void), int *x)
{
- bar ();
+ *x = bar ();
if (__builtin_expect (*x == 0, 1))
OCCUPY_0x1fffc;
}
diff --git a/gcc/testsuite/gcc.target/mips/branch-8.c b/gcc/testsuite/gcc.target/mips/branch-8.c
index 4595fea..ba5f954 100644
--- a/gcc/testsuite/gcc.target/mips/branch-8.c
+++ b/gcc/testsuite/gcc.target/mips/branch-8.c
@@ -5,9 +5,9 @@
#include "branch-helper.h"
NOMIPS16 void
-foo (void (*bar) (void), volatile int *x)
+foo (int (*bar) (void), int *x)
{
- bar ();
+ *x = bar ();
if (__builtin_expect (*x == 0, 1))
OCCUPY_0x1fff8;
}
diff --git a/gcc/testsuite/gcc.target/mips/branch-9.c b/gcc/testsuite/gcc.target/mips/branch-9.c
index 417507c..cad1c00 100644
--- a/gcc/testsuite/gcc.target/mips/branch-9.c
+++ b/gcc/testsuite/gcc.target/mips/branch-9.c
@@ -1,18 +1,18 @@
/* { dg-options "-mshared -mabi=32" } */
/* { dg-final { scan-assembler "\t\\.cpload\t\\\$25\n" } } */
/* { dg-final { scan-assembler "\t\\.cprestore\t16\n" } } */
-/* { dg-final { scan-assembler "\tlw\t\\\$1,16\\(\\\$fp\\)\n" } } */
+/* { dg-final { scan-assembler "\tlw\t\\\$1,16\\(\\\$(fp|sp)\\)\n" } } */
/* { dg-final { scan-assembler "\tlw\t\\\$1,%got\\(\[^)\]*\\)\\(\\\$1\\)\n" } } */
/* { dg-final { scan-assembler "\taddiu\t\\\$1,\\\$1,%lo\\(\[^)\]*\\)\n" } } */
/* { dg-final { scan-assembler "\tjr\t\\\$1\n" } } */
-/* { dg-final { scan-assembler-not "\tlw\t\\\$28,16\\(\\\$sp\\)\n" } } */
+/* { dg-final { scan-assembler-not "\\\$28" } } */
#include "branch-helper.h"
NOMIPS16 void
-foo (void (*bar) (void), volatile int *x)
+foo (int (*bar) (void), int *x)
{
- bar ();
+ *x = bar ();
if (__builtin_expect (*x == 0, 1))
OCCUPY_0x1fffc;
}
diff --git a/gcc/testsuite/gcc.target/mips/branch-cost-1.c b/gcc/testsuite/gcc.target/mips/branch-cost-1.c
index d825e06..f72f2ac 100644
--- a/gcc/testsuite/gcc.target/mips/branch-cost-1.c
+++ b/gcc/testsuite/gcc.target/mips/branch-cost-1.c
@@ -1,4 +1,5 @@
-/* { dg-options "-mbranch-cost=1 isa>=4 -O2" } */
+/* { dg-options "-mbranch-cost=1 isa>=4" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 int
foo (int x, int y, int z, int k)
{
diff --git a/gcc/testsuite/gcc.target/mips/branch-cost-2.c b/gcc/testsuite/gcc.target/mips/branch-cost-2.c
index 23f528a..3b2c4a1 100644
--- a/gcc/testsuite/gcc.target/mips/branch-cost-2.c
+++ b/gcc/testsuite/gcc.target/mips/branch-cost-2.c
@@ -1,4 +1,5 @@
-/* { dg-options "-mbranch-cost=10 isa>=4 -O2" } */
+/* { dg-options "-mbranch-cost=10 isa>=4" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 int
foo (int x, int y, int z, int k)
{
diff --git a/gcc/testsuite/gcc.target/mips/cache-1.c b/gcc/testsuite/gcc.target/mips/cache-1.c
index da89706..f5c3dd3 100644
--- a/gcc/testsuite/gcc.target/mips/cache-1.c
+++ b/gcc/testsuite/gcc.target/mips/cache-1.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 isa>=3" } */
+/* { dg-options "isa>=3" } */
+/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 void
f1 (int *area)
diff --git a/gcc/testsuite/gcc.target/mips/call-1.c b/gcc/testsuite/gcc.target/mips/call-1.c
index 7dceefa..a9c97c3 100644
--- a/gcc/testsuite/gcc.target/mips/call-1.c
+++ b/gcc/testsuite/gcc.target/mips/call-1.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 -mrelax-pic-calls -mshared" } */
+/* { dg-options "-mrelax-pic-calls -mshared -foptimize-sibling-calls" } */
+/* { dg-skip-if "requires -foptimize-sibling-calls" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,normal\n1:\tjalr\t" } } */
/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,normal2\n1:\tjalr\t" } } */
/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,staticfunc\n1:\tjalr\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/call-2.c b/gcc/testsuite/gcc.target/mips/call-2.c
index 8e74991..7fabb1f 100644
--- a/gcc/testsuite/gcc.target/mips/call-2.c
+++ b/gcc/testsuite/gcc.target/mips/call-2.c
@@ -1,14 +1,8 @@
/* See through some simple data-flow. */
-/* { dg-options "-O2 -mrelax-pic-calls" } */
-/* { dg-final { scan-assembler-times "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalr\t" 3 } } */
+/* { dg-options "-mrelax-pic-calls" } */
+/* { dg-final { scan-assembler-times "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalr\t" 2 } } */
-NOMIPS16 f (int i)
-{
- while (i--)
- g ();
-}
-
-NOMIPS16 ff ()
+NOMIPS16 f ()
{
g ();
g ();
diff --git a/gcc/testsuite/gcc.target/mips/call-3.c b/gcc/testsuite/gcc.target/mips/call-3.c
index 25f01d2..2c56488 100644
--- a/gcc/testsuite/gcc.target/mips/call-3.c
+++ b/gcc/testsuite/gcc.target/mips/call-3.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mrelax-pic-calls -mno-shared" } */
+/* { dg-options "-mrelax-pic-calls -mno-shared" } */
/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalr\t" } } */
/* { dg-require-visibility "" } */
diff --git a/gcc/testsuite/gcc.target/mips/call-4.c b/gcc/testsuite/gcc.target/mips/call-4.c
new file mode 100644
index 0000000..049e338
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/call-4.c
@@ -0,0 +1,9 @@
+/* See through some simple data-flow. */
+/* { dg-options "-mrelax-pic-calls" } */
+/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalr\t" } } */
+
+NOMIPS16 f (int i)
+{
+ while (i--)
+ g ();
+}
diff --git a/gcc/testsuite/gcc.target/mips/call-saved-2.c b/gcc/testsuite/gcc.target/mips/call-saved-2.c
index 9ac7a27..b55c30a 100644
--- a/gcc/testsuite/gcc.target/mips/call-saved-2.c
+++ b/gcc/testsuite/gcc.target/mips/call-saved-2.c
@@ -1,5 +1,6 @@
/* Check that we save non-MIPS16 GPRs if they are explicitly clobbered. */
-/* { dg-options "(-mips16) isa_rev=0 -O2" } */
+/* { dg-options "(-mips16) isa_rev=0" } */
+/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */
MIPS16 void
foo (void)
diff --git a/gcc/testsuite/gcc.target/mips/call-saved-3.c b/gcc/testsuite/gcc.target/mips/call-saved-3.c
index e178eb0..84cdb3b 100644
--- a/gcc/testsuite/gcc.target/mips/call-saved-3.c
+++ b/gcc/testsuite/gcc.target/mips/call-saved-3.c
@@ -1,6 +1,6 @@
/* Check that we save all call-saved GPRs in a MIPS16 __builtin_setjmp
function. */
-/* { dg-options "(-mips16) isa_rev=0 -O2" } */
+/* { dg-options "(-mips16) isa_rev=0" } */
void bar (void);
extern int buf[];
diff --git a/gcc/testsuite/gcc.target/mips/clear-cache-1.c b/gcc/testsuite/gcc.target/mips/clear-cache-1.c
index 2925d98..302aec3 100644
--- a/gcc/testsuite/gcc.target/mips/clear-cache-1.c
+++ b/gcc/testsuite/gcc.target/mips/clear-cache-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -msynci isa_rev>=2" } */
+/* { dg-options "-msynci isa_rev>=2" } */
/* { dg-final { scan-assembler "synci" } } */
/* { dg-final { scan-assembler "jr.hb" } } */
/* { dg-final { scan-assembler-not "_flush_cache|mips_sync_icache|_cacheflush" } } */
diff --git a/gcc/testsuite/gcc.target/mips/clear-cache-2.c b/gcc/testsuite/gcc.target/mips/clear-cache-2.c
index be2e221..f1f7f81 100644
--- a/gcc/testsuite/gcc.target/mips/clear-cache-2.c
+++ b/gcc/testsuite/gcc.target/mips/clear-cache-2.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mips32" } */
-/* { dg-final { scan-assembler-not "synci" } } */
-/* { dg-final { scan-assembler-not "jr.hb" } } */
+/* { dg-options "-mips32" } */
+/* { dg-final { scan-assembler-not "\tsynci" } } */
+/* { dg-final { scan-assembler-not "\tjr.hb" } } */
/* { dg-final { scan-assembler "_flush_cache|mips_sync_icache|_cacheflush" } } */
void f()
diff --git a/gcc/testsuite/gcc.target/mips/code-readable-1.c b/gcc/testsuite/gcc.target/mips/code-readable-1.c
index c35d60c..34c2c0a 100644
--- a/gcc/testsuite/gcc.target/mips/code-readable-1.c
+++ b/gcc/testsuite/gcc.target/mips/code-readable-1.c
@@ -1,17 +1,26 @@
-/* { dg-options "(-mips16) -mcode-readable=yes -mgp32 addressing=absolute -O" } */
+/* { dg-options "(-mips16) -mcode-readable=yes -mgp32 addressing=absolute" } */
+/* { dg-skip-if ".half requires -O" { *-*-* } { "-O0" } { "" } } */
+
+volatile int x1;
+volatile int x2;
+volatile int x3;
+volatile int x4;
+volatile int x5;
+volatile int x6;
+volatile int x7;
MIPS16 int
-foo (int i)
+foo (int i, volatile *x)
{
switch (i)
{
- case 1: return 40;
- case 2: return 11;
- case 3: return 29;
- case 4: return 10;
- case 5: return 12;
- case 6: return 35;
- case 7: return 23;
+ case 1: return x1 + x[0];
+ case 2: return x2 + x[1];
+ case 3: return x3 + x[2];
+ case 4: return x4 + x[3];
+ case 5: return x5 + x[4];
+ case 6: return x6 + x[5];
+ case 7: return x7 + x[6];
default: return 0;
}
}
diff --git a/gcc/testsuite/gcc.target/mips/code-readable-2.c b/gcc/testsuite/gcc.target/mips/code-readable-2.c
index e0176c3..71aeb13 100644
--- a/gcc/testsuite/gcc.target/mips/code-readable-2.c
+++ b/gcc/testsuite/gcc.target/mips/code-readable-2.c
@@ -1,17 +1,25 @@
/* { dg-options "(-mips16) -mcode-readable=pcrel -mgp32 addressing=absolute" } */
+volatile int x1;
+volatile int x2;
+volatile int x3;
+volatile int x4;
+volatile int x5;
+volatile int x6;
+volatile int x7;
+
MIPS16 int
-foo (int i)
+foo (int i, volatile *x)
{
switch (i)
{
- case 1: return 40;
- case 2: return 11;
- case 3: return 29;
- case 4: return 10;
- case 5: return 12;
- case 6: return 35;
- case 7: return 23;
+ case 1: return x1 + x[0];
+ case 2: return x2 + x[1];
+ case 3: return x3 + x[2];
+ case 4: return x4 + x[3];
+ case 5: return x5 + x[4];
+ case 6: return x6 + x[5];
+ case 7: return x7 + x[6];
default: return 0;
}
}
diff --git a/gcc/testsuite/gcc.target/mips/code-readable-3.c b/gcc/testsuite/gcc.target/mips/code-readable-3.c
index 075ca8d..fc78505 100644
--- a/gcc/testsuite/gcc.target/mips/code-readable-3.c
+++ b/gcc/testsuite/gcc.target/mips/code-readable-3.c
@@ -1,17 +1,25 @@
/* { dg-options "(-mips16) -mcode-readable=no -mgp32 addressing=absolute" } */
+volatile int x1;
+volatile int x2;
+volatile int x3;
+volatile int x4;
+volatile int x5;
+volatile int x6;
+volatile int x7;
+
MIPS16 int
-foo (int i)
+foo (int i, volatile *x)
{
switch (i)
{
- case 1: return 40;
- case 2: return 11;
- case 3: return 29;
- case 4: return 10;
- case 5: return 12;
- case 6: return 35;
- case 7: return 23;
+ case 1: return x1 + x[0];
+ case 2: return x2 + x[1];
+ case 3: return x3 + x[2];
+ case 4: return x4 + x[3];
+ case 5: return x5 + x[4];
+ case 6: return x6 + x[5];
+ case 7: return x7 + x[6];
default: return 0;
}
}
diff --git a/gcc/testsuite/gcc.target/mips/code-readable-4.c b/gcc/testsuite/gcc.target/mips/code-readable-4.c
index d29216f..ae8ff8a 100644
--- a/gcc/testsuite/gcc.target/mips/code-readable-4.c
+++ b/gcc/testsuite/gcc.target/mips/code-readable-4.c
@@ -1,17 +1,26 @@
-/* { dg-options "(-mips16) -mcode-readable=yes -mabi=eabi -mgp64 -O" } */
+/* { dg-options "(-mips16) -mcode-readable=yes -mabi=eabi -mgp64" } */
+/* { dg-skip-if ".half requires -O" { *-*-* } { "-O0" } { "" } } */
+
+volatile int x1;
+volatile int x2;
+volatile int x3;
+volatile int x4;
+volatile int x5;
+volatile int x6;
+volatile int x7;
MIPS16 int
-foo (int i)
+foo (int i, volatile *x)
{
switch (i)
{
- case 1: return 40;
- case 2: return 11;
- case 3: return 29;
- case 4: return 10;
- case 5: return 12;
- case 6: return 35;
- case 7: return 23;
+ case 1: return x1 + x[0];
+ case 2: return x2 + x[1];
+ case 3: return x3 + x[2];
+ case 4: return x4 + x[3];
+ case 5: return x5 + x[4];
+ case 6: return x6 + x[5];
+ case 7: return x7 + x[6];
default: return 0;
}
}
diff --git a/gcc/testsuite/gcc.target/mips/const-anchor-1.c b/gcc/testsuite/gcc.target/mips/const-anchor-1.c
index 6698167..2f493d0 100644
--- a/gcc/testsuite/gcc.target/mips/const-anchor-1.c
+++ b/gcc/testsuite/gcc.target/mips/const-anchor-1.c
@@ -1,6 +1,6 @@
/* Derive a constant (0x1233ffff) from an intermediate value
(0x1234000) used to build another constant. */
-/* { dg-options "-O" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "0x12330000|305332224" } } */
/* { dg-final { scan-assembler "addiu\t\\\$5,\\\$\[0-9\]*,-1" } } */
diff --git a/gcc/testsuite/gcc.target/mips/const-anchor-2.c b/gcc/testsuite/gcc.target/mips/const-anchor-2.c
index ccb89bb..8666edf 100644
--- a/gcc/testsuite/gcc.target/mips/const-anchor-2.c
+++ b/gcc/testsuite/gcc.target/mips/const-anchor-2.c
@@ -1,5 +1,5 @@
/* Derive a constant (0x30001) from another constant. */
-/* { dg-options "-O" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "0x300000|196608" } } */
/* { dg-final { scan-assembler "addiu\t\\\$5,\\\$\[0-9\]*,32763" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-1.c b/gcc/testsuite/gcc.target/mips/div-1.c
index e1976c2..08234a6 100644
--- a/gcc/testsuite/gcc.target/mips/div-1.c
+++ b/gcc/testsuite/gcc.target/mips/div-1.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tddiv\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-10.c b/gcc/testsuite/gcc.target/mips/div-10.c
index 23075da..fb8953d 100644
--- a/gcc/testsuite/gcc.target/mips/div-10.c
+++ b/gcc/testsuite/gcc.target/mips/div-10.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tdivu\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-11.c b/gcc/testsuite/gcc.target/mips/div-11.c
index 68f1658..ff12929 100644
--- a/gcc/testsuite/gcc.target/mips/div-11.c
+++ b/gcc/testsuite/gcc.target/mips/div-11.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tdiv\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-12.c b/gcc/testsuite/gcc.target/mips/div-12.c
index c2384b2..57866ce 100644
--- a/gcc/testsuite/gcc.target/mips/div-12.c
+++ b/gcc/testsuite/gcc.target/mips/div-12.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tdivu\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-2.c b/gcc/testsuite/gcc.target/mips/div-2.c
index af6e2fa..257ca92 100644
--- a/gcc/testsuite/gcc.target/mips/div-2.c
+++ b/gcc/testsuite/gcc.target/mips/div-2.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tddivu\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-3.c b/gcc/testsuite/gcc.target/mips/div-3.c
index 684b6a8..b9ae368 100644
--- a/gcc/testsuite/gcc.target/mips/div-3.c
+++ b/gcc/testsuite/gcc.target/mips/div-3.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tddiv\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-4.c b/gcc/testsuite/gcc.target/mips/div-4.c
index 251b88f..5f05d8e 100644
--- a/gcc/testsuite/gcc.target/mips/div-4.c
+++ b/gcc/testsuite/gcc.target/mips/div-4.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tddivu\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-5.c b/gcc/testsuite/gcc.target/mips/div-5.c
index a08f3e6..294cc7f 100644
--- a/gcc/testsuite/gcc.target/mips/div-5.c
+++ b/gcc/testsuite/gcc.target/mips/div-5.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tdiv\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-6.c b/gcc/testsuite/gcc.target/mips/div-6.c
index 23075da..fb8953d 100644
--- a/gcc/testsuite/gcc.target/mips/div-6.c
+++ b/gcc/testsuite/gcc.target/mips/div-6.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tdivu\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-7.c b/gcc/testsuite/gcc.target/mips/div-7.c
index 68f1658..ff12929 100644
--- a/gcc/testsuite/gcc.target/mips/div-7.c
+++ b/gcc/testsuite/gcc.target/mips/div-7.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tdiv\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-8.c b/gcc/testsuite/gcc.target/mips/div-8.c
index c2384b2..57866ce 100644
--- a/gcc/testsuite/gcc.target/mips/div-8.c
+++ b/gcc/testsuite/gcc.target/mips/div-8.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tdivu\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/div-9.c b/gcc/testsuite/gcc.target/mips/div-9.c
index a08f3e6..294cc7f 100644
--- a/gcc/testsuite/gcc.target/mips/div-9.c
+++ b/gcc/testsuite/gcc.target/mips/div-9.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
/* { dg-final { scan-assembler "\tdiv\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c b/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c
index 87d1da9..a48f561 100644
--- a/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c
+++ b/gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c
@@ -1,5 +1,7 @@
/* { dg-do compile { target { fixed_point } } } */
-/* { dg-options "-O2 -mgp32 -mdsp" } */
+/* This test requires widening_mul */
+/* { dg-options "-mgp32 -mdsp -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tdpaq_sa.l.w\t\\\$ac" 3 } } */
NOMIPS16 _Sat long long _Fract
diff --git a/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c b/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c
index 9aeb566..fb63a1d 100644
--- a/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c
+++ b/gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c
@@ -1,5 +1,7 @@
/* { dg-do compile { target { fixed_point } } } */
-/* { dg-options "-O2 -mgp32 -mdsp" } */
+/* This test requires widening_mul */
+/* { dg-options "-mgp32 -mdsp -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tdpsq_sa.l.w\t\\\$ac" 2 } } */
NOMIPS16 _Sat long long _Fract
diff --git a/gcc/testsuite/gcc.target/mips/dse-1.c b/gcc/testsuite/gcc.target/mips/dse-1.c
index 6ef55cd..e53189c 100644
--- a/gcc/testsuite/gcc.target/mips/dse-1.c
+++ b/gcc/testsuite/gcc.target/mips/dse-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-mgp64 -O" } */
+/* { dg-options "-mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
#define TEST(ID, TYPE1, TYPE2) \
union u##ID { \
diff --git a/gcc/testsuite/gcc.target/mips/dsp-ctrl.c b/gcc/testsuite/gcc.target/mips/dsp-ctrl.c
index bb89e84..4bf449b 100644
--- a/gcc/testsuite/gcc.target/mips/dsp-ctrl.c
+++ b/gcc/testsuite/gcc.target/mips/dsp-ctrl.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mdsp -mgp32" } */
+/* { dg-options "-mdsp -mgp32" } */
extern void abort (void);
extern void exit (int);
diff --git a/gcc/testsuite/gcc.target/mips/dsp-lhx.c b/gcc/testsuite/gcc.target/mips/dsp-lhx.c
index 416356f..8fa20a0 100644
--- a/gcc/testsuite/gcc.target/mips/dsp-lhx.c
+++ b/gcc/testsuite/gcc.target/mips/dsp-lhx.c
@@ -1,6 +1,7 @@
/* Test MIPS32 DSP LHX instruction */
/* { dg-do compile } */
-/* { dg-options "-mgp32 -mdsp -O2" } */
+/* { dg-options "-mgp32 -mdsp" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tlhx\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/dsp-no-lhx.c b/gcc/testsuite/gcc.target/mips/dsp-no-lhx.c
index a37c42f..42c4688 100644
--- a/gcc/testsuite/gcc.target/mips/dsp-no-lhx.c
+++ b/gcc/testsuite/gcc.target/mips/dsp-no-lhx.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP LHX instruction */
/* { dg-do compile } */
-/* { dg-options "-mgp32 -mdsp -O2" } */
+/* { dg-options "-mgp32 -mdsp" } */
/* { dg-final { scan-assembler-not "\tlhx\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/dspr2-MULT.c b/gcc/testsuite/gcc.target/mips/dspr2-MULT.c
index c685974..7c611a3 100644
--- a/gcc/testsuite/gcc.target/mips/dspr2-MULT.c
+++ b/gcc/testsuite/gcc.target/mips/dspr2-MULT.c
@@ -1,7 +1,9 @@
/* Test MIPS32 DSP REV 2 MULT instruction. Tune for a CPU that has
pipelined mult. */
/* { dg-do compile } */
-/* { dg-options "-mgp32 -mdspr2 -O2 -mtune=74kc" } */
+/* This test requires widening_mul */
+/* { dg-options "-mgp32 -mdspr2 -mtune=74kc -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* See PR target/51729 for the reason behind the XFAILs. */
/* { dg-final { scan-assembler "\tmult\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c b/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c
index 7f04315..a567972 100644
--- a/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c
+++ b/gcc/testsuite/gcc.target/mips/dspr2-MULTU.c
@@ -1,7 +1,8 @@
/* Test MIPS32 DSP REV 2 MULTU instruction. Tune for a CPU that has
pipelined multu. */
/* { dg-do compile } */
-/* { dg-options "-mgp32 -mdspr2 -O2 -mtune=74kc" } */
+/* { dg-options "-mgp32 -mdspr2 -mtune=74kc" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* See PR target/51729 for the reason behind the XFAILs. */
/* { dg-final { scan-assembler "\tmultu\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/ext-1.c b/gcc/testsuite/gcc.target/mips/ext-1.c
index 426cbb2..3306c70 100644
--- a/gcc/testsuite/gcc.target/mips/ext-1.c
+++ b/gcc/testsuite/gcc.target/mips/ext-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O isa_rev>=2 -mgp64" } */
+/* { dg-options "isa_rev>=2 -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdext\t" } } */
/* { dg-final { scan-assembler-not "and" } } */
diff --git a/gcc/testsuite/gcc.target/mips/ext-2.c b/gcc/testsuite/gcc.target/mips/ext-2.c
index d6ccce2..6b3d4ef 100644
--- a/gcc/testsuite/gcc.target/mips/ext-2.c
+++ b/gcc/testsuite/gcc.target/mips/ext-2.c
@@ -2,7 +2,8 @@
zero_extract. The truncate is due to TARGET_PROMOTE_PROTOTYPES, the
zero_extend to PROMOTE_MODE. */
/* { dg-do compile } */
-/* { dg-options "-O isa_rev>=2 -mgp64" } */
+/* { dg-options "isa_rev>=2 -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdext\t" } } */
/* { dg-final { scan-assembler-not "and" } } */
/* { dg-final { scan-assembler-not "srl" } } */
diff --git a/gcc/testsuite/gcc.target/mips/ext-3.c b/gcc/testsuite/gcc.target/mips/ext-3.c
index acdbbc9..e921c8b 100644
--- a/gcc/testsuite/gcc.target/mips/ext-3.c
+++ b/gcc/testsuite/gcc.target/mips/ext-3.c
@@ -1,6 +1,7 @@
/* For MIPS64r2 use DEXT rather than DSLL/DSRL to zero-extend. */
/* { dg-do compile } */
-/* { dg-options "-O isa_rev>=2 -mgp64" } */
+/* { dg-options "isa_rev>=2 -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdext\t" } } */
/* { dg-final { scan-assembler-not "sll" } } */
diff --git a/gcc/testsuite/gcc.target/mips/ext-4.c b/gcc/testsuite/gcc.target/mips/ext-4.c
index f3d2ad9..38362e5 100644
--- a/gcc/testsuite/gcc.target/mips/ext-4.c
+++ b/gcc/testsuite/gcc.target/mips/ext-4.c
@@ -1,6 +1,7 @@
/* For MIPS64r2 use DEXT rather than DSLL/DSRL for clear_upper32. */
/* { dg-do compile } */
-/* { dg-options "-O isa_rev>=2 -mgp64" } */
+/* { dg-options "isa_rev>=2 -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdext\t" } } */
/* { dg-final { scan-assembler-not "sll" } } */
diff --git a/gcc/testsuite/gcc.target/mips/ext-5.c b/gcc/testsuite/gcc.target/mips/ext-5.c
index 6418638..8bab214 100644
--- a/gcc/testsuite/gcc.target/mips/ext-5.c
+++ b/gcc/testsuite/gcc.target/mips/ext-5.c
@@ -1,6 +1,7 @@
/* For MIPS32r2 use EXT when ANDing with low-order bitmasks. */
/* { dg-do compile } */
-/* { dg-options "-O isa_rev>=2" } */
+/* { dg-options "isa_rev>=2" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\text\t" } } */
/* { dg-final { scan-assembler-not "\tandi?\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/ext-6.c b/gcc/testsuite/gcc.target/mips/ext-6.c
index b4a7dd2..e12cbe6 100644
--- a/gcc/testsuite/gcc.target/mips/ext-6.c
+++ b/gcc/testsuite/gcc.target/mips/ext-6.c
@@ -1,6 +1,7 @@
/* For MIPS64r2 use DEXT when ANDing with low-order bitmasks. */
/* { dg-do compile } */
-/* { dg-options "-O isa_rev>=2 -mgp64" } */
+/* { dg-options "isa_rev>=2 -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdext\t" } } */
/* { dg-final { scan-assembler-not "\tandi?\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/ext-7.c b/gcc/testsuite/gcc.target/mips/ext-7.c
index 394d41f..2e23dd6 100644
--- a/gcc/testsuite/gcc.target/mips/ext-7.c
+++ b/gcc/testsuite/gcc.target/mips/ext-7.c
@@ -1,6 +1,7 @@
/* No need to use ext if we can use andi. */
/* { dg-do compile } */
-/* { dg-options "-O isa_rev>=2" } */
+/* { dg-options "isa_rev>=2" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tandi\t" } } */
/* { dg-final { scan-assembler-not "\td?ext\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/ext-8.c b/gcc/testsuite/gcc.target/mips/ext-8.c
index 90241dd..9ceee7b 100644
--- a/gcc/testsuite/gcc.target/mips/ext-8.c
+++ b/gcc/testsuite/gcc.target/mips/ext-8.c
@@ -1,6 +1,6 @@
/* Also make sure we don't use ext for MIPS*r1. */
/* { dg-do compile } */
-/* { dg-options "-O isa_rev<=1" } */
+/* { dg-options "isa_rev<=1" } */
/* { dg-final { scan-assembler "\tand\t" } } */
/* { dg-final { scan-assembler-not "\td?ext\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/extend-1.c b/gcc/testsuite/gcc.target/mips/extend-1.c
index 94d199f..9240ea5 100644
--- a/gcc/testsuite/gcc.target/mips/extend-1.c
+++ b/gcc/testsuite/gcc.target/mips/extend-1.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp64 forbid_cpu=octeon.*" } */
+/* { dg-options "-mgp64 forbid_cpu=octeon.*" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tdsll\t" 5 } } */
/* { dg-final { scan-assembler-times "\tdsra\t" 5 } } */
/* { dg-final { scan-assembler-not "\tsll\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/extend-2.c b/gcc/testsuite/gcc.target/mips/extend-2.c
index b91ae20..a2036a8 100644
--- a/gcc/testsuite/gcc.target/mips/extend-2.c
+++ b/gcc/testsuite/gcc.target/mips/extend-2.c
@@ -1,6 +1,6 @@
/* Check the shift_shift alternative of the AND patterns. */
/* { dg-do compile } */
-/* { dg-options "-O isa_rev<=1 -mgp64" } */
+/* { dg-options "isa_rev<=1 -mgp64" } */
/* { dg-final { scan-assembler "\tdsrl\t" } } */
/* { dg-final { scan-assembler "\tdsll\t" } } */
/* { dg-final { scan-assembler-not "\td?ext\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-1.c b/gcc/testsuite/gcc.target/mips/fix-r10000-1.c
index 76f3b86..edf4d70 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-1.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-10.c b/gcc/testsuite/gcc.target/mips/fix-r10000-10.c
index 6ac908a..ab353b6 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-10.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-10.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-11.c b/gcc/testsuite/gcc.target/mips/fix-r10000-11.c
index e1677b6..30f6038 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-11.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-11.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-12.c b/gcc/testsuite/gcc.target/mips/fix-r10000-12.c
index f767ae2..855000d 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-12.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-12.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-13.c b/gcc/testsuite/gcc.target/mips/fix-r10000-13.c
index b0779e0..aa2d236 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-13.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-13.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-14.c b/gcc/testsuite/gcc.target/mips/fix-r10000-14.c
index 4a690f5..542e02f 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-14.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-14.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-15.c b/gcc/testsuite/gcc.target/mips/fix-r10000-15.c
index bb5fd74..f44a725 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-15.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-15.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-2.c b/gcc/testsuite/gcc.target/mips/fix-r10000-2.c
index bac0191..88a5918 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-2.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-3.c b/gcc/testsuite/gcc.target/mips/fix-r10000-3.c
index bec7951..fbeeca1 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-3.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-4.c b/gcc/testsuite/gcc.target/mips/fix-r10000-4.c
index 864ab8c..344c627 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-4.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-5.c b/gcc/testsuite/gcc.target/mips/fix-r10000-5.c
index 62fd70f..a775a6c 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-5.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-5.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-6.c b/gcc/testsuite/gcc.target/mips/fix-r10000-6.c
index d8bdb45..62f8fdf 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-6.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-6.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-7.c b/gcc/testsuite/gcc.target/mips/fix-r10000-7.c
index d4b558e..635326c 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-7.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-7.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-8.c b/gcc/testsuite/gcc.target/mips/fix-r10000-8.c
index d48ed26..6897849 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-8.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-8.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r10000-9.c b/gcc/testsuite/gcc.target/mips/fix-r10000-9.c
index 88afad3..3d140b1 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r10000-9.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r10000-9.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mfix-r10000" } */
+/* { dg-options "-mfix-r10000" } */
/* { dg-final { scan-assembler-times "\tbeql\t" 3 } } */
NOMIPS16 int
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-1.c b/gcc/testsuite/gcc.target/mips/fix-r4000-1.c
index 551d354..5c812f2 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-1.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-1.c
@@ -1,4 +1,5 @@
-/* { dg-options "-march=r4000 -mfix-r4000 -O2 -dp" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -dp" } */
+/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */
typedef int int32_t;
typedef int uint32_t;
NOMIPS16 int32_t foo (int32_t x, int32_t y) { return x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-10.c b/gcc/testsuite/gcc.target/mips/fix-r4000-10.c
index 8c938b7..7227bc8c0 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-10.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-10.c
@@ -1,7 +1,8 @@
/* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication
result to $2, which prevents the register allocators from storing the
multiplication result in $2. */
-/* { dg-options "-mips3 -mfix-r4000 -mgp64 -O2 -fno-split-wide-types -dp -EL" } */
+/* { dg-options "-mips3 -mfix-r4000 -mgp64 -EL -fno-split-wide-types -dp" } */
+/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */
typedef unsigned long long uint64_t;
typedef unsigned int uint128_t __attribute__((mode(TI)));
NOMIPS16 uint128_t foo (uint64_t x, uint64_t y) { return (uint128_t) x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-11.c b/gcc/testsuite/gcc.target/mips/fix-r4000-11.c
index 7cfad3d..1ea7a7c 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-11.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-11.c
@@ -1,4 +1,6 @@
-/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -dp" } */
+/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */
+/* { dg-skip-if "using DDIV gives a shorter sequence" { *-*-* } { "-Os" } { "" } } */
typedef long long int64_t;
NOMIPS16 int64_t foo (int64_t x) { return x / 11993; }
/* { dg-final { scan-assembler "[concat {\tdmult\t\$4,\$[0-9]+[^\n]+smuldi3_highpart[^\n]+\n\tmfhi\t\$[0-9]+\n}]" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-12.c b/gcc/testsuite/gcc.target/mips/fix-r4000-12.c
index d449283..a2afabb 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-12.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-12.c
@@ -1,4 +1,6 @@
-/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -dp" } */
+/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */
+/* { dg-skip-if "using DDIVU gives a shorter sequence" { *-*-* } { "-Os" } { "" } } */
typedef unsigned long long uint64_t;
NOMIPS16 uint64_t foo (uint64_t x) { return x / 11993; }
/* { dg-final { scan-assembler "[concat {\tdmultu\t\$4,\$[0-9]+[^\n]+umuldi3_highpart[^\n]+\n\tmfhi\t\$[0-9]+\n}]" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-2.c b/gcc/testsuite/gcc.target/mips/fix-r4000-2.c
index 6cb7d35..0261b16 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-2.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-2.c
@@ -1,4 +1,6 @@
-/* { dg-options "-mips1 -mfix-r4000 -O2 -dp -EB" } */
+/* This test requires widening_mul */
+/* { dg-options "-mips1 -mfix-r4000 -dp -EB -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
typedef int int32_t;
typedef long long int64_t;
NOMIPS16 int32_t foo (int32_t x, int32_t y) { return ((int64_t) x * y) >> 32; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-3.c b/gcc/testsuite/gcc.target/mips/fix-r4000-3.c
index bd12509..195a9d1 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-3.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-3.c
@@ -1,4 +1,5 @@
-/* { dg-options "-mips1 -mfix-r4000 -O2 -dp -EB" } */
+/* { dg-options "-mips1 -mfix-r4000 -dp -EB" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
NOMIPS16 uint32_t foo (uint32_t x, uint32_t y) { return ((uint64_t) x * y) >> 32; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-4.c b/gcc/testsuite/gcc.target/mips/fix-r4000-4.c
index 3854db8..7a66182 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-4.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-4.c
@@ -1,7 +1,9 @@
/* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication
result to $2, which prevents the register allocators from storing the
multiplication result in $2. */
-/* { dg-options "-mips1 -mfix-r4000 -O2 -fno-split-wide-types -dp -EL" } */
+/* This test requires widening_mul */
+/* { dg-options "-mips1 -mfix-r4000 -fno-split-wide-types -dp -EL -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
typedef int int32_t;
typedef long long int64_t;
NOMIPS16 int64_t foo (int32_t x, int32_t y) { return (int64_t) x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-5.c b/gcc/testsuite/gcc.target/mips/fix-r4000-5.c
index c46300f..0c06308 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-5.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-5.c
@@ -1,7 +1,8 @@
/* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication
result to $2, which prevents the register allocators from storing the
multiplication result in $2. */
-/* { dg-options "-mips1 -mfix-r4000 -O2 -fno-split-wide-types -dp -EL" } */
+/* { dg-options "-mips1 -mfix-r4000 -fno-split-wide-types -dp -EL" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
NOMIPS16 uint64_t foo (uint32_t x, uint32_t y) { return (uint64_t) x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-6.c b/gcc/testsuite/gcc.target/mips/fix-r4000-6.c
index 1e33cc4..9647a90 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-6.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-6.c
@@ -1,4 +1,5 @@
-/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -O2 -dp" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -dp" } */
+/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */
typedef long long int64_t;
typedef unsigned long long uint64_t;
NOMIPS16 int64_t foo (int64_t x, int64_t y) { return x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-7.c b/gcc/testsuite/gcc.target/mips/fix-r4000-7.c
index 118ba99..ddba303 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-7.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-7.c
@@ -1,4 +1,6 @@
-/* { dg-options "-march=r4000 -mfix-r4000 -O2 -mgp64 -dp -EB" } */
+/* This test requires widening_mul */
+/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -dp -EB -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
typedef long long int64_t;
typedef int int128_t __attribute__((mode(TI)));
NOMIPS16 int64_t foo (int64_t x, int64_t y) { return ((int128_t) x * y) >> 64; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-8.c b/gcc/testsuite/gcc.target/mips/fix-r4000-8.c
index f2c71c1..4ae6706 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-8.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-8.c
@@ -1,4 +1,5 @@
-/* { dg-options "-march=r4000 -mfix-r4000 -O2 -mgp64 -dp -EB" } */
+/* { dg-options "-march=r4000 -mfix-r4000 -mgp64 -dp -EB" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
typedef unsigned long long uint64_t;
typedef unsigned int uint128_t __attribute__((mode(TI)));
NOMIPS16 uint64_t foo (uint64_t x, uint64_t y) { return ((uint128_t) x * y) >> 64; }
diff --git a/gcc/testsuite/gcc.target/mips/fix-r4000-9.c b/gcc/testsuite/gcc.target/mips/fix-r4000-9.c
index da9c113..316715c 100644
--- a/gcc/testsuite/gcc.target/mips/fix-r4000-9.c
+++ b/gcc/testsuite/gcc.target/mips/fix-r4000-9.c
@@ -1,7 +1,9 @@
/* ??? At the moment, lower-subreg.c decomposes the copy of the multiplication
result to $2, which prevents the register allocators from storing the
multiplication result in $2. */
-/* { dg-options "-mips3 -mfix-r4000 -mgp64 -O2 -fno-split-wide-types -dp -EL" } */
+/* This test requires widening_mul */
+/* { dg-options "-mips3 -mfix-r4000 -mgp64 -fno-split-wide-types -dp -EL -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
typedef long long int64_t;
typedef int int128_t __attribute__((mode(TI)));
NOMIPS16 int128_t foo (int64_t x, int64_t y) { return (int128_t) x * y; }
diff --git a/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c b/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c
index b4734f4..810c82c 100644
--- a/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c
+++ b/gcc/testsuite/gcc.target/mips/fixed-scalar-type.c
@@ -1,6 +1,7 @@
/* Test scalar fixed-point instructions */
/* { dg-do compile { target { fixed_point } } } */
-/* { dg-options "-mdspr2 -O2" } */
+/* { dg-options "-mdspr2" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\taddu\t" 10 } } */
/* { dg-final { scan-assembler-times "\tsubu\t" 10 } } */
/* { dg-final { scan-assembler "\taddu_s.qb\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fixed-vector-type.c b/gcc/testsuite/gcc.target/mips/fixed-vector-type.c
index 9b67704..ddd9660 100644
--- a/gcc/testsuite/gcc.target/mips/fixed-vector-type.c
+++ b/gcc/testsuite/gcc.target/mips/fixed-vector-type.c
@@ -1,6 +1,7 @@
/* Test vector fixed-point instructions */
/* { dg-do compile { target { fixed_point } } } */
-/* { dg-options "-mdspr2 -O2" } */
+/* { dg-options "-mdspr2" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\taddq_s.ph\t" 2 } } */
/* { dg-final { scan-assembler-times "\tsubq_s.ph\t" 2 } } */
/* { dg-final { scan-assembler-times "\taddu_s.qb\t" 1 } } */
diff --git a/gcc/testsuite/gcc.target/mips/fpcmp-1.c b/gcc/testsuite/gcc.target/mips/fpcmp-1.c
index cae48a0..2ddd3c3 100644
--- a/gcc/testsuite/gcc.target/mips/fpcmp-1.c
+++ b/gcc/testsuite/gcc.target/mips/fpcmp-1.c
@@ -1,5 +1,5 @@
/* We used to use c.lt.fmt instead of c.ule.fmt here. */
-/* { dg-options "-mhard-float -O2" } */
+/* { dg-options "-mhard-float" } */
NOMIPS16 int f1 (float x, float y) { return __builtin_isless (x, y); }
NOMIPS16 int f2 (double x, double y) { return __builtin_isless (x, y); }
/* { dg-final { scan-assembler "c\\.ule\\.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fpcmp-2.c b/gcc/testsuite/gcc.target/mips/fpcmp-2.c
index 3e1c259..cf0cbbb 100644
--- a/gcc/testsuite/gcc.target/mips/fpcmp-2.c
+++ b/gcc/testsuite/gcc.target/mips/fpcmp-2.c
@@ -1,5 +1,5 @@
/* We used to use c.le.fmt instead of c.ult.fmt here. */
-/* { dg-options "-mhard-float -O2" } */
+/* { dg-options "-mhard-float" } */
NOMIPS16 int f1 (float x, float y) { return __builtin_islessequal (x, y); }
NOMIPS16 int f2 (double x, double y) { return __builtin_islessequal (x, y); }
/* { dg-final { scan-assembler "c\\.ult\\.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-1.c b/gcc/testsuite/gcc.target/mips/fpr-moves-1.c
index 92977e0..51a5f17 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-1.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-1.c
@@ -1,4 +1,5 @@
-/* { dg-options "-mabi=32 -mhard-float -mips1 -O2 -EL" } */
+/* { dg-options "-mabi=32 -mhard-float -mips1 -EL" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 void
foo (double d, double *x)
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-2.c b/gcc/testsuite/gcc.target/mips/fpr-moves-2.c
index 3f4f833..ffe614f 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-2.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-2.c
@@ -1,4 +1,5 @@
-/* { dg-options "-mabi=32 -mhard-float -mips1 -O2 -EB" } */
+/* { dg-options "-mabi=32 -mhard-float -mips1 -EB" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 void
foo (double d, double *x)
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-3.c b/gcc/testsuite/gcc.target/mips/fpr-moves-3.c
index 34784d0..80db071 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-3.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-3.c
@@ -1,4 +1,5 @@
-/* { dg-options "-mabi=32 -mfp64 -O2 -EL" } */
+/* { dg-options "-mabi=32 -mfp64 -EL" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 double
foo (double d)
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-4.c b/gcc/testsuite/gcc.target/mips/fpr-moves-4.c
index 282cf76..d8f7858 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-4.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-4.c
@@ -1,4 +1,5 @@
-/* { dg-options "-mabi=32 -mfp64 -O2 -EB" } */
+/* { dg-options "-mabi=32 -mfp64 -EB" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 double
foo (double d)
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-5.c b/gcc/testsuite/gcc.target/mips/fpr-moves-5.c
index 8f68575..18d8880 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-5.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-5.c
@@ -1,4 +1,5 @@
-/* { dg-options "-mabi=64 -mhard-float -O2 -EL" } */
+/* { dg-options "-mabi=64 -mhard-float -EL" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-require-effective-target mips_newabi_large_long_double } */
NOMIPS16 void
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-6.c b/gcc/testsuite/gcc.target/mips/fpr-moves-6.c
index f89a40a..30a83ec 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-6.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-6.c
@@ -1,4 +1,5 @@
-/* { dg-options "-mabi=64 -mhard-float -O2 -EB" } */
+/* { dg-options "-mabi=64 -mhard-float -EB" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-require-effective-target mips_newabi_large_long_double } */
NOMIPS16 void
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-7.c b/gcc/testsuite/gcc.target/mips/fpr-moves-7.c
index 3abd104..56d7ccd 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-7.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-7.c
@@ -1,4 +1,4 @@
-/* { dg-options "(-mips16) -mabi=64 -O2 -EL" } */
+/* { dg-options "(-mips16) -mabi=64 -EL" } */
extern long double g[16];
extern unsigned char gstuff[0x10000];
diff --git a/gcc/testsuite/gcc.target/mips/fpr-moves-8.c b/gcc/testsuite/gcc.target/mips/fpr-moves-8.c
index 8b6901b..bf64193 100644
--- a/gcc/testsuite/gcc.target/mips/fpr-moves-8.c
+++ b/gcc/testsuite/gcc.target/mips/fpr-moves-8.c
@@ -1,4 +1,4 @@
-/* { dg-options "(-mips16) -mabi=64 -O2 -EB" } */
+/* { dg-options "(-mips16) -mabi=64 -EB" } */
extern long double g[16];
extern unsigned char gstuff[0x10000];
diff --git a/gcc/testsuite/gcc.target/mips/ins-1.c b/gcc/testsuite/gcc.target/mips/ins-1.c
index 9e19354..02bb8ae 100644
--- a/gcc/testsuite/gcc.target/mips/ins-1.c
+++ b/gcc/testsuite/gcc.target/mips/ins-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O isa_rev>=2 -mgp32" } */
+/* { dg-options "isa_rev>=2 -mgp32" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tins\t" } } */
struct
diff --git a/gcc/testsuite/gcc.target/mips/ins-2.c b/gcc/testsuite/gcc.target/mips/ins-2.c
index a71e6c0..916bc4b 100644
--- a/gcc/testsuite/gcc.target/mips/ins-2.c
+++ b/gcc/testsuite/gcc.target/mips/ins-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -meb isa_rev>=2 -mgp64" } */
+/* { dg-options "-meb isa_rev>=2 -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tins\t|\tdins\t" 1 } } */
/* { dg-final { scan-assembler-times "\tsll\t|\tins\t" 1 } } */
diff --git a/gcc/testsuite/gcc.target/mips/int-moves-1.c b/gcc/testsuite/gcc.target/mips/int-moves-1.c
index 485555c..77a554d 100644
--- a/gcc/testsuite/gcc.target/mips/int-moves-1.c
+++ b/gcc/testsuite/gcc.target/mips/int-moves-1.c
@@ -1,4 +1,4 @@
-/* { dg-options "(-mips16) -mgp64 -O2 -EL" } */
+/* { dg-options "(-mips16) -mgp64 -EL" } */
typedef unsigned uint128_t __attribute__((mode(TI)));
diff --git a/gcc/testsuite/gcc.target/mips/int-moves-2.c b/gcc/testsuite/gcc.target/mips/int-moves-2.c
index eba7983..930c36f 100644
--- a/gcc/testsuite/gcc.target/mips/int-moves-2.c
+++ b/gcc/testsuite/gcc.target/mips/int-moves-2.c
@@ -1,4 +1,4 @@
-/* { dg-options "(-mips16) -mgp64 -O2 -EB" } */
+/* { dg-options "(-mips16) -mgp64 -EB" } */
typedef unsigned uint128_t __attribute__((mode(TI)));
diff --git a/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c b/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c
index 13b41e1..9ab32bf 100644
--- a/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c
+++ b/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c
@@ -1,5 +1,6 @@
/* Make sure that we emit .cfa_restore notes for LO and HI. */
-/* { dg-options "-mips32r2 -msoft-float -O -g" } */
+/* { dg-options "-mips32r2 -msoft-float -g" } */
+/* { dg-skip-if "forbidding a frame pointer makes this a code quallity test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\t\\\.cfi_restore 64\n" } } */
/* { dg-final { scan-assembler "\t\\\.cfi_restore 65\n" } } */
/* { dg-final { scan-assembler-not "\\\.cfi_def_cfa( |\t)" } } */
diff --git a/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c b/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c
index 2380123..298e046 100644
--- a/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c
+++ b/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c
@@ -1,5 +1,6 @@
/* Make sure that we emit .cfa_restore notes for LO, HI and GPRs. */
-/* { dg-options "-mips32r2 -msoft-float -O -g" } */
+/* { dg-options "-mips32r2 -msoft-float -g" } */
+/* { dg-skip-if "forbidding a frame pointer makes this a code quallity test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\t\\\.cfi_restore 1\n" } } */
/* { dg-final { scan-assembler "\t\\\.cfi_restore 2\n" } } */
/* { dg-final { scan-assembler "\t\\\.cfi_restore 3\n" } } */
diff --git a/gcc/testsuite/gcc.target/mips/lazy-binding-1.c b/gcc/testsuite/gcc.target/mips/lazy-binding-1.c
index e281a270..4f8dde5 100644
--- a/gcc/testsuite/gcc.target/mips/lazy-binding-1.c
+++ b/gcc/testsuite/gcc.target/mips/lazy-binding-1.c
@@ -1,5 +1,8 @@
/* { dg-do compile } */
-/* { dg-options "-mshared -mexplicit-relocs -O2 -fno-delayed-branch" } */
+/* { dg-options "-mshared -mexplicit-relocs -fno-delayed-branch -fno-unroll-loops" } */
+/* We can load into something other than $25 when not optimizing,
+ then immediately move into $25. */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
void bar (void);
diff --git a/gcc/testsuite/gcc.target/mips/long-calls-pg.c b/gcc/testsuite/gcc.target/mips/long-calls-pg.c
index 5e554c4..5ccfe51 100644
--- a/gcc/testsuite/gcc.target/mips/long-calls-pg.c
+++ b/gcc/testsuite/gcc.target/mips/long-calls-pg.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mabi=32 -pg -mno-abicalls -mlong-calls" } */
+/* { dg-options "-mabi=32 -pg -mno-abicalls -mlong-calls" } */
/* { dg-final { scan-assembler-not "\tjal\t_mcount" } } */
NOMIPS16 void
foo (void)
diff --git a/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c b/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c
index fd7289c..2efc3ef 100644
--- a/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c
+++ b/gcc/testsuite/gcc.target/mips/loongson-muldiv-1.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 isa=loongson" } */
+/* { dg-options "isa=loongson" } */
typedef int st;
typedef unsigned int ut;
diff --git a/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c b/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c
index 6f1f138..07523aa 100644
--- a/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c
+++ b/gcc/testsuite/gcc.target/mips/loongson-muldiv-2.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 isa=loongson -mgp64" } */
+/* { dg-options "isa=loongson -mgp64" } */
typedef long long st;
typedef unsigned long long ut;
diff --git a/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c b/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c
index 1c892d8..778d739 100644
--- a/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c
+++ b/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c
@@ -4,9 +4,9 @@
/* loongson.h does not handle or check for MIPS16ness. There doesn't
seem any good reason for it to, given that the Loongson processors
do not support MIPS16. */
-/* { dg-options "isa=loongson -mhard-float -mno-mips16 -O1" } */
+/* { dg-options "isa=loongson -mhard-float -mno-mips16" } */
/* See PR 52155. */
-/* { dg-options "isa=loongson -mhard-float -mno-mips16 -O1 -mlong64" { mips*-*-elf* && ilp32 } } */
+/* { dg-options "isa=loongson -mhard-float -mno-mips16 -mlong64" { mips*-*-elf* && ilp32 } } */
#include "loongson.h"
#include <assert.h>
diff --git a/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c b/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c
index cc15b83..1c4d010 100644
--- a/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c
+++ b/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-1.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -march=loongson3a" } */
+/* { dg-options "-march=loongson3a" } */
typedef int st;
typedef unsigned int ut;
diff --git a/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-2.c b/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-2.c
index 592b492..9695b3f 100644
--- a/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-2.c
+++ b/gcc/testsuite/gcc.target/mips/loongson3a-muldiv-2.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -march=loongson3a -mgp64" } */
+/* { dg-options "-march=loongson3a -mgp64" } */
typedef long long st;
typedef unsigned long long ut;
diff --git a/gcc/testsuite/gcc.target/mips/madd-1.c b/gcc/testsuite/gcc.target/mips/madd-1.c
index 53881a4..416673b 100644
--- a/gcc/testsuite/gcc.target/mips/madd-1.c
+++ b/gcc/testsuite/gcc.target/mips/madd-1.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=vr4130 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-march=vr4130 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmacc\t\\\$1," 3 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/madd-2.c b/gcc/testsuite/gcc.target/mips/madd-2.c
index eab7a68..ce0d9eb 100644
--- a/gcc/testsuite/gcc.target/mips/madd-2.c
+++ b/gcc/testsuite/gcc.target/mips/madd-2.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=vr5500 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-march=vr5500 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmadd\t" 3 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/madd-3.c b/gcc/testsuite/gcc.target/mips/madd-3.c
index 6b479f5..29f4c9b 100644
--- a/gcc/testsuite/gcc.target/mips/madd-3.c
+++ b/gcc/testsuite/gcc.target/mips/madd-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 isa_rev>=1 -mgp32" } */
+/* { dg-options "isa_rev>=1 -mgp32" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmadd\t" 3 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/madd-4.c b/gcc/testsuite/gcc.target/mips/madd-4.c
index f325af7..28c751b 100644
--- a/gcc/testsuite/gcc.target/mips/madd-4.c
+++ b/gcc/testsuite/gcc.target/mips/madd-4.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mdspr2 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-mdspr2 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmadd\t\\\$ac" 3 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/madd-5.c b/gcc/testsuite/gcc.target/mips/madd-5.c
index 1ad1c91..d1696a6 100644
--- a/gcc/testsuite/gcc.target/mips/madd-5.c
+++ b/gcc/testsuite/gcc.target/mips/madd-5.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 -march=5kc" } */
+/* { dg-options "-march=5kc" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmadd\t" 4 } } */
/* { dg-final { scan-assembler-not "\tmtlo\t" } } */
/* { dg-final { scan-assembler-times "\tmflo\t" 3 } } */
diff --git a/gcc/testsuite/gcc.target/mips/madd-6.c b/gcc/testsuite/gcc.target/mips/madd-6.c
index 4e5afad..9323b8e1 100644
--- a/gcc/testsuite/gcc.target/mips/madd-6.c
+++ b/gcc/testsuite/gcc.target/mips/madd-6.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 -march=5kc" } */
+/* { dg-options "-march=5kc" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tmadd\t" } } */
/* { dg-final { scan-assembler "\tmul\t" } } */
/* { dg-final { scan-assembler "\taddu\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/madd-7.c b/gcc/testsuite/gcc.target/mips/madd-7.c
index b43d720..a639aa4 100644
--- a/gcc/testsuite/gcc.target/mips/madd-7.c
+++ b/gcc/testsuite/gcc.target/mips/madd-7.c
@@ -1,4 +1,6 @@
-/* { dg-options "-O2 -march=5kc" } */
+/* { dg-options "-march=5kc" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
+/* { dg-skip-if "requires -fira-region=all or =mixed" { *-*-* } { "-Os" } { "" } } */
/* { dg-final { scan-assembler-not "\tmul\t" } } */
/* { dg-final { scan-assembler "\tmadd\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/madd-8.c b/gcc/testsuite/gcc.target/mips/madd-8.c
index 35092a8..794a6ff 100644
--- a/gcc/testsuite/gcc.target/mips/madd-8.c
+++ b/gcc/testsuite/gcc.target/mips/madd-8.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 -march=5kc" } */
+/* { dg-options "-march=5kc" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmul\t" } } */
/* { dg-final { scan-assembler-not "\tmadd\t" } } */
/* { dg-final { scan-assembler-not "\tmtlo\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/madd-9.c b/gcc/testsuite/gcc.target/mips/madd-9.c
index 25dbd18..6d54549 100644
--- a/gcc/testsuite/gcc.target/mips/madd-9.c
+++ b/gcc/testsuite/gcc.target/mips/madd-9.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 isa_rev>=1 -mgp32" } */
+/* { dg-options "isa_rev>=1 -mgp32" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tmul\t" } } */
/* { dg-final { scan-assembler "\tmadd\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/maddu-1.c b/gcc/testsuite/gcc.target/mips/maddu-1.c
index 04161ce..af2b418 100644
--- a/gcc/testsuite/gcc.target/mips/maddu-1.c
+++ b/gcc/testsuite/gcc.target/mips/maddu-1.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=vr4130 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-march=vr4130 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmaccu\t\\\$1," 3 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/maddu-2.c b/gcc/testsuite/gcc.target/mips/maddu-2.c
index a9768f1..ea091e4 100644
--- a/gcc/testsuite/gcc.target/mips/maddu-2.c
+++ b/gcc/testsuite/gcc.target/mips/maddu-2.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=vr5500 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-march=vr5500 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmaddu\t" 3 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/maddu-3.c b/gcc/testsuite/gcc.target/mips/maddu-3.c
index b0b4817..27a7350 100644
--- a/gcc/testsuite/gcc.target/mips/maddu-3.c
+++ b/gcc/testsuite/gcc.target/mips/maddu-3.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 isa_rev>=1 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "isa_rev>=1 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmaddu\t" 3 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/maddu-4.c b/gcc/testsuite/gcc.target/mips/maddu-4.c
index 9c1ccd5..58c4a7e 100644
--- a/gcc/testsuite/gcc.target/mips/maddu-4.c
+++ b/gcc/testsuite/gcc.target/mips/maddu-4.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mdspr2 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-mdspr2 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmaddu\t\\\$ac" 3 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/memcpy-1.c b/gcc/testsuite/gcc.target/mips/memcpy-1.c
index f3eda75..f4e4698 100644
--- a/gcc/testsuite/gcc.target/mips/memcpy-1.c
+++ b/gcc/testsuite/gcc.target/mips/memcpy-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tlbu\t" } } */
#include <string.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-1.c b/gcc/testsuite/gcc.target/mips/mips-3d-1.c
index eb3f8f9..f11ffc5 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-1.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-1.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
/* Test MIPS-3D builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-2.c b/gcc/testsuite/gcc.target/mips/mips-3d-2.c
index dc81574..b04c3bf 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-2.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-2.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
/* Test MIPS-3D branch-if-any-two builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-3.c b/gcc/testsuite/gcc.target/mips/mips-3d-3.c
index 7df590f..e4de8fb 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-3.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-3.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
/* Test MIPS-3D absolute compare builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-4.c b/gcc/testsuite/gcc.target/mips/mips-3d-4.c
index 7f9cbdb..3d28d7f 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-4.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-4.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
/* Test MIPS-3D branch-if-any-four builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-5.c b/gcc/testsuite/gcc.target/mips/mips-3d-5.c
index c07dbe5..a433675 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-5.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-5.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
/* Test MIPS-3D absolute-compare & branch-if-any-four builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-6.c b/gcc/testsuite/gcc.target/mips/mips-3d-6.c
index 8484145..e6b44f0 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-6.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-6.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
/* Test MIPS-3D absolute compare (floats) builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-7.c b/gcc/testsuite/gcc.target/mips/mips-3d-7.c
index d5d09f9..2531ddf 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-7.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-7.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
/* Test MIPS-3D absolute compare (doubles) builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-8.c b/gcc/testsuite/gcc.target/mips/mips-3d-8.c
index c80f2b9..1d199d7 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-8.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-8.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
/* Test MIPS-3D absolute compare and conditional move builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-9.c b/gcc/testsuite/gcc.target/mips/mips-3d-9.c
index 3875391..d697efd 100644
--- a/gcc/testsuite/gcc.target/mips/mips-3d-9.c
+++ b/gcc/testsuite/gcc.target/mips/mips-3d-9.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mips3d" } */
+/* { dg-options "-mips3d" } */
/* Matrix Multiplications */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-1.c b/gcc/testsuite/gcc.target/mips/mips-ps-1.c
index 9e6c660..73598a8 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-1.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-1.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mpaired-single" } */
+/* { dg-options "-mpaired-single" } */
/* Test v2sf calculations */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-2.c b/gcc/testsuite/gcc.target/mips/mips-ps-2.c
index baec12c..5264255 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-2.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-2.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mpaired-single" } */
+/* { dg-options "-mpaired-single" } */
/* Test MIPS paired-single builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-3.c b/gcc/testsuite/gcc.target/mips/mips-ps-3.c
index e9ed4c0..7e6ffd0 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-3.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-3.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mpaired-single" } */
+/* { dg-options "-mpaired-single" } */
/* Test MIPS paired-single conditional move */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-4.c b/gcc/testsuite/gcc.target/mips/mips-ps-4.c
index b4452d0..06850ad 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-4.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-4.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mpaired-single" } */
+/* { dg-options "-mpaired-single" } */
/* Test MIPS paired-single comparisons */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-5.c b/gcc/testsuite/gcc.target/mips/mips-ps-5.c
index 94d2f80..7b6d76f 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-5.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-5.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mpaired-single -mgp64 -ftree-vectorize" } */
+/* { dg-options "-mpaired-single -mgp64 -ftree-vectorize" } */
+/* { dg-skip-if "requires vectorization" { *-*-* } { "-O0" "-Os" } { "" } } */
extern float a[], b[], c[];
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-6.c b/gcc/testsuite/gcc.target/mips/mips-ps-6.c
index 5b8b252..5bdfe43 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-6.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-6.c
@@ -1,7 +1,7 @@
/* mips-ps-2.c with an extra -ffinite-math-only option. This option
changes the way that abs.ps is handled. */
/* { dg-do run } */
-/* { dg-options "-O2 -mpaired-single -ffinite-math-only" } */
+/* { dg-options "-mpaired-single -ffinite-math-only" } */
/* Test MIPS paired-single builtin functions */
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-7.c b/gcc/testsuite/gcc.target/mips/mips-ps-7.c
index 65a1104..cfc440b 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-7.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-7.c
@@ -1,6 +1,7 @@
/* mips-ps-5.c with -mgp32 instead of -mgp64. */
/* { dg-do compile } */
-/* { dg-options "-mgp32 -O2 -mpaired-single -ftree-vectorize" } */
+/* { dg-options "-mgp32 -mpaired-single -ftree-vectorize" } */
+/* { dg-skip-if "requires vectorization" { *-*-* } { "-O0" "-Os" } { "" } } */
extern float a[], b[], c[];
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c b/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
index f798855..6d5ebae 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
@@ -1,7 +1,8 @@
/* Test v2sf calculations. The nmadd and nmsub patterns need
-ffinite-math-only. */
/* { dg-do compile } */
-/* { dg-options "isa_rev>=2 -mgp32 -O2 -mpaired-single -ffinite-math-only" } */
+/* { dg-options "isa_rev>=2 -mgp32 -mpaired-single -ffinite-math-only" } */
+/* { dg-skip-if "nmadd and nmsub need combine" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "cvt.ps.s" } } */
/* { dg-final { scan-assembler "mov.ps" } } */
/* { dg-final { scan-assembler "ldc1" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-type.c b/gcc/testsuite/gcc.target/mips/mips-ps-type.c
index 2a10f91..c7dcddd 100644
--- a/gcc/testsuite/gcc.target/mips/mips-ps-type.c
+++ b/gcc/testsuite/gcc.target/mips/mips-ps-type.c
@@ -1,7 +1,8 @@
/* Test v2sf calculations. The nmadd and nmsub patterns need
-ffinite-math-only. */
/* { dg-do compile } */
-/* { dg-options "-O2 -mpaired-single -mgp64 -ffinite-math-only" } */
+/* { dg-options "-mpaired-single -mgp64 -ffinite-math-only" } */
+/* { dg-skip-if "nmadd and nmsub need combine" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "cvt.ps.s" } } */
/* { dg-final { scan-assembler "mov.ps" } } */
/* { dg-final { scan-assembler "ldc1" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mips-sched-madd.c b/gcc/testsuite/gcc.target/mips/mips-sched-madd.c
index c0f9d33..1db1550 100644
--- a/gcc/testsuite/gcc.target/mips/mips-sched-madd.c
+++ b/gcc/testsuite/gcc.target/mips/mips-sched-madd.c
@@ -1,7 +1,8 @@
/* Test for case where another independent multiply insn may interfere
with a macc chain. */
/* { dg-do compile } */
-/* { dg-options "-Os -march=24kf" } */
+/* { dg-options "-march=24kf" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 int foo (int a, int b, int c, int d, int e, int f, int g)
{
diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp
index 5b1bb7a..fddce34 100644
--- a/gcc/testsuite/gcc.target/mips/mips.exp
+++ b/gcc/testsuite/gcc.target/mips/mips.exp
@@ -222,6 +222,10 @@ load_lib gcc-dg.exp
# A list of GROUP REGEXP pairs. Each GROUP represents a logical group of
# options from which only one option should be chosen. REGEXP matches all
# the options in that group; it is implicitly wrapped in "^(...)$".
+#
+# Note that -O* is deliberately omitted from this list. Tests in this
+# directory are run at various optimisation levels and should use
+# dg-skip-if to skip any incompatible levels.
set mips_option_groups {
abi "-mabi=.*"
addressing "addressing=.*"
@@ -236,7 +240,6 @@ set mips_option_groups {
long "-mlong(32|64)"
mips16 "-mips16|-mno-mips16|-mflip-mips16"
mips3d "-mips3d|-mno-mips3d"
- optimization "-O(|[0-3s])"
pic "-f(no-|)(pic|PIC)"
profiling "-pg"
small-data "-G[0-9]+"
@@ -283,13 +286,21 @@ foreach option {
# Add -ffoo/-fno-foo options to mips_option_groups.
foreach option {
delayed-branch
+ expensive-optimizations
fast-math
+ fat-lto-objects
finite-math-only
fixed-hi
fixed-lo
lax-vector-conversions
+ omit-frame-pointer
+ optimize-sibling-calls
+ peephole2
+ schedule-insns2
split-wide-types
tree-vectorize
+ unroll-all-loops
+ unroll-loops
} {
lappend mips_option_groups $option "-f(no-|)$option"
}
@@ -881,6 +892,10 @@ proc mips-dg-options { args } {
}
}
+ # Handle dependencies between the test options and the optimization ones.
+ mips_option_dependency options "-fno-unroll-loops" "-fno-unroll-all-loops"
+ mips_option_dependency options "-pg" "-fno-omit-frame-pointer"
+
# Handle dependencies between options on the left of the
# dependency diagram.
mips_option_dependency options "-mips3d" "-mpaired-single"
@@ -1253,8 +1268,7 @@ proc mips-gcc-dg-test { prog do_what extra_tool_flags } {
dg-init
mips-dg-init
-# MIPS16 is defined by "-mips16" or "(-mips16)" in dg-options.
-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] "" \
+gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] \
"-DNOMIPS16=__attribute__((nomips16))"
mips-dg-finish
dg-finish
diff --git a/gcc/testsuite/gcc.target/mips/mips16e-extends.c b/gcc/testsuite/gcc.target/mips/mips16e-extends.c
index d077f2f..15f7dd8 100644
--- a/gcc/testsuite/gcc.target/mips/mips16e-extends.c
+++ b/gcc/testsuite/gcc.target/mips/mips16e-extends.c
@@ -1,5 +1,6 @@
/* -mlong32 added because of PR target/38595. */
-/* { dg-options "(-mips16) -Os isa_rev>=1 -mlong32" } */
+/* { dg-options "(-mips16) isa_rev>=1 -mlong32" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
MIPS16 short cksum16 (unsigned long n)
{
diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
index ccbdef5..ccd9d38 100644
--- a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
+++ b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP instructions */
/* { dg-do run } */
-/* { dg-options "-mdsp -O2" } */
+/* { dg-options "-mdsp" } */
#include <stdlib.h>
#include <stdio.h>
@@ -59,8 +59,10 @@ NOMIPS16 void test_MIPS_DSP ()
v4i8 v4i8_a,v4i8_b,v4i8_c,v4i8_r,v4i8_s;
v2q15 v2q15_a,v2q15_b,v2q15_c,v2q15_r,v2q15_s;
q31 q31_a,q31_b,q31_c,q31_r,q31_s;
- i32 i32_a,i32_b,i32_c,i32_r,i32_s;
- ui32 ui32_a,ui32_b,ui32_c;
+ /* To protect the multiplication-related tests from being optimized
+ at compile time. */
+ volatile i32 i32_a,i32_b,i32_c,i32_r,i32_s;
+ volatile ui32 ui32_a,ui32_b,ui32_c;
a64 a64_a,a64_b,a64_c,a64_r,a64_s;
void *ptr_a;
diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp.c b/gcc/testsuite/gcc.target/mips/mips32-dsp.c
index c2a8ae7..8a292ef 100644
--- a/gcc/testsuite/gcc.target/mips/mips32-dsp.c
+++ b/gcc/testsuite/gcc.target/mips/mips32-dsp.c
@@ -156,8 +156,10 @@ NOMIPS16 void test_MIPS_DSP ()
v4i8 v4i8_a,v4i8_b,v4i8_c,v4i8_r,v4i8_s;
v2q15 v2q15_a,v2q15_b,v2q15_c,v2q15_r,v2q15_s;
q31 q31_a,q31_b,q31_c,q31_r,q31_s;
- i32 i32_a,i32_b,i32_c,i32_r,i32_s;
- ui32 ui32_a,ui32_b,ui32_c;
+ /* To protect the multiplication-related tests from being optimized
+ at compile time. */
+ volatile i32 i32_a,i32_b,i32_c,i32_r,i32_s;
+ volatile ui32 ui32_a,ui32_b,ui32_c;
a64 a64_a,a64_b,a64_c,a64_r,a64_s;
void *ptr_a;
diff --git a/gcc/testsuite/gcc.target/mips/mips32-dspr2.c b/gcc/testsuite/gcc.target/mips/mips32-dspr2.c
index 1b3031f..1f7e928 100644
--- a/gcc/testsuite/gcc.target/mips/mips32-dspr2.c
+++ b/gcc/testsuite/gcc.target/mips/mips32-dspr2.c
@@ -1,6 +1,6 @@
/* Test MIPS32 DSP REV 2 instructions */
/* { dg-do run } */
-/* { dg-options "-mdspr2 -O2" } */
+/* { dg-options "-mdspr2" } */
typedef signed char v4q7 __attribute__ ((vector_size(4)));
typedef signed char v4i8 __attribute__ ((vector_size(4)));
diff --git a/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c b/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c
index cf57323..359a845 100644
--- a/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c
+++ b/gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -mabi=32 -mfp64" } */
+/* { dg-options "-mabi=32 -mfp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "mthc1" } } */
/* { dg-final { scan-assembler "mfhc1" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c b/gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c
index d136676..02e6166 100644
--- a/gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c
+++ b/gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c
@@ -1,6 +1,7 @@
/* Test MIPS64 DSP instructions */
/* { dg-do compile } */
-/* { dg-options "-mgp64 -mdsp -O" } */
+/* { dg-options "-mgp64 -mdsp" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tldx\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-1.c b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-1.c
index 8514ed8..3d07939 100644
--- a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-1.c
+++ b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -pg -mmcount-ra-address -mabi=64" } */
+/* { dg-options "-pg -mmcount-ra-address -mabi=64" } */
/* { dg-final { scan-assembler "\tmove\t\\\$12,\\\$0" } } */
NOMIPS16 int bazl(int i)
{
diff --git a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c
index bb59a18..34b30d9 100644
--- a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c
+++ b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -pg -mmcount-ra-address -mabi=64" } */
+/* { dg-options "-pg -mmcount-ra-address -mabi=64 -mno-abicalls" } */
+/* { dg-skip-if "requiring a specific frame layout makes this a code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdla\t\\\$12,8\\(\\\$sp\\)" } } */
int foo (int);
NOMIPS16 int bar (int i)
diff --git a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c
index 8c94c83..17bcb76 100644
--- a/gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c
+++ b/gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -pg -mmcount-ra-address -mabi=64" } */
+/* { dg-options "-pg -mmcount-ra-address -mabi=64 -mno-abicalls" } */
+/* { dg-skip-if "requiring a specific frame layout makes this a code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdla\t\\\$12,200008\\(\\\$sp\\)" } } */
int foo (int *);
NOMIPS16 int bar(int i)
diff --git a/gcc/testsuite/gcc.target/mips/movcc-1.c b/gcc/testsuite/gcc.target/mips/movcc-1.c
index 1a930c9..fbc6781 100644
--- a/gcc/testsuite/gcc.target/mips/movcc-1.c
+++ b/gcc/testsuite/gcc.target/mips/movcc-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 isa>=4" } */
+/* { dg-options "isa>=4" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "movz" } } */
/* { dg-final { scan-assembler "movn" } } */
diff --git a/gcc/testsuite/gcc.target/mips/movcc-2.c b/gcc/testsuite/gcc.target/mips/movcc-2.c
index d42acc1..cb91a9d 100644
--- a/gcc/testsuite/gcc.target/mips/movcc-2.c
+++ b/gcc/testsuite/gcc.target/mips/movcc-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 isa>=4" } */
+/* { dg-options "isa>=4" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "movz" } } */
/* { dg-final { scan-assembler "movn" } } */
diff --git a/gcc/testsuite/gcc.target/mips/movcc-3.c b/gcc/testsuite/gcc.target/mips/movcc-3.c
index e648177..a1ddf57 100644
--- a/gcc/testsuite/gcc.target/mips/movcc-3.c
+++ b/gcc/testsuite/gcc.target/mips/movcc-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 isa>=4 -mhard-float" } */
+/* { dg-options "isa>=4 -mhard-float" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "movt" } } */
/* { dg-final { scan-assembler "movf" } } */
/* { dg-final { scan-assembler "movz.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/msub-1.c b/gcc/testsuite/gcc.target/mips/msub-1.c
index 803ea77..9a222bf 100644
--- a/gcc/testsuite/gcc.target/mips/msub-1.c
+++ b/gcc/testsuite/gcc.target/mips/msub-1.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=vr5400 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-march=vr5400 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmsac\t\\\$0," 2 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/msub-2.c b/gcc/testsuite/gcc.target/mips/msub-2.c
index e6cdc2c..c0923cd 100644
--- a/gcc/testsuite/gcc.target/mips/msub-2.c
+++ b/gcc/testsuite/gcc.target/mips/msub-2.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=vr5500 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-march=vr5500 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmsub\t" 2 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/msub-3.c b/gcc/testsuite/gcc.target/mips/msub-3.c
index c44f34f..aedd043 100644
--- a/gcc/testsuite/gcc.target/mips/msub-3.c
+++ b/gcc/testsuite/gcc.target/mips/msub-3.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 isa_rev>=1 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "isa_rev>=1 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmsub\t" 2 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/msub-4.c b/gcc/testsuite/gcc.target/mips/msub-4.c
index d41c312..84cb5fe 100644
--- a/gcc/testsuite/gcc.target/mips/msub-4.c
+++ b/gcc/testsuite/gcc.target/mips/msub-4.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mdspr2 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-mdspr2 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmsub\t\\\$ac" 2 } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/msub-5.c b/gcc/testsuite/gcc.target/mips/msub-5.c
index dcb124a..eba104c 100644
--- a/gcc/testsuite/gcc.target/mips/msub-5.c
+++ b/gcc/testsuite/gcc.target/mips/msub-5.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 -march=5kc" } */
+/* { dg-options "-march=5kc" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmsub\t" 4 } } */
/* { dg-final { scan-assembler-not "\tmtlo\t" } } */
/* { dg-final { scan-assembler-times "\tmflo\t" 3 } } */
diff --git a/gcc/testsuite/gcc.target/mips/msub-6.c b/gcc/testsuite/gcc.target/mips/msub-6.c
index ee4ca3d..32411e6 100644
--- a/gcc/testsuite/gcc.target/mips/msub-6.c
+++ b/gcc/testsuite/gcc.target/mips/msub-6.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 -march=5kc" } */
+/* { dg-options "-march=5kc" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tmsub\t" } } */
/* { dg-final { scan-assembler "\tmul\t" } } */
/* { dg-final { scan-assembler "\tsubu\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/msub-7.c b/gcc/testsuite/gcc.target/mips/msub-7.c
index 7ae96ac..ee04987 100644
--- a/gcc/testsuite/gcc.target/mips/msub-7.c
+++ b/gcc/testsuite/gcc.target/mips/msub-7.c
@@ -1,4 +1,6 @@
-/* { dg-options "-O2 -march=5kc" } */
+/* { dg-options "-march=5kc" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
+/* { dg-skip-if "requires -fira-region=all or =mixed" { *-*-* } { "-Os" } { "" } } */
/* { dg-final { scan-assembler-not "\tmul\t" } } */
/* { dg-final { scan-assembler "\tmsub\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/msub-8.c b/gcc/testsuite/gcc.target/mips/msub-8.c
index 49d67f2..a66307f 100644
--- a/gcc/testsuite/gcc.target/mips/msub-8.c
+++ b/gcc/testsuite/gcc.target/mips/msub-8.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 -march=5kc" } */
+/* { dg-options "-march=5kc" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmul\t" } } */
/* { dg-final { scan-assembler-not "\tmsub\t" } } */
/* { dg-final { scan-assembler-not "\tmtlo\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/msubu-1.c b/gcc/testsuite/gcc.target/mips/msubu-1.c
index ae80403..e1146f8 100644
--- a/gcc/testsuite/gcc.target/mips/msubu-1.c
+++ b/gcc/testsuite/gcc.target/mips/msubu-1.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=vr5400 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-march=vr5400 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmsacu\t\\\$0," 2 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/msubu-2.c b/gcc/testsuite/gcc.target/mips/msubu-2.c
index 186dc47..642d123 100644
--- a/gcc/testsuite/gcc.target/mips/msubu-2.c
+++ b/gcc/testsuite/gcc.target/mips/msubu-2.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=vr5500 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-march=vr5500 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmsubu\t" 2 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/msubu-3.c b/gcc/testsuite/gcc.target/mips/msubu-3.c
index 272c6481..2e936eb 100644
--- a/gcc/testsuite/gcc.target/mips/msubu-3.c
+++ b/gcc/testsuite/gcc.target/mips/msubu-3.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 isa_rev>=1 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "isa_rev>=1 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmsubu\t" 2 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/msubu-4.c b/gcc/testsuite/gcc.target/mips/msubu-4.c
index 8f5fd64..a4f6118 100644
--- a/gcc/testsuite/gcc.target/mips/msubu-4.c
+++ b/gcc/testsuite/gcc.target/mips/msubu-4.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mdspr2 -mgp32" } */
+/* This test requires widening_mul */
+/* { dg-options "-mdspr2 -mgp32 -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tmsubu\t\\\$ac" 2 } } */
typedef unsigned int ui;
diff --git a/gcc/testsuite/gcc.target/mips/mult-1.c b/gcc/testsuite/gcc.target/mips/mult-1.c
index 8630ec9..1038797 100644
--- a/gcc/testsuite/gcc.target/mips/mult-1.c
+++ b/gcc/testsuite/gcc.target/mips/mult-1.c
@@ -1,6 +1,8 @@
/* For SI->DI widening multiplication we should use DINS to combine the two
halves. For Octeon use DMUL with explicit widening. */
-/* { dg-options "-O2 -mgp64 isa_rev>=2 forbid_cpu=octeon.*" } */
+/* This test requires widening_mul */
+/* { dg-options "-mgp64 isa_rev>=2 forbid_cpu=octeon.* -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdins\t" } } */
/* { dg-final { scan-assembler-not "\tdsll\t" } } */
/* { dg-final { scan-assembler-not "\tdsrl\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-10.c b/gcc/testsuite/gcc.target/mips/mult-10.c
index 0b990c3..c479ebb 100644
--- a/gcc/testsuite/gcc.target/mips/mult-10.c
+++ b/gcc/testsuite/gcc.target/mips/mult-10.c
@@ -1,4 +1,6 @@
-/* { dg-options "-O2 -mgp64 (-mips16)" } */
+/* This test requires widening_mul */
+/* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmult\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" { xfail *-*-* } } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-11.c b/gcc/testsuite/gcc.target/mips/mult-11.c
index d2ba695..8b26c1d 100644
--- a/gcc/testsuite/gcc.target/mips/mult-11.c
+++ b/gcc/testsuite/gcc.target/mips/mult-11.c
@@ -1,4 +1,6 @@
-/* { dg-options "-O2 -mgp64 (-mips16)" } */
+/* This test requires widening_mul */
+/* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmultu\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-12.c b/gcc/testsuite/gcc.target/mips/mult-12.c
index bd772d2..bf8d36c 100644
--- a/gcc/testsuite/gcc.target/mips/mult-12.c
+++ b/gcc/testsuite/gcc.target/mips/mult-12.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmultu?\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-13.c b/gcc/testsuite/gcc.target/mips/mult-13.c
index e0859f6..beb6ab9 100644
--- a/gcc/testsuite/gcc.target/mips/mult-13.c
+++ b/gcc/testsuite/gcc.target/mips/mult-13.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmultu?\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-14.c b/gcc/testsuite/gcc.target/mips/mult-14.c
index c4b54b7..e3cbd75 100644
--- a/gcc/testsuite/gcc.target/mips/mult-14.c
+++ b/gcc/testsuite/gcc.target/mips/mult-14.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp32 (-mips16)" } */
+/* { dg-options "-mgp32 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmult\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-15.c b/gcc/testsuite/gcc.target/mips/mult-15.c
index a96049e..da47bd2 100644
--- a/gcc/testsuite/gcc.target/mips/mult-15.c
+++ b/gcc/testsuite/gcc.target/mips/mult-15.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp32 (-mips16)" } */
+/* { dg-options "-mgp32 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmultu\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-16.c b/gcc/testsuite/gcc.target/mips/mult-16.c
index cb1707d..3e9b378 100644
--- a/gcc/testsuite/gcc.target/mips/mult-16.c
+++ b/gcc/testsuite/gcc.target/mips/mult-16.c
@@ -1,4 +1,6 @@
-/* { dg-options "-O2 -mgp32 (-mips16)" } */
+/* This test requires widening_mul */
+/* { dg-options "-mgp32 (-mips16) -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmult\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-17.c b/gcc/testsuite/gcc.target/mips/mult-17.c
index 3539f63..84baff8 100644
--- a/gcc/testsuite/gcc.target/mips/mult-17.c
+++ b/gcc/testsuite/gcc.target/mips/mult-17.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp32 (-mips16)" } */
+/* { dg-options "-mgp32 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmultu\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-18.c b/gcc/testsuite/gcc.target/mips/mult-18.c
index cfdac8b..52487f3 100644
--- a/gcc/testsuite/gcc.target/mips/mult-18.c
+++ b/gcc/testsuite/gcc.target/mips/mult-18.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp32 (-mips16)" } */
+/* { dg-options "-mgp32 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmultu?\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-19.c b/gcc/testsuite/gcc.target/mips/mult-19.c
index 47cdd5c..11cdb17 100644
--- a/gcc/testsuite/gcc.target/mips/mult-19.c
+++ b/gcc/testsuite/gcc.target/mips/mult-19.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp32 (-mips16)" } */
+/* { dg-options "-mgp32 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmultu?\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-2.c b/gcc/testsuite/gcc.target/mips/mult-2.c
index 8494e14..77be311 100644
--- a/gcc/testsuite/gcc.target/mips/mult-2.c
+++ b/gcc/testsuite/gcc.target/mips/mult-2.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdmult\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-3.c b/gcc/testsuite/gcc.target/mips/mult-3.c
index fa7cfa3..e46978b 100644
--- a/gcc/testsuite/gcc.target/mips/mult-3.c
+++ b/gcc/testsuite/gcc.target/mips/mult-3.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdmultu\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-4.c b/gcc/testsuite/gcc.target/mips/mult-4.c
index d579f00..939ca5c 100644
--- a/gcc/testsuite/gcc.target/mips/mult-4.c
+++ b/gcc/testsuite/gcc.target/mips/mult-4.c
@@ -1,4 +1,6 @@
-/* { dg-options "-O2 -mgp64 (-mips16)" } */
+/* This test requires widening_mul */
+/* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdmult\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-5.c b/gcc/testsuite/gcc.target/mips/mult-5.c
index 6df86a1..efb06af 100644
--- a/gcc/testsuite/gcc.target/mips/mult-5.c
+++ b/gcc/testsuite/gcc.target/mips/mult-5.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdmultu\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
/* { dg-final { scan-assembler-not "\tmflo\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-6.c b/gcc/testsuite/gcc.target/mips/mult-6.c
index a6b910e..82d4f5d 100644
--- a/gcc/testsuite/gcc.target/mips/mult-6.c
+++ b/gcc/testsuite/gcc.target/mips/mult-6.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdmultu?\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-7.c b/gcc/testsuite/gcc.target/mips/mult-7.c
index 7c2989b..35b0749 100644
--- a/gcc/testsuite/gcc.target/mips/mult-7.c
+++ b/gcc/testsuite/gcc.target/mips/mult-7.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp64 (-mips16)" } */
+/* { dg-options "-mgp64 (-mips16)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tdmultu?\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-8.c b/gcc/testsuite/gcc.target/mips/mult-8.c
index 3e3acde..18dce20 100644
--- a/gcc/testsuite/gcc.target/mips/mult-8.c
+++ b/gcc/testsuite/gcc.target/mips/mult-8.c
@@ -1,4 +1,6 @@
-/* { dg-options "-O2 -mgp64 (-mips16)" } */
+/* This test requires widening_mul */
+/* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmult\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/mult-9.c b/gcc/testsuite/gcc.target/mips/mult-9.c
index aa2eded..59d450a 100644
--- a/gcc/testsuite/gcc.target/mips/mult-9.c
+++ b/gcc/testsuite/gcc.target/mips/mult-9.c
@@ -1,4 +1,6 @@
-/* { dg-options "-O2 -mgp64 (-mips16)" } */
+/* This test requires widening_mul */
+/* { dg-options "-mgp64 (-mips16) -fexpensive-optimizations" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tmultu\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler "\tmfhi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/near-far-3.c b/gcc/testsuite/gcc.target/mips/near-far-3.c
index f4ae791..d4d48b1 100644
--- a/gcc/testsuite/gcc.target/mips/near-far-3.c
+++ b/gcc/testsuite/gcc.target/mips/near-far-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-mlong-calls addressing=absolute -O2" } */
+/* { dg-options "-mlong-calls addressing=absolute" } */
NOMIPS16 extern int long_call_func () __attribute__((long_call));
NOMIPS16 extern int far_func () __attribute__((far));
@@ -13,5 +13,5 @@ NOMIPS16 int test4 () { return normal_func (); }
/* { dg-final { scan-assembler-not "\tj\tlong_call_func\n" } } */
/* { dg-final { scan-assembler-not "\tj\tfar_func\n" } } */
-/* { dg-final { scan-assembler "\tj\tnear_func\n" } } */
+/* { dg-final { scan-assembler "\tj(|al)\tnear_func\n" } } */
/* { dg-final { scan-assembler-not "\tj\tnormal_func\n" } } */
diff --git a/gcc/testsuite/gcc.target/mips/near-far-4.c b/gcc/testsuite/gcc.target/mips/near-far-4.c
index b9aa21f..0ea07b0 100644
--- a/gcc/testsuite/gcc.target/mips/near-far-4.c
+++ b/gcc/testsuite/gcc.target/mips/near-far-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-mno-long-calls addressing=absolute -O2" } */
+/* { dg-options "-mno-long-calls addressing=absolute" } */
NOMIPS16 extern int long_call_func () __attribute__((long_call));
NOMIPS16 extern int far_func () __attribute__((far));
@@ -13,5 +13,5 @@ NOMIPS16 int test4 () { return normal_func (); }
/* { dg-final { scan-assembler-not "\tj\tlong_call_func\n" } } */
/* { dg-final { scan-assembler-not "\tj\tfar_func\n" } } */
-/* { dg-final { scan-assembler "\tj\tnear_func\n" } } */
-/* { dg-final { scan-assembler "\tj\tnormal_func\n" } } */
+/* { dg-final { scan-assembler "\tj(|al)\tnear_func\n" } } */
+/* { dg-final { scan-assembler "\tj(|al)\tnormal_func\n" } } */
diff --git a/gcc/testsuite/gcc.target/mips/neg-abs-1.c b/gcc/testsuite/gcc.target/mips/neg-abs-1.c
index 20691ff..6c94258 100644
--- a/gcc/testsuite/gcc.target/mips/neg-abs-1.c
+++ b/gcc/testsuite/gcc.target/mips/neg-abs-1.c
@@ -1,7 +1,7 @@
/* Make sure that we use abs.fmt and neg.fmt when the signs of NaNs don't
matter. */
/* { dg-do compile } */
-/* { dg-options "-O2 -mhard-float -ffinite-math-only" } */
+/* { dg-options "-mhard-float -ffinite-math-only" } */
/* { dg-final { scan-assembler "neg.s" } } */
/* { dg-final { scan-assembler "neg.d" } } */
/* { dg-final { scan-assembler "abs.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/neg-abs-2.c b/gcc/testsuite/gcc.target/mips/neg-abs-2.c
index 67125f7..f34f743 100644
--- a/gcc/testsuite/gcc.target/mips/neg-abs-2.c
+++ b/gcc/testsuite/gcc.target/mips/neg-abs-2.c
@@ -1,7 +1,7 @@
/* Make sure that we avoid abs.fmt and neg.fmt when the signs of NaNs
matter. */
/* { dg-do compile } */
-/* { dg-options "-O2 -mhard-float -fno-finite-math-only" } */
+/* { dg-options "-mhard-float -fno-finite-math-only" } */
/* { dg-final { scan-assembler-not "neg.s" } } */
/* { dg-final { scan-assembler-not "neg.d" } } */
/* { dg-final { scan-assembler-not "abs.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/nmadd-1.c b/gcc/testsuite/gcc.target/mips/nmadd-1.c
index 123d487..46b7082 100644
--- a/gcc/testsuite/gcc.target/mips/nmadd-1.c
+++ b/gcc/testsuite/gcc.target/mips/nmadd-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -ffast-math isa=4 -mhard-float" } */
+/* { dg-options "-ffast-math isa=4 -mhard-float" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "nmadd.s" } } */
/* { dg-final { scan-assembler "nmadd.d" } } */
/* { dg-final { scan-assembler "nmsub.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/nmadd-2.c b/gcc/testsuite/gcc.target/mips/nmadd-2.c
index 90e4d83..dee6fcb 100644
--- a/gcc/testsuite/gcc.target/mips/nmadd-2.c
+++ b/gcc/testsuite/gcc.target/mips/nmadd-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fno-fast-math -ffinite-math-only isa=4 -mhard-float" } */
+/* { dg-options "-fno-fast-math -ffinite-math-only isa=4 -mhard-float" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "nmadd.s" } } */
/* { dg-final { scan-assembler "nmadd.d" } } */
/* { dg-final { scan-assembler "nmsub.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/nmadd-3.c b/gcc/testsuite/gcc.target/mips/nmadd-3.c
index df72618..c553fb7 100644
--- a/gcc/testsuite/gcc.target/mips/nmadd-3.c
+++ b/gcc/testsuite/gcc.target/mips/nmadd-3.c
@@ -1,7 +1,7 @@
/* The same code as nmadd-2.c, but compiled with -fno-finite-math-only.
We can't use nmadd and nmsub in that case. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fno-fast-math -fno-finite-math-only isa=4 -mhard-float" } */
+/* { dg-options "-fno-fast-math -fno-finite-math-only isa=4 -mhard-float" } */
/* { dg-final { scan-assembler-not "nmadd.s" } } */
/* { dg-final { scan-assembler-not "nmadd.d" } } */
/* { dg-final { scan-assembler-not "nmsub.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/no-dsp-1.c b/gcc/testsuite/gcc.target/mips/no-dsp-1.c
index 0930375..c4a7b0a 100644
--- a/gcc/testsuite/gcc.target/mips/no-dsp-1.c
+++ b/gcc/testsuite/gcc.target/mips/no-dsp-1.c
@@ -1,7 +1,8 @@
-/* { dg-options "-mno-dsp" } */
+/* { dg-options "-mno-dsp -ffat-lto-objects" } */
void
foo (void)
{
register int x asm ("$ac1hi"); /* { dg-error "cannot be accessed" } */
+ asm volatile ("" : "=r" (x));
}
diff --git a/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c b/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c
index ee7f3d5..ecf856e 100644
--- a/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c
+++ b/gcc/testsuite/gcc.target/mips/no-smartmips-lwxs.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -mno-smartmips" } */
+/* { dg-options "-mno-smartmips" } */
NOMIPS16 int scaled_indexed_word_load (int a[], int b)
{
diff --git a/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c b/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c
index d1f50a8..419d086 100644
--- a/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c
+++ b/gcc/testsuite/gcc.target/mips/no-smartmips-ror-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -mno-smartmips -march=mips32" } */
+/* { dg-options "-mno-smartmips -march=mips32" } */
NOMIPS16 int rotate_left (unsigned a, unsigned s)
{
diff --git a/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c b/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c
index 8dd5be1..e7150d2 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-baddu-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -march=octeon" } */
+/* { dg-options "-march=octeon" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tbaddu\t" 4 } } */
/* { dg-final { scan-assembler-not "\tandi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c b/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c
index 6629dbb..f91c68b 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-bbit-1.c
@@ -1,7 +1,9 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=octeon" } */
-/* { dg-final { scan-assembler-times "\tbbit1\t" 4 } } */
-/* { dg-final { scan-assembler-times "\tbbit0\t" 2 } } */
+/* { dg-options "-march=octeon" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
+/* { dg-final { scan-assembler "\tbbit1\t" } } */
+/* { dg-final { scan-assembler "\tbbit0\t" } } */
+/* { dg-final { scan-assembler-times "\tbbit.\t" 6 } } */
/* { dg-final { scan-assembler-not "andi\t" } } */
NOMIPS16 void foo (void);
diff --git a/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c b/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c
index 55bf23e..9bd8dce 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-bbit-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=octeon -mbranch-likely" } */
+/* { dg-options "-march=octeon -mbranch-likely -fno-unroll-loops" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "\tbbit\[01\]\t" } } */
/* { dg-final { scan-assembler-not "\tbbit\[01\]l\t" } } */
/* { dg-final { scan-assembler "\tbnel\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c b/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c
index bcc37d2..2726037 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-bbit-3.c
@@ -11,9 +11,10 @@
which does not get recognized as a valid bbit pattern. The
middle-end should be able to simplify this further. */
-/* { dg-options "-O2 -march=octeon -meb" } */
+/* { dg-options "-march=octeon -meb" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
-/* { dg-final { scan-assembler-times "\tbbit\[01\]\t|\tbgez\t" 2 } } */
+/* { dg-final { scan-assembler-times "\tbbit\[01\]\t|\tbgez\t|\tbltz\t" 2 } } */
/* { dg-final { scan-assembler-not "ext\t" } } */
void abort (void);
diff --git a/gcc/testsuite/gcc.target/mips/octeon-cins-1.c b/gcc/testsuite/gcc.target/mips/octeon-cins-1.c
index ac85e23..dd0b753 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-cins-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-cins-1.c
@@ -1,7 +1,8 @@
/* { dg-do compile } */
/* The tests also work with -mgp32. For long long tests, only one of
the 32-bit parts is used. */
-/* { dg-options "-O -march=octeon" } */
+/* { dg-options "-march=octeon" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tcins\t" 3 } } */
/* { dg-final { scan-assembler-not "\tandi\t|sll\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-cins-2.c b/gcc/testsuite/gcc.target/mips/octeon-cins-2.c
index 2dcff0a..71611bc 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-cins-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-cins-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tcins\t" } } */
NOMIPS16 unsigned
diff --git a/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c b/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c
index 6b2308c..cf8da24 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-dmul-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-march=octeon -mgp64" } */
+/* { dg-skip-if "using DMUL is no worse size-wise, and can be better if the constant is used elsewhere" { *-*-* } { "-Os" } { "" } } */
/* { dg-final { scan-assembler-not "\tdmul" } } */
NOMIPS16 long long
diff --git a/gcc/testsuite/gcc.target/mips/octeon-dmul-3.c b/gcc/testsuite/gcc.target/mips/octeon-dmul-3.c
index 01f0eef..38150a8 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-dmul-3.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-dmul-3.c
@@ -1,5 +1,6 @@
/* Use DMUL for widening multiplication too. */
-/* { dg-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\tdmul\t" 2 } } */
/* { dg-final { scan-assembler-not "\td?mult\t" } } */
/* { dg-final { scan-assembler-times "\tdext\t" 2 } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-2.c b/gcc/testsuite/gcc.target/mips/octeon-exts-2.c
index fc5df63..21353d9 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -march=octeon -meb" } */
+/* { dg-options "-march=octeon -meb" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\texts\t" 4 } } */
struct bar
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-3.c b/gcc/testsuite/gcc.target/mips/octeon-exts-3.c
index 9d0e930..be04198 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-3.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\texts\t" 3 } } */
struct foo
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-4.c b/gcc/testsuite/gcc.target/mips/octeon-exts-4.c
index 7e6a578..0071ae1 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-4.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-4.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tsll\t\[^\n\]*,0" } } */
/* { dg-final { scan-assembler-times "\texts\t" 6 } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-5.c b/gcc/testsuite/gcc.target/mips/octeon-exts-5.c
index e7a4738..0e587d7 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-5.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-5.c
@@ -1,6 +1,7 @@
/* -mel version of octeon-exts-2.c. */
/* { dg-do compile } */
-/* { dg-options "-O -march=octeon -mel" } */
+/* { dg-options "-march=octeon -mel" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\texts\t" 4 } } */
struct bar
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-6.c b/gcc/testsuite/gcc.target/mips/octeon-exts-6.c
index d37ed95..b8da271 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-6.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-6.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\texts\t" 5 } } */
/* { dg-final { scan-assembler-not "\t(dsll|dsra)\t" } } */
/* { dg-final { scan-assembler-not "\tsll\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-7.c b/gcc/testsuite/gcc.target/mips/octeon-exts-7.c
index 04805d0..d22a4b3 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-exts-7.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-7.c
@@ -1,6 +1,7 @@
/* Remove the redundant sign-extension after the sign-extraction. */
/* { dg-do compile } */
-/* { dg-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "\texts\t" 1 } } */
/* { dg-final { scan-assembler-not "sll|sra" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-pipe-1.c b/gcc/testsuite/gcc.target/mips/octeon-pipe-1.c
index 3c9d926..4488e3d 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-pipe-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-pipe-1.c
@@ -1,6 +1,7 @@
/* Check that we use the octeon pipeline description. */
/* { dg-do compile } */
-/* { dg-options "-O2 -march=octeon -fdump-rtl-sched2" } */
+/* { dg-options "-march=octeon -fschedule-insns2 -fdump-rtl-sched2" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 int f (int a, int b)
{
diff --git a/gcc/testsuite/gcc.target/mips/octeon-pop-1.c b/gcc/testsuite/gcc.target/mips/octeon-pop-1.c
index 54d2e9c..6a6791c 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-pop-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-pop-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
/* { dg-final { scan-assembler "\tpop\t" } } */
/* { dg-final { scan-assembler "\tdpop\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-pop-2.c b/gcc/testsuite/gcc.target/mips/octeon-pop-2.c
index 8acd935..63a73b3 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-pop-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-pop-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* The pop instruction does not depend on the word value to be sign extended. */
/* { dg-final { scan-assembler-not "sll\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-seq-3.c b/gcc/testsuite/gcc.target/mips/octeon-seq-3.c
index 899f145..71e09dc 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-seq-3.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-seq-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -march=octeon -mgp64" } */
+/* { dg-options "-march=octeon -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "and\t\|andi\t\|ext\t\|sll\t\|srl\t" } } */
/* { dg-final { scan-assembler-times "\tseqi\t\|\tsnei\t" 4 } } */
diff --git a/gcc/testsuite/gcc.target/mips/octeon-seq-4.c b/gcc/testsuite/gcc.target/mips/octeon-seq-4.c
index e61bcb3..7069e40 100644
--- a/gcc/testsuite/gcc.target/mips/octeon-seq-4.c
+++ b/gcc/testsuite/gcc.target/mips/octeon-seq-4.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=octeon" } */
+/* { dg-options "-march=octeon" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "xor" } } */
unsigned
diff --git a/gcc/testsuite/gcc.target/mips/octeon2-lx-1.c b/gcc/testsuite/gcc.target/mips/octeon2-lx-1.c
index 34d8af8..445e3fc 100644
--- a/gcc/testsuite/gcc.target/mips/octeon2-lx-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon2-lx-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-march=octeon2 -O -mgp64" } */
+/* { dg-options "-march=octeon2 -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
#define TEST(N, R, T) \
T fll##N (T j, signed R *b, long long i) { return j + b[i]; } \
diff --git a/gcc/testsuite/gcc.target/mips/octeon2-lx-2.c b/gcc/testsuite/gcc.target/mips/octeon2-lx-2.c
index 521a71f..b487637 100644
--- a/gcc/testsuite/gcc.target/mips/octeon2-lx-2.c
+++ b/gcc/testsuite/gcc.target/mips/octeon2-lx-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-march=octeon2 -O -mgp64" } */
+/* { dg-options "-march=octeon2 -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
#define TEST(N, T) \
T f##N (T *p, int i) { return p[i]; } \
diff --git a/gcc/testsuite/gcc.target/mips/octeon2-lx-3.c b/gcc/testsuite/gcc.target/mips/octeon2-lx-3.c
index 51d2e1031..110cf8b 100644
--- a/gcc/testsuite/gcc.target/mips/octeon2-lx-3.c
+++ b/gcc/testsuite/gcc.target/mips/octeon2-lx-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-march=octeon2 -O -mgp32" } */
+/* { dg-options "-march=octeon2 -mgp32" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
#define TEST(N, T) \
T f##N (T *p, int i) { return p[i]; } \
diff --git a/gcc/testsuite/gcc.target/mips/octeon2-pipe-1.c b/gcc/testsuite/gcc.target/mips/octeon2-pipe-1.c
index dc665dd..18fd966 100644
--- a/gcc/testsuite/gcc.target/mips/octeon2-pipe-1.c
+++ b/gcc/testsuite/gcc.target/mips/octeon2-pipe-1.c
@@ -1,6 +1,7 @@
/* Check that we use the octeon2 pipeline description. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-rtl-sched2 -march=octeon2" } */
+/* { dg-options "-fschedule-insns2 -fdump-rtl-sched2 -march=octeon2" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 int f (int a, int b)
{
diff --git a/gcc/testsuite/gcc.target/mips/pr26765.c b/gcc/testsuite/gcc.target/mips/pr26765.c
index 25c2e8d..c4716cf 100644
--- a/gcc/testsuite/gcc.target/mips/pr26765.c
+++ b/gcc/testsuite/gcc.target/mips/pr26765.c
@@ -2,7 +2,7 @@
This testcase used to trigger an unrecognizable insn. */
/* { dg-do compile } */
-/* { dg-options "-O2 -w" } */
+/* { dg-options "-w" } */
__thread int *a = 0;
diff --git a/gcc/testsuite/gcc.target/mips/pr33256.c b/gcc/testsuite/gcc.target/mips/pr33256.c
index ead5888..109da48 100644
--- a/gcc/testsuite/gcc.target/mips/pr33256.c
+++ b/gcc/testsuite/gcc.target/mips/pr33256.c
@@ -1,6 +1,6 @@
/* GCC used to report an ICE for this test because we generated a LO_SUM
for an illegitimate constant. */
-/* { dg-options "-mabi=64 -msym32 -O2 -EB -mno-abicalls" } */
+/* { dg-options "-mabi=64 -msym32 -EB -mno-abicalls" } */
extern unsigned long a[];
int b (int);
diff --git a/gcc/testsuite/gcc.target/mips/pr33635-1.c b/gcc/testsuite/gcc.target/mips/pr33635-1.c
index 78e761f..f849b39 100644
--- a/gcc/testsuite/gcc.target/mips/pr33635-1.c
+++ b/gcc/testsuite/gcc.target/mips/pr33635-1.c
@@ -1,4 +1,4 @@
-/* { dg-options "-mabi=64 -O2" } */
+/* { dg-options "-mabi=64" } */
NOMIPS16 long double __powitf2 (long double x, int m)
{
diff --git a/gcc/testsuite/gcc.target/mips/pr33755.c b/gcc/testsuite/gcc.target/mips/pr33755.c
index ca6a1e6..c3e2cbf 100644
--- a/gcc/testsuite/gcc.target/mips/pr33755.c
+++ b/gcc/testsuite/gcc.target/mips/pr33755.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-options "-O2" } */
volatile int gv;
const char *ptrs[2];
diff --git a/gcc/testsuite/gcc.target/mips/pr35802.c b/gcc/testsuite/gcc.target/mips/pr35802.c
index 9ecc4d0..acdfaeb 100644
--- a/gcc/testsuite/gcc.target/mips/pr35802.c
+++ b/gcc/testsuite/gcc.target/mips/pr35802.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -march=74kc -mgp32" } */
+/* { dg-options "-march=74kc -mgp32" } */
__thread int x __attribute__((tls_model("initial-exec")));
__thread int y __attribute__((tls_model("initial-exec")));
diff --git a/gcc/testsuite/gcc.target/mips/pr45074.c b/gcc/testsuite/gcc.target/mips/pr45074.c
index ba578c8..129467f 100644
--- a/gcc/testsuite/gcc.target/mips/pr45074.c
+++ b/gcc/testsuite/gcc.target/mips/pr45074.c
@@ -1,4 +1,4 @@
-/* { dg-options "-mhard-float -mgp32 -O" } */
+/* { dg-options "-mhard-float -mgp32" } */
register double g __asm__("$f20");
NOMIPS16 void
diff --git a/gcc/testsuite/gcc.target/mips/pr54240.c b/gcc/testsuite/gcc.target/mips/pr54240.c
index e932d5e..65088b5 100644
--- a/gcc/testsuite/gcc.target/mips/pr54240.c
+++ b/gcc/testsuite/gcc.target/mips/pr54240.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-phiopt-details isa>=4" } */
+/* { dg-options "-fdump-tree-phiopt-details isa>=4" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-O1" } { "" } } */
typedef struct s {
int v;
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c
index b271e2b..b5ffd0a 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mabi=64 -mr10k-cache-barrier=store" } */
+/* { dg-options "-mabi=64 -mr10k-cache-barrier=store" } */
/* Test that stores to uncached addresses do not get unnecessary
cache barriers. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
index 68c4b7e..1b8c6f4a 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
@@ -1,18 +1,20 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store -mips4 -mbranch-likely -mno-abicalls" } */
-int bar (int);
+/* { dg-options "-mr10k-cache-barrier=store -mips4 -mbranch-likely -mno-abicalls" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
+
+unsigned char *bar (int);
/* Test that code after a branch-likely does not get an unnecessary
cache barrier. */
NOMIPS16 void
-foo (int n, int *x)
+foo (unsigned char *n)
{
do
- n = bar (n * 4 + 1);
+ n = bar (*n + 1);
while (n);
/* The preceding branch should be a branch likely, with the shift as
its delay slot. We therefore don't need a cache barrier here. */
- x[0] = 0;
+ n[0] = 0;
}
/* { dg-final { scan-assembler-not "\tcache\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c
index d1082d9..936c258 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
+/* { dg-options "-mr10k-cache-barrier=store -mno-abicalls" } */
/* Test that loads are not unnecessarily protected. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c
index d416391..34a1248 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=load-store -mno-abicalls" } */
+/* { dg-options "-mr10k-cache-barrier=load-store -mno-abicalls" } */
/* Test that loads are correctly protected. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c
index 3e955ab..ee9c84b 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store" } */
+/* { dg-options "-mr10k-cache-barrier=store" } */
/* Test that indirect calls are protected. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c
index 1fdcee0..92c37f4 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c
@@ -1,4 +1,4 @@
-/* { dg-options "(-mips16) -O2 -mr10k-cache-barrier=store" } */
+/* { dg-options "(-mips16) -mr10k-cache-barrier=store -ffat-lto-objects" } */
/* Test that indirect calls are protected. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c
index a3e7f0d..da655cd 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c
@@ -1,2 +1,2 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store -mips2" } */
+/* { dg-options "-mr10k-cache-barrier=store -mips2" } */
/* { dg-error "requires.*cache.*instruction" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c
index 3d06d0d..ebf45f9 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mabi=64 -mr10k-cache-barrier=store" } */
+/* { dg-options "-mabi=64 -mr10k-cache-barrier=store" } */
/* Test that stores to constant cached addresses are protected
by cache barriers. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c
index be2c7fb..9e56789 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
+/* { dg-options "-mr10k-cache-barrier=store -mno-abicalls" } */
/* Test that in-range stores to the frame are not protected by
cache barriers. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c
index 9dd23ea..7780460 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
+/* { dg-options "-mr10k-cache-barrier=store -mno-abicalls" } */
void bar (int *x);
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c
index a6b53a9..757beef 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls -mabi=64" } */
+/* { dg-options "-mr10k-cache-barrier=store -mno-abicalls -mabi=64" } */
/* Test that in-range stores to static objects do not get an unnecessary
cache barrier. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c
index c52caaa..32dd78c 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store -mabi=64" } */
+/* { dg-options "-mr10k-cache-barrier=store -mabi=64" } */
int x[4];
void bar (void);
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c
index 3f73865..3a7a253 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store -mno-abicalls" } */
+/* { dg-options "-mr10k-cache-barrier=store -mno-abicalls" } */
void bar1 (void);
void bar2 (void);
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c
index 394bf48..121b907 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store -G8" } */
+/* { dg-options "-mr10k-cache-barrier=store -G8" } */
/* Test that in-range stores to components of static objects
do not get an unnecessary cache barrier. */
diff --git a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
index 67b52f9..2f83968 100644
--- a/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
+++ b/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mr10k-cache-barrier=store -G8" } */
+/* { dg-options "-mr10k-cache-barrier=store -G8" } */
/* Test that out-of-range stores to components of static objects
are protected by a cache barrier. */
diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-1.c b/gcc/testsuite/gcc.target/mips/rsqrt-1.c
index f0a9b3a..16df42d 100644
--- a/gcc/testsuite/gcc.target/mips/rsqrt-1.c
+++ b/gcc/testsuite/gcc.target/mips/rsqrt-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -ffast-math isa=4 -mhard-float -mgp64" } */
+/* { dg-options "-ffast-math isa=4 -mhard-float -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "rsqrt.d" } } */
/* { dg-final { scan-assembler "rsqrt.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-2.c b/gcc/testsuite/gcc.target/mips/rsqrt-2.c
index bc81039..eae515d 100644
--- a/gcc/testsuite/gcc.target/mips/rsqrt-2.c
+++ b/gcc/testsuite/gcc.target/mips/rsqrt-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -ffast-math isa=4 -mhard-float -mgp64" } */
+/* { dg-options "-ffast-math isa=4 -mhard-float -mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "rsqrt.d" } } */
/* { dg-final { scan-assembler "rsqrt.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-3.c b/gcc/testsuite/gcc.target/mips/rsqrt-3.c
index cfa771ef..f862490 100644
--- a/gcc/testsuite/gcc.target/mips/rsqrt-3.c
+++ b/gcc/testsuite/gcc.target/mips/rsqrt-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 isa=4 -mhard-float" } */
+/* { dg-options "isa=4 -mhard-float" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "rsqrt.d" } } */
/* { dg-final { scan-assembler-not "rsqrt.s" } } */
diff --git a/gcc/testsuite/gcc.target/mips/rsqrt-4.c b/gcc/testsuite/gcc.target/mips/rsqrt-4.c
index 726c3540..6b6577e 100644
--- a/gcc/testsuite/gcc.target/mips/rsqrt-4.c
+++ b/gcc/testsuite/gcc.target/mips/rsqrt-4.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -ffast-math -mips64 -mhard-float -mgp32" } */
+/* { dg-options "-ffast-math -mips64 -mhard-float -mgp32" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\trsqrt.d\t" } } */
/* { dg-final { scan-assembler-times "\trsqrt.s\t" 2 } } */
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-1.c b/gcc/testsuite/gcc.target/mips/save-restore-1.c
index f6a854e..b3ce1b1 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-1.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-1.c
@@ -1,5 +1,5 @@
/* Check that we can use the save instruction to save varargs. */
-/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */
+/* { dg-options "(-mips16) isa_rev>=1 -mabi=32" } */
#include <stdarg.h>
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-2.c b/gcc/testsuite/gcc.target/mips/save-restore-2.c
index 4a11bc2..899460f 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-2.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-2.c
@@ -1,5 +1,6 @@
/* Check that we can use the save instruction to save spilled arguments. */
-/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */
+/* { dg-options "(-mips16) isa_rev>=1 -mabi=32" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
MIPS16 void
foo (int *a, int b, int c)
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-3.c b/gcc/testsuite/gcc.target/mips/save-restore-3.c
index d45fe50..5d7aeb0e 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-3.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-3.c
@@ -1,6 +1,6 @@
/* Check that we can use the save instruction to save spilled arguments
when the argument save area is out of range of a direct load or store. */
-/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */
+/* { dg-options "(-mips16) isa_rev>=1 -mabi=32" } */
void bar (int *);
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-4.c b/gcc/testsuite/gcc.target/mips/save-restore-4.c
index ef7722b..25f3e61 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-4.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-4.c
@@ -1,5 +1,6 @@
/* Check that we can use the save instruction to save $16, $17 and $31. */
-/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 -O2" } */
+/* { dg-options "(-mips16) isa_rev>=1 -mabi=32" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
void bar (void);
diff --git a/gcc/testsuite/gcc.target/mips/save-restore-5.c b/gcc/testsuite/gcc.target/mips/save-restore-5.c
index 0dd823a..b0dc1f0 100644
--- a/gcc/testsuite/gcc.target/mips/save-restore-5.c
+++ b/gcc/testsuite/gcc.target/mips/save-restore-5.c
@@ -1,5 +1,5 @@
/* Check that we don't try to save the same register twice. */
-/* { dg-options "(-mips16) isa_rev>=1 -mgp32 -O2" } */
+/* { dg-options "(-mips16) isa_rev>=1 -mgp32" } */
int bar (int, int, int, int);
void frob (void);
diff --git a/gcc/testsuite/gcc.target/mips/sb1-1.c b/gcc/testsuite/gcc.target/mips/sb1-1.c
index 819938f..c3fb22a 100644
--- a/gcc/testsuite/gcc.target/mips/sb1-1.c
+++ b/gcc/testsuite/gcc.target/mips/sb1-1.c
@@ -1,10 +1,11 @@
/* Test SB-1 v2sf extensions. */
/* { dg-do compile } */
-/* { dg-options "-march=sb1 -O2 -mpaired-single -mgp64 -ffast-math" } */
+/* { dg-options "-march=sb1 -mpaired-single -mgp64 -ffast-math" } */
+/* { dg-skip-if "rsqrt code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "div.ps" } } */
/* { dg-final { scan-assembler "recip.ps" } } */
/* { dg-final { scan-assembler "sqrt.ps" } } */
-/* { dg-final { scan-assembler "rsqrt.ps" } } */
+/* { dg-final { scan-assembler "rsqrt.ps" } } */
typedef float v2sf __attribute__ ((vector_size (8)));
diff --git a/gcc/testsuite/gcc.target/mips/scc-1.c b/gcc/testsuite/gcc.target/mips/scc-1.c
index d0dc040..17599a8 100644
--- a/gcc/testsuite/gcc.target/mips/scc-1.c
+++ b/gcc/testsuite/gcc.target/mips/scc-1.c
@@ -1,4 +1,5 @@
-/* { dg-options "(-mips16) -O isa_rev>=1" } */
+/* { dg-options "(-mips16) isa_rev>=1" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times {slt \$2,\$5,\$4} 1 } } */
/* { dg-final { scan-assembler-times {sltu \$2,\$5,\$4} 1 } } */
diff --git a/gcc/testsuite/gcc.target/mips/scc-2.c b/gcc/testsuite/gcc.target/mips/scc-2.c
index 440c28b..132da7b 100644
--- a/gcc/testsuite/gcc.target/mips/scc-2.c
+++ b/gcc/testsuite/gcc.target/mips/scc-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -mgp64" } */
+/* { dg-options "-mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "and\t\|andi\t\|ext\t\|sll\t\|srl\t" } } */
/* { dg-final { scan-assembler-times "slt\t\|slti?u\t" 12 } } */
diff --git a/gcc/testsuite/gcc.target/mips/scc-3.c b/gcc/testsuite/gcc.target/mips/scc-3.c
index b295e78..a07a85a 100644
--- a/gcc/testsuite/gcc.target/mips/scc-3.c
+++ b/gcc/testsuite/gcc.target/mips/scc-3.c
@@ -1,4 +1,5 @@
-/* { dg-options "(-mips16) -O -mabi=o64" } */
+/* { dg-options "(-mips16) -mabi=o64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "and\t\|andi\t\|ext\t\|sll\t\|srl\t" } } */
/* { dg-final { scan-assembler-times "slt\t\|slti?u\t" 8 } } */
diff --git a/gcc/testsuite/gcc.target/mips/scc-4.c b/gcc/testsuite/gcc.target/mips/scc-4.c
index 4046066..05ba667 100644
--- a/gcc/testsuite/gcc.target/mips/scc-4.c
+++ b/gcc/testsuite/gcc.target/mips/scc-4.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -mabi=o64" } */
+/* { dg-options "-mabi=o64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler "slt\t" } } */
/* { dg-final { scan-assembler "sltu\t\|xor\t\|xori\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/sdata-1.c b/gcc/testsuite/gcc.target/mips/sdata-1.c
index f9a25cd..646a449 100644
--- a/gcc/testsuite/gcc.target/mips/sdata-1.c
+++ b/gcc/testsuite/gcc.target/mips/sdata-1.c
@@ -20,9 +20,9 @@
/* { dg-final { scan-assembler-not "%gp_?rel\\(g8b\\)" } } */
/* { dg-final { scan-assembler "%gp_?rel\\(g8c\\)" } } */
-static int l4a;
-static int l4b = 1;
-static int __attribute__((section(".sdata"))) l4c;
+static volatile int l4a;
+static volatile int l4b = 1;
+static volatile int __attribute__((section(".sdata"))) l4c;
extern int e4a;
extern int __attribute__((section(".sdata"))) e4b;
int __attribute__((common)) c4;
@@ -30,9 +30,9 @@ int __attribute__((nocommon)) g4a;
int g4b = 1;
int __attribute__((section(".sdata"))) g4c = 2;
-static int l8a[2];
-static int l8b[2] = { 1, 2 };
-static int __attribute__((section(".sdata"))) l8c[2];
+static volatile int l8a[2];
+static volatile int l8b[2] = { 1, 2 };
+static volatile int __attribute__((section(".sdata"))) l8c[2];
extern int e8a[2];
extern int __attribute__((section(".sdata"))) e8b[2];
int __attribute__((common)) c8[2];
diff --git a/gcc/testsuite/gcc.target/mips/sdata-2.c b/gcc/testsuite/gcc.target/mips/sdata-2.c
index 5a9fff2..fe55120 100644
--- a/gcc/testsuite/gcc.target/mips/sdata-2.c
+++ b/gcc/testsuite/gcc.target/mips/sdata-2.c
@@ -20,9 +20,9 @@
/* { dg-final { scan-assembler-not "%gp_?rel\\(g8b\\)" } } */
/* { dg-final { scan-assembler "%gp_?rel\\(g8c\\)" } } */
-static int l4a;
-static int l4b = 1;
-static int __attribute__((section(".sdata"))) l4c;
+static volatile int l4a;
+static volatile int l4b = 1;
+static volatile int __attribute__((section(".sdata"))) l4c;
extern int e4a;
extern int __attribute__((section(".sdata"))) e4b;
int __attribute__((common)) c4;
@@ -30,9 +30,9 @@ int __attribute__((nocommon)) g4a;
int g4b = 1;
int __attribute__((section(".sdata"))) g4c = 2;
-static int l8a[2];
-static int l8b[2] = { 1, 2 };
-static int __attribute__((section(".sdata"))) l8c[2];
+static volatile int l8a[2];
+static volatile int l8b[2] = { 1, 2 };
+static volatile int __attribute__((section(".sdata"))) l8c[2];
extern int e8a[2];
extern int __attribute__((section(".sdata"))) e8b[2];
int __attribute__((common)) c8[2];
diff --git a/gcc/testsuite/gcc.target/mips/sdata-3.c b/gcc/testsuite/gcc.target/mips/sdata-3.c
index f232324..6705ee3 100644
--- a/gcc/testsuite/gcc.target/mips/sdata-3.c
+++ b/gcc/testsuite/gcc.target/mips/sdata-3.c
@@ -20,9 +20,9 @@
/* { dg-final { scan-assembler-not "%gp_?rel\\(g8b\\)" } } */
/* { dg-final { scan-assembler "%gp_?rel\\(g8c\\)" } } */
-static int l4a;
-static int l4b = 1;
-static int __attribute__((section(".sdata"))) l4c;
+static volatile int l4a;
+static volatile int l4b = 1;
+static volatile int __attribute__((section(".sdata"))) l4c;
extern int e4a;
extern int __attribute__((section(".sdata"))) e4b;
int __attribute__((common)) c4;
@@ -30,9 +30,9 @@ int __attribute__((nocommon)) g4a;
int g4b = 1;
int __attribute__((section(".sdata"))) g4c = 2;
-static int l8a[2];
-static int l8b[2] = { 1, 2 };
-static int __attribute__((section(".sdata"))) l8c[2];
+static volatile int l8a[2];
+static volatile int l8b[2] = { 1, 2 };
+static volatile int __attribute__((section(".sdata"))) l8c[2];
extern int e8a[2];
extern int __attribute__((section(".sdata"))) e8b[2];
int __attribute__((common)) c8[2];
diff --git a/gcc/testsuite/gcc.target/mips/sdata-4.c b/gcc/testsuite/gcc.target/mips/sdata-4.c
index 7786c6d..82cfa61 100644
--- a/gcc/testsuite/gcc.target/mips/sdata-4.c
+++ b/gcc/testsuite/gcc.target/mips/sdata-4.c
@@ -3,9 +3,9 @@
/* { dg-final { scan-assembler-not "%gp_?rel" } } */
/* { dg-final { scan-assembler-not "\\\$gp" } } */
-static int l4a;
-static int l4b = 1;
-static int __attribute__((section(".sdata"))) l4c;
+static volatile int l4a;
+static volatile int l4b = 1;
+static volatile int __attribute__((section(".sdata"))) l4c;
extern int e4a;
extern int __attribute__((section(".sdata"))) e4b;
int __attribute__((common)) c4;
@@ -13,9 +13,9 @@ int __attribute__((nocommon)) g4a;
int g4b = 1;
int __attribute__((section(".sdata"))) g4c = 2;
-static int l8a[2];
-static int l8b[2] = { 1, 2 };
-static int __attribute__((section(".sdata"))) l8c[2];
+static volatile int l8a[2];
+static volatile int l8b[2] = { 1, 2 };
+static volatile int __attribute__((section(".sdata"))) l8c[2];
extern int e8a[2];
extern int __attribute__((section(".sdata"))) e8b[2];
int __attribute__((common)) c8[2];
diff --git a/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c b/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c
index 92f4625..ce64b13 100644
--- a/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c
+++ b/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O -msmartmips" } */
+/* { dg-options "-msmartmips" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 int scaled_indexed_word_load (int a[], int b)
{
diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c
index e9735b2..6300f8f 100644
--- a/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c
+++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -msmartmips" } */
+/* { dg-options "-msmartmips" } */
NOMIPS16 int rotate_left (unsigned a, unsigned s)
{
diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c
index ac4c94d..2d7c5dc 100644
--- a/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c
+++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -msmartmips" } */
+/* { dg-options "-msmartmips" } */
NOMIPS16 int rotate_right (unsigned a, unsigned s)
{
diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c
index 360f3c4..5e51aa3 100644
--- a/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c
+++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -msmartmips" } */
+/* { dg-options "-msmartmips" } */
#define S 13
diff --git a/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c b/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c
index b8b8294..fc88a9a 100644
--- a/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c
+++ b/gcc/testsuite/gcc.target/mips/smartmips-ror-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -msmartmips" } */
+/* { dg-options "-msmartmips" } */
#define S 13
diff --git a/gcc/testsuite/gcc.target/mips/soft-float-1.c b/gcc/testsuite/gcc.target/mips/soft-float-1.c
index 4c45646..855ff8e 100644
--- a/gcc/testsuite/gcc.target/mips/soft-float-1.c
+++ b/gcc/testsuite/gcc.target/mips/soft-float-1.c
@@ -1,7 +1,8 @@
-/* { dg-options "-msoft-float" } */
+/* { dg-options "-msoft-float -ffat-lto-objects" } */
void
foo (void)
{
register float x asm ("$f0"); /* { dg-error "cannot be accessed" } */
+ asm volatile ("" : "=r" (x));
}
diff --git a/gcc/testsuite/gcc.target/mips/stack-1.c b/gcc/testsuite/gcc.target/mips/stack-1.c
index 3d49545..6385215 100644
--- a/gcc/testsuite/gcc.target/mips/stack-1.c
+++ b/gcc/testsuite/gcc.target/mips/stack-1.c
@@ -1,4 +1,3 @@
-/* { dg-options "-O2" } */
/* { dg-final { scan-assembler "addiu\t(\\\$sp,)?\\\$sp,\[1-9\]" } } */
/* { dg-final { scan-assembler "\tlw\t" } } */
/* { dg-final { scan-assembler-not "addiu\t(\\\$sp,)?\\\$sp,\[1-9\].*\tlw\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/timode-1.c b/gcc/testsuite/gcc.target/mips/timode-1.c
index fc087ee..606fee0 100644
--- a/gcc/testsuite/gcc.target/mips/timode-1.c
+++ b/gcc/testsuite/gcc.target/mips/timode-1.c
@@ -1,4 +1,5 @@
/* { dg-options "-mgp64" } */
+/* { dg-skip-if "we deliberately use calls when optimizing for size" { *-*-* } { "-Os" } { "" } } */
typedef int int128_t __attribute__((mode(TI)));
typedef unsigned int uint128_t __attribute__((mode(TI)));
@@ -22,44 +23,84 @@ volatile int amount = 4;
volatile uint128_t result;
int
-main (void)
+test1 (void)
{
result = a * b;
if (result != c)
return 1;
+ return 0;
+}
+int
+test2 (void)
+{
result = c + d;
if (result != e)
return 1;
+ return 0;
+}
+int
+test3 (void)
+{
result = e - d;
if (result != c)
return 1;
+ return 0;
+}
+int
+test4 (void)
+{
result = d & e;
if (result != f)
return 1;
+ return 0;
+}
+int
+test5 (void)
+{
result = d ^ e;
if (result != g)
return 1;
+ return 0;
+}
+int
+test6 (void)
+{
result = d | e;
if (result != h)
return 1;
+ return 0;
+}
+int
+test7 (void)
+{
result = g << amount;
if (result != i)
return 1;
+ return 0;
+}
+int
+test8 (void)
+{
result = g >> amount;
if (result != j)
return 1;
+ return 0;
+}
+int
+test9 (void)
+{
result = (int128_t) g >> amount;
if (result != k)
return 1;
-
return 0;
}
+
/* { dg-final { scan-assembler-not "\tjal" } } */
diff --git a/gcc/testsuite/gcc.target/mips/timode-2.c b/gcc/testsuite/gcc.target/mips/timode-2.c
index 9f3e43c..b6b8ea9 100644
--- a/gcc/testsuite/gcc.target/mips/timode-2.c
+++ b/gcc/testsuite/gcc.target/mips/timode-2.c
@@ -23,43 +23,96 @@ volatile int amount = 4;
volatile uint128_t result;
int
-main (void)
+test1 (void)
{
result = a * b;
if (result != c)
return 1;
+ return 0;
+}
+int
+test2 (void)
+{
result = c + d;
if (result != e)
return 1;
+ return 0;
+}
+int
+test3 (void)
+{
result = e - d;
if (result != c)
return 1;
+ return 0;
+}
+int
+test4 (void)
+{
result = d & e;
if (result != f)
return 1;
+ return 0;
+}
+int
+test5 (void)
+{
result = d ^ e;
if (result != g)
return 1;
+ return 0;
+}
+int
+test6 (void)
+{
result = d | e;
if (result != h)
return 1;
+ return 0;
+}
+int
+test7 (void)
+{
result = g << amount;
if (result != i)
return 1;
+ return 0;
+}
+int
+test8 (void)
+{
result = g >> amount;
if (result != j)
return 1;
+ return 0;
+}
+int
+test9 (void)
+{
result = (int128_t) g >> amount;
if (result != k)
return 1;
-
return 0;
}
+
+int
+main (void)
+{
+ return (test1 ()
+ | test2 ()
+ | test3 ()
+ | test4 ()
+ | test5 ()
+ | test6 ()
+ | test7 ()
+ | test8 ()
+ | test9 ());
+}
diff --git a/gcc/testsuite/gcc.target/mips/truncate-1.c b/gcc/testsuite/gcc.target/mips/truncate-1.c
index 7e54aae..d12ebd3 100644
--- a/gcc/testsuite/gcc.target/mips/truncate-1.c
+++ b/gcc/testsuite/gcc.target/mips/truncate-1.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp64" } */
+/* { dg-options "-mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
#define TEST(ID, TYPE, SHIFT) \
int __attribute__((nomips16)) \
diff --git a/gcc/testsuite/gcc.target/mips/truncate-2.c b/gcc/testsuite/gcc.target/mips/truncate-2.c
index 423dc26..06ab58f 100644
--- a/gcc/testsuite/gcc.target/mips/truncate-2.c
+++ b/gcc/testsuite/gcc.target/mips/truncate-2.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O -mgp64" } */
+/* { dg-options "-mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
#define TEST(ID, TYPE, SHIFT) \
int NOMIPS16 \
diff --git a/gcc/testsuite/gcc.target/mips/truncate-3.c b/gcc/testsuite/gcc.target/mips/truncate-3.c
index 90f2c77..fcb69e4 100644
--- a/gcc/testsuite/gcc.target/mips/truncate-3.c
+++ b/gcc/testsuite/gcc.target/mips/truncate-3.c
@@ -1,5 +1,6 @@
/* Remove redundant operations in truncate's operand. */
-/* { dg-options "-O -mgp64" } */
+/* { dg-options "-mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tandi?\t" } } */
f (long long d)
diff --git a/gcc/testsuite/gcc.target/mips/truncate-4.c b/gcc/testsuite/gcc.target/mips/truncate-4.c
index 4c78368..cda90e0 100644
--- a/gcc/testsuite/gcc.target/mips/truncate-4.c
+++ b/gcc/testsuite/gcc.target/mips/truncate-4.c
@@ -1,5 +1,6 @@
/* The and is performed in DI mode so there is no need for truncation. */
-/* { dg-options "-O -mgp64" } */
+/* { dg-options "-mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tsll\t" } } */
NOMIPS16 unsigned long long
diff --git a/gcc/testsuite/gcc.target/mips/truncate-5.c b/gcc/testsuite/gcc.target/mips/truncate-5.c
index 6cdb7f7..f2a1875 100644
--- a/gcc/testsuite/gcc.target/mips/truncate-5.c
+++ b/gcc/testsuite/gcc.target/mips/truncate-5.c
@@ -1,6 +1,7 @@
/* If we AND in DI mode (i.e. replace the order of TRUNCATE and AND) then we
can remove the TRUNCATE. */
-/* { dg-options "-O -mgp64" } */
+/* { dg-options "-mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tsll\t\[^\n\]*,0" } } */
struct s
diff --git a/gcc/testsuite/gcc.target/mips/truncate-6.c b/gcc/testsuite/gcc.target/mips/truncate-6.c
index 1ccd6c5..178d4ba 100644
--- a/gcc/testsuite/gcc.target/mips/truncate-6.c
+++ b/gcc/testsuite/gcc.target/mips/truncate-6.c
@@ -1,7 +1,8 @@
/* setup_incoming_promotions should detect x to be already sign-extended due
to PROMOTE_MODE. Thus the truncation should be removed by combine. Based
on gcc.c-torture/execute/pr34070-2.c. */
-/* { dg-options "-O -mgp64" } */
+/* { dg-options "-mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-not "\tsll\t\[^\n\]*,0" } } */
NOMIPS16 int f(unsigned int x, int n, int *p)
diff --git a/gcc/testsuite/gcc.target/mips/unaligned-1.c b/gcc/testsuite/gcc.target/mips/unaligned-1.c
index 23b6c8c..34565fd 100644
--- a/gcc/testsuite/gcc.target/mips/unaligned-1.c
+++ b/gcc/testsuite/gcc.target/mips/unaligned-1.c
@@ -1,4 +1,5 @@
-/* { dg-options "-O2 -mgp64" } */
+/* { dg-options "-mgp64" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
/* { dg-final { scan-assembler-times "sdl\t" 1 } } */
/* { dg-final { scan-assembler-times "sdr\t" 1 } } */
/* { dg-final { scan-assembler-times "ldl\t" 1 } } */
diff --git a/gcc/testsuite/gcc.target/mips/vr-mult-1.c b/gcc/testsuite/gcc.target/mips/vr-mult-1.c
index 2ed4f2f..db9ae34 100644
--- a/gcc/testsuite/gcc.target/mips/vr-mult-1.c
+++ b/gcc/testsuite/gcc.target/mips/vr-mult-1.c
@@ -1,7 +1,8 @@
/* Make sure that mul/addu is preferred over mtlo/macc and that mul/subu
is preferred over mtlo/msac. */
/* { dg-do compile } */
-/* { dg-options "-O2 -march=vr5400" } */
+/* { dg-options "-march=vr5400 -fpeephole2" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 int f1 (int a, int b, int c) { return a + b * c; }
NOMIPS16 int f2 (int a, int b, int c) { return a - b * c; }
/* { dg-final { scan-assembler "\tmul\t.*\tmul\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/vr-mult-2.c b/gcc/testsuite/gcc.target/mips/vr-mult-2.c
index 7e8be5e..58bdc08 100644
--- a/gcc/testsuite/gcc.target/mips/vr-mult-2.c
+++ b/gcc/testsuite/gcc.target/mips/vr-mult-2.c
@@ -1,7 +1,8 @@
/* Make sure that mul/addu is preferred over mtlo/macc and that mul/subu
is preferred over mtlo/msac. */
/* { dg-do compile } */
-/* { dg-options "-O2 -march=vr5500" } */
+/* { dg-options "-march=vr5500 -fpeephole2" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
NOMIPS16 int f1 (int a, int b, int c) { return a + b * c; }
NOMIPS16 int f2 (int a, int b, int c) { return a - b * c; }
/* { dg-final { scan-assembler "\tmul\t.*\tmul\t" } } */