Fix mishandling of the infinite loop case when merging two blocks. This
[oota-llvm.git] / test / Transforms / SimplifyCFG / DeadSetCC.ll
index ea215e39e94ded92dce0c819948362370281ccab..a4c8366e00fbd5a704d37ceba3dea90354f81132 100644 (file)
@@ -1,27 +1,28 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplifycfg | llvm-dis | \
+; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
 ; RUN:   not grep {icmp eq}
 
 ; Check that simplifycfg deletes a dead 'seteq' instruction when it
 ; folds a conditional branch into a switch instruction.
 
-declare void %foo()
-declare void %bar()
+declare void @foo()
 
-void %testcfg(uint %V) {
-       %C = seteq uint %V, 18
-       %D = seteq uint %V, 180
-       %E = or bool %C, %D
-       br bool %E, label %L1, label %Sw
-Sw:
-       switch uint %V, label %L1 [
-              uint 15, label %L2
-              uint 16, label %L2
+declare void @bar()
+
+define void @testcfg(i32 %V) {
+        %C = icmp eq i32 %V, 18         ; <i1> [#uses=1]
+        %D = icmp eq i32 %V, 180                ; <i1> [#uses=1]
+        %E = or i1 %C, %D               ; <i1> [#uses=1]
+        br i1 %E, label %L1, label %Sw
+Sw:             ; preds = %0
+        switch i32 %V, label %L1 [
+                 i32 15, label %L2
+                 i32 16, label %L2
         ]
-L1:
-       call void %foo()
-       ret void
-L2:
-       call void %bar()
-       ret void
+L1:             ; preds = %Sw, %0
+        call void @foo( )
+        ret void
+L2:             ; preds = %Sw, %Sw
+        call void @bar( )
+        ret void
 }