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.