summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChao-ying Fu <fu@mips.com>2013-10-18 21:16:57 +0000
committerChao-ying Fu <fu@mips.com>2013-10-18 21:16:57 +0000
commit69b80460d889aed2554b6eac75774af7448aad15 (patch)
tree30bfbd0deb6d399f969236498d35723153947773
parent2098bacc79e49403992cd7c618a0df5f3eaf2afa (diff)
downloadbinutils-redhat-69b80460d889aed2554b6eac75774af7448aad15.tar.gz
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.
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/mips/micromips@msa-branch.d319
-rw-r--r--gas/testsuite/gas/mips/mips.exp1
-rw-r--r--gas/testsuite/gas/mips/msa-branch.d228
-rw-r--r--gas/testsuite/gas/mips/msa-branch.s196
5 files changed, 750 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 7116862b59..da0afe8764 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -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
index 0000000000..6c8fdb7b15
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@msa-branch.d
@@ -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
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 2da71dccc6..d632c4f49f 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -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
index 0000000000..567a2a4c94
--- /dev/null
+++ b/gas/testsuite/gas/mips/msa-branch.d
@@ -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
index 0000000000..acf4b20bb0
--- /dev/null
+++ b/gas/testsuite/gas/mips/msa-branch.s
@@ -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