1*9880d681SAndroid Build Coastguard Worker; RUN: opt -S -loop-unswitch < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-pc-win32" 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine void @f(i32 %doit, i1 %x, i1 %y) personality i32 (...)* @__CxxFrameHandler3 { 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker %tobool = icmp eq i32 %doit, 0 7*9880d681SAndroid Build Coastguard Worker br label %for.cond 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerfor.cond: ; preds = %for.inc, %entry 10*9880d681SAndroid Build Coastguard Worker br i1 %x, label %for.body, label %for.end 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerfor.body: ; preds = %for.cond 13*9880d681SAndroid Build Coastguard Worker br i1 %tobool, label %if.then, label %for.inc 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerif.then: ; preds = %for.body 16*9880d681SAndroid Build Coastguard Worker br i1 %y, label %for.inc, label %delete.notnull 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerdelete.notnull: ; preds = %if.then 19*9880d681SAndroid Build Coastguard Worker invoke void @g() 20*9880d681SAndroid Build Coastguard Worker to label %invoke.cont unwind label %lpad 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerinvoke.cont: ; preds = %delete.notnull 23*9880d681SAndroid Build Coastguard Worker br label %for.inc 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerlpad: ; preds = %delete.notnull 26*9880d681SAndroid Build Coastguard Worker %cp = cleanuppad within none [] 27*9880d681SAndroid Build Coastguard Worker cleanupret from %cp unwind to caller 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerfor.inc: ; preds = %invoke.cont, %if.then, %for.body 30*9880d681SAndroid Build Coastguard Worker br label %for.cond 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %for.cond 33*9880d681SAndroid Build Coastguard Worker ret void 34*9880d681SAndroid Build Coastguard Worker} 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workerdeclare void @g() 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerdeclare i32 @__CxxFrameHandler3(...) 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: define void @f( 41*9880d681SAndroid Build Coastguard Worker; CHECK: cleanuppad within none [] 42*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: cleanuppad 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Workerattributes #0 = { ssp uwtable } 45