2013-10-18 Chao-ying Fu <Chao-ying.Fu@imgtec.com>
authorChao-ying Fu <fu@mips.com>
Fri, 18 Oct 2013 21:16:57 +0000 (21:16 +0000)
committerChao-ying Fu <fu@mips.com>
Fri, 18 Oct 2013 21:16:57 +0000 (21:16 +0000)
* gas/mips/micromips@msa-branch.d, gas/mips/msa-branch.d,
gas/mips/msa-branch.s: New.
* gas/mips/mips.exp: Run new tests.

gas/testsuite/ChangeLog
gas/testsuite/gas/mips/micromips@msa-branch.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips.exp
gas/testsuite/gas/mips/msa-branch.d [new file with mode: 0644]
gas/testsuite/gas/mips/msa-branch.s [new file with mode: 0644]

index 7116862b5999c2c01083549b499dfbc2abbc7973..da0afe8764330ec533a467d3961222c15cdfc8c0 100644 (file)
@@ -1,3 +1,9 @@
+2013-10-18  Chao-ying Fu  <Chao-ying.Fu@imgtec.com>
+
+       * gas/mips/micromips@msa-branch.d, gas/mips/msa-branch.d,
+       gas/mips/msa-branch.s: New.
+       * gas/mips/mips.exp: Run new tests.
+
 2013-10-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
        * gas/arm/neon-cov.d: Adjust output.
diff --git a/gas/testsuite/gas/mips/micromips@msa-branch.d b/gas/testsuite/gas/mips/micromips@msa-branch.d
new file mode 100644 (file)
index 0000000..6c8fdb7
--- /dev/null
@@ -0,0 +1,319 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -Mmsa
+#name: MSA branch reorder
+#as: -32 -mmsa
+#source: msa-branch.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8300 fffe    bz\.b   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8301 fffe    bz\.b   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8302 fffe    bz\.b   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8300 fffe    bz\.b   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8301 fffe    bz\.b   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8302 fffe    bz\.b   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8300 fffe    bz\.b   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8301 fffe    bz\.b   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8302 fffe    bz\.b   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8320 fffe    bz\.h   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8321 fffe    bz\.h   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8322 fffe    bz\.h   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8320 fffe    bz\.h   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8321 fffe    bz\.h   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8322 fffe    bz\.h   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8320 fffe    bz\.h   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8321 fffe    bz\.h   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8322 fffe    bz\.h   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8340 fffe    bz\.w   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8341 fffe    bz\.w   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8342 fffe    bz\.w   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8340 fffe    bz\.w   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8341 fffe    bz\.w   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8342 fffe    bz\.w   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8340 fffe    bz\.w   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8341 fffe    bz\.w   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8342 fffe    bz\.w   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8360 fffe    bz\.d   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8361 fffe    bz\.d   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8362 fffe    bz\.d   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8360 fffe    bz\.d   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8361 fffe    bz\.d   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8362 fffe    bz\.d   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8360 fffe    bz\.d   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8361 fffe    bz\.d   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8362 fffe    bz\.d   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8160 fffe    bz\.v   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8161 fffe    bz\.v   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8162 fffe    bz\.v   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8160 fffe    bz\.v   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8161 fffe    bz\.v   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8162 fffe    bz\.v   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8160 fffe    bz\.v   \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8161 fffe    bz\.v   \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8162 fffe    bz\.v   \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8380 fffe    bnz\.b  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8381 fffe    bnz\.b  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 8382 fffe    bnz\.b  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8380 fffe    bnz\.b  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8381 fffe    bnz\.b  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 8382 fffe    bnz\.b  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8380 fffe    bnz\.b  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 8381 fffe    bnz\.b  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 8382 fffe    bnz\.b  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 83a0 fffe    bnz\.h  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 83a1 fffe    bnz\.h  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 83a2 fffe    bnz\.h  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 83a0 fffe    bnz\.h  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 83a1 fffe    bnz\.h  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 83a2 fffe    bnz\.h  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 83a0 fffe    bnz\.h  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 83a1 fffe    bnz\.h  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 83a2 fffe    bnz\.h  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 83c0 fffe    bnz\.w  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 83c1 fffe    bnz\.w  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 83c2 fffe    bnz\.w  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 83c0 fffe    bnz\.w  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 83c1 fffe    bnz\.w  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 83c2 fffe    bnz\.w  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 83c0 fffe    bnz\.w  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 83c1 fffe    bnz\.w  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 83c2 fffe    bnz\.w  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 83e0 fffe    bnz\.d  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 83e1 fffe    bnz\.d  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 83e2 fffe    bnz\.d  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 83e0 fffe    bnz\.d  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 83e1 fffe    bnz\.d  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 83e2 fffe    bnz\.d  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 83e0 fffe    bnz\.d  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 83e1 fffe    bnz\.d  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 83e2 fffe    bnz\.d  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 81e0 fffe    bnz\.v  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 81e1 fffe    bnz\.v  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 81e2 fffe    bnz\.v  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5aa2 080e    fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 81e0 fffe    bnz\.v  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 81e1 fffe    bnz\.v  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 81e2 fffe    bnz\.v  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5441 0030    add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 81e0 fffe    bnz\.v  \$w0,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 81e1 fffe    bnz\.v  \$w1,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 81e2 fffe    bnz\.v  \$w2,[0-9a-f]+ <[^>]*>
+[      ]*[0-9a-f]+: R_MICROMIPS_PC16_S1        test
+[0-9a-f]+ <[^>]*> 5482 0130    add\.d  \$f0,\$f2,\$f4
+       \.\.\.
index 2da71dccc6d162f71d8eea972939ff0561f6dfaa..d632c4f49f670db4a2578bea631d25edec669e0d 100644 (file)
@@ -1151,4 +1151,5 @@ if { [istarget mips*-*-vxworks*] } {
     run_dump_test_arches "msa"         [mips_arch_list_matching mips32r2]
     run_dump_test_arches "msa64"       [mips_arch_list_matching mips64r2]
     run_dump_test_arches "msa-relax"   [mips_arch_list_matching mips32r2]
+    run_dump_test_arches "msa-branch"  [mips_arch_list_matching mips32r2]
 }
diff --git a/gas/testsuite/gas/mips/msa-branch.d b/gas/testsuite/gas/mips/msa-branch.d
new file mode 100644 (file)
index 0000000..567a2a4
--- /dev/null
@@ -0,0 +1,228 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -Mmsa
+#name: MSA branch reorder
+#as: -32 -mmsa
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4700fffe     bz\.b   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4701fffc     bz\.b   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4702fffa     bz\.b   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4700fff7     bz\.b   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4701fff5     bz\.b   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4702fff3     bz\.b   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4700fff0     bz\.b   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4701ffed     bz\.b   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4702ffeb     bz\.b   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4720ffe8     bz\.h   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4721ffe6     bz\.h   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4722ffe4     bz\.h   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4720ffe1     bz\.h   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4721ffdf     bz\.h   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4722ffdd     bz\.h   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4720ffda     bz\.h   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4721ffd7     bz\.h   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4722ffd5     bz\.h   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4740ffd2     bz\.w   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4741ffd0     bz\.w   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4742ffce     bz\.w   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4740ffcb     bz\.w   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4741ffc9     bz\.w   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4742ffc7     bz\.w   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4740ffc4     bz\.w   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4741ffc1     bz\.w   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4742ffbf     bz\.w   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4760ffbc     bz\.d   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4761ffba     bz\.d   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4762ffb8     bz\.d   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4760ffb5     bz\.d   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4761ffb3     bz\.d   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4762ffb1     bz\.d   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4760ffae     bz\.d   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4761ffab     bz\.d   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4762ffa9     bz\.d   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4560ffa6     bz\.v   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4561ffa4     bz\.v   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4562ffa2     bz\.v   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4560ff9f     bz\.v   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4561ff9d     bz\.v   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4562ff9b     bz\.v   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4560ff98     bz\.v   \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4561ff95     bz\.v   \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4562ff93     bz\.v   \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4780ff90     bnz\.b  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4781ff8e     bnz\.b  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4782ff8c     bnz\.b  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4780ff89     bnz\.b  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4781ff87     bnz\.b  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4782ff85     bnz\.b  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4780ff82     bnz\.b  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4781ff7f     bnz\.b  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 4782ff7d     bnz\.b  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47a0ff7a     bnz\.h  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 47a1ff78     bnz\.h  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47a2ff76     bnz\.h  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47a0ff73     bnz\.h  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 47a1ff71     bnz\.h  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47a2ff6f     bnz\.h  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47a0ff6c     bnz\.h  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47a1ff69     bnz\.h  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 47a2ff67     bnz\.h  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47c0ff64     bnz\.w  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 47c1ff62     bnz\.w  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47c2ff60     bnz\.w  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47c0ff5d     bnz\.w  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 47c1ff5b     bnz\.w  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47c2ff59     bnz\.w  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47c0ff56     bnz\.w  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47c1ff53     bnz\.w  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 47c2ff51     bnz\.w  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47e0ff4e     bnz\.d  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 47e1ff4c     bnz\.d  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47e2ff4a     bnz\.d  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47e0ff47     bnz\.d  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 47e1ff45     bnz\.d  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47e2ff43     bnz\.d  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47e0ff40     bnz\.d  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47e1ff3d     bnz\.d  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 47e2ff3b     bnz\.d  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 45e0ff38     bnz\.v  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 45e1ff36     bnz\.v  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 45e2ff34     bnz\.v  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 7aa2081c     fsune\.d        \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 45e0ff31     bnz\.v  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 45e1ff2f     bnz\.v  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 45e2ff2d     bnz\.v  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46020800     add\.s  \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 45e0ff2a     bnz\.v  \$w0,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 45e1ff27     bnz\.v  \$w1,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 00000000     nop
+[0-9a-f]+ <[^>]*> 45e2ff25     bnz\.v  \$w2,[0-9a-f]+ <test>
+[0-9a-f]+ <[^>]*> 46241000     add\.d  \$f0,\$f2,\$f4
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/msa-branch.s b/gas/testsuite/gas/mips/msa-branch.s
new file mode 100644 (file)
index 0000000..acf4b20
--- /dev/null
@@ -0,0 +1,196 @@
+       .text   
+       .set    reorder
+test:
+       fsune.d $w0,$w1,$w2
+       bz.b    $w0, test
+       fsune.d $w0,$w1,$w2
+       bz.b    $w1, test
+       fsune.d $w0,$w1,$w2
+       bz.b    $w2, test
+       add.s   $f0,$f1,$f2
+       bz.b    $w0, test
+       add.s   $f0,$f1,$f2
+       bz.b    $w1, test
+       add.s   $f0,$f1,$f2
+       bz.b    $w2, test
+       add.d   $f0,$f2,$f4
+       bz.b    $w0, test
+       add.d   $f0,$f2,$f4
+       bz.b    $w1, test
+       add.d   $f0,$f2,$f4
+       bz.b    $w2, test
+
+       fsune.d $w0,$w1,$w2
+       bz.h    $w0, test
+       fsune.d $w0,$w1,$w2
+       bz.h    $w1, test
+       fsune.d $w0,$w1,$w2
+       bz.h    $w2, test
+       add.s   $f0,$f1,$f2
+       bz.h    $w0, test
+       add.s   $f0,$f1,$f2
+       bz.h    $w1, test
+       add.s   $f0,$f1,$f2
+       bz.h    $w2, test
+       add.d   $f0,$f2,$f4
+       bz.h    $w0, test
+       add.d   $f0,$f2,$f4
+       bz.h    $w1, test
+       add.d   $f0,$f2,$f4
+       bz.h    $w2, test
+
+       fsune.d $w0,$w1,$w2
+       bz.w    $w0, test
+       fsune.d $w0,$w1,$w2
+       bz.w    $w1, test
+       fsune.d $w0,$w1,$w2
+       bz.w    $w2, test
+       add.s   $f0,$f1,$f2
+       bz.w    $w0, test
+       add.s   $f0,$f1,$f2
+       bz.w    $w1, test
+       add.s   $f0,$f1,$f2
+       bz.w    $w2, test
+       add.d   $f0,$f2,$f4
+       bz.w    $w0, test
+       add.d   $f0,$f2,$f4
+       bz.w    $w1, test
+       add.d   $f0,$f2,$f4
+       bz.w    $w2, test
+
+       fsune.d $w0,$w1,$w2
+       bz.d    $w0, test
+       fsune.d $w0,$w1,$w2
+       bz.d    $w1, test
+       fsune.d $w0,$w1,$w2
+       bz.d    $w2, test
+       add.s   $f0,$f1,$f2
+       bz.d    $w0, test
+       add.s   $f0,$f1,$f2
+       bz.d    $w1, test
+       add.s   $f0,$f1,$f2
+       bz.d    $w2, test
+       add.d   $f0,$f2,$f4
+       bz.d    $w0, test
+       add.d   $f0,$f2,$f4
+       bz.d    $w1, test
+       add.d   $f0,$f2,$f4
+       bz.d    $w2, test
+
+       fsune.d $w0,$w1,$w2
+       bz.v    $w0, test
+       fsune.d $w0,$w1,$w2
+       bz.v    $w1, test
+       fsune.d $w0,$w1,$w2
+       bz.v    $w2, test
+       add.s   $f0,$f1,$f2
+       bz.v    $w0, test
+       add.s   $f0,$f1,$f2
+       bz.v    $w1, test
+       add.s   $f0,$f1,$f2
+       bz.v    $w2, test
+       add.d   $f0,$f2,$f4
+       bz.v    $w0, test
+       add.d   $f0,$f2,$f4
+       bz.v    $w1, test
+       add.d   $f0,$f2,$f4
+       bz.v    $w2, test
+
+       fsune.d $w0,$w1,$w2
+       bnz.b   $w0, test
+       fsune.d $w0,$w1,$w2
+       bnz.b   $w1, test
+       fsune.d $w0,$w1,$w2
+       bnz.b   $w2, test
+       add.s   $f0,$f1,$f2
+       bnz.b   $w0, test
+       add.s   $f0,$f1,$f2
+       bnz.b   $w1, test
+       add.s   $f0,$f1,$f2
+       bnz.b   $w2, test
+       add.d   $f0,$f2,$f4
+       bnz.b   $w0, test
+       add.d   $f0,$f2,$f4
+       bnz.b   $w1, test
+       add.d   $f0,$f2,$f4
+       bnz.b   $w2, test
+
+       fsune.d $w0,$w1,$w2
+       bnz.h   $w0, test
+       fsune.d $w0,$w1,$w2
+       bnz.h   $w1, test
+       fsune.d $w0,$w1,$w2
+       bnz.h   $w2, test
+       add.s   $f0,$f1,$f2
+       bnz.h   $w0, test
+       add.s   $f0,$f1,$f2
+       bnz.h   $w1, test
+       add.s   $f0,$f1,$f2
+       bnz.h   $w2, test
+       add.d   $f0,$f2,$f4
+       bnz.h   $w0, test
+       add.d   $f0,$f2,$f4
+       bnz.h   $w1, test
+       add.d   $f0,$f2,$f4
+       bnz.h   $w2, test
+
+       fsune.d $w0,$w1,$w2
+       bnz.w   $w0, test
+       fsune.d $w0,$w1,$w2
+       bnz.w   $w1, test
+       fsune.d $w0,$w1,$w2
+       bnz.w   $w2, test
+       add.s   $f0,$f1,$f2
+       bnz.w   $w0, test
+       add.s   $f0,$f1,$f2
+       bnz.w   $w1, test
+       add.s   $f0,$f1,$f2
+       bnz.w   $w2, test
+       add.d   $f0,$f2,$f4
+       bnz.w   $w0, test
+       add.d   $f0,$f2,$f4
+       bnz.w   $w1, test
+       add.d   $f0,$f2,$f4
+       bnz.w   $w2, test
+
+       fsune.d $w0,$w1,$w2
+       bnz.d   $w0, test
+       fsune.d $w0,$w1,$w2
+       bnz.d   $w1, test
+       fsune.d $w0,$w1,$w2
+       bnz.d   $w2, test
+       add.s   $f0,$f1,$f2
+       bnz.d   $w0, test
+       add.s   $f0,$f1,$f2
+       bnz.d   $w1, test
+       add.s   $f0,$f1,$f2
+       bnz.d   $w2, test
+       add.d   $f0,$f2,$f4
+       bnz.d   $w0, test
+       add.d   $f0,$f2,$f4
+       bnz.d   $w1, test
+       add.d   $f0,$f2,$f4
+       bnz.d   $w2, test
+
+       fsune.d $w0,$w1,$w2
+       bnz.v   $w0, test
+       fsune.d $w0,$w1,$w2
+       bnz.v   $w1, test
+       fsune.d $w0,$w1,$w2
+       bnz.v   $w2, test
+       add.s   $f0,$f1,$f2
+       bnz.v   $w0, test
+       add.s   $f0,$f1,$f2
+       bnz.v   $w1, test
+       add.s   $f0,$f1,$f2
+       bnz.v   $w2, test
+       add.d   $f0,$f2,$f4
+       bnz.v   $w0, test
+       add.d   $f0,$f2,$f4
+       bnz.v   $w1, test
+       add.d   $f0,$f2,$f4
+       bnz.v   $w2, test
+
+# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
+       .align  2
+       .space  8