Skip to content

Commit 578c296

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent a085402 commit 578c296

File tree

1 file changed

+97
-1
lines changed
  • llvm/test/Transforms/InstCombine

1 file changed

+97
-1
lines changed

llvm/test/Transforms/InstCombine/icmp.ll

Lines changed: 97 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5006,7 +5006,6 @@ define i1 @or_positive_sgt_zero_multi_use(i8 %a) {
50065006
ret i1 %cmp
50075007
}
50085008

5009-
50105009
define i1 @disjoint_or_sgt_1(i8 %a, i8 %b) {
50115010
; CHECK-LABEL: @disjoint_or_sgt_1(
50125011
; CHECK-NEXT: [[B1:%.*]] = add nsw i8 [[B:%.*]], 2
@@ -5138,3 +5137,100 @@ entry:
51385137
%cmp = icmp eq i8 %add2, %add1
51395138
ret i1 %cmp
51405139
}
5140+
5141+
define i1 @icmp_ugt_sdiv_by_constant(i64 %x) {
5142+
; CHECK-LABEL: @icmp_ugt_sdiv_by_constant(
5143+
; CHECK-NEXT: [[SDIV:%.*]] = sdiv exact i64 [[X:%.*]], 24
5144+
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i64 [[SDIV]], 384307168202282325
5145+
; CHECK-NEXT: ret i1 [[CMP]]
5146+
;
5147+
%sdiv = sdiv exact i64 %x, 24
5148+
%cmp = icmp ugt i64 %sdiv, 384307168202282325
5149+
ret i1 %cmp
5150+
}
5151+
5152+
define i1 @icmp_ult_sdiv_by_constant(i64 %x) {
5153+
; CHECK-LABEL: @icmp_ult_sdiv_by_constant(
5154+
; CHECK-NEXT: [[SDIV:%.*]] = sdiv exact i64 [[X:%.*]], 24
5155+
; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[SDIV]], 384307168202282326
5156+
; CHECK-NEXT: ret i1 [[CMP]]
5157+
;
5158+
%sdiv = sdiv exact i64 %x, 24
5159+
%cmp = icmp ult i64 %sdiv, 384307168202282326
5160+
ret i1 %cmp
5161+
}
5162+
5163+
; TODO: This should be simplified to icmp slt i64 %x, 0
5164+
define i1 @icmp_ugt_ashr_by_constant(i64 %x) {
5165+
; CHECK-LABEL: @icmp_ugt_ashr_by_constant(
5166+
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i64 [[X:%.*]], 9223372036854775804
5167+
; CHECK-NEXT: ret i1 [[CMP]]
5168+
;
5169+
%sdiv = ashr exact i64 %x, 2
5170+
%cmp = icmp ugt i64 %sdiv, 2305843009213693951
5171+
ret i1 %cmp
5172+
}
5173+
5174+
define i1 @icmp_ult_ashr_by_constant(i64 %x) {
5175+
; CHECK-LABEL: @icmp_ult_ashr_by_constant(
5176+
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i64 [[X:%.*]], -1
5177+
; CHECK-NEXT: ret i1 [[CMP]]
5178+
;
5179+
%sdiv = ashr exact i64 %x, 2
5180+
%cmp = icmp ult i64 %sdiv, 2305843009213693952
5181+
ret i1 %cmp
5182+
}
5183+
5184+
; Negative tests
5185+
define i1 @icmp_ugt_sdiv_by_constant_without_exact(i64 %x) {
5186+
; CHECK-LABEL: @icmp_ugt_sdiv_by_constant_without_exact(
5187+
; CHECK-NEXT: [[SDIV:%.*]] = sdiv i64 [[X:%.*]], 24
5188+
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i64 [[SDIV]], 384307168202282325
5189+
; CHECK-NEXT: ret i1 [[CMP]]
5190+
;
5191+
%sdiv = sdiv i64 %x, 24
5192+
%cmp = icmp ugt i64 %sdiv, 384307168202282325
5193+
ret i1 %cmp
5194+
}
5195+
5196+
define i1 @icmp_ugt_udiv_by_constant(i64 %x) {
5197+
; CHECK-LABEL: @icmp_ugt_udiv_by_constant(
5198+
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i64 [[X:%.*]], 9223372036854775800
5199+
; CHECK-NEXT: ret i1 [[CMP]]
5200+
;
5201+
%sdiv = udiv exact i64 %x, 24
5202+
%cmp = icmp ugt i64 %sdiv, 384307168202282325
5203+
ret i1 %cmp
5204+
}
5205+
5206+
define i1 @icmp_ne_sdiv_by_constant(i64 %x) {
5207+
; CHECK-LABEL: @icmp_ne_sdiv_by_constant(
5208+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i64 [[X:%.*]], 9223372036854775800
5209+
; CHECK-NEXT: ret i1 [[CMP]]
5210+
;
5211+
%sdiv = sdiv exact i64 %x, 24
5212+
%cmp = icmp ne i64 %sdiv, 384307168202282325
5213+
ret i1 %cmp
5214+
}
5215+
5216+
define i1 @icmp_ugt_sdiv_by_constant_wrong_rhs(i64 %x) {
5217+
; CHECK-LABEL: @icmp_ugt_sdiv_by_constant_wrong_rhs(
5218+
; CHECK-NEXT: [[SDIV:%.*]] = sdiv exact i64 [[X:%.*]], 24
5219+
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i64 [[SDIV]], 384307168202282324
5220+
; CHECK-NEXT: ret i1 [[CMP]]
5221+
;
5222+
%sdiv = sdiv exact i64 %x, 24
5223+
%cmp = icmp ugt i64 %sdiv, 384307168202282324
5224+
ret i1 %cmp
5225+
}
5226+
5227+
define i1 @icmp_ugt_sdiv_by_negative_constant(i64 %x) {
5228+
; CHECK-LABEL: @icmp_ugt_sdiv_by_negative_constant(
5229+
; CHECK-NEXT: [[SDIV:%.*]] = sdiv i64 [[X:%.*]], -24
5230+
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i64 [[SDIV]], -384307168202282326
5231+
; CHECK-NEXT: ret i1 [[CMP]]
5232+
;
5233+
%sdiv = sdiv i64 %x, -24
5234+
%cmp = icmp ugt i64 %sdiv, -384307168202282326
5235+
ret i1 %cmp
5236+
}

0 commit comments

Comments
 (0)