1*9880d681SAndroid Build Coastguard Worker; RUN: opt -reg2mem -disable-output < %s 2*9880d681SAndroid Build Coastguard Worker; PR14782 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdeclare void @f1() 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_sj0(...) 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerdeclare void @f2() 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerdeclare void @f3() 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdeclare void @f4_() 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Workerdeclare void @_Z12xxxdtsP10xxxpq() 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workerdefine hidden void @_ZN12xxxyzIi9xxxwLi29ELi0EE4f3NewES0_i() ssp align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) { 17*9880d681SAndroid Build Coastguard Workerbb: 18*9880d681SAndroid Build Coastguard Worker invoke void @f4_() 19*9880d681SAndroid Build Coastguard Worker to label %bb1 unwind label %.thread 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker.thread: ; preds = %bb 22*9880d681SAndroid Build Coastguard Worker %tmp = landingpad { i8*, i32 } 23*9880d681SAndroid Build Coastguard Worker cleanup 24*9880d681SAndroid Build Coastguard Worker br label %bb13 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workerbb1: ; preds = %bb 27*9880d681SAndroid Build Coastguard Worker invoke void @f1() 28*9880d681SAndroid Build Coastguard Worker to label %.noexc unwind label %bb10 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Worker.noexc: ; preds = %bb1 31*9880d681SAndroid Build Coastguard Worker invoke void @f4_() 32*9880d681SAndroid Build Coastguard Worker to label %bb6 unwind label %bb2 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerbb2: ; preds = %.noexc 35*9880d681SAndroid Build Coastguard Worker %tmp3 = landingpad { i8*, i32 } 36*9880d681SAndroid Build Coastguard Worker cleanup 37*9880d681SAndroid Build Coastguard Worker invoke void @f3() 38*9880d681SAndroid Build Coastguard Worker to label %.body unwind label %bb4 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Workerbb4: ; preds = %bb2 41*9880d681SAndroid Build Coastguard Worker %tmp5 = landingpad { i8*, i32 } 42*9880d681SAndroid Build Coastguard Worker catch i8* null 43*9880d681SAndroid Build Coastguard Worker unreachable 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerbb6: ; preds = %.noexc 46*9880d681SAndroid Build Coastguard Worker invoke void @_Z12xxxdtsP10xxxpq() 47*9880d681SAndroid Build Coastguard Worker to label %_ZN6xxxdIN12xxxyzIi9xxxwLi29ELi0EE4fr1jS3_.exit unwind label %bb10 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Worker_ZN6xxxdIN12xxxyzIi9xxxwLi29ELi0EE4fr1jS3_.exit: ; preds = %bb6 50*9880d681SAndroid Build Coastguard Worker invoke void @f2() 51*9880d681SAndroid Build Coastguard Worker to label %bb7 unwind label %bb8 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Workerbb7: ; preds = %_ZN6xxxdIN12xxxyzIi9xxxwLi29ELi0EE4fr1jS3_.exit 54*9880d681SAndroid Build Coastguard Worker ret void 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerbb8: ; preds = %_ZN6xxxdIN12xxxyzIi9xxxwLi29ELi0EE4fr1jS3_.exit 57*9880d681SAndroid Build Coastguard Worker %tmp9 = landingpad { i8*, i32 } 58*9880d681SAndroid Build Coastguard Worker cleanup 59*9880d681SAndroid Build Coastguard Worker br label %_ZN10xxxpqdlev.exit 60*9880d681SAndroid Build Coastguard Worker 61*9880d681SAndroid Build Coastguard Workerbb10: ; preds = %bb6, %bb1 62*9880d681SAndroid Build Coastguard Worker %.1 = phi i1 [ true, %bb1 ], [ false, %bb6 ] 63*9880d681SAndroid Build Coastguard Worker %tmp11 = landingpad { i8*, i32 } 64*9880d681SAndroid Build Coastguard Worker cleanup 65*9880d681SAndroid Build Coastguard Worker br label %.body 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Worker.body: ; preds = %bb10, %bb2 68*9880d681SAndroid Build Coastguard Worker %.1.lpad-body = phi i1 [ %.1, %bb10 ], [ true, %bb2 ] 69*9880d681SAndroid Build Coastguard Worker invoke void @f2() 70*9880d681SAndroid Build Coastguard Worker to label %bb12 unwind label %bb14 71*9880d681SAndroid Build Coastguard Worker 72*9880d681SAndroid Build Coastguard Workerbb12: ; preds = %.body 73*9880d681SAndroid Build Coastguard Worker br i1 %.1.lpad-body, label %bb13, label %_ZN10xxxpqdlev.exit 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerbb13: ; preds = %bb12, %.thread 76*9880d681SAndroid Build Coastguard Worker invoke void @xxx_MemFree() 77*9880d681SAndroid Build Coastguard Worker to label %_ZN10xxxpqdlev.exit unwind label %bb14 78*9880d681SAndroid Build Coastguard Worker 79*9880d681SAndroid Build Coastguard Worker_ZN10xxxpqdlev.exit: ; preds = %bb13, %bb12, %bb8 80*9880d681SAndroid Build Coastguard Worker resume { i8*, i32 } undef 81*9880d681SAndroid Build Coastguard Worker 82*9880d681SAndroid Build Coastguard Workerbb14: ; preds = %bb13, %.body 83*9880d681SAndroid Build Coastguard Worker %tmp15 = landingpad { i8*, i32 } 84*9880d681SAndroid Build Coastguard Worker catch i8* null 85*9880d681SAndroid Build Coastguard Worker unreachable 86*9880d681SAndroid Build Coastguard Worker} 87*9880d681SAndroid Build Coastguard Worker 88*9880d681SAndroid Build Coastguard Workerdeclare void @xxx_MemFree() 89