[InstCombine] Fold zext-add/sub-min/max-trunc to uadd.sat or usub.sat (#185259)
Fixes #185244
```
trunc(umin(zext(a) + zext(b), MAX)) -> uadd.sat(a, b)
trunc(smin(zext(a) + zext(b), MAX)) -> uadd.sat(a, b)
trunc(smax(zext(a) - zext(b), 0)) --> usub.sat(a, b)
```
Proof: https://alive2.llvm.org/ce/z/K6wszu