After the addition of samesign then instcombine correctly transforms
unsigned greater than to use it if it can prove that value is greater
than zero and then removes the assume that allowed it to prove that. For
example:
```
define i8 @remove_for_samesign(i8 %x) {
%gt = icmp sgt i8 %x, 10
call void @llvm.assume(i1 %gt)
%gt.zero = icmp sge i8 %x, 0
call void @llvm.assume(i1 %gt.zero)
ret i8 %x
}
```
Is optimized to:
```
define i8 @remove_for_samesign(i8 %x) {
%gt= icmp samesign ugt i8 [[X:%.*]], 10
call void @llvm.assume(i1 %gt)
ret i8 %x
}
```
This leads to a wrong range being returned from computeConstantRange
because it doesn't look at samesign when constructing a range from
assumes, this patch fixes that.
---------
Co-authored-by: Adar Dagan <adar.dagan@mobileye.com>