Add disassembler tests for mips64r6 platform. There are no functional changes.
authorVladimir Medic <Vladimir.Medic@imgtec.com>
Thu, 15 Jan 2015 14:18:12 +0000 (14:18 +0000)
committerVladimir Medic <Vladimir.Medic@imgtec.com>
Thu, 15 Jan 2015 14:18:12 +0000 (14:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226166 91177308-0d34-0410-b5e6-96231b3b80d8

test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt [new file with mode: 0644]
test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt [new file with mode: 0644]
test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt [new file with mode: 0644]

diff --git a/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt b/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
new file mode 100644 (file)
index 0000000..8c6f2d3
--- /dev/null
@@ -0,0 +1,159 @@
+# RUN: llvm-mc %s -disassemble -triple=mipsel-unknown-linux -mcpu=mips64r6 | FileCheck %s
+
+0x04 0x00 0x42 0x30    #CHECK: andi $2, $2, 4
+0x19 0x00 0x80 0xec    #CHECK: addiupc $4, 100
+0x0a 0x00 0x29 0x25    #CHECK: addiu $9, $9, 10
+0xa0 0x22 0x43 0x7c    #CHECK: align $4, $2, $3, 2
+0x38 0x00 0x7f 0xec    #CHECK: aluipc $3, 56
+0xe9 0xff 0x62 0x3c    #CHECK: aui $3, $2, -23
+0xff 0xff 0x7e 0xec    #CHECK: auipc $3, -1
+0x9b 0x14 0x11 0x04    #CHECK: bal 21104
+0xb8 0x96 0x37 0xe8    #CHECK: balc 14572256
+0xb8 0x96 0x37 0xc8    #CHECK: bc 14572256
+0x01 0x00 0x20 0x45    #CHECK: bc1eqz $f0, 8
+0x01 0x00 0x3f 0x45    #CHECK: bc1eqz $f31, 8
+0x01 0x00 0xa0 0x45    #CHECK: bc1nez $f0, 8
+0x01 0x00 0xbf 0x45    #CHECK: bc1nez $f31, 8
+0x02 0x00 0x20 0x49    #CHECK: bc2eqz $0, 12
+0x02 0x00 0x3f 0x49    #CHECK: bc2eqz $31, 12
+0x02 0x00 0xa0 0x49    #CHECK: bc2nez $0, 12
+0x02 0x00 0xbf 0x49    #CHECK: bc2nez $31, 12
+0x40 0x00 0xa6 0x20    #CHECK: beqc $5, $6, 256
+0x4d 0x01 0x02 0x20    #CHECK: beqzalc $2, 1332
+0x40 0x00 0xa6 0x60    #CHECK: bnec $5, $6, 256
+0x4d 0x01 0x02 0x60    #CHECK: bnezalc $2, 1332
+0x90 0x46 0xa0 0xd8    #CHECK: beqzc $5, 72256
+0x40 0x00 0x43 0x58    #CHECK: bgec $2, $3, 256
+0x40 0x00 0x43 0x18    #CHECK: bgeuc $2, $3, 256
+0x4d 0x01 0x42 0x18    #CHECK: bgezalc $2, 1332
+0x90 0x46 0xa0 0xf8    #CHECK: bnezc $5, 72256
+0x40 0x00 0xa5 0x5c    #CHECK: bltzc $5, 256
+0x40 0x00 0xa5 0x58    #CHECK: bgezc $5, 256
+0x4d 0x01 0x02 0x1c    #CHECK: bgtzalc $2, 1332
+0x40 0x00 0x05 0x58    #CHECK: blezc $5, 256
+0x4d 0x01 0x42 0x1c    #CHECK: bltzalc $2, 1332
+0x40 0x00 0x05 0x5c    #CHECK: bgtzc $5, 256
+0x20 0x20 0x02 0x7c    #CHECK: bitswap $4, $2
+0x4d 0x01 0x02 0x18    #CHECK: blezalc $2, 1332
+0x40 0x00 0xa6 0x5c    #CHECK: bltc $5, $6, 256
+0x40 0x00 0xa6 0x1c    #CHECK: bltuc $5, $6, 256
+0x01 0x00 0x00 0x60    #CHECK: bnvc $zero, $zero, 4
+0x01 0x00 0x40 0x60    #CHECK: bnvc $2, $zero, 4
+0x01 0x00 0x82 0x60    #CHECK: bnvc $4, $2, 4
+0x01 0x00 0x00 0x20    #CHECK: bovc $zero, $zero, 4
+0x01 0x00 0x40 0x20    #CHECK: bovc $2, $zero, 4
+0x01 0x00 0x82 0x20    #CHECK: bovc $4, $2, 4
+0x80 0x18 0x84 0x46    #CHECK: cmp.af.s $f2, $f3, $f4
+0x80 0x18 0xa4 0x46    #CHECK: cmp.af.d $f2, $f3, $f4
+0x81 0x18 0x84 0x46    #CHECK: cmp.un.s $f2, $f3, $f4
+0x81 0x18 0xa4 0x46    #CHECK: cmp.un.d $f2, $f3, $f4
+0x82 0x18 0x84 0x46    #CHECK: cmp.eq.s $f2, $f3, $f4
+0x82 0x18 0xa4 0x46    #CHECK: cmp.eq.d $f2, $f3, $f4
+0x83 0x18 0x84 0x46    #CHECK: cmp.ueq.s $f2, $f3, $f4
+0x83 0x18 0xa4 0x46    #CHECK: cmp.ueq.d $f2, $f3, $f4
+0x84 0x18 0x84 0x46    #CHECK: cmp.lt.s  $f2, $f3, $f4
+0x84 0x18 0xa4 0x46    #CHECK: cmp.lt.d  $f2, $f3, $f4
+0x85 0x18 0x84 0x46    #CHECK: cmp.ult.s $f2, $f3, $f4
+0x85 0x18 0xa4 0x46    #CHECK: cmp.ult.d $f2, $f3, $f4
+0x86 0x18 0x84 0x46    #CHECK: cmp.le.s  $f2, $f3, $f4
+0x86 0x18 0xa4 0x46    #CHECK: cmp.le.d  $f2, $f3, $f4
+0x87 0x18 0x84 0x46    #CHECK: cmp.ule.s $f2, $f3, $f4
+0x87 0x18 0xa4 0x46    #CHECK: cmp.ule.d $f2, $f3, $f4
+0x88 0x18 0x84 0x46    #CHECK: cmp.saf.s $f2, $f3, $f4
+0x88 0x18 0xa4 0x46    #CHECK: cmp.saf.d $f2, $f3, $f4
+0x89 0x18 0x84 0x46    #CHECK: cmp.sun.s $f2, $f3, $f4
+0x89 0x18 0xa4 0x46    #CHECK: cmp.sun.d $f2, $f3, $f4
+0x8a 0x18 0x84 0x46    #CHECK: cmp.seq.s $f2, $f3, $f4
+0x8a 0x18 0xa4 0x46    #CHECK: cmp.seq.d $f2, $f3, $f4
+0x8b 0x18 0x84 0x46    #CHECK: cmp.sueq.s $f2, $f3, $f4
+0x8b 0x18 0xa4 0x46    #CHECK: cmp.sueq.d $f2, $f3, $f4
+0x8c 0x18 0x84 0x46    #CHECK: cmp.slt.s $f2, $f3, $f4
+0x8c 0x18 0xa4 0x46    #CHECK: cmp.slt.d $f2, $f3, $f4
+0x8d 0x18 0x84 0x46    #CHECK: cmp.sult.s $f2, $f3, $f4
+0x8d 0x18 0xa4 0x46    #CHECK: cmp.sult.d $f2, $f3, $f4
+0x8e 0x18 0x84 0x46    #CHECK: cmp.sle.s $f2, $f3, $f4
+0x8e 0x18 0xa4 0x46    #CHECK: cmp.sle.d $f2, $f3, $f4
+0x8f 0x18 0x84 0x46    #CHECK: cmp.sule.s $f2, $f3, $f4
+0x8f 0x18 0xa4 0x46    #CHECK: cmp.sule.d $f2, $f3, $f4
+0x64 0x23 0x43 0x7c    #CHECK: dalign $4, $2, $3, 5
+0x34 0x12 0x62 0x74    #CHECK: daui $3, $2, 4660
+0x78 0x56 0x66 0x04    #CHECK: dahi $3, 22136
+0x24 0x20 0x02 0x7c    #CHECK: dbitswap $4, $2
+0x00 0x60 0x7e 0x41    #CHECK: di  $fp
+0x00 0x60 0x60 0x41    #CHECK: di
+0x9a 0x10 0x64 0x00    #CHECK: div $2, $3, $4
+0x9b 0x10 0x64 0x00    #CHECK: divu $2, $3, $4
+0x20 0x60 0x6e 0x41    #CHECK: ei  $14
+0x20 0x60 0x60 0x41    #CHECK: ei
+0xda 0x10 0x64 0x00    #CHECK: mod $2, $3, $4
+0xdb 0x10 0x64 0x00    #CHECK: modu $2, $3, $4
+0x9e 0x10 0x64 0x00    #CHECK: ddiv $2, $3, $4
+0x9f 0x10 0x64 0x00    #CHECK: ddivu $2, $3, $4
+0xde 0x10 0x64 0x00    #CHECK: dmod $2, $3, $4
+0xdf 0x10 0x64 0x00    #CHECK: dmodu $2, $3, $4
+0xc5 0x10 0x64 0x00    #CHECK: lsa  $2, $3, $4, 3
+0xd5 0x10 0x64 0x00    #CHECK: dlsa $2, $3, $4, 3
+0x48 0x3c 0x58 0xec    #CHECK: ldpc $2, 123456
+0x43 0x00 0x48 0xec    #CHECK: lwpc $2, 268
+0x43 0x00 0x50 0xec    #CHECK: lwupc $2, 268
+0x98 0x10 0x64 0x00    #CHECK: mul $2, $3, $4
+0xd8 0x10 0x64 0x00    #CHECK: muh $2, $3, $4
+0x99 0x10 0x64 0x00    #CHECK: mulu $2, $3, $4
+0xd9 0x10 0x64 0x00    #CHECK: muhu $2, $3, $4
+0x9c 0x10 0x64 0x00    #CHECK: dmul $2, $3, $4
+0xdc 0x10 0x64 0x00    #CHECK: dmuh $2, $3, $4
+0x9d 0x10 0x64 0x00    #CHECK: dmulu $2, $3, $4
+0xdd 0x10 0x64 0x00    #CHECK: dmuhu $2, $3, $4
+0x98 0x18 0x04 0x46    #CHECK: maddf.s $f2, $f3, $f4
+0x98 0x18 0x24 0x46    #CHECK: maddf.d $f2, $f3, $f4
+0x99 0x18 0x04 0x46    #CHECK: msubf.s $f2, $f3, $f4
+0x99 0x18 0x24 0x46    #CHECK: msubf.d $f2, $f3, $f4
+0x10 0x08 0x22 0x46    #CHECK: sel.d $f0, $f1, $f2
+0x10 0x08 0x02 0x46    #CHECK: sel.s $f0, $f1, $f2
+0x35 0x10 0x64 0x00    #CHECK: seleqz $2, $3, $4
+0x37 0x10 0x64 0x00    #CHECK: selnez $2, $3, $4
+0x1d 0x10 0x04 0x46    #CHECK: max.s $f0, $f2, $f4
+0x1d 0x10 0x24 0x46    #CHECK: max.d $f0, $f2, $f4
+0x1c 0x10 0x04 0x46    #CHECK: min.s $f0, $f2, $f4
+0x1c 0x10 0x24 0x46    #CHECK: min.d $f0, $f2, $f4
+0x1f 0x10 0x04 0x46    #CHECK: maxa.s $f0, $f2, $f4
+0x1f 0x10 0x24 0x46    #CHECK: maxa.d $f0, $f2, $f4
+0x1e 0x10 0x04 0x46    #CHECK: mina.s $f0, $f2, $f4
+0x1e 0x10 0x24 0x46    #CHECK: mina.d $f0, $f2, $f4
+0x04 0x00 0x42 0x34    #CHECK: ori $2, $2, 4
+0x14 0x10 0x04 0x46    #CHECK: seleqz.s $f0, $f2, $f4
+0x14 0x10 0x24 0x46    #CHECK: seleqz.d $f0, $f2, $f4
+0x17 0x10 0x04 0x46    #CHECK: selnez.s $f0, $f2, $f4
+0x17 0x10 0x24 0x46    #CHECK: selnez.d $f0, $f2, $f4
+0x9a 0x20 0x00 0x46    #CHECK: rint.s $f2, $f4
+0x9a 0x20 0x20 0x46    #CHECK: rint.d $f2, $f4
+0x9b 0x20 0x00 0x46    #CHECK: class.s $f2, $f4
+0x9b 0x20 0x20 0x46    #CHECK: class.d $f2, $f4
+0x09 0x04 0x80 0x00    #CHECK: jr.hb $4
+0x09 0xfc 0x80 0x00    #CHECK: jalr.hb $4
+0x09 0x24 0xa0 0x00    #CHECK: jalr.hb $4, $5
+0xb6 0xb3 0x42 0x7e    #CHECK: ll $2, -153($18)
+0x37 0x38 0xe0 0x7f    #CHECK: lld $zero, 112($ra)
+0x26 0xec 0x6f 0x7e    #CHECK: sc $15, -40($19)
+0xa7 0xe6 0xaf 0x7f    #CHECK: scd $15, -51($sp)
+0x51 0x58 0xa0 0x00    #CHECK: clo $11, $5
+0x50 0xe8 0x80 0x03    #CHECK: clz $sp, $gp
+0x53 0x90 0xc0 0x00    #CHECK: dclo $18, $6
+0x52 0x80 0x20 0x03    #CHECK: dclz $16, $25
+0x40 0x00 0x00 0x00    #CHECK: ssnop
+0x0e 0x00 0x00 0x00    #CHECK: sdbbp
+0x8e 0x08 0x00 0x00    #CHECK: sdbbp 34
+0x0f 0x00 0x00 0x00    #CHECK: sync
+0x4f 0x00 0x00 0x00    #CHECK: sync 1
+0x34 0x00 0x03 0x00    #CHECK: teq $zero, $3
+0x34 0x9b 0xa7 0x00    #CHECK: teq $5, $7, 620
+0x30 0x00 0xea 0x00    #CHECK: tge $7, $10
+0x30 0x55 0xb3 0x00    #CHECK: tge $5, $19, 340
+0x31 0x00 0xdc 0x02    #CHECK: tgeu $22, $gp
+0xf1 0x5e 0x8e 0x02    #CHECK: tgeu $20, $14, 379
+0x32 0x00 0xed 0x01    #CHECK: tlt $15, $13
+0x72 0x21 0x53 0x00    #CHECK: tlt $2, $19, 133
+0x33 0x00 0x70 0x01    #CHECK: tltu $11, $16
+0x33 0xfe 0x1d 0x02    #CHECK: tltu $16, $sp, 1016
+0x36 0x00 0xd1 0x00    #CHECK: tne $6, $17
+0x76 0xdd 0xe8 0x00    #CHECK: tne $7, $8, 885
diff --git a/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt b/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
new file mode 100644 (file)
index 0000000..a210e6a
--- /dev/null
@@ -0,0 +1,159 @@
+# RUN: llvm-mc %s -disassemble -triple=mips-unknown-linux -mcpu=mips64r6 | FileCheck %s
+
+0x30 0x42 0x00 0x04    #CHECK: andi $2, $2, 4
+0xec 0x80 0x00 0x19    #CHECK: addiupc $4, 100
+0x25 0x29 0x00 0x0a    #CHECK: addiu $9, $9, 10
+0x7c 0x43 0x22 0xa0    #CHECK: align $4, $2, $3, 2
+0xec 0x7f 0x00 0x38    #CHECK: aluipc $3, 56
+0x3c 0x62 0xff 0xe9    #CHECK: aui $3, $2, -23
+0xec 0x7e 0xff 0xff    #CHECK: auipc $3, -1
+0x04 0x11 0x14 0x9b    #CHECK: bal 21104
+0xe8 0x37 0x96 0xb8    #CHECK: balc 14572256
+0xc8 0x37 0x96 0xb8    #CHECK: bc 14572256
+0x45 0x20 0x00 0x01    #CHECK: bc1eqz $f0, 8
+0x45 0x3f 0x00 0x01    #CHECK: bc1eqz $f31, 8
+0x45 0xa0 0x00 0x01    #CHECK: bc1nez $f0, 8
+0x45 0xbf 0x00 0x01    #CHECK: bc1nez $f31, 8
+0x49 0x20 0x00 0x02    #CHECK: bc2eqz $0, 12
+0x49 0x3f 0x00 0x02    #CHECK: bc2eqz $31, 12
+0x49 0xa0 0x00 0x02    #CHECK: bc2nez $0, 12
+0x49 0xbf 0x00 0x02    #CHECK: bc2nez $31, 12
+0x20 0xa6 0x00 0x40    #CHECK: beqc $5, $6, 256
+0x20 0x02 0x01 0x4d    #CHECK: beqzalc $2, 1332
+0x60 0xa6 0x00 0x40    #CHECK: bnec $5, $6, 256
+0x60 0x02 0x01 0x4d    #CHECK: bnezalc $2, 1332
+0xd8 0xa0 0x46 0x90    #CHECK: beqzc $5, 72256
+0x58 0x43 0x00 0x40    #CHECK: bgec $2, $3, 256
+0x18 0x43 0x00 0x40    #CHECK: bgeuc $2, $3, 256
+0x18 0x42 0x01 0x4d    #CHECK: bgezalc $2, 1332
+0xf8 0xa0 0x46 0x90    #CHECK: bnezc $5, 72256
+0x5c 0xa5 0x00 0x40    #CHECK: bltzc $5, 256
+0x58 0xa5 0x00 0x40    #CHECK: bgezc $5, 256
+0x1c 0x02 0x01 0x4d    #CHECK: bgtzalc $2, 1332
+0x58 0x05 0x00 0x40    #CHECK: blezc $5, 256
+0x1c 0x42 0x01 0x4d    #CHECK: bltzalc $2, 1332
+0x5c 0x05 0x00 0x40    #CHECK: bgtzc $5, 256
+0x7c 0x02 0x20 0x20    #CHECK: bitswap $4, $2
+0x18 0x02 0x01 0x4d    #CHECK: blezalc $2, 1332
+0x5c 0xa6 0x00 0x40    #CHECK: bltc $5, $6, 256
+0x1c 0xa6 0x00 0x40    #CHECK: bltuc $5, $6, 256
+0x60 0x00 0x00 0x01    #CHECK: bnvc $zero, $zero, 4
+0x60 0x40 0x00 0x01    #CHECK: bnvc $2, $zero, 4
+0x60 0x82 0x00 0x01    #CHECK: bnvc $4, $2, 4
+0x20 0x00 0x00 0x01    #CHECK: bovc $zero, $zero, 4
+0x20 0x40 0x00 0x01    #CHECK: bovc $2, $zero, 4
+0x20 0x82 0x00 0x01    #CHECK: bovc $4, $2, 4
+0x46 0x84 0x18 0x80    #CHECK: cmp.af.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x80    #CHECK: cmp.af.d $f2, $f3, $f4
+0x46 0x84 0x18 0x81    #CHECK: cmp.un.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x81    #CHECK: cmp.un.d $f2, $f3, $f4
+0x46 0x84 0x18 0x82    #CHECK: cmp.eq.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x82    #CHECK: cmp.eq.d $f2, $f3, $f4
+0x46 0x84 0x18 0x83    #CHECK: cmp.ueq.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x83    #CHECK: cmp.ueq.d $f2, $f3, $f4
+0x46 0x84 0x18 0x84    #CHECK: cmp.lt.s  $f2, $f3, $f4
+0x46 0xa4 0x18 0x84    #CHECK: cmp.lt.d  $f2, $f3, $f4
+0x46 0x84 0x18 0x85    #CHECK: cmp.ult.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x85    #CHECK: cmp.ult.d $f2, $f3, $f4
+0x46 0x84 0x18 0x86    #CHECK: cmp.le.s  $f2, $f3, $f4
+0x46 0xa4 0x18 0x86    #CHECK: cmp.le.d  $f2, $f3, $f4
+0x46 0x84 0x18 0x87    #CHECK: cmp.ule.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x87    #CHECK: cmp.ule.d $f2, $f3, $f4
+0x46 0x84 0x18 0x88    #CHECK: cmp.saf.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x88    #CHECK: cmp.saf.d $f2, $f3, $f4
+0x46 0x84 0x18 0x89    #CHECK: cmp.sun.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x89    #CHECK: cmp.sun.d $f2, $f3, $f4
+0x46 0x84 0x18 0x8a    #CHECK: cmp.seq.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x8a    #CHECK: cmp.seq.d $f2, $f3, $f4
+0x46 0x84 0x18 0x8b    #CHECK: cmp.sueq.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x8b    #CHECK: cmp.sueq.d $f2, $f3, $f4
+0x46 0x84 0x18 0x8c    #CHECK: cmp.slt.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x8c    #CHECK: cmp.slt.d $f2, $f3, $f4
+0x46 0x84 0x18 0x8d    #CHECK: cmp.sult.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x8d    #CHECK: cmp.sult.d $f2, $f3, $f4
+0x46 0x84 0x18 0x8e    #CHECK: cmp.sle.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x8e    #CHECK: cmp.sle.d $f2, $f3, $f4
+0x46 0x84 0x18 0x8f    #CHECK: cmp.sule.s $f2, $f3, $f4
+0x46 0xa4 0x18 0x8f    #CHECK: cmp.sule.d $f2, $f3, $f4
+0x7c 0x43 0x23 0x64    #CHECK: dalign $4, $2, $3, 5
+0x74 0x62 0x12 0x34    #CHECK: daui $3, $2, 4660
+0x04 0x66 0x56 0x78    #CHECK: dahi $3, 22136
+0x7c 0x02 0x20 0x24    #CHECK: dbitswap $4, $2
+0x41 0x7e 0x60 0x00    #CHECK: di  $fp
+0x41 0x60 0x60 0x00    #CHECK: di
+0x00 0x64 0x10 0x9a    #CHECK: div $2, $3, $4
+0x00 0x64 0x10 0x9b    #CHECK: divu $2, $3, $4
+0x41 0x6e 0x60 0x20    #CHECK: ei  $14
+0x41 0x60 0x60 0x20    #CHECK: ei
+0x00 0x64 0x10 0xda    #CHECK: mod $2, $3, $4
+0x00 0x64 0x10 0xdb    #CHECK: modu $2, $3, $4
+0x00 0x64 0x10 0x9e    #CHECK: ddiv $2, $3, $4
+0x00 0x64 0x10 0x9f    #CHECK: ddivu $2, $3, $4
+0x00 0x64 0x10 0xde    #CHECK: dmod $2, $3, $4
+0x00 0x64 0x10 0xdf    #CHECK: dmodu $2, $3, $4
+0x00 0x64 0x10 0xc5    #CHECK: lsa  $2, $3, $4, 3
+0x00 0x64 0x10 0xd5    #CHECK: dlsa $2, $3, $4, 3
+0xec 0x58 0x3c 0x48    #CHECK: ldpc $2, 123456
+0xec 0x48 0x00 0x43    #CHECK: lwpc $2, 268
+0xec 0x50 0x00 0x43    #CHECK: lwupc $2, 268
+0x00 0x64 0x10 0x98    #CHECK: mul $2, $3, $4
+0x00 0x64 0x10 0xd8    #CHECK: muh $2, $3, $4
+0x00 0x64 0x10 0x99    #CHECK: mulu $2, $3, $4
+0x00 0x64 0x10 0xd9    #CHECK: muhu $2, $3, $4
+0x00 0x64 0x10 0x9c    #CHECK: dmul $2, $3, $4
+0x00 0x64 0x10 0xdc    #CHECK: dmuh $2, $3, $4
+0x00 0x64 0x10 0x9d    #CHECK: dmulu $2, $3, $4
+0x00 0x64 0x10 0xdd    #CHECK: dmuhu $2, $3, $4
+0x46 0x04 0x18 0x98    #CHECK: maddf.s $f2, $f3, $f4
+0x46 0x24 0x18 0x98    #CHECK: maddf.d $f2, $f3, $f4
+0x46 0x04 0x18 0x99    #CHECK: msubf.s $f2, $f3, $f4
+0x46 0x24 0x18 0x99    #CHECK: msubf.d $f2, $f3, $f4
+0x46 0x22 0x08 0x10    #CHECK: sel.d $f0, $f1, $f2
+0x46 0x02 0x08 0x10    #CHECK: sel.s $f0, $f1, $f2
+0x00 0x64 0x10 0x35    #CHECK: seleqz $2, $3, $4
+0x00 0x64 0x10 0x37    #CHECK: selnez $2, $3, $4
+0x46 0x04 0x10 0x1d    #CHECK: max.s $f0, $f2, $f4
+0x46 0x24 0x10 0x1d    #CHECK: max.d $f0, $f2, $f4
+0x46 0x04 0x10 0x1c    #CHECK: min.s $f0, $f2, $f4
+0x46 0x24 0x10 0x1c    #CHECK: min.d $f0, $f2, $f4
+0x46 0x04 0x10 0x1f    #CHECK: maxa.s $f0, $f2, $f4
+0x46 0x24 0x10 0x1f    #CHECK: maxa.d $f0, $f2, $f4
+0x46 0x04 0x10 0x1e    #CHECK: mina.s $f0, $f2, $f4
+0x46 0x24 0x10 0x1e    #CHECK: mina.d $f0, $f2, $f4
+0x34 0x42 0x00 0x04    #CHECK: ori $2, $2, 4
+0x46 0x04 0x10 0x14    #CHECK: seleqz.s $f0, $f2, $f4
+0x46 0x24 0x10 0x14    #CHECK: seleqz.d $f0, $f2, $f4
+0x46 0x04 0x10 0x17    #CHECK: selnez.s $f0, $f2, $f4
+0x46 0x24 0x10 0x17    #CHECK: selnez.d $f0, $f2, $f4
+0x46 0x00 0x20 0x9a    #CHECK: rint.s $f2, $f4
+0x46 0x20 0x20 0x9a    #CHECK: rint.d $f2, $f4
+0x46 0x00 0x20 0x9b    #CHECK: class.s $f2, $f4
+0x46 0x20 0x20 0x9b    #CHECK: class.d $f2, $f4
+0x00 0x80 0x04 0x09    #CHECK: jr.hb $4
+0x00 0x80 0xfc 0x09    #CHECK: jalr.hb $4
+0x00 0xa0 0x24 0x09    #CHECK: jalr.hb $4, $5
+0x7e 0x42 0xb3 0xb6    #CHECK: ll $2, -153($18)
+0x7f 0xe0 0x38 0x37    #CHECK: lld $zero, 112($ra)
+0x7e 0x6f 0xec 0x26    #CHECK: sc $15, -40($19)
+0x7f 0xaf 0xe6 0xa7    #CHECK: scd $15, -51($sp)
+0x00 0xa0 0x58 0x51    #CHECK: clo $11, $5
+0x03 0x80 0xe8 0x50    #CHECK: clz $sp, $gp
+0x00 0xc0 0x90 0x53    #CHECK: dclo $18, $6
+0x03 0x20 0x80 0x52    #CHECK: dclz $16, $25
+0x00 0x00 0x00 0x40    #CHECK: ssnop
+0x00 0x00 0x00 0x0e    #CHECK: sdbbp
+0x00 0x00 0x08 0x8e    #CHECK: sdbbp 34
+0x00 0x00 0x00 0x0f    #CHECK: sync
+0x00 0x00 0x00 0x4f    #CHECK: sync 1
+0x00 0x03 0x00 0x34    #CHECK: teq $zero, $3
+0x00 0xa7 0x9b 0x34    #CHECK: teq $5, $7, 620
+0x00 0xea 0x00 0x30    #CHECK: tge $7, $10
+0x00 0xb3 0x55 0x30    #CHECK: tge $5, $19, 340
+0x02 0xdc 0x00 0x31    #CHECK: tgeu $22, $gp
+0x02 0x8e 0x5e 0xf1    #CHECK: tgeu $20, $14, 379
+0x01 0xed 0x00 0x32    #CHECK: tlt $15, $13
+0x00 0x53 0x21 0x72    #CHECK: tlt $2, $19, 133
+0x01 0x70 0x00 0x33    #CHECK: tltu $11, $16
+0x02 0x1d 0xfe 0x33    #CHECK: tltu $16, $sp, 1016
+0x00 0xd1 0x00 0x36    #CHECK: tne $6, $17
+0x00 0xe8 0xdd 0x76    #CHECK: tne $7, $8, 885
diff --git a/test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt b/test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt
new file mode 100644 (file)
index 0000000..1a7c588
--- /dev/null
@@ -0,0 +1,30 @@
+# Instructions that should be valid but currently fail for known reasons (e.g.
+# they aren't implemented yet).
+#
+# RUN: not llvm-mc %s -disassemble -triple=mips-unknown-linux -mcpu=mips64r6 | not FileCheck %s
+# XFAIL: *
+
+
+0x20 0x40 0x00 0x01    # CHECK: bovc $0, $2, 4
+0x20 0x82 0x00 0x01    # CHECK: bovc $2, $4, 4
+0x60 0x40 0x00 0x01    # CHECK: bnvc $0, $2, 4
+0x60 0x82 0x00 0x01    # CHECK: bnvc $2, $4, 4
+0x20 0xc0 0x00 0x40    # CHECK: beqc $6, $zero, 256
+0x20 0xa0 0x00 0x40    # CHECK: beqc $5, $zero, 256
+0x20 0xa6 0x00 0x40    # CHECK: beqc $5, $6, 256
+0x60 0xc0 0x00 0x40    # CHECK: bnec $6, $zero, 256
+0x60 0xa0 0x00 0x40    # CHECK: bnec $5, $zero, 256
+0x60 0xa6 0x00 0x40    # CHECK: bnec $5, $6, 256
+0x7c 0xa1 0x04 0x25    # CHECK: cache 1, 8($5)
+0xf8 0x05 0x01 0x00    # CHECK: jialc $5, 256
+0xd8 0x05 0x01 0x00    # CHECK: jic $5, 256
+0x7c 0xa1 0x04 0x35    # CHECK: pref 1, 8($5)
+0x49 0xc8 0x0d 0x43    # CHECK: ldc2 $8, -701($1)
+0x49 0x52 0x34 0xb7    # CHECK: lwc2 $18, -841($6)
+0x49 0xf4 0x92 0x75    # CHECK: sdc2 $20, 629($18)
+0x49 0x79 0x81 0x30    # CHECK: swc2 $25, 304($16)
+0x64 0x58 0x46 0x9f    # CHECK: daddiu $24, $2, 18079
+0x66 0x73 0x69 0x3f    # CHECK: daddiu $19, $19, 26943
+0x65 0x6f 0xec 0x5f    # CHECK: daddiu $15, $11, -5025
+0x65 0xce 0x11 0xea    # CHECK: daddiu $14, $14, 4586
+0x04 0x7e 0xab 0xcd    # CHECK: dati $3, 43981