1; RUN: opt < %s -simplifycfg -S | FileCheck %s 2 3declare void @bar() 4 5; This testcase checks to see if the simplifycfg pass is converting invoke 6; instructions to call instructions if the handler just rethrows the exception. 7define i32 @test1() { 8; CHECK: @test1 9; CHECK-NEXT: call void @bar() 10; CHECK-NEXT: ret i32 0 11 invoke void @bar( ) 12 to label %1 unwind label %Rethrow 13 ret i32 0 14Rethrow: 15 unwind 16} 17 18 19; Verify that simplifycfg isn't duplicating 'unwind' instructions. Doing this 20; is bad because it discourages commoning. 21define i32 @test2(i1 %c) { 22; CHECK: @test2 23; CHECK: T: 24; CHECK-NEXT: call void @bar() 25; CHECK-NEXT: br label %F 26 br i1 %c, label %T, label %F 27T: 28 call void @bar() 29 br label %F 30F: 31 unwind 32} 33