I have seen some cases which SCEV's isImpliedCond returns false.
It looks `isImpliedCond' has no patterns for case which the FoundLHS or FoundRHS is AddRec and the LHS and RHS are not AddRec.
In order to handle this case, we can use below one.
If FoundLHS is AddRec and FoundPred is EQ, we can say
The min value of FoundRHS is AddRec's start value if and only if "AddRec == FoundRHS" is true.
It means we can use "FoundRHS >= AddRec's start value" for "AddRec == FoundRHS".
This changes helps IRCE pass handles cascaded sibling loops.
clang-tidy: warning: 'auto *AddRec' can be declared as 'const auto *AddRec' [llvm-qualified-auto]
not useful