| ; RUN: opt -correlated-propagation -S < %s | FileCheck %s |
| |
| declare i32 @foo() |
| |
| define i32 @test1(i32 %a) nounwind { |
| %a.off = add i32 %a, -8 |
| %cmp = icmp ult i32 %a.off, 8 |
| br i1 %cmp, label %then, label %else |
| |
| then: |
| %dead = icmp eq i32 %a, 7 |
| br i1 %dead, label %end, label %else |
| |
| else: |
| ret i32 1 |
| |
| end: |
| ret i32 2 |
| |
| ; CHECK: @test1 |
| ; CHECK: then: |
| ; CHECK-NEXT: br i1 false, label %end, label %else |
| } |
| |
| define i32 @test2(i32 %a) nounwind { |
| %a.off = add i32 %a, -8 |
| %cmp = icmp ult i32 %a.off, 8 |
| br i1 %cmp, label %then, label %else |
| |
| then: |
| %dead = icmp ugt i32 %a, 15 |
| br i1 %dead, label %end, label %else |
| |
| else: |
| ret i32 1 |
| |
| end: |
| ret i32 2 |
| |
| ; CHECK: @test2 |
| ; CHECK: then: |
| ; CHECK-NEXT: br i1 false, label %end, label %else |
| } |