# RUN: llvm-mc --disassemble %s -triple powerpc64-unknown-unknown -mcpu=pwr7 | FileCheck %s # FIXME: test b target # FIXME: test ba target # FIXME: test bl target # FIXME: test bla target # FIXME: test bc 4, 10, target # FIXME: test bca 4, 10, target # FIXME: test bcl 4, 10, target # FIXME: test bcla 4, 10, target # CHECK: bclr 4, 10, 3 0x4c 0x8a 0x18 0x20 # CHECK: bclr 4, 10 0x4c 0x8a 0x00 0x20 # CHECK: bclrl 4, 10, 3 0x4c 0x8a 0x18 0x21 # CHECK: bclrl 4, 10 0x4c 0x8a 0x00 0x21 # CHECK: bcctr 4, 10, 3 0x4c 0x8a 0x1c 0x20 # CHECK: bcctr 4, 10 0x4c 0x8a 0x04 0x20 # CHECK: bcctrl 4, 10, 3 0x4c 0x8a 0x1c 0x21 # CHECK: bcctrl 4, 10 0x4c 0x8a 0x04 0x21 # CHECK: crand 2, 3, 4 0x4c 0x43 0x22 0x02 # CHECK: crnand 2, 3, 4 0x4c 0x43 0x21 0xc2 # CHECK: cror 2, 3, 4 0x4c 0x43 0x23 0x82 # CHECK: crxor 2, 3, 4 0x4c 0x43 0x21 0x82 # CHECK: crnor 2, 3, 4 0x4c 0x43 0x20 0x42 # CHECK: creqv 2, 3, 4 0x4c 0x43 0x22 0x42 # CHECK: crandc 2, 3, 4 0x4c 0x43 0x21 0x02 # CHECK: crorc 2, 3, 4 0x4c 0x43 0x23 0x42 # CHECK: mcrf 2, 3 0x4d 0x0c 0x00 0x00 # CHECK: sc 1 0x44 0x00 0x00 0x22 # CHECK: sc 0x44 0x00 0x00 0x02 # CHECK: clrbhrb 0x7c 0x00 0x03 0x5c # CHECK: mfbhrbe 9, 983 0x7d 0x3e 0xba 0x5c # CHECK: rfebb 1 0x4c 0x00 0x09 0x24 # CHECK: lbz 2, 128(4) 0x88 0x44 0x00 0x80 # CHECK: lbzx 2, 3, 4 0x7c 0x43 0x20 0xae # CHECK: lbzu 2, 128(4) 0x8c 0x44 0x00 0x80 # CHECK: lbzux 2, 3, 4 0x7c 0x43 0x20 0xee # CHECK: lhz 2, 128(4) 0xa0 0x44 0x00 0x80 # CHECK: lhzx 2, 3, 4 0x7c 0x43 0x22 0x2e # CHECK: lhzu 2, 128(4) 0xa4 0x44 0x00 0x80 # CHECK: lhzux 2, 3, 4 0x7c 0x43 0x22 0x6e # CHECK: lha 2, 128(4) 0xa8 0x44 0x00 0x80 # CHECK: lhax 2, 3, 4 0x7c 0x43 0x22 0xae # CHECK: lhau 2, 128(4) 0xac 0x44 0x00 0x80 # CHECK: lhaux 2, 3, 4 0x7c 0x43 0x22 0xee # CHECK: lwz 2, 128(4) 0x80 0x44 0x00 0x80 # CHECK: lwzx 2, 3, 4 0x7c 0x43 0x20 0x2e # CHECK: lwzu 2, 128(4) 0x84 0x44 0x00 0x80 # CHECK: lwzux 2, 3, 4 0x7c 0x43 0x20 0x6e # CHECK: lwa 2, 128(4) 0xe8 0x44 0x00 0x82 # CHECK: lwax 2, 3, 4 0x7c 0x43 0x22 0xaa # CHECK: lwaux 2, 3, 4 0x7c 0x43 0x22 0xea # CHECK: ld 2, 128(4) 0xe8 0x44 0x00 0x80 # CHECK: ldx 2, 3, 4 0x7c 0x43 0x20 0x2a # CHECK: ldu 2, 128(4) 0xe8 0x44 0x00 0x81 # CHECK: ldux 2, 3, 4 0x7c 0x43 0x20 0x6a # CHECK: ldmx 2, 3, 4 0x7c 0x43 0x22 0x6a # CHECK: stb 2, 128(4) 0x98 0x44 0x00 0x80 # CHECK: stbx 2, 3, 4 0x7c 0x43 0x21 0xae # CHECK: stbu 2, 128(4) 0x9c 0x44 0x00 0x80 # CHECK: stbux 2, 3, 4 0x7c 0x43 0x21 0xee # CHECK: sth 2, 128(4) 0xb0 0x44 0x00 0x80 # CHECK: sthx 2, 3, 4 0x7c 0x43 0x23 0x2e # CHECK: sthu 2, 128(4) 0xb4 0x44 0x00 0x80 # CHECK: sthux 2, 3, 4 0x7c 0x43 0x23 0x6e # CHECK: stw 2, 128(4) 0x90 0x44 0x00 0x80 # CHECK: stwx 2, 3, 4 0x7c 0x43 0x21 0x2e # CHECK: stwu 2, 128(4) 0x94 0x44 0x00 0x80 # CHECK: stwux 2, 3, 4 0x7c 0x43 0x21 0x6e # CHECK: std 2, 128(4) 0xf8 0x44 0x00 0x80 # CHECK: stdx 2, 3, 4 0x7c 0x43 0x21 0x2a # CHECK: stdu 2, 128(4) 0xf8 0x44 0x00 0x81 # CHECK: stdux 2, 3, 4 0x7c 0x43 0x21 0x6a # CHECK: lhbrx 2, 3, 4 0x7c 0x43 0x26 0x2c # CHECK: sthbrx 2, 3, 4 0x7c 0x43 0x27 0x2c # CHECK: lwbrx 2, 3, 4 0x7c 0x43 0x24 0x2c # CHECK: stwbrx 2, 3, 4 0x7c 0x43 0x25 0x2c # CHECK: ldbrx 2, 3, 4 0x7c 0x43 0x24 0x28 # CHECK: stdbrx 2, 3, 4 0x7c 0x43 0x25 0x28 # CHECK: lmw 2, 128(1) 0xb8 0x41 0x00 0x80 # CHECK: stmw 2, 128(1) 0xbc 0x41 0x00 0x80 # CHECK: addi 2, 3, 128 0x38 0x43 0x00 0x80 # CHECK: addis 2, 3, 128 0x3c 0x43 0x00 0x80 # CHECK: add 2, 3, 4 0x7c 0x43 0x22 0x14 # CHECK: add. 2, 3, 4 0x7c 0x43 0x22 0x15 # CHECK: addo 2, 3, 4 0x7c 0x43 0x26 0x14 # CHECK: addo. 2, 3, 4 0x7c 0x43 0x26 0x15 # CHECK: subf 2, 3, 4 0x7c 0x43 0x20 0x50 # CHECK: subf. 2, 3, 4 0x7c 0x43 0x20 0x51 # CHECK: subfo 2, 3, 4 0x7c 0x43 0x24 0x50 # CHECK: subfo. 2, 3, 4 0x7c 0x43 0x24 0x51 # CHECK: addic 2, 3, 128 0x30 0x43 0x00 0x80 # CHECK: addic. 2, 3, 128 0x34 0x43 0x00 0x80 # CHECK: subfic 2, 3, 4 0x20 0x43 0x00 0x04 # CHECK: addc 2, 3, 4 0x7c 0x43 0x20 0x14 # CHECK: addc. 2, 3, 4 0x7c 0x43 0x20 0x15 # CHECK: addco 2, 3, 4 0x7c 0x43 0x24 0x14 # CHECK: addco. 2, 3, 4 0x7c 0x43 0x24 0x15 # CHECK: subfc 2, 3, 4 0x7c 0x43 0x20 0x10 # CHECK: subfc 2, 3, 4 0x7c 0x43 0x20 0x10 # CHECK: subfco 2, 3, 4 0x7c 0x43 0x24 0x10 # CHECK: subfco. 2, 3, 4 0x7c 0x43 0x24 0x11 # CHECK: adde 2, 3, 4 0x7c 0x43 0x21 0x14 # CHECK: adde. 2, 3, 4 0x7c 0x43 0x21 0x15 # CHECK: addeo 2, 3, 4 0x7c 0x43 0x25 0x14 # CHECK: addeo. 2, 3, 4 0x7c 0x43 0x25 0x15 # CHECK: subfe 2, 3, 4 0x7c 0x43 0x21 0x10 # CHECK: subfe. 2, 3, 4 0x7c 0x43 0x21 0x11 # CHECK: subfeo 2, 3, 4 0x7c 0x43 0x25 0x10 # CHECKE: subfeo. 2, 3, 4 0x7c 0x43 0x25 0x11 # CHECK: addme 2, 3 0x7c 0x43 0x01 0xd4 # CHECK: addme. 2, 3 0x7c 0x43 0x01 0xd5 # CHECK: addmeo 2, 3 0x7c 0x43 0x05 0xd4 # CHECK: addmeo. 2, 3 0x7c 0x43 0x05 0xd5 # CHECK: subfme 2, 3 0x7c 0x43 0x01 0xd0 # CHECK: subfme. 2, 3 0x7c 0x43 0x01 0xd1 # CHECK: subfmeo 2, 3 0x7c 0x43 0x05 0xd0 # CHECK: subfmeo. 2, 3 0x7c 0x43 0x05 0xd1 # CHECK: addze 2, 3 0x7c 0x43 0x01 0x94 # CHECK: addze. 2, 3 0x7c 0x43 0x01 0x95 # CHECK: addzeo 2, 3 0x7c 0x43 0x05 0x94 # CHECK: addzeo. 2, 3 0x7c 0x43 0x05 0x95 # CHECK: subfze 2, 3 0x7c 0x43 0x01 0x90 # CHECK: subfze. 2, 3 0x7c 0x43 0x01 0x91 # CHECK: subfzeo 2, 3 0x7c 0x43 0x05 0x90 # CHECK: subfzeo. 2, 3 0x7c 0x43 0x05 0x91 # CHECK: neg 2, 3 0x7c 0x43 0x00 0xd0 # CHECK: neg. 2, 3 0x7c 0x43 0x00 0xd1 # CHECK: nego 2, 3 0x7c 0x43 0x04 0xd0 # CHECK: nego. 2, 3 0x7c 0x43 0x04 0xd1 # CHECK: mulli 2, 3, 128 0x1c 0x43 0x00 0x80 # CHECK: mulhw 2, 3, 4 0x7c 0x43 0x20 0x96 # CHECK: mulhw. 2, 3, 4 0x7c 0x43 0x20 0x97 # CHECK: mullw 2, 3, 4 0x7c 0x43 0x21 0xd6 # CHECK: mullw. 2, 3, 4 0x7c 0x43 0x21 0xd7 # CHECK: mullwo 2, 3, 4 0x7c 0x43 0x25 0xd6 # CHECK: mullwo. 2, 3, 4 0x7c 0x43 0x25 0xd7 # CHECK: mulhwu 2, 3, 4 0x7c 0x43 0x20 0x16 # CHECK: mulhwu. 2, 3, 4 0x7c 0x43 0x20 0x17 # CHECK: maddhd 2, 3, 4, 5 0x10 0x43 0x21 0x70 # CHECK: maddhdu 2, 3, 4, 5 0x10 0x43 0x21 0x71 # CHECK: maddld 2, 3, 4, 5 0x10 0x43 0x21 0x73 # CHECK: setb 2, 3 0x7c 0x4c 0x01 0x00 # CHECK: darn 2, 3 0x7c 0x43 0x05 0xe6 # CHECK: addpcis 3, 22627 0x4c,0x71,0x58,0x45 # CHECK: lnia 3 0x4c,0x60,0x00,0x04 # CHECK: divw 2, 3, 4 0x7c 0x43 0x23 0xd6 # CHECK: divw. 2, 3, 4 0x7c 0x43 0x23 0xd7 # CHECK: divwo 2, 3, 4 0x7c 0x43 0x27 0xd6 # CHECK: divwo. 2, 3, 4 0x7c 0x43 0x27 0xd7 # CHECK: divwu 2, 3, 4 0x7c 0x43 0x23 0x96 # CHECK: divwu. 2, 3, 4 0x7c 0x43 0x23 0x97 # CHECK: divwuo 2, 3, 4 0x7c 0x43 0x27 0x96 # CHECK: divwuo. 2, 3, 4 0x7c 0x43 0x27 0x97 # CHECK: divwe 2, 3, 4 0x7c 0x43 0x23 0x56 # CHECK: divwe. 2, 3, 4 0x7c 0x43 0x23 0x57 # CHECK: divweo 2, 3, 4 0x7c 0x43 0x27 0x56 # CHECK: divweo. 2, 3, 4 0x7c 0x43 0x27 0x57 # CHECK: divweu 2, 3, 4 0x7c 0x43 0x23 0x16 # CHECK: divweu. 2, 3, 4 0x7c 0x43 0x23 0x17 # CHECK: divweuo 2, 3, 4 0x7c 0x43 0x27 0x16 # CHECK: divweuo. 2, 3, 4 0x7c 0x43 0x27 0x17 # CHECK: modsw 2, 3, 4 0x7c 0x43 0x26 0x16 # CHECK: moduw 2, 3, 4 0x7c 0x43 0x22 0x16 # CHECK: modsd 2, 3, 4 0x7c 0x43 0x26 0x12 # CHECK: modud 2, 3, 4 0x7c 0x43 0x22 0x12 # CHECK: mulld 2, 3, 4 0x7c 0x43 0x21 0xd2 # CHECK: mulld. 2, 3, 4 0x7c 0x43 0x21 0xd3 # CHECK: mulldo 2, 3, 4 0x7c 0x43 0x25 0xd2 # CHECK: mulldo. 2, 3, 4 0x7c 0x43 0x25 0xd3 # CHECK: mulhd 2, 3, 4 0x7c 0x43 0x20 0x92 # CHECK: mulhd. 2, 3, 4 0x7c 0x43 0x20 0x93 # CHECK: mulhdu 2, 3, 4 0x7c 0x43 0x20 0x12 # CHECK: mulhdu. 2, 3, 4 0x7c 0x43 0x20 0x13 # CHECK: divd 2, 3, 4 0x7c 0x43 0x23 0xd2 # CHECK: divd. 2, 3, 4 0x7c 0x43 0x23 0xd3 # CHECK: divdo 2, 3, 4 0x7c 0x43 0x27 0xd2 # CHECK: divdo. 2, 3, 4 0x7c 0x43 0x27 0xd3 # CHECK: divdu 2, 3, 4 0x7c 0x43 0x23 0x92 # CHECK: divdu. 2, 3, 4 0x7c 0x43 0x23 0x93 # CHECK: divduo 2, 3, 4 0x7c 0x43 0x27 0x92 # CHECK: divduo. 2, 3, 4 0x7c 0x43 0x27 0x93 # CHECK: divde 2, 3, 4 0x7c 0x43 0x23 0x52 # CHECK: divde. 2, 3, 4 0x7c 0x43 0x23 0x53 # CHECK: divdeo 2, 3, 4 0x7c 0x43 0x27 0x52 # CHECK: divdeo. 2, 3, 4 0x7c 0x43 0x27 0x53 # CHECK: divdeu 2, 3, 4 0x7c 0x43 0x23 0x12 # CHECK: divdeu. 2, 3, 4 0x7c 0x43 0x23 0x13 # CHECK: divdeuo 2, 3, 4 0x7c 0x43 0x27 0x12 # CHECK: divdeuo. 2, 3, 4 0x7c 0x43 0x27 0x13 # CHECK: cmpdi 2, 3, 128 0x2d 0x23 0x00 0x80 # CHECK: cmpd 2, 3, 4 0x7d 0x23 0x20 0x00 # CHECK: cmpldi 2, 3, 128 0x29 0x23 0x00 0x80 # CHECK: cmpld 2, 3, 4 0x7d 0x23 0x20 0x40 # CHECK: cmpwi 2, 3, 128 0x2d 0x03 0x00 0x80 # CHECK: cmpw 2, 3, 4 0x7d 0x03 0x20 0x00 # CHECK: cmplwi 2, 3, 128 0x29 0x03 0x00 0x80 # CHECK: cmplw 2, 3, 4 0x7d 0x03 0x20 0x40 # CHECK: cmprb 3, 1, 7, 17 0x7d 0xa7 0x89 0x80 # CHECK: cmpeqb 3, 7, 17 0x7d 0x87 0x89 0xc0 # CHECK: cnttzw 7, 17 0x7e 0x27 0x04 0x34 # CHECK: cnttzw. 7, 17 0x7e 0x27 0x04 0x35 # CHECK: cnttzd 7, 17 0x7e 0x27 0x04 0x74 # CHECK: cnttzd. 7, 17 0x7e 0x27 0x04 0x75 # CHECK: twllti 3, 4 0x0c 0x43 0x00 0x04 # CHECK: twllt 3, 4 0x7c 0x43 0x20 0x08 # CHECK: tdllti 3, 4 0x08 0x43 0x00 0x04 # CHECK: tdllt 3, 4 0x7c 0x43 0x20 0x88 # CHECK: isel 2, 3, 4, 5 0x7c 0x43 0x21 0x5e # CHECK: andi. 2, 3, 128 0x70 0x62 0x00 0x80 # CHECK: andis. 2, 3, 128 0x74 0x62 0x00 0x80 # CHECK: ori 2, 3, 128 0x60 0x62 0x00 0x80 # CHECK: oris 2, 3, 128 0x64 0x62 0x00 0x80 # CHECK: xori 2, 3, 128 0x68 0x62 0x00 0x80 # CHECK: xoris 2, 3, 128 0x6c 0x62 0x00 0x80 # CHECK: and 2, 3, 4 0x7c 0x62 0x20 0x38 # CHECK: and. 2, 3, 4 0x7c 0x62 0x20 0x39 # CHECK: xor 2, 3, 4 0x7c 0x62 0x22 0x78 # CHECK: xor. 2, 3, 4 0x7c 0x62 0x22 0x79 # CHECK: nand 2, 3, 4 0x7c 0x62 0x23 0xb8 # CHECK: nand. 2, 3, 4 0x7c 0x62 0x23 0xb9 # CHECK: or 2, 3, 4 0x7c 0x62 0x23 0x78 # CHECK: or. 2, 3, 4 0x7c 0x62 0x23 0x79 # CHECK: nor 2, 3, 4 0x7c 0x62 0x20 0xf8 # CHECK: nor. 2, 3, 4 0x7c 0x62 0x20 0xf9 # CHECK: eqv 2, 3, 4 0x7c 0x62 0x22 0x38 # CHECK: eqv. 2, 3, 4 0x7c 0x62 0x22 0x39 # CHECK: andc 2, 3, 4 0x7c 0x62 0x20 0x78 # CHECK: andc. 2, 3, 4 0x7c 0x62 0x20 0x79 # CHECK: orc 2, 3, 4 0x7c 0x62 0x23 0x38 # CHECK: orc. 2, 3, 4 0x7c 0x62 0x23 0x39 # CHECK: extsb 2, 3 0x7c 0x62 0x07 0x74 # CHECK: extsb. 2, 3 0x7c 0x62 0x07 0x75 # CHECK: extsh 2, 3 0x7c 0x62 0x07 0x34 # CHECK: extsh. 2, 3 0x7c 0x62 0x07 0x35 # CHECK: cntlzw 2, 3 0x7c 0x62 0x00 0x34 # CHECK: cntlzw. 2, 3 0x7c 0x62 0x00 0x35 # CHECK: popcntw 2, 3 0x7c 0x62 0x02 0xf4 # CHECK: popcntb 2, 3 0x7c 0x62 0x00 0xf4 # CHECK: extsw 2, 3 0x7c 0x62 0x07 0xb4 # CHECK: extsw. 2, 3 0x7c 0x62 0x07 0xb5 # CHECK: cntlzd 2, 3 0x7c 0x62 0x00 0x74 # CHECK: cntlzd. 2, 3 0x7c 0x62 0x00 0x75 # CHECK: popcntd 2, 3 0x7c 0x62 0x03 0xf4 # CHECK: bpermd 2, 3, 4 0x7c 0x62 0x21 0xf8 # CHECK: cmpb 7, 21, 4 0x7e 0xa7 0x23 0xf8 # CHECK: rlwinm 2, 3, 4, 5, 6 0x54 0x62 0x21 0x4c # CHECK: rlwinm. 2, 3, 4, 5, 6 0x54 0x62 0x21 0x4d # CHECK: rlwnm 2, 3, 4, 5, 6 0x5c 0x62 0x21 0x4c # CHECK: rlwnm. 2, 3, 4, 5, 6 0x5c 0x62 0x21 0x4d # CHECK: rlwimi 2, 3, 4, 5, 6 0x50 0x62 0x21 0x4c # CHECK: rlwimi. 2, 3, 4, 5, 6 0x50 0x62 0x21 0x4d # CHECK: rldicl 2, 3, 4, 5 0x78 0x62 0x21 0x40 # CHECK: rldicl. 2, 3, 4, 5 0x78 0x62 0x21 0x41 # CHECK: rldicr 2, 3, 4, 5 0x78 0x62 0x21 0x44 # CHECK: rldicr. 2, 3, 4, 5 0x78 0x62 0x21 0x45 # CHECK: rldic 2, 3, 4, 5 0x78 0x62 0x21 0x48 # CHECK: rldic. 2, 3, 4, 5 0x78 0x62 0x21 0x49 # CHECK: rldcl 2, 3, 4, 5 0x78 0x62 0x21 0x50 # CHECK: rldcl. 2, 3, 4, 5 0x78 0x62 0x21 0x51 # CHECK: rldcr 2, 3, 4, 5 0x78 0x62 0x21 0x52 # CHECK: rldcr. 2, 3, 4, 5 0x78 0x62 0x21 0x53 # CHECK: rldimi 2, 3, 4, 5 0x78 0x62 0x21 0x4c # CHECK: rldimi. 2, 3, 4, 5 0x78 0x62 0x21 0x4d # CHECK: slw 2, 3, 4 0x7c 0x62 0x20 0x30 # CHECK: slw. 2, 3, 4 0x7c 0x62 0x20 0x31 # CHECK: srw 2, 3, 4 0x7c 0x62 0x24 0x30 # CHECK: srw. 2, 3, 4 0x7c 0x62 0x24 0x31 # CHECK: srawi 2, 3, 4 0x7c 0x62 0x26 0x70 # CHECK: srawi. 2, 3, 4 0x7c 0x62 0x26 0x71 # CHECK: sraw 2, 3, 4 0x7c 0x62 0x26 0x30 # CHECK: sraw. 2, 3, 4 0x7c 0x62 0x26 0x31 # CHECK: sld 2, 3, 4 0x7c 0x62 0x20 0x36 # CHECK: sld. 2, 3, 4 0x7c 0x62 0x20 0x37 # CHECK: srd 2, 3, 4 0x7c 0x62 0x24 0x36 # CHECK: srd. 2, 3, 4 0x7c 0x62 0x24 0x37 # CHECK: sradi 2, 3, 4 0x7c 0x62 0x26 0x74 # CHECK: sradi. 2, 3, 4 0x7c 0x62 0x26 0x75 # CHECK: srad 2, 3, 4 0x7c 0x62 0x26 0x34 # CHECK: srad. 2, 3, 4 0x7c 0x62 0x26 0x35 # CHECK: extswsli 2, 3, 4 0x7c 0x62 0x26 0xf4 # CHECK: extswsli. 2, 3, 4 0x7c 0x62 0x26 0xf5 # CHECK: mtspr 600, 2 0x7c 0x58 0x93 0xa6 # CHECK: mfspr 2, 600 0x7c 0x58 0x92 0xa6 # CHECK: mtcrf 123, 2 0x7c 0x47 0xb1 0x20 # CHECK: mfcr 2 0x7c 0x40 0x00 0x26 # CHECK: mtocrf 16, 2 0x7c 0x51 0x01 0x20 # CHECK: mfocrf 16, 8 0x7e 0x10 0x80 0x26 # CHECK: mcrxrx 7 0x7f 0x80 0x04 0x80 # CHECK: mtsrin 10, 12 0x7d 0x40 0x61 0xe4 # CHECK: mfsrin 10, 12 0x7d 0x40 0x65 0x26 # CHECK: copy 2, 19, 1 0x7c 0x22 0x9e 0x0c # CHECK: paste 17, 1, 1 0x7c 0x31 0x0f 0x0c # CHECK: cp_abort 0x7c 0x00 0x06 0x8c # CHECK: msgsync 0x7c 0x00 0x06 0xec # CHECK: slbieg 6, 21 0x7c 0xc0 0xab 0xa4 # CHECK: slbsync 0x7c 0x00 0x02 0xa4 # CHECK: stop 0x4c 0x00 0x02 0xe4