Skip to content

Commit ddd5dea

Browse files
committed
Added tests to execrcise logic for inheriting nuw flag
1 parent a5ec1aa commit ddd5dea

File tree

1 file changed

+56
-0
lines changed
  • llvm/test/Transforms/InstCombine

1 file changed

+56
-0
lines changed

llvm/test/Transforms/InstCombine/icmp.ll

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5082,3 +5082,59 @@ define i1 @disjoint_or_ugt_3(i8 %a, i8 %b) {
50825082
%icmp_ = icmp ugt i8 %a1, %b1
50835083
ret i1 %icmp_
50845084
}
5085+
5086+
define i1 @deduce_nuw_flag_1(i8 %a, i8 %b) {
5087+
; CHECK-LABEL: @deduce_nuw_flag_1(
5088+
; CHECK-NEXT: entry:
5089+
; CHECK-NEXT: [[TMP0:%.*]] = add nuw i8 [[B:%.*]], 1
5090+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[TMP0]], [[A:%.*]]
5091+
; CHECK-NEXT: ret i1 [[CMP]]
5092+
;
5093+
entry:
5094+
%add1 = add nuw i8 %b, 2
5095+
%add2 = add i8 %a, 1
5096+
%cmp = icmp eq i8 %add1, %add2
5097+
ret i1 %cmp
5098+
}
5099+
5100+
define i1 @deduce_nuw_flag_2(i8 %a, i8 %b) {
5101+
; CHECK-LABEL: @deduce_nuw_flag_2(
5102+
; CHECK-NEXT: entry:
5103+
; CHECK-NEXT: [[TMP0:%.*]] = add nuw i8 [[B:%.*]], 1
5104+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[TMP0]], [[A:%.*]]
5105+
; CHECK-NEXT: ret i1 [[CMP]]
5106+
;
5107+
entry:
5108+
%add1 = add nuw i8 %b, 2
5109+
%add2 = add i8 %a, 1
5110+
%cmp = icmp eq i8 %add2, %add1
5111+
ret i1 %cmp
5112+
}
5113+
5114+
define i1 @dont_deduce_nuw_flag_1(i8 %a, i8 %b) {
5115+
; CHECK-LABEL: @dont_deduce_nuw_flag_1(
5116+
; CHECK-NEXT: entry:
5117+
; CHECK-NEXT: [[TMP0:%.*]] = add i8 [[B:%.*]], -1
5118+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[TMP0]], [[A:%.*]]
5119+
; CHECK-NEXT: ret i1 [[CMP]]
5120+
;
5121+
entry:
5122+
%add1 = add nuw i8 %b, -2
5123+
%add2 = add i8 %a, -1
5124+
%cmp = icmp eq i8 %add1, %add2
5125+
ret i1 %cmp
5126+
}
5127+
5128+
define i1 @dont_deduce_nuw_flag_2(i8 %a, i8 %b) {
5129+
; CHECK-LABEL: @dont_deduce_nuw_flag_2(
5130+
; CHECK-NEXT: entry:
5131+
; CHECK-NEXT: [[TMP0:%.*]] = add i8 [[B:%.*]], -1
5132+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[TMP0]], [[A:%.*]]
5133+
; CHECK-NEXT: ret i1 [[CMP]]
5134+
;
5135+
entry:
5136+
%add1 = add nuw i8 %b, -2
5137+
%add2 = add i8 %a, -1
5138+
%cmp = icmp eq i8 %add2, %add1
5139+
ret i1 %cmp
5140+
}

0 commit comments

Comments
 (0)