teach memdep to do trivial PHI translation of GEPs. More to
[oota-llvm.git] / test / Transforms / GVN / rle-no-phi-translate.ll
1 ; RUN: opt < %s -gvn -S | grep load
2 ; FIXME: This should be promotable, but memdep/gvn don't track values
3 ; path/edge sensitively enough.
4
5 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
6 target triple = "i386-apple-darwin7"
7
8 define i32 @g(i32* %b, i32* %c) nounwind {
9 entry:
10         store i32 1, i32* %b
11         store i32 2, i32* %c
12         
13         %t1 = icmp eq i32* %b, null             ; <i1> [#uses=1]
14         br i1 %t1, label %bb, label %bb2
15
16 bb:             ; preds = %entry
17         br label %bb2
18
19 bb2:            ; preds = %bb1, %bb
20         %c_addr.0 = phi i32* [ %b, %entry ], [ %c, %bb ]                ; <i32*> [#uses=1]
21         %cv = load i32* %c_addr.0, align 4              ; <i32> [#uses=1]
22         ret i32 %cv
23 }
24