1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -lowerinvoke -S | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdeclare i32 @external_func(i64 %arg) 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine i32 @invoke_test(i64 %arg) personality i8* null { 6*9880d681SAndroid Build Coastguard Workerentry: 7*9880d681SAndroid Build Coastguard Worker %result = invoke fastcc i32 @external_func(i64 inreg %arg) 8*9880d681SAndroid Build Coastguard Worker to label %cont unwind label %lpad 9*9880d681SAndroid Build Coastguard Workercont: 10*9880d681SAndroid Build Coastguard Worker ret i32 %result 11*9880d681SAndroid Build Coastguard Workerlpad: 12*9880d681SAndroid Build Coastguard Worker %phi = phi i32 [ 99, %entry ] 13*9880d681SAndroid Build Coastguard Worker %lp = landingpad { i8*, i32 } cleanup 14*9880d681SAndroid Build Coastguard Worker ret i32 %phi 15*9880d681SAndroid Build Coastguard Worker} 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker; The "invoke" should be converted to a "call". 18*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: define i32 @invoke_test 19*9880d681SAndroid Build Coastguard Worker; CHECK: %result = call fastcc i32 @external_func(i64 inreg %arg) 20*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: br label %cont 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker; Note that this pass does not remove dead landingpad blocks. 23*9880d681SAndroid Build Coastguard Worker; CHECK: lpad: 24*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: phi 25*9880d681SAndroid Build Coastguard Worker; CHECK: landingpad 26