Lines Matching refs:TargetOpcode
114 if (MI.getOpcode() == TargetOpcode::G_INTRINSIC || in legalizeInstrStep()
115 MI.getOpcode() == TargetOpcode::G_INTRINSIC_W_SIDE_EFFECTS) in legalizeInstrStep()
236 assert(MI.getOpcode() == TargetOpcode::G_UNMERGE_VALUES); in getUnmergeResults()
281 if (PadStrategy == TargetOpcode::G_ZEXT) in buildLCMMergePieces()
283 else if (PadStrategy == TargetOpcode::G_ANYEXT) in buildLCMMergePieces()
286 assert(PadStrategy == TargetOpcode::G_SEXT); in buildLCMMergePieces()
328 if (PadStrategy == TargetOpcode::G_ANYEXT) in buildLCMMergePieces()
330 else if (PadStrategy == TargetOpcode::G_ZEXT) in buildLCMMergePieces()
423 case TargetOpcode::G_SDIV: in getRTLibDesc()
425 case TargetOpcode::G_UDIV: in getRTLibDesc()
427 case TargetOpcode::G_SREM: in getRTLibDesc()
429 case TargetOpcode::G_UREM: in getRTLibDesc()
431 case TargetOpcode::G_CTLZ_ZERO_UNDEF: in getRTLibDesc()
433 case TargetOpcode::G_FADD: in getRTLibDesc()
435 case TargetOpcode::G_FSUB: in getRTLibDesc()
437 case TargetOpcode::G_FMUL: in getRTLibDesc()
439 case TargetOpcode::G_FDIV: in getRTLibDesc()
441 case TargetOpcode::G_FEXP: in getRTLibDesc()
443 case TargetOpcode::G_FEXP2: in getRTLibDesc()
445 case TargetOpcode::G_FREM: in getRTLibDesc()
447 case TargetOpcode::G_FPOW: in getRTLibDesc()
449 case TargetOpcode::G_FMA: in getRTLibDesc()
451 case TargetOpcode::G_FSIN: in getRTLibDesc()
453 case TargetOpcode::G_FCOS: in getRTLibDesc()
455 case TargetOpcode::G_FLOG10: in getRTLibDesc()
457 case TargetOpcode::G_FLOG: in getRTLibDesc()
459 case TargetOpcode::G_FLOG2: in getRTLibDesc()
461 case TargetOpcode::G_FCEIL: in getRTLibDesc()
463 case TargetOpcode::G_FFLOOR: in getRTLibDesc()
465 case TargetOpcode::G_FMINNUM: in getRTLibDesc()
467 case TargetOpcode::G_FMAXNUM: in getRTLibDesc()
469 case TargetOpcode::G_FSQRT: in getRTLibDesc()
471 case TargetOpcode::G_FRINT: in getRTLibDesc()
473 case TargetOpcode::G_FNEARBYINT: in getRTLibDesc()
475 case TargetOpcode::G_INTRINSIC_ROUNDEVEN: in getRTLibDesc()
515 case TargetOpcode::G_BZERO: in isLibCallInTailPosition()
517 case TargetOpcode::G_MEMCPY: in isLibCallInTailPosition()
518 case TargetOpcode::G_MEMMOVE: in isLibCallInTailPosition()
519 case TargetOpcode::G_MEMSET: in isLibCallInTailPosition()
618 case TargetOpcode::G_BZERO: in createMemLibcall()
621 case TargetOpcode::G_MEMCPY: in createMemLibcall()
625 case TargetOpcode::G_MEMMOVE: in createMemLibcall()
629 case TargetOpcode::G_MEMSET: in createMemLibcall()
687 case TargetOpcode::G_FPEXT: in getConvRTLibDesc()
689 case TargetOpcode::G_FPTRUNC: in getConvRTLibDesc()
691 case TargetOpcode::G_FPTOSI: in getConvRTLibDesc()
693 case TargetOpcode::G_FPTOUI: in getConvRTLibDesc()
695 case TargetOpcode::G_SITOFP: in getConvRTLibDesc()
697 case TargetOpcode::G_UITOFP: in getConvRTLibDesc()
721 case TargetOpcode::G_SDIV: in libcall()
722 case TargetOpcode::G_UDIV: in libcall()
723 case TargetOpcode::G_SREM: in libcall()
724 case TargetOpcode::G_UREM: in libcall()
725 case TargetOpcode::G_CTLZ_ZERO_UNDEF: { in libcall()
732 case TargetOpcode::G_FADD: in libcall()
733 case TargetOpcode::G_FSUB: in libcall()
734 case TargetOpcode::G_FMUL: in libcall()
735 case TargetOpcode::G_FDIV: in libcall()
736 case TargetOpcode::G_FMA: in libcall()
737 case TargetOpcode::G_FPOW: in libcall()
738 case TargetOpcode::G_FREM: in libcall()
739 case TargetOpcode::G_FCOS: in libcall()
740 case TargetOpcode::G_FSIN: in libcall()
741 case TargetOpcode::G_FLOG10: in libcall()
742 case TargetOpcode::G_FLOG: in libcall()
743 case TargetOpcode::G_FLOG2: in libcall()
744 case TargetOpcode::G_FEXP: in libcall()
745 case TargetOpcode::G_FEXP2: in libcall()
746 case TargetOpcode::G_FCEIL: in libcall()
747 case TargetOpcode::G_FFLOOR: in libcall()
748 case TargetOpcode::G_FMINNUM: in libcall()
749 case TargetOpcode::G_FMAXNUM: in libcall()
750 case TargetOpcode::G_FSQRT: in libcall()
751 case TargetOpcode::G_FRINT: in libcall()
752 case TargetOpcode::G_FNEARBYINT: in libcall()
753 case TargetOpcode::G_INTRINSIC_ROUNDEVEN: { in libcall()
764 case TargetOpcode::G_FPEXT: in libcall()
765 case TargetOpcode::G_FPTRUNC: { in libcall()
775 case TargetOpcode::G_FPTOSI: in libcall()
776 case TargetOpcode::G_FPTOUI: { in libcall()
790 case TargetOpcode::G_SITOFP: in libcall()
791 case TargetOpcode::G_UITOFP: { in libcall()
805 case TargetOpcode::G_BZERO: in libcall()
806 case TargetOpcode::G_MEMCPY: in libcall()
807 case TargetOpcode::G_MEMMOVE: in libcall()
808 case TargetOpcode::G_MEMSET: { in libcall()
831 case TargetOpcode::G_IMPLICIT_DEF: { in narrowScalar()
866 case TargetOpcode::G_CONSTANT: { in narrowScalar()
898 case TargetOpcode::G_SEXT: in narrowScalar()
899 case TargetOpcode::G_ZEXT: in narrowScalar()
900 case TargetOpcode::G_ANYEXT: in narrowScalar()
902 case TargetOpcode::G_TRUNC: { in narrowScalar()
918 case TargetOpcode::G_FREEZE: in narrowScalar()
920 case TargetOpcode::G_ADD: in narrowScalar()
921 case TargetOpcode::G_SUB: in narrowScalar()
922 case TargetOpcode::G_SADDO: in narrowScalar()
923 case TargetOpcode::G_SSUBO: in narrowScalar()
924 case TargetOpcode::G_SADDE: in narrowScalar()
925 case TargetOpcode::G_SSUBE: in narrowScalar()
926 case TargetOpcode::G_UADDO: in narrowScalar()
927 case TargetOpcode::G_USUBO: in narrowScalar()
928 case TargetOpcode::G_UADDE: in narrowScalar()
929 case TargetOpcode::G_USUBE: in narrowScalar()
931 case TargetOpcode::G_MUL: in narrowScalar()
932 case TargetOpcode::G_UMULH: in narrowScalar()
934 case TargetOpcode::G_EXTRACT: in narrowScalar()
936 case TargetOpcode::G_INSERT: in narrowScalar()
938 case TargetOpcode::G_LOAD: { in narrowScalar()
955 case TargetOpcode::G_ZEXTLOAD: in narrowScalar()
956 case TargetOpcode::G_SEXTLOAD: { in narrowScalar()
982 case TargetOpcode::G_STORE: { in narrowScalar()
1006 case TargetOpcode::G_SELECT: in narrowScalar()
1008 case TargetOpcode::G_AND: in narrowScalar()
1009 case TargetOpcode::G_OR: in narrowScalar()
1010 case TargetOpcode::G_XOR: { in narrowScalar()
1022 case TargetOpcode::G_SHL: in narrowScalar()
1023 case TargetOpcode::G_LSHR: in narrowScalar()
1024 case TargetOpcode::G_ASHR: in narrowScalar()
1026 case TargetOpcode::G_CTLZ: in narrowScalar()
1027 case TargetOpcode::G_CTLZ_ZERO_UNDEF: in narrowScalar()
1028 case TargetOpcode::G_CTTZ: in narrowScalar()
1029 case TargetOpcode::G_CTTZ_ZERO_UNDEF: in narrowScalar()
1030 case TargetOpcode::G_CTPOP: in narrowScalar()
1033 case TargetOpcode::G_CTLZ: in narrowScalar()
1034 case TargetOpcode::G_CTLZ_ZERO_UNDEF: in narrowScalar()
1036 case TargetOpcode::G_CTTZ: in narrowScalar()
1037 case TargetOpcode::G_CTTZ_ZERO_UNDEF: in narrowScalar()
1039 case TargetOpcode::G_CTPOP: in narrowScalar()
1046 narrowScalarDst(MI, NarrowTy, 0, TargetOpcode::G_ZEXT); in narrowScalar()
1049 case TargetOpcode::G_INTTOPTR: in narrowScalar()
1057 case TargetOpcode::G_PTRTOINT: in narrowScalar()
1062 narrowScalarDst(MI, NarrowTy, 0, TargetOpcode::G_ZEXT); in narrowScalar()
1065 case TargetOpcode::G_PHI: { in narrowScalar()
1086 MIRBuilder.buildInstr(TargetOpcode::G_PHI).addDef(DstRegs[i]); in narrowScalar()
1096 case TargetOpcode::G_EXTRACT_VECTOR_ELT: in narrowScalar()
1097 case TargetOpcode::G_INSERT_VECTOR_ELT: { in narrowScalar()
1101 int OpIdx = MI.getOpcode() == TargetOpcode::G_EXTRACT_VECTOR_ELT ? 2 : 3; in narrowScalar()
1107 case TargetOpcode::G_ICMP: { in narrowScalar()
1156 /* PadStrategy = */ TargetOpcode::G_ZEXT); in narrowScalar()
1186 case TargetOpcode::G_SEXT_INREG: { in narrowScalar()
1259 TargetOpcode::G_SEXT_INREG, {NarrowTy}, in narrowScalar()
1272 case TargetOpcode::G_BSWAP: in narrowScalar()
1273 case TargetOpcode::G_BITREVERSE: { in narrowScalar()
1294 case TargetOpcode::G_PTR_ADD: in narrowScalar()
1295 case TargetOpcode::G_PTRMASK: { in narrowScalar()
1303 case TargetOpcode::G_FPTOUI: in narrowScalar()
1304 case TargetOpcode::G_FPTOSI: in narrowScalar()
1306 case TargetOpcode::G_FPEXT: in narrowScalar()
1310 narrowScalarDst(MI, NarrowTy, 0, TargetOpcode::G_FPEXT); in narrowScalar()
1670 auto MIB = MIRBuilder.buildInstr(TargetOpcode::G_UNMERGE_VALUES); in widenScalarUnmergeValues()
1759 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalarExtract()
1774 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalarExtract()
1789 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalarInsert()
1807 case TargetOpcode::G_SADDO: in widenScalarAddSubOverflow()
1808 Opcode = TargetOpcode::G_ADD; in widenScalarAddSubOverflow()
1809 ExtOpcode = TargetOpcode::G_SEXT; in widenScalarAddSubOverflow()
1811 case TargetOpcode::G_SSUBO: in widenScalarAddSubOverflow()
1812 Opcode = TargetOpcode::G_SUB; in widenScalarAddSubOverflow()
1813 ExtOpcode = TargetOpcode::G_SEXT; in widenScalarAddSubOverflow()
1815 case TargetOpcode::G_UADDO: in widenScalarAddSubOverflow()
1816 Opcode = TargetOpcode::G_ADD; in widenScalarAddSubOverflow()
1817 ExtOpcode = TargetOpcode::G_ZEXT; in widenScalarAddSubOverflow()
1819 case TargetOpcode::G_USUBO: in widenScalarAddSubOverflow()
1820 Opcode = TargetOpcode::G_SUB; in widenScalarAddSubOverflow()
1821 ExtOpcode = TargetOpcode::G_ZEXT; in widenScalarAddSubOverflow()
1823 case TargetOpcode::G_SADDE: in widenScalarAddSubOverflow()
1824 Opcode = TargetOpcode::G_UADDE; in widenScalarAddSubOverflow()
1825 ExtOpcode = TargetOpcode::G_SEXT; in widenScalarAddSubOverflow()
1828 case TargetOpcode::G_SSUBE: in widenScalarAddSubOverflow()
1829 Opcode = TargetOpcode::G_USUBE; in widenScalarAddSubOverflow()
1830 ExtOpcode = TargetOpcode::G_SEXT; in widenScalarAddSubOverflow()
1833 case TargetOpcode::G_UADDE: in widenScalarAddSubOverflow()
1834 Opcode = TargetOpcode::G_UADDE; in widenScalarAddSubOverflow()
1835 ExtOpcode = TargetOpcode::G_ZEXT; in widenScalarAddSubOverflow()
1838 case TargetOpcode::G_USUBE: in widenScalarAddSubOverflow()
1839 Opcode = TargetOpcode::G_USUBE; in widenScalarAddSubOverflow()
1840 ExtOpcode = TargetOpcode::G_ZEXT; in widenScalarAddSubOverflow()
1872 bool IsSigned = MI.getOpcode() == TargetOpcode::G_SADDSAT || in widenScalarAddSubShlSat()
1873 MI.getOpcode() == TargetOpcode::G_SSUBSAT || in widenScalarAddSubShlSat()
1874 MI.getOpcode() == TargetOpcode::G_SSHLSAT; in widenScalarAddSubShlSat()
1875 bool IsShift = MI.getOpcode() == TargetOpcode::G_SSHLSAT || in widenScalarAddSubShlSat()
1876 MI.getOpcode() == TargetOpcode::G_USHLSAT; in widenScalarAddSubShlSat()
1919 bool IsSigned = MI.getOpcode() == TargetOpcode::G_SMULO; in widenScalarMulo()
1932 unsigned ExtOp = IsSigned ? TargetOpcode::G_SEXT : TargetOpcode::G_ZEXT; in widenScalarMulo()
1974 case TargetOpcode::G_ATOMICRMW_XCHG: in widenScalar()
1975 case TargetOpcode::G_ATOMICRMW_ADD: in widenScalar()
1976 case TargetOpcode::G_ATOMICRMW_SUB: in widenScalar()
1977 case TargetOpcode::G_ATOMICRMW_AND: in widenScalar()
1978 case TargetOpcode::G_ATOMICRMW_OR: in widenScalar()
1979 case TargetOpcode::G_ATOMICRMW_XOR: in widenScalar()
1980 case TargetOpcode::G_ATOMICRMW_MIN: in widenScalar()
1981 case TargetOpcode::G_ATOMICRMW_MAX: in widenScalar()
1982 case TargetOpcode::G_ATOMICRMW_UMIN: in widenScalar()
1983 case TargetOpcode::G_ATOMICRMW_UMAX: in widenScalar()
1986 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
1990 case TargetOpcode::G_ATOMIC_CMPXCHG: in widenScalar()
1993 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
1994 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ANYEXT); in widenScalar()
1998 case TargetOpcode::G_ATOMIC_CMPXCHG_WITH_SUCCESS: in widenScalar()
2001 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ANYEXT); in widenScalar()
2002 widenScalarSrc(MI, WideTy, 4, TargetOpcode::G_ANYEXT); in widenScalar()
2013 case TargetOpcode::G_EXTRACT: in widenScalar()
2015 case TargetOpcode::G_INSERT: in widenScalar()
2017 case TargetOpcode::G_MERGE_VALUES: in widenScalar()
2019 case TargetOpcode::G_UNMERGE_VALUES: in widenScalar()
2021 case TargetOpcode::G_SADDO: in widenScalar()
2022 case TargetOpcode::G_SSUBO: in widenScalar()
2023 case TargetOpcode::G_UADDO: in widenScalar()
2024 case TargetOpcode::G_USUBO: in widenScalar()
2025 case TargetOpcode::G_SADDE: in widenScalar()
2026 case TargetOpcode::G_SSUBE: in widenScalar()
2027 case TargetOpcode::G_UADDE: in widenScalar()
2028 case TargetOpcode::G_USUBE: in widenScalar()
2030 case TargetOpcode::G_UMULO: in widenScalar()
2031 case TargetOpcode::G_SMULO: in widenScalar()
2033 case TargetOpcode::G_SADDSAT: in widenScalar()
2034 case TargetOpcode::G_SSUBSAT: in widenScalar()
2035 case TargetOpcode::G_SSHLSAT: in widenScalar()
2036 case TargetOpcode::G_UADDSAT: in widenScalar()
2037 case TargetOpcode::G_USUBSAT: in widenScalar()
2038 case TargetOpcode::G_USHLSAT: in widenScalar()
2040 case TargetOpcode::G_CTTZ: in widenScalar()
2041 case TargetOpcode::G_CTTZ_ZERO_UNDEF: in widenScalar()
2042 case TargetOpcode::G_CTLZ: in widenScalar()
2043 case TargetOpcode::G_CTLZ_ZERO_UNDEF: in widenScalar()
2044 case TargetOpcode::G_CTPOP: { in widenScalar()
2057 if (MI.getOpcode() == TargetOpcode::G_CTTZ) { in widenScalar()
2070 if (MI.getOpcode() == TargetOpcode::G_CTLZ || in widenScalar()
2071 MI.getOpcode() == TargetOpcode::G_CTLZ_ZERO_UNDEF) { in widenScalar()
2082 case TargetOpcode::G_BSWAP: { in widenScalar()
2089 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2104 case TargetOpcode::G_BITREVERSE: { in widenScalar()
2112 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2122 case TargetOpcode::G_FREEZE: in widenScalar()
2124 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2129 case TargetOpcode::G_ABS: in widenScalar()
2131 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT); in widenScalar()
2136 case TargetOpcode::G_ADD: in widenScalar()
2137 case TargetOpcode::G_AND: in widenScalar()
2138 case TargetOpcode::G_MUL: in widenScalar()
2139 case TargetOpcode::G_OR: in widenScalar()
2140 case TargetOpcode::G_XOR: in widenScalar()
2141 case TargetOpcode::G_SUB: in widenScalar()
2146 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2147 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
2152 case TargetOpcode::G_SBFX: in widenScalar()
2153 case TargetOpcode::G_UBFX: in widenScalar()
2157 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2160 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2161 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ZEXT); in widenScalar()
2167 case TargetOpcode::G_SHL: in widenScalar()
2171 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2177 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2183 case TargetOpcode::G_SDIV: in widenScalar()
2184 case TargetOpcode::G_SREM: in widenScalar()
2185 case TargetOpcode::G_SMIN: in widenScalar()
2186 case TargetOpcode::G_SMAX: in widenScalar()
2188 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT); in widenScalar()
2189 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT); in widenScalar()
2194 case TargetOpcode::G_SDIVREM: in widenScalar()
2196 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT); in widenScalar()
2197 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_SEXT); in widenScalar()
2203 case TargetOpcode::G_ASHR: in widenScalar()
2204 case TargetOpcode::G_LSHR: in widenScalar()
2208 unsigned CvtOp = MI.getOpcode() == TargetOpcode::G_ASHR ? in widenScalar()
2209 TargetOpcode::G_SEXT : TargetOpcode::G_ZEXT; in widenScalar()
2217 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2222 case TargetOpcode::G_UDIV: in widenScalar()
2223 case TargetOpcode::G_UREM: in widenScalar()
2224 case TargetOpcode::G_UMIN: in widenScalar()
2225 case TargetOpcode::G_UMAX: in widenScalar()
2227 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT); in widenScalar()
2228 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2233 case TargetOpcode::G_UDIVREM: in widenScalar()
2235 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2236 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ZEXT); in widenScalar()
2242 case TargetOpcode::G_SELECT: in widenScalar()
2248 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
2249 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ANYEXT); in widenScalar()
2259 case TargetOpcode::G_FPTOSI: in widenScalar()
2260 case TargetOpcode::G_FPTOUI: in widenScalar()
2266 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_FPEXT); in widenScalar()
2270 case TargetOpcode::G_SITOFP: in widenScalar()
2274 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
2276 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT); in widenScalar()
2280 case TargetOpcode::G_UITOFP: in widenScalar()
2284 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
2286 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT); in widenScalar()
2290 case TargetOpcode::G_LOAD: in widenScalar()
2291 case TargetOpcode::G_SEXTLOAD: in widenScalar()
2292 case TargetOpcode::G_ZEXTLOAD: in widenScalar()
2298 case TargetOpcode::G_STORE: { in widenScalar()
2309 TargetOpcode::G_ZEXT : TargetOpcode::G_ANYEXT; in widenScalar()
2315 case TargetOpcode::G_CONSTANT: { in widenScalar()
2320 assert((ExtOpc == TargetOpcode::G_ZEXT || ExtOpc == TargetOpcode::G_SEXT || in widenScalar()
2321 ExtOpc == TargetOpcode::G_ANYEXT) && in widenScalar()
2324 const APInt &Val = (ExtOpc == TargetOpcode::G_SEXT) in widenScalar()
2334 case TargetOpcode::G_FCONSTANT: { in widenScalar()
2357 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
2361 case TargetOpcode::G_IMPLICIT_DEF: { in widenScalar()
2367 case TargetOpcode::G_BRCOND: in widenScalar()
2373 case TargetOpcode::G_FCMP: in widenScalar()
2378 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_FPEXT); in widenScalar()
2379 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_FPEXT); in widenScalar()
2384 case TargetOpcode::G_ICMP: in widenScalar()
2391 ? TargetOpcode::G_SEXT in widenScalar()
2392 : TargetOpcode::G_ZEXT; in widenScalar()
2399 case TargetOpcode::G_PTR_ADD: in widenScalar()
2402 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT); in widenScalar()
2406 case TargetOpcode::G_PHI: { in widenScalar()
2413 widenScalarSrc(MI, WideTy, I, TargetOpcode::G_ANYEXT); in widenScalar()
2422 case TargetOpcode::G_EXTRACT_VECTOR_ELT: { in widenScalar()
2430 TargetOpcode::G_SEXT); in widenScalar()
2441 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT); in widenScalar()
2445 case TargetOpcode::G_INSERT_VECTOR_ELT: { in widenScalar()
2453 widenScalarSrc(MI, WideVecTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2454 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
2463 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_SEXT); in widenScalar()
2470 case TargetOpcode::G_FADD: in widenScalar()
2471 case TargetOpcode::G_FMUL: in widenScalar()
2472 case TargetOpcode::G_FSUB: in widenScalar()
2473 case TargetOpcode::G_FMA: in widenScalar()
2474 case TargetOpcode::G_FMAD: in widenScalar()
2475 case TargetOpcode::G_FNEG: in widenScalar()
2476 case TargetOpcode::G_FABS: in widenScalar()
2477 case TargetOpcode::G_FCANONICALIZE: in widenScalar()
2478 case TargetOpcode::G_FMINNUM: in widenScalar()
2479 case TargetOpcode::G_FMAXNUM: in widenScalar()
2480 case TargetOpcode::G_FMINNUM_IEEE: in widenScalar()
2481 case TargetOpcode::G_FMAXNUM_IEEE: in widenScalar()
2482 case TargetOpcode::G_FMINIMUM: in widenScalar()
2483 case TargetOpcode::G_FMAXIMUM: in widenScalar()
2484 case TargetOpcode::G_FDIV: in widenScalar()
2485 case TargetOpcode::G_FREM: in widenScalar()
2486 case TargetOpcode::G_FCEIL: in widenScalar()
2487 case TargetOpcode::G_FFLOOR: in widenScalar()
2488 case TargetOpcode::G_FCOS: in widenScalar()
2489 case TargetOpcode::G_FSIN: in widenScalar()
2490 case TargetOpcode::G_FLOG10: in widenScalar()
2491 case TargetOpcode::G_FLOG: in widenScalar()
2492 case TargetOpcode::G_FLOG2: in widenScalar()
2493 case TargetOpcode::G_FRINT: in widenScalar()
2494 case TargetOpcode::G_FNEARBYINT: in widenScalar()
2495 case TargetOpcode::G_FSQRT: in widenScalar()
2496 case TargetOpcode::G_FEXP: in widenScalar()
2497 case TargetOpcode::G_FEXP2: in widenScalar()
2498 case TargetOpcode::G_FPOW: in widenScalar()
2499 case TargetOpcode::G_INTRINSIC_TRUNC: in widenScalar()
2500 case TargetOpcode::G_INTRINSIC_ROUND: in widenScalar()
2501 case TargetOpcode::G_INTRINSIC_ROUNDEVEN: in widenScalar()
2506 widenScalarSrc(MI, WideTy, I, TargetOpcode::G_FPEXT); in widenScalar()
2508 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
2511 case TargetOpcode::G_FPOWI: { in widenScalar()
2515 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_FPEXT); in widenScalar()
2516 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
2520 case TargetOpcode::G_INTTOPTR: in widenScalar()
2525 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT); in widenScalar()
2528 case TargetOpcode::G_PTRTOINT: in widenScalar()
2536 case TargetOpcode::G_BUILD_VECTOR: { in widenScalar()
2541 widenScalarSrc(MI, WideEltTy, I, TargetOpcode::G_ANYEXT); in widenScalar()
2546 MI.setDesc(MIRBuilder.getTII().get(TargetOpcode::G_BUILD_VECTOR_TRUNC)); in widenScalar()
2554 case TargetOpcode::G_SEXT_INREG: in widenScalar()
2559 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2560 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_TRUNC); in widenScalar()
2563 case TargetOpcode::G_PTRMASK: { in widenScalar()
2567 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2964 auto LargeLoad = MIRBuilder.buildLoadInstr(TargetOpcode::G_ZEXTLOAD, AnyExtTy, in lowerLoad()
3065 case TargetOpcode::G_LOAD: { in bitcast()
3080 case TargetOpcode::G_STORE: { in bitcast()
3096 case TargetOpcode::G_SELECT: { in bitcast()
3113 case TargetOpcode::G_AND: in bitcast()
3114 case TargetOpcode::G_OR: in bitcast()
3115 case TargetOpcode::G_XOR: { in bitcast()
3123 case TargetOpcode::G_EXTRACT_VECTOR_ELT: in bitcast()
3125 case TargetOpcode::G_INSERT_VECTOR_ELT: in bitcast()
3141 using namespace TargetOpcode; in lower()
3146 case TargetOpcode::G_BITCAST: in lower()
3148 case TargetOpcode::G_SREM: in lower()
3149 case TargetOpcode::G_UREM: { in lower()
3160 case TargetOpcode::G_SADDO: in lower()
3161 case TargetOpcode::G_SSUBO: in lower()
3163 case TargetOpcode::G_UMULH: in lower()
3164 case TargetOpcode::G_SMULH: in lower()
3166 case TargetOpcode::G_SMULO: in lower()
3167 case TargetOpcode::G_UMULO: { in lower()
3176 unsigned Opcode = MI.getOpcode() == TargetOpcode::G_SMULO in lower()
3177 ? TargetOpcode::G_SMULH in lower()
3178 : TargetOpcode::G_UMULH; in lower()
3182 MI.setDesc(TII.get(TargetOpcode::G_MUL)); in lower()
3194 if (Opcode == TargetOpcode::G_SMULH) { in lower()
3203 case TargetOpcode::G_FNEG: { in lower()
3218 case TargetOpcode::G_FSUB: { in lower()
3235 case TargetOpcode::G_FMAD: in lower()
3237 case TargetOpcode::G_FFLOOR: in lower()
3239 case TargetOpcode::G_INTRINSIC_ROUND: in lower()
3241 case TargetOpcode::G_INTRINSIC_ROUNDEVEN: { in lower()
3244 changeOpcode(MI, TargetOpcode::G_FRINT); in lower()
3247 case TargetOpcode::G_ATOMIC_CMPXCHG_WITH_SUCCESS: { in lower()
3259 case TargetOpcode::G_LOAD: in lower()
3260 case TargetOpcode::G_SEXTLOAD: in lower()
3261 case TargetOpcode::G_ZEXTLOAD: in lower()
3263 case TargetOpcode::G_STORE: in lower()
3265 case TargetOpcode::G_CTLZ_ZERO_UNDEF: in lower()
3266 case TargetOpcode::G_CTTZ_ZERO_UNDEF: in lower()
3267 case TargetOpcode::G_CTLZ: in lower()
3268 case TargetOpcode::G_CTTZ: in lower()
3269 case TargetOpcode::G_CTPOP: in lower()
3357 case TargetOpcode::G_SEXT_INREG: { in lower()
3697 if (MI.getOpcode() == TargetOpcode::G_ICMP) in fewerElementsVectorCmp()
3813 NewInsts.push_back(MIRBuilder.buildInstr(TargetOpcode::G_PHI) in fewerElementsVectorPhi()
3884 auto MIB = MIRBuilder.buildInstr(TargetOpcode::G_UNMERGE_VALUES); in fewerElementsVectorUnmergeValues()
3974 TargetOpcode::G_ANYEXT); in fewerElementsVectorMerge()
3990 bool IsInsert = MI.getOpcode() == TargetOpcode::G_INSERT_VECTOR_ELT; in fewerElementsVectorExtractInsertVectorElt()
4024 TargetOpcode::G_ANYEXT); in fewerElementsVectorExtractInsertVectorElt()
4208 TargetOpcode::G_ANYEXT); in reduceOperationWidth()
4304 using namespace TargetOpcode; in fewerElementsVector()
4435 assert(MI.getOpcode() == TargetOpcode::G_SHUFFLE_VECTOR); in fewerElementsVectorShuffle()
4578 assert(Opc != TargetOpcode::G_VECREDUCE_SEQ_FADD && in fewerElementsVectorReductions()
4579 Opc != TargetOpcode::G_VECREDUCE_SEQ_FMUL && in fewerElementsVectorReductions()
4606 case TargetOpcode::G_VECREDUCE_FADD: in fewerElementsVectorReductions()
4607 ScalarOpc = TargetOpcode::G_FADD; in fewerElementsVectorReductions()
4609 case TargetOpcode::G_VECREDUCE_FMUL: in fewerElementsVectorReductions()
4610 ScalarOpc = TargetOpcode::G_FMUL; in fewerElementsVectorReductions()
4612 case TargetOpcode::G_VECREDUCE_FMAX: in fewerElementsVectorReductions()
4613 ScalarOpc = TargetOpcode::G_FMAXNUM; in fewerElementsVectorReductions()
4615 case TargetOpcode::G_VECREDUCE_FMIN: in fewerElementsVectorReductions()
4616 ScalarOpc = TargetOpcode::G_FMINNUM; in fewerElementsVectorReductions()
4618 case TargetOpcode::G_VECREDUCE_ADD: in fewerElementsVectorReductions()
4619 ScalarOpc = TargetOpcode::G_ADD; in fewerElementsVectorReductions()
4621 case TargetOpcode::G_VECREDUCE_MUL: in fewerElementsVectorReductions()
4622 ScalarOpc = TargetOpcode::G_MUL; in fewerElementsVectorReductions()
4624 case TargetOpcode::G_VECREDUCE_AND: in fewerElementsVectorReductions()
4625 ScalarOpc = TargetOpcode::G_AND; in fewerElementsVectorReductions()
4627 case TargetOpcode::G_VECREDUCE_OR: in fewerElementsVectorReductions()
4628 ScalarOpc = TargetOpcode::G_OR; in fewerElementsVectorReductions()
4630 case TargetOpcode::G_VECREDUCE_XOR: in fewerElementsVectorReductions()
4631 ScalarOpc = TargetOpcode::G_XOR; in fewerElementsVectorReductions()
4633 case TargetOpcode::G_VECREDUCE_SMAX: in fewerElementsVectorReductions()
4634 ScalarOpc = TargetOpcode::G_SMAX; in fewerElementsVectorReductions()
4636 case TargetOpcode::G_VECREDUCE_SMIN: in fewerElementsVectorReductions()
4637 ScalarOpc = TargetOpcode::G_SMIN; in fewerElementsVectorReductions()
4639 case TargetOpcode::G_VECREDUCE_UMAX: in fewerElementsVectorReductions()
4640 ScalarOpc = TargetOpcode::G_UMAX; in fewerElementsVectorReductions()
4642 case TargetOpcode::G_VECREDUCE_UMIN: in fewerElementsVectorReductions()
4643 ScalarOpc = TargetOpcode::G_UMIN; in fewerElementsVectorReductions()
4720 if (MI.getOpcode() == TargetOpcode::G_SHL) { in narrowScalarShiftByConstant()
4738 } else if (MI.getOpcode() == TargetOpcode::G_LSHR) { in narrowScalarShiftByConstant()
4819 getOpcodeDef(TargetOpcode::G_CONSTANT, Amt, MRI)) { in narrowScalarShift()
4842 case TargetOpcode::G_SHL: { in narrowScalarShift()
4862 case TargetOpcode::G_LSHR: in narrowScalarShift()
4863 case TargetOpcode::G_ASHR: { in narrowScalarShift()
4873 if (MI.getOpcode() == TargetOpcode::G_LSHR) { in narrowScalarShift()
4924 case TargetOpcode::G_IMPLICIT_DEF: in moreElementsVector()
4925 case TargetOpcode::G_LOAD: { in moreElementsVector()
4933 case TargetOpcode::G_STORE: in moreElementsVector()
4940 case TargetOpcode::G_AND: in moreElementsVector()
4941 case TargetOpcode::G_OR: in moreElementsVector()
4942 case TargetOpcode::G_XOR: in moreElementsVector()
4943 case TargetOpcode::G_SMIN: in moreElementsVector()
4944 case TargetOpcode::G_SMAX: in moreElementsVector()
4945 case TargetOpcode::G_UMIN: in moreElementsVector()
4946 case TargetOpcode::G_UMAX: in moreElementsVector()
4947 case TargetOpcode::G_FMINNUM: in moreElementsVector()
4948 case TargetOpcode::G_FMAXNUM: in moreElementsVector()
4949 case TargetOpcode::G_FMINNUM_IEEE: in moreElementsVector()
4950 case TargetOpcode::G_FMAXNUM_IEEE: in moreElementsVector()
4951 case TargetOpcode::G_FMINIMUM: in moreElementsVector()
4952 case TargetOpcode::G_FMAXIMUM: { in moreElementsVector()
4960 case TargetOpcode::G_EXTRACT: in moreElementsVector()
4967 case TargetOpcode::G_INSERT: in moreElementsVector()
4968 case TargetOpcode::G_FREEZE: in moreElementsVector()
4976 case TargetOpcode::G_SELECT: in moreElementsVector()
4988 case TargetOpcode::G_UNMERGE_VALUES: { in moreElementsVector()
4996 auto MIB = MIRBuilder.buildInstr(TargetOpcode::G_UNMERGE_VALUES); in moreElementsVector()
5008 case TargetOpcode::G_PHI: in moreElementsVector()
5010 case TargetOpcode::G_SHUFFLE_VECTOR: in moreElementsVector()
5138 case TargetOpcode::G_SADDO: in narrowScalarAddSub()
5139 case TargetOpcode::G_SADDE: in narrowScalarAddSub()
5140 case TargetOpcode::G_UADDO: in narrowScalarAddSub()
5141 case TargetOpcode::G_UADDE: in narrowScalarAddSub()
5142 case TargetOpcode::G_ADD: in narrowScalarAddSub()
5143 OpO = TargetOpcode::G_UADDO; in narrowScalarAddSub()
5144 OpE = TargetOpcode::G_UADDE; in narrowScalarAddSub()
5145 OpF = TargetOpcode::G_UADDE; in narrowScalarAddSub()
5146 if (Opcode == TargetOpcode::G_SADDO || Opcode == TargetOpcode::G_SADDE) in narrowScalarAddSub()
5147 OpF = TargetOpcode::G_SADDE; in narrowScalarAddSub()
5149 case TargetOpcode::G_SSUBO: in narrowScalarAddSub()
5150 case TargetOpcode::G_SSUBE: in narrowScalarAddSub()
5151 case TargetOpcode::G_USUBO: in narrowScalarAddSub()
5152 case TargetOpcode::G_USUBE: in narrowScalarAddSub()
5153 case TargetOpcode::G_SUB: in narrowScalarAddSub()
5154 OpO = TargetOpcode::G_USUBO; in narrowScalarAddSub()
5155 OpE = TargetOpcode::G_USUBE; in narrowScalarAddSub()
5156 OpF = TargetOpcode::G_USUBE; in narrowScalarAddSub()
5157 if (Opcode == TargetOpcode::G_SSUBO || Opcode == TargetOpcode::G_SSUBE) in narrowScalarAddSub()
5158 OpF = TargetOpcode::G_SSUBE; in narrowScalarAddSub()
5235 bool IsMulHigh = MI.getOpcode() == TargetOpcode::G_UMULH; in narrowScalarMul()
5258 bool IsSigned = MI.getOpcode() == TargetOpcode::G_FPTOSI; in narrowScalarFPTOI()
5272 IsSigned ? TargetOpcode::G_SEXT : TargetOpcode::G_ZEXT); in narrowScalarFPTOI()
5550 const bool IsUndef = MI.getOpcode() == TargetOpcode::G_CTLZ_ZERO_UNDEF; in narrowScalarCTLZ()
5586 const bool IsUndef = MI.getOpcode() == TargetOpcode::G_CTTZ_ZERO_UNDEF; in narrowScalarCTTZ()
5645 case TargetOpcode::G_CTLZ_ZERO_UNDEF: { in lowerBitCount()
5648 MI.setDesc(TII.get(TargetOpcode::G_CTLZ)); in lowerBitCount()
5652 case TargetOpcode::G_CTLZ: { in lowerBitCount()
5659 if (isSupported({TargetOpcode::G_CTLZ_ZERO_UNDEF, {DstTy, SrcTy}})) { in lowerBitCount()
5695 case TargetOpcode::G_CTTZ_ZERO_UNDEF: { in lowerBitCount()
5698 MI.setDesc(TII.get(TargetOpcode::G_CTTZ)); in lowerBitCount()
5702 case TargetOpcode::G_CTTZ: { in lowerBitCount()
5709 if (isSupported({TargetOpcode::G_CTTZ_ZERO_UNDEF, {DstTy, SrcTy}})) { in lowerBitCount()
5729 if (!isSupported({TargetOpcode::G_CTPOP, {SrcTy, SrcTy}}) && in lowerBitCount()
5730 isSupported({TargetOpcode::G_CTLZ, {SrcTy, SrcTy}})) { in lowerBitCount()
5737 MI.setDesc(TII.get(TargetOpcode::G_CTPOP)); in lowerBitCount()
5741 case TargetOpcode::G_CTPOP: { in lowerBitCount()
5824 const bool IsFSHL = MI.getOpcode() == TargetOpcode::G_FSHL; in lowerFunnelShiftWithInverse()
5825 unsigned RevOpcode = IsFSHL ? TargetOpcode::G_FSHR : TargetOpcode::G_FSHL; in lowerFunnelShiftWithInverse()
5862 const bool IsFSHL = MI.getOpcode() == TargetOpcode::G_FSHL; in lowerFunnelShiftAsShifts()
5920 bool IsFSHL = MI.getOpcode() == TargetOpcode::G_FSHL; in lowerFunnelShift()
5921 unsigned RevOpcode = IsFSHL ? TargetOpcode::G_FSHR : TargetOpcode::G_FSHL; in lowerFunnelShift()
5941 bool IsLeft = MI.getOpcode() == TargetOpcode::G_ROTL; in lowerRotateWithReverseRotate()
5942 unsigned RevRot = IsLeft ? TargetOpcode::G_ROTR : TargetOpcode::G_ROTL; in lowerRotateWithReverseRotate()
5958 bool IsLeft = MI.getOpcode() == TargetOpcode::G_ROTL; in lowerRotate()
5963 unsigned RevRot = IsLeft ? TargetOpcode::G_ROTR : TargetOpcode::G_ROTL; in lowerRotate()
5969 unsigned ShOpc = IsLeft ? TargetOpcode::G_SHL : TargetOpcode::G_LSHR; in lowerRotate()
5970 unsigned RevShiftOpc = IsLeft ? TargetOpcode::G_LSHR : TargetOpcode::G_SHL; in lowerRotate()
6381 case TargetOpcode::G_SMIN: in minMaxToCompare()
6383 case TargetOpcode::G_SMAX: in minMaxToCompare()
6385 case TargetOpcode::G_UMIN: in minMaxToCompare()
6387 case TargetOpcode::G_UMAX: in minMaxToCompare()
6455 unsigned NewOp = MI.getOpcode() == TargetOpcode::G_FMINNUM ? in lowerFMinNumMaxNum()
6456 TargetOpcode::G_FMINNUM_IEEE : TargetOpcode::G_FMAXNUM_IEEE; in lowerFMinNumMaxNum()
6643 if (MI.getOpcode() == TargetOpcode::G_INSERT_VECTOR_ELT) in lowerExtractInsertVectorElt()
6877 const bool IsAdd = MI.getOpcode() == TargetOpcode::G_SADDO; in lowerSADDO_SSUBO()
6919 case TargetOpcode::G_UADDSAT: in lowerAddSubSatToMinMax()
6922 BaseOp = TargetOpcode::G_ADD; in lowerAddSubSatToMinMax()
6924 case TargetOpcode::G_SADDSAT: in lowerAddSubSatToMinMax()
6927 BaseOp = TargetOpcode::G_ADD; in lowerAddSubSatToMinMax()
6929 case TargetOpcode::G_USUBSAT: in lowerAddSubSatToMinMax()
6932 BaseOp = TargetOpcode::G_SUB; in lowerAddSubSatToMinMax()
6934 case TargetOpcode::G_SSUBSAT: in lowerAddSubSatToMinMax()
6937 BaseOp = TargetOpcode::G_SUB; in lowerAddSubSatToMinMax()
6997 case TargetOpcode::G_UADDSAT: in lowerAddSubSatToAddoSubo()
7000 OverflowOp = TargetOpcode::G_UADDO; in lowerAddSubSatToAddoSubo()
7002 case TargetOpcode::G_SADDSAT: in lowerAddSubSatToAddoSubo()
7005 OverflowOp = TargetOpcode::G_SADDO; in lowerAddSubSatToAddoSubo()
7007 case TargetOpcode::G_USUBSAT: in lowerAddSubSatToAddoSubo()
7010 OverflowOp = TargetOpcode::G_USUBO; in lowerAddSubSatToAddoSubo()
7012 case TargetOpcode::G_SSUBSAT: in lowerAddSubSatToAddoSubo()
7015 OverflowOp = TargetOpcode::G_SSUBO; in lowerAddSubSatToAddoSubo()
7054 assert((MI.getOpcode() == TargetOpcode::G_SSHLSAT || in lowerShlSat()
7055 MI.getOpcode() == TargetOpcode::G_USHLSAT) && in lowerShlSat()
7057 bool IsSigned = MI.getOpcode() == TargetOpcode::G_SSHLSAT; in lowerShlSat()
7140 MIRBuilder.buildInstr(TargetOpcode::G_BSWAP, {Ty}, {Src}); in lowerBitreverse()
7167 bool IsRead = MI.getOpcode() == TargetOpcode::G_READ_REGISTER; in lowerReadWriteRegister()
7191 bool IsSigned = MI.getOpcode() == TargetOpcode::G_SMULH; in lowerSMULH_UMULH()
7192 unsigned ExtOp = IsSigned ? TargetOpcode::G_SEXT : TargetOpcode::G_ZEXT; in lowerSMULH_UMULH()
7201 unsigned ShiftOp = IsSigned ? TargetOpcode::G_ASHR : TargetOpcode::G_LSHR; in lowerSMULH_UMULH()
7254 Opcode == TargetOpcode::G_SDIVREM ? TargetOpcode::G_SDIV in lowerDIVREM()
7255 : TargetOpcode::G_UDIV, in lowerDIVREM()
7258 Opcode == TargetOpcode::G_SDIVREM ? TargetOpcode::G_SREM in lowerDIVREM()
7259 : TargetOpcode::G_UREM, in lowerDIVREM()