[InstCombine] Add tests for uadd/sub.sat(a, b) == 0; NFC

llvm-svn: 375372
This commit is contained in:
Nikita Popov 2019-10-20 19:50:31 +00:00
parent 49483a3bc2
commit c08666abaf
1 changed files with 44 additions and 0 deletions

View File

@ -1156,6 +1156,50 @@ define i8 @test_scalar_uadd_sub_const(i8 %a) {
ret i8 %res
}
define i1 @scalar_uadd_eq_zero(i8 %a, i8 %b) {
; CHECK-LABEL: @scalar_uadd_eq_zero(
; CHECK-NEXT: [[SAT:%.*]] = call i8 @llvm.uadd.sat.i8(i8 [[A:%.*]], i8 [[B:%.*]])
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[SAT]], 0
; CHECK-NEXT: ret i1 [[CMP]]
;
%sat = call i8 @llvm.uadd.sat.i8(i8 %a, i8 %b)
%cmp = icmp eq i8 %sat, 0
ret i1 %cmp
}
define i1 @scalar_uadd_ne_zero(i8 %a, i8 %b) {
; CHECK-LABEL: @scalar_uadd_ne_zero(
; CHECK-NEXT: [[SAT:%.*]] = call i8 @llvm.uadd.sat.i8(i8 [[A:%.*]], i8 [[B:%.*]])
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i8 [[SAT]], 0
; CHECK-NEXT: ret i1 [[CMP]]
;
%sat = call i8 @llvm.uadd.sat.i8(i8 %a, i8 %b)
%cmp = icmp ne i8 %sat, 0
ret i1 %cmp
}
define i1 @scalar_usub_eq_zero(i8 %a, i8 %b) {
; CHECK-LABEL: @scalar_usub_eq_zero(
; CHECK-NEXT: [[SAT:%.*]] = call i8 @llvm.usub.sat.i8(i8 [[A:%.*]], i8 [[B:%.*]])
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[SAT]], 0
; CHECK-NEXT: ret i1 [[CMP]]
;
%sat = call i8 @llvm.usub.sat.i8(i8 %a, i8 %b)
%cmp = icmp eq i8 %sat, 0
ret i1 %cmp
}
define i1 @scalar_usub_ne_zero(i8 %a, i8 %b) {
; CHECK-LABEL: @scalar_usub_ne_zero(
; CHECK-NEXT: [[SAT:%.*]] = call i8 @llvm.usub.sat.i8(i8 [[A:%.*]], i8 [[B:%.*]])
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i8 [[SAT]], 0
; CHECK-NEXT: ret i1 [[CMP]]
;
%sat = call i8 @llvm.usub.sat.i8(i8 %a, i8 %b)
%cmp = icmp ne i8 %sat, 0
ret i1 %cmp
}
; Raw IR tests
define i32 @uadd_sat(i32 %x, i32 %y) {