Lines Matching defs:SExt
153 const SCEVSignExtendExpr *SExt = cast<SCEVSignExtendExpr>(this);
154 const SCEV *Op = SExt->getOperand();
155 OS << "(sext " << *Op->getType() << " " << *Op << " to "
156 << *SExt->getType() << ")";
769 DenominatorVal = DenominatorVal.sext(NumeratorBW);
771 NumeratorVal = NumeratorVal.sext(DenominatorBW);
1090 // trunc(sext(x)) --> sext(x) if widening or trunc(x) if narrowing
1235 // allows normalizing a sign/zero extended AddRec as such: {sext/zext(Step +
1236 // Start),+,Step} => {(Step + sext/zext(Start),+,Step} As a result, the
1237 // expression "Step + sext/zext(PreIncAR)" is congruent with
1238 // "sext/zext(PostIncAR)"
1594 // sext(sext(x)) --> sext(x)
1598 // sext(zext(x)) --> zext(x)
1615 // sext(trunc(x)) --> sext(x) or x or trunc(x)
1628 // sext(C1 + (C2 * x)) --> C1 + sext(C2 * x) if C1 < C2
1645 // sext((A + B + ...)<nsw>) --> (sext(A) + sext(B) + ...)<nsw>
1757 // sext{C1,+,C2} --> C1 + sext{0,+,C2} if C1 < C2
1818 // Next try a sext cast. If the cast is folded, use it.
1819 const SCEV *SExt = getSignExtendExpr(Op, Ty);
1820 if (!isa<SCEVSignExtendExpr>(SExt))
1821 return SExt;
1831 // If the expression is obviously signed, use the sext cast value.
1833 return SExt;
4270 if (const SCEVSignExtendExpr *SExt = dyn_cast<SCEVSignExtendExpr>(S)) {
4271 ConstantRange X = getRange(SExt->getOperand(), SignHint);
4272 return setRange(SExt, SignHint,
4730 // For a two-shift sext-inreg, use sext(trunc(x)) as the SCEV expression.
4761 case Instruction::SExt: