They're basically the same function, so let's not implement it twice. And they've fallen out of sync a bit: howManyLessThans has more features.
Still need to investigate:
- We're replacing smin/umin expressions with less efficient smax/umax expressions. Not sure how we're supposed to canonicalize here.
- The isLoopEntryGuardedByCond check is failing in places where it used to succeed.
For sanity sake, please actually set Pred here so that if we use it below, we get what we expect.