Skip to content

Commit

Permalink
[ConstraintElim] Add tests to check negated OR simplifications.
Browse files Browse the repository at this point in the history
Additional test coverage for D151799.
  • Loading branch information
fhahn committed Jun 23, 2023
1 parent 6e94a9b commit c52268a
Showing 1 changed file with 78 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -319,3 +319,81 @@ loop.latch:
exit:
ret void
}

define i1 @test_and_used_in_false_branch(i8 %x) {
; CHECK-LABEL: @test_and_used_in_false_branch(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C_1:%.*]] = icmp ugt i8 [[X:%.*]], 10
; CHECK-NEXT: [[T_1:%.*]] = icmp ugt i8 [[X]], 5
; CHECK-NEXT: [[AND:%.*]] = and i1 [[C_1]], [[T_1]]
; CHECK-NEXT: br i1 [[AND]], label [[THEN:%.*]], label [[ELSE:%.*]]
; CHECK: then:
; CHECK-NEXT: ret i1 [[T_1]]
; CHECK: else:
; CHECK-NEXT: ret i1 [[T_1]]
;

entry:
%c.1 = icmp ugt i8 %x, 10
%t.1 = icmp ugt i8 %x, 5
%and = and i1 %c.1, %t.1
br i1 %and, label %then, label %else

then:
ret i1 %t.1

else:
ret i1 %t.1
}

define i1 @test_or_used_in_false_branch(i8 %x) {
; CHECK-LABEL: @test_or_used_in_false_branch(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C_1:%.*]] = icmp ule i8 [[X:%.*]], 10
; CHECK-NEXT: [[T_1:%.*]] = icmp ule i8 [[X]], 5
; CHECK-NEXT: [[AND:%.*]] = or i1 [[C_1]], [[T_1]]
; CHECK-NEXT: br i1 [[AND]], label [[THEN:%.*]], label [[ELSE:%.*]]
; CHECK: then:
; CHECK-NEXT: ret i1 [[T_1]]
; CHECK: else:
; CHECK-NEXT: ret i1 [[T_1]]
;

entry:
%c.1 = icmp ule i8 %x, 10
%t.1 = icmp ule i8 %x, 5
%and = or i1 %c.1, %t.1
br i1 %and, label %then, label %else

then:
ret i1 %t.1

else:
ret i1 %t.1
}

define i1 @test_or_used_in_false_branch2(i8 %x) {
; CHECK-LABEL: @test_or_used_in_false_branch2(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C_1:%.*]] = icmp ugt i8 [[X:%.*]], 10
; CHECK-NEXT: [[T_1:%.*]] = icmp ugt i8 [[X]], 5
; CHECK-NEXT: [[AND:%.*]] = or i1 [[C_1]], [[T_1]]
; CHECK-NEXT: br i1 [[AND]], label [[THEN:%.*]], label [[ELSE:%.*]]
; CHECK: then:
; CHECK-NEXT: ret i1 [[T_1]]
; CHECK: else:
; CHECK-NEXT: ret i1 [[T_1]]
;

entry:
%c.1 = icmp ugt i8 %x, 10
%t.1 = icmp ugt i8 %x, 5
%and = or i1 %c.1, %t.1
br i1 %and, label %then, label %else

then:
ret i1 %t.1

else:
ret i1 %t.1
}

0 comments on commit c52268a

Please sign in to comment.