Lines Matching refs:SCEV
62 const SCEV *LHS, in computeConstantDifference()
63 const SCEV *RHS) { in computeConstantDifference()
67 static bool matchURem(ScalarEvolution &SE, const SCEV *Expr, const SCEV *&LHS, in matchURem()
68 const SCEV *&RHS) { in matchURem()
73 ScalarEvolution &SE, ICmpInst::Predicate Pred, const SCEV *LHS, in isImpliedCond()
74 const SCEV *RHS, ICmpInst::Predicate FoundPred, const SCEV *FoundLHS, in isImpliedCond()
75 const SCEV *FoundRHS) { in isImpliedCond()
95 const SCEV *S0 = SE.getSCEV(V0); in TEST_F()
96 const SCEV *S1 = SE.getSCEV(V1); in TEST_F()
97 const SCEV *S2 = SE.getSCEV(V2); in TEST_F()
99 const SCEV *P0 = SE.getAddExpr(S0, SE.getConstant(S0->getType(), 2)); in TEST_F()
100 const SCEV *P1 = SE.getAddExpr(S1, SE.getConstant(S0->getType(), 2)); in TEST_F()
101 const SCEV *P2 = SE.getAddExpr(S2, SE.getConstant(S0->getType(), 2)); in TEST_F()
251 auto CheckCommutativeMulExprs = [&](ScalarEvolution &SE, const SCEV *A, in TEST_F()
252 const SCEV *B, const SCEV *C) { in TEST_F()
257 SmallVector<const SCEV *, 3> Ops0 = {A, B, C}; in TEST_F()
258 SmallVector<const SCEV *, 3> Ops1 = {A, C, B}; in TEST_F()
259 SmallVector<const SCEV *, 3> Ops2 = {B, A, C}; in TEST_F()
260 SmallVector<const SCEV *, 3> Ops3 = {B, C, A}; in TEST_F()
261 SmallVector<const SCEV *, 3> Ops4 = {C, B, A}; in TEST_F()
262 SmallVector<const SCEV *, 3> Ops5 = {C, A, B}; in TEST_F()
429 SE.getAddExpr(SE.getSCEV(A2), SE.getSCEV(A3), SCEV::FlagNUW), in TEST_F()
430 SE.getConstant(APInt(/*numBits=*/32, 5)), SCEV::FlagNUW)); in TEST_F()
432 EXPECT_EQ(AddWithNUW->getNoWrapFlags(), SCEV::FlagNUW); in TEST_F()
435 SE.getAddExpr(SE.getSCEV(A3), SE.getSCEV(A4), SCEV::FlagAnyWrap); in TEST_F()
437 SE.getAddExpr(AddWithAnyWrap, SE.getSCEV(A5), SCEV::FlagNUW)); in TEST_F()
439 EXPECT_EQ(AddWithAnyWrapNUW->getNoWrapFlags(), SCEV::FlagAnyWrap); in TEST_F()
442 SE.getSCEV(A2), SE.getConstant(APInt(32, 99)), SCEV::FlagNSW); in TEST_F()
444 SE.getAddExpr(AddWithNSW, SE.getSCEV(A5), SCEV::FlagNUW)); in TEST_F()
446 EXPECT_EQ(AddWithNSW_NUW->getNoWrapFlags(), SCEV::FlagAnyWrap); in TEST_F()
450 ScalarEvolution::setFlags(SCEV::FlagNUW, SCEV::FlagNSW)); in TEST_F()
452 SE.getAddExpr(AddWithNSWNUW, SE.getSCEV(A5), SCEV::FlagNUW)); in TEST_F()
454 EXPECT_EQ(AddWithNSWNUW_NUW->getNoWrapFlags(), SCEV::FlagNUW); in TEST_F()
458 ScalarEvolution::setFlags(SCEV::FlagNUW, SCEV::FlagNSW))); in TEST_F()
460 EXPECT_EQ(AddWithNSW_NSWNUW->getNoWrapFlags(), SCEV::FlagAnyWrap); in TEST_F()
549 auto GetAddRec = [&SE](const Loop *L, std::initializer_list<const SCEV *> Ops) { in TEST_F()
550 SmallVector<const SCEV *, 4> OpsCopy(Ops); in TEST_F()
551 return SE.getAddRecExpr(OpsCopy, L, SCEV::FlagAnyWrap); in TEST_F()
554 auto GetAdd = [&SE](std::initializer_list<const SCEV *> Ops) { in TEST_F()
555 SmallVector<const SCEV *, 4> OpsCopy(Ops); in TEST_F()
556 return SE.getAddExpr(OpsCopy, SCEV::FlagAnyWrap); in TEST_F()
563 std::vector<const SCEV *> Exprs; in TEST_F()
565 const SCEV *V0 = SE.getSCEV(&*F.arg_begin()); in TEST_F()
566 const SCEV *V1 = SE.getSCEV(&*std::next(F.arg_begin(), 1)); in TEST_F()
567 const SCEV *V2 = SE.getSCEV(&*std::next(F.arg_begin(), 2)); in TEST_F()
568 const SCEV *V3 = SE.getSCEV(&*std::next(F.arg_begin(), 3)); in TEST_F()
709 const SCEV *S = SE.getSCEV(Accum); in TEST_F()
777 const SCEV *EC = SE.getBackedgeTakenCount(Loop); in TEST_F()
786 SE.getAddRecExpr(Five, SE.getOne(T_int64), Loop, SCEV::FlagAnyWrap); in TEST_F()
787 const SCEV *ARAtLoopExit = SE.getSCEVAtScope(AR, nullptr); in TEST_F()
801 const SCEV *NewEC = SE.getBackedgeTakenCount(Loop); in TEST_F()
805 const SCEV *NewARAtLoopExit = SE.getSCEVAtScope(AR, nullptr); in TEST_F()
877 const SCEV *EC = SE.getBackedgeTakenCount(Loop); in TEST_F()
890 const SCEV *NewEC = SE.getBackedgeTakenCount(Loop); in TEST_F()
945 const SCEV *Expr = SE.getSCEV(Phi); in TEST_F()
1002 const SCEV *Expr = SE.getSCEV(Phi); in TEST_F()
1077 const SCEV *AS = SE.getSCEV(A); in TEST_F()
1078 const SCEV *BS = SE.getSCEV(B); in TEST_F()
1079 const SCEV *CS = SE.getSCEV(C); in TEST_F()
1080 const SCEV *S1S = SE.getSCEV(S1); in TEST_F()
1081 const SCEV *S2S = SE.getSCEV(S2); in TEST_F()
1151 auto diff = [&SE](const SCEV *LHS, const SCEV *RHS) -> Optional<int> { in TEST_F()
1233 auto *Sum = SE.getAddExpr(X, One, SCEV::FlagNUW); in TEST_F()
1297 const SCEV *BTC = SE.getBackedgeTakenCount(L); in TEST_F()
1299 const SCEV *MaxBTC = SE.getConstantMaxBackedgeTakenCount(L); in TEST_F()
1439 const SCEV *Zero = SE.getZero(Ty); in TEST_F()
1440 const SCEV *MinusOne = SE.getMinusOne(Ty); in TEST_F()
1442 const SCEV *AddRec_0_1 = SE.getSCEV(IV); in TEST_F()
1444 const SCEV *AddRec_0_N1 = SE.getNegativeSCEV(AddRec_0_1); in TEST_F()
1481 const SCEV *LHS, *RHS; in TEST_F()
1494 const SCEV *LHS, *RHS; in TEST_F()
1573 const SCEV *ITC = SE.getConstantMaxTripCountFromArray(L); in TEST_F()
1614 const SCEV *ITC = SE.getConstantMaxTripCountFromArray(L); in TEST_F()
1655 const SCEV *ITC = SE.getConstantMaxTripCountFromArray(L); in TEST_F()
1700 const SCEV *ITC = SE.getConstantMaxTripCountFromArray(L); in TEST_F()
1742 const SCEV *ITC = SE.getConstantMaxTripCountFromArray(L); in TEST_F()