Hello,
The patch teaches ScalarEvolution to compute trip count for loops such as these-
for(int i=0; i<n; i+=s) { A[i] = i; }
The basic idea is that if the IV has a nsw/nuw flag and loop has no side effects then we can assume the direction of the loop and compute the correct backedge taken count.
No braces needed here. Also, I'd drop the else, and just have: