136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; RUN: opt < %s -lowerinvoke -S | FileCheck %s 236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesdeclare i32 @external_func(i64 %arg) 436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesdefine i32 @invoke_test(i64 %arg) { 636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesentry: 736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines %result = invoke fastcc i32 @external_func(i64 inreg %arg) 836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines to label %cont unwind label %lpad 936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinescont: 1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ret i32 %result 1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hineslpad: 1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines %phi = phi i32 [ 99, %entry ] 1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines %lp = landingpad { i8*, i32 } personality i8* null cleanup 1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ret i32 %phi 1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines} 1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; The "invoke" should be converted to a "call". 1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK-LABEL: define i32 @invoke_test 1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: %result = call fastcc i32 @external_func(i64 inreg %arg) 2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK-NEXT: br label %cont 2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Note that this pass does not remove dead landingpad blocks. 2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: lpad: 2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK-NOT: phi 2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: landingpad 26