1*5366de73SArthur Eubanks; RUN: opt -passes=simple-loop-unswitch -enable-nontrivial-unswitch < %s -S | FileCheck %s 2*5366de73SArthur Eubanks 3*5366de73SArthur Eubanks; CHECK: if.end{{.*}}: 4*5366de73SArthur Eubanks; CHECK-NOT: if.end{{.*}}: 5*5366de73SArthur Eubanksdeclare i32 @__gxx_wasm_personality_v0(...) 6*5366de73SArthur Eubanks 7*5366de73SArthur Eubanksdeclare void @foo() 8*5366de73SArthur Eubanks 9*5366de73SArthur Eubanksdefine void @test(i1 %arg) personality i8* bitcast (i32 (...)* @__gxx_wasm_personality_v0 to i8*) { 10*5366de73SArthur Eubanksentry: 11*5366de73SArthur Eubanks br label %while.body 12*5366de73SArthur Eubanks 13*5366de73SArthur Eubankswhile.body: ; preds = %cleanup, %entry 14*5366de73SArthur Eubanks br i1 %arg, label %if.end, label %if.then 15*5366de73SArthur Eubanks 16*5366de73SArthur Eubanksif.then: ; preds = %while.body 17*5366de73SArthur Eubanks br label %if.end 18*5366de73SArthur Eubanks 19*5366de73SArthur Eubanksif.end: ; preds = %if.then, %while.body 20*5366de73SArthur Eubanks invoke void @foo() 21*5366de73SArthur Eubanks to label %cleanup unwind label %catch.dispatch 22*5366de73SArthur Eubanks 23*5366de73SArthur Eubankscatch.dispatch: ; preds = %invoke.cont, %if.end 24*5366de73SArthur Eubanks %0 = catchswitch within none [label %catch] unwind to caller 25*5366de73SArthur Eubanks 26*5366de73SArthur Eubankscatch: ; preds = %catch.dispatch 27*5366de73SArthur Eubanks %1 = catchpad within %0 [i8* null] 28*5366de73SArthur Eubanks unreachable 29*5366de73SArthur Eubanks 30*5366de73SArthur Eubankscleanup: ; preds = %invoke.cont 31*5366de73SArthur Eubanks br label %while.body 32*5366de73SArthur Eubanks} 33*5366de73SArthur Eubanks 34