DenseMap<Value *, const SCEV *> SymbolicStrides;
};
-Value *stripIntegerCast(Value *V);
-
/// Return the SCEV corresponding to a pointer with the symbolic stride
/// replaced with constant one, assuming the SCEV predicate associated with
/// \p PSE is true.
return ::VectorizationInterleave.getNumOccurrences() > 0;
}
-Value *llvm::stripIntegerCast(Value *V) {
- if (auto *CI = dyn_cast<CastInst>(V))
- if (CI->getOperand(0)->getType()->isIntegerTy())
- return CI->getOperand(0);
- return V;
-}
-
const SCEV *llvm::replaceSymbolicStrideSCEV(PredicatedScalarEvolution &PSE,
const DenseMap<Value *, const SCEV *> &PtrToStride,
Value *Ptr) {