1; RUN: opt -newgvn -S -o - %s | FileCheck %s 2; RUN: opt -passes=newgvn -S -o - %s | FileCheck %s 3 4; If a branch has two identical successors, we cannot declare either dead. 5 6define void @widget(i1 %p) { 7entry: 8 br label %bb2 9 10bb2: 11 %t1 = phi i64 [ 0, %entry ], [ %t5, %bb7 ] 12 %t2 = add i64 %t1, 1 13 %t3 = icmp ult i64 0, %t2 14 br i1 %t3, label %bb3, label %bb4 15 16bb3: 17 %t4 = call i64 @f() 18 br label %bb4 19 20bb4: 21 ; CHECK-NOT: phi {{.*}} undef 22 %foo = phi i64 [ %t4, %bb3 ], [ 0, %bb2 ] 23 br i1 %p, label %bb5, label %bb6 24 25bb5: 26 br i1 true, label %bb7, label %bb7 27 28bb6: 29 br i1 true, label %bb7, label %bb7 30 31bb7: 32 %t5 = add i64 %t1, 1 33 br i1 %p, label %bb2, label %bb8 34 35bb8: 36 ret void 37} 38 39declare i64 @f() 40