Propagate ValueRanges across equality.

Add some more micro-optimizations: x * 0 = 0, a - x = a --> x = 0.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35138 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nick Lewycky
2007-03-18 01:09:32 +00:00
parent 1cc6452181
commit 1eda0f60d7
2 changed files with 178 additions and 67 deletions

View File

@@ -0,0 +1,19 @@
; RUN: llvm-as < %s | opt -predsimplify | llvm-dis | grep -v %c
define void @foo(i8* %X, i8* %Y) {
entry:
%A = load i8* %X
%B = load i8* %Y
%a = icmp ult i8 %B, 10
br i1 %a, label %cond_true, label %URB
cond_true:
%b = icmp eq i8 %A, %B
br i1 %b, label %cond_true2, label %URB
cond_true2:
%c = icmp ult i8 %A, 11
call i8 @bar(i1 %c)
ret void
URB:
ret void
}
declare i8 @bar(i1)