Lines Matching defs:V2

192 /// Return true if both V1 and V2 are VScale
193 static bool areBothVScale(const Value *V1, const Value *V2) {
195 PatternMatch::match(V2, PatternMatch::m_VScale());
1076 /// We know that V1 is a GEP, but we don't know anything about V2.
1078 /// V2.
1081 const Value *V2, LocationSize V2Size,
1086 if (!isa<GEPOperator>(V2))
1100 DecomposedGEP DecompGEP2 = DecomposeGEPExpression(V2, DL, &AC, DT);
1103 if (DecompGEP1.Base == GEP1 && DecompGEP2.Base == V2)
1120 if (isa<GEPOperator>(V2)) {
1155 // Initialize for Off >= 0 (V2 <= GEP1) case.
1156 const Value *LeftPtr = V2;
1168 // GEP1 V2
1186 // cache. Note that originally offset estimated as GEP1-V2, but
1187 // AliasResult contains the shift that represents GEP1+Offset=V2.
1384 const Value *V2, LocationSize V2Size,
1388 if (const SelectInst *SI2 = dyn_cast<SelectInst>(V2))
1402 // If both arms of the Select node NoAlias or MustAlias V2, then returns
1405 MemoryLocation(V2, V2Size), AAQI);
1411 MemoryLocation(V2, V2Size), AAQI);
1418 const Value *V2, LocationSize V2Size,
1425 if (const PHINode *PN2 = dyn_cast<PHINode>(V2))
1507 MemoryLocation(V2, V2Size), AAQI);
1509 // Early exit if the check of the first PHI source against V2 is MayAlias.
1518 // If all sources of the PHI node NoAlias or MustAlias V2, then returns
1524 MemoryLocation(V, PNSize), MemoryLocation(V2, V2Size), AAQI);
1536 const Value *V2, LocationSize V2Size,
1546 V2 = V2->stripPointerCastsForAliasAnalysis();
1548 // If V1 or V2 is undef, the result is NoAlias because we can always pick a
1550 if (isa<UndefValue>(V1) || isa<UndefValue>(V2))
1559 if (isValueEqualInPotentialCycles(V1, V2, AAQI))
1562 if (!V1->getType()->isPointerTy() || !V2->getType()->isPointerTy())
1567 const Value *O2 = getUnderlyingObject(V2, MaxLookupSearchDepth);
1579 // If V1/V2 point to two different objects, we know that we have no alias.
1613 O1, getMinimalExtentFrom(*V2, V2Size, DL, NullIsValidLocation), DL,
1649 // Note that we go back to V1 and V2 for the
1654 ValidAssumeForPtrContext(V1) || ValidAssumeForPtrContext(V2)) {
1686 {V2, V2Size, AAQI.MayBeCrossIteration});
1687 const bool Swapped = V1 > V2;
1702 // Cache contains sorted {V1,V2} pairs but we should return original order.
1711 aliasCheckRecursive(V1, V1Size, V2, V2Size, AAQI, O1, O2);
1726 // Cache contains sorted {V1,V2} pairs.
1764 const Value *V2, LocationSize V2Size,
1767 AliasResult Result = aliasGEP(GV1, V1Size, V2, V2Size, O1, O2, AAQI);
1770 } else if (const GEPOperator *GV2 = dyn_cast<GEPOperator>(V2)) {
1778 AliasResult Result = aliasPHI(PN, V1Size, V2, V2Size, AAQI);
1781 } else if (const PHINode *PN = dyn_cast<PHINode>(V2)) {
1789 AliasResult Result = aliasSelect(S1, V1Size, V2, V2Size, AAQI);
1792 } else if (const SelectInst *S2 = dyn_cast<SelectInst>(V2)) {
1819 const Value *V2,
1821 if (V != V2)
1924 // We can't definitely say whether GEP1 is before or after V2 due to wrapping
1925 // arithmetic (i.e. for some values of GEP1 and V2 GEP1 < V2, and for other
1926 // values GEP1 > V2). We'll therefore only declare NoAlias if both V1Size and