Lines Matching full:rst

1583     Defs = [LR, R2], Uses = [CTR, RM], RST = 2 in {
1592 Defs = [LR, R2, RM], Uses = [CTR, RM], RST = 2 in {
1867 def LBARX : XForm_1_memOp<31, 52, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
1868 "lbarx $RST, $addr", IIC_LdStLWARX, []>,
1871 def LHARX : XForm_1_memOp<31, 116, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
1872 "lharx $RST, $addr", IIC_LdStLWARX, []>,
1875 def LWARX : XForm_1_memOp<31, 20, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
1876 "lwarx $RST, $addr", IIC_LdStLWARX, []>;
1880 def LBARXL : XForm_1_memOp<31, 52, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
1881 "lbarx $RST, $addr, 1", IIC_LdStLWARX, []>, isRecordForm,
1884 def LHARXL : XForm_1_memOp<31, 116, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
1885 "lharx $RST, $addr, 1", IIC_LdStLWARX, []>, isRecordForm,
1888 def LWARXL : XForm_1_memOp<31, 20, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
1889 "lwarx $RST, $addr, 1", IIC_LdStLWARX, []>, isRecordForm;
1894 def LWAT : X_RD5_RS5_IM5<31, 582, (outs gprc:$RST), (ins gprc:$RA, u5imm:$RB),
1895 "lwat $RST, $RA, $RB", IIC_LdStLoad>,
1900 def STBCX : XForm_1_memOp<31, 694, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
1901 "stbcx. $RST, $addr", IIC_LdStSTWCX, []>,
1904 def STHCX : XForm_1_memOp<31, 726, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
1905 "sthcx. $RST, $addr", IIC_LdStSTWCX, []>,
1908 def STWCX : XForm_1_memOp<31, 150, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
1909 "stwcx. $RST, $addr", IIC_LdStSTWCX, []>, isRecordForm;
1913 def STWAT : X_RD5_RS5_IM5<31, 710, (outs), (ins gprc:$RST, gprc:$RA, u5imm:$RB),
1914 "stwat $RST, $RA, $RB", IIC_LdStStore>,
1920 def TWI : DForm_base<3, (outs), (ins u5imm:$RST, gprc:$RA, s16imm:$D, variable_ops),
1921 "twi $RST, $RA, $D", IIC_IntTrapW, []>;
1922 def TW : XForm_1<31, 4, (outs), (ins u5imm:$RST, gprc:$RA, gprc:$RB, variable_ops),
1923 "tw $RST, $RA, $RB", IIC_IntTrapW, []>;
1924 def TDI : DForm_base<2, (outs), (ins u5imm:$RST, g8rc:$RA, s16imm:$D, variable_ops),
1925 "tdi $RST, $RA, $D", IIC_IntTrapD, []>;
1926 def TD : XForm_1<31, 68, (outs), (ins u5imm:$RST, g8rc:$RA, g8rc:$RB, variable_ops),
1927 "td $RST, $RA, $RB", IIC_IntTrapD, []>;
1929 def POPCNTB : XForm_11<31, 122, (outs gprc:$RA), (ins gprc:$RST),
1930 "popcntb $RA, $RST", IIC_IntGeneral,
1931 [(set i32:$RA, (int_ppc_popcntb i32:$RST))]>;
1933 def CDTBCD : XForm_11<31, 282, (outs gprc:$RA), (ins gprc:$RST),
1934 "cdtbcd $RA, $RST", IIC_IntGeneral, []>;
1935 def CBCDTD : XForm_11<31, 314, (outs gprc:$RA), (ins gprc:$RST),
1936 "cbcdtd $RA, $RST", IIC_IntGeneral, []>;
1947 def LBZ : DForm_1<34, (outs gprc:$RST), (ins (memri $D, $RA):$addr),
1948 "lbz $RST, $addr", IIC_LdStLoad,
1949 [(set i32:$RST, (zextloadi8 DForm:$addr))]>, ZExt32To64,
1951 def LHA : DForm_1<42, (outs gprc:$RST), (ins (memri $D, $RA):$addr),
1952 "lha $RST, $addr", IIC_LdStLHA,
1953 [(set i32:$RST, (sextloadi16 DForm:$addr))]>,
1955 def LHZ : DForm_1<40, (outs gprc:$RST), (ins (memri $D, $RA):$addr),
1956 "lhz $RST, $addr", IIC_LdStLoad,
1957 [(set i32:$RST, (zextloadi16 DForm:$addr))]>, ZExt32To64,
1959 def LWZ : DForm_1<32, (outs gprc:$RST), (ins (memri $D, $RA):$addr),
1960 "lwz $RST, $addr", IIC_LdStLoad,
1961 [(set i32:$RST, (load DForm:$addr))]>, ZExt32To64;
1964 def LFS : DForm_1<48, (outs f4rc:$RST), (ins (memri $D, $RA):$addr),
1965 "lfs $RST, $addr", IIC_LdStLFD,
1966 [(set f32:$RST, (load DForm:$addr))]>;
1967 def LFD : DForm_1<50, (outs f8rc:$RST), (ins (memri $D, $RA):$addr),
1968 "lfd $RST, $addr", IIC_LdStLFD,
1969 [(set f64:$RST, (load DForm:$addr))]>;
1975 def LBZU : DForm_1<35, (outs gprc:$RST, ptr_rc_nor0:$ea_result), (ins (memri $D, $RA):$addr),
1976 "lbzu $RST, $addr", IIC_LdStLoadUpd,
1979 def LHAU : DForm_1<43, (outs gprc:$RST, ptr_rc_nor0:$ea_result), (ins (memri $D, $RA):$addr),
1980 "lhau $RST, $addr", IIC_LdStLHAU,
1984 def LHZU : DForm_1<41, (outs gprc:$RST, ptr_rc_nor0:$ea_result), (ins (memri $D, $RA):$addr),
1985 "lhzu $RST, $addr", IIC_LdStLoadUpd,
1989 def LWZU : DForm_1<33, (outs gprc:$RST, ptr_rc_nor0:$ea_result), (ins (memri $D, $RA):$addr),
1990 "lwzu $RST, $addr", IIC_LdStLoadUpd,
1995 def LFSU : DForm_1<49, (outs f4rc:$RST, ptr_rc_nor0:$ea_result), (ins (memri $D, $RA):$addr),
1996 "lfsu $RST, $addr", IIC_LdStLFDU,
2000 def LFDU : DForm_1<51, (outs f8rc:$RST, ptr_rc_nor0:$ea_result), (ins (memri $D, $RA):$addr),
2001 "lfdu $RST, $addr", IIC_LdStLFDU,
2008 def LBZUX : XForm_1_memOp<31, 119, (outs gprc:$RST, ptr_rc_nor0:$ea_result),
2010 "lbzux $RST, $addr", IIC_LdStLoadUpdX,
2014 def LHAUX : XForm_1_memOp<31, 375, (outs gprc:$RST, ptr_rc_nor0:$ea_result),
2016 "lhaux $RST, $addr", IIC_LdStLHAUX,
2020 def LHZUX : XForm_1_memOp<31, 311, (outs gprc:$RST, ptr_rc_nor0:$ea_result),
2022 "lhzux $RST, $addr", IIC_LdStLoadUpdX,
2026 def LWZUX : XForm_1_memOp<31, 55, (outs gprc:$RST, ptr_rc_nor0:$ea_result),
2028 "lwzux $RST, $addr", IIC_LdStLoadUpdX,
2033 def LFSUX : XForm_1_memOp<31, 567, (outs f4rc:$RST, ptr_rc_nor0:$ea_result),
2035 "lfsux $RST, $addr", IIC_LdStLFDUX,
2039 def LFDUX : XForm_1_memOp<31, 631, (outs f8rc:$RST, ptr_rc_nor0:$ea_result),
2041 "lfdux $RST, $addr", IIC_LdStLFDUX,
2051 def LBZX : XForm_1_memOp<31, 87, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
2052 "lbzx $RST, $addr", IIC_LdStLoad,
2053 [(set i32:$RST, (zextloadi8 XForm:$addr))]>, ZExt32To64,
2055 def LHAX : XForm_1_memOp<31, 343, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
2056 "lhax $RST, $addr", IIC_LdStLHA,
2057 [(set i32:$RST, (sextloadi16 XForm:$addr))]>,
2059 def LHZX : XForm_1_memOp<31, 279, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
2060 "lhzx $RST, $addr", IIC_LdStLoad,
2061 [(set i32:$RST, (zextloadi16 XForm:$addr))]>, ZExt32To64,
2063 def LWZX : XForm_1_memOp<31, 23, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
2064 "lwzx $RST, $addr", IIC_LdStLoad,
2065 [(set i32:$RST, (load XForm:$addr))]>, ZExt32To64;
2066 def LHBRX : XForm_1_memOp<31, 790, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
2067 "lhbrx $RST, $addr", IIC_LdStLoad,
2068 [(set i32:$RST, (PPClbrx ForceXForm:$addr, i16))]>, ZExt32To64;
2069 def LWBRX : XForm_1_memOp<31, 534, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
2070 "lwbrx $RST, $addr", IIC_LdStLoad,
2071 [(set i32:$RST, (PPClbrx ForceXForm:$addr, i32))]>, ZExt32To64;
2074 def LFSX : XForm_25_memOp<31, 535, (outs f4rc:$RST), (ins (memrr $RA, $RB):$addr),
2075 "lfsx $RST, $addr", IIC_LdStLFD,
2076 [(set f32:$RST, (load XForm:$addr))]>;
2077 def LFDX : XForm_25_memOp<31, 599, (outs f8rc:$RST), (ins (memrr $RA, $RB):$addr),
2078 "lfdx $RST, $addr", IIC_LdStLFD,
2079 [(set f64:$RST, (load XForm:$addr))]>;
2081 def LFIWAX : XForm_25_memOp<31, 855, (outs f8rc:$RST), (ins (memrr $RA, $RB):$addr),
2082 "lfiwax $RST, $addr", IIC_LdStLFD,
2083 [(set f64:$RST, (PPClfiwax ForceXForm:$addr))]>;
2084 def LFIWZX : XForm_25_memOp<31, 887, (outs f8rc:$RST), (ins (memrr $RA, $RB):$addr),
2085 "lfiwzx $RST, $addr", IIC_LdStLFD,
2086 [(set f64:$RST, (PPClfiwzx ForceXForm:$addr))]>;
2092 def LMW : DForm_1<46, (outs gprc:$RST), (ins (memri $D, $RA):$src),
2093 "lmw $RST, $src", IIC_LdStLMW, []>;
2101 def STB : DForm_1<38, (outs), (ins gprc:$RST, (memri $D, $RA):$dst),
2102 "stb $RST, $dst", IIC_LdStStore,
2103 [(truncstorei8 i32:$RST, DForm:$dst)]>;
2104 def STH : DForm_1<44, (outs), (ins gprc:$RST, (memri $D, $RA):$dst),
2105 "sth $RST, $dst", IIC_LdStStore,
2106 [(truncstorei16 i32:$RST, DForm:$dst)]>;
2107 def STW : DForm_1<36, (outs), (ins gprc:$RST, (memri $D, $RA):$dst),
2108 "stw $RST, $dst", IIC_LdStStore,
2109 [(store i32:$RST, DForm:$dst)]>;
2111 def STFS : DForm_1<52, (outs), (ins f4rc:$RST, (memri $D, $RA):$dst),
2112 "stfs $RST, $dst", IIC_LdStSTFD,
2113 [(store f32:$RST, DForm:$dst)]>;
2114 def STFD : DForm_1<54, (outs), (ins f8rc:$RST, (memri $D, $RA):$dst),
2115 "stfd $RST, $dst", IIC_LdStSTFD,
2116 [(store f64:$RST, DForm:$dst)]>;
2122 def STBU : DForm_1<39, (outs ptr_rc_nor0:$ea_res), (ins gprc:$RST, (memri $D, $RA):$dst),
2123 "stbu $RST, $dst", IIC_LdStSTU, []>,
2125 def STHU : DForm_1<45, (outs ptr_rc_nor0:$ea_res), (ins gprc:$RST, (memri $D, $RA):$dst),
2126 "sthu $RST, $dst", IIC_LdStSTU, []>,
2128 def STWU : DForm_1<37, (outs ptr_rc_nor0:$ea_res), (ins gprc:$RST, (memri $D, $RA):$dst),
2129 "stwu $RST, $dst", IIC_LdStSTU, []>,
2132 def STFSU : DForm_1<53, (outs ptr_rc_nor0:$ea_res), (ins f4rc:$RST, (memri $D, $RA):$dst),
2133 "stfsu $RST, $dst", IIC_LdStSTFDU, []>,
2135 def STFDU : DForm_1<55, (outs ptr_rc_nor0:$ea_res), (ins f8rc:$RST, (memri $D, $RA):$dst),
2136 "stfdu $RST, $dst", IIC_LdStSTFDU, []>,
2157 def STBX : XForm_8_memOp<31, 215, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
2158 "stbx $RST, $addr", IIC_LdStStore,
2159 [(truncstorei8 i32:$RST, XForm:$addr)]>,
2161 def STHX : XForm_8_memOp<31, 407, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
2162 "sthx $RST, $addr", IIC_LdStStore,
2163 [(truncstorei16 i32:$RST, XForm:$addr)]>,
2165 def STWX : XForm_8_memOp<31, 151, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
2166 "stwx $RST, $addr", IIC_LdStStore,
2167 [(store i32:$RST, XForm:$addr)]>,
2170 def STHBRX: XForm_8_memOp<31, 918, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
2171 "sthbrx $RST, $addr", IIC_LdStStore,
2172 [(PPCstbrx i32:$RST, ForceXForm:$addr, i16)]>,
2174 def STWBRX: XForm_8_memOp<31, 662, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
2175 "stwbrx $RST, $addr", IIC_LdStStore,
2176 [(PPCstbrx i32:$RST, ForceXForm:$addr, i32)]>,
2180 def STFIWX: XForm_28_memOp<31, 983, (outs), (ins f8rc:$RST, (memrr $RA, $RB):$addr),
2181 "stfiwx $RST, $addr", IIC_LdStSTFD,
2182 [(PPCstfiwx f64:$RST, ForceXForm:$addr)]>;
2184 def STFSX : XForm_28_memOp<31, 663, (outs), (ins f4rc:$RST, (memrr $RA, $RB):$addr),
2185 "stfsx $RST, $addr", IIC_LdStSTFD,
2186 [(store f32:$RST, XForm:$addr)]>;
2187 def STFDX : XForm_28_memOp<31, 727, (outs), (ins f8rc:$RST, (memrr $RA, $RB):$addr),
2188 "stfdx $RST, $addr", IIC_LdStSTFD,
2189 [(store f64:$RST, XForm:$addr)]>;
2196 (ins gprc:$RST, (memrr $RA, $RB):$addr),
2197 "stbux $RST, $addr", IIC_LdStSTUX, []>,
2202 (ins gprc:$RST, (memrr $RA, $RB):$addr),
2203 "sthux $RST, $addr", IIC_LdStSTUX, []>,
2208 (ins gprc:$RST, (memrr $RA, $RB):$addr),
2209 "stwux $RST, $addr", IIC_LdStSTUX, []>,
2215 (ins f4rc:$RST, (memrr $RA, $RB):$addr),
2216 "stfsux $RST, $addr", IIC_LdStSTFDU, []>,
2221 (ins f8rc:$RST, (memrr $RA, $RB):$addr),
2222 "stfdux $RST, $addr", IIC_LdStSTFDU, []>,
2247 def STMW : DForm_1<47, (outs), (ins gprc:$RST, (memri $D, $RA):$dst),
2248 "stmw $RST, $dst", IIC_LdStLMW, []>;
2283 def ADDI : DForm_2<14, (outs gprc:$RST), (ins gprc_nor0:$RA, s16imm:$D),
2284 "addi $RST, $RA, $D", IIC_IntSimple,
2285 [(set i32:$RST, (add i32:$RA, imm32SExt16:$D))]>;
2288 def ADDIC : DForm_2<12, (outs gprc:$RST), (ins gprc:$RA, s16imm:$D),
2289 "addic $RST, $RA, $D", IIC_IntGeneral,
2290 [(set i32:$RST, (addc i32:$RA, imm32SExt16:$D))]>,
2293 def ADDIC_rec : DForm_2<13, (outs gprc:$RST), (ins gprc:$RA, s16imm:$D),
2294 "addic. $RST, $RA, $D", IIC_IntGeneral,
2297 def ADDIS : DForm_2<15, (outs gprc:$RST), (ins gprc_nor0:$RA, s17imm:$D),
2298 "addis $RST, $RA, $D", IIC_IntSimple,
2299 [(set i32:$RST, (add i32:$RA, imm16ShiftedSExt:$D))]>;
2301 def LA : DForm_2<14, (outs gprc:$RST), (ins gprc_nor0:$RA, s16imm:$D),
2302 "la $RST, $D($RA)", IIC_IntGeneral,
2303 [(set i32:$RST, (add i32:$RA,
2305 def MULLI : DForm_2< 7, (outs gprc:$RST), (ins gprc:$RA, s16imm:$D),
2306 "mulli $RST, $RA, $D", IIC_IntMulLI,
2307 [(set i32:$RST, (mul i32:$RA, imm32SExt16:$D))]>;
2309 def SUBFIC : DForm_2< 8, (outs gprc:$RST), (ins gprc:$RA, s16imm:$D),
2310 "subfic $RST, $RA, $D", IIC_IntGeneral,
2311 [(set i32:$RST, (subc imm32SExt16:$D, i32:$RA))]>;
2314 def LI : DForm_2_r0<14, (outs gprc:$RST), (ins s16imm:$D),
2315 "li $RST, $D", IIC_IntSimple,
2316 [(set i32:$RST, imm32SExt16:$D)]>, SExt32To64;
2317 def LIS : DForm_2_r0<15, (outs gprc:$RST), (ins s17imm:$D),
2318 "lis $RST, $D", IIC_IntSimple,
2319 [(set i32:$RST, imm16ShiftedSExt:$D)]>, SExt32To64;
2328 def ANDI_rec : DForm_4<28, (outs gprc:$RA), (ins gprc:$RST, u16imm:$D),
2329 "andi. $RA, $RST, $D", IIC_IntGeneral,
2330 [(set i32:$RA, (and i32:$RST, immZExt16:$D))]>,
2332 def ANDIS_rec : DForm_4<29, (outs gprc:$RA), (ins gprc:$RST, u16imm:$D),
2333 "andis. $RA, $RST, $D", IIC_IntGeneral,
2334 [(set i32:$RA, (and i32:$RST, imm16ShiftedZExt:$D))]>,
2337 def ORI : DForm_4<24, (outs gprc:$RA), (ins gprc:$RST, u16imm:$D),
2338 "ori $RA, $RST, $D", IIC_IntSimple,
2339 [(set i32:$RA, (or i32:$RST, immZExt16:$D))]>;
2340 def ORIS : DForm_4<25, (outs gprc:$RA), (ins gprc:$RST, u16imm:$D),
2341 "oris $RA, $RST, $D", IIC_IntSimple,
2342 [(set i32:$RA, (or i32:$RST, imm16ShiftedZExt:$D))]>;
2343 def XORI : DForm_4<26, (outs gprc:$RA), (ins gprc:$RST, u16imm:$D),
2344 "xori $RA, $RST, $D", IIC_IntSimple,
2345 [(set i32:$RA, (xor i32:$RST, immZExt16:$D))]>;
2346 def XORIS : DForm_4<27, (outs gprc:$RA), (ins gprc:$RST, u16imm:$D),
2347 "xoris $RA, $RST, $D", IIC_IntSimple,
2348 [(set i32:$RA, (xor i32:$RST, imm16ShiftedZExt:$D))]>;
2374 defm NAND : XForm_6r<31, 476, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2375 "nand", "$RA, $RST, $RB", IIC_IntSimple,
2376 [(set i32:$RA, (not (and i32:$RST, i32:$RB)))]>;
2377 defm AND : XForm_6r<31, 28, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2378 "and", "$RA, $RST, $RB", IIC_IntSimple,
2379 [(set i32:$RA, (and i32:$RST, i32:$RB))]>;
2381 defm ANDC : XForm_6r<31, 60, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2382 "andc", "$RA, $RST, $RB", IIC_IntSimple,
2383 [(set i32:$RA, (and i32:$RST, (not i32:$RB)))]>;
2385 defm OR : XForm_6r<31, 444, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2386 "or", "$RA, $RST, $RB", IIC_IntSimple,
2387 [(set i32:$RA, (or i32:$RST, i32:$RB))]>;
2388 defm NOR : XForm_6r<31, 124, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2389 "nor", "$RA, $RST, $RB", IIC_IntSimple,
2390 [(set i32:$RA, (not (or i32:$RST, i32:$RB)))]>;
2392 defm ORC : XForm_6r<31, 412, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2393 "orc", "$RA, $RST, $RB", IIC_IntSimple,
2394 [(set i32:$RA, (or i32:$RST, (not i32:$RB)))]>;
2396 defm EQV : XForm_6r<31, 284, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2397 "eqv", "$RA, $RST, $RB", IIC_IntSimple,
2398 [(set i32:$RA, (not (xor i32:$RST, i32:$RB)))]>;
2399 defm XOR : XForm_6r<31, 316, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2400 "xor", "$RA, $RST, $RB", IIC_IntSimple,
2401 [(set i32:$RA, (xor i32:$RST, i32:$RB))]>;
2403 defm SLW : XForm_6r<31, 24, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2404 "slw", "$RA, $RST, $RB", IIC_IntGeneral,
2405 [(set i32:$RA, (PPCshl i32:$RST, i32:$RB))]>, ZExt32To64;
2406 defm SRW : XForm_6r<31, 536, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2407 "srw", "$RA, $RST, $RB", IIC_IntGeneral,
2408 [(set i32:$RA, (PPCsrl i32:$RST, i32:$RB))]>, ZExt32To64;
2409 defm SRAW : XForm_6rc<31, 792, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2410 "sraw", "$RA, $RST, $RB", IIC_IntShift,
2411 [(set i32:$RA, (PPCsra i32:$RST, i32:$RB))]>, SExt32To64;
2424 defm SRAWI : XForm_10rc<31, 824, (outs gprc:$RA), (ins gprc:$RST, u5imm:$RB),
2425 "srawi", "$RA, $RST, $RB", IIC_IntShift,
2426 [(set i32:$RA, (sra i32:$RST, (i32 imm:$RB)))]>,
2428 defm CNTLZW : XForm_11r<31, 26, (outs gprc:$RA), (ins gprc:$RST),
2429 "cntlzw", "$RA, $RST", IIC_IntGeneral,
2430 [(set i32:$RA, (ctlz i32:$RST))]>, ZExt32To64;
2431 defm CNTTZW : XForm_11r<31, 538, (outs gprc:$RA), (ins gprc:$RST),
2432 "cnttzw", "$RA, $RST", IIC_IntGeneral,
2433 [(set i32:$RA, (cttz i32:$RST))]>, Requires<[IsISA3_0]>,
2435 defm EXTSB : XForm_11r<31, 954, (outs gprc:$RA), (ins gprc:$RST),
2436 "extsb", "$RA, $RST", IIC_IntSimple,
2437 [(set i32:$RA, (sext_inreg i32:$RST, i8))]>, SExt32To64;
2438 defm EXTSH : XForm_11r<31, 922, (outs gprc:$RA), (ins gprc:$RST),
2439 "extsh", "$RA, $RST", IIC_IntSimple,
2440 [(set i32:$RA, (sext_inreg i32:$RST, i16))]>, SExt32To64;
2443 def CMPB : XForm_6<31, 508, (outs gprc:$RA), (ins gprc:$RST, gprc:$RB),
2444 "cmpb $RA, $RST, $RB", IIC_IntGeneral,
2445 [(set i32:$RA, (PPCcmpb i32:$RST, i32:$RB))]>;
2476 defm FRIND : XForm_26r<63, 392, (outs f8rc:$RST), (ins f8rc:$RB),
2477 "frin", "$RST, $RB", IIC_FPGeneral,
2478 [(set f64:$RST, (any_fround f64:$RB))]>;
2479 defm FRINS : XForm_26r<63, 392, (outs f4rc:$RST), (ins f4rc:$RB),
2480 "frin", "$RST, $RB", IIC_FPGeneral,
2481 [(set f32:$RST, (any_fround f32:$RB))]>;
2484 defm FRIPD : XForm_26r<63, 456, (outs f8rc:$RST), (ins f8rc:$RB),
2485 "frip", "$RST, $RB", IIC_FPGeneral,
2486 [(set f64:$RST, (any_fceil f64:$RB))]>;
2487 defm FRIPS : XForm_26r<63, 456, (outs f4rc:$RST), (ins f4rc:$RB),
2488 "frip", "$RST, $RB", IIC_FPGeneral,
2489 [(set f32:$RST, (any_fceil f32:$RB))]>;
2491 defm FRIZD : XForm_26r<63, 424, (outs f8rc:$RST), (ins f8rc:$RB),
2492 "friz", "$RST, $RB", IIC_FPGeneral,
2493 [(set f64:$RST, (any_ftrunc f64:$RB))]>;
2494 defm FRIZS : XForm_26r<63, 424, (outs f4rc:$RST), (ins f4rc:$RB),
2495 "friz", "$RST, $RB", IIC_FPGeneral,
2496 [(set f32:$RST, (any_ftrunc f32:$RB))]>;
2498 defm FRIMD : XForm_26r<63, 488, (outs f8rc:$RST), (ins f8rc:$RB),
2499 "frim", "$RST, $RB", IIC_FPGeneral,
2500 [(set f64:$RST, (any_ffloor f64:$RB))]>;
2501 defm FRIMS : XForm_26r<63, 488, (outs f4rc:$RST), (ins f4rc:$RB),
2502 "frim", "$RST, $RB", IIC_FPGeneral,
2503 [(set f32:$RST, (any_ffloor f32:$RB))]>;
2507 defm FCTIW : XForm_26r<63, 14, (outs f8rc:$RST), (ins f8rc:$RB),
2508 "fctiw", "$RST, $RB", IIC_FPGeneral,
2510 defm FCTIWU : XForm_26r<63, 142, (outs f8rc:$RST), (ins f8rc:$RB),
2511 "fctiwu", "$RST, $RB", IIC_FPGeneral,
2513 defm FCTIWZ : XForm_26r<63, 15, (outs f8rc:$RST), (ins f8rc:$RB),
2514 "fctiwz", "$RST, $RB", IIC_FPGeneral,
2515 [(set f64:$RST, (PPCany_fctiwz f64:$RB))]>;
2517 defm FRSP : XForm_26r<63, 12, (outs f4rc:$RST), (ins f8rc:$RB),
2518 "frsp", "$RST, $RB", IIC_FPGeneral,
2519 [(set f32:$RST, (any_fpround f64:$RB))]>;
2521 defm FSQRT : XForm_26r<63, 22, (outs f8rc:$RST), (ins f8rc:$RB),
2522 "fsqrt", "$RST, $RB", IIC_FPSqrtD,
2523 [(set f64:$RST, (any_fsqrt f64:$RB))]>;
2524 defm FSQRTS : XForm_26r<59, 22, (outs f4rc:$RST), (ins f4rc:$RB),
2525 "fsqrts", "$RST, $RB", IIC_FPSqrtS,
2526 [(set f32:$RST, (any_fsqrt f32:$RB))]>;
2537 defm FMR : XForm_26r<63, 72, (outs f4rc:$RST), (ins f4rc:$RB),
2538 "fmr", "$RST, $RB", IIC_FPGeneral,
2539 []>, // (set f32:$RST, f32:$RB)
2544 defm FABSS : XForm_26r<63, 264, (outs f4rc:$RST), (ins f4rc:$RB),
2545 "fabs", "$RST, $RB", IIC_FPGeneral,
2546 [(set f32:$RST, (fabs f32:$RB))]>;
2548 defm FABSD : XForm_26r<63, 264, (outs f8rc:$RST), (ins f8rc:$RB),
2549 "fabs", "$RST, $RB", IIC_FPGeneral,
2550 [(set f64:$RST, (fabs f64:$RB))]>;
2551 defm FNABSS : XForm_26r<63, 136, (outs f4rc:$RST), (ins f4rc:$RB),
2552 "fnabs", "$RST, $RB", IIC_FPGeneral,
2553 [(set f32:$RST, (fneg (fabs f32:$RB)))]>;
2555 defm FNABSD : XForm_26r<63, 136, (outs f8rc:$RST), (ins f8rc:$RB),
2556 "fnabs", "$RST, $RB", IIC_FPGeneral,
2557 [(set f64:$RST, (fneg (fabs f64:$RB)))]>;
2558 defm FNEGS : XForm_26r<63, 40, (outs f4rc:$RST), (ins f4rc:$RB),
2559 "fneg", "$RST, $RB", IIC_FPGeneral,
2560 [(set f32:$RST, (fneg f32:$RB))]>;
2562 defm FNEGD : XForm_26r<63, 40, (outs f8rc:$RST), (ins f8rc:$RB),
2563 "fneg", "$RST, $RB", IIC_FPGeneral,
2564 [(set f64:$RST, (fneg f64:$RB))]>;
2566 defm FCPSGNS : XForm_28r<63, 8, (outs f4rc:$RST), (ins f4rc:$RA, f4rc:$RB),
2567 "fcpsgn", "$RST, $RA, $RB", IIC_FPGeneral,
2568 [(set f32:$RST, (fcopysign f32:$RB, f32:$RA))]>;
2570 defm FCPSGND : XForm_28r<63, 8, (outs f8rc:$RST), (ins f8rc:$RA, f8rc:$RB),
2571 "fcpsgn", "$RST, $RA, $RB", IIC_FPGeneral,
2572 [(set f64:$RST, (fcopysign f64:$RB, f64:$RA))]>;
2576 defm FRE : XForm_26r<63, 24, (outs f8rc:$RST), (ins f8rc:$RB),
2577 "fre", "$RST, $RB", IIC_FPGeneral,
2578 [(set f64:$RST, (PPCfre f64:$RB))]>;
2579 defm FRES : XForm_26r<59, 24, (outs f4rc:$RST), (ins f4rc:$RB),
2580 "fres", "$RST, $RB", IIC_FPGeneral,
2581 [(set f32:$RST, (PPCfre f32:$RB))]>;
2582 defm FRSQRTE : XForm_26r<63, 26, (outs f8rc:$RST), (ins f8rc:$RB),
2583 "frsqrte", "$RST, $RB", IIC_FPGeneral,
2584 [(set f64:$RST, (PPCfrsqrte f64:$RB))]>;
2585 defm FRSQRTES : XForm_26r<59, 26, (outs f4rc:$RST), (ins f4rc:$RB),
2586 "frsqrtes", "$RST, $RB", IIC_FPGeneral,
2587 [(set f32:$RST, (PPCfrsqrte f32:$RB))]>;
2678 def MFSPR : XFXForm_1<31, 339, (outs gprc:$RST), (ins i32imm:$SPR),
2679 "mfspr $RST, $SPR", IIC_SprMFSPR>;
2680 def MTSPR : XFXForm_1<31, 467, (outs), (ins i32imm:$SPR, gprc:$RST),
2681 "mtspr $SPR, $RST", IIC_SprMTSPR>;
2683 def MFTB : XFXForm_1<31, 371, (outs gprc:$RST), (ins i32imm:$SPR),
2684 "mftb $RST, $SPR", IIC_SprMFTB>;
2686 def MFPMR : XFXForm_1<31, 334, (outs gprc:$RST), (ins i32imm:$SPR),
2687 "mfpmr $RST, $SPR", IIC_SprMFPMR>;
2689 def MTPMR : XFXForm_1<31, 462, (outs), (ins i32imm:$SPR, gprc:$RST),
2690 "mtpmr $SPR, $RST", IIC_SprMTPMR>;
2700 def MFCTR : XFXForm_1_ext<31, 339, 9, (outs gprc:$RST), (ins),
2701 "mfctr $RST", IIC_SprMFSPR>,
2704 let Defs = [CTR], Pattern = [(PPCmtctr i32:$RST)] in {
2705 def MTCTR : XFXForm_1_ext<31, 467, 9, (outs), (ins gprc:$RST),
2706 "mtctr $RST", IIC_SprMTSPR>,
2710 let Pattern = [(int_set_loop_iterations i32:$RST)] in
2711 def MTCTRloop : XFXForm_1_ext<31, 467, 9, (outs), (ins gprc:$RST),
2712 "mtctr $RST", IIC_SprMTSPR>,
2722 def MTLR : XFXForm_1_ext<31, 467, 8, (outs), (ins gprc:$RST),
2723 "mtlr $RST", IIC_SprMTSPR>,
2727 def MFLR : XFXForm_1_ext<31, 339, 8, (outs gprc:$RST), (ins),
2728 "mflr $RST", IIC_SprMFSPR>,
2734 def MTUDSCR : XFXForm_1_ext<31, 467, 3, (outs), (ins gprc:$RST),
2735 "mtspr 3, $RST", IIC_SprMTSPR>,
2737 def MFUDSCR : XFXForm_1_ext<31, 339, 3, (outs gprc:$RST), (ins),
2738 "mfspr $RST, 3", IIC_SprMFSPR>,
2753 def MTVRSAVE : XFXForm_1_ext<31, 467, 256, (outs), (ins gprc:$RST),
2754 "mtspr 256, $RST", IIC_IntGeneral>,
2756 def MFVRSAVE : XFXForm_1_ext<31, 339, 256, (outs gprc:$RST), (ins),
2757 "mfspr $RST, 256", IIC_IntGeneral>,
2761 (outs VRSAVERC:$SPR), (ins gprc:$RST),
2762 "mtspr 256, $RST", IIC_IntGeneral>,
2764 def MFVRSAVEv : XFXForm_1_ext<31, 339, 256, (outs gprc:$RST),
2766 "mfspr $RST, 256", IIC_IntGeneral>,
2779 def MTOCRF: XFXForm_5a<31, 144, (outs crbitm:$FXM), (ins gprc:$RST),
2780 "mtocrf $FXM, $RST", IIC_BrMCRX>,
2785 def MTCRF : XFXForm_5<31, 144, (outs), (ins i32imm:$FXM, gprc:$RST),
2786 "mtcrf $FXM, $RST", IIC_BrMCRX>,
2794 def MFOCRF: XFXForm_5a<31, 19, (outs gprc:$RST), (ins crbitm:$FXM),
2795 "mfocrf $RST, $FXM", IIC_SprMFCRF>,
2842 def MFFS : XForm_42<63, 583, (outs f8rc:$RST), (ins),
2843 "mffs $RST", IIC_IntMFFS,
2844 [(set f64:$RST, (PPCmffs))]>,
2848 def MFFS_rec : XForm_42<63, 583, (outs f8rc:$RST), (ins),
2849 "mffs. $RST", IIC_IntMFFS, []>, isRecordForm;
2851 def MFFSCE : X_FRT5_XO2_XO3_XO10<63, 0, 1, 583, (outs f8rc:$RST), (ins),
2852 "mffsce $RST", IIC_IntMFFS, []>,
2855 def MFFSCDRN : X_FRT5_XO2_XO3_FRB5_XO10<63, 2, 4, 583, (outs f8rc:$RST),
2856 (ins f8rc:$FRB), "mffscdrn $RST, $FRB",
2860 def MFFSCDRNI : X_FRT5_XO2_XO3_DRM3_XO10<63, 2, 5, 583, (outs f8rc:$RST),
2862 "mffscdrni $RST, $DRM",
2866 def MFFSCRN : X_FRT5_XO2_XO3_FRB5_XO10<63, 2, 6, 583, (outs f8rc:$RST),
2867 (ins f8rc:$FRB), "mffscrn $RST, $FRB",
2871 def MFFSCRNI : X_FRT5_XO2_XO3_RM2_X10<63, 2, 7, 583, (outs f8rc:$RST),
2872 (ins u2imm:$RM), "mffscrni $RST, $RM",
2876 def MFFSL : X_FRT5_XO2_XO3_XO10<63, 3, 0, 583, (outs f8rc:$RST), (ins),
2877 "mffsl $RST", IIC_IntMFFS, []>,
2883 def MODSW : XForm_8<31, 779, (outs gprc:$RST), (ins gprc:$RA, gprc:$RB),
2884 "modsw $RST, $RA, $RB", IIC_IntDivW,
2885 [(set i32:$RST, (srem i32:$RA, i32:$RB))]>;
2886 def MODUW : XForm_8<31, 267, (outs gprc:$RST), (ins gprc:$RA, gprc:$RB),
2887 "moduw $RST, $RA, $RB", IIC_IntDivW,
2888 [(set i32:$RST, (urem i32:$RA, i32:$RB))]>;
4221 def LSWI : XForm_base_r3xo_memOp<31, 597, (outs gprc:$RST),
4223 "lswi $RST, $RA, $RB", IIC_LdStLoad, []>;
4228 (ins gprc:$RST, gprc:$RA, u5imm:$RB),
4229 "stswi $RST, $RA, $RB", IIC_LdStLoad, []>;
4281 def MFMSR : XForm_rs<31, 83, (outs gprc:$RST), (ins),
4282 "mfmsr $RST", IIC_SprMFMSR, []>;
4322 def SLBMTE : XForm_26<31, 402, (outs), (ins gprc:$RST, gprc:$RB),
4323 "slbmte $RST, $RB", IIC_SprSLBMTE, []>;
4325 def SLBMFEE : XForm_26<31, 915, (outs gprc:$RST), (ins gprc:$RB),
4326 "slbmfee $RST, $RB", IIC_SprSLBMFEE, []>;
4334 def SLBFEE_rec : XForm_26<31, 979, (outs gprc:$RST), (ins gprc:$RB),
4335 "slbfee. $RST, $RB", IIC_SprSLBFEE, []>, isRecordForm;
4351 def TLBIE : XForm_26<31, 306, (outs), (ins gprc:$RST, gprc:$RB),
4352 "tlbie $RB,$RST", IIC_SprTLBIE, []>;
4369 def TLBRE2 : XForm_tlbws<31, 946, (outs gprc:$RST), (ins gprc:$RA, i1imm:$WS),
4370 "tlbre $RST, $RA, $WS", IIC_LdStLoad, []>, Requires<[IsPPC4xx]>;
4372 def TLBWE2 : XForm_tlbws<31, 978, (outs), (ins gprc:$RST, gprc:$RA, i1imm:$WS),
4373 "tlbwe $RST, $RA, $WS", IIC_LdStLoad, []>, Requires<[IsPPC4xx]>;
4375 def TLBSX2 : XForm_base_r3xo<31, 914, (outs), (ins gprc:$RST, gprc:$RA, gprc:$RB),
4376 "tlbsx $RST, $RA, $RB", IIC_LdStLoad, []>,
4379 (ins gprc:$RST, gprc:$RA, gprc:$RB),
4380 "tlbsx. $RST, $RA, $RB", IIC_LdStLoad, []>,
4395 def MFDCR : XFXForm_1<31, 323, (outs gprc:$RST), (ins i32imm:$SPR),
4396 "mfdcr $RST, $SPR", IIC_SprMFSPR>, Requires<[IsPPC4xx]>;
4397 def MTDCR : XFXForm_1<31, 451, (outs), (ins gprc:$RST, i32imm:$SPR),
4398 "mtdcr $SPR, $RST", IIC_SprMTSPR>, Requires<[IsPPC4xx]>;
4405 def LBZCIX : XForm_base_r3xo_memOp<31, 853, (outs gprc:$RST),
4407 "lbzcix $RST, $RA, $RB", IIC_LdStLoad, []>;
4408 def LHZCIX : XForm_base_r3xo_memOp<31, 821, (outs gprc:$RST),
4410 "lhzcix $RST, $RA, $RB", IIC_LdStLoad, []>;
4411 def LWZCIX : XForm_base_r3xo_memOp<31, 789, (outs gprc:$RST),
4413 "lwzcix $RST, $RA, $RB", IIC_LdStLoad, []>;
4414 def LDCIX : XForm_base_r3xo_memOp<31, 885, (outs gprc:$RST),
4416 "ldcix $RST, $RA, $RB", IIC_LdStLoad, []>;
4419 (ins gprc:$RST, gprc:$RA, gprc:$RB),
4420 "stbcix $RST, $RA, $RB", IIC_LdStLoad, []>;
4422 (ins gprc:$RST, gprc:$RA, gprc:$RB),
4423 "sthcix $RST, $RA, $RB", IIC_LdStLoad, []>;
4425 (ins gprc:$RST, gprc:$RA, gprc:$RB),
4426 "stwcix $RST, $RA, $RB", IIC_LdStLoad, []>;
4428 (ins gprc:$RST, gprc:$RA, gprc:$RB),
4429 "stdcix $RST, $RA, $RB", IIC_LdStLoad, []>;
4433 def LBEPX : XForm_1<31, 95, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
4434 "lbepx $RST, $addr", IIC_LdStLoad, []>,
4437 def LFDEPX : XForm_25<31, 607, (outs f8rc:$RST), (ins (memrr $RA, $RB):$addr),
4438 "lfdepx $RST, $addr", IIC_LdStLFD, []>,
4441 def LHEPX : XForm_1<31, 287, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
4442 "lhepx $RST, $addr", IIC_LdStLoad, []>,
4445 def LWEPX : XForm_1<31, 31, (outs gprc:$RST), (ins (memrr $RA, $RB):$addr),
4446 "lwepx $RST, $addr", IIC_LdStLoad, []>,
4449 def STBEPX : XForm_8<31, 223, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
4450 "stbepx $RST, $addr", IIC_LdStStore, []>,
4453 def STFDEPX : XForm_28_memOp<31, 735, (outs), (ins f8rc:$RST, (memrr $RA, $RB):$addr),
4454 "stfdepx $RST, $addr", IIC_LdStSTFD, []>,
4457 def STHEPX : XForm_8<31, 415, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
4458 "sthepx $RST, $addr", IIC_LdStStore, []>,
4461 def STWEPX : XForm_8<31, 159, (outs), (ins gprc:$RST, (memrr $RA, $RB):$addr),
4462 "stwepx $RST, $addr", IIC_LdStStore, []>,