821 lines · plain
1# RUN: llvm-mc --disassemble %s -triple powerpc64le-unknown-unknown -mcpu=pwr7 | FileCheck %s2 3# FIXME: test b target4 5# FIXME: test ba target6 7# FIXME: test bl target8 9# FIXME: test bla target10 11# FIXME: test bc 4, 10, target12 13# FIXME: test bca 4, 10, target14 15# FIXME: test bcl 4, 10, target16 17# FIXME: test bcla 4, 10, target18 19# CHECK: bclr 4, 10, 3200x20 0x18 0x8a 0x4c21 22# CHECK: bclr 4, 10230x20 0x00 0x8a 0x4c24 25# CHECK: bclrl 4, 10, 3260x21 0x18 0x8a 0x4c27 28# CHECK: bclrl 4, 10290x21 0x00 0x8a 0x4c30 31# CHECK: bcctr 4, 10, 3320x20 0x1c 0x8a 0x4c33 34# CHECK: bcctr 4, 10350x20 0x04 0x8a 0x4c36 37# CHECK: bcctrl 4, 10, 3380x21 0x1c 0x8a 0x4c39 40# CHECK: bcctrl 4, 10410x21 0x04 0x8a 0x4c42 43# CHECK: crand 2, 3, 4440x02 0x22 0x43 0x4c45 46# CHECK: crnand 2, 3, 4470xc2 0x21 0x43 0x4c48 49# CHECK: cror 2, 3, 4500x82 0x23 0x43 0x4c51 52# CHECK: crxor 2, 3, 4530x82 0x21 0x43 0x4c54 55# CHECK: crnor 2, 3, 4560x42 0x20 0x43 0x4c57 58# CHECK: creqv 2, 3, 4590x42 0x22 0x43 0x4c60 61# CHECK: crandc 2, 3, 4620x02 0x21 0x43 0x4c63 64# CHECK: crorc 2, 3, 4650x42 0x23 0x43 0x4c66 67# CHECK: mcrf 2, 3680x00 0x00 0x0c 0x4d69 70# CHECK: sc 1710x22 0x00 0x00 0x4472 73# CHECK: sc740x02 0x00 0x00 0x4475 76# CHECK: scv 1770x21 0x00 0x00 0x4478 79# CHECK: scv 2800x41 0x00 0x00 0x4481 82# CHECK: clrbhrb830x5c 0x03 0x00 0x7c84 85# CHECK: mfbhrbe 9, 983860x5c 0xba 0x3e 0x7d87 88# CHECK: rfebb890x24 0x09 0x00 0x4c90 91# CHECK: lbz 2, 128(4)920x80 0x00 0x44 0x8893 94# CHECK: lbzx 2, 3, 4950xae 0x20 0x43 0x7c96 97# CHECK: lbzu 2, 128(4)980x80 0x00 0x44 0x8c99 100# CHECK: lbzux 2, 3, 41010xee 0x20 0x43 0x7c102 103# CHECK: lhz 2, 128(4)1040x80 0x00 0x44 0xa0105 106# CHECK: lhzx 2, 3, 41070x2e 0x22 0x43 0x7c108 109# CHECK: lhzu 2, 128(4)1100x80 0x00 0x44 0xa4111 112# CHECK: lhzux 2, 3, 41130x6e 0x22 0x43 0x7c114 115# CHECK: lha 2, 128(4)1160x80 0x00 0x44 0xa8117 118# CHECK: lhax 2, 3, 41190xae 0x22 0x43 0x7c120 121# CHECK: lhau 2, 128(4)1220x80 0x00 0x44 0xac123 124# CHECK: lhaux 2, 3, 41250xee 0x22 0x43 0x7c126 127# CHECK: lwz 2, 128(4)1280x80 0x00 0x44 0x80129 130# CHECK: lwzx 2, 3, 41310x2e 0x20 0x43 0x7c132 133# CHECK: lwzu 2, 128(4)1340x80 0x00 0x44 0x84135 136# CHECK: lwzux 2, 3, 41370x6e 0x20 0x43 0x7c138 139# CHECK: lwa 2, 128(4)1400x82 0x00 0x44 0xe8141 142# CHECK: lwax 2, 3, 41430xaa 0x22 0x43 0x7c144 145# CHECK: lwaux 2, 3, 41460xea 0x22 0x43 0x7c147 148# CHECK: ld 2, 128(4)1490x80 0x00 0x44 0xe8150 151# CHECK: ldx 2, 3, 41520x2a 0x20 0x43 0x7c153 154# CHECK: ldu 2, 128(4)1550x81 0x00 0x44 0xe8156 157# CHECK: ldux 2, 3, 41580x6a 0x20 0x43 0x7c159 160# CHECK: stb 2, 128(4)1610x80 0x00 0x44 0x98162 163# CHECK: stbx 2, 3, 41640xae 0x21 0x43 0x7c165 166# CHECK: stbu 2, 128(4)1670x80 0x00 0x44 0x9c168 169# CHECK: stbux 2, 3, 41700xee 0x21 0x43 0x7c171 172# CHECK: sth 2, 128(4)1730x80 0x00 0x44 0xb0174 175# CHECK: sthx 2, 3, 41760x2e 0x23 0x43 0x7c177 178# CHECK: sthu 2, 128(4)1790x80 0x00 0x44 0xb4180 181# CHECK: sthux 2, 3, 41820x6e 0x23 0x43 0x7c183 184# CHECK: stw 2, 128(4)1850x80 0x00 0x44 0x90186 187# CHECK: stwx 2, 3, 41880x2e 0x21 0x43 0x7c189 190# CHECK: stwu 2, 128(4)1910x80 0x00 0x44 0x94192 193# CHECK: stwux 2, 3, 41940x6e 0x21 0x43 0x7c195 196# CHECK: std 2, 128(4)1970x80 0x00 0x44 0xf8198 199# CHECK: stdx 2, 3, 42000x2a 0x21 0x43 0x7c201 202# CHECK: stdu 2, 128(4)2030x81 0x00 0x44 0xf8204 205# CHECK: stdux 2, 3, 42060x6a 0x21 0x43 0x7c207 208# CHECK: lhbrx 2, 3, 42090x2c 0x26 0x43 0x7c210 211# CHECK: sthbrx 2, 3, 42120x2c 0x27 0x43 0x7c213 214# CHECK: lwbrx 2, 3, 42150x2c 0x24 0x43 0x7c216 217# CHECK: stwbrx 2, 3, 42180x2c 0x25 0x43 0x7c219 220# CHECK: ldbrx 2, 3, 42210x28 0x24 0x43 0x7c222 223# CHECK: stdbrx 2, 3, 42240x28 0x25 0x43 0x7c225 226# CHECK: lmw 2, 128(1)2270x80 0x00 0x41 0xb8228 229# CHECK: stmw 2, 128(1)2300x80 0x00 0x41 0xbc231 232# CHECK: addi 2, 3, 1282330x80 0x00 0x43 0x38234 235# CHECK: addis 2, 3, 1282360x80 0x00 0x43 0x3c237 238# CHECK: add 2, 3, 42390x14 0x22 0x43 0x7c240 241# CHECK: add. 2, 3, 42420x15 0x22 0x43 0x7c243 244# CHECK: addo 2, 3, 42450x14 0x26 0x43 0x7c246 247# CHECK: addo. 2, 3, 42480x15 0x26 0x43 0x7c249 250# CHECK: sub 2, 4, 32510x50 0x20 0x43 0x7c252 253# CHECK: sub. 2, 4, 32540x51 0x20 0x43 0x7c255 256# CHECK: subfo 2, 3, 42570x50 0x24 0x43 0x7c258 259# CHECK: subfo. 2, 3, 42600x51 0x24 0x43 0x7c261 262# CHECK: addic 2, 3, 1282630x80 0x00 0x43 0x30264 265# CHECK: addic. 2, 3, 1282660x80 0x00 0x43 0x34267 268# CHECK: subfic 2, 3, 42690x04 0x00 0x43 0x20270 271# CHECK: addc 2, 3, 42720x14 0x20 0x43 0x7c273 274# CHECK: addc. 2, 3, 42750x15 0x20 0x43 0x7c276 277# CHECK: addco 2, 3, 42780x14 0x24 0x43 0x7c279 280# CHECK: addco. 2, 3, 42810x15 0x24 0x43 0x7c282 283# CHECK: subc 2, 4, 32840x10 0x20 0x43 0x7c285 286# CHECK: subc. 2, 4, 32870x11 0x20 0x43 0x7c288 289# CHECK: subfco 2, 3, 42900x10 0x24 0x43 0x7c291 292# CHECK: subfco. 2, 3, 42930x11 0x24 0x43 0x7c294 295# CHECK: adde 2, 3, 42960x14 0x21 0x43 0x7c297 298# CHECK: adde. 2, 3, 42990x15 0x21 0x43 0x7c300 301# CHECK: addeo 2, 3, 43020x14 0x25 0x43 0x7c303 304# CHECK: addeo. 2, 3, 43050x15 0x25 0x43 0x7c306 307# CHECK: subfe 2, 3, 43080x10 0x21 0x43 0x7c309 310# CHECK: subfe. 2, 3, 43110x11 0x21 0x43 0x7c312 313# CHECK: subfeo 2, 3, 43140x10 0x25 0x43 0x7c315 316# CHECKE: subfeo. 2, 3, 43170x11 0x25 0x43 0x7c318 319# CHECK: addme 2, 33200xd4 0x01 0x43 0x7c321 322# CHECK: addme. 2, 33230xd5 0x01 0x43 0x7c324 325# CHECK: addmeo 2, 33260xd4 0x05 0x43 0x7c327 328# CHECK: addmeo. 2, 33290xd5 0x05 0x43 0x7c330 331# CHECK: subfme 2, 33320xd0 0x01 0x43 0x7c333 334# CHECK: subfme. 2, 33350xd1 0x01 0x43 0x7c336 337# CHECK: subfmeo 2, 33380xd0 0x05 0x43 0x7c339 340# CHECK: subfmeo. 2, 33410xd1 0x05 0x43 0x7c342 343# CHECK: addze 2, 33440x94 0x01 0x43 0x7c345 346# CHECK: addze. 2, 33470x95 0x01 0x43 0x7c348 349# CHECK: addzeo 2, 33500x94 0x05 0x43 0x7c351 352# CHECK: addzeo. 2, 33530x95 0x05 0x43 0x7c354 355# CHECK: subfze 2, 33560x90 0x01 0x43 0x7c357 358# CHECK: subfze. 2, 33590x91 0x01 0x43 0x7c360 361# CHECK: subfzeo 2, 33620x90 0x05 0x43 0x7c363 364# CHECK: subfzeo. 2, 33650x91 0x05 0x43 0x7c366 367# CHECK: neg 2, 33680xd0 0x00 0x43 0x7c369 370# CHECK: neg. 2, 33710xd1 0x00 0x43 0x7c372 373# CHECK: nego 2, 33740xd0 0x04 0x43 0x7c375 376# CHECK: nego. 2, 33770xd1 0x04 0x43 0x7c378 379# CHECK: mulli 2, 3, 1283800x80 0x00 0x43 0x1c381 382# CHECK: mulhw 2, 3, 43830x96 0x20 0x43 0x7c384 385# CHECK: mulhw. 2, 3, 43860x97 0x20 0x43 0x7c387 388# CHECK: mullw 2, 3, 43890xd6 0x21 0x43 0x7c390 391# CHECK: mullw. 2, 3, 43920xd7 0x21 0x43 0x7c393 394# CHECK: mullwo 2, 3, 43950xd6 0x25 0x43 0x7c396 397# CHECK: mullwo. 2, 3, 43980xd7 0x25 0x43 0x7c399 400# CHECK: mulhwu 2, 3, 44010x16 0x20 0x43 0x7c402 403# CHECK: mulhwu. 2, 3, 44040x17 0x20 0x43 0x7c405 406# CHECK: divw 2, 3, 44070xd6 0x23 0x43 0x7c408 409# CHECK: divw. 2, 3, 44100xd7 0x23 0x43 0x7c411 412# CHECK: divwo 2, 3, 44130xd6 0x27 0x43 0x7c414 415# CHECK: divwo. 2, 3, 44160xd7 0x27 0x43 0x7c417 418# CHECK: divwu 2, 3, 44190x96 0x23 0x43 0x7c420 421# CHECK: divwu. 2, 3, 44220x97 0x23 0x43 0x7c423 424# CHECK: divwuo 2, 3, 44250x96 0x27 0x43 0x7c426 427# CHECK: divwuo. 2, 3, 44280x97 0x27 0x43 0x7c429 430# CHECK: divwe 2, 3, 44310x56 0x23 0x43 0x7c432 433# CHECK: divwe. 2, 3, 44340x57 0x23 0x43 0x7c435 436# CHECK: divweo 2, 3, 44370x56 0x27 0x43 0x7c438 439# CHECK: divweo. 2, 3, 44400x57 0x27 0x43 0x7c441 442# CHECK: divweu 2, 3, 44430x16 0x23 0x43 0x7c444 445# CHECK: divweu. 2, 3, 44460x17 0x23 0x43 0x7c447 448# CHECK: divweuo 2, 3, 44490x16 0x27 0x43 0x7c450 451# CHECK: divweuo. 2, 3, 44520x17 0x27 0x43 0x7c453 454# CHECK: modsw 2, 3, 44550x16 0x26 0x43 0x7c456 457# CHECK: addex 2, 4, 5, 04580x54 0x29 0x44 0x7C459 460# CHECK: moduw 2, 3, 44610x16 0x22 0x43 0x7c462 463# CHECK: modsd 2, 3, 44640x12 0x26 0x43 0x7c465 466# CHECK: modud 2, 3, 44670x12 0x22 0x43 0x7c468 469# CHECK: mulld 2, 3, 44700xd2 0x21 0x43 0x7c471 472# CHECK: mulld. 2, 3, 44730xd3 0x21 0x43 0x7c474 475# CHECK: mulldo 2, 3, 44760xd2 0x25 0x43 0x7c477 478# CHECK: mulldo. 2, 3, 44790xd3 0x25 0x43 0x7c480 481# CHECK: mulhd 2, 3, 44820x92 0x20 0x43 0x7c483 484# CHECK: mulhd. 2, 3, 44850x93 0x20 0x43 0x7c486 487# CHECK: mulhdu 2, 3, 44880x12 0x20 0x43 0x7c489 490# CHECK: mulhdu. 2, 3, 44910x13 0x20 0x43 0x7c492 493# CHECK: divd 2, 3, 44940xd2 0x23 0x43 0x7c495 496# CHECK: divd. 2, 3, 44970xd3 0x23 0x43 0x7c498 499# CHECK: divdo 2, 3, 45000xd2 0x27 0x43 0x7c501 502# CHECK: divdo. 2, 3, 45030xd3 0x27 0x43 0x7c504 505# CHECK: divdu 2, 3, 45060x92 0x23 0x43 0x7c507 508# CHECK: divdu. 2, 3, 45090x93 0x23 0x43 0x7c510 511# CHECK: divduo 2, 3, 45120x92 0x27 0x43 0x7c513 514# CHECK: divduo. 2, 3, 45150x93 0x27 0x43 0x7c516 517# CHECK: divde 2, 3, 45180x52 0x23 0x43 0x7c519 520# CHECK: divde. 2, 3, 45210x53 0x23 0x43 0x7c522 523# CHECK: divdeo 2, 3, 45240x52 0x27 0x43 0x7c525 526# CHECK: divdeo. 2, 3, 45270x53 0x27 0x43 0x7c528 529# CHECK: divdeu 2, 3, 45300x12 0x23 0x43 0x7c531 532# CHECK: divdeu. 2, 3, 45330x13 0x23 0x43 0x7c534 535# CHECK: divdeuo 2, 3, 45360x12 0x27 0x43 0x7c537 538# CHECK: divdeuo. 2, 3, 45390x13 0x27 0x43 0x7c540 541# CHECK: cmpdi 2, 3, 1285420x80 0x00 0x23 0x2d543 544# CHECK: cmpd 2, 3, 45450x00 0x20 0x23 0x7d546 547# CHECK: cmpldi 2, 3, 1285480x80 0x00 0x23 0x29549 550# CHECK: cmpld 2, 3, 45510x40 0x20 0x23 0x7d552 553# CHECK: cmpwi 2, 3, 1285540x80 0x00 0x03 0x2d555 556# CHECK: cmpw 2, 3, 45570x00 0x20 0x03 0x7d558 559# CHECK: cmplwi 2, 3, 1285600x80 0x00 0x03 0x29561 562# CHECK: cmplw 2, 3, 45630x40 0x20 0x03 0x7d564 565# CHECK: twllti 3, 45660x04 0x00 0x43 0x0c567 568# CHECK: twllt 3, 45690x08 0x20 0x43 0x7c570 571# CHECK: tdllti 3, 45720x04 0x00 0x43 0x08573 574# CHECK: tdllt 3, 45750x88 0x20 0x43 0x7c576 577# CHECK: isel 2, 3, 4, 55780x5e 0x21 0x43 0x7c579 580# CHECK: andi. 2, 3, 1285810x80 0x00 0x62 0x70582 583# CHECK: andis. 2, 3, 1285840x80 0x00 0x62 0x74585 586# CHECK: ori 2, 3, 1285870x80 0x00 0x62 0x60588 589# CHECK: oris 2, 3, 1285900x80 0x00 0x62 0x64591 592# CHECK: xori 2, 3, 1285930x80 0x00 0x62 0x68594 595# CHECK: xoris 2, 3, 1285960x80 0x00 0x62 0x6c597 598# CHECK: and 2, 3, 45990x38 0x20 0x62 0x7c600 601# CHECK: and. 2, 3, 46020x39 0x20 0x62 0x7c603 604# CHECK: xor 2, 3, 46050x78 0x22 0x62 0x7c606 607# CHECK: xor. 2, 3, 46080x79 0x22 0x62 0x7c609 610# CHECK: nand 2, 3, 46110xb8 0x23 0x62 0x7c612 613# CHECK: nand. 2, 3, 46140xb9 0x23 0x62 0x7c615 616# CHECK: or 2, 3, 46170x78 0x23 0x62 0x7c618 619# CHECK: or. 2, 3, 46200x79 0x23 0x62 0x7c621 622# CHECK: nor 2, 3, 46230xf8 0x20 0x62 0x7c624 625# CHECK: nor. 2, 3, 46260xf9 0x20 0x62 0x7c627 628# CHECK: eqv 2, 3, 46290x38 0x22 0x62 0x7c630 631# CHECK: eqv. 2, 3, 46320x39 0x22 0x62 0x7c633 634# CHECK: andc 2, 3, 46350x78 0x20 0x62 0x7c636 637# CHECK: andc. 2, 3, 46380x79 0x20 0x62 0x7c639 640# CHECK: orc 2, 3, 46410x38 0x23 0x62 0x7c642 643# CHECK: orc. 2, 3, 46440x39 0x23 0x62 0x7c645 646# CHECK: extsb 2, 36470x74 0x07 0x62 0x7c648 649# CHECK: extsb. 2, 36500x75 0x07 0x62 0x7c651 652# CHECK: extsh 2, 36530x34 0x07 0x62 0x7c654 655# CHECK: extsh. 2, 36560x35 0x07 0x62 0x7c657 658# CHECK: cntlzw 2, 36590x34 0x00 0x62 0x7c660 661# CHECK: cntlzw. 2, 36620x35 0x00 0x62 0x7c663 664# CHECK: popcntw 2, 36650xf4 0x02 0x62 0x7c666 667# CHECK: extsw 2, 36680xb4 0x07 0x62 0x7c669 670# CHECK: extsw. 2, 36710xb5 0x07 0x62 0x7c672 673# CHECK: cntlzd 2, 36740x74 0x00 0x62 0x7c675 676# CHECK: cntlzd. 2, 36770x75 0x00 0x62 0x7c678 679# CHECK: popcntd 2, 36800xf4 0x03 0x62 0x7c681 682# CHECK: bpermd 2, 3, 46830xf8 0x21 0x62 0x7c684 685# CHECK: cmpb 7, 21, 46860xf8 0x23 0xa7 0x7e687 688# CHECK: rlwinm 2, 3, 4, 5, 66890x4c 0x21 0x62 0x54690 691# CHECK: rlwinm. 2, 3, 4, 5, 66920x4d 0x21 0x62 0x54693 694# CHECK: rlwnm 2, 3, 4, 5, 66950x4c 0x21 0x62 0x5c696 697# CHECK: rlwnm. 2, 3, 4, 5, 66980x4d 0x21 0x62 0x5c699 700# CHECK: rlwimi 2, 3, 4, 5, 67010x4c 0x21 0x62 0x50702 703# CHECK: rlwimi. 2, 3, 4, 5, 67040x4d 0x21 0x62 0x50705 706# CHECK: rldicl 2, 3, 4, 57070x40 0x21 0x62 0x78708 709# CHECK: rldicl. 2, 3, 4, 57100x41 0x21 0x62 0x78711 712# CHECK: rldicr 2, 3, 4, 57130x44 0x21 0x62 0x78714 715# CHECK: rldicr. 2, 3, 4, 57160x45 0x21 0x62 0x78717 718# CHECK: rldic 2, 3, 4, 57190x48 0x21 0x62 0x78720 721# CHECK: rldic. 2, 3, 4, 57220x49 0x21 0x62 0x78723 724# CHECK: rldcl 2, 3, 4, 57250x50 0x21 0x62 0x78726 727# CHECK: rldcl. 2, 3, 4, 57280x51 0x21 0x62 0x78729 730# CHECK: rldcr 2, 3, 4, 57310x52 0x21 0x62 0x78732 733# CHECK: rldcr. 2, 3, 4, 57340x53 0x21 0x62 0x78735 736# CHECK: rldimi 2, 3, 4, 57370x4c 0x21 0x62 0x78738 739# CHECK: rldimi. 2, 3, 4, 57400x4d 0x21 0x62 0x78741 742# CHECK: slw 2, 3, 47430x30 0x20 0x62 0x7c744 745# CHECK: slw. 2, 3, 47460x31 0x20 0x62 0x7c747 748# CHECK: srw 2, 3, 47490x30 0x24 0x62 0x7c750 751# CHECK: srw. 2, 3, 47520x31 0x24 0x62 0x7c753 754# CHECK: srawi 2, 3, 47550x70 0x26 0x62 0x7c756 757# CHECK: srawi. 2, 3, 47580x71 0x26 0x62 0x7c759 760# CHECK: sraw 2, 3, 47610x30 0x26 0x62 0x7c762 763# CHECK: sraw. 2, 3, 47640x31 0x26 0x62 0x7c765 766# CHECK: sld 2, 3, 47670x36 0x20 0x62 0x7c768 769# CHECK: sld. 2, 3, 47700x37 0x20 0x62 0x7c771 772# CHECK: srd 2, 3, 47730x36 0x24 0x62 0x7c774 775# CHECK: srd. 2, 3, 47760x37 0x24 0x62 0x7c777 778# CHECK: sradi 2, 3, 47790x74 0x26 0x62 0x7c780 781# CHECK: sradi. 2, 3, 47820x75 0x26 0x62 0x7c783 784# CHECK: srad 2, 3, 47850x34 0x26 0x62 0x7c786 787# CHECK: srad. 2, 3, 47880x35 0x26 0x62 0x7c789 790# CHECK: cdtbcd 2, 77910x34 0x02 0xe2 0x7c792 793# CHECK: cbcdtd 2, 77940x74 0x02 0xe2 0x7c795 796# CHECK: addg6s 2, 3, 47970x94 0x20 0x43 0x7c798 799# CHECK: mtspr 600, 28000xa6 0x93 0x58 0x7c801 802# CHECK: mfspr 2, 6008030xa6 0x92 0x58 0x7c804 805# CHECK: mtcrf 123, 28060x20 0xb1 0x47 0x7c807 808# CHECK: mfcr 28090x26 0x00 0x40 0x7c810 811# CHECK: mtocrf 16, 28120x20 0x01 0x51 0x7c813 814# CHECK: mfocrf 16, 88150x26 0x80 0x10 0x7e816 817# CHECK: mtsrin 10, 128180xe4 0x61 0x40 0x7d819# CHECK: mfsrin 10, 128200x26 0x65 0x40 0x7d821