# RUN: llvm-mc --disassemble %s -triple powerpc64-unknown-linux-gnu \
# RUN:   -mcpu=future | FileCheck %s

# RUN: llvm-mc --disassemble %s -triple powerpc64-unknown-aix-gnu \
# RUN:   -mcpu=future | FileCheck %s

# RUN: llvm-mc --disassemble %s -triple powerpc-unknown-aix-gnu \
# RUN:   -mcpu=future | FileCheck %s

#CHECK: tlbiep 8, 10, 2, 1, 0
0x7d 0x4a 0x40 0x64

#CHECK: tlbieio 8, 10, 2
0x7d 0x48 0x40 0x24

#CHECK: tlbsyncio 15
0x7d 0xe0 0x04 0x68

#CHECK: ptesyncio 15
0x7d 0xe0 0x04 0xa8

#CHECK: dmxxextfdmr512 2, 34, 1, 0
0xf0 0x82 0x17 0x12

#CHECK: dmxxextfdmr512 2, 34, 1, 1
0xf0 0x83 0x17 0x12

#CHECK: dmxxextfdmr256 8, 3, 0
0xf1 0x80 0x47 0x90

#CHECK: dmxxextfdmr256 8, 3, 3
0xf1 0x81 0x4f 0x90

#CHECK: dmxxinstdmr512 1, 2, 34, 0
0xf0 0x82 0x17 0x52

#CHECK: dmxxinstdmr512 1, 2, 34, 1
0xf0 0x83 0x17 0x52

#CHECK: dmxxinstdmr256 3, 8, 0
0xf1 0x80 0x47 0x94

#CHECK: dmxxinstdmr256 3, 8, 3
0xf1 0x81 0x4f 0x94

#CHECK: dmsetdmrz 3
0x7d 0x82 0x01 0x62

#CHECK: dmmr 4, 5
0x7e 0x06 0xa1 0x62

#CHECK: dmxor 6, 7
0x7f 0x07 0xe1 0x62

#CHECK: subfus 3, 0, 4, 5
0x7c 0x64 0x28 0x90

#CHECK: subfus 3, 1, 4, 5
0x7c 0x64 0x2c 0x90

#CHECK: subfus. 3, 0, 4, 5
0x7c 0x64 0x28 0x91

#CHECK: subfus. 3, 1, 4, 5
0x7c 0x64 0x2c 0x91

#CHECK: lxvrl 1, 1, 2
0x7c 0x21 0x14 0x1a

#CHECK: lxvrll 0, 3, 4
0x7c 0x03 0x24 0x5a

#CHECK: stxvrl 2, 0, 1
0x7c 0x40 0x0d 0x1a

#CHECK: stxvrll 3, 1, 5
0x7c 0x61 0x2d 0x5a

#CHECK: lxvprl 6, 1, 5
0x7c 0xc1 0x2c 0x9a

#CHECK: lxvprll 6, 2, 1
0x7c 0xc2 0x0c 0xda

#CHECK: lxvpb32x 2, 15, 16
0x7c,0x4f,0x86,0xda

#CHECK: stxvprl 0, 1, 2
0x7c 0x01 0x15 0x9a

#CHECK: stxvprll 6, 0, 1
0x7c 0xc0 0x0d 0xda

#CHECK: stxvpb32x 2, 15, 16
0x7c,0x4f,0x87,0xda

#CHECK: dmxvi8gerx4 1, 2, 4
0xec,0x82,0x20,0x58

#CHECK: dmxvi8gerx4pp 1, 0, 2
0xec,0x80,0x10,0x50

#CHECK: pmdmxvi8gerx4 0, 2, 4, 8, 4, 4
0x07,0x90,0x40,0x84,0xec,0x02,0x20,0x58

#CHECK: pmdmxvi8gerx4pp 1, 0, 4, 8, 4, 4
0x07,0x90,0x40,0x84,0xec,0x80,0x20,0x50

#CHECK: dmxvi8gerx4spp 1, 2, 4
0xec,0x82,0x23,0x10

#CHECK: pmdmxvi8gerx4spp 0, 2, 4, 8, 4, 4
0x07,0x90,0x40,0x84,0xec,0x02,0x23,0x10

#CHECK: dmxvbf16gerx2 1, 2, 4
0xec,0x82,0x22,0xd8

#CHECK: dmxvbf16gerx2pp 1, 2, 4
0xec,0x82,0x22,0x50

#CHECK: dmxvbf16gerx2pn 1, 2, 4
0xec,0x82,0x25,0x98

#CHECK: dmxvbf16gerx2np 1, 2, 4
0xec,0x82,0x23,0x98

#CHECK: dmxvbf16gerx2nn 1, 2, 4
0xec,0x82,0x27,0x50

#CHECK: pmdmxvbf16gerx2 1, 2, 4, 8, 4, 2
0x07,0x90,0x80,0x84,0xec,0x82,0x22,0xd8

#CHECK: pmdmxvbf16gerx2pp 1, 2, 4, 8, 4, 2
0x07,0x90,0x80,0x84,0xec,0x82,0x22,0x50

#CHECK: pmdmxvbf16gerx2pn 1, 2, 4, 8, 4, 2
0x07,0x90,0x80,0x84,0xec,0x82,0x25,0x98

#CHECK: pmdmxvbf16gerx2np 1, 2, 4, 8, 4, 2
0x07,0x90,0x80,0x84,0xec,0x82,0x23,0x98

#CHECK: pmdmxvbf16gerx2nn 1, 2, 4, 8, 4, 2
0x07,0x90,0x80,0x84,0xec,0x82,0x27,0x50

#CHECK: dmxvf16gerx2 1, 0, 2
0xec,0x80,0x12,0x18

#CHECK: dmxvf16gerx2pp 1, 0, 2
0xec,0x80,0x12,0x10

#CHECK: dmxvf16gerx2pn 1, 0, 2
0xec,0x80,0x14,0x98

#CHECK: dmxvf16gerx2np 1, 0, 2
0xec,0x80,0x12,0x98

#CHECK: dmxvf16gerx2nn 1, 0, 2
0xec,0x80,0x16,0x50

#CHECK: pmdmxvf16gerx2 0, 2, 4, 12, 5, 3
0x07,0x90,0xc0,0xc5,0xec,0x02,0x22,0x18

#CHECK: pmdmxvf16gerx2pp 0, 2, 4, 12, 5, 3
0x07,0x90,0xc0,0xc5,0xec,0x02,0x22,0x10

#CHECK: pmdmxvf16gerx2pn 0, 2, 4, 12, 5, 3
0x07,0x90,0xc0,0xc5,0xec,0x02,0x24,0x98

#CHECK: pmdmxvf16gerx2np 0, 2, 4, 12, 5, 3
0x07,0x90,0xc0,0xc5,0xec,0x02,0x22,0x98

#CHECK: pmdmxvf16gerx2nn 0, 2, 4, 12, 5, 3
0x07,0x90,0xc0,0xc5,0xec,0x02,0x26,0x50

#CHECK: dmsha256hash 0, 2
0x7c,0x0e,0x41,0x62

#CHECK: dmsha512hash 0, 2
0x7c,0x2e,0x41,0x62

#CHECK: dmsha3hash 0, 5
0x7c,0x0f,0x29,0x62

#CHECK: dmsha3dw 0
0x7c,0x0f,0x01,0x62

#CHECK: dmcryshash 0
0x7c,0x0f,0x61,0x62

#CHECK: dmxxshapad 0, 1, 2, 1, 3
0xf0,0x17,0x0e,0x94

#CHECK: dmxxsha3512pad  0, 1, 1
0xf0,0x04,0x0e,0x94

#CHECK: dmxxsha3384pad  0, 1, 1
0xf0,0x05,0x0e,0x94

#CHECK: dmxxsha3256pad  0, 1, 1
0xf0,0x06,0x0e,0x94

#CHECK: dmxxsha3224pad  0, 1, 1
0xf0,0x07,0x0e,0x94

#CHECK: dmxxshake256pad 0, 1, 1
0xf0,0x0c,0x0e,0x94

#CHECK: dmxxshake128pad 0, 1, 1
0xf0,0x0d,0x0e,0x94

#CHECK: dmxxsha384512pad 0, 1
0xf0,0x10,0x0e,0x94

#CHECK: dmxxsha224256pad 0, 1
0xf0,0x18,0x0e,0x94

#CHECK: vupkhsntob 2, 4
0x10,0x40,0x21,0x83

#CHECK: vupklsntob 2, 4
0x10,0x41,0x21,0x83

#CHECK: vupkint4tobf16  2, 4, 3
0x10,0x4b,0x21,0x83

#CHECK: vupkint8tobf16  1, 3, 1
0x10,0x23,0x19,0x83

#CHECK: vupkint4tofp32 3, 5, 2
0x10,0x72,0x29,0x83

#CHECK: vupkint8tofp32 3, 5, 2
0x10,0x6e,0x29,0x83

#CHECK: vucmprhn 0, 2, 3
0x10,0x02,0x18,0x03

#CHECK: vucmprln 3, 5, 6
0x10,0x65,0x30,0x43

#CHECK: vucmprhb 1, 3, 6
0x10,0x23,0x30,0x83

#CHECK: vucmprlb 2, 4, 5
0x10,0x44,0x28,0xC3

#CHECK: vucmprlh 2, 4, 5
0x10,0x44,0x29,0x43

#CHECK: vucmprhh 1, 3, 6
0x10,0x23,0x31,0x03

#CHECK: xvrlw 34, 15, 16
0xf0,0x4f,0x85,0xc1

#CHECK: xxaes192encp 8, 10, 14
0xf1,0x0b,0x76,0x10

#CHECK: xxaes256decp 14, 10, 6
0xf1,0xca,0x3e,0x50

#CHECK: xxaes128genlkp 4, 8
0xf0,0x80,0x46,0x90

#CHECK: xxgfmul128gcm 7, 5, 4
0xf0,0xe5,0x26,0xd0

#CHECK: xvadduwm  4, 5, 7
0xf0,0x85,0x3c,0x18

#CHECK: xvadduhm  4, 5, 7
0xf0,0x85,0x3c,0x58

#CHECK: xvsubuwm  4, 5, 7
0xf0,0x85,0x3c,0x98

#CHECK: xvsubuhm  4, 5, 7
0xf0,0x85,0x3c,0xd8

#CHECK: xvmuluwm  4, 5, 7
0xf0,0x85,0x3d,0x18

#CHECK: xvmuluhm  4, 5, 7
0xf0,0x85,0x3d,0x58

#CHECK: xvmulhsw  4, 5, 7
0xf0,0x85,0x3d,0x98

#CHECK: xvmulhsh  4, 5, 7
0xf0,0x85,0x3d,0xd8

#CHECK: xvmulhuw  4, 5, 7
0xf0,0x85,0x3b,0x90

#CHECK: xvmulhuh  4, 5, 7
0xf0,0x85,0x3b,0xd0

#CHECK: mtlpl 3, 4
0x7c,0x80,0x1a,0x26

#CHECK: paddis 10, 12, 1000000000, 0
0x06,0x00,0x3b,0x9a,0x3d,0x4c,0xca,0x00

#CHECK: paddis 10, 0, 1000000000, 1
0x06,0x10,0x3b,0x9a,0x3d,0x40,0xca,0x00

#CHECK: xxmulmul 8, 3, 4, 2
0xed,0x03,0x22,0x08

#CHECK: xxmulmulhiadd 8, 3, 4, 1, 0, 1
0xed,0x03,0x25,0x48

#CHECK: xxmulmulloadd 8, 3, 4, 1, 0
0xed,0x03,0x22,0x88

#CHECK: xxssumudm 8, 3, 4, 1
0xed,0x03,0x24,0xc8

#CHECK: xxssumudmc 8, 3, 4, 1
0xed,0x03,0x25,0xc8

#CHECK: xxssumudmcext 8, 3, 4, 6, 0
0x05,0x00,0x00,0x00,0x89,0x03,0x21,0xa0

#CHECK: xsaddadduqm  4, 5, 7
0xec,0x85,0x3b,0x00

#CHECK: xsaddaddsuqm  4, 5, 7
0xec,0x85,0x3b,0x40

#CHECK: xsaddsubuqm  4, 5, 7
0xec,0x85,0x3b,0x80

#CHECK: xsaddsubsuqm  4, 5, 7
0xec,0x85,0x3f,0x00

#CHECK: xsrebase2t1uqm 4, 5, 7
0xec,0x85,0x3c,0x88

#CHECK: xsrebase2t2uqm 4, 5, 7
0xec,0x85,0x3d,0x88

#CHECK: xsrebase2t3uqm 4, 5, 7
0xec,0x85,0x3e,0x88

#CHECK: xsrebase2t4uqm 4, 5, 7
0xec,0x85,0x3e,0xc8

#CHECK: xsrebase3t1uqm 4, 5, 7
0xec,0x85,0x3f,0x88

#CHECK: xsrebase3t2uqm 4, 5, 7
0xec,0x85,0x3f,0xc8

#CHECK: xsrebase3t3uqm 4, 5, 7
0xec,0x85,0x3e,0x18

#CHECK: xsmerge2t1uqm 4, 5, 7
0xec,0x85,0x3f,0x40

#CHECK: xsmerge2t2uqm 4, 5, 7
0xec,0x85,0x3f,0x80

#CHECK: xsmerge2t3uqm 4, 5, 7
0xec,0x85,0x3a,0xc8

#CHECK: xsmerge3t1uqm 4, 5, 7
0xec,0x85,0x3b,0xc8
