Skip to content

Commit 6e8cebe

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent a348f22 commit 6e8cebe

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

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

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2316,3 +2316,40 @@ define i32 @uadd_sat_via_add_swapped_cmp_select_nonstrict(i32 %x, i32 %y) {
23162316
%r = select i1 %c, i32 %a, i32 -1
23172317
ret i32 %r
23182318
}
2319+
2320+
define i8 @fold_add_umax_to_usub(i8 %a) {
2321+
; CHECK-LABEL: @fold_add_umax_to_usub(
2322+
; CHECK-NEXT: [[UMAX:%.*]] = call i8 @llvm.umax.i8(i8 [[A:%.*]], i8 10)
2323+
; CHECK-NEXT: [[SEL:%.*]] = add i8 [[UMAX]], -10
2324+
; CHECK-NEXT: ret i8 [[SEL]]
2325+
;
2326+
%umax = call i8 @llvm.umax.i8(i8 %a, i8 10)
2327+
%sel = add i8 %umax, -10
2328+
ret i8 %sel
2329+
}
2330+
2331+
define i8 @fold_add_umax_to_usub_incorrect_rhs(i8 %a) {
2332+
; CHECK-LABEL: @fold_add_umax_to_usub_incorrect_rhs(
2333+
; CHECK-NEXT: [[UMAX:%.*]] = call i8 @llvm.umax.i8(i8 [[A:%.*]], i8 10)
2334+
; CHECK-NEXT: [[SEL:%.*]] = add i8 [[UMAX]], -11
2335+
; CHECK-NEXT: ret i8 [[SEL]]
2336+
;
2337+
%umax = call i8 @llvm.umax.i8(i8 %a, i8 10)
2338+
%sel = add i8 %umax, -11
2339+
ret i8 %sel
2340+
}
2341+
2342+
define i8 @fold_add_umax_to_usub_multiuse(i8 %a) {
2343+
; CHECK-LABEL: @fold_add_umax_to_usub_multiuse(
2344+
; CHECK-NEXT: [[UMAX:%.*]] = call i8 @llvm.umax.i8(i8 [[A:%.*]], i8 10)
2345+
; CHECK-NEXT: call void @usei8(i8 [[UMAX]])
2346+
; CHECK-NEXT: [[SEL:%.*]] = add i8 [[UMAX]], -10
2347+
; CHECK-NEXT: ret i8 [[SEL]]
2348+
;
2349+
%umax = call i8 @llvm.umax.i8(i8 %a, i8 10)
2350+
call void @usei8(i8 %umax)
2351+
%sel = add i8 %umax, -10
2352+
ret i8 %sel
2353+
}
2354+
2355+
declare void @usei8(i8)

0 commit comments

Comments
 (0)