fix rdar://9289583 - fast isel should handle non-canonical commutative binops
[oota-llvm.git] / test / Transforms / ADCE / 2002-05-23-ZeroArgPHITest.ll
index e3f8de2f1594f4f8ee16fb163710de4885dd6ecf..9407b5a68d6924c636e12cf99bc6da207826c0a5 100644 (file)
@@ -4,30 +4,29 @@
 ; removed even though there were uses still around.  Now the uses are filled
 ; in with a dummy value before the PHI is deleted.
 ;
-; RUN: llvm-as < %s | opt -adce
+; RUN: opt < %s -adce
        
-%node_t = type { double*, %node_t*, %node_t**, double**, double*, int, int }
+        %node_t = type { double*, %node_t*, %node_t**, double**, double*, i32, i32 }
 
-implementation   ; Functions:
+define void @localize_local(%node_t* %nodelist) {
+bb0:
+        %nodelist.upgrd.1 = alloca %node_t*             ; <%node_t**> [#uses=2]
+        store %node_t* %nodelist, %node_t** %nodelist.upgrd.1
+        br label %bb1
 
-void %localize_local(%node_t* %nodelist) {
-bb0:                                   ;[#uses=0]
-       %nodelist = alloca %node_t*             ; <%node_t**> [#uses=2]
-       store %node_t* %nodelist, %node_t** %nodelist
-       br label %bb1
+bb1:            ; preds = %bb0
+        %reg107 = load %node_t** %nodelist.upgrd.1              ; <%node_t*> [#uses=2]
+        %cond211 = icmp eq %node_t* %reg107, null               ; <i1> [#uses=1]
+        br i1 %cond211, label %bb3, label %bb2
 
-bb1:                                   ;[#uses=2]
-       %reg107 = load %node_t** %nodelist              ; <%node_t*> [#uses=2]
-       %cond211 = seteq %node_t* %reg107, null         ; <bool> [#uses=1]
-       br bool %cond211, label %bb3, label %bb2
+bb2:            ; preds = %bb2, %bb1
+        %reg109 = phi %node_t* [ %reg110, %bb2 ], [ %reg107, %bb1 ]             ; <%node_t*> [#uses=1]
+        %reg212 = getelementptr %node_t* %reg109, i64 0, i32 1          ; <%node_t**> [#uses=1]
+        %reg110 = load %node_t** %reg212                ; <%node_t*> [#uses=2]
+        %cond213 = icmp ne %node_t* %reg110, null               ; <i1> [#uses=1]
+        br i1 %cond213, label %bb2, label %bb3
 
-bb2:                                   ;[#uses=3]
-       %reg109 = phi %node_t* [ %reg110, %bb2 ], [ %reg107, %bb1 ]             ; <%node_t*> [#uses=1]
-       %reg212 = getelementptr %node_t* %reg109, long 0, uint 1                ; <%node_t**> [#uses=1]
-       %reg110 = load %node_t** %reg212                ; <%node_t*> [#uses=2]
-       %cond213 = setne %node_t* %reg110, null         ; <bool> [#uses=1]
-       br bool %cond213, label %bb2, label %bb3
-
-bb3:                                   ;[#uses=2]
-       ret void
+bb3:            ; preds = %bb2, %bb1
+        ret void
 }
+