1*9880d681SAndroid Build Coastguard Worker; CFG Simplification is making a loop dead, then changing the add into: 2*9880d681SAndroid Build Coastguard Worker; 3*9880d681SAndroid Build Coastguard Worker; %V1 = add int %V1, 1 4*9880d681SAndroid Build Coastguard Worker; 5*9880d681SAndroid Build Coastguard Worker; Which is not valid SSA 6*9880d681SAndroid Build Coastguard Worker; 7*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -simplifycfg | llvm-dis 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerdefine void @test() { 10*9880d681SAndroid Build Coastguard Worker; <label>:0 11*9880d681SAndroid Build Coastguard Worker br i1 true, label %end, label %Loop 12*9880d681SAndroid Build Coastguard WorkerLoop: ; preds = %Loop, %0 13*9880d681SAndroid Build Coastguard Worker %V = phi i32 [ 0, %0 ], [ %V1, %Loop ] ; <i32> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker %V1 = add i32 %V, 1 ; <i32> [#uses=1] 15*9880d681SAndroid Build Coastguard Worker br label %Loop 16*9880d681SAndroid Build Coastguard Workerend: ; preds = %0 17*9880d681SAndroid Build Coastguard Worker ret void 18*9880d681SAndroid Build Coastguard Worker} 19*9880d681SAndroid Build Coastguard Worker 20