Fix mishandling of the infinite loop case when merging two blocks. This
[oota-llvm.git] / test / Transforms / SimplifyCFG / hoist-common-code.ll
index b19eac98d6da2b0e2830c4d64985f0beae900aba..7512da263bd5ade7fb70d06551d73a11d4d44010 100644 (file)
@@ -1,17 +1,18 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplifycfg | llvm-dis | not grep 'br'
-declare void %bar(int)
+; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
 
-void %test(bool %P, int* %Q) {
-       br bool %P, label %T, label %F
-T:
-       store int 1, int* %Q
-       %A = load int* %Q
-       call void %bar(int %A)
-       ret void
-F:
-       store int 1, int* %Q
-       %B = load int* %Q
-       call void %bar(int %B)
-       ret void
+declare void @bar(i32)
+
+define void @test(i1 %P, i32* %Q) {
+        br i1 %P, label %T, label %F
+T:              ; preds = %0
+        store i32 1, i32* %Q
+        %A = load i32* %Q               ; <i32> [#uses=1]
+        call void @bar( i32 %A )
+        ret void
+F:              ; preds = %0
+        store i32 1, i32* %Q
+        %B = load i32* %Q               ; <i32> [#uses=1]
+        call void @bar( i32 %B )
+        ret void
 }