mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-17 03:28:17 +00:00
44 lines
742 B
LLVM
44 lines
742 B
LLVM
![]() |
; 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
|
||
|
}
|