Lines Matching defs:DiffSCEV
46 // DiffSCEV, compute the alignment of the displaced pointer if it can be reduced
48 // DiffSCEV is a recurrence with constant start such that the aligned offset
50 static MaybeAlign getNewAlignmentDiff(const SCEV *DiffSCEV,
54 const SCEV *DiffUnitsSCEV = SE->getURemExpr(DiffSCEV, AlignSCEV);
57 << *DiffUnitsSCEV << " (diff: " << *DiffSCEV << ")\n");
87 const SCEV *DiffSCEV = SE->getMinusSCEV(PtrSCEV, AASCEV);
88 if (isa<SCEVCouldNotCompute>(DiffSCEV))
91 // On 32-bit platforms, DiffSCEV might now have type i32 -- we've always
93 DiffSCEV = SE->getNoopOrSignExtend(DiffSCEV, OffSCEV->getType());
97 DiffSCEV = SE->getAddExpr(DiffSCEV, OffSCEV);
101 << " using diff " << *DiffSCEV << "\n");
103 if (MaybeAlign NewAlignment = getNewAlignmentDiff(DiffSCEV, AlignSCEV, SE)) {
108 if (const SCEVAddRecExpr *DiffARSCEV = dyn_cast<SCEVAddRecExpr>(DiffSCEV)) {