Skip to content

Commit 9630974

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent ead4f3e commit 9630974

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

llvm/test/Transforms/InstCombine/and-or-icmps.ll

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3686,3 +3686,48 @@ define i1 @neg_select_icmp_eq_and_pow2(i32 %x) {
36863686
%1 = select i1 %icmp1, i1 %icmp2, i1 false
36873687
ret i1 %1
36883688
}
3689+
3690+
define i1 @implied_range_check(i8 %a) {
3691+
; CHECK-LABEL: @implied_range_check(
3692+
; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i8 [[A:%.*]], 5
3693+
; CHECK-NEXT: [[MASKED:%.*]] = and i8 [[A]], -2
3694+
; CHECK-NEXT: [[CMP2:%.*]] = icmp eq i8 [[MASKED]], 2
3695+
; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP1]], [[CMP2]]
3696+
; CHECK-NEXT: ret i1 [[AND]]
3697+
;
3698+
%cmp1 = icmp ult i8 %a, 5
3699+
%masked = and i8 %a, -2
3700+
%cmp2 = icmp eq i8 %masked, 2
3701+
%and = and i1 %cmp1, %cmp2
3702+
ret i1 %and
3703+
}
3704+
3705+
define i1 @merge_range_check_and(i8 %a) {
3706+
; CHECK-LABEL: @merge_range_check_and(
3707+
; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i8 [[A:%.*]], 3
3708+
; CHECK-NEXT: [[MASKED:%.*]] = and i8 [[A]], -2
3709+
; CHECK-NEXT: [[CMP2:%.*]] = icmp eq i8 [[MASKED]], 2
3710+
; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP1]], [[CMP2]]
3711+
; CHECK-NEXT: ret i1 [[AND]]
3712+
;
3713+
%cmp1 = icmp ult i8 %a, 3
3714+
%masked = and i8 %a, -2
3715+
%cmp2 = icmp eq i8 %masked, 2
3716+
%and = and i1 %cmp1, %cmp2
3717+
ret i1 %and
3718+
}
3719+
3720+
define i1 @merge_range_check_or(i8 %a) {
3721+
; CHECK-LABEL: @merge_range_check_or(
3722+
; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i8 [[A:%.*]], 3
3723+
; CHECK-NEXT: [[MASKED:%.*]] = and i8 [[A]], -2
3724+
; CHECK-NEXT: [[CMP2:%.*]] = icmp eq i8 [[MASKED]], 2
3725+
; CHECK-NEXT: [[AND:%.*]] = or i1 [[CMP1]], [[CMP2]]
3726+
; CHECK-NEXT: ret i1 [[AND]]
3727+
;
3728+
%cmp1 = icmp ult i8 %a, 3
3729+
%masked = and i8 %a, -2
3730+
%cmp2 = icmp eq i8 %masked, 2
3731+
%and = or i1 %cmp1, %cmp2
3732+
ret i1 %and
3733+
}

0 commit comments

Comments
 (0)