Rollback r246276 - Object: Teach llvm-ar to create symbol table for COFF short import...
[oota-llvm.git] / test / Transforms / GVN / assume-equal.ll
index c1665bd6fe270702cc0c58da371dd596946e914e..0e4df969f436e67b61475c1264b37921cbf24b3a 100644 (file)
@@ -99,8 +99,6 @@ entry:
 }
 
 ; CHECK-LABEL: define float @_Z1if(float %p)
-
-
 define float @_Z1if(float %p) {
 entry:
   %p.addr = alloca float, align 4
@@ -114,6 +112,23 @@ entry:
   ret float %0
 }
 
+; This test checks if constant propagation works for multiple node edges
+; CHECK-LABEL: define i32 @_Z1ii(i32 %p)
+define i32 @_Z1ii(i32 %p) {
+entry:
+  %cmp = icmp eq i32 %p, 42
+  call void @llvm.assume(i1 %cmp)
+  
+  ; CHECK: br i1 true, label %bb2, label %bb2
+  br i1 %cmp, label %bb2, label %bb2
+bb2:
+  ; CHECK: br i1 true, label %bb2, label %bb2
+  br i1 %cmp, label %bb2, label %bb2
+  
+  ; CHECK: ret i32 42
+  ret i32 %p
+}
+
 declare noalias i8* @_Znwm(i64)
 declare void @_ZN1AC1Ev(%struct.A*)
 declare void @llvm.assume(i1)