We were failing to compute trip counts (both exact and maximum) for any loop which involved a comparison against either an umin or smin. It looks like this simply got missed when we added smin/umin to SCEV.
I'm more than a bit shocked that something this basis was missed for this long. Am I missing something?
Just a side note: For operations that have an intrinsic sign preference, I think it would be better to pass on that specific signedness as the SignHint (here signed, below unsigned). Not sure if there's an assumption about a getRangeRef() chain always using the same signedness somewhere though.