Commit 1 (Tests):
Add tests for binops with conditions/assume constraints
Commit 2 (Code Changes):
Improve cases for optimizing out some icmp(binop) patterns (mostly mul)
- Add some explicit cases for mul that were missing.
- Improve ValueTracking analysis to better track the ICMP_NE and ICMP_ULT patterns.
- Both for tracking on edges of BBs and for conditions that are used by llvm.assume