Lines Matching refs:TargetOpcode
226 assert(MI.getOpcode() == TargetOpcode::G_UNMERGE_VALUES); in getUnmergeResults()
271 if (PadStrategy == TargetOpcode::G_ZEXT) in buildLCMMergePieces()
273 else if (PadStrategy == TargetOpcode::G_ANYEXT) in buildLCMMergePieces()
276 assert(PadStrategy == TargetOpcode::G_SEXT); in buildLCMMergePieces()
318 if (PadStrategy == TargetOpcode::G_ANYEXT) in buildLCMMergePieces()
320 else if (PadStrategy == TargetOpcode::G_ZEXT) in buildLCMMergePieces()
413 case TargetOpcode::G_MUL: in getRTLibDesc()
415 case TargetOpcode::G_SDIV: in getRTLibDesc()
417 case TargetOpcode::G_UDIV: in getRTLibDesc()
419 case TargetOpcode::G_SREM: in getRTLibDesc()
421 case TargetOpcode::G_UREM: in getRTLibDesc()
423 case TargetOpcode::G_CTLZ_ZERO_UNDEF: in getRTLibDesc()
425 case TargetOpcode::G_FADD: in getRTLibDesc()
427 case TargetOpcode::G_FSUB: in getRTLibDesc()
429 case TargetOpcode::G_FMUL: in getRTLibDesc()
431 case TargetOpcode::G_FDIV: in getRTLibDesc()
433 case TargetOpcode::G_FEXP: in getRTLibDesc()
435 case TargetOpcode::G_FEXP2: in getRTLibDesc()
437 case TargetOpcode::G_FEXP10: in getRTLibDesc()
439 case TargetOpcode::G_FREM: in getRTLibDesc()
441 case TargetOpcode::G_FPOW: in getRTLibDesc()
443 case TargetOpcode::G_FPOWI: in getRTLibDesc()
445 case TargetOpcode::G_FMA: in getRTLibDesc()
447 case TargetOpcode::G_FSIN: in getRTLibDesc()
449 case TargetOpcode::G_FCOS: in getRTLibDesc()
451 case TargetOpcode::G_FLOG10: in getRTLibDesc()
453 case TargetOpcode::G_FLOG: in getRTLibDesc()
455 case TargetOpcode::G_FLOG2: in getRTLibDesc()
457 case TargetOpcode::G_FLDEXP: in getRTLibDesc()
459 case TargetOpcode::G_FCEIL: in getRTLibDesc()
461 case TargetOpcode::G_FFLOOR: in getRTLibDesc()
463 case TargetOpcode::G_FMINNUM: in getRTLibDesc()
465 case TargetOpcode::G_FMAXNUM: in getRTLibDesc()
467 case TargetOpcode::G_FSQRT: in getRTLibDesc()
469 case TargetOpcode::G_FRINT: in getRTLibDesc()
471 case TargetOpcode::G_FNEARBYINT: in getRTLibDesc()
473 case TargetOpcode::G_INTRINSIC_ROUNDEVEN: in getRTLibDesc()
511 if (MI.getOpcode() == TargetOpcode::G_BZERO) in isLibCallInTailPosition()
645 case TargetOpcode::G_BZERO: in createMemLibcall()
648 case TargetOpcode::G_MEMCPY: in createMemLibcall()
652 case TargetOpcode::G_MEMMOVE: in createMemLibcall()
656 case TargetOpcode::G_MEMSET: in createMemLibcall()
724 case TargetOpcode::G_ATOMIC_CMPXCHG: in getOutlineAtomicLibcall()
725 case TargetOpcode::G_ATOMIC_CMPXCHG_WITH_SUCCESS: { in getOutlineAtomicLibcall()
729 case TargetOpcode::G_ATOMICRMW_XCHG: { in getOutlineAtomicLibcall()
733 case TargetOpcode::G_ATOMICRMW_ADD: in getOutlineAtomicLibcall()
734 case TargetOpcode::G_ATOMICRMW_SUB: { in getOutlineAtomicLibcall()
738 case TargetOpcode::G_ATOMICRMW_AND: { in getOutlineAtomicLibcall()
742 case TargetOpcode::G_ATOMICRMW_OR: { in getOutlineAtomicLibcall()
746 case TargetOpcode::G_ATOMICRMW_XOR: { in getOutlineAtomicLibcall()
766 case TargetOpcode::G_ATOMIC_CMPXCHG: in createAtomicLibcall()
767 case TargetOpcode::G_ATOMIC_CMPXCHG_WITH_SUCCESS: { in createAtomicLibcall()
774 if (Opc == TargetOpcode::G_ATOMIC_CMPXCHG_WITH_SUCCESS) { in createAtomicLibcall()
786 case TargetOpcode::G_ATOMICRMW_XCHG: in createAtomicLibcall()
787 case TargetOpcode::G_ATOMICRMW_ADD: in createAtomicLibcall()
788 case TargetOpcode::G_ATOMICRMW_SUB: in createAtomicLibcall()
789 case TargetOpcode::G_ATOMICRMW_AND: in createAtomicLibcall()
790 case TargetOpcode::G_ATOMICRMW_OR: in createAtomicLibcall()
791 case TargetOpcode::G_ATOMICRMW_XOR: { in createAtomicLibcall()
795 if (Opc == TargetOpcode::G_ATOMICRMW_AND) in createAtomicLibcall()
799 else if (Opc == TargetOpcode::G_ATOMICRMW_SUB) in createAtomicLibcall()
841 case TargetOpcode::G_FPEXT: in getConvRTLibDesc()
843 case TargetOpcode::G_FPTRUNC: in getConvRTLibDesc()
845 case TargetOpcode::G_FPTOSI: in getConvRTLibDesc()
847 case TargetOpcode::G_FPTOUI: in getConvRTLibDesc()
849 case TargetOpcode::G_SITOFP: in getConvRTLibDesc()
851 case TargetOpcode::G_UITOFP: in getConvRTLibDesc()
870 case TargetOpcode::G_GET_FPENV: in getStateLibraryFunctionFor()
873 case TargetOpcode::G_SET_FPENV: in getStateLibraryFunctionFor()
874 case TargetOpcode::G_RESET_FPENV: in getStateLibraryFunctionFor()
877 case TargetOpcode::G_GET_FPMODE: in getStateLibraryFunctionFor()
880 case TargetOpcode::G_SET_FPMODE: in getStateLibraryFunctionFor()
881 case TargetOpcode::G_RESET_FPMODE: in getStateLibraryFunctionFor()
936 MIRBuilder.buildLoadInstr(TargetOpcode::G_LOAD, Dst, Temp, *MMO); in createGetStateLibcall()
1012 case TargetOpcode::G_MUL: in libcall()
1013 case TargetOpcode::G_SDIV: in libcall()
1014 case TargetOpcode::G_UDIV: in libcall()
1015 case TargetOpcode::G_SREM: in libcall()
1016 case TargetOpcode::G_UREM: in libcall()
1017 case TargetOpcode::G_CTLZ_ZERO_UNDEF: { in libcall()
1026 case TargetOpcode::G_FADD: in libcall()
1027 case TargetOpcode::G_FSUB: in libcall()
1028 case TargetOpcode::G_FMUL: in libcall()
1029 case TargetOpcode::G_FDIV: in libcall()
1030 case TargetOpcode::G_FMA: in libcall()
1031 case TargetOpcode::G_FPOW: in libcall()
1032 case TargetOpcode::G_FREM: in libcall()
1033 case TargetOpcode::G_FCOS: in libcall()
1034 case TargetOpcode::G_FSIN: in libcall()
1035 case TargetOpcode::G_FLOG10: in libcall()
1036 case TargetOpcode::G_FLOG: in libcall()
1037 case TargetOpcode::G_FLOG2: in libcall()
1038 case TargetOpcode::G_FLDEXP: in libcall()
1039 case TargetOpcode::G_FEXP: in libcall()
1040 case TargetOpcode::G_FEXP2: in libcall()
1041 case TargetOpcode::G_FEXP10: in libcall()
1042 case TargetOpcode::G_FCEIL: in libcall()
1043 case TargetOpcode::G_FFLOOR: in libcall()
1044 case TargetOpcode::G_FMINNUM: in libcall()
1045 case TargetOpcode::G_FMAXNUM: in libcall()
1046 case TargetOpcode::G_FSQRT: in libcall()
1047 case TargetOpcode::G_FRINT: in libcall()
1048 case TargetOpcode::G_FNEARBYINT: in libcall()
1049 case TargetOpcode::G_INTRINSIC_ROUNDEVEN: { in libcall()
1062 case TargetOpcode::G_FPOWI: { in libcall()
1083 case TargetOpcode::G_FPEXT: in libcall()
1084 case TargetOpcode::G_FPTRUNC: { in libcall()
1095 case TargetOpcode::G_FPTOSI: in libcall()
1096 case TargetOpcode::G_FPTOUI: { in libcall()
1111 case TargetOpcode::G_SITOFP: in libcall()
1112 case TargetOpcode::G_UITOFP: { in libcall()
1127 case TargetOpcode::G_ATOMICRMW_XCHG: in libcall()
1128 case TargetOpcode::G_ATOMICRMW_ADD: in libcall()
1129 case TargetOpcode::G_ATOMICRMW_SUB: in libcall()
1130 case TargetOpcode::G_ATOMICRMW_AND: in libcall()
1131 case TargetOpcode::G_ATOMICRMW_OR: in libcall()
1132 case TargetOpcode::G_ATOMICRMW_XOR: in libcall()
1133 case TargetOpcode::G_ATOMIC_CMPXCHG: in libcall()
1134 case TargetOpcode::G_ATOMIC_CMPXCHG_WITH_SUCCESS: { in libcall()
1140 case TargetOpcode::G_BZERO: in libcall()
1141 case TargetOpcode::G_MEMCPY: in libcall()
1142 case TargetOpcode::G_MEMMOVE: in libcall()
1143 case TargetOpcode::G_MEMSET: { in libcall()
1151 case TargetOpcode::G_GET_FPENV: in libcall()
1152 case TargetOpcode::G_GET_FPMODE: { in libcall()
1158 case TargetOpcode::G_SET_FPENV: in libcall()
1159 case TargetOpcode::G_SET_FPMODE: { in libcall()
1165 case TargetOpcode::G_RESET_FPENV: in libcall()
1166 case TargetOpcode::G_RESET_FPMODE: { in libcall()
1188 case TargetOpcode::G_IMPLICIT_DEF: { in narrowScalar()
1223 case TargetOpcode::G_CONSTANT: { in narrowScalar()
1255 case TargetOpcode::G_SEXT: in narrowScalar()
1256 case TargetOpcode::G_ZEXT: in narrowScalar()
1257 case TargetOpcode::G_ANYEXT: in narrowScalar()
1259 case TargetOpcode::G_TRUNC: { in narrowScalar()
1275 case TargetOpcode::G_FREEZE: { in narrowScalar()
1295 case TargetOpcode::G_ADD: in narrowScalar()
1296 case TargetOpcode::G_SUB: in narrowScalar()
1297 case TargetOpcode::G_SADDO: in narrowScalar()
1298 case TargetOpcode::G_SSUBO: in narrowScalar()
1299 case TargetOpcode::G_SADDE: in narrowScalar()
1300 case TargetOpcode::G_SSUBE: in narrowScalar()
1301 case TargetOpcode::G_UADDO: in narrowScalar()
1302 case TargetOpcode::G_USUBO: in narrowScalar()
1303 case TargetOpcode::G_UADDE: in narrowScalar()
1304 case TargetOpcode::G_USUBE: in narrowScalar()
1306 case TargetOpcode::G_MUL: in narrowScalar()
1307 case TargetOpcode::G_UMULH: in narrowScalar()
1309 case TargetOpcode::G_EXTRACT: in narrowScalar()
1311 case TargetOpcode::G_INSERT: in narrowScalar()
1313 case TargetOpcode::G_LOAD: { in narrowScalar()
1330 case TargetOpcode::G_ZEXTLOAD: in narrowScalar()
1331 case TargetOpcode::G_SEXTLOAD: { in narrowScalar()
1357 case TargetOpcode::G_STORE: { in narrowScalar()
1381 case TargetOpcode::G_SELECT: in narrowScalar()
1383 case TargetOpcode::G_AND: in narrowScalar()
1384 case TargetOpcode::G_OR: in narrowScalar()
1385 case TargetOpcode::G_XOR: { in narrowScalar()
1397 case TargetOpcode::G_SHL: in narrowScalar()
1398 case TargetOpcode::G_LSHR: in narrowScalar()
1399 case TargetOpcode::G_ASHR: in narrowScalar()
1401 case TargetOpcode::G_CTLZ: in narrowScalar()
1402 case TargetOpcode::G_CTLZ_ZERO_UNDEF: in narrowScalar()
1403 case TargetOpcode::G_CTTZ: in narrowScalar()
1404 case TargetOpcode::G_CTTZ_ZERO_UNDEF: in narrowScalar()
1405 case TargetOpcode::G_CTPOP: in narrowScalar()
1408 case TargetOpcode::G_CTLZ: in narrowScalar()
1409 case TargetOpcode::G_CTLZ_ZERO_UNDEF: in narrowScalar()
1411 case TargetOpcode::G_CTTZ: in narrowScalar()
1412 case TargetOpcode::G_CTTZ_ZERO_UNDEF: in narrowScalar()
1414 case TargetOpcode::G_CTPOP: in narrowScalar()
1421 narrowScalarDst(MI, NarrowTy, 0, TargetOpcode::G_ZEXT); in narrowScalar()
1424 case TargetOpcode::G_INTTOPTR: in narrowScalar()
1432 case TargetOpcode::G_PTRTOINT: in narrowScalar()
1437 narrowScalarDst(MI, NarrowTy, 0, TargetOpcode::G_ZEXT); in narrowScalar()
1440 case TargetOpcode::G_PHI: { in narrowScalar()
1461 MIRBuilder.buildInstr(TargetOpcode::G_PHI).addDef(DstRegs[i]); in narrowScalar()
1471 case TargetOpcode::G_EXTRACT_VECTOR_ELT: in narrowScalar()
1472 case TargetOpcode::G_INSERT_VECTOR_ELT: { in narrowScalar()
1476 int OpIdx = MI.getOpcode() == TargetOpcode::G_EXTRACT_VECTOR_ELT ? 2 : 3; in narrowScalar()
1482 case TargetOpcode::G_ICMP: { in narrowScalar()
1531 /* PadStrategy = */ TargetOpcode::G_ZEXT); in narrowScalar()
1561 case TargetOpcode::G_SEXT_INREG: { in narrowScalar()
1635 TargetOpcode::G_SEXT_INREG, {NarrowTy}, in narrowScalar()
1648 case TargetOpcode::G_BSWAP: in narrowScalar()
1649 case TargetOpcode::G_BITREVERSE: { in narrowScalar()
1671 case TargetOpcode::G_PTR_ADD: in narrowScalar()
1672 case TargetOpcode::G_PTRMASK: { in narrowScalar()
1680 case TargetOpcode::G_FPTOUI: in narrowScalar()
1681 case TargetOpcode::G_FPTOSI: in narrowScalar()
1683 case TargetOpcode::G_FPEXT: in narrowScalar()
1687 narrowScalarDst(MI, NarrowTy, 0, TargetOpcode::G_FPEXT); in narrowScalar()
1690 case TargetOpcode::G_FLDEXP: in narrowScalar()
1691 case TargetOpcode::G_STRICT_FLDEXP: in narrowScalar()
1995 auto MIB = MIRBuilder.buildInstr(TargetOpcode::G_UNMERGE_VALUES); in widenScalarUnmergeValues()
2080 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalarExtract()
2095 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalarExtract()
2110 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalarInsert()
2125 case TargetOpcode::G_SADDO: in widenScalarAddSubOverflow()
2126 Opcode = TargetOpcode::G_ADD; in widenScalarAddSubOverflow()
2127 ExtOpcode = TargetOpcode::G_SEXT; in widenScalarAddSubOverflow()
2129 case TargetOpcode::G_SSUBO: in widenScalarAddSubOverflow()
2130 Opcode = TargetOpcode::G_SUB; in widenScalarAddSubOverflow()
2131 ExtOpcode = TargetOpcode::G_SEXT; in widenScalarAddSubOverflow()
2133 case TargetOpcode::G_UADDO: in widenScalarAddSubOverflow()
2134 Opcode = TargetOpcode::G_ADD; in widenScalarAddSubOverflow()
2135 ExtOpcode = TargetOpcode::G_ZEXT; in widenScalarAddSubOverflow()
2137 case TargetOpcode::G_USUBO: in widenScalarAddSubOverflow()
2138 Opcode = TargetOpcode::G_SUB; in widenScalarAddSubOverflow()
2139 ExtOpcode = TargetOpcode::G_ZEXT; in widenScalarAddSubOverflow()
2141 case TargetOpcode::G_SADDE: in widenScalarAddSubOverflow()
2142 Opcode = TargetOpcode::G_UADDE; in widenScalarAddSubOverflow()
2143 ExtOpcode = TargetOpcode::G_SEXT; in widenScalarAddSubOverflow()
2146 case TargetOpcode::G_SSUBE: in widenScalarAddSubOverflow()
2147 Opcode = TargetOpcode::G_USUBE; in widenScalarAddSubOverflow()
2148 ExtOpcode = TargetOpcode::G_SEXT; in widenScalarAddSubOverflow()
2151 case TargetOpcode::G_UADDE: in widenScalarAddSubOverflow()
2152 Opcode = TargetOpcode::G_UADDE; in widenScalarAddSubOverflow()
2153 ExtOpcode = TargetOpcode::G_ZEXT; in widenScalarAddSubOverflow()
2156 case TargetOpcode::G_USUBE: in widenScalarAddSubOverflow()
2157 Opcode = TargetOpcode::G_USUBE; in widenScalarAddSubOverflow()
2158 ExtOpcode = TargetOpcode::G_ZEXT; in widenScalarAddSubOverflow()
2202 bool IsSigned = MI.getOpcode() == TargetOpcode::G_SADDSAT || in widenScalarAddSubShlSat()
2203 MI.getOpcode() == TargetOpcode::G_SSUBSAT || in widenScalarAddSubShlSat()
2204 MI.getOpcode() == TargetOpcode::G_SSHLSAT; in widenScalarAddSubShlSat()
2205 bool IsShift = MI.getOpcode() == TargetOpcode::G_SSHLSAT || in widenScalarAddSubShlSat()
2206 MI.getOpcode() == TargetOpcode::G_USHLSAT; in widenScalarAddSubShlSat()
2253 bool IsSigned = MI.getOpcode() == TargetOpcode::G_SMULO; in widenScalarMulo()
2263 unsigned ExtOp = IsSigned ? TargetOpcode::G_SEXT : TargetOpcode::G_ZEXT; in widenScalarMulo()
2272 WideMulCanOverflow ? MI.getOpcode() : (unsigned)TargetOpcode::G_MUL; in widenScalarMulo()
2315 case TargetOpcode::G_ATOMICRMW_XCHG: in widenScalar()
2316 case TargetOpcode::G_ATOMICRMW_ADD: in widenScalar()
2317 case TargetOpcode::G_ATOMICRMW_SUB: in widenScalar()
2318 case TargetOpcode::G_ATOMICRMW_AND: in widenScalar()
2319 case TargetOpcode::G_ATOMICRMW_OR: in widenScalar()
2320 case TargetOpcode::G_ATOMICRMW_XOR: in widenScalar()
2321 case TargetOpcode::G_ATOMICRMW_MIN: in widenScalar()
2322 case TargetOpcode::G_ATOMICRMW_MAX: in widenScalar()
2323 case TargetOpcode::G_ATOMICRMW_UMIN: in widenScalar()
2324 case TargetOpcode::G_ATOMICRMW_UMAX: in widenScalar()
2327 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
2331 case TargetOpcode::G_ATOMIC_CMPXCHG: in widenScalar()
2334 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
2335 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ANYEXT); in widenScalar()
2339 case TargetOpcode::G_ATOMIC_CMPXCHG_WITH_SUCCESS: in widenScalar()
2342 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ANYEXT); in widenScalar()
2343 widenScalarSrc(MI, WideTy, 4, TargetOpcode::G_ANYEXT); in widenScalar()
2354 case TargetOpcode::G_EXTRACT: in widenScalar()
2356 case TargetOpcode::G_INSERT: in widenScalar()
2358 case TargetOpcode::G_MERGE_VALUES: in widenScalar()
2360 case TargetOpcode::G_UNMERGE_VALUES: in widenScalar()
2362 case TargetOpcode::G_SADDO: in widenScalar()
2363 case TargetOpcode::G_SSUBO: in widenScalar()
2364 case TargetOpcode::G_UADDO: in widenScalar()
2365 case TargetOpcode::G_USUBO: in widenScalar()
2366 case TargetOpcode::G_SADDE: in widenScalar()
2367 case TargetOpcode::G_SSUBE: in widenScalar()
2368 case TargetOpcode::G_UADDE: in widenScalar()
2369 case TargetOpcode::G_USUBE: in widenScalar()
2371 case TargetOpcode::G_UMULO: in widenScalar()
2372 case TargetOpcode::G_SMULO: in widenScalar()
2374 case TargetOpcode::G_SADDSAT: in widenScalar()
2375 case TargetOpcode::G_SSUBSAT: in widenScalar()
2376 case TargetOpcode::G_SSHLSAT: in widenScalar()
2377 case TargetOpcode::G_UADDSAT: in widenScalar()
2378 case TargetOpcode::G_USUBSAT: in widenScalar()
2379 case TargetOpcode::G_USHLSAT: in widenScalar()
2381 case TargetOpcode::G_CTTZ: in widenScalar()
2382 case TargetOpcode::G_CTTZ_ZERO_UNDEF: in widenScalar()
2383 case TargetOpcode::G_CTLZ: in widenScalar()
2384 case TargetOpcode::G_CTLZ_ZERO_UNDEF: in widenScalar()
2385 case TargetOpcode::G_CTPOP: { in widenScalar()
2396 unsigned ExtOpc = MI.getOpcode() == TargetOpcode::G_CTTZ || in widenScalar()
2397 MI.getOpcode() == TargetOpcode::G_CTTZ_ZERO_UNDEF in widenScalar()
2398 ? TargetOpcode::G_ANYEXT in widenScalar()
2399 : TargetOpcode::G_ZEXT; in widenScalar()
2403 if (NewOpc == TargetOpcode::G_CTTZ) { in widenScalar()
2412 NewOpc = TargetOpcode::G_CTTZ_ZERO_UNDEF; in widenScalar()
2418 if (MI.getOpcode() == TargetOpcode::G_CTLZ || in widenScalar()
2419 MI.getOpcode() == TargetOpcode::G_CTLZ_ZERO_UNDEF) { in widenScalar()
2430 case TargetOpcode::G_BSWAP: { in widenScalar()
2437 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2452 case TargetOpcode::G_BITREVERSE: { in widenScalar()
2460 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2470 case TargetOpcode::G_FREEZE: in widenScalar()
2472 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2477 case TargetOpcode::G_ABS: in widenScalar()
2479 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT); in widenScalar()
2484 case TargetOpcode::G_ADD: in widenScalar()
2485 case TargetOpcode::G_AND: in widenScalar()
2486 case TargetOpcode::G_MUL: in widenScalar()
2487 case TargetOpcode::G_OR: in widenScalar()
2488 case TargetOpcode::G_XOR: in widenScalar()
2489 case TargetOpcode::G_SUB: in widenScalar()
2494 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2495 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
2500 case TargetOpcode::G_SBFX: in widenScalar()
2501 case TargetOpcode::G_UBFX: in widenScalar()
2505 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2508 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2509 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ZEXT); in widenScalar()
2515 case TargetOpcode::G_SHL: in widenScalar()
2519 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2525 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2531 case TargetOpcode::G_ROTR: in widenScalar()
2532 case TargetOpcode::G_ROTL: in widenScalar()
2537 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2541 case TargetOpcode::G_SDIV: in widenScalar()
2542 case TargetOpcode::G_SREM: in widenScalar()
2543 case TargetOpcode::G_SMIN: in widenScalar()
2544 case TargetOpcode::G_SMAX: in widenScalar()
2546 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT); in widenScalar()
2547 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT); in widenScalar()
2552 case TargetOpcode::G_SDIVREM: in widenScalar()
2554 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT); in widenScalar()
2555 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_SEXT); in widenScalar()
2561 case TargetOpcode::G_ASHR: in widenScalar()
2562 case TargetOpcode::G_LSHR: in widenScalar()
2566 unsigned CvtOp = MI.getOpcode() == TargetOpcode::G_ASHR ? in widenScalar()
2567 TargetOpcode::G_SEXT : TargetOpcode::G_ZEXT; in widenScalar()
2575 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2580 case TargetOpcode::G_UDIV: in widenScalar()
2581 case TargetOpcode::G_UREM: in widenScalar()
2582 case TargetOpcode::G_UMIN: in widenScalar()
2583 case TargetOpcode::G_UMAX: in widenScalar()
2585 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT); in widenScalar()
2586 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2591 case TargetOpcode::G_UDIVREM: in widenScalar()
2593 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2594 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ZEXT); in widenScalar()
2600 case TargetOpcode::G_SELECT: in widenScalar()
2606 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
2607 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ANYEXT); in widenScalar()
2617 case TargetOpcode::G_FPTOSI: in widenScalar()
2618 case TargetOpcode::G_FPTOUI: in widenScalar()
2619 case TargetOpcode::G_IS_FPCLASS: in widenScalar()
2625 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_FPEXT); in widenScalar()
2629 case TargetOpcode::G_SITOFP: in widenScalar()
2633 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
2635 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT); in widenScalar()
2639 case TargetOpcode::G_UITOFP: in widenScalar()
2643 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
2645 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT); in widenScalar()
2649 case TargetOpcode::G_LOAD: in widenScalar()
2650 case TargetOpcode::G_SEXTLOAD: in widenScalar()
2651 case TargetOpcode::G_ZEXTLOAD: in widenScalar()
2657 case TargetOpcode::G_STORE: { in widenScalar()
2668 TargetOpcode::G_ZEXT : TargetOpcode::G_ANYEXT; in widenScalar()
2674 case TargetOpcode::G_CONSTANT: { in widenScalar()
2679 assert((ExtOpc == TargetOpcode::G_ZEXT || ExtOpc == TargetOpcode::G_SEXT || in widenScalar()
2680 ExtOpc == TargetOpcode::G_ANYEXT) && in widenScalar()
2683 const APInt &Val = (ExtOpc == TargetOpcode::G_SEXT) in widenScalar()
2693 case TargetOpcode::G_FCONSTANT: { in widenScalar()
2700 widenScalarDst(*IntCst, WideTy, 0, TargetOpcode::G_TRUNC); in widenScalar()
2704 case TargetOpcode::G_IMPLICIT_DEF: { in widenScalar()
2710 case TargetOpcode::G_BRCOND: in widenScalar()
2716 case TargetOpcode::G_FCMP: in widenScalar()
2721 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_FPEXT); in widenScalar()
2722 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_FPEXT); in widenScalar()
2727 case TargetOpcode::G_ICMP: in widenScalar()
2734 ? TargetOpcode::G_SEXT in widenScalar()
2735 : TargetOpcode::G_ZEXT; in widenScalar()
2742 case TargetOpcode::G_PTR_ADD: in widenScalar()
2745 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT); in widenScalar()
2749 case TargetOpcode::G_PHI: { in widenScalar()
2756 widenScalarSrc(MI, WideTy, I, TargetOpcode::G_ANYEXT); in widenScalar()
2765 case TargetOpcode::G_EXTRACT_VECTOR_ELT: { in widenScalar()
2773 TargetOpcode::G_ANYEXT); in widenScalar()
2784 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT); in widenScalar()
2788 case TargetOpcode::G_INSERT_VECTOR_ELT: { in widenScalar()
2793 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2794 widenScalarSrc(MI, WideEltTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
2807 widenScalarSrc(MI, WideVecTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2808 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT); in widenScalar()
2817 widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_SEXT); in widenScalar()
2824 case TargetOpcode::G_FADD: in widenScalar()
2825 case TargetOpcode::G_FMUL: in widenScalar()
2826 case TargetOpcode::G_FSUB: in widenScalar()
2827 case TargetOpcode::G_FMA: in widenScalar()
2828 case TargetOpcode::G_FMAD: in widenScalar()
2829 case TargetOpcode::G_FNEG: in widenScalar()
2830 case TargetOpcode::G_FABS: in widenScalar()
2831 case TargetOpcode::G_FCANONICALIZE: in widenScalar()
2832 case TargetOpcode::G_FMINNUM: in widenScalar()
2833 case TargetOpcode::G_FMAXNUM: in widenScalar()
2834 case TargetOpcode::G_FMINNUM_IEEE: in widenScalar()
2835 case TargetOpcode::G_FMAXNUM_IEEE: in widenScalar()
2836 case TargetOpcode::G_FMINIMUM: in widenScalar()
2837 case TargetOpcode::G_FMAXIMUM: in widenScalar()
2838 case TargetOpcode::G_FDIV: in widenScalar()
2839 case TargetOpcode::G_FREM: in widenScalar()
2840 case TargetOpcode::G_FCEIL: in widenScalar()
2841 case TargetOpcode::G_FFLOOR: in widenScalar()
2842 case TargetOpcode::G_FCOS: in widenScalar()
2843 case TargetOpcode::G_FSIN: in widenScalar()
2844 case TargetOpcode::G_FLOG10: in widenScalar()
2845 case TargetOpcode::G_FLOG: in widenScalar()
2846 case TargetOpcode::G_FLOG2: in widenScalar()
2847 case TargetOpcode::G_FRINT: in widenScalar()
2848 case TargetOpcode::G_FNEARBYINT: in widenScalar()
2849 case TargetOpcode::G_FSQRT: in widenScalar()
2850 case TargetOpcode::G_FEXP: in widenScalar()
2851 case TargetOpcode::G_FEXP2: in widenScalar()
2852 case TargetOpcode::G_FEXP10: in widenScalar()
2853 case TargetOpcode::G_FPOW: in widenScalar()
2854 case TargetOpcode::G_INTRINSIC_TRUNC: in widenScalar()
2855 case TargetOpcode::G_INTRINSIC_ROUND: in widenScalar()
2856 case TargetOpcode::G_INTRINSIC_ROUNDEVEN: in widenScalar()
2861 widenScalarSrc(MI, WideTy, I, TargetOpcode::G_FPEXT); in widenScalar()
2863 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
2866 case TargetOpcode::G_FPOWI: in widenScalar()
2867 case TargetOpcode::G_FLDEXP: in widenScalar()
2868 case TargetOpcode::G_STRICT_FLDEXP: { in widenScalar()
2870 if (MI.getOpcode() == TargetOpcode::G_STRICT_FLDEXP) in widenScalar()
2874 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_FPEXT); in widenScalar()
2875 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
2884 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT); in widenScalar()
2891 case TargetOpcode::G_FFREXP: { in widenScalar()
2895 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_FPEXT); in widenScalar()
2896 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
2904 case TargetOpcode::G_INTTOPTR: in widenScalar()
2909 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT); in widenScalar()
2912 case TargetOpcode::G_PTRTOINT: in widenScalar()
2920 case TargetOpcode::G_BUILD_VECTOR: { in widenScalar()
2925 widenScalarSrc(MI, WideEltTy, I, TargetOpcode::G_ANYEXT); in widenScalar()
2930 MI.setDesc(MIRBuilder.getTII().get(TargetOpcode::G_BUILD_VECTOR_TRUNC)); in widenScalar()
2938 case TargetOpcode::G_SEXT_INREG: in widenScalar()
2943 widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT); in widenScalar()
2944 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_TRUNC); in widenScalar()
2947 case TargetOpcode::G_PTRMASK: { in widenScalar()
2951 widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT); in widenScalar()
2955 case TargetOpcode::G_VECREDUCE_FADD: in widenScalar()
2956 case TargetOpcode::G_VECREDUCE_FMUL: in widenScalar()
2957 case TargetOpcode::G_VECREDUCE_FMIN: in widenScalar()
2958 case TargetOpcode::G_VECREDUCE_FMAX: in widenScalar()
2959 case TargetOpcode::G_VECREDUCE_FMINIMUM: in widenScalar()
2960 case TargetOpcode::G_VECREDUCE_FMAXIMUM: in widenScalar()
2969 widenScalarSrc(MI, WideVecTy, 1, TargetOpcode::G_FPEXT); in widenScalar()
2970 widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC); in widenScalar()
3003 MIRBuilder.buildLoadInstr(TargetOpcode::G_LOAD, Dst, Addr, *MMO); in lowerFConstant()
3403 auto LargeLoad = MIRBuilder.buildLoadInstr(TargetOpcode::G_ZEXTLOAD, AnyExtTy, in lowerLoad()
3536 case TargetOpcode::G_LOAD: { in bitcast()
3551 case TargetOpcode::G_STORE: { in bitcast()
3567 case TargetOpcode::G_SELECT: { in bitcast()
3584 case TargetOpcode::G_AND: in bitcast()
3585 case TargetOpcode::G_OR: in bitcast()
3586 case TargetOpcode::G_XOR: { in bitcast()
3594 case TargetOpcode::G_EXTRACT_VECTOR_ELT: in bitcast()
3596 case TargetOpcode::G_INSERT_VECTOR_ELT: in bitcast()
3612 using namespace TargetOpcode; in lower()
3617 case TargetOpcode::G_FCONSTANT: in lower()
3619 case TargetOpcode::G_BITCAST: in lower()
3621 case TargetOpcode::G_SREM: in lower()
3622 case TargetOpcode::G_UREM: { in lower()
3633 case TargetOpcode::G_SADDO: in lower()
3634 case TargetOpcode::G_SSUBO: in lower()
3636 case TargetOpcode::G_UMULH: in lower()
3637 case TargetOpcode::G_SMULH: in lower()
3639 case TargetOpcode::G_SMULO: in lower()
3640 case TargetOpcode::G_UMULO: { in lower()
3646 unsigned Opcode = MI.getOpcode() == TargetOpcode::G_SMULO in lower()
3647 ? TargetOpcode::G_SMULH in lower()
3648 : TargetOpcode::G_UMULH; in lower()
3652 MI.setDesc(TII.get(TargetOpcode::G_MUL)); in lower()
3664 if (Opcode == TargetOpcode::G_SMULH) { in lower()
3673 case TargetOpcode::G_FNEG: { in lower()
3687 case TargetOpcode::G_FSUB: in lower()
3688 case TargetOpcode::G_STRICT_FSUB: { in lower()
3695 if (MI.getOpcode() == TargetOpcode::G_STRICT_FSUB) in lower()
3703 case TargetOpcode::G_FMAD: in lower()
3705 case TargetOpcode::G_FFLOOR: in lower()
3707 case TargetOpcode::G_INTRINSIC_ROUND: in lower()
3709 case TargetOpcode::G_FRINT: { in lower()
3712 changeOpcode(MI, TargetOpcode::G_INTRINSIC_ROUNDEVEN); in lower()
3715 case TargetOpcode::G_ATOMIC_CMPXCHG_WITH_SUCCESS: { in lower()
3723 case TargetOpcode::G_LOAD: in lower()
3724 case TargetOpcode::G_SEXTLOAD: in lower()
3725 case TargetOpcode::G_ZEXTLOAD: in lower()
3727 case TargetOpcode::G_STORE: in lower()
3729 case TargetOpcode::G_CTLZ_ZERO_UNDEF: in lower()
3730 case TargetOpcode::G_CTTZ_ZERO_UNDEF: in lower()
3731 case TargetOpcode::G_CTLZ: in lower()
3732 case TargetOpcode::G_CTTZ: in lower()
3733 case TargetOpcode::G_CTPOP: in lower()
3830 case TargetOpcode::G_SEXT_INREG: { in lower()
4172 auto Phi = MIRBuilder.buildInstr(TargetOpcode::G_PHI); in fewerElementsVectorPhi()
4236 auto MIB = MIRBuilder.buildInstr(TargetOpcode::G_UNMERGE_VALUES); in fewerElementsVectorUnmergeValues()
4339 bool IsInsert = MI.getOpcode() == TargetOpcode::G_INSERT_VECTOR_ELT; in fewerElementsVectorExtractInsertVectorElt()
4371 TargetOpcode::G_ANYEXT); in fewerElementsVectorExtractInsertVectorElt()
4505 using namespace TargetOpcode; in fewerElementsVector()
4647 case TargetOpcode::G_VECREDUCE_SEQ_FADD: in fewerElementsVector()
4648 case TargetOpcode::G_VECREDUCE_SEQ_FMUL: in fewerElementsVector()
4661 assert(MI.getOpcode() == TargetOpcode::G_SHUFFLE_VECTOR); in fewerElementsVectorShuffle()
4893 assert((MI.getOpcode() == TargetOpcode::G_VECREDUCE_SEQ_FADD || in fewerElementsVectorSeqReductions()
4894 MI.getOpcode() == TargetOpcode::G_VECREDUCE_SEQ_FMUL) && in fewerElementsVectorSeqReductions()
4896 unsigned ScalarOpc = MI.getOpcode() == TargetOpcode::G_VECREDUCE_SEQ_FADD in fewerElementsVectorSeqReductions()
4897 ? TargetOpcode::G_FADD in fewerElementsVectorSeqReductions()
4898 : TargetOpcode::G_FMUL; in fewerElementsVectorSeqReductions()
4962 if (MI.getOpcode() == TargetOpcode::G_SHL) { in narrowScalarShiftByConstant()
4980 } else if (MI.getOpcode() == TargetOpcode::G_LSHR) { in narrowScalarShiftByConstant()
5083 case TargetOpcode::G_SHL: { in narrowScalarShift()
5103 case TargetOpcode::G_LSHR: in narrowScalarShift()
5104 case TargetOpcode::G_ASHR: { in narrowScalarShift()
5114 if (MI.getOpcode() == TargetOpcode::G_LSHR) { in narrowScalarShift()
5165 case TargetOpcode::G_IMPLICIT_DEF: in moreElementsVector()
5166 case TargetOpcode::G_LOAD: { in moreElementsVector()
5174 case TargetOpcode::G_STORE: in moreElementsVector()
5181 case TargetOpcode::G_AND: in moreElementsVector()
5182 case TargetOpcode::G_OR: in moreElementsVector()
5183 case TargetOpcode::G_XOR: in moreElementsVector()
5184 case TargetOpcode::G_ADD: in moreElementsVector()
5185 case TargetOpcode::G_SUB: in moreElementsVector()
5186 case TargetOpcode::G_MUL: in moreElementsVector()
5187 case TargetOpcode::G_FADD: in moreElementsVector()
5188 case TargetOpcode::G_FSUB: in moreElementsVector()
5189 case TargetOpcode::G_FMUL: in moreElementsVector()
5190 case TargetOpcode::G_FDIV: in moreElementsVector()
5191 case TargetOpcode::G_UADDSAT: in moreElementsVector()
5192 case TargetOpcode::G_USUBSAT: in moreElementsVector()
5193 case TargetOpcode::G_SADDSAT: in moreElementsVector()
5194 case TargetOpcode::G_SSUBSAT: in moreElementsVector()
5195 case TargetOpcode::G_SMIN: in moreElementsVector()
5196 case TargetOpcode::G_SMAX: in moreElementsVector()
5197 case TargetOpcode::G_UMIN: in moreElementsVector()
5198 case TargetOpcode::G_UMAX: in moreElementsVector()
5199 case TargetOpcode::G_FMINNUM: in moreElementsVector()
5200 case TargetOpcode::G_FMAXNUM: in moreElementsVector()
5201 case TargetOpcode::G_FMINNUM_IEEE: in moreElementsVector()
5202 case TargetOpcode::G_FMAXNUM_IEEE: in moreElementsVector()
5203 case TargetOpcode::G_FMINIMUM: in moreElementsVector()
5204 case TargetOpcode::G_FMAXIMUM: in moreElementsVector()
5205 case TargetOpcode::G_STRICT_FADD: in moreElementsVector()
5206 case TargetOpcode::G_STRICT_FSUB: in moreElementsVector()
5207 case TargetOpcode::G_STRICT_FMUL: in moreElementsVector()
5208 case TargetOpcode::G_SHL: in moreElementsVector()
5209 case TargetOpcode::G_ASHR: in moreElementsVector()
5210 case TargetOpcode::G_LSHR: { in moreElementsVector()
5218 case TargetOpcode::G_FMA: in moreElementsVector()
5219 case TargetOpcode::G_STRICT_FMA: in moreElementsVector()
5220 case TargetOpcode::G_FSHR: in moreElementsVector()
5221 case TargetOpcode::G_FSHL: { in moreElementsVector()
5230 case TargetOpcode::G_EXTRACT_VECTOR_ELT: in moreElementsVector()
5231 case TargetOpcode::G_EXTRACT: in moreElementsVector()
5238 case TargetOpcode::G_INSERT: in moreElementsVector()
5239 case TargetOpcode::G_INSERT_VECTOR_ELT: in moreElementsVector()
5240 case TargetOpcode::G_FREEZE: in moreElementsVector()
5241 case TargetOpcode::G_FNEG: in moreElementsVector()
5242 case TargetOpcode::G_FABS: in moreElementsVector()
5243 case TargetOpcode::G_FSQRT: in moreElementsVector()
5244 case TargetOpcode::G_FCEIL: in moreElementsVector()
5245 case TargetOpcode::G_FFLOOR: in moreElementsVector()
5246 case TargetOpcode::G_FNEARBYINT: in moreElementsVector()
5247 case TargetOpcode::G_FRINT: in moreElementsVector()
5248 case TargetOpcode::G_INTRINSIC_ROUND: in moreElementsVector()
5249 case TargetOpcode::G_INTRINSIC_ROUNDEVEN: in moreElementsVector()
5250 case TargetOpcode::G_INTRINSIC_TRUNC: in moreElementsVector()
5251 case TargetOpcode::G_BSWAP: in moreElementsVector()
5252 case TargetOpcode::G_FCANONICALIZE: in moreElementsVector()
5253 case TargetOpcode::G_SEXT_INREG: in moreElementsVector()
5261 case TargetOpcode::G_SELECT: { in moreElementsVector()
5287 case TargetOpcode::G_UNMERGE_VALUES: in moreElementsVector()
5289 case TargetOpcode::G_PHI: in moreElementsVector()
5291 case TargetOpcode::G_SHUFFLE_VECTOR: in moreElementsVector()
5293 case TargetOpcode::G_BUILD_VECTOR: { in moreElementsVector()
5308 case TargetOpcode::G_TRUNC: in moreElementsVector()
5309 case TargetOpcode::G_FPTRUNC: in moreElementsVector()
5310 case TargetOpcode::G_FPEXT: in moreElementsVector()
5311 case TargetOpcode::G_FPTOSI: in moreElementsVector()
5312 case TargetOpcode::G_FPTOUI: in moreElementsVector()
5313 case TargetOpcode::G_SITOFP: in moreElementsVector()
5314 case TargetOpcode::G_UITOFP: { in moreElementsVector()
5326 case TargetOpcode::G_ICMP: { in moreElementsVector()
5535 case TargetOpcode::G_SADDO: in narrowScalarAddSub()
5536 case TargetOpcode::G_SADDE: in narrowScalarAddSub()
5537 case TargetOpcode::G_UADDO: in narrowScalarAddSub()
5538 case TargetOpcode::G_UADDE: in narrowScalarAddSub()
5539 case TargetOpcode::G_ADD: in narrowScalarAddSub()
5540 OpO = TargetOpcode::G_UADDO; in narrowScalarAddSub()
5541 OpE = TargetOpcode::G_UADDE; in narrowScalarAddSub()
5542 OpF = TargetOpcode::G_UADDE; in narrowScalarAddSub()
5543 if (Opcode == TargetOpcode::G_SADDO || Opcode == TargetOpcode::G_SADDE) in narrowScalarAddSub()
5544 OpF = TargetOpcode::G_SADDE; in narrowScalarAddSub()
5546 case TargetOpcode::G_SSUBO: in narrowScalarAddSub()
5547 case TargetOpcode::G_SSUBE: in narrowScalarAddSub()
5548 case TargetOpcode::G_USUBO: in narrowScalarAddSub()
5549 case TargetOpcode::G_USUBE: in narrowScalarAddSub()
5550 case TargetOpcode::G_SUB: in narrowScalarAddSub()
5551 OpO = TargetOpcode::G_USUBO; in narrowScalarAddSub()
5552 OpE = TargetOpcode::G_USUBE; in narrowScalarAddSub()
5553 OpF = TargetOpcode::G_USUBE; in narrowScalarAddSub()
5554 if (Opcode == TargetOpcode::G_SSUBO || Opcode == TargetOpcode::G_SSUBE) in narrowScalarAddSub()
5555 OpF = TargetOpcode::G_SSUBE; in narrowScalarAddSub()
5630 bool IsMulHigh = MI.getOpcode() == TargetOpcode::G_UMULH; in narrowScalarMul()
5652 bool IsSigned = MI.getOpcode() == TargetOpcode::G_FPTOSI; in narrowScalarFPTOI()
5666 IsSigned ? TargetOpcode::G_SEXT : TargetOpcode::G_ZEXT); in narrowScalarFPTOI()
5941 const bool IsUndef = MI.getOpcode() == TargetOpcode::G_CTLZ_ZERO_UNDEF; in narrowScalarCTLZ()
5974 const bool IsUndef = MI.getOpcode() == TargetOpcode::G_CTTZ_ZERO_UNDEF; in narrowScalarCTTZ()
6056 case TargetOpcode::G_CTLZ_ZERO_UNDEF: { in lowerBitCount()
6059 MI.setDesc(TII.get(TargetOpcode::G_CTLZ)); in lowerBitCount()
6063 case TargetOpcode::G_CTLZ: { in lowerBitCount()
6067 if (isSupported({TargetOpcode::G_CTLZ_ZERO_UNDEF, {DstTy, SrcTy}})) { in lowerBitCount()
6103 case TargetOpcode::G_CTTZ_ZERO_UNDEF: { in lowerBitCount()
6106 MI.setDesc(TII.get(TargetOpcode::G_CTTZ)); in lowerBitCount()
6110 case TargetOpcode::G_CTTZ: { in lowerBitCount()
6114 if (isSupported({TargetOpcode::G_CTTZ_ZERO_UNDEF, {DstTy, SrcTy}})) { in lowerBitCount()
6134 if (!isSupported({TargetOpcode::G_CTPOP, {SrcTy, SrcTy}}) && in lowerBitCount()
6135 isSupported({TargetOpcode::G_CTLZ, {SrcTy, SrcTy}})) { in lowerBitCount()
6143 MI.setDesc(TII.get(TargetOpcode::G_CTPOP)); in lowerBitCount()
6148 case TargetOpcode::G_CTPOP: { in lowerBitCount()
6228 const bool IsFSHL = MI.getOpcode() == TargetOpcode::G_FSHL; in lowerFunnelShiftWithInverse()
6229 unsigned RevOpcode = IsFSHL ? TargetOpcode::G_FSHR : TargetOpcode::G_FSHL; in lowerFunnelShiftWithInverse()
6263 const bool IsFSHL = MI.getOpcode() == TargetOpcode::G_FSHL; in lowerFunnelShiftAsShifts()
6321 bool IsFSHL = MI.getOpcode() == TargetOpcode::G_FSHL; in lowerFunnelShift()
6322 unsigned RevOpcode = IsFSHL ? TargetOpcode::G_FSHR : TargetOpcode::G_FSHL; in lowerFunnelShift()
6388 assert(MI.getOpcode() == TargetOpcode::G_TRUNC); in lowerTRUNC()
6438 bool IsLeft = MI.getOpcode() == TargetOpcode::G_ROTL; in lowerRotateWithReverseRotate()
6439 unsigned RevRot = IsLeft ? TargetOpcode::G_ROTR : TargetOpcode::G_ROTL; in lowerRotateWithReverseRotate()
6450 bool IsLeft = MI.getOpcode() == TargetOpcode::G_ROTL; in lowerRotate()
6455 unsigned RevRot = IsLeft ? TargetOpcode::G_ROTR : TargetOpcode::G_ROTL; in lowerRotate()
6461 unsigned FShOpc = IsLeft ? TargetOpcode::G_FSHL : TargetOpcode::G_FSHR; in lowerRotate()
6462 unsigned RevFsh = !IsLeft ? TargetOpcode::G_FSHL : TargetOpcode::G_FSHR; in lowerRotate()
6482 unsigned ShOpc = IsLeft ? TargetOpcode::G_SHL : TargetOpcode::G_LSHR; in lowerRotate()
6483 unsigned RevShiftOpc = IsLeft ? TargetOpcode::G_LSHR : TargetOpcode::G_SHL; in lowerRotate()
6885 case TargetOpcode::G_SMIN: in minMaxToCompare()
6887 case TargetOpcode::G_SMAX: in minMaxToCompare()
6889 case TargetOpcode::G_UMIN: in minMaxToCompare()
6891 case TargetOpcode::G_UMAX: in minMaxToCompare()
6951 unsigned NewOp = MI.getOpcode() == TargetOpcode::G_FMINNUM ? in lowerFMinNumMaxNum()
6952 TargetOpcode::G_FMINNUM_IEEE : TargetOpcode::G_FMAXNUM_IEEE; in lowerFMinNumMaxNum()
7133 if (MI.getOpcode() == TargetOpcode::G_INSERT_VECTOR_ELT) in lowerExtractInsertVectorElt()
7455 const bool IsAdd = MI.getOpcode() == TargetOpcode::G_SADDO; in lowerSADDO_SSUBO()
7495 case TargetOpcode::G_UADDSAT: in lowerAddSubSatToMinMax()
7498 BaseOp = TargetOpcode::G_ADD; in lowerAddSubSatToMinMax()
7500 case TargetOpcode::G_SADDSAT: in lowerAddSubSatToMinMax()
7503 BaseOp = TargetOpcode::G_ADD; in lowerAddSubSatToMinMax()
7505 case TargetOpcode::G_USUBSAT: in lowerAddSubSatToMinMax()
7508 BaseOp = TargetOpcode::G_SUB; in lowerAddSubSatToMinMax()
7510 case TargetOpcode::G_SSUBSAT: in lowerAddSubSatToMinMax()
7513 BaseOp = TargetOpcode::G_SUB; in lowerAddSubSatToMinMax()
7571 case TargetOpcode::G_UADDSAT: in lowerAddSubSatToAddoSubo()
7574 OverflowOp = TargetOpcode::G_UADDO; in lowerAddSubSatToAddoSubo()
7576 case TargetOpcode::G_SADDSAT: in lowerAddSubSatToAddoSubo()
7579 OverflowOp = TargetOpcode::G_SADDO; in lowerAddSubSatToAddoSubo()
7581 case TargetOpcode::G_USUBSAT: in lowerAddSubSatToAddoSubo()
7584 OverflowOp = TargetOpcode::G_USUBO; in lowerAddSubSatToAddoSubo()
7586 case TargetOpcode::G_SSUBSAT: in lowerAddSubSatToAddoSubo()
7589 OverflowOp = TargetOpcode::G_SSUBO; in lowerAddSubSatToAddoSubo()
7628 assert((MI.getOpcode() == TargetOpcode::G_SSHLSAT || in lowerShlSat()
7629 MI.getOpcode() == TargetOpcode::G_USHLSAT) && in lowerShlSat()
7631 bool IsSigned = MI.getOpcode() == TargetOpcode::G_SSHLSAT; in lowerShlSat()
7709 MIRBuilder.buildInstr(TargetOpcode::G_BSWAP, {Ty}, {Src}); in lowerBitreverse()
7736 bool IsRead = MI.getOpcode() == TargetOpcode::G_READ_REGISTER; in lowerReadWriteRegister()
7760 bool IsSigned = MI.getOpcode() == TargetOpcode::G_SMULH; in lowerSMULH_UMULH()
7761 unsigned ExtOp = IsSigned ? TargetOpcode::G_SEXT : TargetOpcode::G_ZEXT; in lowerSMULH_UMULH()
7770 unsigned ShiftOp = IsSigned ? TargetOpcode::G_ASHR : TargetOpcode::G_LSHR; in lowerSMULH_UMULH()
8012 Opcode == TargetOpcode::G_SDIVREM ? TargetOpcode::G_SDIV in lowerDIVREM()
8013 : TargetOpcode::G_UDIV, in lowerDIVREM()
8016 Opcode == TargetOpcode::G_SDIVREM ? TargetOpcode::G_SREM in lowerDIVREM()
8017 : TargetOpcode::G_UREM, in lowerDIVREM()
8067 MI.setDesc(MIRBuilder.getTII().get(TargetOpcode::COPY)); in lowerVectorReduction()
8254 MachineInstr *FIDef = getOpcodeDef(TargetOpcode::G_FRAME_INDEX, Dst, MRI); in lowerMemset()
8354 assert(MI.getOpcode() == TargetOpcode::G_MEMCPY_INLINE); in lowerMemcpyInline()
8386 assert(MI.getOpcode() == TargetOpcode::G_MEMCPY_INLINE); in lowerMemcpyInline()
8407 MachineInstr *FIDef = getOpcodeDef(TargetOpcode::G_FRAME_INDEX, Dst, MRI); in lowerMemcpy()
8515 MachineInstr *FIDef = getOpcodeDef(TargetOpcode::G_FRAME_INDEX, Dst, MRI); in lowerMemmove()
8610 assert((Opc == TargetOpcode::G_MEMCPY || Opc == TargetOpcode::G_MEMMOVE || in lowerMemCpyFamily()
8611 Opc == TargetOpcode::G_MEMSET) && in lowerMemCpyFamily()
8621 if (Opc != TargetOpcode::G_MEMSET) { in lowerMemCpyFamily()
8639 if (Opc == TargetOpcode::G_MEMCPY_INLINE) in lowerMemCpyFamily()
8650 if (Opc == TargetOpcode::G_MEMCPY) { in lowerMemCpyFamily()
8658 if (Opc == TargetOpcode::G_MEMMOVE) in lowerMemCpyFamily()
8660 if (Opc == TargetOpcode::G_MEMSET) in lowerMemCpyFamily()