Lines Matching defs:NarrowDef

1102   void calculatePostIncRange(Instruction *NarrowDef, Instruction *NarrowUser);
1116 Instruction *NarrowDef = nullptr;
1127 : NarrowDef(ND), NarrowUse(NU), WideDef(WD),
1167 void pushNarrowIVUsers(Instruction *NarrowDef, Instruction *WideDef);
1277 Instruction *NarrowDef = DU.NarrowDef;
1282 // Replace NarrowDef operands with WideDef. Otherwise, we don't know anything
1286 bool IsSigned = getExtendKind(NarrowDef) == ExtendKind::Sign;
1287 Value *LHS = (NarrowUse->getOperand(0) == NarrowDef)
1291 Value *RHS = (NarrowUse->getOperand(1) == NarrowDef)
1308 Instruction *NarrowDef = DU.NarrowDef;
1313 unsigned IVOpIdx = (NarrowUse->getOperand(0) == NarrowDef) ? 0 : 1;
1317 // Widen(NarrowDef `op` NonIVNarrowDef) == WideAR == WideDef `op.wide` X
1351 bool SignExtend = getExtendKind(NarrowDef) == ExtendKind::Sign;
1358 Value *LHS = (NarrowUse->getOperand(0) == NarrowDef)
1362 Value *RHS = (NarrowUse->getOperand(1) == NarrowDef)
1485 // One operand (NarrowDef) has already been extended to WideDef. Now determine
1487 const unsigned ExtendOperIdx = Op->Operands[0] == DU.NarrowDef ? 1 : 0;
1488 assert(Op->Operands[1 - ExtendOperIdx] == DU.NarrowDef && "bad DU");
1490 ExtendKind ExtKind = getExtendKind(DU.NarrowDef);
1495 // For a non-negative NarrowDef, we can choose either type of
1564 } else if (getExtendKind(DU.NarrowDef) == ExtendKind::Sign) {
1580 auto *InsertPt = getInsertPointForUses(DU.NarrowUse, DU.NarrowDef, DT, LI);
1585 ExtendKind ExtKind = getExtendKind(DU.NarrowDef);
1588 Builder.CreateTrunc(DU.WideDef, DU.NarrowDef->getType(), "",
1591 DU.NarrowUse->replaceUsesOfWith(DU.NarrowDef, Trunc);
1616 bool IsSigned = getExtendKind(DU.NarrowDef) == ExtendKind::Sign;
1620 Value *Op = Cmp->getOperand(Cmp->getOperand(0) == DU.NarrowDef ? 1 : 0);
1626 DU.NarrowUse->replaceUsesOfWith(DU.NarrowDef, DU.WideDef);
1658 Instruction *NarrowDef = DU.NarrowDef;
1668 // The operand that is not defined by NarrowDef of DU. Let's call it the
1670 assert((NarrowUse->getOperand(0) == NarrowDef ||
1671 NarrowUse->getOperand(1) == NarrowDef) &&
1676 ExtendKind ExtKind = getExtendKind(NarrowDef);
1691 if (User == NarrowDef)
1742 // TODO: Support case for NarrowDef = NarrowUse->getOperand(1).
1743 if (NarrowUse->getOperand(0) != NarrowDef)
1766 (NarrowUse->getOperand(0) == NarrowDef)
1771 (NarrowUse->getOperand(1) == NarrowDef)
1836 assert(ExtendKindMap.count(DU.NarrowDef) &&
1837 "Should already know the kind of extension used to widen NarrowDef");
1842 DU.NeverNegative || getExtendKind(DU.NarrowDef) == ExtendKind::Sign;
1844 DU.NeverNegative || getExtendKind(DU.NarrowDef) == ExtendKind::Zero;
1867 Value *Trunc = Builder.CreateTrunc(WidePhi, DU.NarrowDef->getType(), "",
1898 DU.NarrowUse->replaceUsesOfWith(DU.NarrowDef, DU.WideDef);
1998 /// Add eligible users of NarrowDef to NarrowIVUsers.
1999 void WidenIV::pushNarrowIVUsers(Instruction *NarrowDef, Instruction *WideDef) {
2000 const SCEV *NarrowSCEV = SE->getSCEV(NarrowDef);
2004 for (User *U : NarrowDef->users()) {
2014 if (auto RangeInfo = getPostIncRangeInfo(NarrowDef, NarrowUser))
2018 NarrowIVUsers.emplace_back(NarrowDef, NarrowUser, WideDef,
2146 if (DU.NarrowDef->use_empty())
2147 DeadInsts.emplace_back(DU.NarrowDef);
2158 void WidenIV::calculatePostIncRange(Instruction *NarrowDef,
2162 if (!match(NarrowDef, m_NSWAdd(m_Value(NarrowDefLHS),
2182 updatePostIncRangeInfo(NarrowDef, NarrowUser, NarrowDefRange);
2240 Instruction *NarrowDef = Worklist.pop_back_val();
2242 for (Use &U : NarrowDef->uses()) {
2255 calculatePostIncRange(NarrowDef, NarrowUser);