Lines Matching defs:ExtendKind

1076   enum class ExtendKind { Zero, Sign, Unknown };
1082 DenseMap<AssertingVH<Instruction>, ExtendKind> ExtendKindMap;
1149 ExtendKind getExtendKind(Instruction *I);
1151 using WidenedRecTy = std::pair<const SCEVAddRecExpr *, ExtendKind>;
1233 ExtendKindMap[OrigPhi] = WI.IsSigned ? ExtendKind::Sign : ExtendKind::Zero;
1286 bool IsSigned = getExtendKind(NarrowDef) == ExtendKind::Sign;
1351 bool SignExtend = getExtendKind(NarrowDef) == ExtendKind::Sign;
1377 WidenIV::ExtendKind WidenIV::getExtendKind(Instruction *I) {
1479 return {nullptr, ExtendKind::Unknown};
1490 ExtendKind ExtKind = getExtendKind(DU.NarrowDef);
1491 if (!(ExtKind == ExtendKind::Sign && Op->IsNSW) &&
1492 !(ExtKind == ExtendKind::Zero && Op->IsNUW)) {
1493 ExtKind = ExtendKind::Unknown;
1501 ExtKind = ExtendKind::Sign;
1503 ExtKind = ExtendKind::Zero;
1509 if (ExtKind == ExtendKind::Sign)
1511 else if (ExtKind == ExtendKind::Zero)
1514 return {nullptr, ExtendKind::Unknown};
1532 return {nullptr, ExtendKind::Unknown};
1541 /// return {nullptr, ExtendKind::Unknown}.
1544 return {nullptr, ExtendKind::Unknown};
1551 return {nullptr, ExtendKind::Unknown};
1555 ExtendKind ExtKind;
1559 ExtKind = ExtendKind::Sign;
1562 ExtKind = ExtendKind::Zero;
1564 } else if (getExtendKind(DU.NarrowDef) == ExtendKind::Sign) {
1566 ExtKind = ExtendKind::Sign;
1569 ExtKind = ExtendKind::Zero;
1573 return {nullptr, ExtendKind::Unknown};
1585 ExtendKind ExtKind = getExtendKind(DU.NarrowDef);
1589 DU.NeverNegative || ExtKind == ExtendKind::Zero,
1590 DU.NeverNegative || ExtKind == ExtendKind::Sign);
1616 bool IsSigned = getExtendKind(DU.NarrowDef) == ExtendKind::Sign;
1676 ExtendKind ExtKind = getExtendKind(NarrowDef);
1677 bool CanSignExtend = ExtKind == ExtendKind::Sign && OBO->hasNoSignedWrap();
1678 bool CanZeroExtend = ExtKind == ExtendKind::Zero && OBO->hasNoUnsignedWrap();
1708 if (ExtKind == ExtendKind::Zero && ICmpInst::isSigned(Pred))
1710 if (ExtKind == ExtendKind::Sign && ICmpInst::isUnsigned(Pred))
1715 if (ExtKind == ExtendKind::Sign)
1738 if (ExtKind != ExtendKind::Zero)
1753 AnotherOpExtKind = ExtendKind::Sign;
1769 AnotherOpExtKind == ExtendKind::Sign, NarrowUse);
1774 AnotherOpExtKind == ExtendKind::Sign, NarrowUse);
1814 if (ExtKind == ExtendKind::Zero)
1842 DU.NeverNegative || getExtendKind(DU.NarrowDef) == ExtendKind::Sign;
1844 DU.NeverNegative || getExtendKind(DU.NarrowDef) == ExtendKind::Zero;
1925 (WideAddRec.second == ExtendKind::Unknown));
2038 const SCEV *WideIVExpr = getExtendKind(OrigPhi) == ExtendKind::Sign