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