Skip to content

Commit 3ab0cb1

Browse files
committed
[InstCombine] Add tests for uadd/sub.sat(a, b) == 0; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375372 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 32d24a3 commit 3ab0cb1

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

test/Transforms/InstCombine/saturating-add-sub.ll

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1156,6 +1156,50 @@ define i8 @test_scalar_uadd_sub_const(i8 %a) {
11561156
ret i8 %res
11571157
}
11581158

1159+
define i1 @scalar_uadd_eq_zero(i8 %a, i8 %b) {
1160+
; CHECK-LABEL: @scalar_uadd_eq_zero(
1161+
; CHECK-NEXT: [[SAT:%.*]] = call i8 @llvm.uadd.sat.i8(i8 [[A:%.*]], i8 [[B:%.*]])
1162+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[SAT]], 0
1163+
; CHECK-NEXT: ret i1 [[CMP]]
1164+
;
1165+
%sat = call i8 @llvm.uadd.sat.i8(i8 %a, i8 %b)
1166+
%cmp = icmp eq i8 %sat, 0
1167+
ret i1 %cmp
1168+
}
1169+
1170+
define i1 @scalar_uadd_ne_zero(i8 %a, i8 %b) {
1171+
; CHECK-LABEL: @scalar_uadd_ne_zero(
1172+
; CHECK-NEXT: [[SAT:%.*]] = call i8 @llvm.uadd.sat.i8(i8 [[A:%.*]], i8 [[B:%.*]])
1173+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i8 [[SAT]], 0
1174+
; CHECK-NEXT: ret i1 [[CMP]]
1175+
;
1176+
%sat = call i8 @llvm.uadd.sat.i8(i8 %a, i8 %b)
1177+
%cmp = icmp ne i8 %sat, 0
1178+
ret i1 %cmp
1179+
}
1180+
1181+
define i1 @scalar_usub_eq_zero(i8 %a, i8 %b) {
1182+
; CHECK-LABEL: @scalar_usub_eq_zero(
1183+
; CHECK-NEXT: [[SAT:%.*]] = call i8 @llvm.usub.sat.i8(i8 [[A:%.*]], i8 [[B:%.*]])
1184+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[SAT]], 0
1185+
; CHECK-NEXT: ret i1 [[CMP]]
1186+
;
1187+
%sat = call i8 @llvm.usub.sat.i8(i8 %a, i8 %b)
1188+
%cmp = icmp eq i8 %sat, 0
1189+
ret i1 %cmp
1190+
}
1191+
1192+
define i1 @scalar_usub_ne_zero(i8 %a, i8 %b) {
1193+
; CHECK-LABEL: @scalar_usub_ne_zero(
1194+
; CHECK-NEXT: [[SAT:%.*]] = call i8 @llvm.usub.sat.i8(i8 [[A:%.*]], i8 [[B:%.*]])
1195+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i8 [[SAT]], 0
1196+
; CHECK-NEXT: ret i1 [[CMP]]
1197+
;
1198+
%sat = call i8 @llvm.usub.sat.i8(i8 %a, i8 %b)
1199+
%cmp = icmp ne i8 %sat, 0
1200+
ret i1 %cmp
1201+
}
1202+
11591203
; Raw IR tests
11601204

11611205
define i32 @uadd_sat(i32 %x, i32 %y) {

0 commit comments

Comments
 (0)