1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -verify-coalescing 2*9880d681SAndroid Build Coastguard Worker; PR12892 3*9880d681SAndroid Build Coastguard Worker; 4*9880d681SAndroid Build Coastguard Worker; Dead code elimination during coalesing causes a live range to split into two 5*9880d681SAndroid Build Coastguard Worker; virtual registers. Stale identity copies that had already been joined were 6*9880d681SAndroid Build Coastguard Worker; interfering with the liveness computations. 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workertarget triple = "i386-pc-linux-gnu" 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerdefine void @_ZN4llvm17AsmMatcherEmitter3runERNS_11raw_ostreamE() align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { 11*9880d681SAndroid Build Coastguard Worker invoke void @_ZNK4llvm13CodeGenTarget12getAsmParserEv() 12*9880d681SAndroid Build Coastguard Worker to label %1 unwind label %5 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker; <label>:1 ; preds = %0 15*9880d681SAndroid Build Coastguard Worker invoke void @_ZNK4llvm6Record16getValueAsStringENS_9StringRefE() 16*9880d681SAndroid Build Coastguard Worker to label %4 unwind label %2 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker; <label>:2 ; preds = %1 19*9880d681SAndroid Build Coastguard Worker %3 = landingpad { i8*, i32 } 20*9880d681SAndroid Build Coastguard Worker cleanup 21*9880d681SAndroid Build Coastguard Worker unreachable 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker; <label>:4 ; preds = %1 24*9880d681SAndroid Build Coastguard Worker invoke void @_ZN4llvm18isCurrentDebugTypeEPKc() 25*9880d681SAndroid Build Coastguard Worker to label %12 unwind label %7 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker; <label>:5 ; preds = %0 28*9880d681SAndroid Build Coastguard Worker %6 = landingpad { i8*, i32 } 29*9880d681SAndroid Build Coastguard Worker cleanup 30*9880d681SAndroid Build Coastguard Worker br label %33 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker; <label>:7 ; preds = %4 33*9880d681SAndroid Build Coastguard Worker %8 = landingpad { i8*, i32 } 34*9880d681SAndroid Build Coastguard Worker cleanup 35*9880d681SAndroid Build Coastguard Worker br label %9 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker; <label>:9 ; preds = %28, %7 38*9880d681SAndroid Build Coastguard Worker %10 = phi { i8*, i32 } [ %29, %28 ], [ %8, %7 ] 39*9880d681SAndroid Build Coastguard Worker %11 = extractvalue { i8*, i32 } %10, 1 40*9880d681SAndroid Build Coastguard Worker invoke fastcc void @_ZN12_GLOBAL__N_114AsmMatcherInfoD2Ev() 41*9880d681SAndroid Build Coastguard Worker to label %32 unwind label %35 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker; <label>:12 ; preds = %4 44*9880d681SAndroid Build Coastguard Worker invoke void @_ZNK4llvm13CodeGenTarget10getRegBankEv() 45*9880d681SAndroid Build Coastguard Worker to label %13 unwind label %16 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker; <label>:13 ; preds = %12 48*9880d681SAndroid Build Coastguard Worker br label %14 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker; <label>:14 ; preds = %20, %13 51*9880d681SAndroid Build Coastguard Worker %15 = icmp eq i32 undef, 0 52*9880d681SAndroid Build Coastguard Worker br i1 %15, label %20, label %18 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Worker; <label>:16 ; preds = %12 55*9880d681SAndroid Build Coastguard Worker %17 = landingpad { i8*, i32 } 56*9880d681SAndroid Build Coastguard Worker cleanup 57*9880d681SAndroid Build Coastguard Worker br label %26 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Worker; <label>:18 ; preds = %14 60*9880d681SAndroid Build Coastguard Worker invoke void @_ZNSs4_Rep9_S_createEjjRKSaIcE() 61*9880d681SAndroid Build Coastguard Worker to label %19 unwind label %21 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker; <label>:19 ; preds = %18 64*9880d681SAndroid Build Coastguard Worker unreachable 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Worker; <label>:20 ; preds = %14 67*9880d681SAndroid Build Coastguard Worker br label %14 68*9880d681SAndroid Build Coastguard Worker 69*9880d681SAndroid Build Coastguard Worker; <label>:21 ; preds = %18 70*9880d681SAndroid Build Coastguard Worker %22 = landingpad { i8*, i32 } 71*9880d681SAndroid Build Coastguard Worker cleanup 72*9880d681SAndroid Build Coastguard Worker %23 = extractvalue { i8*, i32 } %22, 1 73*9880d681SAndroid Build Coastguard Worker br i1 undef, label %26, label %24 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Worker; <label>:24 ; preds = %21 76*9880d681SAndroid Build Coastguard Worker br i1 undef, label %25, label %26 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Worker; <label>:25 ; preds = %24 79*9880d681SAndroid Build Coastguard Worker unreachable 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Worker; <label>:26 ; preds = %24, %21, %16 82*9880d681SAndroid Build Coastguard Worker %27 = phi i32 [ 0, %16 ], [ %23, %21 ], [ %23, %24 ] 83*9880d681SAndroid Build Coastguard Worker invoke void @_ZNSt6vectorISt4pairISsSsESaIS1_EED1Ev() 84*9880d681SAndroid Build Coastguard Worker to label %28 unwind label %30 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Worker; <label>:28 ; preds = %26 87*9880d681SAndroid Build Coastguard Worker %29 = insertvalue { i8*, i32 } undef, i32 %27, 1 88*9880d681SAndroid Build Coastguard Worker br label %9 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Worker; <label>:30 ; preds = %26 91*9880d681SAndroid Build Coastguard Worker %31 = landingpad { i8*, i32 } 92*9880d681SAndroid Build Coastguard Worker catch i8* null 93*9880d681SAndroid Build Coastguard Worker unreachable 94*9880d681SAndroid Build Coastguard Worker 95*9880d681SAndroid Build Coastguard Worker; <label>:32 ; preds = %9 96*9880d681SAndroid Build Coastguard Worker br label %33 97*9880d681SAndroid Build Coastguard Worker 98*9880d681SAndroid Build Coastguard Worker; <label>:33 ; preds = %32, %5 99*9880d681SAndroid Build Coastguard Worker %34 = phi i32 [ undef, %5 ], [ %11, %32 ] 100*9880d681SAndroid Build Coastguard Worker unreachable 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Worker; <label>:35 ; preds = %9 103*9880d681SAndroid Build Coastguard Worker %36 = landingpad { i8*, i32 } 104*9880d681SAndroid Build Coastguard Worker catch i8* null 105*9880d681SAndroid Build Coastguard Worker unreachable 106*9880d681SAndroid Build Coastguard Worker} 107*9880d681SAndroid Build Coastguard Worker 108*9880d681SAndroid Build Coastguard Workerdeclare void @_ZNK4llvm13CodeGenTarget12getAsmParserEv() 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...) 111*9880d681SAndroid Build Coastguard Worker 112*9880d681SAndroid Build Coastguard Workerdeclare void @_ZNK4llvm6Record16getValueAsStringENS_9StringRefE() 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Workerdeclare void @_ZN4llvm18isCurrentDebugTypeEPKc() 115*9880d681SAndroid Build Coastguard Worker 116*9880d681SAndroid Build Coastguard Workerdeclare fastcc void @_ZN12_GLOBAL__N_114AsmMatcherInfoD2Ev() unnamed_addr inlinehint align 2 117*9880d681SAndroid Build Coastguard Worker 118*9880d681SAndroid Build Coastguard Workerdeclare hidden void @_ZNSt6vectorISt4pairISsSsESaIS1_EED1Ev() unnamed_addr align 2 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Workerdeclare void @_ZNSs4_Rep9_S_createEjjRKSaIcE() 121*9880d681SAndroid Build Coastguard Worker 122*9880d681SAndroid Build Coastguard Workerdeclare void @_ZNK4llvm13CodeGenTarget10getRegBankEv() 123