Lines Matching refs:RST
215 Defs = [LR8, X2], Uses = [CTR8, RM], RST = 2 in {
225 Defs = [LR8, X2, RM], Uses = [CTR8, RM], RST = 2 in {
335 def LDARX : XForm_1_memOp<31, 84, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
336 "ldarx $RST, $addr", IIC_LdStLDARX, []>;
339 def LQARX : XForm_1_memOp<31, 276, (outs g8prc:$RST), (ins (memrr $RA, $RB):$addr),
340 "lqarx $RST, $addr", IIC_LdStLQARX, []>, isPPC64;
344 def LDARXL : XForm_1<31, 84, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
345 "ldarx $RST, $addr, 1", IIC_LdStLDARX, []>, isRecordForm;
350 def LQARXL : XForm_1<31, 276, (outs g8prc:$RST), (ins (memrr $RA, $RB):$addr),
351 "lqarx $RST, $addr, 1", IIC_LdStLQARX, []>,
355 def LDAT : X_RD5_RS5_IM5<31, 614, (outs g8rc:$RST), (ins g8rc:$RA, u5imm:$RB),
356 "ldat $RST, $RA, $RB", IIC_LdStLoad>, isPPC64,
361 def STDCX : XForm_1_memOp<31, 214, (outs), (ins g8rc:$RST, (memrr $RA, $RB):$addr),
362 "stdcx. $RST, $addr", IIC_LdStSTDCX, []>, isRecordForm;
365 def STQCX : XForm_1_memOp<31, 182, (outs), (ins g8prc:$RST, (memrr $RA, $RB):$addr),
366 "stqcx. $RST, $addr", IIC_LdStSTQCX, []>,
426 def STDAT : X_RD5_RS5_IM5<31, 742, (outs), (ins g8rc:$RST, g8rc:$RA, u5imm:$RB),
427 "stdat $RST, $RA, $RB", IIC_LdStStore>, isPPC64,
485 def MTOCRF8: XFXForm_5a<31, 144, (outs crbitm:$FXM), (ins g8rc:$RST),
486 "mtocrf $FXM, $RST", IIC_BrMCRX>,
491 def MTCRF8 : XFXForm_5<31, 144, (outs), (ins i32imm:$FXM, g8rc:$RST),
492 "mtcrf $FXM, $RST", IIC_BrMCRX>,
500 def MFOCRF8: XFXForm_5a<31, 19, (outs g8rc:$RST), (ins crbitm:$FXM),
501 "mfocrf $RST, $FXM", IIC_SprMFCRF>,
530 def MFSPR8 : XFXForm_1<31, 339, (outs g8rc:$RST), (ins i32imm:$SPR),
531 "mfspr $RST, $SPR", IIC_SprMFSPR>;
532 def MTSPR8 : XFXForm_1<31, 467, (outs), (ins i32imm:$SPR, g8rc:$RST),
533 "mtspr $SPR, $RST", IIC_SprMTSPR>;
540 def MFCTR8 : XFXForm_1_ext<31, 339, 9, (outs g8rc:$RST), (ins),
541 "mfctr $RST", IIC_SprMFSPR>,
544 let Pattern = [(PPCmtctr i64:$RST)], Defs = [CTR8] in {
545 def MTCTR8 : XFXForm_1_ext<31, 467, 9, (outs), (ins g8rc:$RST),
546 "mtctr $RST", IIC_SprMTSPR>,
552 let Pattern = [(int_set_loop_iterations i64:$RST)] in
553 def MTCTR8loop : XFXForm_1_ext<31, 467, 9, (outs), (ins g8rc:$RST),
554 "mtctr $RST", IIC_SprMTSPR>,
562 let Pattern = [(set i64:$RST, readcyclecounter)] in
563 def MFTB8 : XFXForm_1_ext<31, 339, 268, (outs g8rc:$RST), (ins),
564 "mfspr $RST, 268", IIC_SprMFTB>,
598 def MTLR8 : XFXForm_1_ext<31, 467, 8, (outs), (ins g8rc:$RST),
599 "mtlr $RST", IIC_SprMTSPR>,
603 def MFLR8 : XFXForm_1_ext<31, 339, 8, (outs g8rc:$RST), (ins),
604 "mflr $RST", IIC_SprMFSPR>,
620 def LI8 : DForm_2_r0<14, (outs g8rc:$RST), (ins s16imm64:$D),
621 "li $RST, $D", IIC_IntSimple,
622 [(set i64:$RST, imm64SExt16:$D)]>, SExt32To64;
623 def LIS8 : DForm_2_r0<15, (outs g8rc:$RST), (ins s17imm64:$D),
624 "lis $RST, $D", IIC_IntSimple,
625 [(set i64:$RST, imm16ShiftedSExt:$D)]>, SExt32To64;
630 defm NAND8: XForm_6r<31, 476, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
631 "nand", "$RA, $RST, $RB", IIC_IntSimple,
632 [(set i64:$RA, (not (and i64:$RST, i64:$RB)))]>;
633 defm AND8 : XForm_6r<31, 28, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
634 "and", "$RA, $RST, $RB", IIC_IntSimple,
635 [(set i64:$RA, (and i64:$RST, i64:$RB))]>;
637 defm ANDC8: XForm_6r<31, 60, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
638 "andc", "$RA, $RST, $RB", IIC_IntSimple,
639 [(set i64:$RA, (and i64:$RST, (not i64:$RB)))]>;
641 defm OR8 : XForm_6r<31, 444, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
642 "or", "$RA, $RST, $RB", IIC_IntSimple,
643 [(set i64:$RA, (or i64:$RST, i64:$RB))]>;
644 defm NOR8 : XForm_6r<31, 124, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
645 "nor", "$RA, $RST, $RB", IIC_IntSimple,
646 [(set i64:$RA, (not (or i64:$RST, i64:$RB)))]>;
648 defm ORC8 : XForm_6r<31, 412, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
649 "orc", "$RA, $RST, $RB", IIC_IntSimple,
650 [(set i64:$RA, (or i64:$RST, (not i64:$RB)))]>;
652 defm EQV8 : XForm_6r<31, 284, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
653 "eqv", "$RA, $RST, $RB", IIC_IntSimple,
654 [(set i64:$RA, (not (xor i64:$RST, i64:$RB)))]>;
655 defm XOR8 : XForm_6r<31, 316, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
656 "xor", "$RA, $RST, $RB", IIC_IntSimple,
657 [(set i64:$RA, (xor i64:$RST, i64:$RB))]>;
662 def ANDI8_rec : DForm_4<28, (outs g8rc:$RA), (ins g8rc:$RST, u16imm64:$D),
663 "andi. $RA, $RST, $D", IIC_IntGeneral,
664 [(set i64:$RA, (and i64:$RST, immZExt16:$D))]>,
666 def ANDIS8_rec : DForm_4<29, (outs g8rc:$RA), (ins g8rc:$RST, u16imm64:$D),
667 "andis. $RA, $RST, $D", IIC_IntGeneral,
668 [(set i64:$RA, (and i64:$RST, imm16ShiftedZExt:$D))]>,
671 def ORI8 : DForm_4<24, (outs g8rc:$RA), (ins g8rc:$RST, u16imm64:$D),
672 "ori $RA, $RST, $D", IIC_IntSimple,
673 [(set i64:$RA, (or i64:$RST, immZExt16:$D))]>;
674 def ORIS8 : DForm_4<25, (outs g8rc:$RA), (ins g8rc:$RST, u16imm64:$D),
675 "oris $RA, $RST, $D", IIC_IntSimple,
676 [(set i64:$RA, (or i64:$RST, imm16ShiftedZExt:$D))]>;
677 def XORI8 : DForm_4<26, (outs g8rc:$RA), (ins g8rc:$RST, u16imm64:$D),
678 "xori $RA, $RST, $D", IIC_IntSimple,
679 [(set i64:$RA, (xor i64:$RST, immZExt16:$D))]>;
680 def XORIS8 : DForm_4<27, (outs g8rc:$RA), (ins g8rc:$RST, u16imm64:$D),
681 "xoris $RA, $RST, $D", IIC_IntSimple,
682 [(set i64:$RA, (xor i64:$RST, imm16ShiftedZExt:$D))]>;
696 def LBZXTLS : XForm_1<31, 87, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
697 "lbzx $RST, $RA, $RB", IIC_LdStLoad, []>;
698 def LHZXTLS : XForm_1<31, 279, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
699 "lhzx $RST, $RA, $RB", IIC_LdStLoad, []>;
700 def LHAXTLS : XForm_1<31, 343, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
701 "lhax $RST, $RA, $RB", IIC_LdStLoad, []>;
702 def LWZXTLS : XForm_1<31, 23, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
703 "lwzx $RST, $RA, $RB", IIC_LdStLoad, []>;
704 def LWAXTLS : XForm_1<31, 341, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
705 "lwax $RST, $RA, $RB", IIC_LdStLoad, []>;
706 def LDXTLS : XForm_1<31, 21, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
707 "ldx $RST, $RA, $RB", IIC_LdStLD, []>, isPPC64;
708 def LBZXTLS_32 : XForm_1<31, 87, (outs gprc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
709 "lbzx $RST, $RA, $RB", IIC_LdStLoad, []>;
710 def LHZXTLS_32 : XForm_1<31, 279, (outs gprc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
711 "lhzx $RST, $RA, $RB", IIC_LdStLoad, []>;
712 def LHAXTLS_32 : XForm_1<31, 343, (outs gprc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
713 "lhax $RST, $RA, $RB", IIC_LdStLoad, []>;
714 def LWZXTLS_32 : XForm_1<31, 23, (outs gprc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
715 "lwzx $RST, $RA, $RB", IIC_LdStLoad, []>;
716 def LWAXTLS_32 : XForm_1<31, 341, (outs gprc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
717 "lwax $RST, $RA, $RB", IIC_LdStLoad, []>;
721 def LFSXTLS : XForm_25<31, 535, (outs f4rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
722 "lfsx $RST, $RA, $RB", IIC_LdStLFD, []>;
723 def LFDXTLS : XForm_25<31, 599, (outs f8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
724 "lfdx $RST, $RA, $RB", IIC_LdStLFD, []>;
728 def STBXTLS : XForm_8<31, 215, (outs), (ins g8rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
729 "stbx $RST, $RA, $RB", IIC_LdStStore, []>,
731 def STHXTLS : XForm_8<31, 407, (outs), (ins g8rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
732 "sthx $RST, $RA, $RB", IIC_LdStStore, []>,
734 def STWXTLS : XForm_8<31, 151, (outs), (ins g8rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
735 "stwx $RST, $RA, $RB", IIC_LdStStore, []>,
737 def STDXTLS : XForm_8<31, 149, (outs), (ins g8rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
738 "stdx $RST, $RA, $RB", IIC_LdStSTD, []>, isPPC64,
740 def STBXTLS_32 : XForm_8<31, 215, (outs), (ins gprc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
741 "stbx $RST, $RA, $RB", IIC_LdStStore, []>,
743 def STHXTLS_32 : XForm_8<31, 407, (outs), (ins gprc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
744 "sthx $RST, $RA, $RB", IIC_LdStStore, []>,
746 def STWXTLS_32 : XForm_8<31, 151, (outs), (ins gprc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
747 "stwx $RST, $RA, $RB", IIC_LdStStore, []>,
752 def STFSXTLS : XForm_8<31, 663, (outs), (ins f4rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
753 "stfsx $RST, $RA, $RB", IIC_LdStSTFD, []>,
755 def STFDXTLS : XForm_8<31, 727, (outs), (ins f8rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
756 "stfdx $RST, $RA, $RB", IIC_LdStSTFD, []>,
767 def ADDIC8 : DForm_2<12, (outs g8rc:$RST), (ins g8rc:$RA, s16imm64:$D),
768 "addic $RST, $RA, $D", IIC_IntGeneral,
769 [(set i64:$RST, (addc i64:$RA, imm64SExt16:$D))]>;
770 def ADDI8 : DForm_2<14, (outs g8rc:$RST), (ins g8rc_nox0:$RA, s16imm64:$D),
771 "addi $RST, $RA, $D", IIC_IntSimple,
772 [(set i64:$RST, (add i64:$RA, imm64SExt16:$D))]>;
773 def ADDIS8 : DForm_2<15, (outs g8rc:$RST), (ins g8rc_nox0:$RA, s17imm64:$D),
774 "addis $RST, $RA, $D", IIC_IntSimple,
775 [(set i64:$RST, (add i64:$RA, imm16ShiftedSExt:$D))]>;
777 def LA8 : DForm_2<14, (outs g8rc:$RST), (ins g8rc_nox0:$RA, s16imm64:$D),
778 "la $RST, $D($RA)", IIC_IntGeneral,
779 [(set i64:$RST, (add i64:$RA,
783 def SUBFIC8: DForm_2< 8, (outs g8rc:$RST), (ins g8rc:$RA, s16imm64:$D),
784 "subfic $RST, $RA, $D", IIC_IntGeneral,
785 [(set i64:$RST, (subc imm64SExt16:$D, i64:$RA))]>;
828 def LBZXTLS_ : XForm_1<31, 87, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
829 "lbzx $RST, $RA, $RB", IIC_LdStLoad, []>;
830 def LHZXTLS_ : XForm_1<31, 279, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
831 "lhzx $RST, $RA, $RB", IIC_LdStLoad, []>;
832 def LHAXTLS_ : XForm_1<31, 343, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
833 "lhax $RST, $RA, $RB", IIC_LdStLoad, []>;
834 def LWZXTLS_ : XForm_1<31, 23, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
835 "lwzx $RST, $RA, $RB", IIC_LdStLoad, []>;
836 def LWAXTLS_ : XForm_1<31, 341, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
837 "lwax $RST, $RA, $RB", IIC_LdStLoad, []>;
838 def LDXTLS_ : XForm_1<31, 21, (outs g8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
839 "ldx $RST, $RA, $RB", IIC_LdStLD, []>, isPPC64;
843 def LFSXTLS_ : XForm_25<31, 535, (outs f4rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
844 "lfsx $RST, $RA, $RB", IIC_LdStLFD, []>;
845 def LFDXTLS_ : XForm_25<31, 599, (outs f8rc:$RST), (ins ptr_rc_nor0:$RA, tlsreg:$RB),
846 "lfdx $RST, $RA, $RB", IIC_LdStLFD, []>;
850 def STBXTLS_ : XForm_8<31, 215, (outs), (ins g8rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
851 "stbx $RST, $RA, $RB", IIC_LdStStore, []>,
853 def STHXTLS_ : XForm_8<31, 407, (outs), (ins g8rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
854 "sthx $RST, $RA, $RB", IIC_LdStStore, []>,
856 def STWXTLS_ : XForm_8<31, 151, (outs), (ins g8rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
857 "stwx $RST, $RA, $RB", IIC_LdStStore, []>,
859 def STDXTLS_ : XForm_8<31, 149, (outs), (ins g8rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
860 "stdx $RST, $RA, $RB", IIC_LdStSTD, []>, isPPC64,
865 def STFSXTLS_ : XForm_8<31, 663, (outs), (ins f4rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
866 "stfsx $RST, $RA, $RB", IIC_LdStSTFD, []>,
868 def STFDXTLS_ : XForm_8<31, 727, (outs), (ins f8rc:$RST, ptr_rc_nor0:$RA, tlsreg:$RB),
869 "stfdx $RST, $RA, $RB", IIC_LdStSTFD, []>,
906 defm SLD : XForm_6r<31, 27, (outs g8rc:$RA), (ins g8rc:$RST, gprc:$RB),
907 "sld", "$RA, $RST, $RB", IIC_IntRotateD,
908 [(set i64:$RA, (PPCshl i64:$RST, i32:$RB))]>, isPPC64;
909 defm SRD : XForm_6r<31, 539, (outs g8rc:$RA), (ins g8rc:$RST, gprc:$RB),
910 "srd", "$RA, $RST, $RB", IIC_IntRotateD,
911 [(set i64:$RA, (PPCsrl i64:$RST, i32:$RB))]>, isPPC64;
912 defm SRAD : XForm_6rc<31, 794, (outs g8rc:$RA), (ins g8rc:$RST, gprc:$RB),
913 "srad", "$RA, $RST, $RB", IIC_IntRotateD,
914 [(set i64:$RA, (PPCsra i64:$RST, i32:$RB))]>, isPPC64;
917 defm CNTLZW8 : XForm_11r<31, 26, (outs g8rc:$RA), (ins g8rc:$RST),
918 "cntlzw", "$RA, $RST", IIC_IntGeneral, []>,
920 defm CNTTZW8 : XForm_11r<31, 538, (outs g8rc:$RA), (ins g8rc:$RST),
921 "cnttzw", "$RA, $RST", IIC_IntGeneral, []>,
924 defm EXTSB8 : XForm_11r<31, 954, (outs g8rc:$RA), (ins g8rc:$RST),
925 "extsb", "$RA, $RST", IIC_IntSimple,
926 [(set i64:$RA, (sext_inreg i64:$RST, i8))]>, SExt32To64;
927 defm EXTSH8 : XForm_11r<31, 922, (outs g8rc:$RA), (ins g8rc:$RST),
928 "extsh", "$RA, $RST", IIC_IntSimple,
929 [(set i64:$RA, (sext_inreg i64:$RST, i16))]>, SExt32To64;
931 defm SLW8 : XForm_6r<31, 24, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
932 "slw", "$RA, $RST, $RB", IIC_IntGeneral, []>, ZExt32To64;
933 defm SRW8 : XForm_6r<31, 536, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
934 "srw", "$RA, $RST, $RB", IIC_IntGeneral, []>, ZExt32To64;
939 def EXTSB8_32_64 : XForm_11<31, 954, (outs g8rc:$RA), (ins gprc:$RST),
940 "extsb $RA, $RST", IIC_IntSimple, []>, isPPC64,
942 def EXTSH8_32_64 : XForm_11<31, 922, (outs g8rc:$RA), (ins gprc:$RST),
943 "extsh $RA, $RST", IIC_IntSimple, []>, isPPC64,
947 defm EXTSW : XForm_11r<31, 986, (outs g8rc:$RA), (ins g8rc:$RST),
948 "extsw", "$RA, $RST", IIC_IntSimple,
949 [(set i64:$RA, (sext_inreg i64:$RST, i32))]>, isPPC64,
952 defm EXTSW_32_64 : XForm_11r<31, 986, (outs g8rc:$RA), (ins gprc:$RST),
953 "extsw", "$RA, $RST", IIC_IntSimple,
954 [(set i64:$RA, (sext i32:$RST))]>, isPPC64,
957 def EXTSW_32 : XForm_11<31, 986, (outs gprc:$RA), (ins gprc:$RST),
958 "extsw $RA, $RST", IIC_IntSimple,
982 defm CNTLZD : XForm_11r<31, 58, (outs g8rc:$RA), (ins g8rc:$RST),
983 "cntlzd", "$RA, $RST", IIC_IntGeneral,
984 [(set i64:$RA, (ctlz i64:$RST))]>,
986 defm CNTTZD : XForm_11r<31, 570, (outs g8rc:$RA), (ins g8rc:$RST),
987 "cnttzd", "$RA, $RST", IIC_IntGeneral,
988 [(set i64:$RA, (cttz i64:$RST))]>, Requires<[IsISA3_0]>,
990 def POPCNTD : XForm_11<31, 506, (outs g8rc:$RA), (ins g8rc:$RST),
991 "popcntd $RA, $RST", IIC_IntGeneral,
992 [(set i64:$RA, (ctpop i64:$RST))]>,
994 def BPERMD : XForm_6<31, 252, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
995 "bpermd $RA, $RST, $RB", IIC_IntGeneral,
996 [(set i64:$RA, (int_ppc_bpermd g8rc:$RST, g8rc:$RB))]>,
1000 def CMPB8 : XForm_6<31, 508, (outs g8rc:$RA), (ins g8rc:$RST, g8rc:$RB),
1001 "cmpb $RA, $RST, $RB", IIC_IntGeneral,
1002 [(set i64:$RA, (PPCcmpb i64:$RST, i64:$RB))]>;
1007 def POPCNTW : XForm_11<31, 378, (outs gprc:$RA), (ins gprc:$RST),
1008 "popcntw $RA, $RST", IIC_IntGeneral,
1009 [(set i32:$RA, (ctpop i32:$RST))]>;
1012 def POPCNTB8 : XForm_11<31, 122, (outs g8rc:$RA), (ins g8rc:$RST),
1013 "popcntb $RA, $RST", IIC_IntGeneral,
1014 [(set i64:$RA, (int_ppc_popcntb i64:$RST))]>;
1016 def CDTBCD8 : XForm_11<31, 282, (outs g8rc:$RA), (ins g8rc:$RST),
1017 "cdtbcd $RA, $RST", IIC_IntGeneral, []>;
1018 def CBCDTD8 : XForm_11<31, 314, (outs g8rc:$RA), (ins g8rc:$RST),
1019 "cbcdtd $RA, $RST", IIC_IntGeneral, []>;
1057 def MODSD : XForm_8<31, 777, (outs g8rc:$RST), (ins g8rc:$RA, g8rc:$RB),
1058 "modsd $RST, $RA, $RB", IIC_IntDivW,
1059 [(set i64:$RST, (srem i64:$RA, i64:$RB))]>;
1060 def MODUD : XForm_8<31, 265, (outs g8rc:$RST), (ins g8rc:$RA, g8rc:$RB),
1061 "modud $RST, $RA, $RB", IIC_IntDivW,
1062 [(set i64:$RST, (urem i64:$RA, i64:$RB))]>;
1074 def MULLI8 : DForm_2<7, (outs g8rc:$RST), (ins g8rc:$RA, s16imm64:$D),
1075 "mulli $RST, $RA, $D", IIC_IntMulLI,
1076 [(set i64:$RST, (mul i64:$RA, imm64SExt16:$D))]>;
1272 def LHA8: DForm_1<42, (outs g8rc:$RST), (ins (memri $D, $RA):$addr),
1273 "lha $RST, $addr", IIC_LdStLHA,
1274 [(set i64:$RST, (sextloadi16 DForm:$addr))]>,
1276 def LWA : DSForm_1<58, 2, (outs g8rc:$RST), (ins (memrix $D, $RA):$addr),
1277 "lwa $RST, $addr", IIC_LdStLWA,
1278 [(set i64:$RST,
1282 def LHAX8: XForm_1_memOp<31, 343, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
1283 "lhax $RST, $addr", IIC_LdStLHA,
1284 [(set i64:$RST, (sextloadi16 XForm:$addr))]>,
1286 def LWAX : XForm_1_memOp<31, 341, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
1287 "lwax $RST, $addr", IIC_LdStLHA,
1288 [(set i64:$RST, (sextloadi32 XForm:$addr))]>, isPPC64,
1292 def LWA_32 : DSForm_1<58, 2, (outs gprc:$RST), (ins (memrix $D, $RA):$addr),
1293 "lwa $RST, $addr", IIC_LdStLWA, []>, isPPC64,
1295 def LWAX_32 : XForm_1_memOp<31, 341, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
1296 "lwax $RST, $addr", IIC_LdStLHA, []>, isPPC64,
1303 def LHAU8 : DForm_1<43, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1305 "lhau $RST, $addr", IIC_LdStLHAU,
1311 def LHAUX8 : XForm_1_memOp<31, 375, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1313 "lhaux $RST, $addr", IIC_LdStLHAUX,
1316 def LWAUX : XForm_1_memOp<31, 373, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1318 "lwaux $RST, $addr", IIC_LdStLHAUX,
1327 def LBZ8 : DForm_1<34, (outs g8rc:$RST), (ins (memri $D, $RA):$addr),
1328 "lbz $RST, $addr", IIC_LdStLoad,
1329 [(set i64:$RST, (zextloadi8 DForm:$addr))]>, ZExt32To64,
1331 def LHZ8 : DForm_1<40, (outs g8rc:$RST), (ins (memri $D, $RA):$addr),
1332 "lhz $RST, $addr", IIC_LdStLoad,
1333 [(set i64:$RST, (zextloadi16 DForm:$addr))]>, ZExt32To64,
1335 def LWZ8 : DForm_1<32, (outs g8rc:$RST), (ins (memri $D, $RA):$addr),
1336 "lwz $RST, $addr", IIC_LdStLoad,
1337 [(set i64:$RST, (zextloadi32 DForm:$addr))]>, isPPC64,
1340 def LBZX8 : XForm_1_memOp<31, 87, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
1341 "lbzx $RST, $addr", IIC_LdStLoad,
1342 [(set i64:$RST, (zextloadi8 XForm:$addr))]>, ZExt32To64,
1344 def LHZX8 : XForm_1_memOp<31, 279, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
1345 "lhzx $RST, $addr", IIC_LdStLoad,
1346 [(set i64:$RST, (zextloadi16 XForm:$addr))]>,
1348 def LWZX8 : XForm_1_memOp<31, 23, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
1349 "lwzx $RST, $addr", IIC_LdStLoad,
1350 [(set i64:$RST, (zextloadi32 XForm:$addr))]>,
1356 def LBZU8 : DForm_1<35, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1358 "lbzu $RST, $addr", IIC_LdStLoadUpd,
1361 def LHZU8 : DForm_1<41, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1363 "lhzu $RST, $addr", IIC_LdStLoadUpd,
1366 def LWZU8 : DForm_1<33, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1368 "lwzu $RST, $addr", IIC_LdStLoadUpd,
1372 def LBZUX8 : XForm_1_memOp<31, 119, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1374 "lbzux $RST, $addr", IIC_LdStLoadUpdX,
1377 def LHZUX8 : XForm_1_memOp<31, 311, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1379 "lhzux $RST, $addr", IIC_LdStLoadUpdX,
1382 def LWZUX8 : XForm_1_memOp<31, 55, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1384 "lwzux $RST, $addr", IIC_LdStLoadUpdX,
1394 def LD : DSForm_1<58, 0, (outs g8rc:$RST), (ins (memrix $D, $RA):$addr),
1395 "ld $RST, $addr", IIC_LdStLD,
1396 [(set i64:$RST, (load DSForm:$addr))]>, isPPC64;
1417 def LDX : XForm_1_memOp<31, 21, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
1418 "ldx $RST, $addr", IIC_LdStLD,
1419 [(set i64:$RST, (load XForm:$addr))]>, isPPC64;
1422 def LDBRX : XForm_1_memOp<31, 532, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
1423 "ldbrx $RST, $addr", IIC_LdStLoad,
1424 [(set i64:$RST, (PPClbrx ForceXForm:$addr, i64))]>, isPPC64;
1428 def LHBRX8 : XForm_1_memOp<31, 790, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
1429 "lhbrx $RST, $addr", IIC_LdStLoad, []>, ZExt32To64;
1430 def LWBRX8 : XForm_1_memOp<31, 534, (outs g8rc:$RST), (ins (memrr $RA, $RB):$addr),
1431 "lwbrx $RST, $addr", IIC_LdStLoad, []>, ZExt32To64;
1435 def LDU : DSForm_1<58, 1, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1437 "ldu $RST, $addr", IIC_LdStLDU,
1441 def LDUX : XForm_1_memOp<31, 53, (outs g8rc:$RST, ptr_rc_nor0:$ea_result),
1443 "ldux $RST, $addr", IIC_LdStLDUX,
1639 def STB8 : DForm_1<38, (outs), (ins g8rc:$RST, (memri $D, $RA):$addr),
1640 "stb $RST, $addr", IIC_LdStStore,
1641 [(truncstorei8 i64:$RST, DForm:$addr)]>;
1642 def STH8 : DForm_1<44, (outs), (ins g8rc:$RST, (memri $D, $RA):$addr),
1643 "sth $RST, $addr", IIC_LdStStore,
1644 [(truncstorei16 i64:$RST, DForm:$addr)]>;
1645 def STW8 : DForm_1<36, (outs), (ins g8rc:$RST, (memri $D, $RA):$addr),
1646 "stw $RST, $addr", IIC_LdStStore,
1647 [(truncstorei32 i64:$RST, DForm:$addr)]>;
1648 def STBX8 : XForm_8_memOp<31, 215, (outs), (ins g8rc:$RST, (memrr $RA, $RB):$addr),
1649 "stbx $RST, $addr", IIC_LdStStore,
1650 [(truncstorei8 i64:$RST, XForm:$addr)]>,
1652 def STHX8 : XForm_8_memOp<31, 407, (outs), (ins g8rc:$RST, (memrr $RA, $RB):$addr),
1653 "sthx $RST, $addr", IIC_LdStStore,
1654 [(truncstorei16 i64:$RST, XForm:$addr)]>,
1656 def STWX8 : XForm_8_memOp<31, 151, (outs), (ins g8rc:$RST, (memrr $RA, $RB):$addr),
1657 "stwx $RST, $addr", IIC_LdStStore,
1658 [(truncstorei32 i64:$RST, XForm:$addr)]>,
1663 def STD : DSForm_1<62, 0, (outs), (ins g8rc:$RST, (memrix $D, $RA):$addr),
1664 "std $RST, $addr", IIC_LdStSTD,
1665 [(store i64:$RST, DSForm:$addr)]>, isPPC64;
1666 def STDX : XForm_8_memOp<31, 149, (outs), (ins g8rc:$RST, (memrr $RA, $RB):$addr),
1667 "stdx $RST, $addr", IIC_LdStSTD,
1668 [(store i64:$RST, XForm:$addr)]>, isPPC64,
1672 def STDBRX: XForm_8_memOp<31, 660, (outs), (ins g8rc:$RST, (memrr $RA, $RB):$addr),
1673 "stdbrx $RST, $addr", IIC_LdStStore,
1674 [(PPCstbrx i64:$RST, ForceXForm:$addr, i64)]>, isPPC64,
1681 def STQ : DSForm_1<62, 2, (outs), (ins g8prc:$RST, (memrix $D, $RA):$addr),
1682 "stq $RST, $addr", IIC_LdStSTQ,
1709 def STBU8 : DForm_1<39, (outs ptr_rc_nor0:$ea_res), (ins g8rc:$RST, (memri $D, $RA):$addr),
1710 "stbu $RST, $addr", IIC_LdStSTU, []>,
1712 def STHU8 : DForm_1<45, (outs ptr_rc_nor0:$ea_res), (ins g8rc:$RST, (memri $D, $RA):$addr),
1713 "sthu $RST, $addr", IIC_LdStSTU, []>,
1715 def STWU8 : DForm_1<37, (outs ptr_rc_nor0:$ea_res), (ins g8rc:$RST, (memri $D, $RA):$addr),
1716 "stwu $RST, $addr", IIC_LdStSTU, []>,
1720 (ins g8rc:$RST, (memrr $RA, $RB):$addr),
1721 "stbux $RST, $addr", IIC_LdStSTUX, []>,
1726 (ins g8rc:$RST, (memrr $RA, $RB):$addr),
1727 "sthux $RST, $addr", IIC_LdStSTUX, []>,
1732 (ins g8rc:$RST, (memrr $RA, $RB):$addr),
1733 "stwux $RST, $addr", IIC_LdStSTUX, []>,
1740 (ins g8rc:$RST, (memrix $D, $RA):$addr),
1741 "stdu $RST, $addr", IIC_LdStSTU, []>,
1746 (ins g8rc:$RST, (memrr $RA, $RB):$addr),
1747 "stdux $RST, $addr", IIC_LdStSTUX, []>,
1782 defm FCFID : XForm_26r<63, 846, (outs f8rc:$RST), (ins f8rc:$RB),
1783 "fcfid", "$RST, $RB", IIC_FPGeneral,
1784 [(set f64:$RST, (PPCany_fcfid f64:$RB))]>, isPPC64;
1785 defm FCTID : XForm_26r<63, 814, (outs f8rc:$RST), (ins f8rc:$RB),
1786 "fctid", "$RST, $RB", IIC_FPGeneral,
1788 defm FCTIDU : XForm_26r<63, 942, (outs f8rc:$RST), (ins f8rc:$RB),
1789 "fctidu", "$RST, $RB", IIC_FPGeneral,
1791 defm FCTIDZ : XForm_26r<63, 815, (outs f8rc:$RST), (ins f8rc:$RB),
1792 "fctidz", "$RST, $RB", IIC_FPGeneral,
1793 [(set f64:$RST, (PPCany_fctidz f64:$RB))]>, isPPC64;
1795 defm FCFIDU : XForm_26r<63, 974, (outs f8rc:$RST), (ins f8rc:$RB),
1796 "fcfidu", "$RST, $RB", IIC_FPGeneral,
1797 [(set f64:$RST, (PPCany_fcfidu f64:$RB))]>, isPPC64;
1798 defm FCFIDS : XForm_26r<59, 846, (outs f4rc:$RST), (ins f8rc:$RB),
1799 "fcfids", "$RST, $RB", IIC_FPGeneral,
1800 [(set f32:$RST, (PPCany_fcfids f64:$RB))]>, isPPC64;
1801 defm FCFIDUS : XForm_26r<59, 974, (outs f4rc:$RST), (ins f8rc:$RB),
1802 "fcfidus", "$RST, $RB", IIC_FPGeneral,
1803 [(set f32:$RST, (PPCany_fcfidus f64:$RB))]>, isPPC64;
1804 defm FCTIDUZ : XForm_26r<63, 943, (outs f8rc:$RST), (ins f8rc:$RB),
1805 "fctiduz", "$RST, $RB", IIC_FPGeneral,
1806 [(set f64:$RST, (PPCany_fctiduz f64:$RB))]>, isPPC64;
1807 defm FCTIWUZ : XForm_26r<63, 143, (outs f8rc:$RST), (ins f8rc:$RB),
1808 "fctiwuz", "$RST, $RB", IIC_FPGeneral,
1809 [(set f64:$RST, (PPCany_fctiwuz f64:$RB))]>, isPPC64;
2009 def SLBIEG : XForm_26<31, 466, (outs), (ins gprc:$RST, gprc:$RB),
2010 "slbieg $RST, $RB", IIC_SprSLBIEG, []>;