Skip to content

Commit b206236

Browse files
committed
[ConstraintElim] Add test case for llvm#76713
See llvm#76713. (cherry-picked from 1fa18fe)
1 parent 7bb9009 commit b206236

File tree

1 file changed

+37
-0
lines changed
  • llvm/test/Transforms/ConstraintElimination

1 file changed

+37
-0
lines changed

llvm/test/Transforms/ConstraintElimination/sub-nuw.ll

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,3 +380,40 @@ entry:
380380
%c = icmp ugt i64 %neg2, 0
381381
ret i1 %c
382382
}
383+
384+
; FIXME: currently this incorrectly simplifies %c4 to true.
385+
define i1 @pr76713(i16 %i1, i16 %i3) {
386+
; CHECK-LABEL: @pr76713(
387+
; CHECK-NEXT: entry:
388+
; CHECK-NEXT: [[C1:%.*]] = icmp ult i16 [[I1:%.*]], -1
389+
; CHECK-NEXT: [[C2:%.*]] = icmp uge i16 [[I1]], -3
390+
; CHECK-NEXT: [[C3:%.*]] = icmp ult i16 [[I3:%.*]], 2
391+
; CHECK-NEXT: [[AND:%.*]] = and i1 [[C1]], [[C2]]
392+
; CHECK-NEXT: [[AND_2:%.*]] = and i1 [[AND]], [[C3]]
393+
; CHECK-NEXT: br i1 [[AND]], label [[THEN:%.*]], label [[ELSE:%.*]]
394+
; CHECK: then:
395+
; CHECK-NEXT: [[SUB:%.*]] = sub nuw nsw i16 [[I1]], -3
396+
; CHECK-NEXT: [[ARRAYIDX_IDX:%.*]] = mul nuw nsw i16 [[I3]], 4
397+
; CHECK-NEXT: [[I6:%.*]] = add nuw nsw i16 [[ARRAYIDX_IDX]], [[SUB]]
398+
; CHECK-NEXT: ret i1 true
399+
; CHECK: else:
400+
; CHECK-NEXT: ret i1 false
401+
;
402+
entry:
403+
%c1 = icmp ult i16 %i1, -1
404+
%c2 = icmp uge i16 %i1, -3
405+
%c3 = icmp ult i16 %i3, 2
406+
%and = and i1 %c1, %c2
407+
%and.2 = and i1 %and, %c3
408+
br i1 %and, label %then, label %else
409+
410+
then:
411+
%sub = sub nuw nsw i16 %i1, -3
412+
%arrayidx.idx = mul nuw nsw i16 %i3, 4
413+
%i6 = add nuw nsw i16 %arrayidx.idx, %sub
414+
%c4 = icmp ult i16 12, %i6
415+
ret i1 %c4
416+
417+
else:
418+
ret i1 0
419+
}

0 commit comments

Comments
 (0)