Home | History | Annotate | Download | only in Analysis

Lines Matching defs:SExt

148     const SCEVSignExtendExpr *SExt = cast<SCEVSignExtendExpr>(this);
149 const SCEV *Op = SExt->getOperand();
150 OS << "(sext " << *Op->getType() << " " << *Op << " to "
151 << *SExt->getType() << ")";
817 // trunc(sext(x)) --> sext(x) if widening or trunc(x) if narrowing
1061 // such: {sext(Step + Start),+,Step} => {(Step + sext(Start),+,Step} As a
1062 // result, the expression "Step + sext(PreIncAR)" is congruent with
1063 // "sext(PostIncAR)"
1151 // sext(sext(x)) --> sext(x)
1155 // sext(zext(x)) --> zext(x)
1172 // sext(trunc(x)) --> sext(x) or x or trunc(x)
1315 // Next try a sext cast. If the cast is folded, use it.
1316 const SCEV *SExt = getSignExtendExpr(Op, Ty);
1317 if (!isa<SCEVSignExtendExpr>(SExt))
1318 return SExt;
1336 // If the expression is obviously signed, use the sext cast value.
1338 return SExt;
3318 if (const SCEVSignExtendExpr *SExt = dyn_cast<SCEVSignExtendExpr>(S)) {
3319 ConstantRange X = getUnsignedRange(SExt->getOperand());
3320 return setUnsignedRange(SExt,
3460 if (const SCEVSignExtendExpr *SExt = dyn_cast<SCEVSignExtendExpr>(S)) {
3461 ConstantRange X = getSignedRange(SExt->getOperand());
3462 return setSignedRange(SExt,
3765 // For a two-shift sext-inreg, use sext(trunc(x)) as the SCEV expression.
3796 case Instruction::SExt: