1*9880d681SAndroid Build Coastguard Worker; THis testcase caused an assertion failure because a PHI node did not have 2*9880d681SAndroid Build Coastguard Worker; entries for it's postdominator. But I think this can only happen when the 3*9880d681SAndroid Build Coastguard Worker; PHI node is dead, so we just avoid patching up dead PHI nodes. 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -adce 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:32:32" 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerdefine void @dead_test8() { 10*9880d681SAndroid Build Coastguard Workerentry: 11*9880d681SAndroid Build Coastguard Worker br label %loopentry 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerloopentry: ; preds = %endif, %entry 14*9880d681SAndroid Build Coastguard Worker %k.1 = phi i32 [ %k.0, %endif ], [ 0, %entry ] ; <i32> [#uses=1] 15*9880d681SAndroid Build Coastguard Worker br i1 false, label %no_exit, label %return 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Workerno_exit: ; preds = %loopentry 18*9880d681SAndroid Build Coastguard Worker br i1 false, label %then, label %else 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerthen: ; preds = %no_exit 21*9880d681SAndroid Build Coastguard Worker br label %endif 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerelse: ; preds = %no_exit 24*9880d681SAndroid Build Coastguard Worker %dec = add i32 %k.1, -1 ; <i32> [#uses=1] 25*9880d681SAndroid Build Coastguard Worker br label %endif 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerendif: ; preds = %else, %then 28*9880d681SAndroid Build Coastguard Worker %k.0 = phi i32 [ %dec, %else ], [ 0, %then ] ; <i32> [#uses=1] 29*9880d681SAndroid Build Coastguard Worker store i32 2, i32* null 30*9880d681SAndroid Build Coastguard Worker br label %loopentry 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workerreturn: ; preds = %loopentry 33*9880d681SAndroid Build Coastguard Worker ret void 34*9880d681SAndroid Build Coastguard Worker} 35*9880d681SAndroid Build Coastguard Worker 36