Lines Matching defs:ExtendKind

1076   enum class ExtendKind { Zero, Sign, Unknown };
1082 DenseMap<AssertingVH<Instruction>, ExtendKind> ExtendKindMap;
1151 ExtendKind getExtendKind(Instruction *I);
1153 using WidenedRecTy = std::pair<const SCEVAddRecExpr *, ExtendKind>;
1235 ExtendKindMap[OrigPhi] = WI.IsSigned ? ExtendKind::Sign : ExtendKind::Zero;
1288 bool IsSigned = getExtendKind(NarrowDef) == ExtendKind::Sign;
1353 bool SignExtend = getExtendKind(NarrowDef) == ExtendKind::Sign;
1379 WidenIV::ExtendKind WidenIV::getExtendKind(Instruction *I) {
1481 return {nullptr, ExtendKind::Unknown};
1492 ExtendKind ExtKind = getExtendKind(DU.NarrowDef);
1493 if (!(ExtKind == ExtendKind::Sign && Op->IsNSW) &&
1494 !(ExtKind == ExtendKind::Zero && Op->IsNUW)) {
1495 ExtKind = ExtendKind::Unknown;
1503 ExtKind = ExtendKind::Sign;
1505 ExtKind = ExtendKind::Zero;
1511 if (ExtKind == ExtendKind::Sign)
1513 else if (ExtKind == ExtendKind::Zero)
1516 return {nullptr, ExtendKind::Unknown};
1534 return {nullptr, ExtendKind::Unknown};
1543 /// return {nullptr, ExtendKind::Unknown}.
1546 return {nullptr, ExtendKind::Unknown};
1553 return {nullptr, ExtendKind::Unknown};
1557 ExtendKind ExtKind;
1561 ExtKind = ExtendKind::Sign;
1564 ExtKind = ExtendKind::Zero;
1566 } else if (getExtendKind(DU.NarrowDef) == ExtendKind::Sign) {
1568 ExtKind = ExtendKind::Sign;
1571 ExtKind = ExtendKind::Zero;
1575 return {nullptr, ExtendKind::Unknown};
1587 ExtendKind ExtKind = getExtendKind(DU.NarrowDef);
1591 DU.NeverNegative || ExtKind == ExtendKind::Zero,
1592 DU.NeverNegative || ExtKind == ExtendKind::Sign);
1618 bool IsSigned = getExtendKind(DU.NarrowDef) == ExtendKind::Sign;
1678 ExtendKind ExtKind = getExtendKind(NarrowDef);
1679 bool CanSignExtend = ExtKind == ExtendKind::Sign && OBO->hasNoSignedWrap();
1680 bool CanZeroExtend = ExtKind == ExtendKind::Zero && OBO->hasNoUnsignedWrap();
1710 if (ExtKind == ExtendKind::Zero && ICmpInst::isSigned(Pred))
1712 if (ExtKind == ExtendKind::Sign && ICmpInst::isUnsigned(Pred))
1717 if (ExtKind == ExtendKind::Sign)
1740 if (ExtKind != ExtendKind::Zero)
1755 AnotherOpExtKind = ExtendKind::Sign;
1771 AnotherOpExtKind == ExtendKind::Sign, NarrowUse);
1776 AnotherOpExtKind == ExtendKind::Sign, NarrowUse);
1816 if (ExtKind == ExtendKind::Zero)
1844 DU.NeverNegative || getExtendKind(DU.NarrowDef) == ExtendKind::Sign;
1846 DU.NeverNegative || getExtendKind(DU.NarrowDef) == ExtendKind::Zero;
1927 (WideAddRec.second == ExtendKind::Unknown));
2040 const SCEV *WideIVExpr = getExtendKind(OrigPhi) == ExtendKind::Sign